Sprout from SALOME_5 2008-12-16 08:33:56 UTC maintenance team <salome-mnt@opencascade.com> 'HXX2SALOME adding'
Delete:
bin/SALOME_InstallWizard
bin/lib/libICE.so.6
bin/lib/libICE.so.6.3
bin/lib/libSM.so.6
bin/lib/libSM.so.6.0
bin/lib/libX11.so.6
bin/lib/libX11.so.6.2
bin/lib/libXext.so.6
bin/lib/libXext.so.6.4
bin/lib/libXrender.so.1
bin/lib/libXrender.so.1.1
config_files/BLSURFPLUGIN.sh
config_files/BOOST-1.34.1.sh
config_files/CALCULATOR.sh
config_files/CAS-6.3-patch.sh
config_files/CAS-6.3.sh
config_files/COMPONENT.sh
config_files/DEBIANFORSALOME-3.1.sh
config_files/DOCUMENTATION.sh
config_files/FILTER.sh
config_files/GEOM.sh
config_files/GHS3DPLUGIN.sh
config_files/GHS3DPRLPLUGIN.sh
config_files/GUI.sh
config_files/HELLO.sh
config_files/HXX2SALOME.sh
config_files/HXX2SALOMEDOC.sh
config_files/HexoticPLUGIN.sh
config_files/KERNEL.sh
config_files/LIGHT.sh
config_files/MED.sh
config_files/MULTIPR.sh
config_files/NETGENPLUGIN.sh
config_files/Numeric-24.2.sh
config_files/PYCALCULATOR.sh
config_files/PYHELLO.sh
config_files/PyQt-4.4.3.sh
config_files/Python-2.4.4.sh
config_files/RANDOMIZER.sh
config_files/SAMPLES.sh
config_files/SIERPINSKY.sh
config_files/SMESH.sh
config_files/SWIG-1.3.31.sh
config_files/VISU.sh
config_files/VTK-5.0.0.sh
config_files/YACS.sh
config_files/backupEnv.sh
config_files/blsurf-2.7.12.sh
config_files/build.csh
config_files/build.sh
config_files/cElementTree-1.0.5.sh
config_files/checkFortran.sh
config_files/checkSize.sh
config_files/common.sh
config_files/create_config.sh
config_files/diskSpace.sh
config_files/docutils-0.3.9.sh
config_files/doxygen-1.5.6.sh
config_files/elementtree-1.2.6.sh
config_files/gcc-common.sh
config_files/ghs3d-4.0.sh
config_files/graphviz-2.16.1.sh
config_files/hdf5-1.6.4.sh
config_files/libxml2-2.6.27.sh
config_files/med-2.3.5.sh
config_files/metis-4.0.sh
config_files/modifyLaFiles.sh
config_files/netgen-4.5.sh
config_files/omniORB-4.1.0.sh
config_files/patches/netgen-4.5-for-SALOME.patch
config_files/patches/netgen-4.5-lib64.patch
config_files/patches/omniNotify-2.1-lib64.patch
config_files/patches/python_patch_lib64.patch
config_files/qscintilla-2.3.sh
config_files/qt-4.4.3.sh
config_files/qwt-5.1.1.sh
config_files/release_notes.sh
config_files/remove_tmp.sh
config_files/scotch-4.0.sh
config_files/sip-4.7.7.sh
config_files/start_salome.sh
config_files/tcltk-8.4.14.sh
config_files/xdata-0.6.3.sh
doc/application.png
doc/batchmode.png
doc/choicepage.png
doc/directorypage.png
doc/installtypepage.png
doc/intropage.png
doc/logocorp.png
doc/platformpage.png
doc/productpage1.png
doc/productpage2.png
doc/productpage3.png
doc/productpage4.png
doc/progresspage1.png
doc/progresspage2.png
doc/readme.html
doc/readmepage.png
src/InstallWizard.cpp
src/InstallWizard.h
src/LICENSE.QPL
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
src/icons.cxx
src/icons.h
src/main.cxx
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : BLSURFPLUGIN.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${BLSURFPLUGIN_ROOT_DIR}" ]; then
- if [ -f ${BLSURFPLUGIN_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${BLSURFPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${BLSURFPLUGIN_SRC_DIR}" ]; then
-check_version(){
- check_salome_src_version BLSURFPLUGIN_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-}
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export BLSURFPLUGIN_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${BLSURFPLUGIN_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${BLSURFPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${BLSURFPLUGIN_ROOT_DIR}/bin/salome:\${BLSURFPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export BLSURFPLUGIN_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/BLSURFPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT BLSURFPLUGIN
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT BLSURFPLUGIN
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"BLSURFPLUGIN_BUILD" && rm -fr ${INST_ROOT}/"BLSURFPLUGIN_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/BLSURFPLUGINWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/BLSURFPLUGINbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/BLSURFPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export BLSURFPLUGIN_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="BLSURFPLUGIN_${SALOME_VERSION}"
-export PRODUCT_SRC="BLSURFPLUGIN_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : BOOST-1.34.1.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${BOOSTDIR}" ] && [ -f ${BOOSTDIR}/include/boost/version.hpp ] ; then
- ver=`egrep 'BOOST_VERSION [0-9]+' ${BOOSTDIR}/include/boost/version.hpp | sed 's/.*BOOST_VERSION \([0-9]\+\)/\1/g'`
- if [ "$ver" = "103200" ]; then
- return 0
- fi
-fi
-return 1;
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export BOOSTDIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export LD_LIBRARY_PATH=\${BOOSTDIR}/lib:\${LD_LIBRARY_PATH}
-export PATH=\${BOOSTDIR}/include:\${PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-# unpack
-check_jb tar xzf ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-cd ${PRODUCT_SRC_DIR}/tools/jam/src
-
-chmod +w ./Jambase
-mv Jambase Jambase.orig
-sed -e 's/\/usr\/share\/boost-build/\$\(PRODUCT_SRC_DIR\)/g' Jambase.orig > Jambase
-
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/BUILD.LOG <<EOF
-used gcc=$GCC
-EOF
-
-python_root=`find_in_path python $PATH`;
-python_root=`cd ${python_root}/..; pwd`
-python_version=`python -c "import sys; print sys.version[:3]"`
-
-cd ${PRODUCT_SRC_DIR}/tools/jam/src
-check_job ${PRODUCT_DIR}/BUILD.LOG ./build.sh --debug --with-python=${python_root}
-
-# install
-cd ${PRODUCT_SRC_DIR}
-
-if test `uname -m` = "x86_64" ; then
-export binfolder=bin.linux.debug
-else
-export binfolder=bin.linuxx86.debug
-fi
-
-OPTIONS="toolset=gcc variant=release"
-OPTIONS="${OPTIONS} runtime-link=shared threading=multi"
-OPTIONS="${OPTIONS} -sBOOST_ALL_DYN_LINK=1"
-OPTIONS="${OPTIONS} --prefix=${PRODUCT_DIR} --builddir=${PRODUCT_SRC_DIR} install"
-
-echo "`pwd` -> ./tools/jam/src/${binfolder}/bjam ${OPTIONS} >> ${PRODUCT_DIR}/INSTALL.LOG"
-./tools/jam/src/${binfolder}/bjam ${OPTIONS} >> ${PRODUCT_DIR}/INSTALL.LOG 2> $INSTALL_WORK/errlog
-
-if [ "$?" -ne "0" ] ; then
- cat ${PRODUCT_DIR}/INSTALL.LOG
- cat $INSTALL_WORK/errlog >&2
- cat $INSTALL_WORK/errlog >> ${PRODUCT_DIR}/INSTALL.LOG
-fi
-
-# move includes
-cd ${PRODUCT_DIR}/include
-mv -f boost-1_34_1/boost boost
-rm -rf boost-1_34_1
-
-# create additional links for libraries
-cd ${PRODUCT_DIR}/lib
-
-gcc_root="`where_gcc $GCC_VERSION`"
-gcc_root=`cd ${gcc_root}/..; pwd`
-maj_ver=`${gcc_root}/bin/gcc -dumpversion | awk -F[.-] '{if(NF>0) print $1; else print 0}'`
-min_ver=`${gcc_root}/bin/gcc -dumpversion | awk -F[.-] '{if(NF>1) print $2; else print 0}'`
-gcc_ver=$maj_ver$min_ver
-
-for aLib in date_time filesystem prg_exec_monitor python regex signals test_exec_monitor thread unit_test_framework ; do
- if [ -f libboost_${aLib}-gcc${gcc_ver}-mt-1_34_1.so ] ; then
- ln -sf libboost_${aLib}-gcc${gcc_ver}-mt-1_34_1.so libboost_${aLib}-mt.so
- fi
-done
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="boost-1.34.1"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : CALCULATOR.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${CALCULATOR_ROOT_DIR}" ]; then
- check_lib_version VERSION ${CALCULATOR_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${CALCULATOR_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${CALCULATOR_SRC_DIR}" ]; then
- check_salome_src_version CALCULATOR_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export CALCULATOR_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${CALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${CALCULATOR_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${CALCULATOR_ROOT_DIR}/bin/salome:\${CALCULATOR_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${CALCULATOR_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export CALCULATOR_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/CALCULATORsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT CALCULATOR
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"CALCULATOR_BUILD" && rm -fr ${INST_ROOT}/"CALCULATOR_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/CALCULATORbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/CALCULATORsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export CALCULATOR_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-cd ${PRODUCT_DIR}/bin/salome
-sed -e "s%export KERNEL_ROOT_DIR=.*%export KERNEL_ROOT_DIR=${KERNEL_ROOT_DIR}%g" runAppli > _runAppli
-sed -e "s%export CALCULATOR_ROOT_DIR=.*%export CALCULATOR_ROOT_DIR=${CALCULATOR_ROOT_DIR}%g" _runAppli > runAppli
-rm -f _runAppli
-chmod a+x runAppli
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="CALCULATOR_${SALOME_VERSION}"
-export PRODUCT_SRC="CALCULATOR_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : CAS-6.3.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -z "$CASROOT" ]; then
- return 1
-fi
-check_lib_version ${CASROOT}/inc/Standard_Version.hxx
-if [ "$?" -ne "0" ] ; then
- return 1
-fi
-ver_major=`grep "#define OCC_VERSION_MAJOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
-ver_minor=`grep "#define OCC_VERSION_MINOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
-ver_maint=`grep "#define OCC_VERSION_MAINTENANCE" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
-ver="$ver_major.$ver_minor.$ver_maint"
-if [ "$ver" == "6.3" ] ; then
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-##
-# Patch for Open CASCADE 6.3 has been installed
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-##
-# Patch for Open CASCADE 6.3 has been installed
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled()
-{
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}-patch.tar.gz -C ${INST_ROOT}
-cp -rf ${INST_ROOT}/${PRODUCT}-patch_SRC/* ${PRODUCT_SRC_DIR}
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-#test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-cd ${PRODUCT_SRC_DIR}
-
-# make
-echo " +++++++++++ make"
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE-PATH.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE-PATH.LOG make -j4 install-strip
-
-#du -sk ${PRODUCT_SRC_DIR} > ${PRODUCT_DIR}/size.log
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${INST_ROOT}/${PRODUCT}-patch_SRC && rm -fr ${INST_ROOT}/${PRODUCT}-patch_SRC
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}-patch.tar.gz -C ${PRODUCT_DIR}
-
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="CAS-6.3"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : CAS-6.3.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -z "$CASROOT" ]; then
- return 1
-fi
-check_lib_version ${CASROOT}/inc/Standard_Version.hxx
-if [ "$?" -ne "0" ] ; then
- return 1
-fi
-ver_major=`grep "#define OCC_VERSION_MAJOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
-ver_minor=`grep "#define OCC_VERSION_MINOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
-ver_maint=`grep "#define OCC_VERSION_MAINTENANCE" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
-ver="$ver_major.$ver_minor.$ver_maint"
-if [ "$ver" == "6.3" ] ; then
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export CASROOT=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${CASROOT}/bin:\${PATH}
-export LD_LIBRARY_PATH=\${CASROOT}/lib:\${CASROOT}/lin/lib:\${LD_LIBRARY_PATH}
-# Variable for Foundation Classes :
-export CSF_UnitsLexicon=\${CASROOT}/src/UnitsAPI/Lexi_Expr.dat
-export CSF_UnitsDefinition=\${CASROOT}/src/UnitsAPI/Units.dat
-# Variable for DataExchange :
-export CSF_SHMessage=\${CASROOT}/src/SHMessage
-export CSF_XSMessage=\${CASROOT}/src/XSMessage
-# Variable for Font :
-export CSF_MDTVFontDirectory=\${CASROOT}/src/FontMFT
-export CSF_MDTVTexturesDirectory=\${CASROOT}/src/Textures
-# Activation of OCCT Kernel multithreading :
-export MMGT_REENTRANT=1
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled()
-{
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-cd ${PRODUCT_SRC_DIR}
-
-# configure
-
-echo " +++++++++++ configure"
-
-is_mandriva2007=0
-is_mandriva2008=0
-is_debian40=0
-
-if [ -e /etc/issue ] ; then
- grep -e "Mandriva Linux release 2007.0" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_mandriva2007=1 ; fi
-fi
-
-if [ -e /etc/issue ] ; then
- grep -e "Mandriva Linux release 2008.0" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_mandriva2008=1 ; fi
-fi
-
-if [ -e /etc/issue ] ; then
- grep -e "Debian GNU/Linux 4.0" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_debian40=1 ; fi
-fi
-
-if [ $is_mandriva2007 == 1 ] || [ $is_mandriva2008 == 1 ] || [ $is_debian40 == 1 ] ; then
-where_xmu_include=/usr/include/X11
-else
-where_xmu_include=/usr/X11R6/include/X11
-fi
-
-flags="$flags --with-xmu-include=$where_xmu_include"
-
-if test `uname -m` = "x86_64" ; then
- flags="$flags --with-xmu-library=/usr/lib64"
-else
- flags="$flags --with-xmu-library=/usr/X11R6/lib"
-fi
-
- flags="$flags LDFLAGS=-lpthread"
-glincdir="`where_gl_includes`"
-if [ $? -eq 0 ] ; then flags="$flags --with-gl-include=$glincdir"; fi
-gllibdir="`where_gl_libs`"
-if [ $? -eq 0 ] ; then flags="$flags --with-gl-library=$gllibdir"; fi
-tcldir="`where_tcl`"
-if [ $? -eq 0 ] ; then flags="$flags --with-tcl=$tcldir"; fi
-tkdir="`where_tk`"
-if [ $? -eq 0 ] ; then flags="$flags --with-tk=$tkdir"; fi
-dpsdir="`where_dps`"
-if [ $? -eq 0 ] ; then flags="$flags --with-dps-include=$dpsdir/include --with-dps-library=$dpsdir/lib"; fi
-flags="$flags --disable-wrappers --disable-wok --disable-debug --enable-production"
-
-export CASROOT=${PRODUCT_SRC_DIR}
-
-echo "`pwd` -> ./configure --prefix=${PRODUCT_DIR} $flags >> ${PRODUCT_DIR}/CONFIGURE.LOG"
-./configure --prefix=${PRODUCT_DIR} $flags >> ${PRODUCT_DIR}/CONFIGURE.LOG 2> ${INSTALL_WORK}/errlog
-
-# make
-echo " +++++++++++ make"
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE.LOG make -j4 install-strip
-
-# fix libGL dependencies
-echo " +++++++++++ fix libGL dependencies"
-
-cd ${PRODUCT_DIR}/lib
-
-gllibdir="`where_gl_libs`"
-if [ "$gllibdir" != "" ] ; then
- if [ -f ${gllibdir}/libGL.la ] ; then
- libdir=`grep "libdir=" ${gllibdir}/libGL.la | sed -e "s%libdir='\(.*\)'%\1%"`
- if [ "`ls $libdir/libGL.so* 2>/dev/null`" ] ; then
- str_to_replace="${gllibdir}/libGL.la"
- fi
- fi
- if [ "$str_to_replace" == "" ] ; then
- str_to_replace="-L${gllibdir} -lGL"
- fi
-
- sed -e "s%-lGL\b%%g" \
- -e "s%[^[:space:]]*libGL.la[[:space:]]%%g" \
- -e "s%^dependency_libs='\(.*\)%dependency_libs='${str_to_replace} \1%" \
- libTKOpenGl.la > libTKOpenGl.la.new
- mv -f libTKOpenGl.la.new libTKOpenGl.la
-fi
-
-#du -sk ${PRODUCT_SRC_DIR} > ${PRODUCT_DIR}/size.log
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-echo "${INSTALL_PRODUCTS}" | grep -q "PatchForOpenCascade"
-if [ $? -eq 1 ] && [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-is_mandriva2008=0
-
-if [ -e /etc/issue ] ; then
- grep -e "Mandriva Linux release 2008.0" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_mandriva2008=1 ; fi
-fi
-
-# modify *.la files
-ldir=${PRODUCT_DIR}/lib
-if [ ! -d $ldir ]; then ldir=${PRODUCT_DIR}/Linux/lib; fi
-if [ ! -d $ldir ]; then ldir=${PRODUCT_DIR}/lin/lib; fi
-cd $ldir
-# 1. set libdir correctly, correct dependencies, set tcldir correctly
-tcldir=`printenv TCLHOME`
-for l in X `find . -name "*.la"`; do
- if [ "$l" != "X" ] ; then
- l=`basename $l`
- libdir=`grep -e "libdir=.*" $l | sed -e "s/libdir=[\'|\"]\(.*\)[\'|\"]/\1/g"`
- sed -e "s%${libdir}%${ldir}%g" $l > _$l
- mv -f _$l $l
- if [ -n "${tcldir}" ] && [ -d "${tcldir}" ] ; then
- sed -e "s%-L[^[:space:]]*tcltk[^[:space:]]*/lib%-L${tcldir}/lib%g" $l > _$l
- mv -f _$l $l
- fi
- chmod a+x $l
- fi
-done
-
-# 2. fix libGL dependencies
-
-#if test "$is_mandriva2008" = "1" && test `uname -m` = "x86_64" ; then
-
-#echo " +++++++++++ libGL dependencies are not updated"
-
-#else
-
-cd $ldir
-gllibdir="`where_gl_libs`"
-if [ "$gllibdir" != "" ] ; then
- if [ -f ${gllibdir}/libGL.la ] ; then
- libdir=`grep "libdir=" ${gllibdir}/libGL.la | sed -e "s%libdir='\(.*\)'%\1%"`
- if [ "`ls $libdir/libGL.so* 2>/dev/null`" ] ; then
- str_to_replace="${gllibdir}/libGL.la"
- fi
-fi
- if [ "$str_to_replace" == "" ] ; then
- str_to_replace="-L${gllibdir} -lGL"
- fi
-
- sed -e "s%-lGL\b%%g" \
- -e "s%[^[:space:]]*libGL.la[[:space:]]%%g" \
- -e "s%^dependency_libs='\(.*\)%dependency_libs='${str_to_replace} \1%" \
- libTKOpenGl.la > libTKOpenGl.la.new
- mv -f libTKOpenGl.la.new libTKOpenGl.la
-fi
-#fi
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="CAS-6.3"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : COMPONENT.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${COMPONENT_SRC_DIR}" ]; then
- check_salome_src_version COMPONENT_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${COMPONENT_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export COMPONENT_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/COMPONENTsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT COMPONENT
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"COMPONENT_BUILD" && rm -fr ${INST_ROOT}/"COMPONENT_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/COMPONENTbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/COMPONENTsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export COMPONENT_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="COMPONENT_${SALOME_VERSION}"
-export PRODUCT_SRC="COMPONENT_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : DEBIANFORSALOME-3.1.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export DEBIANFORSALOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${DEBIANFORSALOME}/bin:\${DEBIANFORSALOME}/bin/X11:\${PATH}
-export LD_LIBRARY_PATH=\${DEBIANFORSALOME}/extralibs:\${DEBIANFORSALOME}/lib:\${DEBIANFORSALOME}/bin/X11:\${LD_LIBRARY_PATH}
-export CPLUS_INCLUDE_PATH=\${DEBIANFORSALOME}/include/c++/3.3:\${DEBIANFORSALOME}/include/c++/3.3/i486-linux:\${DEBIANFORSALOME}/include/c++/3.3/backward
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/DEBIANLIBS-3.1.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-shift
-SINGLE_DIR=$9
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="DEBIANLIBS-3.1"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : DOCUMENTATION.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# There is no possibility to check version number
-return 0
-}
-
-print_env_bin(){
-return 1
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-#nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/DOCUMENTATIONsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-install_source
-}
-
-install_binary()
-{
-install_source
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-shift
-SINGLE_DIR=$9;
-export PRODUCT="DOCUMENTATION_${SALOME_VERSION}"
-export PRODUCT_SRC="DOCUMENTATION_SRC_${SALOME_VERSION}"
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : FILTER.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${FILTER_ROOT_DIR}" ]; then
- if [ -f ${FILTER_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${FILTER_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${FILTER_SRC_DIR}" ]; then
- check_salome_src_version FILTER_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export FILTER_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${FILTER_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${FILTER_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${FILTER_ROOT_DIR}/bin/salome:\${FILTER_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export FILTER_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/FILTERsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT FILTER
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"FILTER_BUILD" && rm -fr ${INST_ROOT}/"FILTER_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/FILTERbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/FILTERsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export FILTER_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="FILTER_${SALOME_VERSION}"
-export PRODUCT_SRC="FILTER_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : GEOM.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${GEOM_SRC_DIR}" ]; then
- check_salome_src_version GEOM_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${GEOM_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export GEOM_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GEOMsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT GEOM
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT GEOM
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"GEOM_BUILD" && rm -fr ${INST_ROOT}/"GEOM_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/GEOMWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/GEOMbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/GEOMsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export GEOM_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="GEOM_${SALOME_VERSION}"
-export PRODUCT_SRC="GEOM_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : GHS3DPLUGIN.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
- return 0
-elif [ -n "${GHS3DPLUGIN_SRC_DIR}" ]; then
- check_salome_src_version GHS3DPLUGIN_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export GHS3DPLUGIN_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT GHS3DPLUGIN
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT GHS3DPLUGIN
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"GHS3DPLUGIN_BUILD" && rm -fr ${INST_ROOT}/"GHS3DPLUGIN_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/GHS3DPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export GHS3DPLUGIN_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="GHS3DPLUGIN_${SALOME_VERSION}"
-export PRODUCT_SRC="GHS3DPLUGIN_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : GHS3DPRLPLUGIN.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${GHS3DPRLPLUGIN_ROOT_DIR}" ]; then
- if [ -f ${GHS3DPRLPLUGIN_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${GHS3DPRLPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${GHS3DPRLPLUGIN_SRC_DIR}" ]; then
- check_salome_src_version GHS3DPRLPLUGIN_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPRLPLUGIN_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${GHS3DPRLPLUGIN_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${GHS3DPRLPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${GHS3DPRLPLUGIN_ROOT_DIR}/bin/salome:\${GHS3DPRLPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export GHS3DPRLPLUGIN_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GHS3DPRLPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT GHS3DPRLPLUGIN
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT GHS3DPRLPLUGIN
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"GHS3DPRLPLUGIN_BUILD" && rm -fr ${INST_ROOT}/"GHS3DPRLPLUGIN_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/GHS3DPRLPLUGINWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/GHS3DPRLPLUGINbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/GHS3DPRLPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export GHS3DPRLPLUGIN_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="GHS3DPRLPLUGIN_${SALOME_VERSION}"
-export PRODUCT_SRC="GHS3DPRLPLUGIN_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : GUI.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${GUI_ROOT_DIR}" ]; then
- check_lib_version VERSION ${GUI_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${GUI_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${GUI_SRC_DIR}" ]; then
- check_salome_src_version GUI_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GUI_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${GUI_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${GUI_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${GUI_ROOT_DIR}/bin/salome:\${GUI_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${GUI_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export GUI_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GUIsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT GUI
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"GUI_BUILD" && rm -fr ${INST_ROOT}/"GUI_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/GUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/GUIsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export GUI_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="GUI_${SALOME_VERSION}"
-export PRODUCT_SRC="GUI_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : HELLO.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${HELLO_ROOT_DIR}" ]; then
- if [ -f ${HELLO_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${HELLO_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${HELLO_SRC_DIR}" ]; then
- check_salome_src_version HELLO_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export HELLO_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${HELLO_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${HELLO_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${HELLO_ROOT_DIR}/bin/salome:\${HELLO_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${HELLO_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export HELLO_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/HELLOsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT HELLO
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"HELLO_BUILD" && rm -fr ${INST_ROOT}/"HELLO_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/HELLObinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/HELLOsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export HELLO_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-cd ${PRODUCT_DIR}/bin/salome
-sed -e "s%export KERNEL_ROOT_DIR=.*%export KERNEL_ROOT_DIR=${KERNEL_ROOT_DIR}%g" runAppli > _runAppli
-sed -e "s%export HELLO_ROOT_DIR=.*%export HELLO_ROOT_DIR=${HELLO_ROOT_DIR}%g" _runAppli > runAppli
-rm -f _runAppli
-chmod a+x runAppli
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="HELLO_${SALOME_VERSION}"
-export PRODUCT_SRC="HELLO_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : HXX2SALOME.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export HXX2SALOME_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}/bin
-export PATH=\${HXX2SALOME_ROOT_DIR}:\${PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/HXX2SALOMEsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-cd ${PRODUCT_SRC_DIR}
-cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
--------------------
-Build configure...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./build_configure
-cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
--------------------
-Configure...
--------------------
-EOF
-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
-
-#du -sk ${PRODUCT_SRC_DIR} > ${PRODUCT_DIR}/size.log
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/HXX2SALOMEbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="HXX2SALOME_${SALOME_VERSION}"
-export PRODUCT_SRC="HXX2SALOME_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : HXX2SALOMEDOC.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-#nothing to do
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source(){
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/HXX2SALOMEDOCsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary(){
-echo "It's impossible to install ${PRODUCT} from binaries"
-
-# to generate environment scripts
-try_preinstalled
-
-return 1
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="HXX2SALOMEDOC_${SALOME_VERSION}"
-export PRODUCT_SRC="HXX2SALOMEDOC_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : HexoticPLUGIN.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${HexoticPLUGIN_ROOT_DIR}" ]; then
- if [ -f ${HexoticPLUGIN_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${HexoticPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${HexoticPLUGIN_SRC_DIR}" ]; then
- check_salome_src_version HexoticPLUGIN_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export HexoticPLUGIN_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${HexoticPLUGIN_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${HexoticPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${HexoticPLUGIN_ROOT_DIR}/bin/salome:\${HexoticPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export HexoticPLUGIN_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/HexoticPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT HexoticPLUGIN
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT HexoticPLUGIN
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"HexoticPLUGIN_BUILD" && rm -fr ${INST_ROOT}/"HexoticPLUGIN_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/HexoticPLUGINWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/HexoticPLUGINbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/HexoticPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export HexoticPLUGIN_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="HexoticPLUGIN_${SALOME_VERSION}"
-export PRODUCT_SRC="HexoticPLUGIN_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : KERNEL_BIN.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${KERNEL_SRC_DIR}" ]; then
- check_salome_src_version KERNEL_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${KERNEL_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export KERNEL_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/KERNELsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -c -d -v 0 -p $INST_ROOT KERNEL
-
-# create environment for the built binaries
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"KERNEL_BUILD" && rm -fr ${INST_ROOT}/"KERNEL_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/KERNELbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/KERNELsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# The next two symbolic links are created only for Red Hat 9 and Scientific Linux 3.0.5
-if [ -f /lib/libcrypto.so.0.9.7a ]; then
- ln -sf /lib/libcrypto.so.0.9.7a ${PRODUCT_DIR}/lib/salome/libcrypto.so.2
-fi
-if [ -f /lib/libssl.so.0.9.7a ]; then
- ln -sf /lib/libssl.so.0.9.7a ${PRODUCT_DIR}/lib/salome/libssl.so.2
-fi
-
-# modify all *.la files
-export KERNEL_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-pickup_env()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
-if [ -d ${PRODUCT_DIR} ] ; then
- pushd ${PRODUCT_DIR} > /dev/null
- version=`cat bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]'`
- dir="${HOME}/salome_appli_$version"
- bin/salome/createAppli.sh $dir
- rm -rf $dir/env.d/*.sh
- cp -f ${PRODUCT_DIR}/salome.sh $dir/env.d
- popd > /dev/null
-fi
-create_config.sh ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_DIR}
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src ${PRODUCT_SRC_DIR}
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="KERNEL_${SALOME_VERSION}"
-export PRODUCT_SRC="KERNEL_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : LIGHT.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${LIGHT_ROOT_DIR}" ]; then
- if [ -f ${LIGHT_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${LIGHT_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${LIGHT_SRC_DIR}" ]; then
- check_salome_src_version LIGHT_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export LIGHT_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export LD_LIBRARY_PATH=\${LIGHT_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export LIGHT_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/LIGHTsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT LIGHT
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"LIGHT_BUILD" && rm -fr ${INST_ROOT}/"LIGHT_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/LIGHTbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/LIGHTsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export LIGHT_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="LIGHT_${SALOME_VERSION}"
-export PRODUCT_SRC="LIGHT_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : MED.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${MED_SRC_DIR}" ]; then
- check_salome_src_version MED_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${MED_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export MED_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/MEDsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT MED
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT MED
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"MED_BUILD" && rm -fr ${INST_ROOT}/"MED_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/MEDWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/MEDbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/MEDsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export MED_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="MED_${SALOME_VERSION}"
-export PRODUCT_SRC="MED_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : MULTIPR.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${MULTIPR_ROOT_DIR}" ]; then
- if [ -f ${MULTIPR_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${MULTIPR_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${MULTIPR_SRC_DIR}" ]; then
- check_salome_src_version MULTIPR_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MULTIPR_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${MULTIPR_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${MULTIPR_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${MULTIPR_ROOT_DIR}/bin/salome:\${MULTIPR_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export MULTIPR_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/MULTIPRsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT MULTIPR
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"MULTIPR_BUILD" && rm -fr ${INST_ROOT}/"MULTIPR_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/MULTIPRbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/MULTIPRsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export MULTIPR_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="MULTIPR_${SALOME_VERSION}"
-export PRODUCT_SRC="MULTIPR_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : NETGENPLUGIN.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
- return 0
-elif [ -n "${NETGENPLUGIN_SRC_DIR}" ]; then
- check_salome_src_version NETGENPLUGIN_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${NETGENPLUGIN_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export NETGENPLUGIN_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT NETGENPLUGIN
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT NETGENPLUGIN
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"NETGENPLUGIN_BUILD" && rm -fr ${INST_ROOT}/"NETGENPLUGIN_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/NETGENPLUGINsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export NETGENPLUGIN_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="NETGENPLUGIN_${SALOME_VERSION}"
-export PRODUCT_SRC="NETGENPLUGIN_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : Numeric-24.2.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-ver=`python -c 'import Numeric; print Numeric.__version__' 2>/dev/null`
-if [ "$ver" == "24.2" ]; then
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYTHONPATH=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}/lib/python\${PYTHON_VERSION}/site-packages/Numeric:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled()
-{
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-cd ${PRODUCT_SRC_DIR}
- if test `uname -m` = "x86_64" ; then
-export CFLAGS=-m64
-export CXXFLAGS=-m64
- fi
-# check existence of lapack, f77blas, cblas, atlas, g2c libraries
-check_lib_version liblapack.so $LD_LIBRARY_PATH:/usr/lib
-lapack_nf=$?
-check_lib_version libf77blas.so $LD_LIBRARY_PATH:/usr/lib
-f77blas_nf=$?
-check_lib_version libcblas.so $LD_LIBRARY_PATH:/usr/lib
-cblas_nf=$?
-check_lib_version libatlas.so $LD_LIBRARY_PATH:/usr/lib
-atlas_nf=$?
-check_lib_version libg2c.so $LD_LIBRARY_PATH:/usr/lib
-g2c_nf=$?
-let nfound=$lapack_nf+$f77blas_nf+$cblas_nf+$atlas_nf+$g2c_nf
-# modify build procedure according to the libraries found
-if [ $nfound -gt 0 ] ; then
- cp setup.py setup.py.orig
- if [ "$lapack_nf" -eq "1" ] ; then
- sed -e "s%\(^libraries_list = \[\)\('lapack', \)\(.*\)$%\1\3%g" setup.py > _setup.py
- mv _setup.py setup.py
- fi
- if [ "$f77blas_nf" -eq "1" ] ; then
- sed -e "s%\(^libraries_list = \[.*\)\('f77blas', \)\(.*\)$%\1\3%g" setup.py > _setup.py
- mv _setup.py setup.py
- fi
- if [ "$cblas_nf" -eq "1" ] ; then
- sed -e "s%\(^libraries_list = \[.*\)\('cblas', \)\(.*\)$%\1\3%g" setup.py > _setup.py
- mv _setup.py setup.py
- fi
- if [ "$atlas_nf" -eq "1" ] ; then
- sed -e "s%\(^libraries_list = \[.*\)\('atlas', \)\(.*\)$%\1\3%g" setup.py > _setup.py
- mv _setup.py setup.py
- fi
- if [ "$g2c_nf" -eq "1" ] ; then
- sed -e "s%\(^libraries_list = \[.*\)\('g2c'\)\(.*\)$%\1\3%g" setup.py > _setup.py
- mv _setup.py setup.py
- fi
- sed -e "s%^use_dotblas = 1%use_dotblas = 0%g" setup.py > _setup.py
- mv _setup.py setup.py
- sed -e "s%#\(os.path.join('Src', 'blas_lite.c'),\)%\1%g" setup.py > _setup.py
- mv _setup.py setup.py
- sed -e "s%#\(os.path.join('Src', 'f2c_lite.c'),\)%\1%g" setup.py > _setup.py
- mv _setup.py setup.py
- sed -e "s%#\(os.path.join('Src', 'zlapack_lite.c'),\)%\1%g" setup.py > _setup.py
- mv _setup.py setup.py
- sed -e "s%#\(os.path.join('Src', 'dlapack_lite.c')\)%\1%g" setup.py > _setup.py
- mv _setup.py setup.py
- chmod a+x setup.py
-fi
-
-check_job ${PRODUCT_DIR}/INSTALL.LOG python setup.py install --prefix=${PRODUCT_DIR}
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="Numeric-24.2"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : PYCALCULATOR.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${PYCALCULATOR_SRC_DIR}" ]; then
- check_salome_src_version PYCALCULATOR_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${PYCALCULATOR_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export PYCALCULATOR_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT PYCALCULATOR
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"PYCALCULATOR_BUILD" && rm -fr ${INST_ROOT}/"PYCALCULATOR_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/PYCALCULATORsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export PYCALCULATOR_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="PYCALCULATOR_${SALOME_VERSION}"
-export PRODUCT_SRC="PYCALCULATOR_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : PYHELLO.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${PYHELLO_ROOT_DIR}" ]; then
- if [ -f ${PYHELLO_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${PYHELLO_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${PYHELLO_SRC_DIR}" ]; then
- check_salome_src_version PYHELLO_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYHELLO_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${PYHELLO_ROOT_DIR}/bin/salome:\${PATH}
- export PYTHONPATH=\${PYHELLO_ROOT_DIR}/bin/salome:\${PYHELLO_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export PYHELLO_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/PYHELLOsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT PYHELLO
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"PYHELLO_BUILD" && rm -fr ${INST_ROOT}/"PYHELLO_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/PYHELLObinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/PYHELLOsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export PYHELLO_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-cd ${PRODUCT_DIR}/bin/salome
-sed -e "s%export KERNEL_ROOT_DIR=.*%export KERNEL_ROOT_DIR=${KERNEL_ROOT_DIR}%g" runAppli > _runAppli
-sed -e "s%export PYHELLO_ROOT_DIR=.*%export PYHELLO_ROOT_DIR=${PYHELLO_ROOT_DIR}%g" _runAppli > runAppli
-chmod a+x runAppli
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="PYHELLO_${SALOME_VERSION}"
-export PRODUCT_SRC="PYHELLO_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : PyQt-4.4.3.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -n "${PYQTDIR}" ] && [ -f ${PYQTDIR}/pyqtconfig.py ] ; then
- ver=`cd ${PYQTDIR} && python -c "from pyqtconfig import Configuration; c=Configuration();print c.__getattr__('pyqt_version_str')" 2>/dev/null`
- if [ -n "$ver" ] ; then
- maj_ver=`echo $ver | awk -F. '{if(NF>0) print $1; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- min_ver=`echo $ver | awk -F. '{if(NF>1) print $2; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- rel_ver=`echo $ver | awk -F. '{if(NF>2) print $3; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- let ver=$maj_ver*10000+$min_ver*100+$rel_ver
- if [ $ver -eq 040403 ] ; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYQTDIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PYQT_SIPS=\${PYQTDIR}/sip
-export PATH=\${PYQTDIR}/bin:\$PATH
-export PYTHONPATH=\${PYQTDIR}:\${PYQTDIR}/PyQt4:\${PYTHONPATH}
-export LD_LIBRARY_PATH=\${PYQTDIR}/PyQt4:\$LD_LIBRARY_PATH
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-cd ${PRODUCT_SRC_DIR}
-
-# configure
-
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
- python configure.py -b ${PRODUCT_DIR}/bin -d ${PRODUCT_DIR} -v ${PRODUCT_DIR}/sip -p ${PRODUCT_DIR}/plugins --confirm-license
-
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-check_job ${PRODUCT_DIR}/INSTALL.LOG make install
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# modify pyqtconfig.py file
-cd ${PRODUCT_DIR}/PyQt4
-sed -e "s%\('pyqt_bin_dir':[[:space:]]*\).*%\1'${PRODUCT_DIR}',%g" pyqtconfig.py > pyqtconfig.py.1
-sed -e "s%\('pyqt_mod_dir':[[:space:]]*\).*%\1'${PRODUCT_DIR}',%g" pyqtconfig.py.1 > pyqtconfig.py
-sed -e "s%\('pyqt_sip_dir':[[:space:]]*\).*%\1'${PRODUCT_DIR}/sip',%g" pyqtconfig.py > pyqtconfig.py.1
-mv pyqtconfig.py.1 pyqtconfig.py
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="PyQt-4.4.3"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : Python-2.4.4.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -z "$PYTHONHOME" ]; then
- return 1
-fi
-isPython=`which python 2>/dev/null`
-if [ -n "$isPython" ]; then
- # version number is calculated as: <major>*10000+<minor>*100+<release>
- # for Python 2.4.4 it is equal to 20404
- ver=`python -V 2>&1`
- ver=`echo $ver | awk '{print $2}' | awk -F. '{v1=0;v2=0;v3=0;if(NF>0)v1=$1;if(NF>1)v2=$2;if(NF>2)v3=$3;print v1*10000+v2*100+v3}'`
- if [ $ver -eq 20404 ] ; then
- return 0
- fi
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-if [ -n "\${PYTHONPATH}" ] ; then
- export PYNATIVE=\${PYTHONPATH}
- export PYTHONPATH=""
-fi
-export PYTHONHOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${PYTHONHOME}/bin:\${PATH}
-export LD_LIBRARY_PATH=\${PYTHONHOME}/lib:\${LD_LIBRARY_PATH}
-export PYTHON_VERSION=\`python -c "import sys; print sys.version[:3]"\`
-export PYTHON_INCLUDE=\${PYTHONHOME}/include/python\${PYTHON_VERSION}
-export PYTHONPATH=\${PYTHONHOME}/lib/python\${PYTHON_VERSION}:\${PYNATIVE}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-if test `uname -m` = "x86_64" ; then
-# export PYTHON_LIB_PREFIX="64"
- export PYTHON_ARCHIVE_PREFIX=""
- export CFLAGS=-m64
- export CXXFLAGS=-m64
- PYTHON_CONFIGURE_OPTIONS="--with-threads --with-cxx=`which g++` --enable-shared CFLAGS=-m64 CXXFLAGS=-m64"
-else
- export PYTHON_ARCHIVE_PREFIX=""
- PYTHON_CONFIGURE_OPTIONS="--with-threads --with-cxx=`which g++` --enable-shared"
-fi
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# apply patch for 64-bit platforms
-#if test `uname -m` = "x86_64" ; then
-# if [ -f patches/python_patch_lib64.patch ] ; then
-# cp patches/python_patch_lib64.patch ${PRODUCT_SRC_DIR}
-# ( cd ${PRODUCT_SRC_DIR} ; \
-# patch -p1 < python_patch_lib64.patch ; \
-# rm -rf aclocal.m4 ; \
-# aclocal >& /dev/null ; \
-# autoconf >& /dev/null ; \
-# aclocal >& /dev/null ; \
-# autoconf >& /dev/null )
-# fi
-#fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-cd ${PRODUCT_SRC_DIR}
-
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
- ./configure --prefix=${PRODUCT_DIR} $PYTHON_CONFIGURE_OPTIONS
-
-# vsr: force linking to libstdc++.so
-sed -e 's%\(^LIBS=.*\)%\1 -lstdc++%g' Makefile > _Makefile
-mv -f _Makefile Makefile
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-check_job ${PRODUCT_DIR}/MAKINSTALL.LOG make install
-(cd ${PRODUCT_DIR}/lib${PYTHON_LIB_PREFIX}/python2.4/config; ln -fs ../../libpython2.4.so.1.0 libpython2.4.so)
-
-cd ${PRODUCT_DIR}/bin
-for sc in idle pydoc smtpd.py ; do
- if [ -e $sc ] ; then
- sed -e "s%#\!.*python%#\!/usr/bin/env python%" "$sc" > _"$sc"
- mv -f _"$sc" "$sc"
- chmod a+x "$sc"
- fi
-done
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-(cd ${PRODUCT_DIR}/lib/python2.4/config; ln -fs ../../libpython2.4.so.1.0 libpython2.4.so)
-
-cd ${PRODUCT_DIR}/bin
-for sc in idle pydoc smtpd.py ; do
- if [ -e $sc ] ; then
- sed -e "s%#\!.*python%#\!/usr/bin/env python%" "$sc" > _"$sc"
- mv -f _"$sc" "$sc"
- chmod a+x "$sc"
- fi
-done
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="Python-2.4.4"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-${PROCEDURE}
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : RANDOMIZER.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${RANDOMIZER_ROOT_DIR}" ]; then
- if [ -f ${RANDOMIZER_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${RANDOMIZER_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${RANDOMIZER_SRC_DIR}" ]; then
- check_salome_src_version RANDOMIZER_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export RANDOMIZER_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${RANDOMIZER_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${RANDOMIZER_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${RANDOMIZER_ROOT_DIR}/bin/salome:\${RANDOMIZER_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export RANDOMIZER_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/RANDOMIZERsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT RANDOMIZER
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"RANDOMIZER_BUILD" && rm -fr ${INST_ROOT}/"RANDOMIZER_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/RANDOMIZERbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/RANDOMIZERsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export RANDOMIZER_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="RANDOMIZER_${SALOME_VERSION}"
-export PRODUCT_SRC="RANDOMIZER_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : SAMPLES.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# There is no possibility to check version number
-return 0
-}
-
-print_env_bin(){
-return 1
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export DATA_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/SAMPLESsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-install_source
-}
-
-install_binary()
-{
-install_source
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-shift
-SINGLE_DIR=$9;
-export PRODUCT="SAMPLES_${SALOME_VERSION}"
-export PRODUCT_SRC="SAMPLES_SRC_${SALOME_VERSION}"
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : SIERPINSKY.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${SIERPINSKY_ROOT_DIR}" ]; then
- if [ -f ${SIERPINSKY_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${SIERPINSKY_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${SIERPINSKY_SRC_DIR}" ]; then
- check_salome_src_version SIERPINSKY_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SIERPINSKY_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${SIERPINSKY_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${SIERPINSKY_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${SIERPINSKY_ROOT_DIR}/bin/salome:\${SIERPINSKY_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export SIERPINSKY_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SIERPINSKYsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT SIERPINSKY
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"SIERPINSKY_BUILD" && rm -fr ${INST_ROOT}/"SIERPINSKY_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/SIERPINSKYbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/SIERPINSKYsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export SIERPINSKY_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="SIERPINSKY_${SALOME_VERSION}"
-export PRODUCT_SRC="SIERPINSKY_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : SMESH.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${SMESH_SRC_DIR}" ]; then
- check_salome_src_version SMESH_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${SMESH_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export SMESH_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SMESHsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT SMESH
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT SMESH
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"SMESH_BUILD" && rm -fr ${INST_ROOT}/"SMESH_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/SMESHWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/SMESHbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/SMESHsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export SMESH_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="SMESH_${SALOME_VERSION}"
-export PRODUCT_SRC="SMESH_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : SWIG-1.3.31.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "`which swig 2>/dev/null`" ]; then
- ver=`swig -version 2>&1 | grep -i version | awk '{ print $3 }' | sed -e 's/^\([0-9.]*\)\(.*\)/\1/'`
- if [ "$ver" == "1.3.31" ] ; then
- return 0;
- fi
-fi
-return 1;
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SWIG_ROOT=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${SWIG_ROOT}/bin:\${PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-if test `uname -m` = "x86_64" ; then
-export CFLAGS=-m64
-export CXXFLAGS=-m64
-fi
-
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${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}/INSTALL.LOG make install
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-echo "It impossible to install ${PRODUCT} from binaries! So this one will be build from sources."
-install_source_and_build
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="SWIG-1.3.31"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : VISU.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-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" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${VISU_SRC_DIR}" ]; then
- check_salome_src_version VISU_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${VISU_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export VISU_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/VISUsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT VISU
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"VISU_BUILD" && rm -fr ${INST_ROOT}/"VISU_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/VISUbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-check_jb tar xfz ${SRC_DIR}/VISUsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export VISU_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="VISU_${SALOME_VERSION}"
-export PRODUCT_SRC="VISU_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : VTK-5.0.0.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -z "$VTKHOME" ]; then
- return 1
-fi
-check_lib_version libvtkCommon.so ${VTKHOME}/lib/vtk
-if [ "$?" -eq "0" ]; then
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VTKHOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${VTKHOME}/bin:\${PATH}
-export LD_LIBRARY_PATH=\${VTKHOME}/lib:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${VTKHOME}/lib/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
-export TCLLIBPATH="\${VTKHOME}/lib/vtk-5.0/tcl \${TCLLIBPATH}"
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-makedir ${PRODUCT_SRC_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/cmake-2.2.3.tar.gz -C ${PRODUCT_SRC_DIR}
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_SRC_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-cd ${PRODUCT_SRC_DIR}/cmake-2.2.3_SRC
-
-chmod +w ./configure
-#INV - bug in a cmake configure
-cp configure configure.orig && sed "s/relid'/relid/" configure.orig > configure
-chmod 755 ./configure
-
-check_job ${PRODUCT_DIR}/CONFIGUREcmake.LOG ./configure
-cat >> ${PRODUCT_DIR}/MAKEcmake.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKEcmake.LOG make
-
-cd ${PRODUCT_SRC_DIR}/${PRODUCT}_SRC
-
-# apply a small patch for VTK (needed for gcc-3.4)
-sed -e "s%seekg(self->GetFile()->tellg()%seekg(static_cast<long>(self->GetFile()->tellg())%g" IO/vtkBMPReader.cxx > IO/vtkBMPReader.cxx.orig
-mv -f IO/vtkBMPReader.cxx.orig IO/vtkBMPReader.cxx
-sed -e "s%seekg(self->GetFile()->tellg()%seekg(static_cast<long>(self->GetFile()->tellg())%g" IO/vtkImageReader.cxx > IO/vtkImageReader.cxx.orig
-mv -f IO/vtkImageReader.cxx.orig IO/vtkImageReader.cxx
-
-# get Python and tcl/tk version
-python_version="`python -c 'import sys; print sys.version[:3]'`"
-tcl_version=""
-tcl_includes=""
-tcl_libs=""
-tcldir="`where_tcl`"
-if [ $? -eq 0 ] && [ -e ${tcldir}/tclConfig.sh ] ; then
- tcl_version=`grep -e "TCL_VERSION=.*" ${tcldir}/tclConfig.sh | sed -e "s%TCL_VERSION=[\'|\"]\(.*\)[\'|\"]%\1%g"`
- tcl_includes=`grep -e "TCL_INCLUDE_SPEC=.*" ${tcldir}/tclConfig.sh | sed -e "s%TCL_INCLUDE_SPEC=[\'|\"]-I\(.*\)[\'|\"]%\1%g"`
- if [ -z "$tcl_includes" ] ; then tcl_includes=/usr/include ; fi
- tcl_libs=`grep -e "TCL_PACKAGE_PATH=.*" ${tcldir}/tclConfig.sh | sed -e "s%TCL_PACKAGE_PATH=[\'|\"]\(.*\)[\'|\"]%\1%g"`
-fi
-
-VTK_CMAKE_OPTIONS=""
-
-### compiler options
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS"-DVTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T=1"
-
-### common VTK settings
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DBUILD_SHARED_LIBS:BOOL=ON"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DCMAKE_BUILD_TYPE:STRING=Release"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DCMAKE_CXX_COMPILER:STRING=`which g++`"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DCMAKE_C_COMPILER:STRING=`which gcc`"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DCMAKE_INSTALL_PREFIX:STRING=${PRODUCT_DIR}"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_USE_HYBRID:BOOL=ON"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_USE_PARALLEL:BOOL=ON"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_USE_PATENTED:BOOL=OFF"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_USE_RENDERING:BOOL=ON"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_USE_GL2PS:BOOL=ON"
- if test `uname -m` = "x86_64" ; then
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DCMAKE_CXX_FLAGS:STRING=-m64"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DCMAKE_C_FLAGS:STRING=-m64"
- fi
-#INV: provide additional flags Mandriva 2007.0
-#is_mandriva2007=0
-#if [ -e /etc/redhat-release ] ; then
-# grep -e "Mandriva Linux release 2007.0" /etc/redhat-release > /dev/null
-# if [ $? == 0 ] ; then is_mandriva2007=1 ; fi
-#fi
-### Wrap Python settings
-if [ "${python_version}" != "" ]; then
-#if [ $is_mandriva2007 == 1 ] ; then
-#VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_WRAP_PYTHON:BOOL=OFF"
-#else
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_WRAP_PYTHON:BOOL=ON"
-#fi
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DPYTHON_EXECUTABLE:STRING=${PYTHONHOME}/bin/python${python_version}"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DPYTHON_INCLUDE_PATH:STRING=${PYTHONHOME}/include/python${python_version}"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DPYTHON_LIBRARY:STRING=${PYTHONHOME}/lib/python${python_version}/config/libpython${python_version}.a"
-fi
-### Wrap Tcl settings
-if [ "${tcl_version}" != "" ] && [ "${tcl_includes}" != "" ] && [ "${tcl_libs}" != "" ] ; then
-# suppose that tcl and tk are installed in the same dir
-#if [ $is_mandriva2007 == 1 ] ; then
-#VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_WRAP_TCL:BOOL=OFF"
-#else
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DVTK_WRAP_TCL:BOOL=ON"
-#fi
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DTCL_INCLUDE_PATH:STRING=${tcl_includes}"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DTCL_LIBRARY:STRING=${tcl_libs}/libtcl${tcl_version}.so"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DTCL_STUB_LIBRARY:STRING=${tcl_libs}/libtclstub${tcl_version}.a"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DTCL_TCLSH:STRING=${TCLHOME}/bin/tclsh${tcl_version}"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DTK_INCLUDE_PATH:STRING=${tcl_includes}"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DTK_LIBRARY:STRING=${tcl_libs}/libtk${tcl_version}.so"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DTK_STUB_LIBRARY:STRING=${tcl_libs}/libtkstub${tcl_version}.a"
-VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DTK_WISH:STRING=${TCLHOME}/bin/wish${tcl_version}"
-fi
-### if Mesa is pre-installed
-if [ -n "$MESA_HOME" ]; then
- VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DOPENGL_INCLUDE_DIR:STRING=${MESA_HOME}/include"
- if test `uname -m` = "x86_64" ; then
- VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DOPENGL_gl_LIBRARY:STRING=${MESA_HOME}/lib64/libGL.so"
- VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DOPENGL_glu_LIBRARY:STRING=${MESA_HOME}/lib64/libGLU.so"
- else
- VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DOPENGL_gl_LIBRARY:STRING=${MESA_HOME}/lib/libGL.so"
- VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DOPENGL_glu_LIBRARY:STRING=${MESA_HOME}/lib/libGLU.so"
- fi
- VTK_CMAKE_OPTIONS=$VTK_CMAKE_OPTIONS" -DOPENGL_xmesa_INCLUDE_DIR:STRING=${MESA_HOME}/include"
-fi
-
-cat > ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
-used VTK settings:
-$VTK_CMAKE_OPTIONS
-EOF
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG ${PRODUCT_SRC_DIR}/cmake-2.2.3_SRC/bin/cmake . $VTK_CMAKE_OPTIONS
-
-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
-
-cd ${PRODUCT_SRC_DIR}/${PRODUCT}_SRC/Wrapping/Python
-
-check_job ${PRODUCT_DIR}/SETUPPYTHON.LOG python setup.py install --prefix=${PRODUCT_DIR}
-
-# set correct symbolic links - bug of python wrappings installation
-# cd ${PRODUCT_DIR}/include
-# ln -sf vtk-5.0 vtk
-
-# if test `uname -m` = "x86_64" ; then
-# cd ${PRODUCT_DIR}/lib; ln -s ../lib64/python${python_version} .
-# fi
-
-# cd ${PRODUCT_DIR}/lib/python${python_version}/site-packages
-# ln -sf vtk vtk_python
-
-# cd ${PRODUCT_DIR}/lib
-# ln -sf ../lib vtk
-
-# if test `uname -m` = "x86_64" ; then
-# cd ${PRODUCT_DIR}/lib64; ln -sf ../lib/* .
-# fi
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -n "$MESA_HOME" ]; then
- check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}_with_Mesa.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-fi
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="VTK-5.0.0"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : YACS.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -n "${YACS_ROOT_DIR}" ]; then
- if [ -f ${YACS_ROOT_DIR}/bin/salome/VERSION ]; then
- ver=`cat ${YACS_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $NF}' | tr -d '[:space:]' `
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-elif [ -n "${YACS_SRC_DIR}" ]; then
- check_salome_src_version YACS_SRC_DIR
- if [ $? -eq 0 ] ; then return 0 ; fi
- return 1
-fi
-return 1
-}
-
-print_env_bin(){
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export YACS_ROOT_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-if [ -n "\${ENV_FOR_LAUNCH}" ] ; then
- if [ "\${ENV_FOR_LAUNCH}" == "1" ] ; then
- export PATH=\${YACS_ROOT_DIR}/bin/salome:\${PATH}
- export LD_LIBRARY_PATH=\${YACS_ROOT_DIR}/lib${LIB_PREFIX}/salome:\${LD_LIBRARY_PATH}
- export PYTHONPATH=\${YACS_ROOT_DIR}/bin/salome:\${YACS_ROOT_DIR}/lib${LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/salome:\${PYTHONPATH}
- fi
-fi
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-export YACS_SRC_DIR=\${INST_ROOT}/${PRODUCT_SRC}
-##
-EOF
-
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/YACSsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ -e ./build.sh ] ; then
- cp -f ./build.sh ${INST_ROOT}
-fi
-
-CUR_DIR=`pwd`
-cd ${INST_ROOT}
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb ./build.sh -o -b -w -d -v 0 -p $INST_ROOT YACS
-else
- check_jb ./build.sh -o -b -d -v 0 -p $INST_ROOT YACS
-fi
-
-cd $CUR_DIR
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
- test -d ${INST_ROOT}/"YACS_BUILD" && rm -fr ${INST_ROOT}/"YACS_BUILD"
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-if [ $INST_WITH_GUI == "FALSE" ] ; then
- check_jb tar xfz ${SOURCE_DIR}/YACSWOGUIbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-else
- check_jb tar xfz ${SOURCE_DIR}/YACSbinariesV${SALOME_VERSION}.tar.gz -C ${PRODUCT_DIR}
-fi
-check_jb tar xfz ${SRC_DIR}/YACSsourcesV${SALOME_VERSION}.tar.gz -C ${INST_ROOT}
-
-# modify all *.la files
-export YACS_ROOT_DIR=${PRODUCT_DIR}
-test -z ${SINGLE_DIR} && modif_la_files ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-INST_WITH_GUI=$9;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="YACS_${SALOME_VERSION}"
-export PRODUCT_SRC="YACS_SRC_${SALOME_VERSION}"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT_SRC}
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : backupEnv.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-# The script checks available disk space. Returns 1 if there is no available
-# space on the disc.
-#
-# Usage: backupEnv <directory>
-#
-####################################################################################
-
-install_root=$1
-env_sequence="env_build.csh env_build.sh env_products.csh env_products.sh"
-
-for file_name in $env_sequence ; do
- file=$install_root/$file_name
- if [ -e $file ] ; then
- cp ${file} ${file}_`date +%F_%T`
- fi
-done
-exit 0
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : blsurf-2.7.12.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- LIB_PREFIX=""
-else
- LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export BLSURFHOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export LD_LIBRARY_PATH=\${BLSURFHOME}/lib${LIB_PREFIX}:\${LD_LIBRARY_PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-echo "It's impossible to install ${PRODUCT} from sources"
-}
-
-install_source_and_build()
-{
-install_binary
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${BIN_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-REMOVE_SRC_TMP=$9;
-shift
-BIN_DIR=$9;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="blsurf-2.7.12"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/csh -f
-
-####################################################################################
-# File : build.csh
-# Created : Thu Jan 27 09:50:55 2005
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-# This script can be used to build and install SALOME modules from sources.
-# Try build.csh -h for more details about usage.
-#
-####################################################################################
-
-set is_build_configure=0
-set is_configure=0
-set inst_with_gui=1
-set is_delete=0
-set verbose_level=2
-set params=""
-set b_params=""
-set modules=(KERNEL GUI GEOM MED SMESH VISU NETGENPLUGIN GHS3DPLUGIN BLSURFPLUGIN HexoticPLUGIN GHS3DPRLPLUGIN COMPONENT PYCALCULATOR CALCULATOR HELLO PYHELLO LIGHT SIERPINSKY RANDOMIZER FILTER YACS MULTIPR)
-set optim=""
-set is_install=0
-set is_help=0
-set is_tui=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" == "-w" ) then
- set inst_with_gui=0
- 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 if ( "$1" == "-t" ) then
- set is_tui=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 SALOME 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 SALOME 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 "-w Add --without-gui key to build_configure and configure commands"
-echo " to build SALOME module sources without GUI."
-echo " By default sources are built with GUI."
-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 "-t Performs make dev_docs step to build TUI documentation for those modules"
-echo " which support this. Default is off."
-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_build.csh
-if ( ! -e $env_script ) then
- set env_script=`dirname $0`/env_products.csh
-endif
-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
-
-#########################################################
-# define installation prefix
-#########################################################
-if ( "$prefix" == "" ) then
- set prefix=${BUILD_DIR}/INSTALL
- if ( $is_install == 1 ) then
- echo "\!\!\! Warning \!\!\! Installation directory is not set."
- echo "All the modules will be installed to the $prefix"
- else
- set is_kernel=`echo ${modules} | grep KERNEL`
- if ( "$is_kernel" != "" ) then
- echo "\!\!\! Warning \!\!\! KERNEL module requires install step to be performed."
- echo "For this module -i option will be forced."
- echo "The module(s) will be installed to the $prefix"
- endif
- endif
-else
- set is_absolute=`echo $prefix | grep -e "^/"`
- if ( "$is_absolute" == "" ) then
- set prefix=${BUILD_DIR}/$prefix
- echo "\!\!\! Warning \!\!\! Relative prefix is used."
- echo "All the modules will be installed to the $prefix"
- endif
-endif
-
-#########################################################
-# create log directory
-#########################################################
-if ( ! -e ${LOG_DIR} ) then
- mkdir -p ${LOG_DIR}
-endif
-
-echo "==========================================================================="
-echo "Starting SALOME build at `date`"
-echo "==========================================================================="
-
-#########################################################
-# loop for all given modules
-#########################################################
-foreach module (${modules})
- 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 "... Performing build_configure"
- #########################################################
- # check if build_configure script exists
- #########################################################
- if ( ! -e ${module_src}/build_configure ) then
- echo "\!\!\! Warning \!\!\! Can not find build_configure script in ${module_src}."
- else
- #########################################################
- # call build_configure
- #########################################################
- if ( $inst_with_gui == 0 ) then
- set add_keys="--without-gui"
- endif
- cd ${module_src}
- ./build_configure ${add_keys} >& ${LOG_DIR}/build_configure_${module}.log
- #########################################################
- # echo possible errors
- #########################################################
- if ( $verbose_level > 0 ) then
- cat ${LOG_DIR}/build_configure_${module}.log | grep -E "(failed|: error:)" >&2
- endif
- endif
- endif
- #########################################################
- # deleting build directory if -d flag is given
- #########################################################
- if ( -e ${module_build} && $is_delete == 1 ) then
- echo "... Removing ${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
- #########################################################
- # check if configure options are changed from the
- # previous launch
- #########################################################
- set opts_changed=0
-## if ( -f ${module_build}/config.log ) then
-## set old_prefix=`grep -e '^prefix=' ${module_build}/config.log | sed -e "s%^prefix='\(.*\)'%\1%"`
-## if ( "$old_prefix" != "$prefix" ) then
-## set opts_changed=1
-## endif
-## endif
- #########################################################
- # define installation directory (by using module's version
- # number); default is a build directory
- #########################################################
- set vx=""
- set cfg_file=configure.ac
- if ( ! -e ${module_src}/${cfg_file} ) then
- set cfg_file=configure.in.base
- endif
- if ( -e ${module_src}/${cfg_file} ) then
- set vx=`grep -e "^VERSION=" ${module_src}/${cfg_file} | awk -F= '{ if (NF>1) print $NF; }' | tr -d '[:space:]'`
- if ( "$vx" == "" ) then
- set vx=`grep -e "^AC_INIT" ${module_src}/${cfg_file} | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
- endif
- 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 || $opts_changed == 1 ) then
- echo "... Performing configure"
- #########################################################
- # check if configure script exists
- #########################################################
- if ( ! -e ${module_src}/configure ) then
- echo "\!\!\! Warning \!\!\! Can not find configure script in ${module_src}."
- else
- if ( $inst_with_gui == 0 ) then
- set add_keys="--without-gui"
- endif
- if ( "${module}" == "MED" && ($?METISDIR) && ($?SCOTCHDIR) ) then
- set add_keys="--enable-splitter=yes --with-metis=${METISDIR} --with-scotch=${SCOTCHDIR}"
- endif
- 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:" >&2
- endif
- if ( $verbose_level > 1 ) then
- cat ${LOG_DIR}/configure_${module}.log | grep ": WARNING:" >&2
- endif
- endif
- endif
- #########################################################
- # perform make
- #########################################################
- echo "... Performing make"
- #########################################################
- # first clear dependencies
- #########################################################
- find . -name ".dep*" -type f -exec rm -f {} \; >& /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 '[*][*][*]' >&2
- #########################################################
- # 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/"@@ >&2
- 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/"@@ >&2
- endif
- #########################################################
- # perform make dev_docs step if -t flag is given
- #########################################################
- if ( $is_tui == 1 && $sts == 0 && -d ${module_build}/doc ) then
- cd ${module_build}/doc
- set dd=`cat Makefile | grep -E "dev_docs[[:space:]]*:"`
- if ( "$dd" != "" ) then
- echo "... Performing make dev_docs"
- make dev_docs >& ${LOG_DIR}/make_dev_docs_${module}.log
- cat ${LOG_DIR}/make_dev_docs_${module}.log | grep '[*][*][*]' >&2
- endif
- endif
- cd ${module_build}
- #########################################################
- # perform make if -i or -p flags are given
- #########################################################
- if ( $is_install == 1 && $sts == 0 || "${module}" == "KERNEL" ) then
- #########################################################
- # deleting build directory if -d flag is given
- #########################################################
- if ( -e $px && $is_delete == 1 ) then
- echo "... Removing $px"
- rm -rf $px
- endif
- echo "... Performing make install"
- 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 ">>> Finished ${module} module"
- 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 "==========================================================================="
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : build.sh
-# Created : Thu Jan 27 09:50:55 2005
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-# This script can be used to build and install SALOME modules from sources.
-# Try build.sh -h for more details about usage.
-#
-####################################################################################
-
-###############################################################
-# Prints usage information and exits
-###############################################################
-usage(){
- echo ""
- echo "Description:"
- echo " Builds given SALOME modules by performing make and (optionally)"
- echo " make install commands"
- echo ""
- echo "Usage:"
- echo " build.sh [ <option> ] ... [ <module> [ <module> ... ] ]"
- echo ""
- echo "<module> Modules to build, separated by space(s)."
- echo " If no modules are given - all SALOME modules are assumed."
- echo " Note, that modules given in command lines are automatically"
- echo " sorted in such order 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 "-w Add --without-gui key to build_configure and configure commands"
- echo " to build SALOME module sources without GUI."
- echo " By default sources are built with GUI."
- echo ""
- echo "-d Delete build directories before calling configure, to enforce full"
- echo " rebuild (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"
- echo " debug mode."
- echo " Use this option together with -c or -b."
- echo " This option can require -d option to be set (to ensure that"
- echo " previously created build directories are removed to enforce"
- echo " rebuild in optimized mode)."
- echo ""
- echo "-t Performs make dev_docs step to build TUI documentation for those"
- echo " modules which support this. Default is off."
- echo ""
- echo "-i Performs make install step. Default is off that means only make"
- echo " 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 (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,"
- echo " configure, make and install procedures will be performed for all"
- echo " specified modules. The modules will be built in the optimized mode."
- echo ""
- exit 1
-}
-
-is_build_configure=0
-is_configure=0
-inst_with_gui=1
-is_delete=0
-verbose_level=2
-params=""
-b_params=""
-modules="KERNEL GUI GEOM MED SMESH VISU NETGENPLUGIN GHS3DPLUGIN BLSURFPLUGIN HexoticPLUGIN GHS3DPRLPLUGIN COMPONENT PYCALCULATOR CALCULATOR HELLO PYHELLO LIGHT SIERPINSKY RANDOMIZER FILTER YACS MULTIPR"
-optim=""
-is_install=0
-is_tui=0
-prefix=""
-
-#########################################################
-# parse parameters
-#########################################################
-while getopts ":hbcwdoitv:p:" option ; do
- case $option in
- h ) usage ;;
- b ) is_build_configure=1 ; is_configure=1 ;;
- c ) is_configure=1 ;;
- w ) inst_with_gui=0 ;;
- d ) is_delete=1 ;;
- o ) optim="--enable-production=yes --disable-debug" ;;
- i ) is_install=1 ;;
- t ) is_tui=1 ;;
- v ) verbose_level=$OPTARG ;;
- p ) is_install=1 ; prefix=$OPTARG ;;
- ? ) usage ;;
- esac
-done
-# shift to have the good number of other args
-shift $((OPTIND - 1))
-
-for arg in $@ ; do
- known=0
- for m in $modules ; do
- if [ "$m" == "$arg" ] ; then known=1 ; break ; fi
- done
- if [ $known -eq 1 ] ; then
- params="$params $arg"
- else
- b_params="$b_params $arg"
- echo
- echo '!!! Warning !!! Unknown module: '$arg'. Skipping.'
- fi
-done
-
-#########################################################
-# sort modules in proper order according to the dependancies
-#########################################################
-if [ "${params}" != "" ] ; then
- xparams=""
- for module in ${modules} ; do
- found=0
- for p in $params ; do
- if [ "$p" == "$module" ] ; then found=1 ; break ; fi
- done
- if [ $found -eq 1 ] ; then xparams="$xparams $module" ; fi
- done
- modules="$xparams"
-elif [ "${b_params}" != "" ] ; then
- echo
- echo "Nothing to be built. Exiting."
- echo
- exit 1
-fi
-
-echo
-echo ">>> The following SALOME packages will be built:"
-echo $modules
-
-#########################################################
-# set environment
-#########################################################
-env_script=`dirname $0`/env_build.sh
-if [ ! -e $env_script ] ; then
- env_script=`dirname $0`/env_products.sh
-fi
-if [ -e $env_script ] ; then
- echo
- echo ">>> Setting environment"
- source $env_script
-else
- echo
- echo '!!! Warning !!! Environment is not set.'
- echo 'Neither env_build.sh nor env_products.sh file is found.'
- echo 'Proceed with the current environment.'
-fi
-
-BUILD_DIR=${PWD}
-LOG_DIR=${BUILD_DIR}/LOGS
-
-#########################################################
-# define installation prefix
-#########################################################
-if [ "$prefix" == "" ] ; then
- prefix=${BUILD_DIR}/INSTALL
- if [ $is_install -eq 1 ] ; then
- echo
- echo '!!! Warning !!! Installation directory is not set.'
- echo "All the modules will be installed to the $prefix"
- elif [ "`echo ${modules} | grep KERNEL`" != "" ] ; then
- echo
- echo '!!! Warning !!! KERNEL module requires install step to be performed.'
- echo "For this module -i option will be forced."
- echo "The module(s) will be installed to the $prefix"
- fi
-else
- if [ "`echo $prefix | grep -E '^/'`" == "" ] ; then
- prefix=${BUILD_DIR}/$prefix
- echo
- echo '!!! Warning !!! Relative prefix is used.'
- echo "All the modules will be installed to the $prefix."
- fi
-fi
-
-#########################################################
-# create log directory
-#########################################################
-if [ ! -e ${LOG_DIR} ] ; then
- mkdir -p ${LOG_DIR}
-fi
-
-echo
-echo "==========================================================================="
-echo "Starting SALOME build at `date`"
-echo "==========================================================================="
-echo
-
-#########################################################
-# loop for all given modules
-#########################################################
-for module in ${modules}; do
- echo ">>> Processing ${module} module"
-
- module_src=`printenv ${module}_SRC_DIR`
- module_build=${BUILD_DIR}/${module}_BUILD
-
- if [ "${module_src}" != "" ] ; then
- add_keys=""
- cd ${BUILD_DIR}
- #########################################################
- # check if sources directory exists
- #########################################################
- if [ ! -e ${module_src} ] ; then
- echo
- echo '!!! Error !!! Cannot find module sources directory:'
- echo "${module_src} does not exist."
- echo
- continue
- fi
- #########################################################
- # check if configure script exists
- #########################################################
- cfg_exist=0
- if [ -e ${module_src}/configure ] ; then
- cfg_exist=1
- fi
- #########################################################
- # perform build_configure if -b flag is given or if
- # configure script does not exist (first compilation?)
- #########################################################
- if [ $is_build_configure -eq 1 ] || [ $cfg_exist -eq 0 ] ; then
- echo "... Performing build_configure"
- #########################################################
- # check if build_configure script exists
- #########################################################
- if [ ! -e ${module_src}/build_configure ] ; then
- echo '!!! Warning !!! Cannot find build_configure script in '${module_src}'.'
- else
- #########################################################
- # call build_configure
- #########################################################
- if [ $inst_with_gui -eq 0 ] ; then
- add_keys="--without-gui"
- fi
- cd ${module_src}
- ./build_configure ${add_keys} >& ${LOG_DIR}/build_configure_${module}.log
- #########################################################
- # echo possible errors
- #########################################################
- if [ $verbose_level -gt 0 ] ; then
- cat ${LOG_DIR}/build_configure_${module}.log | grep -E "(failed|: error:)" >&2
- fi
- fi
- fi
- #########################################################
- # deleting build directory if -d flag is given
- #########################################################
- if [ -e ${module_build} ] && [ $is_delete -eq 1 ] ; then
- echo "... Removing ${module_build}"
- rm -rf ${module_build}
- fi
- #########################################################
- # creating build directory if it does not exist
- #########################################################
- if [ ! -e ${module_build} ] ; then
- mkdir -p ${module_build}
- fi
- cd ${module_build}
- #########################################################
- # check if top Makefile exists in build directory, i.e.
- # is it necessary to run configure script
- #########################################################
- mkfile_exist=0
- if [ -e ${module_build}/Makefile ] ; then
- mkfile_exist=1
- fi
- #########################################################
- # check if configure options are changed from the
- # previous launch
- #########################################################
- opts_changed=0
-## if [ -f ${module_build}/config.log ] ; then
-## old_prefix=`grep -e '^prefix=' ${module_build}/config.log | sed -e "s%^prefix='\(.*\)'%\1%"`
-## if [ "$old_prefix" != "$prefix" ] ; then
-## opts_changed=1
-## fi
-## fi
- #########################################################
- # define installation directory (by using module's version
- # number); default is a build directory
- #########################################################
- vx=""
- cfg_file=configure.ac
- if [ ! -e ${module_src}/${cfg_file} ] ; then
- cfg_file=configure.in.base
- fi
- if [ -e ${module_src}/${cfg_file} ] ; then
- vx=`grep -e "^VERSION=" ${module_src}/${cfg_file} | awk -F= '{ if (NF>1) print $NF; }' | tr -d '[:space:]'`
- if [ "$vx" == "" ] ; then
- vx=`grep -e "^AC_INIT" ${module_src}/${cfg_file} | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
- fi
- fi
- px=${BUILD_DIR}/${module}
- if [ "$prefix" != "" ] ; then
- px=$prefix/${module}
- fi
- if [ "$vx" != "" ] ; then
- px="$px"_"$vx"
- fi
- #########################################################
- # perform configure if -c flag is given or if
- # Makefile does not exist (first compilation?)
- #########################################################
- if [ $is_configure -eq 1 ] || [ $mkfile_exist -eq 0 ] || [ $opts_changed -eq 1 ] ; then
- echo "... Performing configure"
- #########################################################
- # check if configure script exists
- #########################################################
- if [ ! -e ${module_src}/configure ] ; then
- echo
- echo '!!! Warning !!! Can not find configure script in '${module_src}'.'
- echo
- else
- if [ $inst_with_gui -eq 0 ] ; then
- add_keys="--without-gui"
- fi
- if [ "${module}" == "MED" ] && [ "${METISDIR}" != "" ] && [ "${SCOTCHDIR}" != "" ] ; then
- add_keys="--enable-splitter=yes --with-metis=${METISDIR} --with-scotch=${SCOTCHDIR}"
- fi
- if [ "${module}" == "NETGENPLUGIN" ] && [ "$NETGENHOME" != "" ] ; then
- add_keys="--with-netgen=${NETGENHOME}"
- fi
- ${module_src}/configure --prefix=$px ${optim} ${add_keys} >& ${LOG_DIR}/configure_${module}.log
- #########################################################
- # echo possible errors
- #########################################################
- if [ $verbose_level -gt 0 ] ; then
- cat ${LOG_DIR}/configure_${module}.log | grep ": error:" >&2
- fi
- if [ $verbose_level -gt 1 ] ; then
- cat ${LOG_DIR}/configure_${module}.log | grep ": WARNING:" >&2
- fi
- fi
- fi
- #########################################################
- # perform make
- #########################################################
- echo "... Performing make"
- #########################################################
- # first clear dependencies
- #########################################################
- find . -name ".dep*" -type f -exec rm -f {} \; >& /dev/null
- make >& ${LOG_DIR}/make_${module}.log
- sts=$?
- #########################################################
- # if make step is successful set the ${module}_ROOT_DIR
- # environment variable
- #########################################################
- if [ $sts -eq 0 ] ; then
- export ${module}_ROOT_DIR=${module_build}
- fi
- #########################################################
- # print make errors
- #########################################################
- cat ${LOG_DIR}/make_${module}.log | grep '[*][*][*]' >&2
- #########################################################
- # 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 -gt 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/"@@ >&2
- fi
- if [ $verbose_level -gt 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/"@@ >&2
- fi
- #########################################################
- # perform make dev_docs step if -t flag is given
- #########################################################
- if [ $is_tui -eq 1 ] && [ $sts -eq 0 ] && [ -d ${module_build}/doc ] ; then
- cd ${module_build}/doc
- dd=`cat Makefile | grep -E "dev_docs[[:space:]]*:"`
- if [ "$dd" != "" ] ; then
- echo "... Performing make dev_docs"
- make dev_docs >& ${LOG_DIR}/make_dev_docs_${module}.log
- cat ${LOG_DIR}/make_dev_docs_${module}.log | grep '[*][*][*]' >&2
- fi
- fi
- cd ${module_build}
- #########################################################
- # perform make if -i or -p flags are given
- #########################################################
- if [ $is_install -eq 1 ] && [ $sts -eq 0 ] || [ "${module}" == "KERNEL" ] ; then
- #########################################################
- # deleting build directory if -d flag is given
- #########################################################
- if [ -e $px ] && [ $is_delete -eq 1 ] ; then
- echo "... Removing $px"
- rm -rf $px
- fi
- echo "... Performing make install"
- make install >& ${LOG_DIR}/make_install_${module}.log
- sts=$?
- #########################################################
- # if make install step is successful set the
- # ${module}_ROOT_DIR environment variable
- #########################################################
- if [ $sts -eq 0 ] ; then
- export ${module}_ROOT_DIR=$px
- fi
- fi
- echo ">>> Finished ${module} module"
- else
- echo
- echo '!!! Error !!! Cannot find module sources. '${module}'_SRC_DIR environment variable is not set.'
- echo
- fi
-done
-#########################################################
-# finalize
-#########################################################
-cd ${BUILD_DIR}
-
-echo
-echo "==========================================================================="
-echo "SALOME build finished at `date`"
-echo "==========================================================================="
-echo
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : cElementTree-1.0.5.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export cElementTree_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PYTHONPATH=\${cElementTree_DIR}/lib/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_job ${PRODUCT_DIR}/INSTALL.LOG python setup.py install --prefix=${PRODUCT_DIR}
-
-#du -sk ${PRODUCT_SRC_DIR} > ${PRODUCT_DIR}/size.log
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="cElementTree-1.0.5"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : checkFortran.sh
-# Created : Mon Jun 25 17:09:00 2007
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-# The script to check if the Fortran is installed.
-#
-####################################################################################
-
-find_compilers(){
-
-# Known compilers:
-# f77/f90/f95 : generic compiler names
-# g77 : GNU Fortran 77 compiler
-# gfortran : putative GNU Fortran 95+ compiler (in progress)
-# fort77 : native F77 compiler under HP-UX (and some older Crays)
-# frt : Fujitsu F77 compiler
-# pgf77/pgf90/pgf95 : Portland Group F77/F90/F95 compilers
-# xlf/xlf90/xlf95 : IBM (AIX) F77/F90/F95 compilers
-# lf95 : Lahey-Fujitsu F95 compiler
-# fl32 : Microsoft Fortran 77 "PowerStation" compiler
-# af77 : Apogee F77 compiler for Intergraph hardware running CLIX
-# epcf90 : "Edinburgh Portable Compiler" F90
-# fort : Compaq (now HP) Fortran 90/95 compiler for Tru64 and Linux/Alpha
-# ifc : Intel Fortran 95 compiler for Linux/x86
-# efc : Intel Fortran 95 compiler for IA64
-
-# set path separator
-IFS=:
-FORT=""
-
-for prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
- do
-# echo "Checking for $prog"
- for as_dir in $PATH; do
- test -z "$as_dir" && as_dir=.
- if test -f "$as_dir/$prog"; then
- FORT="$prog"
- echo "Found $as_dir/$prog"
- break 2
- fi
- done
-# echo "Result: no"
-done
-
-if test -n "$FORT"; then
- cat >${DIR}/ftest.f <<_ACEOF
- program main
-
- end
-_ACEOF
- $FORT -o ${DIR}/ftest.out ${DIR}/ftest.f > /dev/null
- rm -f ${DIR}/ftest.*
- exit $?
-else
- # Fortran compiler was not found
- exit 1
-fi
-}
-
-find_libraries(){
- source ${DIR}/env_products.sh
- ldd ${DIR}/*/lib/salome/*.so | grep not
- if test $? -eq 0; then
- exit 1
- else
- exit 0
- fi
-}
-
-PROCEDURE=$1
-DIR=$2
-
-$PROCEDURE
-
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : checkSize.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-# The script checks available disk space. Returns 1 if there is no available
-# space on the disc.
-#
-# Usage: checkSize <directory> <required-size>
-#
-####################################################################################
-
-if [ $# -lt 2 ] ; then
- echo "`basename $0` : wrong parameters"
- exit 1
-fi
-var=`df -Pk "$1" | awk '{print $4}'`
-for i in $var; do var=$i; done
-if [ "$var" -lt "$2" ]; then
- echo "Available disk space is $var Kb"
- echo "The necessary disk space is $2 Kb"
- exit 1
-else
- exit 0
-fi
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : common.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-export DELIM="------"
-export SHRC="salome.sh"
-export CSHRC="salome.csh"
-
-#####################################################
-# !WARNING! This is current SALOME version number
-####################################################
-export SALOME_VERSION="5.1.0"
-
-# Name of the single directory for SALOME modules
-export SDIR_NAME="SALOME_${SALOME_VERSION}"
-
-#this function takes one parameter - path to module source folder
-check_salome_src_version(){
-root_dir=`printenv $1`
-
-if [ -n "$root_dir" ]; then
- cfg_file=configure.ac
- if [ ! -f ${root_dir}/${cfg_file} ] ; then
- cfg_file=configure.in.base
- fi
- if [ -f ${root_dir}/${cfg_file} ] ; then
- ver=`grep -e "^AC_INIT" ${root_dir}/${cfg_file} | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
- if [ "$ver" = "${SALOME_VERSION}" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-#this function takes several parameters
-#first parameter contains descriptor of output file
-#next parameters is command for execution
-#in case of bad result of execution ask user about furher steps
-#(user can cancel installation procedure)
-check_job()
-{
- out=$1
- shift
- errfile=/tmp/errlog
- if [ -n "$INSTALL_WORK" ] ; then errfile=$INSTALL_WORK/errlog; fi
- cmd="`pwd` -> $*"
- if [ "$out" != "1" ] ; then cmd="$cmd >> $out" ; fi
- echo -e $cmd
- if [ "$out" != "1" ] ; then
- $* >> $out 2>$errfile
- else
- $*
- fi
- if [ "$?" -ne "0" ] ; then
- if [ $out != "1" ] ; then
- cat $out
- cat $errfile >&2
- cat $errfile >> $out
- fi
- # VSR : 10/11/05: disable answer mode ==>
- #echo -n " " >&2
- #echo -e "NOT DONE !!! => $*"
- #echo -n "Would you like to continue to install this product: (Y,N) [Y] : "
- #read rep;
- #rep=`echo $rep | tr "[A-Z]" "[a-z]"`
- #if test -z $rep || [ $rep = "y" ] ; then
- # return 1
- #fi
- # VSR : 10/11/05: disable answer mode <==
- exit 1
- fi
- return 0
-}
-
-#invoke check_job function
-#all output will be put into terminal
-check_jb()
-{
- check_job 1 $*
- return
-}
-
-# make directory
-makedir()
-{
- rm -rf "$1" > /dev/null
- mkdir -p "$1"
-}
-
-#create environment for sh and csh
-make_env()
-{
-install_root=$1; shift
-install_work=$1;
-
-for i in $SHRC $CSHRC ; do
- if [ -e ${install_work}/$i ]; then
- rm ${install_work}/$i
- fi
- touch ${install_work}/$i
-done
-
-if [ $# -eq 4 ] ; then
- product_name=$4;
- product_env=${install_work}/env_${product_name}.sh
- (test -e ${product_env} && rm ${product_env} )
-fi
-### !!! writing salome.sh file !!! -> define INST_ROOT
-cat >> ${install_work}/$SHRC <<EOF
-#${DELIM} Setting products installation directory ${DELIM}
-export INST_ROOT=${install_root}
-
-#${DELIM} Environment switch: 0 for SALOME building, 1 for SALOME launching ${DELIM}
-export ENV_FOR_LAUNCH=1
-
-EOF
-### !!! The next is for RedHat 9 only !!!
-if [ -f /etc/redhat-release ] ; then
- grep -e "Red Hat Linux release 9" /etc/redhat-release > /dev/null
- if [ $? -eq 0 ] ; then
- cat >> ${install_work}/$SHRC <<EOF
-#${DELIM} Force RH9 to use old implementation of threads ${DELIM}
-export LD_ASSUME_KERNEL=2.4.18
-
-EOF
- fi
-fi
-### !!! writing salome.csh file !!! -> set inital variables
-pre_vars="PATH LD_LIBRARY_PATH LD_RUN_PATH PYTHONPATH TCLLIBPATH"
-for i in $pre_vars ; do
-cat >> ${install_work}/$CSHRC <<EOF
-#${DELIM} setting initial ${i} ${DELIM}
-if (! (\$?${i}) ) then
- setenv $i
-endif
-
-EOF
-done
-
-### !!! writing salome.(c)sh files !!! -> dump products environment files, changing 'export' by 'setenv(a|p)' where necessary
-### Note, that for performance reasons temporary environment files used during installation procedure itself
-### are created without using setenv(a|p) aliases.
-
-# 0. add /usr/lib or /usr/lib64 dir to the LD_LIBRARY_PATH
-#if test `uname -m` = "x86_64" ; then
-#echo 'export LD_LIBRARY_PATH=/usr/lib64:${LD_LIBRARY_PATH}' >> ${install_work}/$SHRC 2>/dev/null
-#echo '' >> ${install_work}/$SHRC 2>/dev/null
-#else
-#echo 'export LD_LIBRARY_PATH=/usr/lib:${LD_LIBRARY_PATH}' >> ${install_work}/$SHRC 2>/dev/null
-#echo '' >> ${install_work}/$SHRC 2>/dev/null
-#fi
-
-# Licence activation
-
-# Source of license environment file
-
-echo '#------ License activation ------' >> ${install_work}/$SHRC 2>/dev/null
-echo 'export LICENSE_FILE=/product/distene/dlim8.var.sh' >> ${install_work}/$SHRC 2>/dev/null
-echo '' >> ${install_work}/$SHRC 2>/dev/null
-echo 'if [ -e "${LICENSE_FILE}" ] ; then' >> ${install_work}/$SHRC 2>/dev/null
-echo 'export SIMULOGD_LICENSE_FILE=29029@amun' >> ${install_work}/$SHRC 2>/dev/null
-echo 'source ${LICENSE_FILE}' >> ${install_work}/$SHRC 2>/dev/null
-echo 'fi' >> ${install_work}/$SHRC 2>/dev/null
-echo '' >> ${install_work}/$SHRC 2>/dev/null
-
-# 1. first dump all environment files into the $SHRC file
-product_sequence="$2"
-install_products="$3"
-for i in $product_sequence ; do
- env_file=${install_work}/env_${i}.sh
- _env_file=${install_work}/_env_${i}.sh
- if [ -e $_env_file ] ; then
- cat $_env_file >> ${install_work}/$SHRC 2>/dev/null
- elif [ -e $env_file ] ; then
- echo $install_products | grep -q "\b${i}\b"
- if [ $? -eq 1 ] ; then
- cat $env_file | sed 's/^/## /' >> ${install_work}/$SHRC 2>/dev/null
- else
- cat $env_file >> ${install_work}/$SHRC 2>/dev/null
- fi
- fi
-done
-
-# 2. writing global functions to _salome.sh file
-cat >> ${install_work}/_$SHRC <<EOF
-##########################################################################
-# Functions exporta and exportp are used to append/prepend correspondingly
-# one directory or a set of directories separated by semicolon symbol (':')
-# to the environment variables like PATH, LD_LIBRARY_PATH, PYTHONPATH,
-# LD_RUN_PATH etc.
-# The main purpose is to replace default setenv command behavior:
-# exporta, exportp also remove duplicated entries, shortening in that way
-# the environment variables.
-# If some directory being added is already included into the variable
-# nothing is done for it.
-# Note, that these functions work some slower that setenv command itself.
-#
-#### cleandup ###
-# appends/prepends set of directories (second parameter)
-# to the another set of directories (first parameter) and
-# removes duplicated entries;
-# the third parameter defines the mode: 0 - append, 1 - prepend
-cleandup() {
-out_var=\`echo \$1 \$2 | awk -v dir=\$3 '{ \\
- na = split(\$2,a,":"); \\
- k1=0; \\
- bbb[k1++]=""; \\
- ccc[""]; \\
- if(\$1 != "<empty>") { \\
- nb = split(\$1,b,":"); \\
- for(i=1;i<=nb;i++) { \\
- if(!(b[i] in ccc) ) { \\
- ccc[b[i]]; \\
- bbb[k1++]=b[i]; \\
- }; \\
- }; \\
- }; \\
- k2=0; \\
- aaa[k2++]=""; \\
- for(i=1;i<=na;i++) { \\
- if(!(a[i] in ccc)) { \\
- ccc[a[i]]; \\
- aaa[k2++]=a[i]; \\
- }; \\
- }; \\
- ORS=":"; \\
- if(dir) { \\
- for(i=1;i<k2;i++) { \\
- print aaa[i]; \\
- } \\
- for(i=1;i<k1;i++) { \\
- print bbb[i]; \\
- } \\
- } \\
- else { \\
- for(i=1;i<k1;i++) { \\
- print bbb[i]; \\
- } \\
- for(i=1;i<k2;i++) { \\
- print aaa[i]; \\
- } \\
- } \\
- }' | sed -e 's/\(.*\):/\1/g'\`
-echo \$out_var
-}
-### exporta ###
-# appends directory or set of directories, separated by ':' (second parameter)
-# to the variable (first parameter)
-exporta () {
-xenv=\`printenv \$1\`
-if [ -z "\$xenv" ]; then xenv="<empty>"; fi
-out_var=\`cleandup \$xenv \$2 0\`
-export \$1=\$out_var
-}
-### exportp ###
-# prepends directory or set of directories, separated by ':' (second parameter)
-# to the variable (first parameter)
-exportp () {
-xenv=\`printenv \$1\`
-if [ -z "\$xenv" ]; then xenv="<empty>"; fi
-out_var=\`cleandup \$xenv \$2 1\`
-export \$1=\$out_var
-}
-###########################################################################
-
-EOF
-
-# 3. writing global functions to _salome.csh file
-cat >> ${install_work}/_$CSHRC <<EOF
-
-###########################################################################
-# Aliases setenva and setenvp are used to append/prepend correspondingly
-# one directory or a set of directories separated by semicolon symbol (':')
-# to the environment variables like PATH, LD_LIBRARY_PATH, PYTHONPATH,
-# LD_RUN_PATH etc.
-# The main purpose is to replace default setenv command behavior:
-# setenva, setenvp also remove duplicated entries, shortening in that way
-# the environment variables.
-# If some directory being added is already included into the variable
-# nothing is done for it.
-# Note, that these aliases work some slower that setenv command itself.
-#
-#### cleandup ###
-# appends/prepends set of directories (second parameter)
-# to the another set of directories (first parameter) and
-# removes duplicated entries;
-# the third parameter defines the mode: 0 - append, 1 - prepend
-alias cleandup "echo \!:1 \!:2 | awk -v dir=\!:3 \\\\
-'"'{ na = split(\$2,a,":"); \\\\
- k1=0; \\\\
- bbb[k1++]=""; \\\\
- ccc[""]; \\\\
- if(\$1 != "<empty>") { \\\\
- nb = split(\$1,b,":"); \\\\
- for(i=1;i<=nb;i++) { \\\\
- if(!(b[i] in ccc) ) { \\\\
- ccc[b[i]]; \\\\
- bbb[k1++]=b[i]; \\\\
- }; \\\\
- }; \\\\
- }; \\\\
- k2=0; \\\\
- aaa[k2++]=""; \\\\
- for(i=1;i<=na;i++) { \\\\
- if(!(a[i] in ccc)) { \\\\
- ccc[a[i]]; \\\\
- aaa[k2++]=a[i]; \\\\
- }; \\\\
- }; \\\\
- ORS=":"; \\\\
- if(dir) { \\\\
- for(i=1;i<k2;i++) { \\\\
- print aaa[i]; \\\\
- } \\\\
- for(i=1;i<k1;i++) { \\\\
- print bbb[i]; \\\\
- } \\\\
- } \\\\
- else { \\\\
- for(i=1;i<k1;i++) { \\\\
- print bbb[i]; \\\\
- } \\\\
- for(i=1;i<k2;i++) { \\\\
- print aaa[i]; \\\\
- } \\\\
- } \\\\
- }'"' | sed -e 's/\(.*\):/\1/g'"
-### setenva ###
-# appends directory or set of directories, separated by ':' (second parameter)
-# to the variable (first parameter)
-alias setenva 'set a=\!:1 ; set b=\!:2 ; \\
- set c=\`printenv \$a\` ; \\
- set b=\`cleandup \$c \$b 0\` ; \\
- setenv \$a \$b ; \\
- unset a, b, c'
-
-### setenvp ###
-# prepends directory or set of directories, separated by ':' (second parameter)
-# to the variable (first parameter)
-alias setenvp 'set a=\!:1 ; set b=\!:2 ; \\
- set c=\`printenv \$a\` ; \\
- set b=\`cleandup \$c \$b 1\` ; \\
- setenv \$a \$b ; \\
- unset a, b, c'
-###########################################################################
-
-EOF
-cat ${install_work}/$CSHRC >> ${install_work}/_$CSHRC
-
-# 4. put the contents of salome.sh to _salome.sh replacing export by export(a|p) aliases where necessary
-sed -e 's%export\([[:blank:]]*\)PATH=\$[{]\?PATH[}]\?:\(.*\)%exporta\1PATH \2%g' -e 's%export\([[:blank:]]*\)PATH=\(.*\):\$[{]\?PATH[}]\?%exportp\1PATH \2%g' ${install_work}/$SHRC > ${INSTALL_WORK}/_tmp1 2>/dev/null
-sed -e 's%export\([[:blank:]]*\)LD_LIBRARY_PATH=\$[{]\?LD_LIBRARY_PATH[}]\?:\(.*\)%exporta\1LD_LIBRARY_PATH \2%g' -e 's%export\([[:blank:]]*\)LD_LIBRARY_PATH=\(.*\):\$[{]\?LD_LIBRARY_PATH[}]\?%exportp\1LD_LIBRARY_PATH \2%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
-sed -e 's%export\([[:blank:]]*\)PYTHONPATH=\$[{]\?PYTHONPATH[}]\?:\(.*\)%exporta\1PYTHONPATH \2%g' -e 's%export\([[:blank:]]*\)PYTHONPATH=\(.*\):\$[{]\?PYTHONPATH[}]\?%exportp\1PYTHONPATH \2%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
-sed -e 's%export\([[:blank:]]*\)LD_RUN_PATH=\$[{]\?LD_RUN_PATH[}]\?:\(.*\)%exporta\1LD_RUN_PATH \2%g' -e 's%export\([[:blank:]]*\)LD_RUN_PATH=\(.*\):\$[{]\?LD_RUN_PATH[}]\?%exportp\1LD_RUN_PATH \2%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2
-
-# Setting "/usr/X11R6/lib" path in LD_LIBRARY_PATH for the libGL.so.1 file
-#if test `uname -m` = "x86_64" ; then
-#echo '# Setting /usr/X11R6/lib64 path in LD_LIBRARY_PATH for the libGL.so.1 file' >> ${INSTALL_WORK}/_tmp2
-#echo 'export LD_LIBRARY_PATH=/usr/X11R6/lib64:${LD_LIBRARY_PATH}' >> ${INSTALL_WORK}/_tmp2
-#else
-#echo '# Setting /usr/X11R6/lib path in LD_LIBRARY_PATH for the libGL.so.1 file' >> ${INSTALL_WORK}/_tmp2
-#echo 'export LD_LIBRARY_PATH=/usr/X11R6/lib:${LD_LIBRARY_PATH}' >> ${INSTALL_WORK}/_tmp2
-#fi
-
-cat ${INSTALL_WORK}/_tmp2 >> ${install_work}/_$SHRC
-
-# 5. Create a salome.csh file from salome.sh by replacing export by setenv, etc.
-sed -e 's%export \([[:alnum:]_[:blank:]]*\)\=%setenv \1 %g' ${install_work}/$SHRC > ${INSTALL_WORK}/_tmp1 2>/dev/null
-cat ${INSTALL_WORK}/_tmp1 >> ${install_work}/$CSHRC
-
-# 6. Create a _salome.csh file from _salome.sh by replacing export by setenv, exporta by setenva, etc.
-sed -e 's%export \([[:alnum:]_[:blank:]]*\)\=%setenv \1 %g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
-sed -e 's%exporta \([[:alnum:]_[:blank:]]*\)%setenva \1%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
-sed -e 's%exportp \([[:alnum:]_[:blank:]]*\)%setenvp \1%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
-sed -e 's%if \[ -n "\${PYTHONPATH}" \] ; then%if ( ${?PYTHONPATH} ) then%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
-sed -e 's%if \[ -n "\${ENV_FOR_LAUNCH}" \] ; then%if ( ${?ENV_FOR_LAUNCH} ) then%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
-sed -e 's%if \[ "\${ENV_FOR_LAUNCH}" == "1" \] ; then%if ( "\${ENV_FOR_LAUNCH}" == "1" ) then%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
-sed -e 's%^\([[:blank:]]*\)fi\([[:blank:]]*\)$%\1endif\2%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
-sed -e 's%var.sh%var.csh%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
-sed -e 's%if \[ -e "\${LICENSE_FILE}" \] ; then%if ( -e ${LICENSE_FILE} ) then%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
-
-cat ${INSTALL_WORK}/_tmp1 >> ${install_work}/_$CSHRC 2>/dev/null
-
-rm -f ${INSTALL_WORK}/_tmp1 ${INSTALL_WORK}/_tmp2
-
-if [ $# -eq 5 ] ; then
- product_dir=$5
- if [ -e ${product_dir} ] ; then
- test -e ${product_dir}/$SHRC && mv ${product_dir}/$SHRC ${product_dir}/${SHRC}_`date +%F_%T`
- cp ${install_work}/_$SHRC ${product_dir}/$SHRC
- test -e ${product_dir}/$CSHRC && mv ${product_dir}/$CSHRC ${product_dir}/${CSHRC}_`date +%F_%T`
- cp ${install_work}/_$CSHRC ${product_dir}/$CSHRC
- fi
-fi
-sed -e 's%setenv ENV_FOR_LAUNCH 1%setenv ENV_FOR_LAUNCH 0%' ${install_work}/_$CSHRC > ${install_root}/env_build.csh
-sed -e 's%export ENV_FOR_LAUNCH=1%export ENV_FOR_LAUNCH=0%' ${install_work}/_$SHRC > ${install_root}/env_build.sh
-
-cp -f ${install_work}/_$CSHRC ${install_root}/env_products.csh
-cp -f ${install_work}/_$SHRC ${install_root}/env_products.sh
-
-rm -f ${install_work}/_$SHRC ${install_work}/_$CSHRC
-### !!! copying build.csh and build.sh scripts
-if [ -e ./build.csh ]; then
- cp -f ./build.csh ${install_root}
-fi
-if [ -e ./build.sh ]; then
- cp -f ./build.sh ${install_root}
-fi
-### !!! copying release notes
-for p in `ls ../` ; do
- export pdf=`echo ${p} | sed s/[.]/" "/g | awk '{print $2}'`
- if [ "${pdf}" = "pdf" ]; then
- export RN=$p
- if [ ! -e ${install_root}/${RN} ]; then
- cp -f ../${RN} ${install_root}
- fi
- fi
-done
-
-}
-
-#try use already existing product
-try_existing()
-{
-product_dir=$1; install_root=$2; install_work=$3;
-product_sequence="$4"; installed_products="$5"; product_type=$6
-env_file=${product_dir}/env_${product_type}.sh
-if [ -f ${env_file} ] ; then
- cp -f ${env_file} ${install_work}/_env_${product_type}.sh
- make_env ${install_root} ${install_work} "${product_sequence}" "${installed_products}"
- source ${install_work}/$SHRC
- check_version
- if [ $? -eq 0 ] ; then
- return 0
- fi
-fi
-echo ${product_type} | grep -q '_src$'
-if [ $? -eq 1 ] ; then
- print_env_bin
-else
- print_env_src
-fi
-return 0
-}
-
-#check existance of lib passed as first parameter
-#return 0 if lib exists
-#if you pass second parameter search will be done in it
-#otherwise search will be done in $LD_LIBRARY_PATH
-#you should use : as dilimeter if you are going to pass second parameter
-check_lib_version(){
-if [ -n "$2" ]; then
- whereIs=$2
-else
- whereIs=$LD_LIBRARY_PATH
-fi
-for L in `echo ${whereIs} | sed -e"s%:% %g"` ; do
- ret=`find $L -name $1 2>/dev/null`
- if [ -n "$ret" ] ; then
- #echo "The $1 exists on yours system in a $L folder"
- return 0
- fi
-done
-return 1
-}
-
-find_in_path(){
-file=$1; shift;
-path=$*
-for i in `echo ${path} | sed -e"s%:% %g"` ; do
- ret=`find $i -name $file -maxdepth 1 2>/dev/null`
- if [ -n "$ret" ] ; then
- ret=`echo $ret | sed -e"s%/\$file$%%g"`
- echo $ret
- return 0
- fi
-done
-return 1
-}
-
-sort_path(){
-arg1=$1; val1=$2; arg2=$3; val2=$4
-tmp="^$val1$|^$val1:|:$val1$|:$val1:"
-#echo $val2 | grep -E "$tmp" >/dev/null 2>&1
-#if [ $? -eq 0 ] ; then
-# echo "$arg2"
-# return
-#fi
-to_tail=1
-exclude_list="usr lib bin sbin etc"
-for i in ${exclude_list} ; do
- tmp="^/$i/|^/$i\$"
- echo ${val1} | grep -E "$tmp" >/dev/null 2>&1
- if [ $? == 0 ] ; then to_tail=0; break; fi
-done
-if [ $to_tail -eq 0 ] ; then
- echo $arg2:$arg1
-else
- echo $arg1:$arg2
-fi
-return $to_tail
-}
-
-where_gcc(){
-maj_ver=`echo $1 | awk -F. '{if(NF>0) print $1; else print 0}'`
-min_ver=`echo $1 | awk -F. '{if(NF>1) print $2; else print 0}'`
-rel_ver=`echo $1 | awk -F. '{if(NF>2) print $3; else print 0}'`
-let ver=$maj_ver*10000+$min_ver*100+$rel_ver
-newer=""
-newerver=0
-for i in `echo ${PATH}:/usr/bin:/usr/local/bin | sed -e"s%:% %g"` ; do
- ret=`find $i -name gcc -maxdepth 1 2>/dev/null`
- if [ -n "$ret" ] ; then
- maj_ver=`$ret -dumpversion | awk -F. '{if(NF>0) print $1; else print 0}'`
- min_ver=`$ret -dumpversion | awk -F. '{if(NF>1) print $2; else print 0}'`
- rel_ver=`$ret -dumpversion | awk -F. '{if(NF>2) print $3; else print 0}'`
- let ver1=$maj_ver*10000+$min_ver*100+$rel_ver
- if [ $ver1 -eq $ver ] ; then
- ret=`echo $ret | sed -e"s%/gcc$%%g"`
- echo $ret
- return 0
- fi
- if [ $ver1 -gt $ver ] && [ $ver1 -gt $newerver ] ; then
- let newerver=$ver1
- newer=`echo $ret | sed -e"s%/gcc$%%g"`
- fi
- fi
-done
-if [ -n "$newer" ] ; then
- echo $newer
- return 0
-fi
-return 1
-}
-
-where_tcl(){
-if test -z "${TCLHOME}"; then
- TCLHOME=/usr
-fi
-tclcfg=`find ${TCLHOME}/lib -name "tclConfig.sh" 2> /dev/null`
-file=""
-maxver=0
-for f in $tclcfg; do
- ver=`cat $f | grep -e "TCL_VERSION=.*" | sed -e "s%TCL_VERSION=[\'|\"]\(.*\)[\'|\"]%\1%g" | awk -F. '{x=0;for(i=1;i<=3;i++){x=x*100;if(i<=NF)x+=$i;}print x;}'`
- if [ $maxver -lt $ver ]; then
- maxver=$ver
- file=$f
- fi
-done
-if test -n "$file"; then
- echo `dirname $file`
- return 0
-else
- echo ""
- return 1
-fi
-}
-
-where_tk(){
-if test -z "${TCLHOME}"; then
- TCLHOME=/usr
-fi
-tclcfg=`find ${TCLHOME}/lib -name "tkConfig.sh" 2> /dev/null`
-file=""
-maxver=0
-for f in $tclcfg; do
- ver=`cat $f | grep -e "TK_VERSION=.*" | sed -e "s%TK_VERSION=[\'|\"]\(.*\)[\'|\"]%\1%g" | awk -F. '{x=0;for(i=1;i<=3;i++){x=x*100;if(i<=NF)x+=$i;}print x;}'`
- if [ $maxver -lt $ver ]; then
- maxver=$ver
- file=$f
- fi
-done
-if test -n "$file"; then
- echo `dirname $file`
- return 0
-else
- echo ""
- return 1
-fi
-}
-
-where_dps(){
-if test -f /usr/X11R6/include/DPS/dpsconfig.h ; then
- echo "/usr/X11R6"
- return 0
-fi
-if test -f /usr/include/DPS/dpsconfig.h ; then
- echo "/usr"
- return 0
-fi
-echo ""
-return 1
-}
-
-where_gl_includes(){
-for d in /usr/X11R6/include /usr/include ; do
- if [ -d ${d}/GL ] && [ -f ${d}/GL/gl.h ] ; then
- echo "$d"
- return 0
- fi
-done
-echo ""
-return 1
-}
-
-where_gl_libs(){
-# search libGL.so* file and correct libGL.la in the same directory
-for d in /usr/X11R6/lib64 /usr/lib64 /usr/X11R6/lib /usr/lib ; do
- if [ "`ls ${d}/libGL.so* 2>/dev/null`" ] && [ -f ${d}/libGL.la ]; then
- libdir=`grep "libdir=" ${d}/libGL.la | sed -e "s%libdir='\(.*\)'%\1%" -e "s%/*$%%g"`
- if [ "$libdir" == "$d" ] ; then
- echo "$d"
- return 0
- fi
- fi
-done
-# search libGL.la file and check if this file is correct
-for d in /usr/X11R6/lib64 /usr/lib64 /usr/X11R6/lib /usr/lib ; do
- if [ -f ${d}/libGL.la ] ; then
- libdir=`grep "libdir=" ${d}/libGL.la | sed -e "s%libdir='\(.*\)'%\1%"`
- if [ "`ls $libdir/libGL.so* 2>/dev/null`" ] ; then
- echo "$d"
- return 0
- fi
- fi
-done
-# then search libGL.so* file
-for d in /usr/X11R6/lib64 /usr/lib64 /usr/X11R6/lib /usr/lib ; do
- if [ "`ls ${d}/libGL.so* 2>/dev/null`" ] ; then
- echo "$d"
- return 0
- fi
-done
-echo ""
-return 1
-}
-
-modif_la_files(){
-ldir=$1
-if [ -z "$ldir" ] || [ ! -d "$ldir" ]; then return 1; fi
-
-srcdir=`pwd`
-
-#SALOME_MODULES="`env | awk -F_ '/[[:alnum:]]*_ROOT_DIR/ { print $1 }'`"
-SALOME_MODULES="`env | awk -F_ '/[a-zA-Z0-9]*_ROOT_DIR/ { print $1 }'`"
-
-cd $ldir
-ldir=`pwd`
-la_files=`find . -name "*.la"`
-
-for l in X ${la_files}; do
-if [ "$l" != "X" ] ; then
- d=`dirname $l`
- l=`basename $l`
- cd $ldir; cd $d
- # 1. process salome modules dependencies
-
- for mod in $SALOME_MODULES; do
- moddir=`printenv ${mod}_ROOT_DIR`
- if [ -n "${moddir}" ] ; then
- #echo $l $mod $moddir
-# sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${mod}[^[:space:]/]*/\(lib\|lib64\)% \1${moddir}/${myldir}%g" $l > $l"_"
-# sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${mod}[^[:space:]/]*/lib% \1${moddir}/lib%g" $l > $l"_"
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${mod}[^[:space:]/]*/lib% \1${moddir}/lib%g" \
- -e "s%^libdir='[^[:space:]]*${mod}[^[:space:]]*/\(lib.*\)'%libdir='${moddir}/\1'%g" $l > $l"_"
- mv -f $l"_" $l
-# for mod1 in $SALOME_MODULES; do
-# sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${mod1}[^[:space:]]*/${mod1}_build%%g" $l > $l"_"
-# mv -f $l"_" $l
-# done
- fi
- done
-
- # 2. process CAS.CADE dependencies
- casdir=`printenv CASROOT`/lib
- if [ ! -d ${casdir} ] ; then casdir=`printenv CASROOT`/Linux/lib ; fi
- if [ ! -d ${casdir} ] ; then casdir=`printenv CASROOT`/lin/lib ; fi
- if [ -n "${CASROOT}" ] && [ -d "${casdir}" ] ; then
- # echo $l $CASROOT $casdir
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*\(OCT\|CAS\)[^[:space:]/]*/Linux/lib% \1${casdir}%g" \
- -e "s%[[:space:]]\(-L\)\?[^[:space:]]*\(OCT\|CAS\)[^[:space:]/]*/lin/lib% \1${casdir}%g" \
- -e "s%[[:space:]]\(-L\)\?[^[:space:]]*\(OCT\|CAS\)[^[:space:]/]*/lib% \1${casdir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 3. process omniORB dependencies
- omnidir=`printenv OMNIORBDIR`/lib/i586_linux_2.0_glibc2.1
- if [ ! -d ${omnidir} ] ; then omnidir=`printenv OMNIORBDIR`/lib ; fi
- if [ -n "${OMNIORBDIR}" ] && [ -d "${omnidir}" ] ; then
- # echo $l $OMNIORBDIR $omnidir
- sed -e "s%-L[^[:space:]]*omni[^[:space:]]*%-L${omnidir}%g" \
- -e "s%-R[^[:space:]]*omni[^[:space:]]*%-R${omnidir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 4. process VTK dependencies
- vtkpath=`printenv VTKHOME`
- if [ `uname -m` = "x86_64" ] && [ -d ${vtkpath}/lib64 ] ; then
- LIB_PREFIX=64
- elif [ -d ${vtkpath}/lib ] ; then
- LIB_PREFIX=""
- else
- LIB_PREFIX=64
- fi
- vtkldir=${vtkpath}/lib${LIB_PREFIX}
- vtkdir=${vtkldir}/vtk-5.0
- if [ -n "${VTKHOME}" ] && [ -d "${vtkdir}" ] && [ -d "${vtkldir}" ] ; then
- # echo $l $VTKHOME $vtkdir
- sed -e "s%-L[^[:space:]]*VTK[^[:space:]]*/\(lib\|lib64\)/vtk\-5\.0%-L${vtkdir}%g" \
- -e "s%-L[^[:space:]]*VTK[^[:space:]]*/\(lib\|lib64\)%-L${vtkldir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 5. process HDF dependencies
- hdfdir=`printenv HDF5HOME`/lib
- if [ -n "${HDF5HOME}" ] && [ -d "${hdfdir}" ] ; then
- # echo $l $HDF5HOME $hdfdir
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*hdf[^[:space:]/]*/lib% \1${hdfdir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 6. process MED dependencies
- meddir=`printenv MED2HOME`/lib
- if [ -n "${MED2HOME}" ] && [ -d "${meddir}" ] ; then
- # echo $l $MED2HOME $meddir
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*med[^[:space:]/]*/lib% \1${meddir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 7. process qwt dependencies
- qwtdir=`find_in_path libqwt.so ${LD_LIBRARY_PATH}`
- if [ -n "${qwtdir}" ] && [ -d "${qwtdir}" ] ; then
- # echo $l $qwtdir
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*qwt[^[:space:]/]*/lib% \1${qwtdir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 8. process qt dependencies
- qtdir=`printenv QTDIR`/lib
- if [ -n "${QTDIR}" ] && [ -d "${qtdir}" ] ; then
- # echo $l $QTDIR $qtdir
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*qt[^[:space:]/]*/lib% \1${qtdir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 9. process python dependencies
- where_python=`which python` # e.g. /usr/bin/python
- if [ -n "$where_python" ] ; then
- where_python=`dirname $where_python` # --> /usr/bin
- where_python=`dirname $where_python` # --> /usr
- python_version=`python -c "import sys; print sys.version[:3]"`
- # echo $l $where_python $python_version
- sed -e "s%-L[^[:space:]]*python[0-9]\.[0-9]\([^[:space:]]*\)%-L${where_python}/lib/python${python_version}\1%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 10. process sip dependencies
- sipdir=`find_in_path sip.so ${LD_LIBRARY_PATH}`
- if [ -n "${sipdir}" ] && [ -d "${sipdir}" ] ; then
- # echo $l $sipdir
- sed -e "s%-L[^[:space:]]*sip[^[:space:]]*%-L${sipdir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 11. process PyQt dependencies
- pyqtdir=`find_in_path Qt.so ${LD_LIBRARY_PATH}`
- if [ -n "${pyqtdir}" ] && [ -d "${pyqtdir}" ] ; then
- # echo $l $pyqtdir
- sed -e "s%-L[^[:space:]]*PyQt[^[:space:]]*%-L${pyqtdir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 12. process tcl/tk dependencies
- tcldir=`printenv TCLHOME`/lib
- if [ -n "${tcldir}" ] && [ -d "${tcldir}" ] ; then
- # echo $l $TCLHOME $tcldir
- sed -e "s%-L[^[:space:]]*tcltk[^[:space:]]*/lib%-L${tcldir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
- # 13. process boost dependencies
- boostdir=`printenv BOOSTDIR`/lib
- if [ -n "${boostdir}" ] && [ -d "${boostdir}" ] ; then
- # echo $l $BOOSTDIR $boostdir
- sed -e "s%-L[^[:space:]]*boost[^[:space:]]*/lib%-L${boostdir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
-
- blsurfdir=`printenv BLSURFHOME`/lib
- if [ -n "${blsurfdir}" ] && [ -d "${blsurfdir}" ] ; then
- # echo $l $BOOSTDIR $boostdir
- sed -e "s%-L[^[:space:]]*blsurf[^[:space:]]*/lib%-L${blsurfdir}%g" $l > $l"_"
- mv -f $l"_" $l
- fi
-
-# # 14. modify libdir
-# #sed -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib/salome'%g" $l > $l"_"
-# mod=`basename $ldir | awk -F_ '{print $1}'`
-# moddir=`printenv ${mod}_ROOT_DIR`
-# sed -e "s%^libdir='[^[:space:]]*${mod}[^[:space:]]*/\(lib.*\)'%libdir='${moddir}/\1'%g" $l > $l"_"
-# mv -f $l"_" $l
-
- # 15. process libxml dependencies
- libxmldir=`printenv LIBXML_DIR`/lib
- if [ ! -d ${libxmldir} ] ; then libxmldir=`printenv LIBXML_DIR`/lib ; fi
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*libxml2-[0-9]\.[0-9]\.[0-9][0-9]/lib% \1${libxmldir}%g" $l > $l"_"
- mv -f $l"_" $l
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*libxml2/lib% \1${libxmldir}%g" $l > $l"_"
- mv -f $l"_" $l
-
- # 16. process metis dependencies
- metisdir=`printenv METISDIR`
- if [ ! -d ${metisdir} ] ; then metisdir=`printenv METISDIR` ; fi
- sed -e "s%-L[^[:space:]]*metis[^[:space:]]*%-L${metisdir}%g" $l > $l"_"
- mv -f $l"_" $l
-
- # 17. process scotch dependencies
- scotchdir=`printenv SCOTCHDIR`/bin
- if [ ! -d ${scotchdir} ] ; then scotchdir=`printenv SCOTCHDIR`/bin ; fi
- sed -e "s%-L[^[:space:]]*scotch[^[:space:]]*/bin%-L${scotchdir}%g" $l > $l"_"
- mv -f $l"_" $l
-
- # 18. process libGL.la dependencies
- if test `uname -m` = "x86_64" ; then
- libGLpath=/usr/lib64/libGL.la
- else
- libGLpath=/usr/lib/libGL.la
- fi
- sed -e "s%$libGLpath%""%g" $l > $l"_"
- mv -f $l"_" $l
-
- # 19. process graphviz dependencies
- graphvizdir=`printenv GRAPHVIZHOME`/lib
- if [ ! -d ${graphvizdir} ] ; then graphvizdir=`printenv GRAPHVIZHOME`/lib ; fi
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*graphviz-[0-9]\.[0-9]\+\.[0-9]/lib% \1${graphvizdir}%g" $l > $l"_"
- chmod -f --reference=$l $l"_"
- mv -f $l"_" $l
-
-fi
-done
-
-cd $srcdir
-return 0
-}
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : create_config.sh
-# Created : Fri May 30 10:40:01 2008
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-source ./common.sh
-
-export INST_ROOT=$1
-export INSTALL_WORK=$2
-export PRODUCT_SEQUENCE=$3
-export INSTALL_PRODUCTS=$4
-export PRODUCT_DIR=$5
-
-# --- configuration file ---
-CONFIG_FILE=${INSTALL_WORK}/config_appli.xml
-
-# create and source environment file
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-source ${INSTALL_WORK}/$SHRC
-
-# remove config file
-if [ -e ${CONFIG_FILE} ] ; then
- rm ${CONFIG_FILE}
-fi
-# create empty config file
-touch ${CONFIG_FILE}
-
-# begin <application> tag
-echo "<application>" >> ${CONFIG_FILE}
-
-# <prerequisites> tag : path to the environment script
-echo " <prerequisites path=\"${INST_ROOT}/env_products.sh\"/>" >> ${CONFIG_FILE}
-
-# begin <modules> tag
-echo " <modules>" >> ${CONFIG_FILE}
-
-# for each module create <module> tag
-SALOME_MODULES="`env | awk -F_ '/[a-zA-Z0-9]*_ROOT_DIR/ { print $1 }' | grep -v -E '^SALOME$' | grep -v -E '^HXX2SALOME$'`"
-GUI_MODULES="`echo $SALOME_MODULES | tr \"[:space:]\" \"\n\" | grep -v -E \"(^KERNEL|^GUI|^SAMPLES|PLUGIN)$\"`"
-for mod in ${SALOME_MODULES}; do
- echo ${GUI_MODULES} | tr "[:space:]" "\n" | grep -E "^${mod}$" >& /dev/null
- if [ "$?" == "0" ] ; then
- gui_attr="yes"
- else
- gui_attr="no"
- fi
- path_attr="`printenv ${mod}_ROOT_DIR`"
- echo " <module name=\"${mod}\" gui=\"${gui_attr}\" path=\"${path_attr}\"/>" >> ${CONFIG_FILE}
-done
-
-# end <modules> tag
-echo " </modules>" >> ${CONFIG_FILE}
-
-# <samples> tag : path to the samples directory
-if [ -n ${DATA_DIR} ] && [ -d ${DATA_DIR} ] ; then
- echo " <samples path=\"${DATA_DIR}\"/>" >> ${CONFIG_FILE}
-fi
-
-# end <application> tag
-echo "</application>" >> ${CONFIG_FILE}
-
-# copy resulting confuguration file to the KERNEL module
-if [ -n ${PRODUCT_DIR} ] && [ -d ${PRODUCT_DIR} ] ; then
- cp -f ${CONFIG_FILE} ${PRODUCT_DIR}/bin/salome
-fi
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : diskSpace.sh
-# Created : Mon Jun 25 17:09:00 2007
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-# The script returns available disk space.
-#
-# Usage: diskSpace <directory>
-#
-####################################################################################
-
-if [ $# -lt 1 ] ; then
- echo "`basename $0` : wrong parameters"
- exit 1
-fi
-var=`df -Pk "$1" | awk '{print $4}'`
-for i in $var; do var=$i; done
-echo $var
-exit 0
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : docutils-0.3.9.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# It is not necessary to check version!
-return 0
-}
-
-print_env_bin(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYTHONPATH=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}/lib/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
-export PATH=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}/bin:\${PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-cd ${PRODUCT_SRC_DIR} ; python setup.py install --prefix=${PRODUCT_DIR}
-
-cd ${PRODUCT_DIR}/bin;
-
-sed -e "s%#\!.*python%#\!/usr/bin/env python%" rst2latex.py > _rst2latex.py
-mv -f _rst2latex.py rst2latex.py
-chmod a+x rst2latex.py
-ln -sf rst2latex.py rst2latex
-
-sed -e "s%#\!.*python%#\!/usr/bin/env python%" rst2html.py > _rst2html.py
-mv -f _rst2html.py rst2html.py
-chmod a+x rst2html.py
-ln -sf rst2html.py rst2html
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-cd ${PRODUCT_DIR}/bin;
-
-sed -e "s%#\!.*python%#\!/usr/bin/env python%" rst2latex.py > _rst2latex.py
-mv -f _rst2latex.py rst2latex.py
-chmod a+x rst2latex.py
-ln -sf rst2latex.py rst2latex
-
-sed -e "s%#\!.*python%#\!/usr/bin/env python%" rst2html.py > _rst2html.py
-mv -f _rst2html.py rst2html.py
-chmod a+x rst2html.py
-ln -sf rst2html.py rst2html
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="docutils-0.3.9"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : doxygen-1.5.6.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-check_lib_version doxygen $PATH
-if [ "$?" -ne "0" ]; then
- return 1
-fi
-ver=`doxygen --version`
-maj_ver=`echo $ver | awk -F. '{if(NF>0) print $1; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
-min_ver=`echo $ver | awk -F. '{if(NF>1) print $2; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
-rel_ver=`echo $ver | awk -F. '{if(NF>2) print $3; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
-let ver=$maj_ver*10000+$min_ver*100+$rel_ver
-if [ $ver -eq 10506 ] ; then
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PATH=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}/bin:\${PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-f_install="--install "`which install`
-
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --prefix ${PRODUCT_DIR} $f_install
-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
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="doxygen-1.5.6"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : elementtree-1.2.6.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export elementtree_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PYTHONPATH=\${elementtree_DIR}/lib/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_job ${PRODUCT_DIR}/INSTALL.LOG python setup.py install --prefix=${PRODUCT_DIR}
-
-#du -sk ${PRODUCT_SRC_DIR} > ${PRODUCT_DIR}/size.log
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="elementtree-1.2.6"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : gcc-common.sh
-# Created : Mon Jan 22 14:23:10 2007
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-if [ "x$GCC_VERSION" == "x" ] ; then
- GCC_VERSION="3.2"
-fi
-GCC_VERSION_MAJ=`echo $GCC_VERSION | awk -F[.-] '{if(NF>0) print $1; else print 0}'`
-GCC_VERSION_MIN=`echo $GCC_VERSION | awk -F[.-] '{if(NF>1) print $2; else print 0}'`
-GCC_VERSION_REL=`echo $GCC_VERSION | awk -F[.-] '{if(NF>2) print $3; else print 0}'`
-let GCC_VERSION_ID=$GCC_VERSION_MAJ*10000+$GCC_VERSION_MIN*100+$GCC_VERSION_REL
-
-check_version()
-{
-# version number is calculated as: <major>*10000+<minor>*100+<release>
-# e.g. for gcc 3.2 it is equal to 30200, for gcc 3.3.2 - 30202
-gcc_ver=`gcc -dumpversion | awk -F[.-] '{v1=0;v2=0;v3=0;if(NF>0)v1=$1;if(NF>1)v2=$2;if(NF>2)v3=$3;print v1*10000+v2*100+v3}'`
-if [ $gcc_ver -eq $GCC_VERSION_ID ] ; then
- return 0
-fi
-return 1
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-gcc_root="`where_gcc $GCC_VERSION`"
-if [ -n "${gcc_root}" ] ; then
- gcc_root=`cd ${gcc_root}/..; pwd`
- # get version number: <major>, <minor> and <release>
- # <major> and <minor> numbers are checked strickly, but <release> number can be larger than required one
- # version number is calculated as: <major>*10000+<minor>*100+<release>
- # e.g. for gcc 3.2 it is equal to 30200, for gcc 3.3.2 - 30202
- maj_ver=`${gcc_root}/bin/gcc -dumpversion | awk -F[.-] '{if(NF>0) print $1; else print 0}'`
- min_ver=`${gcc_root}/bin/gcc -dumpversion | awk -F[.-] '{if(NF>1) print $2; else print 0}'`
- rel_ver=`${gcc_root}/bin/gcc -dumpversion | awk -F[.-] '{if(NF>2) print $3; else print 0}'`
- let gcc_ver=$maj_ver*10000+$min_ver*100+$rel_ver
- if [ $gcc_ver -ge $GCC_VERSION_ID ] ; then
- tmp="\${GCC_ROOT}/bin ${gcc_root}/bin \${PATH} ${PATH}";
- path=`sort_path ${tmp}`
- tmp="\${GCC_ROOT}/lib ${gcc_root}/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 GCC_ROOT=${gcc_root}
-#export CXX=\${GCC_ROOT}/bin/g++
-#export CC=\${GCC_ROOT}/bin/gcc
-#export PATH=${path}
-#export LD_LIBRARY_PATH=${ld_library_path}
-##
-EOF
- make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-####### THIS COULD BE USED FOR STRICT COMPARISON ##############################
-# if [ $maj_ver -eq 3 ] && [ $min_ver -eq 2 ] && [ $rel_ver -eq 0 ] ; then
-######################################################################################
- if [ $maj_ver -eq $GCC_VERSION_MAJ ] && [ $min_ver -eq $GCC_VERSION_MIN ] && [ $rel_ver -ge $GCC_VERSION_REL ] ; then
- return 0
- else
- return 2
- fi
- fi
-fi
-return 1
-}
-
-try_preinstalled(){
-#echo "It is impossible to install gcc from binaries or sources! So native gcc will be used."
-try_native
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-export PRODUCT="gcc-$GCC_VERSION"
-export PRODUCT_DIR=${INST_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : ghs3d-4.0.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PATH=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}/DISTENE/Tools/TetMesh-GHS3D4.0/bin:\$PATH
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-echo "It's impossible to install ${PRODUCT} from sources"
-}
-
-install_source_and_build()
-{
-install_binary
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${BIN_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-REMOVE_SRC_TMP=$9;
-shift
-BIN_DIR=$9;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="ghs3d-4.0"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : graphviz-2.16.1.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-isdot=`which dot 2>/dev/null`
-if [ -n "$isdot" ]; then
- ver=`dot -V 2>&1 | awk '{print $5}'`
- maj_ver=`echo $ver | awk -F. '{if(NF>0) print $1; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- min_ver=`echo $ver | awk -F. '{if(NF>1) print $2; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- rel_ver=`echo $ver | awk -F. '{if(NF>2) print $3; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- let ver=$maj_ver*10000+$min_ver*100+$rel_ver
- if [ $ver -eq 20203 ] ; then
- return 0
- fi
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GRAPHVIZHOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${GRAPHVIZHOME}/bin:\${PATH}
-export LD_LIBRARY_PATH=\${GRAPHVIZHOME}/lib:\${GRAPHVIZHOME}/lib/graphviz:\${LD_LIBRARY_PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
- if test `uname -m` = "x86_64" ; then
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG configure --prefix=${PRODUCT_DIR} --with-mylibgd --with-gdlibdir=/usr/lib64 --with-fontconfiglibdir=/usr/lib64 --with-expatlibdir=/usr/lib64 --with-freetypelibdir=/usr/lib64 --with-tcl=${TCLHOME} --disable-rpath --enable-perl=no CFLAGS=-m64 CXXFLAGS=-m64
- else
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG configure --prefix=${PRODUCT_DIR} --with-tcl=${TCLHOME} --disable-rpath --enable-perl=no
- fi
-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
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# modify *.la files
-ldir=${PRODUCT_DIR}/lib
-cd $ldir
-
-for l in X `find $ldir -name "*.la"`; do
- if [ "$l" != "X" ] ; then
- pydir="" ; tcldir=""
- if [ -n "${PYTHONHOME}" ] ; then pydir=${PYTHONHOME} ; fi
- if [ -n "${TCLHOME}" ] ; then tcldir=${TCLHOME} ; fi
- sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${PRODUCT}% \1${PRODUCT_DIR}%g" \
- -e "s%[[:space:]]\(-L\)\?[^[:space:]]*Python[^[:space:]]*/lib% \1${pydir}/lib%g" \
- -e "s%[[:space:]]\(-L\)\?[^[:space:]]*tcltk[^[:space:]]*/lib% \1${tcldir}/lib%g" $l > $l"_"
- chmod -f --reference=$l $l"_"
- mv -f $l"_" $l
-
- lpath=`dirname $l`
- libdir=`grep -e "^libdir=.*" $l | sed -e "s/^libdir=[\'|\"]\(.*\)[\'|\"]/\1/g"`
- sed -e "s%${libdir}%${lpath}%g" $l > $l"_"
- chmod -f --reference=$l $l"_" ; mv -f $l"_" $l
- fi
-done
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="graphviz-2.16.1"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : hdf5-1.6.4.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -z "$HDF5HOME" ]; then
- return 1
-fi
-check_lib_version libhdf5.so.0.0.0 ${HDF5HOME}/lib
-if [ "$?" -ne "0" ]; then
- return 1
-fi
-check_lib_version libhdf5.settings ${HDF5HOME}/lib
-if [ "$?" -eq "0" ]; then
- ver=`grep "HDF5 Version:" ${HDF5HOME}/lib/libhdf5.settings | awk '{print $3}'`
- if [ "$ver" == "1.6.4" ]; then
- return 0
- fi
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export HDF5HOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${HDF5HOME}/bin:\$PATH
-export LD_LIBRARY_PATH=\${HDF5HOME}/lib:\${LD_LIBRARY_PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-if test `uname -m` = "x86_64" ; then
-HDF_CONFIGURE_OPTIONS="-disable-debug --enable-production --enable-threadsafe --enable-hdf5v1_2 --enable-stream-vfd --disable-hsizet --with-pthread=/usr/include,/usr/lib CFLAGS=-m64 CXXFLAGS=-m64"
-else
-HDF_CONFIGURE_OPTIONS="-disable-debug --enable-production --enable-threadsafe --enable-hdf5v1_2 --enable-stream-vfd --disable-hsizet --with-pthread=/usr/include,/usr/lib"
-fi
-
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
- ./configure --prefix=${PRODUCT_DIR} $HDF_CONFIGURE_OPTIONS
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-check_job ${PRODUCT_DIR}/INSTALL.LOG make install
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-### modify libhdf5.la file to correct direct path to hdf5 library
-### no need to do this for sources installation because 'make install' does it!
-cd ${PRODUCT_DIR}/lib
-sed -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib'%g" libhdf5.la > libhdf5.la.new
-mv -f libhdf5.la.new libhdf5.la
-if [ -e libhdf5_hl.la ] ; then
- sed -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib'%g" libhdf5_hl.la > libhdf5_hl.la.new
- mv -f libhdf5_hl.la.new libhdf5_hl.la
-fi
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="hdf5-1.6.4"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : libxml2-2.6.27.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export LIBXML_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${LIBXML_DIR}/bin:\${PATH}
-export LD_LIBRARY_PATH=\${LIBXML_DIR}/lib:\${LD_LIBRARY_PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${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}/INSTALL.LOG make install
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-cd ${PRODUCT_DIR}/lib
-export libdir=`grep -e "libdir=.*" libxml2.la | sed -e "s/libdir=[\'|\"]\(.*\)[\'|\"]/\1/g"`
-cd ..
-lnew="_new"
-for l in `find -type f -name *.la`; do
-sed -e "s%${libdir}%${PRODUCT_DIR}/lib%g" $l > $l$lnew
-mv $l$lnew $l
-chmod 755 $l
-done
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="libxml2-2.6.27"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : med-2.3.5.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -z "$MED2HOME" ]; then
- #echo "MED2HOME doesn't set"
- return 1
-fi
-check_lib_version libmed.so.1.1.2 ${MED2HOME}/lib
-if [ "$?" -eq "0" ]; then
- #echo "The product ${PRODUCT} has been already installed on yours system"
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED2HOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-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 ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-#vsr: provide additional flags for f95 (Mandriva 2006.0, Fedora Core 4)
-is_mandriva2006=0
-is_mandriva2007=0
-is_mandriva2008=0
-is_debian40=0
-is_fedora4=0
-is_fedora6=0
-
-if [ -e /etc/issue ] ; then
- grep -e "Mandriva Linux release 2006.0" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_mandriva2006=1 ; fi
- grep -e "Mandriva Linux release 2007.0" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_mandriva2007=1 ; fi
- grep -e "Mandriva Linux release 2008.0" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_mandriva2008=1 ; fi
- grep -e "Debian GNU/Linux 4.0" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_debian40=1 ; fi
- grep -e "Fedora Core release 4" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_fedora4=1 ; fi
- grep -e "Fedora Core release 6" /etc/issue > /dev/null
- if [ $? == 0 ] ; then is_fedora6=1 ; fi
-fi
-
-if [ $is_mandriva2006 == 1 ] ; then
-chmod +w ./Makefile.am
-mv Makefile.am Makefile.am.orig
-sed -e 's/include src tests tools doc/include src tools doc/g' Makefile.am.orig > Makefile.am
-chmod +w ./Makefile.in
-mv Makefile.in Makefile.in.orig
-sed -e 's/include src tests tools doc/include src tools doc/g' Makefile.in.orig > Makefile.in
-fi
-
-if [ $is_mandriva2006 == 1 ] || [ $is_mandriva2007 == 1 ] || [ $is_mandriva2008 == 1 ] || [ $is_fedora4 == 1 ] || [ $is_fedora6 == 1 ] || [ $is_debian40 == 1 ] ; then
- if test `uname -m` = "x86_64" ; then
- if [ $is_mandriva2006 == 1 ] ; then
- echo "`pwd` -> ./configure --prefix=${PRODUCT_DIR} FFLAGS='-g -O2 -ffixed-line-length-none -fPIC' CFLAGS=-m64 CXXFLAGS=-m64 >> ${PRODUCT_DIR}/CONFIGURE.LOG"
- ./configure --prefix=${PRODUCT_DIR} FFLAGS="-g -O2 -ffixed-line-length-none -fPIC" CFLAGS=-m64 CXXFLAGS=-m64 >> ${PRODUCT_DIR}/CONFIGURE.LOG 2> ${PRODUCT_SRC_DIR}/errlog
- else
- echo "`pwd` -> ./configure --prefix=${PRODUCT_DIR} FFLAGS='-g -O2 -ffixed-line-length-none' CFLAGS=-m64 CXXFLAGS=-m64 >> ${PRODUCT_DIR}/CONFIGURE.LOG"
- ./configure --prefix=${PRODUCT_DIR} FFLAGS="-g -O2 -ffixed-line-length-none" CFLAGS=-m64 CXXFLAGS=-m64 >> ${PRODUCT_DIR}/CONFIGURE.LOG 2> ${PRODUCT_SRC_DIR}/errlog
- fi
- else
- echo "`pwd` -> ./configure --prefix=${PRODUCT_DIR} FFLAGS='-g -O2 -ffixed-line-length-none' >> ${PRODUCT_DIR}/CONFIGURE.LOG"
- ./configure --prefix=${PRODUCT_DIR} FFLAGS="-g -O2 -ffixed-line-length-none" >> ${PRODUCT_DIR}/CONFIGURE.LOG 2> ${PRODUCT_SRC_DIR}/errlog
- fi
- if [ "$?" -ne "0" ] ; then
- cat ${PRODUCT_DIR}/CONFIGURE.LOG
- cat ${PRODUCT_SRC_DIR}/errlog >&2
- cat ${PRODUCT_SRC_DIR}/errlog >> ${PRODUCT_DIR}/CONFIGURE.LOG
- exit 1
- fi
-else
- check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --prefix=${PRODUCT_DIR}
-fi
-
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
-used gcc=$GCC
-EOF
-
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-check_job ${PRODUCT_DIR}/INSTALL.LOG make install
-
-cd ${PRODUCT_DIR}/lib
-
-sed -e "s%\(.*\)\([[:space:]].*-L.*/med-[0-9]\.[0-9]\.[0-9]_SRC/src[[:space:]]\)\(.*\)%\1 \3%g" libmedimport.la > libmedimport.la.new
-mv -f libmedimport.la.new libmedimport.la
-sed -e "s%\(.*\)\([[:space:]].*-L.*/med-[0-9]\.[0-9]\.[0-9]_SRC/src[[:space:]]\)\(.*\)%\1 \3%g" libmedimportcxx.la > libmedimportcxx.la.new
-mv -f libmedimportcxx.la.new libmedimportcxx.la
-
-chmod 755 libmedimport.la
-chmod 755 libmedimportcxx.la
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-### modify libmed.la libmedC.la files to correct direct path to hdf5 library
-### also modify libmed.la and libmedC.la files to correct direct path to med libraries
-### no need to do this for sources installation because 'make install' does it!
-cd ${PRODUCT_DIR}/lib
-sed -e 's%\(.*\)\([[:space:]].*libhdf5.la\)\(.*\)%\1 -lhdf5\3%g' -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib'%g" libmed.la > libmed.la.new
-mv -f libmed.la.new libmed.la
-sed -e 's%\(.*\)\([[:space:]].*libhdf5.la\)\(.*\)%\1 -lhdf5\3%g' -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib'%g" libmedC.la > libmedC.la.new
-mv -f libmedC.la.new libmedC.la
-sed -e 's%\(.*\)\([[:space:]].*libhdf5.la\)\(.*\)%\1 -lhdf5\3%g' -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib'%g" libmedimport.la > libmedimport.la.new
-mv -f libmedimport.la.new libmedimport.la
-sed -e 's%\(.*\)\([[:space:]].*libhdf5.la\)\(.*\)%\1 -lhdf5\3%g' -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib'%g" libmedimportcxx.la > libmedimportcxx.la.new
-mv -f libmedimportcxx.la.new libmedimportcxx.la
-
-tmp=""
-if [ -n "${HDF5HOME}" ]; then
- tmp="-L${HDF5HOME}/lib"
-fi
-sed -e "s%\(.*\)\([[:space:]].*-L.*/hdf5-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 $tmp \3%g" libmed.la > libmed.la.new
-mv -f libmed.la.new libmed.la
-sed -e "s%\(.*\)\([[:space:]].*-L.*/hdf5-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 $tmp \3%g" libmedC.la > libmedC.la.new
-mv -f libmedC.la.new libmedC.la
-
-sed -e "s%\(.*\)\([[:space:]].*-L.*/hdf5-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 $tmp \3%g" libmedimport.la > libmedimport.la.new
-mv -f libmedimport.la.new libmedimport.la
-sed -e "s%\(.*\)\([[:space:]].*-L.*/hdf5-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 $tmp \3%g" libmedimportcxx.la > libmedimportcxx.la.new
-mv -f libmedimportcxx.la.new libmedimportcxx.la
-
-sed -e "s%\(.*\)\([[:space:]].*/med-[0-9]\.[0-9]\.[0-9]/lib/libmed.la[[:space:]]\)\(.*\)%\1 ${PRODUCT_DIR}/lib/libmed.la \3%g" libmedimport.la > libmedimport.la.new
-mv -f libmedimport.la.new libmedimport.la
-sed -e "s%\(.*\)\([[:space:]].*/med-[0-9]\.[0-9]\.[0-9]/lib/libmed.la[[:space:]]\)\(.*\)%\1 ${PRODUCT_DIR}/lib/libmed.la \3%g" libmedimportcxx.la > libmedimportcxx.la.new
-mv -f libmedimportcxx.la.new libmedimportcxx.la
-
-sed -e "s%\(.*\)\([[:space:]].*-L.*/med-[0-9]\.[0-9]\.[0-9]_SRC/src[[:space:]]\)\(.*\)%\1 \3%g" libmedimport.la > libmedimport.la.new
-mv -f libmedimport.la.new libmedimport.la
-sed -e "s%\(.*\)\([[:space:]].*-L.*/med-[0-9]\.[0-9]\.[0-9]_SRC/src[[:space:]]\)\(.*\)%\1 \3%g" libmedimportcxx.la > libmedimportcxx.la.new
-mv -f libmedimportcxx.la.new libmedimportcxx.la
-
-chmod 755 libmed.la
-chmod 755 libmedC.la
-chmod 755 libmedimport.la
-chmod 755 libmedimportcxx.la
-
-### modify scripts to correct installation path
-cd ${PRODUCT_DIR}/bin
-sed -e "s%set cmd \".*/bin/mdump\"%set cmd \"${PRODUCT_DIR}/bin/mdump\"%g" xmdump > _xmdump
-mv _xmdump xmdump
-chmod a+x xmdump
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9
-export PRODUCT="med-2.3.5"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : metis-4.0.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export METISDIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# install binary
-install_binary
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${BIN_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-REMOVE_SRC_TMP=$9;
-shift
-BIN_DIR=$9;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="metis-4.0"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : modifyLaFiles.sh
-# Created : Mon Feb 19 11:09:00 2008
-# Author : Alexander KOVALEV, Open CASCADE SAS (alexander.kovalev@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-# The script to call modif_la_files() function in the 'common.sh' script.
-#
-####################################################################################
-
-modify_la_files(){
-
-modif_la_files ${INST_DIR}/$SDIR_NAME
-
-test $? -eq 0 && exit 1 || exit 0
-}
-
-PROCEDURE=$1
-INST_DIR=$2
-
-source ${INST_DIR}/env_products.sh
-source ./common.sh
-
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : netgen-4.5.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-# check existance of netgen
-# unfortunarely we can't find anything about netgen version
-if [ -n "$NETGENROOT" ]; then
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENHOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# apply general patch for SALOME
-if [ -f patches/netgen-4.5-for-SALOME.patch ] ; then
- cp patches/netgen-4.5-for-SALOME.patch ${PRODUCT_SRC_DIR}
- ( cd ${PRODUCT_SRC_DIR}; patch -p1 < netgen-4.5-for-SALOME.patch )
-fi
-
-# apply patch for 64-bit platforms
-if test `uname -m` = "x86_64" ; then
- if [ -f patches/netgen-4.5-lib64.patch ] ; then
- cp patches/netgen-4.5-lib64.patch ${PRODUCT_SRC_DIR}
- ( cd ${PRODUCT_SRC_DIR}; patch -p1 < netgen-4.5-lib64.patch )
- fi
-fi
-
-# additional patching for SALOME
-(cd ${PRODUCT_SRC_DIR}; cp ngtcltk/ngnewdelete.* libsrc/interface)
-
-# apply patch: to make compilable on latest versions of gcc
-(cd ${PRODUCT_SRC_DIR}/libsrc/meshing; echo -e '16s/^$/class Mesh;\nwq' | ed - meshtype.hpp > /dev/null)
-
-# apply patch: to make compilable with CASCADE-6.1.1
-(cd ${PRODUCT_SRC_DIR}/libsrc; sed -e "s%\(.*\)-DHAVE_LIMITS\'%\1-DHAVE_LIMITS_H%g" makefile.inc > makefile.inc.new; mv makefile.inc.new makefile.inc)
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-# set platform type variable
-if test `uname -m` = "x86_64" ; then
- export MACHINE=LINUX64
-else
- export MACHINE=LINUX
-fi
-
-# compile
-for directory in csg general geom2d gprim interface linalg occ meshing opti stlgeom ; do
- cd ${PRODUCT_SRC_DIR}/libsrc/${directory}
- check_job ${PRODUCT_DIR}/MAKE.LOG make
-done
-
-# install
-mkdir -p ${PRODUCT_DIR}/lib
-cp -f ${PRODUCT_SRC_DIR}/lib/${MACHINE}/* ${PRODUCT_DIR}/lib
-mkdir -p ${PRODUCT_DIR}/include
-cp -f ${PRODUCT_SRC_DIR}/libsrc/interface/nglib.h ${PRODUCT_DIR}/include
-for directory in csg general geom2d gprim linalg occ meshing opti stlgeom ; do
- cp -f ${PRODUCT_SRC_DIR}/libsrc/${directory}/*.hpp ${PRODUCT_DIR}/include
-done
-cp -f ${PRODUCT_SRC_DIR}/libsrc/include/mystdlib.h ${PRODUCT_SRC_DIR}/libsrc/include/mydefs.hpp ${PRODUCT_DIR}/include
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="netgen-4.5"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : omniORB-4.1.0.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -z "${OMNIORBDIR}" ]; then
- #echo "OMNIORBDIR doesn't set"
- return 1
-fi
-python_version="`python -c 'import sys; print sys.version[:3]'`"
-check_lib_version libomniORB4.so.1.0 ${OMNIORBDIR}/lib
-if [ "$?" -ne "0" ]; then
- return 1
-fi
-check_lib_version _omnipymodule.so.3.0 ${OMNIORBDIR}/lib/python${python_version}/site-packages
-if [ "$?" -ne "0" ]; then
- return 1
-fi
-check_lib_version libCOSNotify4.so.0.1 ${OMNIORBDIR}/lib
-if [ "$?" -ne "0" ]; then
- return 1
-fi
-check_lib_version notifd ${OMNIORBDIR}/bin
-if [ "$?" -ne "0" ]; then
- return 1
-fi
-return 0
-}
-
-print_env_bin()
-{
-
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- OMNI_LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- OMNI_LIB_PREFIX=""
-else
- OMNI_LIB_PREFIX=64
-fi
-
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export OMNIORBDIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export OMNIORB_CONFIG=\${OMNIORBDIR}/.omniORB.cfg
-export PYTHONPATH=\${OMNIORBDIR}/lib${OMNI_LIB_PREFIX}:\${OMNIORBDIR}/lib${OMNI_LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
-export PATH=\$OMNIORBDIR/bin:\$PATH
-export LD_LIBRARY_PATH=\$OMNIORBDIR/lib:\$LD_LIBRARY_PATH
-##
-EOF
-if [ $PROCEDURE != "try_preinstalled" ] && [ -w ${PRODUCT_DIR} ] ; then
- cat > ${PRODUCT_DIR}/.omniORB.cfg <<EOF
-InitRef = NameService=corbaname::`hostname`:2810
-EOF
-fi
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-makedir ${PRODUCT_SRC_DIR}
-# unpack
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_SRC_DIR}
-check_jb tar xfz ${SOURCE_DIR}/omniORBpy-3.0.tar.gz -C ${PRODUCT_SRC_DIR}
-check_jb tar xfz ${SOURCE_DIR}/omniNotify-2.1.tar.gz -C ${PRODUCT_SRC_DIR}
-
-if test `uname -m` = "x86_64" ; then
- if [ -f patches/omniNotify-2.1-lib64.patch ] ; then
- cp patches/omniNotify-2.1-lib64.patch ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
- ( cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC ; patch -p1 < omniNotify-2.1-lib64.patch )
- fi
-fi
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-# install omniORB
-cd ${PRODUCT_SRC_DIR}/omniORB-4.1.0_SRC
-mkdir build
-cd build
-
-check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORB.LOG ../configure --prefix=${PRODUCT_DIR}
-
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE_OMNIORB.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE_OMNIORB.LOG make
-check_job ${PRODUCT_DIR}/INSTALL_OMNIORB.LOG make install
-
-# install omniORBpy
-cd ${PRODUCT_SRC_DIR}/omniORBpy-3.0_SRC
-mkdir build
-cd build
-
-check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORBPY.LOG \
- ../configure --prefix=${PRODUCT_DIR}
-
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG make
-check_job ${PRODUCT_DIR}/INSTALL_OMNIORBPY.LOG make install
-
-# install omniNotify
-cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
-
-mkdir build
-cd build
-
-check_job ${PRODUCT_DIR}/CONFIGURE_OMNINOTIFY.LOG \
- ../configure --prefix=${PRODUCT_DIR}
-
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG make
-check_job ${PRODUCT_DIR}/INSTALL_OMNINOTIFY.LOG make install
-
-cd ${PRODUCT_DIR}/bin
-sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidl > _omniidl
-mv -f _omniidl omniidl
-chmod a+x omniidl
-sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidlrun.py > _omniidlrun.py
-mv -f _omniidlrun.py omniidlrun.py
-chmod a+x omniidlrun.py
-
-cd ${PRODUCT_DIR}
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-ln -sf ${PRODUCT_DIR} ${INST_ROOT}/omni
-
-cd ${PRODUCT_DIR}/bin
-sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidl > _omniidl
-mv -f _omniidl omniidl
-chmod a+x omniidl
-sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidlrun.py > _omniidlrun.py
-mv -f _omniidlrun.py omniidlrun.py
-chmod a+x omniidlrun.py
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="omniORB-4.1.0"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-diff -Naur netgen-4.5.old/libsrc/csg/meshsurf.cpp netgen-4.5.new/libsrc/csg/meshsurf.cpp
---- netgen-4.5.old/libsrc/csg/meshsurf.cpp 2006-02-14 11:54:35.000000000 +0300
-+++ netgen-4.5.new/libsrc/csg/meshsurf.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -77,11 +77,12 @@
- }
-
-
--void MeshOptimize2dSurfaces :: ProjectPoint (INDEX surfind, Point3d & p) const
-+bool MeshOptimize2dSurfaces :: ProjectPoint (INDEX surfind, Point3d & p) const
- {
- Point<3> hp = p;
- geometry.GetSurface(surfind)->Project (hp);
- p = hp;
-+ return true;
- }
-
- void MeshOptimize2dSurfaces :: ProjectPoint2 (INDEX surfind, INDEX surfind2,
-diff -Naur netgen-4.5.old/libsrc/csg/meshsurf.hpp netgen-4.5.new/libsrc/csg/meshsurf.hpp
---- netgen-4.5.old/libsrc/csg/meshsurf.hpp 2004-01-20 14:49:44.000000000 +0300
-+++ netgen-4.5.new/libsrc/csg/meshsurf.hpp 2008-02-12 14:57:01.000000000 +0300
-@@ -45,7 +45,7 @@
- MeshOptimize2dSurfaces (const CSGeometry & ageometry);
-
- ///
-- virtual void ProjectPoint (INDEX surfind, Point3d & p) const;
-+ virtual bool ProjectPoint (INDEX surfind, Point3d & p) const;
- ///
- virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point3d & p) const;
- ///
-diff -Naur netgen-4.5.old/libsrc/interface/Makefile netgen-4.5.new/libsrc/interface/Makefile
---- netgen-4.5.old/libsrc/interface/Makefile 2005-08-09 18:14:59.000000000 +0400
-+++ netgen-4.5.new/libsrc/interface/Makefile 2008-02-12 14:57:01.000000000 +0300
-@@ -1,4 +1,5 @@
--src = nginterface.cpp writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp writeelmer.cpp writegmsh.cpp writejcm.cpp readuser.cpp importsolution.cpp
-+#src = nginterface.cpp writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp writeelmer.cpp writegmsh.cpp writejcm.cpp readuser.cpp importsolution.cpp
-+src = writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp writeelmer.cpp writegmsh.cpp writejcm.cpp readuser.cpp nglib.cpp ngnewdelete.cpp
- #
- lib = nginterface
- libpath = libsrc/interface
-diff -Naur netgen-4.5.old/libsrc/interface/nglib.cpp netgen-4.5.new/libsrc/interface/nglib.cpp
---- netgen-4.5.old/libsrc/interface/nglib.cpp 2005-10-18 17:53:18.000000000 +0400
-+++ netgen-4.5.new/libsrc/interface/nglib.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -56,7 +56,8 @@
-
- void Ng_Exit ()
- {
-- ;
-+ delete testout;
-+ testout = NULL;
- }
-
-
-diff -Naur netgen-4.5.old/libsrc/makefile.inc netgen-4.5.new/libsrc/makefile.inc
---- netgen-4.5.old/libsrc/makefile.inc 2005-09-02 17:17:51.000000000 +0400
-+++ netgen-4.5.new/libsrc/makefile.inc 2008-02-12 14:59:55.000000000 +0300
-@@ -8,17 +8,14 @@
- LIBSRC_DIR=$(CPP_DIR)/libsrc
- LIB_DIR=$(CPP_DIR)/lib/$(MACHINE)
-
--#OCC_DIR=../../occ
--#OCCINC_DIR=$(OCC_DIR)/inc
--#OCCLIB_DIR=$(OCC_DIR)/lib
--# OCC_DIR=/opt/OpenCASCADE5.2/ros
--# OCC_DIR=/home/joachim/download/occ/Linux
--# OCCINC_DIR=$(OCC_DIR)/inc -I$(OCC_DIR)/ros/inc
--# OCCLIB_DIR=$(OCC_DIR)/Linux/lib
-+OCC_DIR=$(CASROOT)
-+OCCINC_DIR=$(OCC_DIR)/inc
-+OCCLIB_DIR=$(OCC_DIR)/Linux/lib
- #
- include $(LIBSRC_DIR)/makefile.mach.$(MACHINE)
- #
--CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR)
-+CPLUSPLUSFLAGS1 = -c -fPIC -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
-+ -DOCCGEOMETRY -DOCC52 -DHAVE_IOSTREAM -DHAVE_LIMITS_H
- #
- ARFLAGS = r
- #
-diff -Naur netgen-4.5.old/libsrc/makefile.mach.LINUX netgen-4.5.new/libsrc/makefile.mach.LINUX
---- netgen-4.5.old/libsrc/makefile.mach.LINUX 2004-10-11 23:49:26.000000000 +0400
-+++ netgen-4.5.new/libsrc/makefile.mach.LINUX 2008-02-12 14:57:01.000000000 +0300
-@@ -16,7 +16,7 @@
- #
- CFLAGS2 =
-
--CPLUSPLUSFLAGS2 = -O2 -I/usr/include/GL3.5 -DLINUX -DOPENGL \
-+CPLUSPLUSFLAGS2 = -O2 -I/usr/include/GL3.5 -DLINUX \
- -ftemplate-depth-99 -finline-limit=10000 \
- -Wdisabled-optimization -funroll-loops -DnoNGSOLVE
-
-diff -Naur netgen-4.5.old/libsrc/meshing/meshtype.cpp netgen-4.5.new/libsrc/meshing/meshtype.cpp
---- netgen-4.5.old/libsrc/meshing/meshtype.cpp 2006-02-10 13:11:08.000000000 +0300
-+++ netgen-4.5.new/libsrc/meshing/meshtype.cpp 2008-03-14 13:19:53.000000000 +0300
-@@ -1,4 +1,5 @@
- #include <mystdlib.h>
-+#include <float.h>
-
- #include "meshing.hpp"
-
-@@ -774,7 +775,7 @@
- frob /= 2;
-
- double det = trans.Det();
-- if (det <= 0)
-+ if (det <= DBL_MIN)
- err += 1e12;
- else
- err += frob * frob / det;
-
-
-diff -Naur netgen-4.5.old/libsrc/meshing/improve2.cpp netgen-4.5.new/libsrc/meshing/improve2.cpp
---- netgen-4.5.old/libsrc/meshing/improve2.cpp 2006-01-11 19:08:19.000000000 +0300
-+++ netgen-4.5.new/libsrc/meshing/improve2.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -4,7 +4,7 @@
- #include <opti.hpp>
-
- #ifndef SMALLLIB
--#include <visual.hpp>
-+//#include <visual.hpp>
- #endif
-
- namespace netgen
-diff -Naur netgen-4.5.old/libsrc/meshing/improve2.hpp netgen-4.5.new/libsrc/meshing/improve2.hpp
---- netgen-4.5.old/libsrc/meshing/improve2.hpp 2004-10-12 23:22:55.000000000 +0400
-+++ netgen-4.5.new/libsrc/meshing/improve2.hpp 2008-02-12 14:57:01.000000000 +0300
-@@ -32,17 +32,16 @@
- ///
- virtual void SelectSurfaceOfPoint (const Point3d & p,
- const PointGeomInfo & gi);
-- ///
-- virtual void ProjectPoint (INDEX /* surfind */, Point3d & /* p */) const { };
-+
-+ /// project point on surface, returns true if success
-+ virtual bool ProjectPoint (INDEX /* surfind */, Point3d & /* p */) const { return false; }
-+ /// fast project point on surface using point geom info of a neighboring point
-+ /// if gi.trignum != 0,
-+ /// returns true if success, gi is updated
-+ virtual bool ProjectPoint (INDEX surfind, Point3d & p, PointGeomInfo& gi) const
-+ { gi.trignum = 1; return ProjectPoint (surfind, p); }
- ///
- virtual void ProjectPoint2 (INDEX /* surfind */, INDEX /* surfind2 */, Point3d & /* p */) const { };
-- /// liefert zu einem 3d-Punkt die geominfo (Dreieck) und liefert 1, wenn erfolgreich,
-- /// 0, wenn nicht (Punkt ausserhalb von chart)
-- virtual int CalcPointGeomInfo(PointGeomInfo& gi, const Point3d& /*p3*/) const
-- { gi.trignum = 1; return 1;};
--
-- virtual int CalcPointGeomInfo(int /* surfind */, PointGeomInfo& gi, const Point3d& p3) const
-- { return CalcPointGeomInfo (gi, p3); }
-
- ///
- virtual void GetNormalVector(INDEX surfind, const Point3d & p, PointGeomInfo & gi, Vec3d & n) const;
-diff -Naur netgen-4.5.old/libsrc/meshing/smoothing2.cpp netgen-4.5.new/libsrc/meshing/smoothing2.cpp
---- netgen-4.5.old/libsrc/meshing/smoothing2.cpp 2006-01-11 19:08:20.000000000 +0300
-+++ netgen-4.5.new/libsrc/meshing/smoothing2.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -300,7 +300,7 @@
- double Opti2SurfaceMinFunction ::
- FuncGrad (const Vector & x, Vector & grad) const
- {
-- Vec3d n, vgrad;
-+ Vec3d vgrad;
- Point3d pp1;
- double g1x, g1y;
- double badness, hbadness;
-@@ -308,8 +308,6 @@
- vgrad = 0;
- badness = 0;
-
-- meshthis -> GetNormalVector (surfi, sp1, gi1, n);
--
- pp1 = sp1;
- pp1.Add2 (x.Get(1), t1, x.Get(2), t2);
-
-@@ -360,7 +358,7 @@
- double Opti2SurfaceMinFunction ::
- FuncDeriv (const Vector & x, const Vector & dir, double & deriv) const
- {
-- Vec3d n, vgrad;
-+ Vec3d vgrad;
- Point3d pp1;
- double g1x, g1y;
- double badness, hbadness;
-@@ -368,8 +366,6 @@
- vgrad = 0;
- badness = 0;
-
-- meshthis -> GetNormalVector (surfi, sp1, gi1, n);
--
- pp1 = sp1;
- pp1.Add2 (x.Get(1), t1, x.Get(2), t2);
-
-@@ -520,7 +516,7 @@
- // from 2d:
-
- int j, k, lpi, gpi;
-- Vec3d n, vgrad;
-+ Vec3d vgrad;
- Point3d pp1;
- Vec2d g1, vdir;
- double badness, hbadness, hbad, hderiv;
-@@ -528,8 +524,6 @@
- vgrad = 0;
- badness = 0;
-
-- meshthis -> GetNormalVector (surfi, sp1, gi1, n);
--
- pp1 = sp1;
- pp1.Add2 (x.Get(1), t1, x.Get(2), t2);
-
-@@ -593,7 +587,7 @@
- // from 2d:
-
- int j, k, lpi, gpi;
-- Vec3d n, vgrad;
-+ Vec3d vgrad;
- Point3d pp1;
- Vec2d g1, vdir;
- double badness, hbadness, hbad, hderiv;
-@@ -601,8 +595,6 @@
- vgrad = 0;
- badness = 0;
-
-- meshthis -> GetNormalVector (surfi, sp1, gi1, n);
--
- pp1 = sp1;
- pp1.Add2 (x.Get(1), t1, x.Get(2), t2);
-
-@@ -859,19 +851,21 @@
- locelements.SetSize(0);
- locrots.SetSize (0);
- lochs.SetSize (0);
-+ ngi.trignum = 0;
-
- for (j = 0; j < elementsonpoint[pi].Size(); j++)
- {
- sei = elementsonpoint[pi][j];
- const Element2d & bel = mesh[sei];
- surfi = mesh.GetFaceDescriptor(bel.GetIndex()).SurfNr();
--
-+
- locelements.Append (sei);
-
- for (k = 1; k <= bel.GetNP(); k++)
- if (bel.PNum(k) == pi)
- {
- locrots.Append (k);
-+ ngi = bel.GeomInfoPi(k);
- break;
- }
-
-@@ -942,7 +936,7 @@
- }
-
- //optimizer loop (if not whole distance is not possible, move only a bit!!!!)
-- while (loci <= 5 && !moveisok)
-+ while (loci <= 5 && !moveisok)
- {
- loci ++;
- mesh[pi].X() = origp.X() + (x.Get(1) * t1.X() + x.Get(2) * t2.X())*fact;
-@@ -951,11 +945,9 @@
- fact = fact/2.;
-
-
-- ProjectPoint (surfi, mesh[pi]);
-+ moveisok = ProjectPoint (surfi, mesh[pi], ngi);
-
-- moveisok = CalcPointGeomInfo(surfi, ngi, mesh[pi]);
-- // point lies on same chart in stlsurface
--
-+ // point lies on same chart in stlsurface
- if (moveisok)
- {
- for (j = 0; j < locelements.Size(); j++)
-diff -Naur netgen-4.5.old/libsrc/occ/occconstruction.cpp netgen-4.5.new/libsrc/occ/occconstruction.cpp
---- netgen-4.5.old/libsrc/occ/occconstruction.cpp 2005-12-06 18:15:53.000000000 +0300
-+++ netgen-4.5.new/libsrc/occ/occconstruction.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -28,8 +28,8 @@
- #include <BRepAlgoAPI_Common.hxx>
- #include <BRepAlgoAPI_Fuse.hxx>
- #include <BRepAlgoAPI_Section.hxx>
--#include <BRepOffsetAPI_Sewing.hxx>
--#include <BRepAlgo_Sewing.hxx>
-+//#include <BRepOffsetAPI_Sewing.hxx>
-+//#include <BRepAlgo_Sewing.hxx>
- #include <BRepOffsetAPI_MakeOffsetShape.hxx>
- #include <ShapeFix_Shape.hxx>
- namespace netgen
-diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/occgenmesh.cpp
---- netgen-4.5.old/libsrc/occ/occgenmesh.cpp 2006-02-07 13:12:48.000000000 +0300
-+++ netgen-4.5.new/libsrc/occ/occgenmesh.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -28,7 +28,7 @@
- return Point<3> (p.X(), p.Y(), p.Z());
- }
-
-- void DivideEdge (TopoDS_Edge & edge,
-+ static void DivideEdge (TopoDS_Edge & edge,
- ARRAY<MeshPoint> & ps,
- ARRAY<double> & params,
- Mesh & mesh)
-@@ -49,23 +49,19 @@
- hvalue[0] = 0;
- pnt = c->Value(s0);
-
-- double olddist = 0;
-- double dist = 0;
--
-- for (int i = 1; i <= DIVIDEEDGESECTIONS; i++)
-+ int i;
-+ for (i = 1; i <= DIVIDEEDGESECTIONS; i++)
- {
- oldpnt = pnt;
- pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));
-+ double dist = pnt.Distance(oldpnt);
- hvalue[i] = hvalue[i-1] +
- 1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-- pnt.Distance(oldpnt);
-+ dist;
-
- //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))
- // << " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;
-
--
-- olddist = dist;
-- dist = pnt.Distance(oldpnt);
- }
-
- // nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));
-@@ -74,7 +70,7 @@
- ps.SetSize(nsubedges-1);
- params.SetSize(nsubedges+1);
-
-- int i = 1;
-+ i = 1;
- int i1 = 0;
- do
- {
-@@ -112,7 +108,7 @@
-
- static void FindEdges (OCCGeometry & geom, Mesh & mesh)
- {
-- char * savetask = multithread.task;
-+ const char * savetask = multithread.task;
- multithread.task = "Edge meshing";
-
- (*testout) << "edge meshing" << endl;
-@@ -124,6 +120,7 @@
- (*testout) << "nedges = " << nedges << endl;
-
- double eps = 1e-6 * geom.GetBoundingBox().Diam();
-+ double eps2 = eps * eps;
-
- for (int i = 1; i <= nvertices; i++)
- {
-@@ -133,7 +130,7 @@
- bool exists = 0;
- if (merge_solids)
- for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)
-- if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)
-+ if ( Dist2 (mesh[pi], Point<3>(mp)) < eps2)
- {
- exists = 1;
- break;
-@@ -163,6 +160,7 @@
- {
- TopoDS_Face face = TopoDS::Face(exp1.Current());
- int facenr = geom.fmap.FindIndex(face);
-+ if ( facenr < 1 ) continue;
-
- if (face2solid[0][facenr-1] == 0)
- face2solid[0][facenr-1] = solidnr;
-@@ -184,6 +182,9 @@
- int facenr = 0;
- int edgenr = 0;
-
-+ // EAP, IMP [SALOME platform 0013410].
-+ // take into account nb of already meshed edges
-+ edgenr = mesh.GetNSeg();
-
- (*testout) << "faces = " << geom.fmap.Extent() << endl;
- int curr = 0;
-@@ -232,6 +233,11 @@
- continue;
- }
-
-+ // EAP, IMP [SALOME platform 0013410].
-+ // Do not divide already meshed edges
-+ if ( geom.emap.FindIndex(edge) < 1 )
-+ continue;
-+
- if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==
- geom.vmap.FindIndex(TopExp::LastVertex (edge)))
- {
-@@ -276,8 +282,8 @@
- pnums.Last() = -1;
- for (PointIndex pi = 1; pi < first_ep; pi++)
- {
-- if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;
-- if (Dist2 (mesh[pi], lp) < eps*eps) pnums.Last() = pi;
-+ if (Dist2 (mesh[pi], fp) < eps2) pnums[0] = pi;
-+ if (Dist2 (mesh[pi], lp) < eps2) pnums.Last() = pi;
- }
- }
-
-@@ -287,7 +293,7 @@
- bool exists = 0;
- int j;
- for (j = first_ep; j <= mesh.GetNP(); j++)
-- if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)
-+ if (Dist2(mesh.Point(j), Point<3>(mp[i-1])) < eps2)
- {
- exists = 1;
- break;
-@@ -394,7 +400,7 @@
- int i, j, k;
- int changed;
-
-- char * savetask = multithread.task;
-+ const char * savetask = multithread.task;
- multithread.task = "Surface meshing";
-
- geom.facemeshstatus = 0;
-@@ -751,7 +760,7 @@
- multithread.task = savetask;
- }
-
-- double ComputeH (double kappa)
-+ static double ComputeH (double kappa)
- {
- double hret;
- kappa *= mparam.curvaturesafety;
-@@ -779,7 +788,7 @@
- double nq = n*q;
-
- Point<3> p = p0 + 0.5*n;
-- double lambda = (p-l.p0)*n / nq;
-+ double lambda = (fabs(nq) > 1e-10 ? (p-l.p0)*n / nq : -1);
-
- if (lambda >= 0 && lambda <= 1)
- {
-@@ -799,55 +808,55 @@
-
-
-
-- void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,
-- BRepLProp_SLProps * prop, Mesh & mesh, const double maxside, int depth, double h = 0)
-+ static void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,
-+ BRepAdaptor_Surface& surf, Mesh & mesh, const double maxside, int depth, double h = 0)
- {
--
-+ BRepLProp_SLProps prop(surf, 2, 1e-5);
-
- gp_Pnt2d parmid;
-
- parmid.SetX(0.3*(par0.X()+par1.X()+par2.X()));
- parmid.SetY(0.3*(par0.Y()+par1.Y()+par2.Y()));
-
-- if (depth == 0)
-+ //if (depth == 0)
- {
- double curvature = 0;
-
-- prop->SetParameters (parmid.X(), parmid.Y());
-- if (!prop->IsCurvatureDefined())
-+ prop.SetParameters (parmid.X(), parmid.Y());
-+ if (!prop.IsCurvatureDefined())
- {
- (*testout) << "curvature not defined!" << endl;
- return;
- }
-- curvature = max(fabs(prop->MinCurvature()),
-- fabs(prop->MaxCurvature()));
-+ curvature = max(fabs(prop.MinCurvature()),
-+ fabs(prop.MaxCurvature()));
-
-- prop->SetParameters (par0.X(), par0.Y());
-- if (!prop->IsCurvatureDefined())
-+ prop.SetParameters (par0.X(), par0.Y());
-+ if (!prop.IsCurvatureDefined())
- {
- (*testout) << "curvature not defined!" << endl;
- return;
- }
-- curvature = max(curvature,max(fabs(prop->MinCurvature()),
-- fabs(prop->MaxCurvature())));
-+ curvature = max(curvature,max(fabs(prop.MinCurvature()),
-+ fabs(prop.MaxCurvature())));
-
-- prop->SetParameters (par1.X(), par1.Y());
-- if (!prop->IsCurvatureDefined())
-+ prop.SetParameters (par1.X(), par1.Y());
-+ if (!prop.IsCurvatureDefined())
- {
- (*testout) << "curvature not defined!" << endl;
- return;
- }
-- curvature = max(curvature,max(fabs(prop->MinCurvature()),
-- fabs(prop->MaxCurvature())));
-+ curvature = max(curvature,max(fabs(prop.MinCurvature()),
-+ fabs(prop.MaxCurvature())));
-
-- prop->SetParameters (par2.X(), par2.Y());
-- if (!prop->IsCurvatureDefined())
-+ prop.SetParameters (par2.X(), par2.Y());
-+ if (!prop.IsCurvatureDefined())
- {
- (*testout) << "curvature not defined!" << endl;
- return;
- }
-- curvature = max(curvature,max(fabs(prop->MinCurvature()),
-- fabs(prop->MaxCurvature())));
-+ curvature = max(curvature,max(fabs(prop.MinCurvature()),
-+ fabs(prop.MaxCurvature())));
-
- //(*testout) << "curvature " << curvature << endl;
-
-@@ -886,51 +895,47 @@
- pm1.SetX(0.5*(par0.X()+par2.X())); pm1.SetY(0.5*(par0.Y()+par2.Y()));
- pm2.SetX(0.5*(par1.X()+par0.X())); pm2.SetY(0.5*(par1.Y()+par0.Y()));
-
-- RestrictHTriangle (pm0, pm1, pm2, prop, mesh, 0.5*maxside, depth+1, h);
-- RestrictHTriangle (par0, pm1, pm2, prop, mesh, 0.5*maxside, depth+1, h);
-- RestrictHTriangle (par1, pm0, pm2, prop, mesh, 0.5*maxside, depth+1, h);
-- RestrictHTriangle (par2, pm1, pm0, prop, mesh, 0.5*maxside, depth+1, h);
-+ RestrictHTriangle (pm0, pm1, pm2, surf, mesh, 0.5*maxside, depth+1, h);
-+ RestrictHTriangle (par0, pm1, pm2, surf, mesh, 0.5*maxside, depth+1, h);
-+ RestrictHTriangle (par1, pm0, pm2, surf, mesh, 0.5*maxside, depth+1, h);
-+ RestrictHTriangle (par2, pm1, pm0, surf, mesh, 0.5*maxside, depth+1, h);
- }
- else
- {
- gp_Pnt pnt;
- Point3d p3d;
-
-- prop->SetParameters (parmid.X(), parmid.Y());
-- pnt = prop->Value();
-+ surf.D0(parmid.X(), parmid.Y(), pnt);
- p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());
- mesh.RestrictLocalH (p3d, h);
-
-
-- prop->SetParameters (par0.X(), par0.Y());
-- pnt = prop->Value();
-+ surf.D0(par0.X(), par0.Y(), pnt);
- p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());
- mesh.RestrictLocalH (p3d, h);
-
-- prop->SetParameters (par1.X(), par1.Y());
-- pnt = prop->Value();
-+ surf.D0(par1.X(), par1.Y(), pnt);
- p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());
- mesh.RestrictLocalH (p3d, h);
-
-- prop->SetParameters (par2.X(), par2.Y());
-- pnt = prop->Value();
-+ surf.D0(par2.X(), par2.Y(), pnt);
- p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());
- mesh.RestrictLocalH (p3d, h);
-
-- (*testout) << "p = " << p3d << ", h = " << h << ", maxside = " << maxside << endl;
-+ //(*testout) << "p = " << p3d << ", h = " << h << ", maxside = " << maxside << endl;
- /*
- (*testout) << pnt.X() << " " << pnt.Y() << " " << pnt.Z() << endl;
-
-- prop->SetParameters (par0.X(), par0.Y());
-- pnt = prop->Value();
-+ prop.SetParameters (par0.X(), par0.Y());
-+ pnt = prop.Value();
- (*testout) << pnt.X() << " " << pnt.Y() << " " << pnt.Z() << endl;
-
-- prop->SetParameters (par1.X(), par1.Y());
-- pnt = prop->Value();
-+ prop.SetParameters (par1.X(), par1.Y());
-+ pnt = prop.Value();
- (*testout) << pnt.X() << " " << pnt.Y() << " " << pnt.Z() << endl;
-
-- prop->SetParameters (par2.X(), par2.Y());
-- pnt = prop->Value();
-+ prop.SetParameters (par2.X(), par2.Y());
-+ pnt = prop.Value();
- (*testout) << pnt.X() << " " << pnt.Y() << " " << pnt.Z() << endl;
- */
- }
-@@ -970,7 +975,7 @@
- if (mparam.uselocalh)
- {
-
-- char * savetask = multithread.task;
-+ const char * savetask = multithread.task;
- multithread.percent = 0;
-
- mesh->SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);
-@@ -1075,7 +1080,6 @@
- if (triangulation.IsNull()) continue;
-
- BRepAdaptor_Surface sf(face, Standard_True);
-- BRepLProp_SLProps prop(sf, 2, 1e-5);
-
- int ntriangles = triangulation -> NbTriangles();
- for (int j = 1; j <= ntriangles; j++)
-@@ -1096,7 +1100,7 @@
- maxside = max (maxside, p[1].Distance(p[2]));
- //cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;
-
-- RestrictHTriangle (par[0], par[1], par[2], &prop, *mesh, maxside, 0);
-+ RestrictHTriangle (par[0], par[1], par[2], sf, *mesh, maxside, 0);
- //cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;
- }
- }
-diff -Naur netgen-4.5.old/libsrc/occ/occgeom.cpp netgen-4.5.new/libsrc/occ/occgeom.cpp
---- netgen-4.5.old/libsrc/occ/occgeom.cpp 2006-01-25 16:35:50.000000000 +0300
-+++ netgen-4.5.new/libsrc/occ/occgeom.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -7,6 +7,8 @@
- #include "ShapeAnalysis_ShapeContents.hxx"
- #include "ShapeAnalysis_CheckSmallFace.hxx"
- #include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"
-+#include <ShapeAnalysis_Surface.hxx>
-+#include <BRepTopAdaptor_FClass2d.hxx>
- #include "BRepAlgoAPI_Fuse.hxx"
- #include "BRepCheck_Analyzer.hxx"
- #include "BRepLib.hxx"
-@@ -16,11 +18,19 @@
- #include "Partition_Spliter.hxx"
- //#include "VrmlAPI.hxx"
- //#include "StlAPI.hxx"
-+#include <TopAbs_State.hxx>
-
-
- namespace netgen
- {
-
-+ OCCGeometry::~OCCGeometry()
-+ {
-+ NCollection_DataMap<int,BRepTopAdaptor_FClass2d*>::Iterator it(fclsmap);
-+ for (; it.More(); it.Next())
-+ delete it.Value();
-+ }
-+
- void OCCGeometry :: PrintNrShapes ()
- {
- TopExp_Explorer e;
-@@ -947,13 +957,13 @@
-
- void OCCGeometry :: BuildVisualizationMesh ()
- {
--
-- cout << "Preparing visualization (deflection = " << vispar.occdeflection << ") ... " << flush;
-+ double vispar_occdeflection = 0.01;
-+ cout << "Preparing visualization (deflection = " << vispar_occdeflection << ") ... " << flush;
-
-
- BRepTools::Clean (shape);
- //WriteOCC_STL("test.stl");
-- BRepMesh_IncrementalMesh::BRepMesh_IncrementalMesh (shape, vispar.occdeflection, true);
-+ BRepMesh_IncrementalMesh::BRepMesh_IncrementalMesh (shape, vispar_occdeflection, true);
- cout << "done" << endl;
-
-
-@@ -973,8 +983,27 @@
-
- }
-
-+ void OCCGeometry::GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+ BRepTopAdaptor_FClass2d*& cls) const
-+ {
-+ //MSV: organize caching projector in the map
-+ if (fprjmap.IsBound(surfi))
-+ {
-+ proj = fprjmap.Find(surfi);
-+ cls = fclsmap.Find(surfi);
-+ }
-+ else
-+ {
-+ const TopoDS_Face& aFace = TopoDS::Face(fmap(surfi));
-+ Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);
-+ proj = new ShapeAnalysis_Surface(aSurf);
-+ fprjmap.Bind(surfi, proj);
-+ cls = new BRepTopAdaptor_FClass2d(aFace,Precision::Confusion());
-+ fclsmap.Bind(surfi, cls);
-+ }
-+ }
-
-- void OCCGeometry :: Project (int surfi, Point<3> & p) const
-+ bool OCCGeometry :: Project (int surfi, Point<3> & p, double& u, double& v) const
- {
- static int cnt = 0;
- if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;
-@@ -983,18 +1012,22 @@
-
- //(*testout) << "before " << pnt.X() << " "<< pnt.Y() << " "<< pnt.Z() << " " << endl;
-
-- GeomAPI_ProjectPointOnSurf proj(pnt, BRep_Tool::Surface(TopoDS::Face(fmap(surfi))));
-- if (proj.NbPoints() == 0)
-- {
-- cout << "Projection fails" << endl;
-- }
-- else
-- {
-- pnt = proj.NearestPoint();
-- //(*testout) << "after " << pnt.X() << " "<< pnt.Y() << " "<< pnt.Z() << " " << endl;
-+ Handle(ShapeAnalysis_Surface) proj;
-+ BRepTopAdaptor_FClass2d *cls;
-+ GetFaceTools(surfi, proj, cls);
-
-- p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-- }
-+ gp_Pnt2d p2d = proj->ValueOfUV(pnt, Precision::Confusion());
-+ if (cls->Perform(p2d) == TopAbs_OUT)
-+ {
-+ //cout << "Projection fails" << endl;
-+ return false;
-+ }
-+ pnt = proj->Value(p2d);
-+ p2d.Coord(u, v);
-+ //(*testout) << "after " << pnt.X() << " "<< pnt.Y() << " "<< pnt.Z() << " " << endl;
-+
-+ p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-+ return true;
- }
-
-
-@@ -1002,54 +1035,20 @@
- {
- gp_Pnt p(ap(0), ap(1), ap(2));
-
-- Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+ Handle(ShapeAnalysis_Surface) proj;
-+ BRepTopAdaptor_FClass2d *cls;
-+ GetFaceTools(surfi, proj, cls);
-
-- gp_Pnt x = surface->Value (u,v);
--
-- if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
--
-- gp_Vec du, dv;
--
-- surface->D1(u,v,x,du,dv);
--
-- int count = 0;
--
-- gp_Pnt xold;
-- gp_Vec n;
-- double det, lambda, mu;
--
-- do {
-- count++;
--
-- n = du^dv;
--
-- det = Det3 (n.X(), du.X(), dv.X(),
-- n.Y(), du.Y(), dv.Y(),
-- n.Z(), du.Z(), dv.Z());
--
-- if (det < 1e-15) return false;
--
-- lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
-- n.Y(), p.Y()-x.Y(), dv.Y(),
-- n.Z(), p.Z()-x.Z(), dv.Z())/det;
--
-- mu = Det3 (n.X(), du.X(), p.X()-x.X(),
-- n.Y(), du.Y(), p.Y()-x.Y(),
-- n.Z(), du.Z(), p.Z()-x.Z())/det;
--
-- u += lambda;
-- v += mu;
--
-- xold = x;
-- surface->D1(u,v,x,du,dv);
--
-- } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
--
-- // (*testout) << "FastProject count: " << count << endl;
--
-- if (count == 50) return false;
-+ gp_Pnt2d p2d = proj->NextValueOfUV(gp_Pnt2d(u,v), p, Precision::Confusion());
-+ if (cls->Perform(p2d) == TopAbs_OUT)
-+ {
-+ //cout << "Projection fails" << endl;
-+ return false;
-+ }
-
-- ap = Point<3> (x.X(), x.Y(), x.Z());
-+ p = proj->Value(p2d);
-+ p2d.Coord(u, v);
-+ ap = Point<3> (p.X(), p.Y(), p.Z());
-
- return true;
- }
-diff -Naur netgen-4.5.old/libsrc/occ/occgeom.hpp netgen-4.5.new/libsrc/occ/occgeom.hpp
---- netgen-4.5.old/libsrc/occ/occgeom.hpp 2006-01-25 16:35:50.000000000 +0300
-+++ netgen-4.5.new/libsrc/occ/occgeom.hpp 2008-02-12 14:57:01.000000000 +0300
-@@ -15,8 +15,6 @@
- #include "Geom_Curve.hxx"
- #include "Geom2d_Curve.hxx"
- #include "Geom_Surface.hxx"
--#include "GeomAPI_ProjectPointOnSurf.hxx"
--#include "GeomAPI_ProjectPointOnCurve.hxx"
- #include "BRepTools.hxx"
- #include "TopExp.hxx"
- #include "BRepBuilderAPI_MakeVertex.hxx"
-@@ -41,8 +39,6 @@
- #include "Geom_Curve.hxx"
- #include "Geom2d_Curve.hxx"
- #include "Geom_Surface.hxx"
--#include "GeomAPI_ProjectPointOnSurf.hxx"
--#include "GeomAPI_ProjectPointOnCurve.hxx"
- #include "TopoDS_Wire.hxx"
- #include "BRepTools_WireExplorer.hxx"
- #include "BRepTools.hxx"
-@@ -69,7 +65,7 @@
- #include "IGESToBRep_Reader.hxx"
- #include "Interface_Static.hxx"
- #include "GeomAPI_ExtremaCurveCurve.hxx"
--#include "Standard_ErrorHandler.hxx"
-+//#include "Standard_ErrorHandler.hxx"
- #include "Standard_Failure.hxx"
- #include "ShapeUpgrade_ShellSewing.hxx"
- #include "ShapeFix_Shape.hxx"
-@@ -84,11 +80,15 @@
- #include "STEPControl_Writer.hxx"
- #include "StlAPI_Writer.hxx"
- #include "STEPControl_StepModelType.hxx"
-+#include <NCollection_DataMap.hxx>
-+
-+class Handle_ShapeAnalysis_Surface;
-+class BRepTopAdaptor_FClass2d;
-
- namespace netgen
- {
-
--#include "../visualization/vispar.hpp"
-+ //#include "../visualization/vispar.hpp"
- // class VisualizationParameters;
- // extern VisualizationParameters vispar;
-
-@@ -159,6 +159,8 @@
- class OCCGeometry
- {
- Point<3> center;
-+ mutable NCollection_DataMap<int,Handle_ShapeAnalysis_Surface> fprjmap;
-+ mutable NCollection_DataMap<int,BRepTopAdaptor_FClass2d*> fclsmap;
-
- public:
- TopoDS_Shape shape;
-@@ -189,6 +191,7 @@
- vmap.Clear();
- }
-
-+ ~OCCGeometry();
-
- void BuildFMap();
-
-@@ -204,10 +207,12 @@
- Point<3> Center()
- { return center; }
-
-- void Project (int surfi, Point<3> & p) const;
-+ bool Project (int surfi, Point<3> & p, double& u, double& v) const;
- bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;
-
--
-+ void GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+ BRepTopAdaptor_FClass2d*& cls) const;
-+
- OCCSurface GetSurface (int surfi)
- {
- cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
-diff -Naur netgen-4.5.old/libsrc/occ/occmeshsurf.cpp netgen-4.5.new/libsrc/occ/occmeshsurf.cpp
---- netgen-4.5.old/libsrc/occ/occmeshsurf.cpp 2006-01-25 16:36:26.000000000 +0300
-+++ netgen-4.5.new/libsrc/occ/occmeshsurf.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -5,6 +5,8 @@
- #include <occgeom.hpp>
- #include <meshing.hpp>
- #include <GeomLProp_SLProps.hxx>
-+#include <GeomAPI_ProjectPointOnSurf.hxx>
-+#include <GeomAPI_ProjectPointOnCurve.hxx>
-
-
- namespace netgen
-@@ -411,11 +413,16 @@
- }
-
-
-- void MeshOptimize2dOCCSurfaces :: ProjectPoint (INDEX surfind, Point3d & p) const
-+ bool MeshOptimize2dOCCSurfaces :: ProjectPoint (INDEX surfind, Point3d & p, PointGeomInfo& gi) const
- {
- Point<3> hp = p;
-- geometry.Project (surfind, hp);
-+ bool ok;
-+ if (gi.trignum > 0)
-+ ok = geometry.FastProject (surfind, hp, gi.u, gi.v);
-+ else
-+ ok = geometry.Project (surfind, hp, gi.u, gi.v);
- p = hp;
-+ return ok;
- }
-
- void MeshOptimize2dOCCSurfaces :: ProjectPoint2 (INDEX surfind, INDEX surfind2,
-@@ -506,38 +513,6 @@
- }
-
-
-- int MeshOptimize2dOCCSurfaces ::
-- CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point3d& p) const
-- {
-- Standard_Real u,v;
--
-- gp_Pnt pnt(p.X(), p.Y(), p.Z());
--
-- Handle(Geom_Surface) occface;
-- occface = BRep_Tool::Surface(TopoDS::Face(geometry.fmap(surfind)));
--
-- GeomAPI_ProjectPointOnSurf proj(pnt, occface);
--
-- if (proj.NbPoints() < 1)
-- {
-- cout << "ERROR: OCCSurface :: GetNormalVector: GeomAPI_ProjectPointOnSurf failed!"
-- << endl;
-- cout << p << endl;
-- return 0;
-- }
--
-- proj.LowerDistanceParameters (u, v);
--
-- gi.u = u;
-- gi.v = v;
-- return 1;
-- }
--
--
--
--
--
--
- OCCRefinementSurfaces :: OCCRefinementSurfaces (const OCCGeometry & ageometry)
- : Refinement(), geometry(ageometry)
- {
-@@ -627,10 +602,11 @@
- if (!geometry.FastProject (surfi, hnewp, u, v))
- {
- cout << "Fast projection to surface fails! Using OCC projection" << endl;
-- geometry.Project (surfi, hnewp);
-+ double u, v;
-+ geometry.Project (surfi, hnewp, u, v);
- }
-
-- newgi.trignum = 1;
-+ newgi.trignum = surfi;
- }
-
- newp = hnewp;
-@@ -653,14 +629,17 @@
- hnewp = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
- newp = hnewp;
- newgi = ap1;
-- };
-+ }
-
-
- void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi)
- {
- if (surfi > 0)
-- geometry.Project (surfi, p);
-- };
-+ {
-+ double u, v;
-+ geometry.Project (surfi, p, u, v);
-+ }
-+ }
-
- void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi, PointGeomInfo & gi)
- {
-@@ -668,9 +647,10 @@
- if (!geometry.FastProject (surfi, p, gi.u, gi.v))
- {
- cout << "Fast projection to surface fails! Using OCC projection" << endl;
-- geometry.Project (surfi, p);
-+ double u, v;
-+ geometry.Project (surfi, p, u, v);
- }
-- };
-+ }
-
-
-
-diff -Naur netgen-4.5.old/libsrc/occ/occmeshsurf.hpp netgen-4.5.new/libsrc/occ/occmeshsurf.hpp
---- netgen-4.5.old/libsrc/occ/occmeshsurf.hpp 2005-06-09 18:51:10.000000000 +0400
-+++ netgen-4.5.new/libsrc/occ/occmeshsurf.hpp 2008-02-12 14:57:01.000000000 +0300
-@@ -151,7 +151,7 @@
- MeshOptimize2dOCCSurfaces (const OCCGeometry & ageometry);
-
- ///
-- virtual void ProjectPoint (INDEX surfind, Point3d & p) const;
-+ virtual bool ProjectPoint (INDEX surfind, Point3d & p, PointGeomInfo& gi) const;
- ///
- virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point3d & p) const;
- ///
-@@ -159,9 +159,6 @@
- ///
- virtual void GetNormalVector(INDEX surfind, const Point3d & p, PointGeomInfo & gi, Vec3d & n) const;
-
--
-- virtual int CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point3d& p3) const;
--
- };
-
-
-diff -Naur netgen-4.5.old/libsrc/stlgeom/meshstlsurface.cpp netgen-4.5.new/libsrc/stlgeom/meshstlsurface.cpp
---- netgen-4.5.old/libsrc/stlgeom/meshstlsurface.cpp 2006-01-11 19:08:20.000000000 +0300
-+++ netgen-4.5.new/libsrc/stlgeom/meshstlsurface.cpp 2008-02-12 14:57:01.000000000 +0300
-@@ -946,20 +946,23 @@
- }
-
-
--void MeshOptimizeSTLSurface :: ProjectPoint (INDEX surfind, Point3d & p) const
-+bool MeshOptimizeSTLSurface :: ProjectPoint (INDEX surfind, Point3d & p, PointGeomInfo& gi) const
- {
- Point<3> hp = p;
-- if (!geom.Project (hp))
-+ if (gi.trignum > 0)
-+ ((STLGeometry&)geom).SelectChartOfTriangle (gi.trignum);
-+ if (!(gi.trignum = geom.Project (hp)))
- {
- PrintMessage(7,"project failed");
-
-- if (!geom.ProjectOnWholeSurface(hp))
-+ if (!(gi.trignum = geom.ProjectOnWholeSurface(hp)))
- {
- PrintMessage(7, "project on whole surface failed");
- }
- }
- p = hp;
- // geometry.GetSurface(surfind)->Project (p);
-+ return gi.trignum > 0;
- }
-
- void MeshOptimizeSTLSurface :: ProjectPoint2 (INDEX surfind, INDEX surfind2, Point3d & p) const
-@@ -970,20 +973,6 @@
- */
- }
-
--int MeshOptimizeSTLSurface :: CalcPointGeomInfo(PointGeomInfo& gi, const Point3d& p3) const
--{
-- Point<3> hp = p3;
-- gi.trignum = geom.Project (hp);
--
-- if (gi.trignum)
-- {
-- return 1;
-- }
--
-- return 0;
--
--}
--
- void MeshOptimizeSTLSurface :: GetNormalVector(INDEX surfind, const Point3d & p, Vec3d & n) const
- {
- n = geom.GetChartNormalVector();
-diff -Naur netgen-4.5.old/libsrc/stlgeom/meshstlsurface.hpp netgen-4.5.new/libsrc/stlgeom/meshstlsurface.hpp
---- netgen-4.5.old/libsrc/stlgeom/meshstlsurface.hpp 2004-09-30 17:13:56.000000000 +0400
-+++ netgen-4.5.new/libsrc/stlgeom/meshstlsurface.hpp 2008-02-12 14:57:01.000000000 +0300
-@@ -79,12 +79,10 @@
- virtual void SelectSurfaceOfPoint (const Point3d & p,
- const PointGeomInfo & gi);
- ///
-- virtual void ProjectPoint (INDEX surfind, Point3d & p) const;
-+ virtual bool ProjectPoint (INDEX surfind, Point3d & p, PointGeomInfo& gi) const;
- ///
- virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point3d & p) const;
- ///
-- virtual int CalcPointGeomInfo(PointGeomInfo& gi, const Point3d& p3) const;
-- ///
- virtual void GetNormalVector(INDEX surfind, const Point3d & p, Vec3d & n) const;
- };
-
-diff -Naur netgen-4.5.old/makeForSalome.sh netgen-4.5.new/makeForSalome.sh
---- netgen-4.5.old/makeForSalome.sh 1970-01-01 03:00:00.000000000 +0300
-+++ netgen-4.5.new/makeForSalome.sh 2008-02-12 14:57:01.000000000 +0300
-@@ -0,0 +1,31 @@
-+#! /bin/sh
-+cp ngtcltk/ngnewdelete.* libsrc/interface/
-+
-+MACHINE=LINUX
-+export MACHINE
-+make -C libsrc/csg
-+make -C libsrc/general
-+make -C libsrc/geom2d
-+make -C libsrc/gprim
-+make -C libsrc/interface
-+make -C libsrc/linalg
-+make -C libsrc/meshing
-+make -C libsrc/opti
-+make -C libsrc/stlgeom
-+make -C libsrc/occ
-+
-+if [ ! -d install ] ; then
-+ mkdir install
-+fi
-+
-+cp -r lib install/
-+
-+if [ ! -d install/include ] ; then
-+ mkdir install/include
-+fi
-+
-+cp libsrc/interface/nglib.h libsrc/general/*.hpp libsrc/csg/*.hpp libsrc/geom2d/*.hpp \
-+ libsrc/gprim/*.hpp libsrc/linalg/*.hpp libsrc/meshing/*.hpp \
-+ libsrc/occ/*.hpp libsrc/opti/*.hpp libsrc/include/mydefs.hpp \
-+ libsrc/stlgeom/*.hpp libsrc/include/mystdlib.h \
-+ install/include
-diff -Naur netgen-4.5.old/libsrc/occ/Partition_Inter2d.cxx netgen-4.5.new/libsrc/occ/Partition_Inter2d.cxx
---- netgen-4.5.old/libsrc/occ/Partition_Inter2d.cxx 2005-06-09 18:51:10.000000000 +0400
-+++ netgen-4.5.new/libsrc/occ/Partition_Inter2d.cxx 2008-02-26 12:34:14.000000000 +0300
-@@ -29,10 +29,10 @@
- // $Header$
-
- //using namespace std;
--#include "Partition_Inter2d.ixx"
--
- #include "utilities.h"
-
-+#include "Partition_Inter2d.ixx"
-+
- #include <BRepAdaptor_Curve.hxx>
- #include <BRepAlgo_AsDes.hxx>
- #include <BRepLib_MakeVertex.hxx>
-diff -Naur netgen-4.5.old/libsrc/occ/Partition_Inter3d.cxx netgen-4.5.new/libsrc/occ/Partition_Inter3d.cxx
---- netgen-4.5.old/libsrc/occ/Partition_Inter3d.cxx 2005-06-09 18:51:10.000000000 +0400
-+++ netgen-4.5.new/libsrc/occ/Partition_Inter3d.cxx 2008-02-26 12:36:27.000000000 +0300
-@@ -29,13 +29,17 @@
- // $Header$
-
- //using namespace std;
-+
-+#include "utilities.h"
-+
- #include "Partition_Inter2d.hxx"
- #include "Partition_Inter3d.ixx"
--#include "utilities.h"
-
- #include <BRepAlgo_AsDes.hxx>
- #include <BRepAlgo_Image.hxx>
- #include <BRepLib.hxx>
-+//using namespace std;
-+
- #include <BRepOffset_Tool.hxx>
- #include <BRep_Builder.hxx>
- #include <BRep_Tool.hxx>
-diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop2d.cxx netgen-4.5.new/libsrc/occ/Partition_Loop2d.cxx
---- netgen-4.5.old/libsrc/occ/Partition_Loop2d.cxx 2005-06-09 18:51:10.000000000 +0400
-+++ netgen-4.5.new/libsrc/occ/Partition_Loop2d.cxx 2008-02-26 12:37:10.000000000 +0300
-@@ -12,9 +12,11 @@
- // $Header$
-
- //using namespace std;
--#include "Partition_Loop2d.ixx"
-+
-
- #include "utilities.h"
-+
-+#include "Partition_Loop2d.ixx"
- #include <stdio.h>
-
- #include <BRepAdaptor_Curve2d.hxx>
-diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop3d.cxx netgen-4.5.new/libsrc/occ/Partition_Loop3d.cxx
---- netgen-4.5.old/libsrc/occ/Partition_Loop3d.cxx 2005-06-09 18:51:10.000000000 +0400
-+++ netgen-4.5.new/libsrc/occ/Partition_Loop3d.cxx 2008-02-26 12:39:32.000000000 +0300
-@@ -10,6 +10,11 @@
- // Module : GEOM
-
- //using namespace std;
-+
-+
-+
-+#include "utilities.h"
-+
- #include "Partition_Loop3d.ixx"
-
- #include <TopExp_Explorer.hxx>
-diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop.cxx netgen-4.5.new/libsrc/occ/Partition_Loop.cxx
---- netgen-4.5.old/libsrc/occ/Partition_Loop.cxx 2005-06-09 18:51:10.000000000 +0400
-+++ netgen-4.5.new/libsrc/occ/Partition_Loop.cxx 2008-02-26 12:40:41.000000000 +0300
-@@ -29,12 +29,14 @@
- // $Header$
-
- //using namespace std;
--#include <stdio.h>
-
--#include "Partition_Loop.ixx"
-
- #include "utilities.h"
-
-+#include <stdio.h>
-+
-+#include "Partition_Loop.ixx"
-+
- #include <BRep_Builder.hxx>
- #include <BRepAlgo_FaceRestrictor.hxx>
- #include <BRep_Tool.hxx>
-diff -Naur netgen-4.5.old/libsrc/occ/Partition_Spliter.cxx netgen-4.5.new/libsrc/occ/Partition_Spliter.cxx
---- netgen-4.5.old/libsrc/occ/Partition_Spliter.cxx 2005-07-11 10:33:27.000000000 +0400
-+++ netgen-4.5.new/libsrc/occ/Partition_Spliter.cxx 2008-02-26 12:41:32.000000000 +0300
-@@ -29,14 +29,15 @@
- // $Header$
-
- //using namespace std;
-+
-+#include "utilities.h"
-+
- #include "Partition_Inter2d.hxx"
- #include "Partition_Inter3d.hxx"
- #include "Partition_Loop2d.hxx"
- #include "Partition_Loop3d.hxx"
- #include "Partition_Spliter.ixx"
-
--#include "utilities.h"
--
- #include <Precision.hxx>
- #include <TopAbs_Orientation.hxx>
- #include <TopExp.hxx>
-diff -Naur netgen-4.5.old/libsrc/occ/utilities.h netgen-4.5.new/libsrc/occ/utilities.h
---- netgen-4.5.old/libsrc/occ/utilities.h 2005-02-11 14:35:43.000000000 +0300
-+++ netgen-4.5.new/libsrc/occ/utilities.h 2008-02-26 12:28:02.000000000 +0300
-@@ -33,6 +33,7 @@
-
- #include <string>
- #include <iostream>
-+#include <iomanip>
- #include <cstdlib>
- // #include "SALOME_Log.hxx"
-
+++ /dev/null
-diff -ur netgen-4.5.old/libsrc/makefile.inc netgen-4.5.new/libsrc/makefile.inc
---- netgen-4.5/libsrc/makefile.inc 2006-04-27 13:12:54.000000000 +0400
-+++ netgen-4.5/libsrc/makefile.inc 2006-09-05 14:16:32.000000000 +0400
-@@ -14,7 +14,7 @@
- #
- include $(LIBSRC_DIR)/makefile.mach.$(MACHINE)
- #
--CPLUSPLUSFLAGS1 = -c -fPIC -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
-+CPLUSPLUSFLAGS1 = -c -m64 -D_OCC64 -fPIC -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
- -DOCCGEOMETRY -DOCC52 -DHAVE_IOSTREAM -DHAVE_LIMITS_H
- #
- ARFLAGS = r
-diff -ur netgen-4.5.old/libsrc/makefile.mach.LINUX64 netgen-4.5.new/libsrc/makefile.mach.LINUX64
---- netgen-4.5/libsrc/makefile.mach.LINUX64 2006-03-29 15:09:32.000000000 +0400
-+++ netgen-4.5/libsrc/makefile.mach.LINUX64 2006-09-07 15:48:39.000000000 +0400
-@@ -11,7 +11,7 @@
- #
- #
- CFLAGS2 =
--CPLUSPLUSFLAGS2 = -pg -march=nocona -O2 -DLINUX -DOPENGL \
-+CPLUSPLUSFLAGS2 = -pg -march=nocona -O2 -DLINUX \
- -ftemplate-depth-99 -finline-limit=100000 \
- -fforce-addr -funroll-loops \
- -DTRAFO -DNGSOLVE -DnoADDON -DnoLAPACK -DnoFAST \
-@@ -23,7 +23,7 @@
- #
- #
-
--LINKFLAGS2 = -pg -L/usr/openwin/lib64 -L/usr/X11R6/lib64 -L/usr/lib/GL3.5 -L/usr/lib64
-+LINKFLAGS2 = -fPIC -pg -L/usr/openwin/lib64 -L/usr/X11R6/lib64 -L/usr/lib/GL3.5 -L/usr/lib64
-
-
- SYSLIB2 = -lstdc++
-diff -ur netgen-4.5.old/Makefile netgen-4.5.new/Makefile
---- netgen-4.5/Makefile 2006-03-29 15:09:12.000000000 +0400
-+++ netgen-4.5/Makefile 2006-09-07 15:46:07.000000000 +0400
-@@ -72,7 +72,7 @@
- #
- #CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -DOPENGL
-
--CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) -I./ngsolve/include -Ilibsrc/interface -DOPENGL -I$(METISINC)
-+CPLUSPLUSFLAGS1 = -c -m64 -D_OCC64 -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) -I./ngsolve/include -Ilibsrc/interface -I$(METISINC)
-
- LINKFLAGS1 = -lGL -lGLU -lX11 -lXext -lXmu
- #
+++ /dev/null
-diff -Naur omniNotify-orig/include/RDIstrstream.h omniNotify/include/RDIstrstream.h
---- omniNotify/include/RDIstrstream.h 2003-10-12 22:51:15.000000000 +0400
-+++ omniNotify/include/RDIstrstream.h 2006-09-28 17:44:20.000000000 +0400
-@@ -57,8 +57,10 @@
- RDIstrstream& operator<<(const void *p);
- RDIstrstream& operator<<(int n);
- RDIstrstream& operator<<(unsigned int n);
-+#ifndef HAS_LongLong
- RDIstrstream& operator<<(long n);
- RDIstrstream& operator<<(unsigned long n);
-+#endif
- RDIstrstream& operator<<(short n) {return operator<<((int)n);}
- RDIstrstream& operator<<(unsigned short n) {return operator<<((unsigned int)n);}
- #ifdef HAS_LongLong
-diff -Naur omniNotify-orig/include/RDITimeWrappers.h omniNotify/include/RDITimeWrappers.h
---- omniNotify/include/RDITimeWrappers.h 2003-10-23 17:28:18.000000000 +0400
-+++ omniNotify/include/RDITimeWrappers.h 2006-09-28 18:10:41.000000000 +0400
-@@ -236,8 +236,11 @@
- // pretty-printing of absolute local time -- no newline
- void out_local(RDIstrstream& str) {
- CORBA::ULong ts, tn;
-- get_posixbase_secs_nanosecs(ts, tn);
-- RDI_posixbase_out_time(str, ts, tn);
-+ unsigned long ts3, tn3;
-+ get_posixbase_secs_nanosecs(ts3, tn3);
-+ RDI_posixbase_out_time(str, ts3, tn3);
-+ ts = (CORBA::ULong)ts3;
-+ tn = (CORBA::ULong)tn3;
- str << " (local time)";
- }
-
-@@ -396,8 +399,11 @@
- // pretty-printing of absolute univ time -- no newline
- void out_gmt(RDIstrstream& str) {
- CORBA::ULong ts, tn;
-- get_gmt_posixbase_secs_nanosecs(ts, tn);
-- RDI_posixbase_out_time(str, ts, tn);
-+ unsigned long ts4, tn4;
-+ get_gmt_posixbase_secs_nanosecs(ts4, tn4);
-+ RDI_posixbase_out_time(str, ts4, tn4);
-+ ts = (CORBA::ULong)ts4;
-+ tn = (CORBA::ULong)tn4;
- str << " (greenwich mean time)";
- }
- // static helpers for producing TimeBase::UtcT min and max
-diff -Naur omniNotify-orig/lib/RDIstrstream.cc omniNotify/lib/RDIstrstream.cc
---- omniNotify/lib/RDIstrstream.cc 2003-10-23 08:39:12.000000000 +0400
-+++ omniNotify/lib/RDIstrstream.cc 2006-09-28 16:56:03.000000000 +0400
-@@ -175,6 +175,7 @@
- return *this;
- }
-
-+#ifndef HAS_LongLong
- RDIstrstream&
- RDIstrstream::operator<<(long n)
- {
-@@ -194,6 +195,7 @@
- width_fill();
- return *this;
- }
-+#endif
-
- #ifdef HAS_LongLong
- RDIstrstream&
-diff -Naur omniNotify-orig/lib/RDITimeWrappers.cc omniNotify/lib/RDITimeWrappers.cc
---- omniNotify/lib/RDITimeWrappers.cc 2003-10-23 08:39:12.000000000 +0400
-+++ omniNotify/lib/RDITimeWrappers.cc 2006-09-28 16:56:09.000000000 +0400
-@@ -147,7 +147,10 @@
- #define WHATFN "RDI_TimeT::fmt_local"
- const char *RDI_TimeT::fmt_local() {
- CORBA::ULong ts, tm;
-- get_posixbase_secs_msecs(ts, tm);
-+ unsigned long ts2, tm2;
-+ get_posixbase_secs_msecs(ts2, tm2);
-+ ts = (CORBA::ULong)ts2;
-+ tm = (CORBA::ULong)tm2;
- time_t secs_as_time_t = ts;
- TW_SCOPE_LOCK(otime_lock, RDI_out_time_lock, "RDI_out_time", WHATFN);
- RDI_TimeT_fmt_local_buf_idx = (RDI_TimeT_fmt_local_buf_idx + 1) % 10;
-diff -Naur omniNotify/mk/beforeauto.mk.in omniNotify/mk/beforeauto.mk.in
---- omniNotify/mk/beforeauto.mk.in 2003-10-29 22:18:36.000000000 +0300
-+++ omniNotify/mk/beforeauto.mk.in 2006-10-13 16:58:26.000000000 +0400
-@@ -95,9 +95,9 @@
-
- CPPFLAGS = $(DIR_CPPFLAGS) $(IMPORT_CPPFLAGS)
-
--CFLAGS = $(CDEBUGFLAGS) $(COPTIONS) $(CPPFLAGS)
-+CFLAGS = -m64 $(CDEBUGFLAGS) $(COPTIONS) $(CPPFLAGS)
-
--CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(CPPFLAGS)
-+CXXFLAGS = -m64 $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(CPPFLAGS)
-
-
- #############################################################################
+++ /dev/null
-diff -Naur --exclude=CVS Python-2.4.4/configure.in Python-2.4.4-patched/configure.in
---- Python-2.4.4/configure.in 2006-10-17 20:03:36.000000000 +0400
-+++ Python-2.4.4-patched/configure.in 2007-04-23 19:31:52.000000000 +0400
-@@ -494,6 +494,41 @@
- ;;
- esac
-
-+AC_SUBST(ARCH)
-+AC_MSG_CHECKING(ARCH)
-+ARCH=`uname -m`
-+case $ARCH in
-+i?86) ARCH=i386;;
-+esac
-+AC_MSG_RESULT($ARCH)
-+
-+AC_SUBST(LIB)
-+AC_MSG_CHECKING(LIB)
-+case $ac_sys_system in
-+Linux*)
-+ # Test if the compiler is 64bit
-+ echo 'int i;' > conftest.$ac_ext
-+ python_cv_cc_64bit_output=no
-+ if AC_TRY_EVAL(ac_compile); then
-+ case `/usr/bin/file conftest.$ac_objext` in
-+ *"ELF 64"*)
-+ python_cv_cc_64bit_output=yes
-+ ;;
-+ esac
-+ fi
-+ rm -rf conftest*
-+ ;;
-+esac
-+
-+case $ARCH:$python_cv_cc_64bit_output in
-+powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
-+ LIB="lib64"
-+ ;;
-+*:*)
-+ LIB="lib"
-+ ;;
-+esac
-+AC_MSG_RESULT($LIB)
-
- AC_SUBST(LIBRARY)
- AC_MSG_CHECKING(LIBRARY)
-diff -Naur --exclude=CVS Python-2.4.4/Include/pythonrun.h Python-2.4.4-patched/Include/pythonrun.h
---- Python-2.4.4/Include/pythonrun.h 2004-10-07 07:58:07.000000000 +0400
-+++ Python-2.4.4-patched/Include/pythonrun.h 2007-04-23 19:10:18.000000000 +0400
-@@ -93,6 +93,8 @@
- /* In their own files */
- PyAPI_FUNC(const char *) Py_GetVersion(void);
- PyAPI_FUNC(const char *) Py_GetPlatform(void);
-+PyAPI_FUNC(const char *) Py_GetArch(void);
-+PyAPI_FUNC(const char *) Py_GetLib(void);
- PyAPI_FUNC(const char *) Py_GetCopyright(void);
- PyAPI_FUNC(const char *) Py_GetCompiler(void);
- PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
-diff -Naur --exclude=CVS Python-2.4.4/Lib/distutils/command/install.py Python-2.4.4-patched/Lib/distutils/command/install.py
---- Python-2.4.4/Lib/distutils/command/install.py 2005-01-20 22:15:39.000000000 +0300
-+++ Python-2.4.4-patched/Lib/distutils/command/install.py 2007-04-23 19:12:27.000000000 +0400
-@@ -19,6 +19,8 @@
- from distutils.errors import DistutilsOptionError
- from glob import glob
-
-+libname = sys.lib
-+
- if sys.version < "2.2":
- WINDOWS_SCHEME = {
- 'purelib': '$base',
-@@ -38,15 +40,15 @@
-
- INSTALL_SCHEMES = {
- 'unix_prefix': {
-- 'purelib': '$base/lib/python$py_version_short/site-packages',
-- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
-+ 'purelib': '$base/'+libname+'/python$py_version_short/site-packages',
-+ 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages',
- 'headers': '$base/include/python$py_version_short/$dist_name',
- 'scripts': '$base/bin',
- 'data' : '$base',
- },
- 'unix_home': {
-- 'purelib': '$base/lib/python',
-- 'platlib': '$base/lib/python',
-+ 'purelib': '$base/'+libname+'/python',
-+ 'platlib': '$base/'+libname+'/python',
- 'headers': '$base/include/python/$dist_name',
- 'scripts': '$base/bin',
- 'data' : '$base',
-diff -Naur --exclude=CVS Python-2.4.4/Lib/distutils/sysconfig.py Python-2.4.4-patched/Lib/distutils/sysconfig.py
---- Python-2.4.4/Lib/distutils/sysconfig.py 2006-10-08 21:41:25.000000000 +0400
-+++ Python-2.4.4-patched/Lib/distutils/sysconfig.py 2007-04-23 19:21:19.000000000 +0400
-@@ -100,7 +100,7 @@
-
- if os.name == "posix":
- libpython = os.path.join(prefix,
-- "lib", "python" + get_python_version())
-+ sys.lib, "python" + get_python_version())
- if standard_lib:
- return libpython
- else:
-diff -Naur --exclude=CVS Python-2.4.4/Lib/distutils/tests/test_install.py Python-2.4.4-patched/Lib/distutils/tests/test_install.py
---- Python-2.4.4/Lib/distutils/tests/test_install.py 2004-06-26 03:02:59.000000000 +0400
-+++ Python-2.4.4-patched/Lib/distutils/tests/test_install.py 2007-04-23 19:20:24.000000000 +0400
-@@ -1,6 +1,7 @@
- """Tests for distutils.command.install."""
-
- import os
-+import sys
- import unittest
-
- from distutils.command.install import install
-@@ -38,7 +39,7 @@
- expected = os.path.normpath(expected)
- self.assertEqual(got, expected)
-
-- libdir = os.path.join(destination, "lib", "python")
-+ libdir = os.path.join(destination, sys.lib, "python")
- check_path(cmd.install_lib, libdir)
- check_path(cmd.install_platlib, libdir)
- check_path(cmd.install_purelib, libdir)
-diff -Naur --exclude=CVS Python-2.4.4/Lib/site.py Python-2.4.4-patched/Lib/site.py
---- Python-2.4.4/Lib/site.py 2004-07-20 06:28:28.000000000 +0400
-+++ Python-2.4.4-patched/Lib/site.py 2007-04-23 19:23:19.000000000 +0400
-@@ -179,12 +179,18 @@
- sitedirs = [os.path.join(prefix, "Lib", "site-packages")]
- elif os.sep == '/':
- sitedirs = [os.path.join(prefix,
-- "lib",
-+ sys.lib,
- "python" + sys.version[:3],
- "site-packages"),
-- os.path.join(prefix, "lib", "site-python")]
-+ os.path.join(prefix, sys.lib, "site-python")]
-+ if sys.lib != 'lib':
-+ sitedirs.append(os.path.join(prefix,
-+ 'lib',
-+ "python" + sys.version[:3],
-+ "site-packages"))
-+ sitedirs.append(os.path.join(prefix, 'lib', "site-python"))
- else:
-- sitedirs = [prefix, os.path.join(prefix, "lib", "site-packages")]
-+ sitedirs = [prefix, os.path.join(prefix, sys.lib, "site-packages")]
- if sys.platform == 'darwin':
- # for framework builds *only* we add the standard Apple
- # locations. Currently only per-user, but /Library and
-diff -Naur --exclude=CVS Python-2.4.4/Makefile.pre.in Python-2.4.4-patched/Makefile.pre.in
---- Python-2.4.4/Makefile.pre.in 2006-10-08 21:41:25.000000000 +0400
-+++ Python-2.4.4-patched/Makefile.pre.in 2007-04-23 19:34:43.000000000 +0400
-@@ -70,6 +70,8 @@
-
- # Machine-dependent subdirectories
- MACHDEP= @MACHDEP@
-+LIB= @LIB@
-+ARCH= @ARCH@
-
- # Install prefix for architecture-independent files
- prefix= @prefix@
-@@ -79,11 +81,11 @@
-
- # Expanded directories
- BINDIR= $(exec_prefix)/bin
--LIBDIR= $(exec_prefix)/lib
-+LIBDIR= $(exec_prefix)/$(LIB)
- MANDIR= @mandir@
- INCLUDEDIR= @includedir@
- CONFINCLUDEDIR= $(exec_prefix)/include
--SCRIPTDIR= $(prefix)/lib
-+SCRIPTDIR= $(prefix)/$(LIB)
-
- # Detailed destination directories
- BINLIBDEST= $(LIBDIR)/python$(VERSION)
-@@ -471,7 +473,7 @@
- Python/compile.o Python/symtable.o: $(GRAMMAR_H)
-
- Python/getplatform.o: $(srcdir)/Python/getplatform.c
-- $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
-+ $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DARCH='"$(ARCH)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c
-
- Python/importdl.o: $(srcdir)/Python/importdl.c
- $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-diff -Naur --exclude=CVS Python-2.4.4/Modules/getpath.c Python-2.4.4-patched/Modules/getpath.c
---- Python-2.4.4/Modules/getpath.c 2006-02-20 20:37:39.000000000 +0300
-+++ Python-2.4.4-patched/Modules/getpath.c 2007-04-23 19:25:34.000000000 +0400
-@@ -111,9 +111,17 @@
- #define EXEC_PREFIX PREFIX
- #endif
-
-+#ifndef LIB_PYTHON
-+#if defined(__x86_64__)
-+#define LIB_PYTHON "lib64/python" VERSION
-+#else
-+#define LIB_PYTHON "lib/python" VERSION
-+#endif
-+#endif
-+
- #ifndef PYTHONPATH
--#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
-- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
-+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
-+ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
- #endif
-
- #ifndef LANDMARK
-@@ -124,7 +132,7 @@
- static char exec_prefix[MAXPATHLEN+1];
- static char progpath[MAXPATHLEN+1];
- static char *module_search_path = NULL;
--static char lib_python[] = "lib/python" VERSION;
-+static char lib_python[] = LIB_PYTHON;
-
- static void
- reduce(char *dir)
-diff -Naur --exclude=CVS Python-2.4.4/Python/getplatform.c Python-2.4.4-patched/Python/getplatform.c
---- Python-2.4.4/Python/getplatform.c 2000-09-02 03:29:29.000000000 +0400
-+++ Python-2.4.4-patched/Python/getplatform.c 2007-04-23 19:27:19.000000000 +0400
-@@ -10,3 +10,23 @@
- {
- return PLATFORM;
- }
-+
-+#ifndef ARCH
-+#define ARCH "unknown"
-+#endif
-+
-+const char *
-+Py_GetArch(void)
-+{
-+ return ARCH;
-+}
-+
-+#ifndef LIB
-+#define LIB "lib"
-+#endif
-+
-+const char *
-+Py_GetLib(void)
-+{
-+ return LIB;
-+}
-diff -Naur --exclude=CVS Python-2.4.4/Python/sysmodule.c Python-2.4.4-patched/Python/sysmodule.c
---- Python-2.4.4/Python/sysmodule.c 2006-10-05 22:08:58.000000000 +0400
-+++ Python-2.4.4-patched/Python/sysmodule.c 2007-04-23 19:29:43.000000000 +0400
-@@ -1035,6 +1035,10 @@
- PyString_FromString(Py_GetCopyright()));
- SET_SYS_FROM_STRING("platform",
- PyString_FromString(Py_GetPlatform()));
-+ SET_SYS_FROM_STRING("arch",
-+ PyString_FromString(Py_GetArch()));
-+ SET_SYS_FROM_STRING("lib",
-+ PyString_FromString(Py_GetLib()));
- SET_SYS_FROM_STRING("executable",
- PyString_FromString(Py_GetProgramFullPath()));
- SET_SYS_FROM_STRING("prefix",
-diff -Naur --exclude=CVS Python-2.4.4/setup.py Python-2.4.4-patched/setup.py
---- Python-2.4.4/setup.py 2006-10-08 21:41:25.000000000 +0400
-+++ Python-2.4.4-patched/setup.py 2007-04-23 19:38:02.000000000 +0400
-@@ -263,12 +263,12 @@
- except NameError:
- have_unicode = 0
-
-+ libname = sys.lib
- # lib_dirs and inc_dirs are used to search for files;
- # if a file is found in one of those directories, it can
- # be assumed that no additional -I,-L directives are needed.
- lib_dirs = self.compiler.library_dirs + [
-- '/lib64', '/usr/lib64',
-- '/lib', '/usr/lib',
-+ libname, '/usr/'+libname
- ]
- inc_dirs = self.compiler.include_dirs + ['/usr/include']
- exts = []
-@@ -450,7 +450,7 @@
- elif self.compiler.find_library_file(lib_dirs, 'curses'):
- readline_libs.append('curses')
- elif self.compiler.find_library_file(lib_dirs +
-- ['/usr/lib/termcap'],
-+ ['/usr/'+libname+'/termcap'],
- 'termcap'):
- readline_libs.append('termcap')
-
-@@ -465,7 +465,7 @@
- readline_extra_link_args = ()
-
- exts.append( Extension('readline', ['readline.c'],
-- library_dirs=['/usr/lib/termcap'],
-+ library_dirs=['/usr/'+libname+'/termcap'],
- extra_link_args=readline_extra_link_args,
- libraries=readline_libs) )
- if platform not in ['mac']:
-@@ -1069,8 +1069,8 @@
- added_lib_dirs.append('/usr/openwin/lib')
- elif os.path.exists('/usr/X11R6/include'):
- include_dirs.append('/usr/X11R6/include')
-- added_lib_dirs.append('/usr/X11R6/lib64')
-- added_lib_dirs.append('/usr/X11R6/lib')
-+ added_lib_dirs.append('/usr/X11R6/'+sys.lib)
-+ #added_lib_dirs.append('/usr/X11R6/lib')
- elif os.path.exists('/usr/X11R5/include'):
- include_dirs.append('/usr/X11R5/include')
- added_lib_dirs.append('/usr/X11R5/lib')
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : qscintilla-2.3.sh
-# Created : Thu Oct 23 11:50:00 2008
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -z "${QSCINTILLA_DIR}" ]; then
- return 1
-fi
-ver=`grep "QSCINTILLA_VERSION_STR" ${QSCINTILLA_DIR}/include/Qsci/qsciglobal.h | sed -e 's%^#define QSCINTILLA_VERSION_STR\([[:space:]]*\)%%g' -e 's%\"%%g'`
-if [ "$ver" == "2.3" ] ; then
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export QSCINTILLA_DIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export LD_LIBRARY_PATH=\${QSCINTILLA_DIR}/lib:\${LD_LIBRARY_PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-cd ${PRODUCT_SRC_DIR}
-
-# workaround : clear temporarily INSTALL_ROOT env.var if it is set
-INSTALL_ROOT_PREV=$INSTALL_ROOT
-unset INSTALL_ROOT
-
-cd Qt4
-
-# patch installation folder
-sed -e "s%\(target.path[[:space:]]*=[[:space:]]*\).*%\1${PRODUCT_DIR}/lib%g" \
- -e "s%\(header.path[[:space:]]*=[[:space:]]*\).*%\1${PRODUCT_DIR}/include%g" \
- -e "s%\(trans.path[[:space:]]*=[[:space:]]*\).*%\1${PRODUCT_DIR}/translations%g" \
- -e "s%\(qsci.path[[:space:]]*=[[:space:]]*\).*%\1${PRODUCT_DIR}%g" \
- qscintilla.pro > qscintilla.pro.new
-mv -f qscintilla.pro.new qscintilla.pro
-
-qmake -o Makefile qscintilla.pro
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
-
-if [ "${INSTALL_ROOT_PREV}" != "" ] ; then
- export INSTALL_ROOT=$INSTALL_ROOT_PREV
-fi
-
-#rm -rf ${PRODUCT_DIR}/doc
-#du -sk ${PRODUCT_SRC_DIR} > ${PRODUCT_DIR}/size.log
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="QScintilla-2.3"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : qt-4.4.3.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-if [ -z "$QTDIR" ]; then
- return 1
-fi
-ver=`grep "QT_VERSION_STR" ${QTDIR}/include/Qt/qglobal.h | sed -e 's%^#define QT_VERSION_STR\([[:space:]]*\)%%g' -e 's%\"%%g'`
-if [ "$ver" == "4.4.3" ] ; then
- return 0
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export QTDIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${QTDIR}/bin:\$PATH
-export LD_LIBRARY_PATH=\${QTDIR}/lib:\${LD_LIBRARY_PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-cd ${PRODUCT_SRC_DIR}
-
-# configure
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure -prefix ${PRODUCT_DIR} -no-separate-debug-info -confirm-license
-
-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
-
-if test `uname -m` = "x86_64" ; then
- cd ${PRODUCT_DIR}; ln -sf lib lib64
-fi
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# modify libdir
-cd ${PRODUCT_DIR}/lib
-
-# modify qt la files
-for l in `find $ldir -name "*.la"`; do
-sed -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib'%g" $l > $l"_"
-chmod -f --reference=$l $l"_" ; mv -f $l"_" $l
-sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${PRODUCT}% \1${PRODUCT_DIR}%g" $l > $l"_"
-chmod -f --reference=$l $l"_" ; mv -f $l"_" $l
-sed -e "s%^dependency_libs='\(-L\)\?[^[:space:]]*${PRODUCT}%dependency_libs=\'\1${PRODUCT_DIR}%g" $l > $l"_"
-chmod -f --reference=$l $l"_" ; mv -f $l"_" $l
-
-done
-
-# modify libGL.so flags
-has_gl_dep=`grep -E "^dependency_libs=.*-lGL.*" libQtOpenGL.la`
-gllibdir="`where_gl_libs`"
-if [ "$has_gl_dep" != "" ] && [ "$gllibdir" != "" ] ; then
- sed -e "s%-lGL\b%%g" \
- -e "s%^dependency_libs='\(.*\)%dependency_libs='-L$gllibdir -lGL \1%g" \
- libQtOpenGL.la > libQtOpenGL.la.new
- mv -f libQtOpenGL.la.new libQtOpenGL.la
-fi
-
-# modify qt package config
-cd ${PRODUCT_DIR}/lib/pkgconfig
-for l in `find . -name "*.pc"`; do
-sed -e "s%^prefix=\(.*\)%prefix=${PRODUCT_DIR}%g" $l > $l"_"
-chmod -f --reference=$l $l"_" ; mv -f $l"_" $l
-sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${PRODUCT}% \1${PRODUCT_DIR}%g" $l > $l"_"
-chmod -f --reference=$l $l"_" ; mv -f $l"_" $l
-done
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="qt-4.4.3"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : qwt-5.1.1.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -n "${QWTHOME}" ] ; then
- qwtinc=${QWTHOME}/include/qwt_global.h
- if [ ! -f $qwtinc ] ; then
- qwtinc=${QWTHOME}/include/qwt/qwt_global.h
- fi
- if [ -f $qwtinc ] ; then
- ver=`grep -e "^#define[[:space:]]\+QWT_VERSION_STR" $qwtinc | sed -e 's/^#define[[:space:]]\+QWT_VERSION_STR[[:space:]]*"\(.*\)"/\1/'`
- if [ "$ver" == "5.1.1" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export QWTHOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export LD_LIBRARY_PATH=\${QWTHOME}/lib:\${LD_LIBRARY_PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-sed -e "s%\(INSTALLBASE[[:space:]]*\)=\([[:space:]]*\).*%\1=\2${PRODUCT_DIR}%g" \
- -e "s%#\(CONFIG[[:space:]]*+=[[:space:]]*QwtSVGItem\)%\1%g" qwtconfig.pri > qwtconfig.pri.new
-mv qwtconfig.pri.new qwtconfig.pri
-
-sed -e "s%\(target\.path[[:space:]]*\)=\([[:space:]]*\).*%\1=\2\$\$INSTALLBASE/plugins/designer%g" \
- designer/designer.pro > designer/designer.pro.new
-mv designer/designer.pro.new designer/designer.pro
-
-INSTALL_ROOT_PREV=$INSTALL_ROOT
-unset INSTALL_ROOT
-
-qmake
-
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
-used gcc=$GCC
-EOF
-
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-
-check_job ${PRODUCT_DIR}/MAKE_INSTALL.LOG make install
-
-if [ "${INSTALL_ROOT_PREV}" != "" ] ; then
- export INSTALL_ROOT=$INSTALL_ROOT_PREV
-fi
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment script for sources
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="qwt-5.1.1"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : release_notes.sh
-# Created : Tue Oct 30 11:11:23 2006
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-# This procedure checks if the Release Notes file can be shown.
-# Returns 0 in success and 1 if any error occurs.
-check_enabled()
-{
- ROOT_DIR=`(cd ${SCRIPT_DIR}/.. ; pwd)`;
- # 1. check if there is appropriate PDF files viewer
- for r in acroread kpdf kghostview xpdf ; do
- reader=`which $r 2>/dev/null`
- if [ "$?" == "0" ] ; then
- break;
- fi
- done
- # 2. check if Release Notes file is available
- if [ "${ROOT_DIR}" != "" ] ; then
- rn_files=`find ${ROOT_DIR} -maxdepth 1 -name "*Release_Notes.pdf"`
- if [ "$?" == "0" ] && [ "$rn_files" != "" ] && [ "$reader" != "" ] ; then
- return 0;
- fi
- fi
- return 1;
-}
-
-# This procedure is used to show Release Notes file.
-# Returns 0 in success and 1 if any error occurs.
-execute()
-{
- ROOT_DIR=`(cd ${SCRIPT_DIR}/.. ; pwd)`;
- # 1. find appropriate PDF files viewer
- for r in acroread kpdf kghostview xpdf ; do
- reader=`which $r 2> /dev/null`
- if [ "$?" == "0" ] ; then
- break;
- fi
- done
- # 2. find Release Notes file and open it in the viewer
- if [ "${ROOT_DIR}" != "" ] ; then
- rn_file=`find ${ROOT_DIR} -maxdepth 1 -name "*Release_Notes.pdf"`
- if [ "$?" == "0" ] && [ "$rn_file" != "" ] && [ "$reader" != "" ] ; then
- $reader ${rn_file} &
- return 0;
- fi
- fi
- return 1;
-}
-
-# Set general usage variables from the command line parameters:
-# $0 is the path to this script itself
-# $1 is the name of the procedure to be run
-# $2 is the installation directory path
-# $3 is the temporary directory path
-SCRIPT_DIR=`dirname $0`
-PROCEDURE=$1;
-INST_ROOT=$2;
-INSTALL_WORK=$3;
-
-# Run the procedure
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : remove_tmp.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-install_work=$1; product_sequence=$2
-source ./common.sh
-for i in $product_sequence ; do
- file=${install_work}/env_${i}.sh
- (test -f ${file} && rm -f ${file})
-done
-(file=${install_work}/$SHRC && test -f ${file} && rm -f ${file})
-(file=${install_work}/$CSHRC && test -f ${file} && rm -f ${file})
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : scotch-4.0.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SCOTCHDIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# install binary
-install_binary
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${BIN_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-REMOVE_SRC_TMP=$9;
-shift
-BIN_DIR=$9;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="scotch-4.0"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : sip-4.7.7.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version()
-{
-if [ -n "${SIPDIR}" ]; then
- ver=`${SIPDIR}/bin/sip -V | awk '{print $1}'`
- maj_ver=`echo $ver | awk -F. '{if(NF>0) print $1; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- min_ver=`echo $ver | awk -F. '{if(NF>1) print $2; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- rel_ver=`echo $ver | awk -F. '{if(NF>2) print $3; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
- let ver=$maj_ver*10000+$min_ver*100+$rel_ver
- if [ $ver -eq 40502 ] ; then
- return 0
- fi
-fi
-return 1
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SIPDIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${SIPDIR}/bin:\${PATH}
-export PYTHONPATH=\${SIPDIR}/lib/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
-export LD_LIBRARY_PATH=\${SIPDIR}/lib/python\${PYTHON_VERSION}/site-packages:\${LD_LIBRARY_PATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-cd ${PRODUCT_SRC_DIR}
-
-if test `uname -m` = "x86_64" ; then
- SIP_CONFIGURE_OPTIONS="-b ${PRODUCT_DIR}/bin -d ${PRODUCT_DIR}/lib/python${PYTHON_VERSION}/site-packages -e ${PRODUCT_DIR}/include/python${PYTHON_VERSION} -v ${PRODUCT_DIR}/sip -p linux-g++-64"
-else
- SIP_CONFIGURE_OPTIONS="-b ${PRODUCT_DIR}/bin -d ${PRODUCT_DIR}/lib/python${PYTHON_VERSION}/site-packages -e ${PRODUCT_DIR}/include/python${PYTHON_VERSION} -v ${PRODUCT_DIR}/sip"
-fi
-
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
- python configure.py $SIP_CONFIGURE_OPTIONS
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
-used gcc=$GCC
-EOF
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-check_job ${PRODUCT_DIR}/INSTALL.LOG make install
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# modify sipconfig.py file
-if [ -n "${PYTHONHOME}" ] && [ -n "${QTDIR}" ] ; then
- cd ${PRODUCT_DIR}/lib/python${PYTHON_VERSION}/site-packages
- python_version=`python -V 2>&1 | awk '{print $2}' | awk -F. '{printf("0x%02d%02d%02d",$1,$2,$3)}'`
- qt_version=`grep -e "^#define[[:space:]]\+QT_VERSION[[:space:]]\+" ${QTDIR}/include/Qt/qglobal.h | sed -e 's%^#define[[:space:]\+QT_VERSION[[:space:]]\+\(.*\)$%\1%g'`
- sed -e "s%\('default_bin_dir':[[:space:]]*\).*%\1'${PYTHONHOME}/bin',%g" sipconfig.py > sipconfig.py.1
- sed -e "s%\('default_mod_dir':[[:space:]]*\).*%\1'${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages',%g" sipconfig.py.1 > sipconfig.py
- sed -e "s%\('default_sip_dir':[[:space:]]*\).*%\1'${PRODUCT_DIR}/sip',%g" sipconfig.py > sipconfig.py.1
- sed -e "s%\('sip_bin':[[:space:]]*\).*%\1'${PRODUCT_DIR}/bin/sip',%g" sipconfig.py.1 > sipconfig.py
- sed -e "s%\('sip_inc_dir':[[:space:]]*\).*%\1'${PRODUCT_DIR}/include/python${PYTHON_VERSION}',%g" sipconfig.py > sipconfig.py.1
- sed -e "s%\('sip_mod_dir':[[:space:]]*\).*%\1'${PRODUCT_DIR}/lib/python${PYTHON_VERSION}/site-packages',%g" sipconfig.py.1 > sipconfig.py
- sed -e "s%\('qt_dir':[[:space:]]*\).*%\1'${QTDIR}',%g" sipconfig.py > sipconfig.py.1
- sed -e "s%\('qt_version':[[:space:]]*\).*%\1${qt_version},%g" sipconfig.py.1 > sipconfig.py
- sed -e "s%\('qt_inc_dir':[[:space:]]*\).*%\1'${QTDIR}/include',%g" sipconfig.py > sipconfig.py.1
- sed -e "s%\('qt_lib_dir':[[:space:]]*\).*%\1'${QTDIR}/lib',%g" sipconfig.py.1 > sipconfig.py
- sed -e "s%\('INCDIR_QT':[[:space:]]*\).*%\1'${QTDIR}/include',%g" sipconfig.py > sipconfig.py.1
- sed -e "s%\('LIBDIR_QT':[[:space:]]*\).*%\1'${QTDIR}/lib',%g" sipconfig.py.1 > sipconfig.py
- sed -e "s%\('MOC':[[:space:]]*\).*%\1'${QTDIR}/bin/moc',%g" sipconfig.py > sipconfig.py.1
- sed -e "s%\('py_inc_dir':[[:space:]]*\).*%\1'${PYTHONHOME}/include/python${PYTHON_VERSION}',%g" sipconfig.py.1 > sipconfig.py
- sed -e "s%\('py_lib_dir':[[:space:]]*\).*%\1'${PYTHONHOME}/lib/python${PYTHON_VERSION}/config',%g" sipconfig.py > sipconfig.py.1
- sed -e "s%\('py_version':[[:space:]]*\).*%\1${python_version},%g" sipconfig.py.1 > sipconfig.py
- rm sipconfig.py.1
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="sip-4.7.7"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : start_salome.sh
-# Created : Tue Oct 30 11:15:35 2006
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-# This procedure checks if the SALOME desktop can be run.
-# Returns 0 in success and 1 if any error occurs.
-check_enabled()
-{
- if [ -f ${INST_ROOT}/env_products.sh ] ; then
- source ${INST_ROOT}/env_products.sh
- fi
- if [ "${KERNEL_ROOT_DIR}" != "" ] && [ "${GUI_ROOT_DIR}" != "" ] &&
- [ -f ${KERNEL_ROOT_DIR}/bin/salome/runSalome ] ; then
- return 0;
- fi
- return 1;
-}
-
-# This procedure is used to launch SALOME.
-# Returns 0 in success and 1 if any error occurs.
-execute()
-{
- if [ -f ${INST_ROOT}/env_products.sh ] ; then
- source ${INST_ROOT}/env_products.sh
- fi
- if [ "${KERNEL_ROOT_DIR}" != "" ] && [ "${GUI_ROOT_DIR}" != "" ] &&
- [ -f ${KERNEL_ROOT_DIR}/bin/salome/runSalome ] ; then
- runSalome >& /dev/null
- if [ "$?" == "0" ] ; then
- return 0;
- fi
- fi
- return 1;
-}
-
-# Set general usage variables from the command line parameters:
-# $0 is the path to this script itself
-# $1 is the name of the procedure to be run
-# $2 is the installation directory path
-# $3 is the temporary directory path
-SCRIPT_DIR=`dirname $0`
-PROCEDURE=$1;
-INST_ROOT=$2;
-INSTALL_WORK=$3;
-
-# Run the procedure
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : tcltk-8.4.14.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-VERSION="8.4"
-
-check_version()
-{
-if [ -z "$TCLHOME" ]; then
- echo "TCLHOME doesn't set"
- return 1
-fi
-
-# check tcl version
-tcl_cfg=${TCLHOME}/lib/tclConfig.sh
-if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/tcl${VERSION}/lib/tclConfig.sh; fi
-if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/lib/tcl${VERSION}/tclConfig.sh; fi
-if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/lib/tcl${VERSION}/lib/tclConfig.sh; fi
-if [ -f ${tcl_cfg} ]; then
- tcl_ver=`awk '/^TCL_VERSION=.*/ {gsub("TCL_VERSION=","",$1);print $1}' ${tcl_cfg} | cut -d "'" -f 2`
- if [ "$tcl_ver" != ${VERSION} ] ; then
- return 1
- fi
-else
- return 1
-fi
-
-# check tk version
-tk_cfg=${TCLHOME}/lib/tkConfig.sh
-if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/tk${VERSION}/tkConfig.sh; fi
-if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/lib/tk${VERSION}/tkConfig.sh; fi
-if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/lib/tk${VERSION}/lib/tkConfig.sh; fi
-if [ -f ${tk_cfg} ]; then
- tk_ver=`awk '/^TK_VERSION=.*/ {gsub("TK_VERSION=","",$1);print $1}' ${tk_cfg} | cut -d "'" -f 2`
- if [ "$tk_ver" != ${VERSION} ] ; then
- return 1
- fi
-else
- return 1
-fi
-
-return 0
-}
-
-print_env_bin()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export TCLHOME=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${TCLHOME}/bin:\${PATH}
-export LD_LIBRARY_PATH=\${TCLHOME}/lib:\${LD_LIBRARY_PATH}
-export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl${VERSION} \${TCLHOME}/lib/tk${VERSION} \${TCLLIBPATH}"
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-mkdir -p ${PRODUCT_SRC_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/tcl8.4.14.tar.gz -C ${PRODUCT_SRC_DIR}
-check_jb tar xfz ${SOURCE_DIR}/tk8.4.14.tar.gz -C ${PRODUCT_SRC_DIR}
-check_jb tar xfz ${SOURCE_DIR}/tclx8.3.5.tar.gz -C ${PRODUCT_SRC_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-cd ${PRODUCT_SRC_DIR}/tcl8.4.14_SRC/unix
-cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
--------------------
-Configuring tcl...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
- --prefix=${PRODUCT_DIR}
-GCC=`which gcc`
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
-used gcc=$GCC
--------------------
-Making tcl...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-cat >> ${PRODUCT_DIR}/MAKEINSTALL.LOG <<EOF
--------------------
-Installing tcl...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
-
-(cd ${PRODUCT_DIR}/bin; ln -fs tclsh8.4 tclsh)
-(cd ${PRODUCT_DIR}/lib; ln -fs libtcl8.4.so libtcl.so)
-(cd ${PRODUCT_DIR}/lib; ln -fs libtclstub8.4.a libtclstub.a)
-
-cd ${PRODUCT_SRC_DIR}/tk8.4.14_SRC/unix
-cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
--------------------
-Configuring tk...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
- --prefix=${PRODUCT_DIR} --with-tcl=${PRODUCT_DIR}/lib
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
--------------------
-Making tk...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-cat >> ${PRODUCT_DIR}/MAKEINSTALL.LOG <<EOF
--------------------
-Installing tk...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
-
-(cd ${PRODUCT_DIR}/bin; ln -fs wish8.4 wish)
-(cd ${PRODUCT_DIR}/lib; ln -fs libtk8.4.so libtk.so)
-(cd ${PRODUCT_DIR}/lib; ln -fs libtkstub8.4.a libtkstub.a)
-
-#vsr: patch tclx 8.3.5 to make it compiliable on Mandriva 2006.0
-cd ${PRODUCT_SRC_DIR}/tclx8.3.5_SRC/unix
-mv Common.mk.in Common.mk.in.orig
-sed -e 's/@DEFS@/-DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void/g' Common.mk.in.orig > Common.mk.in
-cd ${PRODUCT_SRC_DIR}/tclx8.3.5_SRC/tcl/unix
-mv tclxConfig.sh.in tclxConfig.sh.in.orig
-sed -e 's/@DEFS@/ -DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void /g' tclxConfig.sh.in.orig > tclxConfig.sh.in
-cd ${PRODUCT_SRC_DIR}/tclx8.3.5_SRC/tk/unix
-mv tkxConfig.sh.in tkxConfig.sh.in.orig
-sed -e 's/@DEFS@/ -DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void /g' tkxConfig.sh.in.orig > tkxConfig.sh.in
-
-cd ${PRODUCT_SRC_DIR}/tclx8.3.5_SRC/unix
-#VRV - bug in a tclx configure
-chmod +w ./configure
-echo -e '/test "$no_create" = yes || ${CONFIG_SHELL-\/bin\/sh} $CONFIG_STATUS || exit 1\ns/test "$no_create" = yes || ${CONFIG_SHELL-\/bin\/sh} $CONFIG_STATUS || exit 1/test "$no_create" = yes || ${CONFIG_SHELL-\/bin\/sh} $CONFIG_STATUS || exit 0\nwq' | ed - configure
-#INV - bug in a tclx configure
-cp configure configure.orig && sed "s/relid'/relid/" configure.orig > configure
-chmod 755 ./configure
-#VRV - bug in a tclx configure
-cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
--------------------
-Configuring tclx...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
- ./configure --enable-gcc --enable-shared --enable-threads \
- --prefix=${PRODUCT_DIR} --with-tcl=${PRODUCT_DIR}/lib --with-tk=${PRODUCT_DIR}/lib
-cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
--------------------
-Making tclx...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/MAKE.LOG make
-cat >> ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG <<EOF
--------------------
-Installing tclx...
--------------------
-EOF
-check_job ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG make install-exec
-
-(cd ${PRODUCT_DIR}/lib; ln -fs libtclx8.3.so libtclx.so)
-(cd ${PRODUCT_DIR}/lib; ln -fs libtclx8.3.a libtclx.a)
-(cd ${PRODUCT_DIR}/lib; ln -fs libtkx8.3.so libtkx.so)
-(cd ${PRODUCT_DIR}/lib; ln -fs libtkx8.3.a libtkx.a)
-
-cd ${PRODUCT_DIR}
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a product directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# overriding installation path
-cd ${PRODUCT_DIR}/lib
-old_prefix=`grep -e "^TCL_PREFIX='.*'" tclConfig.sh | sed -e "s%^TCL_PREFIX='\(.*\)'%\1%g"`
-sed -e "s%${old_prefix}%${PRODUCT_DIR}%g" tclConfig.sh > _tclConfig.sh
-mv -f _tclConfig.sh tclConfig.sh
-sed -e "s%${old_prefix}%${PRODUCT_DIR}%g" tkConfig.sh > _tkConfig.sh
-mv -f _tkConfig.sh tkConfig.sh
-
-# to generate environment scripts
-try_preinstalled
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-shift
-REMOVE_SRC_TMP=$8;
-test $# == 10 && shift && SINGLE_DIR=$9
-export PRODUCT="tcltk-8.4.14"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-source ./common.sh
-$PROCEDURE
+++ /dev/null
-#!/bin/bash -noprofile
-
-####################################################################################
-# File : xdata-0.6.3.sh
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-#
-# This script is the part of the SALOME installation procedure.
-#
-####################################################################################
-
-check_version(){
-# No way to check version!
-return 0
-}
-
-print_env_bin()
-{
-if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
- PYTHON_LIB_PREFIX=64
-elif [ -d ${PRODUCT_DIR}/lib ] ; then
- PYTHON_LIB_PREFIX=""
-else
- PYTHON_LIB_PREFIX=64
-fi
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export XDATAROOT=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PATH=\${XDATAROOT}/bin:\${PATH}
-export PYTHON_VERSION=\`python -c "import sys; print sys.version[:3]"\`
-export PYTHONPATH=\${XDATAROOT}/lib${PYTHON_LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages/xdata:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-print_env_src()
-{
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
-#$DELIM ${PRODUCT_TYPE}_src $DELIM
-# nothing to do
-##
-EOF
-(test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-return $?
-}
-
-install_source()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SRC_DIR}/${PRODUCT}.tar.gz -C ${INST_ROOT}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_source_and_build()
-{
-# install sources
-install_source
-
-# build sources
-
-cd ${PRODUCT_SRC_DIR}
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${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}/INSTALL.LOG make install
-
-cd ${PRODUCT_DIR};
-
-# remove sources and temporary files after building
-if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
- test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
-fi
-
-# to generate environment scripts
-try_preinstalled
-}
-
-install_binary()
-{
-make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-# create a module directory
-test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
-
-check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
-
-# to generate environment scripts
-try_preinstalled
-}
-
-source ./common.sh
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INST_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-export PRODUCT_TYPE=$6;
-export INSTALL_PRODUCTS=$7;
-SRC_DIR=$8;
-shift
-REMOVE_SRC_TMP=$8;
-shift
-SINGLE_DIR=$9;
-if [ -n "$SINGLE_DIR" ] ; then SINGLE_DIR=$SDIR_NAME; fi
-export PRODUCT="xdata-0.6.3"
-export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
-export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
-$PROCEDURE
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">\r
-<html>
-<head>
- <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR"
- content="Mozilla/4.8 [en] (X11; U; Linux 2.4.18-14 i686) [Netscape]">
- <meta name="Author"
- content="Alexander KOVALEV, Open CASCADE SAS (alexander.kovalev@opencascade.com)">
- <meta name="Copyright" content="2002-2008 CEA">
- <title>SALOME Installation Wizard Help</title>
-</head>
-<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 229);"
- alink="#ff0000" link="#0000ee" vlink="#551a8b">
-
-<center>
-<table nosave="" width="100%">
- <tbody>
- <tr nosave="">
- <td nosave="">
- <h1><a href="http://www.opencascade.com"><img src="logocorp.png"
- border="0" height="47" width="139"> </a></h1>
- </td>
- <td>
- <center>
- <h3><font size="+4"><font color="#000099">SALOME Installation
-Wizard Help</font></font></h3>
- </center>
- </td>
- <td>
- <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
- src="application.png" border="0" height="47" width="109"> </a></div>
- </td>
- </tr>
- </tbody>
-</table>
-</center>
-<div align="right"><b><font color="#000099">updated for the version </font><font
- color="#ff0000">5.1.0</font></b></div>
-<hr>
-<ul>
- <li> <a href="#install_from_wizard">Installing products with the
-Installation Wizard<br>
- </a></li>
- <ul>
- <li><a href="#gui_mode">GUI mode</a></li>
- <li><a href="#batch_mode">Batch mode</a></li>
- <li><a href="#env_files">Environment files</a><br>
- </li>
- </ul>
- <li> <a href="#pick_up_env">Pick up the environment</a></li>
- <li> <a href="#xml_files">Modifying XML configuration file</a></li>
- <li> <a href="#new_products">Implementing installation scripts for
-the new products</a></li>
- <li> <a href="#finish_buttons">Customizing Readme page buttons</a></li>
-</ul>
-<h3>
-<hr></h3>
-<h3> <a name="install_from_wizard"></a>Installing products with the <font
- color="#ff0000">Installation Wizard</font></h3>
-The Installation Wizard can be launched in two modes: <span
- style="font-weight: bold;">GUI </span>and <span
- style="font-weight: bold;">batch</span>. <br>
-The root directory of the Installation Wizard
-contains Python script <span style="font-weight: bold;">runInstall</span>.
-To run the Installation Wizard just type <b>./runInstall</b> in the
-terminal
-window:<span style="font-weight: bold;"></span><span
- style="font-weight: bold;"></span>
-<p>[ python ] <b>./runInstall </b>[options]<b><br>
-</b></p>
-<p>Without options this script will launch the SALOME Installation
-Wizard in the GUI mode.<br>
-The default installation settings can be overridden by using of command
-line options. Each option has short and long notations:<br>
-</p>
-<p><b>-g / --gui</b><br>
-</p>
-<div style="margin-left: 40px;">Runs the Installation Wizard in the
-GUI
-mode (this is the default mode).<br>
-</div>
-<p><b>-b / --batch</b><br>
-</p>
-<div style="margin-left: 40px;">Runs the Installation Wizard in
-the terminal mode. <br>
-</div>
-<p><b>-f FILE / --file=</b><span style="font-weight: bold;">FILE<br>
-</span></p>
-<div style="margin-left: 40px;">
-This is the XML configuration file used by the Installation Wizard.
-If this option is not used, the installation script tries to define
-the<i>Linux </i>version and to use the corresponding XML file
-if it is present.
-For example, for <span style="color: rgb(0, 0, 153);">Linux Mandriva
-2006</span> the <b>config_Mandriva_2006.0.xml</b>
-file
-will be used by default.
-</div>
-<p> <b>-d DIR / --target=DIR</b><br>
-</p>
-<div style="margin-left: 40px;">This is the target installation
-directory for SALOME platform. If used, this option overrides
-the default target directory, given in the
-configuration XML file (usually<span style="font-weight: bold;">
-${HOME}/salome_<version></span><!--,
-see
-<a href="#xml_files">here</a> for more details-->).<br>
-</div>
-<p><b>-t DIR / --tmp=DIR </b></p>
-<div style="margin-left: 40px;">This is the directory, for
-temporary files. If given, this option overrides the default
-temporary directory, given in the configuration xml file
-(usually <span style="font-weight: bold;">/tmp</span>
-<span style="font-weight: bold;"></span><!--,
-see <a href="#xml_files">here</a> for more information-->).<br>
-</div>
-<p><b>-a / --all-from-sources</b></p>
-<div style="margin-left: 40px;">
-Force all the products to be installed from sources (including all
-SALOME modules). If this option is used, all the default installation
-modes for all the products are ignored.<br>
-This option is helpful when the user wants to install SALOME on the
-platform which is not officially supported. In this case, the user can
-try to run the SALOME Installation Wizard with the <span
- style="font-weight: bold;">-a</span> option in order to build all the
-products from sources.<br>
-<b>Note, that this is long-time operation which can take more than
-24 hours depending on the computer.</b><br>
-</div>
-<p><b>-s / --single-directory </b></p>
-<div style="margin-left: 40px;">Install all SALOME binaries packages
-to one directory.<br>
-<b>This option is ignored when --all-from-sources (-a) option is used.
-</b></div>
-<p><b>-h / --help</b><br>
-</p>
-<div style="margin-left: 40px;">Prints help information on
-the usage of the Installation Wizard. <br>
-</div>
-<p></p>
-<p>
-<b>-v / --version</b><br>
-</p>
-<div style="margin-left: 40px;">Prints version information
-(<span style="font-weight: bold;">Note: </span>this
-is the version number of the Installation Wizard, not of SALOME platform). <br>
-</div>
-<p>
-</p>
-<p>The installation procedure supports different <span style="color: rgb(0, 0, 153);">Linux
-</span>platforms and installs various 3d-party installation prerequisite products, which
-are required by SALOME platform. As it was mentioned above, the basic
-target platform for SALOME 4.0.0 and later is <span style="color: rgb(0, 0, 153);">Linux Mandriva 2006</span>.<br>
-The usage of configuration XML files provides a flexible way to modify
-the list of products to be installed by the Installation Wizard without
-changing the source code of the application. Just create your own XML
-configuration file and implement installation scripts for the prerequisite products you
-need and then use this XML file with the Installation Wizard. This can
-be done, for example, for some <span style="color: rgb(0, 0, 153);">Linux
-</span>platform which is not supported directly by the
-Installation Wizard. See <a href="#xml_files">Modifying XML
-configuration file</a> and <a href="#new_products">Implementing installation
-scripts for the new products</a> sections for more information. </p>
-<h3 style="margin-left: 40px;"> <a name="gui_mode"></a>GUI
-mode<br>
-</h3>
-<p>The GUI of the <font color="#ff0000">Installation Wizard</font> has been
-developed with <span style="font-weight: bold;"><span style="color: rgb(0, 0, 153);">Qt
-3.3.8 </span> </span>toolkit by <span style="color: rgb(0, 0, 153);">
-Trolltech </span>. After launching the Installation Wizard
-in the GUI mode the wizard window is shown to the user. This wizard
-guides the user through several subsequent pages. To navigate between
-the pages use <i>"Next"</i> and <i>"Back"</i>
-buttons in the lower part of the wizard window. <i>"Cancel"</i> button
-closes the wizard window and quits the installation procedure after user
-confirmation. <i>"Help"</i> button opens a window with the help information. </p>
-<p>The first "<span style="font-style: italic;">Introduction"</span>
-page is shown in <a href="#IntroPage">Figure 1</a>.
-Skip this page by pressing <i>"Next"</i> button:
-</p>
-<center><a name="IntroPage"></a><br>
-<img alt="Intro page" src="intropage.png" style="width: 593px; height: 495px;">
-<p><b>Figure 1:</b> "Introduction" page</p>
-</center>
-<p>In the second page you are proposed to select the type of the
-SALOME installation.<br>
-<br>
-At this step three possible types of installation are available:<br>
-</p>
-<ol>
- <li><span style="font-style: italic;"> <font color="#ff0000"><b>"Install binaries"</b></font></span>
-type:<br>
- <ul>
- <li>all binaries and sources of the chosen modules are
-installed;</li>
- <li>all binaries of the chosen prerequisites are installed.</li>
- <br>
- </ul>
- </li>
- <li><span style="font-style: italic;"> <font color="#ff0000"><b>"Install sources"</b></font></span>
-type:<br>
- <ul>
- <li>all sources of the chosen modules and prerequisites are
-installed without compilation.</li>
- <br>
- </ul>
- </li>
- <li><span style="font-style: italic;"> <font color="#ff0000"><b>"Install sources and
-make compilation"</b></font></span> type:<br>
- <ul>
- <li>all sources of the chosen modules and prerequisites are
-installed;</li>
- <li>all sources are compiled.</li>
- </ul>
- </li>
-</ol>
-<p></p>
-<p>In case you select "Install sources and make compilation"
-installation type, then you can also check "Remove sources and
-temporary files after compilation" option.
-</p>
-<center><a name="Installation_type_page"></a><br>
-<img alt="Installation type page" src="installtypepage.png" style="width: 593px; height: 495px;">
-<p><b>Figure 2:</b> "Type of installation" page
-</p>
-</center>
-<p>After the installation type has been selected you click <i>"Next"</i>
-button and the Installation Wizard tries to determine the Linux
-platform to load the corresponding configuration file. If the user
-system is not defined or the current SALOME package does not support
-this one, the warning will appear ("<i>Install binaries</i>"
-and "<i>Install sources</i>" installation types only):
-</p>
-<center><a name="Platform_page"></a><br>
-<img alt="Platform page" src="platformpage.png" style="width: 593px; height: 468px;">
-<p><b>Figure 3:</b> "Installation platform" page
-</p>
-</center>
-<p>If "<i>Install sources and make compilation</i>"
-installation type has been selected, the warning message will be
-slightly different: "<i>Your Linux platform is not supported by
-this SALOME package and compilation is not tested on this one</i>".<br>
-There is a list of all platforms supported by SALOME, but only those
-supported by the current package are available for selection. in this
-page you need to to select the reference platform, if you wish to
-proceed with the present installation procedure.<br>
-<b>Note:</b> this page is not displayed if the installation
-platform has been defined automatically.
-</p>
-<p>In the next page you are proposed to enter the target
-installation directory for SALOME platform. You can also press <i>"Browse..."</i>
-button and choose the destination folder using the standard browse
-directory dialog box. <br>
-If the necessary directory does not exist you are
-prompted to confirm the directory creation. If you type a wrong
-directory
-path, or if you do not have the permissions to write to the chosen
-directory, the corresponding message box is shown.<br>
-</p>
-<p><b>Note: you are strongly recommended to avoid using
-directory names containing spaces.</b> Otherwise you can
-experience some troubles with the
-installation.
-</p>
-<center><a name="Directory_page"></a><br>
-<img alt="Directory page" src="directorypage.png" style="width: 593px; height: 495px;">
-<p><b>Figure 4:</b> "Installation directory" page
-</p>
-</center>
-<p>You can select the products to be installed in the "Choice of
-the products to be installed" page.<br>
-In the default mode it gives you the possibility to view and select
-SALOME modules only. There is a hidden list of 3d-party prerequisite
-products. To show it, just click "<i>Show prerequisites...</i>"
-button.
-</p>
-<center><a name="Products_page1"></a><br>
-<img alt="Products page (default mode)" src="productpage1.png" style="width: 593px; height: 495px;">
-<p><b>Figure 5:</b> Choice of the SALOME modules
-</p>
-</center>
-<p>In the full mode you also have the possibility to select
-prerequisites.<br>
-The checkbox before each product indicates if this one will be
-installed or not (checked or unchecked). The second column shows the
-disk space occupied by the corresponding module. This value depends on
-the selected type of installation.<br>
-To hide the prerequisites list - click "<i>Hide prerequisites</i>"
-button.</p>
-<center><a name="Products_page2"></a><br>
-<img alt="Products page (full mode)" src="productpage2.png" style="width: 593px; height: 495px;">
-<p><b>Figure 6:</b> Choice of the prerequisites
-</p>
-</center>
-<p>
-Some products may require some other prerequisite products to be
-installed. So the installation procedure has a special feature to
-automatically mark these products in the list view. For example, to
-install PyQt it is necessary to have gcc, Python, Qt and Sip installed,
-and these products will be also turned on when you check on PyQt. GEOM
-module requires KERNEL, GUI modules and such prerequisites as:
-OpenCascade, Python, Swig, Qt, etc.
-</p>
-<p>The dependencies between SALOME modules are managed in the
-following way:
-</p>
-<ul>
- <li>If one module is unchecked, all modules which depend on
-this one are also unchecked automatically;</li>
- <li>If one module is checked, all modules required for this one
-are also checked automatically.</li>
-</ul>
-<p></p>
-<p>Dependency between modules and prerequisites is realized in
-the following way:
-</p>
-<ul>
- <li>The choices made by the user in the list of modules have a
-direct impact on the list of prerequisites;</li>
- <li>Whenever a module is checked, all the necessary
-prerequisites are checked automatically with no possibility for the
-user to uncheck them (see <a href="#Products_page3">Fig.7</a>
-below);</li>
- <li>Whenever a module is unchecked, according to the remaining
-checked modules, the unnecessary prerequisites are unchecked
-automatically (see <a href="#Products_page3">Fig.7</a>
-below).</li>
-</ul>
-It is possible to check again the prerequisites, which have been
-automatically unchecked. In other words, it is possible to add more
-prerequisites than necessary.
-<p></p>
-<center><a name="Products_page3"></a><br>
-<img alt="Products page (dependencies presentation)" src="productpage3.png" style="width: 593px; height: 495px;">
-<p><b>Figure 7:</b> Dependencies between modules and
-prerequisites
-</p>
-</center>
-<p>The "<i>Installation with GUI</i>" checkbox allows
-managing the installation of the graphical interface. Only modules for that
-'woguimode' attribute is set to "true" value in the XML file
-(see <a href="#xml_files">here</a> for more information about
-customizing this installation mode) support without GUI mode and
-will be checked and installed with their necessary prerequisites in
-case of installation without GUI. And other modules are unchecked with no
-possibility to check them in this mode (see <a href="#Products_page4">figure</a> below).<br>
-By default 'Installation with GUI' checkbox is switched on.
-</p>
-<center><a name="Products_page4"></a><br>
-<img alt="Products page (Installation without GUI)" src="productpage4.png" style="width: 593px; height: 495px;">
-<p><b>Figure 8:</b> Installation without GUI mode
-</p>
-</center>
-<p>The box at the right side of the page displays the information
-about the currently selected product: name, version and short description,
-required disk space, disk space required for the temporary files and
-the list of prerequisites (this information is provided in the XML
-file).
-</p>
-<p>The <i>"Disk space required:"</i> field displays
-how much
-disk space on the hard drive is required for installation of the
-selected
-products.<br>
-<b>Note:</b> please, take into account that the displayed
-amount of
-the required disk space is approximate and may differ when you actually
-install products on your hard drive.
-</p>
-<p>The installation procedure uses a special directory to store
-temporary files. The <i>"Space for temporary files"</i>
-field shows
-the information about the required disk space on the hard drive for
-extracting and compiling the selected products. You can change the
-temporary directory (this information is provided in the XML file) to
-the folder you want.<br>
-<span style="font-weight: bold;">Note:</span>
-actually, the temporary files
-are not stored directly in the directory selected by the user. The
-Installation Wizard creates in this directory an additional folder
-named
-like INSTALLWORK<span style="font-weight: bold;">XXXXX</span>
-where XXXXX is a unique number. This allows launching several
-Installation Wizards simultaneously. This temporary directory is
-removed automatically when the installation finishes.<br>
-</p>
-<p>The installation procedure also checks the available disk
-space. If
-there is not enough disk space on your hard drive you will see the
-corresponding error message box.
-</p>
-<p>Also in the current version of Installation Wizard is possible
-to install all binaries of the selected SALOME modules into a <b>single</b>
-directory. It is "<i>SALOME</i>" directory.
-For this purpose there is a checkbox "<i>Install modules to a
-single directory</i>" checkbox exists (see <a href="#Products_page4">Fig.8</a>).<br>
-This feature helps to get shorter PYTHONPATH and LD_LIBRARY_PATH
-environment variables.<br>
-<b>Note:</b> the installation into a single directory is
-available with the binaries installation type only.
-</p>
-<p>To proceed further, click <i>"Next"</i> button.
-At this moment
-the program will make some tests to check the installation settings: if
-there is enough disk space on the hard drive, check for the
-dependencies for each product you have selected to be installed. If any
-test fails you will see the corresponding warning message box.
-Otherwise the wizard will proceed to the next page:
-</p>
-<center><a name="ChoicePage"></a><br>
-<img alt="Choice page" src="choicepage.png" style="width: 593px; height: 495px;">
-<p><b>Figure 9:</b> "Check your choice" page
-</p>
-</center>
-<p>This page summarizes the installation options you've selected
-in the
-previous pages. You can review again your choices and change them if
-necessary returning to the previous pages. <br>
-When you are sure that everything is OK, press <i>"Next"</i>
-button to
-follow to the <a href="#ProgressPage">progress page</a>.
-</p>
-<center><a name="ProgressPage1"></a><br>
-<img alt="Progress page (not started yet)" src="progresspage1.png" style="width: 593px; height: 495px;">
-<p><b>Figure 10:</b> "Installation progress" page:
-not started yet
-</p>
-</center>
-<div style="text-align: left;">To start the installation
-of the selected
-products click <i>"Start"</i>
-button. It launches the shell installation script and you will be able
-to see the output of the script in the topmost frame of the dialog box.
-If any
-errors occur during the installation progress, the corresponding
-messages
-will be printed to the log window in the bold red font.<br>
-</div>
-<div style="text-align: left;">It is possible to break the
-installation at any time by pressing <span style="font-style: italic;">"Stop"</span>
-button. Then you can get back to the previous pages if you wish to
-change the installation settings or restart the installation by
-pressing <span style="font-style: italic;">"Start"</span>
-button again.<br>
-</div>
-<p style="text-align: left;"><span style="font-weight: bold;">Note:</span>
-in the current
-implementation it is not possible to resume the stopped installation
-process; the installation will restart from the very beginning. <br>
-</p>
-<center><a name="ProgressPage2"></a><br>
-<img alt="Progress page (installation started)" src="progresspage2.png" style="width: 593px; height: 495px;">
-<p><b>Figure 11:</b> "Installation progress" page:
-installation in
-progress
-</p>
-</center>
-<p>The <i>"Installation Status"</i> frame window
-shows you the
-progress of installation. "<font color="#ff0000">Waiting</font>"
-status
-means that the installation of this product has not started
-yet. The product currently being installed is marked as "<font color="#ff9900">Processing</font>" and is displayed in
-the status bar under "Installation Status" view. All installed products
-have "<font color="#33ff33">Completed</font>"
-status.
-</p>
-<p>You can abort the installation and close the installation
-procedure
-using <i>"Cancel"</i> button. <br>
-<span style="font-weight: bold;">Note:</span> this
-button sends the
-signal "SIGTERM" to the shell script.
-The script tries to clear all temporary files.
-The process of removing the temporary files can take some time, so the
-installation wizard will wait for 3 seconds before closing.
-</p>
-<p>At the end of the installation "<b>Installation completed</b>"
-message will appear in the status bar. You can return to the previous
-pages to start a new installation or click <i>"Next"</i>
-button to go to the readme page: </p>
-<center><a name="readmepage"></a><br>
-<img alt="Readme page" src="readmepage.png" style="width: 593px; height: 495px;">
-<p><b>Figure 12:</b> "Finish installation" page
-</p>
-</center>
-<p>In this page you can read important information about the
-Installation Wizard itself and some tips: how to run and test SALOME or
-how to build SALOME from the sources. This is also described the
-README file which you can find in the root directory of the
-Installation Wizard. <br>
-You can also launch SALOME Desktop from this
-page or read the Release Notes file by clicking on the corresponding
-buttons in the lower part of the page (see <a href="#xml_files">here</a>
-and <a href="#finish_buttons">here</a> for more
-information about
-customizing these buttons).<br>
-</p>
-<h3 style="margin-left: 40px;"> <a name="batch_mode"></a>Batch mode<br>
-</h3>
-To launch the Installation Wizard in the batch mode use <span
-style="font-weight: bold;">-b</span>
-(<span style="font-weight: bold;">--batch</span>) parameter.<br>
-In this mode the GUI wizard is not shown but all the installation
-status is displayed directly in the console. In the batch mode user do
-not have a possibility to change installation settings which are given
-in the configuration file, except target and temporary directories
-which can be overridden by the corresponding command line options.<br>
-There are two exceptions: <b>--all-from-sources</b>
-(<b>-a</b>) option which enables
-special installation mode in which all the products (including SALOME
-modules) are installed from sources, ignoring default mode defined in
-the XML configuration file (see <a href="#install_from_wizard">here</a>
-for details) and <b>--single-directory</b> (<b>-s</b>) option which defines
-that all SALOME modules have to be installed into the one directory
-(SALOME_<version>, by default, where <version> is SALOME version).
-<center><a name="BatchMode"></a><br>
-<br>
-<img alt="Batch mode" src="batchmode.png"
-style="width: 624px; height: 475px;">
-<p><b>Figure 9:</b> Batch mode</p>
-</center>
-<h3 style="margin-left: 40px;"><a name="env_files"></a>Environment
-files</h3>
-<p>During the process of installation the
-script creates some
-environment files to simplify the procedure of launching SALOME. These
-shell scripts set
-all necessary environment variables for all products you have
-installed.
-To learn how the installation scripts collect the environment, see <a href="#pick_up_env">here</a>. These files are: <b>salome.csh</b>
-+ <b>salome.sh</b>
-in the <span style="font-style: italic;"><span style="font-weight: bold;">KERNEL module</span></span><b><i>
-sources</i></b>
-and <span style="font-style: italic;"><span style="font-weight: bold;">KERNEL
-module</span></span><b><i> binaries</i></b>
-root directories and <b>env_products.csh</b>
-+ <b>env_products.sh </b>and <span style="font-weight: bold;">env_build.csh
-</span>+ <span style="font-weight: bold;">env_build.sh</span>
-in the
-target installation directory.<br>
-</p>
-<span style="font-weight: bold;">Note:</span> there
-is some difference
-between these files: <span style="font-weight: bold;">env_build.*</span>
-files are optimized to
-be used for the building of SALOME modules from sources (see <span style="font-weight: bold;">README </span>file
-provided with the
-installation procedure on the CD). The <span style="font-weight: bold;">env_products.*</span>
-(and<span style="font-weight: bold;"> salome.*</span>)
-files are
-optimized for
-the SALOME launching. The behavior is defined by the environment
-variable<span style="font-weight: bold;"> </span><b>ENV_FOR_LAUNCH</b>
-which is set to <span style="font-weight: bold;">0</span>
-in
-env_build.* files and to <span style="font-weight: bold;">1</span>
-in
-env_products.*
-(salome.*) files.<br>
-<br>
-<hr>
-<h3> <a name="pick_up_env"></a>Pick up the <font color="#ff0000">environment</font></h3>
-Please, read carefully the following information. This section
-describes how the installation procedure generates the environment
-scripts for the SALOME platform being installed.
-<p>After the installation of each product the shell script
-creates a special
-environment file for the product in its installation folder. The name
-of the file is generated from the name of the product by the following
-scheme: <b>env_<product_name>.sh</b>
-(for example <b>env_Vtk.sh </b>for the Vtk).
-This file includes all necessary environment settings. At the final
-step of the installation the script picks up all settings files and
-generates from them two common environment files: <b>salome.sh</b>
-and <b>salome.csh
-</b>for <span style="font-weight: bold;">bash</span>
-and <span style="font-weight: bold;">csh</span>
-shells correspondingly. This
-approach helps to save time when reinstalling products and you may can
-avoid setting all environment variables
-manually to build/launch SALOME. What you need is to source one of
-these environment files. </p>
-<p>This also concerns the products which are not being installed.
-For example, you install some SALOME binaries to the directory where
-you have previously installed other products. The
-installation
-procedure tries to collect the environment files from the target
-directory if it finds necessary products installed there. If a
-product is not found in the target directory the corresponding
-section of <b>salome.sh/salome.csh</b> files will be
-commented. <br>
-For the native products (like <i><b>gcc, tcl, etc...</b><b>)</b></i>
-the installation procedure tries to find them first using <b>PATH</b>
-/ <b>LD_LIBRARY_PATH</b> variables and then in the system
-default
-directories (<b>/usr/bin, /usr/lib</b> etc., depending on
-the product).
-</p>
-<p>In any case you are able to edit <b>salome.*</b>
-files after the installation procedure finished.<br>
-<span style="font-weight: bold;"><br>
-Note:</span> as it has been mentioned <a href="#env_files">above</a>
-there
-are other environment files generated by the installation procedure: <span style="font-weight: bold;">env_products.csh</span> + <span style="font-weight: bold;">env_products.sh</span> and <span style="font-weight: bold;">env_build.csh</span> + <span style="font-weight: bold;">env_build.sh</span>. These
-files can be
-found in the target installation root directory.<br>
-</p>
-<hr>
-<h3><a name="xml_files"></a>Modifying <font color="#ff0000">XML</font>
-configuration <font color="#ff0000">file</font></h3>
-<font color="#000000">You can create your own XML
-configuration file.
-The Installation Wizard can take it as a command line argument to
-provide a list of products you want to install with it. The list of
-products and some other settings for the Installation Wizard are
-provided in the XML file.<br>
-This section describes the structure of the configuration file.</font>
-<font color="#000000">XML tags are in bold blue, optional
-sections/tags
-are in brackets.</font>
-<font face="Courier">
-<p><b><font color="#000099"><document></font></b>
-<br>
-<font color="#000000"><b>
-</b></font><b><font color="#000099">
-<config</font></b><font color="#000000">
-[ version=<application_version>
- ]</font> <br>
-<font color="#000000">
-
- [
-caption=<application_caption>
- ]</font> <br>
-<font color="#000000">
-
- [
-copyright=<application_copyright> ]</font>
-<br>
-<font color="#000000">
-
- [
-license=<application_license_info> ]</font> <br>
-<font color="#000000">
-
-
-platforms=<target_platform></font> <br>
-<font color="#000000">
-
- [
-targetdir=<target_directory>
- ] </font>
-<br>
-<font color="#000000">
-
-
-[
-tempdir=<temp_directory>
- ]</font><b><font color="#000099"><br>
- /> </font></b>
-<br>
-<font color="#000000"><b>
-</b>[ </font><b><font color="#000099"><buttons></font></b>
-<br>
-<font color="#000000"><b>
-</b>[ </font><b><font color="#000099"><button</font></b>
-<font color="#000000">
-label=<button_label> </font>
-<br>
-<font color="#000000">
-
-[ tooltip=<button_tooltip> ]</font> <br>
-<font color="#000000">
-
-
-script=<button_script> </font>
-<br>
-<font color="#000000">
-
-[ disable=<disable_flag> ]</font><font color="#000099"><br>
- <b>/></b>
-</font><font color="#000000"><br>
- ]</font> <br>
-<font color="#000000">
-[</font><b><font color="#000099">
-<button</font></b><font color="#000000">
-... </font><font color="#000099"><br>
- <b>/></b></font>
-<br>
-<font color="#000000">
-]</font><br>
-<font color="#000000">
-...</font>
-<font color="#000099"><br>
- <b></buttons></b>
-</font><font color="#000000"><br>
- ]</font> <br>
-<font color="#000000"> [</font><b><font color="#000099"> <products></font></b>
-<br>
-<font color="#000000">
-[</font><b><font color="#000099">
-<product</font></b><font color="#000000">
-name=<product_name></font> <br>
-<font color="#000000">
-
-
-type=<product_type></font> <br>
-
- [
-description=<product_description> ]<br>
-<font color="#000000">
-</font><b><font color="#000099">
-<installation</font></b><font color="#000000">
-os=<installation_platform></font> <br>
-<font color="#000000">
-
-
-
-version=<product_version></font> <br>
-<font color="#000000">
-
-
- [
-disable=<disable_flag>
- ]
-<font color="#000000"><br>
-
-
- [
-woguimode=<without_gui_mode_flag> ]
-<font color="#000000"><br>
-
-
-installdiskspace=<install_disk_space></font><br>
-
-
- [
-pickupenv=<pickup_env_flag>
- ]</font>
-<font color="#000000"><br>
-
-
-
-
-script=<installation_script_name></font><br>
-<font color="#000099">
-<b>/></b></font><br>
-<font color="#000000">
-...</font>
-<font color="#000099"><br>
- <b>/></b></font><font color="#000000">
-<br>
- ]</font> <font color="#000000"><br>
- [</font><b><font color="#000099"> <product</font></b><font color="#000000"> ... </font><font color="#000099"><br>
- <b>/></b></font><font color="#000000"> <br>
- ]</font><br>
-<font color="#000000">
-...</font><br>
-<font color="#000000"> </font><b><font color="#000099"> </products></font></b>
-<br>
-<font color="#000000"> ]</font><br>
-<font color="#000000"> [</font><b><font color="#000099"> <dependencies></font></b>
-<br>
-<font color="#000000">
-[</font><b><font color="#000099">
-<product</font></b><font color="#000000">
-name=<product_name></font><b><font color="#000099"> ></font></b> <br>
-<font color="#000000">
-[</font><b><font color="#000099">
-<dep></font></b> <font color="#000000"><prerequisite_name></font>
-<b><font color="#000099"> </dep></font></b>
-<font color="#000000">]</font><br>
-<font color="#000000">
-...</font><br>
-<font color="#000000"> </font><b><font color="#000099"> </product></font></b>
-<br>
-<font color="#000000">
-]</font><br>
-<font color="#000000">
-...</font><br>
-<font color="#000000"> </font><b><font color="#000099"> </dependencies></font></b>
-<br>
-<font color="#000000"> ]</font><br>
-<b><font color="#000099">
-</document></font></b> </font></p>
-
-<h4><font color="#000000"><config>
-section</font></h4>
-<font color="#000000">This section provides general
-information about an application that will be installed.<br>
-<br>
-Attributes:<br>
-</font>
-<ul>
- <li> <font color="#000000"><b>version</b></font></li>
-</ul>
-<font color="#000000">The application version number to be
-shown in the
-caption.</font>
-<ul>
- <li> <font color="#000000"><b>caption</b></font></li>
-</ul>
-<font color="#000000">The application main window caption
-- if this
-string contains '%1' text the title will contain
-the version number in this place (see above).</font>
-<ul>
- <li> <font color="#000000"><b>copyright</b></font></li>
-</ul>
-<font color="#000000">The application
-copyright information (shown in the first page).</font>
-<ul>
- <li> <font color="#000000"><b>license</b></font></li>
-</ul>
-<font color="#000000">The application license information
-(shown in the
-first page).</font>
-<ul>
- <li> <font color="#000000"><b>platforms</b></font></li>
-</ul>
-<font color="#000000">This parameter defines platforms for
-whose the configurations from this file will be used. Also it provides
-the directory name (relative from ./Products/BINARIES) where the
-Installation Wizard will search for precompiled binaries packages.</font>
-<ul>
- <li> <font color="#000000"><b>targetdir</b></font></li>
-</ul>
-<font color="#000000">The target
-directory is the path to the directory where the products should be
-installed.</font>
-<ul>
- <li> <font color="#000000"><b>tempdir</b></font></li>
-</ul>
-<font color="#000000">The temporary directory is
-the path to the directory for the temporary files.</font>
-<h4> <b><buttons> section</b></h4>
-This is an optional section and may contains one or more
-<product> sections.
-<h4> <b><button> section</b></h4>
-This optional section allows customization of the last <i>"Finish
-installation"</i> page of the Installation Wizard by adding one
-or
-more buttons in the lower part of the Installation Wizard window. The
-script
-which is attached to each such button, can perform some specific
-actions, for example, launch the application or show the 'Release
-Notes'
-file by using an external program.
-See <a href="#finish_buttons">here</a> for more
-details about
-writing scripts.<br>
-<font color="#000000"><br>
-Attributes:</font><br>
-<ul>
- <li> <font color="#000000"><b>label</b></font></li>
-</ul>
-<font color="#000000">This is the button text.</font>
-<ul>
- <li> <font color="#000000"><b>tooltip</b></font></li>
-</ul>
-<font color="#000000">The button tooltip (optional).</font>
-<ul>
- <li> <font color="#000000"><b>script</b></font></li>
-</ul>
-<font color="#000000">The script attached to the button.</font>
-<ul>
- <li> <font color="#000000"><b>disable</b></font></li>
-</ul>
-<font color="#000000">If this optional flag has 'true'
-value, the corresponding button will not appear in the <i>"Finish
-installation"</i> page - the section of XML file is ignored.</font><br>
-<h4> <b><products> section</b></h4>
-This one contains a list of <product> sections. The
-products appear in the tree view and are installed in the order they
-are described in this section.
-<h4> <b><product> section</b></h4>
-Current section is optional. It describes the product to be installed
-with the Installation
-Wizard. The <products> container should include
-<product> section for each
-product to be installed.<br>
-<font color="#000000"><br>
-Attributes:</font><br>
-<ul>
- <li> <font color="#000000"><b>name</b></font></li>
-</ul>
-<font color="#000000">The name of the product.</font>
-<ul>
- <li> <font color="#000000"><b>type</b></font></li>
-</ul>
-<font color="#000000">The type of the product: '<i>component</i>'
-- SALOME module or '<i>prerequisite</i>' - prerequisite
-product.</font>
-<ul>
- <li> <font color="#000000"><b>description</b></font></li>
-</ul>
-The <font color="#000000">product </font><font color="#000000">description
-(optional).</font>
-<h4> <b><installation> section</b></h4>
-It is a part of the <product> section, that provides
-installation information by platforms. The <product>
-section may contains a several <installation> ones for
-the different platforms.
-<br>
-<font color="#000000"><br>
-Attributes:</font><br>
-<ul>
- <li> <font color="#000000"><b>os</b></font></li>
-</ul>
-<font color="#000000">A possible installation platform.</font>
-<ul>
- <li> <font color="#000000"><b>version</b></font></li>
-</ul>
-<font color="#000000">The version of the product.</font>
-<ul>
- <li> <font color="#000000"><b>disable</b></font></li>
-</ul>
-<font color="#000000">If this optional flag has 'true'
-value, the corresponding product will not appear in the list of
-products and will not be installed.</font>
-<ul>
- <li> <font color="#000000"><b>woguimode</b></font></li>
-</ul>
-<font color="#000000">This optional flag defines that
-it's possible to install this module without GUI.</font>
-<ul>
- <li> <font color="#000000"><b>installdiskspace</b></font></li>
-</ul>
-<font color="#000000">List of three total amount spaces
-(integer, in Kbytes, derived by comma), which product occupies on the
-hard drive after the installation in case 'binary', 'sources' and
-'sources and compile' installation type.</font>
-<ul>
- <li><b>pickupenv</b></li>
-</ul>
-This flag shows that the pickup environment
-procedure should be performed for this product. If this flag equal to
-'true',
- salome.sh and salome.csh files will be created in
-the product's
-installation directory. Usually this option is set to true for SALOME
-KERNEL module. This is optional key, default value is 'false'<b>.</b><br>
-<ul>
- <li> <font color="#000000"><b>script</b></font></li>
-</ul>
-<font color="#000000">The installation script name.
-This script is in charge of the installation of the product. It is
-called
-automatically by the Installation Wizard when necessary from the main
-program. See the <a href="#new_products">next
-section</a> for
-more information.</font><br>
-<br>
-<b>Note:</b> If you add new products to be
-installed with Installation Wizard, you should also provide
-installation script for this product. See the next section for more
-details.
-<p><br>
-</p>
-<hr>
-<h3><a name="new_products"></a>Implementing <font color="#ff0000">installation
-scripts</font> for the new products</h3>
-When you want some product to be installed with the Installation
-Wizard, you should add it's description it <a href="#xml_files">in
-the
-configuration file</a> and create the installation script,
-following
-rules described in this section. <br>
-<br>
-There are some obligatory functions which should be implemented in this
-installation
-script. These functions are automatically called by master installation
-script
-or/and its GUI shell when it is necessary.<br>
-<font color="#000000">File <b>common.sh</b>
-contains some service
-functions
-which can be used in your installation script, like <b>make_env()</b>,<b>
-make_dir()</b>, <b>try_existing()</b>, <b>sort_path()</b>,<b>
-find_in_path()</b>,
-etc.</font>
-<ul>
- <li> <b>check_version()</b></li>
-</ul>
-This function allows to check the
-version of the product already installed on the computer. It should try
-to find product (native or preinstalled in the target directory) and
-check
-its version. This helps to avoid unnecessary reinstallation. This is
-internal
-function and is not called from the master installation script.<br>
-<ul>
- <li><font color="#000000"><b>install_binary()</b></font></li>
-</ul>
-<font color="#000000">This function is
-called when <i>'Install binaries'</i> installation mode is
-selected by
-the user. The function is responsible for the extracting of the product
-from the binaries package. It should create environment for the product
-in
-the temporary directory (see also the description of <b>print_env()</b>
-function). It is not necessary to implement this function if you do not
-provide binaries mode
-installation for the current product. <br>
-</font>
-<ul>
- <li> <font color="#000000"><b>install_source()</b></font></li>
-</ul>
-<font color="#000000">This function is
-called to install SALOME modules sources, if <i>'Install binaries</i>'
-installation mode is selected by the user, and to install prerequisite
-products sources, in <i>'Install sources</i>' case (see <a href="#Installation_type_page">Fig.2</a> above). The
-function is responsible for the building of the product from
-the sources package. It should create the environment file for the
-product
-in the temporary directory (see also the description of <b>print_env()</b>
-function). It is not necessary to implement this function if you do not
-provide a sources mode installation for the current product.</font>
-<br>
-<ul>
- <li> <font color="#000000"><b>install_source_and_build()</b></font></li>
-</ul>
-<font color="#000000">This function is
-called when <i>'Install sources and make a compilation'</i>
-installation mode is selected. This function should be used to unpack
-SALOME or prerequisite sources package and then call build/install
-procedure for it.<br>
-For more details please refer to <a href="#gui_mode">this</a>
-section for more details.<br>
-</font>
-<ul>
- <li> <b>try_preinstalled()</b></li>
-</ul>
-<font color="#000000">This function
-is used to parse the target directory to try to find an already
-installed product, to pick up and to check the environment from
-there. See <a href="#pick_up_env">here</a> for more
-details.</font>
-<ul>
- <li> <font color="#000000"><b>print_env_bin()
- </b> & <b> print_env_src()</b></font></li>
-</ul>
-<font color="#000000">These functions are in charge of the
-creation of the environment scripts. They should create in the
-temporary directory two files with <b>env_<product_name>.sh</b>
-and <b>env_<product_name>_src.sh</b>
-names and then copy them into the binary and sources product
-installation directories correspondingly. The file should contain all
-necessary
-environment variable settings for the product. It will be collected
-during the 'pick-up-environment' procedure.</font>
-<ul>
- <li><b>pickup_env()</b></li>
-</ul>
-This procedure corresponds to <b>pickupenv</b> tag
-of the configuration xml file (see the previous section). It should
-call <b>make_env</b>
-procedure to perform the pick-up environment procedure for the product.<br>
-<br>
-<font color="#000000">The calling signature of the product
-installation
-script is the following:</font> <br>
-<b><font color="#000000">
-<product_script_name>
-<function_name>
-<temp_folder>
-<products_directory>
-<target_directory>
-<all_products>
-<product_name>
-<install_products>
-<sources_directory>
-<remove_sources_flag>
-<binaries_directory>
-<single_directory_flag> </font></b>
-<p><font color="#000000">where</font> <br>
-</p>
-<p><font color="#000000"><b><product_script_name></b>
--
-the name of the installation script (described in the configuration XML
-file);</font> <br>
-<font color="#000000"><b><function_name></b>
-- the name of
-the function, corresponding to the selected installation type and
-currently installed product; </font> <br>
-<font color="#000000"><b>
-<temp_folder> </b> - the directory for the
-temporary files; </font> <br>
-<font color="#000000"><b><products_directory></b>
-- the directory
-where the sources/binaries package can be found. You should provide
-sources package in the <i><Install_Wizard_root_directory>/Products/SOURCES</i>
-directory and binaries package in the <i><InstallWizard_root_directory>/Products/BINARIES/<os_version></i>,
-where <os_version> is the target platform description,
-which appears
-in the corresponding section of the <a href="#xml_files">configuration
-xml
-file</a>.</font> <br>
-<font color="#000000"><b>
-<target_directory> </b> - the root target
-directory where the product should be installed to;</font> <br>
-<font color="#000000"><b>
-<all_products> </b> - single-quoted list
-of all products, separated by space;</font> <br>
-<font color="#000000"><b>
-<product_name> </b>- product name
-itself;</font> <br>
-<font color="#000000"><b>
-<install_products> </b> - single-quoted list
-of all products to be installed, separated by space;</font> <br>
-<font color="#000000"><b>
-<sources_directory> </b> - the directory
-where the sources package can be found (it is usable if the
-<products_directory> parameter gives the binaries
-directory path); </font> <br>
-<font color="#000000"><b>
-<remove_sources_flag> </b> - bool parameter, that
-is equal to 'TRUE' if 'Remove sources and temporary files after
-compilation' option has been selected by the user (see <a href="#Installation_type_page">Fig.2</a> in the <a href="#gui_mode">GUI part</a>);</font> <br>
-<font color="#000000"><b>
-<binaries_directory> </b> - the directory
-where the binaries package can be found (it is usable if the
-<products_directory> parameter gives the sources
-directory path); </font> <br>
-<font color="#000000"><b>
-<single_directory_flag> </b> - bool parameter,
-that is equal to 'TRUE' if 'Install modules to a single directory'
-option is selected by the user (see <a href="#Products_page1">Fig.5</a>
-above). </font> <br>
-</p>
-<p><font color="#000000">Example:</font> <br>
-<i><font color="#000000">med-2.3.3.sh install_binary
-/tmp/INSTALLWORK21797
-./Products/BINARIES/Mandriva2006.0
-'gcc tcltk tcltk_src Python Python_src Qt Qt_src ... DOCUMENTATION
-DOCUMENTATION_src'
-Med
-'gcc Hdf Med'
-./Products/SOURCES
-FALSE
-./Products/BINARIES/Mandriva2006.0
-</font></i></p>
-<p><font color="#000000">Copy the created script
-into
-the <i><Install_Wizard_root_directory>/config_files</i>
-sub-directory where all installation scripts are stored. The Installation
-Wizard will automatically search and call your script during the
-installation
-procedure.</font>
-</p>
-<hr> <br>
-<h3><a name="finish_buttons"></a>Customizing <font color="#ff0000">Readme
-page</font> buttons</h3>
-The Installation Wizard allows customizing the layout of the last
-<i>"Finish installation"</i> page. If you want to add one
-or more
-buttons in this page to perform some specific actions at the
-end of the installation (for example, show the 'Release Notes' file by using
-Open Office) you can put an additional section to the XML
-configuration file. This is the <b><button></b>
-section (see <a href="#xml_files">here</a> for more
-details). <br>
-<br>
-To implement the action which will be performed when the user clicks on
-the button, you need to create a script and to put it into the
-<i><Install_Wizard_root_directory>/config_files</i>
-directory.<br>
-There are some obligatory functions which should be implemented in this
-script. These functions are automatically called by the Installation
-Wizard GUI.
-<ul>
- <li><b>check_enabled()</b></li>
-</ul>
-This procedure is called by the Installation Wizard when the
-<i>"Finish installation"</i> page is displayed and the
-status of the
-buttons should be modified according to the installation options. This
-procedure should return <b>0</b> if the corresponding
-action can be
-performed and, thus, the button should be enabled. Otherwise, it
-should return <b>1</b> - in this case the corresponding
-button will be
-disabled.
-<ul>
- <li><b>execute()</b></li>
-</ul>
-This procedure is invoked when the user clicks the button. This
-procedure should return <b>0</b> if the corresponding
-action is carried out
-successfully and <b>1</b> if any error occurs.<br>
-<br>
-The calling signature of the script is the following:<br>
-<b><font color="#000000"><product_script_name>
-<function_name> <target_directory>
-<temp_folder></font></b>
-<p><font color="#000000">where</font> <br>
-</p>
-<p><font color="#000000"><b><product_script_name></b>
--
-the script name itself (retrieved from the XML configuration xml
-file);</font> <br>
-<font color="#000000"><b><function_name></b>
-- the name of the function;</font> <br>
-<font color="#000000"><b><target_directory></b>
-- the root target
-directory where the product is
-installed to;</font> <br>
-<font color="#000000"><b><temp_folder>
-</b> - the directory for the temporary files.</font> <br>
-<br>
-<b>Note:</b> The standard Installation Wizard buttons
-"Launch
-SALOME" and "Release Notes" are implemented with this
-feature. Refer to the scripts <b>start_salome.sh</b> and
-<b>release_notes.sh</b> for the sample implementation.<br>
-<br>
-<b>Note:</b> Any button (even standard) can be ignored by
-the
-Installation Wizard if the attribute <b><disable></b>
-in the XML
-configuration file is set to the "true" value.
-</p>
-<hr><br>
-</font></body>
-</html>
\ No newline at end of file
+++ /dev/null
-/****************************************************************************
-** $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 <qtoolbutton.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 {
- Page( QWidget * widget, const QString & title ):
- w( widget ), t( title ),
- backEnabled( TRUE ), nextEnabled( TRUE ), finishEnabled( FALSE ),
- helpEnabled( TRUE ),
- appropriate( TRUE )
- {}
- QWidget * w;
- QString t;
- bool backEnabled;
- bool nextEnabled;
- bool finishEnabled;
- bool helpEnabled;
- bool appropriate;
- };
-
- QVBoxLayout * v;
- Page * current;
- QWidgetStack * ws;
- QPtrList<Page> pages;
- QLabel * title;
- QHBox * titleBox;
- QHBox * logoBox;
- QPushButton * backButton;
- QPushButton * nextButton;
- QPushButton * finishButton;
- QPushButton * cancelButton;
- QPushButton * helpButton;
- QFrame * hbar1, * hbar2;
- QToolButton * aboutButton;
-
-#ifndef QT_NO_ACCEL
- QAccel * accel;
- int backAccel;
- int nextAccel;
-#endif
-
- Page * page( const QWidget * w )
- {
- if ( !w )
- return 0;
- int i = pages.count();
- while( --i >= 0 && pages.at( i ) && pages.at( i )->w != w ) { }
- return i >= 0 ? pages.at( i ) : 0;
- }
-};
-
-
-/*! Constructs an empty wizard dialog.
-The \a parent, \a name, \a modal and \a f arguments are passed to
-the QDialog constructor.
-
-*/
-
-InstallWizard::InstallWizard( QWidget *parent, const char *name, bool modal,
- WFlags f )
- : QDialog( parent, name, modal, f )
-{
- d = new InstallWizardPrivate();
- d->current = 0; // not quite true, but...
- d->ws = new QWidgetStack( this, "qt_widgetstack" );
- d->pages.setAutoDelete( TRUE );
- d->titleBox = new QHBox( this, "title box" );
- d->aboutButton = new QToolButton( d->titleBox, "about button");
- d->aboutButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
- d->aboutButton->setAutoRaise( true );
- d->title = new QLabel( d->titleBox, "title label" );
- d->logoBox = new QHBox( d->titleBox, "logo box" );
- d->logoBox->setSpacing( 2 );
- d->titleBox->setStretchFactor( d->title, 10 );
- // create in nice tab order
- d->nextButton = new QPushButton( this, "next" );
- d->finishButton = new QPushButton( this, "finish" );
- d->helpButton = new QPushButton( this, "help" );
- d->backButton = new QPushButton( this, "back" );
- d->cancelButton = new QPushButton( this, "cancel" );
-
- d->ws->installEventFilter( this );
-
- d->v = 0;
- d->hbar1 = 0;
- d->hbar2 = 0;
-
- d->cancelButton->setText( tr( "&Cancel" ) );
- d->backButton->setText( tr( "< &Back" ) );
- d->nextButton->setText( tr( "&Next >" ) );
- d->finishButton->setText( tr( "&Finish" ) );
- d->helpButton->setText( tr( "&Help" ) );
-
- d->nextButton->setDefault( TRUE );
-
- connect( d->backButton, SIGNAL(clicked()),
- this, SIGNAL(backClicked()) );
- connect( this, SIGNAL(backClicked()),
- this, SLOT(back()) );
- connect( d->nextButton, SIGNAL(clicked()),
- this, SIGNAL(nextClicked()) );
- connect( this, SIGNAL(nextClicked()),
- this, SLOT(next()) );
- connect( d->finishButton, SIGNAL(clicked()),
- this, SLOT(accept()) );
- connect( d->cancelButton, SIGNAL(clicked()),
- this, SLOT(reject()) );
- connect( d->helpButton, SIGNAL(clicked()),
- this, SLOT(help()) );
- connect( d->aboutButton, SIGNAL(clicked()),
- this, SIGNAL(aboutClicked()) );
-
-#ifndef QT_NO_ACCEL
- d->accel = new QAccel( this, "arrow-key accel" );
- d->backAccel = d->accel->insertItem( Qt::ALT + Qt::Key_Left );
- d->accel->connectItem( d->backAccel, this, SIGNAL(backClicked()) );
- d->nextAccel = d->accel->insertItem( Qt::ALT + Qt::Key_Right );
- d->accel->connectItem( d->nextAccel, this, SIGNAL(nextClicked()) );
-#endif
-
- showAboutBtn( false );
-}
-
-
-/*!
-Destroys the object and frees any allocated resources, including
-all pages and controllers.
-*/
-
-InstallWizard::~InstallWizard()
-{
- delete d;
-}
-
-
-/*! \reimp */
-
-void InstallWizard::show()
-{
- if ( d->current )
- showPage( d->current->w );
- else if ( pageCount() > 0 )
- showPage( d->pages.at( 0 )->w );
- else
- showPage( 0 );
-
- QDialog::show();
-}
-
-
-/*! \reimp */
-
-void InstallWizard::setFont( const QFont & font )
-{
- QApplication::postEvent( this, new QEvent( QEvent::LayoutHint ) );
- QDialog::setFont( font );
-}
-
-
-/*! Adds \a page to the end of the page sequence, with the title, \a title.
-*/
-
-void InstallWizard::addPage( QWidget * page, const QString & title )
-{
- if ( !page )
- return;
- if ( d->page( page ) ) {
-#if defined(QT_CHECK_STATE)
- qWarning( "InstallWizard::addPage(): already added %s/%s to %s/%s",
- page->className(), page->name(),
- className(), name() );
-#endif
- return;
- }
- int i = d->pages.count();
-
- if( i > 0 )
- d->pages.at( i - 1 )->nextEnabled = TRUE;
-
- InstallWizardPrivate::Page * p = new InstallWizardPrivate::Page( page, title );
- p->backEnabled = ( i > 0 );
- d->ws->addWidget( page, i );
- d->pages.append( p );
-}
-
-/*!
-Inserts \a page at position \a index into the page sequence, with
-title \a title. If \a index is -1, the page will be appended to
-the end of the wizard's page sequence.
-*/
-
-void InstallWizard::insertPage( QWidget * page, const QString & title, int index )
-{
- if ( !page )
- return;
- if ( d->page( page ) ) {
-#if defined(QT_CHECK_STATE)
- qWarning( "InstallWizard::insertPage(): already added %s/%s to %s/%s",
- page->className(), page->name(),
- className(), name() );
-#endif
- return;
- }
-
- if ( index < 0 || index > (int)d->pages.count() )
- index = d->pages.count();
-
- if( index > 0 && ( index == (int)d->pages.count() ) )
- d->pages.at( index - 1 )->nextEnabled = TRUE;
-
- InstallWizardPrivate::Page * p = new InstallWizardPrivate::Page( page, title );
- p->backEnabled = ( index > 0 );
- p->nextEnabled = ( index < (int)d->pages.count() );
-
- d->ws->addWidget( page, index );
- d->pages.insert( index, p );
-}
-
-/*!
-\fn void InstallWizard::selected(const QString&)
-
- This signal is emitted when the current page changes. The parameter
- contains the title of the selected page.
-*/
-
-
-/*! Makes \a page the current page and emits the selected() signal. */
-
-void InstallWizard::showPage( QWidget * page )
-{
- InstallWizardPrivate::Page * p = d->page( page );
- if ( p ) {
- int i;
- for( i = 0; i < (int)d->pages.count() && d->pages.at( i ) != p; i++ );
- bool notFirst( FALSE );
-
- if( i ) {
- i--;
- while( ( i >= 0 ) && !notFirst ) {
- notFirst |= appropriate( d->pages.at( i )->w );
- i--;
- }
- }
- setBackEnabled( notFirst );
- setNextEnabled( TRUE );
- d->ws->raiseWidget( page );
- d->current = p;
- }
-
- layOut();
- updateButtons();
- emit selected( p ? p->t : QString::null );
-}
-
-
-/*! Returns the number of pages in the wizard. */
-
-int InstallWizard::pageCount() const
-{
- return d->pages.count();
-}
-
-/*!
-Returns the position of page \a page.
-If the page is not part of the wizard -1 is returned.
-*/
-
-int InstallWizard::indexOf( QWidget* page ) const
-{
- InstallWizardPrivate::Page * p = d->page( page );
- if ( !p ) return -1;
-
- return d->pages.find( p );
-}
-
-/*!
-Called when the user clicks the Back button; this function shows
-the preceding relevant page in the sequence.
-
- \sa appropriate()
-*/
-void InstallWizard::back()
-{
- 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 >= 0 && ( !d->pages.at( i ) || !appropriate( d->pages.at( i )->w ) ) )
- i--;
-
- if( i >= 0 )
- if( d->pages.at( i ) )
- showPage( d->pages.at( i )->w );
-}
-
-
-/*!
-Called when the user clicks the Next button, this function shows
-the next relevant page in the sequence.
-
- \sa appropriate()
-*/
-void InstallWizard::next()
-{
- 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 ) ) {
- if ( d->current ) {
- setNextEnabled( false );
- setBackEnabled( false );
- if ( !acceptData( d->current->t ) ) {
- setNextEnabled( true );
- setBackEnabled( 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 <---
- }
-}
-
-
-/*!
-\fn void InstallWizard::helpClicked()
-
- This signal is emitted when the user clicks on the Help button.
-*/
-
-/*! Called when the user clicks the Help button, this function emits the
-helpClicked() signal.
-*/
-
-void InstallWizard::help()
-{
- QWidget * page = d->ws->visibleWidget();
- if ( !page )
- return;
-
-#if 0
- if ( page->inherits( "InstallWizardPage" ) )
- emit ((InstallWizardPage *)page)->helpClicked();
-#endif
- emit helpClicked();
-}
-
-/*!
- Enables/disables <Back> button
- */
-void InstallWizard::setBackEnabled( bool enable )
-{
- d->backButton->setEnabled( enable );
-#ifndef QT_NO_ACCEL
- d->accel->setItemEnabled( d->backAccel, enable );
-#endif
-}
-
-/*!
- Enables/disables <Next> button
- */
-void InstallWizard::setNextEnabled( bool enable )
-{
- d->nextButton->setEnabled( enable );
-#ifndef QT_NO_ACCEL
- d->accel->setItemEnabled( d->nextAccel, enable );
-#endif
-}
-
-/*!
- Enables/disables <Help> button
- */
-void InstallWizard::setHelpEnabled( bool enable )
-{
- d->helpButton->setEnabled( enable );
-}
-
-/*!
-\fn void InstallWizard::setFinish( QWidget *, bool )
-\obsolete
-
- Use setFinishEnabled instead
-*/
-
-/*!
-If \a enable is TRUE, page \a page has a Back button; otherwise \a
-page has no Back button.
-By default all pages have this button.
-*/
-void InstallWizard::setBackEnabled( QWidget * page, bool enable )
-{
- InstallWizardPrivate::Page * p = d->page( page );
- if ( !p )
- return;
-
- p->backEnabled = enable;
- updateButtons();
-}
-
-
-/*!
-If \a enable is TRUE, page \a page has a Next button; otherwise
-the Next button on \a page is disabled. By default all pages have
-this button.
-*/
-
-void InstallWizard::setNextEnabled( QWidget * page, bool enable )
-{
- InstallWizardPrivate::Page * p = d->page( page );
- if ( !p )
- return;
-
- p->nextEnabled = enable;
- updateButtons();
-}
-
-
-/*!
-If \a enable is TRUE, page \a page has a Finish button; otherwise \a
-page has no Finish button.
-By default \e no page has this button.
-*/
-void InstallWizard::setFinishEnabled( QWidget * page, bool enable )
-{
- InstallWizardPrivate::Page * p = d->page( page );
- if ( !p )
- return;
-
- p->finishEnabled = enable;
- updateButtons();
-}
-
-
-/*!
-If \a enable is TRUE, page \a page has a Help button; otherwise \a
-page has no Help button.
-By default all pages have this button.
-*/
-void InstallWizard::setHelpEnabled( QWidget * page, bool enable )
-{
- InstallWizardPrivate::Page * p = d->page( page );
- if ( !p )
- return;
-
- p->helpEnabled = enable;
- updateButtons();
-}
-
-
-/*!
-Called when the Next button is clicked; this virtual function
-returns TRUE if \a page is relevant for display in the current
-context; otherwise it is ignored by InstallWizard and returns FALSE. The
-default implementation returns the value set using
-setAppropriate(). The ultimate default is TRUE.
-
- \warning The last page of the wizard will be displayed if no page is relevant
- in the current context.
-*/
-
-bool InstallWizard::appropriate( QWidget * page ) const
-{
- InstallWizardPrivate::Page * p = d->page( page );
- return p ? p->appropriate : TRUE;
-}
-
-
-/*!
-If \a appropriate is TRUE then page \a page is considered relevant
-in the current context and should be displayed in the page sequence;
-otherwise \a page should not be displayed in the page sequence.
-
- \sa appropriate()
-*/
-void InstallWizard::setAppropriate( QWidget * page, bool appropriate )
-{
- InstallWizardPrivate::Page * p = d->page( page );
- if ( p )
- p->appropriate = appropriate;
-}
-
-
-void InstallWizard::updateButtons()
-{
- if ( !d->current )
- return;
-
- int i;
- for( i = 0; i < (int)d->pages.count() && d->pages.at( i ) != d->current; i++ );
- bool notFirst( FALSE );
- if( i ) {
- i--;
- while( ( i >= 0 ) && !notFirst ) {
- notFirst |= appropriate( d->pages.at( i )->w );
- i--;
- }
- }
- setBackEnabled( d->current->backEnabled && notFirst );
- setNextEnabled( d->current->nextEnabled );
- d->finishButton->setEnabled( d->current->finishEnabled );
- d->helpButton->setEnabled( d->current->helpEnabled );
-
- if ( ( d->current->finishEnabled && !d->finishButton->isVisible() ) ||
- ( d->current->backEnabled && !d->backButton->isVisible() ) ||
- ( d->current->nextEnabled && !d->nextButton->isVisible() ) ||
- ( d->current->helpEnabled && !d->helpButton->isVisible() ) )
- layOut();
-}
-
-
-/*! Returns a pointer to the current page in the sequence.
-Although the wizard does its best to make sure that this value is
-never 0, it can be if you try hard enough.
-*/
-
-QWidget * InstallWizard::currentPage() const
-{
- return d->ws->visibleWidget();
-}
-
-
-/*! Returns the title of page \a page.
-*/
-
-QString InstallWizard::title( QWidget * page ) const
-{
- InstallWizardPrivate::Page * p = d->page( page );
- return p ? p->t : QString::null;
-}
-
-/*! Sets the title for page \a page to \a title.
-*/
-
-void InstallWizard::setTitle( QWidget *page, const QString &title )
-{
- InstallWizardPrivate::Page * p = d->page( page );
- if ( p )
- p->t = title;
- if ( page == currentPage() )
- d->title->setText( title );
-}
-
-/*!
-\property InstallWizard::titleFont
-\brief the font used for page titles
-
- The default is QApplication::font().
-*/
-QFont InstallWizard::titleFont() const
-{
- return d->title->font();
-}
-
-void InstallWizard::setTitleFont( const QFont & font )
-{
- d->title->setFont( font );
-}
-
-
-/*!
-Returns a pointer to the dialog's Back button
-
- By default, this button is connected to the back() slot,
- which is virtual so you can reimplement it in a InstallWizard subclass.
-*/
-QPushButton * InstallWizard::backButton() const
-{
- return d->backButton;
-}
-
-
-/*!
-Returns a pointer to the dialog's Next button
-
- By default, this button is connected to the next() slot,
- which is virtual so you can reimplement it in a InstallWizard subclass.
-*/
-QPushButton * InstallWizard::nextButton() const
-{
- return d->nextButton;
-}
-
-
-/*!
-Returns a pointer to the dialog's Finish button
-
- By default, this button is connected to the QDialog::accept() slot,
- which is virtual so you can reimplement it in a InstallWizard subclass.
-*/
-QPushButton * InstallWizard::finishButton() const
-{
- return d->finishButton;
-}
-
-
-/*!
-Returns a pointer to the dialog's Cancel button
-
- By default, this button is connected to the QDialog::reject() slot,
- which is virtual so you can reimplement it in a InstallWizard subclass.
-*/
-QPushButton * InstallWizard::cancelButton() const
-{
- return d->cancelButton;
-}
-
-
-/*!
-Returns a pointer to the dialog's Help button
-
- By default, this button is connected to the help() slot,
- which is virtual so you can reimplement it in a InstallWizard subclass.
-*/
-QPushButton * InstallWizard::helpButton() const
-{
- return d->helpButton;
-}
-
-
-/*! This virtual function is responsible for adding the bottom
-divider and the buttons below it.
-
- \a layout is the vertical layout of the entire wizard.
-*/
-
-void InstallWizard::layOutButtonRow( QHBoxLayout * layout )
-{
- bool hasHelp = FALSE;
- bool hasEarlyFinish = FALSE;
-
- int i = d->pages.count() - 2;
- while ( !hasEarlyFinish && i >= 0 ) {
- if ( d->pages.at( i ) && d->pages.at( i )->finishEnabled )
- hasEarlyFinish = TRUE;
- i--;
- }
- i = 0;
- while ( !hasHelp && i < (int)d->pages.count() ) {
- if ( d->pages.at( i ) && d->pages.at( i )->helpEnabled )
- hasHelp = TRUE;
- i++;
- }
-
- QBoxLayout * h = new QBoxLayout( QBoxLayout::LeftToRight );
- layout->addLayout( h );
-
- h->addWidget( d->cancelButton );
-
- h->addStretch( 42 );
-
- h->addWidget( d->backButton );
-
- h->addSpacing( 6 );
-
- if ( hasEarlyFinish ) {
- d->nextButton->show();
- d->finishButton->show();
- h->addWidget( d->nextButton );
- h->addSpacing( 12 );
- h->addWidget( d->finishButton );
- } else if ( d->pages.count() == 0 ||
- d->current->finishEnabled ||
- d->current == d->pages.at( d->pages.count()-1 ) ) {
- d->nextButton->hide();
- d->finishButton->show();
- h->addWidget( d->finishButton );
- } else {
- d->nextButton->show();
- d->finishButton->hide();
- h->addWidget( d->nextButton );
- }
-
- // if last page is disabled - show finished btn. at lastpage-1
- i = d->pages.count()-1;
- if ( i >= 0 && !appropriate( d->pages.at( i )->w ) &&
- d->current == d->pages.at( d->pages.count()-2 ) ) {
- d->nextButton->hide();
- d->finishButton->show();
- h->addWidget( d->finishButton );
- }
-
- if ( hasHelp ) {
- h->addSpacing( 12 );
- h->addWidget( d->helpButton );
- } else {
- d->helpButton->hide();
- }
-}
-
-
-/*!
-This virtual function is responsible for laying out the title row
-and adding the vertical divider between the title and the wizard
-page. \a layout is the vertical layout for the wizard, and \a
-title is the title for this page. This function is called every
-time \a title changes.
-*/
-
-void InstallWizard::layOutTitleRow( QHBoxLayout * layout, const QString & title )
-{
- d->title->setText( title );
- layout->addWidget( d->titleBox, 10 );
-}
-
-/*!
-Validates page when 'Next' or 'Finish' button is clicked.
-Should return true in success
-*/
-bool InstallWizard::acceptData( const QString& )
-{
- postValidateEvent( this );
- return TRUE;
-}
-
-/*
-
-*/
-
-void InstallWizard::layOut()
-{
- delete d->v;
- d->v = new QVBoxLayout( this, 11, 0, "top-level layout" );
-
- QHBoxLayout * l;
- l = new QHBoxLayout( 6 );
- d->v->addLayout( l, 0 );
- layOutTitleRow( l, d->current ? d->current->t : QString::null );
-
- if ( ! d->hbar1 ) {
- d->hbar1 = new QFrame( this, "<hr>", 0 );
- d->hbar1->setFrameStyle( QFrame::Sunken + QFrame::HLine );
- d->hbar1->setFixedHeight( 12 );
- }
-
- d->v->addWidget( d->hbar1 );
-
- d->v->addWidget( d->ws, 10 );
-
- if ( ! d->hbar2 ) {
- d->hbar2 = new QFrame( this, "<hr>", 0 );
- d->hbar2->setFrameStyle( QFrame::Sunken + QFrame::HLine );
- d->hbar2->setFixedHeight( 12 );
- }
- d->v->addWidget( d->hbar2 );
-
- l = new QHBoxLayout( 6 );
- d->v->addLayout( l );
- layOutButtonRow( l );
- d->v->activate();
-}
-
-
-/*! \reimp */
-
-bool InstallWizard::eventFilter( QObject * o, QEvent * e )
-{
- if ( o == d->ws && e && e->type() == QEvent::ChildRemoved ) {
- QChildEvent * c = (QChildEvent*)e;
- if ( c->child() && c->child()->isWidgetType() )
- removePage( (QWidget *)c->child() );
- }
- return QDialog::eventFilter( o, e );
-}
-
-
-/*!
-Removes \a page from the page sequence but does not delete the page.
-If \a page is currently being displayed, InstallWizard will display the
-page that precedes it, or the first page if this was the first page.
-*/
-
-void InstallWizard::removePage( QWidget * page )
-{
- if ( !page )
- return;
-
- int i = d->pages.count();
- QWidget* cp = currentPage();
- while( --i >= 0 && d->pages.at( i ) && d->pages.at( i )->w != page ) { }
- if ( i < 0 )
- return;
- InstallWizardPrivate::Page * p = d->pages.at( i );
- d->pages.removeRef( p );
- d->ws->removeWidget( page );
-
- if( cp == page ) {
- i--;
- if( i < 0 )
- i = 0;
- if ( pageCount() > 0 )
- showPage( InstallWizard::page( i ) );
- }
-}
-
-
-/*!
-Returns a pointer to the page at position \a index in the sequence,
-or 0 if \a index is out of range. The first page has index 0.
-*/
-
-QWidget* InstallWizard::page( int index ) const
-{
- if ( index >= pageCount() || index < 0 )
- return 0;
-
- return d->pages.at( index )->w;
-}
-
-/*!
-Returns a pointer to the page with a title \a title in the sequence,
-or 0 if not found.
-*/
-QWidget* InstallWizard::page( const QString& title ) const
-{
- for( int i = 0; i < (int)d->pages.count(); i++ ) {
- if ( d->pages.at( i )->t == title )
- return d->pages.at( i )->w;
- }
- return 0;
-}
-
-/*!
-Adds logo to be shown at the right of the page title
-*/
-void InstallWizard::addLogo( const QPixmap& pm )
-{
- QLabel* logo = new QLabel( d->logoBox, "logo" );
- logo->setPixmap( pm );
- logo->setAlignment( AlignCenter );
- logo->setScaledContents( false );
- logo->show();
-}
-
-/*!
-Remove all logos
-*/
-void InstallWizard::removeLogos()
-{
- QObjectList* children = d->logoBox->queryList( "QLabel" );
- if ( children ) {
- QObjectListIt it( *children );
- QObject *obj;
- while ( (obj = it.current()) != 0 ) {
- ++it;
- delete obj;
- }
- }
- delete children;
-}
-
-/*!
-Show/hide "About" button
-*/
-void InstallWizard::showAboutBtn( bool show )
-{
- show ? d->aboutButton->show() : d->aboutButton->hide();
-}
-
-/*!
-Set icon for "About" button
-*/
-void InstallWizard::setAboutIcon( const QPixmap& px )
-{
- d->aboutButton->setIconSet( px );
-}
-
-/*!
-Posts validation event
-*/
-void InstallWizard::postValidateEvent( InstallWizard* iw, const int val, void* data )
-{
-#if QT_VERSION > 0x030005
- QApplication::postEvent( iw, new ProcessEvent( val, data ) );
-#else
- QThread::postEvent( iw, new ProcessEvent( val, data ) );
-#endif
-}
-
-/*!
-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 );
- }
- setNextEnabled( true );
- setBackEnabled( 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 );
-}
+++ /dev/null
-/****************************************************************************
-** $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>
-
-/*!
- This is the patched Qt 3.0.5 QWizard class
-*/
-class QHBoxLayout;
-class InstallWizardPrivate;
-
-class InstallWizard : public QDialog
-{
- Q_OBJECT
-
-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 );
-
- virtual void addPage( QWidget *, const QString & );
- virtual void insertPage( QWidget*, const QString&, int );
- virtual void removePage( QWidget * );
-
- QString title( QWidget * ) const;
- void setTitle( QWidget *, const QString & );
- QFont titleFont() const;
- void setTitleFont( const QFont & );
-
- virtual void showPage( QWidget * );
-
- QWidget * currentPage() const;
-
- QWidget* page( int ) const;
- QWidget* page( const QString& ) const;
- int pageCount() const;
- int indexOf( QWidget* ) const;
-
- void addLogo( const QPixmap& );
- void removeLogos();
-
- void showAboutBtn( bool );
- void setAboutIcon( const QPixmap& );
-
- virtual bool appropriate( QWidget * ) const;
- virtual void setAppropriate( QWidget *, bool );
-
- QPushButton * backButton() const;
- QPushButton * nextButton() const;
- QPushButton * finishButton() const;
- QPushButton * cancelButton() const;
- QPushButton * helpButton() const;
-
- bool eventFilter( QObject *, QEvent * );
-
-public slots:
- virtual void setBackEnabled( QWidget *, bool );
- virtual void setNextEnabled( QWidget *, bool );
- virtual void setFinishEnabled( QWidget *, bool );
-
- virtual void setHelpEnabled( QWidget *, bool );
-
- // obsolete
- virtual void setFinish( QWidget *, bool ) {}
-
-protected slots:
- virtual void back();
- virtual void next();
- virtual void help();
-
-signals:
- void nextClicked();
- void backClicked();
- void helpClicked();
- void aboutClicked();
- void selected( const QString& );
-
-protected:
- virtual void layOutButtonRow( QHBoxLayout * );
- virtual void layOutTitleRow( QHBoxLayout *, const QString & );
- virtual bool acceptData( const QString& );
- void layOut();
- void setBackEnabled( bool );
- void setNextEnabled( bool );
-
-private:
- void setHelpEnabled( bool );
-
- void setNextPage( QWidget * );
-
- void updateButtons();
-
- InstallWizardPrivate *d;
-
-private: // Disabled copy constructor and operator=
-#if defined(Q_DISABLE_COPY)
- InstallWizard( const InstallWizard & );
- InstallWizard& operator=( const InstallWizard & );
-#endif
-};
-
-#endif // InstallWizard_h
+++ /dev/null
- 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.
+++ /dev/null
-#############################################################################
-# Makefile for building: ../bin/SALOME_InstallWizard
-# Generated by qmake (1.07a) (Qt 3.3.8) on: Fri Nov 7 17:35:06 2008
-# Project: SALOME_INSTALL.pro
-# Template: app
-# Command: $(QMAKE) -o Makefile SALOME_INSTALL.pro
-#############################################################################
-
-####### Compiler, tools and options
-
-CC = gcc
-CXX = g++
-LEX = flex
-YACC = yacc
-CFLAGS = -pipe -Wno-deprecated -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
-CXXFLAGS = -pipe -Wno-deprecated -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
-LEXFLAGS =
-YACCFLAGS= -d
-INCPATH = -I/dn06/salome/vsr/static/qt-3.3.3/mkspecs/default -I. -I$(QTDIR)/include
-LINK = g++
-LFLAGS = -Wl,-rpath,$(QTDIR)/lib
-LIBS = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt-mt -L/usr/X11R6/lib -lXrender -lXinerama -lSM -lICE -ldl -lXext -lX11 -lm -lpthread
-AR = ar cqs
-RANLIB =
-MOC = $(QTDIR)/bin/moc
-UIC = $(QTDIR)/bin/uic
-QMAKE = qmake
-TAR = tar -cf
-GZIP = gzip -9f
-COPY = cp -f
-COPY_FILE= $(COPY)
-COPY_DIR = $(COPY) -r
-INSTALL_FILE= $(COPY_FILE)
-INSTALL_DIR = $(COPY_DIR)
-DEL_FILE = rm -f
-SYMLINK = ln -sf
-DEL_DIR = rmdir
-MOVE = mv -f
-CHK_DIR_EXISTS= test -d
-MKDIR = mkdir -p
-
-####### Output directory
-
-OBJECTS_DIR = ./
-
-####### Files
-
-HEADERS = SALOME_InstallWizard.hxx \
- SALOME_ProductsView.hxx \
- SALOME_ProgressView.hxx \
- SALOME_XmlHandler.hxx \
- SALOME_HelpWindow.hxx \
- icons.h \
- InstallWizard.h \
- globals.h
-SOURCES = main.cxx \
- SALOME_InstallWizard.cxx \
- SALOME_ProductsView.cxx \
- SALOME_ProgressView.cxx \
- SALOME_XmlHandler.cxx \
- SALOME_HelpWindow.cxx \
- InstallWizard.cpp \
- icons.cxx
-OBJECTS = main.o \
- SALOME_InstallWizard.o \
- SALOME_ProductsView.o \
- SALOME_ProgressView.o \
- SALOME_XmlHandler.o \
- SALOME_HelpWindow.o \
- InstallWizard.o \
- icons.o
-FORMS =
-UICDECLS =
-UICIMPLS =
-SRCMOC = moc_SALOME_InstallWizard.cpp \
- moc_SALOME_ProductsView.cpp \
- moc_SALOME_HelpWindow.cpp \
- moc_InstallWizard.cpp
-OBJMOC = moc_SALOME_InstallWizard.o \
- moc_SALOME_ProductsView.o \
- moc_SALOME_HelpWindow.o \
- moc_InstallWizard.o
-DIST = SALOME_INSTALL.pro
-QMAKE_TARGET = SALOME_InstallWizard
-DESTDIR = ../bin/
-TARGET = ../bin/SALOME_InstallWizard
-
-first: all
-####### Implicit rules
-
-.SUFFIXES: .c .o .cpp .cc .cxx .C
-
-.cpp.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
-
-.cc.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
-
-.cxx.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
-
-.C.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
-
-.c.o:
- $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
-
-####### Build rules
-
-all: Makefile $(TARGET)
-
-$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
- test -d ../bin/ || mkdir -p ../bin/
- $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS)
-
-mocables: $(SRCMOC)
-uicables: $(UICDECLS) $(UICIMPLS)
-
-$(MOC):
- ( cd $(QTDIR)/src/moc && $(MAKE) )
-
-Makefile: SALOME_INSTALL.pro /dn06/salome/vsr/static/qt-3.3.3/mkspecs/default/qmake.conf /dn06/salome/vsr/static/qt-3.3.3/lib/libqt-mt.prl
- $(QMAKE) -o Makefile SALOME_INSTALL.pro
-qmake:
- @$(QMAKE) -o Makefile SALOME_INSTALL.pro
-
-dist:
- @mkdir -p .tmp/SALOME_InstallWizard && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/SALOME_InstallWizard/ && ( cd `dirname .tmp/SALOME_InstallWizard` && $(TAR) SALOME_InstallWizard.tar SALOME_InstallWizard && $(GZIP) SALOME_InstallWizard.tar ) && $(MOVE) `dirname .tmp/SALOME_InstallWizard`/SALOME_InstallWizard.tar.gz . && $(DEL_FILE) -r .tmp/SALOME_InstallWizard
-
-mocclean:
- -$(DEL_FILE) $(OBJMOC)
- -$(DEL_FILE) $(SRCMOC)
-
-uiclean:
-
-yaccclean:
-lexclean:
-clean: mocclean
- -$(DEL_FILE) $(OBJECTS)
- -$(DEL_FILE) *~ core *.core
-
-
-####### Sub-libraries
-
-distclean: clean
- -$(DEL_FILE) ../bin/$(TARGET) $(TARGET)
-
-
-FORCE:
-
-####### Compile
-
-main.o: main.cxx globals.h \
- SALOME_InstallWizard.hxx \
- InstallWizard.h
-
-SALOME_InstallWizard.o: SALOME_InstallWizard.cxx globals.h \
- SALOME_InstallWizard.hxx \
- SALOME_ProductsView.hxx \
- SALOME_ProgressView.hxx \
- SALOME_XmlHandler.hxx \
- SALOME_HelpWindow.hxx \
- icons.h \
- InstallWizard.h
-
-SALOME_ProductsView.o: SALOME_ProductsView.cxx SALOME_ProductsView.hxx
-
-SALOME_ProgressView.o: SALOME_ProgressView.cxx SALOME_ProgressView.hxx
-
-SALOME_XmlHandler.o: SALOME_XmlHandler.cxx globals.h \
- SALOME_XmlHandler.hxx \
- SALOME_ProductsView.hxx \
- SALOME_InstallWizard.hxx \
- InstallWizard.h
-
-SALOME_HelpWindow.o: SALOME_HelpWindow.cxx SALOME_HelpWindow.hxx \
- SALOME_InstallWizard.hxx \
- icons.h \
- InstallWizard.h
-
-InstallWizard.o: InstallWizard.cpp InstallWizard.h
-
-icons.o: icons.cxx icons.h
-
-moc_SALOME_InstallWizard.o: moc_SALOME_InstallWizard.cpp SALOME_InstallWizard.hxx InstallWizard.h
-
-moc_SALOME_ProductsView.o: moc_SALOME_ProductsView.cpp SALOME_ProductsView.hxx
-
-moc_SALOME_HelpWindow.o: moc_SALOME_HelpWindow.cpp SALOME_HelpWindow.hxx
-
-moc_InstallWizard.o: moc_InstallWizard.cpp InstallWizard.h
-
-moc_SALOME_InstallWizard.cpp: $(MOC) SALOME_InstallWizard.hxx
- $(MOC) SALOME_InstallWizard.hxx -o moc_SALOME_InstallWizard.cpp
-
-moc_SALOME_ProductsView.cpp: $(MOC) SALOME_ProductsView.hxx
- $(MOC) SALOME_ProductsView.hxx -o moc_SALOME_ProductsView.cpp
-
-moc_SALOME_HelpWindow.cpp: $(MOC) SALOME_HelpWindow.hxx
- $(MOC) SALOME_HelpWindow.hxx -o moc_SALOME_HelpWindow.cpp
-
-moc_InstallWizard.cpp: $(MOC) InstallWizard.h
- $(MOC) InstallWizard.h -o moc_InstallWizard.cpp
-
-####### Install
-
-install:
-
-uninstall:
-
+++ /dev/null
----------------------------------------------------------
-Notes on building of SALOME Installation Wizard.
----------------------------------------------------------
-
-SALOME Installation Wizard needs gcc 2.95.3 or newer and qt 3.0.5 or newer.
-Use statically compiled gcc and qt in order to minimize external dependencies
-of Installation Wizard (see env.csh for details)
-
-To build Installation Wizard :
-- go to sources directory;
-- 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
----------------------------------------------------------
-
-For development of SALOME Installation Wizard we used modified
-Qt's QWizard class.
-This class is patched and and it's functionality is extended
-to provide required 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. The file LICENSE.GPL is included in the packaging
-of the SALOME Installation Wizard sources.
-
+++ /dev/null
-// File : SALOME_HelpWindow.cxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#include "SALOME_HelpWindow.hxx"
-#include "SALOME_InstallWizard.hxx"
-
-#include <qstatusbar.h>
-#include <qtoolbar.h>
-#include <qtoolbutton.h>
-#include <qiconset.h>
-#include <qlabel.h>
-#include <qtextbrowser.h>
-#include <qapplication.h>
-#include <qdir.h>
-#include <qfile.h>
-
-#include "icons.h"
-
-#define DEFAULT_WIDTH 800
-#define DEFAULT_HEIGHT 700
-
-// ================================================================
-/*!
- * HelpWindow::HelpWindow
- * Constructor
- */
-// ================================================================
-HelpWindow::HelpWindow( SALOME_InstallWizard* wizard ) : QMainWindow( 0, "SalomeProHelpWindow", WDestructiveClose )
-{
- QString hlpFile = QDir::currentDirPath() + "/doc/readme.html";
- QString hlpDir = ".";
- // caption
- setCaption( wizard->getCaption() + " " + wizard->getIWName() + " " + tr( "Help" ) );
- // icon
- setIcon( pixmap( pxIcon ) );
- // create browser
- browser = new QTextBrowser( this );
- browser->mimeSourceFactory()->setFilePath( hlpDir );
- browser->setFrameStyle( QFrame::Panel | QFrame::Sunken );
- setCentralWidget( browser );
- // set source directory
- if ( !hlpFile.isEmpty() )
- browser->setSource( hlpFile );
- // toolbar
- QToolBar* toolbar = new QToolBar( this );
- addToolBar( toolbar, "Toolbar" );
- QToolButton* button;
- // --> back
- button = new QToolButton( QIconSet( pixmap( pxBack ) ),
- tr( "Backward" ),
- "",
- browser,
- SLOT( backward() ),
- toolbar );
- button->setEnabled( FALSE );
- connect( browser, SIGNAL( backwardAvailable( bool ) ), button, SLOT( setEnabled( bool ) ) );
- // --> forward
- button = new QToolButton( QIconSet( pixmap( pxNext ) ),
- tr( "Forward" ),
- "",
- browser,
- SLOT( forward() ),
- toolbar );
- button->setEnabled( FALSE );
- connect( browser, SIGNAL( forwardAvailable( bool ) ), button, SLOT( setEnabled( bool ) ) );
- // --> home
- button = new QToolButton( QIconSet( pixmap( pxHome ) ),
- tr( "Home" ),
- "",
- browser,
- SLOT( home() ),
- toolbar );
- toolbar->addSeparator();
- button = new QToolButton( QIconSet( pixmap( pxZoomIn ) ),
- tr( "Increaze font size" ),
- "",
- browser,
- SLOT( zoomIn() ),
- toolbar );
- button = new QToolButton( QIconSet( pixmap( pxZoomOut ) ),
- tr( "Decreaze font size" ),
- "",
- browser,
- SLOT( zoomOut() ),
- toolbar );
- toolbar->addSeparator();
- button = new QToolButton( QIconSet( pixmap( pxClose ) ),
- tr( "Close" ),
- "",
- this,
- SLOT( close() ),
- toolbar );
- toolbar->addSeparator();
- // --> logo
- QLabel* logo = new QLabel( toolbar, "logo" );
- logo->setPixmap( pixmap( pxLogo ) );
- logo->setAlignment( AlignRight | AlignVCenter );
- logo->setScaledContents( false );
- toolbar->setStretchableWidget( logo );
- setRightJustification( TRUE );
- // disable docking of toolbar
- setDockEnabled( Qt::DockLeft, FALSE );
- setDockEnabled( Qt::DockRight, FALSE );
- setDockEnabled( Qt::DockBottom, FALSE );
- setDockEnabled( Qt::DockTornOff, FALSE );
- // disable dock menu
- setDockMenuEnabled ( FALSE ) ;
- // connect signals
- connect( browser, SIGNAL( highlighted( const QString&) ), statusBar(), SLOT( message( const QString&)) );
- // set focus
- browser->setFocus();
- // initial size
- QSize sz = qApp->desktop()->size();
- int x = ( sz.width() - DEFAULT_WIDTH ) / 2;
- int y = ( sz.height() - DEFAULT_HEIGHT ) / 2;
- setGeometry( x, y, DEFAULT_WIDTH, DEFAULT_HEIGHT );
-}
-// ================================================================
-/*!
- * HelpWindow::~HelpWindow
- * Destructor
- */
-// ================================================================
-HelpWindow::~HelpWindow()
-{
-}
-// ================================================================
-/*!
- * HelpWindow::keyPressEvent
- * Key press event handler
- */
-// ================================================================
-void HelpWindow::keyPressEvent( QKeyEvent* e )
-{
- if ( e->key() == Key_Escape )
- close();
- QMainWindow::keyPressEvent( e );
-}
-// ================================================================
-/*!
- * HelpWindow::openHelp [ static ]
- * Creates Help window ane return pointer to it if help file exists,
- * otherwise returns 0
- */
-// ================================================================
-HelpWindow* HelpWindow::openHelp( SALOME_InstallWizard* wizard )
-{
- if ( QFile::exists( QDir::currentDirPath() + "/doc/readme.html" ) )
- return new HelpWindow( wizard );
- else
- return 0;
-}
+++ /dev/null
-// File : SALOME_HelpWindow.hxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#ifndef __SALOME_HelpWindow
-#define __SALOME_HelpWindow
-
-#include <qmainwindow.h>
-
-/*!
- Install Wizard's help window class
-*/
-class QTextBrowser;
-class SALOME_InstallWizard;
-class HelpWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- // constructor
- HelpWindow( SALOME_InstallWizard* wizard );
- // destructor
- ~HelpWindow();
-
- // opens/raises Help window
- static HelpWindow* openHelp( SALOME_InstallWizard* wizard );
-
-protected:
- void keyPressEvent( QKeyEvent* e );
-
-private:
- QTextBrowser* browser; // help window browser
-};
-
-#endif
-
+++ /dev/null
-# File : SALOME_INSTALL.pro
-# Created : Thu Dec 18 12:01:00 2002
-# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-# Project : SALOME
-# Module : Installation Wizard
-# Copyright : 2002-2008 CEA
-
-TEMPLATE = app
-CONFIG += qt warn_on release thread
-HEADERS = SALOME_InstallWizard.hxx
-HEADERS += SALOME_ProductsView.hxx
-HEADERS += SALOME_ProgressView.hxx
-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
-SOURCES += SALOME_ProgressView.cxx
-SOURCES += SALOME_XmlHandler.cxx
-SOURCES += SALOME_HelpWindow.cxx
-SOURCES += InstallWizard.cpp
-SOURCES += icons.cxx
-TARGET = ../bin/SALOME_InstallWizard
-unix:LIBS += -ldl -lSM -lXrender -lXinerama
-unix:QMAKE_CFLAGS += -Wno-deprecated
-unix:QMAKE_CXXFLAGS += -Wno-deprecated
+++ /dev/null
-// File : SALOME_InstallWizard.cxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#include "globals.h"
-
-#include "SALOME_InstallWizard.hxx"
-#include "SALOME_ProductsView.hxx"
-#include "SALOME_ProgressView.hxx"
-#include "SALOME_XmlHandler.hxx"
-#include "SALOME_HelpWindow.hxx"
-
-#include "icons.h"
-
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qlistview.h>
-#include <qlabel.h>
-#include <qtextedit.h>
-#include <qtextbrowser.h>
-#include <qprocess.h>
-#include <qcheckbox.h>
-#include <qsplitter.h>
-#include <qlayout.h>
-#include <qfiledialog.h>
-#include <qapplication.h>
-#include <qfileinfo.h>
-#include <qmessagebox.h>
-#include <qtimer.h>
-#include <qvbox.h>
-#include <qwhatsthis.h>
-#include <qtooltip.h>
-#include <qfile.h>
-#include <qthread.h>
-#include <qwaitcondition.h>
-#include <qmutex.h>
-#include <qstringlist.h>
-#include <qpopupmenu.h>
-#include <qregexp.h>
-#include <qradiobutton.h>
-#include <qbuttongroup.h>
-#include <qregexp.h>
-
-#ifdef WNT
-#include <iostream.h>
-#include <process.h>
-#else
-#include <unistd.h>
-#include <algo.h>
-#include <sys/utsname.h>
-#endif
-
-#ifdef WNT
-#define max( x, y ) ( x ) > ( y ) ? ( x ) : ( y )
-#endif
-
-QString tmpDirName() { return QString( "/INSTALLWORK" ) + QString::number( getpid() ); }
-#define TEMPDIRNAME tmpDirName()
-
-// ================================================================
-/*!
- * ProcessThread
- * Class for executing systen commands
- */
-// ================================================================
-static QMutex myMutex(false);
-static QWaitCondition myWC;
-class ProcessThread: public QThread
-{
- typedef QPtrList<QCheckListItem> ItemList;
-public:
- ProcessThread( 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___( "ProcessThread::run - Processing command : " << myCommands[ 0 ].latin1() );
- int result = system( myCommands[ 0 ] ) / 256; // return code is <errno> * 256
- ___MESSAGE___( "ProcessThread::run - Result : " << result );
- QCheckListItem* item = myItems.first();
- myCommands.pop_front();
- myItems.removeFirst();
- myMutex.lock();
- SALOME_InstallWizard::postValidateEvent( myWizard, result, (void*)item );
- if ( hasCommands() )
- myWC.wait(&myMutex);
- myMutex.unlock();
- };
- }
-
-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;
- e->accept();
- 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;
-
-// ================================================================
-/*!
- * InstallInfo
- * Installation progress info window class
- */
-// ================================================================
-class InstallInfo : public QTextEdit
-{
-public:
- InstallInfo( QWidget* parent ) : QTextEdit( parent ), finished( false ) {}
- void setFinished( const bool f ) { finished = f; }
-protected:
- QPopupMenu* createPopupMenu( const QPoint& )
- {
- int para1, col1, para2, col2;
- getSelection(¶1, &col1, ¶2, &col2);
- bool allSelected = hasSelectedText() &&
- para1 == 0 && para2 == paragraphs()-1 && col1 == 0 && col2 == paragraphLength(para2);
- QPopupMenu* popup = new QPopupMenu( this );
- int id = popup->insertItem( tr( "&Copy" ) );
- popup->setItemEnabled( id, hasSelectedText() );
- popup->connectItem ( id, this, SLOT( copy() ) );
- id = popup->insertItem( tr( "Select &All" ) );
- popup->setItemEnabled( id, (bool)text().length() && !allSelected );
- popup->connectItem ( id, this, SLOT( selectAll() ) );
- if ( finished ) {
- QWidget* p = parentWidget();
- while ( p && !p->inherits( "SALOME_InstallWizard" ) )
- p = p->parentWidget();
- if ( p && p->inherits( "SALOME_InstallWizard" ) ) {
- popup->insertSeparator();
- id = popup->insertItem( tr( "&Save Log" ) );
- popup->setItemEnabled( id, (bool)text().length() );
- popup->connectItem ( id, (SALOME_InstallWizard*)p, SLOT( saveLog() ) );
- }
- }
- return popup;
- }
-private:
- bool finished;
-};
-
-// ================================================================
-/*!
- * getAllProducts [ static ]
- * Defines list of all products as a string separated by space symbols
- */
-// ================================================================
-static QString getAllProducts(MapProducts& theProductsMap)
-{
- QStringList aModules, aPrereqs;
- for ( MapProducts::Iterator mapIter = theProductsMap.begin(); mapIter != theProductsMap.end(); ++mapIter ) {
- QCheckListItem* item = mapIter.key();
- Dependancies dep = mapIter.data();
- QString curModule = item->text(0);
- if ( !aModules.contains( curModule ) && !aPrereqs.contains( curModule ) ) {
- if ( dep.getType() == "component" ) {
- aModules.append( curModule );
- aModules.append( curModule + "_src" );
- }
- else {
- aPrereqs.append( curModule );
- aPrereqs.append( curModule + "_src" );
- }
- }
- }
- return QStringList(aPrereqs+aModules).join(" ");
-}
-
-// ================================================================
-/*!
- * setAboutInfo [ static ]
- * Sets 'what's this' and 'tooltip' information for the widget
- */
-// ================================================================
-static void setAboutInfo( QWidget* widget, const QString& tip )
-{
- QWhatsThis::add( widget, tip );
- QToolTip::add ( widget, tip );
-}
-
-#define QUOTE(arg) QString("'") + QString(arg) + QString("'")
-
-/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- T H E O L D I M P L E M E N T A T I O N
-static QString DefineDependeces(MapProducts& theProductsMap, QCheckListItem* product ){
- QStringList aProducts;
- if ( theProductsMap.contains( product ) ) {
- Dependancies dep = theProductsMap[ product ];
- QStringList deps = dep.getDependancies();
- for (int i = 0; i<(int)deps.count(); i++ ) {
- aProducts.append( deps[i] );
- }
- }
- return QString("\"") + aProducts.join(" ") + QString("\"");
-}
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
-
-// ================================================================
-/*!
- * makeDir [ static ]
- * Makes directory recursively, returns false if not succedes
- */
-// ================================================================
-static bool makeDir( const QString& theDir, QString& theCreated )
-{
- if ( theDir.isEmpty() )
- return false;
- QString aDir = QDir::cleanDirPath( QFileInfo( theDir ).absFilePath() );
- int start = 1;
- while ( start > 0 ) {
- start = aDir.find( QDir::separator(), start );
- if ( start > 0 ) {
- QFileInfo fi( aDir.left( start ) );
- if ( !fi.exists() ) {
- // VSR: Create directory and set permissions to allow other users to remove it
- QString script = "mkdir " + fi.absFilePath();
- script += "; chmod 777 " + fi.absFilePath();
- script += " > /dev/null";
- if ( system( script.latin1() ) )
- return false;
- // VSR: Remember the top of the created directory (to remove it in the end of the installation)
- if ( theCreated.isNull() )
- theCreated = fi.absFilePath();
- }
- }
- start++;
- }
- if ( !QFileInfo( aDir ).exists() ) {
- // VSR: Create directory, other users should NOT have possibility to remove it!!!
- QString script = "mkdir " + aDir;
- script += " > /dev/null";
- if ( system( script.latin1() ) )
- return false;
- // VSR: Remember the top of the created directory (to remove it in the end of the installation)
- if ( theCreated.isNull() )
- theCreated = aDir;
- }
- return true;
-}
-// ================================================================
-/*!
- * readFile [ static ]
- * Reads the file, returns false if can't open it
- */
-// ================================================================
-static bool readFile( const QString& fileName, QString& text )
-{
- if ( QFile::exists( fileName ) ) {
- QFile file( fileName );
- if ( file.open( IO_ReadOnly ) ) {
- QTextStream stream( &file );
- QString line;
- while ( !stream.eof() ) {
- line = stream.readLine(); // line of text excluding '\n'
- text += line + "\n";
- }
- file.close();
- return true;
- }
- }
- return false;
-}
-// ================================================================
-/*!
- * hasSpace [ static ]
- * Checks if string contains spaces; used to check directory paths
- */
-// ================================================================
-static bool hasSpace( const QString& dir )
-{
- for ( int i = 0; i < (int)dir.length(); i++ ) {
- if ( dir[ i ].isSpace() )
- return true;
- }
- return false;
-}
-
-// ================================================================
-/*!
- * makeTitle
- * Creates HTML-wrapped title text
- */
-// ================================================================
-static QString makeTitle( const QString& text, const QString& separator = " ", bool fl = true )
-{
- QStringList words = QStringList::split( separator, text );
- if ( fl ) {
- for ( uint i = 0; i < words.count(); i++ )
- words[i] = QString( "<font color=red>%1</font>" ).arg( words[i].left(1) ) + words[i].mid(1);
- }
- else {
- if ( words.count() > 0 )
- words[0] = QString( "<font color=red>%1</font>" ).arg( words[0] );
- if ( words.count() > 1 )
- words[words.count()-1] = QString( "<font color=red>%1</font>" ).arg( words[words.count()-1] );
- }
- QString res = words.join( separator );
- if ( !res.isEmpty() )
- res = QString( "<b>%1</b>" ).arg( res );
- return res;
-}
-
-// ================================================================
-/*!
- * QMyCheckBox class : custom check box
- * The only goal is to give access to the protected setState() method
- */
-// ================================================================
-class QMyCheckBox: public QCheckBox
-{
-public:
- QMyCheckBox( const QString& text, QWidget* parent, const char* name = 0 ) : QCheckBox ( text, parent, name ) {}
- void setState ( ToggleState s ) { QCheckBox::setState( s ); }
-};
-
-// ================================================================
-/*!
- * AboutDlg
- * "About dialog box.
- */
-// ================================================================
-class AboutDlg: public QDialog
-{
-public:
- AboutDlg( SALOME_InstallWizard* parent ) : QDialog( parent, "About dialog box", true )
- {
- // caption
- setCaption( QString( "About %1" ).arg( parent->getIWName() ) );
- // palette
- QPalette pal = palette();
- QColorGroup cg = pal.active();
- cg.setColor( QColorGroup::Foreground, Qt::darkBlue );
- cg.setColor( QColorGroup::Background, Qt::white );
- pal.setActive( cg ); pal.setInactive( cg ); pal.setDisabled( cg );
- setPalette( pal );
- // layout
- QGridLayout* main = new QGridLayout( this, 1, 1, 11, 6 );
- // image
- QLabel* logo = new QLabel( this, "logo" );
- logo->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
- logo->setMinimumSize( 32, 32 ); logo->setMaximumSize( 32, 32 );
- logo->setPaletteBackgroundColor( QColor( 234, 250, 234 ) );
- logo->setFrameStyle( QLabel::NoFrame | QLabel::Plain );
- logo->setPixmap( pixmap( pxAbout ) );
- logo->setScaledContents( false );
- logo->setAlignment( QLabel::AlignCenter );
- // decoration
- QLabel* decorLeft = new QLabel( this, "decorLeft" );
- decorLeft->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Expanding ) );
- decorLeft->setMinimumWidth( 32 ); decorLeft->setMaximumWidth( 32 );
- decorLeft->setPaletteBackgroundColor( QColor( 234, 250, 234 ) );
- decorLeft->setScaledContents( false );
- QLabel* decorTop = new QLabel( this, "decorTop" );
- decorTop->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- decorTop->setMinimumHeight( 32 ); decorTop->setMaximumHeight( 32 );
- decorTop->setPaletteBackgroundColor( QColor( 234, 250, 234 ) );
- decorTop->setScaledContents( false );
- // contents
- QLabel* title = new QLabel( this, "title" );
- QString tlt = parent->getIWName();
- title->setText( makeTitle( tlt ) );
- QLabel* version = new QLabel( this, "version" );
- version->setText( QString( "<b>Version</b>: %1.%1.%1" ).arg( __IW_VERSION_MAJOR__ ) \
- .arg( __IW_VERSION_MINOR__ ) \
- .arg( __IW_VERSION_PATCH__ ) );
- QLabel* copyright = new QLabel( this, "copyright" );
- copyright->setText( "<b>Copyright</b> © 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE<br><br>"
- "<b>Copyright</b> © 2003-2007 OPEN CASCADE,<br>EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D,<br>LEG, PRINCIPIA R&D, BUREAU VERITAS");
- QFont font = title->font();
- font.setPointSize( (int)( font.pointSize() * 1.8 ) );
- title->setFont( font );
- QFrame* line = new QFrame( this, "line" );
- line->setFrameStyle( QFrame::HLine | QFrame::Sunken );
- QLabel* url = new QLabel( this, "url" );
- url->setText( makeTitle( "www.salome-platform.org", ".", false ) );
- url->setAlignment( AlignRight );
- font = version->font();
- font.setPointSize( (int)( font.pointSize() / 1.2 ) );
- version->setFont( font );
- copyright->setFont( font );
- url->setFont( font );
- // layout
- main->addWidget( logo, 0, 0 );
- main->addMultiCellWidget( decorLeft, 1, 5, 0, 0 );
- main->addWidget( decorTop, 0, 1 );
- main->addWidget( title, 1, 1 );
- main->addWidget( version, 2, 1 );
- main->addWidget( copyright, 3, 1 );
- main->addWidget( line, 4, 1 );
- main->addWidget( url, 5, 1 );
- // resize
- QFontMetrics fm( title->font() );
- int width = (int)( fm.width( tlt ) * 1.5 );
- title->setMinimumWidth( width );
-// setMaximumSize( minimumSize() );
- }
- void mousePressEvent( QMouseEvent* )
- {
- accept();
- }
-};
-
-// ================================================================
-/*!
- * SALOME_InstallWizard::SALOME_InstallWizard
- * Constructor
- */
-// ================================================================
-SALOME_InstallWizard::SALOME_InstallWizard(const QString& aXmlFileName,
- const QString& aTargetDir,
- const QString& aTmpDir,
- const bool aForceSrc,
- const bool aSingleDir)
- : InstallWizard( qApp->desktop(), "SALOME_InstallWizard", false, 0 ),
- helpWindow( NULL ),
- moreMode( false ),
- previousPage( 0 ),
- exitConfirmed( false ),
- hasErrors( false )
-{
- myIWName = tr( "Installation Wizard" );
- tmpCreated = QString::null;
- xmlFileName = aXmlFileName;
- myTargetPath = aTargetDir;
- myTmpPath = aTmpDir;
- forceSrc = aForceSrc;
- singleDir = aSingleDir;
- stateChanged = true;
- binPath = QDir::currentDirPath() + "/Products/BINARIES";
- srcPath = QDir::currentDirPath() + "/Products/SOURCES";
- oneProdDirName = "PRODUCTS";
-
- commonPlatform = "Debian 3.1";
-
- //
- // get XML filename and current platform
- //
- // ... get current platform
- curPlatform = currentPlatform().join(" ");
-// cout << "curOS = " << curPlatform << endl;
-// curPlatform = "";
- refPlatform = "";
- // ... check XML and platform definition
- getXmlAndPlatform();
-
- // set application font
- QFont fnt = font();
- fnt.setPointSize( 14 );
- fnt.setBold( true );
- setTitleFont( fnt );
-
- // set icon
- setIcon( pixmap( pxIcon ) );
- // enable sizegrip
- setSizeGripEnabled( true );
-
- // add logo
- addLogo( pixmap( pxLogo ) );
-
- // set defaults
- setVersion( "5.1.0" );
- setCaption( tr( "SALOME %1" ).arg( myVersion ) );
- setCopyright( tr( "<h5>Copyright © 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE<br></h5>"
- "<h5>Copyright © 2003-2007 OPEN CASCADE,<br>EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D,<br>LEG, PRINCIPIA R&D, BUREAU VERITAS</h5>" ));
- setLicense( tr( "<h5>GNU LGPL</h5>" ) );
-
- ___MESSAGE___( "Configuration file : " << xmlFileName.latin1() );
- ___MESSAGE___( "Target directory : " << myTargetPath.latin1() );
- ___MESSAGE___( "Temporary directory: " << myTmpPath.latin1() );
-
- //
- // xml reader
- //
- StructureParser* parser = new StructureParser( this );
- parser->readXmlFile(xmlFileName);
-
- // create instance of class for starting shell script to get available disk space
- diskSpaceProc = new QProcess( this, "procDiskSpace" );
- // create instance of class for starting shell install script
- shellProcess = new QProcess( this, "shellProcess" );
- // create instance of class for starting shell script to modify SALOME *.la files
- modifyLaProc = new QProcess( this, "modifyLaProc" );
- // create instance of class for starting shell script to check Fortran libraries
- checkFLibProc = new QProcess( this, "checkFLibProc" );
-
- // create introduction page
- setupIntroPage();
- // create page to select installation type
- setupTypePage();
- // create page to select the reference installation platform (if necessary)
- setupPlatformPage();
- // create directories page
- setupDirPage();
- // create products page
- setupProductsPage();
- // create prestart page
- setupCheckPage();
- // create progress page
- setupProgressPage();
- // create readme page
- setupReadmePage();
-
- // common buttons
- setAboutInfo( backButton(), tr( "Return to the previous step\nof the installation procedure" ) );
- setAboutInfo( nextButton(), tr( "Move to the next step\nof the installation procedure" ) );
- setAboutInfo( finishButton(), tr( "Finish the installation and quit the program" ) );
- setAboutInfo( cancelButton(), tr( "Cancel the installation and quit the program" ) );
- setAboutInfo( helpButton(), tr( "Show the help information" ) );
-
- // common signals connections
- connect( this, SIGNAL( selected( const QString& ) ),
- this, SLOT( pageChanged( const QString& ) ) );
- connect( this, SIGNAL( helpClicked() ), this, SLOT( helpClicked() ) );
- connect( this, SIGNAL( aboutClicked() ), this, SLOT( onAbout() ) );
-
- // catch signals from launched diskSpaceProc
- connect( diskSpaceProc, SIGNAL( processExited() ), this, SLOT( updateAvailableSpace() ) );
- // catch signals from launched shellProcess
- connect(shellProcess, SIGNAL( readyReadStdout() ), this, SLOT( readFromStdout() ) );
- connect(shellProcess, SIGNAL( readyReadStderr() ), this, SLOT( readFromStderr() ) );
- connect(shellProcess, SIGNAL( processExited() ), this, SLOT( productInstalled() ) );
- connect(shellProcess, SIGNAL( wroteToStdin() ), this, SLOT( wroteToStdin() ) );
- // catch signals from launched modifyLaProc
- connect(modifyLaProc, SIGNAL( readyReadStdout() ), this, SLOT( readFromStdout() ) );
- connect(modifyLaProc, SIGNAL( readyReadStderr() ), this, SLOT( readFromStderr() ) );
- connect(modifyLaProc, SIGNAL( processExited() ), this, SLOT( checkModifyLaResult() ) );
- // catch signals from launched checkFLibProc
- connect(checkFLibProc, SIGNAL( processExited() ), this, SLOT( checkFLibResult() ) );
-
- // create validation thread
- myThread = new ProcessThread( this );
-
- // show about button
- setAboutIcon( pixmap( pxAbout ) );
- showAboutBtn( true );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::~SALOME_InstallWizard
- * Destructor
- */
-// ================================================================
-SALOME_InstallWizard::~SALOME_InstallWizard()
-{
- shellProcess->kill(); // kill it for sure
- QString script = "kill -9 ";
- int PID = (int)shellProcess->processIdentifier();
- if ( PID > 0 ) {
- script += QString::number( PID );
- script += " > /dev/null";
- ___MESSAGE___( "script: " << script.latin1() );
- if ( system( script.latin1() ) ) {
- }
- }
- delete myThread;
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::getBasePlatform
- * Determine the base platform for binaries installation
- */
-// ================================================================
-QString SALOME_InstallWizard::getBasePlatform()
-{
- QString aBasePlt = "";
- if ( platformsMap.find( curPlatform ) != platformsMap.end() )
- aBasePlt = curPlatform;
- else
- aBasePlt = commonPlatform;
- return aBasePlt;
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::currentPlatform
- * Tries to determine the current user's operating system
- */
-// ================================================================
-QStringList SALOME_InstallWizard::currentPlatform()
-{
- // file parsing
- QString platName, platVersion, platArch;
- QString osFileName = "/etc/issue";
- if ( QFile::exists( osFileName ) ) {
- QFile file( osFileName );
- if ( file.open( IO_ReadOnly ) ) {
- QTextStream stream( &file );
- QString str = stream.readLine();
- file.close();
- // parse line
- QRegExp regvar = QRegExp( "(.*)\\s+[^\\s]*[R|r]elease[^\\s]*\\s+([\\d.]*)" );
- int pos = regvar.search( str );
- if ( pos == -1 ) {
- regvar = QRegExp( "(.*)\\s+[^\\s]*[L|l][I|i][N|n][U|u][X|x][^\\s]*(.*)\\s+([\\d.]*)\\s+" );
- pos = regvar.search( str );
- }
- if ( pos >= 0 ) {
- QStringList name;
- for ( int i = 1; i < regvar.numCaptures(); i++ )
- name.append( regvar.cap( i ) );
-
- // retrieve platform name
- platName = QStringList::split( " ", name.join( " " ) ).join( " " );
- platName = platName.replace( "Linux", "" ).replace( "linux", "" ).replace( "LINUX", "" ).stripWhiteSpace();
- platName = platName.replace( "Welcome to", "" ).stripWhiteSpace();
- platName = QStringList::split( " ", platName ).join( " " );
- // retrieve platform version number
- platVersion = regvar.cap( regvar.numCaptures() );
- // retrieve platform
- utsname uname_data;
- uname( &uname_data );
- if ( QString( uname_data.machine ) == "x86_64" )
- platArch = "64bit";
- }
- }
- }
- QStringList vals;
- if ( !platName.isEmpty() ) vals.append( platName );
- if ( !platVersion.isEmpty() ) vals.append( platVersion );
- if ( !platArch.isEmpty() ) vals.append( platArch );
- return vals;
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::getPlatformBinPath
- * Get platform binaries path
- */
-// ================================================================
-QString SALOME_InstallWizard::getPlatformBinPath( const QString& plt ) const
-{
- return QDir::cleanDirPath( getBinPath() + "/" + QStringList::split( " ", plt ).join( "_" ) );
-}
-
-// ================================================================
-/*!
- * SALOME_InstallWizard::getXmlMap
- * Creates a map of the supported operating systems and
- * corresponding XML files.
- */
-// ================================================================
-MapXmlFiles SALOME_InstallWizard::getXmlMap( const QString& aXmlFileName )
-{
- MapXmlFiles xmlMap;
- QStringList xmlList;
- if ( !aXmlFileName.isEmpty() )
- xmlList.append( aXmlFileName );
- else {
- QDir dir( QDir::currentDirPath() );
- xmlList = dir.entryList( "*.xml", QDir::Files | QDir::Readable );
- }
- if ( xmlList.remove( "config.xml" ) )
- xmlList.append( "config.xml" );
- // XML files parsing
- QFile file;
- QDomDocument doc( "xml_doc" );
- QDomElement docElem;
- QDomNodeList nodeList;
- QDomNode node;
- QDomElement elem;
- QString platforms = "";
- QStringList platList;
- for ( uint i = 0; i < xmlList.count(); i++ ) {
- file.setName( xmlList[i] );
- if ( !doc.setContent( &file ) ) {
- file.close();
- continue;
- }
- file.close();
-
- docElem = doc.documentElement();
- nodeList = docElem.elementsByTagName( "config" );
- if ( nodeList.count() == 0 )
- continue;
- node = nodeList.item( 0 );
- if ( node.isElement() ) {
- elem = node.toElement();
- if ( elem.attribute( "platforms" ) ) {
- platforms = elem.attribute( "platforms" ).stripWhiteSpace();
- QStringList platList = QStringList::split( ",", platforms );
- for ( uint j = 0; j < platList.count(); j++ ) {
- QString platform = platList[j].stripWhiteSpace();
- if ( !platform.isEmpty() && xmlMap.find( platform ) == xmlMap.end() )
- xmlMap[ platList[j] ] = xmlList[i];
- }
- }
- }
- }
- return xmlMap;
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::checkXmlAndPlatform
- * Check XML file and current platform definition
- */
-// ================================================================
-void SALOME_InstallWizard::getXmlAndPlatform()
-{
- MapXmlFiles xmlMap;
- if ( xmlFileName.isEmpty() ) {
- xmlMap = getXmlMap();
- if ( !curPlatform.isEmpty() ) {
- // try to get XML file for current platform
- if ( xmlMap.find( curPlatform ) != xmlMap.end() ) {
- xmlFileName = xmlMap[ curPlatform ];
- QFileInfo fibp( getPlatformBinPath( curPlatform ) );
- if ( !fibp.isDir() ) {
- warnMsg = tr( "Binaries are absent for current platform" );
- }
- platformsMap = xmlMap;
- }
- else {
- platformsMap = xmlMap;
- warnMsg = tr( "Your Linux platform is not supported by this SALOME package" );
- }
- }
- else {
- // get all supported platforms
- platformsMap = xmlMap;
- warnMsg = tr( "Installation Wizard can't identify target Linux platform" );
- }
- }
- else {
- xmlMap = getXmlMap( xmlFileName );
- if ( !curPlatform.isEmpty() ) {
- // check that the user's XML file supports current platform
- if ( xmlMap.find( curPlatform ) == xmlMap.end() ) {
- platformsMap = getXmlMap();
- MapXmlFiles::Iterator it;
- for ( it = xmlMap.begin(); it != xmlMap.end(); ++it )
- platformsMap.insert( it.key(), it.data(), true );
- warnMsg = tr( "The given configuration file doesn't support your Linux platform" );
- }
- else {
- platformsMap = xmlMap;
- }
- }
- else {
- // get all supported platforms
- platformsMap = getXmlMap();
- MapXmlFiles::Iterator it;
- for ( it = xmlMap.begin(); it != xmlMap.end(); ++it )
- platformsMap.insert( it.key(), it.data(), true );
- warnMsg = tr( "Installation Wizard can't define your Linux platform" );
- }
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::eventFilter
- * Event filter, spies for Help window closing
- */
-// ================================================================
-bool SALOME_InstallWizard::eventFilter( QObject* object, QEvent* event )
-{
- if ( object && object == helpWindow && event->type() == QEvent::Close )
- helpWindow = NULL;
- return InstallWizard::eventFilter( object, event );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::closeEvent
- * Close event handler
- */
-// ================================================================
-void SALOME_InstallWizard::closeEvent( QCloseEvent* ce )
-{
- if ( WarnDialog::isWarnDlgShown() ) {
- ce->ignore();
- return;
- }
- if ( !exitConfirmed ) {
- if ( QMessageBox::information( this,
- tr( "Exit" ),
- tr( "Do you want to quit %1?" ).arg( getIWName() ),
- tr( "&Yes" ),
- tr( "&No" ),
- QString::null,
- 0,
- 1 ) == 1 ) {
- ce->ignore();
- }
- else {
- ce->accept();
- exitConfirmed = true;
- reject();
- }
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setupIntroPage
- * Creates introduction page
- */
-// ================================================================
-void SALOME_InstallWizard::setupIntroPage()
-{
- // create page
- introPage = new QWidget( this, "IntroPage" );
- QGridLayout* pageLayout = new QGridLayout( introPage );
- pageLayout->setMargin( 0 ); pageLayout->setSpacing( 6 );
- // create logo picture
- logoLab = new QLabel( introPage );
- logoLab->setPixmap( pixmap( pxBigLogo ) );
- logoLab->setScaledContents( false );
- logoLab->setFrameStyle( QLabel::Plain | QLabel::NoFrame );
- logoLab->setAlignment( AlignCenter );
- // create version box
- QVBox* versionBox = new QVBox( introPage ); versionBox->setSpacing( 6 );
- versionBox->setFrameStyle( QVBox::Panel | QVBox::Sunken );
- QWidget* stretch1 = new QWidget( versionBox ); versionBox->setStretchFactor( stretch1, 5 );
- versionLab = new QLabel( QString("%1 %2").arg( tr( "Version" ) ).arg(myVersion), versionBox );
- versionLab->setAlignment( AlignCenter );
- copyrightLab = new QLabel( myCopyright, versionBox );
- copyrightLab->setAlignment( AlignCenter );
- licenseLab = new QLabel( myLicense, versionBox );
- licenseLab->setAlignment( AlignCenter );
- QWidget* stretch2 = new QWidget( versionBox ); versionBox->setStretchFactor( stretch2, 5 );
- // create info box
- info = new QLabel( introPage );
- info->setText( tr( "This program will install <b>%1</b>."
- "<br><br>The wizard will also help you to install all products "
- "which are necessary for <b>%2</b> and setup "
- "your environment.<br><br>Click <code>Cancel</code> button to abort "
- "installation and quit. Click <code>Next</code> button to continue with the "
- "installation program." ).arg( myCaption ).arg( myCaption ) );
- info->setFrameStyle( QLabel::WinPanel | QLabel::Sunken );
- info->setMargin( 6 );
- info->setAlignment( WordBreak );
- info->setMinimumWidth( 250 );
- QPalette pal = info->palette();
- pal.setColor( QColorGroup::Background, QApplication::palette().active().base() );
- info->setPalette( pal );
- info->setLineWidth( 2 );
- // layouting
- pageLayout->addWidget( logoLab, 0, 0 );
- pageLayout->addWidget( versionBox, 1, 0 );
- pageLayout->addMultiCellWidget( info, 0, 1, 1, 1 );
- pageLayout->setColStretch( 1, 5 );
- pageLayout->setRowStretch( 1, 5 );
- // adding page
- addPage( introPage, tr( "Introduction" ) );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setupTypePage
- * Creates installation types page
- */
-// ================================================================
-void SALOME_InstallWizard::setupTypePage()
-{
- // create page
- typePage = new QWidget( this, "TypePage" );
- QGridLayout* pageLayout = new QGridLayout( typePage );
- pageLayout->setMargin( 0 ); pageLayout->setSpacing( 6 );
- // create installation type button group
- buttonGrp = new QButtonGroup( typePage );
- buttonGrp->setFrameShape(QButtonGroup::NoFrame);
- QGridLayout* buttonGrpLayout = new QGridLayout( buttonGrp );
- buttonGrpLayout->setMargin( 0 ); buttonGrpLayout->setSpacing( 6 );
- QSpacerItem* spacer1 = new QSpacerItem( 16, 50, QSizePolicy::Minimum, QSizePolicy::Expanding );
- QSpacerItem* spacer2 = new QSpacerItem( 16, 50, QSizePolicy::Minimum, QSizePolicy::Expanding );
- QLabel* selectLab = new QLabel( tr( "Select a type of the installation:" ), buttonGrp );
- QSpacerItem* spacer3 = new QSpacerItem( 20, 20, QSizePolicy::Fixed, QSizePolicy::Minimum );
- // ... 'install binaries' layout
- QGridLayout* binLayout = new QGridLayout( 2, 2, 0 );
- binBtn = new QRadioButton( tr( "Install binaries" ), buttonGrp );
- QFont rbFont = binBtn->font();
- rbFont.setBold( true );
- binBtn->setFont( rbFont );
- QSpacerItem* spacer4 = new QSpacerItem( 16, 16, QSizePolicy::Fixed, QSizePolicy::Minimum );
- QLabel* binLab = new QLabel( tr( "- all the binaries and sources of the chosen SALOME modules will be installed.\n"
- "- all the binaries of the chosen prerequisites will be installed." ),
- buttonGrp );
- binLayout->addMultiCellWidget( binBtn, 0, 0, 0, 1 );
- binLayout->addItem ( spacer4, 1, 0 );
- binLayout->addWidget ( binLab, 1, 1 );
- // ... 'install sources' layout
- QGridLayout* srcLayout = new QGridLayout( 2, 2, 0 );
- srcBtn = new QRadioButton( tr( "Install sources" ), buttonGrp );
- srcBtn->setFont( rbFont );
- QSpacerItem* spacer5 = new QSpacerItem( 16, 16, QSizePolicy::Fixed, QSizePolicy::Minimum );
- QLabel* srcLab = new QLabel( tr( "- all the sources of the chosen modules and prerequisites will be installed without\ncompilation." ),
- buttonGrp );
- srcLayout->addMultiCellWidget( srcBtn, 0, 0, 0, 1 );
- srcLayout->addItem ( spacer5, 1, 0 );
- srcLayout->addWidget ( srcLab, 1, 1 );
- // ... 'install sources and make compilation' layout
- QGridLayout* srcCompileLayout = new QGridLayout( 3, 3, 0 );
- srcCompileBtn = new QRadioButton( tr( "Install sources and make a compilation" ), buttonGrp );
- srcCompileBtn->setFont( rbFont );
- QSpacerItem* spacer6 = new QSpacerItem( 16, 16, QSizePolicy::Fixed, QSizePolicy::Minimum );
- QLabel* srcCompileLab1 = new QLabel( tr( "- all the sources of the chosen modules and prerequisites will be installed and\ncompiled." ),
- buttonGrp );
- QLabel* srcCompileLab2 = new QLabel( tr( "Note:" ),
- buttonGrp );
- QFont noteFont = srcCompileLab2->font();
- noteFont.setUnderline( true );
- srcCompileLab2->setFont( noteFont );
- srcCompileLab2->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Preferred ) );
- srcCompileLab2->setAlignment( Qt::AlignHCenter | Qt::AlignTop );
- QLabel* srcCompileLab3 = new QLabel( " " +
- tr( "it is a long time operation and it can take more than 24 hours depending\n on the computer." ),
- buttonGrp );
- removeSrcBtn = new QCheckBox( tr( "Remove sources and temporary files after compilation" ), typePage );
- setAboutInfo( removeSrcBtn, tr( "Check this option if you want to remove sources of the products\nwith all the temporary files after build finishing" ) );
- removeSrcBtn->setChecked( false );
- removeSrcBtn->setEnabled( false );
- rmSrcPrevState = removeSrcBtn->isChecked();
-
- srcCompileLayout->addMultiCellWidget( srcCompileBtn, 0, 0, 0, 2 );
- srcCompileLayout->addMultiCell ( spacer6, 1, 2, 0, 0 );
- srcCompileLayout->addMultiCellWidget( srcCompileLab1, 1, 1, 1, 2 );
- srcCompileLayout->addWidget ( srcCompileLab2, 2, 1 );
- srcCompileLayout->addWidget ( srcCompileLab3, 2, 2 );
- srcCompileLayout->addMultiCellWidget( removeSrcBtn, 3, 3, 1, 2 );
- // layout widgets in the button group
- buttonGrpLayout->addItem ( spacer1, 0, 1 );
- buttonGrpLayout->addMultiCellWidget( selectLab, 1, 1, 0, 1 );
- buttonGrpLayout->addMultiCell ( spacer3, 2, 4, 0, 0 );
- buttonGrpLayout->addLayout ( binLayout, 2, 1 );
- buttonGrpLayout->addLayout ( srcLayout, 3, 1 );
- buttonGrpLayout->addLayout ( srcCompileLayout, 4, 1 );
- buttonGrpLayout->addItem ( spacer2, 5, 1 );
- // layout button group at the page
- pageLayout->addWidget( buttonGrp, 0, 0 );
- // connecting signals
- connect( buttonGrp, SIGNAL( clicked(int) ), this, SLOT ( onButtonGroup(int) ) );
- // adding page
- addPage( typePage, tr( "Installation type" ) );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setupPlatformPage
- * Creates platforms page, if necessary
- */
-// ================================================================
-void SALOME_InstallWizard::setupPlatformPage()
-{
- // create page
- platformsPage = new QWidget( this, "PlatformsPage" );
- QGridLayout* pageLayout = new QGridLayout( platformsPage );
- pageLayout->setMargin( 0 ); pageLayout->setSpacing( 6 );
- // create warning labels
- QLabel* warnLab2 = new QLabel( tr( "WARNING!" ), platformsPage );
- warnLab2->setAlignment( Qt::AlignHCenter );
- QFont fnt = warnLab2->font();
- fnt.setBold( true );
- warnLab2->setFont( fnt );
- warnLab = new QLabel( warnMsg, platformsPage );
- warnLab->setAlignment( Qt::AlignHCenter | Qt::WordBreak );
- warnLab3 = new QLabel( tr( "If you want to proceed anyway, please select platform from the following list:" ),
- platformsPage );
- warnLab3->setAlignment( Qt::AlignHCenter | Qt::WordBreak );
- // create button group
- platBtnGrp = new QButtonGroup( platformsPage );
- platBtnGrp->setFrameShape(QButtonGroup::LineEditPanel);
- platBtnGrp->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Preferred ) );
- QVBoxLayout* platBtnGrpLayout = new QVBoxLayout( platBtnGrp );
- platBtnGrpLayout->setMargin( 11 ); platBtnGrpLayout->setSpacing( 6 );
- // create platforms radio-buttons
- QString plat;
- MapXmlFiles::Iterator it;
- for ( it = platformsMap.begin(); it != platformsMap.end(); ++it ) {
- plat = it.key();
- QRadioButton* rb = new QRadioButton( plat, platBtnGrp, plat );
- platBtnGrpLayout->addWidget( rb );
- }
- // create spacers
- QSpacerItem* spacer1 = new QSpacerItem( 16, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
- QSpacerItem* spacer2 = new QSpacerItem( 16, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
-
- // layout widgets on page
- pageLayout->addItem ( spacer1, 0, 0 );
- pageLayout->addWidget ( warnLab2, 1, 0 );
- pageLayout->addWidget ( warnLab, 2, 0 );
- pageLayout->addWidget ( warnLab3, 3, 0 );
- pageLayout->addItem ( spacer2, 4, 0 );
- pageLayout->addMultiCellWidget( platBtnGrp, 0, 4, 1, 1 );
-
- // connecting signals
- connect( platBtnGrp, SIGNAL( clicked(int) ), this, SLOT ( onButtonGroup(int) ) );
-
- // adding page
- addPage( platformsPage, tr( "Installation platform" ) );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setupDirPage
- * Creates directories page
- */
-// ================================================================
-void SALOME_InstallWizard::setupDirPage()
-{
- // create page
- dirPage = new QWidget( this, "DirPage" );
- QGridLayout* pageLayout = new QGridLayout( dirPage );
- pageLayout->setMargin( 0 ); pageLayout->setSpacing( 6 );
- QSpacerItem* spacer1 = new QSpacerItem( 16, 50, QSizePolicy::Minimum, QSizePolicy::Expanding );
- QSpacerItem* spacer2 = new QSpacerItem( 16, 50, QSizePolicy::Minimum, QSizePolicy::Expanding );
- // target directory
- QGridLayout* targetLayout = new QGridLayout( 2, 2, 0 );
- QLabel* targetLab = new QLabel( tr( "Set a target directory to install SALOME platform:" ), dirPage );
- targetFolder = new QLineEdit( dirPage );
- targetBtn = new QPushButton( tr( "Browse..." ), dirPage );
- setAboutInfo( targetBtn, tr( "Click this button to browse\nthe installation directory" ) );
- targetLayout->addMultiCellWidget( targetLab, 0, 0, 0, 1 );
- targetLayout->addWidget ( targetFolder, 1, 0 );
- targetLayout->addWidget ( targetBtn, 1, 1 );
- // temporary directory
- QGridLayout* tempLayout = new QGridLayout( 2, 2, 0 );
- QLabel* tempLab = new QLabel( tr( "Set a directory that should be used for temporary SALOME files:" ), dirPage );
- tempFolder = new QLineEdit( dirPage );
- tempBtn = new QPushButton( tr( "Browse..." ), dirPage );
- setAboutInfo( tempBtn, tr( "Click this button to browse\nthe temporary directory" ) );
- tempLayout->addMultiCellWidget( tempLab, 0, 0, 0, 1 );
- tempLayout->addWidget ( tempFolder, 1, 0 );
- tempLayout->addWidget ( tempBtn, 1, 1 );
- // AKL: 13/08/07 - disable temporary directory setting in GUI ==>
- tempLab->hide();
- tempFolder->hide();
- tempBtn->hide();
- // AKL: 13/08/07 - disable temporary directory setting in GUI <==
- // layout widgets
- pageLayout->addItem ( spacer1, 0, 0 );
- pageLayout->addLayout( targetLayout, 1, 0 );
- pageLayout->addLayout( tempLayout, 2, 0 );
- pageLayout->addItem ( spacer2, 3, 0 );
- // connecting signals
- connect( targetFolder, SIGNAL( textChanged( const QString& ) ),
- this, SLOT( directoryChanged( const QString& ) ) );
- connect( targetBtn, SIGNAL( clicked() ),
- this, SLOT( browseDirectory() ) );
- connect( tempFolder, SIGNAL( textChanged( const QString& ) ),
- this, SLOT( directoryChanged( const QString& ) ) );
- connect( tempBtn, SIGNAL( clicked() ), this, SLOT( browseDirectory() ) );
-
- // adding page
- addPage( dirPage, tr( "Installation directory" ) );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setupProductsPage
- * Creates products page
- */
-// ================================================================
-void SALOME_InstallWizard::setupProductsPage()
-{
- // create page
- productsPage = new QWidget( this, "ProductsPage" );
- QGridLayout* pageLayout = new QGridLayout( productsPage );
- pageLayout->setMargin( 0 ); pageLayout->setSpacing( 6 );
- //
- // create left column widgets
- //
- QVBoxLayout* leftBoxLayout = new QVBoxLayout;
- leftBoxLayout->setMargin( 0 ); leftBoxLayout->setSpacing( 6 );
- // ... modules list
- modulesView = new ProductsView( productsPage, "modulesView" );
- setAboutInfo( modulesView, tr( "The modules available for the installation" ) );
- modulesView->setColumnAlignment( 1, Qt::AlignRight );
- leftBoxLayout->addWidget( modulesView );
- // ... 'Installation with GUI' checkbox
- installGuiBtn = new QMyCheckBox( tr( "Installation with GUI" ), productsPage );
- setAboutInfo( installGuiBtn, tr( "Check this option if you want\nto install SALOME with GUI" ) );
- leftBoxLayout->addWidget( installGuiBtn );
- // ... prerequisites list
- prereqsView = new ProductsView( productsPage, "prereqsView" );
- prereqsView->renameColumn( 0, "Prerequisite" );
- setAboutInfo( prereqsView, tr( "The prerequisites that can be installed" ) );
- prereqsView->setColumnAlignment( 1, Qt::AlignRight );
- leftBoxLayout->addWidget( prereqsView );
- // ... 'Show/Hide prerequisites' button
- moreBtn = new QPushButton( tr( "Show prerequisites..." ), productsPage );
- setAboutInfo( moreBtn, tr( "Click to show list of prerequisites" ) );
- leftBoxLayout->addWidget( moreBtn );
- //
- // create right column widgets
- //
- // ... info box
- productInfo = new QTextBrowser( productsPage );
- productInfo->setFrameShape( QFrame::LineEditPanel );
- productInfo->setPaletteBackgroundColor( productsPage->paletteBackgroundColor() );
- setAboutInfo( productInfo, tr( "Short information about the product being selected" ) );
- // ... disk space labels
- QLabel* reqLab1 = new QLabel( tr( "Disk space required:" ), productsPage );
- setAboutInfo( reqLab1, tr( "Total disk space required for the installation\nof the selected products" ) );
- requiredSize = new QLabel( productsPage );
- setAboutInfo( requiredSize, tr( "Total disk space required for the installation\nof the selected products" ) );
- requiredSize->setAlignment( Qt::AlignRight );
- QLabel* reqLab2 = new QLabel( tr( "Space for temporary files:" ), productsPage );
- setAboutInfo( reqLab2, tr( "Disk space required for the temporary files" ) );
- requiredTemp = new QLabel( productsPage );
- setAboutInfo( requiredTemp, tr( "Disk space required for the temporary files" ) );
- requiredTemp->setAlignment( Qt::AlignRight );
- QLabel* reqLab3 = new QLabel( tr( "Available disk space:" ), productsPage );
- setAboutInfo( reqLab3, tr( "Disk space available on the selected device" ) );
- availableSize = new QLabel( productsPage );
- setAboutInfo( availableSize, tr( "Disk space available on the selected device" ) );
- availableSize->setAlignment( Qt::AlignRight );
- // layout size widgets
- QGridLayout* sizeLayout = new QGridLayout; sizeLayout->setMargin( 0 ); sizeLayout->setSpacing( 6 );
- sizeLayout->addWidget( reqLab1, 0, 0 );
- sizeLayout->addWidget( requiredSize, 0, 1 );
- sizeLayout->addWidget( reqLab2, 1, 0 );
- sizeLayout->addWidget( requiredTemp, 1, 1 );
- sizeLayout->addWidget( reqLab3, 2, 0 );
- sizeLayout->addWidget( availableSize, 2, 1 );
- // ... 'single installation directory' check-boxes
- oneModDirBtn = new QMyCheckBox( tr( "Install modules to a single directory" ), productsPage );
- setAboutInfo( oneModDirBtn, tr( "Check this box if you want to install binaries of\nthe selected SALOME modules into a single directory" ) );
- oneProdDirBtn = new QMyCheckBox( tr( "Install prerequisites to a single directory" ), productsPage );
- setAboutInfo( oneProdDirBtn, tr( "Check this box if you want to install binaries of\nthe selected prerequisites into a single directory" ) );
- oneProdDirBtn->hide(); // temporarily! waiting for correct prerequisites availability
- QFrame* split_line = new QFrame( productsPage, "split_line" );
- split_line->setFrameStyle( QFrame::HLine | QFrame::Sunken );
-
- // layout common widgets
- pageLayout->addMultiCellLayout( leftBoxLayout, 0, 4, 0, 0 );
- pageLayout->addWidget ( productInfo, 0, 1 );
- pageLayout->addLayout ( sizeLayout, 1, 1 );
- pageLayout->addWidget ( split_line, 2, 1 );
- pageLayout->addWidget ( oneModDirBtn, 3, 1 );
- pageLayout->addWidget ( oneProdDirBtn, 4, 1 );
-
- // adding page
- addPage( productsPage, tr( "Choice of the products to be installed" ) );
-
- // connecting signals
- connect( modulesView, SIGNAL( selectionChanged() ),
- this, SLOT( onSelectionChanged() ) );
- connect( prereqsView, SIGNAL( selectionChanged() ),
- this, SLOT( onSelectionChanged() ) );
- connect( modulesView, SIGNAL( clicked ( QListViewItem * item ) ),
- this, SLOT( onSelectionChanged() ) );
- connect( prereqsView, SIGNAL( clicked ( QListViewItem * item ) ),
- this, SLOT( onSelectionChanged() ) );
- connect( modulesView, SIGNAL( itemToggled( QCheckListItem* ) ),
- this, SLOT( onItemToggled( QCheckListItem* ) ) );
- connect( prereqsView, SIGNAL( itemToggled( QCheckListItem* ) ),
- this, SLOT( onItemToggled( QCheckListItem* ) ) );
- connect( installGuiBtn, SIGNAL( toggled( bool ) ),
- this, SLOT( onInstallGuiBtn() ) );
- connect( moreBtn, SIGNAL( clicked() ), this, SLOT( onMoreBtn() ) );
- // start on default - non-advanced mode
- prereqsView->hide();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setupCheckPage
- * Creates prestart page
- */
-// ================================================================
-void SALOME_InstallWizard::setupCheckPage()
-{
- // create page
- prestartPage = new QWidget( this, "PrestartPage" );
- QVBoxLayout* pageLayout = new QVBoxLayout( prestartPage );
- pageLayout->setMargin( 0 ); pageLayout->setSpacing( 6 );
- // choice text view
- choices = new QTextEdit( prestartPage );
- choices->setReadOnly( true );
- choices->setTextFormat( RichText );
- choices->setUndoRedoEnabled ( false );
- setAboutInfo( choices, tr( "Information about the installation choice you have made" ) );
- choices->setPaletteBackgroundColor( prestartPage->paletteBackgroundColor() );
- choices->setMinimumHeight( 10 );
- // layouting
- pageLayout->addWidget( choices );
- pageLayout->setStretchFactor( choices, 5 );
- // adding page
- addPage( prestartPage, tr( "Check your choice" ) );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setupProgressPage
- * Creates progress page
- */
-// ================================================================
-void SALOME_InstallWizard::setupProgressPage()
-{
- // create page
- progressPage = new QWidget( this, "progressPage" );
- QGridLayout* pageLayout = new QGridLayout( progressPage );
- pageLayout->setMargin( 0 ); pageLayout->setSpacing( 6 );
- // top splitter
- splitter = new QSplitter( Vertical, progressPage );
- splitter->setOpaqueResize( true );
- // the parent for the widgets
- QWidget* widget = new QWidget( splitter );
- QGridLayout* layout = new QGridLayout( widget );
- layout->setMargin( 0 ); layout->setSpacing( 6 );
- // installation progress view box
- installInfo = new InstallInfo( widget );
- installInfo->setReadOnly( true );
- installInfo->setTextFormat( RichText );
- installInfo->setUndoRedoEnabled ( false );
- installInfo->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) );
- installInfo->setMinimumSize( 100, 10 );
- setAboutInfo( installInfo, tr( "Installation process output" ) );
- // parameters for the script
- parametersLab = new QLabel( tr( "Enter your answer here:" ), widget );
- passedParams = new QLineEdit ( widget );
- setAboutInfo( passedParams, tr( "Use this field to enter the answer\nfor the running script when it is necessary") );
- // VSR: 10/11/05 - disable answer mode ==>
- parametersLab->hide();
- passedParams->hide();
- // VSR: 10/11/05 - disable answer mode <==
- // layouting
- layout->addWidget( installInfo, 0, 0 );
- layout->addWidget( parametersLab, 1, 0 );
- layout->addWidget( passedParams, 2, 0 );
- layout->addRowSpacing( 3, 6 );
- // the parent for the widgets
- widget = new QWidget( splitter );
- layout = new QGridLayout( widget );
- layout->setMargin( 0 ); layout->setSpacing( 6 );
- // installation results view box
- QLabel* resultLab = new QLabel( tr( "Installation Status:" ), widget );
- progressView = new ProgressView( widget );
- progressView->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) );
- progressView->setMinimumSize( 100, 10 );
- statusLab = new QLabel( widget );
- statusLab->setFrameShape( QButtonGroup::LineEditPanel );
- setAboutInfo( progressView, tr( "Installation status on the selected products" ) );
- // layouting
- layout->addRowSpacing( 0, 6 );
- layout->addWidget( resultLab, 1, 0 );
- layout->addWidget( progressView, 2, 0 );
- layout->addWidget( statusLab, 3, 0 );
- // layouting
- pageLayout->addWidget( splitter, 0, 0 );
- // adding page
- addPage( progressPage, tr( "Installation progress" ) );
- // connect signals
- connect( passedParams, SIGNAL( returnPressed() ), this, SLOT( onReturnPressed() ) ) ;
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setupReadmePage
- * Creates readme page
- */
-// ================================================================
-void SALOME_InstallWizard::setupReadmePage()
-{
- // create page
- readmePage = new QWidget( this, "readmePage" );
- QVBoxLayout* pageLayout = new QVBoxLayout( readmePage );
- pageLayout->setMargin( 0 ); pageLayout->setSpacing( 6 );
- // README info text box
- readme = new QTextEdit( readmePage );
- readme->setReadOnly( true );
- readme->setTextFormat( PlainText );
- readme->setFont( QFont( "Fixed", 12 ) );
- readme->setUndoRedoEnabled ( false );
- setAboutInfo( readme, tr( "README information" ) );
- readme->setPaletteBackgroundColor( readmePage->paletteBackgroundColor() );
- readme->setMinimumHeight( 10 );
-
- pageLayout->addWidget( readme );
- pageLayout->setStretchFactor( readme, 5 );
-
- // Operation buttons
- QHBoxLayout* hLayout = new QHBoxLayout( -1, "finishButtons" );
- hLayout->setMargin( 0 ); hLayout->setSpacing( 6 );
- hLayout->addStretch();
- pageLayout->addLayout( hLayout );
-
- // loading README file
- QString readmeFile = QDir::currentDirPath() + "/README";
- QString text;
- if ( readFile( readmeFile, text ) )
- readme->setText( text );
- else
- readme->setText( tr( "README file has not been found" ) );
-
- // adding page
- addPage( readmePage, tr( "Finish installation" ) );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::showChoiceInfo
- * Displays choice info
- */
-// ================================================================
-void SALOME_InstallWizard::showChoiceInfo()
-{
- choices->clear();
-
- long totSize, tempSize;
- checkSize( &totSize, &tempSize );
- int nbProd = 0;
- QString text;
-
- text += tr( "Current Linux platform" )+ ": <b>" + (!curPlatform.isEmpty() ? curPlatform : QString( "Unknown" )) + "</b><br>";
- if ( !refPlatform.isEmpty() )
- text += tr( "Reference Linux platform" ) + ": <b>" + refPlatform + "</b><br>";
- text += "<br>";
-
- text += tr( "Target directory:" ) + " <b>" + QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) + "</b><br>";
- text += tr( "Temporary directory:" ) + " <b>" + QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + "</b><br>";
- text += "<br>";
-
- text += tr( "SALOME modules to be installed" ) + ":<ul>";
- QCheckListItem* item = (QCheckListItem*)( modulesView->firstChild() );
- while( item ) {
- if ( productsMap.contains( item ) ) {
- if ( item->isOn() ) {
- text += "<li><b>" + item->text() + "</b><br>";
- nbProd++;
- }
- }
- item = (QCheckListItem*)( item->nextSibling() );
- }
- if ( nbProd == 0 ) {
- text += "<li><b>" + tr( "none" ) + "</b><br>";
- }
- text += "</ul>";
- nbProd = 0;
- text += tr( "Prerequisites to be installed" ) + ":<ul>";
- item = (QCheckListItem*)( prereqsView->firstChild() );
- while( item ) {
- if ( productsMap.contains( item ) ) {
- if ( item->isOn() ) {
- text += "<li><b>" + item->text() + " " + productsMap[ item ].getVersion() + "</b><br>";
- nbProd++;
- }
- }
- item = (QCheckListItem*)( item->nextSibling() );
- }
- if ( nbProd == 0 ) {
- text += "<li><b>" + tr( "none" ) + "</b><br>";
- }
- text += "</ul>";
- text += tr( "Total disk space required:" ) + " <b>" + QString::number( totSize ) + " KB</b><br>" ;
- text += tr( "Space for temporary files required:" ) + " <b>" + QString::number( tempSize ) + " KB</b><br>" ;
- choices->setText( text );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::acceptData
- * Validates page when <Next> button is clicked
- */
-// ================================================================
-bool SALOME_InstallWizard::acceptData( const QString& pageTitle )
-{
- QString tmpstr;
- QWidget* aPage = InstallWizard::page( pageTitle );
- if ( aPage == typePage ) {
- // installation type page
- warnLab3->show();
- this->setAppropriate( platformsPage, false );
- if ( installType == Binaries ) { // 'Binary' installation type
- // check binaries directory
- QFileInfo fib( QDir::cleanDirPath( getBinPath() ) );
- if ( !fib.isDir() ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The directory %1 doesn't exist.\n"
- "This directory must contains another one directory with binary archives for current platform.").arg( fib.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- if ( platformsMap.find( curPlatform ) == platformsMap.end() ) {
- // Unknown platform case
- QString aMsg = warnMsg + tr( ".\nBy default the universal binary package will be installed." );
- aMsg += tr( "\nIf you want to select another one, please use the following list:" );
- warnLab->setText( aMsg );
- warnLab3->hide();
- this->setAppropriate( platformsPage, true );
- }
- else {
- // Supported platform case
- QFileInfo fibp( getPlatformBinPath( curPlatform ) );
- if ( !fibp.isDir() ) {
- warnLab->setText( tr( "Binaries are absent for current platform." ) );
- this->setAppropriate( platformsPage, true );
- }
- }
-
- // check sources directory
- QFileInfo fis( QDir::cleanDirPath( getSrcPath() ) );
- if ( !fis.isDir() )
- if ( QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The directory %1 doesn't exist.\n"
- "This directory must contains sources archives.\n"
- "Continue?" ).arg( fis.absFilePath() ),
- tr( "&Yes" ),
- tr( "&No" ),
- QString::null, 1, 1 ) == 1 )
- return false;
- }
- else { // 'Source' or 'Compile' installation type
- // check sources directory
- QFileInfo fis( QDir::cleanDirPath( getSrcPath() ) );
- if ( !fis.isDir() ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The directory %1 doesn't exist.\n"
- "This directory must contains sources archives.\n" ).arg( fis.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- else if ( !QDir( fis.filePath(), "*.tar.gz" ).count() ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The directory %1 doesn't contain source archives.\n" ).arg( fis.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- if ( platformsMap.find( curPlatform ) == platformsMap.end() ) {
- QString aMsg = warnMsg + ".";
- if ( installType == Compile )
- aMsg = warnMsg + tr( " and compilation is not tested on this one." );
- warnLab->setText( aMsg );
- this->setAppropriate( platformsPage, true );
- }
- }
- }
-
- else if ( aPage == platformsPage ) {
- // installation platform page
- if ( platBtnGrp->id( platBtnGrp->selected() ) == -1 ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "Select installation platform before" ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- else if ( installType == Binaries ) {
- QString aPlatform = platBtnGrp->selected()->name();
- QFileInfo fib( getPlatformBinPath( aPlatform ) );
- if ( !fib.isDir() ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The directory %1 doesn't exist.\n"
- "This directory must contains binary archives.\n" ).arg( fib.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- else if ( QDir( fib.filePath(), "*.tar.gz" ).count() == 0 ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The directory %1 doesn't contain binary archives.\n" ).arg( fib.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- }
- }
-
- else if ( aPage == dirPage ) {
- // installation directory page
- // ########## check target and temp directories (existence and available disk space)
- // get dirs
- QString targetDir = QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() );
- QString tempDir = QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() );
- // check target directory
- if ( targetDir.isEmpty() ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "Please, enter valid target directory path" ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- QFileInfo fi( QDir::cleanDirPath( targetDir ) );
- if ( !fi.isDir() ) {
- bool toCreate =
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The directory %1 doesn't exist.\n"
- "Create directory?" ).arg( fi.absFilePath() ),
- QMessageBox::Yes,
- QMessageBox::No,
- QMessageBox::NoButton ) == QMessageBox::Yes;
- if ( !toCreate)
- return false;
- if ( !makeDir( fi.absFilePath(), tmpstr ) ) {
- QMessageBox::critical( this,
- tr( "Error" ),
- tr( "Can't create the directory\n%1").arg( fi.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- }
- if ( !fi.isDir() ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "%1 is not a directory.\n"
- "Please, enter valid target directory path" ).arg( fi.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- if ( !fi.isWritable() ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The directory %1 is not writable.\n"
- "Please, enter valid target directory path or change permissions" ).arg( fi.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- if ( hasSpace( fi.absFilePath() ) &&
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The target directory contains space symbols.\n"
- "This may cause problems with compiling or installing of products.\n\n"
- "Do you want to continue?"),
- QMessageBox::Yes,
- QMessageBox::No,
- QMessageBox::NoButton ) == QMessageBox::No ) {
- return false;
- }
- // check temp directory
- if ( tempDir.isEmpty() ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "Please, enter valid temporary directory path" ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- QFileInfo fit( QDir::cleanDirPath( tempDir ) );
- if ( !makeDir( fit.absFilePath() + TEMPDIRNAME, tmpCreated ) ) {
- QMessageBox::critical( this,
- tr( "Error" ),
- tr( "Can't use temporary directory.\nCheck permissions for the %1 directory.").arg( fit.absFilePath() ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- }
-
- else if ( aPage == productsPage ) {
- // products page
- // ########## check if any products are selected to be installed
- long totSize, tempSize;
- bool anySelected = checkSize( &totSize, &tempSize );
- if ( installType == Compile && removeSrcBtn->isOn() ) {
- totSize += tempSize;
- }
- if ( !anySelected ) {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "Select one or more products to install" ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- // run script that checks available disk space for installing of products // returns 1 in case of error
- QFileInfo fi( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) );
- QString script = "./config_files/checkSize.sh '";
- script += fi.absFilePath();
- script += "' ";
- script += QString( "%1" ).arg( totSize );
- ___MESSAGE___( "script = " << script.latin1() );
- if ( system( script ) ) {
- QMessageBox::critical( this,
- tr( "Out of space" ),
- tr( "There is no available disk space for installing of selected products" ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- // AKL: 13/08/07 - skip tmp disk space checking (all files are unpacked into installation directory) ==>
- /*
- // run script that check available disk space for temporary files
- // returns 1 in case of error
- QFileInfo fit( QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) );
- QString tscript = "./config_files/checkSize.sh '";
- tscript += fit.absFilePath();
- tscript += "' ";
- tscript += QString( "%1" ).arg( tempSize );
- ___MESSAGE___( "script = " << tscript.latin1() );
- if ( system( tscript ) ) {
- QMessageBox::critical( this,
- tr( "Out of space" ),
- tr( "There is no available disk space for the temporary files" ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- */
- // AKL: 13/08/07 - skip tmp disk space checking (all files are unpacked into installation directory) <==
-
- // ########## check installation scripts
- QCheckListItem* item;
- ProductsView* prodsView = modulesView;
- for ( int i = 0; i < 2; i++ ) {
- item = (QCheckListItem*)( prodsView->firstChild() );
- while( item ) {
- if ( productsMap.contains( item ) && item->isOn() ) {
- // check installation script definition
- if ( item->text(2).isEmpty() || item->text(2).isNull() ) {
- QMessageBox::warning( this,
- tr( "Error" ),
- tr( "The installation script for %1 is not defined.").arg(item->text(0)),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- if ( !moreMode ) onMoreBtn();
- QListView* listView = item->listView();
- listView->setCurrentItem( item );
- listView->setSelected( item, true );
- listView->ensureItemVisible( item );
- return false;
- }
- // check installation script existence
- else {
- QFileInfo fi( QString("./config_files/") + item->text(2) );
- if ( !fi.exists() || !fi.isExecutable() ) {
- QMessageBox::warning( this,
- tr( "Error" ),
- tr( "The script %1 required for %2 doesn't exist or doesn't have execute permissions.").arg("./config_files/" + item->text(2)).arg(item->text(0)),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- if ( !moreMode ) onMoreBtn();
- QListView* listView = item->listView();
- listView->setCurrentItem( item );
- listView->setSelected( item, true );
- listView->ensureItemVisible( item );
- return false;
- }
- }
- // check installation scripts dependencies
- QStringList dependOn = productsMap[ item ].getDependancies();
- QString version = productsMap[ item ].getVersion();
- for ( int i = 0; i < (int)dependOn.count(); i++ ) {
- QCheckListItem* depitem = findItem( dependOn[ i ] );
- if ( !depitem ) {
- QMessageBox::warning( this,
- tr( "Error" ),
- tr( "%1 is required for %2 %3 installation.\n"
- "This product is missing in the configuration file %4.").arg(dependOn[ i ]).arg(item->text(0)).arg(version).arg(xmlFileName),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return false;
- }
- }
- }
- item = (QCheckListItem*)( item->nextSibling() );
- }
- prodsView = prereqsView;
- }
-// return true; // return in order to avoid default postValidateEvent() action
- }
- return InstallWizard::acceptData( pageTitle );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::checkSize
- * Calculates disk space required for the installation
- */
-// ================================================================
-bool SALOME_InstallWizard::checkSize( long* totSize, long* tempSize )
-{
- long tots = 0, temps = 0;
- long maxSrcTmp = 0;
- int nbSelected = 0;
-
- MapProducts::Iterator mapIter;
- for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter ) {
- QCheckListItem* item = mapIter.key();
- Dependancies dep = mapIter.data();
- if ( !item->isOn() )
- continue;
- tots += ( QStringList::split( " ", item->text(1) )[0] ).toLong();
- maxSrcTmp = max( maxSrcTmp, dep.getSize( Compile ) - dep.getSize( Binaries ) );
- temps += dep.getTempSize( installType );
- nbSelected++;
- }
-
- if ( totSize )
- if ( installType == Compile && removeSrcBtn->isOn() )
- temps += maxSrcTmp;
- *totSize = tots;
- if ( tempSize )
- *tempSize = temps;
- return ( nbSelected > 0 );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::updateAvailableSpace
- * Slot to update 'Available disk space' field
- */
-// ================================================================
-void SALOME_InstallWizard::updateAvailableSpace()
-{
- if ( diskSpaceProc->normalExit() )
- availableSize->setText( diskSpaceProc->readLineStdout() + " KB");
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::runModifyLaFiles
- * Run the modification of SALOME *.la files
- */
-// ================================================================
-void SALOME_InstallWizard::runModifyLaFiles()
-{
- modifyLaProc->clearArguments();
- // ... update status label
- statusLab->setText( tr( "Modification of *.la files of SALOME modules..." ) );
- // set process arguments
- modifyLaProc->setWorkingDirectory( QDir::cleanDirPath( QFileInfo( "./config_files/" ).absFilePath() ) );
- modifyLaProc->addArgument( "modifyLaFiles.sh" );
- modifyLaProc->addArgument( "modify_la_files" );
- modifyLaProc->addArgument( QDir::cleanDirPath( QFileInfo( targetFolder->text().stripWhiteSpace() ).absFilePath() ) );
- // ... run script
- if ( !modifyLaProc->start() )
- ___MESSAGE___( "Error: process could not start!" );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::checkModifyLaResult
- * Slot to take result of modification SALOME *.la files
- */
-// ================================================================
-void SALOME_InstallWizard::checkModifyLaResult()
-{
- if ( modifyLaProc->normalExit() && modifyLaProc->exitStatus() == 1 )
- runCheckFLib();
- else {
- // abort of the current installation
- abort();
- statusLab->setText( tr( "Installation has been aborted" ) );
- QMessageBox::critical( this,
- tr( "Error" ),
- tr( "Modification of *.la SALOME files has not been completed."),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- // enable <Next> button
- setNextEnabled( true );
- nextButton()->setText( tr( "&Start" ) );
- setAboutInfo( nextButton(), tr( "Start installation process" ) );
- // reconnect Next button - to use it as Start button
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- connect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- // enable <Back> button
- setBackEnabled( true );
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::runCheckFLib
- * Run the Fortran libraries checking
- */
-// ================================================================
-void SALOME_InstallWizard::runCheckFLib()
-{
- // Check Fortran libraries
- checkFLibProc->clearArguments();
- // ... update status label
- statusLab->setText( tr( "Check Fortran libraries..." ) );
- // ... search "not found" libraries
- checkFLibProc->setWorkingDirectory( QDir::cleanDirPath( QFileInfo( "./config_files/" ).absFilePath() ) );
- checkFLibProc->addArgument( "checkFortran.sh" );
- checkFLibProc->addArgument( "find_libraries" );
- checkFLibProc->addArgument( QDir::cleanDirPath( QFileInfo( targetFolder->text().stripWhiteSpace() ).absFilePath() ) );
- // ... run script
- if ( !checkFLibProc->start() )
- ___MESSAGE___( "Error: process could not start!" );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::checkFLibResult
- * Slot to take result of Fortran libraries checking
- */
-// ================================================================
-void SALOME_InstallWizard::checkFLibResult()
-{
- if ( checkFLibProc->normalExit() && checkFLibProc->exitStatus() == 1 ) {
- QStringList notFoundLibsList;
- QString record = "";
- while ( checkFLibProc->canReadLineStdout() ) {
- record = checkFLibProc->readLineStdout();
- if ( !record.isEmpty() && !notFoundLibsList.contains( record ) )
- notFoundLibsList.append( record );
- }
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "The following libraries are absent on current system:\n"
- "%1").arg( notFoundLibsList.join( "\n" ) ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- }
- // Update GUI and check installation errors
- completeInstallation();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::updateSizeColumn
- * Sets required size for each product according to
- * installation type and 'Remove SRC & TMP' checkbox state
- */
-// ================================================================
-void SALOME_InstallWizard::updateSizeColumn()
-{
- long prodSize = 0;
- bool removeSrc = removeSrcBtn->isChecked();
- MapProducts::Iterator mapIter;
- for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter ) {
- QCheckListItem* item = mapIter.key();
- Dependancies dep = mapIter.data();
- // get required size for current product
- long binSize = dep.getSize( Binaries );
- long srcSize = dep.getSize( Sources );
- long bldSize = dep.getSize( Compile );
- InstallationType instType = getInstType();
- if ( instType == Binaries ) {
- if ( dep.getType() == "component" )
- prodSize = binSize + srcSize;
- else
- prodSize = ( binSize != 0 ? binSize : srcSize );
- }
- else if ( instType == Sources )
- prodSize = srcSize;
- else
- if ( removeSrc )
- prodSize = ( binSize != 0 ? binSize : srcSize );
- else {
- prodSize = ( bldSize != 0 ? bldSize : srcSize );
- }
- // fill in 'Size' field
- item->setText( 1, QString::number( prodSize )+" KB" );
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::checkProductPage
- * Checks products page validity (directories and products selection) and
- * enabled/disables "Next" button for the Products page
- */
-// ================================================================
-void SALOME_InstallWizard::checkProductPage()
-{
- if ( this->currentPage() != productsPage )
- return;
- long tots = 0, temps = 0;
- // check if any product is selected;
- bool isAnyProductSelected = checkSize( &tots, &temps );
-
- // update required size information
- requiredSize->setText( QString::number( tots ) + " KB");
- requiredTemp->setText( QString::number( temps ) + " KB");
-
- // update available size information
- QFileInfo fi( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) );
- if ( fi.exists() ) {
- diskSpaceProc->clearArguments();
- QString script = "./config_files/diskSpace.sh";
- diskSpaceProc->addArgument( script );
- diskSpaceProc->addArgument( fi.absFilePath() );
- // run script
- diskSpaceProc->start();
- }
-
- // enable/disable "Next" button
- setNextEnabled( productsPage, isAnyProductSelected );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setPrerequisites
- * Sets the product and all products this one depends on to be checked ( recursively )
- */
-// ================================================================
-void SALOME_InstallWizard::setPrerequisites( QCheckListItem* item )
-{
- if ( !productsMap.contains( item ) )
- return;
- if ( !item->isOn() )
- return;
- // get all prerequisites
- QStringList dependOn = productsMap[ item ].getDependancies();
- // install SALOME without GUI case
- if ( installGuiBtn->state() != QButton::On &&
- woGuiModules.find( item->text(0) ) != woGuiModules.end() &&
- woGuiModules[item->text(0)] == True ) {
- dependOn.remove( "GUI" );
- }
- // setting prerequisites
- for ( int i = 0; i < (int)dependOn.count(); i++ ) {
- MapProducts::Iterator itProd;
- for ( itProd = productsMap.begin(); itProd != productsMap.end(); ++itProd ) {
- if ( itProd.data().getName() == dependOn[ i ] ) {
- if ( itProd.data().getType() == "component" && !itProd.key()->isOn() )
- itProd.key()->setOn( true );
- else if ( itProd.data().getType() == "prerequisite" ) {
- itProd.key()->setOn( true );
- itProd.key()->setEnabled( false );
- }
- break;
- }
- }
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::unsetPrerequisites
- * Unsets all modules which depend of the unchecked product ( recursively )
- */
-// ================================================================
-void SALOME_InstallWizard::unsetPrerequisites( QCheckListItem* item )
-{
- if ( !productsMap.contains( item ) )
- return;
- if ( item->isOn() )
- return;
-
-// uncheck dependent products
- QString itemName = productsMap[ item ].getName();
- MapProducts::Iterator itProd;
- for ( itProd = productsMap.begin(); itProd != productsMap.end(); ++itProd ) {
- if ( itProd.data().getType() == productsMap[ item ].getType() ) {
- QStringList dependOn = itProd.data().getDependancies();
- for ( int i = 0; i < (int)dependOn.count(); i++ ) {
- if ( dependOn[ i ] == itemName ) {
- if ( itProd.key()->isOn() ) {
- itProd.key()->setOn( false );
- }
- }
- }
- }
- }
-
-// uncheck prerequisites
- int nbDependents;
-// cout << "item name = " << productsMap[ item ].getName() << endl;
- QStringList dependOnList = productsMap[ item ].getDependancies();
- for ( int j = 0; j < (int)dependOnList.count(); j++ ) {
- nbDependents = 0;
- MapProducts::Iterator itProd1;
- for ( itProd1 = productsMap.begin(); itProd1 != productsMap.end(); ++itProd1 ) {
- if ( itProd1.data().getName() == dependOnList[ j ] ) {
- if ( itProd1.data().getType() == "prerequisite" ) {
- MapProducts::Iterator itProd2;
- for ( itProd2 = productsMap.begin(); itProd2 != productsMap.end(); ++itProd2 ) {
- if ( itProd2.key()->isOn() ) {
- QStringList prereqsList = productsMap[ itProd2.key() ].getDependancies();
- for ( int k = 0; k < (int)prereqsList.count(); k++ ) {
- if ( prereqsList[ k ] == itProd1.data().getName() ) {
- nbDependents++;
- break;
- }
- }
- }
- }
- if ( nbDependents == 0 ) {
- itProd1.key()->setEnabled( true );
- itProd1.key()->setOn( false );
- }
- }
- break;
- }
- }
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::launchScript
- * Runs installation script
- */
-// ================================================================
-void SALOME_InstallWizard::launchScript()
-{
- // try to find product being processed now
- QString prodProc = progressView->findStatus( Processing );
- if ( !prodProc.isNull() ) {
- ___MESSAGE___( "Found <Processing>: " );
-
- // if found - set status to "completed"
- progressView->setStatus( prodProc, Completed );
- // ... clear status label
- statusLab->clear();
- // ... and call this method again
- launchScript();
- return;
- }
- // else try to find next product which is not processed yet
- prodProc = progressView->findStatus( Waiting );
- if ( !prodProc.isNull() ) {
- ___MESSAGE___( "Found <Waiting>: " << prodProc.latin1() );
- // if found - set status to "processed" and run script
- progressView->setStatus( prodProc, Processing );
- progressView->ensureVisible( prodProc );
-
- QCheckListItem* item = 0;
- // fill in script parameters
- shellProcess->clearArguments();
- // ... script name
- shellProcess->setWorkingDirectory( QDir::cleanDirPath( QFileInfo( "./config_files/" ).absFilePath() ) );
- if ( !extraProducts.contains( prodProc ) ) {
- item = findItem( prodProc );
- shellProcess->addArgument( item->text(2) );
- }
- else
- shellProcess->addArgument( extraProducts[ prodProc ] );
-
- // ... get folder with binaries
- QString OS = getPlatform();
- if ( refPlatform.isEmpty() && platformsMap.find( curPlatform ) == platformsMap.end() )
- OS = commonPlatform;
- QString binDir = getPlatformBinPath( OS );
- // ... temp folder
- QString tmpFolder = QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME;
- //if( !tempFolder->isEnabled() )
- // tmpFolder = "/tmp";
-
- // ... not install : try to find preinstalled
- if ( notInstall.contains( prodProc ) || prodProc == "gcc" ) {
- shellProcess->addArgument( "try_preinstalled" );
- shellProcess->addArgument( QFileInfo( tmpFolder ).absFilePath() );
- shellProcess->addArgument( QDir::currentDirPath() + "/Products" );
- statusLab->setText( tr( "Collecting environment for '" ) + prodProc + "'..." );
- }
- // ... binaries ?
- else if ( installType == Binaries ) {
- shellProcess->addArgument( "install_binary" );
- shellProcess->addArgument( QFileInfo( tmpFolder ).absFilePath() );
- shellProcess->addArgument( binDir );
- statusLab->setText( tr( "Installing '" ) + prodProc + "'..." );
- }
- // ... sources or sources_and_compilation ?
- else {
- shellProcess->addArgument( installType == Sources ? "install_source" :
- "install_source_and_build" );
- shellProcess->addArgument( QFileInfo( tmpFolder ).absFilePath() );
- shellProcess->addArgument( QDir::cleanDirPath( getSrcPath() ) );
- statusLab->setText( tr( "Installing '" ) + prodProc + "'..." );
- }
- // ... target folder
- QString tgtFolder = QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() );
- shellProcess->addArgument( QFileInfo( tgtFolder ).absFilePath() );
- // ... list of all products
- QString depproducts = getAllProducts(productsMap);
- depproducts.prepend( QStringList( extraProducts.keys() ).join(" ") + " " );
- ___MESSAGE___( "Dependancies"<< depproducts.latin1() );
- shellProcess->addArgument( depproducts );
- // ... product name - currently installed product
- if ( !extraProducts.contains( prodProc ) )
- shellProcess->addArgument( item->text(0) );
- else
- shellProcess->addArgument( prodProc );
- // ... list of products being installed
- shellProcess->addArgument( prodSequence.join( " " ) );
- // ... sources directory
- shellProcess->addArgument( QDir::cleanDirPath( getSrcPath() ) );
- // ... remove sources and tmp files or not?
- if ( installType == Compile && removeSrcBtn->isOn() )
- shellProcess->addArgument( "TRUE" );
- else
- shellProcess->addArgument( "FALSE" );
- // ... binaries directory
- shellProcess->addArgument( binDir );
- // ... install SALOME with GUI or not?
- if ( woGuiModules.find( prodProc ) != woGuiModules.end() )
- ( installGuiBtn->state() != QButton::On && woGuiModules[ prodProc ] == True ) ?
- shellProcess->addArgument( "FALSE" ) :
- shellProcess->addArgument( "TRUE" );
- // ... single installation directory for SALOME modules, if this option was selected
- if ( oneModDirBtn->isChecked() ) {
- MapProducts::Iterator mapIter;
- for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter )
- if ( mapIter.data().getName() == prodProc && mapIter.data().getType() == "component" ) {
- shellProcess->addArgument( "TRUE" );
- break;
- }
- }
- // ... single installation directory for prerequisites, if this option was selected
- if ( oneProdDirBtn->isChecked() ) {
- if ( prodProc == "DebianLibsForSalome" )
- shellProcess->addArgument( oneProdDirName );
- else {
- MapProducts::Iterator mapIter;
- for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter )
- if ( mapIter.data().getName() == prodProc && mapIter.data().getType() == "prerequisite" ) {
- shellProcess->addArgument( oneProdDirName );
- break;
- }
- }
- }
-
- // run script
- if ( !shellProcess->start() ) {
- // error handling can be here
- ___MESSAGE___( "error" );
- }
- return;
- }
- ___MESSAGE___( "All products have been installed successfully" );
- // all products are installed successfully
- MapProducts::Iterator mapIter;
- ___MESSAGE___( "starting pick-up environment" );
- QString depproducts = QUOTE( getAllProducts(productsMap).prepend( QStringList( extraProducts.keys() ).join(" ") + " " ) );
- for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter ) {
- QCheckListItem* item = mapIter.key();
- Dependancies dep = mapIter.data();
- if ( item->isOn() && dep.pickUpEnvironment() ) {
- statusLab->setText( tr( "Pick-up products environment for " ) + dep.getName().latin1() + "..." );
- ___MESSAGE___( "... for " << dep.getName().latin1() );
- QString script;
- script += "cd " + QUOTE( QFileInfo( QDir::cleanDirPath( "./config_files/" ) ).absFilePath() ) + "; ";
- script += item->text(2) + " ";
- script += "pickup_env ";
- script += QUOTE( QFileInfo( QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME ).absFilePath() ) + " ";
- script += QUOTE( QFileInfo( QDir::cleanDirPath( QDir::currentDirPath() + "/Products" ) ).absFilePath() ) + " ";
- script += QUOTE( QFileInfo( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) ).absFilePath() ) + " ";
- script += depproducts + " ";
- script += item->text(0) + " ";
- script += QUOTE( prodSequence.join( " " ) );
- ___MESSAGE___( "... --> " << script.latin1() );
- if ( system( script.latin1() ) ) {
- ___MESSAGE___( "ERROR" );
- }
- }
- }
-
- if ( installType == Binaries ) {
- if ( oneModDirBtn->isChecked() )
- runModifyLaFiles();
- else
- runCheckFLib();
- }
- else {
- // Update GUI and check installation errors
- completeInstallation();
- }
-
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::completeInstallation
- * Update GUI and check installation errors
- */
-// ================================================================
-void SALOME_InstallWizard::completeInstallation()
-{
- // update status label
- statusLab->setText( tr( "Installation completed" ) );
- // <Next> button
- setNextEnabled( true );
- nextButton()->setText( tr( "&Next >" ) );
- setAboutInfo( nextButton(), tr( "Move to the next step of the installation procedure" ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- connect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- // <Back> button
- setBackEnabled( true );
- // script parameters
- passedParams->clear();
- passedParams->setEnabled( false );
- QFont f = parametersLab->font(); f.setBold( false ); parametersLab->setFont( f );
- installInfo->setFinished( true );
- if ( isMinimized() )
- showNormal();
- raise();
- if ( hasErrors ) {
- if ( QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "There were some errors and/or warnings during the installation.\n"
- "Do you want to save the installation log?" ),
- tr( "&Save" ),
- tr( "&Cancel" ),
- QString::null,
- 0,
- 1 ) == 0 )
- saveLog();
- }
- hasErrors = false;
-
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onInstallGuiBtn
- * <Installation with GUI> check-box slot
- */
-// ================================================================
-void SALOME_InstallWizard::onInstallGuiBtn()
-{
- MapProducts::Iterator itProd;
- for ( itProd = productsMap.begin(); itProd != productsMap.end(); ++itProd ) {
- if ( itProd.data().getType() == "component" ) {
- if ( installGuiBtn->state() == QButton::On ) {
- itProd.key()->setEnabled( true );
- itProd.key()->setOn( true );
- }
- else {
- QString itemName = itProd.data().getName();
- if ( woGuiModules.find( itemName ) == woGuiModules.end() ||
- woGuiModules[ itemName ] == False ) {
- itProd.key()->setOn( false );
- itProd.key()->setEnabled( false );
- }
- else
- itProd.key()->setOn( true );
- }
- }
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onMoreBtn
- * <More...> button slot
- */
-// ================================================================
-void SALOME_InstallWizard::onMoreBtn()
-{
- if ( moreMode ) {
- prereqsView->hide();
- moreBtn->setText( tr( "Show prerequisites..." ) );
- setAboutInfo( moreBtn, tr( "Show list of prerequisites" ) );
- }
- else {
- prereqsView->show();
- moreBtn->setText( tr( "Hide prerequisites" ) );
- setAboutInfo( moreBtn, tr( "Hide list of prerequisites" ) );
- }
- qApp->processEvents();
- moreMode = !moreMode;
- InstallWizard::layOut();
- qApp->processEvents();
- if ( !isMaximized() ) {
- qApp->processEvents();
- }
- checkProductPage();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onFinishButton
- * Operation buttons slot
- */
-// ================================================================
-void SALOME_InstallWizard::onFinishButton()
-{
- const QObject* btn = sender();
- ButtonList::Iterator it;
- for ( it = buttons.begin(); it != buttons.end(); ++it ) {
- if ( (*it).button() && (*it).button() == btn ) {
- QString script;
- script += "( cd " + QUOTE( QFileInfo( QDir::cleanDirPath( "./config_files/" ) ).absFilePath() ) + "; ";
- script += + (*it).script();
- script += " execute ";
- script += QUOTE( QFileInfo( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) ).absFilePath() ) + " ";
- script += QUOTE( QFileInfo( QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME ).absFilePath() ) + " ";
- script += " > /dev/null )";
- ___MESSAGE___( "script: " << script.latin1() );
- if ( (*it).script().isEmpty() || system( script.latin1() ) ) {
- QMessageBox::warning( this,
- tr( "Error" ),
- tr( "Can't perform action!"),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- }
- return;
- }
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onAbout
- * <About> button slot: shows <About> dialog box
- */
-// ================================================================
-void SALOME_InstallWizard::onAbout()
-{
- AboutDlg d( this );
- d.exec();
-}
-
-// ================================================================
-/*!
- * SALOME_InstallWizard::findItem
- * Searches product listview item with given symbolic name
- */
-// ================================================================
-QCheckListItem* SALOME_InstallWizard::findItem( const QString& sName )
-{
- MapProducts::Iterator mapIter;
- for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter ) {
- if ( mapIter.data().getName() == sName )
- return mapIter.key();
- }
- return 0;
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::abort
- * Sets progress state to Aborted
- */
-// ================================================================
-void SALOME_InstallWizard::abort()
-{
- QString prod = progressView->findStatus( Processing );
- while ( !prod.isNull() ) {
- progressView->setStatus( prod, Aborted );
- prod = progressView->findStatus( Processing );
- }
- prod = progressView->findStatus( Waiting );
- while ( !prod.isNull() ) {
- progressView->setStatus( prod, Aborted );
- prod = progressView->findStatus( Waiting );
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::reject
- * Reject slot, clears temporary directory and closes application
- */
-// ================================================================
-void SALOME_InstallWizard::reject()
-{
- ___MESSAGE___( "REJECTED" );
- if ( !exitConfirmed ) {
- if ( QMessageBox::information( this,
- tr( "Exit" ),
- tr( "Do you want to quit %1?" ).arg( getIWName() ),
- tr( "&Yes" ),
- tr( "&No" ),
- QString::null,
- 0,
- 1 ) == 1 ) {
- return;
- }
- exitConfirmed = true;
- }
- clean(true);
- InstallWizard::reject();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::accept
- * Accept slot, clears temporary directory and closes application
- */
-// ================================================================
-void SALOME_InstallWizard::accept()
-{
- ___MESSAGE___( "ACCEPTED" );
- clean(true);
- InstallWizard::accept();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::clean
- * Clears and (optionally) removes temporary directory
- */
-// ================================================================
-void SALOME_InstallWizard::clean(bool rmDir)
-{
- WarnDialog::showWarnDlg( 0, false );
- myThread->clearCommands();
- myWC.wakeAll();
- while ( myThread->running() );
- // first remove temporary files
- QString script = "cd ./config_files/; remove_tmp.sh '";
- script += tempFolder->text().stripWhiteSpace() + TEMPDIRNAME;
- script += "' ";
- script += QUOTE(getAllProducts(productsMap));
- script += " > /dev/null";
- ___MESSAGE___( "script = " << script.latin1() );
- if ( system( script.latin1() ) ) {
- }
- // then try to remove created temporary directory
- //script = "rm -rf " + QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME;
- if ( rmDir && !tmpCreated.isNull() ) {
- script = "rm -rf " + tmpCreated;
- script += " > /dev/null";
- if ( system( script.latin1() ) ) {
- }
- ___MESSAGE___( "script = " << script.latin1() );
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::pageChanged
- * Called when user moves from page to page
- */
-// ================================================================
-void SALOME_InstallWizard::pageChanged( const QString & mytitle)
-{
- nextButton()->setText( tr( "&Next >" ) );
- setAboutInfo( nextButton(), tr( "Move to the next step of the installation procedure" ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- connect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- cancelButton()->disconnect();
- connect( cancelButton(), SIGNAL( clicked()), this, SLOT( reject() ) );
-
- QWidget* aPage = InstallWizard::page( mytitle );
- if ( !aPage )
- return;
- updateCaption();
-
- if ( aPage == typePage ) {
- // installation type page
- if ( buttonGrp->id( buttonGrp->selected() ) == -1 )
- // set default installation type
- forceSrc ? srcCompileBtn->animateClick() : binBtn->animateClick();
- else
- buttonGrp->selected()->animateClick();
- }
- else if ( aPage == platformsPage ) {
- // installation platforms page
- MapXmlFiles::Iterator it;
- if ( previousPage == typePage ) {
- for ( it = platformsMap.begin(); it != platformsMap.end(); ++it ) {
- QString plat = it.key();
- QRadioButton* rb = ( (QRadioButton*) platBtnGrp->child( plat ) );
- if ( installType == Binaries ) {
- QFileInfo fib( getPlatformBinPath( plat ) );
- rb->setEnabled( true/*fib.isDir()*/ );
- if ( platBtnGrp->id( platBtnGrp->selected() ) == -1 && plat == getBasePlatform() )
- rb->animateClick();
- }
-// rb->setChecked( rb->isChecked() && rb->isEnabled() );
- if ( rb->isChecked() && rb->isEnabled() )
- rb->animateClick();
- }
- setNextEnabled( platformsPage, platBtnGrp->id( platBtnGrp->selected() ) != -1 );
- }
- }
- else if ( aPage == dirPage ) {
- // installation and temporary directories page
- if ( ( ( this->indexOf( platformsPage ) != -1 && this->appropriate( platformsPage ) ) ?
- previousPage == platformsPage : previousPage == typePage )
- && stateChanged ) {
- // clear global variables before reading XML file
- modulesView->clear();
- prereqsView->clear();
- productsMap.clear();
- // read XML file
- StructureParser* parser = new StructureParser( this );
- parser->setProductsLists( modulesView, prereqsView );
- if ( targetFolder->text().isEmpty() )
- parser->setTargetDir( targetFolder );
- if ( tempFolder->text().isEmpty() )
- parser->setTempDir( tempFolder );
- parser->readXmlFile( xmlFileName );
- // create a map of SALOME modules names, that can support installation without GUI mode
- if ( woGuiModules.isEmpty() ) {
- MapProducts::Iterator mapIter;
- for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); mapIter++ ) {
- Dependancies dep = mapIter.data();
- if ( dep.getType() == "component" && dep.supportWoGuiMode() != NotDefined )
- woGuiModules[ dep.getName() ] = dep.supportWoGuiMode();
- }
- }
-
- // update required size for each product
- updateSizeColumn();
- // take into account command line parameters
- if ( !myTargetPath.isEmpty() )
- targetFolder->setText( myTargetPath );
- if ( !myTmpPath.isEmpty() )
- tempFolder->setText( myTmpPath );
- // set all modules to be checked and first module to be selected
- installGuiBtn->setState( QButton::Off );
- installGuiBtn->setState( QButton::On );
- if ( modulesView->childCount() > 0 && !modulesView->selectedItem() )
- modulesView->setSelected( modulesView->firstChild(), true );
- stateChanged = false;
- }
- else if ( rmSrcPrevState != removeSrcBtn->isChecked() ) {
- // only update required size for each product
- updateSizeColumn();
- rmSrcPrevState = removeSrcBtn->isChecked();
- }
- // add extra products to install list
- extraProducts.clear();
- extraProducts.insert( "gcc", "gcc-common.sh" );
- if ( refPlatform == commonPlatform && installType == Binaries )
- extraProducts.insert( "DebianLibsForSalome", "DEBIANFORSALOME-3.1.sh" );
- }
- else if ( aPage == productsPage ) {
- // products page
- onSelectionChanged();
- checkProductPage();
- }
- else if ( aPage == prestartPage ) {
- // prestart page
- showChoiceInfo();
- }
- else if ( aPage == progressPage ) {
- if ( previousPage == prestartPage ) {
- // progress page
- statusLab->clear();
- progressView->clear();
- installInfo->clear();
- installInfo->setFinished( false );
- passedParams->clear();
- passedParams->setEnabled( false );
- QFont f = parametersLab->font(); f.setBold( false ); parametersLab->setFont( f );
- nextButton()->setText( tr( "&Start" ) );
- setAboutInfo( nextButton(), tr( "Start installation process" ) );
- // reconnect Next button - to use it as Start button
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- connect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- setNextEnabled( true );
- // reconnect Cancel button to terminate process
- cancelButton()->disconnect();
- connect( cancelButton(), SIGNAL( clicked() ), this, SLOT( tryTerminate() ) );
- }
- }
- else if ( aPage == readmePage ) {
- ButtonList::Iterator it;
- for ( it = buttons.begin(); it != buttons.end(); ++it ) {
- if ( (*it).button() ) {
- QString script;
- script += "( cd " + QUOTE( QFileInfo( QDir::cleanDirPath( "./config_files/" ) ).absFilePath() ) + "; ";
- script += + (*it).script();
- script += " check_enabled ";
- script += QUOTE( QFileInfo( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) ).absFilePath() ) + " ";
- script += QUOTE( QFileInfo( QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME ).absFilePath() ) + " ";
- script += " > /dev/null )";
- ___MESSAGE___( "script: " << script.latin1() );
- (*it).button()->setEnabled( !(*it).script().isEmpty() && !system( script.latin1() ) );
- }
- }
- finishButton()->setEnabled( true );
- }
- previousPage = aPage;
- ___MESSAGE___( "previousPage = " << previousPage );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onButtonGroup
- * Called when user selected either installation type or installation platform
- */
-// ================================================================
-void SALOME_InstallWizard::onButtonGroup( int rbIndex )
-{
- int prevType = installType;
- QString prevPlat = getPlatform();
- QWidget* aPage = InstallWizard::currentPage();
- if ( aPage == typePage ) {
- installType = InstallationType( rbIndex );
- // management of the <Remove source and tmp files> check-box
- removeSrcBtn->setEnabled( installType == Compile );
- oneModDirBtn->setEnabled( installType == Binaries /*|| installType == Compile*/ );
- oneProdDirBtn->setEnabled( installType == Binaries || installType == Compile );
- refPlatform = "";
- xmlFileName = getXmlFile( curPlatform );
- }
- else if ( aPage == platformsPage ) {
- refPlatform = platBtnGrp->find( rbIndex )->name();
- xmlFileName = getXmlFile( refPlatform );
- setNextEnabled( platformsPage, true );
- }
- if ( prevType != installType ||
- ( indexOf( platformsPage ) != -1 ? prevPlat != getPlatform() : false ) ) {
- stateChanged = true;
- oneModDirBtn->setChecked( installType == Binaries && singleDir );
- oneProdDirBtn->setChecked( false );
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::helpClicked
- * Shows help window
- */
-// ================================================================
-void SALOME_InstallWizard::helpClicked()
-{
- if ( helpWindow == NULL ) {
- helpWindow = HelpWindow::openHelp( this );
- if ( helpWindow ) {
- helpWindow->show();
- helpWindow->installEventFilter( this );
- }
- else {
- QMessageBox::warning( this,
- tr( "Help file not found" ),
- tr( "Sorry, help is unavailable" ) );
- }
- }
- else {
- helpWindow->raise();
- helpWindow->setActiveWindow();
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::browseDirectory
- * Shows directory selection dialog
- */
-// ================================================================
-void SALOME_InstallWizard::browseDirectory()
-{
- const QObject* theSender = sender();
- QLineEdit* theFolder;
- if ( theSender == targetBtn )
- theFolder = targetFolder;
- else if (theSender == tempBtn)
- theFolder = tempFolder;
- else
- return;
- QString typedDir = QFileDialog::getExistingDirectory( QDir::cleanDirPath( theFolder->text().stripWhiteSpace() ), this );
- if ( !typedDir.isNull() ) {
- theFolder->setText( typedDir );
- theFolder->end( false );
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::directoryChanged
- * Called when directory path (target or temp) is changed
- */
-// ================================================================
-void SALOME_InstallWizard::directoryChanged( const QString& /*text*/ )
-{
- checkProductPage();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onStart
- * <Start> button's slot - runs installation
- */
-// ================================================================
-void SALOME_InstallWizard::onStart()
-{
- if ( nextButton()->text() == tr( "&Stop" ) ) {
- statusLab->setText( tr( "Aborting installation..." ) );
- shellProcess->kill();
- modifyLaProc->kill();
- while( shellProcess->isRunning() );
- statusLab->setText( tr( "Installation has been aborted by user" ) );
- return;
- }
-
- hasErrors = false;
- progressView->clear();
- installInfo->clear();
- installInfo->setFinished( false );
- passedParams->clear();
- passedParams->setEnabled( false );
- QFont f = parametersLab->font(); f.setBold( false ); parametersLab->setFont( f );
-
- // update status label
- statusLab->setText( tr( "Preparing for installation..." ) );
- // clear lists of products
- toInstall.clear();
- notInstall.clear();
- toInstall += extraProducts.keys();
- // ... and fill it for new process
- QCheckListItem* item = (QCheckListItem*)( prereqsView->firstChild() );
- while( item ) {
- if ( productsMap.contains( item ) ) {
- if ( item->isOn() )
- toInstall.append( productsMap[item].getName() );
- else
- notInstall.append( productsMap[item].getName() );
- }
- item = (QCheckListItem*)( item->nextSibling() );
- }
- item = (QCheckListItem*)( modulesView->firstChild() );
- while( item ) {
- if ( productsMap.contains( item ) ) {
- if ( item->isOn() )
- toInstall.append( productsMap[item].getName() );
- else
- notInstall.append( productsMap[item].getName() );
- }
- item = (QCheckListItem*)( item->nextSibling() );
- }
- // if something at all is selected
- if ( (int)toInstall.count() > 1 ) {
-
- if ( installType == Compile ) {
- // update status label
- statusLab->setText( tr( "Check Fortran compiler..." ) );
- // check Fortran compiler.
- QString script = "./config_files/checkFortran.sh find_compilers";
- script += " " + QUOTE( QFileInfo( QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME ).absFilePath() );
- ___MESSAGE___( "script = " << script.latin1() );
- if ( system( script ) ) {
- QMessageBox::critical( this,
- tr( "Error" ),
- tr( "Fortran compiler was not found at current system!\n"
- "Installation can not be continued!"),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- // installation aborted
- abort();
- statusLab->setText( tr( "Installation has been aborted" ) );
- // enable <Next> button
- setNextEnabled( true );
- nextButton()->setText( tr( "&Start" ) );
- setAboutInfo( nextButton(), tr( "Start installation process" ) );
- // reconnect Next button - to use it as Start button
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- connect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- // enable <Back> button
- setBackEnabled( true );
- return;
- }
- }
-
- // update status label
- statusLab->setText( tr( "Preparing for installation..." ) );
-
- clean(false); // VSR 07/02/05 - bug fix: first we should clear temporary directory
- // disable <Next> button
- //setNextEnabled( false );
- nextButton()->setText( tr( "&Stop" ) );
- setAboutInfo( nextButton(), tr( "Abort installation process" ) );
- // disable <Back> button
- setBackEnabled( false );
- // enable script parameters line edit
- // VSR commented: 18/09/03: passedParams->setEnabled( true );
- // VSR commented: 18/09/03: passedParams->setFocus();
- ProgressViewItem* progressItem;
- // set status for installed products
- for ( int i = 0; i < (int)toInstall.count(); i++ ) {
- if ( !extraProducts.contains( toInstall[i] ) ) {
- item = findItem( toInstall[i] );
- progressView->addProduct( item->text(0), item->text(2) );
- continue;
- }
- progressItem = progressView->addProduct( toInstall[i], extraProducts[toInstall[i]] );
- progressItem->setVisible( false );
- }
- // set status for not installed products
- for ( int i = 0; i < (int)notInstall.count(); i++ ) {
- item = findItem( notInstall[i] );
- progressItem = progressView->addProduct( item->text(0), item->text(2) );
- progressItem->setVisible( false );
- }
- // get specified list of products being installed
- prodSequence.clear();
- for (int i = 0; i<(int)toInstall.count(); i++ ) {
- if ( extraProducts.contains( toInstall[i] ) ) {
- prodSequence.append( toInstall[i] );
- continue;
- }
- if ( installType == Binaries ) {
- prodSequence.append( toInstall[i] );
- QString prodType;
- MapProducts::Iterator mapIter;
- for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter ) {
- if ( mapIter.data().getName() == toInstall[i] && mapIter.data().getType() == "component" ) {
- prodSequence.append( toInstall[i] + "_src" );
- break;
- }
- }
- }
- else if ( installType == Sources )
- prodSequence.append( toInstall[i] + "_src" );
- else {
- prodSequence.append( toInstall[i] );
- prodSequence.append( toInstall[i] + "_src" );
- }
- }
-
- // create a backup of 'env_build.csh', 'env_build.sh', 'env_products.csh', 'env_products.sh'
- // ( backup of 'salome.csh' and 'salome.sh' is made if pick-up environment is called )
- QString script = "./config_files/backupEnv.sh ";
- script += QUOTE( QFileInfo( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) ).absFilePath() );
- ___MESSAGE___( "script = " << script.latin1() );
- if ( system( script ) ) {
- if ( QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "Backup environment files have not been created.\n"
- "Do you want to continue an installation process?" ),
- tr( "&Yes" ),
- tr( "&No" ),
- QString::null, 0, 1 ) == 1 ) {
- // installation aborted
- abort();
- statusLab->setText( tr( "Installation has been aborted by user" ) );
- // enable <Next> button
- setNextEnabled( true );
- nextButton()->setText( tr( "&Start" ) );
- setAboutInfo( nextButton(), tr( "Start installation process" ) );
- // reconnect Next button - to use it as Start button
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- connect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- // enable <Back> button
- setBackEnabled( true );
- return;
- }
- }
-
- // launch install script
- launchScript();
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onReturnPressed
- * Called when users tries to pass parameters for the script
- */
-// ================================================================
-void SALOME_InstallWizard::onReturnPressed()
-{
- QString txt = passedParams->text();
- installInfo->append( txt );
- txt += "\n";
- shellProcess->writeToStdin( txt );
- passedParams->clear();
- progressView->setFocus();
- passedParams->setEnabled( false );
- QFont f = parametersLab->font(); f.setBold( false ); parametersLab->setFont( f );
-}
-/*!
- Callback function - as response for the script finishing
-*/
-void SALOME_InstallWizard::productInstalled()
-{
- ___MESSAGE___( "process exited" );
- if ( shellProcess->normalExit() ) {
- ___MESSAGE___( "...normal exit" );
- // normal exit - try to proceed installation further
- launchScript();
- }
- else {
- ___MESSAGE___( "...abnormal exit" );
- statusLab->setText( tr( "Installation has been aborted" ) );
- // installation aborted
- abort();
- // clear script passed parameters lineedit
- passedParams->clear();
- passedParams->setEnabled( false );
- QFont f = parametersLab->font(); f.setBold( false ); parametersLab->setFont( f );
- installInfo->setFinished( true );
- // enable <Next> button
- setNextEnabled( true );
- nextButton()->setText( tr( "&Start" ) );
- setAboutInfo( nextButton(), tr( "Start installation process" ) );
- // reconnect Next button - to use it as Start button
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- disconnect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- connect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- //nextButton()->setText( tr( "&Next >" ) );
- //setAboutInfo( nextButton(), tr( "Move to the next step of the installation procedure" ) );
- //disconnect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- //disconnect( this, SIGNAL( nextClicked() ), this, SLOT( onStart() ) );
- //connect( this, SIGNAL( nextClicked() ), this, SLOT( next() ) );
- // enable <Back> button
- setBackEnabled( true );
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::tryTerminate
- * Slot, called when <Cancel> button is clicked during installation script running
- */
-// ================================================================
-void SALOME_InstallWizard::tryTerminate()
-{
- if ( shellProcess->isRunning() ) {
- if ( QMessageBox::information( this,
- tr( "Exit" ),
- tr( "Do you want to quit %1?" ).arg( getIWName() ),
- tr( "&Yes" ),
- tr( "&No" ),
- QString::null,
- 0,
- 1 ) == 1 ) {
- return;
- }
- exitConfirmed = true;
- // if process still running try to terminate it first
- shellProcess->tryTerminate();
- abort();
- //QTimer::singleShot( 3000, this, SLOT( onCancel() ) );
- connect( shellProcess, SIGNAL( processExited() ), this, SLOT( onCancel() ) );
- }
- else {
- // else just quit install wizard
- reject();
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onCancel
- * Kills installation process and quits application
- */
-// ================================================================
-void SALOME_InstallWizard::onCancel()
-{
- shellProcess->kill();
- modifyLaProc->kill();
- checkFLibProc->kill();
- reject();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onSelectionChanged
- * Called when selection is changed in the products list view
- * to fill in the 'Information about product' text box
- */
-// ================================================================
-void SALOME_InstallWizard::onSelectionChanged()
-{
- const QObject* snd = sender();
- QListViewItem* item = modulesView->selectedItem();
- if ( snd == prereqsView )
- item = prereqsView->selectedItem();
- if ( !item )
- return;
- productInfo->clear();
- QCheckListItem* anItem = (QCheckListItem*)item;
- if ( !productsMap.contains( anItem ) )
- return;
- Dependancies dep = productsMap[ anItem ];
- QString text = "<b>" + anItem->text(0) + "</b>" + "<br>";
- if ( !dep.getVersion().isEmpty() )
- text += tr( "Version" ) + ": " + dep.getVersion() + "<br>";
- text += "<br>";
- if ( !dep.getDescription().isEmpty() ) {
- text += "<i>" + dep.getDescription() + "</i><br><br>";
- }
- /* AKL: 07/08/28 - hide required disk space for tmp files for each product ==>
- long tempSize = 0;
- tempSize = dep.getTempSize( installType );
- text += tr( "Disk space for tmp files required" ) + ": " + QString::number( tempSize ) + " KB<br>";
- AKL: 07/08/28 - hide required disk space for tmp files for each product <==
- */
- text += tr( "Disk space required" ) + ": " + item->text(1) + "<br>";
- text += "<br>";
- QString req = ( dep.getDependancies().count() > 0 ? dep.getDependancies().join(", ") : tr( "none" ) );
- text += tr( "Prerequisites" ) + ": " + req;
- productInfo->setText( text );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::onItemToggled
- * Called when user checks/unchecks any product item
- * Recursively sets all prerequisites and updates "Next" button state
- */
-// ================================================================
-void SALOME_InstallWizard::onItemToggled( QCheckListItem* item )
-{
- if ( productsMap.contains( item ) ) {
- if ( item->isOn() )
- setPrerequisites( item );
- else
- unsetPrerequisites( item );
- }
- onSelectionChanged();
- checkProductPage();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::wroteToStdin
- * QProcess slot: -->something was written to stdin
- */
-// ================================================================
-void SALOME_InstallWizard::wroteToStdin( )
-{
- ___MESSAGE___( "Something was sent to stdin" );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::readFromStdout
- * QProcess slot: -->something was written to stdout
- */
-// ================================================================
-void SALOME_InstallWizard::readFromStdout( )
-{
- ___MESSAGE___( "Something was sent to stdout" );
- QProcess* theProcess = ( QProcess* )sender();
- while ( theProcess->canReadLineStdout() ) {
- installInfo->append( QString( theProcess->readLineStdout() ) );
- installInfo->scrollToBottom();
- }
- QString str( theProcess->readStdout() );
- if ( !str.isEmpty() ) {
- installInfo->append( str );
- installInfo->scrollToBottom();
- }
-}
-
-#define OUTLINE_TEXT(x) QString( "<font color=#FF0000><b>" ) + QString( x ) + QString( "</b></font>" )
-
-// ================================================================
-/*!
- * SALOME_InstallWizard::readFromStderr
- * QProcess slot: -->something was written to stderr
- */
-// ================================================================
-void SALOME_InstallWizard::readFromStderr( )
-{
- ___MESSAGE___( "Something was sent to stderr" );
- QProcess* theProcess = ( QProcess* )sender();
- while ( theProcess->canReadLineStderr() ) {
- installInfo->append( OUTLINE_TEXT( QString( theProcess->readLineStderr() ) ) );
- installInfo->scrollToBottom();
- hasErrors = true;
- }
- QString str( theProcess->readStderr() );
- if ( !str.isEmpty() ) {
- installInfo->append( OUTLINE_TEXT( str ) );
- installInfo->scrollToBottom();
- hasErrors = true;
- }
- // VSR: 10/11/05 - disable answer mode ==>
- // passedParams->setEnabled( true );
- // passedParams->setFocus();
- // QFont f = parametersLab->font(); f.setBold( true ); parametersLab->setFont( f );
- // VSR: 10/11/05 - disable answer mode <==
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::setDependancies
- * Sets dependancies for the product item
- */
-// ================================================================
-void SALOME_InstallWizard::setDependancies( QCheckListItem* item, Dependancies dep)
-{
- productsMap[item] = dep;
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::addFinishButton
- * Add button for the <Finish> page.
- * Clear list of buttons if <toClear> flag is true.
- */
-// ================================================================
-void SALOME_InstallWizard::addFinishButton( const QString& label,
- const QString& tooltip,
- const QString& script,
- bool toClear )
-{
- ButtonList btns;
- if ( toClear ) {
- btns = buttons;
- buttons.clear();
- }
- buttons.append( Button( label, tooltip, script ) );
- // create finish buttons
- QButton* b = new QPushButton( tr( buttons.last().label() ), readmePage );
- if ( !buttons.last().tootip().isEmpty() )
- setAboutInfo( b, tr( buttons.last().tootip() ) );
- QHBoxLayout* hLayout = (QHBoxLayout*)readmePage->layout()->child("finishButtons");
- if ( toClear ) {
- // remove previous buttons
- ButtonList::Iterator it;
- for ( it = btns.begin(); it != btns.end(); ++it ) {
- hLayout->removeChild( (*it).button() );
- delete (*it).button();
- }
- }
- // add buttons to finish page
- hLayout->insertWidget( buttons.count()-1, b );
- buttons.last().setButton( b );
- connect( b, SIGNAL( clicked() ), this, SLOT( onFinishButton() ) );
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::polish
- * Polishing of the widget - to set right initial size
- */
-// ================================================================
-void SALOME_InstallWizard::polish()
-{
- resize( 0, 0 );
- InstallWizard::polish();
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::saveLog
- * Save installation log to file
- */
-// ================================================================
-void SALOME_InstallWizard::saveLog()
-{
- QString txt = installInfo->text();
- if ( txt.length() <= 0 )
- return;
- QDateTime dt = QDateTime::currentDateTime();
- QString fileName = dt.toString("ddMMyy-hhmm");
- fileName.prepend("install-"); fileName.append(".html");
- fileName = QFileInfo( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ), fileName ).absFilePath();
- fileName = QFileDialog::getSaveFileName( fileName,
- QString( "HTML files (*.htm *.html)" ),
- this, 0,
- tr( "Save Log file" ) );
- if ( !fileName.isEmpty() ) {
- QFile f( fileName );
- if ( f.open( IO_WriteOnly ) ) {
- QTextStream stream( &f );
- stream << txt;
- f.close();
- }
- else {
- QMessageBox::critical( this,
- tr( "Error" ),
- tr( "Can't save file %1.\nCheck path and permissions.").arg( fileName ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- }
- }
-}
-// ================================================================
-/*!
- * SALOME_InstallWizard::updateCaption
- * Updates caption according to the current page number
- */
-// ================================================================
-void SALOME_InstallWizard::updateCaption()
-{
- QWidget* aPage = InstallWizard::currentPage();
- if ( !aPage )
- return;
- InstallWizard::setCaption( tr( myCaption ) + " " +
- 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;
- }
- myMutex.lock();
- myMutex.unlock();
- if ( val > 0 ) {
- }
- if ( myThread->hasCommands() )
- myWC.wakeAll();
- else {
- WarnDialog::showWarnDlg( 0, false );
- InstallWizard::processValidateEvent( val, data );
- }
-}
+++ /dev/null
-// File : SALOME_InstallWizard.hxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#ifndef __SALOME_InstallWizard
-#define __SALOME_InstallWizard
-
-#include "InstallWizard.h"
-
-#include <qmap.h>
-#include <qvaluelist.h>
-#include <qstringlist.h>
-
-class QLineEdit;
-class QPushButton;
-class QListViewItem;
-class QCheckListItem;
-class QLabel;
-class QTextEdit;
-class QTextBrowser;
-class QProcess;
-class QCheckBox;
-class QSplitter;
-class QMyCheckBox;
-class ProcessThread;
-class ProductsView;
-class ProgressView;
-class HelpWindow;
-class InstallInfo;
-class QButton;
-class QRadioButton;
-class QButtonGroup;
-
-// This enum describes the possible types of the SALOME installation
-enum InstallationType { Binaries, Sources, Compile };
-// This enum describes the possible states of a tristate parameter
-enum BoolTristate { False, True, NotDefined };
-
-/*!
- Class Dependancies : Products info
- This class stores all product dependancies for correct work of installation procedure
-*/
-class Dependancies
-{
- public:
- // default constructor, necessary for map
- Dependancies() {}
- // constructor
- Dependancies( const QString& name,
- const QStringList& depend,
- const long Binsize,
- const long Sourcessize,
- const long SrcBuildsize,
- const long tempsize,
- const QString& vers = QString::null,
- const QString& descr = QString::null,
- const QString& tp = QString::null,
- bool pickup = false,
- BoolTristate woGui = NotDefined )
- : smbName( name ),
- dependsOn( depend ),
- sizeBinaryTotal( Binsize ),
- sizeSourcesTotal( Sourcessize ),
- sizeSrcBuildTotal( SrcBuildsize ),
- sizeTemp( tempsize ),
- version( vers ),
- description( descr ),
- type( tp ),
- pickupEnv( pickup ),
- woGuiMode( woGui ) {}
-
- // gets symbolic name
- QString getName() const { return smbName; }
- // gets dependancies
- QStringList getDependancies() const { return dependsOn; }
- // gets disk space required
- long getSize( InstallationType instType ) const
- {
- return instType == Binaries ? sizeBinaryTotal :
- instType == Sources ? sizeSourcesTotal :
- sizeSrcBuildTotal;
- }
- // gets temporary disk space required
- long getTempSize( InstallationType instType ) const
- {
- return ( instType == Binaries ? 0 : instType == Sources ? 0 : sizeTemp );
- }
- // gets product's version
- QString getVersion() const { return version; }
- // gets product's description
- QString getDescription() const { return description; }
- // gets product's type
- QString getType() const { return type; }
- // returns true if this product needs to pick-up environment
- bool pickUpEnvironment() { return pickupEnv; }
- // returns true if this product supports installation without GUI mode
- BoolTristate supportWoGuiMode() { return woGuiMode; }
-
- private:
- QString smbName; // symbolic name
- QStringList dependsOn; // prerequisites list
- long sizeBinaryTotal; // disk space for binaries required
- long sizeSourcesTotal; // disk space for sources required
- long sizeSrcBuildTotal; // disk space for compiled sources required
- long sizeTemp; // disk space for temporary files required
- QString version; // product's version
- QString description; // product's description
- QString type; // product's type (salome sources, binaries or prerequisite)
- bool pickupEnv; // "Pick-up environment" flag
- BoolTristate woGuiMode; // support of installation without GUI flag
-};
-
-/*!
- Class Button : Operation button info
- This class stores information about the custom operation buttons which appear on
- the <Finish> page of the Install Wizard.
-*/
-class Button
-{
- public:
- // default constructor, required for list
- Button() : myButton( 0 ) {}
- // constructor
- Button( const QString& label, const QString& tooltip, const QString& script )
- : myLabel( label ), myTootip( tooltip ), myScript( script ), myButton( 0 ) {}
-
- // set operation button
- void setButton( QButton* btn ) { myButton = btn; }
-
- // get label
- QString label() const { return myLabel; }
- // get tooltip
- QString tootip() const { return myTootip; }
- // get script name
- QString script() const { return myScript; }
- // get operation button
- QButton* button() const { return myButton; }
-
- private:
- QString myLabel; // button label
- QString myTootip; // button tooltip
- QString myScript; // operation script
- QButton* myButton; // operation button
-};
-
-typedef QMap<QCheckListItem*, Dependancies> MapProducts;
-typedef QValueList<Button> ButtonList;
-typedef QMap<QString, QString> MapXmlFiles;
-typedef QMap<QString, BoolTristate> MapAttrStates;
-
-/*!
- Class SALOME_InstallWizard : Installation Wizard's main window
-*/
-class SALOME_InstallWizard: public InstallWizard
-{
- Q_OBJECT
-
- public:
- // constructor
- SALOME_InstallWizard( const QString& aXmlFileName = QString::null,
- const QString& aTargetDir = QString::null,
- const QString& aTmpDir = QString::null,
- const bool aForceSrc = false,
- const bool aSingleDir = false );
- // destructor
- virtual ~SALOME_InstallWizard( );
-
- // get base platform to install binaries package
- QString getBasePlatform();
- // get current platform
- static QStringList currentPlatform();
-
- // get binaries path
- QString getBinPath() const { return binPath; }
- // get sources path
- QString getSrcPath() const { return srcPath; }
- // get platform binaries path
- QString getPlatformBinPath( const QString& ) const;
-
- // get map of supported platforms and corresponding XML files
- MapXmlFiles getXmlMap( const QString& aXmlFileName = QString::null );
- // check/get XML file and current platform
- void getXmlAndPlatform();
-
- // event filter
- bool eventFilter( QObject* object, QEvent* event );
-
- // set dependancies
- void setDependancies( QCheckListItem* item, Dependancies dep);
-
- // add button for the <Finish> page
- void addFinishButton( const QString& label,
- const QString& tooltip,
- const QString& script,
- bool toClear = false );
-
- // set version
- void setVersion( const QString& version ) { myVersion = version; }
- // set caption
- void setCaption( const QString& caption ) { myCaption = caption; updateCaption(); }
- // set copyright
- void setCopyright( const QString& copyright ) { myCopyright = copyright; }
- // set license
- void setLicense( const QString& license ) { myLicense = license; }
-
- // get version
- QString getVersion() { return myVersion; }
- // get caption
- QString getCaption() { return myCaption; }
- // get copyright
- QString getCopyright() { return myCopyright; }
- // get license
- QString getLicense() { return myLicense; }
- // get platform
- QString getPlatform() { return !refPlatform.isEmpty() ? refPlatform : curPlatform; }
- // get corresponding XML file
- QString getXmlFile( const QString& platform ) {
- return (platformsMap.find( platform ) != platformsMap.end() ) ?
- platformsMap[ platform ] :
- QString("");
- }
- // get InstallWizard's name
- QString getIWName() { return myIWName; }
-
- // process validation event (<val> is validation code)
- void processValidateEvent( const int val, void* data );
- // get private installation type
- InstallationType getInstType() { return installType; };
-
- public slots:
- // polishing of the widget
- void polish();
-
- // save install log to file
- void saveLog();
-
- protected:
- // updates caption according to the current page number
- void updateCaption();
- // close event handler
- void closeEvent( QCloseEvent* ce );
- // creates introduction page
- void setupIntroPage();
- // create installation types page
- void setupTypePage();
- // create platforms page
- void setupPlatformPage();
- // create directories page
- void setupDirPage();
- // creates products page
- void setupProductsPage();
- // creates prestart page
- void setupCheckPage();
- // creates progress page
- void setupProgressPage();
- // creates readme page
- void setupReadmePage();
- // displays choice info
- void showChoiceInfo();
- // validates page when <Next> button is clicked
- bool acceptData( const QString& );
- // calculates disk space required for the installation, returns true if any product selected to be installed (src, bin or native)
- bool checkSize( long* totSize = 0, long* tempSize = 0 );
- // checks products page validity (directories and products selection)
- void checkProductPage();
- // sets the product and all products this one depends on to be checked
- void setPrerequisites( QCheckListItem* item );
- // unsets all products which depend of unchecked product ( recursively )
- void unsetPrerequisites( QCheckListItem* item );
- // runs installation script
- void launchScript();
- // searches product listview item with given symbolic name
- QCheckListItem* findItem( const QString& sName );
- // sets progress state to Aborted
- void abort();
- // clears and (optionally) removes temporary directory
- void clean(bool rmDir = false);
- // Update GUI and check installation errors
- void completeInstallation();
- // Run the modification of SALOME *.la files
- void runModifyLaFiles();
- // Run the Fortran libraries checking
- void runCheckFLib();
-
- protected slots:
- // reject slot
- void reject();
- // accept slot
- void accept();
-
- private slots:
- // called when user moves from page to page
- void pageChanged( const QString & mytitle);
- // called when user selected either installation type or installation platform
- void onButtonGroup( int index );
- // invokes Help window
- void helpClicked();
- // invokes directory selection dialog box
- void browseDirectory();
- // called when directory path (target or temp) is changed
- void directoryChanged( const QString& text );
- // <Start> button's slot - runs installation
- void onStart();
- // called when users tries to pass parameters for the script
- void onReturnPressed();
- // callback function - as response for the script finishing
- void productInstalled();
- // called when <Cancel> button is clicked during installation script running
- void tryTerminate();
- // kills installation process and quits application
- void onCancel();
- // called when selection is changed in the products list view
- void onSelectionChanged();
- // called when user checks/unchecks any product item
- void onItemToggled( QCheckListItem* );
- // <Installation with GUI> check-box slot
- void onInstallGuiBtn();
- // <More...> button slot
- void onMoreBtn();
- // Slot to update 'Available disk space' field
- void updateAvailableSpace();
- // Slot to take result of modification SALOME *.la files
- void checkModifyLaResult();
- // Slot to take result of Fortran libraries checking
- void checkFLibResult();
- // Slot to update 'Size' column for modules and prerequisites
- void updateSizeColumn();
-
- // <Finish> page buttons slot
- void onFinishButton();
-
- // <About> button slot
- void onAbout();
-
- // QProcess slots:
- // -->something was written to stdin
- void wroteToStdin();
- // -->something was written to stout
- void readFromStdout();
- // -->something was written to stderr
- void readFromStderr();
-
- private:
- QString myIWName; // Installation Wizard's name
- QString myVersion; // version info
- QString myCaption; // application name
- QString myCopyright; // copyright info
- QString myLicense; // license info
- QString myTargetPath; // target directory path
- QString myTmpPath; // temporary directory path
-
- HelpWindow* helpWindow; // help window
- QProcess* shellProcess; // shell process (install script)
- QProcess* diskSpaceProc; // shell process (to get available disk space script)
- QProcess* modifyLaProc; // shell process (to modify SALOME *.la files script)
- QProcess* checkFLibProc; // shell process (to check Fortran libraries script)
- MapProducts productsMap; // products info (name, dependancies, disk space )
- MapXmlFiles extraProducts; // additional products to be installed
- QStringList toInstall; // list of products being installed
- QStringList notInstall; // list of products being not installed
- QStringList prodSequence; // specified list of products being installed
- MapAttrStates woGuiModules; // map of SALOME modules names, that can support installation without GUI mode
- InstallationType installType; // type of the installation
- QString curPlatform; // current operating system
- QString refPlatform; // referenced operating system (selected by user). It is defined,
- // if current OS is not determined or not supported only
- MapXmlFiles platformsMap; // supported operating systems and corresponding XML files
- QString xmlFileName; // xml file
- QString binPath; // binaries path
- QString srcPath; // sources path
- QString oneProdDirName; // name of the single directory for binaries of prerequisites
- QString commonPlatform; // platform with universal binaries
- bool moreMode; // advanced mode flag
- QWidget* previousPage; // previous page
- QString tmpCreated; // created temporary directory
- bool stateChanged; // flag: whether installation type or platform was changed
- bool exitConfirmed; // flag: "Exit confirmed"
- bool rmSrcPrevState; // flag: status of "Remove SRC & TMP files" is changed ?
- // Widgets
- // --> introduction page
- QWidget* introPage; // page itself
- QLabel* logoLab; // logo pixmap
- QLabel* versionLab; // version info
- QLabel* copyrightLab; // copyright info
- QLabel* licenseLab; // license info
- QLabel* info; // program info
- // --> installation types page
- QWidget* typePage; // page itself
- QButtonGroup* buttonGrp; // group of the available installation types radio-buttons
- QRadioButton* binBtn; // install binaries button
- QRadioButton* srcBtn; // install sources button
- QRadioButton* srcCompileBtn; // install sources and compile button
- QCheckBox* removeSrcBtn; // <Remove sources & tmp files> checkbox
- bool forceSrc; // Force all products to be compiled from sources
- // --> installation platform page
- QWidget* platformsPage; // page itself
- QButtonGroup* platBtnGrp; // group of platforms for selection
- QString warnMsg; // warning message
- QLabel* warnLab; // warning label
- QLabel* warnLab3; // additional warning label
- // --> installation directories page
- QWidget* dirPage; // page itself
- QLineEdit* targetFolder; // target directory for installing of products
- QPushButton* targetBtn; // browse target directory button
- QLineEdit* tempFolder; // directory for the temporary files: /tmp by default
- QPushButton* tempBtn; // browse temp directory button
- // --> products page
- QWidget* productsPage; // page itself
- ProductsView* modulesView; // modules list view
- QMyCheckBox* installGuiBtn; // <Installation with GUI> checkbox
- ProductsView* prereqsView; // prerequisites list view
- QMyCheckBox* oneModDirBtn; // <Install SALOME modules to a single directory> checkbox
- QMyCheckBox* oneProdDirBtn; // <Install prerequisites to a single directory> checkbox
- QPushButton* moreBtn; // <Show/Hide prerequisites> button
- QTextBrowser* productInfo; // products info box
- QLabel* requiredSize; // <Total disk space required> label
- QLabel* requiredTemp; // <Space required for temporary files> label
- QLabel* availableSize; // <Available disk space> label
- bool singleDir; // Force all SALOME modules to be installed into single directory
- // --> prestart page
- QWidget* prestartPage; // page itself
- QTextEdit* choices; // choice text view
- // --> progress page
- QWidget* progressPage; // page itself
- QSplitter* splitter; // splitter window
- InstallInfo* installInfo; // information about running installation scripts
- QLabel* parametersLab; // answer field's label
- QLineEdit* passedParams; // user can pass data to running script
- QTextEdit* installProgress;// contains information about progress of installing selected products
- ProgressView* progressView; // displays information about progress of installing selected products
- QLabel* statusLab; // displays currently performed action
- // --> finish page
- QWidget* readmePage; // page itself
- QTextEdit* readme; // Readme information window
- ButtonList buttons; // operation buttons
-
- ProcessThread* myThread; // validation thread
- bool hasErrors; // flag: if there were any errors or warnings during the installation
-};
-
-#endif
+++ /dev/null
-// File : SALOME_ProductsView.cxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#include "SALOME_ProductsView.hxx"
-#include <qstringlist.h>
-#include <qregexp.h>
-
-// ================================================================
-/*!
- * ProductsViewItem::ProductsViewItem
- * Constructor
- */
-// ================================================================
-ProductsViewItem::ProductsViewItem( ProductsView* parent, const QString& text, Type tt )
- : QCheckListItem( parent, text, tt )
-{
-}
-// ================================================================
-/*!
- * ProductsViewItem::stateChange
- * Called when users switches item on/off
- */
-// ================================================================
-void ProductsViewItem::stateChange( bool on ) {
- QCheckListItem::stateChange( on );
- ((ProductsView*)listView())->itemActivated( (QCheckListItem*)this );
-}
-
-// ================================================================
-/*!
- * ProductsView::ProductsView
- * Constructor
- */
-// ================================================================
-ProductsView::ProductsView( QWidget* parent, const char* name )
- : QListView( parent, name )
-{
- setRootIsDecorated( false );
- addColumn( tr( "Module" ) );
- addColumn( tr( "Size" ) );
- setResizeMode( LastColumn );
- setSorting( -1, false );
-}
-// ================================================================
-/*!
- * ProductsView::addItem
- * Adds product item into the list
- */
-// ================================================================
-QCheckListItem* ProductsView::addItem( const QString& name,
- const QString& size,
- const QString& script )
-{
- QCheckListItem* item = 0;
- item = new ProductsViewItem( this, name, QCheckListItem::CheckBox );
- item->setText( 1, size );
- item->setText( 2, script );
- item->moveItem( this->lastItem() );
- return item;
-}
-// ================================================================
-/*!
- * ProductsView::renameColumn
- * Sets the given text as a heading of the given column
- */
-// ================================================================
-void ProductsView::renameColumn( int column, const QString& label )
-{
- setColumnText( column, label );
-}
-// ================================================================
-/*!
- * ProductsView::itemActivated
- * Emits signal when checkbox or radiobutton is switched
- */
-// ================================================================
-void ProductsView::itemActivated( QCheckListItem* item ) {
- emit itemToggled( item );
-}
-// ================================================================
-/*!
- * ProductsView::setItemEnabled
- * Enable/disable item
- */
-// ================================================================
-void ProductsView::setItemEnabled( QCheckListItem* item, const bool enable )
-{
- item->setEnabled( enable );
- QListViewItem* subItem = item->firstChild();
- while( subItem ) {
- subItem->setEnabled( enable );
- subItem = subItem->nextSibling();
- }
-}
-// ================================================================
-/*!
- * ProductsView::findBinItem
- * Find bin item which corresponds to the src item
- */
-// ================================================================
-QCheckListItem* ProductsView::findBinItem( const QString& srcName )
-{
- QString binName = srcName.lower().replace( QRegExp("src"), "bin" );
- QCheckListItem* subItem = (QCheckListItem*)( firstChild() );
- while( subItem ) {
- if ( subItem->text().lower() == binName )
- return subItem;
- subItem = (QCheckListItem*)( subItem->nextSibling() );
- }
- return 0;
-}
-
+++ /dev/null
-// File : SALOME_ProductsView.hxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#ifndef __SALOME_ProductsView
-#define __SALOME_ProductsView
-
-#include <qlistview.h>
-
-/*!
- Class ProductsViewItem: to define custom products list view item
-*/
-class ProductsView;
-class ProductsViewItem : public QCheckListItem
-{
- public:
- // constructor
- ProductsViewItem( ProductsView* parent, const QString& text, Type tt );
-
- protected:
- // called when users switches item on/off
- void stateChange( bool on );
-};
-
-/*!
- Class ProductsView : Products list view
-*/
-class ProductsView : public QListView
-{
- Q_OBJECT
-
-public:
- // constructor
- ProductsView( QWidget* parent, const char* name = 0 );
-
- // adds product item into the list
- QCheckListItem* addItem( const QString& name,
- const QString& version,
- const QString& script );
- // sets the given text as a heading of the given column
- void renameColumn( int column, const QString& label );
-
- // emits signal when checkbox or radiobutton is switched
- void itemActivated( QCheckListItem* item );
-
- // enable/disable item
- void setItemEnabled( QCheckListItem* item, const bool enable );
-
- // find bin item which corresponds to the src item
- QCheckListItem* findBinItem( const QString& srcName );
-
-signals:
- // emitted when checkbox or radiobutton is switched
- void itemToggled( QCheckListItem* item );
-};
-
-#endif
+++ /dev/null
-// File : SALOME_ProgressView.cxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#include "SALOME_ProgressView.hxx"
-
-#include <qheader.h>
-
-// ================================================================
-/*!
- * ProgressViewItem::ProgressViewItem
- * Constructor
- * <parent> - parent progress view
- * <productName> - full name of the product
- * <smbName> - alias for he product used by the script
- * <status> - initial status of the product, default is 'Waiting'
-*/
-// ================================================================
-ProgressViewItem::ProgressViewItem( ProgressView* parent,
- QString productName,
- const QString scriptName,
- Status status )
- : QListViewItem( parent, productName ), myScript( scriptName )
-{
- setStatus( status );
-}
-// ================================================================
-/*!
- * ProgressViewItem::setStatus
- * Sets new status for the item
- */
-// ================================================================
-void ProgressViewItem::setStatus( Status status )
-{
- myStatus = status;
- switch ( myStatus ) {
- case Waiting:
- setText( 1, ProgressView::tr( "Waiting" ) ); break;
- case Processing:
- setText( 1, ProgressView::tr( "Processing" ) ); break;
- case Completed:
- setText( 1, ProgressView::tr( "Completed" ) ); break;
- case Aborted:
- setText( 1, ProgressView::tr( "Aborted" ) ); break;
- default:
- break;
- }
- repaint();
-}
-// ================================================================
-/*!
- * ProgressViewItem::paintCell
- * Paints the cell of the list view item
- */
-// ================================================================
-void ProgressViewItem::paintCell( QPainter* painter,
- const QColorGroup& cg,
- int column,
- int width,
- int align )
-{
- QColorGroup acg( cg );
- if ( column == 1 ) {
- switch ( myStatus ) {
- case Waiting:
- acg.setColor( QColorGroup::Text, ( ( ProgressView* )listView() )->getWaitingColor() ); break;
- case Processing:
- acg.setColor( QColorGroup::Text, ( ( ProgressView* )listView() )->getProcessingColor() ); break;
- case Completed:
- acg.setColor( QColorGroup::Text, ( ( ProgressView* )listView() )->getCompletedColor() ); break;
- case Aborted:
- acg.setColor( QColorGroup::Text, ( ( ProgressView* )listView() )->getWaitingColor() ); break;
- default:
- break;
- }
- }
- QListViewItem::paintCell( painter, acg, column, width, align );
-}
-
-
-// ================================================================
-/*!
- * ProgressView::ProgressView
- * Constructor
- */
-// ================================================================
-ProgressView::ProgressView( QWidget* parent ) : QListView( parent )
-{
- addColumn( tr( "Product" ) ); addColumn( tr( "Status" ) );
- header()->hide();
- setSelectionMode( QListView::NoSelection );
- setSorting( -1 );
- setResizeMode( QListView::AllColumns );
- setFocusPolicy( QWidget::NoFocus );
- setColors( QColor( "red" ), QColor( "orange" ), QColor( "green" ) );
-}
-// ================================================================
-/*!
- * ProgressView::setColors
- * Sets status colors
- */
-// ================================================================
-void ProgressView::setColors( QColor wColor, QColor pColor, QColor cColor ) {
- myWaitingColor = wColor;
- myProcessingColor = pColor;
- myCompletedColor = cColor;
- repaint();
-}
-// ================================================================
-/*!
- * ProgressView::addProduct
- * Adds product item
- */
-// ================================================================
-ProgressViewItem* ProgressView::addProduct( const QString product, const QString script ) {
- QListViewItem* lastItem = this->lastItem();
- ProgressViewItem* newItem = new ProgressViewItem( this, product, script );
- if ( lastItem )
- newItem->moveItem( lastItem );
- return newItem;
-}
-// ================================================================
-/*!
- * ProgressView::findStatus
- * Finds the first item with given status
- */
-// ================================================================
-QString ProgressView::findStatus( Status status ) {
- ProgressViewItem* item = ( ProgressViewItem* )firstChild();
- while( item ) {
- if ( item->getStatus() == status )
- return item->getProduct();
- item = ( ProgressViewItem* )( item->nextSibling() );
- }
- return QString::null;
-}
-// ================================================================
-/*!
- * ProgressView::findStatus
- * Sets new status for the product item
- */
-// ================================================================
-void ProgressView::setStatus( const QString product, Status status ) {
- ProgressViewItem* item = findItem( product );
- if ( item ) {
- item->setStatus( status );
- repaint();
- }
-}
-/*!
- Scrolls the view to make item visible if necessary
-*/
-void ProgressView::ensureVisible( const QString product ) {
- ProgressViewItem* item = findItem( product );
- if ( item ) {
- ensureItemVisible( item );
- }
-}
-/*!
- Finds the item by the product name
-*/
-ProgressViewItem* ProgressView::findItem( const QString product ) {
- ProgressViewItem* item = ( ProgressViewItem* )firstChild();
- while( item ) {
- if ( item->getProduct() == product )
- return item;
- item = ( ProgressViewItem* )( item->nextSibling() );
- }
- return 0;
-}
-/*!
- Gets the product script
-*/
-QString ProgressView::getScript( const QString product ) {
- ProgressViewItem* item = ( ProgressViewItem* )firstChild();
- while( item ) {
- if ( item->getProduct() == product )
- return item->getScript();
- item = ( ProgressViewItem* )( item->nextSibling() );
- }
- return QString::null;
-}
-/*!
- To get visibility status of an item in the progress list view
-*/
-bool ProgressView::isVisible( const QString product ) {
- return findItem( product )->isVisible();
-}
-
+++ /dev/null
-// File : SALOME_ProgressView.hxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#ifndef __SALOME_ProgressView
-#define __SALOME_ProgressView
-
-#include <qlistview.h>
-
-/*!
- Class ProgressViewItem: Progress list view item
-*/
-enum Status { Waiting, Processing, Completed, Aborted };
-class ProgressView;
-class ProgressViewItem : public QListViewItem
-{
-public:
- // constructor
- ProgressViewItem( ProgressView* parent,
- QString productName,
- const QString scriptName,
- Status status = Waiting );
-
- // sets product status
- void setStatus( Status status );
- // gets product status
- Status getStatus() const { return myStatus; }
- // gets product name
- QString getProduct() const { return text( 0 ); }
- // gets product script
- QString getScript() const { return myScript; }
-
-protected:
- // paints cell of the item
- void paintCell( QPainter* painter, const QColorGroup& cg, int column, int width, int align );
-
-private:
- Status myStatus; // status
- QString myScript; // alias
-};
-
-/*!
- Class ProgressView: Progress list view
-*/
-class ProgressView : public QListView
-{
-public:
- // constructor
- ProgressView( QWidget* parent );
-
- // sets/gets status colors
- void setColors( QColor wColor, QColor pColor, QColor cColor );
- QColor getWaitingColor() { return myWaitingColor; }
- QColor getProcessingColor() { return myProcessingColor; }
- QColor getCompletedColor() { return myCompletedColor; }
-
- // adds product item
- ProgressViewItem* addProduct( const QString smbName, const QString product );
- // finds the first item with given status
- QString findStatus( Status status );
- // sets new status for the product item
- void setStatus( const QString product, Status status );
- // scrolls the view to make item visible if necessary
- void ensureVisible( const QString product );
- // gets the product script
- QString getScript( const QString product );
- // gets the item's visibility status
- bool isVisible( const QString product );
-
-protected:
- // finds the item by the product name
- ProgressViewItem* findItem( const QString product );
-
-private:
- QColor myWaitingColor; // 'Waiting' color
- QColor myProcessingColor; // 'Processing' color
- QColor myCompletedColor; // 'Completed' color
-};
-
-#endif
+++ /dev/null
-// File : SALOME_XmlHandler.cxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#include "globals.h"
-
-#include "SALOME_XmlHandler.hxx"
-#include "SALOME_ProductsView.hxx"
-#include "SALOME_InstallWizard.hxx"
-
-#include <qlineedit.h>
-#include <qdir.h>
-#include <qregexp.h>
-#include <qstringlist.h>
-#include <iostream.h>
-
-// ================================================================
-/*!
- * ::isBoolAttributeSet [ static ]
- * Returns true if the attribute stores boolean value and
- * corresponds to True value
- */
-// ================================================================
-static bool isBoolAttributeSet( const QString& attr ) {
- return ( attr.lower() == "true" ||
- attr.lower() == "yes" ||
- attr.lower() == "ok" ||
- ( !attr.stripWhiteSpace().isEmpty() && attr.toInt() != 0 ) );
-}
-// ================================================================
-/*!
- * ::environmentVariable [ static ]
- * Seraches for the environment variable and returns it's
- * position on the given string
- */
-// ================================================================
-QString environmentVariable( const QString& str, int& start, int& len ) {
- QString varName = QString::null;
- len = 0;
-
- // Environment variable can be given in the form:
- // - ${VARIABLE} or
- // - $(VARIABLE) or
- // - $VARIABLE or
- // - %VARIABLE%
- // The first symbol should be the letter.
- QRegExp rx( "\\$\\{([a-zA-Z]+[a-zA-Z0-9_]*)\\}|\\$\\(([a-zA-Z]+[a-zA-Z0-9_]*)\\)|\\$([a-zA-Z]+[a-zA-Z0-9_]*)|\\%([a-zA-Z]+[a-zA-Z0-9_]*)\\%" );
-
- int pos = rx.search( str, start );
- if ( pos != -1 )
- {
- start = pos;
- len = rx.matchedLength();
- QStringList caps = rx.capturedTexts();
- for ( uint i = 1; i <= caps.count() && varName.isEmpty(); i++ )
- varName = *caps.at( i );
- }
- return varName;
-}
-// ================================================================
-/*!
- * ::substituteVars [ static ]
- * Substitutes environment variables in the given string
- * by their values
- */
-// ================================================================
-static QString substituteVars( const QString& str ) {
- QString res = str;
-
- int start( 0 ), len( 0 );
- while ( true ) {
- QString envName = environmentVariable( res, start, len );
- if ( envName.isNull() )
- break;
-
- QString newStr = QString::null;
- if ( ::getenv( envName ) )
- newStr = QString( ::getenv( envName ) );
-
- res.replace( start, len, newStr );
- }
-
- return res;
-}
-
-// ================================================================
-/*!
- * StructureParser::StructureParser
- * Constructor
- */
-// ================================================================
-StructureParser::StructureParser( SALOME_InstallWizard* wizard )
- : myWizard( wizard ),
- myModules( 0 ),
- myPrereqs( 0 ),
- myTargetDir( 0 ),
- myTempDir( 0 )
-{
-}
-// ================================================================
-/*!
- * StructureParser::setProductsLists
- * Sets products list view
- */
-// ================================================================
-void StructureParser::setProductsLists( ProductsView* mtree, ProductsView* ptree )
-{
- myModules = mtree;
- myPrereqs = ptree;
-}
-// ================================================================
-/*!
- * StructureParser::setTargetDir
- * Sets target directory widget
- */
-// ================================================================
-void StructureParser::setTargetDir( QLineEdit* dir )
-{
- QString home = QDir::homeDirPath();
- myTargetDir = dir;
- if ( myTargetDir && !home.isEmpty() )
- myTargetDir->setText( home + QDir::separator() + "salome" );
-}
-// ================================================================
-/*!
- * StructureParser::setTempDir
- * Sets temp directory widget
- */
-// ================================================================
-void StructureParser::setTempDir( QLineEdit* dir )
-{
- myTempDir = dir;
- if ( myTempDir )
- myTempDir->setText( "/tmp" );
-}
-// ================================================================
-/*!
- * StructureParser::getConfigInfo
- * Parse 'config' part of the XML file
- */
-// ================================================================
-void StructureParser::getConfigInfo(const QDomElement &theElem)
-{
- QString myVersion, myCaption, myCopyright, myLicense, myPlatforms;
- if ( theElem.attribute( "version" ) ) {
- myVersion = theElem.attribute( "version" ).stripWhiteSpace();
- if ( myWizard && !myVersion.isEmpty() )
- myWizard->setVersion( myVersion );
- }
- if ( theElem.attribute( "caption" ) ) {
- myCaption = theElem.attribute( "caption" ).arg( myVersion ).stripWhiteSpace();
- if ( myWizard && !myCaption.isEmpty() )
- myWizard->setCaption( myCaption );
- }
- if ( theElem.attribute( "copyright" ) ) {
- myCopyright = theElem.attribute( "copyright" ).stripWhiteSpace();
- if ( myWizard && !myCopyright.isEmpty() )
- myWizard->setCopyright( myCopyright );
- }
- if ( theElem.attribute( "license" ) ) {
- myLicense = theElem.attribute( "license" ).stripWhiteSpace();
- if ( myWizard && !myLicense.isEmpty() )
- myWizard->setLicense( myLicense );
- }
- if ( theElem.attribute( "platforms" ) ) {
-// myPlatforms = theElem.attribute( "platforms" ).stripWhiteSpace();
-// if ( myWizard && !myPlatforms.isEmpty() )
-// myWizard->setPlatforms( myPlatforms );
- }
- if ( theElem.attribute( "targetdir" ) ) {
- if ( myTargetDir )
- myTargetDir->setText( substituteVars( theElem.attribute( "targetdir" ) ) );
- }
- if ( theElem.attribute( "tempdir" ) ) {
- if ( myTempDir )
- myTempDir->setText( substituteVars( theElem.attribute( "tempdir" ) ) );
- }
-}
-// ================================================================
-/*!
- * StructureParser::getButtonsInfo
- * Parse 'buttons' part of the XML file
- */
-// ================================================================
-void StructureParser::getButtonsInfo(const QDomNode &theNode)
-{
- QString aLabel, aTootip, aScript;
- for( QDomNode node = theNode.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- if ( !node.isElement() )
- continue;
- QDomElement elem = node.toElement();
- if ( isBoolAttributeSet( elem.attribute( "disable" ) ) )
- continue;
- aLabel = ""; aTootip = ""; aScript = "";
- if ( elem.attribute( "label" ) )
- aLabel = elem.attribute( "label" ).stripWhiteSpace();
- if ( elem.attribute( "tooltip" ) )
- aTootip = elem.attribute( "tooltip" ).stripWhiteSpace();
- if ( elem.attribute( "script" ) )
- aScript = elem.attribute( "script" ).stripWhiteSpace();
- if ( !aLabel.isEmpty() ) {
- if ( node == theNode.firstChild() )
- myWizard->addFinishButton( aLabel, aTootip, aScript, true );
- else
- myWizard->addFinishButton( aLabel, aTootip, aScript );
- }
- }
-}
-// ================================================================
-/*!
- * StructureParser::getProductsInfo
- * Parse 'products' part of the XML file
- */
-// ================================================================
-void StructureParser::getProductsInfo( const QDomNode &theNode )
-{
- MapDependencies mapDeps;
- QCheckListItem* element;
-
- QDomNode docNode = theNode.parentNode();
- getDependenciesInfo( docNode, mapDeps );
-
- for( QDomNode prodNode = theNode.firstChild(); !prodNode.isNull(); prodNode = prodNode.nextSibling() ) {
- if ( !prodNode.isElement() )
- continue;
- for( QDomNode instNode = prodNode.firstChild(); !instNode.isNull(); instNode = instNode.nextSibling() ) {
- if ( !instNode.isElement() )
- continue;
- QDomElement instElem = instNode.toElement();
- if ( instElem.attribute( "os" ) != myWizard->getPlatform() && instElem.attribute( "os" ) != "all" )
- continue;
- if ( isBoolAttributeSet( instElem.attribute( "disable" ) ) )
- break; // current product is skipped
- QDomElement prodElem = prodNode.toElement();
-
- QStringList diskspace = QStringList::split( ",", instElem.attribute( "installdiskspace" ) );
- long binreq = diskspace[ 0 ].toInt();
- long srcreq = diskspace[ 1 ].toInt();
- long cmplreq = diskspace[ 2 ].toInt();
-
- QString name = prodElem.attribute( "name" ).stripWhiteSpace();
- QString type = prodElem.attribute( "type" ).stripWhiteSpace().lower();
- BoolTristate woGuiMode = NotDefined;
- bool pickUp = isBoolAttributeSet( instElem.attribute( "pickupenv" ) );
- QString script = instElem.attribute( "script" );
- QStringList typesList = QStringList::split( ",", type );
- if ( typesList.find( "component" ) != typesList.end() ) {
- QString woGuiAttr = instElem.attribute( "woguimode" );
- if ( !woGuiAttr.isNull() )
- woGuiMode = BoolTristate( isBoolAttributeSet( woGuiAttr ) );
- element = myModules->addItem( name,
- "unknown",
- script );
- }
- else
- element = myPrereqs->addItem( name,
- "unknown",
- script );
- QString descr = QString::null;
- if ( prodElem.attribute( "description" ) != "" )
- descr = prodElem.attribute( "description" ).stripWhiteSpace();
- myWizard->setDependancies
- ( element,
- Dependancies( name,
- mapDeps[ name ],
- binreq,
- srcreq,
- cmplreq,
- instElem.attribute( "temporarydiskspace" ).toInt(),
- instElem.attribute( "version" ),
- descr,
- type,
- pickUp,
- woGuiMode ) );
- }
- }
-}
-// ================================================================
-/*!
- * StructureParser::getDependencies
- * Parse 'dependencies' part of the XML file
- */
-// ================================================================
-void StructureParser::getDependenciesInfo( QDomNode &theNode, MapDependencies &theDepends )
-{
- QDomNode depsNode = theNode.namedItem( "dependencies" );
- QStringList depsList = QStringList();
- for( QDomNode prodNode = depsNode.firstChild(); !prodNode.isNull(); prodNode = prodNode.nextSibling() ) {
- if ( !prodNode.isElement() )
- continue;
- QDomElement prodElem = prodNode.toElement();
- QString prodName = prodElem.attribute( "name" ).stripWhiteSpace();
- if ( theDepends.contains( prodName ) )
- continue;
- depsList.clear();
- for ( QDomNode depNode = prodNode.firstChild(); !depNode.isNull(); depNode = depNode.nextSibling() ) {
- if ( !depNode.isElement() )
- continue;
- QDomElement depElem = depNode.toElement();
- QString depName = depElem.text();
- if ( depName.isEmpty() )
- continue;
- if ( !depsList.contains( depName ) )
- depsList.append( depName );
- }
- theDepends[ prodName ] = depsList;
- }
-}
-// ================================================================
-/*!
- * StructureParser::readXmlFile
- * Read XML configuration file for the current platform
- */
-// ================================================================
-void StructureParser::readXmlFile(QString theFileName)
-{
- QDomDocument doc( "xml_doc" );
- QFile file( theFileName );
- if ( !file.open( IO_ReadOnly ) )
- return;
- if ( !doc.setContent( &file ) ) {
- file.close();
- return;
- }
- file.close();
-
- QDomElement docElem = doc.documentElement();
-
- for( QDomNode node = docElem.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- QString nodeName = node.nodeName();
- if ( nodeName == "config" && node.isElement() ) {
- getConfigInfo( node.toElement() );
- }
- else if ( nodeName == "buttons" && node.hasChildNodes() && myModules && myWizard ) {
- getButtonsInfo( node );
- }
- else if ( nodeName == "products" && node.hasChildNodes() && myModules && myWizard ) {
- getProductsInfo( node );
- }
- }
-}
+++ /dev/null
-// File : SALOME_XmlHandler.hxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#ifndef __SALOME_XmlHandler
-#define __SALOME_XmlHandler
-
-#include <qdom.h>
-#include <qmap.h>
-#include <qstringlist.h>
-
-typedef QMap<QString, QStringList> MapDependencies;
-
-/*!
- Class StructureParser: parses xml-description file and populates the list of the products
-*/
-class ProductsView;
-class SALOME_InstallWizard;
-class QLineEdit;
-class QDom;
-
-class StructureParser
-{
-public:
- // constructor
- StructureParser( SALOME_InstallWizard* wizard = 0 );
-
- // set control widgets
- void setProductsLists( ProductsView* mview, ProductsView* pview );
- void setTargetDir( QLineEdit* dir );
- void setTempDir( QLineEdit* dir );
-
- // parse 'config' part of the XML file
- void getConfigInfo( const QDomElement &elem );
- // parse 'buttons' part of the XML file
- void getButtonsInfo( const QDomNode &node );
- // parse 'products' part of the XML file
- void getProductsInfo( const QDomNode &node );
- // parse 'dependencies' part of the XML file
- void getDependenciesInfo( QDomNode &node, MapDependencies &depends );
- // read XML configuration file
- void readXmlFile(QString theFileName);
-
-private:
- SALOME_InstallWizard* myWizard; // Salome Pro installation wizard's main window
- ProductsView* myModules; // modules list view
- ProductsView* myPrereqs; // prerequisites list view
- QLineEdit* myTargetDir; // target directory widget
- QLineEdit* myTempDir; // temp directory widget
-};
-
-#endif
+++ /dev/null
-################################################################################
-### Setting the environment to build SALOME Installation Wizard.
-### 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, e.g:
-### 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 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
-setenv QTDIR ${PRODUCTS_DIR}/qt-x11-free-3.0.5
-setenv PATH ${QTDIR}/bin:${PATH}
-setenv LD_LIBRARY_PATH ${QTDIR}/lib:${LD_LIBRARY_PATH}
-##
+++ /dev/null
-// File : globals.h
-// Created : 14/01/2005
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#if !defined( ___GLOBALS )
-#define ___GLOBALS
-
-// ========================
-// process debug messages
-// ========================
-
-#include <qglobal.h>
-#include <iostream>
-
-#define __IW_VERSION_MAJOR__ 1
-#define __IW_VERSION_MINOR__ 1
-#define __IW_VERSION_PATCH__ 6
-
-#define __IW_VERSION__ (__IW_VERSION_MAJOR__*10000 + \
- __IW_VERSION_MINOR__*100 + \
- __IW_VERSION_PATCH__)
-
-#ifdef QT_DEBUG
-
-#define ___MESSAGE___( x ) std::cout << x << std::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
+++ /dev/null
-// File : icons.cxx
-// Created : Thu Mar 27 12:01:00 2003
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#include "icons.h"
-
-static const char* const image_SALOME[] = {
-"300 150 23301 3",
-" c None",
-". c #829486",
-"+ c #869688",
-"@ c #87978A",
-"# c #88988B",
-"$ c #88978A",
-"% c #869789",
-"& c #859688",
-"* c #849587",
-"= c #849487",
-"- c #829386",
-"; c #849486",
-"> c #88988A",
-", c #89998C",
-"' c #89988C",
-") c #8A988B",
-"! c #8A978A",
-"~ c #879488",
-"{ c #869386",
-"] c #849184",
-"^ c #829083",
-"/ c #818E82",
-"( c #808E80",
-"_ c #7F8D7F",
-": c #7E8B7C",
-"< c #7B887A",
-"[ c #7A867A",
-"} c #798678",
-"| c #758475",
-"1 c #738173",
-"2 c #717F71",
-"3 c #728071",
-"4 c #738073",
-"5 c #748073",
-"6 c #768475",
-"7 c #7C887A",
-"8 c #7D8A7B",
-"9 c #7D897B",
-"0 c #7C887B",
-"a c #7D897C",
-"b c #7D8A7C",
-"c c #7D887B",
-"d c #7E8A7D",
-"e c #7F8C7E",
-"f c #808C7E",
-"g c #808D7E",
-"h c #7F8C7D",
-"i c #7E8A7C",
-"j c #7E8B7D",
-"k c #7F8A7D",
-"l c #808C7D",
-"m c #808D7F",
-"n c #818E80",
-"o c #859080",
-"p c #869280",
-"q c #889380",
-"r c #8B9481",
-"s c #8E9684",
-"t c #8F9685",
-"u c #909786",
-"v c #929886",
-"w c #939A88",
-"x c #959D8C",
-"y c #96A08C",
-"z c #98A18E",
-"A c #9AA290",
-"B c #9BA291",
-"C c #9CA391",
-"D c #9DA492",
-"E c #9EA593",
-"F c #9FA694",
-"G c #A0A694",
-"H c #A1A795",
-"I c #9FA593",
-"J c #A0A594",
-"K c #A0A695",
-"L c #A2A896",
-"M c #A3A898",
-"N c #A2A897",
-"O c #A0A796",
-"P c #9FA594",
-"Q c #9CA393",
-"R c #9AA190",
-"S c #98A08E",
-"T c #97A08E",
-"U c #969B8B",
-"V c #939888",
-"W c #929787",
-"X c #909886",
-"Y c #919786",
-"Z c #929786",
-"` c #8D9582",
-" . c #8E9584",
-".. c #8D9483",
-"+. c #8D9482",
-"@. c #8D9484",
-"#. c #8C9482",
-"$. c #8E9484",
-"%. c #909686",
-"&. c #909685",
-"*. c #909586",
-"=. c #919686",
-"-. c #929888",
-";. c #949A8A",
-">. c #949988",
-",. c #949A89",
-"'. c #959A8C",
-"). c #94998A",
-"!. c #949888",
-"~. c #949989",
-"{. c #949A8B",
-"]. c #969E8D",
-"^. c #99A290",
-"/. c #9AA291",
-"(. c #99A292",
-"_. c #9AA394",
-":. c #9BA494",
-"<. c #9EA595",
-"[. c #A0A696",
-"}. c #A2A899",
-"|. c #A4AC9C",
-"1. c #A6AC9E",
-"2. c #A8AC9F",
-"3. c #AAAE9F",
-"4. c #ACB0A0",
-"5. c #AEB2A1",
-"6. c #AFB29F",
-"7. c #B0B39E",
-"8. c #B2B49E",
-"9. c #B2B49C",
-"0. c #B2B59A",
-"a. c #B3B69A",
-"b. c #B2B498",
-"c. c #B1B397",
-"d. c #B2B297",
-"e. c #B2B398",
-"f. c #B1B299",
-"g. c #B0B09A",
-"h. c #B0B09C",
-"i. c #B1B19C",
-"j. c #B0AE9A",
-"k. c #AEAD99",
-"l. c #ADAC98",
-"m. c #ADAC9A",
-"n. c #AFAC9C",
-"o. c #AEAC9A",
-"p. c #AFAD99",
-"q. c #AEAC97",
-"r. c #ADAB95",
-"s. c #AEAC94",
-"t. c #AFAE95",
-"u. c #B1AE95",
-"v. c #B0AA94",
-"w. c #AEA891",
-"x. c #ACA68E",
-"y. c #AAA48C",
-"z. c #A5A184",
-"A. c #A29D80",
-"B. c #9E987C",
-"C. c #9A9277",
-"D. c #988E74",
-"E. c #968C72",
-"F. c #9B937A",
-"G. c #9E967C",
-"H. c #A29880",
-"I. c #A49C83",
-"J. c #A69F85",
-"K. c #A6A085",
-"L. c #A69F84",
-"M. c #A49D82",
-"N. c #A39A81",
-"O. c #A49A82",
-"P. c #A1987F",
-"Q. c #9F967D",
-"R. c #9C937A",
-"S. c #989075",
-"T. c #968D73",
-"U. c #948B71",
-"V. c #938970",
-"W. c #90876E",
-"X. c #90866D",
-"Y. c #8C846A",
-"Z. c #90876C",
-"`. c #90886E",
-" + c #938A70",
-".+ c #948D72",
-"++ c #958D73",
-"@+ c #968E74",
-"#+ c #968E73",
-"$+ c #938C71",
-"%+ c #928A70",
-"&+ c #8E876D",
-"*+ c #8A836A",
-"=+ c #878168",
-"-+ c #868066",
-";+ c #837C62",
-">+ c #7E795F",
-",+ c #827C62",
-"'+ c #7E7A5E",
-")+ c #7F7A60",
-"!+ c #7D785E",
-"~+ c #7C785E",
-"{+ c #7A745B",
-"]+ c #7A755C",
-"^+ c #7C785F",
-"/+ c #7D7A61",
-"(+ c #7C7960",
-"_+ c #7B775E",
-":+ c #79775D",
-"<+ c #737258",
-"[+ c #747259",
-"}+ c #76745C",
-"|+ c #78785C",
-"1+ c #7B7A5F",
-"2+ c #7C7B61",
-"3+ c #7D7B61",
-"4+ c #7C7A60",
-"5+ c #7C7B60",
-"6+ c #807E64",
-"7+ c #848368",
-"8+ c #86866A",
-"9+ c #858868",
-"0+ c #808262",
-"a+ c #838664",
-"b+ c #848766",
-"c+ c #858867",
-"d+ c #7E8262",
-"e+ c #7B7E60",
-"f+ c #76795E",
-"g+ c #787C61",
-"h+ c #7E8065",
-"i+ c #7E8166",
-"j+ c #7A7D62",
-"k+ c #757A60",
-"l+ c #787D62",
-"m+ c #757A61",
-"n+ c #747861",
-"o+ c #797E66",
-"p+ c #848C75",
-"q+ c #8D9580",
-"r+ c #86978A",
-"s+ c #87988A",
-"t+ c #879789",
-"u+ c #87968A",
-"v+ c #849588",
-"w+ c #88988C",
-"x+ c #89968A",
-"y+ c #869487",
-"z+ c #859386",
-"A+ c #829084",
-"B+ c #808D81",
-"C+ c #7F8C80",
-"D+ c #7E8B7E",
-"E+ c #7C897B",
-"F+ c #788678",
-"G+ c #778476",
-"H+ c #748374",
-"I+ c #728172",
-"J+ c #727F71",
-"K+ c #728072",
-"L+ c #748173",
-"M+ c #768474",
-"N+ c #7A8577",
-"O+ c #7C8779",
-"P+ c #7C877A",
-"Q+ c #7A8679",
-"R+ c #7B867A",
-"S+ c #7B877A",
-"T+ c #7E897C",
-"U+ c #7E897B",
-"V+ c #7E887B",
-"W+ c #7F8C7C",
-"X+ c #818D7F",
-"Y+ c #848E7F",
-"Z+ c #85917F",
-"`+ c #889280",
-" @ c #8A9481",
-".@ c #929987",
-"+@ c #969E8C",
-"@@ c #9CA492",
-"#@ c #9DA493",
-"$@ c #A2A696",
-"%@ c #A1A695",
-"&@ c #A1A896",
-"*@ c #A2A796",
-"=@ c #A0A795",
-"-@ c #9FA494",
-";@ c #959E8C",
-">@ c #959A8B",
-",@ c #959A8A",
-"'@ c #929887",
-")@ c #8D9584",
-"!@ c #8E9485",
-"~@ c #8B9383",
-"{@ c #8C9282",
-"]@ c #8C9382",
-"^@ c #8D9382",
-"/@ c #8E9585",
-"(@ c #8F9686",
-"_@ c #8F9586",
-":@ c #919787",
-"<@ c #949889",
-"[@ c #94988A",
-"}@ c #959C8C",
-"|@ c #969F8D",
-"1@ c #96A08D",
-"2@ c #979F8D",
-"3@ c #97A08D",
-"4@ c #98A08F",
-"5@ c #99A293",
-"6@ c #9DA595",
-"7@ c #A5AB9B",
-"8@ c #A6AD9E",
-"9@ c #ABACA0",
-"0@ c #ADB0A0",
-"a@ c #AEB1A1",
-"b@ c #B1B4A2",
-"c@ c #B2B5A0",
-"d@ c #B2B4A0",
-"e@ c #B4B89B",
-"f@ c #B4B89A",
-"g@ c #B4B899",
-"h@ c #B2B696",
-"i@ c #B2B495",
-"j@ c #B1B393",
-"k@ c #B1B298",
-"l@ c #B1B19E",
-"m@ c #B2B19E",
-"n@ c #B2B09C",
-"o@ c #B2B3A0",
-"p@ c #B2B19D",
-"q@ c #B2B09A",
-"r@ c #B1AF9C",
-"s@ c #B2AF9E",
-"t@ c #B1AF9D",
-"u@ c #B1AE9D",
-"v@ c #B0AD9A",
-"w@ c #B0AD99",
-"x@ c #B0AC98",
-"y@ c #B0AD97",
-"z@ c #B3B09A",
-"A@ c #B3AD98",
-"B@ c #B1AB95",
-"C@ c #AFA991",
-"D@ c #AEA890",
-"E@ c #A9A48A",
-"F@ c #A6A286",
-"G@ c #A39E81",
-"H@ c #9F997B",
-"I@ c #9A9274",
-"J@ c #958C6F",
-"K@ c #968D70",
-"L@ c #978E70",
-"M@ c #9B9375",
-"N@ c #A0987B",
-"O@ c #A29C7E",
-"P@ c #A49C7F",
-"Q@ c #A59E83",
-"R@ c #A49A81",
-"S@ c #A59E84",
-"T@ c #A49B81",
-"U@ c #A0967D",
-"V@ c #9C947B",
-"W@ c #9A9278",
-"X@ c #978E74",
-"Y@ c #958B72",
-"Z@ c #948A71",
-"`@ c #91876E",
-" # c #90876D",
-".# c #8E856B",
-"+# c #91886E",
-"@# c #968E72",
-"## c #989175",
-"$# c #978F74",
-"%# c #958D72",
-"&# c #948C72",
-"*# c #938B71",
-"=# c #8F886D",
-"-# c #8A8269",
-";# c #878166",
-"># c #868065",
-",# c #857E65",
-"'# c #807A60",
-")# c #7C755C",
-"!# c #7E765E",
-"~# c #7E785E",
-"{# c #78735A",
-"]# c #79745A",
-"^# c #7B765C",
-"/# c #7C795F",
-"(# c #7D7A60",
-"_# c #807D63",
-":# c #7A765E",
-"<# c #78755C",
-"[# c #76745B",
-"}# c #74725A",
-"|# c #77755C",
-"1# c #7E7D63",
-"2# c #7E7D62",
-"3# c #7D7C61",
-"4# c #807F65",
-"5# c #838467",
-"6# c #838666",
-"7# c #808362",
-"8# c #7E8060",
-"9# c #818464",
-"0# c #818563",
-"a# c #7C8062",
-"b# c #797C60",
-"c# c #787B60",
-"d# c #7C7F64",
-"e# c #7E8267",
-"f# c #7E8064",
-"g# c #767A5F",
-"h# c #74785F",
-"i# c #747A61",
-"j# c #7E826B",
-"k# c #889079",
-"l# c #819386",
-"m# c #859588",
-"n# c #869689",
-"o# c #68726A",
-"p# c #8E8E8E",
-"q# c #8C8C8C",
-"r# c #898989",
-"s# c #8A8A8A",
-"t# c #6A6A67",
-"u# c #757A5F",
-"v# c #767A60",
-"w# c #747B60",
-"x# c #73795F",
-"y# c #757B62",
-"z# c #81876E",
-"A# c #809284",
-"B# c #869588",
-"C# c #859488",
-"D# c #606861",
-"E# c #5B635D",
-"F# c #5A615B",
-"G# c #5A615A",
-"H# c #59605A",
-"I# c #5A625B",
-"J# c #5A625C",
-"K# c #5A605A",
-"L# c #595F5A",
-"M# c #575E58",
-"N# c #565D57",
-"O# c #565C56",
-"P# c #565B56",
-"Q# c #555B55",
-"R# c #545A54",
-"S# c #525952",
-"T# c #515851",
-"U# c #505750",
-"V# c #505650",
-"W# c #515750",
-"X# c #505751",
-"Y# c #515751",
-"Z# c #525851",
-"`# c #525852",
-" $ c #535952",
-".$ c #545A53",
-"+$ c #545852",
-"@$ c #545952",
-"#$ c #555A52",
-"$$ c #555A54",
-"%$ c #565A54",
-"&$ c #555A55",
-"*$ c #565B55",
-"=$ c #575C55",
-"-$ c #595E56",
-";$ c #5A5E56",
-">$ c #5B5F57",
-",$ c #5E6058",
-"'$ c #5E6158",
-")$ c #5E6159",
-"!$ c #5E625A",
-"~$ c #5F625A",
-"{$ c #60625B",
-"]$ c #60635B",
-"^$ c #61645C",
-"/$ c #61665D",
-"($ c #62665E",
-"_$ c #62675E",
-":$ c #63675E",
-"<$ c #656860",
-"[$ c #64675F",
-"}$ c #666860",
-"|$ c #646860",
-"1$ c #63675F",
-"2$ c #63665E",
-"3$ c #62665D",
-"4$ c #62655D",
-"5$ c #61645D",
-"6$ c #5E615A",
-"7$ c #5E605A",
-"8$ c #5E6059",
-"9$ c #5C6058",
-"0$ c #5C5F58",
-"a$ c #5D6058",
-"b$ c #5D6059",
-"c$ c #5C5F57",
-"d$ c #5F625B",
-"e$ c #60635C",
-"f$ c #61635C",
-"g$ c #62655E",
-"h$ c #62675F",
-"i$ c #676963",
-"j$ c #676A63",
-"k$ c #686B63",
-"l$ c #686B64",
-"m$ c #6A6C66",
-"n$ c #6B6C66",
-"o$ c #6C6C66",
-"p$ c #6C6D67",
-"q$ c #6E6E67",
-"r$ c #6E7068",
-"s$ c #6F7068",
-"t$ c #6F7067",
-"u$ c #707168",
-"v$ c #707167",
-"w$ c #707166",
-"x$ c #707165",
-"y$ c #707063",
-"z$ c #6F7062",
-"A$ c #6E6E62",
-"B$ c #6E6E64",
-"C$ c #6F6E65",
-"D$ c #706F66",
-"E$ c #707067",
-"F$ c #706E66",
-"G$ c #6F6E66",
-"H$ c #6F6E67",
-"I$ c #706F67",
-"J$ c #6E6E66",
-"K$ c #706D65",
-"L$ c #6F6C63",
-"M$ c #6E6C62",
-"N$ c #6E6B62",
-"O$ c #6E6A60",
-"P$ c #6D6A5F",
-"Q$ c #6C695E",
-"R$ c #6C685A",
-"S$ c #6C6859",
-"T$ c #686556",
-"U$ c #666153",
-"V$ c #615C4E",
-"W$ c #5E584A",
-"X$ c #5C5649",
-"Y$ c #605A4E",
-"Z$ c #635E52",
-"`$ c #656055",
-" % c #666156",
-".% c #686357",
-"+% c #686458",
-"@% c #686558",
-"#% c #686358",
-"$% c #666256",
-"%% c #666155",
-"&% c #646054",
-"*% c #625D50",
-"=% c #605B50",
-"-% c #625D51",
-";% c #635F54",
-">% c #646055",
-",% c #636054",
-"'% c #615E51",
-")% c #605D50",
-"!% c #605C50",
-"~% c #5E5A4F",
-"{% c #5C594E",
-"]% c #5A574B",
-"^% c #5A564A",
-"/% c #575448",
-"(% c #565247",
-"_% c #555247",
-":% c #555246",
-"<% c #565348",
-"[% c #57554A",
-"}% c #57564A",
-"|% c #58564A",
-"1% c #555448",
-"2% c #58574B",
-"3% c #56554A",
-"4% c #565649",
-"5% c #565849",
-"6% c #57594A",
-"7% c #585A4B",
-"8% c #58594C",
-"9% c #56584B",
-"0% c #484942",
-"a% c #848484",
-"b% c #74765D",
-"c% c #7B7E66",
-"d% c #7F8368",
-"e% c #777A5F",
-"f% c #7A7D61",
-"g% c #767B61",
-"h% c #797E65",
-"i% c #7F9284",
-"j% c #819285",
-"k% c #849386",
-"l% c #839386",
-"m% c #5F6861",
-"n% c #878787",
-"o% c #758478",
-"p% c #717E74",
-"q% c #707E72",
-"r% c #717F74",
-"s% c #707F73",
-"t% c #718074",
-"u% c #728074",
-"v% c #728075",
-"w% c #727F74",
-"x% c #737E73",
-"y% c #717D72",
-"z% c #707B70",
-"A% c #6D786E",
-"B% c #6B776C",
-"C% c #6A756B",
-"D% c #69746A",
-"E% c #667368",
-"F% c #647164",
-"G% c #636F63",
-"H% c #616E62",
-"I% c #606C60",
-"J% c #606B60",
-"K% c #606C61",
-"L% c #616C61",
-"M% c #616D61",
-"N% c #626E62",
-"O% c #646F62",
-"P% c #646F63",
-"Q% c #657063",
-"R% c #657064",
-"S% c #646E63",
-"T% c #636E62",
-"U% c #626E61",
-"V% c #626D60",
-"W% c #626C61",
-"X% c #667064",
-"Y% c #687266",
-"Z% c #687267",
-"`% c #6A7266",
-" & c #6A7468",
-".& c #6A7467",
-"+& c #6A7368",
-"@& c #697368",
-"#& c #6B7469",
-"$& c #6D776A",
-"%& c #6F786A",
-"&& c #72796B",
-"*& c #767C6D",
-"=& c #787E6E",
-"-& c #797E6F",
-";& c #79806F",
-">& c #7A8070",
-",& c #7B8172",
-"'& c #7C8273",
-")& c #7E8374",
-"!& c #7F8575",
-"~& c #808878",
-"{& c #818979",
-"]& c #828A79",
-"^& c #828A7A",
-"/& c #848B7C",
-"(& c #868C7C",
-"_& c #868C7D",
-":& c #878C7D",
-"<& c #888D7E",
-"[& c #878C7E",
-"}& c #848C7C",
-"|& c #848C7B",
-"1& c #838B7A",
-"2& c #828979",
-"3& c #808778",
-"4& c #808678",
-"5& c #7E8375",
-"6& c #7E8274",
-"7& c #7B8173",
-"8& c #798072",
-"9& c #787F71",
-"0& c #7A7F71",
-"a& c #797F71",
-"b& c #797E70",
-"c& c #7A8072",
-"d& c #787E6F",
-"e& c #767B6E",
-"f& c #767A6E",
-"g& c #767C6E",
-"h& c #767E6E",
-"i& c #777E6E",
-"j& c #777E6F",
-"k& c #767D6E",
-"l& c #777C6E",
-"m& c #757B6E",
-"n& c #777C6F",
-"o& c #787E70",
-"p& c #7A7F70",
-"q& c #797E71",
-"r& c #7B8072",
-"s& c #7C8174",
-"t& c #7D8274",
-"u& c #7E8275",
-"v& c #7F8276",
-"w& c #7F8376",
-"x& c #808478",
-"y& c #7F8275",
-"z& c #7F8477",
-"A& c #7E8376",
-"B& c #808476",
-"C& c #7F8476",
-"D& c #808475",
-"E& c #808576",
-"F& c #808578",
-"G& c #818878",
-"H& c #818879",
-"I& c #81887B",
-"J& c #848B7D",
-"K& c #858C7F",
-"L& c #8A8E82",
-"M& c #8B9082",
-"N& c #8C9284",
-"O& c #8D9384",
-"P& c #909389",
-"Q& c #92938A",
-"R& c #93938A",
-"S& c #94958A",
-"T& c #96968A",
-"U& c #98998C",
-"V& c #9A9B8C",
-"W& c #9B9C8C",
-"X& c #9E9E8E",
-"Y& c #9C9D8D",
-"Z& c #9C9D8C",
-"`& c #9C9D8B",
-" * c #9A9C88",
-".* c #9B9B86",
-"+* c #9C9E86",
-"@* c #9A9A82",
-"#* c #9A9A84",
-"$* c #9C9C88",
-"%* c #9D9C88",
-"&* c #A09E8A",
-"** c #9C9D87",
-"=* c #9D9C89",
-"-* c #9C9B8C",
-";* c #9D9B8C",
-">* c #9C9A8B",
-",* c #9C998C",
-"'* c #9B998B",
-")* c #9C988C",
-"!* c #9D998B",
-"~* c #9D9887",
-"{* c #9C9684",
-"]* c #9B9582",
-"^* c #9C9683",
-"/* c #9B9481",
-"(* c #99947F",
-"_* c #98917C",
-":* c #968F76",
-"<* c #948C71",
-"[* c #90886D",
-"}* c #867D62",
-"|* c #7E7358",
-"1* c #766A50",
-"2* c #74694E",
-"3* c #766B52",
-"4* c #7C705A",
-"5* c #817660",
-"6* c #857B65",
-"7* c #8B806B",
-"8* c #8C826C",
-"9* c #8E856F",
-"0* c #8F8670",
-"a* c #8F8870",
-"b* c #8F8770",
-"c* c #8E8670",
-"d* c #8C846E",
-"e* c #8B826C",
-"f* c #877F69",
-"g* c #857D66",
-"h* c #817861",
-"i* c #807760",
-"j* c #807860",
-"k* c #7F7660",
-"l* c #817962",
-"m* c #827A63",
-"n* c #847D67",
-"o* c #87806A",
-"p* c #827B64",
-"q* c #7F7760",
-"r* c #7E7660",
-"s* c #7E7760",
-"t* c #7C7660",
-"u* c #746D57",
-"v* c #726B54",
-"w* c #726C55",
-"x* c #6F6952",
-"y* c #6C6650",
-"z* c #6A634E",
-"A* c #6A644F",
-"B* c #6B6650",
-"C* c #6C6751",
-"D* c #6A654F",
-"E* c #6C6952",
-"F* c #6D6A54",
-"G* c #6E6C55",
-"H* c #706C56",
-"I* c #6F6D56",
-"J* c #6B6953",
-"K* c #6A6852",
-"L* c #6C6A54",
-"M* c #706D56",
-"N* c #706E56",
-"O* c #6C6B54",
-"P* c #6A6A52",
-"Q* c #6A6B52",
-"R* c #6A6D52",
-"S* c #6C6F53",
-"T* c #6E7155",
-"U* c #6E7255",
-"V* c #6C7054",
-"W* c #6A6C50",
-"X* c #6A6E52",
-"Y* c #6C6F56",
-"Z* c #6C6E56",
-"`* c #535448",
-" = c #808080",
-".= c #6A6D55",
-"+= c #74775F",
-"@= c #7F8369",
-"#= c #7F8266",
-"$= c #797C61",
-"%= c #7B7F63",
-"&= c #809285",
-"*= c #809385",
-"== c #829285",
-"-= c #829286",
-";= c #5E6760",
-">= c #888888",
-",= c #717E73",
-"'= c #707D72",
-")= c #768478",
-"!= c #768479",
-"~= c #748377",
-"{= c #768377",
-"]= c #768378",
-"^= c #758377",
-"/= c #738276",
-"(= c #728175",
-"_= c #6F7E72",
-":= c #6E7C70",
-"<= c #6D7C70",
-"[= c #6A7A6E",
-"}= c #68786E",
-"|= c #67766A",
-"1= c #667366",
-"2= c #657266",
-"3= c #647064",
-"4= c #646F64",
-"5= c #636E63",
-"6= c #636F64",
-"7= c #647264",
-"8= c #667265",
-"9= c #677366",
-"0= c #667266",
-"a= c #647063",
-"b= c #687366",
-"c= c #6A7568",
-"d= c #6D7669",
-"e= c #6E776A",
-"f= c #6E776B",
-"g= c #6D776C",
-"h= c #6E776C",
-"i= c #6F786C",
-"j= c #70796C",
-"k= c #727B6D",
-"l= c #757E6E",
-"m= c #7C8271",
-"n= c #7C8372",
-"o= c #7D8373",
-"p= c #7E8474",
-"q= c #7F8676",
-"r= c #828878",
-"s= c #848A79",
-"t= c #848B7B",
-"u= c #858E7C",
-"v= c #868E7D",
-"w= c #878E7E",
-"x= c #888E7E",
-"y= c #88907F",
-"z= c #8B9181",
-"A= c #8D9283",
-"B= c #8B9282",
-"C= c #899080",
-"D= c #88907E",
-"E= c #858C7C",
-"F= c #838A7A",
-"G= c #838878",
-"H= c #828778",
-"I= c #828879",
-"J= c #7E8576",
-"K= c #7D8475",
-"L= c #7C8374",
-"M= c #7B8272",
-"N= c #7A8172",
-"O= c #7C8173",
-"P= c #798071",
-"Q= c #7A8272",
-"R= c #7B8174",
-"S= c #7D8374",
-"T= c #7E8476",
-"U= c #7D8376",
-"V= c #7D8375",
-"W= c #7C8274",
-"X= c #808677",
-"Y= c #828678",
-"Z= c #828679",
-"`= c #838779",
-" - c #838879",
-".- c #83887A",
-"+- c #84897C",
-"@- c #83897A",
-"#- c #84887C",
-"$- c #848978",
-"%- c #848976",
-"&- c #848975",
-"*- c #848A74",
-"=- c #848A72",
-"-- c #848A71",
-";- c #868A74",
-">- c #898A77",
-",- c #8B8E7A",
-"'- c #8E907E",
-")- c #909182",
-"!- c #939287",
-"~- c #949388",
-"{- c #96958A",
-"]- c #95978A",
-"^- c #969A8A",
-"/- c #989C8C",
-"(- c #9A9C8E",
-"_- c #9C9E8E",
-":- c #9EA090",
-"<- c #9EA091",
-"[- c #A1A292",
-"}- c #A3A393",
-"|- c #A1A192",
-"1- c #A2A291",
-"2- c #A1A28E",
-"3- c #A1A38D",
-"4- c #A4A48C",
-"5- c #A3A48A",
-"6- c #A2A388",
-"7- c #A4A487",
-"8- c #A4A488",
-"9- c #A4A489",
-"0- c #A4A48B",
-"a- c #A6A690",
-"b- c #A6A591",
-"c- c #A6A492",
-"d- c #A4A391",
-"e- c #A5A391",
-"f- c #A4A190",
-"g- c #A4A092",
-"h- c #A49F92",
-"i- c #A39F92",
-"j- c #A29E92",
-"k- c #A09B90",
-"l- c #A09B8E",
-"m- c #A19D8F",
-"n- c #A19C8C",
-"o- c #A09B88",
-"p- c #9F9A87",
-"q- c #9D9681",
-"r- c #9C947D",
-"s- c #9A927A",
-"t- c #8D8166",
-"u- c #837459",
-"v- c #7B6A4F",
-"w- c #76644D",
-"x- c #786452",
-"y- c #7C6A58",
-"z- c #847461",
-"A- c #887C68",
-"B- c #908973",
-"C- c #928E76",
-"D- c #928F74",
-"E- c #928E74",
-"F- c #918D73",
-"G- c #928C73",
-"H- c #8D876F",
-"I- c #8A846C",
-"J- c #847F66",
-"K- c #847D63",
-"L- c #867E63",
-"M- c #888064",
-"N- c #857D61",
-"O- c #898265",
-"P- c #8B8469",
-"Q- c #8B8468",
-"R- c #888166",
-"S- c #857E62",
-"T- c #847D60",
-"U- c #847E62",
-"V- c #7E785D",
-"W- c #787257",
-"X- c #746E55",
-"Y- c #746D56",
-"Z- c #736D56",
-"`- c #716A54",
-" ; c #6F6852",
-".; c #6F6953",
-"+; c #706C55",
-"@; c #726D57",
-"#; c #716C57",
-"$; c #706D57",
-"%; c #726F5A",
-"&; c #74705C",
-"*; c #76725E",
-"=; c #75715D",
-"-; c #726E58",
-";; c #706C57",
-">; c #706E57",
-",; c #726F58",
-"'; c #737159",
-"); c #73715A",
-"!; c #717059",
-"~; c #6E6E56",
-"{; c #6D7057",
-"]; c #6E7059",
-"^; c #70725A",
-"/; c #72755C",
-"(; c #73765E",
-"_; c #6D6F56",
-":; c #6F7056",
-"<; c #727257",
-"[; c #575749",
-"}; c #696A50",
-"|; c #737458",
-"1; c #818264",
-"2; c #858768",
-"3; c #818364",
-"4; c #797C5E",
-"5; c #787B5E",
-"6; c #646665",
-"7; c #7B7B7B",
-"8; c #767676",
-"9; c #757575",
-"0; c #747474",
-"a; c #707070",
-"b; c #555555",
-"c; c #666666",
-"d; c #676767",
-"e; c #606060",
-"f; c #7A7A7A",
-"g; c #727272",
-"h; c #7C7C7C",
-"i; c #60615E",
-"j; c #787A5E",
-"k; c #7C7E62",
-"l; c #7C8066",
-"m; c #809386",
-"n; c #797979",
-"o; c #4B4F4C",
-"p; c #59615B",
-"q; c #58605A",
-"r; c #4A4E4B",
-"s; c #4F5650",
-"t; c #525953",
-"u; c #565E58",
-"v; c #575F59",
-"w; c #555D57",
-"x; c #545C56",
-"y; c #545B56",
-"z; c #525A55",
-"A; c #515A55",
-"B; c #515952",
-"C; c #505550",
-"D; c #545A52",
-"E; c #555952",
-"F; c #565B54",
-"G; c #575B54",
-"H; c #595D55",
-"I; c #5B5F56",
-"J; c #5B5E56",
-"K; c #5C6057",
-"L; c #60635A",
-"M; c #61645B",
-"N; c #61655C",
-"O; c #5D5F58",
-"P; c #5B5E57",
-"Q; c #5A5D56",
-"R; c #5A5C56",
-"S; c #5C5E57",
-"T; c #5B5E58",
-"U; c #5F615A",
-"V; c #60625A",
-"W; c #606258",
-"X; c #606358",
-"Y; c #606357",
-"Z; c #606257",
-"`; c #616256",
-" > c #626357",
-".> c #626358",
-"+> c #636459",
-"@> c #64645A",
-"#> c #66665C",
-"$> c #66675D",
-"%> c #67685E",
-"&> c #686860",
-"*> c #696B62",
-"=> c #6B6B62",
-"-> c #6C6B63",
-";> c #6D6D64",
-">> c #6E6D65",
-",> c #706F68",
-"'> c #717068",
-")> c #727068",
-"!> c #727168",
-"~> c #727268",
-"{> c #727265",
-"]> c #727264",
-"^> c #727266",
-"/> c #747368",
-"(> c #727267",
-"_> c #747268",
-":> c #747269",
-"<> c #737169",
-"[> c #726F68",
-"}> c #726F69",
-"|> c #726E68",
-"1> c #716E66",
-"2> c #726F66",
-"3> c #716E64",
-"4> c #706C61",
-"5> c #6E6B60",
-"6> c #6E6A5E",
-"7> c #6C675B",
-"8> c #6A6558",
-"9> c #6A6456",
-"0> c #655F51",
-"a> c #61584C",
-"b> c #5C5248",
-"c> c #574D43",
-"d> c #564C42",
-"e> c #564E42",
-"f> c #5A5147",
-"g> c #5E564B",
-"h> c #60594E",
-"i> c #615C50",
-"j> c #645F53",
-"k> c #676256",
-"l> c #676357",
-"m> c #666255",
-"n> c #656052",
-"o> c #645E50",
-"p> c #635E50",
-"q> c #625D4F",
-"r> c #625E50",
-"s> c #635F51",
-"t> c #656253",
-"u> c #666254",
-"v> c #646153",
-"w> c #5F5B4E",
-"x> c #605B4E",
-"y> c #5F5C4E",
-"z> c #5E5B4E",
-"A> c #5B574C",
-"B> c #59554A",
-"C> c #58554A",
-"D> c #585449",
-"E> c #575449",
-"F> c #575549",
-"G> c #56544A",
-"H> c #59564B",
-"I> c #59564C",
-"J> c #5A574C",
-"K> c #59574C",
-"L> c #58584B",
-"M> c #56564A",
-"N> c #55564A",
-"O> c #58584C",
-"P> c #595A4E",
-"Q> c #58594D",
-"R> c #56574A",
-"S> c #565648",
-"T> c #484842",
-"U> c #4A4A3E",
-"V> c #4E4E41",
-"W> c #555648",
-"X> c #5A5B4E",
-"Y> c #4B4C44",
-"Z> c #74775C",
-"`> c #787A60",
-" , c #707D73",
-"., c #67756B",
-"+, c #6B786E",
-"@, c #6E7D71",
-"#, c #707E73",
-"$, c #6E7E72",
-"%, c #6C7A6E",
-"&, c #6A786D",
-"*, c #64746A",
-"=, c #647369",
-"-, c #627166",
-";, c #616F64",
-">, c #606D61",
-",, c #5F6B60",
-"', c #5F6A60",
-"), c #5F6A5F",
-"!, c #5E6A5E",
-"~, c #5D6A5E",
-"{, c #5F6A5E",
-"], c #5E6A5F",
-"^, c #606A60",
-"/, c #626C60",
-"(, c #646E62",
-"_, c #647062",
-":, c #687164",
-"<, c #6A7265",
-"[, c #6B7466",
-"}, c #6C7466",
-"|, c #707869",
-"1, c #73786A",
-"2, c #737A6A",
-"3, c #747A6A",
-"4, c #747B6B",
-"5, c #747A6B",
-"6, c #767D6D",
-"7, c #777D6E",
-"8, c #7A7F6F",
-"9, c #7B8070",
-"0, c #7E8273",
-"a, c #808676",
-"b, c #7D8273",
-"c, c #7C8172",
-"d, c #7D8172",
-"e, c #7C8171",
-"f, c #7B8071",
-"g, c #767B6C",
-"h, c #757A6C",
-"i, c #747C6C",
-"j, c #757C6C",
-"k, c #747B6C",
-"l, c #757B6C",
-"m, c #747B6D",
-"n, c #73796B",
-"o, c #72786A",
-"p, c #72786B",
-"q, c #767C6C",
-"r, c #757C6D",
-"s, c #797F70",
-"t, c #767C6F",
-"u, c #787C6F",
-"v, c #777C6D",
-"w, c #777B6E",
-"x, c #7A7E72",
-"y, c #7A7E71",
-"z, c #7C8073",
-"A, c #7D8173",
-"B, c #7E8174",
-"C, c #808477",
-"D, c #808377",
-"E, c #7F8373",
-"F, c #808372",
-"G, c #808470",
-"H, c #80846F",
-"I, c #7F836D",
-"J, c #80826B",
-"K, c #80826A",
-"L, c #80816B",
-"M, c #81826B",
-"N, c #82836C",
-"O, c #84856D",
-"P, c #84876F",
-"Q, c #888A72",
-"R, c #888A74",
-"S, c #8A8B78",
-"T, c #8E8E7C",
-"U, c #90907E",
-"V, c #939280",
-"W, c #969482",
-"X, c #989884",
-"Y, c #999884",
-"Z, c #9A998A",
-"`, c #9A988C",
-" ' c #9C9A8E",
-".' c #9D9A8E",
-"+' c #9E9C8E",
-"@' c #A0A090",
-"#' c #A09F8E",
-"$' c #A2A091",
-"%' c #A2A18E",
-"&' c #A2A08A",
-"*' c #A2A089",
-"=' c #A1A089",
-"-' c #A1A08A",
-";' c #A3A28C",
-">' c #A3A18C",
-",' c #A4A28C",
-"'' c #A4A18C",
-")' c #A4A18D",
-"!' c #A4A08E",
-"~' c #A39F8E",
-"{' c #A29E8C",
-"]' c #A29C8E",
-"^' c #9F9A8C",
-"/' c #9E9A8B",
-"(' c #9E998A",
-"_' c #9F9A8B",
-":' c #9F998B",
-"<' c #A29B8C",
-"[' c #A09A89",
-"}' c #9D9784",
-"|' c #9A9480",
-"1' c #9A927E",
-"2' c #978E7A",
-"3' c #948A74",
-"4' c #928670",
-"5' c #8E816B",
-"6' c #877964",
-"7' c #7E6E5B",
-"8' c #73624E",
-"9' c #6D5C48",
-"0' c #6A5844",
-"a' c #6B5A45",
-"b' c #6E5E49",
-"c' c #756752",
-"d' c #7B6E58",
-"e' c #7E745D",
-"f' c #857C64",
-"g' c #8C836C",
-"h' c #8D866E",
-"i' c #8E8770",
-"j' c #8D866F",
-"k' c #8E856D",
-"l' c #8D846A",
-"m' c #8B8268",
-"n' c #877E63",
-"o' c #857B60",
-"p' c #847A5F",
-"q' c #82785E",
-"r' c #82795E",
-"s' c #827A60",
-"t' c #898166",
-"u' c #8B846A",
-"v' c #7E765D",
-"w' c #7B755B",
-"x' c #7D755C",
-"y' c #7E775F",
-"z' c #78705B",
-"A' c #726C54",
-"B' c #716A55",
-"C' c #6F6A53",
-"D' c #6C6750",
-"E' c #6E6953",
-"F' c #6E6A55",
-"G' c #6D6954",
-"H' c #6D6A55",
-"I' c #6F6B56",
-"J' c #706C58",
-"K' c #726D58",
-"L' c #716C56",
-"M' c #6E6B54",
-"N' c #6C6A53",
-"O' c #6E6B55",
-"P' c #6F6C55",
-"Q' c #6D6C56",
-"R' c #6A6B54",
-"S' c #6B6C55",
-"T' c #6D6E57",
-"U' c #6E6F58",
-"V' c #70715A",
-"W' c #6F725A",
-"X' c #6E6F56",
-"Y' c #6B6B50",
-"Z' c #525245",
-"`' c #5C5C45",
-" ) c #61624A",
-".) c #6A6C51",
-"+) c #74755A",
-"@) c #585A4C",
-"#) c #6F6F6F",
-"$) c #70745A",
-"%) c #74785E",
-"&) c #839486",
-"*) c #565D58",
-"=) c #6B796F",
-"-) c #758378",
-";) c #68776C",
-">) c #6B7A6F",
-",) c #708074",
-"') c #768579",
-")) c #768578",
-"!) c #728276",
-"~) c #728275",
-"{) c #6A796E",
-"]) c #67786E",
-"^) c #66776D",
-"/) c #65766A",
-"() c #657367",
-"_) c #647266",
-":) c #647165",
-"<) c #647265",
-"[) c #626E63",
-"}) c #606E61",
-"|) c #606D60",
-"1) c #616D60",
-"2) c #626D61",
-"3) c #667164",
-"4) c #667166",
-"5) c #697467",
-"6) c #687367",
-"7) c #6C7567",
-"8) c #6E7769",
-"9) c #6F7768",
-"0) c #71786A",
-"a) c #737B6C",
-"b) c #787F6F",
-"c) c #798070",
-"d) c #7A8171",
-"e) c #7C8272",
-"f) c #7E8372",
-"g) c #7F8574",
-"h) c #808675",
-"i) c #838978",
-"j) c #828877",
-"k) c #818677",
-"l) c #818676",
-"m) c #7E8475",
-"n) c #7D8372",
-"o) c #787F70",
-"p) c #767E6F",
-"q) c #757C6E",
-"r) c #747A6D",
-"s) c #757A6E",
-"t) c #7A8071",
-"u) c #7B8073",
-"v) c #818577",
-"w) c #84887A",
-"x) c #838679",
-"y) c #83877A",
-"z) c #848877",
-"A) c #848874",
-"B) c #848873",
-"C) c #848872",
-"D) c #848670",
-"E) c #84866E",
-"F) c #85876E",
-"G) c #87886E",
-"H) c #888A6E",
-"I) c #888A6F",
-"J) c #8A8A6F",
-"K) c #8B8C73",
-"L) c #8C8A75",
-"M) c #909079",
-"N) c #93927B",
-"O) c #95947E",
-"P) c #989681",
-"Q) c #9B9782",
-"R) c #9D9A84",
-"S) c #9F9C8A",
-"T) c #9F9E8E",
-"U) c #9F9E8D",
-"V) c #A2A192",
-"W) c #A6A594",
-"X) c #A6A695",
-"Y) c #A8A696",
-"Z) c #ABA896",
-"`) c #AAA891",
-" ! c #A8A790",
-".! c #A7A68F",
-"+! c #A7A48E",
-"@! c #A7A58E",
-"#! c #A8A68E",
-"$! c #AAA690",
-"%! c #A9A68D",
-"&! c #A9A68E",
-"*! c #AAA790",
-"=! c #AAA691",
-"-! c #ABA892",
-";! c #ABA792",
-">! c #AAA592",
-",! c #A8A492",
-"'! c #A8A494",
-")! c #A8A393",
-"!! c #A7A092",
-"~! c #A6A092",
-"{! c #A8A292",
-"]! c #A69F92",
-"^! c #A8A093",
-"/! c #A79F91",
-"(! c #A69F8F",
-"_! c #A49C8B",
-":! c #A29A89",
-"<! c #9F9583",
-"[! c #9C927E",
-"}! c #9A8F7A",
-"|! c #978A76",
-"1! c #938672",
-"2! c #8D7F6A",
-"3! c #84735F",
-"4! c #7A6754",
-"5! c #725E4A",
-"6! c #6E5944",
-"7! c #6E5A45",
-"8! c #715E4A",
-"9! c #76644E",
-"0! c #7C6C56",
-"a! c #83745D",
-"b! c #8A7D66",
-"c! c #90846C",
-"d! c #968C74",
-"e! c #958B73",
-"f! c #958D71",
-"g! c #938A6F",
-"h! c #90866C",
-"i! c #8C8267",
-"j! c #8A8165",
-"k! c #898064",
-"l! c #887E62",
-"m! c #877D62",
-"n! c #887E63",
-"o! c #8C8468",
-"p! c #90896E",
-"q! c #8E866B",
-"r! c #888265",
-"s! c #847C61",
-"t! c #837B61",
-"u! c #7E7661",
-"v! c #7C745E",
-"w! c #777058",
-"x! c #766E57",
-"y! c #78715B",
-"z! c #716B54",
-"A! c #716B55",
-"B! c #726C57",
-"C! c #746E59",
-"D! c #716D58",
-"E! c #736E59",
-"F! c #75715C",
-"G! c #77725C",
-"H! c #736F58",
-"I! c #716E56",
-"J! c #737059",
-"K! c #737259",
-"L! c #717259",
-"M! c #6F6F58",
-"N! c #6F6F57",
-"O! c #72745A",
-"P! c #73765D",
-"Q! c #74765C",
-"R! c #717156",
-"S! c #545446",
-"T! c #616049",
-"U! c #64644B",
-"V! c #6C6C51",
-"W! c #76765A",
-"X! c #5B5C4E",
-"Y! c #6F725B",
-"Z! c #6E7058",
-"`! c #6E7159",
-" ~ c #6E7B70",
-".~ c #748477",
-"+~ c #7C8C7F",
-"@~ c #7E8E81",
-"#~ c #5C645E",
-"$~ c #6C7A70",
-"%~ c #6E7E74",
-"&~ c #76877A",
-"*~ c #7C8C80",
-"=~ c #7E8D81",
-"-~ c #7E8C80",
-";~ c #7D8C80",
-">~ c #7C8B80",
-",~ c #7A8A7E",
-"'~ c #798A7D",
-")~ c #78887C",
-"!~ c #78897C",
-"~~ c #76867A",
-"{~ c #748578",
-"]~ c #728376",
-"^~ c #708176",
-"/~ c #6E8074",
-"(~ c #6D7F73",
-"_~ c #6C7E71",
-":~ c #6C7C6F",
-"<~ c #6C7A6C",
-"[~ c #6A786B",
-"}~ c #6A786A",
-"|~ c #6A776A",
-"1~ c #6A776B",
-"2~ c #687569",
-"3~ c #677468",
-"4~ c #687468",
-"5~ c #677367",
-"6~ c #667467",
-"7~ c #687568",
-"8~ c #687669",
-"9~ c #6B786B",
-"0~ c #6A766A",
-"a~ c #697669",
-"b~ c #6A7569",
-"c~ c #6B786A",
-"d~ c #6C786B",
-"e~ c #6D786C",
-"f~ c #6E7A6C",
-"g~ c #707C6E",
-"h~ c #737D6F",
-"i~ c #758070",
-"j~ c #788273",
-"k~ c #7B8373",
-"l~ c #7E8574",
-"m~ c #7E8674",
-"n~ c #808775",
-"o~ c #808776",
-"p~ c #808876",
-"q~ c #828978",
-"r~ c #858B7A",
-"s~ c #868C7A",
-"t~ c #878D7B",
-"u~ c #888F7E",
-"v~ c #8A907F",
-"w~ c #8A9080",
-"x~ c #898F7E",
-"y~ c #868D7C",
-"z~ c #868C7B",
-"A~ c #848A7A",
-"B~ c #818778",
-"C~ c #7E8575",
-"D~ c #7F8675",
-"E~ c #7D8474",
-"F~ c #7B8273",
-"G~ c #808777",
-"H~ c #808877",
-"I~ c #858B7C",
-"J~ c #82897A",
-"K~ c #84897A",
-"L~ c #818678",
-"M~ c #818779",
-"N~ c #82887A",
-"O~ c #868B7C",
-"P~ c #858A7C",
-"Q~ c #868B7D",
-"R~ c #888C7F",
-"S~ c #888D7F",
-"T~ c #8A8F81",
-"U~ c #8C9081",
-"V~ c #8D9082",
-"W~ c #8E9285",
-"X~ c #8D9184",
-"Y~ c #8D9183",
-"Z~ c #8C8F81",
-"`~ c #8D9081",
-" { c #8E9281",
-".{ c #8E917F",
-"+{ c #8D907C",
-"@{ c #8E9078",
-"#{ c #8E8F76",
-"${ c #8E9077",
-"%{ c #909076",
-"&{ c #909276",
-"*{ c #909174",
-"={ c #909072",
-"-{ c #929276",
-";{ c #96957C",
-">{ c #95957A",
-",{ c #98987B",
-"'{ c #9A9A7E",
-"){ c #9E9C82",
-"!{ c #A19E86",
-"~{ c #A4A088",
-"{{ c #A7A48C",
-"]{ c #A9A78F",
-"^{ c #A9A890",
-"/{ c #ABA994",
-"({ c #ADAA98",
-"_{ c #B3B19E",
-":{ c #B4B29F",
-"<{ c #B7B49F",
-"[{ c #B9B59E",
-"}{ c #B6B49D",
-"|{ c #B5B29B",
-"1{ c #B4B198",
-"2{ c #B4B197",
-"3{ c #B4B195",
-"4{ c #B6B297",
-"5{ c #B4B192",
-"6{ c #B5B292",
-"7{ c #B4B092",
-"8{ c #B5B095",
-"9{ c #B6B198",
-"0{ c #B7B29A",
-"a{ c #B6B29A",
-"b{ c #B7B29C",
-"c{ c #B7B19D",
-"d{ c #B7B19F",
-"e{ c #B7B09E",
-"f{ c #B4AF9D",
-"g{ c #B4AD9D",
-"h{ c #B6AE9F",
-"i{ c #B4AC9D",
-"j{ c #B5ACA0",
-"k{ c #B3AB9E",
-"l{ c #B1AB9C",
-"m{ c #AFA898",
-"n{ c #B0A897",
-"o{ c #ADA491",
-"p{ c #ACA18E",
-"q{ c #AA9E8A",
-"r{ c #A69A84",
-"s{ c #A39780",
-"t{ c #9E9079",
-"u{ c #988872",
-"v{ c #8F7C66",
-"w{ c #826D58",
-"x{ c #7B644F",
-"y{ c #785E4A",
-"z{ c #775C49",
-"A{ c #755D48",
-"B{ c #7B664E",
-"C{ c #847058",
-"D{ c #8D7B64",
-"E{ c #90826A",
-"F{ c #9A8C73",
-"G{ c #A0947A",
-"H{ c #A0957B",
-"I{ c #A19679",
-"J{ c #A1987A",
-"K{ c #9F9477",
-"L{ c #9E9275",
-"M{ c #9C9074",
-"N{ c #968B6E",
-"O{ c #93886A",
-"P{ c #93896B",
-"Q{ c #928769",
-"R{ c #918669",
-"S{ c #958B6C",
-"T{ c #968C6F",
-"U{ c #988F72",
-"V{ c #978E72",
-"W{ c #928B6D",
-"X{ c #8D8568",
-"Y{ c #877F64",
-"Z{ c #8A8069",
-"`{ c #8A816A",
-" ] c #867D66",
-".] c #847C64",
-"+] c #7F765E",
-"@] c #7B745C",
-"#] c #7B735C",
-"$] c #7A735C",
-"%] c #79735C",
-"&] c #7A745D",
-"*] c #7A745E",
-"=] c #7A755E",
-"-] c #79755E",
-";] c #78745E",
-">] c #7A765F",
-",] c #7C775F",
-"'] c #7D7860",
-")] c #7C7860",
-"!] c #79775F",
-"~] c #7A7960",
-"{] c #7A7A60",
-"]] c #787960",
-"^] c #77785E",
-"/] c #797A60",
-"(] c #7A7C62",
-"_] c #7B7E64",
-":] c #7B7D60",
-"<] c #7C7D5F",
-"[] c #5A5A4B",
-"}] c #65664B",
-"|] c #6A6A4F",
-"1] c #747356",
-"2] c #807F62",
-"3] c #5E5F50",
-"4] c #777777",
-"5] c #73775E",
-"6] c #809184",
-"7] c #7A8B7F",
-"8] c #819284",
-"9] c #809084",
-"0] c #7F9184",
-"a] c #7E9182",
-"b] c #7E8F82",
-"c] c #7D8E81",
-"d] c #7B8D7F",
-"e] c #798A7E",
-"f] c #75877B",
-"g] c #74877B",
-"h] c #738679",
-"i] c #728578",
-"j] c #738274",
-"k] c #707E70",
-"l] c #6F7D70",
-"m] c #707D70",
-"n] c #707E71",
-"o] c #727F72",
-"p] c #6E7C6F",
-"q] c #6E7B6E",
-"r] c #6A766B",
-"s] c #68756A",
-"t] c #6B796C",
-"u] c #6D7A6C",
-"v] c #6E7B6D",
-"w] c #6E7C6E",
-"x] c #6F7C6F",
-"y] c #6F7D6F",
-"z] c #6F7C6E",
-"A] c #717D70",
-"B] c #747F72",
-"C] c #768174",
-"D] c #7A8575",
-"E] c #7C8778",
-"F] c #7F887A",
-"G] c #828B7A",
-"H] c #848C7A",
-"I] c #858D7B",
-"J] c #858D7C",
-"K] c #868E7C",
-"L] c #878E7D",
-"M] c #8A9280",
-"N] c #8C9280",
-"O] c #8C9380",
-"P] c #8D9481",
-"Q] c #8E9582",
-"R] c #8E9583",
-"S] c #8E9481",
-"T] c #8C9481",
-"U] c #8B9280",
-"V] c #8A927F",
-"W] c #89907F",
-"X] c #878C7C",
-"Y] c #7F8674",
-"Z] c #7F8775",
-"`] c #848B7A",
-" ^ c #858C7A",
-".^ c #848A7B",
-"+^ c #858B7B",
-"@^ c #8C9281",
-"#^ c #888F7F",
-"$^ c #888C7E",
-"%^ c #878D7E",
-"&^ c #868D7D",
-"*^ c #878D7D",
-"=^ c #868C7E",
-"-^ c #898E7F",
-";^ c #898F7F",
-">^ c #8A8F80",
-",^ c #8C9182",
-"'^ c #8F9585",
-")^ c #929687",
-"!^ c #969A8B",
-"~^ c #929587",
-"{^ c #949887",
-"]^ c #959987",
-"^^ c #959986",
-"/^ c #959884",
-"(^ c #959784",
-"_^ c #969782",
-":^ c #969681",
-"<^ c #969680",
-"[^ c #95967F",
-"}^ c #96967D",
-"|^ c #96957B",
-"1^ c #949476",
-"2^ c #949374",
-"3^ c #969476",
-"4^ c #98967A",
-"5^ c #9A967A",
-"6^ c #9B987C",
-"7^ c #9E997D",
-"8^ c #A29D81",
-"9^ c #A4A184",
-"0^ c #A7A386",
-"a^ c #AAA688",
-"b^ c #ACAA8B",
-"c^ c #AFAC90",
-"d^ c #B0AE92",
-"e^ c #B6B298",
-"f^ c #B8B59C",
-"g^ c #BCBAA2",
-"h^ c #BEBCA5",
-"i^ c #C0BDA7",
-"j^ c #C4BEAA",
-"k^ c #C1BDA6",
-"l^ c #C0BCA4",
-"m^ c #BFBCA1",
-"n^ c #BEBC9E",
-"o^ c #BEBC9D",
-"p^ c #BEBB9D",
-"q^ c #BDBA98",
-"r^ c #BEB997",
-"s^ c #BEB898",
-"t^ c #BEB89A",
-"u^ c #BEB99C",
-"v^ c #BFB99E",
-"w^ c #BEB89D",
-"x^ c #BFBAA0",
-"y^ c #C0BAA2",
-"z^ c #C1BAA4",
-"A^ c #C2BAA6",
-"B^ c #C0BAA6",
-"C^ c #C1B8A7",
-"D^ c #C2B9AA",
-"E^ c #BEB6A7",
-"F^ c #BEB6A8",
-"G^ c #BCB4A6",
-"H^ c #BBB4A5",
-"I^ c #BAB2A2",
-"J^ c #B9AF9D",
-"K^ c #B8AC9A",
-"L^ c #B5A996",
-"M^ c #B3A592",
-"N^ c #B0A38C",
-"O^ c #AB9F86",
-"P^ c #A89981",
-"Q^ c #A19179",
-"R^ c #96826C",
-"S^ c #8C745E",
-"T^ c #826751",
-"U^ c #80644E",
-"V^ c #7E644C",
-"W^ c #7C644A",
-"X^ c #7F684E",
-"Y^ c #887259",
-"Z^ c #937E66",
-"`^ c #98866E",
-" / c #A09078",
-"./ c #A7987F",
-"+/ c #AB9F82",
-"@/ c #ABA080",
-"#/ c #A89E7E",
-"$/ c #A59A7B",
-"%/ c #A4987B",
-"&/ c #A5997B",
-"*/ c #9F9374",
-"=/ c #9A8E70",
-"-/ c #998E6F",
-";/ c #9C9272",
-">/ c #9E9476",
-",/ c #9E9578",
-"'/ c #968D6F",
-")/ c #8E8468",
-"!/ c #8E846B",
-"~/ c #91876F",
-"{/ c #948A72",
-"]/ c #918770",
-"^/ c #898067",
-"// c #827B61",
-"(/ c #827A62",
-"_/ c #807962",
-":/ c #7E7761",
-"</ c #7F7861",
-"[/ c #807A62",
-"}/ c #7E7A62",
-"|/ c #807B63",
-"1/ c #7F7A62",
-"2/ c #807C61",
-"3/ c #837E64",
-"4/ c #817E64",
-"5/ c #807C62",
-"6/ c #7E7B60",
-"7/ c #7F7E63",
-"8/ c #7F8064",
-"9/ c #808064",
-"0/ c #7D7E62",
-"a/ c #7E7E64",
-"b/ c #808165",
-"c/ c #808266",
-"d/ c #808164",
-"e/ c #828464",
-"f/ c #5F5F50",
-"g/ c #69694D",
-"h/ c #6E6E52",
-"i/ c #78785A",
-"j/ c #7F7F5F",
-"k/ c #5E5E4E",
-"l/ c #787C63",
-"m/ c #7C8067",
-"n/ c #7A7D64",
-"o/ c #7F9084",
-"p/ c #7E8F81",
-"q/ c #809185",
-"r/ c #7C8E80",
-"s/ c #7C8D80",
-"t/ c #7A8C7E",
-"u/ c #788A7D",
-"v/ c #75887C",
-"w/ c #76887C",
-"x/ c #73867A",
-"y/ c #717E71",
-"z/ c #717F72",
-"A/ c #6E7D6F",
-"B/ c #6D7B6D",
-"C/ c #6C7A6D",
-"D/ c #6A776C",
-"E/ c #6A786C",
-"F/ c #707D6F",
-"G/ c #6F7B6E",
-"H/ c #6E7C6D",
-"I/ c #6F7D6E",
-"J/ c #7A8474",
-"K/ c #7E8878",
-"L/ c #80887A",
-"M/ c #88917F",
-"N/ c #8B927F",
-"O/ c #89917F",
-"P/ c #878E7C",
-"Q/ c #888E7D",
-"R/ c #868B7A",
-"S/ c #7D8473",
-"T/ c #7E8573",
-"U/ c #7D8472",
-"V/ c #868A7C",
-"W/ c #898E80",
-"X/ c #8C9181",
-"Y/ c #8D9282",
-"Z/ c #8E9384",
-"`/ c #909585",
-" ( c #929688",
-".( c #95998A",
-"+( c #939487",
-"@( c #939587",
-"#( c #949886",
-"$( c #959886",
-"%( c #969886",
-"&( c #989887",
-"*( c #979684",
-"=( c #969580",
-"-( c #96957F",
-";( c #95947C",
-">( c #95937A",
-",( c #949275",
-"'( c #959373",
-")( c #969272",
-"!( c #979374",
-"~( c #979273",
-"{( c #989475",
-"]( c #9B9878",
-"^( c #9E9A7A",
-"/( c #A09C7C",
-"(( c #A2A07D",
-"_( c #A4A27F",
-":( c #A8A585",
-"<( c #ACA88A",
-"[( c #B1AE92",
-"}( c #BDBAA2",
-"|( c #BFBCA5",
-"1( c #C4BEA9",
-"2( c #C5BEA8",
-"3( c #C4BEA6",
-"4( c #C2BDA3",
-"5( c #C0BDA1",
-"6( c #C0BC9F",
-"7( c #BFBB9C",
-"8( c #C0BB9C",
-"9( c #BFBA98",
-"0( c #BFB997",
-"a( c #BFB897",
-"b( c #BFB99A",
-"c( c #BEB798",
-"d( c #BDB699",
-"e( c #BEB79A",
-"f( c #BEB89E",
-"g( c #C1B9A4",
-"h( c #C5BCA7",
-"i( c #C2BAA7",
-"j( c #C2BAA8",
-"k( c #C2B8AA",
-"l( c #C0B7A9",
-"m( c #BDB6A8",
-"n( c #BCB5A6",
-"o( c #BAB3A4",
-"p( c #BCB3A4",
-"q( c #BCB2A2",
-"r( c #BBB09E",
-"s( c #B9AD9B",
-"t( c #B7AA98",
-"u( c #B4A692",
-"v( c #B0A38A",
-"w( c #AC9F86",
-"x( c #AA9A82",
-"y( c #A28F79",
-"z( c #99826C",
-"A( c #8E745F",
-"B( c #876A55",
-"C( c #82674F",
-"D( c #7E664C",
-"E( c #7E674C",
-"F( c #887257",
-"G( c #8E7960",
-"H( c #96836B",
-"I( c #A08E74",
-"J( c #A6987D",
-"K( c #AA9E7F",
-"L( c #A89C7E",
-"M( c #A4987A",
-"N( c #A09475",
-"O( c #998C6E",
-"P( c #9C9072",
-"Q( c #988C6E",
-"R( c #978A6D",
-"S( c #978B6D",
-"T( c #9C9172",
-"U( c #9F9476",
-"V( c #9A9272",
-"W( c #968C71",
-"X( c #91866D",
-"Y( c #8F866C",
-"Z( c #978D74",
-"`( c #938A71",
-" _ c #8E846D",
-"._ c #887E66",
-"+_ c #867C62",
-"@_ c #847C63",
-"#_ c #807961",
-"$_ c #7E7861",
-"%_ c #7F7B62",
-"&_ c #827E65",
-"*_ c #7E7A60",
-"=_ c #7F7C61",
-"-_ c #807E63",
-";_ c #7D7E63",
-">_ c #7E7F64",
-",_ c #7E8165",
-"'_ c #808264",
-")_ c #848464",
-"!_ c #5E6050",
-"~_ c #6A6A4E",
-"{_ c #6E6E53",
-"]_ c #747354",
-"^_ c #7A7A5A",
-"/_ c #5B5C4B",
-"(_ c #777A61",
-"__ c #7B7F66",
-":_ c #80846A",
-"<_ c #7E9082",
-"[_ c #5E6660",
-"}_ c #7A8B7E",
-"|_ c #7E9183",
-"1_ c #819185",
-"2_ c #7F9183",
-"3_ c #7D8F81",
-"4_ c #7B8C7F",
-"5_ c #77887C",
-"6_ c #74867A",
-"7_ c #728579",
-"8_ c #718175",
-"9_ c #718176",
-"0_ c #718274",
-"a_ c #6D7A6E",
-"b_ c #6C796C",
-"c_ c #69786B",
-"d_ c #707C6F",
-"e_ c #707D6E",
-"f_ c #727E70",
-"g_ c #748072",
-"h_ c #798474",
-"i_ c #7D8777",
-"j_ c #848D7A",
-"k_ c #88917E",
-"l_ c #89927F",
-"m_ c #8D9381",
-"n_ c #8A927E",
-"o_ c #858C7B",
-"p_ c #868B7B",
-"q_ c #7E8473",
-"r_ c #7C8473",
-"s_ c #7D8476",
-"t_ c #828676",
-"u_ c #818576",
-"v_ c #818474",
-"w_ c #828776",
-"x_ c #838778",
-"y_ c #85887A",
-"z_ c #86887A",
-"A_ c #87897A",
-"B_ c #888A7D",
-"C_ c #86897B",
-"D_ c #87887C",
-"E_ c #878B7C",
-"F_ c #888B7C",
-"G_ c #878A7C",
-"H_ c #868A7B",
-"I_ c #84877A",
-"J_ c #848779",
-"K_ c #86887C",
-"L_ c #888B7D",
-"M_ c #888C7C",
-"N_ c #8B8D7F",
-"O_ c #8C8E80",
-"P_ c #8D8F81",
-"Q_ c #919284",
-"R_ c #939486",
-"S_ c #949587",
-"T_ c #959688",
-"U_ c #959587",
-"V_ c #95968A",
-"W_ c #949488",
-"X_ c #949487",
-"Y_ c #959487",
-"Z_ c #969687",
-"`_ c #959686",
-" : c #969786",
-".: c #969685",
-"+: c #979781",
-"@: c #989881",
-"#: c #989880",
-"$: c #98977D",
-"%: c #96957A",
-"&: c #959478",
-"*: c #959474",
-"=: c #979276",
-"-: c #999178",
-";: c #999079",
-">: c #9A937A",
-",: c #989076",
-"': c #999176",
-"): c #9C947A",
-"!: c #9F957C",
-"~: c #A1967D",
-"{: c #A3997F",
-"]: c #AA9F86",
-"^: c #AEA38A",
-"/: c #B4A992",
-"(: c #B8AE95",
-"_: c #BEB59B",
-":: c #BFB89E",
-"<: c #C1BCA3",
-"[: c #C4BEA5",
-"}: c #C5BEA5",
-"|: c #C4BDA4",
-"1: c #C2BBA3",
-"2: c #C5BBA3",
-"3: c #C2B89E",
-"4: c #C0B79C",
-"5: c #C0B69C",
-"6: c #C3B89E",
-"7: c #C2B79D",
-"8: c #C0B69B",
-"9: c #BEB398",
-"0: c #BFB597",
-"a: c #C2B898",
-"b: c #C7BCA0",
-"c: c #C6BAA0",
-"d: c #C6BAA2",
-"e: c #C6BAA6",
-"f: c #C6B9A8",
-"g: c #C4B7A8",
-"h: c #C2B6A8",
-"i: c #C1B7A8",
-"j: c #C0B5A6",
-"k: c #C1B6A8",
-"l: c #C0B4A6",
-"m: c #BEB2A3",
-"n: c #BCB0A1",
-"o: c #BAAEA0",
-"p: c #B8AA96",
-"q: c #B4A78E",
-"r: c #B2A38A",
-"s: c #AF9F87",
-"t: c #AA9681",
-"u: c #A38D79",
-"v: c #9A826E",
-"w: c #917663",
-"x: c #8A6D5A",
-"y: c #866753",
-"z: c #846551",
-"A: c #836450",
-"B: c #846550",
-"C: c #907460",
-"D: c #997F6B",
-"E: c #A28C77",
-"F: c #A6967A",
-"G: c #AC9D80",
-"H: c #A99E80",
-"I: c #A69C7D",
-"J: c #A39979",
-"K: c #A19876",
-"L: c #A09873",
-"M: c #9F9674",
-"N: c #9C8F70",
-"O: c #97896C",
-"P: c #96896B",
-"Q: c #948669",
-"R: c #978B6E",
-"S: c #988E6F",
-"T: c #9B9272",
-"U: c #9A9072",
-"V: c #968C6E",
-"W: c #958B6D",
-"X: c #928A6C",
-"Y: c #92896C",
-"Z: c #92886C",
-"`: c #8E8669",
-" < c #898164",
-".< c #857D60",
-"+< c #827A61",
-"@< c #817A63",
-"#< c #827A65",
-"$< c #7F7864",
-"%< c #7E7864",
-"&< c #7D7A63",
-"*< c #7E7A63",
-"=< c #7E7C64",
-"-< c #807D66",
-";< c #807E68",
-">< c #7E7C63",
-",< c #7F7D63",
-"'< c #827F66",
-")< c #828067",
-"!< c #7F7C64",
-"~< c #7D7C63",
-"{< c #807F67",
-"]< c #83826A",
-"^< c #82826B",
-"/< c #606053",
-"(< c #6D6D58",
-"_< c #6D6D56",
-":< c #78765E",
-"<< c #5A594E",
-"[< c #73735D",
-"}< c #7B7C64",
-"|< c #84866B",
-"1< c #76877B",
-"2< c #5D6660",
-"3< c #809083",
-"4< c #748579",
-"5< c #728478",
-"6< c #718276",
-"7< c #6E7B6F",
-"8< c #6A796C",
-"9< c #707E6F",
-"0< c #7E8777",
-"a< c #828C7A",
-"b< c #868F7E",
-"c< c #878F7E",
-"d< c #8C9480",
-"e< c #8A907E",
-"f< c #8A917E",
-"g< c #89907E",
-"h< c #8A917F",
-"i< c #878D7C",
-"j< c #7C8472",
-"k< c #7B8271",
-"l< c #7A7F72",
-"m< c #787E71",
-"n< c #7C8072",
-"o< c #7E8071",
-"p< c #7D8071",
-"q< c #7E8072",
-"r< c #808374",
-"s< c #818574",
-"t< c #818475",
-"u< c #838576",
-"v< c #838676",
-"w< c #87897B",
-"x< c #86897A",
-"y< c #848879",
-"z< c #848679",
-"A< c #828578",
-"B< c #828577",
-"C< c #838678",
-"D< c #85867A",
-"E< c #84867A",
-"F< c #86877B",
-"G< c #8B8C7F",
-"H< c #8C8C7F",
-"I< c #8E8F80",
-"J< c #919283",
-"K< c #939385",
-"L< c #949486",
-"M< c #949385",
-"N< c #949485",
-"O< c #949484",
-"P< c #959583",
-"Q< c #969684",
-"R< c #949580",
-"S< c #959480",
-"T< c #95947F",
-"U< c #96967E",
-"V< c #96967F",
-"W< c #96967B",
-"X< c #969578",
-"Y< c #969375",
-"Z< c #989276",
-"`< c #989078",
-" [ c #988F77",
-".[ c #988F76",
-"+[ c #999076",
-"@[ c #988F75",
-"#[ c #998E75",
-"$[ c #9B9177",
-"%[ c #9C9279",
-"&[ c #9E927B",
-"*[ c #A2967E",
-"=[ c #A69A82",
-"-[ c #ACA087",
-";[ c #B1A58C",
-">[ c #B6AB92",
-",[ c #BAB398",
-"'[ c #BBB69D",
-")[ c #C3BCA3",
-"![ c #C4BCA4",
-"~[ c #C6BEA5",
-"{[ c #C6BEA6",
-"][ c #C5BDA4",
-"^[ c #C6BDA4",
-"/[ c #C4BAA0",
-"([ c #C0B89C",
-"_[ c #C0B49A",
-":[ c #C2B69D",
-"<[ c #C4B89E",
-"[[ c #C1B59C",
-"}[ c #C0B497",
-"|[ c #BFB495",
-"1[ c #C3B799",
-"2[ c #C4B89D",
-"3[ c #C6B9A2",
-"4[ c #C7BAA5",
-"5[ c #C7BBA8",
-"6[ c #C6BAA8",
-"7[ c #C5B9AA",
-"8[ c #C3B7A8",
-"9[ c #C1B6A6",
-"0[ c #C2B7A8",
-"a[ c #BFB4A5",
-"b[ c #BBAEA0",
-"c[ c #B9AD98",
-"d[ c #B8AA94",
-"e[ c #B6A792",
-"f[ c #B4A48E",
-"g[ c #B0A088",
-"h[ c #AB9881",
-"i[ c #A48E78",
-"j[ c #9B826E",
-"k[ c #947864",
-"l[ c #8C6E5B",
-"m[ c #886B57",
-"n[ c #866955",
-"o[ c #866854",
-"p[ c #826450",
-"q[ c #826550",
-"r[ c #8E735F",
-"s[ c #9A846E",
-"t[ c #9F8C73",
-"u[ c #A6967B",
-"v[ c #A7997E",
-"w[ c #A6997D",
-"x[ c #A3987A",
-"y[ c #A19676",
-"z[ c #A29778",
-"A[ c #9F9273",
-"B[ c #97896B",
-"C[ c #96896C",
-"D[ c #94876B",
-"E[ c #94886C",
-"F[ c #978D6E",
-"G[ c #988F70",
-"H[ c #998F72",
-"I[ c #92886B",
-"J[ c #8F8567",
-"K[ c #90876A",
-"L[ c #8D8468",
-"M[ c #877F62",
-"N[ c #847C62",
-"O[ c #807861",
-"P[ c #827A66",
-"Q[ c #827A68",
-"R[ c #7F7A66",
-"S[ c #7F7B64",
-"T[ c #7F7C65",
-"U[ c #807C67",
-"V[ c #827E68",
-"W[ c #827F6A",
-"X[ c #7E7B63",
-"Y[ c #807D64",
-"Z[ c #827E66",
-"`[ c #828068",
-" } c #848068",
-".} c #807E65",
-"+} c #807E66",
-"@} c #7F7F66",
-"#} c #828169",
-"$} c #605F54",
-"%} c #6E6E59",
-"&} c #6E6E57",
-"*} c #727059",
-"=} c #77755E",
-"-} c #59584C",
-";} c #777861",
-">} c #84856B",
-",} c #75867A",
-"'} c #5C655E",
-")} c #6D7D71",
-"!} c #829385",
-"~} c #7A8C7F",
-"{} c #78897D",
-"]} c #77897C",
-"^} c #76877C",
-"/} c #728479",
-"(} c #728274",
-"_} c #6F7C70",
-":} c #6B7A6D",
-"<} c #6A7A6C",
-"[} c #717E72",
-"}} c #727E71",
-"|} c #758174",
-"1} c #768274",
-"2} c #798374",
-"3} c #7B8575",
-"4} c #818A7A",
-"5} c #87907E",
-"6} c #868F7D",
-"7} c #89917E",
-"8} c #808977",
-"9} c #7A7E6F",
-"0} c #7A7E6E",
-"a} c #7A7E70",
-"b} c #7C7F70",
-"c} c #7E8272",
-"d} c #7E8172",
-"e} c #7F8172",
-"f} c #808272",
-"g} c #7F8273",
-"h} c #808273",
-"i} c #838677",
-"j} c #828477",
-"k} c #818274",
-"l} c #808474",
-"m} c #808276",
-"n} c #808375",
-"o} c #828478",
-"p} c #838578",
-"q} c #848578",
-"r} c #86867A",
-"s} c #8A8A7D",
-"t} c #888A7C",
-"u} c #898A7D",
-"v} c #8C8C7E",
-"w} c #8E8E7F",
-"x} c #90907F",
-"y} c #929381",
-"z} c #93937E",
-"A} c #93927C",
-"B} c #92927C",
-"C} c #94947E",
-"D} c #91917A",
-"E} c #92927A",
-"F} c #92917A",
-"G} c #929078",
-"H} c #929076",
-"I} c #928E73",
-"J} c #928F73",
-"K} c #949072",
-"L} c #968F74",
-"M} c #968E76",
-"N} c #958E74",
-"O} c #968B72",
-"P} c #978C73",
-"Q} c #989077",
-"R} c #9A8F77",
-"S} c #9C9079",
-"T} c #9E927A",
-"U} c #A1947C",
-"V} c #A2967C",
-"W} c #A99E84",
-"X} c #B0A58E",
-"Y} c #B3AA93",
-"Z} c #BAB199",
-"`} c #BFB69E",
-" | c #C0B79E",
-".| c #C3B9A1",
-"+| c #C4BBA3",
-"@| c #C4BBA2",
-"#| c #C4BBA1",
-"$| c #C3B89F",
-"%| c #C2B69E",
-"&| c #C0B298",
-"*| c #BDB197",
-"=| c #C1B49B",
-"-| c #C3B79A",
-";| c #C2B696",
-">| c #C2B496",
-",| c #C0B297",
-"'| c #C1B49A",
-")| c #C4B6A0",
-"!| c #C4B8A2",
-"~| c #C4B8A5",
-"{| c #C5B8A8",
-"]| c #C3B8A6",
-"^| c #C2B7A4",
-"/| c #C2B7A5",
-"(| c #C2B6A4",
-"_| c #BFB5A2",
-":| c #BCB2A1",
-"<| c #BAAC9D",
-"[| c #B8AA9A",
-"}| c #B8A997",
-"|| c #B6A694",
-"1| c #B2A18C",
-"2| c #AF9D84",
-"3| c #AA947D",
-"4| c #A28E74",
-"5| c #9C846E",
-"6| c #947865",
-"7| c #8D705C",
-"8| c #896D58",
-"9| c #856854",
-"0| c #8C715A",
-"a| c #947E65",
-"b| c #9D8B72",
-"c| c #A39479",
-"d| c #A5967A",
-"e| c #A39578",
-"f| c #A09576",
-"g| c #9F9474",
-"h| c #A09376",
-"i| c #9E9172",
-"j| c #9B8E70",
-"k| c #94876A",
-"l| c #928467",
-"m| c #928569",
-"n| c #94896C",
-"o| c #999073",
-"p| c #8F8466",
-"q| c #8E8467",
-"r| c #90886A",
-"s| c #8A8265",
-"t| c #847B60",
-"u| c #827960",
-"v| c #807A63",
-"w| c #817B65",
-"x| c #837C66",
-"y| c #827C66",
-"z| c #817D67",
-"A| c #817E68",
-"B| c #827E6A",
-"C| c #837F6A",
-"D| c #84806A",
-"E| c #7F7C63",
-"F| c #807C63",
-"G| c #817E65",
-"H| c #838068",
-"I| c #84826C",
-"J| c #70705B",
-"K| c #71705A",
-"L| c #74725C",
-"M| c #72725A",
-"N| c #65654E",
-"O| c #72725B",
-"P| c #828268",
-"Q| c #6D7C71",
-"R| c #7E9083",
-"S| c #798B7E",
-"T| c #7B8C7E",
-"U| c #7A897C",
-"V| c #78887D",
-"W| c #75867B",
-"X| c #738072",
-"Y| c #6D7B6E",
-"Z| c #748274",
-"`| c #758173",
-" 1 c #748074",
-".1 c #748174",
-"+1 c #778375",
-"@1 c #798477",
-"#1 c #7A8576",
-"$1 c #7E8778",
-"%1 c #818B79",
-"&1 c #818978",
-"*1 c #7D8574",
-"=1 c #757C6F",
-"-1 c #767D6F",
-";1 c #787C6E",
-">1 c #797D6E",
-",1 c #7F8171",
-"'1 c #808275",
-")1 c #7D7F71",
-"!1 c #7D7E70",
-"~1 c #7D7F70",
-"{1 c #7C7E70",
-"]1 c #7C7D6F",
-"^1 c #7B7C6E",
-"/1 c #7A7C6E",
-"(1 c #7E8073",
-"_1 c #818276",
-":1 c #828276",
-"<1 c #838377",
-"[1 c #85857A",
-"}1 c #848479",
-"|1 c #86857A",
-"11 c #88887A",
-"21 c #8A897C",
-"31 c #8C8C7C",
-"41 c #8D8C78",
-"51 c #8E8E79",
-"61 c #90907B",
-"71 c #908F79",
-"81 c #8F9078",
-"91 c #908F76",
-"01 c #908F75",
-"a1 c #8D8C73",
-"b1 c #8E8C76",
-"c1 c #8D8A75",
-"d1 c #8C8A72",
-"e1 c #8C886E",
-"f1 c #8D886D",
-"g1 c #8B866B",
-"h1 c #8B8669",
-"i1 c #8D866B",
-"j1 c #90856D",
-"k1 c #90866E",
-"l1 c #91866E",
-"m1 c #948971",
-"n1 c #92876E",
-"o1 c #948870",
-"p1 c #958971",
-"q1 c #978B74",
-"r1 c #9A8E76",
-"s1 c #9C9077",
-"t1 c #9E9179",
-"u1 c #A2937C",
-"v1 c #A3957D",
-"w1 c #A4957D",
-"x1 c #A5987F",
-"y1 c #AA9F84",
-"z1 c #ADA389",
-"A1 c #B4AC91",
-"B1 c #B8B094",
-"C1 c #BBB298",
-"D1 c #BFB59C",
-"E1 c #C0B59C",
-"F1 c #BFB49C",
-"G1 c #C1B69E",
-"H1 c #C1B69D",
-"I1 c #C1B49C",
-"J1 c #BDAF96",
-"K1 c #BAAD93",
-"L1 c #BAAE92",
-"M1 c #BEB293",
-"N1 c #C1B498",
-"O1 c #C1B399",
-"P1 c #BEB096",
-"Q1 c #BEB098",
-"R1 c #C1B29D",
-"S1 c #C1B29E",
-"T1 c #C1B49F",
-"U1 c #C1B6A0",
-"V1 c #C0B5A0",
-"W1 c #C0B4A0",
-"X1 c #BEB29E",
-"Y1 c #B8AE9D",
-"Z1 c #B8AC9E",
-"`1 c #B7A99F",
-" 2 c #B8AA9C",
-".2 c #B6A797",
-"+2 c #B4A290",
-"@2 c #B09F89",
-"#2 c #AE9D81",
-"$2 c #A9967A",
-"%2 c #A38C74",
-"&2 c #9C826E",
-"*2 c #937864",
-"=2 c #8E715E",
-"-2 c #866A56",
-";2 c #876C56",
-">2 c #856A54",
-",2 c #836752",
-"'2 c #81644E",
-")2 c #866B57",
-"!2 c #927A63",
-"~2 c #9A866D",
-"{2 c #9F8E74",
-"]2 c #A19276",
-"^2 c #A19377",
-"/2 c #A19478",
-"(2 c #9C8E72",
-"_2 c #98896E",
-":2 c #988A6E",
-"<2 c #97896D",
-"[2 c #928468",
-"}2 c #908366",
-"|2 c #908365",
-"12 c #8E8164",
-"22 c #918468",
-"32 c #92876B",
-"42 c #93886B",
-"52 c #92876A",
-"62 c #908468",
-"72 c #8D8266",
-"82 c #8A8164",
-"92 c #8B8266",
-"02 c #8B8466",
-"a2 c #878164",
-"b2 c #817A61",
-"c2 c #827B65",
-"d2 c #837D68",
-"e2 c #827F68",
-"f2 c #827F69",
-"g2 c #847F6A",
-"h2 c #86826C",
-"i2 c #84806B",
-"j2 c #84816A",
-"k2 c #605E52",
-"l2 c #72725E",
-"m2 c #72725D",
-"n2 c #73735C",
-"o2 c #5E5E46",
-"p2 c #6B6A53",
-"q2 c #7B7B62",
-"r2 c #748679",
-"s2 c #6C7C70",
-"t2 c #728176",
-"u2 c #859487",
-"v2 c #869488",
-"w2 c #819385",
-"x2 c #7D8D80",
-"y2 c #79897D",
-"z2 c #738376",
-"A2 c #758274",
-"B2 c #728073",
-"C2 c #707C70",
-"D2 c #778475",
-"E2 c #798576",
-"F2 c #788476",
-"G2 c #7A8578",
-"H2 c #7D877A",
-"I2 c #808A7A",
-"J2 c #81897A",
-"K2 c #868E7E",
-"L2 c #8B917F",
-"M2 c #787C6D",
-"N2 c #7A7D6E",
-"O2 c #7A7D6F",
-"P2 c #7C7E6F",
-"Q2 c #7B7E6E",
-"R2 c #8A8C7F",
-"S2 c #8D9084",
-"T2 c #8D8E82",
-"U2 c #8F9185",
-"V2 c #929488",
-"W2 c #8F9186",
-"X2 c #8E9085",
-"Y2 c #8E9084",
-"Z2 c #8E8E84",
-"`2 c #8C8D82",
-" 3 c #8D8E83",
-".3 c #8D8F83",
-"+3 c #919288",
-"@3 c #909287",
-"#3 c #929288",
-"$3 c #929287",
-"%3 c #919287",
-"&3 c #929388",
-"*3 c #94938A",
-"=3 c #94948A",
-"-3 c #95948B",
-";3 c #97958C",
-">3 c #99988C",
-",3 c #9A9A8A",
-"'3 c #9C9B8B",
-")3 c #9E9E8C",
-"!3 c #9C9C89",
-"~3 c #9C9B85",
-"{3 c #9B9A84",
-"]3 c #9B9A86",
-"^3 c #9A9886",
-"/3 c #9B9986",
-"(3 c #9A9784",
-"_3 c #9A9682",
-":3 c #9A9582",
-"<3 c #9A9681",
-"[3 c #9A957E",
-"}3 c #9A947E",
-"|3 c #99927E",
-"13 c #99907E",
-"23 c #99907C",
-"33 c #9B917E",
-"43 c #9E9481",
-"53 c #9F9582",
-"63 c #9F9482",
-"73 c #A09682",
-"83 c #A29985",
-"93 c #A59C87",
-"03 c #A79E8A",
-"a3 c #AA9F8C",
-"b3 c #AEA290",
-"c3 c #AEA28E",
-"d3 c #AFA290",
-"e3 c #B0A790",
-"f3 c #B2A892",
-"g3 c #B6AC96",
-"h3 c #BAAF9A",
-"i3 c #BDB29E",
-"j3 c #C1B8A2",
-"k3 c #C3BAA4",
-"l3 c #C5BCA9",
-"m3 c #C6BDAA",
-"n3 c #C7BEAA",
-"o3 c #C6BEAA",
-"p3 c #C6BCA8",
-"q3 c #C5BAA6",
-"r3 c #C2B7A1",
-"s3 c #C2B69F",
-"t3 c #C3B8A1",
-"u3 c #C6BBA6",
-"v3 c #C7BCA8",
-"w3 c #C5B9A5",
-"x3 c #C4B7A4",
-"y3 c #C6BDA9",
-"z3 c #C6BEAB",
-"A3 c #C5BCAB",
-"B3 c #C4BAAA",
-"C3 c #C4BAAB",
-"D3 c #C1B6AC",
-"E3 c #C0B5AC",
-"F3 c #C0B5AB",
-"G3 c #BFB4A8",
-"H3 c #BFB4A3",
-"I3 c #BDB1A0",
-"J3 c #B9AC98",
-"K3 c #B6A891",
-"L3 c #B4A28E",
-"M3 c #B19E8B",
-"N3 c #A89582",
-"O3 c #A28D7A",
-"P3 c #9C8572",
-"Q3 c #998370",
-"R3 c #988270",
-"S3 c #947C6A",
-"T3 c #947C6C",
-"U3 c #988171",
-"V3 c #A08C7A",
-"W3 c #A79682",
-"X3 c #AA9D88",
-"Y3 c #ACA08A",
-"Z3 c #ACA18B",
-"`3 c #A89E84",
-" 4 c #A69A83",
-".4 c #A69982",
-"+4 c #A29680",
-"@4 c #A0947E",
-"#4 c #9D927A",
-"$4 c #9E947B",
-"%4 c #9F947E",
-"&4 c #9C927B",
-"*4 c #9E947F",
-"=4 c #A09680",
-"-4 c #9F9780",
-";4 c #9E957E",
-">4 c #9A927B",
-",4 c #99927B",
-"'4 c #9A937C",
-")4 c #9A947C",
-"!4 c #99937C",
-"~4 c #97907B",
-"{4 c #958F7A",
-"]4 c #877F68",
-"^4 c #817961",
-"/4 c #827A64",
-"(4 c #847E69",
-"_4 c #85816C",
-":4 c #86816C",
-"<4 c #85816B",
-"[4 c #858069",
-"}4 c #817D65",
-"|4 c #817C64",
-"14 c #807C64",
-"24 c #817F66",
-"34 c #827F67",
-"44 c #5E5E51",
-"54 c #706F5A",
-"64 c #72715C",
-"74 c #77765F",
-"84 c #76765D",
-"94 c #5B5A42",
-"04 c #62624A",
-"a4 c #6C7B70",
-"b4 c #748478",
-"c4 c #6B7B6F",
-"d4 c #7F8F82",
-"e4 c #79887D",
-"f4 c #748678",
-"g4 c #768374",
-"h4 c #768476",
-"i4 c #748275",
-"j4 c #6E7D70",
-"k4 c #788376",
-"l4 c #7A8678",
-"m4 c #7B8679",
-"n4 c #7C887C",
-"o4 c #7D887C",
-"p4 c #7F8A7C",
-"q4 c #808B7C",
-"r4 c #828C7C",
-"s4 c #838C7B",
-"t4 c #848D7B",
-"u4 c #818A79",
-"v4 c #7C8474",
-"w4 c #7C8373",
-"x4 c #797F6F",
-"y4 c #777E70",
-"z4 c #787D6F",
-"A4 c #787B6D",
-"B4 c #787B6C",
-"C4 c #777B6C",
-"D4 c #797C6E",
-"E4 c #7B7D6E",
-"F4 c #7C7D6E",
-"G4 c #797C6C",
-"H4 c #797C6D",
-"I4 c #828178",
-"J4 c #636259",
-"K4 c #636359",
-"L4 c #64635A",
-"M4 c #65635B",
-"N4 c #67665E",
-"O4 c #68665E",
-"P4 c #65645B",
-"Q4 c #63625A",
-"R4 c #636159",
-"S4 c #64625A",
-"T4 c #64645B",
-"U4 c #67645D",
-"V4 c #66645C",
-"W4 c #66635B",
-"X4 c #68645C",
-"Y4 c #69665F",
-"Z4 c #6A675F",
-"`4 c #6A6760",
-" 5 c #6C6860",
-".5 c #6D6A60",
-"+5 c #6E6A5F",
-"@5 c #6F6B5F",
-"#5 c #706C5F",
-"$5 c #706C5E",
-"%5 c #83817A",
-"&5 c #6E6A5C",
-"*5 c #6F6B5C",
-"=5 c #6E6A5B",
-"-5 c #706A5C",
-";5 c #6F695A",
-">5 c #6E6858",
-",5 c #6F6958",
-"'5 c #6E6855",
-")5 c #6D6555",
-"!5 c #6D6455",
-"~5 c #6D6354",
-"{5 c #6D6253",
-"]5 c #6F6355",
-"^5 c #6E6253",
-"/5 c #6F6454",
-"(5 c #716556",
-"_5 c #736759",
-":5 c #786C5E",
-"<5 c #7A6E60",
-"[5 c #7C7062",
-"}5 c #7F7264",
-"|5 c #7F7364",
-"15 c #807664",
-"25 c #827766",
-"35 c #8E887F",
-"45 c #857969",
-"55 c #867A6A",
-"65 c #887C6C",
-"75 c #8A7F6F",
-"85 c #8C8271",
-"95 c #8D8474",
-"05 c #908677",
-"a5 c #918778",
-"b5 c #928878",
-"c5 c #928778",
-"d5 c #918676",
-"e5 c #908674",
-"f5 c #8F8472",
-"g5 c #908473",
-"h5 c #908574",
-"i5 c #908272",
-"j5 c #908472",
-"k5 c #908572",
-"l5 c #908673",
-"m5 c #908777",
-"n5 c #908678",
-"o5 c #908578",
-"p5 c #908579",
-"q5 c #8F8479",
-"r5 c #8E837A",
-"s5 c #8C827A",
-"t5 c #8D827A",
-"u5 c #8C8178",
-"v5 c #8C8176",
-"w5 c #8B8073",
-"x5 c #8A7D70",
-"y5 c #86796C",
-"z5 c #847668",
-"A5 c #847465",
-"B5 c #807062",
-"C5 c #7C6B5C",
-"D5 c #756354",
-"E5 c #705E4F",
-"F5 c #6E5B4C",
-"G5 c #6D5A4C",
-"H5 c #6C594C",
-"I5 c #6B564A",
-"J5 c #695246",
-"K5 c #6C574B",
-"L5 c #725F52",
-"M5 c #776658",
-"N5 c #7C6E5E",
-"O5 c #7B6F5E",
-"P5 c #7B6F5C",
-"Q5 c #796D5B",
-"R5 c #786C5A",
-"S5 c #766A58",
-"T5 c #756857",
-"U5 c #726756",
-"V5 c #706452",
-"W5 c #726655",
-"X5 c #6F6452",
-"Y5 c #706553",
-"Z5 c #716756",
-"`5 c #726857",
-" 6 c #706755",
-".6 c #6E6553",
-"+6 c #6C6452",
-"@6 c #6E6654",
-"#6 c #706856",
-"$6 c #6E6755",
-"%6 c #6C6454",
-"&6 c #948E7A",
-"*6 c #837E69",
-"=6 c #827E69",
-"-6 c #86806A",
-";6 c #847E68",
-">6 c #838067",
-",6 c #605E54",
-"'6 c #6C6B56",
-")6 c #6F6F59",
-"!6 c #787760",
-"~6 c #78785F",
-"{6 c #595840",
-"]6 c #5D5C44",
-"^6 c #69684E",
-"/6 c #6C7A6F",
-"(6 c #869587",
-"_6 c #7E8E82",
-":6 c #7F9082",
-"<6 c #809082",
-"[6 c #7F8E81",
-"}6 c #77897D",
-"|6 c #77877A",
-"16 c #788578",
-"26 c #738074",
-"36 c #778477",
-"46 c #7C877B",
-"56 c #828D7E",
-"66 c #848D7E",
-"76 c #858D7D",
-"86 c #87917E",
-"96 c #87907D",
-"06 c #828A7B",
-"a6 c #818B7A",
-"b6 c #7E8675",
-"c6 c #767A6C",
-"d6 c #797A6C",
-"e6 c #76796B",
-"f6 c #76786A",
-"g6 c #818178",
-"h6 c #636258",
-"i6 c #66655C",
-"j6 c #64635B",
-"k6 c #626158",
-"l6 c #626058",
-"m6 c #606058",
-"n6 c #66645B",
-"o6 c #65635A",
-"p6 c #65625A",
-"q6 c #67645B",
-"r6 c #68655D",
-"s6 c #6A665E",
-"t6 c #6A665F",
-"u6 c #6B675F",
-"v6 c #6C685F",
-"w6 c #6C685E",
-"x6 c #6C685D",
-"y6 c #6E695E",
-"z6 c #83807A",
-"A6 c #6D685B",
-"B6 c #6E695B",
-"C6 c #6E685A",
-"D6 c #706A5B",
-"E6 c #706A5A",
-"F6 c #706A58",
-"G6 c #6F6756",
-"H6 c #6E6456",
-"I6 c #6E6355",
-"J6 c #6E6354",
-"K6 c #6D6152",
-"L6 c #6D6252",
-"M6 c #6C6050",
-"N6 c #6D6051",
-"O6 c #6F6152",
-"P6 c #726455",
-"Q6 c #756758",
-"R6 c #786B5C",
-"S6 c #7C7061",
-"T6 c #7F7263",
-"U6 c #807463",
-"V6 c #817562",
-"W6 c #837765",
-"X6 c #8E887E",
-"Y6 c #847765",
-"Z6 c #847866",
-"`6 c #877A68",
-" 7 c #897D6C",
-".7 c #8A8070",
-"+7 c #8F8475",
-"@7 c #908576",
-"#7 c #918678",
-"$7 c #938879",
-"%7 c #938878",
-"&7 c #928777",
-"*7 c #928776",
-"=7 c #928774",
-"-7 c #918672",
-";7 c #908471",
-">7 c #8E826E",
-",7 c #8E8370",
-"'7 c #908676",
-")7 c #908478",
-"!7 c #90847A",
-"~7 c #8F847A",
-"{7 c #90857A",
-"]7 c #8F8379",
-"^7 c #8E8277",
-"/7 c #8D8176",
-"(7 c #8C8075",
-"_7 c #8A7C72",
-":7 c #88796C",
-"<7 c #867767",
-"[7 c #837263",
-"}7 c #807060",
-"|7 c #7C6C5C",
-"17 c #766555",
-"27 c #725F4E",
-"37 c #6E5A4A",
-"47 c #6C574A",
-"57 c #6C564C",
-"67 c #6A5449",
-"77 c #6A5448",
-"87 c #715F50",
-"97 c #786859",
-"07 c #786A5A",
-"a7 c #7A6C5B",
-"b7 c #796C5A",
-"c7 c #736755",
-"d7 c #6E6250",
-"e7 c #6D6250",
-"f7 c #6E6452",
-"g7 c #6F6453",
-"h7 c #706654",
-"i7 c #706655",
-"j7 c #6E6453",
-"k7 c #6D6451",
-"l7 c #6E6652",
-"m7 c #6F6754",
-"n7 c #6F6755",
-"o7 c #6D6655",
-"p7 c #948D7A",
-"q7 c #7E765F",
-"r7 c #817A62",
-"s7 c #827C68",
-"t7 c #837E6A",
-"u7 c #847F69",
-"v7 c #86826D",
-"w7 c #87846D",
-"x7 c #88846E",
-"y7 c #89846D",
-"z7 c #857F69",
-"A7 c #5D5C50",
-"B7 c #6A6954",
-"C7 c #6E6D58",
-"D7 c #787861",
-"E7 c #7B7A61",
-"F7 c #57574C",
-"G7 c #5A5941",
-"H7 c #585840",
-"I7 c #5F5E45",
-"J7 c #6B796E",
-"K7 c #7C8C7E",
-"L7 c #7D8E80",
-"M7 c #809183",
-"N7 c #7E8E80",
-"O7 c #79897C",
-"P7 c #7A877A",
-"Q7 c #7A887A",
-"R7 c #79867A",
-"S7 c #768477",
-"T7 c #7E8A7E",
-"U7 c #828E80",
-"V7 c #858F80",
-"W7 c #858E7E",
-"X7 c #86907E",
-"Y7 c #7E8676",
-"Z7 c #7B8171",
-"`7 c #7A8170",
-" 8 c #767D70",
-".8 c #7A7C6D",
-"+8 c #747668",
-"@8 c #808077",
-"#8 c #63635A",
-"$8 c #5F6057",
-"%8 c #606057",
-"&8 c #636158",
-"*8 c #646158",
-"=8 c #65615A",
-"-8 c #66625A",
-";8 c #67635C",
-">8 c #67645C",
-",8 c #69655C",
-"'8 c #6A665C",
-")8 c #6B665D",
-"!8 c #6B665C",
-"~8 c #83817C",
-"{8 c #6D675A",
-"]8 c #6E685C",
-"^8 c #716A5A",
-"/8 c #716A59",
-"(8 c #716A58",
-"_8 c #726958",
-":8 c #716658",
-"<8 c #706457",
-"[8 c #706455",
-"}8 c #706454",
-"|8 c #706355",
-"18 c #6E6052",
-"28 c #6E6051",
-"38 c #6D6050",
-"48 c #6E5F50",
-"58 c #716253",
-"68 c #756657",
-"78 c #7B6E5F",
-"88 c #7E7060",
-"98 c #807462",
-"08 c #827663",
-"a8 c #837664",
-"b8 c #847865",
-"c8 c #847664",
-"d8 c #847764",
-"e8 c #847867",
-"f8 c #877A6A",
-"g8 c #8B7F70",
-"h8 c #8F8273",
-"i8 c #908475",
-"j8 c #918576",
-"k8 c #928677",
-"l8 c #938876",
-"m8 c #948876",
-"n8 c #938875",
-"o8 c #928674",
-"p8 c #928673",
-"q8 c #918572",
-"r8 c #908570",
-"s8 c #8E836F",
-"t8 c #8E8270",
-"u8 c #908474",
-"v8 c #908679",
-"w8 c #90867A",
-"x8 c #908479",
-"y8 c #8E8278",
-"z8 c #8D8077",
-"A8 c #8C7E76",
-"B8 c #8C7E72",
-"C8 c #8A7C6C",
-"D8 c #887868",
-"E8 c #837363",
-"F8 c #7C6C5B",
-"G8 c #786656",
-"H8 c #705E4E",
-"I8 c #6D564B",
-"J8 c #6C544A",
-"K8 c #6A5348",
-"L8 c #6A5347",
-"M8 c #6C594B",
-"N8 c #715E50",
-"O8 c #746556",
-"P8 c #786959",
-"Q8 c #786B5A",
-"R8 c #766957",
-"S8 c #746856",
-"T8 c #746756",
-"U8 c #706250",
-"V8 c #6E6150",
-"W8 c #6B604E",
-"X8 c #6C614F",
-"Y8 c #6E6351",
-"Z8 c #706453",
-"`8 c #706754",
-" 9 c #6E6651",
-".9 c #6D6653",
-"+9 c #6E6754",
-"@9 c #928D78",
-"#9 c #807A65",
-"$9 c #847E6A",
-"%9 c #86816B",
-"&9 c #88846F",
-"*9 c #88856E",
-"=9 c #88826C",
-"-9 c #87826A",
-";9 c #86816A",
-">9 c #827E67",
-",9 c #5C5B4F",
-"'9 c #696853",
-")9 c #76745E",
-"!9 c #59584D",
-"~9 c #5B5B43",
-"{9 c #59583F",
-"]9 c #849084",
-"^9 c #828F84",
-"/9 c #545A55",
-"(9 c #6C786D",
-"_9 c #748075",
-":9 c #7B8A7D",
-"<9 c #5B645C",
-"[9 c #6C7B6F",
-"}9 c #7E8D80",
-"|9 c #808E82",
-"19 c #7C887D",
-"29 c #7B887D",
-"39 c #7A867C",
-"49 c #78867C",
-"59 c #77857A",
-"69 c #758479",
-"79 c #748276",
-"89 c #788478",
-"99 c #808E7F",
-"09 c #808C7F",
-"a9 c #848F80",
-"b9 c #848F81",
-"c9 c #879181",
-"d9 c #869080",
-"e9 c #86907F",
-"f9 c #87917F",
-"g9 c #87907F",
-"h9 c #7F8777",
-"i9 c #7C8170",
-"j9 c #797D6F",
-"k9 c #797B6C",
-"l9 c #77796A",
-"m9 c #757668",
-"n9 c #616058",
-"o9 c #64615A",
-"p9 c #636058",
-"q9 c #646059",
-"r9 c #64605A",
-"s9 c #65605A",
-"t9 c #68625A",
-"u9 c #69635B",
-"v9 c #6A635C",
-"w9 c #827E7A",
-"x9 c #6C665E",
-"y9 c #6D665C",
-"z9 c #6D675B",
-"A9 c #6F685C",
-"B9 c #706A5D",
-"C9 c #716A5C",
-"D9 c #726B5C",
-"E9 c #726A5A",
-"F9 c #746A5C",
-"G9 c #74695A",
-"H9 c #736958",
-"I9 c #746958",
-"J9 c #726453",
-"K9 c #726555",
-"L9 c #726456",
-"M9 c #716354",
-"N9 c #706253",
-"O9 c #706052",
-"P9 c #6F5F50",
-"Q9 c #705F50",
-"R9 c #736354",
-"S9 c #766758",
-"T9 c #7C6C5E",
-"U9 c #7F7162",
-"V9 c #8D867E",
-"W9 c #837465",
-"X9 c #847768",
-"Y9 c #857768",
-"Z9 c #857667",
-"`9 c #867768",
-" 0 c #8B7C6E",
-".0 c #8E8071",
-"+0 c #908273",
-"@0 c #928476",
-"#0 c #938576",
-"$0 c #928574",
-"%0 c #938574",
-"&0 c #948776",
-"*0 c #958877",
-"=0 c #948676",
-"-0 c #948574",
-";0 c #938573",
-">0 c #928472",
-",0 c #908170",
-"'0 c #90806F",
-")0 c #90816F",
-"!0 c #908271",
-"~0 c #928572",
-"{0 c #938575",
-"]0 c #928577",
-"^0 c #928578",
-"/0 c #918478",
-"(0 c #918279",
-"_0 c #90827A",
-":0 c #90827B",
-"<0 c #90807B",
-"[0 c #8F807A",
-"}0 c #8E8075",
-"|0 c #8B7E70",
-"10 c #877868",
-"20 c #827260",
-"30 c #7F705E",
-"40 c #756355",
-"50 c #715C4F",
-"60 c #6E584B",
-"70 c #6C5649",
-"80 c #6B5548",
-"90 c #6A5447",
-"00 c #6B5649",
-"a0 c #705C50",
-"b0 c #746356",
-"c0 c #776859",
-"d0 c #77695A",
-"e0 c #76695A",
-"f0 c #776A5B",
-"g0 c #736456",
-"h0 c #706252",
-"i0 c #6D5E50",
-"j0 c #6B5C4F",
-"k0 c #6A5E50",
-"l0 c #6C6051",
-"m0 c #6E6252",
-"n0 c #6F6354",
-"o0 c #716558",
-"p0 c #716657",
-"q0 c #6F6554",
-"r0 c #6D6351",
-"s0 c #6D6452",
-"t0 c #6D6654",
-"u0 c #938D76",
-"v0 c #7D765C",
-"w0 c #7D765A",
-"x0 c #7D765D",
-"y0 c #847E67",
-"z0 c #867F6A",
-"A0 c #87816E",
-"B0 c #888470",
-"C0 c #888472",
-"D0 c #888572",
-"E0 c #898672",
-"F0 c #888672",
-"G0 c #818065",
-"H0 c #7C7C60",
-"I0 c #7C7B5F",
-"J0 c #7C7B5E",
-"K0 c #5C5B4C",
-"L0 c #696752",
-"M0 c #6C6C56",
-"N0 c #74735E",
-"O0 c #787961",
-"P0 c #5C5B47",
-"Q0 c #585842",
-"R0 c #849083",
-"S0 c #828E84",
-"T0 c #5B635C",
-"U0 c #7D8C7E",
-"V0 c #7D8A7E",
-"W0 c #7C887E",
-"X0 c #79867B",
-"Y0 c #758376",
-"Z0 c #798679",
-"`0 c #808B7E",
-" a c #808D80",
-".a c #849080",
-"+a c #828F80",
-"@a c #869181",
-"#a c #879180",
-"$a c #899280",
-"%a c #838C7A",
-"&a c #7F8776",
-"*a c #7B8170",
-"=a c #7B7E6F",
-"-a c #787A6B",
-";a c #828279",
-">a c #616057",
-",a c #5F6056",
-"'a c #626057",
-")a c #615F57",
-"!a c #635F58",
-"~a c #646058",
-"{a c #656058",
-"]a c #656159",
-"^a c #666159",
-"/a c #807E7A",
-"(a c #69635A",
-"_a c #6B655B",
-":a c #6C665B",
-"<a c #6C665A",
-"[a c #71695C",
-"}a c #726A5B",
-"|a c #72695B",
-"1a c #766B5D",
-"2a c #766C5B",
-"3a c #776C5A",
-"4a c #766B5A",
-"5a c #746857",
-"6a c #746657",
-"7a c #746658",
-"8a c #726354",
-"9a c #746456",
-"0a c #746455",
-"aa c #726254",
-"ba c #726253",
-"ca c #756456",
-"da c #746354",
-"ea c #786658",
-"fa c #8A817A",
-"ga c #837364",
-"ha c #867869",
-"ia c #877869",
-"ja c #877768",
-"ka c #88786A",
-"la c #89786A",
-"ma c #8C7C6E",
-"na c #8F8071",
-"oa c #918274",
-"pa c #928473",
-"qa c #928272",
-"ra c #948675",
-"sa c #938472",
-"ta c #948674",
-"ua c #948573",
-"va c #938473",
-"wa c #928271",
-"xa c #928474",
-"ya c #928576",
-"za c #918477",
-"Aa c #928479",
-"Ba c #91847A",
-"Ca c #91827B",
-"Da c #91827C",
-"Ea c #908178",
-"Fa c #908175",
-"Ga c #8B7E6E",
-"Ha c #887B68",
-"Ia c #847563",
-"Ja c #7E6E5C",
-"Ka c #7A6959",
-"La c #766254",
-"Ma c #735B50",
-"Na c #6F584C",
-"Oa c #6C564A",
-"Pa c #6A5548",
-"Qa c #6A5648",
-"Ra c #6F5C4E",
-"Sa c #726052",
-"Ta c #78685A",
-"Ua c #796A5C",
-"Va c #78695C",
-"Wa c #746557",
-"Xa c #6A5B4D",
-"Ya c #6A5B4E",
-"Za c #6A5C4E",
-"`a c #6A5E4F",
-" b c #6B6250",
-".b c #6A6150",
-"+b c #8F8874",
-"@b c #7B745A",
-"#b c #7E765B",
-"$b c #7F775E",
-"%b c #807862",
-"&b c #837D66",
-"*b c #87826E",
-"=b c #8A8571",
-"-b c #888471",
-";b c #878471",
-">b c #8A8674",
-",b c #8A8774",
-"'b c #888571",
-")b c #87846E",
-"!b c #87836E",
-"~b c #85836C",
-"{b c #7E7C62",
-"]b c #7D7C5F",
-"^b c #7D7A5E",
-"/b c #5B5B4B",
-"(b c #6A6853",
-"_b c #73725C",
-":b c #787860",
-"<b c #58584D",
-"[b c #5F5E4A",
-"}b c #5C5B46",
-"|b c #5C5C44",
-"1b c #848F82",
-"2b c #838F84",
-"3b c #828F82",
-"4b c #6A766C",
-"5b c #7A887C",
-"6b c #7B8B7E",
-"7b c #6B7A6E",
-"8b c #809182",
-"9b c #7F8E82",
-"0b c #7C8B7F",
-"ab c #7D8B7E",
-"bb c #7E897E",
-"cb c #7B877D",
-"db c #778577",
-"eb c #758476",
-"fb c #818F80",
-"gb c #859081",
-"hb c #859282",
-"ib c #859283",
-"jb c #849082",
-"kb c #858F81",
-"lb c #879081",
-"mb c #8A9381",
-"nb c #7D8573",
-"ob c #7D8272",
-"pb c #77796B",
-"qb c #84847B",
-"rb c #605F57",
-"sb c #646159",
-"tb c #615E56",
-"ub c #615E57",
-"vb c #615E58",
-"wb c #635E58",
-"xb c #625E57",
-"yb c #615C57",
-"zb c #615C56",
-"Ab c #625C56",
-"Bb c #615C54",
-"Cb c #635D56",
-"Db c #625C55",
-"Eb c #635C55",
-"Fb c #645D56",
-"Gb c #7F7C78",
-"Hb c #666058",
-"Ib c #686158",
-"Jb c #6A645A",
-"Kb c #6C6459",
-"Lb c #6F665A",
-"Mb c #70675A",
-"Nb c #71675A",
-"Ob c #73695B",
-"Pb c #756A5C",
-"Qb c #766C5E",
-"Rb c #786C5D",
-"Sb c #786C5C",
-"Tb c #786C5B",
-"Ub c #786D5A",
-"Vb c #786B5B",
-"Wb c #776A5A",
-"Xb c #77685A",
-"Yb c #746558",
-"Zb c #766658",
-"`b c #766457",
-" c c #877E76",
-".c c #7A685A",
-"+c c #7D6B5C",
-"@c c #827262",
-"#c c #867667",
-"$c c #887869",
-"%c c #8A796C",
-"&c c #8A7A6C",
-"*c c #8A796A",
-"=c c #8A786A",
-"-c c #8E7C6E",
-";c c #918070",
-">c c #918270",
-",c c #938372",
-"'c c #948473",
-")c c #958674",
-"!c c #958675",
-"~c c #928372",
-"{c c #918271",
-"]c c #928374",
-"^c c #928477",
-"/c c #928478",
-"(c c #92847A",
-"_c c #92837B",
-":c c #92827A",
-"<c c #91837B",
-"[c c #90817A",
-"}c c #908177",
-"|c c #8F8072",
-"1c c #8C7E6E",
-"2c c #8A7C6B",
-"3c c #837362",
-"4c c #7D6C5A",
-"5c c #7B6858",
-"6c c #776054",
-"7c c #735B4F",
-"8c c #70584C",
-"9c c #6A5346",
-"0c c #695245",
-"ac c #695346",
-"bc c #6B5749",
-"cc c #6E5C4D",
-"dc c #736253",
-"ec c #756556",
-"fc c #78695B",
-"gc c #766759",
-"hc c #756658",
-"ic c #736455",
-"jc c #695B4C",
-"kc c #695A4C",
-"lc c #6D6352",
-"mc c #69604E",
-"nc c #8C846F",
-"oc c #766E55",
-"pc c #817A60",
-"qc c #837C64",
-"rc c #8A876F",
-"sc c #8A8670",
-"tc c #8A8671",
-"uc c #8B8873",
-"vc c #8A8772",
-"wc c #8C8873",
-"xc c #898670",
-"yc c #86836C",
-"zc c #807E62",
-"Ac c #7E7D60",
-"Bc c #7D7A5C",
-"Cc c #5B5A4B",
-"Dc c #6A6953",
-"Ec c #72705B",
-"Fc c #76755F",
-"Gc c #61614D",
-"Hc c #5F5F49",
-"Ic c #606048",
-"Jc c #818E81",
-"Kc c #727D72",
-"Lc c #79887B",
-"Mc c #7A8A7D",
-"Nc c #7C8B7E",
-"Oc c #859587",
-"Pc c #809283",
-"Qc c #829284",
-"Rc c #7D8D7F",
-"Sc c #7D887E",
-"Tc c #7D887D",
-"Uc c #788577",
-"Vc c #7E887C",
-"Wc c #869282",
-"Xc c #869384",
-"Yc c #859182",
-"Zc c #879182",
-"`c c #889482",
-" d c #899381",
-".d c #7A8271",
-"+d c #788070",
-"@d c #808674",
-"#d c #7E8373",
-"$d c #818375",
-"%d c #808274",
-"&d c #86867D",
-"*d c #67665D",
-"=d c #625F57",
-"-d c #605E57",
-";d c #605C57",
-">d c #625D57",
-",d c #625C57",
-"'d c #605C56",
-")d c #5F5B55",
-"!d c #5F5B54",
-"~d c #5E5A52",
-"{d c #5F5A52",
-"]d c #605A53",
-"^d c #615A52",
-"/d c #625A54",
-"(d c #7E7A77",
-"_d c #645E56",
-":d c #676058",
-"<d c #6A6159",
-"[d c #6B635A",
-"}d c #6D6459",
-"|d c #6F645A",
-"1d c #71665B",
-"2d c #72685B",
-"3d c #73685B",
-"4d c #74685B",
-"5d c #75695C",
-"6d c #776B5D",
-"7d c #796E5D",
-"8d c #7A6F5E",
-"9d c #7B6E60",
-"0d c #7B6D5E",
-"ad c #79695B",
-"bd c #79685A",
-"cd c #7B6A5B",
-"dd c #7A6758",
-"ed c #8A8079",
-"fd c #786456",
-"gd c #7A6657",
-"hd c #7C695A",
-"id c #826F61",
-"jd c #847364",
-"kd c #877667",
-"ld c #8B7A6C",
-"md c #8E7D6E",
-"nd c #8C7B6D",
-"od c #8C7A6C",
-"pd c #8C7B6B",
-"qd c #8F7D6D",
-"rd c #907F6E",
-"sd c #918170",
-"td c #91806F",
-"ud c #938271",
-"vd c #948272",
-"wd c #948472",
-"xd c #948372",
-"yd c #938273",
-"zd c #938374",
-"Ad c #938475",
-"Bd c #938477",
-"Cd c #938478",
-"Dd c #928378",
-"Ed c #928379",
-"Fd c #92827D",
-"Gd c #918179",
-"Hd c #908176",
-"Id c #8E7F6F",
-"Jd c #8A7B68",
-"Kd c #847562",
-"Ld c #806E5E",
-"Md c #7C675A",
-"Nd c #766053",
-"Od c #725B50",
-"Pd c #685345",
-"Qd c #6B5849",
-"Rd c #746457",
-"Sd c #6C5C4E",
-"Td c #6A5A4C",
-"Ud c #685A4C",
-"Vd c #6C6150",
-"Wd c #6C6250",
-"Xd c #6B6050",
-"Yd c #8A806B",
-"Zd c #72684F",
-"`d c #7B7258",
-" e c #827C60",
-".e c #847D65",
-"+e c #87816A",
-"@e c #89846C",
-"#e c #908A76",
-"$e c #8C8874",
-"%e c #8C8974",
-"&e c #8E8B78",
-"*e c #8A8872",
-"=e c #87856E",
-"-e c #838168",
-";e c #7E7C60",
-">e c #6D6B56",
-",e c #716F5A",
-"'e c #75755F",
-")e c #636250",
-"!e c #64634D",
-"~e c #64634B",
-"{e c #7F8D80",
-"]e c #6B766B",
-"^e c #727E73",
-"/e c #78877A",
-"(e c #6A796D",
-"_e c #7A8A7C",
-":e c #829485",
-"<e c #7E8C7F",
-"[e c #7F8C7F",
-"}e c #808C80",
-"|e c #7F8B80",
-"1e c #7E8A7F",
-"2e c #7E8B80",
-"3e c #808C81",
-"4e c #869082",
-"5e c #859082",
-"6e c #869081",
-"7e c #8A9482",
-"8e c #8B9482",
-"9e c #878F7F",
-"0e c #778070",
-"ae c #808376",
-"be c #888980",
-"ce c #68675E",
-"de c #615D57",
-"ee c #635E57",
-"fe c #605B55",
-"ge c #5E5952",
-"he c #5E5851",
-"ie c #5F5851",
-"je c #605952",
-"ke c #7E7A76",
-"le c #645C56",
-"me c #655C58",
-"ne c #665E58",
-"oe c #686058",
-"pe c #6C625A",
-"qe c #6D6258",
-"re c #70655A",
-"se c #72675C",
-"te c #73675B",
-"ue c #74675A",
-"ve c #75695B",
-"we c #766A5B",
-"xe c #786A5B",
-"ye c #796B5C",
-"ze c #7C6F60",
-"Ae c #7F7163",
-"Be c #7F7062",
-"Ce c #7E6F60",
-"De c #7D6E5F",
-"Ee c #7C6B5D",
-"Fe c #7A6A5B",
-"Ge c #7C6A5B",
-"He c #7D6C5C",
-"Ie c #8A827A",
-"Je c #7B6859",
-"Ke c #7B6758",
-"Le c #7A6557",
-"Me c #7C685A",
-"Ne c #7E6B5C",
-"Oe c #826F60",
-"Pe c #867464",
-"Qe c #897768",
-"Re c #8D7B6E",
-"Se c #8F7C6F",
-"Te c #907E70",
-"Ue c #907D70",
-"Ve c #8F7C6E",
-"We c #8F7C6B",
-"Xe c #8E7B6A",
-"Ye c #907E6E",
-"Ze c #907C6C",
-"`e c #907E6D",
-" f c #917F6E",
-".f c #928070",
-"+f c #928270",
-"@f c #938270",
-"#f c #958575",
-"$f c #948576",
-"%f c #948474",
-"&f c #928276",
-"*f c #928376",
-"=f c #928278",
-"-f c #93827B",
-";f c #91827A",
-">f c #908173",
-",f c #8E7E6E",
-"'f c #8A7A68",
-")f c #816D60",
-"!f c #7D685C",
-"~f c #786356",
-"{f c #6D574A",
-"]f c #695345",
-"^f c #6A5546",
-"/f c #726051",
-"(f c #726152",
-"_f c #726153",
-":f c #736355",
-"<f c #6E5E50",
-"[f c #6A5B4C",
-"}f c #68594A",
-"|f c #665848",
-"1f c #66584A",
-"2f c #685C4C",
-"3f c #6A5F4D",
-"4f c #6A604D",
-"5f c #6A604E",
-"6f c #6A604F",
-"7f c #897F6A",
-"8f c #70654D",
-"9f c #796F55",
-"0f c #80795E",
-"af c #8B856A",
-"bf c #888269",
-"cf c #89836B",
-"df c #8C8870",
-"ef c #8D8871",
-"ff c #908A77",
-"gf c #908C78",
-"hf c #888670",
-"if c #86846A",
-"jf c #828066",
-"kf c #7E7C5F",
-"lf c #65644E",
-"mf c #6D6A56",
-"nf c #706E59",
-"of c #64634F",
-"pf c #656550",
-"qf c #696850",
-"rf c #7E8C7E",
-"sf c #727E72",
-"tf c #79877A",
-"uf c #79887C",
-"vf c #808F81",
-"wf c #7E8D7F",
-"xf c #849081",
-"yf c #869284",
-"zf c #869283",
-"Af c #869180",
-"Bf c #889281",
-"Cf c #747E6E",
-"Df c #747D6E",
-"Ef c #747D6F",
-"Ff c #767F70",
-"Gf c #7A8270",
-"Hf c #82877A",
-"If c #7F8274",
-"Jf c #888880",
-"Kf c #696860",
-"Lf c #686760",
-"Mf c #63615A",
-"Nf c #646259",
-"Of c #605B56",
-"Pf c #5F5A55",
-"Qf c #5E5A53",
-"Rf c #5D5750",
-"Sf c #5D574F",
-"Tf c #5E5750",
-"Uf c #645A57",
-"Vf c #655B58",
-"Wf c #665C58",
-"Xf c #685E58",
-"Yf c #6B6059",
-"Zf c #6D625A",
-"`f c #6E635A",
-" g c #72665B",
-".g c #73665A",
-"+g c #74665A",
-"@g c #75675A",
-"#g c #76685A",
-"$g c #766859",
-"%g c #7A6C5D",
-"&g c #7E7061",
-"*g c #827264",
-"=g c #827364",
-"-g c #827062",
-";g c #817061",
-">g c #8C837C",
-",g c #7F6C5D",
-"'g c #7E6A5B",
-")g c #7C6658",
-"!g c #7C6758",
-"~g c #7D685A",
-"{g c #816C5E",
-"]g c #867264",
-"^g c #8A776A",
-"/g c #8D796C",
-"(g c #907C6E",
-"_g c #907E6F",
-":g c #907D6D",
-"<g c #907B6B",
-"[g c #907B6A",
-"}g c #8E7A69",
-"|g c #907C6B",
-"1g c #917C6B",
-"2g c #927E6D",
-"3g c #927F6F",
-"4g c #92806E",
-"5g c #948170",
-"6g c #968472",
-"7g c #968474",
-"8g c #968576",
-"9g c #948575",
-"0g c #938373",
-"ag c #938376",
-"bg c #948479",
-"cg c #92837A",
-"dg c #93847A",
-"eg c #918278",
-"fg c #908174",
-"gg c #8E7E70",
-"hg c #877567",
-"ig c #847164",
-"jg c #7E6A5E",
-"kg c #705A4D",
-"lg c #6B5748",
-"mg c #6A5446",
-"ng c #6A5749",
-"og c #6C584A",
-"pg c #6F5D4E",
-"qg c #736255",
-"rg c #675849",
-"sg c #665748",
-"tg c #645647",
-"ug c #655647",
-"vg c #655847",
-"wg c #665A48",
-"xg c #685C4B",
-"yg c #695E4D",
-"zg c #8A806C",
-"Ag c #71664E",
-"Bg c #786D52",
-"Cg c #7E755A",
-"Dg c #868063",
-"Eg c #8B8569",
-"Fg c #8D876D",
-"Gg c #8C866D",
-"Hg c #8A856D",
-"Ig c #8C886F",
-"Jg c #918C74",
-"Kg c #918C78",
-"Lg c #8E8876",
-"Mg c #8C8772",
-"Ng c #8A8771",
-"Og c #86856B",
-"Pg c #838166",
-"Qg c #7F7C5F",
-"Rg c #64624E",
-"Sg c #6A6753",
-"Tg c #57564B",
-"Ug c #63624F",
-"Vg c #666651",
-"Wg c #6B6B52",
-"Xg c #7A867B",
-"Yg c #7B877B",
-"Zg c #545954",
-"`g c #6A756A",
-" h c #717D71",
-".h c #778579",
-"+h c #77887A",
-"@h c #69776B",
-"#h c #7D8C7F",
-"$h c #7E8F80",
-"%h c #7F9081",
-"&h c #7F8F81",
-"*h c #7B8A7E",
-"=h c #828E81",
-"-h c #7E8B7F",
-";h c #7F8B7F",
-">h c #7F8B7D",
-",h c #828F81",
-"'h c #859181",
-")h c #859281",
-"!h c #85907F",
-"~h c #85907E",
-"{h c #868F7F",
-"]h c #858C7D",
-"^h c #828C7B",
-"/h c #768070",
-"(h c #757D6E",
-"_h c #747D6D",
-":h c #747C6D",
-"<h c #767E70",
-"[h c #84897B",
-"}h c #82897B",
-"|h c #69675F",
-"1h c #68675F",
-"2h c #65655C",
-"3h c #646258",
-"4h c #656259",
-"5h c #66625B",
-"6h c #5E5A54",
-"7h c #5E5852",
-"8h c #5E5850",
-"9h c #5D564F",
-"0h c #5E564F",
-"ah c #5F5850",
-"bh c #7D7975",
-"ch c #635954",
-"dh c #625857",
-"eh c #645957",
-"fh c #645A58",
-"gh c #665B58",
-"hh c #6A5D58",
-"ih c #6C605A",
-"jh c #6E625B",
-"kh c #6F6259",
-"lh c #72635A",
-"mh c #72645A",
-"nh c #73655A",
-"oh c #75665A",
-"ph c #76675A",
-"qh c #796A5A",
-"rh c #7B6C5D",
-"sh c #7C6D5E",
-"th c #7F7061",
-"uh c #837264",
-"vh c #857666",
-"wh c #867466",
-"xh c #8F867F",
-"yh c #837062",
-"zh c #826E5F",
-"Ah c #816D5E",
-"Bh c #7F6A5B",
-"Ch c #806A5C",
-"Dh c #7E685A",
-"Eh c #7F695A",
-"Fh c #816B5D",
-"Gh c #846E60",
-"Hh c #8A7567",
-"Ih c #8E796B",
-"Jh c #907B6D",
-"Kh c #907D6E",
-"Lh c #927F6E",
-"Mh c #93806F",
-"Nh c #94806E",
-"Oh c #947F6E",
-"Ph c #947C6B",
-"Qh c #947A68",
-"Rh c #957A68",
-"Sh c #967A68",
-"Th c #987C6A",
-"Uh c #987E6C",
-"Vh c #997F6E",
-"Wh c #9A806E",
-"Xh c #9A8270",
-"Yh c #9B8572",
-"Zh c #9A8572",
-"`h c #998572",
-" i c #988472",
-".i c #958371",
-"+i c #948371",
-"@i c #948572",
-"#i c #948476",
-"$i c #94837A",
-"%i c #93827A",
-"&i c #918178",
-"*i c #918078",
-"=i c #908076",
-"-i c #8E7E71",
-";i c #8A7A6D",
-">i c #88786B",
-",i c #827063",
-"'i c #7E6B5E",
-")i c #776356",
-"!i c #6E594B",
-"~i c #6B5648",
-"{i c #6F5A4B",
-"]i c #6C5749",
-"^i c #6A5748",
-"/i c #705D4F",
-"(i c #716052",
-"_i c #705F51",
-":i c #6D5D4F",
-"<i c #6B5A4C",
-"[i c #675748",
-"}i c #645445",
-"|i c #635244",
-"1i c #625244",
-"2i c #635645",
-"3i c #655947",
-"4i c #665A49",
-"5i c #8A7F6B",
-"6i c #71644D",
-"7i c #776C52",
-"8i c #7C7155",
-"9i c #80795C",
-"0i c #8B8668",
-"ai c #8E886C",
-"bi c #8C866C",
-"ci c #8A856C",
-"di c #8E8870",
-"ei c #8E8A71",
-"fi c #8E8874",
-"gi c #8E8976",
-"hi c #8D8874",
-"ii c #8B8771",
-"ji c #88856F",
-"ki c #88866F",
-"li c #87846C",
-"mi c #807D60",
-"ni c #5D5C4D",
-"oi c #66624E",
-"pi c #666550",
-"qi c #706E58",
-"ri c #74735C",
-"si c #62624E",
-"ti c #6C6C54",
-"ui c #788479",
-"vi c #778478",
-"wi c #535854",
-"xi c #6A746A",
-"yi c #707C71",
-"zi c #58615A",
-"Ai c #6C796E",
-"Bi c #7A8B7D",
-"Ci c #7A897D",
-"Di c #808E81",
-"Ei c #838E83",
-"Fi c #828E82",
-"Gi c #7F8B7E",
-"Hi c #839081",
-"Ii c #838F81",
-"Ji c #849180",
-"Ki c #848E80",
-"Li c #808979",
-"Mi c #7F8878",
-"Ni c #7D8575",
-"Oi c #767F6F",
-"Pi c #737C6C",
-"Qi c #727A6A",
-"Ri c #737A6C",
-"Si c #747C6E",
-"Ti c #848A7C",
-"Ui c #898E7E",
-"Vi c #8B8E7F",
-"Wi c #8A8C7E",
-"Xi c #86887B",
-"Yi c #898A81",
-"Zi c #6A6961",
-"`i c #696760",
-" j c #68665F",
-".j c #66665D",
-"+j c #67635B",
-"@j c #5F5A54",
-"#j c #5E564E",
-"$j c #7C7874",
-"%j c #615853",
-"&j c #635958",
-"*j c #645958",
-"=j c #665B57",
-"-j c #695B57",
-";j c #6A5E58",
-">j c #6D6059",
-",j c #6F6059",
-"'j c #706258",
-")j c #726359",
-"!j c #726358",
-"~j c #736459",
-"{j c #756659",
-"]j c #7B6B5D",
-"^j c #7D6C5F",
-"/j c #7E6E60",
-"(j c #827162",
-"_j c #847264",
-":j c #867566",
-"<j c #887667",
-"[j c #887768",
-"}j c #918880",
-"|j c #887668",
-"1j c #867163",
-"2j c #846F61",
-"3j c #836E60",
-"4j c #826C5E",
-"5j c #836C5E",
-"6j c #856E61",
-"7j c #887162",
-"8j c #8E7667",
-"9j c #927A6A",
-"0j c #967D6B",
-"aj c #9B816E",
-"bj c #9D826F",
-"cj c #9D816E",
-"dj c #9C7E6C",
-"ej c #9D7D6B",
-"fj c #9C7C6A",
-"gj c #9C7A67",
-"hj c #9C7B67",
-"ij c #9D7A68",
-"jj c #9E7D6A",
-"kj c #9E7C6A",
-"lj c #9E7E6B",
-"mj c #9F806D",
-"nj c #9F816E",
-"oj c #9E826F",
-"pj c #9E8470",
-"qj c #9E8570",
-"rj c #9C8470",
-"sj c #9B8571",
-"tj c #978472",
-"uj c #958476",
-"vj c #94847A",
-"wj c #93827C",
-"xj c #92807A",
-"yj c #928079",
-"zj c #918079",
-"Aj c #908074",
-"Bj c #908072",
-"Cj c #8C7C6F",
-"Dj c #88776A",
-"Ej c #847265",
-"Fj c #806E60",
-"Gj c #776456",
-"Hj c #6B5546",
-"Ij c #6E584A",
-"Jj c #6C5748",
-"Kj c #6C5849",
-"Lj c #6E5B4E",
-"Mj c #705E50",
-"Nj c #6E5D50",
-"Oj c #6C5B4E",
-"Pj c #69594B",
-"Qj c #615143",
-"Rj c #615142",
-"Sj c #605242",
-"Tj c #625443",
-"Uj c #645947",
-"Vj c #675B4B",
-"Wj c #897D6A",
-"Xj c #72664E",
-"Yj c #776B52",
-"Zj c #7A6F52",
-"`j c #81785A",
-" k c #857F60",
-".k c #8A8467",
-"+k c #8D886E",
-"@k c #8A866D",
-"#k c #8C8872",
-"$k c #86846C",
-"%k c #838066",
-"&k c #7F7D61",
-"*k c #5D5B4D",
-"=k c #66634E",
-"-k c #66644F",
-";k c #62614E",
-">k c #768276",
-",k c #758275",
-"'k c #677268",
-")k c #6E7A70",
-"!k c #788579",
-"~k c #687268",
-"{k c #6C766C",
-"]k c #747F74",
-"^k c #7A857A",
-"/k c #7A877B",
-"(k c #7B887C",
-"_k c #7C8A7C",
-":k c #7D8A7D",
-"<k c #7C897D",
-"[k c #7C877C",
-"}k c #7D897E",
-"|k c #838F80",
-"1k c #848F7E",
-"2k c #848E7E",
-"3k c #7F8877",
-"4k c #7C8574",
-"5k c #7B8473",
-"6k c #7A8371",
-"7k c #7A8370",
-"8k c #76806E",
-"9k c #747E6C",
-"0k c #747D6C",
-"ak c #747E6D",
-"bk c #727B6B",
-"ck c #727969",
-"dk c #72796A",
-"ek c #727A6C",
-"fk c #888A81",
-"gk c #696A61",
-"hk c #696960",
-"ik c #676860",
-"jk c #66675F",
-"kk c #676760",
-"lk c #67675F",
-"mk c #66635C",
-"nk c #68655C",
-"ok c #645F58",
-"pk c #605C54",
-"qk c #5E5650",
-"rk c #5E574F",
-"sk c #615851",
-"tk c #625852",
-"uk c #645A54",
-"vk c #645A53",
-"wk c #665A53",
-"xk c #685B54",
-"yk c #6A5C57",
-"zk c #6C5F58",
-"Ak c #6E6058",
-"Bk c #706159",
-"Ck c #706058",
-"Dk c #72615A",
-"Ek c #72625A",
-"Fk c #74635C",
-"Gk c #74645C",
-"Hk c #75645D",
-"Ik c #78675D",
-"Jk c #78685B",
-"Kk c #7A695D",
-"Lk c #7E6C5E",
-"Mk c #806F60",
-"Nk c #847363",
-"Ok c #857464",
-"Pk c #877564",
-"Qk c #887666",
-"Rk c #908880",
-"Sk c #897868",
-"Tk c #8A7868",
-"Uk c #8A7867",
-"Vk c #8B7868",
-"Wk c #8A7666",
-"Xk c #8A7665",
-"Yk c #887462",
-"Zk c #877260",
-"`k c #88705E",
-" l c #8C7060",
-".l c #8E7260",
-"+l c #917260",
-"@l c #947462",
-"#l c #997868",
-"$l c #9D7D6C",
-"%l c #A07E6E",
-"&l c #A28070",
-"*l c #A48271",
-"=l c #A4806F",
-"-l c #A3806F",
-";l c #A27F6D",
-">l c #A17E6A",
-",l c #A07B67",
-"'l c #A07B68",
-")l c #A17C69",
-"!l c #A07C68",
-"~l c #A17D6A",
-"{l c #A27E6B",
-"]l c #A27F6B",
-"^l c #A3816E",
-"/l c #A2826F",
-"(l c #A28270",
-"_l c #A18471",
-":l c #A08572",
-"<l c #9E8572",
-"[l c #9D8573",
-"}l c #9B8472",
-"|l c #978372",
-"1l c #928170",
-"2l c #917F73",
-"3l c #8F7D74",
-"4l c #8C7A70",
-"5l c #88776C",
-"6l c #776355",
-"7l c #725A4C",
-"8l c #6C5144",
-"9l c #6C5346",
-"0l c #70574B",
-"al c #70584A",
-"bl c #6D5648",
-"cl c #6D5649",
-"dl c #705A4E",
-"el c #725F51",
-"fl c #705D50",
-"gl c #6F5D4F",
-"hl c #6D5C4E",
-"il c #5F4F41",
-"jl c #5E4F41",
-"kl c #5F5042",
-"ll c #625446",
-"ml c #66594B",
-"nl c #897C6C",
-"ol c #71624E",
-"pl c #776854",
-"ql c #7D6F5A",
-"rl c #7F715B",
-"sl c #82745E",
-"tl c #897F68",
-"ul c #8E846C",
-"vl c #8B826B",
-"wl c #8B846C",
-"xl c #8D8670",
-"yl c #8E8672",
-"zl c #8C8571",
-"Al c #888270",
-"Bl c #878070",
-"Cl c #857F70",
-"Dl c #847D6F",
-"El c #817C69",
-"Fl c #5D5B4F",
-"Gl c #686450",
-"Hl c #67654F",
-"Il c #6C6C52",
-"Jl c #737356",
-"Kl c #58584A",
-"Ll c #6B786C",
-"Ml c #585F58",
-"Nl c #758276",
-"Ol c #7C897C",
-"Pl c #7B867B",
-"Ql c #7B877C",
-"Rl c #818D80",
-"Sl c #818E7F",
-"Tl c #838E80",
-"Ul c #828E7F",
-"Vl c #818C7E",
-"Wl c #818C7D",
-"Xl c #818C7C",
-"Yl c #80897A",
-"Zl c #798271",
-"`l c #798171",
-" m c #76806F",
-".m c #767F6E",
-"+m c #737D6C",
-"@m c #737C6B",
-"#m c #737C6A",
-"$m c #727A6B",
-"%m c #707667",
-"&m c #707668",
-"*m c #707768",
-"=m c #717868",
-"-m c #727869",
-";m c #717869",
-">m c #707769",
-",m c #757D6D",
-"'m c #868D7E",
-")m c #666760",
-"!m c #67655C",
-"~m c #68665D",
-"{m c #69665D",
-"]m c #69665E",
-"^m c #69655D",
-"/m c #68645B",
-"(m c #66615A",
-"_m c #605B53",
-":m c #5F5852",
-"<m c #605850",
-"[m c #605750",
-"}m c #7D7874",
-"|m c #615751",
-"1m c #625752",
-"2m c #635852",
-"3m c #645953",
-"4m c #685A53",
-"5m c #695B55",
-"6m c #6A5C56",
-"7m c #6C5E57",
-"8m c #6E5E57",
-"9m c #705E58",
-"0m c #72605A",
-"am c #74625A",
-"bm c #75625A",
-"cm c #76645C",
-"dm c #79675D",
-"em c #7A685C",
-"fm c #7C6A5D",
-"gm c #7E6C5F",
-"hm c #7F6C5F",
-"im c #847263",
-"jm c #847262",
-"km c #857363",
-"lm c #877664",
-"mm c #897767",
-"nm c #8B796A",
-"om c #8C796A",
-"pm c #8E7A6A",
-"qm c #8F7B6A",
-"rm c #927B6A",
-"sm c #967967",
-"tm c #977865",
-"um c #997865",
-"vm c #9A7662",
-"wm c #9B7462",
-"xm c #9D7664",
-"ym c #9E7664",
-"zm c #9F7968",
-"Am c #9F7B6A",
-"Bm c #9E7E6E",
-"Cm c #9E7F6E",
-"Dm c #9D7E6C",
-"Em c #9C7D6B",
-"Fm c #9B7A68",
-"Gm c #9A7A68",
-"Hm c #9A7966",
-"Im c #9A7967",
-"Jm c #9E7E6C",
-"Km c #9F7E6C",
-"Lm c #A1806C",
-"Mm c #A2806D",
-"Nm c #A4826F",
-"Om c #A48270",
-"Pm c #A48470",
-"Qm c #A28370",
-"Rm c #A18572",
-"Sm c #9F8572",
-"Tm c #9D8472",
-"Um c #9B8271",
-"Vm c #938174",
-"Wm c #928178",
-"Xm c #918076",
-"Ym c #907E72",
-"Zm c #8D7B70",
-"`m c #816E60",
-" n c #7B6558",
-".n c #70574A",
-"+n c #6A5044",
-"@n c #6F5749",
-"#n c #70584B",
-"$n c #70594B",
-"%n c #6C5648",
-"&n c #6E5A4D",
-"*n c #6C5B4C",
-"=n c #69584B",
-"-n c #665546",
-";n c #604F41",
-">n c #5D4E40",
-",n c #5D4E3F",
-"'n c #605043",
-")n c #645648",
-"!n c #857A68",
-"~n c #70624D",
-"{n c #786954",
-"]n c #7A6B56",
-"^n c #7F705B",
-"/n c #847860",
-"(n c #867A62",
-"_n c #897F67",
-":n c #8E856C",
-"<n c #89816B",
-"[n c #89826C",
-"}n c #8A846E",
-"|n c #8A836F",
-"1n c #898270",
-"2n c #87806F",
-"3n c #847E6E",
-"4n c #827C6E",
-"5n c #807C68",
-"6n c #696450",
-"7n c #6B6751",
-"8n c #6E6C53",
-"9n c #727255",
-"0n c #646450",
-"an c #4F554F",
-"bn c #616D62",
-"cn c #575E57",
-"dn c #6D796D",
-"en c #768376",
-"fn c #778376",
-"gn c #7A8478",
-"hn c #818C80",
-"in c #7E887E",
-"jn c #7D897D",
-"kn c #808E7E",
-"ln c #7F8A7B",
-"mn c #808B7B",
-"nn c #808879",
-"on c #798170",
-"pn c #727B6A",
-"qn c #717A69",
-"rn c #707968",
-"sn c #707868",
-"tn c #707867",
-"un c #6F7467",
-"vn c #6F7566",
-"wn c #6E7466",
-"xn c #6E7566",
-"yn c #707566",
-"zn c #6F7567",
-"An c #707669",
-"Bn c #737B6B",
-"Cn c #858A7B",
-"Dn c #686960",
-"En c #696A60",
-"Fn c #67675E",
-"Gn c #69685F",
-"Hn c #6A6860",
-"In c #6C6861",
-"Jn c #69645C",
-"Kn c #68635B",
-"Ln c #67625A",
-"Mn c #615A53",
-"Nn c #605851",
-"On c #625851",
-"Pn c #7E7875",
-"Qn c #615750",
-"Rn c #625751",
-"Sn c #645852",
-"Tn c #665953",
-"Un c #695B54",
-"Vn c #695B53",
-"Wn c #6A5B54",
-"Xn c #6B5B55",
-"Yn c #6D5B56",
-"Zn c #6F5E57",
-"`n c #705F58",
-" o c #705E57",
-".o c #726159",
-"+o c #726059",
-"@o c #75635A",
-"#o c #78655B",
-"$o c #7A675C",
-"%o c #7B675C",
-"&o c #7C695D",
-"*o c #806C60",
-"=o c #836F61",
-"-o c #847062",
-";o c #847162",
-">o c #90867F",
-",o c #897566",
-"'o c #8B786A",
-")o c #8C786A",
-"!o c #8E786A",
-"~o c #927A6B",
-"{o c #947B6A",
-"]o c #997E6D",
-"^o c #9F7F6D",
-"/o c #A1806E",
-"(o c #9E7967",
-"_o c #9B7766",
-":o c #987664",
-"<o c #967363",
-"[o c #947364",
-"}o c #967667",
-"|o c #967869",
-"1o c #977A6C",
-"2o c #977B6B",
-"3o c #967C6B",
-"4o c #977C6C",
-"5o c #967B6B",
-"6o c #947867",
-"7o c #927866",
-"8o c #937867",
-"9o c #957A69",
-"0o c #977C6A",
-"ao c #987C6B",
-"bo c #9A7D6C",
-"co c #9B7E6C",
-"do c #9B7D6B",
-"eo c #9D7F6D",
-"fo c #A5826F",
-"go c #A68571",
-"ho c #A68671",
-"io c #A48571",
-"jo c #A08471",
-"ko c #9E8371",
-"lo c #9C8370",
-"mo c #998274",
-"no c #948074",
-"oo c #917E74",
-"po c #907F74",
-"qo c #8C7B6E",
-"ro c #877669",
-"so c #806B5E",
-"to c #7B6356",
-"uo c #72584C",
-"vo c #6C5244",
-"wo c #6D5447",
-"xo c #70594C",
-"yo c #705A4C",
-"zo c #6E5C4E",
-"Ao c #6C5A4C",
-"Bo c #6A594B",
-"Co c #695749",
-"Do c #685749",
-"Eo c #645345",
-"Fo c #5F4F42",
-"Go c #837565",
-"Ho c #72634E",
-"Io c #786953",
-"Jo c #80705C",
-"Ko c #7F715A",
-"Lo c #80735C",
-"Mo c #867961",
-"No c #8C8269",
-"Oo c #8A8168",
-"Po c #887F68",
-"Qo c #867F68",
-"Ro c #88806C",
-"So c #88816E",
-"To c #87806D",
-"Uo c #847D6C",
-"Vo c #817B6C",
-"Wo c #807B68",
-"Xo c #807B64",
-"Yo c #5D5A4E",
-"Zo c #706E54",
-"`o c #727254",
-" p c #565646",
-".p c #63624E",
-"+p c #656450",
-"@p c #4E544E",
-"#p c #555C55",
-"$p c #626D62",
-"%p c #667066",
-"&p c #6C786C",
-"*p c #798478",
-"=p c #7E897D",
-"-p c #7D887A",
-";p c #7E887A",
-">p c #7E897A",
-",p c #7E8776",
-"'p c #77806F",
-")p c #727C6C",
-"!p c #717B6A",
-"~p c #6F7766",
-"{p c #6E7664",
-"]p c #6E7564",
-"^p c #6D7464",
-"/p c #6C7464",
-"(p c #6E7464",
-"_p c #6D7264",
-":p c #6E7465",
-"<p c #6F7565",
-"[p c #6F7466",
-"}p c #707568",
-"|p c #70756A",
-"1p c #70766A",
-"2p c #71796A",
-"3p c #838A7B",
-"4p c #7D8174",
-"5p c #868880",
-"6p c #6D6A62",
-"7p c #6C6A62",
-"8p c #6D6A61",
-"9p c #6D6861",
-"0p c #6B6760",
-"ap c #6A6660",
-"bp c #6A645C",
-"cp c #69635C",
-"dp c #676159",
-"ep c #68605A",
-"fp c #635B53",
-"gp c #625A53",
-"hp c #625952",
-"ip c #635952",
-"jp c #635751",
-"kp c #645751",
-"lp c #665852",
-"mp c #675A53",
-"np c #6C5B55",
-"op c #6D5C56",
-"pp c #6D5C55",
-"qp c #705D57",
-"rp c #715F58",
-"sp c #725F58",
-"tp c #74615A",
-"up c #76635B",
-"vp c #78645B",
-"wp c #7A665D",
-"xp c #7B675E",
-"yp c #7C675D",
-"zp c #7E695E",
-"Ap c #816D61",
-"Bp c #846F62",
-"Cp c #857062",
-"Dp c #8F857E",
-"Ep c #877264",
-"Fp c #897365",
-"Gp c #8F7868",
-"Hp c #93796A",
-"Ip c #977A6A",
-"Jp c #9B7C6B",
-"Kp c #A17E6C",
-"Lp c #A27F6C",
-"Mp c #A08170",
-"Np c #9F8170",
-"Op c #9C7E6E",
-"Pp c #987A6C",
-"Qp c #947767",
-"Rp c #917365",
-"Sp c #8F7263",
-"Tp c #8D7263",
-"Up c #8D7164",
-"Vp c #8D7365",
-"Wp c #907668",
-"Xp c #917969",
-"Yp c #937B6C",
-"Zp c #937C6D",
-"`p c #917A6A",
-" q c #907868",
-".q c #937B6B",
-"+q c #967D6C",
-"@q c #987E6D",
-"#q c #9C8270",
-"$q c #9D826E",
-"%q c #A08570",
-"&q c #A28771",
-"*q c #A48671",
-"=q c #A78872",
-"-q c #A88973",
-";q c #A68973",
-">q c #A48A74",
-",q c #A18977",
-"'q c #9C8677",
-")q c #988374",
-"!q c #938173",
-"~q c #907E71",
-"{q c #8E7C70",
-"]q c #8D7B6F",
-"^q c #867567",
-"/q c #826E61",
-"(q c #806B5D",
-"_q c #7A6457",
-":q c #6B5345",
-"<q c #6C5447",
-"[q c #6E594A",
-"}q c #6A5547",
-"|q c #6D5B4C",
-"1q c #6B594B",
-"2q c #6A594A",
-"3q c #6A584A",
-"4q c #685748",
-"5q c #645245",
-"6q c #605042",
-"7q c #5E4E40",
-"8q c #7E6F5F",
-"9q c #665541",
-"0q c #71614B",
-"aq c #786852",
-"bq c #7A6B55",
-"cq c #7D6E57",
-"dq c #7F7259",
-"eq c #82745C",
-"fq c #867C63",
-"gq c #887F66",
-"hq c #887F67",
-"iq c #857D67",
-"jq c #867E6B",
-"kq c #867E6C",
-"lq c #827C6A",
-"mq c #817B6A",
-"nq c #5D5A4F",
-"oq c #6D6751",
-"pq c #737256",
-"qq c #565647",
-"rq c #6C6B55",
-"sq c #657166",
-"tq c #545B54",
-"uq c #616B60",
-"vq c #657065",
-"wq c #6B776B",
-"xq c #738174",
-"yq c #788378",
-"zq c #7F8A7E",
-"Aq c #7C8679",
-"Bq c #7C8678",
-"Cq c #7B8678",
-"Dq c #7F8876",
-"Eq c #727A69",
-"Fq c #707967",
-"Gq c #707866",
-"Hq c #6D7463",
-"Iq c #6C7463",
-"Jq c #6C7462",
-"Kq c #6B7262",
-"Lq c #6A7162",
-"Mq c #6A7163",
-"Nq c #6A7263",
-"Oq c #6C7263",
-"Pq c #6C7264",
-"Qq c #6D7364",
-"Rq c #6E7365",
-"Sq c #6D7263",
-"Tq c #6E7364",
-"Uq c #808577",
-"Vq c #85877F",
-"Wq c #66675E",
-"Xq c #6B6961",
-"Yq c #6E6B63",
-"Zq c #6D6860",
-"`q c #6C6760",
-" r c #6C665F",
-".r c #68615A",
-"+r c #675F58",
-"@r c #645B54",
-"#r c #645A52",
-"$r c #645752",
-"%r c #675952",
-"&r c #6C5D57",
-"*r c #6E5C56",
-"=r c #705D56",
-"-r c #715E57",
-";r c #735F58",
-">r c #75615A",
-",r c #76625B",
-"'r c #78645D",
-")r c #79645D",
-"!r c #7B665F",
-"~r c #7C675E",
-"{r c #7E685F",
-"]r c #806B61",
-"^r c #826C62",
-"/r c #836D61",
-"(r c #8F847E",
-"_r c #8A7264",
-":r c #8F7364",
-"<r c #947667",
-"[r c #987868",
-"}r c #9D7969",
-"|r c #A07A6A",
-"1r c #A07B6A",
-"2r c #9F7C6C",
-"3r c #9C7B6C",
-"4r c #9B7C6C",
-"5r c #997C6E",
-"6r c #9A7E70",
-"7r c #987E70",
-"8r c #957D70",
-"9r c #937B6E",
-"0r c #91786A",
-"ar c #8E7567",
-"br c #8D7366",
-"cr c #8C7265",
-"dr c #8C7164",
-"er c #8D7264",
-"fr c #8F7565",
-"gr c #917868",
-"hr c #937A6B",
-"ir c #947D6E",
-"jr c #92796A",
-"kr c #9A8673",
-"lr c #9A8672",
-"mr c #9A846F",
-"nr c #9C816C",
-"or c #9E826C",
-"pr c #A0826D",
-"qr c #A3846E",
-"rr c #A68770",
-"sr c #A98B74",
-"tr c #A78973",
-"ur c #A48875",
-"vr c #9C8776",
-"wr c #978473",
-"xr c #927F71",
-"yr c #8E7C6F",
-"zr c #89786B",
-"Ar c #867366",
-"Br c #7F6A5D",
-"Cr c #7A6456",
-"Dr c #745C4E",
-"Er c #6D5548",
-"Fr c #6A5244",
-"Gr c #6B584A",
-"Hr c #6B5A4B",
-"Ir c #5C4C3E",
-"Jr c #7A6A5A",
-"Kr c #63523F",
-"Lr c #6B5A46",
-"Mr c #6F5F48",
-"Nr c #76664E",
-"Or c #7B6C55",
-"Pr c #7D6F58",
-"Qr c #7E7158",
-"Rr c #80725B",
-"Sr c #82765E",
-"Tr c #857A62",
-"Ur c #837A62",
-"Vr c #837B64",
-"Wr c #847C68",
-"Xr c #827C69",
-"Yr c #7E7962",
-"Zr c #5C5A4E",
-"`r c #686350",
-" s c #686650",
-".s c #6E6C52",
-"+s c #727155",
-"@s c #63624C",
-"#s c #4D544E",
-"$s c #647065",
-"%s c #69756A",
-"&s c #758375",
-"*s c #798577",
-"=s c #7C867B",
-"-s c #7C867C",
-";s c #798579",
-">s c #7C867A",
-",s c #7E887D",
-"'s c #7F897E",
-")s c #808B7D",
-"!s c #808C7C",
-"~s c #7B8577",
-"{s c #798375",
-"]s c #788474",
-"^s c #7A8574",
-"/s c #7C8676",
-"(s c #818A78",
-"_s c #707766",
-":s c #6E7666",
-"<s c #6C7362",
-"[s c #6C7262",
-"}s c #6A7262",
-"|s c #697062",
-"1s c #697162",
-"2s c #697262",
-"3s c #6B7162",
-"4s c #6B7263",
-"5s c #6D7265",
-"6s c #707767",
-"7s c #737A6B",
-"8s c #757D6F",
-"9s c #7F8475",
-"0s c #84867D",
-"as c #6B6861",
-"bs c #6C6961",
-"cs c #6E6A62",
-"ds c #706C63",
-"es c #6D6961",
-"fs c #6D6760",
-"gs c #6D675F",
-"hs c #6B655E",
-"is c #69625A",
-"js c #676059",
-"ks c #696059",
-"ls c #685F58",
-"ms c #665C56",
-"ns c #665B56",
-"os c #7F7A76",
-"ps c #665B55",
-"qs c #655A55",
-"rs c #665A55",
-"ss c #685A55",
-"ts c #685A54",
-"us c #6B5B56",
-"vs c #6D5D57",
-"ws c #6F5C56",
-"xs c #705C57",
-"ys c #76615B",
-"zs c #78635D",
-"As c #78625F",
-"Bs c #79635F",
-"Cs c #7B645E",
-"Ds c #7C6660",
-"Es c #7E6760",
-"Fs c #7F6960",
-"Gs c #826A60",
-"Hs c #846D61",
-"Is c #877063",
-"Js c #91847E",
-"Ks c #907264",
-"Ls c #957465",
-"Ms c #9A7666",
-"Ns c #9E7869",
-"Os c #9C7969",
-"Ps c #9A796A",
-"Qs c #98786A",
-"Rs c #96786A",
-"Ss c #93786B",
-"Ts c #92796C",
-"Us c #937B6F",
-"Vs c #947C6F",
-"Ws c #947D70",
-"Xs c #927A6E",
-"Ys c #91786B",
-"Zs c #907568",
-"`s c #8E7266",
-" t c #907466",
-".t c #907464",
-"+t c #907465",
-"@t c #907767",
-"#t c #947B6C",
-"$t c #967E6E",
-"%t c #967E6F",
-"&t c #977F6F",
-"*t c #957F6E",
-"=t c #9C8672",
-"-t c #9C8773",
-";t c #9A8370",
-">t c #99826F",
-",t c #967F6B",
-"'t c #967E69",
-")t c #987D68",
-"!t c #9B7F6A",
-"~t c #9F826D",
-"{t c #A38470",
-"]t c #A68670",
-"^t c #A78770",
-"/t c #A68872",
-"(t c #A38874",
-"_t c #9E8673",
-":t c #9A8674",
-"<t c #8D7A6E",
-"[t c #867265",
-"}t c #826E60",
-"|t c #7B6658",
-"1t c #725C4E",
-"2t c #695043",
-"3t c #695446",
-"4t c #6A594C",
-"5t c #635344",
-"6t c #5E4A36",
-"7t c #64523D",
-"8t c #6A5A44",
-"9t c #706149",
-"0t c #77674F",
-"at c #7B6C54",
-"bt c #7C6D54",
-"ct c #7D6F56",
-"dt c #7E7259",
-"et c #847A60",
-"ft c #817860",
-"gt c #817A64",
-"ht c #827C67",
-"it c #807A66",
-"jt c #69634F",
-"kt c #67654E",
-"lt c #6C6B50",
-"mt c #727052",
-"nt c #565546",
-"ot c #605F48",
-"pt c #66644E",
-"qt c #4C524C",
-"rt c #5C675C",
-"st c #626F63",
-"tt c #5C655C",
-"ut c #5F6860",
-"vt c #667267",
-"wt c #6E7A6D",
-"xt c #6E7A6E",
-"yt c #798376",
-"zt c #7A8479",
-"At c #7A847A",
-"Bt c #768375",
-"Ct c #7E8A7A",
-"Dt c #7B8778",
-"Et c #7A8677",
-"Ft c #7A8676",
-"Gt c #778374",
-"Ht c #758172",
-"It c #798373",
-"Jt c #78806F",
-"Kt c #707969",
-"Lt c #6C7363",
-"Mt c #6A7062",
-"Nt c #697060",
-"Ot c #66705E",
-"Pt c #68705F",
-"Qt c #69705F",
-"Rt c #6A7060",
-"St c #6A7061",
-"Tt c #686F61",
-"Ut c #687061",
-"Vt c #6A7161",
-"Wt c #6C7162",
-"Xt c #676F60",
-"Yt c #666E5E",
-"Zt c #646D5E",
-"`t c #656D5E",
-" u c #666F5F",
-".u c #696F60",
-"+u c #6B7062",
-"@u c #6C7163",
-"#u c #747A6C",
-"$u c #83857C",
-"%u c #64665C",
-"&u c #64655C",
-"*u c #65655D",
-"=u c #66665E",
-"-u c #68685F",
-";u c #6B6860",
-">u c #6E6A63",
-",u c #6F6A64",
-"'u c #6F6A63",
-")u c #6E6961",
-"!u c #6E6861",
-"~u c #686159",
-"{u c #6A625A",
-"]u c #6B615B",
-"^u c #817C78",
-"/u c #685C57",
-"(u c #685A56",
-"_u c #695C56",
-":u c #6B5E57",
-"<u c #6B5C57",
-"[u c #6C5C57",
-"}u c #715E58",
-"|u c #725E58",
-"1u c #745F58",
-"2u c #77625B",
-"3u c #77615C",
-"4u c #7A6460",
-"5u c #7A6360",
-"6u c #806862",
-"7u c #806760",
-"8u c #816962",
-"9u c #846C62",
-"0u c #866C60",
-"au c #8C7062",
-"bu c #95857E",
-"cu c #967263",
-"du c #9B7464",
-"eu c #9D7565",
-"fu c #9C7666",
-"gu c #987667",
-"hu c #967567",
-"iu c #937668",
-"ju c #907467",
-"ku c #8F7468",
-"lu c #8E7468",
-"mu c #90766A",
-"nu c #90786C",
-"ou c #92786D",
-"pu c #947A6E",
-"qu c #947B70",
-"ru c #947B6F",
-"su c #92786A",
-"tu c #927668",
-"uu c #917766",
-"vu c #917767",
-"wu c #917667",
-"xu c #927868",
-"yu c #927869",
-"zu c #957C6C",
-"Au c #987F70",
-"Bu c #9A8272",
-"Cu c #9C8674",
-"Du c #9D8875",
-"Eu c #9C8673",
-"Fu c #9C8571",
-"Gu c #9A8472",
-"Hu c #95806E",
-"Iu c #937D6A",
-"Ju c #927B68",
-"Ku c #927A67",
-"Lu c #967C69",
-"Mu c #987C68",
-"Nu c #9C7F6A",
-"Ou c #A1846D",
-"Pu c #A4846E",
-"Qu c #A5846F",
-"Ru c #A48773",
-"Su c #A08673",
-"Tu c #9A8372",
-"Uu c #958170",
-"Vu c #8D7B6C",
-"Wu c #897668",
-"Xu c #877466",
-"Yu c #7D6A5C",
-"Zu c #695244",
-"`u c #674F42",
-" v c #675648",
-".v c #665648",
-"+v c #645446",
-"@v c #5C4733",
-"#v c #624C37",
-"$v c #67543F",
-"%v c #6C5C45",
-"&v c #72634B",
-"*v c #786850",
-"=v c #796A51",
-"-v c #7A6C53",
-";v c #7C6E55",
-">v c #7F725A",
-",v c #81765C",
-"'v c #827A5E",
-")v c #837A60",
-"!v c #80785F",
-"~v c #827C65",
-"{v c #817B64",
-"]v c #68624E",
-"^v c #68644E",
-"/v c #6C6A4F",
-"(v c #716E52",
-"_v c #555446",
-":v c #5E5D43",
-"<v c #63624A",
-"[v c #4C504C",
-"}v c #5B665C",
-"|v c #535A54",
-"1v c #59635A",
-"2v c #5C665D",
-"3v c #646F65",
-"4v c #6C776C",
-"5v c #6B766C",
-"6v c #778275",
-"7v c #788276",
-"8v c #778276",
-"9v c #768275",
-"0v c #737F72",
-"av c #7D867B",
-"bv c #7D8878",
-"cv c #788374",
-"dv c #768072",
-"ev c #7E8572",
-"fv c #7C8572",
-"gv c #77806E",
-"hv c #6F7666",
-"iv c #686F60",
-"jv c #666E5F",
-"kv c #646E5D",
-"lv c #646E5E",
-"mv c #646F5D",
-"nv c #656F5D",
-"ov c #666F5E",
-"pv c #686F5F",
-"qv c #676E60",
-"rv c #686E60",
-"sv c #666E60",
-"tv c #666F60",
-"uv c #687060",
-"vv c #697061",
-"wv c #656E5F",
-"xv c #646C5D",
-"yv c #636C5C",
-"zv c #626A5B",
-"Av c #626B5B",
-"Bv c #646C5C",
-"Cv c #696F61",
-"Dv c #6A6F62",
-"Ev c #717668",
-"Fv c #767B6D",
-"Gv c #74796B",
-"Hv c #82847B",
-"Iv c #63645A",
-"Jv c #62645A",
-"Kv c #62635A",
-"Lv c #63645B",
-"Mv c #6B6761",
-"Nv c #6F6A62",
-"Ov c #706A63",
-"Pv c #6E6860",
-"Qv c #6D6660",
-"Rv c #6A635B",
-"Sv c #6A625B",
-"Tv c #6A605A",
-"Uv c #6D635C",
-"Vv c #827D7A",
-"Wv c #6B605A",
-"Xv c #6C5E58",
-"Yv c #6F605A",
-"Zv c #6E6059",
-"`v c #74605A",
-" w c #76625A",
-".w c #77625C",
-"+w c #79635C",
-"@w c #7A645F",
-"#w c #7C6663",
-"$w c #7F6762",
-"%w c #826A62",
-"&w c #876C62",
-"*w c #8C6F61",
-"=w c #927061",
-"-w c #98867E",
-";w c #9C7262",
-">w c #9A7263",
-",w c #977263",
-"'w c #947264",
-")w c #927366",
-"!w c #907366",
-"~w c #8D7266",
-"{w c #8D7267",
-"]w c #8E7367",
-"^w c #907468",
-"/w c #92786B",
-"(w c #94796D",
-"_w c #94796E",
-":w c #977C70",
-"<w c #957A6F",
-"[w c #957B6E",
-"}w c #947A6B",
-"|w c #94786A",
-"1w c #94796A",
-"2w c #927768",
-"3w c #947869",
-"4w c #987E6E",
-"5w c #9C8675",
-"6w c #A08A78",
-"7w c #A08B78",
-"8w c #A08A77",
-"9w c #9E8774",
-"0w c #9A8573",
-"aw c #988272",
-"bw c #968170",
-"cw c #937E6C",
-"dw c #927C6A",
-"ew c #907A67",
-"fw c #8E7865",
-"gw c #8E7764",
-"hw c #927864",
-"iw c #957B65",
-"jw c #9B7E69",
-"kw c #A0826C",
-"lw c #A4836E",
-"mw c #9B8270",
-"nw c #8A7869",
-"ow c #867365",
-"pw c #6A5344",
-"qw c #664D41",
-"rw c #675042",
-"sw c #6B574A",
-"tw c #6E5A4E",
-"uw c #68584A",
-"vw c #817060",
-"ww c #604C38",
-"xw c #604A35",
-"yw c #644F39",
-"zw c #68563F",
-"Aw c #6E5D45",
-"Bw c #72614A",
-"Cw c #75664E",
-"Dw c #76664F",
-"Ew c #776950",
-"Fw c #7A6D54",
-"Gw c #7D7257",
-"Hw c #807559",
-"Iw c #81775F",
-"Jw c #80775F",
-"Kw c #807960",
-"Lw c #5C584E",
-"Mw c #69644E",
-"Nw c #6C684E",
-"Ow c #706C4F",
-"Pw c #545444",
-"Qw c #5C5C41",
-"Rw c #626147",
-"Sw c #6D7A6D",
-"Tw c #4B504C",
-"Uw c #59645B",
-"Vw c #606C62",
-"Ww c #697469",
-"Xw c #566157",
-"Yw c #59655B",
-"Zw c #636E64",
-"`w c #6A746B",
-" x c #747F73",
-".x c #758074",
-"+x c #7C857A",
-"@x c #7A8579",
-"#x c #788277",
-"$x c #737E72",
-"%x c #747E71",
-"&x c #747D70",
-"*x c #777F72",
-"=x c #7C8071",
-"-x c #7D8072",
-";x c #7C7F71",
-">x c #73786B",
-",x c #717467",
-"'x c #6E7263",
-")x c #6D7061",
-"!x c #6C7061",
-"~x c #6B6F60",
-"{x c #686D5E",
-"]x c #646A5B",
-"^x c #63685A",
-"/x c #646B5B",
-"(x c #646A5A",
-"_x c #666B5D",
-":x c #676D5E",
-"<x c #666C5D",
-"[x c #686C5E",
-"}x c #676C5E",
-"|x c #666C5E",
-"1x c #666B5E",
-"2x c #666C5F",
-"3x c #696D60",
-"4x c #696E5F",
-"5x c #656B5C",
-"6x c #64695B",
-"7x c #63675A",
-"8x c #64685A",
-"9x c #64695A",
-"0x c #646A5D",
-"ax c #666A5F",
-"bx c #666B5F",
-"cx c #696C61",
-"dx c #6B6E62",
-"ex c #6C6F63",
-"fx c #6E7065",
-"gx c #6F7368",
-"hx c #707469",
-"ix c #71766A",
-"jx c #72786C",
-"kx c #737A6E",
-"lx c #747B6E",
-"mx c #80837A",
-"nx c #61625A",
-"ox c #5F6158",
-"px c #5F6058",
-"qx c #64645C",
-"rx c #6C6A61",
-"sx c #6B665F",
-"tx c #6A655C",
-"ux c #6A635A",
-"vx c #837E7B",
-"wx c #6E635D",
-"xx c #6D615A",
-"yx c #6F615A",
-"zx c #70625A",
-"Ax c #73625A",
-"Bx c #75635C",
-"Cx c #78655E",
-"Dx c #79655E",
-"Ex c #7A665E",
-"Fx c #7C6861",
-"Gx c #7C6760",
-"Hx c #7F6962",
-"Ix c #7F6861",
-"Jx c #816A62",
-"Kx c #876C63",
-"Lx c #8D6C63",
-"Mx c #936E64",
-"Nx c #997065",
-"Ox c #9A847E",
-"Px c #997167",
-"Qx c #946F65",
-"Rx c #916F66",
-"Sx c #8D6F67",
-"Tx c #8B6F67",
-"Ux c #8B7067",
-"Vx c #8C7168",
-"Wx c #8E726A",
-"Xx c #8E7269",
-"Yx c #8F726A",
-"Zx c #8F7269",
-"`x c #90726A",
-" y c #91756B",
-".y c #91766A",
-"+y c #92776B",
-"@y c #93786C",
-"#y c #93796E",
-"$y c #967B70",
-"%y c #967C72",
-"&y c #977D72",
-"*y c #977C71",
-"=y c #967A6F",
-"-y c #94786B",
-";y c #967B6C",
-">y c #998270",
-",y c #A08775",
-"'y c #A08978",
-")y c #9F8978",
-"!y c #9E8878",
-"~y c #9C8777",
-"{y c #998372",
-"]y c #998371",
-"^y c #96806F",
-"/y c #947E6C",
-"(y c #937C6C",
-"_y c #927C6B",
-":y c #8E7866",
-"<y c #8B7462",
-"[y c #8C7563",
-"}y c #8D7462",
-"|y c #907662",
-"1y c #987B68",
-"2y c #9C7C68",
-"3y c #A07F68",
-"4y c #A3816B",
-"5y c #A1826C",
-"6y c #9D826C",
-"7y c #97826D",
-"8y c #907D6A",
-"9y c #887564",
-"0y c #857161",
-"ay c #816C5C",
-"by c #7C6657",
-"cy c #766050",
-"dy c #70594A",
-"ey c #644C3F",
-"fy c #69584A",
-"gy c #675749",
-"hy c #847564",
-"iy c #65533F",
-"jy c #644F3A",
-"ky c #634C37",
-"ly c #66513A",
-"my c #6B5740",
-"ny c #705E46",
-"oy c #716049",
-"py c #74644C",
-"qy c #77684F",
-"ry c #80735E",
-"sy c #80735F",
-"ty c #837662",
-"uy c #827761",
-"vy c #817661",
-"wy c #807661",
-"xy c #676250",
-"yy c #6C6853",
-"zy c #6E6A52",
-"Ay c #545146",
-"By c #5C5845",
-"Cy c #6A6951",
-"Dy c #69766A",
-"Ey c #4A504B",
-"Fy c #58635A",
-"Gy c #556156",
-"Hy c #59645A",
-"Iy c #626D63",
-"Jy c #687368",
-"Ky c #687469",
-"Ly c #68736A",
-"My c #717E70",
-"Ny c #6F7B6F",
-"Oy c #737F73",
-"Py c #788377",
-"Qy c #727B6E",
-"Ry c #727C6E",
-"Sy c #747C6F",
-"Ty c #767A6D",
-"Uy c #74776A",
-"Vy c #72766A",
-"Wy c #707467",
-"Xy c #6D7062",
-"Yy c #6B6E60",
-"Zy c #696D5F",
-"`y c #686C5D",
-" z c #676C5D",
-".z c #656A5B",
-"+z c #626759",
-"@z c #616658",
-"#z c #626658",
-"$z c #606658",
-"%z c #606458",
-"&z c #636859",
-"*z c #64685B",
-"=z c #626559",
-"-z c #63675B",
-";z c #64685E",
-">z c #646A5E",
-",z c #656A5F",
-"'z c #686C60",
-")z c #6A6D62",
-"!z c #6B6E63",
-"~z c #6C7064",
-"{z c #6D7266",
-"]z c #6E7468",
-"^z c #6F7469",
-"/z c #70766B",
-"(z c #71776C",
-"_z c #72776C",
-":z c #6F7568",
-"<z c #7E8279",
-"[z c #606158",
-"}z c #6B635B",
-"|z c #6C635C",
-"1z c #6F645C",
-"2z c #726660",
-"3z c #71645E",
-"4z c #70635C",
-"5z c #72635C",
-"6z c #74645D",
-"7z c #76655E",
-"8z c #796760",
-"9z c #7B6861",
-"0z c #7A6760",
-"az c #7C6860",
-"bz c #7E6962",
-"cz c #806C64",
-"dz c #806A63",
-"ez c #826C64",
-"fz c #846C63",
-"gz c #886C63",
-"hz c #8E6D63",
-"iz c #946F64",
-"jz c #996F64",
-"kz c #9A7066",
-"lz c #98847F",
-"mz c #926F66",
-"nz c #8F6F67",
-"oz c #8B6D66",
-"pz c #8A6D66",
-"qz c #8A6E66",
-"rz c #8C7067",
-"sz c #8D7168",
-"tz c #8E7168",
-"uz c #907269",
-"vz c #907369",
-"wz c #92766A",
-"xz c #94786D",
-"yz c #977B70",
-"zz c #997E73",
-"Az c #987E72",
-"Bz c #997E72",
-"Cz c #997E70",
-"Dz c #9C8472",
-"Ez c #9E8472",
-"Fz c #9E8372",
-"Gz c #9E8573",
-"Hz c #9E8677",
-"Iz c #9F8878",
-"Jz c #9F8879",
-"Kz c #9E8979",
-"Lz c #9E8778",
-"Mz c #9A8473",
-"Nz c #967E6D",
-"Oz c #937C6A",
-"Pz c #907967",
-"Qz c #8F7865",
-"Rz c #8C7463",
-"Sz c #897160",
-"Tz c #8A7261",
-"Uz c #8C7260",
-"Vz c #927461",
-"Wz c #987864",
-"Xz c #9D7B65",
-"Yz c #A27F68",
-"Zz c #A2816C",
-"`z c #9D816C",
-" A c #967F6A",
-".A c #8F7A66",
-"+A c #887363",
-"@A c #847060",
-"#A c #806B5B",
-"$A c #7A6455",
-"%A c #765F51",
-"&A c #6E574A",
-"*A c #684F42",
-"=A c #664E41",
-"-A c #674E42",
-";A c #6F5C50",
-">A c #867867",
-",A c #6B5944",
-"'A c #6A5742",
-")A c #67523C",
-"!A c #675039",
-"~A c #68533C",
-"{A c #6E5A42",
-"]A c #705F46",
-"^A c #72624C",
-"/A c #73644C",
-"(A c #7A6C57",
-"_A c #7F725B",
-":A c #7F725C",
-"<A c #827661",
-"[A c #807560",
-"}A c #7F7460",
-"|A c #686250",
-"1A c #686551",
-"2A c #595541",
-"3A c #5E5C46",
-"4A c #67644C",
-"5A c #4A504A",
-"6A c #566358",
-"7A c #556055",
-"8A c #596359",
-"9A c #667268",
-"0A c #667367",
-"aA c #687269",
-"bA c #687369",
-"cA c #68746A",
-"dA c #6C796D",
-"eA c #717C70",
-"fA c #727D71",
-"gA c #768173",
-"hA c #6E796C",
-"iA c #6F786B",
-"jA c #6E786C",
-"kA c #727A6D",
-"lA c #737B6D",
-"mA c #757B6A",
-"nA c #747969",
-"oA c #727566",
-"pA c #717364",
-"qA c #707264",
-"rA c #6C7060",
-"sA c #656B5A",
-"tA c #646A59",
-"uA c #636759",
-"vA c #606456",
-"wA c #5F6355",
-"xA c #5E6254",
-"yA c #5C6253",
-"zA c #5C6052",
-"AA c #5C6152",
-"BA c #5D6254",
-"CA c #5C6153",
-"DA c #5C6050",
-"EA c #5C624E",
-"FA c #5E6450",
-"GA c #606550",
-"HA c #606450",
-"IA c #5F6450",
-"JA c #606650",
-"KA c #616650",
-"LA c #606454",
-"MA c #616456",
-"NA c #616558",
-"OA c #61645A",
-"PA c #62665B",
-"QA c #62685C",
-"RA c #63685D",
-"SA c #65695E",
-"TA c #686B60",
-"UA c #696E62",
-"VA c #6B7164",
-"WA c #6C7265",
-"XA c #6E7266",
-"YA c #6E7268",
-"ZA c #6F7369",
-"`A c #7D8078",
-" B c #5E6057",
-".B c #616258",
-"+B c #62625A",
-"@B c #65645C",
-"#B c #6C675F",
-"$B c #6C645C",
-"%B c #70645D",
-"&B c #746761",
-"*B c #74665F",
-"=B c #74655E",
-"-B c #74665E",
-";B c #75655E",
-">B c #76665F",
-",B c #786760",
-"'B c #7A6861",
-")B c #7C6A62",
-"!B c #7E6B64",
-"~B c #7E6A62",
-"{B c #7F6A63",
-"]B c #806B64",
-"^B c #816C64",
-"/B c #836E66",
-"(B c #846D64",
-"_B c #8B6F66",
-":B c #906F65",
-"<B c #947065",
-"[B c #9A7064",
-"}B c #986F64",
-"|B c #936D63",
-"1B c #95847F",
-"2B c #8C6C64",
-"3B c #8C6F69",
-"4B c #8A6E67",
-"5B c #8A6D67",
-"6B c #8C7066",
-"7B c #8F7169",
-"8B c #90726B",
-"9B c #91726A",
-"0B c #93766A",
-"aB c #93766B",
-"bB c #93766C",
-"cB c #95786D",
-"dB c #96796F",
-"eB c #987A70",
-"fB c #987B71",
-"gB c #997C72",
-"hB c #997D72",
-"iB c #9A7D72",
-"jB c #9B7F75",
-"kB c #9D8577",
-"lB c #9F8676",
-"mB c #A08575",
-"nB c #9F8574",
-"oB c #9C8272",
-"pB c #9C8274",
-"qB c #9E8779",
-"rB c #9F887A",
-"sB c #9A8374",
-"tB c #927A69",
-"uB c #917968",
-"vB c #8E7564",
-"wB c #8B7263",
-"xB c #8A7160",
-"yB c #866D5C",
-"zB c #886E5C",
-"AB c #957662",
-"BB c #9B7A64",
-"CB c #A27E67",
-"DB c #A07E68",
-"EB c #9C7E67",
-"FB c #947C68",
-"GB c #8D7664",
-"HB c #846F5F",
-"IB c #7E695A",
-"JB c #786254",
-"KB c #745E51",
-"LB c #6B5547",
-"MB c #6E594C",
-"NB c #6D5A4D",
-"OB c #6D5B4E",
-"PB c #887968",
-"QB c #6E5C48",
-"RB c #705E48",
-"SB c #6E5B45",
-"TB c #6C563F",
-"UB c #68523B",
-"VB c #6C573E",
-"WB c #6E5B43",
-"XB c #72624A",
-"YB c #746550",
-"ZB c #796C56",
-"`B c #7C7059",
-" C c #7D705B",
-".C c #80725F",
-"+C c #80745F",
-"@C c #7E735E",
-"#C c #7E745F",
-"$C c #7C7560",
-"%C c #5C584D",
-"&C c #696351",
-"*C c #6A6651",
-"=C c #6F6C54",
-"-C c #545246",
-";C c #56543F",
-">C c #5A5842",
-",C c #615F48",
-"'C c #586359",
-")C c #5C695E",
-"!C c #627063",
-"~C c #4E564F",
-"{C c #5F6C60",
-"]C c #657267",
-"^C c #667468",
-"/C c #677368",
-"(C c #707B6E",
-"_C c #737E71",
-":C c #6C766B",
-"<C c #6D7468",
-"[C c #6D7469",
-"}C c #71776A",
-"|C c #717566",
-"1C c #717465",
-"2C c #6F7263",
-"3C c #626855",
-"4C c #626754",
-"5C c #616654",
-"6C c #606452",
-"7C c #5E624F",
-"8C c #5C624F",
-"9C c #5C6250",
-"0C c #5B604E",
-"aC c #5A5F4D",
-"bC c #5A604D",
-"cC c #5A5F4C",
-"dC c #585E4C",
-"eC c #575C4A",
-"fC c #575B4A",
-"gC c #575A48",
-"hC c #575C46",
-"iC c #585C47",
-"jC c #585D48",
-"kC c #5A5F4A",
-"lC c #5C624C",
-"mC c #5E624C",
-"nC c #5D624C",
-"oC c #5C6150",
-"pC c #5D6255",
-"qC c #5E6256",
-"rC c #5F6356",
-"sC c #62655A",
-"tC c #62675B",
-"uC c #63675C",
-"vC c #64685C",
-"wC c #656A5E",
-"xC c #676B60",
-"yC c #686C62",
-"zC c #686E62",
-"AC c #6A6F63",
-"BC c #6A7164",
-"CC c #6E7366",
-"DC c #707468",
-"EC c #6F7468",
-"FC c #7C7E76",
-"GC c #5E5E56",
-"HC c #5E5F56",
-"IC c #5E5F57",
-"JC c #616158",
-"KC c #626159",
-"LC c #6B655D",
-"MC c #6C645E",
-"NC c #6C635B",
-"OC c #847E7B",
-"PC c #70645E",
-"QC c #72665F",
-"RC c #746760",
-"SC c #786A63",
-"TC c #776962",
-"UC c #766760",
-"VC c #776861",
-"WC c #786861",
-"XC c #7A6862",
-"YC c #7B6A63",
-"ZC c #7C6B64",
-"`C c #7E6C64",
-" D c #806D66",
-".D c #826F67",
-"+D c #826E67",
-"@D c #836F66",
-"#D c #866F68",
-"$D c #8C7269",
-"%D c #917268",
-"&D c #977469",
-"*D c #9A7267",
-"=D c #987066",
-"-D c #947066",
-";D c #8F6D65",
-">D c #92837F",
-",D c #896E67",
-"'D c #8B706A",
-")D c #8D7068",
-"!D c #90726C",
-"~D c #91736C",
-"{D c #91726B",
-"]D c #92746C",
-"^D c #93766D",
-"/D c #95776E",
-"(D c #96786F",
-"_D c #967870",
-":D c #987971",
-"<D c #977A71",
-"[D c #997C74",
-"}D c #9A7D74",
-"|D c #9A7E75",
-"1D c #9E8378",
-"2D c #9F8678",
-"3D c #A08678",
-"4D c #9E8476",
-"5D c #9C8275",
-"6D c #9B8273",
-"7D c #9C8375",
-"8D c #9D8477",
-"9D c #9E8578",
-"0D c #9D8678",
-"aD c #9C8576",
-"bD c #9B8374",
-"cD c #988072",
-"dD c #907766",
-"eD c #8E7666",
-"fD c #88705F",
-"gD c #856C5B",
-"hD c #866B5A",
-"iD c #8A6E5B",
-"jD c #997862",
-"kD c #9E7962",
-"lD c #9E7A63",
-"mD c #997B64",
-"nD c #927A65",
-"oD c #836E5F",
-"pD c #7D6759",
-"qD c #796256",
-"rD c #745E52",
-"sD c #6F584A",
-"tD c #685043",
-"uD c #6C584B",
-"vD c #6D5B4D",
-"wD c #8A7B6A",
-"xD c #705D4A",
-"yD c #75624D",
-"zD c #78654F",
-"AD c #75604A",
-"BD c #6E5841",
-"CD c #6C563E",
-"DD c #6B573E",
-"ED c #6D5A41",
-"FD c #6E5C46",
-"GD c #705F48",
-"HD c #72634C",
-"ID c #72614B",
-"JD c #73644F",
-"KD c #7A6E58",
-"LD c #7C705B",
-"MD c #7F725E",
-"ND c #7D735E",
-"OD c #7C7460",
-"PD c #6A6352",
-"QD c #6F6B55",
-"RD c #565440",
-"SD c #585641",
-"TD c #5F5D46",
-"UD c #5C685C",
-"VD c #4E554E",
-"WD c #647166",
-"XD c #697369",
-"YD c #6C796B",
-"ZD c #6F7A6E",
-"`D c #6E796D",
-" E c #697267",
-".E c #6C7267",
-"+E c #6D7367",
-"@E c #6D7366",
-"#E c #6E7162",
-"$E c #6C6F60",
-"%E c #6A6D5E",
-"&E c #666B5A",
-"*E c #646958",
-"=E c #626857",
-"-E c #616656",
-";E c #5F6352",
-">E c #5C614E",
-",E c #5A604C",
-"'E c #585F4B",
-")E c #585E4B",
-"!E c #585E4A",
-"~E c #575D4A",
-"{E c #565C49",
-"]E c #565A48",
-"^E c #545947",
-"/E c #525846",
-"(E c #505643",
-"_E c #505640",
-":E c #50563E",
-"<E c #525840",
-"[E c #545842",
-"}E c #555844",
-"|E c #565C46",
-"1E c #585E48",
-"2E c #585E49",
-"3E c #585D4D",
-"4E c #585E52",
-"5E c #5A5E52",
-"6E c #5B5F55",
-"7E c #5B6056",
-"8E c #5E6056",
-"9E c #5E6258",
-"0E c #606459",
-"aE c #62675A",
-"bE c #64695E",
-"cE c #65685E",
-"dE c #626A5E",
-"eE c #646A5F",
-"fE c #646C60",
-"gE c #676D61",
-"hE c #7A7D74",
-"iE c #5C5D54",
-"jE c #5D5E56",
-"kE c #5D5F56",
-"lE c #68625B",
-"mE c #6C625B",
-"nE c #837E7A",
-"oE c #6F645D",
-"pE c #70635E",
-"qE c #71655E",
-"rE c #72655F",
-"sE c #746660",
-"tE c #796B64",
-"uE c #786962",
-"vE c #796862",
-"wE c #7A6962",
-"xE c #7F6D66",
-"yE c #806E66",
-"zE c #816E66",
-"AE c #847069",
-"BE c #857069",
-"CE c #867068",
-"DE c #8B7068",
-"EE c #907268",
-"FE c #97756A",
-"GE c #9A7468",
-"HE c #977368",
-"IE c #927066",
-"JE c #8E6D66",
-"KE c #908380",
-"LE c #8A6E68",
-"ME c #8C6E68",
-"NE c #8D6F69",
-"OE c #8C6E67",
-"PE c #8E6E68",
-"QE c #8E6F69",
-"RE c #8F706B",
-"SE c #90716B",
-"TE c #91726C",
-"UE c #92726C",
-"VE c #92716B",
-"WE c #92736C",
-"XE c #94756E",
-"YE c #94766F",
-"ZE c #967770",
-"`E c #977771",
-" F c #987874",
-".F c #977871",
-"+F c #987A72",
-"@F c #9C7F76",
-"#F c #9E8579",
-"$F c #9F8578",
-"%F c #A08577",
-"&F c #9E8477",
-"*F c #9D8376",
-"=F c #9C8176",
-"-F c #9C8276",
-";F c #9B8176",
-">F c #9B8276",
-",F c #9A8275",
-"'F c #9B8275",
-")F c #9A8375",
-"!F c #977F70",
-"~F c #947C6E",
-"{F c #92796B",
-"]F c #907667",
-"^F c #8A7061",
-"/F c #886D5E",
-"(F c #846A5A",
-"_F c #836858",
-":F c #836958",
-"<F c #866B59",
-"[F c #8E6E5B",
-"}F c #96745F",
-"|F c #9B765F",
-"1F c #9A755E",
-"2F c #967760",
-"3F c #8F7360",
-"4F c #806A5B",
-"5F c #7E695C",
-"6F c #7B6559",
-"7F c #776155",
-"8F c #725C4F",
-"9F c #6E5749",
-"0F c #644C3E",
-"aF c #664F42",
-"bF c #685446",
-"cF c #6D5C4F",
-"dF c #6B5B4D",
-"eF c #8B7B6C",
-"fF c #72604C",
-"gF c #76634F",
-"hF c #7C6852",
-"iF c #7B6851",
-"jF c #6E5842",
-"kF c #6D5A43",
-"lF c #705F49",
-"mF c #705F4A",
-"nF c #72644F",
-"oF c #786C55",
-"pF c #796C57",
-"qF c #7D725C",
-"rF c #7C725C",
-"sF c #7C725D",
-"tF c #565449",
-"uF c #585540",
-"vF c #585440",
-"wF c #5B5842",
-"xF c #566258",
-"yF c #566158",
-"zF c #5A665C",
-"AF c #657164",
-"BF c #657066",
-"CF c #656F65",
-"DF c #677267",
-"EF c #687467",
-"FF c #697569",
-"GF c #687668",
-"HF c #6A7469",
-"IF c #6A7669",
-"JF c #697468",
-"KF c #697568",
-"LF c #656E62",
-"MF c #666D61",
-"NF c #687062",
-"OF c #687064",
-"PF c #6A7064",
-"QF c #696E60",
-"RF c #696D5D",
-"SF c #696D5A",
-"TF c #676C58",
-"UF c #656A56",
-"VF c #5B604C",
-"WF c #595E49",
-"XF c #575C47",
-"YF c #565C47",
-"ZF c #545A46",
-"`F c #545945",
-" G c #535844",
-".G c #505642",
-"+G c #4E543F",
-"@G c #4C523E",
-"#G c #4A513D",
-"$G c #494F3B",
-"%G c #494E3B",
-"&G c #4B523D",
-"*G c #505541",
-"=G c #515643",
-"-G c #535744",
-";G c #545846",
-">G c #545847",
-",G c #54584A",
-"'G c #54594D",
-")G c #555A4E",
-"!G c #565A50",
-"~G c #585C51",
-"{G c #595E53",
-"]G c #5A5D53",
-"^G c #5B5E54",
-"/G c #5D6056",
-"(G c #5E6157",
-"_G c #5F6257",
-":G c #60645A",
-"<G c #61655A",
-"[G c #5F655A",
-"}G c #60665B",
-"|G c #62685D",
-"1G c #62695E",
-"2G c #63695E",
-"3G c #666C60",
-"4G c #676C5F",
-"5G c #666A5E",
-"6G c #777871",
-"7G c #5A5A52",
-"8G c #5A5B53",
-"9G c #5B5C54",
-"0G c #5C5C54",
-"aG c #5C5D55",
-"bG c #5C5E55",
-"cG c #5F5E56",
-"dG c #605E56",
-"eG c #66645D",
-"fG c #666059",
-"gG c #665F58",
-"hG c #6A615A",
-"iG c #827D79",
-"jG c #6D625B",
-"kG c #6E625C",
-"lG c #72655E",
-"mG c #75665E",
-"nG c #7A6B64",
-"oG c #7A6A63",
-"pG c #7A6A62",
-"qG c #7B6A64",
-"rG c #7C6A64",
-"sG c #806E67",
-"tG c #826F68",
-"uG c #836F68",
-"vG c #85726A",
-"wG c #8A726A",
-"xG c #907469",
-"yG c #95746A",
-"zG c #9A7469",
-"AG c #927168",
-"BG c #886C66",
-"CG c #876C65",
-"DG c #8B6E68",
-"EG c #8C6D68",
-"FG c #8D6E68",
-"GG c #8E6F6A",
-"HG c #8F706A",
-"IG c #90706B",
-"JG c #92706B",
-"KG c #93746D",
-"LG c #94746E",
-"MG c #957570",
-"NG c #967470",
-"OG c #977672",
-"PG c #967671",
-"QG c #977872",
-"RG c #9B8076",
-"SG c #9D8377",
-"TG c #9D8275",
-"UG c #9A8075",
-"VG c #997F74",
-"WG c #987E73",
-"XG c #987E71",
-"YG c #988173",
-"ZG c #977E70",
-"`G c #967E70",
-" H c #947A6C",
-".H c #8E7566",
-"+H c #8C7162",
-"@H c #8B7161",
-"#H c #876E5E",
-"$H c #816757",
-"%H c #7F6555",
-"&H c #7F6554",
-"*H c #836655",
-"=H c #8B6B58",
-"-H c #93705C",
-";H c #98725C",
-">H c #96705A",
-",H c #90705A",
-"'H c #896C5B",
-")H c #7F6658",
-"!H c #7D665A",
-"~H c #796357",
-"{H c #756054",
-"]H c #6B5447",
-"^H c #654D41",
-"/H c #634B3F",
-"(H c #644D41",
-"_H c #665245",
-":H c #68574A",
-"<H c #6B5A4D",
-"[H c #8A7A6B",
-"}H c #73604E",
-"|H c #786550",
-"1H c #7B6651",
-"2H c #7D6954",
-"3H c #7D6852",
-"4H c #75614A",
-"5H c #6D5944",
-"6H c #6A563F",
-"7H c #6A563E",
-"8H c #6B5842",
-"9H c #6C5A46",
-"0H c #6E5D48",
-"aH c #6F5E49",
-"bH c #70604B",
-"cH c #736650",
-"dH c #766B55",
-"eH c #7A6D58",
-"fH c #7B6F59",
-"gH c #7B715A",
-"hH c #7B725C",
-"iH c #5B564C",
-"jH c #6D6755",
-"kH c #726C58",
-"lH c #74715A",
-"mH c #5A5641",
-"nH c #58543F",
-"oH c #595640",
-"pH c #566257",
-"qH c #5C685D",
-"rH c #627064",
-"sH c #4F564F",
-"tH c #747C74",
-"uH c #747E75",
-"vH c #767F76",
-"wH c #757E75",
-"xH c #737B73",
-"yH c #737C73",
-"zH c #727A71",
-"AH c #707A71",
-"BH c #727A72",
-"CH c #707B72",
-"DH c #717A71",
-"EH c #727C73",
-"FH c #747D73",
-"GH c #757F74",
-"HH c #747E74",
-"IH c #747C73",
-"JH c #747C72",
-"KH c #737B72",
-"LH c #737C72",
-"MH c #6F7970",
-"NH c #70776E",
-"OH c #72786D",
-"PH c #73796F",
-"QH c #74796E",
-"RH c #74786D",
-"SH c #74786C",
-"TH c #727667",
-"UH c #717565",
-"VH c #707363",
-"WH c #6D7161",
-"XH c #6B6E5E",
-"YH c #686D5C",
-"ZH c #666B5B",
-"`H c #65695A",
-" I c #646859",
-".I c #646658",
-"+I c #646757",
-"@I c #646857",
-"#I c #636857",
-"$I c #616655",
-"%I c #5F6454",
-"&I c #5E6453",
-"*I c #5D6351",
-"=I c #5C604F",
-"-I c #5B5F4E",
-";I c #5A5E4E",
-">I c #595C4C",
-",I c #5A5D4E",
-"'I c #5B5F50",
-")I c #5B5E52",
-"!I c #5C5E52",
-"~I c #5C5F54",
-"{I c #5C6055",
-"]I c #606457",
-"^I c #626458",
-"/I c #62645C",
-"(I c #63645D",
-"_I c #63655E",
-":I c #63645E",
-"<I c #64665E",
-"[I c #656761",
-"}I c #656762",
-"|I c #666960",
-"1I c #676A62",
-"2I c #696B64",
-"3I c #6A6C64",
-"4I c #6B6D64",
-"5I c #6B6E65",
-"6I c #6C6E66",
-"7I c #6A7066",
-"8I c #6A6F66",
-"9I c #6C7068",
-"0I c #6D7069",
-"aI c #6E726A",
-"bI c #6F746A",
-"cI c #707569",
-"dI c #71746A",
-"eI c #707369",
-"fI c #7F8079",
-"gI c #696962",
-"hI c #6A6A64",
-"iI c #6A6B64",
-"jI c #6B6B64",
-"kI c #6C6C64",
-"lI c #6D6C65",
-"mI c #6E6C66",
-"nI c #706E67",
-"oI c #706E68",
-"pI c #72706A",
-"qI c #73706A",
-"rI c #74706A",
-"sI c #736F68",
-"tI c #736E67",
-"uI c #726E67",
-"vI c #726D67",
-"wI c #726C66",
-"xI c #726D66",
-"yI c #736D67",
-"zI c #746E67",
-"AI c #756E67",
-"BI c #776F69",
-"CI c #888481",
-"DI c #796F6A",
-"EI c #7A6E6A",
-"FI c #7A6F6B",
-"GI c #7B706B",
-"HI c #7D716C",
-"II c #7E726D",
-"JI c #80726E",
-"KI c #81746E",
-"LI c #847771",
-"MI c #867972",
-"NI c #857771",
-"OI c #867770",
-"PI c #867871",
-"QI c #887972",
-"RI c #8A7B75",
-"SI c #8B7B75",
-"TI c #8C7C76",
-"UI c #8F7C75",
-"VI c #947D77",
-"WI c #9A7F78",
-"XI c #9C7E77",
-"YI c #9B7E76",
-"ZI c #967D75",
-"`I c #937C75",
-" J c #907A74",
-".J c #8F7974",
-"+J c #8F7874",
-"@J c #948986",
-"#J c #917A75",
-"$J c #917A74",
-"%J c #917B76",
-"&J c #937B77",
-"*J c #927976",
-"=J c #927A76",
-"-J c #937A77",
-";J c #947C78",
-">J c #957C78",
-",J c #967D79",
-"'J c #967D78",
-")J c #967C79",
-"!J c #987D7A",
-"~J c #987E7A",
-"{J c #997E7A",
-"]J c #9A7E7B",
-"^J c #9A7E7C",
-"/J c #9B807D",
-"(J c #9B827D",
-"_J c #9D847E",
-":J c #9F8980",
-"<J c #A08A80",
-"[J c #A0887E",
-"}J c #9F887E",
-"|J c #9E887F",
-"1J c #9E887E",
-"2J c #9E8880",
-"3J c #9E8980",
-"4J c #9D877E",
-"5J c #9B847C",
-"6J c #9B847B",
-"7J c #9B857C",
-"8J c #9C867D",
-"9J c #9C867E",
-"0J c #9B867D",
-"aJ c #99847A",
-"bJ c #988279",
-"cJ c #947E73",
-"dJ c #927C70",
-"eJ c #8F796C",
-"fJ c #8E796C",
-"gJ c #8A7569",
-"hJ c #867063",
-"iJ c #846E61",
-"jJ c #907566",
-"kJ c #9C7C69",
-"lJ c #967966",
-"mJ c #907565",
-"nJ c #8B7466",
-"oJ c #857166",
-"pJ c #847268",
-"qJ c #837167",
-"rJ c #7F6C62",
-"sJ c #7D6B60",
-"tJ c #79665C",
-"uJ c #746156",
-"vJ c #705D53",
-"wJ c #6E5C51",
-"xJ c #705E54",
-"yJ c #726258",
-"zJ c #75665C",
-"AJ c #786A5E",
-"BJ c #7F6F60",
-"CJ c #847464",
-"DJ c #847463",
-"EJ c #867564",
-"FJ c #887866",
-"GJ c #796A57",
-"HJ c #766652",
-"IJ c #766653",
-"JJ c #746352",
-"KJ c #6C5D48",
-"LJ c #70624C",
-"MJ c #726651",
-"NJ c #746954",
-"OJ c #766B56",
-"PJ c #786E57",
-"QJ c #79715A",
-"RJ c #6A6350",
-"SJ c #76725B",
-"TJ c #5C5944",
-"UJ c #5E5A44",
-"VJ c #566256",
-"WJ c #637064",
-"XJ c #5E695F",
-"YJ c #757D75",
-"ZJ c #767C75",
-"`J c #767D76",
-" K c #767E77",
-".K c #767E76",
-"+K c #777E77",
-"@K c #777E76",
-"#K c #747A74",
-"$K c #737A73",
-"%K c #727972",
-"&K c #717971",
-"*K c #717A72",
-"=K c #737A72",
-"-K c #777F76",
-";K c #757B75",
-">K c #757C75",
-",K c #757B73",
-"'K c #747A73",
-")K c #757A73",
-"!K c #747B73",
-"~K c #727A73",
-"{K c #727870",
-"]K c #73776F",
-"^K c #73786F",
-"/K c #747870",
-"(K c #737870",
-"_K c #74786F",
-":K c #74786E",
-"<K c #74776D",
-"[K c #6F7266",
-"}K c #6E7064",
-"|K c #6C6F62",
-"1K c #6A6D60",
-"2K c #696B60",
-"3K c #686A5F",
-"4K c #676A5D",
-"5K c #66695A",
-"6K c #646858",
-"7K c #646758",
-"8K c #636657",
-"9K c #626556",
-"0K c #616455",
-"aK c #606355",
-"bK c #616355",
-"cK c #606356",
-"dK c #63665D",
-"eK c #64675E",
-"fK c #646760",
-"gK c #666761",
-"hK c #676862",
-"iK c #686863",
-"jK c #686A64",
-"kK c #686963",
-"lK c #6A6B65",
-"mK c #6B6D66",
-"nK c #6C6E68",
-"oK c #6C6F68",
-"pK c #6C7069",
-"qK c #6D706A",
-"rK c #70736B",
-"sK c #71746C",
-"tK c #71756C",
-"uK c #72756C",
-"vK c #71746B",
-"wK c #7E7E79",
-"xK c #6B6B66",
-"yK c #6C6B66",
-"zK c #6D6D68",
-"AK c #6D6E69",
-"BK c #6E6E69",
-"CK c #6F6E69",
-"DK c #706E69",
-"EK c #71706A",
-"FK c #72706B",
-"GK c #73716C",
-"HK c #74726D",
-"IK c #75736E",
-"JK c #75726D",
-"KK c #75726E",
-"LK c #76726E",
-"MK c #76726D",
-"NK c #76726C",
-"OK c #74706B",
-"PK c #746F6B",
-"QK c #75706B",
-"RK c #76706B",
-"SK c #77706B",
-"TK c #898582",
-"UK c #7A726E",
-"VK c #7B726E",
-"WK c #7B716E",
-"XK c #7C726E",
-"YK c #7E7470",
-"ZK c #7F7570",
-"`K c #807570",
-" L c #807670",
-".L c #827772",
-"+L c #837873",
-"@L c #857974",
-"#L c #857874",
-"$L c #867A75",
-"%L c #887A76",
-"&L c #887C77",
-"*L c #8C7E78",
-"=L c #907E78",
-"-L c #937E78",
-";L c #967F78",
-">L c #967F79",
-",L c #8F7C76",
-"'L c #8C7B76",
-")L c #8C7C78",
-"!L c #8D7B77",
-"~L c #8D7C78",
-"{L c #938A88",
-"]L c #8E7B77",
-"^L c #8E7C78",
-"/L c #8F7C78",
-"(L c #907C78",
-"_L c #907D7A",
-":L c #907B78",
-"<L c #917D79",
-"[L c #927E7A",
-"}L c #937E7B",
-"|L c #937E7A",
-"1L c #947E7C",
-"2L c #957F7E",
-"3L c #96807E",
-"4L c #96817E",
-"5L c #998780",
-"6L c #9A8780",
-"7L c #98857E",
-"8L c #97867E",
-"9L c #97857E",
-"0L c #97847E",
-"aL c #98867F",
-"bL c #96837C",
-"cL c #96837D",
-"dL c #96847D",
-"eL c #96847C",
-"fL c #96847E",
-"gL c #95847C",
-"hL c #94827A",
-"iL c #928078",
-"jL c #8F7E74",
-"kL c #8D7B71",
-"lL c #8A786E",
-"mL c #86756B",
-"nL c #847167",
-"oL c #827065",
-"pL c #837166",
-"qL c #867468",
-"rL c #8C766A",
-"sL c #927A6D",
-"tL c #957B6C",
-"uL c #897266",
-"vL c #86736A",
-"wL c #82726A",
-"xL c #80716A",
-"yL c #807169",
-"zL c #7E7068",
-"AL c #7C6C65",
-"BL c #76675F",
-"CL c #72635B",
-"DL c #73655C",
-"EL c #756960",
-"FL c #786C63",
-"GL c #807366",
-"HL c #83766A",
-"IL c #85776A",
-"JL c #86796B",
-"KL c #877C6D",
-"LL c #837668",
-"ML c #7E7263",
-"NL c #7A6E5F",
-"OL c #685644",
-"PL c #6A5945",
-"QL c #736752",
-"RL c #746853",
-"SL c #756B55",
-"TL c #766F58",
-"UL c #59564A",
-"VL c #6A624F",
-"WL c #746D5A",
-"XL c #78725C",
-"YL c #5A564B",
-"ZL c #62614C",
-"`L c #605D47",
-" M c #5F5B45",
-".M c #515651",
-"+M c #768076",
-"@M c #777F77",
-"#M c #787F77",
-"$M c #717972",
-"%M c #717871",
-"&M c #757C74",
-"*M c #767D73",
-"=M c #767E74",
-"-M c #787F75",
-";M c #787F76",
-">M c #777E75",
-",M c #767D74",
-"'M c #777C75",
-")M c #767A76",
-"!M c #777A76",
-"~M c #757974",
-"{M c #747973",
-"]M c #767A73",
-"^M c #767973",
-"/M c #747872",
-"(M c #74776E",
-"_M c #73776E",
-":M c #73766D",
-"<M c #73756B",
-"[M c #717369",
-"}M c #717366",
-"|M c #6E6F62",
-"1M c #6C6E61",
-"2M c #6B6C60",
-"3M c #6A6B5F",
-"4M c #696A5E",
-"5M c #67685B",
-"6M c #656758",
-"7M c #646657",
-"8M c #626455",
-"9M c #626354",
-"0M c #626456",
-"aM c #616358",
-"bM c #606259",
-"cM c #616259",
-"dM c #60615A",
-"eM c #62645D",
-"fM c #646660",
-"gM c #646662",
-"hM c #666762",
-"iM c #666864",
-"jM c #676864",
-"kM c #686964",
-"lM c #696965",
-"mM c #6A6965",
-"nM c #6A6A65",
-"oM c #6B6A66",
-"pM c #6C6A67",
-"qM c #6C6A66",
-"rM c #6C6B68",
-"sM c #6C6C68",
-"tM c #6D6C68",
-"uM c #6E6C69",
-"vM c #6F6E6A",
-"wM c #6F6F6A",
-"xM c #6F706A",
-"yM c #6F706B",
-"zM c #70726B",
-"AM c #70716B",
-"BM c #7E7D79",
-"CM c #6D6B68",
-"DM c #6D6C69",
-"EM c #6F6D69",
-"FM c #706E6A",
-"GM c #716E6A",
-"HM c #74706C",
-"IM c #74726C",
-"JM c #76736E",
-"KM c #76716D",
-"LM c #76716C",
-"MM c #76706C",
-"NM c #77706C",
-"OM c #78716C",
-"PM c #898583",
-"QM c #79716D",
-"RM c #7B736F",
-"SM c #7C746F",
-"TM c #7E7570",
-"UM c #817872",
-"VM c #827872",
-"WM c #837872",
-"XM c #857975",
-"YM c #867C77",
-"ZM c #877A76",
-"`M c #877C76",
-" N c #897C77",
-".N c #8E7E77",
-"+N c #927F78",
-"@N c #968079",
-"#N c #937F78",
-"$N c #8C7D78",
-"%N c #8B7C77",
-"&N c #8D7D78",
-"*N c #938C88",
-"=N c #8E7E78",
-"-N c #8E7E79",
-";N c #8F7E79",
-">N c #907E79",
-",N c #907E7A",
-"'N c #917E7A",
-")N c #917E79",
-"!N c #937F7C",
-"~N c #947F7C",
-"{N c #947E7B",
-"]N c #95807D",
-"^N c #97827E",
-"/N c #97827F",
-"(N c #98827F",
-"_N c #9A8782",
-":N c #9B8883",
-"<N c #988680",
-"[N c #988480",
-"}N c #988580",
-"|N c #988481",
-"1N c #988681",
-"2N c #988682",
-"3N c #978580",
-"4N c #978480",
-"5N c #96837E",
-"6N c #95837E",
-"7N c #95837D",
-"8N c #93817A",
-"9N c #928179",
-"0N c #917F77",
-"aN c #907E75",
-"bN c #8E7C72",
-"cN c #8B796F",
-"dN c #89786C",
-"eN c #86756A",
-"fN c #827067",
-"gN c #827167",
-"hN c #88746A",
-"iN c #8E776C",
-"jN c #937A6E",
-"kN c #8D7468",
-"lN c #866E64",
-"mN c #847067",
-"nN c #817068",
-"oN c #807067",
-"pN c #807068",
-"qN c #7E6F66",
-"rN c #7B6C62",
-"sN c #796A60",
-"tN c #76665D",
-"uN c #74675E",
-"vN c #766A61",
-"wN c #8D8178",
-"xN c #817568",
-"yN c #86786B",
-"zN c #887A6C",
-"AN c #887C6B",
-"BN c #877B6A",
-"CN c #877D6B",
-"DN c #887D6B",
-"EN c #827665",
-"FN c #7C7160",
-"GN c #796E5C",
-"HN c #7D7060",
-"IN c #675641",
-"JN c #685842",
-"KN c #6A5B44",
-"LN c #6D5E48",
-"MN c #6E6048",
-"NN c #70644B",
-"ON c #746A52",
-"PN c #746D54",
-"QN c #66604C",
-"RN c #6D6752",
-"SN c #76705A",
-"TN c #7D7661",
-"UN c #625F4B",
-"VN c #615D47",
-"WN c #625F48",
-"XN c #6D796C",
-"YN c #788278",
-"ZN c #788078",
-"`N c #787E78",
-" O c #747B74",
-".O c #767D75",
-"+O c #797F76",
-"@O c #767C76",
-"#O c #777B77",
-"$O c #777A77",
-"%O c #767A75",
-"&O c #747974",
-"*O c #757872",
-"=O c #737872",
-"-O c #72776E",
-";O c #73766C",
-">O c #72776B",
-",O c #72766C",
-"'O c #71756A",
-")O c #6E7063",
-"!O c #6F6F62",
-"~O c #6C6E60",
-"{O c #6B6B5F",
-"]O c #68695D",
-"^O c #66675A",
-"/O c #636558",
-"(O c #626356",
-"_O c #606254",
-":O c #606255",
-"<O c #616257",
-"[O c #61635D",
-"}O c #62645E",
-"|O c #626460",
-"1O c #626360",
-"2O c #636560",
-"3O c #636460",
-"4O c #656660",
-"5O c #666660",
-"6O c #676661",
-"7O c #686862",
-"8O c #696964",
-"9O c #696864",
-"0O c #696963",
-"aO c #6A6A63",
-"bO c #6B6A65",
-"cO c #6B6B65",
-"dO c #6C6E67",
-"eO c #6D6E68",
-"fO c #6E6F69",
-"gO c #7C7C78",
-"hO c #6A6966",
-"iO c #6B6966",
-"jO c #6D6B66",
-"kO c #6D6B67",
-"lO c #6F6C69",
-"mO c #716E69",
-"nO c #726F6B",
-"oO c #74716C",
-"pO c #766F6B",
-"qO c #78706C",
-"rO c #7A716D",
-"sO c #7B736E",
-"tO c #7C7470",
-"uO c #7F7670",
-"vO c #807671",
-"wO c #847873",
-"xO c #887D77",
-"yO c #8C7C77",
-"zO c #907E77",
-"AO c #957E78",
-"BO c #968078",
-"CO c #947F79",
-"DO c #8D7E78",
-"EO c #948C89",
-"FO c #907E7B",
-"GO c #907F7B",
-"HO c #917F7A",
-"IO c #927F7B",
-"JO c #93807D",
-"KO c #93807C",
-"LO c #95807E",
-"MO c #95817E",
-"NO c #96807D",
-"OO c #988380",
-"PO c #998480",
-"QO c #9C8883",
-"RO c #9C8884",
-"SO c #9A8682",
-"TO c #998682",
-"UO c #988581",
-"VO c #998683",
-"WO c #97847F",
-"XO c #97857F",
-"YO c #94827C",
-"ZO c #93817C",
-"`O c #937F7A",
-" P c #8A786D",
-".P c #88786C",
-"+P c #86746A",
-"@P c #847168",
-"#P c #827066",
-"$P c #89746A",
-"%P c #8F776B",
-"&P c #92786C",
-"*P c #8A6E63",
-"=P c #816E65",
-"-P c #807066",
-";P c #7F7067",
-">P c #7E6F65",
-",P c #786960",
-"'P c #75675F",
-")P c #75685F",
-"!P c #8B7F75",
-"~P c #807266",
-"{P c #87796C",
-"]P c #8A7E70",
-"^P c #8C7E6D",
-"/P c #8A7D6C",
-"(P c #897E6C",
-"_P c #7C7260",
-":P c #807564",
-"<P c #64543F",
-"[P c #6B5C44",
-"}P c #6D5E47",
-"|P c #70624A",
-"1P c #72674E",
-"2P c #726851",
-"3P c #746C53",
-"4P c #585549",
-"5P c #6E6954",
-"6P c #756F59",
-"7P c #79725C",
-"8P c #62604C",
-"9P c #635F49",
-"0P c #635F48",
-"aP c #4C534D",
-"bP c #5C675D",
-"cP c #5E685E",
-"dP c #798378",
-"eP c #798178",
-"fP c #798078",
-"gP c #787F78",
-"hP c #757B74",
-"iP c #788076",
-"jP c #798077",
-"kP c #777D76",
-"lP c #787D76",
-"mP c #787C76",
-"nP c #767A74",
-"oP c #757A72",
-"pP c #747971",
-"qP c #757870",
-"rP c #71776E",
-"sP c #71766C",
-"tP c #70746A",
-"uP c #6E7167",
-"vP c #6D6F65",
-"wP c #6C6E64",
-"xP c #6C6E62",
-"yP c #6C6D60",
-"zP c #696A5D",
-"AP c #68695B",
-"BP c #666659",
-"CP c #616255",
-"DP c #606256",
-"EP c #60625C",
-"FP c #61625E",
-"GP c #60625D",
-"HP c #60625E",
-"IP c #62635D",
-"JP c #63625E",
-"KP c #64635E",
-"LP c #64645E",
-"MP c #65655F",
-"NP c #676660",
-"OP c #696A62",
-"PP c #7B7A77",
-"QP c #686864",
-"RP c #6A6864",
-"SP c #6B6965",
-"TP c #6C6966",
-"UP c #6E6B68",
-"VP c #706D69",
-"WP c #726F6A",
-"XP c #73706B",
-"YP c #75726C",
-"ZP c #75716C",
-"`P c #7A736E",
-" Q c #7C736F",
-".Q c #7E736F",
-"+Q c #817772",
-"@Q c #867975",
-"#Q c #8A7C77",
-"$Q c #967E78",
-"%Q c #917E78",
-"&Q c #948C8A",
-"*Q c #917F7C",
-"=Q c #92807C",
-"-Q c #927F7C",
-";Q c #94807E",
-">Q c #94807D",
-",Q c #95827E",
-"'Q c #96827E",
-")Q c #97837F",
-"!Q c #978380",
-"~Q c #9A8582",
-"{Q c #9B8683",
-"]Q c #9C8A85",
-"^Q c #9D8A84",
-"/Q c #9C8984",
-"(Q c #9B8783",
-"_Q c #9A8783",
-":Q c #9B8784",
-"<Q c #9A8683",
-"[Q c #95827D",
-"}Q c #93817B",
-"|Q c #8B7970",
-"1Q c #88776D",
-"2Q c #86756C",
-"3Q c #84726A",
-"4Q c #837066",
-"5Q c #867268",
-"6Q c #8F776A",
-"7Q c #886E62",
-"8Q c #826B61",
-"9Q c #7F6E64",
-"0Q c #806F66",
-"aQ c #7F6F66",
-"bQ c #7F7066",
-"cQ c #7D6E64",
-"dQ c #786961",
-"eQ c #74655D",
-"fQ c #72655C",
-"gQ c #8B7E73",
-"hQ c #7E7064",
-"iQ c #86776A",
-"jQ c #8C8070",
-"kQ c #8C806F",
-"lQ c #8A7E6C",
-"mQ c #887D6C",
-"nQ c #817765",
-"oQ c #827867",
-"pQ c #655641",
-"qQ c #665641",
-"rQ c #685A43",
-"sQ c #6A5C44",
-"tQ c #6C5E47",
-"uQ c #706249",
-"vQ c #72674D",
-"wQ c #756A53",
-"xQ c #786F58",
-"yQ c #5B564A",
-"zQ c #6A6450",
-"AQ c #726C56",
-"BQ c #79725B",
-"CQ c #65624E",
-"DQ c #65624C",
-"EQ c #68654E",
-"FQ c #4D534D",
-"GQ c #7A827A",
-"HQ c #798279",
-"IQ c #798177",
-"JQ c #7A8178",
-"KQ c #788077",
-"LQ c #787E76",
-"MQ c #787E77",
-"NQ c #777B75",
-"OQ c #767B75",
-"PQ c #767A72",
-"QQ c #72786F",
-"RQ c #72786E",
-"SQ c #71766E",
-"TQ c #70746B",
-"UQ c #6F7268",
-"VQ c #6E7267",
-"WQ c #6C7065",
-"XQ c #6A6E62",
-"YQ c #6A6D61",
-"ZQ c #6A6C60",
-"`Q c #6A6B5E",
-" R c #686A5D",
-".R c #646558",
-"+R c #626258",
-"@R c #626459",
-"#R c #606159",
-"$R c #5F605A",
-"%R c #60605B",
-"&R c #60615C",
-"*R c #60605C",
-"=R c #60615D",
-"-R c #61625C",
-";R c #62625D",
-">R c #63625D",
-",R c #63635D",
-"'R c #65665C",
-")R c #67675D",
-"!R c #68685E",
-"~R c #686A62",
-"{R c #6A6C65",
-"]R c #7A7A76",
-"^R c #686662",
-"/R c #686763",
-"(R c #686764",
-"_R c #6A6964",
-":R c #6C6965",
-"<R c #6E6B67",
-"[R c #6F6C68",
-"}R c #726E6A",
-"|R c #736F6B",
-"1R c #75706C",
-"2R c #847874",
-"3R c #847974",
-"4R c #877A75",
-"5R c #917E77",
-"6R c #8D7C77",
-"7R c #8B7C78",
-"8R c #8C7E79",
-"9R c #8E7E7A",
-"0R c #94817E",
-"aR c #96827F",
-"bR c #998481",
-"cR c #9C8683",
-"dR c #9C8985",
-"eR c #9E8B86",
-"fR c #9D8A86",
-"gR c #9C8784",
-"hR c #9B8884",
-"iR c #998582",
-"jR c #95817D",
-"kR c #94817C",
-"lR c #94807C",
-"mR c #927F7A",
-"nR c #8E7E75",
-"oR c #8E7D74",
-"pR c #8C7A71",
-"qR c #8A786F",
-"rR c #89786F",
-"sR c #87766D",
-"tR c #85736A",
-"uR c #847166",
-"vR c #877368",
-"wR c #8C7669",
-"xR c #90786B",
-"yR c #917468",
-"zR c #8D7166",
-"AR c #866D62",
-"BR c #806B60",
-"CR c #7E6D64",
-"DR c #7E6E64",
-"ER c #7C6D64",
-"FR c #796A62",
-"GR c #776960",
-"HR c #74665D",
-"IR c #887A70",
-"JR c #7C6E61",
-"KR c #837468",
-"LR c #8A7D6E",
-"MR c #8D8171",
-"NR c #8E8271",
-"OR c #877C6A",
-"PR c #897F6D",
-"QR c #877D6C",
-"RR c #867C6B",
-"SR c #675843",
-"TR c #665842",
-"UR c #6C5D46",
-"VR c #6F604A",
-"WR c #776B54",
-"XR c #766C56",
-"YR c #585448",
-"ZR c #645F4C",
-"`R c #68644F",
-" S c #78725A",
-".S c #6B6952",
-"+S c #7C847C",
-"@S c #7B847B",
-"#S c #7B837B",
-"$S c #7A8179",
-"%S c #7A8279",
-"&S c #798179",
-"*S c #79817A",
-"=S c #7A817A",
-"-S c #7A8379",
-";S c #7A8278",
-">S c #7A8078",
-",S c #787E75",
-"'S c #777C74",
-")S c #767B74",
-"!S c #74776F",
-"~S c #71766D",
-"{S c #72766D",
-"]S c #70766D",
-"^S c #6F746C",
-"/S c #6C7066",
-"(S c #6C6F64",
-"_S c #6B6F64",
-":S c #696D62",
-"<S c #686A5E",
-"[S c #66685C",
-"}S c #646458",
-"|S c #626457",
-"1S c #606055",
-"2S c #5F6054",
-"3S c #5F6055",
-"4S c #606056",
-"5S c #616458",
-"6S c #5C5D57",
-"7S c #5C5D56",
-"8S c #5C5E56",
-"9S c #5C5E58",
-"0S c #5D5E57",
-"aS c #5D5E58",
-"bS c #5E5F58",
-"cS c #606059",
-"dS c #616059",
-"eS c #646359",
-"fS c #65645A",
-"gS c #686962",
-"hS c #666862",
-"iS c #767672",
-"jS c #64625F",
-"kS c #646360",
-"lS c #656360",
-"mS c #666460",
-"nS c #676460",
-"oS c #696662",
-"pS c #6A6763",
-"qS c #6A6764",
-"rS c #6B6864",
-"sS c #6C6964",
-"tS c #6D6A65",
-"uS c #6E6A66",
-"vS c #6E6B66",
-"wS c #6F6C67",
-"xS c #706C68",
-"yS c #716C68",
-"zS c #716D68",
-"AS c #726C68",
-"BS c #726B68",
-"CS c #736D68",
-"DS c #736C68",
-"ES c #746D68",
-"FS c #766E6A",
-"GS c #888482",
-"HS c #7A726D",
-"IS c #7D726E",
-"JS c #7D736E",
-"KS c #7F746F",
-"LS c #817671",
-"MS c #827671",
-"NS c #827571",
-"OS c #867772",
-"PS c #8C7973",
-"QS c #907B74",
-"RS c #897A75",
-"SS c #897A76",
-"TS c #8A7B76",
-"US c #907F7A",
-"VS c #958C8A",
-"WS c #92807D",
-"XS c #93817E",
-"YS c #94827E",
-"ZS c #988582",
-"`S c #9B8684",
-" T c #9C8684",
-".T c #A08D88",
-"+T c #9F8C88",
-"@T c #9E8C88",
-"#T c #9D8986",
-"$T c #9C8986",
-"%T c #9C8885",
-"&T c #9B8682",
-"*T c #9A8784",
-"=T c #94817D",
-"-T c #93807A",
-";T c #927F79",
-">T c #8E7E76",
-",T c #8E7E74",
-"'T c #8C7C73",
-")T c #8A7970",
-"!T c #86766C",
-"~T c #857267",
-"{T c #887468",
-"]T c #8E7268",
-"^T c #907266",
-"/T c #8B7065",
-"(T c #7D6A60",
-"_T c #7D6C63",
-":T c #7F6E65",
-"<T c #7E6E65",
-"[T c #7D6E66",
-"}T c #7B6C64",
-"|T c #786A61",
-"1T c #76685F",
-"2T c #7A6A5D",
-"3T c #817265",
-"4T c #908372",
-"5T c #897F6E",
-"6T c #8C8272",
-"7T c #6B5E48",
-"8T c #6B5D47",
-"9T c #6E5F49",
-"0T c #72644D",
-"aT c #72654E",
-"bT c #70644C",
-"cT c #72664C",
-"dT c #736A50",
-"eT c #756C56",
-"fT c #64604C",
-"gT c #69644F",
-"hT c #77725A",
-"iT c #666450",
-"jT c #6C6A52",
-"kT c #4F544F",
-"lT c #606B61",
-"mT c #7B847A",
-"nT c #7B837A",
-"oT c #7A837A",
-"pT c #7B827A",
-"qT c #7C837A",
-"rT c #7B837C",
-"sT c #7C837C",
-"tT c #7C847B",
-"uT c #7B827B",
-"vT c #7C837B",
-"wT c #7C847A",
-"xT c #7B8279",
-"yT c #70756E",
-"zT c #5A5A56",
-"AT c #6E736C",
-"BT c #5A5956",
-"CT c #6D716A",
-"DT c #595854",
-"ET c #646560",
-"FT c #585854",
-"GT c #6B6E66",
-"HT c #595853",
-"IT c #6A6D64",
-"JT c #6A6C63",
-"KT c #565650",
-"LT c #585853",
-"MT c #676C63",
-"NT c #54524D",
-"OT c #616459",
-"PT c #52514B",
-"QT c #5F6157",
-"RT c #65685C",
-"ST c #65675B",
-"TT c #58584F",
-"UT c #504E47",
-"VT c #504D46",
-"WT c #4F4C46",
-"XT c #4E4B46",
-"YT c #59594E",
-"ZT c #5C5C51",
-"`T c #504F48",
-" U c #4E4B45",
-".U c #4E4C46",
-"+U c #504E4A",
-"@U c #52504B",
-"#U c #5F6159",
-"$U c #4E4C49",
-"%U c #4C4946",
-"&U c #4B4946",
-"*U c #4B4846",
-"=U c #4D4C48",
-"-U c #50504C",
-";U c #4D4A48",
-">U c #565752",
-",U c #595B55",
-"'U c #5A5C55",
-")U c #514F4C",
-"!U c #4C4846",
-"~U c #4D4B48",
-"{U c #585952",
-"]U c #595851",
-"^U c #4D4A46",
-"/U c #4C4A46",
-"(U c #52504A",
-"_U c #504E49",
-":U c #5E5E55",
-"<U c #62615A",
-"[U c #54524E",
-"}U c #514E4C",
-"|U c #504E4B",
-"1U c #5A5755",
-"2U c #5C5A57",
-"3U c #555250",
-"4U c #504C4A",
-"5U c #5E5B58",
-"6U c #615E5A",
-"7U c #544F4E",
-"8U c #524D4C",
-"9U c #524E4C",
-"0U c #605D59",
-"aU c #63605C",
-"bU c #56504F",
-"cU c #544E4D",
-"dU c #554F4E",
-"eU c #5A5452",
-"fU c #56504E",
-"gU c #554F4D",
-"hU c #5A5451",
-"iU c #5B5452",
-"jU c #57504E",
-"kU c #605956",
-"lU c #726A66",
-"mU c #84807E",
-"nU c #776F6B",
-"oU c #79706C",
-"pU c #726965",
-"qU c #5E5553",
-"rU c #5C5351",
-"sU c #635A57",
-"tU c #635957",
-"uU c #5D5452",
-"vU c #5E5452",
-"wU c #615553",
-"xU c #635654",
-"yU c #786661",
-"zU c #8A7670",
-"AU c #726460",
-"BU c #625654",
-"CU c #625756",
-"DU c #615654",
-"EU c #615655",
-"FU c #7A6D69",
-"GU c #887974",
-"HU c #8C7B77",
-"IU c #8F7E7A",
-"JU c #988482",
-"KU c #9C8785",
-"LU c #9E8986",
-"MU c #A18E8A",
-"NU c #A18E89",
-"OU c #A08D89",
-"PU c #9E8B87",
-"QU c #9E8A86",
-"RU c #95807C",
-"SU c #8F7E78",
-"TU c #8C7C74",
-"UU c #8A7971",
-"VU c #887870",
-"WU c #88776E",
-"XU c #88756A",
-"YU c #867368",
-"ZU c #897469",
-"`U c #8B7066",
-" V c #8F7166",
-".V c #8E7267",
-"+V c #887064",
-"@V c #816C62",
-"#V c #7C6B61",
-"$V c #87786E",
-"%V c #78665A",
-"&V c #7E6E62",
-"*V c #857668",
-"=V c #887A6A",
-"-V c #8E806F",
-";V c #8D8270",
-">V c #877A69",
-",V c #877C6B",
-"'V c #736652",
-")V c #71634E",
-"!V c #70614C",
-"~V c #6E604A",
-"{V c #71644C",
-"]V c #72664D",
-"^V c #756951",
-"/V c #756C52",
-"(V c #5A554A",
-"_V c #767159",
-":V c #6D6B54",
-"<V c #7D877D",
-"[V c #7E867D",
-"}V c #7C857C",
-"|V c #7D857D",
-"1V c #7E857E",
-"2V c #7F867F",
-"3V c #80867E",
-"4V c #7F867D",
-"5V c #7E857C",
-"6V c #666766",
-"7V c #CAD6E3",
-"8V c #595955",
-"9V c #585954",
-"0V c #636362",
-"aV c #565652",
-"bV c #636165",
-"cV c #565450",
-"dV c #626160",
-"eV c #55544F",
-"fV c #717176",
-"gV c #B7C0CC",
-"hV c #565751",
-"iV c #5F5E5D",
-"jV c #504F49",
-"kV c #5E5E5B",
-"lV c #4F4D48",
-"mV c #5E5E5A",
-"nV c #AEB6C1",
-"oV c #484441",
-"pV c #787A7E",
-"qV c #BEC9D5",
-"rV c #84868D",
-"sV c #969CA4",
-"tV c #585851",
-"uV c #5E5F59",
-"vV c #575754",
-"wV c #84888E",
-"xV c #C3CEDA",
-"yV c #A4ACB5",
-"zV c #737579",
-"AV c #7D7F84",
-"BV c #52544E",
-"CV c #575852",
-"DV c #616062",
-"EV c #B2BCC6",
-"FV c #4D4B46",
-"GV c #585951",
-"HV c #4C4845",
-"IV c #707076",
-"JV c #53514D",
-"KV c #5E5C58",
-"LV c #60605A",
-"MV c #62615C",
-"NV c #5E5D58",
-"OV c #7A7A80",
-"PV c #565355",
-"QV c #666467",
-"RV c #84878E",
-"SV c #85888E",
-"TV c #666162",
-"UV c #7E7A78",
-"VV c #736A66",
-"WV c #756C68",
-"XV c #655D5B",
-"YV c #8F949B",
-"ZV c #C5D1DD",
-"`V c #7A787D",
-" W c #6D6463",
-".W c #706C6E",
-"+W c #847570",
-"@W c #887874",
-"#W c #9D8A87",
-"$W c #9E8B88",
-"%W c #9F8A88",
-"&W c #A28F8B",
-"*W c #A08C89",
-"=W c #9E8886",
-"-W c #9D8885",
-";W c #9C8886",
-">W c #907F78",
-",W c #8E7D75",
-"'W c #8A7A71",
-")W c #89766C",
-"!W c #867469",
-"~W c #876E64",
-"{W c #8C7064",
-"]W c #8F7266",
-"^W c #8C7166",
-"/W c #866F64",
-"(W c #7E6B61",
-"_W c #7B6A60",
-":W c #7E6E66",
-"<W c #7C6E66",
-"[W c #7A6B63",
-"}W c #8A7C71",
-"|W c #7A695C",
-"1W c #847466",
-"2W c #897B6A",
-"3W c #8D8170",
-"4W c #8F8272",
-"5W c #897E6D",
-"6W c #8E8374",
-"7W c #726752",
-"8W c #726650",
-"9W c #71624C",
-"0W c #73644D",
-"aW c #746850",
-"bW c #766D53",
-"cW c #796E58",
-"dW c #5B554A",
-"eW c #68614D",
-"fW c #6C6450",
-"gW c #64614C",
-"hW c #686550",
-"iW c #758175",
-"jW c #7F867E",
-"kW c #7E867E",
-"lW c #7D867D",
-"mW c #80867F",
-"nW c #7E857D",
-"oW c #7F867C",
-"pW c #798278",
-"qW c #666665",
-"rW c #575753",
-"sW c #545350",
-"tW c #52514E",
-"uW c #52504D",
-"vW c #52504C",
-"wW c #51524D",
-"xW c #5C5C5A",
-"yW c #4D4B45",
-"zW c #5C5B59",
-"AW c #4B4A45",
-"BW c #808288",
-"CW c #B5BEC9",
-"DW c #484443",
-"EW c #9DA3AD",
-"FW c #9499A1",
-"GW c #53534C",
-"HW c #5B5C56",
-"IW c #5D5B5C",
-"JW c #636265",
-"KW c #575656",
-"LW c #565556",
-"MW c #7E8086",
-"NW c #737479",
-"OW c #A9B1BB",
-"PW c #545253",
-"QW c #7D7E84",
-"RW c #6C6C70",
-"SW c #C8D3E0",
-"TW c #4C4B47",
-"UW c #A9B0BB",
-"VW c #5E5C5E",
-"WW c #4F4E4C",
-"XW c #585756",
-"YW c #595756",
-"ZW c #474242",
-"`W c #92969E",
-" X c #C0CBD8",
-".X c #727277",
-"+X c #595855",
-"@X c #5D5C58",
-"#X c #605E59",
-"$X c #83868D",
-"%X c #91959D",
-"&X c #545152",
-"*X c #656466",
-"=X c #595657",
-"-X c #5A585A",
-";X c #8F939B",
-">X c #7C7E84",
-",X c #5A5659",
-"'X c #646265",
-")X c #5A5758",
-"!X c #5B5758",
-"~X c #9EA4AC",
-"{X c #7C7D83",
-"]X c #565153",
-"^X c #605D5F",
-"/X c #989DA5",
-"(X c #A7AEB8",
-"_X c #65605E",
-":X c #6D6560",
-"<X c #706864",
-"[X c #6F6C70",
-"}X c #BCC6D2",
-"|X c #656162",
-"1X c #615C5C",
-"2X c #8D9198",
-"3X c #726F72",
-"4X c #999EA7",
-"5X c #9398A0",
-"6X c #635C5E",
-"7X c #615B5C",
-"8X c #78797F",
-"9X c #676060",
-"0X c #80716D",
-"aX c #847470",
-"bX c #8A7874",
-"cX c #8F7D79",
-"dX c #9F8B88",
-"eX c #9F8B89",
-"fX c #A08C8A",
-"gX c #A18D8A",
-"hX c #A18C8A",
-"iX c #A2908C",
-"jX c #A3918C",
-"kX c #A3908D",
-"lX c #A3918D",
-"mX c #A28E8B",
-"nX c #A18E8B",
-"oX c #A18D8B",
-"pX c #A08D8A",
-"qX c #9E8A87",
-"rX c #9D8886",
-"sX c #8F7E76",
-"tX c #8D7E75",
-"uX c #8C7D73",
-"vX c #8C7C72",
-"wX c #8C7B71",
-"xX c #8B7A6F",
-"yX c #867066",
-"zX c #896E64",
-"AX c #8E7166",
-"BX c #8F7367",
-"CX c #8A7266",
-"DX c #836E64",
-"EX c #7C6B62",
-"FX c #7D6D64",
-"GX c #796B63",
-"HX c #8B7C72",
-"IX c #7B695C",
-"JX c #7F6E5F",
-"KX c #857564",
-"LX c #8A7E6D",
-"MX c #8F8372",
-"NX c #867A68",
-"OX c #8B8070",
-"PX c #726451",
-"QX c #786B56",
-"RX c #776953",
-"SX c #746650",
-"TX c #776951",
-"UX c #7A6C54",
-"VX c #7B6E56",
-"WX c #7A6F56",
-"XX c #69624D",
-"YX c #736C55",
-"ZX c #79725A",
-"`X c #64614D",
-" Y c #575D56",
-".Y c #6D786D",
-"+Y c #778377",
-"@Y c #80887F",
-"#Y c #81887F",
-"$Y c #828880",
-"%Y c #818880",
-"&Y c #808780",
-"*Y c #808681",
-"=Y c #808683",
-"-Y c #818682",
-";Y c #828782",
-">Y c #818881",
-",Y c #81867D",
-"'Y c #7F847C",
-")Y c #7C8177",
-"!Y c #666664",
-"~Y c #555351",
-"{Y c #53524F",
-"]Y c #5D5C5A",
-"^Y c #4E4C48",
-"/Y c #5A5958",
-"(Y c #4B4845",
-"_Y c #575654",
-":Y c #494842",
-"<Y c #595856",
-"[Y c #474640",
-"}Y c #52564A",
-"|Y c #737478",
-"1Y c #504C4E",
-"2Y c #AEB6C0",
-"3Y c #4C4C47",
-"4Y c #50514B",
-"5Y c #4E504A",
-"6Y c #656566",
-"7Y c #68686B",
-"8Y c #484643",
-"9Y c #4A4B46",
-"0Y c #484945",
-"aY c #76787D",
-"bY c #727378",
-"cY c #42413D",
-"dY c #464641",
-"eY c #9EA3AC",
-"fY c #44423F",
-"gY c #5A595A",
-"hY c #6B6B6E",
-"iY c #524E51",
-"jY c #A0A6AF",
-"kY c #66666A",
-"lY c #4A4946",
-"mY c #52524D",
-"nY c #646465",
-"oY c #433F3E",
-"pY c #494644",
-"qY c #464241",
-"rY c #575556",
-"sY c #989EA7",
-"tY c #626063",
-"uY c #4A4544",
-"vY c #504D4A",
-"wY c #504D4B",
-"xY c #78787E",
-"yY c #B0B9C4",
-"zY c #4C4746",
-"AY c #747479",
-"BY c #494342",
-"CY c #5B5657",
-"DY c #575253",
-"EY c #6A676A",
-"FY c #685E5C",
-"GY c #6C615E",
-"HY c #77767B",
-"IY c #5D5352",
-"JY c #625855",
-"KY c #5F5553",
-"LY c #888B93",
-"MY c #8A8D94",
-"NY c #524747",
-"OY c #76767B",
-"PY c #655956",
-"QY c #5F5452",
-"RY c #645C5D",
-"SY c #7A6B67",
-"TY c #82726F",
-"UY c #887673",
-"VY c #948B8A",
-"WY c #A08D8B",
-"XY c #A28E8C",
-"YY c #A3928E",
-"ZY c #A3938F",
-"`Y c #A28F8C",
-" Z c #A08B88",
-".Z c #9A8583",
-"+Z c #917F7B",
-"@Z c #8D7E76",
-"#Z c #8D7D72",
-"$Z c #8A7A70",
-"%Z c #887065",
-"&Z c #8B7064",
-"*Z c #8D7367",
-"=Z c #877266",
-"-Z c #806E65",
-";Z c #7B6B62",
-">Z c #7C6C63",
-",Z c #7E6F67",
-"'Z c #7B6C65",
-")Z c #8D7F75",
-"!Z c #7B6A5C",
-"~Z c #7D6C5E",
-"{Z c #806E61",
-"]Z c #847365",
-"^Z c #877A6B",
-"/Z c #8C7F71",
-"(Z c #6D604A",
-"_Z c #766A51",
-":Z c #7A6E54",
-"<Z c #786A50",
-"[Z c #776A4E",
-"}Z c #7B6E51",
-"|Z c #7D7255",
-"1Z c #7B7055",
-"2Z c #7B7057",
-"3Z c #6C644E",
-"4Z c #766E56",
-"5Z c #7B735A",
-"6Z c #63604D",
-"7Z c #66634F",
-"8Z c #758477",
-"9Z c #68766A",
-"0Z c #788477",
-"aZ c #818A80",
-"bZ c #808880",
-"cZ c #80877F",
-"dZ c #808682",
-"eZ c #818782",
-"fZ c #828882",
-"gZ c #828881",
-"hZ c #828981",
-"iZ c #828980",
-"jZ c #82887F",
-"kZ c #81867E",
-"lZ c #80867D",
-"mZ c #7E847B",
-"nZ c #7B8077",
-"oZ c #62625E",
-"pZ c #B0B8C4",
-"qZ c #595658",
-"rZ c #BAC3CF",
-"sZ c #5D5D5C",
-"tZ c #6C6C6F",
-"uZ c #A2A9B2",
-"vZ c #514E4F",
-"wZ c #413E3C",
-"xZ c #464640",
-"yZ c #616162",
-"zZ c #B7C1CC",
-"AZ c #656467",
-"BZ c #787A80",
-"CZ c #727278",
-"DZ c #41403C",
-"EZ c #464842",
-"FZ c #535252",
-"GZ c #C6D0DE",
-"HZ c #514E50",
-"IZ c #8A8E96",
-"JZ c #44423E",
-"KZ c #4A4A44",
-"LZ c #4C4D47",
-"MZ c #464240",
-"NZ c #454440",
-"OZ c #454540",
-"PZ c #484944",
-"QZ c #5F5D61",
-"RZ c #454140",
-"SZ c #4A4945",
-"TZ c #474643",
-"UZ c #626163",
-"VZ c #454240",
-"WZ c #4C4B48",
-"XZ c #464140",
-"YZ c #575456",
-"ZZ c #636264",
-"`Z c #4A4644",
-" ` c #636164",
-".` c #7A7B80",
-"+` c #494442",
-"@` c #484242",
-"#` c #9BA1AA",
-"$` c #8C9097",
-"%` c #474040",
-"&` c #747478",
-"*` c #484140",
-"=` c #595456",
-"-` c #554E4C",
-";` c #86888F",
-">` c #544C4C",
-",` c #646062",
-"'` c #6C6B6E",
-")` c #584B49",
-"!` c #564C4B",
-"~` c #808187",
-"{` c #554948",
-"]` c #5D5250",
-"^` c #776864",
-"/` c #806F6C",
-"(` c #8E7C79",
-"_` c #948A89",
-":` c #9F8C8A",
-"<` c #A38F8D",
-"[` c #A3908E",
-"}` c #A39390",
-"|` c #A39591",
-"1` c #A39592",
-"2` c #A3928F",
-"3` c #A3918E",
-"4` c #A3918F",
-"5` c #A28D8B",
-"6` c #9A8482",
-"7` c #96837F",
-"8` c #907F76",
-"9` c #8F7F76",
-"0` c #8C7E73",
-"a` c #8A7166",
-"b` c #8A7368",
-"c` c #7C6C64",
-"d` c #7D6F67",
-"e` c #806F63",
-"f` c #87786A",
-"g` c #87796B",
-"h` c #897C6E",
-"i` c #6C5F48",
-"j` c #73664D",
-"k` c #7B6F54",
-"l` c #7E7157",
-"m` c #7C6E54",
-"n` c #7A6E51",
-"o` c #7E7255",
-"p` c #7F7359",
-"q` c #7E725A",
-"r` c #5C564A",
-"s` c #6B644E",
-"t` c #756D56",
-"u` c #7A7259",
-"v` c #63604C",
-"w` c #4F5550",
-"x` c #626C62",
-"y` c #575D57",
-"z` c #828C82",
-"A` c #828A81",
-"B` c #828982",
-"C` c #828A80",
-"D` c #80857B",
-"E` c #7E8379",
-"F` c #7A7E76",
-"G` c #616360",
-"H` c #7C7E83",
-"I` c #555451",
-"J` c #545450",
-"K` c #7A7C81",
-"L` c #525250",
-"M` c #7D7F85",
-"N` c #4A4646",
-"O` c #727478",
-"P` c #626164",
-"Q` c #51514F",
-"R` c #4B4A48",
-"S` c #44433F",
-"T` c #4A4C46",
-"U` c #545352",
-"V` c #7B7C82",
-"W` c #7D7F86",
-"X` c #545452",
-"Y` c #565655",
-"Z` c #696A6D",
-"`` c #444440",
-" . c #59595A",
-". . c #44443E",
-"+ . c #6B6A6E",
-"@ . c #616063",
-"# . c #474842",
-"$ . c #464742",
-"% . c #727377",
-"& . c #626064",
-"* . c #7A7C82",
-"= . c #45443F",
-"- . c #4C4E48",
-"; . c #50514A",
-"> . c #484743",
-", . c #4E4D4B",
-"' . c #4A4C45",
-") . c #4B4C46",
-"! . c #5C5B5C",
-"~ . c #595758",
-"{ . c #53514F",
-"] . c #4A4745",
-"^ . c #4E4F4A",
-"/ . c #4C4D48",
-"( . c #545353",
-"_ . c #484543",
-": . c #4E4C4A",
-"< . c #524F4E",
-"[ . c #585555",
-"} . c #7B7D83",
-"| . c #4A4645",
-"1 . c #4F4C49",
-"2 . c #565353",
-"3 . c #6C6B70",
-"4 . c #4D4846",
-"5 . c #4E4947",
-"6 . c #494443",
-"7 . c #7E7F85",
-"8 . c #737378",
-"9 . c #5D5A5C",
-"0 . c #4A4342",
-"a . c #544E4E",
-"b . c #5A514F",
-"c . c #565050",
-"d . c #585254",
-"e . c #75747A",
-"f . c #635E61",
-"g . c #666366",
-"h . c #554B4A",
-"i . c #6D6C70",
-"j . c #646164",
-"k . c #61524E",
-"l . c #665450",
-"m . c #594D4C",
-"n . c #82848B",
-"o . c #5F5758",
-"p . c #635B5B",
-"q . c #6D5F5C",
-"r . c #766763",
-"s . c #806F6B",
-"t . c #867571",
-"u . c #8E7A77",
-"v . c #958B8A",
-"w . c #A39290",
-"x . c #A39391",
-"y . c #A39492",
-"z . c #A39794",
-"A . c #A39894",
-"B . c #A39491",
-"C . c #A38E8C",
-"D . c #A08B89",
-"E . c #8F7E77",
-"F . c #907F77",
-"G . c #918077",
-"H . c #89786E",
-"I . c #8B756B",
-"J . c #907166",
-"K . c #8B7268",
-"L . c #887269",
-"M . c #7F7068",
-"N . c #7F6D60",
-"O . c #7E6A5D",
-"P . c #87796A",
-"Q . c #86786A",
-"R . c #887C6D",
-"S . c #70634A",
-"T . c #7A6D52",
-"U . c #83765C",
-"V . c #7E7155",
-"W . c #80745A",
-"X . c #6A634D",
-"Y . c #706852",
-"Z . c #78705A",
-"` . c #7C745B",
-" .. c #5B574A",
-"... c #65604E",
-"+.. c #676450",
-"@.. c #848E83",
-"#.. c #848B82",
-"$.. c #838A82",
-"%.. c #848A81",
-"&.. c #838A83",
-"*.. c #848A82",
-"=.. c #838A81",
-"-.. c #848A80",
-";.. c #828A7F",
-">.. c #82877C",
-",.. c #80867A",
-"'.. c #7E8378",
-").. c #797F74",
-"!.. c #747B70",
-"~.. c #6E746B",
-"{.. c #686E64",
-"].. c #63685F",
-"^.. c #5A5C54",
-"/.. c #585B53",
-"(.. c #585A52",
-"_.. c #575951",
-":.. c #565950",
-"<.. c #555850",
-"[.. c #52564D",
-"}.. c #50534A",
-"|.. c #4E5048",
-"1.. c #4C4F46",
-"2.. c #4A4D45",
-"3.. c #494C44",
-"4.. c #484C43",
-"5.. c #484C42",
-"6.. c #4A4D43",
-"7.. c #4A4E44",
-"8.. c #4C5045",
-"9.. c #4C5046",
-"0.. c #4E5147",
-"a.. c #4E5348",
-"b.. c #4F5248",
-"c.. c #4B4E45",
-"d.. c #4A4C43",
-"e.. c #484B43",
-"f.. c #494A44",
-"g.. c #4B4D46",
-"h.. c #4D4F48",
-"i.. c #4F514B",
-"j.. c #4C4F48",
-"k.. c #4D4E48",
-"l.. c #4E5049",
-"m.. c #50524B",
-"n.. c #50524C",
-"o.. c #4F524C",
-"p.. c #4E524B",
-"q.. c #4C4E49",
-"r.. c #484B46",
-"s.. c #484A46",
-"t.. c #484A44",
-"u.. c #4A4B44",
-"v.. c #4C4D46",
-"w.. c #44453F",
-"x.. c #42443E",
-"y.. c #44453E",
-"z.. c #464741",
-"A.. c #4E514A",
-"B.. c #52544C",
-"C.. c #52544D",
-"D.. c #52534C",
-"E.. c #4F514A",
-"F.. c #51524C",
-"G.. c #52534D",
-"H.. c #53544E",
-"I.. c #53544F",
-"J.. c #565651",
-"K.. c #555651",
-"L.. c #555551",
-"M.. c #52534E",
-"N.. c #5E5D5A",
-"O.. c #504F4C",
-"P.. c #54524F",
-"Q.. c #565350",
-"R.. c #555350",
-"S.. c #55524F",
-"T.. c #53504E",
-"U.. c #54514E",
-"V.. c #54504E",
-"W.. c #54504D",
-"X.. c #514E4B",
-"Y.. c #524E4B",
-"Z.. c #544F4D",
-"`.. c #544E4C",
-" +. c #544F4C",
-".+. c #55504D",
-"++. c #564E4C",
-"@+. c #574F4C",
-"#+. c #5A524F",
-"$+. c #5B5250",
-"%+. c #5C5350",
-"&+. c #706B6A",
-"*+. c #635956",
-"=+. c #665A59",
-"-+. c #665B59",
-";+. c #655A58",
-">+. c #625755",
-",+. c #605553",
-"'+. c #605452",
-")+. c #5E5250",
-"!+. c #5E524F",
-"~+. c #5F5350",
-"{+. c #645652",
-"]+. c #685652",
-"^+. c #6D5954",
-"/+. c #6C5954",
-"(+. c #685854",
-"_+. c #655854",
-":+. c #665855",
-"<+. c #665856",
-"[+. c #665956",
-"}+. c #695A58",
-"|+. c #6C5D5A",
-"1+. c #71615E",
-"2+. c #796965",
-"3+. c #82706C",
-"4+. c #887672",
-"5+. c #8E7A76",
-"6+. c #948A88",
-"7+. c #9B8583",
-"8+. c #9E8A88",
-"9+. c #A18E8C",
-"0+. c #A2908E",
-"a+. c #A39593",
-"b+. c #A39594",
-"c+. c #A39694",
-"d+. c #A39996",
-"e+. c #A39A96",
-"f+. c #A39895",
-"g+. c #A39795",
-"h+. c #8B7A72",
-"i+. c #8A7A72",
-"j+. c #8C7870",
-"k+. c #8E766C",
-"l+. c #897468",
-"m+. c #85746A",
-"n+. c #82736A",
-"o+. c #7F6F67",
-"p+. c #827266",
-"q+. c #7C6A5C",
-"r+. c #7E6B5D",
-"s+. c #867769",
-"t+. c #70604A",
-"u+. c #7E7257",
-"v+. c #82765C",
-"w+. c #7F7257",
-"x+. c #7B6F52",
-"y+. c #7F735B",
-"z+. c #5C574A",
-"A+. c #6A624D",
-"B+. c #6F6752",
-"C+. c #5C584C",
-"D+. c #666250",
-"E+. c #686651",
-"F+. c #4E544F",
-"G+. c #707A6E",
-"H+. c #858E84",
-"I+. c #848C83",
-"J+. c #848B83",
-"K+. c #828A82",
-"L+. c #80887C",
-"M+. c #7F8478",
-"N+. c #7A8076",
-"O+. c #767C72",
-"P+. c #71776D",
-"Q+. c #6C7168",
-"R+. c #666B61",
-"S+. c #5C5F56",
-"T+. c #5B5E55",
-"U+. c #5A5E54",
-"V+. c #5A5D54",
-"W+. c #585B52",
-"X+. c #565850",
-"Y+. c #52554C",
-"Z+. c #505249",
-"`+. c #4D5147",
-" @. c #4C5047",
-".@. c #4D5047",
-"+@. c #4D5046",
-"@@. c #4D5146",
-"#@. c #4E5248",
-"$@. c #4F5449",
-"%@. c #51564B",
-"&@. c #53584D",
-"*@. c #54584D",
-"=@. c #52554B",
-"-@. c #51534B",
-";@. c #50524A",
-">@. c #4F524A",
-",@. c #545650",
-"'@. c #54564F",
-")@. c #52554E",
-"!@. c #50534C",
-"~@. c #53554F",
-"{@. c #535650",
-"]@. c #52564F",
-"^@. c #50534D",
-"/@. c #4E524C",
-"(@. c #4E504B",
-"_@. c #50504B",
-":@. c #4F504A",
-"<@. c #4E4F49",
-"[@. c #494A45",
-"}@. c #545751",
-"|@. c #565952",
-"1@. c #575A52",
-"2@. c #565A52",
-"3@. c #565852",
-"4@. c #565851",
-"5@. c #595A53",
-"6@. c #595B54",
-"7@. c #595A54",
-"8@. c #585A54",
-"9@. c #585A55",
-"0@. c #666662",
-"a@. c #575653",
-"b@. c #585753",
-"c@. c #5A5854",
-"d@. c #5C5955",
-"e@. c #5B5955",
-"f@. c #5B5854",
-"g@. c #5B5855",
-"h@. c #595653",
-"i@. c #5A5754",
-"j@. c #5B5653",
-"k@. c #5A5652",
-"l@. c #585552",
-"m@. c #585451",
-"n@. c #575450",
-"o@. c #595451",
-"p@. c #5A5552",
-"q@. c #5B5652",
-"r@. c #5C5652",
-"s@. c #5B5552",
-"t@. c #5D5653",
-"u@. c #5E5654",
-"v@. c #605755",
-"w@. c #615855",
-"x@. c #625856",
-"y@. c #76706E",
-"z@. c #685C59",
-"A@. c #695D5B",
-"B@. c #695D5C",
-"C@. c #685C5A",
-"D@. c #665A57",
-"E@. c #655855",
-"F@. c #6E5C57",
-"G@. c #725D58",
-"H@. c #765F5A",
-"I@. c #74605B",
-"J@. c #705F5B",
-"K@. c #6C5E5B",
-"L@. c #6D5E5B",
-"M@. c #6C5E5A",
-"N@. c #6F605D",
-"O@. c #72625F",
-"P@. c #766662",
-"Q@. c #7D6B68",
-"R@. c #85726E",
-"S@. c #8B7874",
-"T@. c #958B89",
-"U@. c #967F7C",
-"V@. c #A39695",
-"W@. c #A39796",
-"X@. c #A39896",
-"Y@. c #A39B98",
-"Z@. c #A39C9A",
-"`@. c #A39C99",
-" #. c #A39A98",
-".#. c #A39997",
-"+#. c #A39A97",
-"@#. c #957F7C",
-"##. c #917F78",
-"$#. c #8D7D76",
-"%#. c #8B7A74",
-"&#. c #8A7A74",
-"*#. c #8E7970",
-"=#. c #91786E",
-"-#. c #91766C",
-";#. c #8B7468",
-">#. c #7B6B64",
-",#. c #908077",
-"'#. c #847266",
-")#. c #7B685A",
-"!#. c #7F6C5E",
-"~#. c #806F61",
-"{#. c #837667",
-"]#. c #8B7F6E",
-"^#. c #6E5F48",
-"/#. c #706147",
-"(#. c #706347",
-"_#. c #76694D",
-":#. c #807358",
-"<#. c #84785C",
-"[#. c #7E7256",
-"}#. c #7C7056",
-"|#. c #80745C",
-"1#. c #5E584D",
-"2#. c #6C644F",
-"3#. c #716954",
-"4#. c #7A725C",
-"5#. c #5E5A4E",
-"6#. c #6C6652",
-"7#. c #585E58",
-"8#. c #798578",
-"9#. c #869084",
-"0#. c #858C83",
-"a#. c #868D84",
-"b#. c #838A80",
-"c#. c #828A7E",
-"d#. c #7F8579",
-"e#. c #7E8477",
-"f#. c #7D8276",
-"g#. c #7A8175",
-"h#. c #787D71",
-"i#. c #73796D",
-"j#. c #6F7569",
-"k#. c #6B7065",
-"l#. c #62665C",
-"m#. c #5F6258",
-"n#. c #5A5C53",
-"o#. c #54574E",
-"p#. c #53564C",
-"q#. c #52574C",
-"r#. c #52564C",
-"s#. c #52544B",
-"t#. c #52564B",
-"u#. c #52574B",
-"v#. c #575C52",
-"w#. c #5A5F54",
-"x#. c #5A5D52",
-"y#. c #595C54",
-"z#. c #5B5D57",
-"A#. c #595C53",
-"B#. c #565951",
-"C#. c #575952",
-"D#. c #575A54",
-"E#. c #555852",
-"F#. c #545651",
-"G#. c #555750",
-"H#. c #575851",
-"I#. c #545550",
-"J#. c #52554F",
-"K#. c #51534D",
-"L#. c #565853",
-"M#. c #595C55",
-"N#. c #5B5D56",
-"O#. c #5E5E59",
-"P#. c #5D5E59",
-"Q#. c #61615C",
-"R#. c #6F6E6B",
-"S#. c #605E5A",
-"T#. c #615F5B",
-"U#. c #62605C",
-"V#. c #61605C",
-"W#. c #61605B",
-"X#. c #615E5B",
-"Y#. c #625E5A",
-"Z#. c #605D5A",
-"`#. c #625D5A",
-" $. c #605C59",
-".$. c #605C58",
-"+$. c #5F5C58",
-"@$. c #615C58",
-"#$. c #645E5A",
-"$$. c #635C59",
-"%$. c #645C5A",
-"&$. c #655C5A",
-"*$. c #665C5A",
-"=$. c #685E5B",
-"-$. c #695F5D",
-";$. c #6A605D",
-">$. c #7D7776",
-",$. c #6D625F",
-"'$. c #6E625E",
-")$. c #6E625F",
-"!$. c #6E605E",
-"~$. c #6C5F5D",
-"{$. c #6C5E5C",
-"]$. c #6D5E5C",
-"^$. c #6E5F5C",
-"/$. c #72605D",
-"($. c #78635F",
-"_$. c #7E655F",
-":$. c #7F6660",
-"<$. c #7C6662",
-"[$. c #776562",
-"}$. c #756462",
-"|$. c #766562",
-"1$. c #766561",
-"2$. c #796864",
-"3$. c #7C6A66",
-"4$. c #7E6C69",
-"5$. c #83706D",
-"6$. c #887471",
-"7$. c #8D7875",
-"8$. c #907B77",
-"9$. c #968C8A",
-"0$. c #957E7B",
-"a$. c #967F7D",
-"b$. c #9A8481",
-"c$. c #A39A99",
-"d$. c #A39E9C",
-"e$. c #A39C9B",
-"f$. c #A39B9A",
-"g$. c #98837F",
-"h$. c #937F7B",
-"i$. c #907F79",
-"j$. c #908078",
-"k$. c #8C7B75",
-"l$. c #8B7B76",
-"m$. c #8C7D76",
-"n$. c #8F7D75",
-"o$. c #917C72",
-"p$. c #8C7468",
-"q$. c #867266",
-"r$. c #827268",
-"s$. c #81726A",
-"t$. c #7C6D66",
-"u$. c #816F63",
-"v$. c #857266",
-"w$. c #7D6B5D",
-"x$. c #7B685C",
-"y$. c #7E6D5E",
-"z$. c #817062",
-"A$. c #847667",
-"B$. c #897C6B",
-"C$. c #706148",
-"D$. c #6F6146",
-"E$. c #706348",
-"F$. c #7A6D51",
-"G$. c #82765A",
-"H$. c #817559",
-"I$. c #7C7055",
-"J$. c #5D574C",
-"K$. c #6B624D",
-"L$. c #6A6452",
-"M$. c #6C6654",
-"N$. c #736D59",
-"O$. c #6A7369",
-"P$. c #6E786E",
-"Q$. c #7E8A7B",
-"R$. c #82897F",
-"S$. c #82897E",
-"T$. c #81887C",
-"U$. c #7F8679",
-"V$. c #7E8678",
-"W$. c #7C8276",
-"X$. c #7A8174",
-"Y$. c #7A8074",
-"Z$. c #72766B",
-"`$. c #6E7368",
-" %. c #66695F",
-".%. c #5C6054",
-"+%. c #595C52",
-"@%. c #585B51",
-"#%. c #585B50",
-"$%. c #585C50",
-"%%. c #575A50",
-"&%. c #56594F",
-"*%. c #585A51",
-"=%. c #585D51",
-"-%. c #5C6257",
-";%. c #5F6359",
-">%. c #5E6259",
-",%. c #595C56",
-"'%. c #585B55",
-")%. c #595B53",
-"!%. c #5A5B54",
-"~%. c #5A5A55",
-"{%. c #565854",
-"]%. c #585955",
-"^%. c #595B57",
-"/%. c #5C5E5A",
-"(%. c #5D605A",
-"_%. c #63645C",
-":%. c #65665D",
-"<%. c #62635C",
-"[%. c #62625C",
-"}%. c #62635E",
-"|%. c #64645F",
-"1%. c #767471",
-"2%. c #64625E",
-"3%. c #66635F",
-"4%. c #66625F",
-"5%. c #66625E",
-"6%. c #67625E",
-"7%. c #67625F",
-"8%. c #67635F",
-"9%. c #66635E",
-"0%. c #65625E",
-"a%. c #65615E",
-"b%. c #65615C",
-"c%. c #66615D",
-"d%. c #68625E",
-"e%. c #68635F",
-"f%. c #6A6360",
-"g%. c #6A6460",
-"h%. c #6A625F",
-"i%. c #69615E",
-"j%. c #6A615E",
-"k%. c #6B615E",
-"l%. c #6E6360",
-"m%. c #706462",
-"n%. c #827C7A",
-"o%. c #726663",
-"p%. c #746664",
-"q%. c #736663",
-"r%. c #726562",
-"s%. c #726461",
-"t%. c #716361",
-"u%. c #726360",
-"v%. c #726261",
-"w%. c #756461",
-"x%. c #7A6662",
-"y%. c #816964",
-"z%. c #866A64",
-"A%. c #856A65",
-"B%. c #816B66",
-"C%. c #7D6A66",
-"D%. c #7C6965",
-"E%. c #7D6B67",
-"F%. c #7F6C68",
-"G%. c #816E6A",
-"H%. c #84706C",
-"I%. c #887370",
-"J%. c #8A7673",
-"K%. c #8E7875",
-"L%. c #958A88",
-"M%. c #947D79",
-"N%. c #957E7C",
-"O%. c #97807E",
-"P%. c #A1908E",
-"Q%. c #A09190",
-"R%. c #A09290",
-"S%. c #A09392",
-"T%. c #A09492",
-"U%. c #A09694",
-"V%. c #A09896",
-"W%. c #A09998",
-"X%. c #A09A98",
-"Y%. c #A09C9A",
-"Z%. c #A09C9B",
-"`%. c #A09C99",
-" &. c #A09897",
-".&. c #A09695",
-"+&. c #A09593",
-"@&. c #A08F8E",
-"#&. c #A08E8C",
-"$&. c #998482",
-"%&. c #8D7C76",
-"&&. c #8C7A73",
-"*&. c #907C72",
-"=&. c #947C70",
-"-&. c #887367",
-";&. c #807269",
-">&. c #7F6F68",
-",&. c #7C6D65",
-"'&. c #837065",
-")&. c #837063",
-"!&. c #7A675B",
-"~&. c #817263",
-"{&. c #847666",
-"]&. c #887C6A",
-"^&. c #6A5B42",
-"/&. c #6F6048",
-"(&. c #6F6045",
-"_&. c #6D6045",
-":&. c #72664A",
-"<&. c #7D7054",
-"[&. c #82755A",
-"}&. c #7A6E55",
-"|&. c #595448",
-"1&. c #6D6450",
-"2&. c #6E6751",
-"3&. c #79705A",
-"4&. c #6C6955",
-"5&. c #6E6856",
-"6&. c #746E5A",
-"7&. c #616C62",
-"8&. c #6E796E",
-"9&. c #879085",
-"0&. c #81887E",
-"a&. c #7E8578",
-"b&. c #7C8476",
-"c&. c #777D6F",
-"d&. c #74796C",
-"e&. c #6F7668",
-"f&. c #5C5F55",
-"g&. c #5C5E54",
-"h&. c #5B5E53",
-"i&. c #5A5E53",
-"j&. c #5D6256",
-"k&. c #5F6456",
-"l&. c #61665B",
-"m&. c #62685B",
-"n&. c #63665F",
-"o&. c #646661",
-"p&. c #64675D",
-"q&. c #64665D",
-"r&. c #5F6259",
-"s&. c #5D625A",
-"t&. c #5D615A",
-"u&. c #5C5F59",
-"v&. c #5B5C57",
-"w&. c #5A5C57",
-"x&. c #5A5B56",
-"y&. c #5C5D59",
-"z&. c #5D5E5A",
-"A&. c #65665E",
-"B&. c #686961",
-"C&. c #676962",
-"D&. c #676861",
-"E&. c #65675F",
-"F&. c #797874",
-"G&. c #686661",
-"H&. c #686561",
-"I&. c #686460",
-"J&. c #686560",
-"K&. c #696661",
-"L&. c #696561",
-"M&. c #6A6461",
-"N&. c #6A6561",
-"O&. c #6A6662",
-"P&. c #696562",
-"Q&. c #6C6662",
-"R&. c #6D6662",
-"S&. c #6E6863",
-"T&. c #6E6662",
-"U&. c #6E6562",
-"V&. c #6E6462",
-"W&. c #6F6462",
-"X&. c #706562",
-"Y&. c #716662",
-"Z&. c #726664",
-"`&. c #857E7D",
-" *. c #746764",
-".*. c #766864",
-"+*. c #766865",
-"@*. c #766765",
-"#*. c #776764",
-"$*. c #7A6865",
-"%*. c #806A66",
-"&*. c #876C66",
-"**. c #8C6D67",
-"=*. c #876D68",
-"-*. c #826C68",
-";*. c #7F6B68",
-">*. c #806C68",
-",*. c #816C68",
-"'*. c #816D69",
-")*. c #826D6A",
-"!*. c #846F6C",
-"~*. c #86706D",
-"{*. c #88726F",
-"]*. c #8A7471",
-"^*. c #8D7774",
-"/*. c #8F7976",
-"(*. c #917A77",
-"_*. c #937B78",
-":*. c #967E7C",
-"<*. c #8C7970",
-"[*. c #8A796E",
-"}*. c #88786E",
-"|*. c #86786D",
-"1*. c #86786E",
-"2*. c #86796E",
-"3*. c #867A6F",
-"4*. c #867B70",
-"5*. c #867A6E",
-"6*. c #86776C",
-"7*. c #86776B",
-"8*. c #86766B",
-"9*. c #86766A",
-"0*. c #847469",
-"a*. c #817166",
-"b*. c #87746C",
-"c*. c #92817A",
-"d*. c #91807A",
-"e*. c #8E7B75",
-"f*. c #8A7974",
-"g*. c #897875",
-"h*. c #897874",
-"i*. c #8A7973",
-"j*. c #8E7A72",
-"k*. c #927C71",
-"l*. c #8C776B",
-"m*. c #857268",
-"n*. c #80726A",
-"o*. c #7E6F68",
-"p*. c #7F6C60",
-"q*. c #827064",
-"r*. c #816F61",
-"s*. c #796759",
-"t*. c #7C6C5D",
-"u*. c #807263",
-"v*. c #6A5A42",
-"w*. c #6D5C44",
-"x*. c #706246",
-"y*. c #6F6246",
-"z*. c #807357",
-"A*. c #80735A",
-"B*. c #7C7158",
-"C*. c #595447",
-"D*. c #6E6552",
-"E*. c #706751",
-"F*. c #776E58",
-"G*. c #706B59",
-"H*. c #77725D",
-"I*. c #798275",
-"J*. c #6F796E",
-"K*. c #858D83",
-"L*. c #848B84",
-"M*. c #848B81",
-"N*. c #848A7E",
-"O*. c #84897D",
-"P*. c #81867A",
-"Q*. c #808579",
-"R*. c #7C8377",
-"S*. c #7C8175",
-"T*. c #787C70",
-"U*. c #74786B",
-"V*. c #6D7064",
-"W*. c #5E6156",
-"X*. c #5F6358",
-"Y*. c #5E6257",
-"Z*. c #5F6256",
-"`*. c #5F6457",
-" =. c #5F6458",
-".=. c #62685E",
-"+=. c #626860",
-"@=. c #636962",
-"#=. c #636A62",
-"$=. c #626961",
-"%=. c #626861",
-"&=. c #636860",
-"*=. c #636A61",
-"==. c #646961",
-"-=. c #646960",
-";=. c #636960",
-">=. c #646A60",
-",=. c #666A62",
-"'=. c #676A61",
-")=. c #62665F",
-"!=. c #60635D",
-"~=. c #60645C",
-"{=. c #5F625C",
-"]=. c #5F615C",
-"^=. c #5F6059",
-"/=. c #686861",
-"(=. c #6B6A64",
-"_=. c #6C6B67",
-":=. c #6C6B69",
-"<=. c #6C6A68",
-"[=. c #7A7876",
-"}=. c #686462",
-"|=. c #696462",
-"1=. c #6A6564",
-"2=. c #6A6664",
-"3=. c #6B6564",
-"4=. c #6C6564",
-"5=. c #6C6664",
-"6=. c #6C6665",
-"7=. c #6E6665",
-"8=. c #6E6766",
-"9=. c #6F6766",
-"0=. c #706866",
-"a=. c #716866",
-"b=. c #716766",
-"c=. c #716666",
-"d=. c #716665",
-"e=. c #736666",
-"f=. c #746666",
-"g=. c #746866",
-"h=. c #878080",
-"i=. c #766866",
-"j=. c #786866",
-"k=. c #796866",
-"l=. c #796966",
-"m=. c #7A6966",
-"n=. c #7B6A67",
-"o=. c #806B68",
-"p=. c #866E6B",
-"q=. c #8B6F6A",
-"r=. c #8D6F6B",
-"s=. c #876E6B",
-"t=. c #826C6A",
-"u=. c #806C6A",
-"v=. c #816C6A",
-"w=. c #826E6B",
-"x=. c #846F6B",
-"y=. c #856F6D",
-"z=. c #86716E",
-"A=. c #897370",
-"B=. c #8C7572",
-"C=. c #8D7673",
-"D=. c #8F7875",
-"E=. c #907876",
-"F=. c #958988",
-"G=. c #927A78",
-"H=. c #947C79",
-"I=. c #967E7B",
-"J=. c #977F7D",
-"K=. c #998180",
-"L=. c #9B8482",
-"M=. c #9C8583",
-"N=. c #9D8785",
-"O=. c #A08A88",
-"P=. c #9F8A89",
-"Q=. c #A19990",
-"R=. c #E9ECF0",
-"S=. c #E5E9ED",
-"T=. c #DEE3E8",
-"U=. c #DDE2E7",
-"V=. c #CDD5DD",
-"W=. c #A7B2BD",
-"X=. c #70645A",
-"Y=. c #97837E",
-"Z=. c #94827D",
-"`=. c #95827C",
-" -. c #8E7C77",
-".-. c #8C7875",
-"+-. c #8B7875",
-"@-. c #887873",
-"#-. c #8C7A74",
-"$-. c #927C75",
-"%-. c #957E76",
-"&-. c #89766E",
-"*-. c #817167",
-"=-. c #807167",
-"--. c #7E7066",
-";-. c #806E62",
-">-. c #806F62",
-",-. c #837164",
-"'-. c #847163",
-")-. c #786759",
-"!-. c #7C6C5F",
-"~-. c #6F5D49",
-"{-. c #796B53",
-"]-. c #7E7159",
-"^-. c #7F745C",
-"/-. c #6B614E",
-"(-. c #716853",
-"_-. c #756C55",
-":-. c #716F58",
-"<-. c #76755D",
-"[-. c #6B776A",
-"}-. c #5B605A",
-"|-. c #859183",
-"1-. c #858C84",
-"2-. c #868C84",
-"3-. c #858C85",
-"4-. c #848C84",
-"5-. c #858B81",
-"6-. c #858B7E",
-"7-. c #7E8377",
-"8-. c #7C8277",
-"9-. c #90918E",
-"0-. c #868882",
-"a-. c #848680",
-"b-. c #83857E",
-"c-. c #82837D",
-"d-. c #80827C",
-"e-. c #7E807A",
-"f-. c #7C7E78",
-"g-. c #7C7D78",
-"h-. c #7D7E78",
-"i-. c #7D7F79",
-"j-. c #7E807B",
-"k-. c #7F817C",
-"l-. c #80827D",
-"m-. c #80827E",
-"n-. c #7E827E",
-"o-. c #7E817E",
-"p-. c #7E817D",
-"q-. c #7E817C",
-"r-. c #7E807C",
-"s-. c #7F807C",
-"t-. c #7E7F7C",
-"u-. c #7D7E7B",
-"v-. c #7D7F7B",
-"w-. c #7D7E7A",
-"x-. c #7C7E7A",
-"y-. c #7C7D7A",
-"z-. c #7C7C79",
-"A-. c #7B7C78",
-"B-. c #7A7C78",
-"C-. c #7A7B78",
-"D-. c #7C7D79",
-"E-. c #7E7E7B",
-"F-. c #7F7F7C",
-"G-. c #80807C",
-"H-. c #807F7C",
-"I-. c #81817E",
-"J-. c #828180",
-"K-. c #81807F",
-"L-. c #81807E",
-"M-. c #80807E",
-"N-. c #888786",
-"O-. c #7F7E7D",
-"P-. c #807E7D",
-"Q-. c #807E7E",
-"R-. c #817F7E",
-"S-. c #817E7E",
-"T-. c #827F7E",
-"U-. c #827E7E",
-"V-. c #83807F",
-"W-. c #83807E",
-"X-. c #84807F",
-"Y-. c #85807F",
-"Z-. c #857F7E",
-"`-. c #86807F",
-" ;. c #908C8C",
-".;. c #88807F",
-"+;. c #888180",
-"@;. c #88817F",
-"#;. c #898180",
-"$;. c #89807F",
-"%;. c #8A8180",
-"&;. c #8D8280",
-"*;. c #908281",
-"=;. c #938381",
-"-;. c #928280",
-";;. c #8F8281",
-">;. c #8D8281",
-",;. c #8D8282",
-"';. c #8E8482",
-");. c #8F8482",
-"!;. c #908483",
-"~;. c #918584",
-"{;. c #918684",
-"];. c #928684",
-"^;. c #938685",
-"/;. c #948786",
-"(;. c #948886",
-"_;. c #958887",
-":;. c #927977",
-"<;. c #947B79",
-"[;. c #967D7A",
-"};. c #977E7D",
-"|;. c #98807E",
-"1;. c #9A8280",
-"2;. c #9C8483",
-"3;. c #97918A",
-"4;. c #DBE0E6",
-"5;. c #DFE4E9",
-"6;. c #D6DCE2",
-"7;. c #D3DAE1",
-"8;. c #B0BAC4",
-"9;. c #5C636A",
-"0;. c #5E5046",
-"a;. c #8C7A77",
-"b;. c #94817A",
-"c;. c #897975",
-"d;. c #8B7974",
-"e;. c #947C75",
-"f;. c #8C7971",
-"g;. c #85756B",
-"h;. c #7F7168",
-"i;. c #837165",
-"j;. c #7B695B",
-"k;. c #786659",
-"l;. c #827466",
-"m;. c #71614A",
-"n;. c #70614A",
-"o;. c #6E5D47",
-"p;. c #5D574A",
-"q;. c #655C48",
-"r;. c #6E6650",
-"s;. c #7D745D",
-"t;. c #5D594D",
-"u;. c #78775F",
-"v;. c #6C776B",
-"w;. c #5C605B",
-"x;. c #7B8779",
-"y;. c #879284",
-"z;. c #7F8B7C",
-"A;. c #848C82",
-"B;. c #868C83",
-"C;. c #878C83",
-"D;. c #878D85",
-"E;. c #868C82",
-"F;. c #868B7F",
-"G;. c #858A7E",
-"H;. c #7D8277",
-"I;. c #7B8276",
-"J;. c #7B8074",
-"K;. c #787B6E",
-"L;. c #6A6E61",
-"M;. c #676A5E",
-"N;. c #64695D",
-"O;. c #62665A",
-"P;. c #64675C",
-"Q;. c #686C61",
-"R;. c #666C64",
-"S;. c #646B64",
-"T;. c #626962",
-"U;. c #636961",
-"V;. c #5A5E57",
-"W;. c #65645E",
-"X;. c #66645F",
-"Y;. c #686762",
-"Z;. c #666461",
-"`;. c #777573",
-" >. c #64605F",
-".>. c #656260",
-"+>. c #666260",
-"@>. c #686360",
-"#>. c #686361",
-"$>. c #6D6664",
-"%>. c #6D6564",
-"&>. c #6E6664",
-"*>. c #6F6664",
-"=>. c #706664",
-"->. c #716664",
-";>. c #716564",
-">>. c #726564",
-",>. c #736664",
-"'>. c #746665",
-")>. c #87807F",
-"!>. c #766665",
-"~>. c #786765",
-"{>. c #7A6866",
-"]>. c #7B6866",
-"^>. c #826A67",
-"/>. c #876B68",
-"(>. c #8D6C68",
-"_>. c #896B68",
-":>. c #846A68",
-"<>. c #806968",
-"[>. c #806A69",
-"}>. c #826B6A",
-"|>. c #846D6B",
-"1>. c #856E6C",
-"2>. c #866E6C",
-"3>. c #866E6D",
-"4>. c #88706E",
-"5>. c #886F6E",
-"6>. c #8A706F",
-"7>. c #8B7170",
-"8>. c #8C7270",
-"9>. c #8E7472",
-"0>. c #8F7473",
-"a>. c #907674",
-"b>. c #927877",
-"c>. c #947978",
-"d>. c #967C7A",
-"e>. c #987F7E",
-"f>. c #9A8080",
-"g>. c #9C8382",
-"h>. c #9D8584",
-"i>. c #9E8786",
-"j>. c #9B8584",
-"k>. c #8F8A84",
-"l>. c #C4CCD6",
-"m>. c #C1CAD4",
-"n>. c #B4C0CC",
-"o>. c #B0BBC7",
-"p>. c #6D757D",
-"q>. c #2F3236",
-"r>. c #574A40",
-"s>. c #756764",
-"t>. c #847370",
-"u>. c #8E7C7A",
-"v>. c #96827C",
-"w>. c #8E7A78",
-"x>. c #8D7A77",
-"y>. c #8C7A76",
-"z>. c #897873",
-"A>. c #8A7873",
-"B>. c #8E7A73",
-"C>. c #937B73",
-"D>. c #927C74",
-"E>. c #8D7A72",
-"F>. c #82746C",
-"G>. c #94857B",
-"H>. c #857468",
-"I>. c #806D5F",
-"J>. c #655340",
-"K>. c #73634C",
-"L>. c #6F5E47",
-"M>. c #6D5C45",
-"N>. c #73654C",
-"O>. c #7A6E56",
-"P>. c #625844",
-"Q>. c #68604A",
-"R>. c #776F58",
-"S>. c #7B725A",
-"T>. c #7B7962",
-"U>. c #5C615B",
-"V>. c #889385",
-"W>. c #878C84",
-"X>. c #878D84",
-"Y>. c #878E86",
-"Z>. c #80857A",
-"`>. c #7A7F73",
-" ,. c #787B6F",
-".,. c #696D61",
-"+,. c #61665A",
-"@,. c #65685D",
-"#,. c #666B60",
-"$,. c #696F64",
-"%,. c #697065",
-"&,. c #696F66",
-"*,. c #686E65",
-"=,. c #666C66",
-"-,. c #656B64",
-";,. c #636A63",
-">,. c #626862",
-",,. c #616660",
-"',. c #626760",
-"),. c #616760",
-"!,. c #61665F",
-"~,. c #585C55",
-"{,. c #595D56",
-"],. c #5A5D57",
-"^,. c #62625B",
-"/,. c #63625C",
-"(,. c #65635E",
-"_,. c #666560",
-":,. c #676562",
-"<,. c #666462",
-"[,. c #65625F",
-"},. c #767472",
-"|,. c #63605D",
-"1,. c #63605E",
-"2,. c #64605E",
-"3,. c #64615F",
-"4,. c #66615F",
-"5,. c #676260",
-"6,. c #676261",
-"7,. c #686261",
-"8,. c #696360",
-"9,. c #6A6361",
-"0,. c #6A6362",
-"a,. c #6B6462",
-"b,. c #6B6362",
-"c,. c #6C6362",
-"d,. c #6C6463",
-"e,. c #6E6564",
-"f,. c #6E6463",
-"g,. c #6F6463",
-"h,. c #706463",
-"i,. c #706464",
-"j,. c #716464",
-"k,. c #716463",
-"l,. c #726463",
-"m,. c #867E7E",
-"n,. c #746463",
-"o,. c #766564",
-"p,. c #766664",
-"q,. c #776664",
-"r,. c #796664",
-"s,. c #796665",
-"t,. c #7C6866",
-"u,. c #826966",
-"v,. c #886B66",
-"w,. c #8C6B66",
-"x,. c #886A66",
-"y,. c #836866",
-"z,. c #7F6866",
-"A,. c #806967",
-"B,. c #816A69",
-"C,. c #826B69",
-"D,. c #846B69",
-"E,. c #846B6A",
-"F,. c #866C6B",
-"G,. c #886E6C",
-"H,. c #89706E",
-"I,. c #8B7070",
-"J,. c #8D7271",
-"K,. c #8E7372",
-"L,. c #907574",
-"M,. c #927675",
-"N,. c #947877",
-"O,. c #957A79",
-"P,. c #977D7C",
-"Q,. c #987E7E",
-"R,. c #9A807F",
-"S,. c #9C8282",
-"T,. c #9E8584",
-"U,. c #998382",
-"V,. c #8E8984",
-"W,. c #C0C9D4",
-"X,. c #BCC6D0",
-"Y,. c #AEBAC7",
-"Z,. c #ACB8C5",
-"`,. c #A9B5C2",
-" '. c #A6B1BE",
-".'. c #A4AFBB",
-"+'. c #A4AEBB",
-"@'. c #9EA8B4",
-"#'. c #5A6066",
-"$'. c #2C2F33",
-"%'. c #54473D",
-"&'. c #6B5E5C",
-"*'. c #7E6F6C",
-"='. c #8C7B78",
-"-'. c #95827F",
-";'. c #907D79",
-">'. c #8D7A76",
-",'. c #8C7975",
-"''. c #897872",
-")'. c #8D7973",
-"!'. c #927B74",
-"~'. c #84776F",
-"{'. c #81726B",
-"]'. c #94857C",
-"^'. c #867669",
-"/'. c #887769",
-"('. c #897769",
-"_'. c #857265",
-":'. c #806E5F",
-"<'. c #7C6B5E",
-"['. c #7A695A",
-"}'. c #7D6D5E",
-"|'. c #604E3A",
-"1'. c #6D5945",
-"2'. c #74624D",
-"3'. c #72624B",
-"4'. c #6E5D46",
-"5'. c #5B5549",
-"6'. c #655C47",
-"7'. c #635943",
-"8'. c #726A52",
-"9'. c #545853",
-"0'. c #727C71",
-"a'. c #5C625C",
-"b'. c #889486",
-"c'. c #849182",
-"d'. c #889286",
-"e'. c #858D82",
-"f'. c #868E83",
-"g'. c #878E83",
-"h'. c #888F84",
-"i'. c #888E84",
-"j'. c #878E84",
-"k'. c #858B80",
-"l'. c #848A7D",
-"m'. c #7B8175",
-"n'. c #797D71",
-"o'. c #76786C",
-"p'. c #82847E",
-"q'. c #62675C",
-"r'. c #63685C",
-"s'. c #65695D",
-"t'. c #6B7267",
-"u'. c #6C7368",
-"v'. c #6B7368",
-"w'. c #6A7268",
-"x'. c #6A7067",
-"y'. c #686F66",
-"z'. c #676E66",
-"A'. c #656C66",
-"B'. c #646B66",
-"C'. c #636964",
-"D'. c #626964",
-"E'. c #616762",
-"F'. c #585B54",
-"G'. c #64635D",
-"H'. c #65635F",
-"I'. c #666360",
-"J'. c #64615E",
-"K'. c #62605D",
-"L'. c #747270",
-"M'. c #625E5C",
-"N'. c #625F5D",
-"O'. c #635F5D",
-"P'. c #645F5D",
-"Q'. c #65605F",
-"R'. c #67615F",
-"S'. c #67605F",
-"T'. c #68605F",
-"U'. c #68625F",
-"V'. c #68615F",
-"W'. c #69615F",
-"X'. c #6A6260",
-"Y'. c #6B6260",
-"Z'. c #6C6260",
-"`'. c #6C6361",
-" ). c #6D6362",
-".). c #6D6361",
-"+). c #6E6362",
-"@). c #716563",
-"#). c #726464",
-"$). c #736464",
-"%). c #736462",
-"&). c #736362",
-"*). c #746262",
-"=). c #746362",
-"-). c #756463",
-";). c #776464",
-">). c #786464",
-",). c #7A6664",
-"'). c #826765",
-")). c #886966",
-"!). c #8C6A66",
-"~). c #866865",
-"{). c #816765",
-"]). c #7E6666",
-"^). c #7F6766",
-"/). c #806866",
-"(). c #826968",
-"_). c #826A69",
-":). c #846A69",
-"<). c #856B6A",
-"[). c #876C6C",
-"}). c #886D6C",
-"|). c #8A6E6E",
-"1). c #8C706F",
-"2). c #8D7171",
-"3). c #8F7373",
-"4). c #927777",
-"5). c #947878",
-"6). c #967A79",
-"7). c #977C7B",
-"8). c #987E7D",
-"9). c #9A7F7F",
-"0). c #9E8484",
-"a). c #9E8585",
-"b). c #988282",
-"c). c #AAB6C2",
-"d). c #959FAA",
-"e). c #4C5257",
-"f). c #44494E",
-"g). c #42484C",
-"h). c #40454A",
-"i). c #2E3135",
-"j). c #52453B",
-"k). c #665A58",
-"l). c #7A6C68",
-"m). c #8A7976",
-"n). c #998681",
-"o). c #98847E",
-"p). c #94817B",
-"q). c #917D78",
-"r). c #8F7A77",
-"s). c #8D7876",
-"t). c #8F7A74",
-"u). c #8A7872",
-"v). c #83766E",
-"w). c #93857B",
-"x). c #867568",
-"y). c #7F6D5F",
-"z). c #7E6D5F",
-"A). c #7A6B5E",
-"B). c #7E6E5F",
-"C). c #5E4A35",
-"D). c #685440",
-"E). c #72604B",
-"F). c #78684F",
-"G). c #6D5E46",
-"H). c #565044",
-"I). c #675E4A",
-"J). c #645A44",
-"K). c #6A6249",
-"L). c #797158",
-"M). c #5B574B",
-"N). c #7A7862",
-"O). c #5D625D",
-"P). c #879485",
-"Q). c #848E81",
-"R). c #8A9388",
-"S). c #878E85",
-"T). c #868E84",
-"U). c #90948E",
-"V). c #91948E",
-"W). c #8F948D",
-"X). c #8F938C",
-"Y). c #90928C",
-"Z). c #8F928C",
-"`). c #8E918A",
-" !. c #8D8F8A",
-".!. c #8C8E88",
-"+!. c #8A8C86",
-"@!. c #888B85",
-"#!. c #878983",
-"$!. c #858781",
-"%!. c #83857F",
-"&!. c #8D8E8B",
-"*!. c #7F817B",
-"=!. c #858782",
-"-!. c #848883",
-";!. c #838782",
-">!. c #828682",
-",!. c #828581",
-"'!. c #828480",
-")!. c #818480",
-"!!. c #808380",
-"~!. c #7F8280",
-"{!. c #7E817F",
-"]!. c #7E827D",
-"^!. c #7D807C",
-"/!. c #7D7F7C",
-"(!. c #797B77",
-"_!. c #797B78",
-":!. c #787A77",
-"<!. c #787A76",
-"[!. c #797A77",
-"}!. c #7D7C7A",
-"|!. c #7D7D7A",
-"1!. c #7E7D7A",
-"2!. c #7E7E7A",
-"3!. c #7E7E7C",
-"4!. c #7E7D7C",
-"5!. c #7D7C7B",
-"6!. c #7C7C7A",
-"7!. c #868484",
-"8!. c #7C7B7A",
-"9!. c #7D7B7A",
-"0!. c #7E7B7A",
-"a!. c #7E7C7A",
-"b!. c #7E7C7B",
-"c!. c #7F7C7B",
-"d!. c #807C7C",
-"e!. c #807C7B",
-"f!. c #807C7A",
-"g!. c #7F7B7A",
-"h!. c #817C7C",
-"i!. c #827C7C",
-"j!. c #827D7C",
-"k!. c #837C7C",
-"l!. c #837D7C",
-"m!. c #847D7C",
-"n!. c #7A6F6E",
-"o!. c #726262",
-"p!. c #736262",
-"q!. c #756464",
-"r!. c #7B6464",
-"s!. c #826664",
-"t!. c #896864",
-"u!. c #8B6964",
-"v!. c #856664",
-"w!. c #806664",
-"x!. c #7E6664",
-"y!. c #7F6664",
-"z!. c #806666",
-"A!. c #826767",
-"B!. c #836868",
-"C!. c #846969",
-"D!. c #856A6A",
-"E!. c #866B6A",
-"F!. c #886B6B",
-"G!. c #896B6C",
-"H!. c #8A6D6D",
-"I!. c #8C6E6F",
-"J!. c #8E7171",
-"K!. c #907373",
-"L!. c #927676",
-"M!. c #957879",
-"N!. c #967B7B",
-"O!. c #987D7D",
-"P!. c #997E7E",
-"Q!. c #9B7F7F",
-"R!. c #9C8182",
-"S!. c #988081",
-"T!. c #A1ACB8",
-"U!. c #656C74",
-"V!. c #7B6C69",
-"W!. c #8B7A77",
-"X!. c #968480",
-"Y!. c #9C8783",
-"Z!. c #9A8680",
-"`!. c #927C78",
-" ~. c #907A77",
-".~. c #8E7976",
-"+~. c #8D7A74",
-"@~. c #917B75",
-"#~. c #8B7872",
-"$~. c #867872",
-"%~. c #82756E",
-"&~. c #96877E",
-"*~. c #867668",
-"=~. c #8C7C6D",
-"-~. c #8D7C6E",
-";~. c #837162",
-">~. c #827061",
-",~. c #5E4934",
-"'~. c #644F3B",
-")~. c #6E5C47",
-"!~. c #7A6A52",
-"~~. c #7B6A54",
-"{~. c #74644D",
-"]~. c #695942",
-"^~. c #524C3F",
-"/~. c #685F4A",
-"(~. c #685E46",
-"_~. c #70664E",
-":~. c #66624D",
-"<~. c #6E6C56",
-"[~. c #7A7760",
-"}~. c #828C7E",
-"|~. c #5F645E",
-"1~. c #889586",
-"2~. c #8A9486",
-"3~. c #899486",
-"4~. c #869083",
-"5~. c #8C948A",
-"6~. c #8A9087",
-"7~. c #899086",
-"8~. c #889085",
-"9~. c #889084",
-"0~. c #899084",
-"a~. c #878F83",
-"b~. c #868E82",
-"c~. c #858C80",
-"d~. c #858B7F",
-"e~. c #83887B",
-"f~. c #808479",
-"g~. c #7C8176",
-"h~. c #787D72",
-"i~. c #747A6E",
-"j~. c #72776A",
-"k~. c #707367",
-"l~. c #676A5F",
-"m~. c #696C60",
-"n~. c #74776C",
-"o~. c #72776D",
-"p~. c #70786F",
-"q~. c #6F776E",
-"r~. c #6D766D",
-"s~. c #6B736B",
-"t~. c #6A7069",
-"u~. c #687068",
-"v~. c #676E67",
-"w~. c #666D67",
-"x~. c #666B68",
-"y~. c #656A67",
-"z~. c #646966",
-"A~. c #636966",
-"B~. c #646A64",
-"C~. c #636B63",
-"D~. c #646B62",
-"E~. c #656A62",
-"F~. c #63655F",
-"G~. c #61665E",
-"H~. c #61655D",
-"I~. c #5B5F58",
-"J~. c #575A53",
-"K~. c #585C54",
-"L~. c #585A53",
-"M~. c #61605A",
-"N~. c #61615A",
-"O~. c #62605E",
-"P~. c #61605D",
-"Q~. c #615F5C",
-"R~. c #605E5B",
-"S~. c #72706E",
-"T~. c #605C5B",
-"U~. c #615D5B",
-"V~. c #625D5B",
-"W~. c #625D5C",
-"X~. c #635F5C",
-"Y~. c #65605D",
-"Z~. c #655F5D",
-"`~. c #655E5C",
-" {. c #655D5C",
-".{. c #645D5C",
-"+{. c #645D5B",
-"@{. c #645C5B",
-"#{. c #665D5C",
-"${. c #675E5C",
-"%{. c #685E5D",
-"&{. c #685F5D",
-"*{. c #6A5E5D",
-"={. c #6A5F5D",
-"-{. c #6D605E",
-";{. c #6D605F",
-">{. c #6E605F",
-",{. c #6E5F5E",
-"'{. c #6F5F5E",
-"){. c #70605F",
-"!{. c #715F5F",
-"~{. c #72605F",
-"{{. c #736060",
-"]{. c #746160",
-"^{. c #756261",
-"/{. c #7A6262",
-"({. c #826462",
-"_{. c #896763",
-":{. c #896863",
-"<{. c #846764",
-"[{. c #7F6563",
-"}{. c #7E6564",
-"|{. c #7F6564",
-"1{. c #806665",
-"2{. c #816666",
-"3{. c #846867",
-"4{. c #846868",
-"5{. c #856969",
-"6{. c #876A6A",
-"7{. c #8A6C6C",
-"8{. c #8C6D6E",
-"9{. c #8E7070",
-"0{. c #8F7172",
-"a{. c #927474",
-"b{. c #947676",
-"c{. c #957979",
-"d{. c #977C7C",
-"e{. c #9A7E7E",
-"f{. c #9C8080",
-"g{. c #9E8284",
-"h{. c #9F8686",
-"i{. c #9E8586",
-"j{. c #978081",
-"k{. c #949FAA",
-"l{. c #404449",
-"m{. c #363534",
-"n{. c #483E34",
-"o{. c #4A3F36",
-"p{. c #4B4137",
-"q{. c #4C4238",
-"r{. c #4C4239",
-"s{. c #4D4238",
-"t{. c #4E4238",
-"u{. c #50443A",
-"v{. c #5A4E46",
-"w{. c #6D605D",
-"x{. c #7F706C",
-"y{. c #9B8782",
-"z{. c #9C8882",
-"A{. c #96817D",
-"B{. c #937D79",
-"C{. c #917C78",
-"D{. c #8E7876",
-"E{. c #8C7873",
-"F{. c #8B7774",
-"G{. c #8A7773",
-"H{. c #947C74",
-"I{. c #8B7873",
-"J{. c #867773",
-"K{. c #84766F",
-"L{. c #988A81",
-"M{. c #88776B",
-"N{. c #8E7D6F",
-"O{. c #877668",
-"P{. c #614C38",
-"Q{. c #695642",
-"R{. c #73624C",
-"S{. c #7C6D56",
-"T{. c #73644B",
-"U{. c #6C5C44",
-"V{. c #50493D",
-"W{. c #625A45",
-"X{. c #6A624C",
-"Y{. c #6C644B",
-"Z{. c #6C6149",
-"`{. c #555144",
-" ]. c #626049",
-".]. c #6B6852",
-"+]. c #575C56",
-"@]. c #60665F",
-"#]. c #869385",
-"$]. c #899587",
-"%]. c #8A9587",
-"&]. c #889485",
-"*]. c #8D948A",
-"=]. c #8A9088",
-"-]. c #889086",
-";]. c #889083",
-">]. c #82887B",
-",]. c #787E72",
-"']. c #686C5F",
-")]. c #686B5F",
-"!]. c #6A6E63",
-"~]. c #6D7166",
-"{]. c #707368",
-"]]. c #75786D",
-"^]. c #727970",
-"/]. c #707870",
-"(]. c #6E776E",
-"_]. c #6C756C",
-":]. c #6A726B",
-"<]. c #697069",
-"[]. c #676F68",
-"}]. c #666D68",
-"|]. c #646A66",
-"1]. c #626865",
-"2]. c #626764",
-"3]. c #616764",
-"4]. c #626863",
-"5]. c #626960",
-"6]. c #62685F",
-"7]. c #61655E",
-"8]. c #61645E",
-"9]. c #60655E",
-"0]. c #575953",
-"a]. c #575853",
-"b]. c #5F5F58",
-"c]. c #5F5E58",
-"d]. c #605F5A",
-"e]. c #605E5C",
-"f]. c #5F5E5B",
-"g]. c #5F5D5A",
-"h]. c #5E5C5A",
-"i]. c #716F6D",
-"j]. c #5F5C5A",
-"k]. c #605C5A",
-"l]. c #605B5A",
-"m]. c #615C5A",
-"n]. c #625C5A",
-"o]. c #625B5A",
-"p]. c #615B59",
-"q]. c #615A59",
-"r]. c #625A58",
-"s]. c #615A58",
-"t]. c #635A58",
-"u]. c #645A59",
-"v]. c #655B5A",
-"w]. c #695E5C",
-"x]. c #6A5E5C",
-"y]. c #6C5E5D",
-"z]. c #6D5F5D",
-"A]. c #6D5E5D",
-"B]. c #6E5F5D",
-"C]. c #6E5E5D",
-"D]. c #6F5D5D",
-"E]. c #705D5D",
-"F]. c #715E5D",
-"G]. c #715E5E",
-"H]. c #735E5E",
-"I]. c #745F5F",
-"J]. c #78605F",
-"K]. c #7F615F",
-"L]. c #866260",
-"M]. c #85625E",
-"N]. c #7F615E",
-"O]. c #7A605E",
-"P]. c #7A605F",
-"Q]. c #7C6060",
-"R]. c #7C6160",
-"S]. c #7D6262",
-"T]. c #7E6363",
-"U]. c #806464",
-"V]. c #816565",
-"W]. c #826667",
-"X]. c #866969",
-"Y]. c #886A6A",
-"Z]. c #8C6F6F",
-"`]. c #8F7171",
-" ^. c #917274",
-".^. c #937576",
-"+^. c #957878",
-"@^. c #97797A",
-"#^. c #997D7D",
-"$^. c #9C7E7E",
-"%^. c #9D8182",
-"&^. c #9F8485",
-"*^. c #8E99A3",
-"=^. c #3A3E42",
-"-^. c #3A3634",
-";^. c #423D38",
-">^. c #414040",
-",^. c #494848",
-"'^. c #4E4D4D",
-")^. c #525151",
-"!^. c #545252",
-"~^. c #545250",
-"{^. c #545150",
-"]^. c #786966",
-"^^. c #867572",
-"/^. c #98827E",
-"(^. c #8D7874",
-"_^. c #8C7673",
-":^. c #8A7672",
-"<^. c #897672",
-"[^. c #887773",
-"}^. c #887872",
-"|^. c #907A73",
-"1^. c #907A75",
-"2^. c #8C7874",
-"3^. c #877874",
-"4^. c #857872",
-"5^. c #847670",
-"6^. c #9A8C84",
-"7^. c #8A7B6E",
-"8^. c #8F7E72",
-"9^. c #907F71",
-"0^. c #867465",
-"a^. c #7F6E60",
-"b^. c #807163",
-"c^. c #604E3B",
-"d^. c #624E38",
-"e^. c #67523E",
-"f^. c #6E5E47",
-"g^. c #77664E",
-"h^. c #7D6E56",
-"i^. c #72644C",
-"j^. c #534C40",
-"k^. c #605742",
-"l^. c #676049",
-"m^. c #6E684E",
-"n^. c #6F644C",
-"o^. c #534E42",
-"p^. c #626048",
-"q^. c #65634C",
-"r^. c #75725B",
-"s^. c #879385",
-"t^. c #585E57",
-"u^. c #727D70",
-"v^. c #869281",
-"w^. c #757F71",
-"x^. c #798476",
-"y^. c #889585",
-"z^. c #899686",
-"A^. c #8A9687",
-"B^. c #869183",
-"C^. c #8C9589",
-"D^. c #8A9188",
-"E^. c #899087",
-"F^. c #8A9084",
-"G^. c #92948D",
-"H^. c #898F80",
-"I^. c #888E80",
-"J^. c #888D80",
-"K^. c #888C80",
-"L^. c #83897B",
-"M^. c #787A6C",
-"N^. c #6F6C5B",
-"O^. c #6C6453",
-"P^. c #766F60",
-"Q^. c #756E5F",
-"R^. c #746C5E",
-"S^. c #736A5D",
-"T^. c #726A5C",
-"U^. c #7A7266",
-"V^. c #736B5C",
-"W^. c #746C5C",
-"X^. c #746D5E",
-"Y^. c #746E5F",
-"Z^. c #746D5F",
-"`^. c #726C5E",
-" /. c #6C6C5E",
-"./. c #6F766C",
-"+/. c #717970",
-"@/. c #6D756E",
-"#/. c #686D65",
-"$/. c #646256",
-"%/. c #666053",
-"&/. c #726C5F",
-"*/. c #716B5F",
-"=/. c #70695D",
-"-/. c #70695C",
-";/. c #70685C",
-">/. c #70685B",
-",/. c #6E675A",
-"'/. c #656054",
-")/. c #5E635B",
-"!/. c #5E645C",
-"~/. c #6D6658",
-"{/. c #726A5D",
-"]/. c #6C6659",
-"^/. c #655E52",
-"//. c #5A5448",
-"(/. c #605849",
-"_/. c #6E6658",
-":/. c #6E6559",
-"</. c #6E6558",
-"[/. c #6F6558",
-"}/. c #6F6658",
-"|/. c #6F6659",
-"1/. c #6D6458",
-"2/. c #6B6256",
-"3/. c #5C5850",
-"4/. c #6E6C68",
-"5/. c #5D5852",
-"6/. c #71665A",
-"7/. c #706459",
-"8/. c #706559",
-"9/. c #706458",
-"0/. c #6C5E54",
-"a/. c #605147",
-"b/. c #605450",
-"c/. c #6A5D5C",
-"d/. c #6B5D5D",
-"e/. c #6C5D5D",
-"f/. c #6C5D5C",
-"g/. c #6D5D5D",
-"h/. c #6E5D5D",
-"i/. c #6F5C5C",
-"j/. c #705C5C",
-"k/. c #715C5D",
-"l/. c #715C5C",
-"m/. c #6F5A58",
-"n/. c #6E574E",
-"o/. c #725A4E",
-"p/. c #7C665C",
-"q/. c #7A665A",
-"r/. c #78655A",
-"s/. c #78665B",
-"t/. c #79665B",
-"u/. c #7A665C",
-"v/. c #7B685D",
-"w/. c #7A675D",
-"x/. c #79655C",
-"y/. c #7E625F",
-"z/. c #876A69",
-"A/. c #917474",
-"B/. c #967878",
-"C/. c #977A7A",
-"D/. c #9F8484",
-"E/. c #9F8585",
-"F/. c #988181",
-"G/. c #919BA6",
-"H/. c #3B3835",
-"I/. c #48423E",
-"J/. c #5A5858",
-"K/. c #646262",
-"L/. c #696767",
-"M/. c #6C6969",
-"N/. c #6C6A6A",
-"O/. c #6C6A69",
-"P/. c #6C6967",
-"Q/. c #6C6766",
-"R/. c #6C6462",
-"S/. c #736765",
-"T/. c #7A6D6A",
-"U/. c #847572",
-"V/. c #8E7D7A",
-"W/. c #958480",
-"X/. c #9A8883",
-"Y/. c #97817E",
-"Z/. c #957F7D",
-"`/. c #947E7A",
-" (. c #927D79",
-".(. c #907A78",
-"+(. c #8C7672",
-"@(. c #8A7572",
-"#(. c #897571",
-"$(. c #887571",
-"%(. c #877570",
-"&(. c #877571",
-"*(. c #8A7772",
-"=(. c #907873",
-"-(. c #947A74",
-";(. c #857873",
-">(. c #847772",
-",(. c #837772",
-"'(. c #998F88",
-")(. c #8B7E76",
-"!(. c #8C7F76",
-"~(. c #8C7E71",
-"{(. c #8F806E",
-"](. c #8E806E",
-"^(. c #8B7B69",
-"/(. c #806F5F",
-"((. c #7F705F",
-"_(. c #807162",
-":(. c #604D3B",
-"<(. c #634F3B",
-"[(. c #66513C",
-"}(. c #6B5A43",
-"|(. c #7A6B52",
-"1(. c #807259",
-"2(. c #786B52",
-"3(. c #554E42",
-"4(. c #5E523D",
-"5(. c #665D46",
-"6(. c #6D664C",
-"7(. c #544E42",
-"8(. c #625D4A",
-"9(. c #645F4A",
-"0(. c #595E58",
-"a(. c #879282",
-"b(. c #899586",
-"c(. c #8B9489",
-"d(. c #91948D",
-"e(. c #898F81",
-"f(. c #878C7F",
-"g(. c #7A7B6C",
-"h(. c #82796B",
-"i(. c #B4AFA8",
-"j(. c #D2D2D2",
-"k(. c #E4E8EC",
-"l(. c #E2E6EA",
-"m(. c #E0E4E9",
-"n(. c #DCE2E7",
-"o(. c #CBD3DB",
-"p(. c #A0AAB5",
-"q(. c #655F52",
-"r(. c #6B7369",
-"s(. c #6E766D",
-"t(. c #727872",
-"u(. c #707871",
-"v(. c #6B6E64",
-"w(. c #817A6E",
-"x(. c #D4D5D6",
-"y(. c #E0E6EA",
-"z(. c #D4DBE2",
-"A(. c #B5BECA",
-"B(. c #716C66",
-"C(. c #585E56",
-"D(. c #5B6058",
-"E(. c #C0BEBB",
-"F(. c #DCE1E6",
-"G(. c #BAC4CE",
-"H(. c #797876",
-"I(. c #57564E",
-"J(. c #58564E",
-"K(. c #766D60",
-"L(. c #B0AAA2",
-"M(. c #DCE1E7",
-"N(. c #C7D0D8",
-"O(. c #96A0AA",
-"P(. c #5B5043",
-"Q(. c #686663",
-"R(. c #5C5044",
-"S(. c #E5E8ED",
-"T(. c #E8ECEF",
-"U(. c #E0E5EA",
-"V(. c #DCE2E8",
-"W(. c #D9DFE5",
-"X(. c #CED3D8",
-"Y(. c #AAA9A7",
-"Z(. c #7E766D",
-"`(. c #5E514B",
-" _. c #605554",
-"._. c #645857",
-"+_. c #675A5A",
-"@_. c #6A5C5C",
-"#_. c #6D5D5C",
-"$_. c #6D5C5C",
-"%_. c #6E5C5C",
-"&_. c #6F5B5B",
-"*_. c #6E5B5B",
-"=_. c #6C5854",
-"-_. c #7D6E63",
-";_. c #B2ACA5",
-">_. c #E1E6EA",
-",_. c #6E564B",
-"'_. c #8D7070",
-")_. c #9C7F7F",
-"!_. c #9D8283",
-"~_. c #A08686",
-"{_. c #A08786",
-"]_. c #988382",
-"^_. c #9AA5B0",
-"/_. c #6B727A",
-"(_. c #5E5E5D",
-"__. c #4E4841",
-":_. c #6E6A67",
-"<_. c #74706D",
-"[_. c #777270",
-"}_. c #787370",
-"|_. c #78726F",
-"1_. c #78716D",
-"2_. c #78706B",
-"3_. c #786E6A",
-"4_. c #786C68",
-"5_. c #796C67",
-"6_. c #7C6E68",
-"7_. c #9A8380",
-"8_. c #9A8381",
-"9_. c #8F7A76",
-"0_. c #8E7874",
-"a_. c #887470",
-"b_. c #877470",
-"c_. c #867370",
-"d_. c #857470",
-"e_. c #887570",
-"f_. c #8E7771",
-"g_. c #947972",
-"h_. c #857773",
-"i_. c #9A8F88",
-"j_. c #8F8278",
-"k_. c #908276",
-"l_. c #908070",
-"m_. c #918272",
-"n_. c #8F806F",
-"o_. c #877866",
-"p_. c #827464",
-"q_. c #5F4C39",
-"r_. c #64503C",
-"s_. c #67523F",
-"t_. c #69563F",
-"u_. c #716048",
-"v_. c #7A6B53",
-"w_. c #7E7058",
-"x_. c #5A5347",
-"y_. c #594E39",
-"z_. c #625842",
-"A_. c #726A50",
-"B_. c #565245",
-"C_. c #5D5843",
-"D_. c #64604A",
-"E_. c #8C9789",
-"F_. c #8C988A",
-"G_. c #5A5F59",
-"H_. c #768074",
-"I_. c #889382",
-"J_. c #778073",
-"K_. c #8A9686",
-"L_. c #889484",
-"M_. c #838E7F",
-"N_. c #888F83",
-"O_. c #90948C",
-"P_. c #878D80",
-"Q_. c #74705F",
-"R_. c #ADA8A0",
-"S_. c #EAEDF1",
-"T_. c #E8EBEF",
-"U_. c #E2E6EB",
-"V_. c #D6DCE3",
-"W_. c #D3DAE0",
-"X_. c #D2D8E0",
-"Y_. c #CED6DD",
-"Z_. c #A3ADB8",
-"`_. c #51565C",
-" :. c #5A5346",
-".:. c #6A726A",
-"+:. c #6E756E",
-"@:. c #707670",
-"#:. c #6E695C",
-"$:. c #BAB5AF",
-"%:. c #E7EBEF",
-"&:. c #D2D9E0",
-"*:. c #D5DBE2",
-"=:. c #C0CAD3",
-"-:. c #747C85",
-";:. c #4D453C",
-">:. c #50554E",
-",:. c #555A53",
-"':. c #B2B2B2",
-"):. c #DEE2E8",
-"!:. c #CFD6DE",
-"~:. c #808993",
-"{:. c #4A4641",
-"]:. c #504F47",
-"^:. c #60594C",
-"/:. c #AEA8A1",
-"(:. c #DCE0E6",
-"_:. c #D3D9E0",
-"::. c #D4DAE1",
-"<:. c #D1D8DF",
-"[:. c #A0AAB4",
-"}:. c #4C5156",
-"|:. c #574C3F",
-"1:. c #594E41",
-"2:. c #E0E4EA",
-"3:. c #D8DEE4",
-"4:. c #C0C9D3",
-"5:. c #9B9C9E",
-"6:. c #615349",
-"7:. c #5E5352",
-"8:. c #635756",
-"9:. c #685A5A",
-"0:. c #6C5C5C",
-"a:. c #6D5C5D",
-"b:. c #6E5A5A",
-"c:. c #6C584F",
-"d:. c #B0AAA3",
-"e:. c #CDD4DC",
-"f:. c #98A1AC",
-"g:. c #494E54",
-"h:. c #685247",
-"i:. c #775E5E",
-"j:. c #967979",
-"k:. c #987B7B",
-"l:. c #9E8384",
-"m:. c #A08787",
-"n:. c #A08888",
-"o:. c #988484",
-"p:. c #A7B2BF",
-"q:. c #9DA8B4",
-"r:. c #A0A9B1",
-"s:. c #A19F9D",
-"t:. c #ABA8A4",
-"u:. c #B0ABA6",
-"v:. c #B0ACA6",
-"w:. c #AAA6A3",
-"x:. c #9B9A98",
-"y:. c #8C7676",
-"z:. c #917B7A",
-"A:. c #957E7D",
-"B:. c #98817E",
-"C:. c #988280",
-"D:. c #98817F",
-"E:. c #967F7E",
-"F:. c #8B7673",
-"G:. c #857370",
-"H:. c #85736F",
-"I:. c #8E7670",
-"J:. c #927871",
-"K:. c #907872",
-"L:. c #847672",
-"M:. c #8C8076",
-"N:. c #938579",
-"O:. c #8E8070",
-"P:. c #847565",
-"Q:. c #7F6F5E",
-"R:. c #867766",
-"S:. c #624F3C",
-"T:. c #6A5842",
-"U:. c #6E5E46",
-"V:. c #796951",
-"W:. c #7F7058",
-"X:. c #807159",
-"Y:. c #80725A",
-"Z:. c #5D564B",
-"`:. c #5B4F3A",
-" <. c #5D513C",
-".<. c #695E46",
-"+<. c #565246",
-"@<. c #56503C",
-"#<. c #635D48",
-"$<. c #6A654E",
-"%<. c #8D988A",
-"&<. c #8E988C",
-"*<. c #8E998C",
-"=<. c #869182",
-"-<. c #889483",
-";<. c #778173",
-"><. c #7C8677",
-",<. c #889285",
-"'<. c #878F84",
-")<. c #888F82",
-"!<. c #82877B",
-"~<. c #AAA59E",
-"{<. c #E7EAEE",
-"]<. c #C3CBD3",
-"^<. c #889098",
-"/<. c #60666E",
-"(<. c #4F555B",
-"_<. c #4A5056",
-":<. c #4A4E54",
-"<<. c #464B50",
-"[<. c #554D40",
-"}<. c #5C625B",
-"|<. c #656B65",
-"1<. c #6A716B",
-"2<. c #6E685B",
-"3<. c #C8C6C4",
-"4<. c #C6CED7",
-"5<. c #949CA5",
-"6<. c #6C737B",
-"7<. c #575D64",
-"8<. c #4E5359",
-"9<. c #4A4F55",
-"0<. c #4F545B",
-"a<. c #686E76",
-"b<. c #949EA8",
-"c<. c #ADB8C4",
-"d<. c #88919C",
-"e<. c #373B3F",
-"f<. c #463E34",
-"g<. c #474B45",
-"h<. c #4F544C",
-"i<. c #A6A7A9",
-"j<. c #C4CDD7",
-"k<. c #A4AEB8",
-"l<. c #3D4246",
-"m<. c #3F3A34",
-"n<. c #484840",
-"o<. c #4D4F49",
-"p<. c #5D5F59",
-"q<. c #5A5E58",
-"r<. c #5E5648",
-"s<. c #BEC6CE",
-"t<. c #838A92",
-"u<. c #50555C",
-"v<. c #4C5157",
-"w<. c #575C63",
-"x<. c #7E8790",
-"y<. c #A3AEB9",
-"z<. c #AAB5C1",
-"A<. c #585E64",
-"B<. c #52473A",
-"C<. c #565452",
-"D<. c #564A3E",
-"E<. c #C5CED7",
-"F<. c #B1BBC6",
-"G<. c #909AA4",
-"H<. c #626A71",
-"I<. c #4B5056",
-"J<. c #52585F",
-"K<. c #6A727A",
-"L<. c #959FA9",
-"M<. c #B8C2CC",
-"N<. c #BDC7D1",
-"O<. c #B0BBC8",
-"P<. c #8C9093",
-"Q<. c #5D5251",
-"R<. c #645756",
-"S<. c #685B5A",
-"T<. c #6B5C5C",
-"U<. c #6A564C",
-"V<. c #C3CBD4",
-"W<. c #8A929A",
-"X<. c #626970",
-"Y<. c #50565C",
-"Z<. c #44494F",
-"`<. c #2C3033",
-" [. c #624D42",
-".[. c #6D5756",
-"+[. c #7C6262",
-"@[. c #907374",
-"#[. c #967A7A",
-"$[. c #987C7B",
-"%[. c #9C8081",
-"&[. c #ADB9C6",
-"*[. c #B2BDCA",
-"=[. c #BEC8D2",
-"-[. c #C8D1D9",
-";[. c #8F98A2",
-">[. c #60554D",
-",[. c #857070",
-"'[. c #8C7675",
-")[. c #927B79",
-"![. c #977F7E",
-"~[. c #967E7D",
-"{[. c #86736F",
-"][. c #85726F",
-"^[. c #84726F",
-"/[. c #88736F",
-"([. c #8D7670",
-"_[. c #927771",
-":[. c #8F7872",
-"<[. c #837672",
-"[[. c #9A8E88",
-"}[. c #8C8077",
-"|[. c #91847C",
-"1[. c #94887C",
-"2[. c #95887A",
-"3[. c #958678",
-"4[. c #938678",
-"5[. c #938778",
-"6[. c #8C7F6F",
-"7[. c #685542",
-"8[. c #685540",
-"9[. c #6D5C46",
-"0[. c #776850",
-"a[. c #80715A",
-"b[. c #82725C",
-"c[. c #84765F",
-"d[. c #625944",
-"e[. c #5C513B",
-"f[. c #665B43",
-"g[. c #6E644B",
-"h[. c #555044",
-"i[. c #55503C",
-"j[. c #5C5642",
-"k[. c #68624C",
-"l[. c #8E9A8C",
-"m[. c #7D8779",
-"n[. c #8C9888",
-"o[. c #8C9887",
-"p[. c #899684",
-"q[. c #869481",
-"r[. c #83907E",
-"s[. c #808C7A",
-"t[. c #879283",
-"u[. c #878E82",
-"v[. c #90948D",
-"w[. c #878D7F",
-"x[. c #868B7E",
-"y[. c #7E7769",
-"z[. c #A9B2BC",
-"A[. c #41464B",
-"B[. c #534B3F",
-"C[. c #585D58",
-"D[. c #B0AAA5",
-"E[. c #E3E7EC",
-"F[. c #9DA6B0",
-"G[. c #44484D",
-"H[. c #2E3236",
-"I[. c #697078",
-"J[. c #A3AEBA",
-"K[. c #7E8791",
-"L[. c #32363A",
-"M[. c #41443F",
-"N[. c #4A4F48",
-"O[. c #525248",
-"P[. c #A4A6A8",
-"Q[. c #C0CAD4",
-"R[. c #9BA4AF",
-"S[. c #373B40",
-"T[. c #42413B",
-"U[. c #535550",
-"V[. c #5A5951",
-"W[. c #A9A49E",
-"X[. c #E4E7EC",
-"Y[. c #889099",
-"Z[. c #363A3E",
-"`[. c #44484E",
-" }. c #8A949E",
-".}. c #A3AEBB",
-"+}. c #4E4437",
-"@}. c #4E4D4A",
-"#}. c #54483C",
-"$}. c #BEC7D2",
-"%}. c #97A2AC",
-"&}. c #454A4F",
-"*}. c #727A83",
-"=}. c #AFBBC7",
-"-}. c #8F99A4",
-";}. c #564B47",
-">}. c #695C5A",
-",}. c #6D5E5E",
-"'}. c #705E5E",
-")}. c #6C5A57",
-"!}. c #A8A29C",
-"~}. c #98A1AB",
-"{}. c #3D4146",
-"]}. c #5E4A3F",
-"^}. c #695353",
-"/}. c #796060",
-"(}. c #866B6B",
-"_}. c #977B7A",
-":}. c #9C8181",
-"<}. c #A08989",
-"[}. c #988585",
-"}}. c #B1BCC9",
-"|}. c #B6C2CD",
-"1}. c #BFC8D2",
-"2}. c #C4CDD6",
-"3}. c #9AA4AE",
-"4}. c #4F443A",
-"5}. c #796464",
-"6}. c #846D6D",
-"7}. c #8D7474",
-"8}. c #957B7A",
-"9}. c #947B7A",
-"0}. c #937B7A",
-"a}. c #917A78",
-"b}. c #8C7773",
-"c}. c #8B7672",
-"d}. c #84716E",
-"e}. c #84716D",
-"f}. c #86726E",
-"g}. c #8C746E",
-"h}. c #92766F",
-"i}. c #827570",
-"j}. c #817570",
-"k}. c #988C86",
-"l}. c #8A7D74",
-"m}. c #8F8279",
-"n}. c #93867C",
-"o}. c #95887C",
-"p}. c #95887B",
-"q}. c #938679",
-"r}. c #918877",
-"s}. c #847766",
-"t}. c #675340",
-"u}. c #6B5743",
-"v}. c #6C5B45",
-"w}. c #7C6D55",
-"x}. c #5E574C",
-"y}. c #645945",
-"z}. c #5E523E",
-"A}. c #5C5339",
-"B}. c #645A42",
-"C}. c #524D41",
-"D}. c #5A5541",
-"E}. c #554F3A",
-"F}. c #615A46",
-"G}. c #8F9A8D",
-"H}. c #768075",
-"I}. c #889283",
-"J}. c #8C9787",
-"K}. c #8B9785",
-"L}. c #899681",
-"M}. c #86947F",
-"N}. c #84907C",
-"O}. c #808C79",
-"P}. c #848C80",
-"Q}. c #868C80",
-"R}. c #858A7D",
-"S}. c #A39E9A",
-"T}. c #C3CCD6",
-"U}. c #4E545A",
-"V}. c #403A34",
-"W}. c #494034",
-"X}. c #4A4235",
-"Y}. c #4B4236",
-"Z}. c #4B4336",
-"`}. c #4C4336",
-" |. c #4E453A",
-".|. c #4C4436",
-"+|. c #4C4437",
-"@|. c #4C4438",
-"#|. c #4D4438",
-"$|. c #4F473B",
-"%|. c #525047",
-"&|. c #616862",
-"*|. c #766F63",
-"=|. c #DBE1E6",
-"-|. c #D9DEE4",
-";|. c #A6AFBA",
-">|. c #383C41",
-",|. c #3C3834",
-"'|. c #473F34",
-")|. c #483F34",
-"!|. c #484034",
-"~|. c #484035",
-"{|. c #4E4234",
-"]|. c #7E848A",
-"^|. c #AEB9C6",
-"/|. c #858E98",
-"(|. c #3C3F3A",
-"_|. c #464A45",
-":|. c #504F44",
-"<|. c #3E3E37",
-"[|. c #454742",
-"}|. c #51534E",
-"||. c #DADEE4",
-"1|. c #D8DEE5",
-"2|. c #929BA4",
-"3|. c #303233",
-"4|. c #443C34",
-"5|. c #463C32",
-"6|. c #463C31",
-"7|. c #463D32",
-"8|. c #473E32",
-"9|. c #483E32",
-"0|. c #99A4AF",
-"a|. c #ACB8C4",
-"b|. c #4F545A",
-"c|. c #4C4234",
-"d|. c #494845",
-"e|. c #838C96",
-"f|. c #2D3034",
-"g|. c #453C34",
-"h|. c #443A2F",
-"i|. c #453B30",
-"j|. c #473C32",
-"k|. c #483D32",
-"l|. c #483C32",
-"m|. c #473C31",
-"n|. c #473C33",
-"o|. c #3B3734",
-"p|. c #484D52",
-"q|. c #87909A",
-"r|. c #939DA8",
-"s|. c #6F767E",
-"t|. c #5A4D43",
-"u|. c #564C4C",
-"v|. c #605454",
-"w|. c #6F6060",
-"x|. c #706060",
-"y|. c #705E5F",
-"z|. c #75665B",
-"A|. c #A5AFB9",
-"B|. c #2D3033",
-"C|. c #493D33",
-"D|. c #4C3C32",
-"E|. c #4C3D32",
-"F|. c #4B3D32",
-"G|. c #4B3C32",
-"H|. c #4C3E33",
-"I|. c #4D3E34",
-"J|. c #4F4035",
-"K|. c #524238",
-"L|. c #5A4644",
-"M|. c #685252",
-"N|. c #786060",
-"O|. c #866A6A",
-"P|. c #8F7273",
-"Q|. c #9B8080",
-"R|. c #9D8282",
-"S|. c #A28A8A",
-"T|. c #A08B8B",
-"U|. c #988686",
-"V|. c #ABB6C4",
-"W|. c #6E767E",
-"X|. c #6C595A",
-"Y|. c #7C6666",
-"Z|. c #947979",
-"`|. c #957978",
-" 1. c #937978",
-".1. c #937878",
-"+1. c #917876",
-"@1. c #907875",
-"#1. c #8E7774",
-"$1. c #92756E",
-"%1. c #8E756F",
-"&1. c #827470",
-"*1. c #807470",
-"=1. c #978C85",
-"-1. c #8E8178",
-";1. c #92857C",
-">1. c #95887E",
-",1. c #978A7F",
-"'1. c #928877",
-")1. c #8E8371",
-"!1. c #685441",
-"~1. c #6B5742",
-"{1. c #71624A",
-"]1. c #807058",
-"^1. c #635843",
-"/1. c #5C533A",
-"(1. c #60563D",
-"_1. c #4E4A3D",
-":1. c #5C5541",
-"<1. c #58523E",
-"[1. c #59543E",
-"}1. c #909B8E",
-"|1. c #919B8E",
-"11. c #788176",
-"21. c #768073",
-"31. c #8B9784",
-"41. c #8A9782",
-"51. c #879580",
-"61. c #84927E",
-"71. c #818D7A",
-"81. c #848D80",
-"91. c #848C7F",
-"01. c #848C7E",
-"a1. c #8F928B",
-"b1. c #7F8377",
-"c1. c #7D8175",
-"d1. c #716E5F",
-"e1. c #B6B8BA",
-"f1. c #CED5DD",
-"g1. c #A8B2BC",
-"h1. c #3F4448",
-"i1. c #3E3934",
-"j1. c #3B3931",
-"k1. c #343631",
-"l1. c #383B35",
-"m1. c #3C4039",
-"n1. c #3F433C",
-"o1. c #40463D",
-"p1. c #42463E",
-"q1. c #494B48",
-"r1. c #424640",
-"s1. c #424740",
-"t1. c #434842",
-"u1. c #434742",
-"v1. c #424741",
-"w1. c #424641",
-"x1. c #454844",
-"y1. c #4A4E49",
-"z1. c #515652",
-"A1. c #5A605C",
-"B1. c #626761",
-"C1. c #9B968F",
-"D1. c #C8D0D9",
-"E1. c #777F88",
-"F1. c #433C34",
-"G1. c #383730",
-"H1. c #2F3330",
-"I1. c #323633",
-"J1. c #343936",
-"K1. c #363A38",
-"L1. c #383C39",
-"M1. c #383C38",
-"N1. c #373B38",
-"O1. c #363A36",
-"P1. c #443F35",
-"Q1. c #B1B7BD",
-"R1. c #8B949F",
-"S1. c #393C37",
-"T1. c #444843",
-"U1. c #4F4E44",
-"V1. c #3C3B35",
-"W1. c #444642",
-"X1. c #50534E",
-"Y1. c #60615B",
-"Z1. c #474C52",
-"`1. c #2E3033",
-" 2. c #2F2E2A",
-".2. c #2E2E2C",
-"+2. c #30322E",
-"@2. c #333431",
-"#2. c #353633",
-"$2. c #363734",
-"%2. c #373834",
-"&2. c #373734",
-"*2. c #353632",
-"=2. c #726C65",
-"-2. c #B3BECA",
-";2. c #B5C0CC",
-">2. c #4A4034",
-",2. c #464543",
-"'2. c #51463A",
-")2. c #7B838D",
-"!2. c #282626",
-"~2. c #2E2B2A",
-"{2. c #32302E",
-"]2. c #363332",
-"^2. c #373433",
-"/2. c #363333",
-"(2. c #453C32",
-"_2. c #493E32",
-":2. c #493D31",
-"<2. c #483C31",
-"[2. c #443A30",
-"}2. c #34302E",
-"|2. c #343030",
-"12. c #353030",
-"22. c #423831",
-"32. c #55514D",
-"42. c #747C84",
-"52. c #A2ADB9",
-"62. c #767E87",
-"72. c #615E59",
-"82. c #514742",
-"92. c #5A504F",
-"02. c #635857",
-"a2. c #6E6060",
-"b2. c #706160",
-"c2. c #6E5E5C",
-"d2. c #9C9690",
-"e2. c #CAD2DA",
-"f2. c #788089",
-"g2. c #483E33",
-"h2. c #3A2E2B",
-"i2. c #382B2A",
-"j2. c #3E2E2D",
-"k2. c #41302F",
-"l2. c #413231",
-"m2. c #3F3232",
-"n2. c #403232",
-"o2. c #413332",
-"p2. c #423333",
-"q2. c #423434",
-"r2. c #433434",
-"s2. c #443535",
-"t2. c #463636",
-"u2. c #4B3A3A",
-"v2. c #534141",
-"w2. c #5E4A4A",
-"x2. c #6D5656",
-"y2. c #7B6262",
-"z2. c #907474",
-"A2. c #9D8383",
-"B2. c #A08A8A",
-"C2. c #988586",
-"D2. c #88847F",
-"E2. c #A4AEB9",
-"F2. c #808992",
-"G2. c #5E646B",
-"H2. c #5F666D",
-"I2. c #687078",
-"J2. c #9AA4B0",
-"K2. c #AAB6C3",
-"L2. c #4C4137",
-"M2. c #625151",
-"N2. c #766060",
-"O2. c #846C6C",
-"P2. c #937877",
-"Q2. c #917776",
-"R2. c #907775",
-"S2. c #8E7673",
-"T2. c #8D7672",
-"U2. c #8B7471",
-"V2. c #8A7370",
-"W2. c #86726F",
-"X2. c #85716E",
-"Y2. c #87726E",
-"Z2. c #91756E",
-"`2. c #8D756E",
-" 3. c #87736E",
-".3. c #82726E",
-"+3. c #968A84",
-"@3. c #8A7C74",
-"#3. c #94887F",
-"$3. c #978B80",
-"%3. c #958A7F",
-"&3. c #93897A",
-"*3. c #918A78",
-"=3. c #908875",
-"-3. c #938978",
-";3. c #6E5C49",
-">3. c #716148",
-",3. c #74644B",
-"'3. c #78674F",
-")3. c #7E6E56",
-"!3. c #5D564A",
-"~3. c #6B614D",
-"{3. c #685E49",
-"]3. c #625840",
-"^3. c #60563C",
-"/3. c #4C483B",
-"(3. c #595440",
-"_3. c #59533D",
-":3. c #8F9B8D",
-"<3. c #778175",
-"[3. c #869184",
-"}3. c #889583",
-"|3. c #889681",
-"13. c #879480",
-"23. c #85927E",
-"33. c #818E7A",
-"43. c #879281",
-"53. c #858D81",
-"63. c #848B7E",
-"73. c #8E928A",
-"83. c #818679",
-"93. c #6B6555",
-"03. c #C1C8CF",
-"a3. c #A5B0BA",
-"b3. c #707881",
-"c3. c #645D54",
-"d3. c #5C5449",
-"e3. c #645C4F",
-"f3. c #675E51",
-"g3. c #686052",
-"h3. c #696053",
-"i3. c #696254",
-"j3. c #6C6457",
-"k3. c #6A6254",
-"l3. c #6A6255",
-"m3. c #696155",
-"n3. c #696055",
-"o3. c #686155",
-"p3. c #686055",
-"q3. c #5D5C52",
-"r3. c #5F6561",
-"s3. c #B4B6B8",
-"t3. c #BCC6D1",
-"u3. c #5A5C5D",
-"v3. c #524434",
-"w3. c #4D4638",
-"x3. c #4E473A",
-"y3. c #4F483B",
-"z3. c #50483B",
-"A3. c #50483C",
-"B3. c #4E463A",
-"C3. c #544838",
-"D3. c #CACCCE",
-"E3. c #CCD3DC",
-"F3. c #8C959F",
-"G3. c #383B37",
-"H3. c #444842",
-"I3. c #4E4E44",
-"J3. c #3C3B34",
-"K3. c #444641",
-"L3. c #51544E",
-"M3. c #60645E",
-"N3. c #60645D",
-"O3. c #5E5A50",
-"P3. c #B3B4B5",
-"Q3. c #CED6DE",
-"R3. c #A1AAB4",
-"S3. c #3E3834",
-"T3. c #34322C",
-"U3. c #2F302D",
-"V3. c #3C3D39",
-"W3. c #40423E",
-"X3. c #444540",
-"Y3. c #454641",
-"Z3. c #43433E",
-"`3. c #7C766E",
-" 4. c #B9C4CF",
-".4. c #464443",
-"+4. c #7A838C",
-"@4. c #2C3034",
-"#4. c #463C33",
-"$4. c #2D2B2B",
-"%4. c #3E3A3A",
-"&4. c #423F3E",
-"*4. c #B2ADA8",
-"=4. c #7F8082",
-"-4. c #443C36",
-";4. c #3F3A39",
-">4. c #403A3A",
-",4. c #403A38",
-"'4. c #51463C",
-")4. c #70767D",
-"!4. c #929CA7",
-"~4. c #666C74",
-"{4. c #584B41",
-"]4. c #524949",
-"^4. c #5F5454",
-"/4. c #695C5C",
-"(4. c #716262",
-"_4. c #716161",
-":4. c #6A5953",
-"<4. c #646667",
-"[4. c #5E5145",
-"}4. c #5E5147",
-"|4. c #62544A",
-"14. c #66564C",
-"24. c #68584D",
-"34. c #68584E",
-"44. c #68594E",
-"54. c #69594E",
-"64. c #695A4F",
-"74. c #695A50",
-"84. c #68594F",
-"94. c #66574E",
-"04. c #584640",
-"a4. c #594646",
-"b4. c #604C4C",
-"c4. c #6A5353",
-"d4. c #755C5C",
-"e4. c #977B7B",
-"f4. c #987C7C",
-"g4. c #9E8383",
-"h4. c #6E6962",
-"i4. c #4C5258",
-"j4. c #41454A",
-"k4. c #6C747B",
-"l4. c #4A4036",
-"m4. c #5C4C4C",
-"n4. c #725E5D",
-"o4. c #826A6A",
-"p4. c #8E7272",
-"q4. c #927575",
-"r4. c #907473",
-"s4. c #8F7372",
-"t4. c #8E7471",
-"u4. c #8C7370",
-"v4. c #8C726F",
-"w4. c #8A726F",
-"x4. c #89726F",
-"y4. c #88716D",
-"z4. c #88716E",
-"A4. c #87716E",
-"B4. c #85706E",
-"C4. c #84706E",
-"D4. c #86726D",
-"E4. c #90756E",
-"F4. c #8C756E",
-"G4. c #86736E",
-"H4. c #81726E",
-"I4. c #8A7B74",
-"J4. c #92847C",
-"K4. c #94877F",
-"L4. c #968A81",
-"M4. c #968A80",
-"N4. c #948B7C",
-"O4. c #938A78",
-"P4. c #928A78",
-"Q4. c #928A77",
-"R4. c #978D7C",
-"S4. c #786956",
-"T4. c #715F4A",
-"U4. c #726148",
-"V4. c #696048",
-"W4. c #625940",
-"X4. c #56513E",
-"Y4. c #5E5844",
-"Z4. c #5E5842",
-"`4. c #909C8E",
-" 5. c #909B8D",
-".5. c #889384",
-"+5. c #8B9684",
-"@5. c #788272",
-"#5. c #7C8776",
-"$5. c #8A9786",
-"%5. c #899682",
-"&5. c #889680",
-"*5. c #88967F",
-"=5. c #86937C",
-"-5. c #828E79",
-";5. c #868E80",
-">5. c #848D7F",
-",5. c #838C7E",
-"'5. c #7B8377",
-")5. c #7A8276",
-"!5. c #767E72",
-"~5. c #686251",
-"{5. c #B0BCC8",
-"]5. c #ACB7C3",
-"^5. c #D0D7DF",
-"/5. c #645E54",
-"(5. c #606862",
-"_5. c #625E51",
-":5. c #BEC4CA",
-"<5. c #C9D0DA",
-"[5. c #B7C2CD",
-"}5. c #A4B0BC",
-"|5. c #DDE2E8",
-"15. c #C9D1DA",
-"25. c #88909B",
-"35. c #454843",
-"45. c #3C3C36",
-"55. c #515650",
-"65. c #60655D",
-"75. c #5F645C",
-"85. c #5E584B",
-"95. c #C8D1DA",
-"05. c #8A939C",
-"a5. c #2E302C",
-"b5. c #42433E",
-"c5. c #555650",
-"d5. c #54554F",
-"e5. c #7F7872",
-"f5. c #BAC4D0",
-"g5. c #4B4134",
-"h5. c #464643",
-"i5. c #7C848E",
-"j5. c #463D34",
-"k5. c #33322F",
-"l5. c #3E3C3A",
-"m5. c #4E4B49",
-"n5. c #524E4A",
-"o5. c #534C47",
-"p5. c #A8A5A2",
-"q5. c #D7DDE3",
-"r5. c #929CA6",
-"s5. c #504E4C",
-"t5. c #49403A",
-"u5. c #474240",
-"v5. c #4C4544",
-"w5. c #4C4545",
-"x5. c #4B4340",
-"y5. c #68635E",
-"z5. c #A4AFBC",
-"A5. c #A0ABB7",
-"B5. c #757D86",
-"C5. c #4F4541",
-"D5. c #665958",
-"E5. c #706362",
-"F5. c #716260",
-"G5. c #68574D",
-"H5. c #B7C2CE",
-"I5. c #B1BCC8",
-"J5. c #C6CED8",
-"K5. c #625248",
-"L5. c #645050",
-"M5. c #6E5756",
-"N5. c #765E5E",
-"O5. c #7F6666",
-"P5. c #907272",
-"Q5. c #957777",
-"R5. c #977979",
-"S5. c #A18989",
-"T5. c #998585",
-"U5. c #5E5043",
-"V5. c #AFBBC8",
-"W5. c #AAB5C2",
-"X5. c #5A4C4C",
-"Y5. c #836C6B",
-"Z5. c #8D7272",
-"`5. c #8E6F70",
-" 6. c #8C6F6E",
-".6. c #8A6F6D",
-"+6. c #896E6C",
-"@6. c #876D6C",
-"#6. c #866D6B",
-"$6. c #846E6B",
-"%6. c #83706C",
-"&6. c #87726C",
-"*6. c #8D746E",
-"=6. c #81716E",
-"-6. c #80716E",
-";6. c #968984",
-">6. c #8E7F79",
-",6. c #92847E",
-"'6. c #968780",
-")6. c #978982",
-"!6. c #988B82",
-"~6. c #94897C",
-"{6. c #988F7E",
-"]6. c #796B56",
-"^6. c #71634D",
-"/6. c #71634C",
-"(6. c #6C624E",
-"_6. c #6E6550",
-":6. c #6F6950",
-"<6. c #4F4A3E",
-"[6. c #544E38",
-"}6. c #5B5640",
-"|6. c #645E46",
-"16. c #929E8F",
-"26. c #899484",
-"36. c #8A9684",
-"46. c #7C8877",
-"56. c #88957F",
-"66. c #86937D",
-"76. c #828F7A",
-"86. c #899482",
-"96. c #828A7C",
-"06. c #7C8477",
-"a6. c #777E72",
-"b6. c #696251",
-"c6. c #BBC5D0",
-"d6. c #A4AEBA",
-"e6. c #A8B2BE",
-"f6. c #BBC6D0",
-"g6. c #D0D7DE",
-"h6. c #544D42",
-"i6. c #5D645F",
-"j6. c #605A4C",
-"k6. c #C2CBD4",
-"l6. c #B4BFCB",
-"m6. c #AFBAC7",
-"n6. c #B8C2CE",
-"o6. c #D4DAE2",
-"p6. c #CAD1DA",
-"q6. c #BAC4CF",
-"r6. c #3A3C38",
-"s6. c #464944",
-"t6. c #504E45",
-"u6. c #454943",
-"v6. c #525750",
-"w6. c #5C615A",
-"x6. c #646A61",
-"y6. c #636861",
-"z6. c #60665E",
-"A6. c #5F645D",
-"B6. c #343531",
-"C6. c #40413D",
-"D6. c #5F615B",
-"E6. c #5A5B55",
-"F6. c #817A73",
-"G6. c #4D5258",
-"H6. c #4B4235",
-"I6. c #474644",
-"J6. c #51473A",
-"K6. c #373633",
-"L6. c #454340",
-"M6. c #5C5854",
-"N6. c #5A544F",
-"O6. c #9D9C99",
-"P6. c #B1BAC5",
-"Q6. c #49413A",
-"R6. c #4A4543",
-"S6. c #524C4A",
-"T6. c #564E4D",
-"U6. c #534C4A",
-"V6. c #594D43",
-"W6. c #777E84",
-"X6. c #584C41",
-"Y6. c #544A49",
-"Z6. c #6B5E5E",
-"`6. c #706361",
-" 7. c #67564A",
-".7. c #CCD4DC",
-"+7. c #50555B",
-"@7. c #5A493F",
-"#7. c #675252",
-"$7. c #725B5A",
-"%7. c #9A7F7E",
-"&7. c #9B8686",
-"*7. c #918080",
-"=7. c #827575",
-"-7. c #706767",
-";7. c #504F4F",
-">7. c #4D4C4C",
-",7. c #4B4848",
-"'7. c #6A6158",
-")7. c #A6B2BE",
-"!7. c #4D4137",
-"~7. c #725F5E",
-"{7. c #836D6D",
-"]7. c #8F7776",
-"^7. c #8C6D6D",
-"/7. c #8A6C6B",
-"(7. c #886B6A",
-"_7. c #866A68",
-":7. c #856A68",
-"<7. c #836A68",
-"[7. c #826B68",
-"}7. c #816C69",
-"|7. c #816D6A",
-"17. c #826F6A",
-"27. c #87706B",
-"37. c #8C726C",
-"47. c #8F736C",
-"57. c #8A726C",
-"67. c #80706C",
-"77. c #80706D",
-"87. c #92837D",
-"97. c #94867F",
-"07. c #968981",
-"a7. c #978A81",
-"b7. c #968A7D",
-"c7. c #948A79",
-"d7. c #978D7E",
-"e7. c #7E755F",
-"f7. c #7A6A51",
-"g7. c #73634B",
-"h7. c #786A52",
-"i7. c #796C53",
-"j7. c #5A5549",
-"k7. c #706950",
-"l7. c #524E42",
-"m7. c #524C36",
-"n7. c #665E46",
-"o7. c #929F8E",
-"p7. c #929E8C",
-"q7. c #7A8476",
-"r7. c #828C7D",
-"s7. c #8A9484",
-"t7. c #8C9686",
-"u7. c #7D8978",
-"v7. c #8C9884",
-"w7. c #8A9781",
-"x7. c #899680",
-"y7. c #88947E",
-"z7. c #83907A",
-"A7. c #838B7D",
-"B7. c #808779",
-"C7. c #7F8678",
-"D7. c #787F72",
-"E7. c #5D646A",
-"F7. c #34383C",
-"G7. c #3C4046",
-"H7. c #3E4348",
-"I7. c #40444A",
-"J7. c #484D53",
-"K7. c #6A7179",
-"L7. c #9BA5B0",
-"M7. c #6C747C",
-"N7. c #50483D",
-"O7. c #575E59",
-"P7. c #5D5749",
-"Q7. c #A8B3BF",
-"R7. c #7D858F",
-"S7. c #43484D",
-"T7. c #4A4F54",
-"U7. c #89929D",
-"V7. c #3A3D39",
-"W7. c #474B46",
-"X7. c #525046",
-"Y7. c #3D3D36",
-"Z7. c #474A45",
-"`7. c #545851",
-" 8. c #5E625B",
-".8. c #646861",
-"+8. c #656A63",
-"@8. c #666A64",
-"#8. c #666A63",
-"$8. c #646A62",
-"%8. c #BFC8D3",
-"&8. c #C2CAD4",
-"*8. c #473E34",
-"=8. c #393A36",
-"-8. c #474844",
-";8. c #676863",
-">8. c #61625D",
-",8. c #837D75",
-"'8. c #4C4235",
-")8. c #484744",
-"!8. c #52473B",
-"~8. c #3A3836",
-"{8. c #494744",
-"]8. c #5E5C57",
-"^8. c #A5AEB9",
-"/8. c #3B3F44",
-"(8. c #48403A",
-"_8. c #4C4644",
-":8. c #5C5453",
-"<8. c #5C5452",
-"[8. c #564E4A",
-"}8. c #68625C",
-"|8. c #828A94",
-"18. c #A2AEBA",
-"28. c #504642",
-"38. c #5C5250",
-"48. c #685C5B",
-"58. c #6F6262",
-"68. c #706261",
-"78. c #66564A",
-"88. c #42464C",
-"98. c #3F4348",
-"08. c #3C4044",
-"a8. c #57473C",
-"b8. c #655151",
-"c8. c #735C5C",
-"d8. c #876D6D",
-"e8. c #8E7273",
-"f8. c #917676",
-"g8. c #927778",
-"h8. c #997D7C",
-"i8. c #9D8686",
-"j8. c #968282",
-"k8. c #8B7C7C",
-"l8. c #7E7272",
-"m8. c #736B6B",
-"n8. c #6C6666",
-"o8. c #686363",
-"p8. c #666363",
-"q8. c #666464",
-"r8. c #656363",
-"s8. c #646161",
-"t8. c #5F5854",
-"u8. c #AAA6A1",
-"v8. c #C2CBD5",
-"w8. c #504338",
-"x8. c #846D6C",
-"y8. c #8F7676",
-"z8. c #957A7A",
-"A8. c #927878",
-"B8. c #917574",
-"C8. c #8E7271",
-"D8. c #8A6B6C",
-"E8. c #846766",
-"F8. c #836666",
-"G8. c #826665",
-"H8. c #806765",
-"I8. c #806A68",
-"J8. c #866E6A",
-"K8. c #8C706B",
-"L8. c #8F716C",
-"M8. c #88706B",
-"N8. c #836F6B",
-"O8. c #7F6F6C",
-"P8. c #958782",
-"Q8. c #8D7D77",
-"R8. c #93847E",
-"S8. c #958780",
-"T8. c #978B81",
-"U8. c #978B7F",
-"V8. c #958B7C",
-"W8. c #968D7E",
-"X8. c #847964",
-"Y8. c #7A6A53",
-"Z8. c #76674E",
-"`8. c #756850",
-" 9. c #585347",
-".9. c #6E6551",
-"+9. c #706651",
-"@9. c #787058",
-"#9. c #59543C",
-"$9. c #655E46",
-"%9. c #929F8D",
-"&9. c #929E8D",
-"*9. c #8A9585",
-"=9. c #8C9886",
-"-9. c #8C9987",
-";9. c #8C9985",
-">9. c #8C9983",
-",9. c #8A9780",
-"'9. c #82907A",
-")9. c #889381",
-"!9. c #868F80",
-"~9. c #858D7F",
-"{9. c #8E928B",
-"]9. c #81887A",
-"^9. c #7C8275",
-"/9. c #6B6453",
-"(9. c #89939D",
-"_9. c #4E463B",
-":9. c #5B5447",
-"<9. c #949EAA",
-"[9. c #666D75",
-"}9. c #7F8891",
-"|9. c #3B3E3A",
-"19. c #484C47",
-"29. c #525148",
-"39. c #3E3D37",
-"49. c #5F625D",
-"59. c #666964",
-"69. c #686C65",
-"79. c #686B65",
-"89. c #676B64",
-"99. c #635D50",
-"09. c #615A4B",
-"a9. c #60584A",
-"b9. c #5E5E54",
-"c9. c #5D5446",
-"d9. c #3C3D3A",
-"e9. c #4C4D49",
-"f9. c #6C6C67",
-"g9. c #64655F",
-"h9. c #928B84",
-"i9. c #3A3D42",
-"j9. c #313233",
-"k9. c #484846",
-"l9. c #52483B",
-"m9. c #3C3A38",
-"n9. c #4B4947",
-"o9. c #64605C",
-"p9. c #615A54",
-"q9. c #463E37",
-"r9. c #4A4443",
-"s9. c #585050",
-"t9. c #605858",
-"u9. c #5D5553",
-"v9. c #5A4E45",
-"w9. c #767B81",
-"x9. c #909AA5",
-"y9. c #584C42",
-"z9. c #554C4B",
-"A9. c #6C605F",
-"B9. c #6E6160",
-"C9. c #665549",
-"D9. c #56463C",
-"E9. c #645152",
-"F9. c #745E5F",
-"G9. c #816A6B",
-"H9. c #8A7273",
-"I9. c #907778",
-"J9. c #917778",
-"K9. c #917777",
-"L9. c #937778",
-"M9. c #95787A",
-"N9. c #977B7C",
-"O9. c #9D8181",
-"P9. c #9D8484",
-"Q9. c #9A8484",
-"R9. c #928080",
-"S9. c #897B7B",
-"T9. c #827676",
-"U9. c #7D7474",
-"V9. c #7A7473",
-"W9. c #797474",
-"X9. c #797676",
-"Y9. c #787676",
-"Z9. c #777474",
-"`9. c #6E6660",
-" 0. c #988F86",
-".0. c #D6DDE3",
-"+0. c #313439",
-"@0. c #303133",
-"#0. c #55463C",
-"$0. c #5E4F4F",
-"%0. c #746261",
-"&0. c #856E6F",
-"*0. c #907776",
-"=0. c #947A79",
-"-0. c #917675",
-";0. c #8C7070",
-">0. c #896C6E",
-",0. c #866A6B",
-"'0. c #826566",
-")0. c #806362",
-"!0. c #7E6362",
-"~0. c #7E6462",
-"{0. c #7D6663",
-"]0. c #7E6864",
-"^0. c #7E6865",
-"/0. c #866C67",
-"(0. c #8C706A",
-"_0. c #866F6A",
-":0. c #816E69",
-"<0. c #7E6E6A",
-"[0. c #7E6E6B",
-"}0. c #7E6F6B",
-"|0. c #938580",
-"10. c #867670",
-"20. c #8B7B74",
-"30. c #8F7F78",
-"40. c #92837C",
-"50. c #94857F",
-"60. c #948880",
-"70. c #96897F",
-"80. c #978C80",
-"90. c #948A7E",
-"00. c #978E80",
-"a0. c #7D725E",
-"b0. c #887C66",
-"c0. c #82755E",
-"d0. c #71654C",
-"e0. c #585346",
-"f0. c #6D6350",
-"g0. c #736A55",
-"h0. c #7A715B",
-"i0. c #7C725B",
-"j0. c #554E39",
-"k0. c #575039",
-"l0. c #605A42",
-"m0. c #929F8C",
-"n0. c #919F8C",
-"o0. c #5C625A",
-"p0. c #7A8475",
-"q0. c #828D7D",
-"r0. c #8A9685",
-"s0. c #8D9887",
-"t0. c #879382",
-"u0. c #8F9C8B",
-"v0. c #909D88",
-"w0. c #8F9E86",
-"x0. c #8C9984",
-"y0. c #828F79",
-"z0. c #878F81",
-"A0. c #838A7C",
-"B0. c #7E8679",
-"C0. c #75786B",
-"D0. c #625B4B",
-"E0. c #5A5344",
-"F0. c #554D3E",
-"G0. c #524A3C",
-"H0. c #50483A",
-"I0. c #51493B",
-"J0. c #534B3D",
-"K0. c #524B3D",
-"L0. c #544B3F",
-"M0. c #524A3D",
-"N0. c #51493C",
-"O0. c #645849",
-"P0. c #B2BCC8",
-"Q0. c #B4BECA",
-"R0. c #4C524D",
-"S0. c #5A5345",
-"T0. c #818A94",
-"U0. c #463E31",
-"V0. c #4D4539",
-"W0. c #4E4639",
-"X0. c #4D4538",
-"Y0. c #524635",
-"Z0. c #7E8389",
-"`0. c #AEBAC6",
-" a. c #868F9A",
-".a. c #3C3F3B",
-"+a. c #494D48",
-"@a. c #535248",
-"#a. c #9DA6B1",
-"$a. c #3E3E38",
-"%a. c #474A46",
-"&a. c #555853",
-"*a. c #666B64",
-"=a. c #696E66",
-"-a. c #686E66",
-";a. c #686D66",
-">a. c #686C66",
-",a. c #686C64",
-"'a. c #646156",
-")a. c #CAC8C5",
-"!a. c #E7EBEE",
-"~a. c #8F97A0",
-"{a. c #5B5244",
-"]a. c #313539",
-"^a. c #3E3F3B",
-"/a. c #4D4F4B",
-"(a. c #5B5C58",
-"_a. c #6A6C67",
-":a. c #B3B1AF",
-"<a. c #393634",
-"[a. c #423E36",
-"}a. c #4A4948",
-"|a. c #53483C",
-"1a. c #4C4A48",
-"2a. c #625F5C",
-"3a. c #66615E",
-"4a. c #443C35",
-"5a. c #585150",
-"6a. c #625A59",
-"7a. c #A0ACB7",
-"8a. c #524844",
-"9a. c #848E98",
-"0a. c #2E3235",
-"aa. c #4A3F34",
-"ba. c #46392E",
-"ca. c #483B30",
-"da. c #4C3E32",
-"ea. c #503F34",
-"fa. c #524034",
-"ga. c #514035",
-"ha. c #504035",
-"ia. c #504036",
-"ja. c #534338",
-"ka. c #56463B",
-"la. c #584846",
-"ma. c #655454",
-"na. c #756162",
-"oa. c #806A6A",
-"pa. c #897071",
-"qa. c #8E7374",
-"ra. c #8F7475",
-"sa. c #907576",
-"ta. c #947A7B",
-"ua. c #967A7D",
-"va. c #967C7D",
-"wa. c #987C7E",
-"xa. c #9C8283",
-"ya. c #9A8E84",
-"za. c #968B82",
-"Aa. c #938A80",
-"Ba. c #938980",
-"Ca. c #928A80",
-"Da. c #928A81",
-"Ea. c #948B82",
-"Fa. c #9E968C",
-"Ga. c #CAC7C5",
-"Ha. c #B2BECA",
-"Ia. c #5B6168",
-"Ja. c #4F423F",
-"Ka. c #625252",
-"La. c #887070",
-"Ma. c #917979",
-"Na. c #957C7A",
-"Oa. c #8F7474",
-"Pa. c #8C7071",
-"Qa. c #8A6F70",
-"Ra. c #896D6E",
-"Sa. c #866C6C",
-"Ta. c #7E6261",
-"Ua. c #7C6260",
-"Va. c #7B6260",
-"Wa. c #7B6462",
-"Xa. c #866965",
-"Ya. c #8C6B67",
-"Za. c #8A6C68",
-"`a. c #846C68",
-" b. c #7E6C68",
-".b. c #7C6C68",
-"+b. c #7C6C69",
-"@b. c #7C6E69",
-"#b. c #92847F",
-"$b. c #84746E",
-"%b. c #8C7C75",
-"&b. c #92847D",
-"*b. c #93877E",
-"=b. c #94897F",
-"-b. c #968B80",
-";b. c #958B80",
-">b. c #999082",
-",b. c #857A65",
-"'b. c #8A8068",
-")b. c #796952",
-"!b. c #76684F",
-"~b. c #71644B",
-"{b. c #575144",
-"]b. c #685F4B",
-"^b. c #706853",
-"/b. c #7A725B",
-"(b. c #5C584B",
-"_b. c #5A543F",
-":b. c #58513A",
-"<b. c #5E5840",
-"[b. c #909E88",
-"}b. c #8E9C88",
-"|b. c #5C6158",
-"1b. c #828E7C",
-"2b. c #8D9886",
-"3b. c #8E9A88",
-"4b. c #889584",
-"5b. c #909E8C",
-"6b. c #919E89",
-"7b. c #8F9C86",
-"8b. c #8C9882",
-"9b. c #84917B",
-"0b. c #8A9483",
-"ab. c #878F80",
-"bb. c #868D80",
-"cb. c #777E71",
-"db. c #5D6259",
-"eb. c #535851",
-"fb. c #4D524B",
-"gb. c #4A4E48",
-"hb. c #4B4F49",
-"ib. c #4C504B",
-"jb. c #4C504A",
-"kb. c #4B504A",
-"lb. c #4E504E",
-"mb. c #4A4E4A",
-"nb. c #494E49",
-"ob. c #484D48",
-"pb. c #4A4A42",
-"qb. c #9E9A95",
-"rb. c #AFBAC4",
-"sb. c #3B4044",
-"tb. c #585244",
-"ub. c #7A828C",
-"vb. c #303331",
-"wb. c #3C423E",
-"xb. c #414642",
-"yb. c #434844",
-"zb. c #424744",
-"Ab. c #424643",
-"Bb. c #404642",
-"Cb. c #404442",
-"Db. c #404441",
-"Eb. c #3F4340",
-"Fb. c #484339",
-"Gb. c #A3AAB2",
-"Hb. c #8C95A0",
-"Ib. c #545249",
-"Jb. c #565C62",
-"Kb. c #4E4A45",
-"Lb. c #3E3D38",
-"Mb. c #5E625C",
-"Nb. c #656963",
-"Ob. c #676C66",
-"Pb. c #676C65",
-"Qb. c #676C64",
-"Rb. c #666B65",
-"Sb. c #626056",
-"Tb. c #9E978E",
-"Ub. c #C0C8D1",
-"Vb. c #636A72",
-"Wb. c #423D39",
-"Xb. c #53524A",
-"Yb. c #585042",
-"Zb. c #8C96A1",
-"`b. c #50483E",
-" c. c #4D4F4A",
-".c. c #696C65",
-"+c. c #807567",
-"@c. c #DEE2E6",
-"#c. c #443D34",
-"$c. c #3B3B36",
-"%c. c #4C4C49",
-"&c. c #54493D",
-"*c. c #3D3B39",
-"=c. c #64605D",
-"-c. c #433C35",
-";c. c #635B5A",
-">c. c #675F5E",
-",c. c #5B4F46",
-"'c. c #74787D",
-")c. c #9099A4",
-"!c. c #594D42",
-"~c. c #584F4E",
-"{c. c #665C5B",
-"]c. c #6C6060",
-"^c. c #8B95A0",
-"/c. c #41464A",
-"(c. c #494036",
-"_c. c #2E2828",
-":c. c #352E2E",
-"<c. c #3E3332",
-"[c. c #453836",
-"}c. c #4A3A38",
-"|c. c #4A3B39",
-"1c. c #483A3A",
-"2c. c #453939",
-"3c. c #443939",
-"4c. c #44393A",
-"5c. c #453A3A",
-"6c. c #463A3B",
-"7c. c #483C3C",
-"8c. c #4B3E3F",
-"9c. c #514444",
-"0c. c #5A4B4B",
-"ac. c #665454",
-"bc. c #745F60",
-"cc. c #7F6768",
-"dc. c #876E6F",
-"ec. c #8C7274",
-"fc. c #8E7476",
-"gc. c #927879",
-"hc. c #937879",
-"ic. c #94797A",
-"jc. c #967A7C",
-"kc. c #977A7D",
-"lc. c #9A7E80",
-"mc. c #9B8082",
-"nc. c #9F978F",
-"oc. c #DFE4E8",
-"pc. c #E1E5EA",
-"qc. c #DADFE5",
-"rc. c #33363B",
-"sc. c #4D4136",
-"tc. c #504444",
-"uc. c #665656",
-"vc. c #7A6666",
-"wc. c #897272",
-"xc. c #927A7A",
-"yc. c #967D7C",
-"zc. c #907675",
-"Ac. c #8C7271",
-"Bc. c #8A7070",
-"Cc. c #886E6E",
-"Dc. c #7E6264",
-"Ec. c #7B6060",
-"Fc. c #856662",
-"Gc. c #8A6863",
-"Hc. c #866964",
-"Ic. c #816A65",
-"Jc. c #7B6A65",
-"Kc. c #7A6A66",
-"Lc. c #7B6C68",
-"Mc. c #90827D",
-"Nc. c #83726C",
-"Oc. c #8E7F77",
-"Pc. c #8F8178",
-"Qc. c #90847C",
-"Rc. c #92867F",
-"Sc. c #938880",
-"Tc. c #999084",
-"Uc. c #807660",
-"Vc. c #847A65",
-"Wc. c #8B816A",
-"Xc. c #8C7E67",
-"Yc. c #807059",
-"Zc. c #796B52",
-"`c. c #74684F",
-" d. c #565043",
-".d. c #665E4A",
-"+d. c #6D644F",
-"@d. c #5C574B",
-"#d. c #605A44",
-"$d. c #5C553F",
-"%d. c #5C553C",
-"&d. c #8F9C88",
-"*d. c #8F9B88",
-"=d. c #5C6259",
-"-d. c #666D64",
-";d. c #7C8878",
-">d. c #828E7D",
-",d. c #909D89",
-"'d. c #8E9B86",
-")d. c #89957F",
-"!d. c #889081",
-"~d. c #889082",
-"{d. c #8A9182",
-"]d. c #899082",
-"^d. c #888E81",
-"/d. c #878072",
-"(d. c #847C6F",
-"_d. c #7F786C",
-":d. c #7C7569",
-"<d. c #7B7468",
-"[d. c #7A7267",
-"}d. c #7A7268",
-"|d. c #7A7368",
-"1d. c #7B7368",
-"2d. c #837B70",
-"3d. c #B2ACA7",
-"4d. c #E6E9EE",
-"5d. c #848C96",
-"6d. c #383634",
-"7d. c #4A483F",
-"8d. c #4C514D",
-"9d. c #7B848D",
-"0d. c #473F35",
-"ad. c #373C39",
-"bd. c #424844",
-"cd. c #4A504C",
-"dd. c #515752",
-"ed. c #545A56",
-"fd. c #525754",
-"gd. c #505652",
-"hd. c #505552",
-"id. c #4F5451",
-"jd. c #4C524E",
-"kd. c #504D42",
-"ld. c #AFB5BC",
-"md. c #8D96A1",
-"nd. c #3D403C",
-"od. c #4B4F4A",
-"pd. c #B1BCC7",
-"qd. c #88929C",
-"rd. c #828485",
-"sd. c #6C655C",
-"td. c #746D62",
-"ud. c #7C7469",
-"vd. c #7E766A",
-"wd. c #7E766B",
-"xd. c #7E776B",
-"yd. c #7F776B",
-"zd. c #968E84",
-"Ad. c #C8C5C2",
-"Bd. c #E8ECF0",
-"Cd. c #B0B9C2",
-"Dd. c #4B4238",
-"Ed. c #544C3F",
-"Fd. c #A1ACB7",
-"Gd. c #7A7774",
-"Hd. c #6F675E",
-"Id. c #776E64",
-"Jd. c #7B7268",
-"Kd. c #7E756A",
-"Ld. c #80776C",
-"Md. c #80786C",
-"Nd. c #8E857B",
-"Od. c #B2ACA6",
-"Pd. c #E4E7EA",
-"Qd. c #A4AEB7",
-"Rd. c #33363A",
-"Sd. c #4A4035",
-"Td. c #3E3E3A",
-"Ud. c #51504E",
-"Vd. c #554B3E",
-"Wd. c #5C5855",
-"Xd. c #635C57",
-"Yd. c #585251",
-"Zd. c #635C5C",
-"`d. c #6A6261",
-" e. c #675E5D",
-".e. c #675E57",
-"+e. c #554A46",
-"@e. c #605655",
-"#e. c #645449",
-"$e. c #A0ABB6",
-"%e. c #797572",
-"&e. c #72685E",
-"*e. c #766A60",
-"=e. c #786B61",
-"-e. c #7A6C62",
-";e. c #796C62",
-">e. c #796C63",
-",e. c #7A6D64",
-"'e. c #7B6E64",
-")e. c #7C6F66",
-"!e. c #7A6D65",
-"~e. c #78615E",
-"{e. c #846D6E",
-"]e. c #8B7274",
-"^e. c #8E7576",
-"/e. c #8F7677",
-"(e. c #917678",
-"_e. c #947879",
-":e. c #977C7D",
-"<e. c #9A7E7F",
-"[e. c #977C7E",
-"}e. c #958F88",
-"|e. c #CBD3DC",
-"1e. c #A7B3BF",
-"2e. c #4B3E3A",
-"3e. c #584A49",
-"4e. c #6D5A5A",
-"5e. c #8C7474",
-"6e. c #937A7A",
-"7e. c #947C7B",
-"8e. c #947A7A",
-"9e. c #907676",
-"0e. c #8E7474",
-"ae. c #8C7171",
-"be. c #89706F",
-"ce. c #816668",
-"de. c #7E6464",
-"ee. c #7E6262",
-"fe. c #806160",
-"ge. c #85625F",
-"he. c #886460",
-"ie. c #836561",
-"je. c #7D6561",
-"ke. c #786763",
-"le. c #786964",
-"me. c #796A66",
-"ne. c #8F7F7A",
-"oe. c #807069",
-"pe. c #887670",
-"qe. c #8D7F76",
-"re. c #8E8078",
-"se. c #8E8079",
-"te. c #90837B",
-"ue. c #90857E",
-"ve. c #988E82",
-"we. c #8A7F68",
-"xe. c #93856E",
-"ye. c #897A64",
-"ze. c #7C6E56",
-"Ae. c #796A52",
-"Be. c #766C53",
-"Ce. c #565144",
-"De. c #635A45",
-"Ee. c #68624A",
-"Fe. c #7F7860",
-"Ge. c #625C46",
-"He. c #5F5842",
-"Ie. c #5D563E",
-"Je. c #8E9A87",
-"Ke. c #7C8876",
-"Le. c #86927F",
-"Me. c #909C8A",
-"Ne. c #939F8D",
-"Oe. c #676D64",
-"Pe. c #838F7E",
-"Qe. c #8B9887",
-"Re. c #909E8A",
-"Se. c #8C9883",
-"Te. c #8A9680",
-"Ue. c #87937E",
-"Ve. c #8D9684",
-"We. c #8A9183",
-"Xe. c #8A9283",
-"Ye. c #8B9384",
-"Ze. c #92978F",
-"`e. c #8D9486",
-" f. c #8E9587",
-".f. c #8A9284",
-"+f. c #746E5C",
-"@f. c #454945",
-"#f. c #5C5548",
-"$f. c #484036",
-"%f. c #404541",
-"&f. c #59605B",
-"*f. c #616863",
-"=f. c #646C66",
-"-f. c #656C67",
-";f. c #646B65",
-">f. c #636A64",
-",f. c #606763",
-"'f. c #5F6662",
-")f. c #5E6460",
-"!f. c #5A615C",
-"~f. c #B0B6BD",
-"{f. c #8E96A1",
-"]f. c #3E423D",
-"^f. c #56544B",
-"/f. c #A8B1BC",
-"(f. c #42474C",
-"_f. c #47443B",
-":f. c #444742",
-"<f. c #544B3E",
-"[f. c #B2BCC9",
-"}f. c #DBE1E7",
-"|f. c #E5E8EC",
-"1f. c #A7B0BA",
-"2f. c #423B34",
-"3f. c #3E3C36",
-"4f. c #43433F",
-"5f. c #565653",
-"6f. c #574C40",
-"7f. c #4F4C4A",
-"8f. c #5C5A56",
-"9f. c #645E59",
-"0f. c #443D36",
-"af. c #5A5453",
-"bf. c #665F5E",
-"cf. c #706867",
-"df. c #665E5C",
-"ef. c #5E5249",
-"ff. c #75797D",
-"gf. c #8E98A2",
-"hf. c #8B949E",
-"if. c #5A4E43",
-"jf. c #5A5150",
-"kf. c #625348",
-"lf. c #C5CED6",
-"mf. c #6C584E",
-"nf. c #7E686A",
-"of. c #866E6F",
-"pf. c #907577",
-"qf. c #927678",
-"rf. c #94787A",
-"sf. c #95797B",
-"tf. c #977A7C",
-"uf. c #977D7D",
-"vf. c #35383D",
-"wf. c #343334",
-"xf. c #4E4036",
-"yf. c #4E4241",
-"zf. c #615252",
-"Af. c #756161",
-"Bf. c #846E6D",
-"Cf. c #8E7575",
-"Df. c #8D7473",
-"Ef. c #8B7271",
-"Ff. c #88706F",
-"Gf. c #876E6E",
-"Hf. c #846C6B",
-"If. c #836A6A",
-"Jf. c #816869",
-"Kf. c #806565",
-"Lf. c #856564",
-"Mf. c #8A6562",
-"Nf. c #81605E",
-"Of. c #79605D",
-"Pf. c #74625D",
-"Qf. c #75645F",
-"Rf. c #756560",
-"Sf. c #7D6C66",
-"Tf. c #82716A",
-"Uf. c #85746D",
-"Vf. c #887770",
-"Wf. c #8A7A73",
-"Xf. c #8B7C76",
-"Yf. c #8C7E77",
-"Zf. c #8D807A",
-"`f. c #7C715C",
-" g. c #837863",
-".g. c #8D816A",
-"+g. c #958A72",
-"@g. c #93866F",
-"#g. c #84765E",
-"$g. c #786B53",
-"%g. c #666047",
-"&g. c #6E6850",
-"*g. c #5D5A4D",
-"=g. c #615C46",
-"-g. c #615943",
-";g. c #625C44",
-">g. c #909E8B",
-",g. c #8F9D8B",
-"'g. c #909D8B",
-")g. c #5D635A",
-"!g. c #869382",
-"~g. c #94A18C",
-"{g. c #7E8A78",
-"]g. c #8C9986",
-"^g. c #929F8A",
-"/g. c #8E9A85",
-"(g. c #87927D",
-"_g. c #8E9886",
-":g. c #8C9586",
-"<g. c #8D9686",
-"[g. c #939890",
-"}g. c #8D9787",
-"|g. c #8F988A",
-"1g. c #90998B",
-"2g. c #8D9689",
-"3g. c #746E5D",
-"4g. c #CAD2DB",
-"5g. c #A2AAB2",
-"6g. c #4A473E",
-"7g. c #464B47",
-"8g. c #6C756F",
-"9g. c #707A74",
-"0g. c #707A75",
-"ag. c #707973",
-"bg. c #707972",
-"cg. c #6E7872",
-"dg. c #6C7670",
-"eg. c #6A756E",
-"fg. c #68726D",
-"gg. c #646E68",
-"hg. c #5F5C51",
-"ig. c #AEB4BB",
-"jg. c #BAC5D0",
-"kg. c #7D868F",
-"lg. c #3E423E",
-"mg. c #4B514B",
-"ng. c #56564C",
-"og. c #A2A4A6",
-"pg. c #ACB6C2",
-"qg. c #A2ACB8",
-"rg. c #B2BDC8",
-"sg. c #BFC8D1",
-"tg. c #9BA3AC",
-"ug. c #646B73",
-"vg. c #464035",
-"wg. c #3C3F3C",
-"xg. c #444743",
-"yg. c #A5B0BB",
-"zg. c #B7C2CC",
-"Ag. c #9CA4AC",
-"Bg. c #646A72",
-"Cg. c #303438",
-"Dg. c #3D3934",
-"Eg. c #3E403B",
-"Fg. c #5C5D5A",
-"Gg. c #594F42",
-"Hg. c #3E3E3C",
-"Ig. c #5C5B58",
-"Jg. c #999897",
-"Kg. c #97A0AB",
-"Lg. c #453E37",
-"Mg. c #5B5654",
-"Ng. c #6F6866",
-"Og. c #726A68",
-"Pg. c #6F6865",
-"Qg. c #605A56",
-"Rg. c #655C53",
-"Sg. c #7B848C",
-"Tg. c #554C46",
-"Ug. c #5D5652",
-"Vg. c #605246",
-"Wg. c #C8D0D8",
-"Xg. c #8C969F",
-"Yg. c #665348",
-"Zg. c #876F70",
-"`g. c #8C7273",
-" h. c #907677",
-".h. c #967B7C",
-"+h. c #957C7D",
-"@h. c #907777",
-"#h. c #8D8882",
-"$h. c #B0BBC6",
-"%h. c #96A1AC",
-"&h. c #828B95",
-"*h. c #4C3F36",
-"=h. c #493D3D",
-"-h. c #5A4C4B",
-";h. c #6C5A5A",
-">h. c #7C6868",
-",h. c #8E7473",
-"'h. c #8E7373",
-")h. c #8C7272",
-"!h. c #876F6E",
-"~h. c #866E6E",
-"{h. c #856D6C",
-"]h. c #836B6B",
-"^h. c #876865",
-"/h. c #8C6864",
-"(h. c #876663",
-"_h. c #806460",
-":h. c #79605F",
-"<h. c #745E5D",
-"[h. c #736160",
-"}h. c #887676",
-"|h. c #7A6665",
-"1h. c #7E6B69",
-"2h. c #85756E",
-"3h. c #8C7D77",
-"4h. c #8C7F78",
-"5h. c #79695F",
-"6h. c #807165",
-"7h. c #8B7C6C",
-"8h. c #90836E",
-"9h. c #958A70",
-"0h. c #8D8268",
-"ah. c #80745B",
-"bh. c #766C54",
-"ch. c #575246",
-"dh. c #5E5440",
-"eh. c #645B46",
-"fh. c #605946",
-"gh. c #605844",
-"hh. c #645C46",
-"ih. c #909D8C",
-"jh. c #919E8B",
-"kh. c #95A28D",
-"lh. c #808B7A",
-"mh. c #84907E",
-"nh. c #8E9A86",
-"oh. c #8D9A84",
-"ph. c #8A9682",
-"qh. c #88947F",
-"rh. c #8F9987",
-"sh. c #8E9687",
-"th. c #8F9788",
-"uh. c #8E9787",
-"vh. c #909989",
-"wh. c #929B8C",
-"xh. c #919B8D",
-"yh. c #8E978C",
-"zh. c #746E5E",
-"Ah. c #3A3E43",
-"Bh. c #36393E",
-"Ch. c #413B34",
-"Dh. c #4E473C",
-"Eh. c #484C48",
-"Fh. c #5F6661",
-"Gh. c #5C6269",
-"Hh. c #494136",
-"Ih. c #6B736D",
-"Jh. c #79837C",
-"Kh. c #78827C",
-"Lh. c #77817A",
-"Mh. c #77807A",
-"Nh. c #757F78",
-"Oh. c #737E76",
-"Ph. c #717B76",
-"Qh. c #6E7973",
-"Rh. c #6A746F",
-"Sh. c #626156",
-"Th. c #8E949B",
-"Uh. c #3E433E",
-"Vh. c #898C8E",
-"Wh. c #3E4248",
-"Xh. c #35393D",
-"Yh. c #383C40",
-"Zh. c #463E33",
-"`h. c #373936",
-" i. c #404240",
-".i. c #494C48",
-"+i. c #564E41",
-"@i. c #373A3F",
-"#i. c #393D42",
-"$i. c #3D3F3A",
-"%i. c #656661",
-"&i. c #5C5245",
-"*i. c #483F35",
-"=i. c #403F3D",
-"-i. c #50504D",
-";i. c #5E5D59",
-">i. c #66625C",
-",i. c #848483",
-"'i. c #737A83",
-")i. c #464039",
-"!i. c #4D4947",
-"~i. c #686260",
-"{i. c #706A66",
-"]i. c #746E6A",
-"^i. c #6E6865",
-"/i. c #67615E",
-"(i. c #5F544B",
-"_i. c #5B5D5E",
-":i. c #35393E",
-"<i. c #2E3034",
-"[i. c #58514E",
-"}i. c #5F5144",
-"|i. c #614F44",
-"1i. c #8B7272",
-"2i. c #8E7677",
-"3i. c #957B7C",
-"4i. c #8E7676",
-"5i. c #7E7A74",
-"6i. c #79828B",
-"7i. c #323438",
-"8i. c #313438",
-"9i. c #323233",
-"0i. c #4C3E36",
-"ai. c #4A3E3E",
-"bi. c #584A4A",
-"ci. c #685757",
-"di. c #856E6E",
-"ei. c #8F7574",
-"fi. c #886F6F",
-"gi. c #856E6D",
-"hi. c #846B6B",
-"ii. c #8A6B68",
-"ji. c #8D6B66",
-"ki. c #806562",
-"li. c #796262",
-"mi. c #776060",
-"ni. c #755F5E",
-"oi. c #735D5D",
-"pi. c #715D5C",
-"qi. c #867171",
-"ri. c #76605F",
-"si. c #7A6464",
-"ti. c #7E6A66",
-"ui. c #806F69",
-"vi. c #84746D",
-"wi. c #877871",
-"xi. c #887A74",
-"yi. c #897B75",
-"zi. c #897C76",
-"Ai. c #90847D",
-"Bi. c #76655C",
-"Ci. c #7C6C62",
-"Di. c #817264",
-"Ei. c #867865",
-"Fi. c #887B67",
-"Gi. c #90836D",
-"Hi. c #90856C",
-"Ii. c #7A6F58",
-"Ji. c #5F5542",
-"Ki. c #615843",
-"Li. c #726D55",
-"Mi. c #605947",
-"Ni. c #5C5641",
-"Oi. c #919E8C",
-"Pi. c #92A08D",
-"Qi. c #5D635B",
-"Ri. c #919D8B",
-"Si. c #808C7B",
-"Ti. c #8D9A85",
-"Ui. c #8C9783",
-"Vi. c #889480",
-"Wi. c #909A88",
-"Xi. c #90988A",
-"Yi. c #90998A",
-"Zi. c #949992",
-"`i. c #929C8C",
-" j. c #949D8F",
-".j. c #939C90",
-"+j. c #373534",
-"@j. c #4D463A",
-"#j. c #4A4F4A",
-"$j. c #69716B",
-"%j. c #666052",
-"&j. c #4A4137",
-"*j. c #616963",
-"=j. c #79827B",
-"-j. c #7E8880",
-";j. c #7B8780",
-">j. c #7A857E",
-",j. c #79837D",
-"'j. c #768179",
-")j. c #747E78",
-"!j. c #727D77",
-"~j. c #6D7872",
-"{j. c #646358",
-"]j. c #4F5153",
-"^j. c #424843",
-"/j. c #58584E",
-"(j. c #423C34",
-"_j. c #383A37",
-":j. c #40423F",
-"<j. c #4A4D48",
-"[j. c #525550",
-"}j. c #5A5244",
-"|j. c #453D35",
-"1j. c #3F3E38",
-"2j. c #40423D",
-"3j. c #494C46",
-"4j. c #5E605B",
-"5j. c #6D6F6A",
-"6j. c #5E5548",
-"7j. c #483F36",
-"8j. c #454442",
-"9j. c #555450",
-"0j. c #62615D",
-"aj. c #69645E",
-"bj. c #585551",
-"cj. c #303337",
-"dj. c #49433C",
-"ej. c #5F5B58",
-"fj. c #6A6562",
-"gj. c #716B68",
-"hj. c #746E6B",
-"ij. c #756F6B",
-"jj. c #6E6663",
-"kj. c #655E5B",
-"lj. c #544A3E",
-"mj. c #59504B",
-"nj. c #484C52",
-"oj. c #5E4C41",
-"pj. c #675656",
-"qj. c #776363",
-"rj. c #826C6C",
-"sj. c #8A7272",
-"tj. c #957A7C",
-"uj. c #947A7C",
-"vj. c #8D7576",
-"wj. c #5C554D",
-"xj. c #333334",
-"yj. c #4B3F35",
-"zj. c #4E4037",
-"Aj. c #463B3A",
-"Bj. c #4E4242",
-"Cj. c #685656",
-"Dj. c #776362",
-"Ej. c #927876",
-"Fj. c #8D7372",
-"Gj. c #886B69",
-"Hj. c #8D6B69",
-"Ij. c #8C6B68",
-"Jj. c #866A66",
-"Kj. c #7E6765",
-"Lj. c #7A6564",
-"Mj. c #796362",
-"Nj. c #776161",
-"Oj. c #75605F",
-"Pj. c #735E5D",
-"Qj. c #725959",
-"Rj. c #755E5D",
-"Sj. c #7A6462",
-"Tj. c #84726E",
-"Uj. c #867570",
-"Vj. c #877772",
-"Wj. c #8E807B",
-"Xj. c #78685E",
-"Yj. c #7D7062",
-"Zj. c #827362",
-"`j. c #837460",
-" k. c #867A64",
-".k. c #8D826A",
-"+k. c #897E68",
-"@k. c #80755E",
-"#k. c #5A5449",
-"$k. c #5F5743",
-"%k. c #5F5642",
-"&k. c #685F49",
-"*k. c #716952",
-"=k. c #615A48",
-"-k. c #5C5440",
-";k. c #5C5540",
-">k. c #93A08E",
-",k. c #869482",
-"'k. c #909D8A",
-")k. c #94A08C",
-"!k. c #838F7D",
-"~k. c #8E9B88",
-"{k. c #8F9C87",
-"]k. c #8A9681",
-"^k. c #919A89",
-"/k. c #8F9789",
-"(k. c #949A92",
-"_k. c #939E8F",
-":k. c #949E91",
-"<k. c #939D91",
-"[k. c #90998E",
-"}k. c #82867B",
-"|k. c #6E6859",
-"1k. c #5F584A",
-"2k. c #544C3E",
-"3k. c #554C40",
-"4k. c #544C40",
-"5k. c #524C40",
-"6k. c #4F4C43",
-"7k. c #494C47",
-"8k. c #4B504B",
-"9k. c #585F5A",
-"0k. c #6F776F",
-"ak. c #757D76",
-"bk. c #676153",
-"ck. c #575043",
-"dk. c #545349",
-"ek. c #666E69",
-"fk. c #727A74",
-"gk. c #7A847C",
-"hk. c #7E8881",
-"ik. c #7C8680",
-"jk. c #7A847E",
-"kk. c #76817A",
-"lk. c #747F78",
-"mk. c #6E7873",
-"nk. c #676E68",
-"ok. c #5F5B4F",
-"pk. c #595346",
-"qk. c #544D40",
-"rk. c #514A3D",
-"sk. c #4E4A3E",
-"tk. c #595F58",
-"uk. c #595244",
-"vk. c #4F473A",
-"wk. c #484236",
-"xk. c #423F36",
-"yk. c #3A3B36",
-"zk. c #393C38",
-"Ak. c #3E403C",
-"Bk. c #4D504C",
-"Ck. c #565954",
-"Dk. c #5C605A",
-"Ek. c #595143",
-"Fk. c #4F4639",
-"Gk. c #4C4236",
-"Hk. c #4D4437",
-"Ik. c #4E4538",
-"Jk. c #4A4338",
-"Kk. c #454239",
-"Lk. c #464844",
-"Mk. c #4D514B",
-"Nk. c #767772",
-"Ok. c #5F5447",
-"Pk. c #4B463E",
-"Qk. c #62594D",
-"Rk. c #5C5144",
-"Sk. c #564B3E",
-"Tk. c #53483B",
-"Uk. c #50463C",
-"Vk. c #4A4744",
-"Wk. c #635E5B",
-"Xk. c #6C6764",
-"Yk. c #736E6A",
-"Zk. c #5C4F42",
-"`k. c #55483C",
-" l. c #574C41",
-".l. c #59524F",
-"+l. c #605650",
-"@l. c #605346",
-"#l. c #5D4F43",
-"$l. c #574A3F",
-"%l. c #52463A",
-"&l. c #504337",
-"*l. c #4E4236",
-"=l. c #4F4237",
-"-l. c #504237",
-";l. c #514338",
-">l. c #534438",
-",l. c #544438",
-"'l. c #524438",
-")l. c #514337",
-"!l. c #514237",
-"~l. c #514238",
-"{l. c #524338",
-"]l. c #544439",
-"^l. c #5A4C48",
-"/l. c #685858",
-"(l. c #836C6D",
-"_l. c #8A7374",
-":l. c #917878",
-"<l. c #93787A",
-"[l. c #937A7C",
-"}l. c #8E7577",
-"|l. c #776159",
-"1l. c #6C574C",
-"2l. c #635045",
-"3l. c #5C4A40",
-"4l. c #57463B",
-"5l. c #54443A",
-"6l. c #54453A",
-"7l. c #50423A",
-"8l. c #4D403C",
-"9l. c #4A3E3D",
-"0l. c #4C4040",
-"al. c #786363",
-"bl. c #8B7474",
-"cl. c #937A79",
-"dl. c #836B6A",
-"el. c #8A6B69",
-"fl. c #8E6C69",
-"gl. c #846A67",
-"hl. c #7E6866",
-"il. c #7B6666",
-"jl. c #786564",
-"kl. c #766462",
-"ll. c #756260",
-"ml. c #887372",
-"nl. c #755C5A",
-"ol. c #745B5A",
-"pl. c #745C5A",
-"ql. c #77615E",
-"rl. c #7C6863",
-"sl. c #84736E",
-"tl. c #84746F",
-"ul. c #857571",
-"vl. c #6E5E55",
-"wl. c #75645C",
-"xl. c #7B6B5E",
-"yl. c #7E6E5E",
-"zl. c #827161",
-"Al. c #82735F",
-"Bl. c #847761",
-"Cl. c #887E68",
-"Dl. c #847A64",
-"El. c #5B564B",
-"Fl. c #605843",
-"Gl. c #5F5742",
-"Hl. c #635B45",
-"Il. c #6D644C",
-"Jl. c #5D5642",
-"Kl. c #93A18E",
-"Ll. c #94A18E",
-"Ml. c #94A18F",
-"Nl. c #879483",
-"Ol. c #94A18D",
-"Pl. c #879380",
-"Ql. c #909D87",
-"Rl. c #929F88",
-"Sl. c #919E87",
-"Tl. c #8F9B85",
-"Ul. c #8C9982",
-"Vl. c #929D8A",
-"Wl. c #91998B",
-"Xl. c #909A8C",
-"Yl. c #959A93",
-"Zl. c #929C90",
-"`l. c #949D92",
-" m. c #959E92",
-".m. c #919B91",
-"+m. c #8A938C",
-"@m. c #808881",
-"#m. c #666C67",
-"$m. c #525752",
-"%m. c #505651",
-"&m. c #545654",
-"*m. c #525853",
-"=m. c #555B56",
-"-m. c #585E59",
-";m. c #626963",
-">m. c #6B726C",
-",m. c #7C847D",
-"'m. c #747C76",
-")m. c #68706A",
-"!m. c #5E655F",
-"~m. c #5A605B",
-"{m. c #616964",
-"]m. c #6C746F",
-"^m. c #767E78",
-"/m. c #7C857E",
-"(m. c #7E8882",
-"_m. c #758078",
-":m. c #727E77",
-"<m. c #6F7B75",
-"[m. c #6A756F",
-"}m. c #626C67",
-"|m. c #58615C",
-"1m. c #4D524E",
-"2m. c #5D645E",
-"3m. c #464C46",
-"4m. c #414641",
-"5m. c #3E443E",
-"6m. c #3F433E",
-"7m. c #3F443E",
-"8m. c #40443E",
-"9m. c #40433E",
-"0m. c #40433F",
-"am. c #404340",
-"bm. c #424540",
-"cm. c #434743",
-"dm. c #535651",
-"em. c #60655F",
-"fm. c #646A63",
-"gm. c #595C58",
-"hm. c #51534F",
-"im. c #494B47",
-"jm. c #424440",
-"km. c #434441",
-"lm. c #434541",
-"mm. c #454743",
-"nm. c #4F524D",
-"om. c #666962",
-"pm. c #6F726A",
-"qm. c #74766F",
-"rm. c #7D7D79",
-"sm. c #4E4E4B",
-"tm. c #4D4C4A",
-"um. c #5F5E5A",
-"vm. c #6D6C67",
-"wm. c #5D5B58",
-"xm. c #53514E",
-"ym. c #53504D",
-"zm. c #676360",
-"Am. c #6F6A66",
-"Bm. c #76706D",
-"Cm. c #77706D",
-"Dm. c #77716D",
-"Em. c #766E6B",
-"Fm. c #716A67",
-"Gm. c #615B58",
-"Hm. c #57524F",
-"Im. c #514C4A",
-"Jm. c #58514F",
-"Km. c #605856",
-"Lm. c #655D5A",
-"Mm. c #5F5856",
-"Nm. c #57504F",
-"Om. c #4F4948",
-"Pm. c #4B4444",
-"Qm. c #484241",
-"Rm. c #484341",
-"Sm. c #494241",
-"Tm. c #4A4241",
-"Um. c #4E4442",
-"Vm. c #514442",
-"Wm. c #534643",
-"Xm. c #504442",
-"Ym. c #4E4341",
-"Zm. c #4C4241",
-"`m. c #4C4242",
-" n. c #4C4140",
-".n. c #4D4241",
-"+n. c #574A49",
-"@n. c #605252",
-"#n. c #846E6E",
-"$n. c #93797A",
-"%n. c #907878",
-"&n. c #887272",
-"*n. c #7D6868",
-"=n. c #645253",
-"-n. c #5C4B4C",
-";n. c #58484A",
-">n. c #564648",
-",n. c #564748",
-"'n. c #564849",
-")n. c #564747",
-"!n. c #574949",
-"~n. c #584949",
-"{n. c #584B4A",
-"]n. c #584B4B",
-"^n. c #594B4B",
-"/n. c #5B4D4D",
-"(n. c #5E4E4E",
-"_n. c #625251",
-":n. c #766161",
-"<n. c #907877",
-"[n. c #8C7170",
-"}n. c #896F6F",
-"|n. c #856C6C",
-"1n. c #856C6B",
-"2n. c #8C6D69",
-"3n. c #876A67",
-"4n. c #816966",
-"5n. c #7C6766",
-"6n. c #786664",
-"7n. c #776463",
-"8n. c #8A7675",
-"9n. c #77605E",
-"0n. c #775E5C",
-"an. c #765D5C",
-"bn. c #755B5A",
-"cn. c #755D5A",
-"dn. c #786260",
-"en. c #7A6764",
-"fn. c #7D6A67",
-"gn. c #7F6D6A",
-"hn. c #81706E",
-"in. c #887875",
-"jn. c #6B5A52",
-"kn. c #706055",
-"ln. c #7A6B5D",
-"mn. c #7F715F",
-"nn. c #7F735E",
-"on. c #81755F",
-"pn. c #5C564C",
-"qn. c #69624A",
-"rn. c #545044",
-"sn. c #615B46",
-"tn. c #5A533E",
-"un. c #7D8879",
-"vn. c #8D9C88",
-"wn. c #676D63",
-"xn. c #7D8977",
-"yn. c #909C87",
-"zn. c #92A088",
-"An. c #909C86",
-"Bn. c #8C9A83",
-"Cn. c #939D8A",
-"Dn. c #949A93",
-"En. c #919B90",
-"Fn. c #939C92",
-"Gn. c #929B94",
-"Hn. c #8E9790",
-"In. c #888F8A",
-"Jn. c #7F8681",
-"Kn. c #6E766F",
-"Ln. c #6A706A",
-"Mn. c #686E68",
-"Nn. c #666D66",
-"On. c #6A6C6A",
-"Pn. c #6D746E",
-"Qn. c #717872",
-"Rn. c #838D84",
-"Sn. c #858F86",
-"Tn. c #838B84",
-"Un. c #6C746D",
-"Vn. c #69716A",
-"Wn. c #69726B",
-"Xn. c #6D7670",
-"Yn. c #747D77",
-"Zn. c #7A837C",
-"`n. c #7D877F",
-" o. c #7F8981",
-".o. c #7B8680",
-"+o. c #77827A",
-"@o. c #758079",
-"#o. c #707C76",
-"$o. c #6D7772",
-"%o. c #67726C",
-"&o. c #616A65",
-"*o. c #5B635E",
-"=o. c #596059",
-"-o. c #50544F",
-";o. c #505450",
-">o. c #515550",
-",o. c #525651",
-"'o. c #696E68",
-")o. c #6C716A",
-"!o. c #585B56",
-"~o. c #545652",
-"{o. c #555752",
-"]o. c #5D605B",
-"^o. c #626560",
-"/o. c #71756D",
-"(o. c #767870",
-"_o. c #787B72",
-":o. c #80817C",
-"<o. c #72706C",
-"[o. c #6B6964",
-"}o. c #5B5856",
-"|o. c #5C5856",
-"1o. c #78716E",
-"2o. c #78726E",
-"3o. c #756E6B",
-"4o. c #625B58",
-"5o. c #645D5A",
-"6o. c #68605D",
-"7o. c #6C6460",
-"8o. c #6D6562",
-"9o. c #5C5654",
-"0o. c #5C5352",
-"ao. c #5E5554",
-"bo. c #655653",
-"co. c #675653",
-"do. c #665552",
-"eo. c #635452",
-"fo. c #5E5251",
-"go. c #5E5151",
-"ho. c #625453",
-"io. c #675757",
-"jo. c #766364",
-"ko. c #7E6A6A",
-"lo. c #8C7475",
-"mo. c #917879",
-"no. c #92797A",
-"oo. c #766162",
-"po. c #715D5E",
-"qo. c #6F5B5C",
-"ro. c #6D5A5B",
-"so. c #6E5A5C",
-"to. c #6E5B5C",
-"uo. c #6E5A5B",
-"vo. c #705D5E",
-"wo. c #6F5C5D",
-"xo. c #726060",
-"yo. c #746161",
-"zo. c #776262",
-"Ao. c #856B69",
-"Bo. c #8C6C69",
-"Co. c #866B69",
-"Do. c #7F6967",
-"Eo. c #7B6766",
-"Fo. c #796666",
-"Go. c #786665",
-"Ho. c #8A7876",
-"Io. c #796260",
-"Jo. c #7A6260",
-"Ko. c #78605E",
-"Lo. c #765E5C",
-"Mo. c #745C5B",
-"No. c #755E5E",
-"Oo. c #776261",
-"Po. c #806E6D",
-"Qo. c #63504B",
-"Ro. c #6A5A51",
-"So. c #7A6A59",
-"To. c #7B6D59",
-"Uo. c #7B6E59",
-"Vo. c #7B6F5A",
-"Wo. c #7D715C",
-"Xo. c #5C564B",
-"Yo. c #676048",
-"Zo. c #524E43",
-"`o. c #5C5542",
-" p. c #5C5741",
-".p. c #7C8979",
-"+p. c #859382",
-"@p. c #8D9B88",
-"#p. c #656B61",
-"$p. c #768171",
-"%p. c #7A8674",
-"&p. c #919E88",
-"*p. c #949E8C",
-"=p. c #929A8C",
-"-p. c #909A8D",
-";p. c #959A94",
-">p. c #939C91",
-",p. c #939D93",
-"'p. c #939C94",
-")p. c #939A94",
-"!p. c #909690",
-"~p. c #8A918B",
-"{p. c #848C85",
-"]p. c #7F8780",
-"^p. c #7B827C",
-"/p. c #78807A",
-"(p. c #788079",
-"_p. c #7D817D",
-":p. c #7A827B",
-"<p. c #7C847E",
-"[p. c #7D867F",
-"}p. c #7F8880",
-"|p. c #868F87",
-"1p. c #889189",
-"2p. c #88938A",
-"3p. c #89928A",
-"4p. c #879088",
-"5p. c #7D857F",
-"6p. c #767F78",
-"7p. c #78827A",
-"8p. c #7B857E",
-"9p. c #7E8780",
-"0p. c #7F8881",
-"ap. c #7C8881",
-"bp. c #737E77",
-"cp. c #6F7A74",
-"dp. c #646D68",
-"ep. c #666E68",
-"fp. c #6A716A",
-"gp. c #626A62",
-"hp. c #5F675F",
-"ip. c #5E645E",
-"jp. c #61655F",
-"kp. c #646963",
-"lp. c #6A6F68",
-"mp. c #6C726B",
-"np. c #6E746D",
-"op. c #70746D",
-"pp. c #6E726C",
-"qp. c #6B6E69",
-"rp. c #686B66",
-"sp. c #646862",
-"tp. c #636660",
-"up. c #62655F",
-"vp. c #626660",
-"wp. c #646762",
-"xp. c #676A64",
-"yp. c #676B65",
-"zp. c #696C66",
-"Ap. c #696D66",
-"Bp. c #6A6E67",
-"Cp. c #7A7C74",
-"Dp. c #7A7E74",
-"Ep. c #82837E",
-"Fp. c #6C6D68",
-"Gp. c #6A6A66",
-"Hp. c #64635F",
-"Ip. c #676662",
-"Jp. c #6E6C67",
-"Kp. c #6B6764",
-"Lp. c #6F6B67",
-"Mp. c #776F6C",
-"Np. c #766E6C",
-"Op. c #6E6864",
-"Pp. c #6C6562",
-"Qp. c #6B6461",
-"Rp. c #706764",
-"Sp. c #726A67",
-"Tp. c #736B69",
-"Up. c #726968",
-"Vp. c #706665",
-"Wp. c #6E6563",
-"Xp. c #6D6462",
-"Yp. c #6E6361",
-"Zp. c #746461",
-"`p. c #796561",
-" q. c #7A6562",
-".q. c #776461",
-"+q. c #736260",
-"@q. c #6F605E",
-"#q. c #726160",
-"$q. c #736261",
-"%q. c #786565",
-"&q. c #816B6C",
-"*q. c #887072",
-"=q. c #8A7172",
-"-q. c #8D7374",
-";q. c #8E7475",
-">q. c #8F7476",
-",q. c #8F7576",
-"'q. c #826C6D",
-")q. c #806A6B",
-"!q. c #826B6C",
-"~q. c #826A6C",
-"{q. c #826A6B",
-"]q. c #826B6B",
-"^q. c #836C6C",
-"/q. c #866F6F",
-"(q. c #877070",
-"_q. c #8F7777",
-":q. c #927979",
-"<q. c #927978",
-"[q. c #8E7574",
-"}q. c #8B7270",
-"|q. c #836A69",
-"1q. c #876B69",
-"2q. c #896B69",
-"3q. c #836A67",
-"4q. c #7E6967",
-"5q. c #776564",
-"6q. c #796462",
-"7q. c #7B6563",
-"8q. c #7B6461",
-"9q. c #78615F",
-"0q. c #765F5D",
-"aq. c #725C5A",
-"bq. c #705B59",
-"cq. c #786563",
-"dq. c #56423E",
-"eq. c #5F4B46",
-"fq. c #66544A",
-"gq. c #736454",
-"hq. c #776958",
-"iq. c #786C58",
-"jq. c #746A53",
-"kq. c #595449",
-"lq. c #5C5340",
-"mq. c #696049",
-"nq. c #4E4A40",
-"oq. c #595340",
-"pq. c #5B5642",
-"qq. c #5E5946",
-"rq. c #94A28F",
-"sq. c #92A08E",
-"tq. c #5C635B",
-"uq. c #7B8878",
-"vq. c #849281",
-"wq. c #8C9A88",
-"xq. c #737F6E",
-"yq. c #788574",
-"zq. c #84917E",
-"Aq. c #8E9B87",
-"Bq. c #919F88",
-"Cq. c #949E8D",
-"Dq. c #90988B",
-"Eq. c #919A8B",
-"Fq. c #919A8D",
-"Gq. c #939B91",
-"Hq. c #939C93",
-"Iq. c #949C94",
-"Jq. c #959C96",
-"Kq. c #949B96",
-"Lq. c #929A92",
-"Mq. c #8F968F",
-"Nq. c #8C948D",
-"Oq. c #899089",
-"Pq. c #889088",
-"Qq. c #878F88",
-"Rq. c #868E87",
-"Sq. c #869087",
-"Tq. c #879087",
-"Uq. c #8A8F8B",
-"Vq. c #889089",
-"Wq. c #8A928B",
-"Xq. c #8A948C",
-"Yq. c #8B948C",
-"Zq. c #8D968E",
-"`q. c #8E978E",
-" r. c #8D978E",
-".r. c #8C968C",
-"+r. c #8A958C",
-"@r. c #8A928A",
-"#r. c #858D86",
-"$r. c #828A84",
-"%r. c #808882",
-"&r. c #7F8982",
-"*r. c #808982",
-"=r. c #808A82",
-"-r. c #7B867F",
-";r. c #78837C",
-">r. c #76807A",
-",r. c #727D76",
-"'r. c #6B7470",
-")r. c #6B746F",
-"!r. c #6C756E",
-"~r. c #6E766E",
-"{r. c #687169",
-"]r. c #686F68",
-"^r. c #697068",
-"/r. c #6B7069",
-"(r. c #6C706A",
-"_r. c #6B706A",
-":r. c #6E746C",
-"<r. c #70766E",
-"[r. c #71776F",
-"}r. c #737871",
-"|r. c #737770",
-"1r. c #72766F",
-"2r. c #6F746D",
-"3r. c #6E726B",
-"4r. c #70736D",
-"5r. c #71766F",
-"6r. c #727770",
-"7r. c #72776F",
-"8r. c #72766E",
-"9r. c #777B73",
-"0r. c #787D74",
-"ar. c #83847F",
-"br. c #6E6E68",
-"cr. c #6B6B67",
-"dr. c #716F6A",
-"er. c #736E6B",
-"fr. c #746E6C",
-"gr. c #746F6C",
-"hr. c #756F6C",
-"ir. c #746D6A",
-"jr. c #736B68",
-"kr. c #746B68",
-"lr. c #756C6A",
-"mr. c #776E6C",
-"nr. c #766D6B",
-"or. c #766C6A",
-"pr. c #766C6B",
-"qr. c #766B6A",
-"rr. c #766B69",
-"sr. c #776B6A",
-"tr. c #796C6B",
-"ur. c #7E6D6B",
-"vr. c #826E6A",
-"wr. c #846D69",
-"xr. c #806C69",
-"yr. c #7C6A69",
-"zr. c #7A6A68",
-"Ar. c #7B6968",
-"Br. c #7B6867",
-"Cr. c #7E6869",
-"Dr. c #80696B",
-"Er. c #836B6D",
-"Fr. c #886F70",
-"Gr. c #896F70",
-"Hr. c #8B7072",
-"Ir. c #8B7172",
-"Jr. c #8D7172",
-"Kr. c #8E7274",
-"Lr. c #907476",
-"Mr. c #8D7676",
-"Nr. c #8E7675",
-"Or. c #8C7372",
-"Pr. c #8B6B68",
-"Qr. c #866B67",
-"Rr. c #786462",
-"Sr. c #7C6665",
-"Tr. c #7D6764",
-"Ur. c #7C6664",
-"Vr. c #7B6663",
-"Wr. c #745F5D",
-"Xr. c #715D5A",
-"Yr. c #4E3632",
-"Zr. c #533E38",
-"`r. c #5A453F",
-" s. c #624E44",
-".s. c #675646",
-"+s. c #6C5C4B",
-"@s. c #70624E",
-"#s. c #6F644D",
-"$s. c #71654F",
-"%s. c #575248",
-"&s. c #5D5440",
-"*s. c #5B5340",
-"=s. c #645D46",
-"-s. c #4F4C41",
-";s. c #595341",
-">s. c #5E5A46",
-",s. c #93A08C",
-"'s. c #919F8A",
-")s. c #909F8A",
-"!s. c #5C635A",
-"~s. c #7B8876",
-"{s. c #838E7D",
-"]s. c #8A9784",
-"^s. c #8A9783",
-"/s. c #61685E",
-"(s. c #717E6C",
-"_s. c #788573",
-":s. c #90A088",
-"<s. c #90A186",
-"[s. c #91A088",
-"}s. c #909E89",
-"|s. c #939F90",
-"1s. c #90988D",
-"2s. c #90998F",
-"3s. c #909A90",
-"4s. c #959A95",
-"5s. c #929B92",
-"6s. c #949C93",
-"7s. c #949E95",
-"8s. c #959E96",
-"9s. c #969E96",
-"0s. c #919B92",
-"as. c #909990",
-"bs. c #909890",
-"cs. c #8F9890",
-"ds. c #8E9890",
-"es. c #8E988F",
-"fs. c #929792",
-"gs. c #919A92",
-"hs. c #909A91",
-"is. c #909991",
-"js. c #8C968D",
-"ks. c #88918A",
-"ls. c #869088",
-"ms. c #848E86",
-"ns. c #828C84",
-"os. c #808A84",
-"ps. c #7B857F",
-"qs. c #78827B",
-"rs. c #737E78",
-"ss. c #717C76",
-"ts. c #6F7974",
-"us. c #707971",
-"vs. c #70766F",
-"ws. c #727670",
-"xs. c #747871",
-"ys. c #747970",
-"zs. c #757970",
-"As. c #757971",
-"Bs. c #737670",
-"Cs. c #757871",
-"Ds. c #767972",
-"Es. c #787C75",
-"Fs. c #787C74",
-"Gs. c #787D73",
-"Hs. c #797D74",
-"Is. c #7A7E75",
-"Js. c #7B7F77",
-"Ks. c #7A7B74",
-"Ls. c #83827E",
-"Ms. c #6F6E68",
-"Ns. c #6F6D68",
-"Os. c #726E69",
-"Ps. c #716C69",
-"Qs. c #736E69",
-"Rs. c #756E6A",
-"Ss. c #756D6A",
-"Ts. c #746D69",
-"Us. c #746C69",
-"Vs. c #766D6A",
-"Ws. c #776E6A",
-"Xs. c #786E6C",
-"Ys. c #796F6D",
-"Zs. c #796F6E",
-"`s. c #7A6F70",
-" t. c #7C7070",
-".t. c #7D7171",
-"+t. c #7C6E6F",
-"@t. c #7C6E6E",
-"#t. c #7D6E6F",
-"$t. c #7E6E6F",
-"%t. c #7E6F70",
-"&t. c #816F6F",
-"*t. c #86706F",
-"=t. c #8D706E",
-"-t. c #896F6E",
-";t. c #806D6E",
-">t. c #7F6C6E",
-",t. c #7E6A6C",
-"'t. c #7F6A6C",
-")t. c #81696B",
-"!t. c #846A6D",
-"~t. c #866B6E",
-"{t. c #886C6E",
-"]t. c #886C6F",
-"^t. c #896C6F",
-"/t. c #8A6E70",
-"(t. c #8C7072",
-"_t. c #8E7173",
-":t. c #8F7375",
-"<t. c #917677",
-"[t. c #92787A",
-"}t. c #927779",
-"|t. c #94797B",
-"1t. c #947B7C",
-"2t. c #95797A",
-"3t. c #917877",
-"4t. c #8F7675",
-"5t. c #8A7170",
-"6t. c #886B68",
-"7t. c #7D6967",
-"8t. c #766464",
-"9t. c #8A7776",
-"0t. c #786362",
-"at. c #7B6664",
-"bt. c #7D6765",
-"ct. c #7D6866",
-"dt. c #796662",
-"et. c #786461",
-"ft. c #76615F",
-"gt. c #513934",
-"ht. c #503733",
-"it. c #523A38",
-"jt. c #5A4040",
-"kt. c #604746",
-"lt. c #644C4B",
-"mt. c #685250",
-"nt. c #6A5850",
-"ot. c #6A5A4D",
-"pt. c #534B44",
-"qt. c #605644",
-"rt. c #615742",
-"st. c #625A3E",
-"tt. c #504C3D",
-"ut. c #585240",
-"vt. c #585342",
-"wt. c #5E5846",
-"xt. c #8F9E89",
-"yt. c #8E9D88",
-"zt. c #5B6259",
-"At. c #798574",
-"Bt. c #808D7B",
-"Ct. c #879482",
-"Dt. c #60675D",
-"Et. c #727D6C",
-"Ft. c #8E9E86",
-"Gt. c #8FA086",
-"Ht. c #8C9C88",
-"It. c #929E90",
-"Jt. c #90988E",
-"Kt. c #979E96",
-"Lt. c #949D95",
-"Mt. c #939B93",
-"Nt. c #919A91",
-"Ot. c #949994",
-"Pt. c #909A92",
-"Qt. c #88928A",
-"Rt. c #87908A",
-"St. c #848F86",
-"Tt. c #838E86",
-"Ut. c #818B84",
-"Vt. c #808A83",
-"Wt. c #7C8780",
-"Xt. c #768079",
-"Yt. c #707B76",
-"Zt. c #6F7A75",
-"`t. c #6F7973",
-" u. c #6F7972",
-".u. c #6F7871",
-"+u. c #707872",
-"@u. c #717870",
-"#u. c #6F7870",
-"$u. c #727871",
-"%u. c #767A71",
-"&u. c #757972",
-"*u. c #787B75",
-"=u. c #797C75",
-"-u. c #797D75",
-";u. c #787B73",
-">u. c #797C74",
-",u. c #7B7D75",
-"'u. c #797B73",
-")u. c #787972",
-"!u. c #82827D",
-"~u. c #6E6D69",
-"{u. c #706C67",
-"]u. c #706B67",
-"^u. c #726D69",
-"/u. c #736D69",
-"(u. c #716A66",
-"_u. c #726B67",
-":u. c #726B66",
-"<u. c #736B66",
-"[u. c #746B67",
-"}u. c #766C69",
-"|u. c #776C6A",
-"1u. c #776E6B",
-"2u. c #786E6D",
-"3u. c #7A6E6F",
-"4u. c #7A6E6E",
-"5u. c #7B6E6F",
-"6u. c #7C6E70",
-"7u. c #7D6D6F",
-"8u. c #7E6E6E",
-"9u. c #7F6E6E",
-"0u. c #8F716F",
-"au. c #8D706F",
-"bu. c #806B6C",
-"cu. c #7F6A6B",
-"du. c #7F686A",
-"eu. c #80686A",
-"fu. c #81686A",
-"gu. c #81676A",
-"hu. c #82686A",
-"iu. c #83686A",
-"ju. c #84686B",
-"ku. c #84686A",
-"lu. c #86696A",
-"mu. c #876A6C",
-"nu. c #8A6C6E",
-"ou. c #8B6E6E",
-"pu. c #8C6E70",
-"qu. c #8D6F71",
-"ru. c #8E7072",
-"su. c #917576",
-"tu. c #927476",
-"uu. c #927677",
-"vu. c #947778",
-"wu. c #947779",
-"xu. c #96797A",
-"yu. c #947777",
-"zu. c #927776",
-"Au. c #8D7573",
-"Bu. c #8D7574",
-"Cu. c #866F6E",
-"Du. c #8B6C69",
-"Eu. c #8E6D69",
-"Fu. c #866B68",
-"Gu. c #7A6766",
-"Hu. c #766463",
-"Iu. c #7A6563",
-"Ju. c #7F6966",
-"Ku. c #7D6966",
-"Lu. c #7B6764",
-"Mu. c #796562",
-"Nu. c #776361",
-"Ou. c #7B6765",
-"Pu. c #563E3B",
-"Qu. c #563E3A",
-"Ru. c #543A37",
-"Su. c #563C39",
-"Tu. c #594140",
-"Uu. c #5E4846",
-"Vu. c #604D48",
-"Wu. c #635448",
-"Xu. c #504842",
-"Yu. c #5A4F40",
-"Zu. c #5A503E",
-"`u. c #5C5338",
-" v. c #5E563C",
-".v. c #4D4A3C",
-"+v. c #544D3E",
-"@v. c #575241",
-"#v. c #5C5645",
-"$v. c #5A6058",
-"%v. c #768272",
-"&v. c #7C8A77",
-"*v. c #83907D",
-"=v. c #5F665C",
-"-v. c #727F6E",
-";v. c #788674",
-">v. c #84917F",
-",v. c #8D9B87",
-"'v. c #8E9E88",
-")v. c #8EA088",
-"!v. c #8FA088",
-"~v. c #8E9E89",
-"{v. c #8A9B88",
-"]v. c #919E90",
-"^v. c #929C92",
-"/v. c #959E95",
-"(v. c #8D988F",
-"_v. c #8C968E",
-":v. c #8B958C",
-"<v. c #858F87",
-"[v. c #7D8680",
-"}v. c #79847D",
-"|v. c #727C77",
-"1v. c #6D7871",
-"2v. c #6E7870",
-"3v. c #717770",
-"4v. c #787A72",
-"5v. c #787A73",
-"6v. c #777870",
-"7v. c #767670",
-"8v. c #81807C",
-"9v. c #706966",
-"0v. c #716966",
-"av. c #726966",
-"bv. c #746A66",
-"cv. c #746A68",
-"dv. c #776D6C",
-"ev. c #776C6C",
-"fv. c #766B6B",
-"gv. c #786B6C",
-"hv. c #796C6C",
-"iv. c #7A6C6E",
-"jv. c #7A6D6D",
-"kv. c #7A6B6C",
-"lv. c #7B6B6C",
-"mv. c #7C6B6C",
-"nv. c #806C6C",
-"ov. c #856D6D",
-"pv. c #8A6F6E",
-"qv. c #8E6F6D",
-"rv. c #896C6C",
-"sv. c #856B6B",
-"tv. c #7C6669",
-"uv. c #7D6668",
-"vv. c #7E6668",
-"wv. c #7F6568",
-"xv. c #806568",
-"yv. c #806468",
-"zv. c #816669",
-"Av. c #826568",
-"Bv. c #836669",
-"Cv. c #85696A",
-"Dv. c #876B6C",
-"Ev. c #886C6D",
-"Fv. c #8A6E6F",
-"Gv. c #8C6F70",
-"Hv. c #8D7071",
-"Iv. c #8D7072",
-"Jv. c #8F7374",
-"Kv. c #907475",
-"Lv. c #927577",
-"Mv. c #937676",
-"Nv. c #937776",
-"Ov. c #917575",
-"Pv. c #8A7171",
-"Qv. c #87706E",
-"Rv. c #8A6D6A",
-"Sv. c #8E6E6A",
-"Tv. c #886C69",
-"Uv. c #7E6867",
-"Vv. c #7E6966",
-"Wv. c #7B6865",
-"Xv. c #7C6966",
-"Yv. c #59413D",
-"Zv. c #5A403E",
-"`v. c #58413A",
-" w. c #563C38",
-".w. c #56403D",
-"+w. c #594440",
-"@w. c #5C4A3F",
-"#w. c #4C443E",
-"$w. c #564E3A",
-"%w. c #585037",
-"&w. c #584E38",
-"*w. c #49443A",
-"=w. c #4F4A38",
-"-w. c #575341",
-";w. c #8C9A87",
-">w. c #8D9A87",
-",w. c #596057",
-"'w. c #748070",
-")w. c #7A8774",
-"!w. c #7F8E7B",
-"~w. c #818F7C",
-"{w. c #5E665C",
-"]w. c #737E6E",
-"^w. c #798674",
-"/w. c #8DA087",
-"(w. c #8EA089",
-"_w. c #8C9D8A",
-":w. c #889A88",
-"<w. c #8F9D8E",
-"[w. c #8E978D",
-"}w. c #8F988F",
-"|w. c #939D94",
-"1w. c #8F9990",
-"2w. c #868F88",
-"3w. c #838D86",
-"4w. c #838C85",
-"5w. c #828D85",
-"6w. c #818B83",
-"7w. c #7F8882",
-"8w. c #7C867F",
-"9w. c #79847C",
-"0w. c #78837B",
-"aw. c #747F77",
-"bw. c #6F7873",
-"cw. c #6C7771",
-"dw. c #6C7770",
-"ew. c #6D7770",
-"fw. c #6E7770",
-"gw. c #727971",
-"hw. c #70776F",
-"iw. c #747972",
-"jw. c #737771",
-"kw. c #767970",
-"lw. c #767A70",
-"mw. c #777A71",
-"nw. c #75766F",
-"ow. c #74756D",
-"pw. c #807F7A",
-"qw. c #6E6D68",
-"rw. c #6D6964",
-"sw. c #6D6864",
-"tw. c #6D6764",
-"uw. c #6E6764",
-"vw. c #6F6764",
-"ww. c #716764",
-"xw. c #746A69",
-"yw. c #746A6A",
-"zw. c #746969",
-"Aw. c #756A6A",
-"Bw. c #766A6A",
-"Cw. c #766A6B",
-"Dw. c #786A6A",
-"Ew. c #78696A",
-"Fw. c #79696A",
-"Gw. c #7A6A6A",
-"Hw. c #7A696A",
-"Iw. c #7B6A6A",
-"Jw. c #806B6B",
-"Kw. c #8C6C6A",
-"Lw. c #866A69",
-"Mw. c #7C6567",
-"Nw. c #7B6467",
-"Ow. c #7B6466",
-"Pw. c #7D6469",
-"Qw. c #7F656A",
-"Rw. c #7F646A",
-"Sw. c #80656A",
-"Tw. c #82666A",
-"Uw. c #82676A",
-"Vw. c #856A6C",
-"Ww. c #866A6C",
-"Xw. c #876B6D",
-"Yw. c #8B6E70",
-"Zw. c #937678",
-"`w. c #937777",
-" x. c #897070",
-".x. c #897271",
-"+x. c #887170",
-"@x. c #8A6E6C",
-"#x. c #8E6F6B",
-"$x. c #906E6B",
-"%x. c #8B6D6A",
-"&x. c #7C6967",
-"*x. c #766563",
-"=x. c #7C6765",
-"-x. c #786663",
-";x. c #5A423F",
-">x. c #5B4240",
-",x. c #5B4340",
-"'x. c #5C4440",
-")x. c #5A443E",
-"!x. c #583F3A",
-"~x. c #533C37",
-"{x. c #513C38",
-"]x. c #524037",
-"^x. c #4C4032",
-"/x. c #514637",
-"(x. c #544A39",
-"_x. c #554C38",
-":x. c #48433A",
-"<x. c #4A4433",
-"[x. c #4F4B37",
-"}x. c #595543",
-"|x. c #8B9986",
-"1x. c #8A9885",
-"2x. c #899884",
-"3x. c #707D6C",
-"4x. c #768472",
-"5x. c #7E8C79",
-"6x. c #808E7B",
-"7x. c #5E655B",
-"8x. c #737F6F",
-"9x. c #798675",
-"0x. c #83917F",
-"ax. c #8B9A87",
-"bx. c #8C9E88",
-"cx. c #8C9D89",
-"dx. c #8A9C8A",
-"ex. c #889988",
-"fx. c #8E9C90",
-"gx. c #8F998F",
-"hx. c #8C958C",
-"ix. c #87918A",
-"jx. c #828B83",
-"kx. c #7D8780",
-"lx. c #747E77",
-"mx. c #727C76",
-"nx. c #6B7770",
-"ox. c #6B7670",
-"px. c #6B766F",
-"qx. c #6C766F",
-"rx. c #6C766E",
-"sx. c #6D776F",
-"tx. c #6F786F",
-"ux. c #737972",
-"vx. c #6F756E",
-"wx. c #73786E",
-"xx. c #75796F",
-"yx. c #777971",
-"zx. c #75766E",
-"Ax. c #72746C",
-"Bx. c #7F7E7A",
-"Cx. c #6D6A66",
-"Dx. c #6C6864",
-"Ex. c #6C6763",
-"Fx. c #6C6762",
-"Gx. c #6C6663",
-"Hx. c #716865",
-"Ix. c #726865",
-"Jx. c #716864",
-"Kx. c #706766",
-"Lx. c #726866",
-"Mx. c #736868",
-"Nx. c #736869",
-"Ox. c #746868",
-"Px. c #756869",
-"Qx. c #766869",
-"Rx. c #786769",
-"Sx. c #786869",
-"Tx. c #796869",
-"Ux. c #7A686A",
-"Vx. c #7B6869",
-"Wx. c #8A6A69",
-"Xx. c #896969",
-"Yx. c #846667",
-"Zx. c #7E6466",
-"`x. c #7A6366",
-" y. c #7B6468",
-".y. c #7B6469",
-"+y. c #7C6469",
-"@y. c #7E6469",
-"#y. c #81666B",
-"$y. c #846A6E",
-"%y. c #856B6D",
-"&y. c #866B6C",
-"*y. c #876C6E",
-"=y. c #896D6F",
-"-y. c #87706F",
-";y. c #86706E",
-">y. c #866F6D",
-",y. c #8D706C",
-"'y. c #91706C",
-")y. c #8E6F6C",
-"!y. c #886D6B",
-"~y. c #7E6A69",
-"{y. c #7C6968",
-"]y. c #7B6967",
-"^y. c #796766",
-"/y. c #756564",
-"(y. c #897876",
-"_y. c #786562",
-":y. c #7D6C68",
-"<y. c #5C4340",
-"[y. c #5C4341",
-"}y. c #5E4542",
-"|y. c #5E4644",
-"1y. c #5B443E",
-"2y. c #58403B",
-"3y. c #4E3A34",
-"4y. c #443B38",
-"5y. c #44382E",
-"6y. c #4C4133",
-"7y. c #514838",
-"8y. c #504836",
-"9y. c #464238",
-"0y. c #45402E",
-"ay. c #4B4533",
-"by. c #534E3A",
-"cy. c #889784",
-"dy. c #889682",
-"ey. c #575E55",
-"fy. c #6F7C6B",
-"gy. c #758270",
-"hy. c #7B8A77",
-"iy. c #7E8C78",
-"jy. c #5D645B",
-"ky. c #727E6D",
-"ly. c #778472",
-"my. c #899784",
-"ny. c #899885",
-"oy. c #889886",
-"py. c #889888",
-"qy. c #879788",
-"ry. c #8E9A8F",
-"sy. c #8B958D",
-"ty. c #8C968F",
-"uy. c #8E978F",
-"vy. c #949894",
-"wy. c #90988F",
-"xy. c #8D978F",
-"yy. c #8D988E",
-"zy. c #8C978E",
-"Ay. c #8A938B",
-"By. c #828C85",
-"Cy. c #7A847D",
-"Dy. c #6F7872",
-"Ey. c #6A746E",
-"Fy. c #69746E",
-"Gy. c #69736E",
-"Hy. c #6B746E",
-"Iy. c #6E776F",
-"Jy. c #6F756C",
-"Ky. c #6F756D",
-"Ly. c #71756E",
-"My. c #75786F",
-"Ny. c #75796E",
-"Oy. c #75786E",
-"Py. c #76786F",
-"Qy. c #76776E",
-"Ry. c #74766D",
-"Sy. c #74746D",
-"Ty. c #74746C",
-"Uy. c #6C6A65",
-"Vy. c #6C6B65",
-"Wy. c #6C6A64",
-"Xy. c #6C6863",
-"Yy. c #6B6662",
-"Zy. c #6C6563",
-"`y. c #6D6563",
-" z. c #6F6663",
-".z. c #6D6461",
-"+z. c #716667",
-"@z. c #716566",
-"#z. c #726666",
-"$z. c #756667",
-"%z. c #766668",
-"&z. c #766768",
-"*z. c #776668",
-"=z. c #776667",
-"-z. c #786667",
-";z. c #786668",
-">z. c #806667",
-",z. c #866869",
-"'z. c #8A696A",
-")z. c #86686A",
-"!z. c #826669",
-"~z. c #7D666C",
-"{z. c #7A666C",
-"]z. c #7A656C",
-"^z. c #7B656B",
-"/z. c #7C646A",
-"(z. c #7E6468",
-"_z. c #7F6569",
-":z. c #81676C",
-"<z. c #82686D",
-"[z. c #856B6E",
-"}z. c #886D6F",
-"|z. c #896E6F",
-"1z. c #8B7071",
-"2z. c #8E7573",
-"3z. c #897170",
-"4z. c #856F6E",
-"5z. c #896F6D",
-"6z. c #90716D",
-"7z. c #90706C",
-"8z. c #8B6F6C",
-"9z. c #806B6A",
-"0z. c #7D6A69",
-"az. c #8A7877",
-"bz. c #7D6865",
-"cz. c #7C6A68",
-"dz. c #5D4442",
-"ez. c #5E4643",
-"fz. c #604744",
-"gz. c #5F4744",
-"hz. c #5D4743",
-"iz. c #5C4642",
-"jz. c #5A433E",
-"kz. c #58403C",
-"lz. c #563D38",
-"mz. c #463B38",
-"nz. c #3F342D",
-"oz. c #43382E",
-"pz. c #4B4335",
-"qz. c #504738",
-"rz. c #444038",
-"sz. c #403B29",
-"tz. c #45402D",
-"uz. c #4C4834",
-"vz. c #889683",
-"wz. c #869581",
-"xz. c #869480",
-"yz. c #565C54",
-"zz. c #6E7B6A",
-"Az. c #748270",
-"Bz. c #7B8A76",
-"Cz. c #5D645A",
-"Dz. c #6E7A6B",
-"Ez. c #748170",
-"Fz. c #7F8D7A",
-"Gz. c #879581",
-"Hz. c #869684",
-"Iz. c #869685",
-"Jz. c #869686",
-"Kz. c #859485",
-"Lz. c #839385",
-"Mz. c #88968C",
-"Nz. c #8F9892",
-"Oz. c #919A93",
-"Pz. c #979E97",
-"Qz. c #969F96",
-"Rz. c #96A097",
-"Sz. c #949E94",
-"Tz. c #929C93",
-"Uz. c #969C96",
-"Vz. c #929A93",
-"Wz. c #879188",
-"Xz. c #828C86",
-"Yz. c #7C867E",
-"Zz. c #737D77",
-"`z. c #707C75",
-" A. c #717B74",
-".A. c #727C74",
-"+A. c #747B72",
-"@A. c #747A72",
-"#A. c #737A71",
-"$A. c #737970",
-"%A. c #767B72",
-"&A. c #7A7E73",
-"*A. c #797D72",
-"=A. c #7B7E75",
-"-A. c #7B7E74",
-";A. c #7C7E75",
-">A. c #7E7E76",
-",A. c #7A7B73",
-"'A. c #82827E",
-")A. c #706F6A",
-"!A. c #73706C",
-"~A. c #716F69",
-"{A. c #706D68",
-"]A. c #706B66",
-"^A. c #716A68",
-"/A. c #736A6A",
-"(A. c #746C6B",
-"_A. c #736A67",
-":A. c #736966",
-"<A. c #736A68",
-"[A. c #736A69",
-"}A. c #746B6A",
-"|A. c #766A6C",
-"1A. c #776A6C",
-"2A. c #786A6B",
-"3A. c #786A6C",
-"4A. c #796A6B",
-"5A. c #7A6A6C",
-"6A. c #7A6A6B",
-"7A. c #7B6A6B",
-"8A. c #7B696B",
-"9A. c #7C6A6C",
-"0A. c #816B6F",
-"aA. c #866E70",
-"bA. c #8E6F71",
-"cA. c #8C6F73",
-"dA. c #876E74",
-"eA. c #826C72",
-"fA. c #7F6B72",
-"gA. c #806C73",
-"hA. c #806B72",
-"iA. c #816A71",
-"jA. c #826B71",
-"kA. c #856C71",
-"lA. c #866C71",
-"mA. c #876D72",
-"nA. c #886E73",
-"oA. c #896E74",
-"pA. c #8A7074",
-"qA. c #8B7074",
-"rA. c #8C7172",
-"sA. c #8D7274",
-"tA. c #957A7B",
-"uA. c #977E7E",
-"vA. c #967C7C",
-"wA. c #987D7C",
-"xA. c #967B7A",
-"yA. c #977E7C",
-"zA. c #957C7C",
-"AA. c #927A79",
-"BA. c #8F7876",
-"CA. c #8E7776",
-"DA. c #8C7574",
-"EA. c #8B7574",
-"FA. c #8C7674",
-"GA. c #927674",
-"HA. c #967774",
-"IA. c #977774",
-"JA. c #927673",
-"KA. c #8D7572",
-"LA. c #887472",
-"MA. c #867472",
-"NA. c #857270",
-"OA. c #847170",
-"PA. c #827170",
-"QA. c #82706F",
-"RA. c #816F6E",
-"SA. c #806F6D",
-"TA. c #7F6E6C",
-"UA. c #7E6E6C",
-"VA. c #7D6D6B",
-"WA. c #7C6C6A",
-"XA. c #907F7E",
-"YA. c #7F6C6A",
-"ZA. c #826E6C",
-"`A. c #826F6C",
-" B. c #836E6C",
-".B. c #836F6C",
-"+B. c #816E6C",
-"@B. c #806D6B",
-"#B. c #7A6765",
-"$B. c #5C4441",
-"%B. c #604844",
-"&B. c #604946",
-"*B. c #604945",
-"=B. c #5E4844",
-"-B. c #5C4542",
-";B. c #58423A",
-">B. c #483C3A",
-",B. c #3D2F2C",
-"'B. c #3E332E",
-")B. c #3E3828",
-"!B. c #403C2A",
-"~B. c #47422E",
-"{B. c #83927E",
-"]B. c #81907C",
-"^B. c #6C7969",
-"/B. c #73806F",
-"(B. c #7B8976",
-"_B. c #6C7869",
-":B. c #7D8B78",
-"<B. c #869582",
-"[B. c #859585",
-"}B. c #849484",
-"|B. c #829384",
-"1B. c #808E85",
-"2B. c #808D85",
-"3B. c #7F8E83",
-"4B. c #798479",
-"5B. c #748176",
-"6B. c #727E74",
-"7B. c #748175",
-"8B. c #747F75",
-"9B. c #737E74",
-"0B. c #6F7C71",
-"aB. c #6D7A70",
-"bB. c #606F65",
-"cB. c #5D6B62",
-"dB. c #5E6A61",
-"eB. c #5E6B62",
-"fB. c #5D6A60",
-"gB. c #5A675E",
-"hB. c #58665C",
-"iB. c #55635A",
-"jB. c #526058",
-"kB. c #505E54",
-"lB. c #4E5C52",
-"mB. c #4C5B51",
-"nB. c #4A5950",
-"oB. c #49584F",
-"pB. c #48574E",
-"qB. c #49574F",
-"rB. c #47564D",
-"sB. c #46544C",
-"tB. c #45544C",
-"uB. c #45534C",
-"vB. c #48544C",
-"wB. c #48554B",
-"xB. c #49564B",
-"yB. c #4A554B",
-"zB. c #4A554A",
-"AB. c #4B554A",
-"BB. c #4C544A",
-"CB. c #4C574B",
-"DB. c #4E564C",
-"EB. c #4E554B",
-"FB. c #4E554A",
-"GB. c #4E544B",
-"HB. c #4E554C",
-"IB. c #4C5248",
-"JB. c #4B5248",
-"KB. c #4C5349",
-"LB. c #4C5249",
-"MB. c #4E534A",
-"NB. c #4F554B",
-"OB. c #50564C",
-"PB. c #50554C",
-"QB. c #50574C",
-"RB. c #50584C",
-"SB. c #52584C",
-"TB. c #52594C",
-"UB. c #525A4C",
-"VB. c #525A4D",
-"WB. c #545A4C",
-"XB. c #545B4B",
-"YB. c #525A4A",
-"ZB. c #545A4A",
-"`B. c #545A4B",
-" C. c #565B4C",
-".C. c #565B4D",
-"+C. c #565B4F",
-"@C. c #575C50",
-"#C. c #575A4E",
-"$C. c #54564C",
-"%C. c #515248",
-"&C. c #4F5047",
-"*C. c #4E4F46",
-"=C. c #4A4842",
-"-C. c #494841",
-";C. c #48473F",
-">C. c #48463F",
-",C. c #48463E",
-"'C. c #48453E",
-")C. c #48443E",
-"!C. c #48433E",
-"~C. c #48433D",
-"{C. c #48423C",
-"]C. c #48413C",
-"^C. c #46413B",
-"/C. c #47403C",
-"(C. c #483F3E",
-"_C. c #4B4240",
-":C. c #4C4342",
-"<C. c #4C4240",
-"[C. c #4B403E",
-"}C. c #4B403D",
-"|C. c #4B403C",
-"1C. c #4B3F3B",
-"2C. c #4A3F3C",
-"3C. c #4C403F",
-"4C. c #4C403E",
-"5C. c #4B3F3D",
-"6C. c #4C3E3E",
-"7C. c #4C3E3F",
-"8C. c #4D3F40",
-"9C. c #4D4040",
-"0C. c #4E4040",
-"aC. c #514042",
-"bC. c #514041",
-"cC. c #524041",
-"dC. c #524042",
-"eC. c #534042",
-"fC. c #544041",
-"gC. c #554042",
-"hC. c #564143",
-"iC. c #564246",
-"jC. c #564248",
-"kC. c #5A4348",
-"lC. c #5F4448",
-"mC. c #674549",
-"nC. c #6E484C",
-"oC. c #72484F",
-"pC. c #6C474E",
-"qC. c #66464D",
-"rC. c #60444D",
-"sC. c #5C424C",
-"tC. c #5D414B",
-"uC. c #5F424B",
-"vC. c #60444E",
-"wC. c #624650",
-"xC. c #64454D",
-"yC. c #65444B",
-"zC. c #66444B",
-"AC. c #67464D",
-"BC. c #69484E",
-"CC. c #6B484F",
-"DC. c #6B484C",
-"EC. c #6C494C",
-"FC. c #6F4C4F",
-"GC. c #704E50",
-"HC. c #725051",
-"IC. c #745253",
-"JC. c #765455",
-"KC. c #745154",
-"LC. c #765255",
-"MC. c #775556",
-"NC. c #775456",
-"OC. c #785656",
-"PC. c #785758",
-"QC. c #785658",
-"RC. c #795758",
-"SC. c #7A5A5C",
-"TC. c #795859",
-"UC. c #795656",
-"VC. c #7A5858",
-"WC. c #795857",
-"XC. c #7A5958",
-"YC. c #7C5B5A",
-"ZC. c #7A5A59",
-"`C. c #7A5A5A",
-" D. c #7C5C5A",
-".D. c #7C5C5C",
-"+D. c #7C5C5B",
-"@D. c #7A5C5A",
-"#D. c #7A5C5B",
-"$D. c #7A5C5C",
-"%D. c #7A5D5C",
-"&D. c #795A59",
-"*D. c #785A59",
-"=D. c #775857",
-"-D. c #765756",
-";D. c #755756",
-">D. c #745655",
-",D. c #725554",
-"'D. c #725452",
-")D. c #705352",
-"!D. c #705251",
-"~D. c #6E5150",
-"{D. c #6D5050",
-"]D. c #6E504F",
-"^D. c #715250",
-"/D. c #775450",
-"(D. c #7A544F",
-"_D. c #7C5450",
-":D. c #78524F",
-"<D. c #72524F",
-"[D. c #6C504E",
-"}D. c #664F4D",
-"|D. c #654D4C",
-"1D. c #654E4C",
-"2D. c #644E4C",
-"3D. c #634C4A",
-"4D. c #604A48",
-"5D. c #5F4A48",
-"6D. c #5E4948",
-"7D. c #5E4847",
-"8D. c #5C4846",
-"9D. c #5A4744",
-"0D. c #594643",
-"aD. c #735F5C",
-"bD. c #614846",
-"cD. c #634A47",
-"dD. c #644B47",
-"eD. c #644C48",
-"fD. c #644A47",
-"gD. c #614946",
-"hD. c #5E4744",
-"iD. c #5D4541",
-"jD. c #5A413F",
-"kD. c #5D4542",
-"lD. c #5F4844",
-"mD. c #5F4845",
-"nD. c #5D4744",
-"oD. c #5B463F",
-"pD. c #58443C",
-"qD. c #483D3A",
-"rD. c #402E30",
-"sD. c #3D302E",
-"tD. c #42372F",
-"uD. c #493E33",
-"vD. c #433E36",
-"wD. c #3C362B",
-"xD. c #3E382C",
-"yD. c #423C2E",
-"zD. c #7F8E7A",
-"AD. c #6B7866",
-"BD. c #72806E",
-"CD. c #7C8A73",
-"DD. c #7E8D73",
-"ED. c #5C6457",
-"FD. c #6C7867",
-"GD. c #707D6D",
-"HD. c #798776",
-"ID. c #81907F",
-"JD. c #829282",
-"KD. c #818E83",
-"LD. c #7F8D81",
-"MD. c #818D81",
-"ND. c #828C81",
-"OD. c #818B80",
-"PD. c #768176",
-"QD. c #798277",
-"RD. c #798377",
-"SD. c #778177",
-"TD. c #717C71",
-"UD. c #6F7A70",
-"VD. c #6D776E",
-"WD. c #667167",
-"XD. c #636F65",
-"YD. c #616D64",
-"ZD. c #626C64",
-"`D. c #606B62",
-" E. c #5D695E",
-".E. c #5A655C",
-"+E. c #58645B",
-"@E. c #56625A",
-"#E. c #546057",
-"$E. c #525E54",
-"%E. c #505C53",
-"&E. c #4E5B53",
-"*E. c #4E5951",
-"=E. c #4E5852",
-"-E. c #4C5850",
-";E. c #4A564F",
-">E. c #49554D",
-",E. c #44514A",
-"'E. c #435149",
-")E. c #46534B",
-"!E. c #4A544E",
-"~E. c #4C564E",
-"{E. c #4E564E",
-"]E. c #4F554C",
-"^E. c #50574E",
-"/E. c #525A4E",
-"(E. c #52594E",
-"_E. c #51584E",
-":E. c #52584E",
-"<E. c #4E544C",
-"[E. c #50544C",
-"}E. c #53554E",
-"|E. c #54564E",
-"1E. c #54594E",
-"2E. c #55594F",
-"3E. c #555950",
-"4E. c #565A4D",
-"5E. c #565C48",
-"6E. c #555A48",
-"7E. c #555A4A",
-"8E. c #575C4E",
-"9E. c #595C4F",
-"0E. c #585C4E",
-"aE. c #565B4E",
-"bE. c #565A4E",
-"cE. c #575B4E",
-"dE. c #585B4F",
-"eE. c #595C50",
-"fE. c #5A5C52",
-"gE. c #5E5F55",
-"hE. c #575950",
-"iE. c #585A50",
-"jE. c #57584D",
-"kE. c #56584D",
-"lE. c #525449",
-"mE. c #63635C",
-"nE. c #484740",
-"oE. c #4B4742",
-"pE. c #4C4742",
-"qE. c #4B4741",
-"rE. c #4B4642",
-"sE. c #4B4542",
-"tE. c #4A4441",
-"uE. c #4A4340",
-"vE. c #4A4240",
-"wE. c #49423F",
-"xE. c #4A423E",
-"yE. c #4C433E",
-"zE. c #4E4440",
-"AE. c #4C423F",
-"BE. c #4C423D",
-"CE. c #4C423E",
-"DE. c #4D423C",
-"EE. c #4E413C",
-"FE. c #4E413D",
-"GE. c #4E4240",
-"HE. c #4D4140",
-"IE. c #4D403E",
-"JE. c #4E403E",
-"KE. c #4E3F3E",
-"LE. c #4F4040",
-"ME. c #514141",
-"NE. c #514240",
-"OE. c #524242",
-"PE. c #544242",
-"QE. c #544143",
-"RE. c #564245",
-"SE. c #574245",
-"TE. c #574244",
-"UE. c #584448",
-"VE. c #58464C",
-"WE. c #59464C",
-"XE. c #5A464C",
-"YE. c #5A454C",
-"ZE. c #5C454B",
-"`E. c #65474D",
-" F. c #6E4C53",
-".F. c #754C53",
-"+F. c #774D54",
-"@F. c #724C53",
-"#F. c #6B4851",
-"$F. c #64464F",
-"%F. c #61454F",
-"&F. c #624550",
-"*F. c #644752",
-"=F. c #634650",
-"-F. c #66474F",
-";F. c #68464D",
-">F. c #6A474E",
-",F. c #6C474F",
-"'F. c #6E4A50",
-")F. c #6F4B4E",
-"!F. c #704C4E",
-"~F. c #714E50",
-"{F. c #734F52",
-"]F. c #755154",
-"^F. c #765456",
-"/F. c #775455",
-"(F. c #785456",
-"_F. c #7A5658",
-":F. c #795558",
-"<F. c #7C575A",
-"[F. c #7C585A",
-"}F. c #7D5A5B",
-"|F. c #7E5C5E",
-"1F. c #7D5A5C",
-"2F. c #7C5959",
-"3F. c #7E5A5A",
-"4F. c #7F5E5D",
-"5F. c #805F5E",
-"6F. c #7F5F5D",
-"7F. c #80605E",
-"8F. c #816260",
-"9F. c #80605F",
-"0F. c #7F605F",
-"aF. c #806260",
-"bF. c #7E605E",
-"cF. c #7D5F5D",
-"dF. c #7C5E5C",
-"eF. c #7C5D5B",
-"fF. c #795B5A",
-"gF. c #785B5A",
-"hF. c #775957",
-"iF. c #765857",
-"jF. c #735654",
-"kF. c #7C5855",
-"lF. c #805A56",
-"mF. c #845C57",
-"nF. c #7E5954",
-"oF. c #775754",
-"pF. c #715554",
-"qF. c #6C5553",
-"rF. c #6B5552",
-"sF. c #6A5452",
-"tF. c #695452",
-"uF. c #685350",
-"vF. c #65514E",
-"wF. c #644F4E",
-"xF. c #634E4C",
-"yF. c #634E4B",
-"zF. c #614D4B",
-"AF. c #604C4A",
-"BF. c #5E4C48",
-"CF. c #7A6762",
-"DF. c #634D48",
-"EF. c #684E4B",
-"FF. c #6C514E",
-"GF. c #6C524E",
-"HF. c #6A514D",
-"IF. c #6A504C",
-"JF. c #664E4B",
-"KF. c #644C49",
-"LF. c #624A46",
-"MF. c #5B4441",
-"NF. c #5C4644",
-"OF. c #5B4743",
-"PF. c #594642",
-"QF. c #564441",
-"RF. c #473E3C",
-"SF. c #403230",
-"TF. c #40312E",
-"UF. c #40302F",
-"VF. c #463736",
-"WF. c #413A3A",
-"XF. c #3E3428",
-"YF. c #3E342A",
-"ZF. c #40372E",
-"`F. c #7E8D7A",
-" G. c #7C8A76",
-".G. c #7A8874",
-"+G. c #525850",
-"@G. c #687463",
-"#G. c #717D6B",
-"$G. c #7B8972",
-"%G. c #7C8B72",
-"&G. c #5C6356",
-"*G. c #6A7565",
-"=G. c #6F7B6C",
-"-G. c #788676",
-";G. c #7E8C7D",
-">G. c #808B7F",
-",G. c #808A7E",
-"'G. c #758075",
-")G. c #717C72",
-"!G. c #707A70",
-"~G. c #647066",
-"{G. c #626F64",
-"]G. c #626E64",
-"^G. c #5F6A61",
-"/G. c #5B675D",
-"(G. c #59655A",
-"_G. c #58645A",
-":G. c #57635A",
-"<G. c #576259",
-"[G. c #515F55",
-"}G. c #4F5C54",
-"|G. c #4A564E",
-"1G. c #48564E",
-"2G. c #47544C",
-"3G. c #44524A",
-"4G. c #445049",
-"5G. c #46534C",
-"6G. c #48554E",
-"7G. c #4A574E",
-"8G. c #4E584F",
-"9G. c #4F5950",
-"0G. c #505A50",
-"aG. c #51594F",
-"bG. c #52594F",
-"cG. c #545A50",
-"dG. c #565D51",
-"eG. c #555C50",
-"fG. c #555A50",
-"gG. c #565C51",
-"hG. c #545C50",
-"iG. c #54594F",
-"jG. c #585C52",
-"kG. c #595D52",
-"lG. c #595C4E",
-"mG. c #585C48",
-"nG. c #585B48",
-"oG. c #575B4B",
-"pG. c #5A5E51",
-"qG. c #5A5F52",
-"rG. c #5A5F51",
-"sG. c #595E51",
-"tG. c #5A5D50",
-"uG. c #5B6052",
-"vG. c #5E6055",
-"wG. c #5C5E51",
-"xG. c #585A4D",
-"yG. c #56574B",
-"zG. c #54554A",
-"AG. c #4C4A42",
-"BG. c #4C4A43",
-"CG. c #4D4A44",
-"DG. c #4D4944",
-"EG. c #4E4944",
-"FG. c #4E4843",
-"GG. c #4C4843",
-"HG. c #4E4842",
-"IG. c #4D4742",
-"JG. c #4C4641",
-"KG. c #4C4540",
-"LG. c #4E4642",
-"MG. c #504743",
-"NG. c #4E4540",
-"OG. c #4D433F",
-"PG. c #4D433E",
-"QG. c #4E433E",
-"RG. c #4E443E",
-"SG. c #4F433E",
-"TG. c #50433F",
-"UG. c #50433E",
-"VG. c #4E4140",
-"WG. c #4E403F",
-"XG. c #504141",
-"YG. c #524342",
-"ZG. c #534343",
-"`G. c #554444",
-" H. c #554443",
-".H. c #574545",
-"+H. c #594547",
-"@H. c #594447",
-"#H. c #5A474B",
-"$H. c #5A484E",
-"%H. c #5B494F",
-"&H. c #5C494F",
-"*H. c #5C484E",
-"=H. c #5D484E",
-"-H. c #5E494F",
-";H. c #654C54",
-">H. c #6C4E57",
-",H. c #755058",
-"'H. c #7C5158",
-")H. c #7C5057",
-"!H. c #764E56",
-"~H. c #704C55",
-"{H. c #6A4B55",
-"]H. c #684B58",
-"^H. c #674A55",
-"/H. c #684B57",
-"(H. c #684A56",
-"_H. c #694A56",
-":H. c #6A4A53",
-"<H. c #6C4950",
-"[H. c #6E494F",
-"}H. c #6F4A51",
-"|H. c #714B52",
-"1H. c #714C50",
-"2H. c #724C4F",
-"3H. c #734D4F",
-"4H. c #754F51",
-"5H. c #775154",
-"6H. c #7A5558",
-"7H. c #795457",
-"8H. c #7A5557",
-"9H. c #7B5658",
-"0H. c #7C5859",
-"aH. c #7D585A",
-"bH. c #7E595B",
-"cH. c #7F5A5C",
-"dH. c #7F5A5D",
-"eH. c #805C5E",
-"fH. c #825E60",
-"gH. c #815C5E",
-"hH. c #815A5C",
-"iH. c #825D5C",
-"jH. c #825D5D",
-"kH. c #836160",
-"lH. c #846261",
-"mH. c #846362",
-"nH. c #866665",
-"oH. c #866766",
-"pH. c #856866",
-"qH. c #846564",
-"rH. c #826361",
-"sH. c #816360",
-"tH. c #7F6160",
-"uH. c #7E6160",
-"vH. c #7D5F5E",
-"wH. c #7C5E5D",
-"xH. c #7B5D5B",
-"yH. c #7C5D5A",
-"zH. c #7F5E5C",
-"AH. c #825F5C",
-"BH. c #87605B",
-"CH. c #8A605B",
-"DH. c #85605B",
-"EH. c #80605C",
-"FH. c #785C59",
-"GH. c #735A59",
-"HH. c #725B59",
-"IH. c #715A58",
-"JH. c #705A58",
-"KH. c #6F5A57",
-"LH. c #6E5A57",
-"MH. c #6D5956",
-"NH. c #6B5854",
-"OH. c #695451",
-"PH. c #695250",
-"QH. c #675250",
-"RH. c #66514F",
-"SH. c #65504E",
-"TH. c #6A534F",
-"UH. c #6E5651",
-"VH. c #725853",
-"WH. c #735854",
-"XH. c #705651",
-"YH. c #6C5350",
-"ZH. c #69524D",
-"`H. c #674F4A",
-" I. c #624745",
-".I. c #5D4642",
-"+I. c #5C4643",
-"@I. c #5A4641",
-"#I. c #5A4643",
-"$I. c #584440",
-"%I. c #564440",
-"&I. c #54413E",
-"*I. c #463D3C",
-"=I. c #403331",
-"-I. c #413230",
-";I. c #3E3636",
-">I. c #3A3128",
-",I. c #3A322C",
-"'I. c #3A3432",
-")I. c #798773",
-"!I. c #758571",
-"~I. c #748470",
-"{I. c #50574F",
-"]I. c #647160",
-"^I. c #6E7C69",
-"/I. c #788670",
-"(I. c #7A8872",
-"_I. c #5A6156",
-":I. c #677264",
-"<I. c #6D786A",
-"[I. c #748172",
-"}I. c #657167",
-"|I. c #646F66",
-"1I. c #616C63",
-"2I. c #5A675C",
-"3I. c #58665B",
-"4I. c #556258",
-"5I. c #535E56",
-"6I. c #4E5B52",
-"7I. c #4C5A52",
-"8I. c #45534A",
-"9I. c #445249",
-"0I. c #45524A",
-"aI. c #48544D",
-"bI. c #48564D",
-"cI. c #4D5850",
-"dI. c #4F5A50",
-"eI. c #525B51",
-"fI. c #535C51",
-"gI. c #545C51",
-"hI. c #565D52",
-"iI. c #565E53",
-"jI. c #575E53",
-"kI. c #565E52",
-"lI. c #565D53",
-"mI. c #5C6154",
-"nI. c #5C6053",
-"oI. c #585C4D",
-"pI. c #575C48",
-"qI. c #5B6054",
-"rI. c #5C6056",
-"sI. c #5B5D53",
-"tI. c #5B5F53",
-"uI. c #616359",
-"vI. c #5C5E53",
-"wI. c #5A5C51",
-"xI. c #5B5C50",
-"yI. c #56574C",
-"zI. c #6C6B64",
-"AI. c #4E4C45",
-"BI. c #4E4C44",
-"CI. c #4F4B47",
-"DI. c #4F4C48",
-"EI. c #504C47",
-"FI. c #504B47",
-"GI. c #4F4A47",
-"HI. c #504A47",
-"II. c #4F4A46",
-"JI. c #4F4A45",
-"KI. c #4F4A44",
-"LI. c #4F4A42",
-"MI. c #504943",
-"NI. c #4E4740",
-"OI. c #4E463F",
-"PI. c #4E453E",
-"QI. c #4F453E",
-"RI. c #4F453F",
-"SI. c #50453F",
-"TI. c #50453E",
-"UI. c #50463F",
-"VI. c #534640",
-"WI. c #52463F",
-"XI. c #52443E",
-"YI. c #52443F",
-"ZI. c #504542",
-"`I. c #504441",
-" J. c #504240",
-".J. c #524442",
-"+J. c #534442",
-"@J. c #544544",
-"#J. c #564644",
-"$J. c #574644",
-"%J. c #584746",
-"&J. c #5A4847",
-"*J. c #5B4748",
-"=J. c #5C494C",
-"-J. c #5D4B51",
-";J. c #5E4C52",
-">J. c #5E4C51",
-",J. c #5E4B51",
-"'J. c #5F4B51",
-")J. c #604B51",
-"!J. c #624C54",
-"~J. c #644E59",
-"{J. c #6B515A",
-"]J. c #72525A",
-"^J. c #7A535A",
-"/J. c #80545A",
-"(J. c #805259",
-"_J. c #7B5159",
-":J. c #77525B",
-"<J. c #704D58",
-"[J. c #6C4E5A",
-"}J. c #6C4D5A",
-"|J. c #6D4D59",
-"1J. c #6D4C56",
-"2J. c #6E4A52",
-"3J. c #6F4A52",
-"4J. c #724C54",
-"5J. c #724B52",
-"6J. c #724A4E",
-"7J. c #734B4E",
-"8J. c #754D52",
-"9J. c #775053",
-"0J. c #795254",
-"aJ. c #7A5455",
-"bJ. c #7C5658",
-"cJ. c #7D5659",
-"dJ. c #7E585A",
-"eJ. c #7F585A",
-"fJ. c #7F585B",
-"gJ. c #80595C",
-"hJ. c #815B5D",
-"iJ. c #835E60",
-"jJ. c #825C5F",
-"kJ. c #825C5E",
-"lJ. c #845D5D",
-"mJ. c #845E5D",
-"nJ. c #866060",
-"oJ. c #886362",
-"pJ. c #876462",
-"qJ. c #886462",
-"rJ. c #876564",
-"sJ. c #886865",
-"tJ. c #8A6967",
-"uJ. c #8A6968",
-"vJ. c #896868",
-"wJ. c #8A6C6A",
-"xJ. c #886A68",
-"yJ. c #876866",
-"zJ. c #866866",
-"AJ. c #846665",
-"BJ. c #846664",
-"CJ. c #816462",
-"DJ. c #866461",
-"EJ. c #8A6661",
-"FJ. c #8E6661",
-"GJ. c #916761",
-"HJ. c #8C6660",
-"IJ. c #86645F",
-"JJ. c #7C6361",
-"KJ. c #76605D",
-"LJ. c #76605E",
-"MJ. c #75605C",
-"NJ. c #735E5B",
-"OJ. c #725D5A",
-"PJ. c #715C59",
-"QJ. c #6D5855",
-"RJ. c #6C5754",
-"SJ. c #6A5654",
-"TJ. c #897472",
-"UJ. c #715955",
-"VJ. c #755C57",
-"WJ. c #775E58",
-"XJ. c #79605A",
-"YJ. c #7A5E5A",
-"ZJ. c #765C58",
-"`J. c #735955",
-" K. c #6F5652",
-".K. c #6C544F",
-"+K. c #69504C",
-"@K. c #664C48",
-"#K. c #624945",
-"$K. c #584240",
-"%K. c #56413F",
-"&K. c #54403D",
-"*K. c #523F3C",
-"=K. c #513E3C",
-"-K. c #453C3A",
-";K. c #403332",
-">K. c #40312F",
-",K. c #3F312E",
-"'K. c #3C3636",
-")K. c #352C2D",
-"!K. c #352C30",
-"~K. c #382E35",
-"{K. c #72816E",
-"]K. c #50564E",
-"^K. c #636F5F",
-"/K. c #6B7967",
-"(K. c #74826E",
-"_K. c #768470",
-":K. c #586055",
-"<K. c #758176",
-"[K. c #778277",
-"}K. c #707C72",
-"|K. c #606D63",
-"1K. c #5D695F",
-"2K. c #546358",
-"3K. c #536056",
-"4K. c #515E54",
-"5K. c #4E5C53",
-"6K. c #4C5B52",
-"7K. c #4B584F",
-"8K. c #48544B",
-"9K. c #47544B",
-"0K. c #47554B",
-"aK. c #46544B",
-"bK. c #46524A",
-"cK. c #46544A",
-"dK. c #4C584F",
-"eK. c #4F5B51",
-"fK. c #525D52",
-"gK. c #535E52",
-"hK. c #555E52",
-"iK. c #585F54",
-"jK. c #586054",
-"kK. c #586155",
-"lK. c #586154",
-"mK. c #5A6055",
-"nK. c #596155",
-"oK. c #5B5F52",
-"pK. c #5D6053",
-"qK. c #5E6255",
-"rK. c #5A5E4F",
-"sK. c #565B4B",
-"tK. c #595E4A",
-"uK. c #5B5E4E",
-"vK. c #5D6054",
-"wK. c #5F6357",
-"xK. c #606359",
-"yK. c #5D5F55",
-"zK. c #5D5F54",
-"AK. c #5E5F52",
-"BK. c #5D5E50",
-"CK. c #5D5E51",
-"DK. c #5B5D50",
-"EK. c #6F6F67",
-"FK. c #514F48",
-"GK. c #504E46",
-"HK. c #504E48",
-"IK. c #524E49",
-"JK. c #514D49",
-"KK. c #514C49",
-"LK. c #514C48",
-"MK. c #514C47",
-"NK. c #504B44",
-"OK. c #514C44",
-"PK. c #534C45",
-"QK. c #524B44",
-"RK. c #504A42",
-"SK. c #4F4940",
-"TK. c #504840",
-"UK. c #504740",
-"VK. c #514842",
-"WK. c #524843",
-"XK. c #544944",
-"YK. c #544943",
-"ZK. c #544841",
-"`K. c #544840",
-" L. c #544740",
-".L. c #544844",
-"+L. c #544845",
-"@L. c #524644",
-"#L. c #534644",
-"$L. c #544643",
-"%L. c #564745",
-"&L. c #574746",
-"*L. c #594846",
-"=L. c #5A4948",
-"-L. c #5B4948",
-";L. c #5C4A49",
-">L. c #604C4E",
-",L. c #604E52",
-"'L. c #604E54",
-")L. c #614E54",
-"!L. c #624E54",
-"~L. c #624E53",
-"{L. c #634E53",
-"]L. c #634E54",
-"^L. c #644E55",
-"/L. c #66515C",
-"(L. c #69535D",
-"_L. c #6E535C",
-":L. c #74545C",
-"<L. c #7C545C",
-"[L. c #82555C",
-"}L. c #86585E",
-"|L. c #81555D",
-"1L. c #7B535D",
-"2L. c #75525D",
-"3L. c #72525E",
-"4L. c #70505D",
-"5L. c #704E5A",
-"6L. c #724C55",
-"7L. c #744D56",
-"8L. c #744C54",
-"9L. c #714A4E",
-"0L. c #754C50",
-"aL. c #774F54",
-"bL. c #774E52",
-"cL. c #784E53",
-"dL. c #7A5154",
-"eL. c #7D5557",
-"fL. c #7E5658",
-"gL. c #7F5759",
-"hL. c #80585A",
-"iL. c #825A5D",
-"jL. c #835D60",
-"kL. c #835C5E",
-"lL. c #825C5D",
-"mL. c #855E5D",
-"nL. c #86605F",
-"oL. c #876361",
-"pL. c #886463",
-"qL. c #896664",
-"rL. c #8A6766",
-"sL. c #8B6A68",
-"tL. c #8A6A68",
-"uL. c #8B6B69",
-"vL. c #8C6C6B",
-"wL. c #8C6E6C",
-"xL. c #8D6F6D",
-"yL. c #8B6C6B",
-"zL. c #8A6B6A",
-"AL. c #906B66",
-"BL. c #956C66",
-"CL. c #966D66",
-"DL. c #926C66",
-"EL. c #8C6A65",
-"FL. c #876864",
-"GL. c #826764",
-"HL. c #826866",
-"IL. c #7D6664",
-"JL. c #766260",
-"KL. c #75605E",
-"LL. c #735E5C",
-"ML. c #705D5A",
-"NL. c #785F5C",
-"OL. c #7B625E",
-"PL. c #7E6460",
-"QL. c #7E6560",
-"RL. c #7C635E",
-"SL. c #78605A",
-"TL. c #705854",
-"UL. c #6D5551",
-"VL. c #654C49",
-"WL. c #604A47",
-"XL. c #5C4743",
-"YL. c #594542",
-"ZL. c #56403F",
-"`L. c #553F3C",
-" M. c #523E3B",
-".M. c #503D3B",
-"+M. c #4E3C3A",
-"@M. c #443C3A",
-"#M. c #3F302E",
-"$M. c #3D2F2E",
-"%M. c #3F3130",
-"&M. c #3C3634",
-"*M. c #342A2E",
-"=M. c #362932",
-"-M. c #3C2E36",
-";M. c #6F7E6B",
-">M. c #6E7D6A",
-",M. c #606C5C",
-"'M. c #687564",
-")M. c #6E7D6B",
-"!M. c #707F6C",
-"~M. c #565D54",
-"{M. c #616C60",
-"]M. c #6E7A6F",
-"^M. c #677167",
-"/M. c #637066",
-"(M. c #5F6C62",
-"_M. c #5A675D",
-":M. c #58655B",
-"<M. c #556259",
-"[M. c #4F5D54",
-"}M. c #4E5C54",
-"|M. c #4D5C53",
-"1M. c #4A564D",
-"2M. c #48554C",
-"3M. c #455149",
-"4M. c #48564C",
-"5M. c #4B5950",
-"6M. c #4C5A51",
-"7M. c #505C52",
-"8M. c #545F54",
-"9M. c #555F54",
-"0M. c #566155",
-"aM. c #5A6256",
-"bM. c #5C6357",
-"cM. c #5C6458",
-"dM. c #596255",
-"eM. c #5A6053",
-"fM. c #5D6152",
-"gM. c #5D6151",
-"hM. c #5C6051",
-"iM. c #585C4C",
-"jM. c #595E4C",
-"kM. c #5E6152",
-"lM. c #5D6057",
-"mM. c #5D6156",
-"nM. c #626359",
-"oM. c #5F6053",
-"pM. c #74746A",
-"qM. c #54524A",
-"rM. c #53514A",
-"sM. c #54504A",
-"tM. c #54514C",
-"uM. c #56514C",
-"vM. c #55504C",
-"wM. c #56504B",
-"xM. c #55504A",
-"yM. c #524E48",
-"zM. c #544F47",
-"AM. c #565046",
-"BM. c #544E44",
-"CM. c #514B41",
-"DM. c #504A40",
-"EM. c #514A40",
-"FM. c #524A42",
-"GM. c #524942",
-"HM. c #544B43",
-"IM. c #564C45",
-"JM. c #574C46",
-"KM. c #564A44",
-"LM. c #564B44",
-"MM. c #574B44",
-"NM. c #584C44",
-"OM. c #594B44",
-"PM. c #584C47",
-"QM. c #584C49",
-"RM. c #584C48",
-"SM. c #584B47",
-"TM. c #564A46",
-"UM. c #574946",
-"VM. c #584A46",
-"WM. c #584946",
-"XM. c #594946",
-"YM. c #5A4A48",
-"ZM. c #5C4B48",
-"`M. c #5D4B49",
-" N. c #5E4C4A",
-".N. c #604D4C",
-"+N. c #615053",
-"@N. c #625055",
-"#N. c #625054",
-"$N. c #635055",
-"%N. c #645056",
-"&N. c #655155",
-"*N. c #655056",
-"=N. c #665258",
-"-N. c #68545D",
-";N. c #68545C",
-">N. c #6A555E",
-",N. c #70555E",
-"'N. c #76565D",
-")N. c #805A5F",
-"!N. c #86595E",
-"~N. c #89595F",
-"{N. c #84585F",
-"]N. c #80575F",
-"^N. c #7B5660",
-"/N. c #76555F",
-"(N. c #72545F",
-"_N. c #72535F",
-":N. c #72525F",
-"<N. c #75525C",
-"[N. c #754F58",
-"}N. c #744E55",
-"|N. c #724A4F",
-"1N. c #734C50",
-"2N. c #744C4F",
-"3N. c #764D51",
-"4N. c #784E52",
-"5N. c #795055",
-"6N. c #7C5457",
-"7N. c #7C5356",
-"8N. c #805859",
-"9N. c #825A5C",
-"0N. c #825B5E",
-"aN. c #855D5D",
-"bN. c #865E5E",
-"cN. c #855E5E",
-"dN. c #886261",
-"eN. c #886562",
-"fN. c #886563",
-"gN. c #8B6866",
-"hN. c #8C6867",
-"iN. c #8C6968",
-"jN. c #8D6A68",
-"kN. c #8D6C69",
-"lN. c #8E6E6C",
-"mN. c #8D6E6C",
-"nN. c #8D6D6C",
-"oN. c #8C6D6C",
-"pN. c #906E6C",
-"qN. c #94706C",
-"rN. c #96706C",
-"sN. c #9A726C",
-"tN. c #9A706C",
-"uN. c #96706A",
-"vN. c #92706A",
-"wN. c #8D6E6A",
-"xN. c #876D6A",
-"yN. c #866D6A",
-"zN. c #856C68",
-"AN. c #846C69",
-"BN. c #846E6C",
-"CN. c #826C69",
-"DN. c #806A67",
-"EN. c #796663",
-"FN. c #7E6662",
-"GN. c #816764",
-"HN. c #826865",
-"IN. c #836966",
-"JN. c #806863",
-"KN. c #7C645E",
-"LN. c #78605B",
-"MN. c #725C58",
-"NN. c #6D5552",
-"ON. c #68504D",
-"PN. c #624C4A",
-"QN. c #5D4946",
-"RN. c #594644",
-"SN. c #574441",
-"TN. c #513E3B",
-"UN. c #4F3C3A",
-"VN. c #4C3B38",
-"WN. c #433A38",
-"XN. c #3C2E2C",
-"YN. c #3D2E2C",
-"ZN. c #40302E",
-"`N. c #3E302E",
-" O. c #3D3635",
-".O. c #352B2B",
-"+O. c #362B30",
-"@O. c #3D3038",
-"#O. c #6A7865",
-"$O. c #687663",
-"%O. c #5C6858",
-"&O. c #6B7A66",
-"*O. c #6D7C69",
-"=O. c #545C53",
-"-O. c #5E695E",
-";O. c #637065",
-">O. c #59665C",
-",O. c #57645A",
-"'O. c #526056",
-")O. c #505E56",
-"!O. c #4A584E",
-"~O. c #49564D",
-"{O. c #455249",
-"]O. c #4B584E",
-"^O. c #4C5A50",
-"/O. c #4D5A52",
-"(O. c #566055",
-"_O. c #576256",
-":O. c #596256",
-"<O. c #5B6357",
-"[O. c #5E6659",
-"}O. c #5B6457",
-"|O. c #5B6356",
-"1O. c #5E6354",
-"2O. c #5B614F",
-"3O. c #595F4C",
-"4O. c #585D4C",
-"5O. c #5C614F",
-"6O. c #5F6353",
-"7O. c #616457",
-"8O. c #63655A",
-"9O. c #64665B",
-"0O. c #646659",
-"aO. c #646759",
-"bO. c #656859",
-"cO. c #636658",
-"dO. c #636557",
-"eO. c #77776E",
-"fO. c #58574E",
-"gO. c #57564D",
-"hO. c #57554C",
-"iO. c #58554B",
-"jO. c #58544B",
-"kO. c #57534A",
-"lO. c #575349",
-"mO. c #565248",
-"nO. c #565148",
-"oO. c #565149",
-"pO. c #545045",
-"qO. c #524D40",
-"rO. c #514C40",
-"sO. c #504C3F",
-"tO. c #504B3F",
-"uO. c #514B3F",
-"vO. c #544E41",
-"wO. c #564E43",
-"xO. c #584E46",
-"yO. c #584F46",
-"zO. c #5A4F46",
-"AO. c #5A4F47",
-"BO. c #5A5046",
-"CO. c #5C5048",
-"DO. c #5D5048",
-"EO. c #5D514C",
-"FO. c #5D514D",
-"GO. c #5C504C",
-"HO. c #5C4F4A",
-"IO. c #5A4D49",
-"JO. c #5B4C49",
-"KO. c #5B4C4A",
-"LO. c #5D4E4A",
-"MO. c #5C4D4A",
-"NO. c #5E4D4A",
-"OO. c #5E4E4A",
-"PO. c #5E4E4B",
-"QO. c #604E4B",
-"RO. c #625050",
-"SO. c #625356",
-"TO. c #625255",
-"UO. c #625254",
-"VO. c #635254",
-"WO. c #655256",
-"XO. c #645153",
-"YO. c #665256",
-"ZO. c #68545A",
-"`O. c #69565F",
-" P. c #6B565F",
-".P. c #6C565F",
-"+P. c #725860",
-"@P. c #785860",
-"#P. c #805960",
-"$P. c #865A61",
-"%P. c #8B5A60",
-"&P. c #895A60",
-"*P. c #845A60",
-"=P. c #7F5860",
-"-P. c #7A5660",
-";P. c #755660",
-">P. c #745560",
-",P. c #755662",
-"'P. c #755460",
-")P. c #76515A",
-"!P. c #724B4E",
-"~P. c #724B4F",
-"{P. c #744C50",
-"]P. c #754D50",
-"^P. c #764D50",
-"/P. c #7B5357",
-"(P. c #7D5558",
-"_P. c #7E575A",
-":P. c #845D60",
-"<P. c #835D5F",
-"[P. c #865F5E",
-"}P. c #876160",
-"|P. c #876260",
-"1P. c #896463",
-"2P. c #8A6665",
-"3P. c #896663",
-"4P. c #8A6866",
-"5P. c #8A6966",
-"6P. c #8B6A67",
-"7P. c #8C6B69",
-"8P. c #8D6D6B",
-"9P. c #8F706F",
-"0P. c #8E6F6E",
-"aP. c #8F6F6C",
-"bP. c #92706D",
-"cP. c #97726E",
-"dP. c #9A736E",
-"eP. c #9E766F",
-"fP. c #9C756F",
-"gP. c #99736E",
-"hP. c #93726D",
-"iP. c #8E726D",
-"jP. c #8B716D",
-"kP. c #89716D",
-"lP. c #89706D",
-"mP. c #88706D",
-"nP. c #87716F",
-"oP. c #86716F",
-"pP. c #84706D",
-"qP. c #7E6B68",
-"rP. c #7A6864",
-"sP. c #846D6A",
-"tP. c #87706C",
-"uP. c #88706C",
-"vP. c #836D67",
-"wP. c #7C6461",
-"xP. c #78605D",
-"yP. c #745C59",
-"zP. c #705956",
-"AP. c #6A5552",
-"BP. c #644F4B",
-"CP. c #5A4746",
-"DP. c #584541",
-"EP. c #513D3B",
-"FP. c #4B3A36",
-"GP. c #423A38",
-"HP. c #392A29",
-"IP. c #3A2C2A",
-"JP. c #3D2F2D",
-"KP. c #342A29",
-"LP. c #362A2E",
-"MP. c #3C3036",
-"NP. c #647360",
-"OP. c #63725F",
-"PP. c #62705D",
-"QP. c #495047",
-"RP. c #566353",
-"SP. c #5E6B5A",
-"TP. c #657361",
-"UP. c #667464",
-"VP. c #50584F",
-"WP. c #5A6459",
-"XP. c #5E6860",
-"YP. c #657068",
-"ZP. c #6D796E",
-"`P. c #5E6C60",
-" Q. c #5C6A5F",
-".Q. c #566359",
-"+Q. c #525F56",
-"@Q. c #4D5A51",
-"#Q. c #4B594F",
-"$Q. c #435048",
-"%Q. c #404F48",
-"&Q. c #445048",
-"*Q. c #4C5950",
-"=Q. c #4D5B52",
-"-Q. c #505D52",
-";Q. c #545F53",
-">Q. c #596356",
-",Q. c #5A6356",
-"'Q. c #5B6257",
-")Q. c #5C6358",
-"!Q. c #5F6559",
-"~Q. c #5D6558",
-"{Q. c #5B6152",
-"]Q. c #575B49",
-"^Q. c #595D4C",
-"/Q. c #5B614E",
-"(Q. c #606453",
-"_Q. c #5F6254",
-":Q. c #5F605B",
-"<Q. c #63665B",
-"[Q. c #66685D",
-"}Q. c #696B5C",
-"|Q. c #6A6C5D",
-"1Q. c #686A5C",
-"2Q. c #67685A",
-"3Q. c #797970",
-"4Q. c #5A5850",
-"5Q. c #5A584F",
-"6Q. c #5A584C",
-"7Q. c #595749",
-"8Q. c #585547",
-"9Q. c #575446",
-"0Q. c #585548",
-"aQ. c #565446",
-"bQ. c #504C40",
-"cQ. c #504C3E",
-"dQ. c #524E40",
-"eQ. c #544F42",
-"fQ. c #575245",
-"gQ. c #5A5447",
-"hQ. c #5B5449",
-"iQ. c #5B524A",
-"jQ. c #5C524A",
-"kQ. c #5D524A",
-"lQ. c #5E544B",
-"mQ. c #5E534C",
-"nQ. c #5E534B",
-"oQ. c #5F5550",
-"pQ. c #5E544F",
-"qQ. c #5F5450",
-"rQ. c #5E534F",
-"sQ. c #5E514C",
-"tQ. c #5C504B",
-"uQ. c #5D4F4C",
-"vQ. c #5E504D",
-"wQ. c #5E4F4C",
-"xQ. c #5E4F4B",
-"yQ. c #5F4F4C",
-"zQ. c #61504D",
-"AQ. c #625454",
-"BQ. c #635556",
-"CQ. c #635456",
-"DQ. c #645456",
-"EQ. c #655556",
-"FQ. c #645455",
-"GQ. c #645254",
-"HQ. c #655254",
-"IQ. c #675358",
-"JQ. c #6A565E",
-"KQ. c #6A575E",
-"LQ. c #6C575F",
-"MQ. c #6E5860",
-"NQ. c #715860",
-"OQ. c #785960",
-"PQ. c #7E5960",
-"QQ. c #865B61",
-"RQ. c #8B5B61",
-"SQ. c #8C5B61",
-"TQ. c #875A61",
-"UQ. c #825960",
-"VQ. c #7D575F",
-"WQ. c #795660",
-"XQ. c #775762",
-"YQ. c #745561",
-"ZQ. c #74515A",
-"`Q. c #734C54",
-" R. c #724A4D",
-".R. c #744D50",
-"+R. c #764F52",
-"@R. c #7A5256",
-"#R. c #7B5358",
-"$R. c #7B5458",
-"%R. c #7D575A",
-"&R. c #7E585B",
-"*R. c #846062",
-"=R. c #846061",
-"-R. c #856062",
-";R. c #866161",
-">R. c #896362",
-",R. c #8B6867",
-"'R. c #8B6967",
-")R. c #8B6966",
-"!R. c #8D6D6A",
-"~R. c #8E6C6B",
-"{R. c #90706F",
-"]R. c #90716F",
-"^R. c #90706D",
-"/R. c #92706E",
-"(R. c #95726E",
-"_R. c #9A726E",
-":R. c #9D7570",
-"<R. c #A07670",
-"[R. c #9D7670",
-"}R. c #997671",
-"|R. c #94736F",
-"1R. c #90726E",
-"2R. c #8B726E",
-"3R. c #8A726E",
-"4R. c #8B726F",
-"5R. c #8B736F",
-"6R. c #8A7470",
-"7R. c #8A7472",
-"8R. c #82706D",
-"9R. c #806E6A",
-"0R. c #A18F8B",
-"aR. c #8A7570",
-"bR. c #8E7672",
-"cR. c #8F7773",
-"dR. c #8E7773",
-"eR. c #8C7470",
-"fR. c #87716D",
-"gR. c #7A6361",
-"hR. c #755F5C",
-"iR. c #685550",
-"jR. c #644F4D",
-"kR. c #5A4845",
-"lR. c #52403E",
-"mR. c #503E3B",
-"nR. c #423938",
-"oR. c #382A29",
-"pR. c #382C2A",
-"qR. c #3B2E2E",
-"rR. c #3E312F",
-"sR. c #3C3635",
-"tR. c #322A29",
-"uR. c #342A2C",
-"vR. c #382D33",
-"wR. c #62715E",
-"xR. c #61705C",
-"yR. c #606E5B",
-"zR. c #484E46",
-"AR. c #546050",
-"BR. c #5B6857",
-"CR. c #606F5E",
-"DR. c #627060",
-"ER. c #4F554E",
-"FR. c #576257",
-"GR. c #5A655D",
-"HR. c #616C64",
-"IR. c #66736B",
-"JR. c #67746B",
-"KR. c #657264",
-"LR. c #657165",
-"MR. c #5D6B60",
-"NR. c #5B685D",
-"OR. c #556057",
-"PR. c #515E56",
-"QR. c #4B594E",
-"RR. c #48544A",
-"SR. c #46534A",
-"TR. c #444F48",
-"UR. c #46514A",
-"VR. c #47524B",
-"WR. c #4A584D",
-"XR. c #4C594F",
-"YR. c #4D594E",
-"ZR. c #505C50",
-"`R. c #535F52",
-" S. c #576154",
-".S. c #5D6458",
-"+S. c #5E6458",
-"@S. c #5A6255",
-"#S. c #586053",
-"$S. c #585D4E",
-"%S. c #565A49",
-"&S. c #585C4A",
-"*S. c #5B5F4D",
-"=S. c #5A604E",
-"-S. c #5D6350",
-";S. c #5B5E59",
-">S. c #5F605C",
-",S. c #62645F",
-"'S. c #6D6F62",
-")S. c #6E7061",
-"!S. c #6E6E61",
-"~S. c #7A7A71",
-"{S. c #5B5A51",
-"]S. c #5A5849",
-"^S. c #595748",
-"/S. c #555244",
-"(S. c #504D3E",
-"_S. c #524F40",
-":S. c #545042",
-"<S. c #565244",
-"[S. c #5C584A",
-"}S. c #5E5A4C",
-"|S. c #5F5A4D",
-"1S. c #5E584C",
-"2S. c #5E574E",
-"3S. c #5F574E",
-"4S. c #60574F",
-"5S. c #61584E",
-"6S. c #61584F",
-"7S. c #60574D",
-"8S. c #605651",
-"9S. c #5F544F",
-"0S. c #5E524E",
-"aS. c #5E504E",
-"bS. c #60504D",
-"cS. c #61514F",
-"dS. c #625656",
-"eS. c #635554",
-"fS. c #635656",
-"gS. c #645757",
-"hS. c #645656",
-"iS. c #655555",
-"jS. c #665455",
-"kS. c #665356",
-"lS. c #675258",
-"mS. c #6A565D",
-"nS. c #6A5760",
-"oS. c #6C5861",
-"pS. c #6E5A62",
-"qS. c #6D5860",
-"rS. c #6F5961",
-"sS. c #725861",
-"tS. c #775961",
-"uS. c #7F5A61",
-"vS. c #845B61",
-"wS. c #8A5C62",
-"xS. c #8E5F62",
-"yS. c #8B5E62",
-"zS. c #865B62",
-"AS. c #825A62",
-"BS. c #7E5862",
-"CS. c #785662",
-"DS. c #74525D",
-"ES. c #724C51",
-"FS. c #714A4D",
-"GS. c #734D50",
-"HS. c #785156",
-"IS. c #785155",
-"JS. c #7A5358",
-"KS. c #7C5659",
-"LS. c #856160",
-"MS. c #8A6A67",
-"NS. c #8C6D6B",
-"OS. c #90706E",
-"PS. c #937270",
-"QS. c #94716E",
-"RS. c #98726E",
-"SS. c #9C746F",
-"TS. c #9F766F",
-"US. c #9F7670",
-"VS. c #9C7671",
-"WS. c #987470",
-"XS. c #927471",
-"YS. c #8F726F",
-"ZS. c #8C726D",
-"`S. c #8C7570",
-" T. c #8D7671",
-".T. c #887371",
-"+T. c #847270",
-"@T. c #83716F",
-"#T. c #81706D",
-"$T. c #A59490",
-"%T. c #907C77",
-"&T. c #917B77",
-"*T. c #786360",
-"=T. c #6C5855",
-"-T. c #695552",
-";T. c #63514D",
-">T. c #584644",
-",T. c #564541",
-"'T. c #51403C",
-")T. c #4C3C39",
-"!T. c #362A29",
-"~T. c #382C2C",
-"{T. c #3D3130",
-"]T. c #3D3736",
-"^T. c #362D2F",
-"/T. c #636E5F",
-"(T. c #626C5E",
-"_T. c #606A5C",
-":T. c #474C47",
-"<T. c #535C53",
-"[T. c #59625A",
-"}T. c #5E6A60",
-"|T. c #555F55",
-"1T. c #596459",
-"2T. c #626F62",
-"3T. c #637063",
-"4T. c #6B766A",
-"5T. c #657265",
-"6T. c #606D62",
-"7T. c #5E6B60",
-"8T. c #5C695D",
-"9T. c #535F56",
-"0T. c #515D55",
-"aT. c #455148",
-"bT. c #455049",
-"cT. c #47534B",
-"dT. c #49574D",
-"eT. c #4D5853",
-"fT. c #4E5857",
-"gT. c #4E5856",
-"hT. c #4E5753",
-"iT. c #555C52",
-"jT. c #5A6153",
-"kT. c #5E6252",
-"lT. c #5D624F",
-"mT. c #5A6048",
-"nT. c #5B5E46",
-"oT. c #5A5B45",
-"pT. c #585A44",
-"qT. c #595B48",
-"rT. c #5E5E4F",
-"sT. c #606054",
-"tT. c #62655C",
-"uT. c #60665A",
-"vT. c #60685C",
-"wT. c #61685C",
-"xT. c #5C6256",
-"yT. c #5B6254",
-"zT. c #5C6254",
-"AT. c #5D6456",
-"BT. c #60675C",
-"CT. c #626A5F",
-"DT. c #676A5A",
-"ET. c #686C5C",
-"FT. c #6E6F61",
-"GT. c #737564",
-"HT. c #747460",
-"IT. c #72745E",
-"JT. c #70705C",
-"KT. c #6A6A57",
-"LT. c #7B7A6E",
-"MT. c #5C5B4E",
-"NT. c #59574A",
-"OT. c #565447",
-"PT. c #535144",
-"QT. c #525042",
-"RT. c #535044",
-"ST. c #575447",
-"TT. c #5A574A",
-"UT. c #5C5A4F",
-"VT. c #5E5B52",
-"WT. c #5E5C53",
-"XT. c #615E55",
-"YT. c #635F57",
-"ZT. c #605D54",
-"`T. c #605C52",
-" U. c #5F5B52",
-".U. c #605A51",
-"+U. c #615B51",
-"@U. c #625B52",
-"#U. c #615A51",
-"$U. c #615A4F",
-"%U. c #625A50",
-"&U. c #635A54",
-"*U. c #625954",
-"=U. c #625853",
-"-U. c #605751",
-";U. c #60544F",
-">U. c #615450",
-",U. c #615550",
-"'U. c #625650",
-")U. c #625550",
-"!U. c #635450",
-"~U. c #645854",
-"{U. c #645A5A",
-"]U. c #675B5B",
-"^U. c #685A5B",
-"/U. c #685859",
-"(U. c #695659",
-"_U. c #6A575C",
-":U. c #6B585F",
-"<U. c #6D5A61",
-"[U. c #6D5960",
-"}U. c #6F5A61",
-"|U. c #705A61",
-"1U. c #705A62",
-"2U. c #725B63",
-"3U. c #775B63",
-"4U. c #7C5C63",
-"5U. c #845F63",
-"6U. c #886064",
-"7U. c #8D6064",
-"8U. c #8B6164",
-"9U. c #865E63",
-"0U. c #825C62",
-"aU. c #7C575E",
-"bU. c #765051",
-"cU. c #724E4E",
-"dU. c #724E4F",
-"eU. c #704C4C",
-"fU. c #70494C",
-"gU. c #714B4D",
-"hU. c #734E50",
-"iU. c #755052",
-"jU. c #765053",
-"kU. c #785255",
-"lU. c #7C595B",
-"mU. c #7E5A5C",
-"nU. c #7F5C5E",
-"oU. c #815E5D",
-"pU. c #84615F",
-"qU. c #866261",
-"rU. c #886564",
-"sU. c #886664",
-"tU. c #896665",
-"uU. c #886765",
-"vU. c #896866",
-"wU. c #8A6868",
-"xU. c #8F6D6A",
-"yU. c #93716C",
-"zU. c #96716D",
-"AU. c #9C726C",
-"BU. c #9E766E",
-"CU. c #98726D",
-"DU. c #94726E",
-"EU. c #8B716E",
-"FU. c #8A7270",
-"GU. c #8C7872",
-"HU. c #8E7B76",
-"IU. c #8A7972",
-"JU. c #897870",
-"KU. c #88776F",
-"LU. c #867470",
-"MU. c #83726F",
-"NU. c #A79694",
-"OU. c #998581",
-"PU. c #917C79",
-"QU. c #8D7773",
-"RU. c #7D6A65",
-"SU. c #776460",
-"TU. c #725F5D",
-"UU. c #6E5A59",
-"VU. c #6A5855",
-"WU. c #645551",
-"XU. c #604F4C",
-"YU. c #5A4B49",
-"ZU. c #564744",
-"`U. c #52423F",
-" V. c #4C3D3B",
-".V. c #423A3A",
-"+V. c #372A29",
-"@V. c #392C2C",
-"#V. c #403432",
-"$V. c #3E3737",
-"%V. c #342C26",
-"&V. c #352D28",
-"*V. c #372E2E",
-"=V. c #606B5B",
-"-V. c #5E6959",
-";V. c #5C6658",
-">V. c #505850",
-",V. c #565E56",
-"'V. c #5C6A5D",
-")V. c #4C534C",
-"!V. c #525C52",
-"~V. c #566057",
-"{V. c #616E61",
-"]V. c #5B685C",
-"^V. c #546056",
-"/V. c #4D5A50",
-"(V. c #49574C",
-"_V. c #47524A",
-":V. c #4A5650",
-"<V. c #4C5653",
-"[V. c #4C5652",
-"}V. c #4C5651",
-"|V. c #505952",
-"1V. c #555D52",
-"2V. c #585F53",
-"3V. c #626657",
-"4V. c #5F6354",
-"5V. c #5E614E",
-"6V. c #575B45",
-"7V. c #575A42",
-"8V. c #595B44",
-"9V. c #5C5E49",
-"0V. c #5F604E",
-"aV. c #626253",
-"bV. c #696862",
-"cV. c #686A61",
-"dV. c #63695D",
-"eV. c #60675B",
-"fV. c #5E665A",
-"gV. c #5F645A",
-"hV. c #5F665A",
-"iV. c #5F6558",
-"jV. c #5F6658",
-"kV. c #60685A",
-"lV. c #626A5C",
-"mV. c #636B5E",
-"nV. c #656C60",
-"oV. c #676E61",
-"pV. c #6A6F60",
-"qV. c #6A6E5D",
-"rV. c #6B6E5D",
-"sV. c #6D705E",
-"tV. c #6F7361",
-"uV. c #727564",
-"vV. c #737665",
-"wV. c #747A67",
-"xV. c #767B66",
-"yV. c #767861",
-"zV. c #73765F",
-"AV. c #6F705C",
-"BV. c #696A55",
-"CV. c #79796C",
-"DV. c #545244",
-"EV. c #545245",
-"FV. c #5A584B",
-"GV. c #5E5C4E",
-"HV. c #625F52",
-"IV. c #636153",
-"JV. c #636255",
-"KV. c #636157",
-"LV. c #636055",
-"MV. c #625F55",
-"NV. c #615E54",
-"OV. c #625E54",
-"PV. c #635E54",
-"QV. c #645F55",
-"RV. c #645D53",
-"SV. c #645B53",
-"TV. c #645C57",
-"UV. c #655D58",
-"VV. c #665F5A",
-"WV. c #665D59",
-"XV. c #645B57",
-"YV. c #645A56",
-"ZV. c #655A56",
-"`V. c #665A56",
-" W. c #675C5C",
-".W. c #685E5F",
-"+W. c #695E60",
-"@W. c #6A5E60",
-"#W. c #6B5F60",
-"$W. c #6B5E60",
-"%W. c #6A5C5F",
-"&W. c #6A5C5E",
-"*W. c #6B5C5E",
-"=W. c #6C5C5E",
-"-W. c #6E5C5F",
-";W. c #705F64",
-">W. c #6F5C62",
-",W. c #705E63",
-"'W. c #705D62",
-")W. c #715C62",
-"!W. c #725D64",
-"~W. c #735E65",
-"{W. c #735E66",
-"]W. c #766066",
-"^W. c #7D6066",
-"/W. c #836267",
-"(W. c #886367",
-"_W. c #8C6568",
-":W. c #906468",
-"<W. c #906467",
-"[W. c #865C60",
-"}W. c #815656",
-"|W. c #7C5352",
-"1W. c #7A5353",
-"2W. c #754F50",
-"3W. c #714C4F",
-"4W. c #714B4E",
-"5W. c #704A4E",
-"6W. c #734E51",
-"7W. c #745053",
-"8W. c #785457",
-"9W. c #7B585A",
-"0W. c #7C5858",
-"aW. c #805C5B",
-"bW. c #7F5B5A",
-"cW. c #835F5E",
-"dW. c #846260",
-"eW. c #846160",
-"fW. c #856261",
-"gW. c #856362",
-"hW. c #866462",
-"iW. c #8B6765",
-"jW. c #8D6864",
-"kW. c #906865",
-"lW. c #926965",
-"mW. c #966C67",
-"nW. c #9A6E68",
-"oW. c #9D716A",
-"pW. c #9A6F68",
-"qW. c #966E68",
-"rW. c #946F69",
-"sW. c #8E6D68",
-"tW. c #866C69",
-"uW. c #886F6C",
-"vW. c #897270",
-"wW. c #8B7773",
-"xW. c #8C7974",
-"yW. c #8C7976",
-"zW. c #887772",
-"AW. c #867672",
-"BW. c #A69694",
-"CW. c #9E8C87",
-"DW. c #947F7B",
-"EW. c #8F7B76",
-"FW. c #7E6D69",
-"GW. c #746260",
-"HW. c #705E5B",
-"IW. c #6B5A58",
-"JW. c #5A4B48",
-"KW. c #514340",
-"LW. c #443C3C",
-"MW. c #362E29",
-"NW. c #37302A",
-"OW. c #3A322B",
-"PW. c #5E6859",
-"QW. c #5B6458",
-"RW. c #454944",
-"SW. c #535C54",
-"TW. c #5A685B",
-"UW. c #4B524C",
-"VW. c #4F5A4F",
-"WW. c #535E54",
-"XW. c #59665A",
-"YW. c #5E6C5F",
-"ZW. c #5E6B5F",
-"`W. c #616F62",
-" X. c #677467",
-".X. c #5A665B",
-"+X. c #58655A",
-"@X. c #586458",
-"#X. c #535F54",
-"$X. c #515C53",
-"%X. c #4E5B50",
-"&X. c #4A5A4E",
-"*X. c #49564C",
-"=X. c #47544A",
-"-X. c #465449",
-";X. c #445148",
-">X. c #465149",
-",X. c #4D5751",
-"'X. c #585F52",
-")X. c #5E6456",
-"!X. c #616556",
-"~X. c #5E6352",
-"{X. c #565A45",
-"]X. c #5A5E48",
-"^X. c #5F604B",
-"/X. c #646453",
-"(X. c #676959",
-"_X. c #69695C",
-":X. c #6A6A5E",
-"<X. c #6A6A61",
-"[X. c #686761",
-"}X. c #65685F",
-"|X. c #62695C",
-"1X. c #60685B",
-"2X. c #61695C",
-"3X. c #626A5D",
-"4X. c #626A5A",
-"5X. c #636B5C",
-"6X. c #656C5E",
-"7X. c #666D5E",
-"8X. c #6C7161",
-"9X. c #707262",
-"0X. c #717463",
-"aX. c #727765",
-"bX. c #767A69",
-"cX. c #787C6A",
-"dX. c #777B6A",
-"eX. c #747660",
-"fX. c #6F705A",
-"gX. c #6A6C56",
-"hX. c #747366",
-"iX. c #5E5C4F",
-"jX. c #626053",
-"kX. c #646255",
-"lX. c #656356",
-"mX. c #666458",
-"nX. c #676457",
-"oX. c #656359",
-"pX. c #646157",
-"qX. c #636057",
-"rX. c #626055",
-"sX. c #625F54",
-"tX. c #645E55",
-"uX. c #645C55",
-"vX. c #655E58",
-"wX. c #675F5A",
-"xX. c #675E5A",
-"yX. c #675D5A",
-"zX. c #675D59",
-"AX. c #675C59",
-"BX. c #685D5A",
-"CX. c #695C59",
-"DX. c #685B58",
-"EX. c #685E5E",
-"FX. c #6A6061",
-"GX. c #696061",
-"HX. c #6A6062",
-"IX. c #6C6062",
-"JX. c #6C6162",
-"KX. c #6D6163",
-"LX. c #6D6063",
-"MX. c #6E6062",
-"NX. c #6F6062",
-"OX. c #706062",
-"PX. c #716163",
-"QX. c #716063",
-"RX. c #736267",
-"SX. c #736266",
-"TX. c #736166",
-"UX. c #746167",
-"VX. c #756167",
-"WX. c #766268",
-"XX. c #786369",
-"YX. c #826469",
-"ZX. c #86666A",
-"`X. c #8A6669",
-" Y. c #8E6669",
-".Y. c #916466",
-"+Y. c #8E6260",
-"@Y. c #8B5C59",
-"#Y. c #875A56",
-"$Y. c #845856",
-"%Y. c #7F5452",
-"&Y. c #7C5151",
-"*Y. c #785051",
-"=Y. c #744E50",
-"-Y. c #724D4F",
-";Y. c #714C4E",
-">Y. c #704B4D",
-",Y. c #6E4A4C",
-"'Y. c #70484C",
-")Y. c #6F494C",
-"!Y. c #744F52",
-"~Y. c #765054",
-"{Y. c #775252",
-"]Y. c #7A5655",
-"^Y. c #7A5454",
-"/Y. c #7B5554",
-"(Y. c #7C5857",
-"_Y. c #7E5A59",
-":Y. c #805A5A",
-"<Y. c #815C5A",
-"[Y. c #845E5B",
-"}Y. c #87605C",
-"|Y. c #8A615E",
-"1Y. c #8D635F",
-"2Y. c #916461",
-"3Y. c #946560",
-"4Y. c #966661",
-"5Y. c #986861",
-"6Y. c #986A65",
-"7Y. c #946A64",
-"8Y. c #906963",
-"9Y. c #8B6762",
-"0Y. c #876662",
-"aY. c #836662",
-"bY. c #816864",
-"cY. c #866F6C",
-"dY. c #897471",
-"eY. c #8A7671",
-"fY. c #8A7A76",
-"gY. c #877773",
-"hY. c #867673",
-"iY. c #857672",
-"jY. c #847471",
-"kY. c #A99996",
-"lY. c #998783",
-"mY. c #9F8E88",
-"nY. c #A08E89",
-"oY. c #9D8B86",
-"pY. c #988781",
-"qY. c #857471",
-"rY. c #806F6E",
-"sY. c #7A6A67",
-"tY. c #70605E",
-"uY. c #6B5B59",
-"vY. c #635652",
-"wY. c #5E504C",
-"xY. c #594B49",
-"yY. c #554745",
-"zY. c #463F3E",
-"AY. c #3B312F",
-"BY. c #3A2F2D",
-"CY. c #3A302D",
-"DY. c #3E302F",
-"EY. c #39302C",
-"FY. c #3A312C",
-"GY. c #3C352C",
-"HY. c #5D6858",
-"IY. c #5E6759",
-"JY. c #464945",
-"KY. c #545C54",
-"LY. c #525E53",
-"MY. c #5C6B5E",
-"NY. c #5C6A5E",
-"OY. c #5F6B5F",
-"PY. c #5F6C5F",
-"QY. c #606E60",
-"RY. c #5D6A5D",
-"SY. c #576358",
-"TY. c #505D53",
-"UY. c #4F5C52",
-"VY. c #4E5B51",
-"WY. c #4D5A4F",
-"XY. c #445248",
-"YY. c #455248",
-"ZY. c #49554C",
-"`Y. c #4B574F",
-" Z. c #4E5752",
-".Z. c #4F5952",
-"+Z. c #5C6255",
-"@Z. c #5D6454",
-"#Z. c #5D6253",
-"$Z. c #585D4A",
-"%Z. c #575B48",
-"&Z. c #686B59",
-"*Z. c #6A6E5E",
-"=Z. c #696D5E",
-"-Z. c #696C62",
-";Z. c #696C63",
-">Z. c #656D60",
-",Z. c #656E60",
-"'Z. c #666F61",
-")Z. c #686F62",
-"!Z. c #697064",
-"~Z. c #6B7165",
-"{Z. c #6C7164",
-"]Z. c #6C7364",
-"^Z. c #6E7360",
-"/Z. c #707561",
-"(Z. c #747864",
-"_Z. c #767A66",
-":Z. c #777C68",
-"<Z. c #787C69",
-"[Z. c #797C69",
-"}Z. c #737661",
-"|Z. c #676752",
-"1Z. c #60604B",
-"2Z. c #5C5D48",
-"3Z. c #727163",
-"4Z. c #555346",
-"5Z. c #5E5E50",
-"6Z. c #636154",
-"7Z. c #646456",
-"8Z. c #676658",
-"9Z. c #686659",
-"0Z. c #68665A",
-"aZ. c #656358",
-"bZ. c #636257",
-"cZ. c #626155",
-"dZ. c #616054",
-"eZ. c #615F52",
-"fZ. c #605D52",
-"gZ. c #625E53",
-"hZ. c #646056",
-"iZ. c #655E57",
-"jZ. c #675F59",
-"kZ. c #66605C",
-"lZ. c #67605D",
-"mZ. c #69605D",
-"nZ. c #69605C",
-"oZ. c #695F5C",
-"pZ. c #6A5F5C",
-"qZ. c #6A5E5B",
-"rZ. c #6A6162",
-"sZ. c #6A6063",
-"tZ. c #6B6164",
-"uZ. c #6D6266",
-"vZ. c #6D6264",
-"wZ. c #6E6265",
-"xZ. c #6E6264",
-"yZ. c #6F6266",
-"zZ. c #706264",
-"AZ. c #726565",
-"BZ. c #716363",
-"CZ. c #726364",
-"DZ. c #736567",
-"EZ. c #74666A",
-"FZ. c #75666A",
-"GZ. c #76666A",
-"HZ. c #77666B",
-"IZ. c #78666B",
-"JZ. c #78656B",
-"KZ. c #79666A",
-"LZ. c #79666C",
-"MZ. c #7C676D",
-"NZ. c #7F666B",
-"OZ. c #84686C",
-"PZ. c #876769",
-"QZ. c #8B6463",
-"RZ. c #8F615C",
-"SZ. c #90615A",
-"TZ. c #8E5E58",
-"UZ. c #895A56",
-"VZ. c #865956",
-"WZ. c #835855",
-"XZ. c #825857",
-"YZ. c #7E5554",
-"ZZ. c #7D5454",
-"`Z. c #7A5352",
-" `. c #785252",
-".`. c #765050",
-"+`. c #744E4F",
-"@`. c #734C4E",
-"#`. c #71494C",
-"$`. c #72484A",
-"%`. c #744C4D",
-"&`. c #744A4A",
-"*`. c #774C4C",
-"=`. c #7A4E4E",
-"-`. c #7D5050",
-";`. c #815353",
-">`. c #825352",
-",`. c #845554",
-"'`. c #875754",
-")`. c #895956",
-"!`. c #8C5B57",
-"~`. c #905D59",
-"{`. c #93605C",
-"]`. c #945F5B",
-"^`. c #91605C",
-"/`. c #8E5F5C",
-"(`. c #8C615E",
-"_`. c #87605D",
-":`. c #86625F",
-"<`. c #805F5C",
-"[`. c #7D5E5D",
-"}`. c #7B5E5C",
-"|`. c #7B5F5D",
-"1`. c #7B605F",
-"2`. c #7B615E",
-"3`. c #7D6360",
-"4`. c #7E6562",
-"5`. c #816A68",
-"6`. c #826D6B",
-"7`. c #867270",
-"8`. c #867471",
-"9`. c #877674",
-"0`. c #847571",
-"a`. c #A99A97",
-"b`. c #998884",
-"c`. c #9D8B87",
-"d`. c #A08E8A",
-"e`. c #9F8D88",
-"f`. c #9A8985",
-"g`. c #94847F",
-"h`. c #91807C",
-"i`. c #7F706D",
-"j`. c #7A6B68",
-"k`. c #756664",
-"l`. c #70625E",
-"m`. c #625551",
-"n`. c #5C4F4D",
-"o`. c #594C49",
-"p`. c #413634",
-"q`. c #3F3532",
-"r`. c #403532",
-"s`. c #3D3231",
-"t`. c #3B3634",
-"u`. c #382F2C",
-"v`. c #3A322E",
-"w`. c #403631",
-"x`. c #606A5B",
-"y`. c #606A5A",
-"z`. c #5E685A",
-"A`. c #555D56",
-"B`. c #5A645B",
-"C`. c #5A695C",
-"D`. c #515C51",
-"E`. c #5A685C",
-"F`. c #606E62",
-"G`. c #627062",
-"H`. c #5C6A5C",
-"I`. c #5A675A",
-"J`. c #576459",
-"K`. c #546156",
-"L`. c #526054",
-"M`. c #4F5D52",
-"N`. c #4D5B51",
-"O`. c #4D594F",
-"P`. c #4C5A4E",
-"Q`. c #4C594E",
-"R`. c #48574C",
-"S`. c #435047",
-"T`. c #47554A",
-"U`. c #4A574C",
-"V`. c #4C5851",
-"W`. c #525C55",
-"X`. c #545E56",
-"Y`. c #565F55",
-"Z`. c #576054",
-"``. c #575F53",
-" + c #5A6151",
-". + c #5D6352",
-"+ + c #5E6351",
-"@ + c #5C604E",
-"# + c #595E4B",
-"$ + c #5E6250",
-"% + c #626656",
-"& + c #676C5C",
-"* + c #696E5E",
-"= + c #686E5F",
-"- + c #6A6F61",
-"; + c #6B7063",
-"> + c #6D7068",
-", + c #6C7166",
-"' + c #6C7366",
-") + c #6C7266",
-"! + c #6B7266",
-"~ + c #6E7469",
-"{ + c #6E746A",
-"] + c #6F766A",
-"^ + c #70776B",
-"/ + c #70786B",
-"( + c #707964",
-"_ + c #6F7864",
-": + c #6E7662",
-"< + c #727864",
-"[ + c #747A65",
-"} + c #787D6A",
-"| + c #7A7E6B",
-"1 + c #797D69",
-"2 + c #757B66",
-"3 + c #737663",
-"4 + c #6E715E",
-"5 + c #676954",
-"6 + c #61634D",
-"7 + c #5E5E49",
-"8 + c #5C5D47",
-"9 + c #5E5F4A",
-"0 + c #78776B",
-"a + c #5F5E50",
-"b + c #636254",
-"c + c #666457",
-"d + c #666558",
-"e + c #69675A",
-"f + c #626153",
-"g + c #5F5F52",
-"h + c #605F52",
-"i + c #5F5E52",
-"j + c #605D51",
-"k + c #5F5C52",
-"l + c #615E53",
-"m + c #645F56",
-"n + c #66605A",
-"o + c #68615C",
-"p + c #68615D",
-"q + c #69615C",
-"r + c #6A625D",
-"s + c #6A615D",
-"t + c #6A615C",
-"u + c #6A605C",
-"v + c #6B605C",
-"w + c #6A5F5B",
-"x + c #696060",
-"y + c #6B6264",
-"z + c #6C6464",
-"A + c #6D6364",
-"B + c #6D6366",
-"C + c #6E6365",
-"D + c #6E6364",
-"E + c #706466",
-"F + c #726868",
-"G + c #726767",
-"H + c #726766",
-"I + c #746869",
-"J + c #76696C",
-"K + c #78696D",
-"L + c #786A6E",
-"M + c #796A6F",
-"N + c #7A6A6E",
-"O + c #79696D",
-"P + c #7A696D",
-"Q + c #7C6A6E",
-"R + c #7B6A6D",
-"S + c #7C696C",
-"T + c #7E6767",
-"U + c #886560",
-"V + c #8C655E",
-"W + c #8D625A",
-"X + c #8E6059",
-"Y + c #8F5F59",
-"Z + c #8F5F5A",
-"` + c #8E625C",
-" .+ c #8B5E59",
-"..+ c #885E59",
-"+.+ c #885D59",
-"@.+ c #865C58",
-"#.+ c #845A58",
-"$.+ c #815856",
-"%.+ c #805756",
-"&.+ c #805857",
-"*.+ c #7E5454",
-"=.+ c #7C5250",
-"-.+ c #7A504E",
-";.+ c #794D49",
-">.+ c #7B4E4A",
-",.+ c #7A4B46",
-"'.+ c #7B4946",
-").+ c #7C4946",
-"!.+ c #804C48",
-"~.+ c #824C4A",
-"{.+ c #844C4A",
-"].+ c #864D4B",
-"^.+ c #8A4E4C",
-"/.+ c #8B504E",
-"(.+ c #8C524E",
-"_.+ c #8C5452",
-":.+ c #895553",
-"<.+ c #865554",
-"[.+ c #825553",
-"}.+ c #7F5454",
-"|.+ c #7B5555",
-"1.+ c #775757",
-"2.+ c #775858",
-"3.+ c #765656",
-"4.+ c #765858",
-"5.+ c #745858",
-"6.+ c #755859",
-"7.+ c #755959",
-"8.+ c #745A5A",
-"9.+ c #775C5D",
-"0.+ c #785F5F",
-"a.+ c #796161",
-"b.+ c #7A6362",
-"c.+ c #7C6764",
-"d.+ c #7C6865",
-"e.+ c #80706E",
-"f.+ c #A69894",
-"g.+ c #93827D",
-"h.+ c #978681",
-"i.+ c #9B8885",
-"j.+ c #A2908B",
-"k.+ c #9D8D88",
-"l.+ c #988A85",
-"m.+ c #948480",
-"n.+ c #91807E",
-"o.+ c #8B7C79",
-"p.+ c #857673",
-"q.+ c #80716F",
-"r.+ c #7C6D6A",
-"s.+ c #746663",
-"t.+ c #685A59",
-"u.+ c #5E514E",
-"v.+ c #4B4443",
-"w.+ c #463C39",
-"x.+ c #443B37",
-"y.+ c #453A38",
-"z.+ c #443937",
-"A.+ c #3D3837",
-"B.+ c #332A28",
-"C.+ c #39312E",
-"D.+ c #3F3632",
-"E.+ c #626B5C",
-"F.+ c #616C5C",
-"G.+ c #606B5C",
-"H.+ c #464B46",
-"I.+ c #4F5750",
-"J.+ c #5B695C",
-"K.+ c #4A514B",
-"L.+ c #4E584E",
-"M.+ c #505B50",
-"N.+ c #566357",
-"O.+ c #5E6C5E",
-"P.+ c #5E6B5E",
-"Q.+ c #5F6B5E",
-"R.+ c #677265",
-"S.+ c #606C5F",
-"T.+ c #5B685B",
-"U.+ c #556257",
-"V.+ c #525F54",
-"W.+ c #505E52",
-"X.+ c #4E5C50",
-"Y.+ c #4C584E",
-"Z.+ c #4A584C",
-"`.+ c #49584D",
-" ++ c #465248",
-".++ c #47564B",
-"+++ c #48564B",
-"@++ c #535D55",
-"#++ c #576052",
-"$++ c #5A6253",
-"%++ c #5C6455",
-"&++ c #5E6554",
-"*++ c #5C634E",
-"=++ c #5D624E",
-"-++ c #606552",
-";++ c #646A57",
-">++ c #656B59",
-",++ c #686B5B",
-"'++ c #6D7065",
-")++ c #6E7166",
-"!++ c #71746D",
-"~++ c #70766C",
-"{++ c #717A6D",
-"]++ c #71796D",
-"^++ c #727A6E",
-"/++ c #747C70",
-"(++ c #737C70",
-"_++ c #727B64",
-":++ c #727C63",
-"<++ c #727C64",
-"[++ c #747C64",
-"}++ c #767C65",
-"|++ c #797E68",
-"1++ c #777C66",
-"2++ c #747A63",
-"3++ c #72765F",
-"4++ c #676A54",
-"5++ c #60644E",
-"6++ c #5A5B46",
-"7++ c #666751",
-"8++ c #6E6F5A",
-"9++ c #848376",
-"0++ c #848477",
-"a++ c #858478",
-"b++ c #878679",
-"c++ c #88877A",
-"d++ c #868578",
-"e++ c #838275",
-"f++ c #828073",
-"g++ c #817F72",
-"h++ c #7E7E71",
-"i++ c #7E7F72",
-"j++ c #7D7E71",
-"k++ c #7E7D71",
-"l++ c #7E7D70",
-"m++ c #7E7C70",
-"n++ c #7E7C71",
-"o++ c #807E74",
-"p++ c #828075",
-"q++ c #828076",
-"r++ c #838076",
-"s++ c #848177",
-"t++ c #848076",
-"u++ c #857F76",
-"v++ c #868079",
-"w++ c #88837B",
-"x++ c #87837B",
-"y++ c #88827C",
-"z++ c #88827B",
-"A++ c #87807A",
-"B++ c #867F79",
-"C++ c #867E78",
-"D++ c #867E77",
-"E++ c #867D78",
-"F++ c #847A75",
-"G++ c #857E7B",
-"H++ c #868080",
-"I++ c #888281",
-"J++ c #8A8282",
-"K++ c #8C8483",
-"L++ c #8E8484",
-"M++ c #8F8786",
-"N++ c #918988",
-"O++ c #928988",
-"P++ c #928989",
-"Q++ c #918787",
-"R++ c #928888",
-"S++ c #948A8A",
-"T++ c #968B8B",
-"U++ c #988C8E",
-"V++ c #998D8F",
-"W++ c #9A8E90",
-"X++ c #9A8E91",
-"Y++ c #9A8D90",
-"Z++ c #9C8F91",
-"`++ c #9B8D8F",
-" @+ c #9C8E8E",
-".@+ c #9A8C8A",
-"+@+ c #9A8A8A",
-"@@+ c #9C8B8A",
-"#@+ c #9E8B8A",
-"$@+ c #A38A86",
-"%@+ c #A68984",
-"&@+ c #A78882",
-"*@+ c #A98881",
-"=@+ c #AC8781",
-"-@+ c #B08882",
-";@+ c #B28A83",
-">@+ c #B38983",
-",@+ c #B48A83",
-"'@+ c #B38982",
-")@+ c #B28982",
-"!@+ c #B18781",
-"~@+ c #AE8680",
-"{@+ c #AC837F",
-"]@+ c #AC8480",
-"^@+ c #AA807D",
-"/@+ c #A97E7A",
-"(@+ c #A87C79",
-"_@+ c #A77873",
-":@+ c #A77974",
-"<@+ c #A6756E",
-"[@+ c #A6746E",
-"}@+ c #A6726C",
-"|@+ c #A8736C",
-"1@+ c #A6706A",
-"2@+ c #A66F68",
-"3@+ c #A46C66",
-"4@+ c #A16A65",
-"5@+ c #9F6A65",
-"6@+ c #9C6A65",
-"7@+ c #9B6967",
-"8@+ c #976868",
-"9@+ c #956A6A",
-"0@+ c #92696A",
-"a@+ c #8E6A6A",
-"b@+ c #8C6A6C",
-"c@+ c #8D6B6D",
-"d@+ c #8D6B6C",
-"e@+ c #907070",
-"f@+ c #8E6D6E",
-"g@+ c #8D6E6E",
-"h@+ c #8D6E6F",
-"i@+ c #8D6F6F",
-"j@+ c #8E7071",
-"k@+ c #8F7575",
-"l@+ c #917A7A",
-"m@+ c #917C7A",
-"n@+ c #927E7C",
-"o@+ c #927F7D",
-"p@+ c #92807E",
-"q@+ c #948482",
-"r@+ c #968582",
-"s@+ c #968684",
-"t@+ c #998986",
-"u@+ c #9A8A88",
-"v@+ c #998A88",
-"w@+ c #988A88",
-"x@+ c #9B8C87",
-"y@+ c #9C8C86",
-"z@+ c #9A8C86",
-"A@+ c #998A86",
-"B@+ c #968784",
-"C@+ c #92827E",
-"D@+ c #8D7F7B",
-"E@+ c #887A77",
-"F@+ c #7E716E",
-"G@+ c #796C69",
-"H@+ c #726462",
-"I@+ c #685A58",
-"J@+ c #625854",
-"K@+ c #4E4746",
-"L@+ c #4A413E",
-"M@+ c #4A403D",
-"N@+ c #49403D",
-"O@+ c #483F3C",
-"P@+ c #403B3A",
-"Q@+ c #332A27",
-"R@+ c #342A2A",
-"S@+ c #646D5F",
-"T@+ c #636E5E",
-"U@+ c #626C5D",
-"V@+ c #474C46",
-"W@+ c #515A51",
-"X@+ c #575F58",
-"Y@+ c #4D574E",
-"Z@+ c #576458",
-"`@+ c #5D6B5E",
-" #+ c #677266",
-".#+ c #637062",
-"+#+ c #5E6A5D",
-"@#+ c #5A665A",
-"##+ c #515D52",
-"$#+ c #4B584D",
-"%#+ c #4A574D",
-"&#+ c #4B574E",
-"*#+ c #4F5D53",
-"=#+ c #4F5E53",
-"-#+ c #4F5C53",
-";#+ c #505D54",
-">#+ c #525F55",
-",#+ c #556056",
-"'#+ c #566054",
-")#+ c #5A6456",
-"!#+ c #5D6657",
-"~#+ c #616A57",
-"{#+ c #606954",
-"]#+ c #5F6650",
-"^#+ c #616651",
-"/#+ c #666D58",
-"(#+ c #6B705E",
-"_#+ c #6D7162",
-":#+ c #6E7164",
-"<#+ c #6E756C",
-"[#+ c #70786E",
-"}#+ c #737C6E",
-"|#+ c #737C6F",
-"1#+ c #757D71",
-"2#+ c #7A8073",
-"3#+ c #788074",
-"4#+ c #747E6B",
-"5#+ c #747D66",
-"6#+ c #747D63",
-"7#+ c #767D64",
-"8#+ c #737862",
-"9#+ c #6B6E58",
-"0#+ c #62664F",
-"a#+ c #5C5F49",
-"b#+ c #585A45",
-"c#+ c #585944",
-"d#+ c #60614B",
-"e#+ c #6C6E58",
-"f#+ c #757761",
-"g#+ c #767863",
-"h#+ c #767762",
-"i#+ c #747561",
-"j#+ c #727360",
-"k#+ c #70725F",
-"l#+ c #6C6D5A",
-"m#+ c #666755",
-"n#+ c #616250",
-"o#+ c #5E5F4E",
-"p#+ c #5E604E",
-"q#+ c #5E5E4D",
-"r#+ c #5E5F4D",
-"s#+ c #5D5E4D",
-"t#+ c #5F5F4F",
-"u#+ c #646353",
-"v#+ c #646254",
-"w#+ c #626254",
-"x#+ c #656456",
-"y#+ c #666556",
-"z#+ c #666356",
-"A#+ c #656256",
-"B#+ c #666252",
-"C#+ c #676150",
-"D#+ c #676253",
-"E#+ c #676458",
-"F#+ c #665F53",
-"G#+ c #645C51",
-"H#+ c #62594E",
-"I#+ c #625A4E",
-"J#+ c #61574C",
-"K#+ c #60554A",
-"L#+ c #645C58",
-"M#+ c #645C59",
-"N#+ c #766D69",
-"O#+ c #796F6B",
-"P#+ c #78706D",
-"Q#+ c #797371",
-"R#+ c #797170",
-"S#+ c #797270",
-"T#+ c #7C7472",
-"U#+ c #7E7574",
-"V#+ c #817775",
-"W#+ c #827776",
-"X#+ c #847877",
-"Y#+ c #867B79",
-"Z#+ c #877C79",
-"`#+ c #887C79",
-" $+ c #8A7D7B",
-".$+ c #8B7E7C",
-"+$+ c #8C7E7B",
-"@$+ c #8D7F7C",
-"#$+ c #8D7E7A",
-"$$+ c #8E7E7C",
-"%$+ c #8E7F7D",
-"&$+ c #8E7E7B",
-"*$+ c #947A72",
-"=$+ c #977A72",
-"-$+ c #9C7B72",
-";$+ c #A07C73",
-">$+ c #A27C72",
-",$+ c #A37D72",
-"'$+ c #A67E74",
-")$+ c #A77C71",
-"!$+ c #A87C71",
-"~$+ c #A87A70",
-"{$+ c #A8786F",
-"]$+ c #A8766E",
-"^$+ c #A8766D",
-"/$+ c #A6736B",
-"($+ c #A46E66",
-"_$+ c #A26A62",
-":$+ c #A1665B",
-"<$+ c #9C6056",
-"[$+ c #9A5E54",
-"}$+ c #975C51",
-"|$+ c #955C52",
-"1$+ c #91594E",
-"2$+ c #8E584E",
-"3$+ c #895449",
-"4$+ c #845048",
-"5$+ c #804D46",
-"6$+ c #7B4A44",
-"7$+ c #764742",
-"8$+ c #704440",
-"9$+ c #6B4440",
-"0$+ c #663F3C",
-"a$+ c #663E3C",
-"b$+ c #653D3B",
-"c$+ c #653D3C",
-"d$+ c #673F3E",
-"e$+ c #653E3E",
-"f$+ c #653E3F",
-"g$+ c #633B3C",
-"h$+ c #643A3B",
-"i$+ c #653C3E",
-"j$+ c #663D40",
-"k$+ c #674042",
-"l$+ c #684445",
-"m$+ c #694648",
-"n$+ c #6A494A",
-"o$+ c #6C4B4C",
-"p$+ c #6E4E50",
-"q$+ c #6E5051",
-"r$+ c #705153",
-"s$+ c #705252",
-"t$+ c #705555",
-"u$+ c #715757",
-"v$+ c #705656",
-"w$+ c #705758",
-"x$+ c #725858",
-"y$+ c #735C5B",
-"z$+ c #745D5A",
-"A$+ c #765F5C",
-"B$+ c #826E69",
-"C$+ c #94837E",
-"D$+ c #968680",
-"E$+ c #968681",
-"F$+ c #968682",
-"G$+ c #92827F",
-"H$+ c #897B79",
-"I$+ c #7B6E6C",
-"J$+ c #756968",
-"K$+ c #6C5F5E",
-"L$+ c #675A59",
-"M$+ c #4F4A49",
-"N$+ c #4E4542",
-"O$+ c #4D4342",
-"P$+ c #4E4543",
-"Q$+ c #423E3C",
-"R$+ c #38302C",
-"S$+ c #352C2A",
-"T$+ c #362E2B",
-"U$+ c #646E5F",
-"V$+ c #525A52",
-"W$+ c #5C665C",
-"X$+ c #586559",
-"Y$+ c #5A655B",
-"Z$+ c #586459",
-"`$+ c #556256",
-" %+ c #526055",
-".%+ c #4E5C51",
-"+%+ c #4A594E",
-"@%+ c #4D5B50",
-"#%+ c #516055",
-"$%+ c #536057",
-"%%+ c #576258",
-"&%+ c #5A6458",
-"*%+ c #5B645A",
-"=%+ c #5B6459",
-"-%+ c #5E675A",
-";%+ c #616B5A",
-">%+ c #606958",
-",%+ c #606853",
-"'%+ c #616A53",
-")%+ c #686F59",
-"!%+ c #6E7460",
-"~%+ c #727766",
-"{%+ c #73776A",
-"]%+ c #71786E",
-"^%+ c #727A70",
-"/%+ c #737C71",
-"(%+ c #747E72",
-"_%+ c #747F71",
-":%+ c #788072",
-"<%+ c #7C8478",
-"[%+ c #7C8378",
-"}%+ c #7B8277",
-"|%+ c #798073",
-"1%+ c #757E6D",
-"2%+ c #747D68",
-"3%+ c #747E66",
-"4%+ c #747E62",
-"5%+ c #757F62",
-"6%+ c #798166",
-"7%+ c #767B63",
-"8%+ c #6E725A",
-"9%+ c #646A52",
-"0%+ c #5E624A",
-"a%+ c #575B43",
-"b%+ c #54583E",
-"c%+ c #585D46",
-"d%+ c #62644E",
-"e%+ c #6C6D58",
-"f%+ c #757660",
-"g%+ c #767761",
-"h%+ c #70715D",
-"i%+ c #6C6D59",
-"j%+ c #676855",
-"k%+ c #646452",
-"l%+ c #636451",
-"m%+ c #626251",
-"n%+ c #656652",
-"o%+ c #646652",
-"p%+ c #636652",
-"q%+ c #626451",
-"r%+ c #666853",
-"s%+ c #676854",
-"t%+ c #666756",
-"u%+ c #676758",
-"v%+ c #686759",
-"w%+ c #6A695A",
-"x%+ c #6B6A5B",
-"y%+ c #696759",
-"z%+ c #666455",
-"A%+ c #646053",
-"B%+ c #64604E",
-"C%+ c #645E49",
-"D%+ c #625B49",
-"E%+ c #625C4E",
-"F%+ c #5F5A4A",
-"G%+ c #5E5748",
-"H%+ c #5D5546",
-"I%+ c #5A5042",
-"J%+ c #5C5244",
-"K%+ c #5E5245",
-"L%+ c #5E5345",
-"M%+ c #605444",
-"N%+ c #605447",
-"O%+ c #62564C",
-"P%+ c #69625C",
-"Q%+ c #6C635E",
-"R%+ c #706761",
-"S%+ c #766E68",
-"T%+ c #7C746C",
-"U%+ c #7E7870",
-"V%+ c #827C77",
-"W%+ c #827D7B",
-"X%+ c #847E7C",
-"Y%+ c #867F7D",
-"Z%+ c #88807E",
-"`%+ c #8A8280",
-" &+ c #908784",
-".&+ c #928A86",
-"+&+ c #968C88",
-"@&+ c #988D8A",
-"#&+ c #988E8A",
-"$&+ c #9B8F8C",
-"%&+ c #9B8E8C",
-"&&+ c #9D928F",
-"*&+ c #9D918E",
-"=&+ c #9E928F",
-"-&+ c #9E918E",
-";&+ c #A0908E",
-">&+ c #A08D87",
-",&+ c #A08D86",
-"'&+ c #A08C86",
-")&+ c #A28C84",
-"!&+ c #A68D85",
-"~&+ c #A68A82",
-"{&+ c #A88B81",
-"]&+ c #AA8C82",
-"^&+ c #AB8A7F",
-"/&+ c #AC8A7E",
-"(&+ c #AB887D",
-"_&+ c #AA867D",
-":&+ c #AA847C",
-"<&+ c #A88078",
-"[&+ c #A47C73",
-"}&+ c #A37970",
-"|&+ c #A1746A",
-"1&+ c #A17469",
-"2&+ c #9C6E65",
-"3&+ c #9A6B61",
-"4&+ c #986A60",
-"5&+ c #96695F",
-"6&+ c #92655C",
-"7&+ c #8E645C",
-"8&+ c #895F58",
-"9&+ c #845E57",
-"0&+ c #805B55",
-"a&+ c #7D5854",
-"b&+ c #7A5650",
-"c&+ c #785450",
-"d&+ c #75514E",
-"e&+ c #73504B",
-"f&+ c #714E4A",
-"g&+ c #704E4A",
-"h&+ c #704F4D",
-"i&+ c #6E4C4A",
-"j&+ c #6F4F4C",
-"k&+ c #694845",
-"l&+ c #664542",
-"m&+ c #64423F",
-"n&+ c #63403E",
-"o&+ c #623E3C",
-"p&+ c #603B3B",
-"q&+ c #5F3C3A",
-"r&+ c #603C3D",
-"s&+ c #623E3F",
-"t&+ c #644143",
-"u&+ c #644344",
-"v&+ c #664546",
-"w&+ c #674848",
-"x&+ c #684A49",
-"y&+ c #6A4C4C",
-"z&+ c #6C4F4E",
-"A&+ c #6C5050",
-"B&+ c #6D5151",
-"C&+ c #6E5453",
-"D&+ c #6E5655",
-"E&+ c #6F5654",
-"F&+ c #705A56",
-"G&+ c #755F5B",
-"H&+ c #77625F",
-"I&+ c #85716C",
-"J&+ c #907F7C",
-"K&+ c #8C7E7A",
-"L&+ c #8B7D7B",
-"M&+ c #887A78",
-"N&+ c #7F7270",
-"O&+ c #7A6E6C",
-"P&+ c #746967",
-"Q&+ c #6B605E",
-"R&+ c #514B4A",
-"S&+ c #524A47",
-"T&+ c #504946",
-"U&+ c #544B48",
-"V&+ c #564C49",
-"W&+ c #3C3432",
-"X&+ c #3C3331",
-"Y&+ c #656F63",
-"Z&+ c #535C52",
-"`&+ c #586257",
-" *+ c #5C685B",
-".*+ c #4B524B",
-"+*+ c #576457",
-"@*+ c #636E68",
-"#*+ c #646F69",
-"$*+ c #64706A",
-"%*+ c #66706B",
-"&*+ c #67716C",
-"**+ c #68726C",
-"=*+ c #677168",
-"-*+ c #5D695D",
-";*+ c #5B675B",
-">*+ c #5A655A",
-",*+ c #5A6259",
-"'*+ c #596258",
-")*+ c #576156",
-"!*+ c #566056",
-"~*+ c #565F56",
-"{*+ c #505E53",
-"]*+ c #515E52",
-"^*+ c #4E5A51",
-"/*+ c #4C5B4F",
-"(*+ c #525E55",
-"_*+ c #556058",
-":*+ c #546157",
-"<*+ c #526156",
-"[*+ c #515F58",
-"}*+ c #53605A",
-"|*+ c #55615A",
-"1*+ c #596659",
-"2*+ c #5A6659",
-"3*+ c #626F61",
-"4*+ c #616F60",
-"5*+ c #606D5C",
-"6*+ c #5D6C58",
-"7*+ c #5D6B56",
-"8*+ c #626F5B",
-"9*+ c #697463",
-"0*+ c #6E7867",
-"a*+ c #717B6C",
-"b*+ c #747C71",
-"c*+ c #717B6D",
-"d*+ c #767F72",
-"e*+ c #788075",
-"f*+ c #7B8374",
-"g*+ c #7C8471",
-"h*+ c #7C846F",
-"i*+ c #7A816A",
-"j*+ c #787F67",
-"k*+ c #757D64",
-"l*+ c #727A61",
-"m*+ c #757C64",
-"n*+ c #7A8068",
-"o*+ c #777E66",
-"p*+ c #727661",
-"q*+ c #6D6D5A",
-"r*+ c #636350",
-"s*+ c #5A5B48",
-"t*+ c #545440",
-"u*+ c #555541",
-"v*+ c #5C5C4A",
-"w*+ c #666653",
-"x*+ c #6B6A56",
-"y*+ c #70705A",
-"z*+ c #767660",
-"A*+ c #73745E",
-"B*+ c #6F6F5B",
-"C*+ c #6B6A54",
-"D*+ c #6A6A54",
-"E*+ c #686852",
-"F*+ c #686751",
-"G*+ c #696852",
-"H*+ c #686A54",
-"I*+ c #6B6D58",
-"J*+ c #6A6C58",
-"K*+ c #686A58",
-"L*+ c #6A6C59",
-"M*+ c #6D6E59",
-"N*+ c #6B6C58",
-"O*+ c #6C6C58",
-"P*+ c #6F6E5B",
-"Q*+ c #6F6D58",
-"R*+ c #6F6C59",
-"S*+ c #6B6855",
-"T*+ c #686351",
-"U*+ c #615C4A",
-"V*+ c #5C5743",
-"W*+ c #58513E",
-"X*+ c #564A3B",
-"Y*+ c #56463A",
-"Z*+ c #534336",
-"`*+ c #53443C",
-" =+ c #54443F",
-".=+ c #54453F",
-"+=+ c #53443E",
-"@=+ c #52423C",
-"#=+ c #52423A",
-"$=+ c #55443D",
-"%=+ c #56453D",
-"&=+ c #57463E",
-"*=+ c #5A4841",
-"==+ c #5C4C43",
-"-=+ c #5F4E44",
-";=+ c #64524B",
-">=+ c #71625A",
-",=+ c #7D7067",
-"'=+ c #81756F",
-")=+ c #827771",
-"!=+ c #888078",
-"~=+ c #8C857D",
-"{=+ c #8E8881",
-"]=+ c #918C84",
-"^=+ c #949088",
-"/=+ c #97928D",
-"(=+ c #989490",
-"_=+ c #9A9592",
-":=+ c #9D9895",
-"<=+ c #A29C99",
-"[=+ c #A6A09D",
-"}=+ c #A8A19E",
-"|=+ c #A8A29E",
-"1=+ c #AAA19E",
-"2=+ c #AAA29F",
-"3=+ c #ABA3A0",
-"4=+ c #ABA09B",
-"5=+ c #AB9C94",
-"6=+ c #A99A93",
-"7=+ c #AA9A93",
-"8=+ c #AA9A92",
-"9=+ c #AD9C92",
-"0=+ c #AA9890",
-"a=+ c #A9968E",
-"b=+ c #AA968E",
-"c=+ c #AB968B",
-"d=+ c #A99389",
-"e=+ c #AA9288",
-"f=+ c #A99086",
-"g=+ c #AB8F86",
-"h=+ c #AA8D86",
-"i=+ c #A68982",
-"j=+ c #A4867F",
-"k=+ c #A38279",
-"l=+ c #A17E74",
-"m=+ c #9C7A70",
-"n=+ c #947269",
-"o=+ c #927268",
-"p=+ c #8F7067",
-"q=+ c #876B62",
-"r=+ c #866962",
-"s=+ c #856760",
-"t=+ c #84655D",
-"u=+ c #82635A",
-"v=+ c #80625A",
-"w=+ c #7E6057",
-"x=+ c #7F6259",
-"y=+ c #7C6057",
-"z=+ c #795E56",
-"A=+ c #795C54",
-"B=+ c #7A5B54",
-"C=+ c #7A5E56",
-"D=+ c #785C54",
-"E=+ c #775A54",
-"F=+ c #72564E",
-"G=+ c #6F534B",
-"H=+ c #6B5048",
-"I=+ c #6A4C45",
-"J=+ c #674A43",
-"K=+ c #654741",
-"L=+ c #62463F",
-"M=+ c #60433C",
-"N=+ c #60403D",
-"O=+ c #5F3E3C",
-"P=+ c #5E3C3C",
-"Q=+ c #613C3E",
-"R=+ c #633E40",
-"S=+ c #644042",
-"T=+ c #644243",
-"U=+ c #654546",
-"V=+ c #68484A",
-"W=+ c #6A4A4C",
-"X=+ c #6A4C4E",
-"Y=+ c #6A504E",
-"Z=+ c #6C5150",
-"`=+ c #6F5454",
-" -+ c #765D5D",
-".-+ c #755B5C",
-"+-+ c #775E5F",
-"@-+ c #7E6E69",
-"#-+ c #81716C",
-"$-+ c #827672",
-"%-+ c #7A706C",
-"&-+ c #716762",
-"*-+ c #6E6261",
-"=-+ c #6B605D",
-"--+ c #524C4B",
-";-+ c #544C4B",
-">-+ c #544E4A",
-",-+ c #5A524E",
-"'-+ c #5A514E",
-")-+ c #423C39",
-"!-+ c #413936",
-"~-+ c #636E61",
-"{-+ c #525C51",
-"]-+ c #586256",
-"^-+ c #5D695C",
-"/-+ c #4E5A4E",
-"(-+ c #525D51",
-"_-+ c #596558",
-":-+ c #626E66",
-"<-+ c #636F68",
-"[-+ c #67706C",
-"}-+ c #68716C",
-"|-+ c #5A635A",
-"1-+ c #596259",
-"2-+ c #515E53",
-"3-+ c #515D53",
-"4-+ c #566259",
-"5-+ c #576359",
-"6-+ c #566458",
-"7-+ c #57645C",
-"8-+ c #58665E",
-"9-+ c #5A665E",
-"0-+ c #5F6D5F",
-"a-+ c #616F5E",
-"b-+ c #606E5A",
-"c-+ c #64725C",
-"d-+ c #6A7764",
-"e-+ c #738070",
-"f-+ c #788073",
-"g-+ c #767F73",
-"h-+ c #747E70",
-"i-+ c #757E71",
-"j-+ c #7A8274",
-"k-+ c #7E8775",
-"l-+ c #7B8370",
-"m-+ c #78806A",
-"n-+ c #747B64",
-"o-+ c #727861",
-"p-+ c #747C63",
-"q-+ c #727A64",
-"r-+ c #717760",
-"s-+ c #6B725A",
-"t-+ c #656853",
-"u-+ c #5C5D4A",
-"v-+ c #545340",
-"w-+ c #4E4E3B",
-"x-+ c #50503D",
-"y-+ c #5A5A47",
-"z-+ c #62624F",
-"A-+ c #6E6E58",
-"B-+ c #6F6F5A",
-"C-+ c #6F705B",
-"D-+ c #6C6C55",
-"E-+ c #6D6E56",
-"F-+ c #717058",
-"G-+ c #6F715E",
-"H-+ c #707260",
-"I-+ c #737462",
-"J-+ c #727462",
-"K-+ c #696655",
-"L-+ c #635E4E",
-"M-+ c #5A5242",
-"N-+ c #504839",
-"O-+ c #493F37",
-"P-+ c #463A36",
-"Q-+ c #44343C",
-"R-+ c #44323C",
-"S-+ c #44323A",
-"T-+ c #443338",
-"U-+ c #493A3A",
-"V-+ c #4F403A",
-"W-+ c #53463F",
-"X-+ c #584A42",
-"Y-+ c #5C4E45",
-"Z-+ c #5E4F46",
-"`-+ c #63544A",
-" ;+ c #66554C",
-".;+ c #69584D",
-"+;+ c #725C4C",
-"@;+ c #7E624C",
-"#;+ c #836856",
-"$;+ c #8A7060",
-"%;+ c #8E7463",
-"&;+ c #957D6B",
-"*;+ c #968070",
-"=;+ c #958577",
-"-;+ c #92887E",
-";;+ c #98928A",
-">;+ c #9C988F",
-",;+ c #A19D96",
-"';+ c #A4A09A",
-");+ c #A6A19D",
-"!;+ c #A8A5A1",
-"~;+ c #ABA7A4",
-"{;+ c #ACA8A4",
-"];+ c #AEA9A6",
-"^;+ c #AFAAA6",
-"/;+ c #B2AEA9",
-"(;+ c #B1ACA8",
-"_;+ c #B4AEAB",
-":;+ c #B2ACA8",
-"<;+ c #B3ACA8",
-"[;+ c #B2AAA6",
-"};+ c #B3A8A0",
-"|;+ c #B2A69D",
-"1;+ c #B0A49B",
-"2;+ c #B0A39B",
-"3;+ c #B1A49A",
-"4;+ c #B4A49A",
-"5;+ c #B4A499",
-"6;+ c #B2A097",
-"7;+ c #B19F96",
-"8;+ c #AF9D94",
-"9;+ c #AE9C93",
-"0;+ c #AC998F",
-"a;+ c #AA978D",
-"b;+ c #AA968D",
-"c;+ c #A8958C",
-"d;+ c #A6928B",
-"e;+ c #A38D87",
-"f;+ c #A18980",
-"g;+ c #9E857B",
-"h;+ c #9E847A",
-"i;+ c #9B8078",
-"j;+ c #977C73",
-"k;+ c #957970",
-"l;+ c #94776E",
-"m;+ c #94786F",
-"n;+ c #94766E",
-"o;+ c #8F736A",
-"p;+ c #8A7067",
-"q;+ c #896C64",
-"r;+ c #876A62",
-"s;+ c #856960",
-"t;+ c #866A62",
-"u;+ c #82665D",
-"v;+ c #7F635A",
-"w;+ c #7E625A",
-"x;+ c #80645C",
-"y;+ c #7E6258",
-"z;+ c #7F645C",
-"A;+ c #785C55",
-"B;+ c #765A52",
-"C;+ c #745851",
-"D;+ c #725750",
-"E;+ c #71554F",
-"F;+ c #6E534C",
-"G;+ c #6C514A",
-"H;+ c #6A4F46",
-"I;+ c #684E45",
-"J;+ c #654B43",
-"K;+ c #634942",
-"L;+ c #604742",
-"M;+ c #5D4441",
-"N;+ c #5A423D",
-"O;+ c #5A403A",
-"P;+ c #5A3E3B",
-"Q;+ c #583C3A",
-"R;+ c #5C3A3A",
-"S;+ c #5C3A3C",
-"T;+ c #5C3C3C",
-"U;+ c #5E3F3E",
-"V;+ c #604342",
-"W;+ c #634747",
-"X;+ c #65494A",
-"Y;+ c #684E4E",
-"Z;+ c #6D5454",
-"`;+ c #6B5151",
-" >+ c #6D5754",
-".>+ c #6F5D59",
-"+>+ c #71605C",
-"@>+ c #74625F",
-"#>+ c #786965",
-"$>+ c #7D706C",
-"%>+ c #7D6F6C",
-"&>+ c #7C6F6A",
-"*>+ c #786D69",
-"=>+ c #766C68",
-"->+ c #746A64",
-";>+ c #726862",
-">>+ c #706461",
-",>+ c #6E6260",
-"'>+ c #524D4B",
-")>+ c #544D4C",
-"!>+ c #564F4D",
-"~>+ c #5C5451",
-"{>+ c #48413F",
-"]>+ c #46403E",
-"^>+ c #636D60",
-"/>+ c #636C61",
-"(>+ c #636D61",
-"_>+ c #4B534C",
-":>+ c #525E52",
-"<>+ c #5A6658",
-"[>+ c #616E60",
-"}>+ c #626E67",
-"|>+ c #67706B",
-"1>+ c #69726C",
-"2>+ c #5A645A",
-"3>+ c #586258",
-"4>+ c #586157",
-"5>+ c #586057",
-"6>+ c #536156",
-"7>+ c #58665A",
-"8>+ c #59685E",
-"9>+ c #5A6961",
-"0>+ c #5D6B61",
-"a>+ c #5E6C62",
-"b>+ c #606E5F",
-"c>+ c #637264",
-"d>+ c #657263",
-"e>+ c #637061",
-"f>+ c #62705E",
-"g>+ c #63705F",
-"h>+ c #697663",
-"i>+ c #758171",
-"j>+ c #798173",
-"k>+ c #788174",
-"l>+ c #798174",
-"m>+ c #778074",
-"n>+ c #7B8372",
-"o>+ c #7A826F",
-"p>+ c #757E6A",
-"q>+ c #737A64",
-"r>+ c #727761",
-"s>+ c #727760",
-"t>+ c #6E725D",
-"u>+ c #6B705A",
-"v>+ c #666A54",
-"w>+ c #5D614B",
-"x>+ c #565843",
-"y>+ c #4D4E3A",
-"z>+ c #484834",
-"A>+ c #4F4F3B",
-"B>+ c #585844",
-"C>+ c #5F5E4C",
-"D>+ c #676852",
-"E>+ c #6A6A55",
-"F>+ c #72715D",
-"G>+ c #72735E",
-"H>+ c #6E6C58",
-"I>+ c #6F6C58",
-"J>+ c #6F6E5A",
-"K>+ c #75745E",
-"L>+ c #767560",
-"M>+ c #787764",
-"N>+ c #7A7867",
-"O>+ c #767764",
-"P>+ c #72705E",
-"Q>+ c #686654",
-"R>+ c #5E5B4A",
-"S>+ c #514D3D",
-"T>+ c #473E38",
-"U>+ c #453839",
-"V>+ c #453842",
-"W>+ c #4A3C46",
-"X>+ c #4A3A46",
-"Y>+ c #473845",
-"Z>+ c #473642",
-"`>+ c #45343E",
-" ,+ c #45333C",
-".,+ c #463439",
-"+,+ c #4C3C36",
-"@,+ c #54463D",
-"#,+ c #574943",
-"$,+ c #5C4E46",
-"%,+ c #63554C",
-"&,+ c #66584E",
-"*,+ c #6A5B52",
-"=,+ c #6E6057",
-"-,+ c #7C6A5E",
-";,+ c #8E7562",
-">,+ c #997C66",
-",,+ c #9B7C66",
-"',+ c #997E66",
-"),+ c #9C8471",
-"!,+ c #9A816E",
-"~,+ c #9C836F",
-"{,+ c #A08876",
-"],+ c #A28E7C",
-"^,+ c #9C9084",
-"/,+ c #9A938D",
-"(,+ c #A09C94",
-"_,+ c #A8A39C",
-":,+ c #ADA9A3",
-"<,+ c #B0ADA8",
-"[,+ c #B2AFAA",
-"},+ c #B3B1AC",
-"|,+ c #B4B1AC",
-"1,+ c #B5B2AE",
-"2,+ c #B7B4B0",
-"3,+ c #B7B4AF",
-"4,+ c #B9B4B0",
-"5,+ c #B8B4AF",
-"6,+ c #B8B2AE",
-"7,+ c #B7B1AD",
-"8,+ c #B8B1AD",
-"9,+ c #B6B0AC",
-"0,+ c #B7AFA9",
-"a,+ c #B7ACA4",
-"b,+ c #B6AAA2",
-"c,+ c #B5AAA0",
-"d,+ c #B6A9A0",
-"e,+ c #B6AAA0",
-"f,+ c #BAACA1",
-"g,+ c #B9AA9E",
-"h,+ c #B8A99E",
-"i,+ c #B6A69C",
-"j,+ c #B4A299",
-"k,+ c #B09E93",
-"l,+ c #B09C92",
-"m,+ c #AE9A91",
-"n,+ c #AC9991",
-"o,+ c #AC9790",
-"p,+ c #AA968F",
-"q,+ c #A9918B",
-"r,+ c #A68E83",
-"s,+ c #A48A80",
-"t,+ c #A2887E",
-"u,+ c #A0847C",
-"v,+ c #9C8178",
-"w,+ c #9A7E76",
-"x,+ c #967B72",
-"y,+ c #987D75",
-"z,+ c #947A71",
-"A,+ c #91786D",
-"B,+ c #90766C",
-"C,+ c #8F756B",
-"D,+ c #8E746A",
-"E,+ c #886C62",
-"F,+ c #856A60",
-"G,+ c #82675E",
-"H,+ c #80665C",
-"I,+ c #7F645B",
-"J,+ c #80655C",
-"K,+ c #7F655B",
-"L,+ c #7C6259",
-"M,+ c #7C625A",
-"N,+ c #785E57",
-"O,+ c #775E56",
-"P,+ c #765C55",
-"Q,+ c #765A53",
-"R,+ c #755952",
-"S,+ c #735852",
-"T,+ c #705850",
-"U,+ c #6F564E",
-"V,+ c #6D554C",
-"W,+ c #6A534B",
-"X,+ c #685048",
-"Y,+ c #654E47",
-"Z,+ c #644E47",
-"`,+ c #624D45",
-" '+ c #604A45",
-".'+ c #5D4943",
-"+'+ c #58453F",
-"@'+ c #56423D",
-"#'+ c #553E3A",
-"$'+ c #563C3C",
-"%'+ c #563C3B",
-"&'+ c #5B3F40",
-"*'+ c #614749",
-"='+ c #614E4A",
-"-'+ c #66524E",
-";'+ c #6C5A56",
-">'+ c #6E5C58",
-",'+ c #705E5C",
-"''+ c #705F5D",
-")'+ c #736460",
-"!'+ c #766862",
-"~'+ c #746863",
-"{'+ c #736963",
-"]'+ c #726661",
-"^'+ c #716561",
-"/'+ c #706561",
-"('+ c #6D615E",
-"_'+ c #665D5A",
-":'+ c #4C4543",
-"<'+ c #4C4442",
-"['+ c #4E4644",
-"}'+ c #4D544D",
-"|'+ c #536054",
-"1'+ c #647067",
-"2'+ c #5A675B",
-"3'+ c #59675A",
-"4'+ c #59675C",
-"5'+ c #5B695E",
-"6'+ c #5F6D61",
-"7'+ c #606E64",
-"8'+ c #617061",
-"9'+ c #627162",
-"0'+ c #657464",
-"a'+ c #667262",
-"b'+ c #647261",
-"c'+ c #657262",
-"d'+ c #6A7665",
-"e'+ c #6D7A6A",
-"f'+ c #738071",
-"g'+ c #768172",
-"h'+ c #7A8275",
-"i'+ c #798274",
-"j'+ c #777F71",
-"k'+ c #788270",
-"l'+ c #767F6C",
-"m'+ c #737C67",
-"n'+ c #707660",
-"o'+ c #6C705C",
-"p'+ c #6E725E",
-"q'+ c #696E5A",
-"r'+ c #606551",
-"s'+ c #575A47",
-"t'+ c #4F523E",
-"u'+ c #494A36",
-"v'+ c #484833",
-"w'+ c #4D4C39",
-"x'+ c #54543F",
-"y'+ c #565742",
-"z'+ c #5B5C49",
-"A'+ c #676654",
-"B'+ c #6A6A56",
-"C'+ c #6C6E57",
-"D'+ c #72725C",
-"E'+ c #73725F",
-"F'+ c #6F6E58",
-"G'+ c #716E5B",
-"H'+ c #73725E",
-"I'+ c #797862",
-"J'+ c #7B7A65",
-"K'+ c #7C7A69",
-"L'+ c #777465",
-"M'+ c #6F6B5B",
-"N'+ c #605B4C",
-"O'+ c #4E4A3B",
-"P'+ c #463C38",
-"Q'+ c #45383E",
-"R'+ c #4A3844",
-"S'+ c #4C3F49",
-"T'+ c #4D424A",
-"U'+ c #4B3E48",
-"V'+ c #493B45",
-"W'+ c #473A43",
-"X'+ c #42343E",
-"Y'+ c #42343D",
-"Z'+ c #45353B",
-"`'+ c #483837",
-" )+ c #493A36",
-".)+ c #4C3C34",
-"+)+ c #524335",
-"@)+ c #564A40",
-"#)+ c #5C4F48",
-"$)+ c #62554D",
-"%)+ c #655850",
-"&)+ c #695C52",
-"*)+ c #6C6056",
-"=)+ c #71675C",
-"-)+ c #7E6F61",
-";)+ c #947C66",
-">)+ c #9E826A",
-",)+ c #A1846C",
-"')+ c #A2856D",
-"))+ c #A1866D",
-"!)+ c #A28C75",
-"~)+ c #A5927F",
-"{)+ c #A5907E",
-"])+ c #A6907E",
-"^)+ c #A8917E",
-"/)+ c #A6907C",
-"()+ c #A7907E",
-"_)+ c #A89381",
-":)+ c #A19288",
-"<)+ c #9E9792",
-"[)+ c #A5A29B",
-"})+ c #ADA9A2",
-"|)+ c #B2B0AA",
-"1)+ c #B7B5AE",
-"2)+ c #B8B7B0",
-"3)+ c #B9B7B2",
-"4)+ c #BBB9B5",
-"5)+ c #BEBCB7",
-"6)+ c #BCBAB6",
-"7)+ c #C0BCB8",
-"8)+ c #BCB8B4",
-"9)+ c #BCB8B3",
-"0)+ c #BAB6B1",
-"a)+ c #BBB6B3",
-"b)+ c #B9B4AF",
-"c)+ c #BBB2AA",
-"d)+ c #BBB1A8",
-"e)+ c #BAAFA6",
-"f)+ c #B9AEA6",
-"g)+ c #BAADA4",
-"h)+ c #BAAEA5",
-"i)+ c #BDAFA4",
-"j)+ c #BCAEA2",
-"k)+ c #BBACA1",
-"l)+ c #BAABA0",
-"m)+ c #B6A59C",
-"n)+ c #B4A298",
-"o)+ c #B2A196",
-"p)+ c #B19F94",
-"q)+ c #B09E94",
-"r)+ c #B09C94",
-"s)+ c #AE9C94",
-"t)+ c #AC9992",
-"u)+ c #AA938A",
-"v)+ c #A79084",
-"w)+ c #A48B81",
-"x)+ c #A38A80",
-"y)+ c #9D8279",
-"z)+ c #988076",
-"A)+ c #957D72",
-"B)+ c #977E74",
-"C)+ c #947A70",
-"D)+ c #947C72",
-"E)+ c #92796E",
-"F)+ c #92786E",
-"G)+ c #91776C",
-"H)+ c #90756C",
-"I)+ c #8F746C",
-"J)+ c #8D736A",
-"K)+ c #896E66",
-"L)+ c #886E66",
-"M)+ c #876D64",
-"N)+ c #856C63",
-"O)+ c #866E65",
-"P)+ c #836A62",
-"Q)+ c #866F66",
-"R)+ c #7D675D",
-"S)+ c #7C655C",
-"T)+ c #796259",
-"U)+ c #766058",
-"V)+ c #745E56",
-"W)+ c #735D55",
-"X)+ c #725D54",
-"Y)+ c #705C53",
-"Z)+ c #705C54",
-"`)+ c #6E5B53",
-" !+ c #6D5A52",
-".!+ c #6C5852",
-"+!+ c #6C5952",
-"@!+ c #6A5851",
-"#!+ c #685850",
-"$!+ c #66564E",
-"%!+ c #65534E",
-"&!+ c #62504D",
-"*!+ c #604F4A",
-"=!+ c #5F4E49",
-"-!+ c #5B4A44",
-";!+ c #584742",
-">!+ c #554540",
-",!+ c #584641",
-"'!+ c #533E3C",
-")!+ c #513C3C",
-"!!+ c #564040",
-"~!+ c #5A4544",
-"{!+ c #5D4A49",
-"]!+ c #604E4E",
-"^!+ c #655353",
-"/!+ c #675654",
-"(!+ c #685956",
-"_!+ c #6C5C5A",
-":!+ c #6C5D5B",
-"<!+ c #6A5C5A",
-"[!+ c #6A5D5B",
-"}!+ c #625957",
-"|!+ c #4E4A49",
-"1!+ c #544C4A",
-"2!+ c #4E4A48",
-"3!+ c #4E4946",
-"4!+ c #524B48",
-"5!+ c #646D61",
-"6!+ c #555E53",
-"7!+ c #5A6358",
-"8!+ c #637163",
-"9!+ c #6A726D",
-"0!+ c #657168",
-"a!+ c #637164",
-"b!+ c #5B6A5E",
-"c!+ c #5B6A5C",
-"d!+ c #5C655B",
-"e!+ c #5B645B",
-"f!+ c #5D665C",
-"g!+ c #5B685E",
-"h!+ c #59665B",
-"i!+ c #59655C",
-"j!+ c #5B675E",
-"k!+ c #5C695F",
-"l!+ c #5C6B60",
-"m!+ c #5C6C60",
-"n!+ c #637166",
-"o!+ c #616F61",
-"p!+ c #606F60",
-"q!+ c #62705F",
-"r!+ c #637161",
-"s!+ c #647364",
-"t!+ c #657363",
-"u!+ c #667363",
-"v!+ c #687464",
-"w!+ c #6B7867",
-"x!+ c #6C7A6A",
-"y!+ c #7A8277",
-"z!+ c #757F70",
-"A!+ c #75806E",
-"B!+ c #757F6C",
-"C!+ c #727C66",
-"D!+ c #6B745E",
-"E!+ c #656F57",
-"F!+ c #696E58",
-"G!+ c #6C6E5A",
-"H!+ c #6C6E5B",
-"I!+ c #676856",
-"J!+ c #5E604D",
-"K!+ c #575844",
-"L!+ c #4D4D3A",
-"M!+ c #444531",
-"N!+ c #444430",
-"O!+ c #494934",
-"P!+ c #4E4F3C",
-"Q!+ c #5A5A46",
-"R!+ c #656654",
-"S!+ c #696956",
-"T!+ c #74745F",
-"U!+ c #6F7059",
-"V!+ c #6C6A56",
-"W!+ c #7A7A64",
-"X!+ c #7C7B66",
-"Y!+ c #7E7D68",
-"Z!+ c #767460",
-"`!+ c #686652",
-" ~+ c #545040",
-".~+ c #443C38",
-"+~+ c #42363A",
-"@~+ c #4C3C48",
-"#~+ c #503E4A",
-"$~+ c #4F3E4A",
-"%~+ c #4C3B48",
-"&~+ c #493A44",
-"*~+ c #433740",
-"=~+ c #41343D",
-"-~+ c #40333B",
-";~+ c #443537",
-">~+ c #483735",
-",~+ c #4B3B34",
-"'~+ c #554638",
-")~+ c #564839",
-"!~+ c #594A3C",
-"~~+ c #5A4D41",
-"{~+ c #5E544A",
-"]~+ c #61564C",
-"^~+ c #665850",
-"/~+ c #6B5D54",
-"(~+ c #6E6257",
-"_~+ c #75685A",
-":~+ c #8E7760",
-"<~+ c #9B7E67",
-"[~+ c #A0826B",
-"}~+ c #A3876F",
-"|~+ c #A58A72",
-"1~+ c #A68D75",
-"2~+ c #A89279",
-"3~+ c #A6947E",
-"4~+ c #A5947F",
-"5~+ c #A89683",
-"6~+ c #AB9685",
-"7~+ c #AC9685",
-"8~+ c #AC9683",
-"9~+ c #AB9584",
-"0~+ c #AB9587",
-"a~+ c #9F938A",
-"b~+ c #9C9792",
-"c~+ c #A4A099",
-"d~+ c #AEAAA4",
-"e~+ c #B4B2AC",
-"f~+ c #B8B8B0",
-"g~+ c #BABBB4",
-"h~+ c #BEBEB9",
-"i~+ c #C0BEB9",
-"j~+ c #BFBDB9",
-"k~+ c #BDBAB5",
-"l~+ c #BCB9B4",
-"m~+ c #BBB7B1",
-"n~+ c #BAB3AC",
-"o~+ c #BAB1A8",
-"p~+ c #BAB1A7",
-"q~+ c #BBB0A8",
-"r~+ c #BBB0A7",
-"s~+ c #BBAEA5",
-"t~+ c #BCB0A5",
-"u~+ c #BBACA2",
-"v~+ c #BBABA1",
-"w~+ c #B9A99F",
-"x~+ c #B6A49B",
-"y~+ c #B3A297",
-"z~+ c #B2A195",
-"A~+ c #B1A094",
-"B~+ c #A69186",
-"C~+ c #A48D82",
-"D~+ c #A28A7F",
-"E~+ c #A1887E",
-"F~+ c #A0867D",
-"G~+ c #9A827A",
-"H~+ c #977F76",
-"I~+ c #967D73",
-"J~+ c #937A70",
-"K~+ c #957C72",
-"L~+ c #937A6F",
-"M~+ c #91796F",
-"N~+ c #91786F",
-"O~+ c #90796F",
-"P~+ c #907A70",
-"Q~+ c #8E796F",
-"R~+ c #8C766D",
-"S~+ c #8C746C",
-"T~+ c #8C756D",
-"U~+ c #8D7A70",
-"V~+ c #8F7B72",
-"W~+ c #8E7D73",
-"X~+ c #8A7A6E",
-"Y~+ c #86746B",
-"Z~+ c #7B6C61",
-"`~+ c #7A6B60",
-" {+ c #796A5F",
-".{+ c #76675C",
-"+{+ c #74665C",
-"@{+ c #73665B",
-"#{+ c #72655A",
-"${+ c #716458",
-"%{+ c #6F6257",
-"&{+ c #6F6158",
-"*{+ c #6E5F58",
-"={+ c #6D5F58",
-"-{+ c #6C5E56",
-";{+ c #685E55",
-">{+ c #665C52",
-",{+ c #635A4F",
-"'{+ c #625850",
-"){+ c #645753",
-"!{+ c #5A4C47",
-"~{+ c #51453F",
-"{{+ c #4E403B",
-"]{+ c #4F3A3A",
-"^{+ c #543E41",
-"/{+ c #584444",
-"({+ c #5B4A4A",
-"_{+ c #5F5050",
-":{+ c #635454",
-"<{+ c #615454",
-"[{+ c #5A5350",
-"}{+ c #5F5855",
-"|{+ c #4E4A47",
-"1{+ c #504A48",
-"2{+ c #544D4A",
-"3{+ c #687063",
-"4{+ c #686F64",
-"5{+ c #585F55",
-"6{+ c #5D665A",
-"7{+ c #535F53",
-"8{+ c #5D6A5C",
-"9{+ c #6A736C",
-"0{+ c #6A736D",
-"a{+ c #69726D",
-"b{+ c #5C6B5F",
-"c{+ c #5D665E",
-"d{+ c #5F685E",
-"e{+ c #606A5F",
-"f{+ c #5C685E",
-"g{+ c #5A685D",
-"h{+ c #616F63",
-"i{+ c #616E64",
-"j{+ c #667168",
-"k{+ c #657366",
-"l{+ c #617060",
-"m{+ c #606E5D",
-"n{+ c #62715F",
-"o{+ c #637260",
-"p{+ c #647260",
-"q{+ c #657462",
-"r{+ c #677464",
-"s{+ c #6B7969",
-"t{+ c #6D7C6D",
-"u{+ c #6C7B6E",
-"v{+ c #7B8378",
-"w{+ c #7B8479",
-"x{+ c #788170",
-"y{+ c #737D6A",
-"z{+ c #6E7661",
-"A{+ c #666F58",
-"B{+ c #606A51",
-"C{+ c #616A51",
-"D{+ c #686758",
-"E{+ c #5C5C4D",
-"F{+ c #535240",
-"G{+ c #4A4938",
-"H{+ c #413F2F",
-"I{+ c #3F3E2E",
-"J{+ c #464432",
-"K{+ c #4A4A36",
-"L{+ c #51523E",
-"M{+ c #5B5B48",
-"N{+ c #666654",
-"O{+ c #6A6B57",
-"P{+ c #6E6E5A",
-"Q{+ c #74745E",
-"R{+ c #686952",
-"S{+ c #6F6D59",
-"T{+ c #787664",
-"U{+ c #7A7866",
-"V{+ c #73705E",
-"W{+ c #605D4B",
-"X{+ c #4A4638",
-"Y{+ c #403635",
-"Z{+ c #41373E",
-"`{+ c #4B4048",
-" ]+ c #4A3F46",
-".]+ c #483C44",
-"+]+ c #453841",
-"@]+ c #40343B",
-"#]+ c #3E3236",
-"$]+ c #423632",
-"%]+ c #453830",
-"&]+ c #47392F",
-"*]+ c #4E4034",
-"=]+ c #56473B",
-"-]+ c #564A3D",
-";]+ c #584D3D",
-">]+ c #5B5141",
-",]+ c #605445",
-"']+ c #63584A",
-")]+ c #6C6358",
-"!]+ c #71675E",
-"~]+ c #736B60",
-"{]+ c #766E62",
-"]]+ c #8C7A66",
-"^]+ c #9B8368",
-"/]+ c #A0856C",
-"(]+ c #A2876E",
-"_]+ c #A2886F",
-":]+ c #A48C71",
-"<]+ c #A7927B",
-"[]+ c #A7947E",
-"}]+ c #AA9A87",
-"|]+ c #A99887",
-"1]+ c #A99786",
-"2]+ c #AC9888",
-"3]+ c #AD9888",
-"4]+ c #B09A8B",
-"5]+ c #B19C8E",
-"6]+ c #AC998C",
-"7]+ c #9C948E",
-"8]+ c #9B9792",
-"9]+ c #A2A097",
-"0]+ c #ABAAA0",
-"a]+ c #B2B2A8",
-"b]+ c #BCBCB8",
-"c]+ c #BDBCB8",
-"d]+ c #BCBBB6",
-"e]+ c #BCBAB5",
-"f]+ c #BCBAB4",
-"g]+ c #BBB9B4",
-"h]+ c #BAB4AD",
-"i]+ c #BAB2A8",
-"j]+ c #BAB1A6",
-"k]+ c #B9AFA6",
-"l]+ c #BAB0A6",
-"m]+ c #BCB0A6",
-"n]+ c #BBADA3",
-"o]+ c #BAABA1",
-"p]+ c #B8A89F",
-"q]+ c #B5A59A",
-"r]+ c #B3A397",
-"s]+ c #B0A094",
-"t]+ c #AE9F92",
-"u]+ c #AD9B92",
-"v]+ c #AC9C94",
-"w]+ c #AC9892",
-"x]+ c #A79185",
-"y]+ c #A0877D",
-"z]+ c #9C837A",
-"A]+ c #988178",
-"B]+ c #967E74",
-"C]+ c #978075",
-"D]+ c #957C71",
-"E]+ c #937B71",
-"F]+ c #927B70",
-"G]+ c #917B71",
-"H]+ c #8E7A70",
-"I]+ c #8E7B71",
-"J]+ c #8E7C71",
-"K]+ c #928076",
-"L]+ c #928075",
-"M]+ c #94857A",
-"N]+ c #8E7E73",
-"O]+ c #8C7D72",
-"P]+ c #8B7D72",
-"Q]+ c #887C70",
-"R]+ c #877A6F",
-"S]+ c #84786C",
-"T]+ c #82766A",
-"U]+ c #807568",
-"V]+ c #7E7567",
-"W]+ c #7D7266",
-"X]+ c #7B7064",
-"Y]+ c #786E64",
-"Z]+ c #776C64",
-"`]+ c #766B62",
-" ^+ c #736860",
-".^+ c #70675E",
-"+^+ c #6F665D",
-"@^+ c #6E655E",
-"#^+ c #6D635E",
-"$^+ c #6D645E",
-"%^+ c #655D57",
-"&^+ c #5D5650",
-"*^+ c #575148",
-"=^+ c #4E4840",
-"-^+ c #4A3D39",
-";^+ c #483938",
-">^+ c #4E3A3A",
-",^+ c #5A4A4A",
-"'^+ c #5B4C4C",
-")^+ c #574D4B",
-"!^+ c #4F4846",
-"~^+ c #554F4C",
-"{^+ c #514B49",
-"]^+ c #564F4C",
-"^^+ c #6A7264",
-"/^+ c #5C6258",
-"(^+ c #667063",
-"_^+ c #50564F",
-":^+ c #606B5F",
-"<^+ c #6E7670",
-"[^+ c #5D6C60",
-"}^+ c #5F6D60",
-"|^+ c #5E685F",
-"1^+ c #5D675E",
-"2^+ c #5F695F",
-"3^+ c #5E6C61",
-"4^+ c #606E63",
-"5^+ c #627066",
-"6^+ c #66726A",
-"7^+ c #657465",
-"8^+ c #63715F",
-"9^+ c #63725D",
-"0^+ c #63735E",
-"a^+ c #64735E",
-"b^+ c #62725D",
-"c^+ c #657463",
-"d^+ c #687667",
-"e^+ c #6B796B",
-"f^+ c #6D7C6E",
-"g^+ c #798176",
-"h^+ c #7A8373",
-"i^+ c #7A8471",
-"j^+ c #737C69",
-"k^+ c #68705D",
-"l^+ c #606B53",
-"m^+ c #5D664D",
-"n^+ c #5C654C",
-"o^+ c #5E674E",
-"p^+ c #636853",
-"q^+ c #626252",
-"r^+ c #505040",
-"s^+ c #474536",
-"t^+ c #403E2D",
-"u^+ c #3A3827",
-"v^+ c #403E2E",
-"w^+ c #494836",
-"x^+ c #53543F",
-"y^+ c #686755",
-"z^+ c #686956",
-"A^+ c #6D6E5A",
-"B^+ c #72715F",
-"C^+ c #66664F",
-"D^+ c #6B6A55",
-"E^+ c #74725F",
-"F^+ c #747260",
-"G^+ c #757360",
-"H^+ c #696654",
-"I^+ c #444036",
-"J^+ c #3E353A",
-"K^+ c #453745",
-"L^+ c #483B47",
-"M^+ c #493D46",
-"N^+ c #433840",
-"O^+ c #3C3138",
-"P^+ c #3B3135",
-"Q^+ c #3C3134",
-"R^+ c #3F3630",
-"S^+ c #42382E",
-"T^+ c #42392E",
-"U^+ c #494035",
-"V^+ c #4E4438",
-"W^+ c #52483C",
-"X^+ c #564C41",
-"Y^+ c #594F44",
-"Z^+ c #62584A",
-"`^+ c #685E4E",
-" /+ c #6C6152",
-"./+ c #70665A",
-"+/+ c #746C62",
-"@/+ c #767065",
-"#/+ c #7C756B",
-"$/+ c #9E8C72",
-"%/+ c #A49074",
-"&/+ c #A89378",
-"*/+ c #A89579",
-"=/+ c #AB987E",
-"-/+ c #AA987F",
-";/+ c #A8957E",
-">/+ c #A9967E",
-",/+ c #AA9982",
-"'/+ c #AA9B87",
-")/+ c #AA9A89",
-"!/+ c #AB9A89",
-"~/+ c #AD9A8B",
-"{/+ c #AF9B8D",
-"]/+ c #B39E91",
-"^/+ c #B2A192",
-"//+ c #A59A91",
-"(/+ c #979490",
-"_/+ c #9A9892",
-":/+ c #A19F94",
-"</+ c #A7A79B",
-"[/+ c #B2B1AA",
-"}/+ c #B6B5B1",
-"|/+ c #BABAB5",
-"1/+ c #BBBBB6",
-"2/+ c #BABAB4",
-"3/+ c #B9B8B2",
-"4/+ c #B9B5AE",
-"5/+ c #B8B0A7",
-"6/+ c #B8B0A6",
-"7/+ c #B8AFA6",
-"8/+ c #B6ACA5",
-"9/+ c #B6ACA4",
-"0/+ c #B6ACA3",
-"a/+ c #B9AEA5",
-"b/+ c #BAAEA4",
-"c/+ c #B9ACA2",
-"d/+ c #B7AAA0",
-"e/+ c #B5A79C",
-"f/+ c #B4A59A",
-"g/+ c #B2A398",
-"h/+ c #AEA094",
-"i/+ c #AC9E92",
-"j/+ c #AB9A92",
-"k/+ c #AB9A93",
-"l/+ c #A89790",
-"m/+ c #A79388",
-"n/+ c #A59186",
-"o/+ c #A38E83",
-"p/+ c #A18B80",
-"q/+ c #A0897F",
-"r/+ c #9B867B",
-"s/+ c #99837A",
-"t/+ c #968077",
-"u/+ c #978078",
-"v/+ c #968076",
-"w/+ c #947D73",
-"x/+ c #937C71",
-"y/+ c #927C72",
-"z/+ c #927D73",
-"A/+ c #8F7B70",
-"B/+ c #8C7C71",
-"C/+ c #8A7B70",
-"D/+ c #8F8276",
-"E/+ c #8E7F74",
-"F/+ c #8D7E73",
-"G/+ c #8D7F74",
-"H/+ c #8C7F74",
-"I/+ c #897E72",
-"J/+ c #8A7F73",
-"K/+ c #898074",
-"L/+ c #888072",
-"M/+ c #867F71",
-"N/+ c #837D6F",
-"O/+ c #827A6E",
-"P/+ c #7C766A",
-"Q/+ c #7A7468",
-"R/+ c #797266",
-"S/+ c #777266",
-"T/+ c #757064",
-"U/+ c #746F64",
-"V/+ c #736E64",
-"W/+ c #726E64",
-"X/+ c #747067",
-"Y/+ c #6F6B62",
-"Z/+ c #625D54",
-"`/+ c #5D544E",
-" (+ c #493E39",
-".(+ c #453736",
-"+(+ c #463637",
-"@(+ c #4C3A3D",
-"#(+ c #4F3E41",
-"$(+ c #504343",
-"%(+ c #514744",
-"&(+ c #49413F",
-"*(+ c #534B48",
-"=(+ c #57504D",
-"-(+ c #494544",
-";(+ c #4D4744",
-">(+ c #6E756B",
-",(+ c #6E766C",
-"'(+ c #656C62",
-")(+ c #697266",
-"!(+ c #687466",
-"~(+ c #5E675C",
-"{(+ c #6C766A",
-"](+ c #717C74",
-"^(+ c #707C74",
-"/(+ c #68736D",
-"((+ c #66716C",
-"_(+ c #647068",
-":(+ c #5F695E",
-"<(+ c #5F6C61",
-"[(+ c #5F6D62",
-"}(+ c #627065",
-"|(+ c #657268",
-"1(+ c #67736A",
-"2(+ c #68746B",
-"3(+ c #68766C",
-"4(+ c #6A756C",
-"5(+ c #6B766D",
-"6(+ c #677565",
-"7(+ c #667463",
-"8(+ c #657461",
-"9(+ c #657460",
-"0(+ c #63735D",
-"a(+ c #62725C",
-"b(+ c #647262",
-"c(+ c #687868",
-"d(+ c #6B776D",
-"e(+ c #798074",
-"f(+ c #788274",
-"g(+ c #757F6F",
-"h(+ c #717A66",
-"i(+ c #68705C",
-"j(+ c #5F6852",
-"k(+ c #59634C",
-"l(+ c #58624A",
-"m(+ c #5F6350",
-"n(+ c #4C4C3D",
-"o(+ c #424133",
-"p(+ c #3A392B",
-"q(+ c #3A3829",
-"r(+ c #3E3C2D",
-"s(+ c #4A483A",
-"t(+ c #545443",
-"u(+ c #60604D",
-"v(+ c #666754",
-"w(+ c #656653",
-"x(+ c #696A57",
-"y(+ c #72715E",
-"z(+ c #6C6C57",
-"A(+ c #676650",
-"B(+ c #64644D",
-"C(+ c #696953",
-"D(+ c #71705C",
-"E(+ c #656252",
-"F(+ c #545240",
-"G(+ c #413B33",
-"H(+ c #3F333A",
-"I(+ c #433540",
-"J(+ c #463843",
-"K(+ c #423540",
-"L(+ c #3F343C",
-"M(+ c #3A3034",
-"N(+ c #3C322F",
-"O(+ c #3E362E",
-"P(+ c #42382D",
-"Q(+ c #463A2F",
-"R(+ c #493E34",
-"S(+ c #50453A",
-"T(+ c #524A3F",
-"U(+ c #585245",
-"V(+ c #585447",
-"W(+ c #5B5648",
-"X(+ c #635B4F",
-"Y(+ c #665E51",
-"Z(+ c #6F6757",
-"`(+ c #726B5B",
-" _+ c #766E5D",
-"._+ c #7A7263",
-"+_+ c #7D786D",
-"@_+ c #817C70",
-"#_+ c #848274",
-"$_+ c #988E7A",
-"%_+ c #AC9A80",
-"&_+ c #B09F84",
-"*_+ c #B3A288",
-"=_+ c #B4A48A",
-"-_+ c #B8A88F",
-";_+ c #B8A990",
-">_+ c #B7A68F",
-",_+ c #B7A791",
-"'_+ c #B6A590",
-")_+ c #B2A28D",
-"!_+ c #B0A290",
-"~_+ c #AEA191",
-"{_+ c #AFA091",
-"]_+ c #B19E92",
-"^_+ c #B29F92",
-"/_+ c #B19D90",
-"(_+ c #AD9E91",
-"__+ c #9C9892",
-":_+ c #999892",
-"<_+ c #989890",
-"[_+ c #9EA093",
-"}_+ c #A6A79E",
-"|_+ c #ACACA8",
-"1_+ c #B5B5B1",
-"2_+ c #B5B5B2",
-"3_+ c #B6B6B2",
-"4_+ c #B6B6B0",
-"5_+ c #B8B4AC",
-"6_+ c #B7B0A6",
-"7_+ c #B6AFA6",
-"8_+ c #B5ADA5",
-"9_+ c #B4ADA5",
-"0_+ c #B4ACA5",
-"a_+ c #B5ACA5",
-"b_+ c #B8ACA4",
-"c_+ c #B8ABA1",
-"d_+ c #B5A89F",
-"e_+ c #B3A59A",
-"f_+ c #B3A499",
-"g_+ c #B1A397",
-"h_+ c #ADA194",
-"i_+ c #AB9E92",
-"j_+ c #A89990",
-"k_+ c #A89992",
-"l_+ c #A6958D",
-"m_+ c #A59286",
-"n_+ c #A49186",
-"o_+ c #A38E84",
-"p_+ c #A18C81",
-"q_+ c #A08C80",
-"r_+ c #A18D82",
-"s_+ c #9E8A7F",
-"t_+ c #9C887D",
-"u_+ c #99867C",
-"v_+ c #99857B",
-"w_+ c #98847A",
-"x_+ c #968278",
-"y_+ c #968178",
-"z_+ c #958075",
-"A_+ c #947E74",
-"B_+ c #927C73",
-"C_+ c #8F7B71",
-"D_+ c #87786D",
-"E_+ c #887A6F",
-"F_+ c #8C7E74",
-"G_+ c #8A7D71",
-"H_+ c #8A7D72",
-"I_+ c #897C71",
-"J_+ c #8A7E72",
-"K_+ c #887D71",
-"L_+ c #887D72",
-"M_+ c #887E72",
-"N_+ c #8A8074",
-"O_+ c #8A8274",
-"P_+ c #8C8476",
-"Q_+ c #8C8678",
-"R_+ c #8D8679",
-"S_+ c #8D877A",
-"T_+ c #8C8679",
-"U_+ c #8A8477",
-"V_+ c #888375",
-"W_+ c #888175",
-"X_+ c #878276",
-"Y_+ c #868174",
-"Z_+ c #827F72",
-"`_+ c #817D71",
-" :+ c #7F7C70",
-".:+ c #7E7A6D",
-"+:+ c #7A786C",
-"@:+ c #78766C",
-"#:+ c #77756B",
-"$:+ c #76756B",
-"%:+ c #78786E",
-"&:+ c #706964",
-"*:+ c #6C6660",
-"=:+ c #645E57",
-"-:+ c #5C544E",
-";:+ c #514B44",
-">:+ c #453F37",
-",:+ c #403533",
-"':+ c #443936",
-"):+ c #423C3B",
-"!:+ c #463E3C",
-"~:+ c #48403E",
-"{:+ c #474342",
-"]:+ c #4A4341",
-"^:+ c #6F7A6C",
-"/:+ c #4F544E",
-"(:+ c #5D685C",
-"_:+ c #667065",
-"::+ c #6D786B",
-"<:+ c #737F71",
-"[:+ c #637165",
-"}:+ c #667469",
-"|:+ c #6C796A",
-"1:+ c #6B7868",
-"2:+ c #6A7969",
-"3:+ c #6A7868",
-"4:+ c #637262",
-"5:+ c #627262",
-"6:+ c #657466",
-"7:+ c #68756B",
-"8:+ c #68756C",
-"9:+ c #68746C",
-"0:+ c #6A766E",
-"a:+ c #6C796F",
-"b:+ c #6C7970",
-"c:+ c #6E7B71",
-"d:+ c #748076",
-"e:+ c #757B6D",
-"f:+ c #727764",
-"g:+ c #6B6E5A",
-"h:+ c #626450",
-"i:+ c #5C5E4C",
-"j:+ c #5A5C4A",
-"k:+ c #5C5E4B",
-"l:+ c #626350",
-"m:+ c #5E614D",
-"n:+ c #555646",
-"o:+ c #4A483D",
-"p:+ c #413E32",
-"q:+ c #383628",
-"r:+ c #383626",
-"s:+ c #3C3A2A",
-"t:+ c #444331",
-"u:+ c #555440",
-"v:+ c #636450",
-"w:+ c #646650",
-"x:+ c #666850",
-"y:+ c #6B6D56",
-"z:+ c #71725C",
-"A:+ c #73735E",
-"B:+ c #645D4E",
-"C:+ c #665F50",
-"D:+ c #6B6556",
-"E:+ c #6F6859",
-"F:+ c #716B5B",
-"G:+ c #716B5C",
-"H:+ c #676152",
-"I:+ c #5A5144",
-"J:+ c #483C35",
-"K:+ c #3A3235",
-"L:+ c #3C383C",
-"M:+ c #3E383C",
-"N:+ c #3A3238",
-"O:+ c #3A3136",
-"P:+ c #3B3132",
-"Q:+ c #3B342E",
-"R:+ c #3B362C",
-"S:+ c #403C2E",
-"T:+ c #484436",
-"U:+ c #4D4839",
-"V:+ c #514D3E",
-"W:+ c #575244",
-"X:+ c #595547",
-"Y:+ c #585445",
-"Z:+ c #595645",
-"`:+ c #5A5747",
-" <+ c #5B5747",
-".<+ c #5C5948",
-"+<+ c #635D4D",
-"@<+ c #666050",
-"#<+ c #6C6455",
-"$<+ c #706C5C",
-"%<+ c #716D5E",
-"&<+ c #747061",
-"*<+ c #767264",
-"=<+ c #7E7A6B",
-"-<+ c #827E6F",
-";<+ c #878478",
-"><+ c #8C8A80",
-",<+ c #8E8F83",
-"'<+ c #A49B86",
-")<+ c #B0A28B",
-"!<+ c #B4A691",
-"~<+ c #B8AC96",
-"{<+ c #C0B5A1",
-"]<+ c #C3B7A2",
-"^<+ c #C4B8A0",
-"/<+ c #C0B39B",
-"(<+ c #BDB097",
-"_<+ c #BCAE95",
-":<+ c #BBAD94",
-"<<+ c #B9AD96",
-"[<+ c #B6AA94",
-"}<+ c #B3A793",
-"|<+ c #B2A490",
-"1<+ c #B1A18E",
-"2<+ c #AF9E8C",
-"3<+ c #9A958A",
-"4<+ c #96968E",
-"5<+ c #9A9992",
-"6<+ c #A0A095",
-"7<+ c #9E9F94",
-"8<+ c #A4A79A",
-"9<+ c #ABACA2",
-"0<+ c #B0B0A6",
-"a<+ c #B2B2A7",
-"b<+ c #B4B1A4",
-"c<+ c #B4B0A4",
-"d<+ c #B4AFA4",
-"e<+ c #B6B0A6",
-"f<+ c #B5AEA5",
-"g<+ c #B4ACA4",
-"h<+ c #B6AEA5",
-"i<+ c #B6AEA6",
-"j<+ c #B4ABA3",
-"k<+ c #B4AAA2",
-"l<+ c #B3A6A0",
-"m<+ c #B1A49B",
-"n<+ c #AEA298",
-"o<+ c #ACA096",
-"p<+ c #AA9E94",
-"q<+ c #A79A91",
-"r<+ c #A5968E",
-"s<+ c #A6968E",
-"t<+ c #A49084",
-"u<+ c #A28E83",
-"v<+ c #A18D81",
-"w<+ c #9D897E",
-"x<+ c #9A867C",
-"y<+ c #947F75",
-"z<+ c #937F75",
-"A<+ c #8F7A71",
-"B<+ c #8D7771",
-"C<+ c #8A766F",
-"D<+ c #89736D",
-"E<+ c #86726C",
-"F<+ c #85716A",
-"G<+ c #87726B",
-"H<+ c #847169",
-"I<+ c #837168",
-"J<+ c #847269",
-"K<+ c #847369",
-"L<+ c #87766C",
-"M<+ c #87776E",
-"N<+ c #85786E",
-"O<+ c #877A6E",
-"P<+ c #877B6F",
-"Q<+ c #867A70",
-"R<+ c #867C71",
-"S<+ c #867E72",
-"T<+ c #888073",
-"U<+ c #888173",
-"V<+ c #8A8476",
-"W<+ c #8D867A",
-"X<+ c #8D887B",
-"Y<+ c #8C887A",
-"Z<+ c #8A867A",
-"`<+ c #88877B",
-" [+ c #89897C",
-".[+ c #868679",
-"+[+ c #838577",
-"@[+ c #828275",
-"#[+ c #808072",
-"$[+ c #808073",
-"%[+ c #7F7F72",
-"&[+ c #7F8072",
-"*[+ c #818275",
-"=[+ c #7C7E72",
-"-[+ c #797B6E",
-";[+ c #78786C",
-">[+ c #77766B",
-",[+ c #757469",
-"'[+ c #737467",
-")[+ c #737266",
-"![+ c #6C6C5F",
-"~[+ c #58574A",
-"{[+ c #4D4A40",
-"][+ c #423C36",
-"^[+ c #413736",
-"/[+ c #463E3D",
-"([+ c #4C4745",
-"_[+ c #42403E",
-":[+ c #46403C",
-"<[+ c #4B4440",
-"[[+ c #514A46",
-"}[+ c #717D6F",
-"|[+ c #6A7668",
-"1[+ c #565C55",
-"2[+ c #6F7B6D",
-"3[+ c #717C6F",
-"4[+ c #616E63",
-"5[+ c #647267",
-"6[+ c #657368",
-"7[+ c #69756B",
-"8[+ c #6D7B6C",
-"9[+ c #6C7A69",
-"0[+ c #6C7A68",
-"a[+ c #6B7A6A",
-"b[+ c #697668",
-"c[+ c #667466",
-"d[+ c #69766D",
-"e[+ c #6A766D",
-"f[+ c #6B776E",
-"g[+ c #6C786F",
-"h[+ c #707365",
-"i[+ c #696D5C",
-"j[+ c #616450",
-"k[+ c #595C49",
-"l[+ c #5A5B49",
-"m[+ c #5B5D4B",
-"n[+ c #60624F",
-"o[+ c #535440",
-"p[+ c #4A4A3A",
-"q[+ c #3F3D31",
-"r[+ c #393729",
-"s[+ c #353324",
-"t[+ c #3A3828",
-"u[+ c #464533",
-"v[+ c #5A5847",
-"w[+ c #676553",
-"x[+ c #666554",
-"y[+ c #686A57",
-"z[+ c #6F6F5C",
-"A[+ c #717260",
-"B[+ c #5E5E4B",
-"C[+ c #5C5B48",
-"D[+ c #615E4C",
-"E[+ c #6C6557",
-"F[+ c #6D6858",
-"G[+ c #676052",
-"H[+ c #595243",
-"I[+ c #453E31",
-"J[+ c #373031",
-"K[+ c #393137",
-"L[+ c #3B3339",
-"M[+ c #382F35",
-"N[+ c #382F31",
-"O[+ c #3E362A",
-"P[+ c #423C2F",
-"Q[+ c #464233",
-"R[+ c #4D493A",
-"S[+ c #524D3E",
-"T[+ c #544F41",
-"U[+ c #544E40",
-"V[+ c #534D3F",
-"W[+ c #554E40",
-"X[+ c #565142",
-"Y[+ c #585544",
-"Z[+ c #5B5848",
-"`[+ c #625D4C",
-" }+ c #666151",
-".}+ c #716C5C",
-"+}+ c #7F7C6B",
-"@}+ c #878574",
-"#}+ c #8E8C7B",
-"$}+ c #949280",
-"%}+ c #989785",
-"&}+ c #9D9F8F",
-"*}+ c #A0A294",
-"=}+ c #B4AC96",
-"-}+ c #BCB29A",
-";}+ c #C0B49C",
-">}+ c #BFB49D",
-",}+ c #BEB49D",
-"'}+ c #BDB39C",
-")}+ c #C0B6A0",
-"!}+ c #C6BBA4",
-"~}+ c #C8BDA5",
-"{}+ c #CABFA6",
-"]}+ c #C9BEA5",
-"^}+ c #C7BBA3",
-"/}+ c #C3B69F",
-"(}+ c #BFB29A",
-"_}+ c #BCAE97",
-":}+ c #BAAC96",
-"<}+ c #B5A892",
-"[}+ c #B2A390",
-"}}+ c #9B958A",
-"|}+ c #93928A",
-"1}+ c #95958D",
-"2}+ c #9B9B92",
-"3}+ c #9E9F93",
-"4}+ c #A1A495",
-"5}+ c #A3A394",
-"6}+ c #A8A597",
-"7}+ c #AFAA9D",
-"8}+ c #B2ADA1",
-"9}+ c #B2AEA2",
-"0}+ c #B3ADA3",
-"a}+ c #B2ACA4",
-"b}+ c #B3ACA4",
-"c}+ c #B2AAA2",
-"d}+ c #B1AAA2",
-"e}+ c #B1A9A2",
-"f}+ c #B2A9A2",
-"g}+ c #B2A9A1",
-"h}+ c #B0A69E",
-"i}+ c #AEA49A",
-"j}+ c #ACA196",
-"k}+ c #A99F94",
-"l}+ c #A79C92",
-"m}+ c #A3978D",
-"n}+ c #A1948A",
-"o}+ c #9F9189",
-"p}+ c #A29086",
-"q}+ c #9D8A80",
-"r}+ c #9C887E",
-"s}+ c #99857C",
-"t}+ c #988479",
-"u}+ c #978278",
-"v}+ c #927E74",
-"w}+ c #8C776E",
-"x}+ c #8A756C",
-"y}+ c #8C786E",
-"z}+ c #877268",
-"A}+ c #826D64",
-"B}+ c #7D6860",
-"C}+ c #7B665E",
-"D}+ c #7A655E",
-"E}+ c #78655C",
-"F}+ c #78665C",
-"G}+ c #7A685E",
-"H}+ c #7D6C62",
-"I}+ c #7C6D62",
-"J}+ c #7C6E62",
-"K}+ c #7F7267",
-"L}+ c #7F7369",
-"M}+ c #7F756A",
-"N}+ c #847E70",
-"O}+ c #867F72",
-"P}+ c #888174",
-"Q}+ c #8A8779",
-"R}+ c #8B877A",
-"S}+ c #8A887B",
-"T}+ c #88887C",
-"U}+ c #8B8B7E",
-"V}+ c #8A8B7E",
-"W}+ c #8B8C7E",
-"X}+ c #8A8D7E",
-"Y}+ c #898C7E",
-"Z}+ c #88897C",
-"`}+ c #87877B",
-" |+ c #86877A",
-".|+ c #87897C",
-"+|+ c #808174",
-"@|+ c #7C7D70",
-"#|+ c #7C7C70",
-"$|+ c #7C7C6F",
-"%|+ c #7B7C6F",
-"&|+ c #767669",
-"*|+ c #6E6D64",
-"=|+ c #352D2B",
-"-|+ c #382F2E",
-";|+ c #413938",
-">|+ c #423D3C",
-",|+ c #413A35",
-"'|+ c #4E4743",
-")|+ c #677164",
-"!|+ c #677269",
-"~|+ c #617063",
-"{|+ c #657269",
-"]|+ c #6E7C6C",
-"^|+ c #6D7C6B",
-"/|+ c #687566",
-"(|+ c #687766",
-"_|+ c #687866",
-":|+ c #697666",
-"<|+ c #6A7867",
-"[|+ c #697768",
-"}|+ c #68756D",
-"||+ c #758073",
-"1|+ c #686E5C",
-"2|+ c #5F6251",
-"3|+ c #595C48",
-"4|+ c #575946",
-"5|+ c #5D5E4C",
-"6|+ c #60624E",
-"7|+ c #5F614E",
-"8|+ c #575A46",
-"9|+ c #4D4F3A",
-"0|+ c #464636",
-"a|+ c #38362A",
-"b|+ c #312F22",
-"c|+ c #373526",
-"d|+ c #494837",
-"e|+ c #5C5B4A",
-"f|+ c #666454",
-"g|+ c #6A6B56",
-"h|+ c #70715E",
-"i|+ c #757865",
-"j|+ c #5D5C48",
-"k|+ c #65614F",
-"l|+ c #6B6456",
-"m|+ c #6C6556",
-"n|+ c #645E4F",
-"o|+ c #5A5544",
-"p|+ c #4A4335",
-"q|+ c #3A3231",
-"r|+ c #372C36",
-"s|+ c #382F37",
-"t|+ c #372E34",
-"u|+ c #372C31",
-"v|+ c #3A302E",
-"w|+ c #41382C",
-"x|+ c #4C4638",
-"y|+ c #524E3F",
-"z|+ c #4F4B3D",
-"A|+ c #524C3E",
-"B|+ c #605D4D",
-"C|+ c #656151",
-"D|+ c #6E695A",
-"E|+ c #747060",
-"F|+ c #7A7766",
-"G|+ c #7E7A69",
-"H|+ c #828170",
-"I|+ c #888876",
-"J|+ c #8D8E7C",
-"K|+ c #939482",
-"L|+ c #979886",
-"M|+ c #999A88",
-"N|+ c #9B9D8A",
-"O|+ c #A0A08E",
-"P|+ c #A2A495",
-"Q|+ c #B5AE98",
-"R|+ c #BEB29C",
-"S|+ c #C5BBA5",
-"T|+ c #C5BBA4",
-"U|+ c #C4B8A1",
-"V|+ c #C4B9A1",
-"W|+ c #C4B9A2",
-"X|+ c #C8BCA4",
-"Y|+ c #C9BEA6",
-"Z|+ c #C9BDA5",
-"`|+ c #C6B7A1",
-" 1+ c #C2B39B",
-".1+ c #BFAF97",
-"+1+ c #BCAC93",
-"@1+ c #B7A68E",
-"#1+ c #9E9886",
-"$1+ c #938E82",
-"%1+ c #958F83",
-"&1+ c #9B9688",
-"*1+ c #9E9988",
-"=1+ c #A09A88",
-"-1+ c #A4A08F",
-";1+ c #AAA495",
-">1+ c #AEA79A",
-",1+ c #AFA69C",
-"'1+ c #AFA89E",
-")1+ c #AEA59D",
-"!1+ c #AEA49D",
-"~1+ c #ADA49C",
-"{1+ c #ACA39C",
-"]1+ c #ACA29A",
-"^1+ c #ADA39A",
-"/1+ c #AAA198",
-"(1+ c #A99F95",
-"_1+ c #A89C92",
-":1+ c #A49890",
-"<1+ c #A2948B",
-"[1+ c #9D9088",
-"}1+ c #96827A",
-"|1+ c #927D76",
-"11+ c #917A73",
-"21+ c #8E7770",
-"31+ c #8C766E",
-"41+ c #8B746D",
-"51+ c #8C766F",
-"61+ c #87706A",
-"71+ c #846E66",
-"81+ c #816B64",
-"91+ c #7E6660",
-"01+ c #7F6862",
-"a1+ c #79625C",
-"b1+ c #78615C",
-"c1+ c #775F5B",
-"d1+ c #755D59",
-"e1+ c #725B57",
-"f1+ c #715A56",
-"g1+ c #6E5752",
-"h1+ c #6E5750",
-"i1+ c #6E5851",
-"j1+ c #6E5952",
-"k1+ c #6E5A52",
-"l1+ c #705E56",
-"m1+ c #73615A",
-"n1+ c #73635C",
-"o1+ c #7B6F66",
-"p1+ c #7C7167",
-"q1+ c #7D7368",
-"r1+ c #81786D",
-"s1+ c #837C6F",
-"t1+ c #857E71",
-"u1+ c #878073",
-"v1+ c #888376",
-"w1+ c #8A8578",
-"x1+ c #898679",
-"y1+ c #8A877C",
-"z1+ c #8C897D",
-"A1+ c #8E8B7F",
-"B1+ c #8E8C7F",
-"C1+ c #8E8D80",
-"D1+ c #8E8E80",
-"E1+ c #8E8E81",
-"F1+ c #8D8E80",
-"G1+ c #8B8D80",
-"H1+ c #878A7D",
-"I1+ c #8A8D80",
-"J1+ c #888B7E",
-"K1+ c #86897C",
-"L1+ c #84867C",
-"M1+ c #7C7D75",
-"N1+ c #47443D",
-"O1+ c #3D3832",
-"P1+ c #39302E",
-"Q1+ c #3C3233",
-"R1+ c #3E383A",
-"S1+ c #3C3330",
-"T1+ c #403834",
-"U1+ c #46403B",
-"V1+ c #798475",
-"W1+ c #778274",
-"X1+ c #6F7A6D",
-"Y1+ c #647167",
-"Z1+ c #647268",
-"`1+ c #65726A",
-" 2+ c #6B796D",
-".2+ c #707E6E",
-"+2+ c #6F7D6D",
-"@2+ c #6D7C6C",
-"#2+ c #6B7A69",
-"$2+ c #65736B",
-"%2+ c #67746C",
-"&2+ c #737E70",
-"*2+ c #737C6D",
-"=2+ c #6A705F",
-"-2+ c #5E6451",
-";2+ c #565A46",
-">2+ c #555742",
-",2+ c #585A47",
-"'2+ c #61624F",
-")2+ c #595A48",
-"!2+ c #555842",
-"~2+ c #4A4C37",
-"{2+ c #3A3A28",
-"]2+ c #323222",
-"^2+ c #3C3C2C",
-"/2+ c #4C4E3D",
-"(2+ c #626250",
-"_2+ c #666854",
-":2+ c #686A55",
-"<2+ c #6E705A",
-"[2+ c #747662",
-"}2+ c #737463",
-"|2+ c #6C6D5C",
-"12+ c #585846",
-"22+ c #5C5C4B",
-"32+ c #605F4E",
-"42+ c #646151",
-"52+ c #676054",
-"62+ c #5C5749",
-"72+ c #4A4435",
-"82+ c #3C342D",
-"92+ c #362C31",
-"02+ c #382C35",
-"a2+ c #362B34",
-"b2+ c #362E2E",
-"c2+ c #3A342A",
-"d2+ c #3D372A",
-"e2+ c #3D3729",
-"f2+ c #40392D",
-"g2+ c #453E32",
-"h2+ c #4B4438",
-"i2+ c #555344",
-"j2+ c #535242",
-"k2+ c #524F3F",
-"l2+ c #525041",
-"m2+ c #575546",
-"n2+ c #5C5B4D",
-"o2+ c #6C6C5B",
-"p2+ c #6F6E5D",
-"q2+ c #737362",
-"r2+ c #7C7B6A",
-"s2+ c #7E7E6C",
-"t2+ c #848573",
-"u2+ c #8C8E7A",
-"v2+ c #939681",
-"w2+ c #979A84",
-"x2+ c #9C9F89",
-"y2+ c #A1A38E",
-"z2+ c #A3A490",
-"A2+ c #A5A692",
-"B2+ c #A7A894",
-"C2+ c #A8AA97",
-"D2+ c #B9B39A",
-"E2+ c #C2B79F",
-"F2+ c #C1B7A0",
-"G2+ c #C4BAA3",
-"H2+ c #C7BCA4",
-"I2+ c #C8BEA5",
-"J2+ c #C6BCA3",
-"K2+ c #C2B7A0",
-"L2+ c #C1B59E",
-"M2+ c #C6B8A2",
-"N2+ c #C7BAA3",
-"O2+ c #C8BAA2",
-"P2+ c #C6B59F",
-"Q2+ c #C2B29A",
-"R2+ c #BCAC92",
-"S2+ c #A69F8C",
-"T2+ c #9A9888",
-"U2+ c #948F80",
-"V2+ c #928C7E",
-"W2+ c #959080",
-"X2+ c #989482",
-"Y2+ c #9C9887",
-"Z2+ c #A09A8A",
-"`2+ c #A39E8E",
-" 3+ c #A5A193",
-".3+ c #A8A296",
-"+3+ c #A9A398",
-"@3+ c #A6A197",
-"#3+ c #A69F96",
-"$3+ c #A59D95",
-"%3+ c #A59C94",
-"&3+ c #A49A92",
-"*3+ c #A49B92",
-"=3+ c #A59C93",
-"-3+ c #A2978F",
-";3+ c #9F938B",
-">3+ c #9C9088",
-",3+ c #998C84",
-"'3+ c #958881",
-")3+ c #8F8078",
-"!3+ c #8B7C75",
-"~3+ c #897770",
-"{3+ c #89736A",
-"]3+ c #8B746E",
-"^3+ c #866F67",
-"/3+ c #826B62",
-"(3+ c #806A61",
-"_3+ c #806961",
-":3+ c #7D665E",
-"<3+ c #79625A",
-"[3+ c #765E56",
-"}3+ c #745C53",
-"|3+ c #735B53",
-"13+ c #6C534D",
-"23+ c #6E524C",
-"33+ c #6C4B48",
-"43+ c #6C4747",
-"53+ c #6B4747",
-"63+ c #6B4848",
-"73+ c #6A4847",
-"83+ c #6B4746",
-"93+ c #6B4745",
-"03+ c #6D4847",
-"a3+ c #6C4545",
-"b3+ c #6A4544",
-"c3+ c #664342",
-"d3+ c #644342",
-"e3+ c #624341",
-"f3+ c #614340",
-"g3+ c #604540",
-"h3+ c #624B44",
-"i3+ c #5E4A42",
-"j3+ c #63524A",
-"k3+ c #62524A",
-"l3+ c #65564D",
-"m3+ c #685950",
-"n3+ c #6C5D55",
-"o3+ c #6F6159",
-"p3+ c #72655D",
-"q3+ c #73695F",
-"r3+ c #756C60",
-"s3+ c #787064",
-"t3+ c #7C7369",
-"u3+ c #7E786D",
-"v3+ c #837F72",
-"w3+ c #858275",
-"x3+ c #88857A",
-"y3+ c #8B887C",
-"z3+ c #8D8B7E",
-"A3+ c #8F8F82",
-"B3+ c #909183",
-"C3+ c #929386",
-"D3+ c #909385",
-"E3+ c #8E9184",
-"F3+ c #8A8E80",
-"G3+ c #8C9082",
-"H3+ c #898D7F",
-"I3+ c #8B8F80",
-"J3+ c #8B8E80",
-"K3+ c #8A8D81",
-"L3+ c #878B81",
-"M3+ c #585650",
-"N3+ c #514D46",
-"O3+ c #48433C",
-"P3+ c #3C3A36",
-"Q3+ c #392E2C",
-"R3+ c #413834",
-"S3+ c #80897C",
-"T3+ c #6B756A",
-"U3+ c #737D70",
-"V3+ c #5B615A",
-"W3+ c #6D766A",
-"X3+ c #788475",
-"Y3+ c #7A8374",
-"Z3+ c #667569",
-"`3+ c #69756C",
-" 4+ c #69766C",
-".4+ c #6D7A6F",
-"+4+ c #6D7B6F",
-"@4+ c #717F70",
-"#4+ c #71806F",
-"$4+ c #6D7B6A",
-"%4+ c #6A7667",
-"&4+ c #6C7B6C",
-"*4+ c #6C786E",
-"=4+ c #707A6F",
-"-4+ c #727E6F",
-";4+ c #767F6D",
-">4+ c #737B6A",
-",4+ c #6E7362",
-"'4+ c #616752",
-")4+ c #575B46",
-"!4+ c #585A46",
-"~4+ c #5D5F4B",
-"{4+ c #60614D",
-"]4+ c #5A5A48",
-"^4+ c #3C3D28",
-"/4+ c #363725",
-"(4+ c #414432",
-"_4+ c #6D715B",
-":4+ c #6C705A",
-"<4+ c #6F745D",
-"[4+ c #737961",
-"}4+ c #6C6C5A",
-"|4+ c #5B5C4C",
-"14+ c #555644",
-"24+ c #585847",
-"34+ c #5B5B4A",
-"44+ c #5E5E4C",
-"54+ c #605F4D",
-"64+ c #5D594A",
-"74+ c #534E40",
-"84+ c #443D31",
-"94+ c #362E2C",
-"04+ c #362A31",
-"a4+ c #342A30",
-"b4+ c #332C2E",
-"c4+ c #38302A",
-"d4+ c #3D3629",
-"e4+ c #3C3629",
-"f4+ c #423B2E",
-"g4+ c #4A4236",
-"h4+ c #504A3E",
-"i4+ c #595246",
-"j4+ c #5A5548",
-"k4+ c #575547",
-"l4+ c #535444",
-"m4+ c #545546",
-"n4+ c #5F6051",
-"o4+ c #666658",
-"p4+ c #6A6B5C",
-"q4+ c #6B6B5C",
-"r4+ c #6A6B5B",
-"s4+ c #6A6C5A",
-"t4+ c #6F7060",
-"u4+ c #767766",
-"v4+ c #7D806E",
-"w4+ c #828472",
-"x4+ c #8A8C7A",
-"y4+ c #929482",
-"z4+ c #989E88",
-"A4+ c #9CA18B",
-"B4+ c #A0A490",
-"C4+ c #A4A793",
-"D4+ c #A7AA96",
-"E4+ c #AAAD99",
-"F4+ c #AEB29E",
-"G4+ c #B1B39F",
-"H4+ c #BFBAA3",
-"I4+ c #CAC1A7",
-"J4+ c #C9BFA6",
-"K4+ c #C6BCA4",
-"L4+ c #BFB69D",
-"M4+ c #C0B69E",
-"N4+ c #C7BDA4",
-"O4+ c #C2B59E",
-"P4+ c #C6B7A0",
-"Q4+ c #C6B49F",
-"R4+ c #BDAF98",
-"S4+ c #A8A493",
-"T4+ c #A09F8F",
-"U4+ c #979686",
-"V4+ c #959282",
-"W4+ c #928C7C",
-"X4+ c #938E7C",
-"Y4+ c #979282",
-"Z4+ c #9C9686",
-"`4+ c #9E9789",
-" 5+ c #9E978A",
-".5+ c #A29A8E",
-"+5+ c #A29A90",
-"@5+ c #A29A91",
-"#5+ c #9E968E",
-"$5+ c #9D948B",
-"%5+ c #9B918A",
-"&5+ c #999087",
-"*5+ c #998E87",
-"=5+ c #988C85",
-"-5+ c #91837D",
-";5+ c #8F7F7B",
-">5+ c #806E6C",
-",5+ c #7C665E",
-"'5+ c #7C625D",
-")5+ c #795E5B",
-"!5+ c #775C58",
-"~5+ c #745954",
-"{5+ c #725652",
-"]5+ c #6E524F",
-"^5+ c #6A4F4A",
-"/5+ c #6E4F4C",
-"(5+ c #6C4848",
-"_5+ c #6D4848",
-":5+ c #6C4746",
-"<5+ c #764F51",
-"[5+ c #7A5354",
-"}5+ c #7E5759",
-"|5+ c #7F5858",
-"15+ c #805A5B",
-"25+ c #7E5958",
-"35+ c #7B5858",
-"45+ c #745052",
-"55+ c #714D4E",
-"65+ c #6F4A4C",
-"75+ c #6B474A",
-"85+ c #6A4749",
-"95+ c #684546",
-"05+ c #624042",
-"a5+ c #5F4340",
-"b5+ c #5A413D",
-"c5+ c #5A433F",
-"d5+ c #5A4843",
-"e5+ c #604E4A",
-"f5+ c #63524D",
-"g5+ c #665751",
-"h5+ c #6A5D54",
-"i5+ c #6D6058",
-"j5+ c #70655D",
-"k5+ c #746A62",
-"l5+ c #776F66",
-"m5+ c #7A736A",
-"n5+ c #7E776E",
-"o5+ c #7F796F",
-"p5+ c #827F73",
-"q5+ c #868476",
-"r5+ c #878678",
-"s5+ c #8B8A7E",
-"t5+ c #929487",
-"u5+ c #939488",
-"v5+ c #919487",
-"w5+ c #919486",
-"x5+ c #919586",
-"y5+ c #929588",
-"z5+ c #909587",
-"A5+ c #929789",
-"B5+ c #8C9184",
-"C5+ c #909486",
-"D5+ c #919688",
-"E5+ c #71756B",
-"F5+ c #626257",
-"G5+ c #4A4944",
-"H5+ c #312C29",
-"I5+ c #3A2F2F",
-"J5+ c #5D625C",
-"K5+ c #6E786D",
-"L5+ c #657468",
-"M5+ c #677469",
-"N5+ c #667369",
-"O5+ c #69776C",
-"P5+ c #6B786D",
-"Q5+ c #72806F",
-"R5+ c #6E7D6C",
-"S5+ c #6B796A",
-"T5+ c #6C7B6A",
-"U5+ c #6C7B6B",
-"V5+ c #6D7B6B",
-"W5+ c #707A6D",
-"X5+ c #6F796C",
-"Y5+ c #737D6D",
-"Z5+ c #737F6D",
-"`5+ c #79806C",
-" 6+ c #6A6D56",
-".6+ c #5D6148",
-"+6+ c #595B42",
-"@6+ c #605E48",
-"#6+ c #64644E",
-"$6+ c #585640",
-"%6+ c #44422C",
-"&6+ c #403E28",
-"*6+ c #4E503A",
-"=6+ c #5D614C",
-"-6+ c #71745F",
-";6+ c #70745E",
-">6+ c #737860",
-",6+ c #767C64",
-"'6+ c #71775E",
-")6+ c #686B56",
-"!6+ c #515240",
-"~6+ c #575848",
-"{6+ c #595A4A",
-"]6+ c #585848",
-"^6+ c #515141",
-"/6+ c #484334",
-"(6+ c #3C342A",
-"_6+ c #352A2E",
-":6+ c #352A32",
-"<6+ c #362A32",
-"[6+ c #342B2C",
-"}6+ c #383128",
-"|6+ c #3C362A",
-"16+ c #3D382A",
-"26+ c #3F3A2E",
-"36+ c #444033",
-"46+ c #4F4B3E",
-"56+ c #575346",
-"66+ c #5A5649",
-"76+ c #5B584A",
-"86+ c #6A6A5C",
-"96+ c #6C6D5E",
-"06+ c #6C6D5D",
-"a6+ c #6F6F61",
-"b6+ c #747566",
-"c6+ c #777968",
-"d6+ c #858877",
-"e6+ c #898B7A",
-"f6+ c #8C907D",
-"g6+ c #939582",
-"h6+ c #9A9E8B",
-"i6+ c #9FA38E",
-"j6+ c #A2A68F",
-"k6+ c #A5AA92",
-"l6+ c #A7AD95",
-"m6+ c #AAAF96",
-"n6+ c #ACB098",
-"o6+ c #ADB199",
-"p6+ c #AEB29A",
-"q6+ c #AEB39A",
-"r6+ c #B8B89E",
-"s6+ c #C8C1A3",
-"t6+ c #CBC3A6",
-"u6+ c #CCC4A7",
-"v6+ c #CBC4A7",
-"w6+ c #C8C0A5",
-"x6+ c #C7BFA4",
-"y6+ c #C5BCA2",
-"z6+ c #C3B9A2",
-"A6+ c #C2B8A0",
-"B6+ c #C3B8A0",
-"C6+ c #C0B29A",
-"D6+ c #C3B49C",
-"E6+ c #B9AE98",
-"F6+ c #A7A596",
-"G6+ c #A09F90",
-"H6+ c #9A988A",
-"I6+ c #969486",
-"J6+ c #908B7A",
-"K6+ c #8D8875",
-"L6+ c #8E8877",
-"M6+ c #928C7D",
-"N6+ c #968F82",
-"O6+ c #968E82",
-"P6+ c #989085",
-"Q6+ c #958C83",
-"R6+ c #938982",
-"S6+ c #8D817A",
-"T6+ c #8A7E77",
-"U6+ c #81706B",
-"V6+ c #776260",
-"W6+ c #725C59",
-"X6+ c #705650",
-"Y6+ c #6C524A",
-"Z6+ c #6A4E49",
-"`6+ c #6B4E4A",
-" 7+ c #684643",
-".7+ c #674444",
-"+7+ c #694544",
-"@7+ c #6C4446",
-"#7+ c #764E51",
-"$7+ c #835E61",
-"%7+ c #866264",
-"&7+ c #896568",
-"*7+ c #896468",
-"=7+ c #896667",
-"-7+ c #866361",
-";7+ c #83605E",
-">7+ c #805E5B",
-",7+ c #7E5C5A",
-"'7+ c #7B5A57",
-")7+ c #7A5955",
-"!7+ c #765554",
-"~7+ c #735253",
-"{7+ c #724E50",
-"]7+ c #6A484A",
-"^7+ c #674648",
-"/7+ c #644445",
-"(7+ c #674748",
-"_7+ c #624244",
-":7+ c #5C3C3E",
-"<7+ c #583A3A",
-"[7+ c #543C39",
-"}7+ c #55403C",
-"|7+ c #57453E",
-"17+ c #56443E",
-"27+ c #574740",
-"37+ c #5A4C44",
-"47+ c #60544B",
-"57+ c #64574F",
-"67+ c #695D56",
-"77+ c #726A61",
-"87+ c #767266",
-"97+ c #7A786B",
-"07+ c #7E7B6F",
-"a7+ c #818073",
-"b7+ c #858477",
-"c7+ c #88887B",
-"d7+ c #8E8F82",
-"e7+ c #939688",
-"f7+ c #949789",
-"g7+ c #94978A",
-"h7+ c #94998C",
-"i7+ c #94988B",
-"j7+ c #949A8C",
-"k7+ c #959A8D",
-"l7+ c #969C8F",
-"m7+ c #949C8D",
-"n7+ c #93988A",
-"o7+ c #92978A",
-"p7+ c #94988C",
-"q7+ c #949B8E",
-"r7+ c #919C8E",
-"s7+ c #787F74",
-"t7+ c #7A8075",
-"u7+ c #7E8277",
-"v7+ c #46443F",
-"w7+ c #3B3833",
-"x7+ c #37312D",
-"y7+ c #575B56",
-"z7+ c #7B8477",
-"A7+ c #7B8578",
-"B7+ c #69746B",
-"C7+ c #67746A",
-"D7+ c #68766B",
-"E7+ c #6A786E",
-"F7+ c #6C7968",
-"G7+ c #6F7C6A",
-"H7+ c #707C6A",
-"I7+ c #717C6B",
-"J7+ c #707B6B",
-"K7+ c #707A6B",
-"L7+ c #71796C",
-"M7+ c #6E7669",
-"N7+ c #727B6C",
-"O7+ c #777E6C",
-"P7+ c #78806C",
-"Q7+ c #7B806C",
-"R7+ c #6F7156",
-"S7+ c #66654A",
-"T7+ c #5F5E40",
-"U7+ c #605E40",
-"V7+ c #666348",
-"W7+ c #6C664D",
-"X7+ c #716C54",
-"Y7+ c #6E6A51",
-"Z7+ c #625E44",
-"`7+ c #534E34",
-" 8+ c #5F5B43",
-".8+ c #6E6D55",
-"+8+ c #7A7E65",
-"@8+ c #797E64",
-"#8+ c #7A7F64",
-"$8+ c #777C5F",
-"%8+ c #676D50",
-"&8+ c #5A5C48",
-"*8+ c #555345",
-"=8+ c #545445",
-"-8+ c #545447",
-";8+ c #535244",
-">8+ c #4C4A3A",
-",8+ c #3E3C2E",
-"'8+ c #342E28",
-")8+ c #372D32",
-"!8+ c #33292E",
-"~8+ c #393028",
-"{8+ c #3D362C",
-"]8+ c #423C31",
-"^8+ c #4D483B",
-"/8+ c #585648",
-"(8+ c #595649",
-"_8+ c #575347",
-":8+ c #747667",
-"<8+ c #797E6E",
-"[8+ c #838876",
-"}8+ c #868C79",
-"|8+ c #8A8F7C",
-"18+ c #8C917E",
-"28+ c #919583",
-"38+ c #959A87",
-"48+ c #98A08C",
-"58+ c #9CA28E",
-"68+ c #A2A692",
-"78+ c #A4AB93",
-"88+ c #A6AC94",
-"98+ c #A6AD94",
-"08+ c #A7AE96",
-"a8+ c #A9AF98",
-"b8+ c #A9B097",
-"c8+ c #A9AF97",
-"d8+ c #ACB299",
-"e8+ c #AEB299",
-"f8+ c #BFB89A",
-"g8+ c #C7BEA0",
-"h8+ c #C9C0A4",
-"i8+ c #C8C0A4",
-"j8+ c #C6BEA4",
-"k8+ c #C2B9A1",
-"l8+ c #C0B59F",
-"m8+ c #BEB49C",
-"n8+ c #BEB39A",
-"o8+ c #BEB49A",
-"p8+ c #C1B39C",
-"q8+ c #C0B299",
-"r8+ c #ABA592",
-"s8+ c #A2A292",
-"t8+ c #9F9E8F",
-"u8+ c #9D9B8E",
-"v8+ c #979586",
-"w8+ c #918C7D",
-"x8+ c #8C8674",
-"y8+ c #888070",
-"z8+ c #898173",
-"A8+ c #8C8376",
-"B8+ c #8C8277",
-"C8+ c #8C8278",
-"D8+ c #8A7F77",
-"E8+ c #877974",
-"F8+ c #847872",
-"G8+ c #80726D",
-"H8+ c #7D6F69",
-"I8+ c #7A6C67",
-"J8+ c #7A6C66",
-"K8+ c #6F5C59",
-"L8+ c #6D5858",
-"M8+ c #6A5454",
-"N8+ c #665050",
-"O8+ c #624442",
-"P8+ c #634140",
-"Q8+ c #664140",
-"R8+ c #684342",
-"S8+ c #704A4A",
-"T8+ c #714B4C",
-"U8+ c #785353",
-"V8+ c #7A5657",
-"W8+ c #7D595A",
-"X8+ c #815D5E",
-"Y8+ c #805C5C",
-"Z8+ c #815E5E",
-"`8+ c #836060",
-" 9+ c #866463",
-".9+ c #846161",
-"+9+ c #805C5A",
-"@9+ c #7F5C5A",
-"#9+ c #7D5B58",
-"$9+ c #7B5956",
-"%9+ c #785853",
-"&9+ c #775753",
-"*9+ c #755551",
-"=9+ c #745351",
-"-9+ c #714E4E",
-";9+ c #704F4E",
-">9+ c #6D4C4B",
-",9+ c #6C4B4A",
-"'9+ c #6A4A48",
-")9+ c #694A48",
-"!9+ c #684847",
-"~9+ c #684A48",
-"{9+ c #654746",
-"]9+ c #604040",
-"^9+ c #5F4041",
-"/9+ c #583939",
-"(9+ c #563938",
-"_9+ c #523C3A",
-":9+ c #543E3C",
-"<9+ c #53403C",
-"[9+ c #52443C",
-"}9+ c #54463E",
-"|9+ c #554742",
-"19+ c #5A4D47",
-"29+ c #5B5148",
-"39+ c #5F594E",
-"49+ c #665E53",
-"59+ c #6B655A",
-"69+ c #726D62",
-"79+ c #79766A",
-"89+ c #8B8E81",
-"99+ c #8E9083",
-"09+ c #909386",
-"a9+ c #939689",
-"b9+ c #95998C",
-"c9+ c #969A8E",
-"d9+ c #959D8E",
-"e9+ c #959E90",
-"f9+ c #959F90",
-"g9+ c #97A192",
-"h9+ c #98A193",
-"i9+ c #95A090",
-"j9+ c #949D8E",
-"k9+ c #929D8D",
-"l9+ c #666E65",
-"m9+ c #7C8578",
-"n9+ c #7E8478",
-"o9+ c #878E80",
-"p9+ c #5F635C",
-"q9+ c #4B4841",
-"r9+ c #585D57",
-"s9+ c #70796D",
-"t9+ c #727C70",
-"u9+ c #6B756C",
-"v9+ c #6F7D71",
-"w9+ c #707D71",
-"x9+ c #6E7C71",
-"y9+ c #6E7C6A",
-"z9+ c #717D6A",
-"A9+ c #6F7A66",
-"B9+ c #707B67",
-"C9+ c #737F6A",
-"D9+ c #787F6D",
-"E9+ c #787E6D",
-"F9+ c #747C6B",
-"G9+ c #757D6C",
-"H9+ c #79806E",
-"I9+ c #787F6E",
-"J9+ c #797F6E",
-"K9+ c #7A806D",
-"L9+ c #7A826C",
-"M9+ c #70755A",
-"N9+ c #686A4C",
-"O9+ c #666447",
-"P9+ c #656345",
-"Q9+ c #6A6849",
-"R9+ c #726E52",
-"S9+ c #777256",
-"T9+ c #7A7559",
-"U9+ c #706A4F",
-"V9+ c #625D3E",
-"W9+ c #625C3F",
-"X9+ c #6F694D",
-"Y9+ c #7C765C",
-"Z9+ c #86856A",
-"`9+ c #86896E",
-" 0+ c #84866A",
-".0+ c #828568",
-"+0+ c #82866A",
-"@0+ c #7C7F60",
-"#0+ c #707252",
-"$0+ c #606343",
-"%0+ c #585444",
-"&0+ c #524E3E",
-"*0+ c #4E4C3D",
-"=0+ c #444334",
-"-0+ c #39362A",
-";0+ c #332C29",
-">0+ c #362A30",
-",0+ c #382D32",
-"'0+ c #34292E",
-")0+ c #372E26",
-"!0+ c #3B342A",
-"~0+ c #3F372E",
-"{0+ c #433A31",
-"]0+ c #4B443A",
-"^0+ c #514D42",
-"/0+ c #545145",
-"(0+ c #525043",
-"_0+ c #6E6D60",
-":0+ c #767768",
-"<0+ c #7C8070",
-"[0+ c #868A7A",
-"}0+ c #8A8E7E",
-"|0+ c #959B88",
-"10+ c #98A08B",
-"20+ c #9BA290",
-"30+ c #9DA390",
-"40+ c #A0A593",
-"50+ c #A2A893",
-"60+ c #A4AC92",
-"70+ c #A2AB91",
-"80+ c #A3AA91",
-"90+ c #A4AA92",
-"00+ c #A5AC93",
-"a0+ c #A8AD95",
-"b0+ c #A7AB93",
-"c0+ c #B1B094",
-"d0+ c #C4B99A",
-"e0+ c #C6BC9D",
-"f0+ c #C6BCA0",
-"g0+ c #C5BCA0",
-"h0+ c #C4BBA0",
-"i0+ c #C1B8A0",
-"j0+ c #BEB39B",
-"k0+ c #BDB29A",
-"l0+ c #BDB198",
-"m0+ c #BDB098",
-"n0+ c #BDB297",
-"o0+ c #BBAE94",
-"p0+ c #AFA68F",
-"q0+ c #9F9F8E",
-"r0+ c #999B8A",
-"s0+ c #989888",
-"t0+ c #989789",
-"u0+ c #928F82",
-"v0+ c #8C8778",
-"w0+ c #868070",
-"x0+ c #7F7769",
-"y0+ c #7C7266",
-"z0+ c #7C7166",
-"A0+ c #7C7267",
-"B0+ c #7B7067",
-"C0+ c #786E66",
-"D0+ c #766964",
-"E0+ c #736560",
-"F0+ c #70625D",
-"G0+ c #6F5E5A",
-"H0+ c #6C5C58",
-"I0+ c #6E5D58",
-"J0+ c #665650",
-"K0+ c #61514C",
-"L0+ c #604849",
-"M0+ c #604448",
-"N0+ c #644448",
-"O0+ c #684246",
-"P0+ c #6B4547",
-"Q0+ c #6E484A",
-"R0+ c #704B4C",
-"S0+ c #755453",
-"T0+ c #745452",
-"U0+ c #795756",
-"V0+ c #7B5959",
-"W0+ c #7C5A5A",
-"X0+ c #7D5A5A",
-"Y0+ c #805E5D",
-"Z0+ c #7E5C5C",
-"`0+ c #7F5D5D",
-" a+ c #805F5F",
-".a+ c #81615F",
-"+a+ c #7E5C59",
-"@a+ c #7E5B59",
-"#a+ c #7C5A58",
-"$a+ c #785855",
-"%a+ c #765653",
-"&a+ c #745450",
-"*a+ c #71514E",
-"=a+ c #6F504E",
-"-a+ c #6C4C4A",
-";a+ c #674947",
-">a+ c #664846",
-",a+ c #644746",
-"'a+ c #654747",
-")a+ c #5E403F",
-"!a+ c #5E4240",
-"~a+ c #5A3C3C",
-"{a+ c #563A38",
-"]a+ c #513F3B",
-"^a+ c #50403B",
-"/a+ c #51433E",
-"(a+ c #52453F",
-"_a+ c #54463F",
-":a+ c #51483F",
-"<a+ c #524B3F",
-"[a+ c #6A665B",
-"}a+ c #706C62",
-"|a+ c #767468",
-"1a+ c #878A7E",
-"2a+ c #8A8E81",
-"3a+ c #929689",
-"4a+ c #939A8C",
-"5a+ c #969F90",
-"6a+ c #97A294",
-"7a+ c #98A294",
-"8a+ c #9AA295",
-"9a+ c #9AA496",
-"0a+ c #97A293",
-"aa+ c #96A293",
-"ba+ c #95A293",
-"ca+ c #94A392",
-"da+ c #8C9385",
-"ea+ c #919788",
-"fa+ c #828D7F",
-"ga+ c #6F7B70",
-"ha+ c #6F7E71",
-"ia+ c #717F73",
-"ja+ c #727F73",
-"ka+ c #707E6C",
-"la+ c #72806D",
-"ma+ c #73806E",
-"na+ c #73806C",
-"oa+ c #737F6B",
-"pa+ c #75806C",
-"qa+ c #77816D",
-"ra+ c #767F6B",
-"sa+ c #747E68",
-"ta+ c #767E6A",
-"ua+ c #767E6B",
-"va+ c #7C826E",
-"wa+ c #7B826E",
-"xa+ c #7A806E",
-"ya+ c #77806C",
-"za+ c #748071",
-"Aa+ c #798471",
-"Ba+ c #798371",
-"Ca+ c #77816F",
-"Da+ c #79826E",
-"Ea+ c #787F69",
-"Fa+ c #6E745D",
-"Ga+ c #62694F",
-"Ha+ c #60644A",
-"Ia+ c #62654A",
-"Ja+ c #65684D",
-"Ka+ c #73795D",
-"La+ c #787D5F",
-"Ma+ c #717759",
-"Na+ c #666C4E",
-"Oa+ c #666B4E",
-"Pa+ c #707457",
-"Qa+ c #7F8365",
-"Ra+ c #898E71",
-"Sa+ c #8D9273",
-"Ta+ c #8A8F6E",
-"Ua+ c #888C6C",
-"Va+ c #888A6B",
-"Wa+ c #85846A",
-"Xa+ c #6C664C",
-"Ya+ c #635D45",
-"Za+ c #625B47",
-"`a+ c #5F5747",
-" b+ c #504939",
-".b+ c #453F2F",
-"+b+ c #3A3226",
-"@b+ c #38292B",
-"#b+ c #392A2E",
-"$b+ c #392F2E",
-"%b+ c #322926",
-"&b+ c #392F2A",
-"*b+ c #3D3630",
-"=b+ c #403A31",
-"-b+ c #454238",
-";b+ c #4F4C40",
-">b+ c #525044",
-",b+ c #4F5040",
-"'b+ c #4C4E3F",
-")b+ c #4C4D3E",
-"!b+ c #525344",
-"~b+ c #5C5E4F",
-"{b+ c #848878",
-"]b+ c #939988",
-"^b+ c #959B8B",
-"/b+ c #959D8A",
-"(b+ c #969D8A",
-"_b+ c #97A08C",
-":b+ c #9AA28E",
-"<b+ c #9BA28F",
-"[b+ c #9FA492",
-"}b+ c #A1A693",
-"|b+ c #A2A892",
-"1b+ c #A2A891",
-"2b+ c #A4A992",
-"3b+ c #A4A890",
-"4b+ c #A4A891",
-"5b+ c #A6AA92",
-"6b+ c #A7AB94",
-"7b+ c #AAAD96",
-"8b+ c #A8AB94",
-"9b+ c #A6AA94",
-"0b+ c #A7AC94",
-"ab+ c #B4B294",
-"bb+ c #BFB695",
-"cb+ c #C1B797",
-"db+ c #C2B89B",
-"eb+ c #C3B99D",
-"fb+ c #C0B89D",
-"gb+ c #BFB79A",
-"hb+ c #BDB498",
-"ib+ c #BCB097",
-"jb+ c #BBAF96",
-"kb+ c #BAAE97",
-"lb+ c #B8AA95",
-"mb+ c #B7A893",
-"nb+ c #B0A490",
-"ob+ c #9B988B",
-"pb+ c #918F85",
-"qb+ c #908C82",
-"rb+ c #8C887E",
-"sb+ c #88847B",
-"tb+ c #867E76",
-"ub+ c #80736F",
-"vb+ c #746360",
-"wb+ c #705F5C",
-"xb+ c #71605D",
-"yb+ c #6B5A56",
-"zb+ c #695854",
-"Ab+ c #645252",
-"Bb+ c #624D52",
-"Cb+ c #5C484D",
-"Db+ c #5C434A",
-"Eb+ c #5E4047",
-"Fb+ c #624447",
-"Gb+ c #664647",
-"Hb+ c #6A4846",
-"Ib+ c #6C4947",
-"Jb+ c #6E4A48",
-"Kb+ c #714E4B",
-"Lb+ c #724F4D",
-"Mb+ c #72514E",
-"Nb+ c #745652",
-"Ob+ c #765854",
-"Pb+ c #795A57",
-"Qb+ c #7B5C58",
-"Rb+ c #7E605C",
-"Sb+ c #7D605C",
-"Tb+ c #7D5F5A",
-"Ub+ c #7D5E5A",
-"Vb+ c #7C5E5A",
-"Wb+ c #7A5B58",
-"Xb+ c #7B5D5A",
-"Yb+ c #775956",
-"Zb+ c #765856",
-"`b+ c #745854",
-" c+ c #735752",
-".c+ c #71544F",
-"+c+ c #6E514D",
-"@c+ c #6B4E49",
-"#c+ c #6A4D49",
-"$c+ c #674B47",
-"%c+ c #644945",
-"&c+ c #634844",
-"*c+ c #624744",
-"=c+ c #634845",
-"-c+ c #634846",
-";c+ c #644846",
-">c+ c #644744",
-",c+ c #624441",
-"'c+ c #60423F",
-")c+ c #583B3A",
-"!c+ c #543A38",
-"~c+ c #533937",
-"{c+ c #523837",
-"]c+ c #4E3736",
-"^c+ c #4C3939",
-"/c+ c #4C3A39",
-"(c+ c #4B3C3A",
-"_c+ c #4F4342",
-":c+ c #524643",
-"<c+ c #524842",
-"[c+ c #544A43",
-"}c+ c #544A44",
-"|c+ c #564E48",
-"1c+ c #59524C",
-"2c+ c #5D5550",
-"3c+ c #605C53",
-"4c+ c #656459",
-"5c+ c #6C6B62",
-"6c+ c #727368",
-"7c+ c #7C8074",
-"8c+ c #888A80",
-"9c+ c #8B9183",
-"0c+ c #919888",
-"ac+ c #969E8E",
-"bc+ c #98A194",
-"cc+ c #98A297",
-"dc+ c #9AA49B",
-"ec+ c #9DA7A1",
-"fc+ c #97A4A0",
-"gc+ c #96A49C",
-"hc+ c #97A59A",
-"ic+ c #838C82",
-"jc+ c #90998C",
-"kc+ c #969C91",
-"lc+ c #686A65",
-"mc+ c #777F75",
-"nc+ c #7A8177",
-"oc+ c #808A7D",
-"pc+ c #8A9586",
-"qc+ c #6D7C6F",
-"rc+ c #6F7C72",
-"sc+ c #6E7C72",
-"tc+ c #717E6F",
-"uc+ c #74806E",
-"vc+ c #74806D",
-"wc+ c #76816C",
-"xc+ c #78816C",
-"yc+ c #7A816C",
-"zc+ c #7C846D",
-"Ac+ c #7C806A",
-"Bc+ c #7A826A",
-"Cc+ c #7C846E",
-"Dc+ c #7D8670",
-"Ec+ c #798270",
-"Fc+ c #76816F",
-"Gc+ c #76816E",
-"Hc+ c #738270",
-"Ic+ c #728174",
-"Jc+ c #738273",
-"Kc+ c #748472",
-"Lc+ c #748471",
-"Mc+ c #738471",
-"Nc+ c #73826F",
-"Oc+ c #697660",
-"Pc+ c #5E6B55",
-"Qc+ c #5C6850",
-"Rc+ c #59624B",
-"Sc+ c #5D664E",
-"Tc+ c #6A725A",
-"Uc+ c #767D66",
-"Vc+ c #7B846B",
-"Wc+ c #798367",
-"Xc+ c #6E7A5D",
-"Yc+ c #6D775B",
-"Zc+ c #778066",
-"`c+ c #7F896D",
-" d+ c #8B9479",
-".d+ c #8D977A",
-"+d+ c #8B9476",
-"@d+ c #899272",
-"#d+ c #889171",
-"$d+ c #848A6B",
-"%d+ c #7E8063",
-"&d+ c #717056",
-"*d+ c #68654A",
-"=d+ c #686248",
-"-d+ c #645D45",
-";d+ c #5E5441",
-">d+ c #564B38",
-",d+ c #4A3E2A",
-"'d+ c #413326",
-")d+ c #3E2E29",
-"!d+ c #422F30",
-"~d+ c #423231",
-"{d+ c #3D2F2B",
-"]d+ c #40332D",
-"^d+ c #473E36",
-"/d+ c #4B463C",
-"(d+ c #514E42",
-"_d+ c #4E4D3E",
-":d+ c #505243",
-"<d+ c #737567",
-"[d+ c #818476",
-"}d+ c #8C8F80",
-"|d+ c #919484",
-"1d+ c #969F8B",
-"2d+ c #949B88",
-"3d+ c #939985",
-"4d+ c #929984",
-"5d+ c #949984",
-"6d+ c #959C86",
-"7d+ c #969D87",
-"8d+ c #979C88",
-"9d+ c #969C86",
-"0d+ c #979D86",
-"ad+ c #979E84",
-"bd+ c #989F86",
-"cd+ c #9AA087",
-"dd+ c #9AA188",
-"ed+ c #9CA289",
-"fd+ c #A1A68E",
-"gd+ c #A0A48D",
-"hd+ c #A1A58D",
-"id+ c #A4A790",
-"jd+ c #B0AE91",
-"kd+ c #BAB191",
-"ld+ c #BCB291",
-"md+ c #BCB294",
-"nd+ c #BCB295",
-"od+ c #BBB295",
-"pd+ c #B9AF93",
-"qd+ c #B8AB92",
-"rd+ c #B5A890",
-"sd+ c #B4A68F",
-"td+ c #B3A58E",
-"ud+ c #AFA28B",
-"vd+ c #A79B88",
-"wd+ c #949083",
-"xd+ c #8D8B82",
-"yd+ c #87857B",
-"zd+ c #848278",
-"Ad+ c #827E76",
-"Bd+ c #7C786F",
-"Cd+ c #79746B",
-"Dd+ c #786E67",
-"Ed+ c #746662",
-"Fd+ c #70605D",
-"Gd+ c #6A5A56",
-"Hd+ c #63534E",
-"Id+ c #62534E",
-"Jd+ c #61514D",
-"Kd+ c #5C4C4A",
-"Ld+ c #5B4A48",
-"Md+ c #594647",
-"Nd+ c #5A4246",
-"Od+ c #5C4046",
-"Pd+ c #624649",
-"Qd+ c #644647",
-"Rd+ c #694846",
-"Sd+ c #6C4A48",
-"Td+ c #6D4A49",
-"Ud+ c #714E4D",
-"Vd+ c #72504E",
-"Wd+ c #72534F",
-"Xd+ c #745754",
-"Yd+ c #745753",
-"Zd+ c #7A5A58",
-"`d+ c #785B58",
-" e+ c #785A58",
-".e+ c #7A5D5A",
-"+e+ c #785A57",
-"@e+ c #775856",
-"#e+ c #765956",
-"$e+ c #765A56",
-"%e+ c #795B59",
-"&e+ c #775A57",
-"*e+ c #755A56",
-"=e+ c #745955",
-"-e+ c #735853",
-";e+ c #725852",
-">e+ c #70544F",
-",e+ c #6E534E",
-"'e+ c #6E534F",
-")e+ c #6C524D",
-"!e+ c #6D524F",
-"~e+ c #6B514E",
-"{e+ c #6C504C",
-"]e+ c #6B504D",
-"^e+ c #644A48",
-"/e+ c #664C4A",
-"(e+ c #624946",
-"_e+ c #5E4642",
-":e+ c #5C4541",
-"<e+ c #573F3D",
-"[e+ c #563D3A",
-"}e+ c #523A37",
-"|e+ c #4E3735",
-"1e+ c #4C3634",
-"2e+ c #4A3636",
-"3e+ c #493A37",
-"4e+ c #4A3E37",
-"5e+ c #4D423B",
-"6e+ c #4F463F",
-"7e+ c #544B46",
-"8e+ c #564D48",
-"9e+ c #564D46",
-"0e+ c #554E47",
-"ae+ c #545248",
-"be+ c #57564C",
-"ce+ c #696A5F",
-"de+ c #777A6F",
-"ee+ c #959E93",
-"fe+ c #98A299",
-"ge+ c #9BA69F",
-"he+ c #9DA8A2",
-"ie+ c #98A6A0",
-"je+ c #99A8A0",
-"ke+ c #6A726E",
-"le+ c #858E88",
-"me+ c #8B928C",
-"ne+ c #939B92",
-"oe+ c #98A196",
-"pe+ c #7E877C",
-"qe+ c #828B80",
-"re+ c #8B9587",
-"se+ c #8C9788",
-"te+ c #757E72",
-"ue+ c #828C7F",
-"ve+ c #6F7D72",
-"we+ c #768170",
-"xe+ c #7A846F",
-"ye+ c #7C836E",
-"ze+ c #7C846C",
-"Ae+ c #7C846B",
-"Be+ c #7D846D",
-"Ce+ c #7E866E",
-"De+ c #7E866F",
-"Ee+ c #7C866E",
-"Fe+ c #7B8670",
-"Ge+ c #79856F",
-"He+ c #76826E",
-"Ie+ c #72816F",
-"Je+ c #728270",
-"Ke+ c #728271",
-"Le+ c #718271",
-"Me+ c #728372",
-"Ne+ c #72827A",
-"Oe+ c #728178",
-"Pe+ c #738278",
-"Qe+ c #606A5E",
-"Re+ c #586355",
-"Se+ c #565F52",
-"Te+ c #565E50",
-"Ue+ c #62695A",
-"Ve+ c #818C76",
-"We+ c #89947E",
-"Xe+ c #8D9880",
-"Ye+ c #89957E",
-"Ze+ c #88947A",
-"`e+ c #879478",
-" f+ c #859173",
-".f+ c #7D8669",
-"+f+ c #72785D",
-"@f+ c #6B6E54",
-"#f+ c #676951",
-"$f+ c #5D5A44",
-"%f+ c #4B432E",
-"&f+ c #453729",
-"*f+ c #4A352F",
-"=f+ c #4A3531",
-"-f+ c #433429",
-";f+ c #483C2B",
-">f+ c #534A3F",
-",f+ c #4F4E3E",
-"'f+ c #4E5040",
-")f+ c #585A4A",
-"!f+ c #636655",
-"~f+ c #717564",
-"{f+ c #898E7D",
-"]f+ c #969C8C",
-"^f+ c #989F8E",
-"/f+ c #9AA28F",
-"(f+ c #98A08D",
-"_f+ c #969E8B",
-":f+ c #929884",
-"<f+ c #8F9582",
-"[f+ c #8E9480",
-"}f+ c #8E947E",
-"|f+ c #8F9680",
-"1f+ c #909681",
-"2f+ c #929781",
-"3f+ c #949882",
-"4f+ c #949883",
-"5f+ c #969A84",
-"6f+ c #979C84",
-"7f+ c #989E86",
-"8f+ c #9CA18A",
-"9f+ c #A0A38B",
-"0f+ c #A1A38C",
-"af+ c #A0A38C",
-"bf+ c #A0A28C",
-"cf+ c #9FA289",
-"df+ c #9EA18A",
-"ef+ c #9EA089",
-"ff+ c #A5A388",
-"gf+ c #B0A889",
-"hf+ c #B6AA89",
-"if+ c #B6AA8B",
-"jf+ c #B4A78D",
-"kf+ c #B3A58B",
-"lf+ c #AFA089",
-"mf+ c #AC9D86",
-"nf+ c #A59A84",
-"of+ c #999080",
-"pf+ c #8A867C",
-"qf+ c #848079",
-"rf+ c #807B74",
-"sf+ c #7A766E",
-"tf+ c #78746C",
-"uf+ c #746E66",
-"vf+ c #706961",
-"wf+ c #6C605B",
-"xf+ c #6B5C58",
-"yf+ c #675954",
-"zf+ c #62544E",
-"Af+ c #5A4A47",
-"Bf+ c #564544",
-"Cf+ c #564244",
-"Df+ c #584044",
-"Ef+ c #5C4248",
-"Ff+ c #5B4146",
-"Gf+ c #5E4446",
-"Hf+ c #604545",
-"If+ c #614341",
-"Jf+ c #624440",
-"Kf+ c #664643",
-"Lf+ c #684947",
-"Mf+ c #6C4B49",
-"Nf+ c #6E4D4B",
-"Of+ c #70504D",
-"Pf+ c #725250",
-"Qf+ c #735551",
-"Rf+ c #745855",
-"Sf+ c #755955",
-"Tf+ c #735753",
-"Uf+ c #745956",
-"Vf+ c #785C58",
-"Wf+ c #765B57",
-"Xf+ c #755B58",
-"Yf+ c #765C59",
-"Zf+ c #755C59",
-"`f+ c #765C5A",
-" g+ c #745C58",
-".g+ c #765D5A",
-"+g+ c #735A58",
-"@g+ c #725A57",
-"#g+ c #715855",
-"$g+ c #715956",
-"%g+ c #6E5551",
-"&g+ c #69524E",
-"*g+ c #624A48",
-"=g+ c #604846",
-"-g+ c #5E4745",
-";g+ c #5A4440",
-">g+ c #57403D",
-",g+ c #57403E",
-"'g+ c #57413E",
-")g+ c #533D3A",
-"!g+ c #503A38",
-"~g+ c #4C3736",
-"{g+ c #473635",
-"]g+ c #463836",
-"^g+ c #463B39",
-"/g+ c #4D423F",
-"(g+ c #544946",
-"_g+ c #514B46",
-":g+ c #4F4D45",
-"<g+ c #514E48",
-"[g+ c #55534B",
-"}g+ c #58564F",
-"|g+ c #5B5B53",
-"1g+ c #63625B",
-"2g+ c #6C6C62",
-"3g+ c #737769",
-"4g+ c #83897E",
-"5g+ c #8B9287",
-"6g+ c #96A096",
-"7g+ c #9AA49C",
-"8g+ c #9EA8A2",
-"9g+ c #9AA8A3",
-"0g+ c #6C7270",
-"ag+ c #888F8C",
-"bg+ c #8A928F",
-"cg+ c #939B98",
-"dg+ c #99A29E",
-"eg+ c #6A6E6D",
-"fg+ c #8F998B",
-"gg+ c #5B5F59",
-"hg+ c #8C9688",
-"ig+ c #8D9789",
-"jg+ c #646962",
-"kg+ c #7A8477",
-"lg+ c #818C7F",
-"mg+ c #738175",
-"ng+ c #758071",
-"og+ c #7B8371",
-"pg+ c #7E8571",
-"qg+ c #7F8670",
-"rg+ c #80866F",
-"sg+ c #7F866E",
-"tg+ c #7E876E",
-"ug+ c #7E8871",
-"vg+ c #7E8A72",
-"wg+ c #7B8871",
-"xg+ c #778670",
-"yg+ c #748670",
-"zg+ c #728371",
-"Ag+ c #718172",
-"Bg+ c #708173",
-"Cg+ c #708075",
-"Dg+ c #707F74",
-"Eg+ c #707E75",
-"Fg+ c #727E78",
-"Gg+ c #72807B",
-"Hg+ c #737F7C",
-"Ig+ c #737E7A",
-"Jg+ c #747F7A",
-"Kg+ c #6E7871",
-"Lg+ c #595F5B",
-"Mg+ c #505551",
-"Ng+ c #545753",
-"Og+ c #6E716A",
-"Pg+ c #7E7F76",
-"Qg+ c #7C7E73",
-"Rg+ c #8A9480",
-"Sg+ c #87927C",
-"Tg+ c #7F8A75",
-"Ug+ c #76806B",
-"Vg+ c #6E7660",
-"Wg+ c #6A6F5C",
-"Xg+ c #636755",
-"Yg+ c #5B5F4A",
-"Zg+ c #535641",
-"`g+ c #494734",
-" h+ c #3F3B2D",
-".h+ c #453834",
-"+h+ c #493B36",
-"@h+ c #493934",
-"#h+ c #463C2D",
-"$h+ c #504632",
-"%h+ c #574A36",
-"&h+ c #5C4D3C",
-"*h+ c #5C4F3E",
-"=h+ c #5D5442",
-"-h+ c #5C5643",
-";h+ c #5A5844",
-">h+ c #646554",
-",h+ c #767865",
-"'h+ c #808471",
-")h+ c #949987",
-"!h+ c #979D8B",
-"~h+ c #9CA290",
-"{h+ c #99A28E",
-"]h+ c #99A28C",
-"^h+ c #97A089",
-"/h+ c #919680",
-"(h+ c #8C937E",
-"_h+ c #8B937D",
-":h+ c #8F967E",
-"<h+ c #919880",
-"[h+ c #929A82",
-"}h+ c #969E84",
-"|h+ c #98A088",
-"1h+ c #9BA38A",
-"2h+ c #9EA48C",
-"3h+ c #9EA48D",
-"4h+ c #A3A690",
-"5h+ c #A4A791",
-"6h+ c #A3A891",
-"7h+ c #A5A992",
-"8h+ c #A2A690",
-"9h+ c #A1A48D",
-"0h+ c #9FA28A",
-"ah+ c #9CA087",
-"bh+ c #999C85",
-"ch+ c #969883",
-"dh+ c #96977F",
-"eh+ c #9B977D",
-"fh+ c #A0987C",
-"gh+ c #A1967C",
-"hh+ c #9E937D",
-"ih+ c #9A907D",
-"jh+ c #8E887A",
-"kh+ c #838075",
-"lh+ c #77746E",
-"mh+ c #76736C",
-"nh+ c #706B65",
-"oh+ c #6C6661",
-"ph+ c #6E6762",
-"qh+ c #645E58",
-"rh+ c #625C54",
-"sh+ c #60544E",
-"th+ c #584945",
-"uh+ c #564642",
-"vh+ c #544443",
-"wh+ c #554542",
-"xh+ c #554543",
-"yh+ c #534342",
-"zh+ c #563F45",
-"Ah+ c #573C46",
-"Bh+ c #5C4249",
-"Ch+ c #5B4044",
-"Dh+ c #5C3E3E",
-"Eh+ c #5D3E3C",
-"Fh+ c #5F403E",
-"Gh+ c #60423E",
-"Hh+ c #644642",
-"Ih+ c #664845",
-"Jh+ c #6B4C48",
-"Kh+ c #6D4E4B",
-"Lh+ c #6F514C",
-"Mh+ c #725550",
-"Nh+ c #725752",
-"Oh+ c #715650",
-"Ph+ c #70554F",
-"Qh+ c #715750",
-"Rh+ c #70564F",
-"Sh+ c #7A5F5B",
-"Th+ c #7B605C",
-"Uh+ c #7E6360",
-"Vh+ c #7D6462",
-"Wh+ c #7D6461",
-"Xh+ c #7B6360",
-"Yh+ c #76615E",
-"Zh+ c #74605C",
-"`h+ c #745E5A",
-" i+ c #6E5956",
-".i+ c #695652",
-"+i+ c #624F4B",
-"@i+ c #5F4C48",
-"#i+ c #5C4A47",
-"$i+ c #584643",
-"%i+ c #574642",
-"&i+ c #56453F",
-"*i+ c #54433E",
-"=i+ c #53413F",
-"-i+ c #503E3E",
-";i+ c #4D3B3A",
-">i+ c #4A3939",
-",i+ c #463634",
-"'i+ c #443835",
-")i+ c #4E4B44",
-"!i+ c #524F48",
-"~i+ c #525049",
-"{i+ c #54544C",
-"]i+ c #595A50",
-"^i+ c #5F6156",
-"/i+ c #686A60",
-"(i+ c #7A7F75",
-"_i+ c #8B938A",
-":i+ c #98A39C",
-"<i+ c #A0A9A5",
-"[i+ c #6D7270",
-"}i+ c #87908F",
-"|i+ c #8B9492",
-"1i+ c #939C9D",
-"2i+ c #99A2A3",
-"3i+ c #6A6E6F",
-"4i+ c #818C83",
-"5i+ c #889389",
-"6i+ c #8B9588",
-"7i+ c #788175",
-"8i+ c #8B9688",
-"9i+ c #879384",
-"0i+ c #859083",
-"ai+ c #7E8471",
-"bi+ c #808673",
-"ci+ c #808773",
-"di+ c #7F8872",
-"ei+ c #7F8971",
-"fi+ c #7E8971",
-"gi+ c #7E8B72",
-"hi+ c #7F8C75",
-"ii+ c #7D8D76",
-"ji+ c #798974",
-"ki+ c #768772",
-"li+ c #768673",
-"mi+ c #748674",
-"ni+ c #728173",
-"oi+ c #6F7D75",
-"pi+ c #707D76",
-"qi+ c #707D78",
-"ri+ c #717C78",
-"si+ c #727C7A",
-"ti+ c #747C7C",
-"ui+ c #767D7E",
-"vi+ c #767E7E",
-"wi+ c #767F7F",
-"xi+ c #787F7E",
-"yi+ c #767E7C",
-"zi+ c #6F7572",
-"Ai+ c #595D5C",
-"Bi+ c #545657",
-"Ci+ c #595A5A",
-"Di+ c #6A6B69",
-"Ei+ c #7B7A75",
-"Fi+ c #7F7E78",
-"Gi+ c #80827B",
-"Hi+ c #84887F",
-"Ii+ c #8C9085",
-"Ji+ c #8E9388",
-"Ki+ c #8D9186",
-"Li+ c #8C8E85",
-"Mi+ c #8B9084",
-"Ni+ c #7E8276",
-"Oi+ c #70736A",
-"Pi+ c #47483C",
-"Qi+ c #3E3A34",
-"Ri+ c #403837",
-"Si+ c #463C3B",
-"Ti+ c #443C37",
-"Ui+ c #454331",
-"Vi+ c #4D4C38",
-"Wi+ c #56503D",
-"Xi+ c #5A5643",
-"Yi+ c #5F5745",
-"Zi+ c #645C47",
-"`i+ c #655D47",
-" j+ c #645D47",
-".j+ c #68634D",
-"+j+ c #76745F",
-"@j+ c #888973",
-"#j+ c #90947D",
-"$j+ c #9A9E86",
-"%j+ c #A4A78F",
-"&j+ c #A7A990",
-"*j+ c #A8A990",
-"=j+ c #A7A88D",
-"-j+ c #A7A88C",
-";j+ c #ABAC90",
-">j+ c #ADAD90",
-",j+ c #A9AA8C",
-"'j+ c #A5A486",
-")j+ c #A2A181",
-"!j+ c #9C9C7E",
-"~j+ c #9B9C7F",
-"{j+ c #989C82",
-"]j+ c #999E85",
-"^j+ c #99A087",
-"/j+ c #98A288",
-"(j+ c #9AA48C",
-"_j+ c #9CA48C",
-":j+ c #9FA48D",
-"<j+ c #A0A68E",
-"[j+ c #A1A58E",
-"}j+ c #9DA089",
-"|j+ c #9CA089",
-"1j+ c #9B9D87",
-"2j+ c #989C84",
-"3j+ c #999B84",
-"4j+ c #9A9C85",
-"5j+ c #989A82",
-"6j+ c #969882",
-"7j+ c #969781",
-"8j+ c #959580",
-"9j+ c #908E78",
-"0j+ c #8A8873",
-"aj+ c #878572",
-"bj+ c #868372",
-"cj+ c #7F7B6E",
-"dj+ c #7C796E",
-"ej+ c #78766E",
-"fj+ c #6E6A64",
-"gj+ c #6C6561",
-"hj+ c #68605C",
-"ij+ c #685F5B",
-"jj+ c #605753",
-"kj+ c #5C5450",
-"lj+ c #5E544E",
-"mj+ c #5C524C",
-"nj+ c #5A4E4A",
-"oj+ c #564844",
-"pj+ c #544543",
-"qj+ c #504243",
-"rj+ c #554440",
-"sj+ c #564643",
-"tj+ c #544541",
-"uj+ c #534140",
-"vj+ c #563D41",
-"wj+ c #583C3E",
-"xj+ c #583A39",
-"yj+ c #5A3D3B",
-"zj+ c #5E3E3D",
-"Aj+ c #604240",
-"Bj+ c #634644",
-"Cj+ c #6A4B49",
-"Dj+ c #6B4C4A",
-"Ej+ c #6C4D4B",
-"Fj+ c #6D4E4C",
-"Gj+ c #6E524E",
-"Hj+ c #6D504C",
-"Ij+ c #6D524C",
-"Jj+ c #6D524D",
-"Kj+ c #6F544E",
-"Lj+ c #715652",
-"Mj+ c #735954",
-"Nj+ c #7A5E5B",
-"Oj+ c #7C625E",
-"Pj+ c #7F6662",
-"Qj+ c #836B67",
-"Rj+ c #806864",
-"Sj+ c #856C6A",
-"Tj+ c #826B66",
-"Uj+ c #806A64",
-"Vj+ c #7F6864",
-"Wj+ c #7D6662",
-"Xj+ c #7A625F",
-"Yj+ c #745D59",
-"Zj+ c #765E5B",
-"`j+ c #745F5C",
-" k+ c #74625E",
-".k+ c #74615E",
-"+k+ c #756160",
-"@k+ c #725E5A",
-"#k+ c #73615E",
-"$k+ c #6E5B57",
-"%k+ c #6A5854",
-"&k+ c #655450",
-"*k+ c #64534F",
-"=k+ c #62524E",
-"-k+ c #62524D",
-";k+ c #584844",
-">k+ c #544441",
-",k+ c #51413D",
-"'k+ c #4B3A37",
-")k+ c #483836",
-"!k+ c #463532",
-"~k+ c #42332E",
-"{k+ c #3F3430",
-"]k+ c #413B36",
-"^k+ c #504C46",
-"/k+ c #54504C",
-"(k+ c #56534C",
-"_k+ c #56574E",
-":k+ c #8B948B",
-"<k+ c #949D98",
-"[k+ c #6C706E",
-"}k+ c #88908F",
-"|k+ c #8C9495",
-"1k+ c #969FA2",
-"2k+ c #9AA4A7",
-"3k+ c #6A6F70",
-"4k+ c #828F8A",
-"5k+ c #8A948F",
-"6k+ c #8E988A",
-"7k+ c #7A8378",
-"8k+ c #7F887C",
-"9k+ c #8E998B",
-"0k+ c #879285",
-"ak+ c #738176",
-"bk+ c #7E8672",
-"ck+ c #7E8874",
-"dk+ c #7E8974",
-"ek+ c #7C8B74",
-"fk+ c #7D8C74",
-"gk+ c #7F8E78",
-"hk+ c #7E8D78",
-"ik+ c #7C8C78",
-"jk+ c #788876",
-"kk+ c #748474",
-"lk+ c #748476",
-"mk+ c #748077",
-"nk+ c #727C79",
-"ok+ c #717A7A",
-"pk+ c #727A7B",
-"qk+ c #72797C",
-"rk+ c #727A7A",
-"sk+ c #737B7B",
-"tk+ c #737B7C",
-"uk+ c #767F7C",
-"vk+ c #787F7D",
-"wk+ c #767E7A",
-"xk+ c #6F7770",
-"yk+ c #626B63",
-"zk+ c #545854",
-"Ak+ c #636862",
-"Bk+ c #797C72",
-"Ck+ c #7B7C73",
-"Dk+ c #8A8F82",
-"Ek+ c #8D9284",
-"Fk+ c #8C8E84",
-"Gk+ c #8C8E83",
-"Hk+ c #898D82",
-"Ik+ c #82857E",
-"Jk+ c #7D7D78",
-"Kk+ c #787672",
-"Lk+ c #71706D",
-"Mk+ c #5C5755",
-"Nk+ c #4D4847",
-"Ok+ c #3C3738",
-"Pk+ c #3E313C",
-"Qk+ c #41373C",
-"Rk+ c #43423A",
-"Sk+ c #4A4B3E",
-"Tk+ c #5C5B49",
-"Uk+ c #61604C",
-"Vk+ c #62614B",
-"Wk+ c #87856C",
-"Xk+ c #9C997C",
-"Yk+ c #AAA786",
-"Zk+ c #B1AE8D",
-"`k+ c #B8B391",
-" l+ c #B7B391",
-".l+ c #B4AE8D",
-"+l+ c #AFAB89",
-"@l+ c #AFAD8C",
-"#l+ c #B3B291",
-"$l+ c #B0AE8E",
-"%l+ c #ACAA88",
-"&l+ c #A8A682",
-"*l+ c #A6A480",
-"=l+ c #A7A681",
-"-l+ c #ABA986",
-";l+ c #ACAC87",
-">l+ c #AEAD89",
-",l+ c #ACAB88",
-"'l+ c #A8A886",
-")l+ c #A7A987",
-"!l+ c #A6A98A",
-"~l+ c #A2A78C",
-"{l+ c #A0A68D",
-"]l+ c #9EA58C",
-"^l+ c #9AA288",
-"/l+ c #969A82",
-"(l+ c #92937C",
-"_l+ c #8E8F78",
-":l+ c #8D8E76",
-"<l+ c #8D8D76",
-"[l+ c #8C8C75",
-"}l+ c #8A8A73",
-"|l+ c #8B8E77",
-"1l+ c #8C8F78",
-"2l+ c #888871",
-"3l+ c #86836E",
-"4l+ c #85826E",
-"5l+ c #85826D",
-"6l+ c #84816B",
-"7l+ c #817C6B",
-"8l+ c #807A6C",
-"9l+ c #7C7669",
-"0l+ c #787164",
-"al+ c #70695E",
-"bl+ c #6D645D",
-"cl+ c #6A615F",
-"dl+ c #655C59",
-"el+ c #625A56",
-"fl+ c #615956",
-"gl+ c #5E5651",
-"hl+ c #5E5550",
-"il+ c #5B524E",
-"jl+ c #594E4D",
-"kl+ c #5A4F4C",
-"ll+ c #5A4F4B",
-"ml+ c #5A4F4A",
-"nl+ c #5A504A",
-"ol+ c #574C47",
-"pl+ c #554844",
-"ql+ c #524640",
-"rl+ c #564742",
-"sl+ c #54423D",
-"tl+ c #513D37",
-"ul+ c #553C38",
-"vl+ c #583C3B",
-"wl+ c #5B3E3C",
-"xl+ c #5F413E",
-"yl+ c #604541",
-"zl+ c #634745",
-"Al+ c #654846",
-"Bl+ c #684B49",
-"Cl+ c #6D514E",
-"Dl+ c #6F5550",
-"El+ c #6E544F",
-"Fl+ c #705652",
-"Gl+ c #715753",
-"Hl+ c #735855",
-"Il+ c #765B58",
-"Jl+ c #785E5B",
-"Kl+ c #7B605E",
-"Ll+ c #816965",
-"Ml+ c #7A625E",
-"Nl+ c #755D58",
-"Ol+ c #745C56",
-"Pl+ c #715854",
-"Ql+ c #6E5650",
-"Rl+ c #6F5752",
-"Sl+ c #725A58",
-"Tl+ c #745E5B",
-"Ul+ c #796460",
-"Vl+ c #7A6663",
-"Wl+ c #746460",
-"Xl+ c #756562",
-"Yl+ c #72615E",
-"Zl+ c #6E5D5A",
-"`l+ c #6D5C59",
-" m+ c #6C5B58",
-".m+ c #625651",
-"+m+ c #5F514D",
-"@m+ c #5C4E4A",
-"#m+ c #5A4D48",
-"$m+ c #584B45",
-"%m+ c #544640",
-"&m+ c #50443E",
-"*m+ c #4E423C",
-"=m+ c #4B3E38",
-"-m+ c #473A35",
-";m+ c #473834",
-">m+ c #443230",
-",m+ c #3F3230",
-"'m+ c #3D3432",
-")m+ c #403937",
-"!m+ c #4E4846",
-"~m+ c #55514E",
-"{m+ c #595952",
-"]m+ c #5B5D54",
-"^m+ c #60655A",
-"/m+ c #717769",
-"(m+ c #656863",
-"_m+ c #868E8B",
-":m+ c #8A9492",
-"<m+ c #939E9F",
-"[m+ c #99A6A7",
-"}m+ c #6A7071",
-"|m+ c #838F90",
-"1m+ c #8A9694",
-"2m+ c #98A49E",
-"3m+ c #787878",
-"4m+ c #5B6059",
-"5m+ c #8D968A",
-"6m+ c #8F9A8C",
-"7m+ c #7D8579",
-"8m+ c #8A9286",
-"9m+ c #929A8E",
-"0m+ c #8E988B",
-"am+ c #859084",
-"bm+ c #78857A",
-"cm+ c #788172",
-"dm+ c #7A8573",
-"em+ c #7B8674",
-"fm+ c #7A8773",
-"gm+ c #7A8875",
-"hm+ c #7D8D7B",
-"im+ c #7A8A78",
-"jm+ c #7A8879",
-"km+ c #7B887B",
-"lm+ c #778278",
-"mm+ c #747E7A",
-"nm+ c #737B77",
-"om+ c #727978",
-"pm+ c #71787A",
-"qm+ c #717878",
-"rm+ c #727A78",
-"sm+ c #707A76",
-"tm+ c #727C78",
-"um+ c #737D7A",
-"vm+ c #737D78",
-"wm+ c #737F74",
-"xm+ c #717C6E",
-"ym+ c #687264",
-"zm+ c #596455",
-"Am+ c #4E5B4A",
-"Bm+ c #4D574A",
-"Cm+ c #50584D",
-"Dm+ c #5D655A",
-"Em+ c #6D756A",
-"Fm+ c #72796E",
-"Gm+ c #8D9380",
-"Hm+ c #8D9480",
-"Im+ c #8A9180",
-"Jm+ c #83897C",
-"Km+ c #7E8479",
-"Lm+ c #72726C",
-"Mm+ c #534A4C",
-"Nm+ c #40363C",
-"Om+ c #3A2D38",
-"Pm+ c #3C283D",
-"Qm+ c #3E303C",
-"Rm+ c #41393A",
-"Sm+ c #4B4644",
-"Tm+ c #4F4B48",
-"Um+ c #54524C",
-"Vm+ c #5B594F",
-"Wm+ c #606155",
-"Xm+ c #7B7C62",
-"Ym+ c #989678",
-"Zm+ c #B4B08C",
-"`m+ c #B8B48F",
-" n+ c #BAB792",
-".n+ c #B7B48E",
-"+n+ c #B3AF88",
-"@n+ c #B2AE89",
-"#n+ c #B3B08C",
-"$n+ c #B2B08E",
-"%n+ c #AEAD8C",
-"&n+ c #A9A886",
-"*n+ c #A8A784",
-"=n+ c #AAA984",
-"-n+ c #AEAC8A",
-";n+ c #ACAC88",
-">n+ c #ACAB87",
-",n+ c #B0AF8A",
-"'n+ c #B2B18A",
-")n+ c #B3B28C",
-"!n+ c #B2B08B",
-"~n+ c #A1A482",
-"{n+ c #959A7C",
-"]n+ c #8B9276",
-"^n+ c #898D72",
-"/n+ c #898A72",
-"(n+ c #83836C",
-"_n+ c #7E7E67",
-":n+ c #7B7B64",
-"<n+ c #7C7A65",
-"[n+ c #797860",
-"}n+ c #777860",
-"|n+ c #787A62",
-"1n+ c #787C64",
-"2n+ c #767860",
-"3n+ c #716E58",
-"4n+ c #746F5B",
-"5n+ c #77735D",
-"6n+ c #787361",
-"7n+ c #766F62",
-"8n+ c #726A5E",
-"9n+ c #6D665B",
-"0n+ c #6A6059",
-"an+ c #665D56",
-"bn+ c #5B514D",
-"cn+ c #5B504E",
-"dn+ c #5A504D",
-"en+ c #5A504C",
-"fn+ c #5D524C",
-"gn+ c #5C4E48",
-"hn+ c #574940",
-"in+ c #53443B",
-"jn+ c #544239",
-"kn+ c #503E37",
-"ln+ c #523939",
-"mn+ c #583D40",
-"nn+ c #5A3E3F",
-"on+ c #5C3F3E",
-"pn+ c #5F423F",
-"qn+ c #604440",
-"rn+ c #614642",
-"sn+ c #644845",
-"tn+ c #664A46",
-"un+ c #674B48",
-"vn+ c #694C4A",
-"wn+ c #6B4E4B",
-"xn+ c #6E5450",
-"yn+ c #6E554F",
-"zn+ c #6E5550",
-"An+ c #705852",
-"Bn+ c #735A56",
-"Cn+ c #7B625F",
-"Dn+ c #7E6561",
-"En+ c #775D5A",
-"Fn+ c #694F4A",
-"Gn+ c #664D48",
-"Hn+ c #684E4A",
-"In+ c #6A524E",
-"Jn+ c #725B56",
-"Kn+ c #7D6964",
-"Ln+ c #83706B",
-"Mn+ c #84706B",
-"Nn+ c #84706F",
-"On+ c #83706E",
-"Pn+ c #82706E",
-"Qn+ c #7C6D69",
-"Rn+ c #7D6E6C",
-"Sn+ c #766764",
-"Tn+ c #645654",
-"Un+ c #60534E",
-"Vn+ c #5D504A",
-"Wn+ c #5A4E49",
-"Xn+ c #534741",
-"Yn+ c #4C423B",
-"Zn+ c #4B3F39",
-"`n+ c #4B3C39",
-" o+ c #493936",
-".o+ c #483936",
-"+o+ c #463632",
-"@o+ c #3F302F",
-"#o+ c #3C3030",
-"$o+ c #3C3533",
-"%o+ c #443E3D",
-"&o+ c #585852",
-"*o+ c #5A5A54",
-"=o+ c #626859",
-"-o+ c #767D6C",
-";o+ c #86918B",
-">o+ c #909D9B",
-",o+ c #98A6A5",
-"'o+ c #6A7070",
-")o+ c #849098",
-"!o+ c #8C989A",
-"~o+ c #98A5A4",
-"{o+ c #838C7F",
-"]o+ c #8C968A",
-"^o+ c #7E867A",
-"/o+ c #869285",
-"(o+ c #778479",
-"_o+ c #738076",
-":o+ c #7B8474",
-"<o+ c #7E8472",
-"[o+ c #7A8472",
-"}o+ c #798472",
-"|o+ c #798878",
-"1o+ c #78867A",
-"2o+ c #768278",
-"3o+ c #78837A",
-"4o+ c #79817C",
-"5o+ c #747E79",
-"6o+ c #767D7A",
-"7o+ c #747D79",
-"8o+ c #737A75",
-"9o+ c #717A74",
-"0o+ c #707974",
-"ao+ c #707A73",
-"bo+ c #707B74",
-"co+ c #707B73",
-"do+ c #728070",
-"eo+ c #6A7766",
-"fo+ c #5F6C5A",
-"go+ c #505F4A",
-"ho+ c #4B5A45",
-"io+ c #4F5B49",
-"jo+ c #596253",
-"ko+ c #727C6D",
-"lo+ c #6E796A",
-"mo+ c #717A6B",
-"no+ c #808A76",
-"oo+ c #868F7A",
-"po+ c #8A947E",
-"qo+ c #8C947E",
-"ro+ c #89937C",
-"so+ c #89927C",
-"to+ c #848C78",
-"uo+ c #56544E",
-"vo+ c #443E3C",
-"wo+ c #3B3133",
-"xo+ c #392D32",
-"yo+ c #372935",
-"zo+ c #3F3439",
-"Ao+ c #483C42",
-"Bo+ c #4C4247",
-"Co+ c #52494D",
-"Do+ c #584F52",
-"Eo+ c #68635C",
-"Fo+ c #757062",
-"Go+ c #8B8670",
-"Ho+ c #A19D82",
-"Io+ c #AAA98B",
-"Jo+ c #B2B090",
-"Ko+ c #B7B895",
-"Lo+ c #B8B894",
-"Mo+ c #B4B48F",
-"No+ c #B4B38C",
-"Oo+ c #B5B28A",
-"Po+ c #B6B28A",
-"Qo+ c #B2AF88",
-"Ro+ c #B1AE88",
-"So+ c #B0AE8A",
-"To+ c #B0AE8B",
-"Uo+ c #B0AE8C",
-"Vo+ c #ADAC89",
-"Wo+ c #AEAC89",
-"Xo+ c #B1AF8C",
-"Yo+ c #B1AE89",
-"Zo+ c #AFAC86",
-"`o+ c #ACA982",
-" p+ c #A8A67F",
-".p+ c #A6A37B",
-"+p+ c #9F9C75",
-"@p+ c #929470",
-"#p+ c #898A6F",
-"$p+ c #81826C",
-"%p+ c #7B7B63",
-"&p+ c #777760",
-"*p+ c #74735D",
-"=p+ c #716F59",
-"-p+ c #74745C",
-";p+ c #706F58",
-">p+ c #605C46",
-",p+ c #625D47",
-"'p+ c #645E4A",
-")p+ c #6C6356",
-"!p+ c #6C6558",
-"~p+ c #6A6258",
-"{p+ c #665E56",
-"]p+ c #645C54",
-"^p+ c #615852",
-"/p+ c #605852",
-"(p+ c #5D554D",
-"_p+ c #5D534A",
-":p+ c #5C504A",
-"<p+ c #5E524B",
-"[p+ c #60534A",
-"}p+ c #605348",
-"|p+ c #625449",
-"1p+ c #605148",
-"2p+ c #5D4E46",
-"3p+ c #57473E",
-"4p+ c #504037",
-"5p+ c #4E3E35",
-"6p+ c #4D3D36",
-"7p+ c #4E3A38",
-"8p+ c #54383B",
-"9p+ c #593F40",
-"0p+ c #593E3F",
-"ap+ c #5B403E",
-"bp+ c #5E4540",
-"cp+ c #614744",
-"dp+ c #624846",
-"ep+ c #654A48",
-"fp+ c #694E4A",
-"gp+ c #6A4E4B",
-"hp+ c #6A4D4A",
-"ip+ c #705853",
-"jp+ c #715954",
-"kp+ c #735A57",
-"lp+ c #745B56",
-"mp+ c #735A54",
-"np+ c #705753",
-"op+ c #684F4A",
-"pp+ c #664C47",
-"qp+ c #5C423E",
-"rp+ c #5C413C",
-"sp+ c #5D4340",
-"tp+ c #644C46",
-"up+ c #6E5652",
-"vp+ c #77605C",
-"wp+ c #7C6763",
-"xp+ c #826D68",
-"yp+ c #83706A",
-"zp+ c #85726D",
-"Ap+ c #897670",
-"Bp+ c #887573",
-"Cp+ c #887572",
-"Dp+ c #82716D",
-"Ep+ c #7F716C",
-"Fp+ c #7D6F6A",
-"Gp+ c #7B6D68",
-"Hp+ c #796B67",
-"Ip+ c #786B67",
-"Jp+ c #746762",
-"Kp+ c #756864",
-"Lp+ c #716460",
-"Mp+ c #6E625D",
-"Np+ c #6E615D",
-"Op+ c #6D615D",
-"Pp+ c #685D59",
-"Qp+ c #5D534C",
-"Rp+ c #595049",
-"Sp+ c #564C46",
-"Tp+ c #524742",
-"Up+ c #4C433D",
-"Vp+ c #4C403C",
-"Wp+ c #4C3D3A",
-"Xp+ c #4D3E3A",
-"Yp+ c #4C3C3A",
-"Zp+ c #453633",
-"`p+ c #3B3230",
-" q+ c #3D3836",
-".q+ c #45413F",
-"+q+ c #55534D",
-"@q+ c #5D6155",
-"#q+ c #5F6455",
-"$q+ c #696F5C",
-"%q+ c #55584F",
-"&q+ c #7C877F",
-"*q+ c #8A9791",
-"=q+ c #94A39F",
-"-q+ c #686F6E",
-";q+ c #737373",
-">q+ c #86909A",
-",q+ c #8D989F",
-"'q+ c #98A4A7",
-")q+ c #6A6A6A",
-"!q+ c #6E6E6E",
-"~q+ c #585858",
-"{q+ c #696969",
-"]q+ c #646464",
-"^q+ c #858E97",
-"/q+ c #8D97A2",
-"(q+ c #9AA5B2",
-"_q+ c #575B55",
-":q+ c #5F635D",
-"<q+ c #4E504C",
-"[q+ c #585D56",
-"}q+ c #5D625B",
-"|q+ c #5E635D",
-"1q+ c #595E59",
-"2q+ c #555C56",
-"3q+ c #545B55",
-"4q+ c #535A55",
-"5q+ c #525A54",
-"6q+ c #525A53",
-"7q+ c #515853",
-"8q+ c #505853",
-"9q+ c #505852",
-"0q+ c #505953",
-"aq+ c #505753",
-"bq+ c #515655",
-"cq+ c #575A51",
-"dq+ c #535A56",
-"eq+ c #525855",
-"fq+ c #525854",
-"gq+ c #535855",
-"hq+ c #525654",
-"iq+ c #515553",
-"jq+ c #505451",
-"kq+ c #4E5550",
-"lq+ c #4E5650",
-"mq+ c #505752",
-"nq+ c #505851",
-"oq+ c #4C524A",
-"pq+ c #444A42",
-"qq+ c #424840",
-"rq+ c #454B44",
-"sq+ c #4F564B",
-"tq+ c #4F554A",
-"uq+ c #51574E",
-"vq+ c #535951",
-"wq+ c #5A6059",
-"xq+ c #5B6158",
-"yq+ c #565A51",
-"zq+ c #494B44",
-"Aq+ c #40413B",
-"Bq+ c #3A3834",
-"Cq+ c #383633",
-"Dq+ c #363432",
-"Eq+ c #383533",
-"Fq+ c #3A3734",
-"Gq+ c #3B3837",
-"Hq+ c #3E3C3B",
-"Iq+ c #444340",
-"Jq+ c #68645A",
-"Kq+ c #6B685E",
-"Lq+ c #6D6960",
-"Mq+ c #706E64",
-"Nq+ c #6E6E63",
-"Oq+ c #6D6E60",
-"Pq+ c #6D6E5F",
-"Qq+ c #6E6F5F",
-"Rq+ c #70705F",
-"Sq+ c #727262",
-"Tq+ c #727260",
-"Uq+ c #716F5E",
-"Vq+ c #706D5C",
-"Wq+ c #706D5E",
-"Xq+ c #727061",
-"Yq+ c #727062",
-"Zq+ c #717061",
-"`q+ c #706F61",
-" r+ c #6C6A5D",
-".r+ c #6A6859",
-"+r+ c #6B695A",
-"@r+ c #6C695A",
-"#r+ c #6A6858",
-"$r+ c #696656",
-"%r+ c #686655",
-"&r+ c #676454",
-"*r+ c #666352",
-"=r+ c #646050",
-"-r+ c #635F50",
-";r+ c #625D4D",
-">r+ c #5D5A4C",
-",r+ c #55554A",
-"'r+ c #505046",
-")r+ c #4E4E43",
-"!r+ c #4E4B43",
-"~r+ c #4A4840",
-"{r+ c #49463F",
-"]r+ c #46453E",
-"^r+ c #46443D",
-"/r+ c #44413A",
-"(r+ c #433F38",
-"_r+ c #423E38",
-":r+ c #413D38",
-"<r+ c #434039",
-"[r+ c #45413C",
-"}r+ c #4A4640",
-"|r+ c #4A4643",
-"1r+ c #4B4746",
-"2r+ c #4C4646",
-"3r+ c #4B4645",
-"4r+ c #4A4542",
-"5r+ c #46403F",
-"6r+ c #433D3B",
-"7r+ c #413A38",
-"8r+ c #3E3836",
-"9r+ c #413636",
-"0r+ c #423838",
-"ar+ c #443838",
-"br+ c #443938",
-"cr+ c #463A3A",
-"dr+ c #463C3C",
-"er+ c #473D3C",
-"fr+ c #483D3D",
-"gr+ c #493E3D",
-"hr+ c #4A3F3D",
-"ir+ c #493E3C",
-"jr+ c #473C3A",
-"kr+ c #463A38",
-"lr+ c #453938",
-"mr+ c #433836",
-"nr+ c #423737",
-"or+ c #423836",
-"pr+ c #4A403E",
-"qr+ c #4F4543",
-"rr+ c #524946",
-"sr+ c #564D4A",
-"tr+ c #584F4D",
-"ur+ c #5D5552",
-"vr+ c #5F5654",
-"wr+ c #5F5755",
-"xr+ c #5F5655",
-"yr+ c #5A5250",
-"zr+ c #595050",
-"Ar+ c #58504D",
-"Br+ c #554D4A",
-"Cr+ c #524A48",
-"Dr+ c #504846",
-"Er+ c #4D4543",
-"Fr+ c #453D3B",
-"Gr+ c #403736",
-"Hr+ c #3E3534",
-"Ir+ c #3F3838",
-"Jr+ c #403938",
-"Kr+ c #413A39",
-"Lr+ c #403A39",
-"Mr+ c #413C3B",
-"Nr+ c #413B3C",
-"Or+ c #3F3939",
-"Pr+ c #3E3838",
-"Qr+ c #3A3435",
-"Rr+ c #3A3434",
-"Sr+ c #3D3634",
-"Tr+ c #3F3938",
-"Ur+ c #413C3C",
-"Vr+ c #443E3E",
-"Wr+ c #443F3E",
-"Xr+ c #45403E",
-"Yr+ c #433E3C",
-"Zr+ c #403C39",
-"`r+ c #393332",
-" s+ c #373231",
-".s+ c #3B3838",
-"+s+ c #403E3E",
-"@s+ c #484845",
-"#s+ c #4B4C47",
-"$s+ c #444542",
-"%s+ c #444640",
-"&s+ c #474A44",
-"*s+ c #5A5F5B",
-"=s+ c #636868",
-"-s+ c #82898B",
-";s+ c #8C96A0",
-">s+ c #757D72",
-",s+ c #757F72",
-"'s+ c #788275",
-")s+ c #7E877A",
-"!s+ c #7D857A",
-"~s+ c #778075",
-"{s+ c #6F7A6F",
-"]s+ c #69766B",
-"^s+ c #69736A",
-"/s+ c #637168",
-"(s+ c #617066",
-"_s+ c #617065",
-":s+ c #606F64",
-"<s+ c #636E66",
-"[s+ c #646D66",
-"}s+ c #666E66",
-"|s+ c #6C7261",
-"1s+ c #6A7360",
-"2s+ c #697362",
-"3s+ c #667264",
-"4s+ c #66746A",
-"5s+ c #66726C",
-"6s+ c #636E6B",
-"7s+ c #636C6B",
-"8s+ c #646C6A",
-"9s+ c #636C69",
-"0s+ c #626A67",
-"as+ c #5F6760",
-"bs+ c #5C685A",
-"cs+ c #5C6A5B",
-"ds+ c #5D6A61",
-"es+ c #5C6A60",
-"fs+ c #5D6C62",
-"gs+ c #5E6C63",
-"hs+ c #5F6D63",
-"is+ c #606C5E",
-"js+ c #5E695A",
-"ks+ c #525E4F",
-"ls+ c #455142",
-"ms+ c #465243",
-"ns+ c #4A5547",
-"os+ c #535E50",
-"ps+ c #5C6856",
-"qs+ c #5F6B56",
-"rs+ c #5D6956",
-"ss+ c #5F6B5A",
-"ts+ c #646F5F",
-"us+ c #677262",
-"vs+ c #6C7769",
-"ws+ c #788271",
-"xs+ c #74806B",
-"ys+ c #6E7A65",
-"zs+ c #626659",
-"As+ c #5B5F54",
-"Bs+ c #4C4F44",
-"Cs+ c #3E3E34",
-"Ds+ c #35322B",
-"Es+ c #322E28",
-"Fs+ c #2F2C27",
-"Gs+ c #32302A",
-"Hs+ c #36332D",
-"Is+ c #79715B",
-"Js+ c #837B68",
-"Ks+ c #8B8671",
-"Ls+ c #908C76",
-"Ms+ c #95917C",
-"Ns+ c #989380",
-"Os+ c #9A9484",
-"Ps+ c #9A9486",
-"Qs+ c #9A9584",
-"Rs+ c #989582",
-"Ss+ c #999781",
-"Ts+ c #999880",
-"Us+ c #999A80",
-"Vs+ c #9B9D80",
-"Ws+ c #9EA082",
-"Xs+ c #9D9E7F",
-"Ys+ c #9A9A7B",
-"Zs+ c #999977",
-"`s+ c #9B9979",
-" t+ c #A09C7E",
-".t+ c #A29E80",
-"+t+ c #A19D80",
-"@t+ c #9E9B7E",
-"#t+ c #949277",
-"$t+ c #918E73",
-"%t+ c #918D71",
-"&t+ c #908D71",
-"*t+ c #908B6E",
-"=t+ c #8E8A6D",
-"-t+ c #8E896C",
-";t+ c #8D886B",
-">t+ c #8A8466",
-",t+ c #857E61",
-"'t+ c #80785C",
-")t+ c #7A7359",
-"!t+ c #6C6956",
-"~t+ c #636252",
-"{t+ c #605E4D",
-"]t+ c #5D5A4A",
-"^t+ c #555043",
-"/t+ c #4D4A3B",
-"(t+ c #4C4839",
-"_t+ c #4B4538",
-":t+ c #494134",
-"<t+ c #464032",
-"[t+ c #423C30",
-"}t+ c #443E32",
-"|t+ c #494236",
-"1t+ c #514B40",
-"2t+ c #554F44",
-"3t+ c #565045",
-"4t+ c #5A524C",
-"5t+ c #59504E",
-"6t+ c #59504D",
-"7t+ c #544C49",
-"8t+ c #534A46",
-"9t+ c #4E4441",
-"0t+ c #4A403C",
-"at+ c #473C38",
-"bt+ c #423734",
-"ct+ c #3F3330",
-"dt+ c #3E302D",
-"et+ c #422F2F",
-"ft+ c #463332",
-"gt+ c #483433",
-"ht+ c #493434",
-"it+ c #4C3937",
-"jt+ c #4B3635",
-"kt+ c #4C3636",
-"lt+ c #4E3838",
-"mt+ c #4E3939",
-"nt+ c #4F3938",
-"ot+ c #4E3836",
-"pt+ c #4C3633",
-"qt+ c #483230",
-"rt+ c #483030",
-"st+ c #47302F",
-"tt+ c #46302E",
-"ut+ c #462F2E",
-"vt+ c #4A3332",
-"wt+ c #4A3631",
-"xt+ c #503C38",
-"yt+ c #56433E",
-"zt+ c #5E4B47",
-"At+ c #665350",
-"Bt+ c #70605B",
-"Ct+ c #766661",
-"Dt+ c #776863",
-"Et+ c #766663",
-"Ft+ c #796A65",
-"Gt+ c #73625F",
-"Ht+ c #685754",
-"It+ c #64534E",
-"Jt+ c #5F4E4A",
-"Kt+ c #5C4A46",
-"Lt+ c #524240",
-"Mt+ c #4F3C3C",
-"Nt+ c #4A3838",
-"Ot+ c #463434",
-"Pt+ c #402E2D",
-"Qt+ c #3C2F2B",
-"Rt+ c #3F3431",
-"St+ c #413737",
-"Tt+ c #433A39",
-"Ut+ c #453C3C",
-"Vt+ c #463E3E",
-"Wt+ c #484040",
-"Xt+ c #4C4444",
-"Yt+ c #4E4643",
-"Zt+ c #4E4942",
-"`t+ c #504A44",
-" u+ c #4A443E",
-".u+ c #46403A",
-"+u+ c #3E3632",
-"@u+ c #3A312F",
-"#u+ c #362D2B",
-"$u+ c #372C2C",
-"%u+ c #3B3030",
-"&u+ c #403536",
-"*u+ c #473E3A",
-"=u+ c #4B423E",
-"-u+ c #4C4340",
-";u+ c #4B423F",
-">u+ c #433B37",
-",u+ c #3E3430",
-"'u+ c #392F2C",
-")u+ c #342926",
-"!u+ c #332623",
-"~u+ c #342624",
-"{u+ c #322624",
-"]u+ c #302A29",
-"^u+ c #353230",
-"/u+ c #3F3C39",
-"(u+ c #484742",
-"_u+ c #4F5148",
-":u+ c #484A45",
-"<u+ c #8B8B8B",
-"[u+ c #4F5349",
-"}u+ c #52564E",
-"|u+ c #5A6057",
-"1u+ c #7C8481",
-"2u+ c #8C9598",
-"3u+ c #7F877C",
-"4u+ c #818A7E",
-"5u+ c #818B7E",
-"6u+ c #828B7F",
-"7u+ c #6E7E71",
-"8u+ c #6E796F",
-"9u+ c #6A776D",
-"0u+ c #67766C",
-"au+ c #66766C",
-"bu+ c #66756C",
-"cu+ c #65746A",
-"du+ c #647468",
-"eu+ c #667568",
-"fu+ c #677567",
-"gu+ c #6D7269",
-"hu+ c #6F7667",
-"iu+ c #6D7766",
-"ju+ c #687767",
-"ku+ c #69766F",
-"lu+ c #67736F",
-"mu+ c #67726F",
-"nu+ c #677170",
-"ou+ c #676E70",
-"pu+ c #666D70",
-"qu+ c #646D6C",
-"ru+ c #626C65",
-"su+ c #616A63",
-"tu+ c #5C675B",
-"uu+ c #586658",
-"vu+ c #5D685A",
-"wu+ c #5E6A5A",
-"xu+ c #5E6D5D",
-"yu+ c #5B6758",
-"zu+ c #4F5A4C",
-"Au+ c #4B5648",
-"Bu+ c #4D594A",
-"Cu+ c #546052",
-"Du+ c #606C58",
-"Eu+ c #606D5A",
-"Fu+ c #6A7666",
-"Gu+ c #7A8675",
-"Hu+ c #76836E",
-"Iu+ c #707B66",
-"Ju+ c #697260",
-"Ku+ c #656A5C",
-"Lu+ c #474A3E",
-"Mu+ c #3C3D33",
-"Nu+ c #36352C",
-"Ou+ c #34322B",
-"Pu+ c #342F2B",
-"Qu+ c #383630",
-"Ru+ c #3E3C33",
-"Su+ c #4A483E",
-"Tu+ c #625C4B",
-"Uu+ c #756D54",
-"Vu+ c #878269",
-"Wu+ c #8E8B72",
-"Xu+ c #949379",
-"Yu+ c #97947A",
-"Zu+ c #9A9880",
-"`u+ c #9C9883",
-" v+ c #9B9884",
-".v+ c #9C9885",
-"+v+ c #9E9887",
-"@v+ c #9E9888",
-"#v+ c #9E9A88",
-"$v+ c #9E9D88",
-"%v+ c #A09F88",
-"&v+ c #A1A189",
-"*v+ c #9EA085",
-"=v+ c #9C9E82",
-"-v+ c #9B9E7F",
-";v+ c #9FA080",
-">v+ c #A3A385",
-",v+ c #A4A286",
-"'v+ c #A4A084",
-")v+ c #A29E81",
-"!v+ c #9F9A7D",
-"~v+ c #9E997C",
-"{v+ c #9A987C",
-"]v+ c #99957B",
-"^v+ c #969277",
-"/v+ c #949074",
-"(v+ c #938E72",
-"_v+ c #928D71",
-":v+ c #908A6E",
-"<v+ c #8E876B",
-"[v+ c #8F866E",
-"}v+ c #888065",
-"|v+ c #706D5A",
-"1v+ c #616051",
-"2v+ c #5C594D",
-"3v+ c #585649",
-"4v+ c #555245",
-"5v+ c #504E40",
-"6v+ c #4C493C",
-"7v+ c #494538",
-"8v+ c #494336",
-"9v+ c #484235",
-"0v+ c #484336",
-"av+ c #4C4539",
-"bv+ c #5A544A",
-"cv+ c #584F4C",
-"dv+ c #544C48",
-"ev+ c #514845",
-"fv+ c #433835",
-"gv+ c #3F322D",
-"hv+ c #3E332F",
-"iv+ c #3F322E",
-"jv+ c #432F30",
-"kv+ c #483434",
-"lv+ c #493534",
-"mv+ c #4A3534",
-"nv+ c #473331",
-"ov+ c #463230",
-"pv+ c #473130",
-"qv+ c #473230",
-"rv+ c #463330",
-"sv+ c #453231",
-"tv+ c #443131",
-"uv+ c #443132",
-"vv+ c #433234",
-"wv+ c #443234",
-"xv+ c #453033",
-"yv+ c #4E3634",
-"zv+ c #56403E",
-"Av+ c #584441",
-"Bv+ c #614D4A",
-"Cv+ c #695653",
-"Dv+ c #6E5C5A",
-"Ev+ c #7C6B67",
-"Fv+ c #74635F",
-"Gv+ c #6A5653",
-"Hv+ c #604B48",
-"Iv+ c #55413E",
-"Jv+ c #503D3A",
-"Kv+ c #4F3C39",
-"Lv+ c #4E3839",
-"Mv+ c #4D363A",
-"Nv+ c #4D3538",
-"Ov+ c #4B3436",
-"Pv+ c #493235",
-"Qv+ c #462E32",
-"Rv+ c #41322D",
-"Sv+ c #403630",
-"Tv+ c #403833",
-"Uv+ c #3F3A36",
-"Vv+ c #403B38",
-"Wv+ c #423D3A",
-"Xv+ c #443F3A",
-"Yv+ c #46423E",
-"Zv+ c #47433B",
-"`v+ c #49463D",
-" w+ c #49463E",
-".w+ c #4B493F",
-"+w+ c #4C4B42",
-"@w+ c #4F4E45",
-"#w+ c #515148",
-"$w+ c #55524D",
-"%w+ c #56534D",
-"&w+ c #4A4740",
-"*w+ c #43403A",
-"=w+ c #3B3832",
-"-w+ c #37342E",
-";w+ c #36302D",
-">w+ c #3B302F",
-",w+ c #433636",
-"'w+ c #473B3A",
-")w+ c #483D3C",
-"!w+ c #443836",
-"~w+ c #3D322F",
-"{w+ c #3A2E2A",
-"]w+ c #362926",
-"^w+ c #342725",
-"/w+ c #332625",
-"(w+ c #322725",
-"_w+ c #322E2C",
-":w+ c #3B3933",
-"<w+ c #45443B",
-"[w+ c #43443F",
-"}w+ c #858585",
-"|w+ c #4E5149",
-"1w+ c #64695F",
-"2w+ c #72796C",
-"3w+ c #8C9590",
-"4w+ c #9AA4A5",
-"5w+ c #879183",
-"6w+ c #899185",
-"7w+ c #8A9287",
-"8w+ c #A5A5A5",
-"9w+ c #7E7E7E",
-"0w+ c #838383",
-"aw+ c #868686",
-"bw+ c #4A4B45",
-"cw+ c #535750",
-"dw+ c #6B7068",
-"ew+ c #7D8478",
-"fw+ c #949F99",
-"gw+ c #859284",
-"hw+ c #879486",
-"iw+ c #8A9688",
-"jw+ c #8D988B",
-"kw+ c #8F998C",
-"lw+ c #848D82",
-"mw+ c #5F655E",
-"nw+ c #565E57",
-"ow+ c #575D58",
-"pw+ c #565C57",
-"qw+ c #565B52",
-"rw+ c #555954",
-"sw+ c #535A53",
-"tw+ c #505854",
-"uw+ c #505654",
-"vw+ c #515555",
-"ww+ c #505556",
-"xw+ c #505455",
-"yw+ c #505454",
-"zw+ c #4F5452",
-"Aw+ c #4E5451",
-"Bw+ c #4E5250",
-"Cw+ c #4C524B",
-"Dw+ c #4A514A",
-"Ew+ c #4A5049",
-"Fw+ c #485048",
-"Gw+ c #495049",
-"Hw+ c #4B524A",
-"Iw+ c #4F5651",
-"Jw+ c #4F5752",
-"Kw+ c #515954",
-"Lw+ c #464C45",
-"Mw+ c #495048",
-"Nw+ c #4D534C",
-"Ow+ c #515850",
-"Pw+ c #5A5E5A",
-"Qw+ c #5A6258",
-"Rw+ c #585E54",
-"Sw+ c #4A4D46",
-"Tw+ c #43453E",
-"Uw+ c #3E3F39",
-"Vw+ c #3A3A36",
-"Ww+ c #3B3A36",
-"Xw+ c #3C3A37",
-"Yw+ c #3F3E3B",
-"Zw+ c #666357",
-"`w+ c #68675A",
-" x+ c #6A6A5D",
-".x+ c #696B5E",
-"+x+ c #6B6B5E",
-"@x+ c #6B6C5E",
-"#x+ c #6B6A5E",
-"$x+ c #6C6B60",
-"%x+ c #69685D",
-"&x+ c #68675D",
-"*x+ c #6A675E",
-"=x+ c #6B6960",
-"-x+ c #6B6B60",
-";x+ c #6A695E",
-">x+ c #68685D",
-",x+ c #69695E",
-"'x+ c #6C6B5C",
-")x+ c #6C695B",
-"!x+ c #6B675A",
-"~x+ c #6A665A",
-"{x+ c #696659",
-"]x+ c #68655A",
-"^x+ c #666257",
-"/x+ c #656156",
-"(x+ c #625C52",
-"_x+ c #605B51",
-":x+ c #5F5A50",
-"<x+ c #5E594E",
-"[x+ c #585348",
-"}x+ c #4E4E46",
-"|x+ c #4D4E46",
-"1x+ c #4D4C46",
-"2x+ c #4E4D47",
-"3x+ c #4F4E48",
-"4x+ c #4F4F49",
-"5x+ c #4B4942",
-"6x+ c #484640",
-"7x+ c #45433C",
-"8x+ c #44413B",
-"9x+ c #45423C",
-"0x+ c #45413D",
-"ax+ c #44403E",
-"bx+ c #403C3A",
-"cx+ c #403B39",
-"dx+ c #3E3938",
-"ex+ c #3E3837",
-"fx+ c #3D3838",
-"gx+ c #413C3A",
-"hx+ c #413D3A",
-"ix+ c #463C3A",
-"jx+ c #4B403F",
-"kx+ c #4F4544",
-"lx+ c #524847",
-"mx+ c #564D4C",
-"nx+ c #574F4D",
-"ox+ c #534A48",
-"px+ c #504745",
-"qx+ c #4D4441",
-"rx+ c #473D3B",
-"sx+ c #463D3A",
-"tx+ c #483D3B",
-"ux+ c #483E3C",
-"vx+ c #493E3E",
-"wx+ c #463B3C",
-"xx+ c #3F3634",
-"yx+ c #403D3A",
-"zx+ c #41403D",
-"Ax+ c #484745",
-"Bx+ c #4A4A48",
-"Cx+ c #4C4C4A",
-"Dx+ c #4E4E49",
-"Ex+ c #50504A",
-"Fx+ c #51524B",
-"Gx+ c #54554E",
-"Hx+ c #55564F",
-"Ix+ c #565750",
-"Jx+ c #575955",
-"Kx+ c #565753",
-"Lx+ c #525551",
-"Mx+ c #525450",
-"Nx+ c #50524E",
-"Ox+ c #4F504B",
-"Px+ c #434540",
-"Qx+ c #464642",
-"Rx+ c #484644",
-"Sx+ c #464542",
-"Tx+ c #3C3B38",
-"Ux+ c #383835",
-"Vx+ c #373332",
-"Wx+ c #3D3735",
-"Xx+ c #383230",
-"Yx+ c #363130",
-"Zx+ c #353330",
-"`x+ c #34322F",
-" y+ c #35322F",
-".y+ c #363431",
-"+y+ c #3D3E38",
-"@y+ c #6D7168",
-"#y+ c #757A6F",
-"$y+ c #8C9587",
-"%y+ c #838E81",
-"&y+ c #7B8579",
-"*y+ c #778076",
-"=y+ c #707F72",
-"-y+ c #66736A",
-";y+ c #687365",
-">y+ c #6A7466",
-",y+ c #6B7465",
-"'y+ c #6D7564",
-")y+ c #6B7464",
-"!y+ c #697269",
-"~y+ c #63716A",
-"{y+ c #616E69",
-"]y+ c #606C67",
-"^y+ c #616A69",
-"/y+ c #62696A",
-"(y+ c #61686A",
-"_y+ c #606667",
-":y+ c #5F6666",
-"<y+ c #5E6664",
-"[y+ c #5D6662",
-"}y+ c #5B6660",
-"|y+ c #566355",
-"1y+ c #546153",
-"2y+ c #526051",
-"3y+ c #525F51",
-"4y+ c #526052",
-"5y+ c #546253",
-"6y+ c #556254",
-"7y+ c #576456",
-"8y+ c #606B63",
-"9y+ c #5F6E64",
-"0y+ c #627067",
-"ay+ c #637068",
-"by+ c #5B675C",
-"cy+ c #505C4D",
-"dy+ c #4C5A4B",
-"ey+ c #515E4F",
-"fy+ c #566254",
-"gy+ c #5F6A5C",
-"hy+ c #626E60",
-"iy+ c #5C695A",
-"jy+ c #596557",
-"ky+ c #5D695A",
-"ly+ c #717C73",
-"my+ c #737F70",
-"ny+ c #6F7A68",
-"oy+ c #69745F",
-"py+ c #5E6755",
-"qy+ c #505647",
-"ry+ c #44483B",
-"sy+ c #3E4034",
-"ty+ c #383930",
-"uy+ c #3C3A32",
-"vy+ c #403E37",
-"wy+ c #504A41",
-"xy+ c #685E4C",
-"yy+ c #736B53",
-"zy+ c #7C765E",
-"Ay+ c #8B886F",
-"By+ c #8D8D74",
-"Cy+ c #909278",
-"Dy+ c #919479",
-"Ey+ c #93947A",
-"Fy+ c #939479",
-"Gy+ c #929379",
-"Hy+ c #92937A",
-"Iy+ c #93927A",
-"Jy+ c #919178",
-"Ky+ c #909078",
-"Ly+ c #8C8B72",
-"My+ c #8A8870",
-"Ny+ c #8C8A73",
-"Oy+ c #8E8C78",
-"Py+ c #908C7A",
-"Qy+ c #8D8978",
-"Ry+ c #8D8A78",
-"Sy+ c #8E8C7A",
-"Ty+ c #8F8D7E",
-"Uy+ c #908E7E",
-"Vy+ c #90907C",
-"Wy+ c #928D74",
-"Xy+ c #938C73",
-"Yy+ c #918A72",
-"Zy+ c #908972",
-"`y+ c #8E8570",
-" z+ c #8A826E",
-".z+ c #86806C",
-"+z+ c #807766",
-"@z+ c #7E7463",
-"#z+ c #786D5C",
-"$z+ c #776B59",
-"%z+ c #766A57",
-"&z+ c #746955",
-"*z+ c #726852",
-"=z+ c #5D5E52",
-"-z+ c #5E5F54",
-";z+ c #626259",
-">z+ c #615E52",
-",z+ c #4B463B",
-"'z+ c #464136",
-")z+ c #443E33",
-"!z+ c #423D31",
-"~z+ c #443E36",
-"{z+ c #463F3B",
-"]z+ c #453E3A",
-"^z+ c #423A36",
-"/z+ c #403835",
-"(z+ c #3F3432",
-"_z+ c #3D3431",
-":z+ c #3E3432",
-"<z+ c #403634",
-"[z+ c #423835",
-"}z+ c #473D3A",
-"|z+ c #453B38",
-"1z+ c #443A37",
-"2z+ c #41312F",
-"3z+ c #493634",
-"4z+ c #52403C",
-"5z+ c #70615E",
-"6z+ c #6A5B58",
-"7z+ c #655552",
-"8z+ c #584744",
-"9z+ c #54433F",
-"0z+ c #4E3D38",
-"az+ c #4E3C38",
-"bz+ c #513D3A",
-"cz+ c #533F3C",
-"dz+ c #4E3A36",
-"ez+ c #4C3834",
-"fz+ c #4E3738",
-"gz+ c #4A3234",
-"hz+ c #453230",
-"iz+ c #443633",
-"jz+ c #413932",
-"kz+ c #403D36",
-"lz+ c #434038",
-"mz+ c #48443D",
-"nz+ c #4A4844",
-"oz+ c #4E4E4D",
-"pz+ c #515250",
-"qz+ c #5B5A5A",
-"rz+ c #5F605D",
-"sz+ c #646463",
-"tz+ c #656865",
-"uz+ c #686C68",
-"vz+ c #6A706B",
-"wz+ c #6D726E",
-"xz+ c #707471",
-"yz+ c #717672",
-"zz+ c #727773",
-"Az+ c #747874",
-"Bz+ c #767C77",
-"Cz+ c #757B76",
-"Dz+ c #767C78",
-"Ez+ c #787D7A",
-"Fz+ c #747B76",
-"Gz+ c #707772",
-"Hz+ c #6D736B",
-"Iz+ c #6A6F64",
-"Jz+ c #666A60",
-"Kz+ c #4F5249",
-"Lz+ c #4E5047",
-"Mz+ c #4A4B43",
-"Nz+ c #464840",
-"Oz+ c #44443F",
-"Pz+ c #3F3B3A",
-"Qz+ c #363230",
-"Rz+ c #362A28",
-"Sz+ c #362C28",
-"Tz+ c #342825",
-"Uz+ c #2F2523",
-"Vz+ c #2E2624",
-"Wz+ c #302A26",
-"Xz+ c #2E2926",
-"Yz+ c #2A2824",
-"Zz+ c #2E2C28",
-"`z+ c #6D7169",
-" A+ c #757A71",
-".A+ c #7D8371",
-"+A+ c #839082",
-"@A+ c #899688",
-"#A+ c #8D988C",
-"$A+ c #909A8E",
-"%A+ c #8D998B",
-"&A+ c #879386",
-"*A+ c #838E82",
-"=A+ c #828D81",
-"-A+ c #838F82",
-";A+ c #828D80",
-">A+ c #7D877C",
-",A+ c #748376",
-"'A+ c #6D7869",
-")A+ c #70796A",
-"!A+ c #6F7A6A",
-"~A+ c #6E7B6B",
-"{A+ c #68766F",
-"]A+ c #66736E",
-"^A+ c #66706E",
-"/A+ c #646E6E",
-"(A+ c #636B6C",
-"_A+ c #63696B",
-":A+ c #626968",
-"<A+ c #616867",
-"[A+ c #606865",
-"}A+ c #606A64",
-"|A+ c #5F6A64",
-"1A+ c #5F6A63",
-"2A+ c #5C6961",
-"3A+ c #5C6760",
-"4A+ c #586556",
-"5A+ c #546252",
-"6A+ c #526151",
-"7A+ c #526251",
-"8A+ c #536152",
-"9A+ c #546254",
-"0A+ c #566455",
-"aA+ c #576556",
-"bA+ c #586657",
-"cA+ c #596758",
-"dA+ c #5F6C5E",
-"eA+ c #627267",
-"fA+ c #647368",
-"gA+ c #66756B",
-"hA+ c #67766D",
-"iA+ c #546152",
-"jA+ c #616D5E",
-"kA+ c #667364",
-"lA+ c #5F6C5C",
-"mA+ c #616E5F",
-"nA+ c #606D5D",
-"oA+ c #737F76",
-"pA+ c #748178",
-"qA+ c #727E6B",
-"rA+ c #5D6553",
-"sA+ c #505547",
-"tA+ c #44493C",
-"uA+ c #424438",
-"vA+ c #404036",
-"wA+ c #88846C",
-"xA+ c #908C74",
-"yA+ c #929277",
-"zA+ c #95967C",
-"AA+ c #96997E",
-"BA+ c #969A7E",
-"CA+ c #979A7F",
-"DA+ c #98987F",
-"EA+ c #98987E",
-"FA+ c #96987D",
-"GA+ c #96977C",
-"HA+ c #94967B",
-"IA+ c #909074",
-"JA+ c #8C8C70",
-"KA+ c #89896E",
-"LA+ c #89886E",
-"MA+ c #8C8C71",
-"NA+ c #8E8E74",
-"OA+ c #8C8A74",
-"PA+ c #8E8975",
-"QA+ c #908A78",
-"RA+ c #928E82",
-"SA+ c #918E80",
-"TA+ c #91907E",
-"UA+ c #92927E",
-"VA+ c #92937D",
-"WA+ c #939177",
-"XA+ c #959077",
-"YA+ c #989079",
-"ZA+ c #968C76",
-"`A+ c #928873",
-" B+ c #908671",
-".B+ c #8C8370",
-"+B+ c #847C6B",
-"@B+ c #827869",
-"#B+ c #827768",
-"$B+ c #7F7465",
-"%B+ c #7D7262",
-"&B+ c #7C7060",
-"*B+ c #7C705C",
-"=B+ c #7A715A",
-"-B+ c #736E5B",
-";B+ c #676A60",
-">B+ c #67685F",
-",B+ c #646154",
-"'B+ c #504B3E",
-")B+ c #474236",
-"!B+ c #3F392E",
-"~B+ c #413A32",
-"{B+ c #433D38",
-"]B+ c #443D38",
-"^B+ c #413735",
-"/B+ c #463E3B",
-"(B+ c #473F3C",
-"_B+ c #443C39",
-":B+ c #443433",
-"<B+ c #4E3C3B",
-"[B+ c #584645",
-"}B+ c #62514F",
-"|B+ c #6F5F5B",
-"1B+ c #6D5C58",
-"2B+ c #62514D",
-"3B+ c #584843",
-"4B+ c #52423D",
-"5B+ c #50403A",
-"6B+ c #503F3A",
-"7B+ c #503E39",
-"8B+ c #52403B",
-"9B+ c #54443E",
-"0B+ c #513D38",
-"aB+ c #4E3935",
-"bB+ c #4B3531",
-"cB+ c #473432",
-"dB+ c #453B37",
-"eB+ c #44423A",
-"fB+ c #4E4D45",
-"gB+ c #56554E",
-"hB+ c #5C5C56",
-"iB+ c #666A69",
-"jB+ c #6F7372",
-"kB+ c #727878",
-"lB+ c #757B7B",
-"mB+ c #787E7C",
-"nB+ c #7B807F",
-"oB+ c #7C8284",
-"pB+ c #7D838B",
-"qB+ c #7F848D",
-"rB+ c #80878E",
-"sB+ c #828890",
-"tB+ c #828990",
-"uB+ c #838891",
-"vB+ c #838991",
-"wB+ c #838A8D",
-"xB+ c #848C89",
-"yB+ c #828B88",
-"zB+ c #848D89",
-"AB+ c #838C89",
-"BB+ c #818A86",
-"CB+ c #808884",
-"DB+ c #7E8583",
-"EB+ c #7B8476",
-"FB+ c #6E786B",
-"GB+ c #697166",
-"HB+ c #666D63",
-"IB+ c #514E4E",
-"JB+ c #3C3A39",
-"KB+ c #342E2C",
-"LB+ c #322825",
-"MB+ c #322523",
-"NB+ c #302522",
-"OB+ c #322C29",
-"PB+ c #302C28",
-"QB+ c #32322C",
-"RB+ c #3E403A",
-"SB+ c #6C6E69",
-"TB+ c #767B6F",
-"UB+ c #7A806F",
-"VB+ c #839384",
-"WB+ c #869687",
-"XB+ c #8A998A",
-"YB+ c #8B9A8C",
-"ZB+ c #8C9A8C",
-"`B+ c #8D9C8D",
-" C+ c #8E9D8E",
-".C+ c #8F9E90",
-"+C+ c #909F90",
-"@C+ c #8E9E8F",
-"#C+ c #8D9C8E",
-"$C+ c #8B9A8B",
-"%C+ c #8A9A8B",
-"&C+ c #8A988A",
-"*C+ c #889788",
-"=C+ c #839184",
-"-C+ c #819083",
-";C+ c #798A7C",
-">C+ c #78887B",
-",C+ c #778373",
-"'C+ c #798372",
-")C+ c #7B8472",
-"!C+ c #768675",
-"~C+ c #748676",
-"{C+ c #708475",
-"]C+ c #6D7B75",
-"^C+ c #6B7774",
-"/C+ c #697472",
-"(C+ c #67716E",
-"_C+ c #67726D",
-":C+ c #657067",
-"<C+ c #637265",
-"[C+ c #5A6A58",
-"}C+ c #566554",
-"|C+ c #566656",
-"1C+ c #596857",
-"2C+ c #5A6A5A",
-"3C+ c #5C6B5C",
-"4C+ c #5C6B5B",
-"5C+ c #5A6A5C",
-"6C+ c #5D6D62",
-"7C+ c #617267",
-"8C+ c #65756B",
-"9C+ c #69786F",
-"0C+ c #6A7972",
-"aC+ c #6A7A73",
-"bC+ c #6A7A74",
-"cC+ c #6A7973",
-"dC+ c #6B7A73",
-"eC+ c #6C7B73",
-"fC+ c #6F7F74",
-"gC+ c #6F8074",
-"hC+ c #6F8072",
-"iC+ c #6E7E70",
-"jC+ c #647366",
-"kC+ c #5A6959",
-"lC+ c #5C6959",
-"mC+ c #5A6958",
-"nC+ c #687565",
-"oC+ c #667263",
-"pC+ c #657664",
-"qC+ c #677766",
-"rC+ c #6C7D6F",
-"sC+ c #74837A",
-"tC+ c #75847D",
-"uC+ c #77847F",
-"vC+ c #7A8880",
-"wC+ c #7A887F",
-"xC+ c #7A8A7B",
-"yC+ c #7A8A7A",
-"zC+ c #7D8B7B",
-"AC+ c #6D7363",
-"BC+ c #4F5247",
-"CC+ c #484B3F",
-"DC+ c #46493C",
-"EC+ c #756E54",
-"FC+ c #888164",
-"GC+ c #908D6F",
-"HC+ c #969376",
-"IC+ c #9F9F83",
-"JC+ c #A1A186",
-"KC+ c #A3A388",
-"LC+ c #A2A189",
-"MC+ c #A0A189",
-"NC+ c #A0A288",
-"OC+ c #9FA085",
-"PC+ c #9C9F80",
-"QC+ c #969776",
-"RC+ c #8F906E",
-"SC+ c #8F8F70",
-"TC+ c #908F74",
-"UC+ c #918F75",
-"VC+ c #929077",
-"WC+ c #928F78",
-"XC+ c #95907D",
-"YC+ c #989080",
-"ZC+ c #9B9182",
-"`C+ c #9B9285",
-" D+ c #9C9488",
-".D+ c #9C968A",
-"+D+ c #9C9789",
-"@D+ c #9D9989",
-"#D+ c #9C9B87",
-"$D+ c #9B9B85",
-"%D+ c #9A9B82",
-"&D+ c #9C9A81",
-"*D+ c #9F9980",
-"=D+ c #9E937A",
-"-D+ c #9C9278",
-";D+ c #9A9077",
-">D+ c #938B73",
-",D+ c #8E866E",
-"'D+ c #847B6A",
-")D+ c #847A6A",
-"!D+ c #847A69",
-"~D+ c #837968",
-"{D+ c #847967",
-"]D+ c #867C6A",
-"^D+ c #89806A",
-"/D+ c #89816A",
-"(D+ c #717469",
-"_D+ c #6F7066",
-":D+ c #6C6C61",
-"<D+ c #69685C",
-"[D+ c #646155",
-"}D+ c #443F33",
-"|D+ c #3F392F",
-"1D+ c #403931",
-"2D+ c #474038",
-"3D+ c #47413A",
-"4D+ c #48403C",
-"5D+ c #48413E",
-"6D+ c #4B4341",
-"7D+ c #4D4642",
-"8D+ c #4C4640",
-"9D+ c #524A45",
-"0D+ c #504843",
-"aD+ c #4F4842",
-"bD+ c #4F4843",
-"cD+ c #4A433D",
-"dD+ c #463737",
-"eD+ c #443634",
-"fD+ c #4C3C38",
-"gD+ c #544542",
-"hD+ c #6D5D5B",
-"iD+ c #736763",
-"jD+ c #756A66",
-"kD+ c #746964",
-"lD+ c #6C5D59",
-"mD+ c #665652",
-"nD+ c #58483F",
-"oD+ c #544638",
-"pD+ c #58473C",
-"qD+ c #5E4B42",
-"rD+ c #604C44",
-"sD+ c #644D46",
-"tD+ c #614A42",
-"uD+ c #594541",
-"vD+ c #534240",
-"wD+ c #4D3839",
-"xD+ c #463735",
-"yD+ c #453A34",
-"zD+ c #484238",
-"AD+ c #4D493F",
-"BD+ c #504E44",
-"CD+ c #54574F",
-"DD+ c #5A625E",
-"ED+ c #666E6D",
-"FD+ c #6B7476",
-"GD+ c #6F787E",
-"HD+ c #787F8B",
-"ID+ c #79818E",
-"JD+ c #7A828F",
-"KD+ c #7A8290",
-"LD+ c #7C8592",
-"MD+ c #7E8695",
-"ND+ c #808798",
-"OD+ c #818A9B",
-"PD+ c #818A9C",
-"QD+ c #848B9D",
-"RD+ c #858C9E",
-"SD+ c #868D9F",
-"TD+ c #878EA0",
-"UD+ c #8890A2",
-"VD+ c #8A90A3",
-"WD+ c #8990A2",
-"XD+ c #8991A3",
-"YD+ c #8C96A6",
-"ZD+ c #8B94A5",
-"`D+ c #8E99A7",
-" E+ c #8C97A3",
-".E+ c #8C97A0",
-"+E+ c #8A959E",
-"@E+ c #88939D",
-"#E+ c #88929B",
-"$E+ c #859194",
-"%E+ c #82908F",
-"&E+ c #808E8A",
-"*E+ c #7D8C85",
-"=E+ c #798880",
-"-E+ c #737E6D",
-";E+ c #707A6A",
-">E+ c #6D7668",
-",E+ c #6C7568",
-"'E+ c #656E61",
-")E+ c #5F685C",
-"!E+ c #5F685D",
-"~E+ c #41413E",
-"{E+ c #383432",
-"]E+ c #342C2A",
-"^E+ c #302D2B",
-"/E+ c #373532",
-"(E+ c #383734",
-"_E+ c #4F5048",
-":E+ c #7D8075",
-". + @ # # # $ # # % % & * = - - ; & % $ > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 3 4 1 5 6 } 7 8 9 0 0 0 a b a c a d e f g h i j d i k h l g m n o p q r s t u v w x y z A B C D E F F F G H G I J K L M N O G G G P Q R S T S U V W X u Y Z Y t ` . .. +. @. . #. @. $. . %. &. t $. +. $. .. $. t %. %. %. *. =. =. -. ;. >. ,. '. '. ). V V ;. !. !. ~. {. ]. S S S ^. /. ^. A (. _. :. <. [. }. |. 1. 2. 3. 4. 5. 6. 7. 8. 9. 0. a. b. b. b. c. d. e. f. g. 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. U. V. W. X. Y. Z. `. + .+ ++ @+ #+ $+ %+ %+ &+ *+ =+ -+ ;+ >+ ,+ >+ '+ )+ !+ ~+ {+ ]+ ^+ /+ (+ _+ :+ <+ <+ [+ }+ |+ 1+ 2+ 3+ 4+ 5+ 6+ 7+ 8+ 9+ 0+ 0+ a+ b+ c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ m+ n+ o+ p+ q+ ",
-". * r+ s+ % + t+ u+ # t+ % + + v+ = . & s+ # # > w+ $ $ x+ y+ z+ A+ / B+ C+ D+ E+ F+ G+ | H+ I+ J+ 3 3 K+ K+ K+ L+ M+ N+ O+ 7 P+ Q+ Q+ R+ [ Q+ N+ Q+ S+ c T+ U+ 7 7 c 7 7 V+ i W+ f m X+ Y+ Z+ `+ @ . t Y .@ w ;. +@ z A /. E P @@ #@ P F $@ $@ %@ J G O &@ *@ =@ F G G -@ Q /. S ;@ >@ ;. ,@ ). '@ v v Z %. %. t s )@ @. .. #. #. !@ ~@ {@ ]@ $. . . . ^@ ]@ $. $. /@ (@ _@ *. %. :@ =. :@ -. -. -. <@ [@ [@ V V !. ~. ;. ). '. }@ +@ +@ |@ 1@ 2@ 3@ 2@ 4@ 5@ 6@ <. [. }. 7@ 8@ 2. 9@ 0@ a@ b@ c@ d@ d@ 9. e@ e@ f@ g@ h@ i@ j@ k@ l@ m@ n@ o@ m@ 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@ L. R@ S@ T@ N. U@ V@ W@ X@ E. Y@ Z@ `@ # .# +# @# ## W@ $# %# &# .+ *# =# -# ;# ># ,# '# )# !# ~# >+ !+ {# ]# ^# /# (# _# :# <# [# }# |# 4+ 3+ 1# 2# 2# 3# 5+ 4# 5# 6# b+ 7# 8# 9# b+ 0# a# b# c# d# e# f# g# h# l+ i# i# j# k# ",
-"l# - m# n# % + + u+ r+ o# p# q# r# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# q# q# t# d# e# d# u# v# w# x# y# z# ",
-"A# A# . & n# B# C# & & D# q# E# F# F# G# H# G# I# I# J# J# F# G# H# K# K# L# M# N# O# P# Q# R# S# T# U# U# U# V# W# X# V# U# U# Y# Z# `# $ .$ +$ `# Z# T# W# W# W# W# W# Y# Z# @$ #$ $$ $$ $$ %$ $$ $$ &$ &$ *$ *$ =$ -$ ;$ >$ ,$ '$ )$ !$ !$ ~$ {$ ]$ ^$ /$ ($ ($ _$ _$ :$ <$ [$ <$ }$ }$ |$ |$ 1$ :$ :$ 2$ ($ ($ ($ 3$ 4$ 5$ ]$ ~$ ~$ !$ 6$ 7$ 6$ {$ 8$ 9$ 0$ 0$ 0$ 9$ a$ a$ b$ 9$ 9$ c$ 0$ 8$ a$ ,$ ,$ 7$ 7$ 8$ a$ a$ b$ ~$ 6$ 6$ 7$ 6$ ~$ ~$ d$ {$ {$ 5$ e$ ]$ ]$ {$ {$ {$ e$ f$ e$ ]$ e$ f$ ^$ 5$ 5$ 4$ 4$ g$ ($ h$ |$ i$ j$ k$ l$ m$ n$ o$ p$ q$ r$ s$ t$ u$ v$ v$ w$ w$ x$ y$ z$ A$ B$ B$ C$ D$ E$ F$ C$ G$ H$ I$ G$ J$ G$ G$ G$ F$ K$ L$ M$ N$ O$ P$ Q$ R$ S$ T$ U$ V$ W$ X$ W$ Y$ Z$ `$ % .% .% +% @% +% +% #% $% %% &% Z$ *% =% =% =% -% ;% >% >% ,% '% )% !% !% ~% {% ]% ^% ^% /% (% _% :% <% <% :% <% [% }% |% |% }% 1% 1% 1% [% }% 2% 2% }% }% 3% 4% 5% 6% 7% 6% 5% 5% 6% 8% 9% 0% a% b% c% d% j+ e% f% g% m+ h% ",
-"A# i% j% = m# k% l% m# * m% n% o% p% q% r% s% s% t% u% v% v% u% u% w% x% y% z% A% B% C% D% E% F% G% H% I% J% J% J% I% K% L% M% M% N% O% P% Q% R% S% T% U% V% I% I% I% I% I% L% W% T% X% Y% Z% `% & & .& +& @& +& #& $& %& && *& =& -& ;& >& ,& '& '& )& !& ~& ~& ~& {& ]& ^& /& (& _& :& <& [& }& |& 1& 2& ~& 3& ~& ~& 4& 4& 4& 5& 6& 7& 8& 9& 0& a& b& c& d& e& f& g& h& i& j& j& k& l& g& m& n& b& o& b& a& 0& p& o& o& o& a& c& q& 0& r& r& s& t& u& v& w& x& w& u& y& z& w& A& z& B& C& D& B& E& F& 4& 4& G& H& I& J& K& L& M& N& O& P& Q& R& S& T& U& V& W& X& Y& Z& `& * .* +* @* #* .* $* %* %* &* %* ** =* -* ;* >* ,* '* ,* )* !* ~* {* ]* ^* /* (* _* :* X@ <* [* }* |* 1* 2* 3* 4* 5* 6* 7* 8* 9* 0* a* b* c* d* e* f* g* h* i* j* k* l* m* n* o* o* p* q* r* s* r* t* u* v* w* x* y* z* A* B* C* D* E* B* F* G* H* I* G* J* K* L* G* M* M* N* O* P* Q* R* S* T* U* V* W* X* Y* Z* `* = .= += @= #= e% $= %= w# i# ",
-"&= *= l# - == == -= . - ;= >= ,= '= u% )= != ~= o% {= ]= ]= ^= ~= ~= /= (= _= := <= [= }= |= 1= 2= F% 3= 4= 5= 6= 4= 3= 3= F% 7= 8= 9= 9= 0= 0= 3= 3= 3= a= N% N% 5= G% 5= 5= 3= X% 0= b= c= d= e= $& f= g= g= h= i= j= k= l= >& m= m= n= n= o= p= p= q= r= s= t= t= }& u= v= w= x= y= z= A= B= C= D= v= E= F= G= r= r= H= H= I= G= H= J= K= L= t& '& M= 8& N= O= o& P= c& N= M= Q= c& c& O= R= O= ,& S= )& 5& T= 5& U= V= W= '& W= 5& t& u& C& X= Y= Z= Z= `= - .- `= .- .- +- @- .- #- $- %- &- *- *- =- =- -- ;- >- ,- '- )- !- ~- {- ]- [@ ^- /- (- _- :- <- [- }- |- 1- 2- 3- 4- 5- 6- 7- 8- 9- 0- a- a- b- c- d- e- f- g- g- g- h- i- j- k- l- m- n- o- p- q- r- s- W@ E. t- u- v- w- x- y- z- A- e* c* B- C- D- E- F- G- H- I- J- K- L- M- M- N- L- O- P- Q- R- S- T- S- U- V- W- X- Y- Z- `- ; .; +; @; #; H* $; %; &; *; =; -; ;; >; ,; '; }# ); !; >; ~; {; ]; ^; /; (; ^; _; :; <; [; n% }; |; 1; 2; 3; 4; 5; j+ v# ",
-"&= &= &= 6; 7; 8; 9; 0; a; b; s# c; d; 8; a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% a% e; s# 0; f; g; f; h; i; j; k; l; ",
-". - m; n; o; p; q; q; q; r; s# s; t; u; F# I# G# K# H# H# q; q; q; q; v; u; w; x; y; z; A; B; U# V# V# V# V# V# V# V# V# V# V# s; V# V# V# V# V# V# V# V# V# C; C; V# V# V# C; C; V# V# V# W# Z# D; D; @$ `# `# E; #$ F; G; H; ;$ ;$ I; I; J; I; K; 9$ a$ )$ ~$ L; L; M; ^$ ^$ ^$ ^$ ^$ N; ^$ M; L; ]$ ]$ ~$ 8$ O; c$ c$ c$ K; a$ 9$ >$ >$ >$ P; ;$ Q; Q; R; Q; Q; J; c$ a$ c$ P; S; 0$ T; P; P; 0$ 0$ c$ S; c$ b$ 9$ 9$ a$ 0$ 0$ 0$ 0$ a$ 8$ 6$ ,$ 8$ 6$ 6$ 7$ U; ~$ V; e$ e$ e$ e$ f$ {$ V; V; W; X; X; X; Y; Z; `; `; > .> +> @> #> $> %> &> *> => -> ;> >> J$ J$ q$ ,> ,> '> )> !> ~> {> ]> ]> {> ^> ^> /> (> _> _> _> _> :> :> <> )> [> }> |> F$ F$ 1> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> a> b> c> d> e> f> g> h> i> j> k> +% +% +% +% l> m> n> n> o> o> p> q> r> s> t> u> v> *% w> x> y> z> A> B> C> D> /% |% E> F> [% G> [% [% H> I> J> K> |% F> |% |% 2% L> 2% M> N> N> M> 9% O> P> Q> R> S> T> s# U> V> W> X> Y> g; Z> `> $= ",
-"v+ * . 0; q; , <= _= s% u; s# ., +, @, t% v% v% u% w% #, q% _= $, @, := %, &, |= *, =, -, ;, M% I% >, I% J% ,, ', ), ), !, ~, !, !, {, ], !, ~, !, {, {, {, ], J% J% J% ^, !, !, J% J% J% /, (, _, R% R% P% P% :, <, [, }, |, 1, 2, 3, 4, 5, 4, 6, 7, i& 8, 9, 0, )& p= E& E& a, !& p= )& 6& b, c, d, e, f, =& g, h, i, j, j, 6, k& k, k, l, m, n, o, o, o, p, n, l, q, r, o& s, g& t, t, u, g& l& g& l& v, 7, d& o& d& l& t, w, w, n& d& b& a& a& o& q& x, y, z, A, B, u& C, D, D, y& y& 6& E, E, F, G, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, `, ' .' +' @' #' $' %' &' *' =' -' -' ;' >' ,' '' '' '' )' !' ~' {' n- ]' ^' /' (' _' :' <' [' }' |' 1' 2' 3' 4' 5' 6' 7' 8' 9' 0' a' b' c' d' e' f' g' h' i' j' j' k' l' m' n' o' p' q' r' s' S- t' u' ;+ v' w' x' y' z' A' `- `- B' C' D' E' F' G' G' H' F' I' J' K' L' M' N' O' P' N* M* Q' R' R' S' T' U' V' W' X' Y' Z' s# `' ) .) +) @) #) $) Y* %) ",
-"n# & &) 0; *) =) _= -) )= q; s# ;) >) ,) ') )) )= )= )= -) /= !) ~) (= s% $, <= {) ]) ^) /) () _) :) <) 3= 4= 4= 6= 5= [) H% }) |) 1) }) M% I% >, H% U% 2) 1) N% 5= 3= 3= 4= 5= N% G% G% S% X% R% 3) 4) 9= 5) 6) 7) 8) 9) 0) a) *& i& i& i& i& b) c) d) d) e) f) g) h) i) j) r= j) j) k) l) m) p= p= p= n) e) e) 0& =& h& h& =& d& o) b) i& j& p) g& q) r) s) g& b) s, s, o& t) ,& m) W= W= )& W= c, t) 0& t) N= '& '& '& u) c& a& a& c& c, b, b, W= A& '& W= 5& C, v) k) H= `= #- w) x) y) w) G= G= $- z) A) B) C) D) E) E) F) G) H) I) J) K) L) M) N) O) P) Q) R) S) T) U) @' V) W) X) Y) Z) `) ! .! +! @! #! $! %! &! &! *! =! -! ;! >! ,! '! )! !! ~! {! ]! ^! /! (! _! :! <! [! }! |! 1! 2! 3! 4! 5! 6! 7! 8! 9! 0! a! b! c! d! e! e! T. f! g! h! i! j! k! l! m! n! o! p! q! r! s! t! j* u! v! w! x! y! Z- z! A! B! C! D! D! -; -; E! F! G! H! I! N* -; J! '; K! L! M! N! L! O! /; P! Q! R! S! s# T! U! V! W! X! 9; Y! Z! `! ",
-"n# v+ = 8; *) ~ .~ +~ @~ #~ s# $~ %~ &~ *~ =~ -~ ;~ >~ ,~ ,~ '~ )~ !~ ~~ {~ ]~ ^~ /~ (~ _~ :~ <~ <~ [~ }~ }~ |~ 1~ [~ |~ 2~ 3~ 4~ 5~ 0= 0= E% 6~ 7~ 7~ 4~ 8~ |~ |~ 9~ 9~ |~ 0~ 0~ a~ a~ b~ c~ c~ c~ d~ e~ f~ g~ h~ i~ j~ k~ l~ m~ n~ o~ a, a, p~ q~ ]& r~ s~ s~ t~ u~ v~ w~ w~ x~ x= x= y~ z~ z~ z~ z~ A~ q~ B~ l) p~ o~ p= p= C~ D~ D~ l~ K= E~ F~ d) t) N= W= a, a, G~ X= H~ ~& H& I~ (& t= A~ r= r= G& r= G& r= ]& J~ F= K~ G& 4& L~ M~ N~ A~ ^& /& O~ A~ P~ Q~ R~ S~ T~ U~ V~ W~ X~ Y~ Z~ V~ `~ { { .{ +{ '- @{ #{ ${ #{ %{ &{ *{ ={ -{ ;{ >{ ,{ '{ ){ !{ ~{ {{ ]{ ^{ /{ ({ v@ _{ :{ <{ [{ }{ |{ 1{ 2{ 3{ 4{ 5{ 6{ 7{ 8{ 9{ 0{ a{ b{ c{ d{ 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{ U{ V{ W{ X{ Y{ Z{ `{ ] .] +] @] #] $] %] &] *] =] -] ;] >] ,] '] )] _+ <# <# -] !] ~] {] ]] ^] `> /] (] _] :] <] [] s# }] |] 1] 2] 3] 4] += 5] %) ",
-"m# = = 8; M# t% )~ 6] . ;= s# $, !) 7] &= j% 8] 6] 9] 0] a] b] b] c] d] e] )~ f] g] h] i] .~ j] K+ 2 k] l] m] n] o] k] p] q] q] <~ r] s] r] t] u] v] w] x] k] k] k] y] y] w] w] w] w] z] w] z] x] x] A] B] C] D] E] F] G] H] I] u= J] y~ K] L] D= M] N] N] N] O] P] Q] R] R] S] +. T] U] V] W] v~ v~ D= x= X] (& 1& ~& G& o~ Y] Y] o~ a, h) Z] Y] l~ p= p= a, I= @- F= `] ^ t= .^ +^ x= @^ #^ $^ %^ &^ *^ X] *^ w= x= w= _& %^ =^ I~ O~ =^ <& -^ -^ ;^ M& >^ w~ ,^ ^@ '^ =. )^ <@ !^ <@ )^ ~^ !. {^ ]^ ^^ /^ (^ _^ :^ <^ [^ }^ |^ 1^ 2^ 3^ 4^ 5^ 6^ 7^ 8^ 9^ 0^ a^ b^ c^ d^ 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^ I^ J^ K^ L^ M^ N^ O^ P^ Q^ R^ S^ T^ U^ V^ W^ X^ Y^ Z^ `^ / ./ +/ @/ #/ $/ %/ &/ */ =/ =/ -/ =/ -/ ;/ >/ ,/ '/ )/ !/ ~/ {/ ]/ ^/ s! // (/ _/ :/ </ [/ }/ }/ |/ 1/ 2/ 3/ 4/ 5/ 6/ 6/ 5/ 7/ 8/ 9/ 8/ 0/ a/ b/ c/ d/ e/ f/ s# g/ h/ i/ j/ k/ 4] l/ m/ n/ ",
-"m# * = 8; M# r% )~ o/ - ;= s# $, !) 7] 0] p/ b] 6] q/ i% a] c] r/ s/ t/ u/ v/ w/ w/ g] x/ {~ H+ 1 K+ 2 y/ z/ K+ K+ k] A/ w] B/ C/ D/ s] r] E/ <~ v] F/ n] n] n] k] y/ m] m] w] x] G/ H/ w] I/ w] x] A] B] C] J/ K/ L/ ^& I] I] u= K] y~ L] u~ M/ N] N] N] N/ O] N] N] O] O] N] M] O/ L] P/ Q/ x= x= x= X] R/ ^& H~ D~ p= S/ l~ l~ l~ l~ T/ U/ m= m= e) S/ l~ X= H& G& I= I= I= r= 2& .^ _& >^ x= +^ }& (& (& P/ w= x= w= E= .^ V/ P~ /& I~ [& <& <& w= *^ W/ >^ X/ Y/ Z/ `/ ( !. !. .( )^ +( @( !. #( $( /^ (^ %( &( *( =( -( ;( >( ,( '( )( !( ~( {( ]( ^( /( (( _( :( <( [( 2{ f^ }( |( 1( 2( 3( 4( 5( 6( 7( 8( 9( 0( a( b( c( d( e( f( g( h( i( j( D^ k( l( m( n( o( p( q( r( s( t( u( v( w( x( y( z( A( B( C( D( W^ E( F( G( H( I( J( K( K( L( &/ M( &/ N( O( P( Q( R( S( T( U( V( W( X( Y( Z( `( _ ._ +_ @_ _/ r* r* #_ $_ $_ 1/ }/ %_ 5/ 3/ &_ 5/ *_ =_ -_ 8/ 9/ 9/ a/ ;_ >_ ,_ '_ )_ !_ s# ~_ {_ ]_ ^_ /_ 4] (_ __ :_ ",
-"v+ = ; 8; M# s% )~ <_ i% [_ s# $, !) }_ |_ p/ b] q/ 1_ &= 2_ 3_ r/ r/ 4_ ,~ 5_ w/ w/ v/ g] 6_ x/ 7_ ]~ !) !) 8_ 9_ 0_ K+ k] y] w] q] a_ b_ c_ t] B/ z] z/ z/ n] z/ 2 k] m] x] k] k] d_ z] e_ y] w] m] f_ g_ C] h_ i_ L/ ^& j_ J] K] v= w= k_ l_ M] m_ m_ m_ O] U] N/ n_ N] V] M] l_ D= P/ z~ +^ t= `] o_ p_ J~ Z] E~ S/ M= d) >& m= p= q_ r_ '& r& u) '& '& W= s_ F& t_ u_ v_ t_ t_ w_ x_ y_ z_ A_ B_ C_ D_ E_ X] F_ F_ G_ H_ I_ J_ z_ D_ K_ D_ B_ L_ M_ G_ G_ N_ O_ O_ P_ Q_ R_ S_ T_ U_ V_ W_ X_ Y_ Z_ `_ : .: :^ +: @: #: $: %: &: *: =: -: ;: >: ,: ': W@ ): !: ~: {: ]: ^: /: (: _: :: <: [: }: [: }: |: 1: 2: 3: 4: 5: 6: 7: 8: 9: 0: a: b: c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z: A: B: B( C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z: `: < .< +< +] k* [/ @< #< $< %< &< *< =< -< ;< =< >< ,< 4/ '< )< )< !< ~< {< ]< ^< /< s# (< _< ); :< << 4] [< }< |< ",
-"m# & + 8; M# s% 1< 3_ a] 2< s# $, /= ,~ i% 6] 3< q/ &= i% b] r/ s/ s/ t/ u/ 5_ v/ v/ w/ w/ f] v/ f] 6_ 4< 5< 9_ 6< ]~ K+ y/ k] w] 7< a_ t] 8< <~ <~ x] y/ y/ y/ n] n] m] l] x] k] k] 9< 9< k] m] y] A] g_ L+ C] J/ 0< L/ a< j_ K] v= b< c< D= l_ U] O] d< O] O] N] e< f< g< h< l_ k_ u~ i< (& (& t= G] ]& 2& q= l~ S/ j< d) d) >& >& >& k< n= r& l< m< t) c& c& c& n< o< p< q< r< s< v_ t< u< v< t_ Y= w< L_ H_ x< z_ z_ y< z< A< B< Y= C< D< E< E< F< K_ K_ K_ K_ B_ G< H< I< )- J< K< L< M< L< N< O< P< Q< R< S< T< U< V< U< ;{ W< X< Y< Z< `< [ .[ +[ @[ #[ #[ $[ %[ &[ *[ =[ -[ ;[ >[ ,[ '[ 1: )[ ![ ~[ {[ ][ ^[ /[ ([ _[ _[ :[ <[ [[ }[ |[ 1[ 2[ 3[ 4[ 5[ 6[ 7[ 8[ 9[ 0[ 9[ a[ m: b[ c[ d[ e[ f[ g[ h[ i[ j[ k[ l[ m[ n[ o[ p[ q[ r[ s[ t[ u[ v[ w[ x[ y[ M: z[ A[ B[ Q: C[ D[ E[ F[ G[ U: H[ I[ J[ K[ X: L[ M[ N[ j* j* O[ p* P[ Q[ R[ S[ T[ U[ V[ W[ -< =< X[ Y[ Z[ `[ } .} +} {< @} #} $} s# %} &} *} =} -} 4] Q' ;} >} ",
-"& B# B# 8; M# $, ,} r/ <_ '} s# )} /= 7] j% !} j% q/ &= i% 3_ s/ d] s/ ~} u/ 5_ 5_ w/ {} !~ ]} u/ '~ )~ ^} 6_ /} ]~ (} K+ K+ k] m] _} 7< :} <} <~ q] d_ [} [} y/ k] l] m] l] l] m] }} J+ 3 K+ o] o] g_ |} 1} 2} 3} K/ 4} a< I] u= v= 5} 6} D= l_ N] N] N/ N] T] N] V] 7} u~ D= D= D= L] P/ y~ E= 1& 8} o~ D~ l~ r_ j< n= >& >& p& b& s, >& p& 0& c& c& o) o& o& o& 9} 0} a} b} q< c} d} e} f} f} g} h} v_ i} y_ j} k} l} r< r< r< r< g} 0, d} m} m} n} o} p} z< q} p} r} s} t} u} v} w} I< x} U, y} z} A} B} C} D} E} F} F} G} H} I} J} K} L} M} N} &# M} O} P} Q} R} .[ S} T} U} V} W} w( X} Y} Z} `} | .| +| +| @| #| $| %| [[ &| *| =| -| ;| >| ,| '| )| !| ~| {| ]| ^| /| (| _| :| r( <| [| }| || 1| 2| 3| 4| 5| 6| 7| 8| B( o[ A: 9| 0| a| b| c| d| e| f| g| h| i| j| Q: k| l| l| m| n| o| V: I[ p| q| r| `: s| L- t| u| (/ v| w| x| y| z| A| B| C| D| D| ;< E| F| G| Z[ G| H| '< .} +} I| $} s# J| K| L| M| M> 4] N| O| P| ",
-"+ m# m# 8; M# _= ,} r/ c] #~ s# Q| /= 4_ &) ; l% j% &= A# R| r/ d] 4_ S| e] {} }_ e] '~ t/ *~ 4_ T| U| )~ V| W| x/ ~) K+ X| 2 n] n] _} Y| Y| w] x] k] n] n] k] l] l] m] m] n] y/ X| Z| `| 1 5 |} .1 +1 @1 #1 E] $1 ~& %1 a< J] K] K] K] b< h< N] N] N] O] P] O] N] V] D= c< L] K] P/ y~ &^ E= &1 n~ *1 E~ r_ j< n= M= >& >& p& b& o) s, o& o& a& c& t) t, =1 -1 ;1 >1 9} b} b} b} p< o< ,1 d} o< p< o< q< q< '1 k} )1 o< !1 ~1 p< {1 ]1 ^1 /1 {1 (1 (1 m} m} m} _1 :1 <1 [1 }1 |1 11 21 31 41 51 61 71 81 91 01 a1 b1 c1 d1 e1 f1 g1 h1 i1 X. j1 k1 l1 m1 n1 o1 p1 q1 r1 s1 t1 u1 v1 w1 x1 y1 z1 A1 B1 C1 D1 E1 F1 G1 H1 G1 H1 I1 J1 K1 L1 M1 N1 O1 P1 Q1 R1 S1 T1 U1 V1 W1 W1 X1 r( Y1 Z1 `1 2 .2 +2 @2 #2 $2 %2 &2 *2 =2 -2 ;2 >2 ,2 '2 )2 !2 ~2 {2 ]2 ^2 /2 (2 _2 :2 <2 [2 }2 |2 12 22 32 42 52 62 72 82 92 02 a2 K- f' +< b2 m* c2 d2 e2 f2 D| W[ g2 h2 i2 -< F| F| Y[ Z[ G| '< `[ h2 j2 k2 s# l2 m2 n2 n2 M> 4] o2 p2 q2 ",
-"v+ ; l% 8; u; @, r2 s/ c] '} s# s2 t2 *~ u2 v2 C# = w2 i% <_ c] r/ 4_ t/ t/ t/ 4_ d] d] r/ @~ @~ x2 T| ,~ y2 V| f] z2 Z| A2 L+ B2 [} m] p] w] C2 k] y/ z/ o] [} [} [} n] [} K+ .1 D2 E2 F2 @1 G2 [ R+ R+ P+ H2 F] I2 J2 a< a< J] y~ K] K] K2 y= L2 V] V] O] O] P] N] f< k_ L] K] y~ K] w= &^ |& ~& D~ S/ r_ S/ S/ e) t) t) >& p& o& h& k& p) m< o& s, o& a& a& p) *& M2 /1 N2 /1 O2 {1 {1 p< o< ~1 P2 Q2 R2 S2 T2 U2 V2 W2 X2 Y2 Y2 Z2 `2 `2 `2 3 .3 +3 @3 #3 $3 +3 $3 %3 &3 *3 =3 -3 ;3 >3 ,3 ,3 '3 )3 !3 ~3 {3 ]3 ^3 /3 (3 _3 :3 <3 [3 }3 |3 13 23 33 43 53 63 73 83 93 03 a3 b3 c3 d3 c3 e3 f3 g3 h3 i3 j3 k3 k3 l3 m3 n3 o3 o3 p3 q3 r3 s3 t3 u3 v3 w3 x3 x3 p3 y3 o3 z3 A3 B3 C3 k( D3 E3 F3 G3 H3 I3 J3 K3 L3 M3 N3 O3 P3 Q3 Q3 R3 S3 T3 U3 V3 W3 X3 Y3 Z3 `3 4 .4 4 +4 @4 #4 $4 %4 &4 *4 =4 -4 ;4 >4 ,4 '4 )4 !4 ~4 {4 ]4 ^4 /4 (4 g2 V[ g2 i2 _4 :4 <4 [4 Y[ F| }4 |4 14 24 j2 )< 34 44 s# 54 64 74 84 4% 4] 94 04 K! ",
-"; l% j% 8; N# a4 b4 s/ c] '} s# c4 (= s/ B# + n# m# . 0] 3_ r/ s/ s/ s/ r/ 4_ t/ 4_ d] c] @~ d4 @~ s/ ,~ e4 e4 w/ f4 g4 6 h4 i4 B2 q% j4 w] k] n] o] K+ [} [} [} o] o] K+ .1 k4 G2 l4 m4 S+ 0 n4 o4 b i p4 q4 r4 s4 t4 |& y~ y~ y~ v= K2 y= y= y= y= g< M] M] h< g< D= K] H] `] }& E= }& G] u4 q= l~ v4 r_ w4 Q= d) t) f, p& o) x4 i& o& o& o& o& o& y4 j& d& z4 A4 B4 C4 g, D4 /1 N2 E4 F4 /1 G4 H4 I4 J4 K4 L4 M4 N4 O4 P4 L4 Q4 R4 R4 R4 S4 S4 T4 N4 O4 U4 V4 W4 W4 V4 X4 Y4 Z4 `4 5 .5 P$ +5 @5 #5 $5 %5 &5 *5 =5 -5 ;5 >5 ,5 '5 )5 !5 ~5 ~5 {5 {5 ]5 ^5 /5 (5 _5 :5 <5 [5 }5 }5 |5 15 25 35 45 55 65 75 85 95 05 05 a5 b5 b5 c5 d5 e5 f5 g5 g5 h5 d5 i5 j5 k5 l5 m5 n5 o5 p5 q5 r5 s5 t5 u5 v5 w5 x5 y5 z5 A5 B5 C5 D5 E5 F5 G5 H5 I5 J5 K5 L5 M5 N5 O5 P5 Q5 R5 S5 T5 U5 V5 W5 V5 X5 Y5 Z5 `5 Z5 6 .6 +6 @6 #6 $6 %6 &6 j* s' x| *6 =6 V[ D| h2 h2 :4 h2 -6 ;6 F| |/ Z[ 34 )< >6 H| ,6 s# '6 )6 !6 ~6 M> 4] {6 ]6 ^6 ",
-"-= 8] 9] 8; x; /6 ~= +~ c] #~ s# /6 (= x2 (6 n# u+ + = 3< c] s/ s/ r/ _6 r/ d] d] s/ @~ b] :6 <6 [6 x2 4_ y2 y2 }6 |6 l4 } 16 )= i4 B2 n] k] k] y/ z/ o] o] z/ K+ K+ 26 Z| 36 R+ P+ 7 46 o4 d d e f f 56 66 76 v= v= J] J] J] y~ &^ w= D= c< u~ 86 D= D= D= 96 5} 5} v= |& ^& 06 t= G] a6 ^& ~& b6 *1 S/ w4 d) d) e) f, >& >& p& p& p& a& b& j& o& p) j& -1 z4 /1 M2 c6 g, H4 H4 H4 A4 d6 B4 e6 f6 g6 h6 h6 h6 J4 L4 @> i6 j6 k6 l6 m6 l6 R4 Q4 S4 S4 n6 V4 o6 S4 S4 p6 W4 q6 r6 s6 t6 t6 u6 v6 w6 x6 y6 z6 A6 B6 -5 C6 D6 E6 F6 F6 G6 H6 H6 I6 I6 J6 K6 L6 M6 N6 O6 P6 Q6 R6 S6 T6 U6 V6 W6 X6 Y6 Z6 Z6 `6 7 .7 +7 @7 #7 c5 $7 %7 c5 &7 *7 =7 -7 j5 k5 j5 ;7 >7 ,7 e5 '7 05 o5 )7 !7 ~7 {7 ]7 ^7 /7 (7 _7 :7 <7 [7 }7 |7 17 27 37 47 57 67 77 K5 87 97 07 a7 b7 R5 S5 T5 c7 W5 V5 d7 e7 e7 f7 g7 h7 i7 j7 k7 l7 m7 n7 o7 p7 q7 i* r7 s7 *6 t7 u7 :4 v7 w7 x7 y7 z7 }4 G| 14 4/ 6+ } H| A7 s# B7 C7 D7 E7 F7 4] G7 H7 I7 ",
-"8] 9] _6 8; y; J7 /= K7 x2 #~ s# /6 (= ;~ (6 n# + & * j% :6 @~ L7 :6 :6 @~ r/ 4_ s/ b] 3< M7 <6 [6 N7 *~ }_ }_ '~ O7 P7 Q7 [ R7 S7 Z| K+ K+ K+ K+ K+ o] o] K+ K+ X| Z| h4 R+ T+ i i T+ T7 e f n U7 U7 V7 W7 W7 X7 K2 v= o_ |& |& 76 w= w= w= c< v= K] y~ y~ y~ w= L] y~ 1& ^& G] 4} ~& H~ L/ q= Y7 l~ p= w4 t) Z7 e) c, `7 >& 9, >& t) s, s, -1 8 b& s, a& b& /1 H4 D4 /1 /1 /1 /1 /1 .8 B4 e6 +8 @8 k6 k6 k6 J4 #8 L4 S4 S4 S4 m6 $8 %8 l6 &8 R4 R4 S4 p6 o6 *8 *8 *8 *8 =8 -8 ;8 X4 >8 X4 ,8 '8 )8 !8 ~8 {8 {8 ]8 -5 E6 ^8 /8 (8 _8 :8 :8 <8 <8 [8 }8 |8 |8 18 28 38 48 58 68 78 88 98 08 X6 a8 b8 c8 d8 e8 f8 g8 h8 i8 j8 k8 k8 d5 *7 l8 m8 n8 o8 p8 q8 -7 r8 s8 t8 u8 i8 o5 p5 v8 w8 w8 x8 ]7 y8 z8 A8 B8 C8 D8 E8 }7 F8 G8 H8 47 I8 J8 K8 L8 M8 N8 O8 P8 b7 Q8 S5 R8 S8 T8 U8 V8 W8 W8 X8 Y8 f7 Z8 i7 `8 9 k7 .9 +9 @9 )# v' q7 #9 ;6 $9 g2 %9 h2 &9 *9 =9 -9 ;9 14 F| F| >9 .} >< ,9 s# '9 C7 )9 q2 !9 4] ~9 {6 {9 ",
-"]9 ^9 / 8; /9 (9 _9 :9 K7 <9 s# [9 !) }9 (6 B# B# * ; . j% M7 <_ :6 :6 _6 N7 N7 p/ A# -= 8] |9 N7 }9 *~ ,~ '~ '~ :9 19 n4 29 39 49 59 69 79 (} j] j] K+ K+ K+ K+ Z| 89 [ T+ g 99 f 09 f X+ n U7 a9 b9 c9 d9 e9 f9 g9 b< J] o_ |& 76 K2 K2 K2 K2 w= K] y~ o_ J] K] o_ |& ^& ^& 4} H~ D~ D~ h9 q= C~ E~ p= v4 e) c, e) e) Z7 i9 >& f, Z7 9, 8, d& =& =& x4 p& p& =& h& k& j9 p& d& g& O2 E4 k9 l9 m9 g6 &8 k6 k6 Q4 L4 L4 S4 &8 k6 J4 n9 n9 l6 &8 R4 &8 &8 l6 R4 S4 o9 p9 p9 q9 r9 s9 o9 -8 =8 -8 t9 u9 v9 w9 x9 y9 z9 A9 B9 C9 D9 E9 E9 F9 G9 G9 H9 I9 U5 J9 K9 L9 M9 N9 O9 P9 Q9 R9 S9 T9 U9 V9 W9 X9 Y9 Z9 Z9 Z9 `9 0 .0 +0 @0 #0 $0 %0 &0 *0 &0 =0 =0 %0 -0 ;0 >0 ,0 '0 )0 !0 ~0 {0 ]0 ^0 /0 (0 _0 :0 <0 [0 }0 |0 10 20 30 F8 40 50 60 70 80 90 47 00 a0 b0 c0 d0 07 e0 f0 g0 h0 28 i0 j0 k0 l0 m0 n0 o0 p0 q0 r0 s0 t0 u0 v0 w0 x0 [/ y0 z0 A0 A0 B0 C0 D0 E0 F0 v7 =6 +} G0 H0 I0 J0 K0 s# L0 M0 N0 O0 << 4] P0 Q0 {6 ",
-"R0 S0 / 8; /9 B% w% U| T| T0 s# [9 !) }9 B# B# + & ; !} A# 3< b] _6 b] d4 p/ @~ b] A# A# 8] <6 [6 }9 +~ 4_ t/ t/ U0 V0 W0 W0 29 39 39 X0 ') | Z| Z| j] g_ X| L+ Y0 Z0 46 `0 99 n ( a a U7 .a +a b9 b9 @a #a `+ `+ $a K2 y~ E= J] 76 K2 K2 E= u= w= v= J] J] |& %a ^& &1 G& ~& &a m~ l~ E~ v4 v4 E~ E~ r_ r_ M= e) o= e) Z7 9, t) >& *a >& >& p) b) x4 r& ,& c, f, t) a} a} d& d& 9, =a P2 /1 -a m9 ;a S4 Q4 h6 R4 R4 Q4 R4 k6 >a ,a n9 J4 l6 l6 l6 l6 'a )a l6 l6 p9 r9 p9 p9 !a !a ~a ~a ~a ~a {a ]a ^a /a (a _a :a <a A9 [a }a }a |a F9 1a 2a 2a 3a 4a 5a 6a 7a P6 8a 9a 0a aa ba ca da ea fa B5 ga ha ia 10 `9 ja ka la ma na oa pa qa >0 -0 ra ;0 sa ta =0 ua %0 va qa '0 )0 wa xa ya ya za Aa Ba Ca :0 Da Ea Fa Ga Ha Ia Ja Ka La Ma Na Oa Oa Pa J5 Qa Ra Sa 68 Ta Ua Va Wa 8a 28 i0 Xa Ya Za `a ^5 [8 /5 }8 f7 b .b +b @b #b $b %b &b -6 *b =b -b ;b >b ,b 'b )b !b ~b 6+ {b ]b ^b /b s# (b Q' _b :b <b 4] [b }b |b ",
-"1b 2b 3b 8; /9 4b y% 5b 6b T0 s# 7b u% :9 k% m# + & &) . 8] M7 b] p/ :6 A# <6 b] <6 A# A# 8] 8b 9b x2 0b T| T| K7 ab T7 bb W0 W0 W0 W0 cb R7 db eb H+ | Z| Z| Z| 89 P7 n4 f 99 fb ( n +a gb hb ib jb kb lb #a `+ mb $a M/ K2 K2 c< x= w= K2 J] E= y~ E= o_ |& `] ^& G& H~ a, D~ nb n= S/ v4 j< j< r_ w4 M= Q= M= b, o= j< k< k< ,& N= e) e) d) >& >& r& '& )& l~ p= o= ob n= c, 9, 9, i9 0, o< /1 pb qb P4 @> L4 S4 R4 k6 R4 k6 >a %8 rb n9 S4 sb l6 )a tb ub ub vb vb wb q9 xb yb zb Ab Bb Bb Cb Db Eb Fb Gb Hb Ib Jb Jb Kb Lb Mb Nb |a Ob Pb Qb Rb Sb Tb Ub Vb Wb Xb Yb 68 68 Zb M5 ea `b D5 c .c +c @c #c $c %c &c &c *c =c =c -c ;c >c >c wa ,c ,c -0 -0 -0 'c ta )c !c ~c >c {c qa ]c @0 ^c /c (c _c :c <c [c }c |c 1c 2c 3c 4c 5c 6c 7c 8c 60 9c 0c ac bc cc dc ec fc gc hc ic 58 i0 Xa jc kc Za l0 L6 L6 f7 lc .b mc nc oc #b pc r7 qc -6 rc sc tc uc vc E0 E0 wc xc yc )< zc Ac Bc Cc s# Dc Q' Ec Fc <b 4] Gc Hc Ic ",
-"1b ^9 Jc 8; R# 4b Kc Lc Mc J# s# %, ~) Nc k% u2 Oc ; !} 8] Pc 8b <6 <6 Pc A# 8b <_ 8b A# A# Qc Qc M7 _6 ;~ +~ s/ Rc ab T7 -~ bb W0 19 Sc T7 Tc 46 [ 16 } } 6 Uc P7 n4 Vc f 99 +a +a +a gb Wc Xc Yc Yc Zc c9 `c d mb $a M/ `+ `+ `+ y= M/ #^ v= E= .^ ^& ^& |& F= {& ~& D~ m~ *1 M= d) d) .d `7 d) .d N= +d P= ,& e) e) j< e) M= M= M= e) '& M= c) N= t& p= @d @d g) g) g) D~ l~ #d ob 0, $d j} %d b} &d *d #> #> M4 Q4 &8 R4 &8 l6 p9 l6 'a 'a R4 S4 l6 l6 =d -d ;d ;d >d ,d >d 'd )d !d ~d ~d {d ]d ^d /d (d _d Hb :d <d [d }d |d 1d 2d 3d 4d 5d 6d Sb 7d 8d 78 9d 9d 0d ad 97 97 bd bd cd dd ed fd gd hd id jd kd =c ld md nd od od pd qd rd '0 sd td ;c ud vd ud vd wd -0 'c wd xd yd zd Ad @0 Bd Cd Dd Ed _c Fd Gd Hd +0 Id Jd Kd Ld Md Nd Od 60 70 9c ac Pd Qd Ra da 9a 68 68 Rd aa 28 Sd Td kc Ud Ud k0 Vd Wd Xd .b mc Yd Zd `d e 3/ .e +e @e rc #e $e wc %e &e *e xc =e -e -_ ;e Bc Cc s# K* >e ,e 'e O> 4] )e !e ~e ",
-"Jc B+ {e 8; R# ]e ^e /e U| J# s# (e z/ _e Qc :e . !} 8] 8b :6 :6 8b 8b 8b A# A# Pc A# A# 8] Qc Qc 3< @~ x2 L7 L7 }9 <e [e }e |e 1e 1e 2e 3e a D+ n4 P+ 7 7 < 0 0 46 T+ : f n +a Yc 4e hb Wc Yc 5e 6e @a `c 7e 7e $a $a 8e mb y= y= y= 9e v= |& J~ {& ^& t= G] ^& p~ m~ *1 Q= `7 c) c) +d +d +d +d 0e 0e j& p) o& c) >& k< '& r_ r_ j< w4 e) M= w4 p= !& o~ o~ a, a, X= 3& B~ k) B~ H= q} p} ae B, be ce *d #> i6 P4 L4 R4 R4 &8 &8 &8 p9 l6 >a l6 p6 sb 'a tb de xb ee ,d 'd )d fe ge he he he ie je /d ke le me ne oe <d pe qe re se te te ue ve we xe ye 0d 9d ze Ae Be Ce De Ee Fe Ge He Ie Je Ke Le Me Ne Oe Pe Qe Re Se Te Ue Ve We Xe We Ye Ze Ze `e f .f ud +f ud @f xd ua #f $f %f zd Ad zd &f *f =f -f ;f (0 Dd >f ,f 'f Pe )f !f ~f Na {f 70 90 ]f ^f G5 /f (f _f Rd Yb :f 58 <f [f }f |f 1f Ud 2f 3f 4f 5f 6f 7f 8f 9f 0f ;# af bf cf df df ef ff gf tc hf xc *9 if jf zc kf K0 s# lf mf nf L| <b 4] of pf qf ",
-"T7 D+ rf 8; R# r] sf tf uf I# s# E/ n] Lc <6 M7 Pc M7 :6 :6 8b Pc 8] A# A# Pc Pc Pc :6 <_ <6 Pc vf @~ ;~ +~ +~ +~ wf ( }e }e 3e C+ |e C+ C+ a f d b T+ c c d D+ d f f 99 +a xf yf zf Wc Wc Yc 5e 6e Af p Bf `+ M/ g9 $a `+ c< K2 K2 76 }& 2& ~& G& G& ^& ^& H& m~ r_ M= `7 +d o) +d 0e l= h& p) h& Cf Df Df Ef Ff c) c) >& Gf e) r_ v4 e) r_ E~ p= g) h) B~ H& N~ H& N~ Hf N~ .- K~ y_ J_ C< If Jf Kf Lf *d #> n6 L4 Q4 R4 Mf R4 &8 &8 l6 l6 l6 ~a Nf -8 ~a !a xb ,d Of Pf Qf ge ge Rf Sf Tf Tf he je ke /d Uf Vf Wf Xf Yf Zf `f g g .g +g @g #g #g $g Xb %g 0d &g *g *g =g *g -g ;g ;g >g ,g 'g Md )g !g ~g {g ]g ^g /g (g _g ;c rd :g <g [g }g }g |g |g 1g 2g 2g 3g 4g 5g 6g 7g 8g 9g 0g ,c yd qa 0g ag bg =f cg dg eg fg gg ld hg ig jg Nd kg {f Qa lg mg ng og pg /f (f _f qg _f O9 Sd rg sg tg ug vg wg xg 2f yg zg Ag Bg Cg Dg Eg Fg Gg Hg Ig Jg Kg Lg Mg Ng hf *9 Og Pg zc Qg K0 s# Rg Sg Ec L| Tg 4] Ug Vg Wg ",
-"Xg Xg Yg 8; Zg `g h .h +h p; s# @h p] )) #h L7 L7 Rc Rc N7 N7 $h %h %h &h N7 N7 N7 N7 r/ N7 N7 }9 Nc *h T| T| K7 N7 ( =h B+ }e }e -h ;h C+ 09 j d >h h h : f f f g g +a ,h jb 5e 'h )h Wc Yc 5e V7 !h ~h {h e9 v= v= c< b< ]h }& ^h G] ~& G~ G~ G~ 3& G& ~& D~ n= d) `7 +d /h b) o) l= Cf h& (h Df _h i, a) :h l= <h <h Ff c) >& t) M= M= '& v4 p= l~ h) 4& N~ [h J~ }h P~ E= (& O~ G_ C_ x) '1 be Kf |h 1h ce *d 2h S4 S4 S4 Q4 Mf sb 3h &8 &8 *8 *8 4h X4 5h !a ,d Pf 6h ~d 7h Rf 8h Tf 9h 0h 8h ah bh ch dh eh fh gh hh ih jh kh lh mh nh +g oh #g gc ph qh rh sh th *g uh A5 vh #c wh xh yh zh Ah Bh Ch Dh Eh Fh Gh Hh Ih Jh Kh Lh Mh Nh Oh Ph Qh Rh Rh Sh Th Th Uh Uh Vh Wh Xh Yh Zh `h i .i +i @i %f #i ag $i %i &i *i =i -i ;i >i ,i 'i )i !i Qa ~i {i ]i ^f ^i /i /f /f ba (i _i :i <i [i }i |i 1i 2i 3i 4i 2f 5i 6i 7i 8i 9i 0i ai bi ci di ei fi gi hi ii ji ki li Pg zc mi ni s# oi pi qi ri M> 4] si Vg ti ",
-"ui vi 16 8; wi xi yi o% &~ zi s# s] Ai 79 *h Bi T| K7 K7 Rc N7 N7 $h 8b %h $h N7 L7 Rc K7 U0 U0 Nc Ci Ci T| K7 K7 N7 Di Ei Fi / B+ C+ C+ C+ Gi j >h g g f f f m f 99 +a xf Hi Ii b9 Ji Ji hb Yc gb Ki !h W7 W7 J] E= o_ J] ]h s4 J2 Li Mi Y7 Ni Ni q= o~ Z] m~ r_ d) c) 0e l= l= p) Oi Cf _h :h :h i, Pi Qi Qi Ri k, :h Si Cf i& h& l= j& s, t) '& p= l~ l~ q= 3& @- Ti P~ (& y~ w= Ui Vi Wi Xi j} Yi Zi `i ce j 1h .j j6 L4 L4 S4 S4 L4 L4 S4 p6 S4 -8 W4 +j >8 ;8 wb Of @j ge 7h Rf Sf Tf Tf #j 8h Tf $j %j &j *j fh =j -j ;j >j ,j 'j )j !j ~j Yb {j Xb gc Ta ]j ^j /j (j [7 _j :j <j [j }j |j <j ]g 1j 2j 3j 4j 5j 5j 6j 7j 8j 9j 0j Wh aj bj cj dj ej fj gj hj ij jj kj lj mj nj oj oj pj qj rj rj sj `h tj uj vj wj xj yj zj Aj Bj Cj Dj Ej Fj Gj !i Hj Ij Ij Jj ~i Kj Lj Mj 87 Sa _i Nj Oj Pj }i Qj Rj Sj Tj Uj Vj Wj Xj Yj Zj `j k .k ai +k cf @k #k Lg fi sc x7 )b $k %k zc &k *k s# =k -k Q' L| Tg 4] ;k Vg ti ",
-">k ,k Y0 8; `# 'k )k 79 !k K# s# ~k {k ]k ^k /k (k n4 _k :k :k D+ [e a _ rf :k <k <k V0 T7 o4 n4 [k n4 :k <e a ( =h 3b / B+ C+ -h T7 T7 bb }k T7 09 n Jc Jc / Jc n U7 +a xf +a |k a9 .a Ji hb Yc a9 Y+ 1k 2k }& s4 t= |& }& G] I2 Li 3k Y7 4k v4 5k v4 4k j< 6k 7k `7 8k 9k 0k 0k 9k ak Cf i, k, Pi bk ck 0) && dk && ek ek a) i, i, :h h& o) c& c& '& r_ E~ l~ q= H& .^ O~ i< w= w= x= x= =^ Ti B& fk gk hk &> ik jk jk kk lk 2h T4 T4 W4 W4 mk n6 >8 nk ,8 nk +j -8 -8 ok pk {d he he 8h qk rk 8h rk rk $j sk tk uk vk wk xk yk zk Ak Bk Ck Dk Ek Fk Gk Hk Ik Jk Kk ^j Lk Mk _j Nk Ok Pk Qk Rk Sk Tk Uk Vk Wk Xk Yk Zk `k l .l +l @l #l $l %l &l *l =l -l ;l >l ,l 'l )l !l ~l {l ]l ^l ^l ^l /l (l _l :l :l <l [l }l |l vd ud 1l 2l *i 3l 4l 5l Ej Fj 6l 7l 8l 9l 0l al bl cl dl el fl gl hl [f [f [i 1i il jl kl ll ml nl ol pl ql rl sl tl +# ul `{ vl wl xl yl zl Al Bl Cl Dl El !< Fl s# Gl Hl Il Jl Kl 4] ;k pf ti ",
-" 1 .1 Z| 8; V# 6= Ll K+ Y0 Ml s# R% 4~ z% Nl 79 36 R7 P7 n4 Ol D+ e e rf :k (k R7 [ R+ 46 R+ Pl [k Ql n4 D+ Rl n Fi Jc a C+ -h T7 Sc Tc Tc Sc V0 e a a }e a U7 Sl Sl +a +a +a n n U7 Tl U7 Ul Vl Wl Xl r4 t= %a %a %a ^h 4} Yl ~& Y7 v4 k~ Q= Zl .d Q= `l +d m .m 9k +m @m #m #m +m $m dk dk bk Qi %m &m *m =m -m 0) ;m >m o, Ri k, ,m h& o& o) t) N= M= o= q= 3& Hf Ti (& (& &^ *^ 'm O~ N~ C& fk gk gk gk &> )m jk kk lk lk #> V4 V4 !m ~m {m ]m t6 s6 ^m /m -8 ^a {a (m Cb _m je :m 8h 8h rk <m [m }m |m 1m 2m 3m wk 4m 5m 6m 7m 8m Ck 9m 0m Dk am bm cm dm em fm gm hm id im jm km lm Rk mm Tk nm om pm qm rm Qh sm tm um vm wm xm ym zm Am %l Bm Cm Cm Dm Em Fm Gm Hm Im Fm fj Jm lj Km Lm Mm Nm Om Pm Qm Rm Sm Tm Um R3 5g Vm Wm Xm Ym Zm Dj Ej `m n .n +n @n #n $n %n ]i &n Ra Lj *n *n Td =n -n ;n >n ,n 'n )n !n ~n {n ]n ^n /n (n _n Y. :n vl <n [n }n |n 1n 2n 3n 4n 5n !< Fl s# 6n 7n 8n 9n S> 4] ;k 0n p2 ",
-"4 B2 K+ 8; an bn 2~ k] B2 cn s# T% 0= dn o] o] u% i4 en !k P7 n4 o4 o4 n4 [ 16 Y0 Z| fn gn ^k [ Pl Xg /k n4 j f hn }e D+ bb in Sc Tc Tc Tc 19 jn T7 rf D+ D+ [e Rl Sl kn 99 99 m f f X+ f e k p4 ln mn r4 s4 H] H] H] G] I2 nn h9 m~ w4 Q= on Oi Cf Cf Cf Cf ak +m pn qn rn sn tn sn &m un vn sn =m vn wn xn yn %m un un zn An && Bn k, i, Si (h p) <h o) >& n= l~ X= N~ @- Cn E= (& I~ K~ L~ 5& be &> Dn gk gk &> hk En &> lk Fn Gn |h `4 Hn Hn In 5 5 t6 {m Jn Kn Ln (m t9 Hb Db Mn Nn ah ah <m On Pn Qn Rn On Sn Tn Un Vn Wn Xn Yn Zn `n o .o +o am @o #o $o %o &o hm *o =o -o ;o ]g >o ,o 'o )o !o ~o {o ]o dj ^o /o ;l ~l (o _o :o <o [o }o |o 1o 2o 3o 4o 5o 5o 6o 7o 8o 9o 0o ao bo co do eo mj /o fo go ho io jo ko lo mo no oo po Ym qo ro _j so to uo vo wo xo yo cl 90 M8 zo G5 Ao Bo Co Do Eo il >n jl Fo Go b' Ho Io Jo Ko Lo Mo ._ No Oo Po ]4 Qo Ro So To Uo Vo Wo Xo Yo s# 6n C* Zo `o p 4] .p +p N' ",
-"[} z/ [} 8; @p J% 5~ a_ _} #p s# $p %p &p n] m] k] [} 4 i4 S7 F+ [ [ Z0 h4 Z| .1 4 Z| en *p ^k [ Z0 [ Yg n4 T+ T7 D+ in n4 Ql [k n4 n4 n4 [k o4 T+ =p T7 T7 T7 f kn l f h h >h h f h i T+ -p ;p >p mn ^& ^& %a G] u4 Li ~& ,p *1 Q= `l 'p _h :h i, )p i, Bn !p ~p {p ]p ]p ^p /p (p _p ^p :p vn :p :p (p <p zn [p [p }p |p 1p 2p 0) $m k, r, (h q) q) p) c) e) p= l~ M~ w) Cn .^ 3p H& z& 4p 5p ik &> gk gk gk gk gk En hk hk Kf Zi 6p 7p 8p 8p 8p 9p 0p ap s6 bp cp t9 Ln dp ep _d fp gp hp ip 2m Pn ip On jp kp lp mp Wn Wn np op pp qp rp sp tp tp up vp wp xp yp zp *o Ap Bp 2j Cp Dp Ep Fp Gp Hp Ip Jp Km Kp Lp /o Mp Np Op Pp Qp Rp Sp Tp Up Vp Wp Xp ~o Yp Zp 9j `p q q 9j .q T3 +q @q Wh #q $q %q &q *q =q -q ;q >q ,q 'q )q !q ~q {q ]q ^q /q (q _q 7l :q <q yo [q }q mg M8 |q 1q 2q 3q 4q Do 5q 6q ,n 7q 8q 9q 0q aq bq cq dq eq /n fq gq hq ] .] iq jq kq lq mq 5n Xo nq s# 6n oq Zo pq qq 4] Rg Vg rq ",
-"k] k] m] 8; @p ], sq 1~ %, tq s# uq vq wq k] x] _} m] n] z/ B2 26 Z| Z| Z| xq B2 K+ B2 5 A2 yq 89 16 16 16 [ S+ 46 [k o4 [k ^k ^k ^k [ [ Pl Pl 0 o4 o4 Tc bb zq f l W+ h 9 7 c 9 T+ c Aq Bq Cq E] -p L/ ^& 1& 1& G] Li Dq b6 l~ e) on .m _h a) bk Qi Eq Fq Gq ~p ]p Hq Hq Iq Jq Kq Lq Mq Nq Oq Oq Pq Qq (p vn wn Rq Sq Tq wn wn wn un >m dk 4, i, k, k, i, Ef p& c, '& p= E& X= H& Z= Uq A& u) Vq Wq }$ ik &> hk En En En gk Zi Hn Xq 6p Yq L$ N$ 8p In 9p Zq `q `q r s6 v9 t9 dp .r +r @r vk uk vk ke #r uk Sn $r %r Vn 5m &r op Yn *r =r -r +o ;r >r ,r 'r )r !r ~r {r ]r ^r /r -o Bp (r _r :r <r [r }r |r 1r 2r 3r 4r 5r 6r 7r 8r 9r 0r ar br cr dr er fr gr hr ir T3 T3 .q .q 9j jr T3 R3 `h kr lr mr j[ nr or pr qr rr sr tr ur ,q vr wr xr yr zr Ar Bp Br Cr Dr Er Fr ]i ]i ^f mg Gr G5 Hr 3q Co 4q Do |i 6q Ir Jr Kr Lr Mr Nr Or Pr Qr Rr Sr +_ fq Tr Ur (/ Vr Wr lq Xr R[ Yr Zr s# `r s .s +s S> 4] @s pi M0 ",
-"m] m] p] 8; #s !, $s r] <~ tq s# {, [) %s := w] p] := p] x] m] n] [} [} y/ m] m] n] y/ o] g_ 1 1 ,k &s ,k *s R+ R+ =s -s [ ;s db 36 36 89 ;s [ [ R+ >s [k ,s 's )s !s !s i 7 7 7 Vc c P+ ~s {s ]s ^s /s Mi ~& ]& (s ~& 3k m~ nb e) +d h& 0k Qi _s :s :s xn Hq Jq Jq <s <s Jq <s [s }s |s 1s 2s Kq }s Kq Kq Sq Tq _p Kq Lq 3s 4s Oq _p 5s wn &m 6s >m -m -m 7s m, 8s >& ,& O= c, '& 9s m) o= '& s, 0s .j Wq Wq jk ik &> Dn &> Kf Kf Hn as bs 6p cs ds ds cs es Zq Zq Zq fs gs hs v9 is dp js ks ls ms ns os ps qs rs ss ts Un Wn us vs *r ws xs -r ;r ys >r zs As Bs Cs Ds Es Fs ^r Gs Hs Is Js Ks Ls Ms Ns Ns Os Ps Qs Rs Ss Ts Us Vs Vs Ws Vs Xs Ys Zs `s t .t +t @t hr #t $t %t &t $t *t R3 Zh =t -t =t ;t >t ,t 't )t !t ~t {t ]t ^t /t (t _t :t .f <t =c [t }t Br |t 1t Fr 2t mg lg mg 3t Gr Bo 3q 3q Do Do 4t 5t 7q |7 6t 7t 8t 9t 0t at bt ct dt Sr o' t| et ft #_ gt x| ht it Yr Zr s# jt kt lt mt nt 4] ot pt ti ",
-"p] Y| b_ 8; qt rt st %s Ll R# s# tt ut vt C/ Y| Y| Y| C/ <~ wt q] 7< 7< xt xt xt _} m] A] f_ o] K+ o] K+ 4 A2 yt zt [ At *p *p 89 | Z| .1 Z| Bt +1 F2 89 ^k =s o4 V+ Ct ;p V+ Dt Et Et Ft E2 Gt `| g_ g_ Ht It 4k l~ m~ m~ m~ m~ S/ k< Jt ,m pn Kt (p Lt Kq [s Mt Nt Ot Pt Qt Rt Rt Rt Nt St Tt Ut Ut Ut Ut Ut Vt Wt Oq Mt Xt Yt Zt `t u .u Mt +u @u Oq Pq Tq vn ;m && #u h& >& >& >& >& r& r& t) d& *& $u %u &u &u &u *u =u lk -u 1h &> Hn `4 ;u bs 6p cs >u ,u 'u cs )u !u Zq fs x9 bp is ~u oe oe {u ]u ls ^u Xf /u (u _u :u <u &r [u vs 9m }u -r |u 1u >r 2u 3u 4u 5u Ds Ds 6u 7u 8u 9u 0u au bu cu du eu fu gu hu iu ju ku lu mu nu ou Ts pu qu ru ru ru su tu uu vu wu xu yu zu Au Bu Cu Du Eu Fu P3 Yh Gu Gu R3 Hu Iu Ju Ku Lu Mu Nu Ou Pu Qu Ru Su Tu Uu Vu Wu Xu yh Yu ~f yo Zu `u Zu mg 9c }q 3q Ao 3q 3q =n v .v +v |7 @v #v $v %v &v *v =v -v ;v >v ,v 'v )v !v i* O[ gt ~v {v *< {% s# ]v ^v /v (v _v 4] :v <v L* ",
-"q] C/ Ll 8; [v }v [) 0~ Ll |v s# 1v 2v 3v Ll C/ C/ b_ 1~ r] ]e &p &p 4v 5v 4v &p xt _} C2 A] sf sf y/ y/ K+ 5 C] 6v 7v 8v >k 9v 9v 1 o] y/ sf sf 0v 5 7v *p R+ av Bq bv ;p -p m4 Ft #1 cv 1} L+ g_ X| g_ dv It r_ S/ ev fv U/ m= `7 gv _h Eq hv ^p Kq Vt iv jv kv lv mv mv nv Ot ov Ot Ot pv iv qv rv sv sv tv uv Wt vv wv xv yv zv Av Bv Zt sv rv rv Cv Dv @u Tq [p Ev dk a) k& =& h& i& =& =& k& Fv Gv Hv Iv Jv Kv Lv Lv T4 =u 1h ce Lf `i `4 `4 Mv bs es cs >u Nv Ov Nv Pv fs fs Qv x9 bp Rv Sv {u Tv ]u Uv Vv Tv Wv ;j ;j Xv Yv Zv Yv `n o +o `v `v w .w +w @w 4u #w #w $w 6u 8u %w &w *w =w -w ;w >w ,w 'w )w !w ~w {w ]w ~w ku ^w Ys su /w (w (w _w :w <w [w }w |w |w 1w 2w 3w 4w 5w 6w 7w 8w 9w Cu 0w Tu aw bw Oh cw dw ew fw gw hw iw jw kw lw Pm Rm mw bw :g nw ow id Me La yo pw qw rw mg mg sw Ao tw 1q 3q Bo uw ug vw ww xw yw zw Aw Bw Cw Dw Ew Fw Gw Hw r' Iw Jw Kw @< gt {v 1/ Lw s# ]v Mw Nw Ow Pw 4] Qw Rw N' ",
-"q] Sw &p 8; Tw Uw Vw Ww %s X# s# Xw Yw Zw [~ Ll 1~ %s 3~ 4~ Ww 4~ `w `w xi 5v &p (9 xt p] C2 h y/ y/ k] y/ 0v B] x .x 1 .1 .1 1 K+ [} C2 C2 C2 y/ 0v |} 7v gn +x G2 m4 >s @x #x .1 1 X| $x %x %x %x &x *x c& =x -x d, n< ;x a} ;1 #u >x ,x 'x )x !x ~x {x ]x ^x ]x ]x /x (x _x :x <x <x <x [x }x }x |x 1x 2x 3x 4x {x 5x (x 6x 7x 8x 9x 0x ax bx 2x cx dx ex fx gx hx ix jx kx lx Si lx m, k, #u 5, >m mx nx ox px nx #8 Iv qx =u =u N4 ce ce ce Hn Hn Zi rx 8p rx bs 5 es es `q sx s6 tx bp bp v9 Rv Sv ux vx wx xx ih >j yx zx Ek Ek Dk Ek Ax Bx Cx 'r Cx Dx Ex Fx Gx Hx Ix Jx %w Kx Lx Mx Nx Ox Px Qx Rx Sx Tx Ux Vx Wx Xx Yx Zx `x y .y +y @y #y _w $y $y %y &y *y =y =y -y ;y >y P3 ,y 'y 6w )y !y ~y {y ]y ^y /y (y dw _y :y <y [y }y |y 1y 2y 3y 4y 5y 6y 7y 8y 9y 0y ay by cy dy +n ey rw Qa Qa tw Lj <i <i fy gy .v hy iy jy ky ly my ny oy py Nr qy Or rl ry sy ty uy vy wy %b _/ Zr s# xy Gl yy zy Ay 4] By T! Cy ",
-"q] <~ Dy 8; Ey Fy ,, 'k 3~ V# s# Gy Hy Iy %s 0~ 0~ 4~ E% vt 0= Jy Ky Ly D% 5v 4v 5v &p xt x] x] x] m] k] }} f_ f_ sf $x 0v o] }} My m] C2 7< Ny Ny C2 y/ Oy .x C] 7v {s yt Py 8v .x 5 X| y/ d_ Qy Ry Qy Ry Sy j& 9} a} a} a} ;1 Ty Uy Vy Wy Xy Yy Zy `y z .z +z @z #z $z $z %z #z @z @z @z @z &z (x (x (x &z 9x 9x *z 8x ^x #z =z =z ^x +z -z ;z >z >z ,z 'z )z !z ~z {z ]z ^z |p /z (z _z p, 7s dk 0) :z <z ox ,$ ,$ ,$ [z nx #8 T4 i6 i6 #> *d 1h Hn Hn Zi rx rx 5 ;u 5 5 5 9p `q s6 tx bp v9 Rv }z }z |z w9 1z 2z 3z 4z 5z 5z Ek Ax 6z 6z 7z Cx 8z 9z 0z az az bz cz dz ez fz gz hz iz jz kz lz mz nz oz pz qz rz sz tz Yx `x uz `x vz .y wz @y xz xz =y yz *y zz Az Az Bz Cz }l Dz Ez Fz Gz Hz Iz Jz Kz Lz Mz R3 Nz Oz dw rm Pz Qz Rz Sz Tz Uz Vz Wz Xz Yz Zz `z A .A +A @A #A $A %A &A *A =A -A ~i bc G5 ;A Ao 4t Pj Do >A ,A 'A )A !A ~A {A ]A oy ^A /A Dw (A _A :A sy <A [A }A r* $_ {% s# |A 1A F* zy Ay 4] 2A 3A 4A ",
-"Y| b_ r] 8; 5A 6A ], $s F% s; s# 7A 8A I% 9A 4~ 3~ 0A :) :) F% vt aA 'k bA D% xi cA C% dA xt xt xt w] m] eA d_ z] x] C2 C2 F/ z] G/ xt xt xt xt xt q] C2 eA fA $x g_ C] gA 5 $x $x }} A] G/ hA iA jA i= i= kA lA :h g, mA nA oA pA qA 'x rA [x sA tA 9x uA vA wA xA xA yA zA AA BA BA CA zA DA EA FA GA HA IA JA KA LA vA MA MA Y; %z #z NA OA PA QA QA RA SA TA cx UA |s VA ~z WA XA YA ZA hx o, ;m &m wn `A B B B B ,$ [z .B +B j6 T4 T4 @B ~m Y4 Hn Hn ;u Hn Hn Hn ;u 5 `q `q #B `q x9 bp Rv Rv }z $B Uv vx 1z %B 2z &B *B =B -B ;B >B ,B 8z 'B 9z )B !B ~B {B ]B ^B /B (B _B :B <B [B }B |B 1B 2B 3B 4B 5B qz 6B 7B uz `x `x 8B `x 9B 0B aB bB xz cB dB eB fB gB hB iB jB kB lB mB nB Fz oB pB kB qB rB rB Hz sB U3 Nz T3 tB uB gr vB wB xB yB zB =2 AB BB CB DB EB FB GB @A HB IB JB KB &A 2t -A `u LB MB NB Lj OB Td =n PB QB RB SB TB UB VB WB ny oy XB /A YB ZB `B C .C +C @C #C $C %C s# &C *C F* =C -C 4] ;C >C ,C ",
-"&p 0~ cA 8; Tw 'C )C N% !C ~C s# 7A 'C {C ]C ^C 3~ 2= F% 3= 3= 2= 'k 'k Ky xi xi Ky /C xi {k b_ <~ Sw q] g~ (C q] xt Sw Sw wt u] u] xt xt xt <~ b_ Sw xt xt Ny C2 f_ _C _C }} fA d_ G/ wt dn :C <C [C <C [C |p }C o, -m |C 1C 2C )x !x ~x `y tA 3C 4C 5C 6C 7C 8C 9C 0C aC bC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC Y; Y; Y; Z; X; sC tC uC vC wC xC TA yC zC zC zC AC BC {z {z CC DC EC CC Pq FC GC HC B IC B px [z JC KC Q4 L4 P4 #> O4 Y4 `4 `4 |h t6 Z4 Z4 0p `q #B s6 bp LC MC v9 Rv }z NC Uv OC PC 3z QC RC SC TC UC VC WC XC YC ZC `C `C D .D +D /B @D #D $D %D &D *D =D -D ;D >D ,D pz 'D 5B Tx )D Yx 8B 8B !D ~D !D {D ]D ^D /D (D (D _D :D <D [D }D |D 1D 2D 3D 3D 2D 4D 5D 6D 7D 8D 9D qB 0D aD bD cD %t }w 9j uB dD eD fD yB gD hD iD Vz jD kD lD mD nD Sz oD #A pD qD rD sD tD *A `u ^f uD OB vD Td [f wD xD yD zD AD BD CD DD ED FD GD HD ID JD ZB KD LD MD @C ND OD %C s# PD *C QD +; -C 4] RD SD TD ",
-"<~ 0~ s] 8; Tw 'C UD H% st VD s# 7A 'C {C _) () 0A () _) F% 3= WD vt bA xi xi Ly 9A vt 4) XD 0~ 9~ }~ c~ YD YD d~ ]e 0~ xi 0~ 0~ c~ &p b_ &p wq 9~ &p &p &p &p hA xt G/ ZD xt `D d~ 0~ Ww bA E BC BC `% .E +E @E _p 'x #E $E %E &E *E =E -E ;E 7C EA >E >E ,E 'E )E !E ~E {E ]E ^E /E (E (E _E :E <E [E }E |E 1E 2E 3E 4E 5E 6E 7E 8E 8E ,$ B 9E 0E PA sC aE bE cE SA dE dE eE fE gE zC zC Dv @u +u Dv UA hE iE jE kE jE jE HC $8 %8 >a 'a l6 J4 L4 V4 N4 O4 O4 r6 r6 nk ]m O4 {m ^m /m t9 lE .r t9 is {u mE mE nE oE pE qE rE sE TC tE uE vE wE YC ZC xE yE zE +D AE BE CE DE EE FE GE HE IE JE pz KE 5B LE ME NE OE PE QE RE SE !D TE UE VE WE XE YE ZE ZE `E F .F +F [D @F #F $F %F &F &F 8D *F =F -F -F ;F >F ,F 'F )F )F !F ~F {F ]F ]F vB ^F /F (F _F :F <F [F }F |F 1F 2F 3F gD 4F 5F 6F 7F 8F 9F tD 0F aF bF 3q cF Sd dF eF fF gF hF iF AD jF TB DD kF FD lF mF mF nF oF pF 4* qF rF sF A> s# PD t0 #; H! tF 4] uF vF wF ",
-"C/ Ll `g 8; Tw xF UD H% !C an s# yF zF [) 3~ 4~ 0A 0A 4~ 1= AF sq 'k bA bA ~k BF CF vq vq %p 'k 3~ 3~ DF EF 4~ ~k Jy ~k 3~ 4~ 4~ 4~ ~k 4~ 4~ 4~ 7~ FF 0~ a~ GF HF IF IF 0~ 4~ JF KF 7~ 0= 3v LF MF zC NF OF PF Mt QF RF SF TF UF 4C IA EA VF WF XF YF XF jC YF ZF `F G .G +G @G #G $G %G %G #G &G +G *G =G -G ;G >G ,G 'G )G !G !G ~G {G ]G ]G ^G /G (G _G %z :G sC <G [G [G }G |G 1G 2G >z 3G 4G 1x 5G SA 6G 7G 8G 9G 0G aG bG bG jE cG dG -d )a l6 Nf P4 eG eG V4 n6 n6 V4 V4 >8 q6 ^a fG Hb gG Hb Hb ~u hG <d iG jG kG kG PC lG mG UC nG oG pG qG rG !B sG tG tG uG vG wG xG yG zG &D AG Sx BG CG KE BG DG 4B 3B EG EG FG GG RE HG SE !D IG JG KG LG LG MG NG OG PG QG +F RG SG TG pB -F >F >F >F ;F >F UG VG WG XG XG cD YG ZG `G H Wp .H +H @H #H (F $H %H &H *H =H -H ;H >H ,H 'H )H !H 6F ~H {H yo ]H ^H /H (H _H :H <H Sd [H }H |H 1H 2H 3H 4H 5H 6H 7H 8H 9H 0H aH bH cH dH eH fH gH hH iH s# PD jH kH lH [% 4] mH nH oH ",
-"w] <~ wq 8; Ey pH qH st rH sH s# xF }v $s %s Ww Ky FF 0~ HF :C tH uH vH wH tH xH yH xH zH AH BH CH AH DH DH DH DH BH xH EH FH GH GH HH HH HH FH IH IH tH tH IH JH JH JH IH KH IH IH LH DH MH NH (z OH kx PH QH RH SH TH UH VH WH XH YH ZH `H I .I +I @I #I $I %I &I *I =I -I ;I >I >I >I ,I 'I )I !I ~I {I ]I ^I Jv /I (I _I :I (I <I [I }I <$ |I 1I 2I 3I 4I 5I 6I 5I 7I 8I 8I 9I 0I 0I aI bI |p cI dI eI fI kk &> gI hI iI iI iI jI kI kI lI mI nI oI pI pI qI qI qI qI qI qI rI sI tI uI vI wI xI yI zI AI BI CI DI EI FI GI HI II JI KI LI MI NI OI PI QI RI SI TI UI VI WI XI YI ZI `I J .J +J @J #J $J %J #J &J *J =J -J ;J >J ,J ,J 'J )J !J ~J {J ]J ^J /J /J (J _J :J <J [J }J |J |J 1J 1J 2J 3J |J 4J 5J 6J 7J 8J 9J 0J 0J aJ bJ cJ dJ eJ fJ fJ gJ hJ iJ 2j 7j jJ Ip kJ lJ mJ nJ oJ pJ qJ rJ sJ tJ uJ vJ wJ xJ yJ zJ AJ za BJ CJ DJ EJ FJ Kd Ja GJ HJ IJ JJ Lr KJ b' LJ MJ NJ OJ PJ QJ ^% s# RJ t0 kH SJ |% 4] TJ wF UJ ",
-"p] Sw r] 8; 5A VJ UD H% WJ V# s# 1v XJ 0A <~ b_ E/ 9~ 9~ 0~ YJ ZJ `J `J K .K +K @K `J #K $K %K &K *K BH =K =K $K $K $K tH ZJ @K -K +K .K .K `J ;K >K ZJ ZJ ZJ ,K ,K 'K $K 'K )K !K !K $K ~K {K ]K ^K /K (K _K :K <K Vy ,x [K }K |K 1K 2K 3K 4K 5K `H 6K 7K 8K 9K MA 0K MA MA MA MA aK bK cK X; V; V; V; ^$ dK <I eK fK gK hK iK jK kK jK jK jK k$ lK mK 6I nK nK nK oK pK 9I 9I pK qK qK aI rK sK tK uK vK wK xK yK o$ zK AK AK BK BK CK CK DK EK FK GK HK IK IK IK IK JK KK LK MK NK OK OK PK PK PK QK RK SK SK TK UK VK WK XK YK ZK `K L .L +L @L @L #L $L %L &L *L =L -L ;L >L -L ,L 'L )L !L ~L {L ]L ^L ^L /L (L _L :L (L <L [L [L }L }L |L }L 1L 1L 2L 2L 3L 4L 4L lz 5L 6L -w 7L 8L 9L 0L 7L aL aL aL 9L 0L bL cL dL eL fL eL gL hL iL jL kL 4l 4l lL mL nL oL pL qL rL sL tL 0r uL vL wL xL yL zL AL pG BL CL lh DL EL FL q5 GL HL y5 IL JL KL LL ML NL Wb [5 OL PL 9' bH LJ QL RL SL TL UL s# VL t0 WL XL YL 4] ZL `L M ",
-"n] q] C/ 8; Ey xF qH rH <) .M s# tt >, 4~ Sw Y| q] Sw &p wq +M +K `J `J K K @M #M #M `J #K $M %M &K BH 'K 'K $K #K &M *M =M -M ;M >M ,M *M 'M )M )M )M )M !M !M )M ~M {M )K ]M ^M ]M {M /M /K (M :K :K _M :M <M [M }M y$ |M 1M 2M 3M 4M 5M 6M 7M 8K 8M 9M 8M 0M 0M aM bM nx OA OA cM V; V; V; V; dM V; {$ 5$ eM g$ fM gM gM gM hM hM iM jM kM kM lM mM nM oM pM qM qM rM rM rM sM tM uM vM wM xM yM zM AM BM oM yK yK CM DM uM EM CK DK FM GM GM FK HM IM KK LK JM LK LK MK MK KM LM MM RK QK OK OK RK SK NM OM PM QM UK RM SM TM ZK `K L UM VM WM XM YM ZM `M N .N +N @N ;L #N =L $N %N %N )L &N *N =N -N ;N >N ,N 'N 'N )N 'N !N !N ~N ~N {N {N ]N ]N ]N 3L ^N /N (N _N :N :N <N [N }N |N [N |N 1N 2N 2N 3N 4N 0L 0L 5N fL fL 6N 7N 8N 9N 0N aN bN cN lL dN eN nL fN gN hN iN jN pu kN lN mN nN oN pN qN rN sN tN Ek Ek uN vN wN xN yN zN AN BN CN DN EN FN GN HN IN JN KN LN MN NN Zd ON PN UL s# QN RN SN TN {% 4] UN VN WN ",
-"[} p] a_ 8; [v Fy ], WD 0A U# s# 2v bn 2~ w] x] l] y] xt XN YN ZN #M #M `N #M #M #M @M K ZJ O BH BH =K $K #K O >K .O >M -M +O ;M ;M -K =M @O #O $O $O )M )M %O %O &O /M )K *O /M /M =O {K -O ;O >O ,O 'O eI [K }K )O !O ~O {O 4M ]O ^O /O (O (O `; _O :O `; <O > W; W; cM nx bM W; bM bM bM dM dM V; V; {$ f$ [O }O |O 1O |O 2O |O |O 3O 4O 5O 6O 7O kK kM 8O 9O 0O aO aO hI bO bO cO qM o$ dO eO fO fO gO hO iO qM jO kO tM uM EM lO FM mO mO nO OK oO IM LK LK MK MK MK NK MM MM MM RK RK OK PK pO RK NM qO PM rO UK sO tO TM uO `K vO VM WM wO #L $L &L xO yO zO AO BO CO =L DO $N yO )L DO -N EO FO GO HO 'N IO IO JO KO !N ~N LO ]N MO 3L NO 4L /N ^N /N /N OO PO :N QO RO SO 1N TO 1N UO UO TO VO 2N [N 4N lz 3N WO XO 5N fL YO ZO `O iL iL aN bN 4l P .P +P @P #P pJ $P %P 9r &P *P 9u =P oN -P ;P >P rN ,P 'P lh mh )P !P ~P {P ]P ^P /P DN (P CN 25 _P :P <P IN KN [P }P |P 1P 2P 3P 4P s# RJ 5P 6P 7P YL 4] 8P 9P 0P ",
-".1 o] m] 8; aP bP bn Ky Dy `# s# cP [) 0~ l] k] K+ o] k] q] dP eP eP ZN fP eP ZN gP gP @M K .K `J &M &M O hP `J `J -K iP jP jP jP jP ;M -K kP lP lP mP nP nP nP nP oP pP qP /K /K (K {K rP sP tP tP ZA uP vP wP dx xP yP 3M zP AP BP /O `; _O _O CP :O DP `; > > W; W; bM bM W; W; [z ox ,$ 8$ 7$ U; V; dM dM V; EP FP FP FP FP GP HP FP IP JP KP LP MP 5O NP kk &> -u -u Dn Dn Dn &> En OP hI m$ n$ o$ PP QP RP RP SP TP qM kO CM UP lO VP mO GM WP XP OK oO YP LM ZP LM LM MM MM RK RK RK QK RK RK RK SK qO PM UK `P sO Q .Q ZK vO +Q VM wO wO #L @Q $L #Q =L -L $Q -L %Q =N *L $N DO DO DO =N &Q GO *Q *Q =Q -Q ;Q >Q ,Q LO MO 'Q 'Q )Q !Q /N )Q |N [N |N [N ~Q {Q ]Q ^Q /Q (Q _Q :Q SO TO <Q _Q _Q TO |N UO 2N <N <N XO 0L 5N [Q }Q `O #N +N zO aN bN |Q lL 1Q 2Q 3Q 4Q 5Q gJ 6Q &P ^w 7Q 8Q 9Q 0Q aQ bQ cQ pG dQ eQ Ek fQ gQ hQ iQ ]P jQ kQ lQ DN (P mQ nQ oQ pQ qQ rQ sQ tQ uQ vQ wQ xQ yQ s# QN zQ AQ BQ YL 4] CQ DQ EQ ",
-",k 4 y/ 8; FQ qH [) `g &p R# s# J% 3= b_ o] 1 &s Z| 4 x] At GQ HQ HQ eP eP ZN ZN fP gP gP #M @M #M #M .K `J +K #M fP IQ IQ IQ JQ eP KQ ;M LQ MQ MQ lP NQ %O nP OQ PQ /K /K /K QQ RQ SQ SQ TQ UQ VQ WQ !z XQ YQ 1K ZQ `Q R 5M BP .R (O CP :O `; .B +R +> .> +> @R cM #R #R ox ,$ ,$ ,$ ,$ ,$ 8$ 7$ V; dM $R $R 6$ U; %R &R GP &R *R *R =R -R ;R >R >R ,R ,R KP LP qx @> 'R )R !R !R !R !R -u ~R kK hI {R ]R ^R /R (R 9O _R :R qM jO jO kO <R [R VP mO }R |R OK OK 1R ZP ZP 1R RK QK RK RK RK QK pO RK RK SK OM PM UK sO RM Q .Q ZK `K +Q +L 2R wO wO 3R 4R 'L 5R >L AO zO 6R 7R *L 8R *L DO 9R -N &Q *Q =Q JO JO 0R ;Q 'Q aR )Q )Q /N [N [N |N |N bR <Q <Q {Q <Q cR dR eR eR fR RO RO RO :Q <Q gR hR hR SO SO iR <Q 1N 2N 4N 4N ,Q jR kR lR mR %Q %Q zO nR oR pR qR rR sR tR uR vR wR xR yR zR AR BR CR DR aQ qN ER FR GR HR Ek IR JR KR LR MR NR kQ lQ OR PR QR RR SR TR JN UR VR Xj 7i WR XR YR s# ZR `R w* S UL 4] oi -k .S ",
-"16 eb xq 8; @p ], WD Ll a_ Q# s# K% vq a_ ,k h4 db 89 ,k o] =s +S @S #S GQ GQ $S %S &S *S *S &S HQ eP fP ZN ZN fP =S -S ;S ;S JQ >S fP ;M LQ LQ ,S 'S )S nP PQ PQ PQ PQ /K !S ~S {S ]S ^S aI /S (S _S :S TA TA TA <S [S BP }S |S (O `; 1S 2S 3S 4S Z; W; 5S ^I @R .B bM V; U; 8$ S; S; 6S 7S 7S 8S 9S 9S O; O; 9S 9S 0S O; aS 0S O; aS aS bS px cS dS m6 m6 m6 m6 px m6 %8 JC +R eS fS )R !R &> gS 7O hK hS iS jS kS lS mS nS ^R oS pS qS RP RP rS sS tS uS vS wS xS xS yS zS AS AS yS BS AS CS CS DS AS DS ES FS GS HS UK UK VK IS JS JS KS `K LS MS NS MS OS PS QS `I UI TI RS %L SS TS )L $N -N US VS HO WS XS YS MO ,Q aR 4N ZS |N |N |N iR <Q `S {Q T RO RO gR gR eR .T +T @T fR #T $T RO RO %T %T gR {Q &T *T SO _N TO 2N WO 5N MO jR =T -T ;T %Q =L zO >T ,T 'T )T rR !T +P ~T {T rL ]T ^T /T 9u (T _T :T <T [T }T |T 1T HR !T 2T 3T ia 1c 4T NR kQ AN AN 5T 6T 7T 8T 9T 0T aT bT cT dT eT D> s# fT gT A' hT UL 4] oi iT jT ",
-"16 16 ,k 8; kT lT DF C/ Ny Q# s# L% 0= x] 16 16 16 *p >k K+ =s +S mT nT oT GQ pT qT #S rT sT +S tT #S %S %S GQ uT vT tT wT xT ;S yT zT AT AT BT CT 9I DT ET FT mK GT HT IT JT KT U; LT MT [$ NT @R OT PT QT RT ST TT UT VT WT XT YT ZT `T U XT .U +U @U @U [z W; bM #U 8$ R; $U %U &U *U =U -U *U *U *U %U ;U >U ,U 'U R; )U %U %U !U ~U {U aG jE ]U ^U ^U ^U /U /U ^U (U _U :U m6 +B qx @B <U [U }U }U |U 1U 2U 3U 4U 4U 4U 4U 5U 6U 7U 8U 8U 9U 0U aU bU cU 7U dU eU eU fU fU gU gU dU hU iU fU fU fU jU kU lU mU nU qO oU pU qU rU rU rU sU tU uU vU vU wU xU yU zU AU BU CU DU EU FU GU HU ^L IU VS *Q -Q 0R ,Q ,Q 'Q !Q [N JU VO JU iR :Q KU %T RO KU #T #T LU LU +T MU NU OU PU PU PU fR fR QU #T RO gR gR %T (Q :Q <Q TO |N /N 'Q MO RU KO `O mR %Q =L SU >T >T TU UU VU WU XU YU ZU `U V .V +V @V #V _T <T qN [T }T |T 1T $V %V &V *V =V -V 4T ;V (P >V ,V '7 'V )V !V ~V {V ]V ^V /V XR (V s# QN A* z! _V UL 4] oi Gl :V ",
-";s !k h4 8; C; $p 4~ 7< C2 O# s# [) 4~ 4 S+ Yg 46 =s *p 1 <V [V }V +S @S #S qT tT +S +S +S |V }V tT tT tT 1V 2V 3V 3V 4V 5V xT 6V 7V 8V 9V 7V 0V aV 7V bV 7V cV cV 7V dV eV 7V fV gV hV iV 7V jV kV 7V lV %z mV nV 7V 7V 7V 7V oV pV qV 7V 7V 7V gV rV sV tV bS px uV vV wV xV 7V 7V 7V yV zV 7V 7V 7V 7V xV AV BV CV DV EV 7V 7V 7V gV FV GV 7G HV 7V 7V 7V 7V 7V 7V IV yV JV KV LV MV NV OV qV 7V 7V 7V gV PV EV 7V 7V 7V 7V QV RV xV 7V 7V 7V QV SV xV 7V 7V 7V yV rV 7V 7V 7V 7V 7V rV yV 7V 7V 7V 7V EV TV UV VV WV XV YV ZV 7V 7V 7V sV sV 7V 7V 7V 7V 7V `V W nV 7V 7V 7V 7V .W +W @W )L IU &Q JO JO 0R ,Q 5N )Q !Q |N TO <Q :Q `S %T fR #W fR #T $W $W $W %W MU &W &W &W OU *W +T $W $W $W PU =W -W #T %T ;W gR gR TO |N !Q )Q 4L MO lR KO mR HO HO >W SU >T ,W TU 'W )T lL )W !W ~W {W ]W ^W /W (W _W `C <T :W <W [W GR }W %V |W 1W `9 2W 3W 4W ;V 5W ,V 6W 7W 8W 9W 0W ]V aW Yj bW cW dW s# eW fW A' _V |% 4] gW hW M' ",
-";s !k vi 8; X# 3= Dy := h O# s# 3= r] iW o4 d T7 T+ [ 9v in jW kW lW }V }V 5V jW mW mW mW mW jW jW nW nW 2V mW mW jW oW wT pW qW 7V rW >U 7V dV sW 7V bV 7V tW uW 7V iV vW 7V fV gV wW xW 7V yW zW 7V AW ~G BW CW rV rV rV rV DW ZV EW rV rV FW gV rV sV GW {U HW R; IW ZV JW KW LW MW yV NW OW PW QW NW RW SW KW TW OW UW rV rV rV VW WW XW YW ZW 7V NW rV rV `W X .X yV |U +X @X #X 3U ZV EW rV rV FW gV $X %X &X 7V *X =X -X 7V ;X rV rV >X ,X ZV 'X )X !X MW yV rV ~X >X rV rV CW {X yV MW ]X sV ^X /X (X _X :X <X [X }X |X 1X 1X 2X sV sV 2X rV rV rV }X 3X 4X 5X 6X 7X 8X rV 9X 0X aX bX cX VS KO 0R MO MO aR )Q |N ZS <Q :Q %T ;W #T $W $W dX $W eX fX gX hX iX jX kX lX mX nX oX pX gX pX *W QU QU qX #T #T rX gR <Q bR |N !Q /N 4L MO >Q ZO =Q HO US =L sX nR tX uX vX wX xX .P yX zX AX BX CX DX EX #V FX :W :W }T GX HX em IX JX KX =V LX MX NR (P NX OX PX QX RX SX TX UX VX WX KD (V s# XX fW YX ZX UL 4] `X Gl M' ",
-"89 )= )= 8; X# 4= Dy _} y/ Y s# 4) .Y 8v D+ m n e E+ +Y @Y mW jW jW jW mW mW #Y $Y %Y &Y *Y =Y -Y ;Y >Y >Y $Y %Y 3V ,Y 'Y )Y !Y 7V ~Y {Y gV ]Y ^Y 7V bV 7V |U ^Y gV /Y %U 7V fV }X (Y _Y gV :Y <Y 7V [Y }Y |Y yV yV yV yV 7V 1Y 7V yV yV yV 2Y gV rV sV 3Y 4Y 5Y 6Y 7Y gV 8Y 9Y 0Y aY yV bY yV cY sV rV dY eY FW fY gV 2Y yV yV yV gY hY sV sV iY 7V 8X yV yV jY kY bY yV lY -U mY nY DV 7V yV yV yV 2Y gV oY pY qY 7V rY vW 'X ZV yV yV yV sY tY gV uY vY wY xY yV rV sV sY yY SW `W zY yV AY BY 7V CY DY ZV EY FY GY HY yV IY JY KY LY FW sV rV yV CW xV MY NY yV OY PY QY 2X 7V RY SY TY UY !L VY 0R ;Q MO 4L ^N |N JU <Q `S %T #T $W $W $W pX WY pX oX XY XY XY YY ZY ZY ZY lX kX `Y XY XY `Y oX Z *W dX $W #W #T gR {Q .Z bR OO /N /N ,Q MO ;Q !N +Z US ,N =L =N >T @Z nR ,T #Z $Z +P %Z &Z ^T *Z =Z -Z ;Z >Z [T ,Z [T 'Z )Z !Z ~Z {Z ]Z ka ^Z zN |0 /Z zN OX (Z _Z :Z <Z [Z }Z |Z 1Z 2Z yQ s# 3Z 9 4Z 5Z ^% 4] 6Z 7Z H' ",
-"16 36 8Z 8; V# 6= 9Z l] o] Y s# XD ZD Py e m m Gi E+ 0Z aZ bZ bZ mW mW cZ #Y $Y %Y &Y mW *Y dZ eZ fZ gZ hZ iZ jZ kZ lZ mZ nZ oZ pZ nV sV sV sV sV 7V &X pZ nV sV sV sV sV 7V qZ rZ (X sV sV sV ~X 7V qY sZ tZ sV sV sV uZ CW vZ 7V wZ xZ dY yZ gV rV zZ sV sV yV rZ AZ xV sV sV sV rZ BZ CZ yV DZ sV rV EZ FZ GZ HZ gV uZ sV sV sV IZ JZ KZ LZ MZ 7V PW xZ NZ OZ PZ bY }X sV sV ~X xV QZ 7V RZ SZ TZ UZ gV VZ WZ XZ 7V YZ |U ZZ gV XZ `Z `Z `Z ` xV sV sV sV rZ .` rV sV +` @` #` $` %` yV &` *` 7V =` -` ;` (X >` ,` OY }X sV sV 4X qV '` sV rV )` !` UW ~` {` yV OW sV sV yV CW ]` ^` /` UY (` _` >Q ,Q aR ^N !Q OO iR `S gR ;W #W $W :` :` nX `Y `Y `Y <` [` [` }` |` 1` 1` }` 2` 3` [` 4` [` XY 5` oX hX *W eX #T RO gR {Q 6` |N OO )Q 7` 4L >Q -Q IO 'N ,N >N SU .N .N sX 8` 9` 0` WU hN a` AX ]W b` pJ <T )B c` [T <W d` Ba e` gm 'i 'i [7 f` f` g` LR h` kQ i` j` k` l` m` n` o` p` q` r` s# s` 9 t` u` ^% 4] v` =k L* ",
-"en ,k xq 8; w` x` 4~ x] sf y` s# xi ZD 0Z e m m Gi b Q+ z` A` A` $Y %Y $Y hZ hZ gZ %Y &Y &Y dZ fZ B` fZ hZ C` jZ kZ D` E` F` oP G` H` rV rV rV rV rV I` J` K` rV rV rV rV rV -U L` M` rV rV rV rV rV N` O` P` rV rV rV M` Q` R` rV S` T` T` U` V` tY rV rV rV W` X` Y` rV rV rV rV Z` `` ..X . .+ .@ .# .$ .% .& .V` rV rV rV rV * .= .- .; .> .rV , .T` ' .9Y ) .! .rV rV rV BW ~ .{ .rV ] .^ ./ .( .V` _ .: .DW rV < .vW [ .} .| .: .: .1 .2 .rV rV rV rV hY !U & .3 .4 .5 .6 .7 .)X 8 .9 .0 .rV a .b .c .rV d .e .f .rV rV rV rV g .h .i .j .k .l .m .n .o .AY rV rV rV MW p .q .r .s .t .u .v .>Q LO 4L !Q !Q |N 6` T ;W #T $W *W oX XY `Y [` 3` 4` 4` w .x .y .z .A .z .1` 1` x .x .B .w .[` [` C .XY 5` D .qX rX RO T {Q 6` |N [N /N 4L ~N !N [L HO ,N ,N SU =N E .F .G .=i )Z UU H .I .{w J .K .L .gN <T c` [T M .d` (c e` N .O .'i Fj A5 P .`9 Q .R .MR tQ S .T .,v U .V .o` W .q` r` s# X .Y .Z .` . ..4] ...+..H' ",
-",k Z| B2 8; kT L% 3~ x] o] Y s# xi C2 R+ U7 n m e i S+ @..#..#..$..A` $..%..A` gZ gZ $Y bZ fZ &..*..=..=..-..;..>..,..'..)..!..~..{..]..:G K; ^../..(..(.._..:..<..[..}..|..1..2..3..4..5..6..7..8..9..0..a..b..1..c..d..e..f..g..h..5Y i..5Y j..LZ k..h..l..m..n..o..p..q..T` r..s..s..t..f..t..u..T` 9Y v..g..' .u..0% w..x..y..z..' .A..B..C..D..m..E..m..F..G..H..I..BV H..J..K..J..aV L..M..wW F..N..O..tW P..Q..Q..R..R..S..T..T..U..V..W..W..W..9U 9U X..X..Y..Z..`.. +..+. +.`..-` ++.@+.#+.$+.%+.KY &+.*+.=+.-+.;+.>+.,+.'+.)+.!+.~+.{+.]+.^+./+.(+._+.:+.<+.:+.[+.}+.|+.1+.2+.3+.4+.5+.6+.LO 4L 3L /N |N 6` 7+. T rX 8+.eX gX 9+.0+.[` 4` w .x .x .a+.b+.c+.d+.e+.e+.f+.g+.c+.c+.c+.y .w .2` [` [` XY hX Z qX rX T T 7+.6` |N /N 3L ~N !N [L 'N 'N ,N =L SU >W >W G .Ea >T h+.i+.j+.k+.xG .V l+.m+.n+.o+.c` AL c` eg p+.,i hm q+.r+.;g 1W s+.z5 Q .MR t+.NN [Z u+.v+.w+.x+.Gw y+.z+.s# A+.B+.$] ~# C+.4] D+.E+.H* ",
-"Z| xq 4 8; F+.J% 5~ x] o] cn s# xi G+.l4 X+ m m 09 i 7 H+.I+.I+.J+.#..#..#..=..gZ gZ gZ fZ K+.=..%..%..C` ;..L+.,..F& M+.N+.O+.P+.Q+.R+.3$ bM a$ S+.T+.U+.V+.W+.X+.Y+.Z+.`+.`+. @..@. @.+@.@@.`+.#@.$@.%@.&@.*@.=@.-@.;@.>@.m..BV ,@.,@.X+.'@.)@.B..B..!@.!@.C..~@.{@.]@.^@.o../@.p..(@.5Y E..5Y m..m.._@.m..4Y :@.<@.- .u..f..[@.- .o..}@.|@.1@.2@.3@.<..4@.{U 5@.6@.7@.CV CV 9V 9V 9V zT zT 8@.9@.7@.0@.a@.b@.c@.d@.e@.f@.g@.c@.h@.i@.f@.j@.j@.j@.k@.l@.m@.n@.n@.o@.p@.p@.q@.r@.r@.s@.t@.u@.u@.v@.w@.x@.Uf y@.z@.A@.B@.C@.D@.PY PY E@.E@.(u F@.G@.H@.I@.J@.K@.L@.L@.M@.L@.N@.O@.P@.Q@.R@.S@.(L T@.{N U@./N (N OO 6` T %T #T dX gX XY <` [` w .w .y .b+.c+.V@.W@.X@.Y@.Z@.`@. #. #..#.+#.d+.c+.a+.1` x .w .<` 5` gX Z qX #T -W gR {Q PO /N 4L @#.`O `O 'N 'N ,N >N =L >W ##.*i Ea $#.%#.&#.h+.*#.=#.-#.;#.!W n+.yL :W >#.c` ,#.oL '#.,i 'i )#.!#.~#.ha P .{#.]#.^#./#.(#._#.:#.<#.[#.}#.|#.1#.s# 2#.3#.4#.Kw 5#.4] |A 6#.B! ",
-"4 K+ o] 8; @p J% 5~ C2 5 7#.s# HF G+.8#.m X+ n n e i 9#.0#.a#.0#.J+.J+.#..%..K+.K+.A` A` =..b#.;..b#.c#.I& ,..d#.e#.f#.g#.h#.i#.j#.k#.yC cE l#.OA :G m#.{I n#.!G o#.p#.q#.r#.s#.s#.B..t#.u#.*@.)G !G v#.w#.~I x#.y#./..(../..'U HW z#.S; 8S V+.A#.8G (..|@.B#.C#.D#.E; E#.F#.F#.'@.'@.G#.G#.<..X+.3@.3@.C#.H#.hV I#.J#.wW n..K#.~@.L#.M#.HW ;$ J; N#.J; bS ox dM V; $R O; aS O#.P#.O#.$R %R &R -R Q#.R#.N..S#.T#.U#.V#.W#.X#.Y#.Z#.6U Y#.Y#.`#.Y#.6U $..$.+$.+$.@$.`#.`#.#$.#$.$$.$$.%$.&$.*$.=$.-$.;$.GY >$.,$.'$.)$.!$.~$.{$.{$.]$.^$./$.($._$.:$.<$.[$.}$.|$.|$.1$.|$.2$.3$.4$.5$.6$.7$.8$.9$.|L 0$.a$.(N bR b$.cR rX qX D .5` <` [` w .y .a+.c+.W@.X@..#.c$.c$.Z@.d$.d$.Z@.e$.Z@.Z@.f$..#.d+.g+.b+.x .4` kX 5` hX *W PU QU -W T bR g$.^N MO lR h$.mR HO HO ,N i$.##.##.*i j$.k$.%#.l$.m$.n$.o$.ou p$.q$.r$.s$.pN t$.[W =i u$.'#.v$.uh w$.x$.y$.z$.A$.A$.B$.UR C$.D$.E$.F$.G$.H$.I$.2Z J$.s# K$.Y .4#.Kw Yo 4] L$.M$.N$.",
-"1 B2 K+ 8; @p J% 3~ My Z| 7#.s# O$.P$.0Z e f m 09 e Q$.9#.I+.I+.I+.I+.#..#..%..$..$..A` A` C` R$.S$.;..T$.U$.V$.e#.W$.X$.Y$.m< m& Z$.`$.~z cx %.uC sC X; .%.+%.@%.#%.#%.$%.%%.&%.%%.*%.$%.=%.5E {I -%.9E 0E NA ;%.~$ ~$ )$ #U {$ EP e$ ^$ L; ~$ >%.#U a$ J; T+.J; T; Q; R; ,%.'%.7@.)%.!%.6@./..8G 6@.7@.6@.6@.~%.9@.8@.L#.{%.]%.^%./%.(%.U; ~$ ~$ {$ f$ _%.:%.<I <I _I <%.-R -R [%.}%.|%.ET fM gK NP 1%.2%.2%.lS mS mS 3%.3%.3%.4%.4%.5%.6%.7%.8%.9%.0%.a%.b%.c%.6%.d%.e%.f%.g%.h%.i%.h%.j%.k%.,$.,$.l%.m%.n%.o%.p%.q%.r%.s%.t%.u%.v%.w%.x%.y%.z%.A%.B%.C%.D%.3$.3$.C%.E%.F%.G%.H%.I%.J%.K%.:L L%.M%.N%.a$.O%.(N 7+. T rX dX fX 5` 9+.P%.Q%.R%.S%.T%.U%.V%.V%.W%.X%.X%.Y%.Z%.Y%.Y%.`%.Y%.X%. &.V%..&.+&.R%.@&.#&.:` :` 8+.$T :Q <Q ~Q $&.OO )Q 'Q LO lR !N mR HO HO HO mR *i j$.sX %&.'L TS &#.&&.*&.=&.nu -&.fN yL ;&.>&.,&.Xm '&.Ej _j )&.Fj )#.!&.Ee ~&.{&.]&.^&./&.(&._&.:&.<&.[&.dt }&.|&.s# 1&.2&.3&.Kw Yo 4] 4&.5&.6&.",
-"4 K+ o] 8; an 7&.a~ o] 7v K# s# HF 8&.0Z f f Sl Ul f U+ 9&.0#.0#.0#.I+.#..#..*..*..*..=..=..b#.jZ 0&.T$.,..a&.b&.L= '& N= c& s, c&.d&.e&.5s )z ax %u OT qC f&.f&.g&.g&.h&.i&.i&.U+.f&.j&.qC k&.0E l&.l&.l&.m&.*z l#.($ eK eK <I n&.fM o&.|$ ;z p&.3$ q&.N; ~$ r&.!$ !$ s&.t&.b$ u&.0$ S; 0S 8S 8S 8S 7S 8S 8S 8S 6S v&.w&.x&.x&.HW y&.z&.7$ V; ^$ eM LP A&.}$ B&.~R C&.D&.E&.<I <I <I 5O hK kM kK hI hI F&.mS mS nS G&.H&.I&.J&.K&.K&.H&.L&.L&.M&.N&.O&.P&.L&.L&.N&.Q&.Q&.R&.R&.S&.T&.U&.U&.V&.W&.m%.X&.Y&.Z&.`&. *..*.+*.+*.+*.@*.@*.#*.$*.%*.&*.**.=*.-*.;*.F%.>*.,*.'*.)*.!*.~*.{*.]*.^*./*.(*.L%._*.M%.:*.O%.(N b$. T rX qX D .<*.[*.}*.|*.|*.1*.2*.2*.3*.3*.3*.4*.4*.4*.4*.4*.4*.4*.4*.4*.3*.3*.5*.2*.|*.6*.7*.8*.9*.eN 0*.a*.b*.aR !Q [N !Q )Q 'Q ]N KO `O mR mR xj -T c*.d*.e*.%#.f*.g*.h*.i*.j*.k*.=&.l*.m*.pN n*.xL o*.=i p*.q*.-g yh r*.r+.!&.s*.t*.u*./P v*.w*.x*.x*.y*._#.z*.A*.B*.C*.s# D*.E*.F*.j* z> 4] G*.D! H*.",
-"Z| .1 4 8; C; N% a~ 0v I*.K# s# xi J*.0Z f f U7 +a g 8 9#.K*.0#.I+.J+.J+.J+.L*.L*.L*.J+.M*.N*.O*.Hf P*.Q*.'..R*.S*.u) l< x, T*.f& U*.DC V*.YQ 5G sC _G W*.X*.m#.Y*.Z*.qC k&.`*. =.+z QA .=.+=.@=.#=.$=.%=.+=.&=.$=.*=.==.-=.;=.-=.-=.>=.,=.'=.|I |$ <$ [$ )=.g$ !=.~=.~=.e$ {=.]=.U; 8$ 7$ 8$ ,$ bS bS b$ ,$ ,$ ,$ ,$ bS O; 9S aS bS 8$ ^=.V; e$ }O n&.fM 4O 5O kk 7O /=.Lf Lf 7O 0O (=._=.:=.<=.<=.pM [=.}=.}=.}=.|=.}=.|=.1=.2=.1=.3=.3=.4=.5=.5=.6=.6=.6=.6=.7=.8=.9=.0=.0=.a=.b=.c=.d=.d=.Z&.e=.f=.f=.g=.h=.i=.j=.j=.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=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.U=.V=.W=.X=.(` =Q aR 4N )Q Y=.'Q =T kR kR Z=.`=.-T d*. -..-.+-.bX h*.@-.@-.#-.$-.%-.QS &-.*-.bQ =-.--.=f ;-.>-.,-.'-.id Fj Lk )-.)-.!-.f` a' ~-.mF XB Mr /&.{-.]-.^-.yQ s# /-.(-._-.O[ Yo 4] >; :-.<-.",
-",k Z| .1 8; V# N% [-.C] G2 }-.s# xi (C 8#.n |k hb |-.|k i 9#.K*.0#.I+.L*.1-.2-.3-.3-.3-.4-.5-.6-.N*.N~ P*.x& 7-.8-.s& u) x, 9-.0-.a-.b-.c-.d-.e-.f-.g-.f-.h-.f-.f-.f-.f-.i-.e-.j-.k-.d-.l-.m-.n-.n-.o-.p-.p-.p-.p-.p-.o-.p-.q-.p-.q-.r-.r-.q-.s-.r-.r-.r-.r-.t-.u-.u-.v-.w-.x-.y-.x-.y-.z-.A-.B-.A-.A-.B-.B-.A-.A-.z-.z-.gO A-.C-.B-.B-.B-.z-.D-.x-.u-.w-.E-.t-.t-.F-.G-.H-.H-.G-.G-.G-.I-.I-.J-.K-.L-.M-.N-.O-.P-.Q-.R-.R-.S-.T-.T-.R-.S-.T-.T-.U-.T-.V-.W-.W-.W-.W-.V-.V-.X-.mU mU Y-.Y-.Y-.Y-.Z-.`-.`-.`-.`-. ;..;.+;.+;.@;.#;.#;.$;.%;.&;.*;.=;.-;.;;.>;.,;.';.);.';.);.);.!;.~;.{;.];.^;./;.(;._;.:;.<;.[;.};.|;.1;.2;.N=.=W rX 3;.4;.5;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.6;.7;.8;.9;.0;.TY a;.KO !Q [N 4N WO 'Q 5N ,Q `=.b;.c*.i$.5+..-.+-.f*.h*.c;.GU d;. J e;.$-.f;.g;.oN ;P h;.(c pL i;.-g -o -g Oe y$.j;.k;.Ta l;.0' mF m;.n;.9t o;.m;.UX q` p;.s# q;.r;.XR s;.t;.4] $; *} u;.",
-"0Z k4 en 8; V# 4= v;.+1 >s w;.s# :C eA x;.xf hb y;.Yc jb z;.9#.0#.0#.A;.#..B;.C;.2-.2-.D;.B;.E;.F;.G;.N~ P*.M+.H;.I;.J;.y, K;.0-.DC V*.L;.M;.N;.O;.X; W; X; X; %z 0E OA P;.SA ax xC 'z Q;.yC MT R;.S;.#=.%=.$=.+=.&=.%=.T;.U;.-=.-=.-=.h$ h$ 1$ [$ n&.n&.($ ($ g$ 5$ [O ^$ {$ V; dM U; 7$ ,$ 0$ P; V;.;$ Q; Q; P; 9S 0$ O; O; 9S z#.Q; Q; Q; S; ,$ $R dM V; {$ eM }O :I KP KP W;.X;.X;.NP Lf Y;.(R /R ^R Z;.`;. >.jS .>.+>.+>.+>.@>.#>.#>.|=.1=.4=.4=.4=.5=.$>.$>.%>.%>.$>.$>.$>.&>.&>.*>.=>.->.;>.;>.>>.Z&.,>.'>.)>.!>.@*.!>.~>.j=.k=.{>.]>.^>./>.(>._>.:>.<>.[>.}>.|>.1>.2>.3>.4>.5>.6>.7>.8>.9>.0>.a>.b>.c>.d>.};.e>.f>.g>.h>.i>.j>.k>.l>.m>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.n>.o>.p>.q>.r>.s>.t>.u>.7` 2N 2N 4N 5N `=.v>.v>.b;.xj (L w>.x>.y>.f*.z>.@-.@-.A>.B>.C>.D>.E>.VU F>.>&.o*.G>.H>.qL _j -o -g id I>.T9 bd ea th J>.aH ^A K>.XB L>.M>.N>.O>.p;.s# P>.Q>.R>.S>.^% 4] G* ); T>.",
-"Q+ @x @x 8; Y# R% hA F2 >s U>.s# e~ $x 7 hb Xc V>.yf jb f 9#.I+.I+.#..#..B;.W>.X>.D;.Y>.2-.E;.F;.G;.Hf Z>.M+.H;.W$.`>. ,.U*.a-.~z .,.M;.uC O;.+,.O;.<G =z NA O;.@,.#,.yC $,.%,.&,.*,.*,.*,.*,.=,.-,.;,.@=.>,.,,.,,.',.),.+=.-=.-=.|$ )=.!,.)=.n&.n&.n&.n&.n&.g$ 5$ }O e$ ~$ V; V; 6$ ,$ O; 0$ V;.;$ M#.,%.~,.{,.Q; Q; N#.J; ],.,%.{,.{,.{,.Q; S; bS ,$ 8$ ^=.dM V; nx ^,./,.,R KP (,.X;.5O _,.:,.<,.nS [,.},.|,.1,.2,.3,.3,. >.4,.4,.5,.6,.7,.7,.7,.8,.9,.0,.a,.b,.c,.d,.%>.%>.$>.e,.f,.g,.h,.i,.j,.j,.k,.l,.l,.m,.n,.p%.o,.p,.q,.r,.s,.t,.u,.v,.w,.x,.y,.z,.A,.B,.C,.D,.E,.F,.G,.H,.6>.I,.8>.J,.K,.L,.M,.N,.O,.P,.Q,.R,.S,.T,.T,.U,.V,.W,.X,.Y,.Y,.Z,.`,. '..'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.+'.@'.#'.$'.%'.&'.*'.='.-'.ZS [N lz Y=.Y=.Y=.bL kR ;'.u .>'.,'.+-.bX z>.@-.@-.''.)'.!'.`I B>.'W ~'.{'.o*.]'.^'./'.('._'.-o -g :'.Lk <'.['.}'.|'.1'.2'.Nr py 3'.L>.4'.Xj 5'.s# 6'.7'.8'.S>.yQ 4] :V ); T>.",
-"P+ S+ [ 8; 9'.xi 0'.>s Vc a'.s# `D B] T+ yf b'.b'.Xc c'.X+ d'.a#.0#.e'.f'.g'.h'.i'.i'.j'.E;.k'.F;.l'.Hf Z>.M+.'..m'.n'.o'.Wy p'..,.5G uC O;.q'.r'.uC O;.-z s'.'z XQ k#.t'.u'.v'.w'.x'.y'.*,.z'.A'.B'.C'.C'.D'.E'.E'.>,.%=.;=.-=.-=.-=.)=.)=.($ g$ 5$ }O ($ ($ g$ [O f$ {$ ~$ dM U; 8$ 0$ c$ 0$ P; ;$ ,%.'%.F'.M#.'U R; Q; Q; Q; M#.y#.F'.'%.M#.H; Q; N#.8S 0$ bS bS LV <U /,./,.,R G'.G'.KP H'.I'.lS J'.K'.L'.M'.M'.N'.O'.O'.O'.P'.Q'.4,.4,.7%.5,.R'.R'.S'.T'.U'.V'.W'.X'.Y'.Z'.`'. ). )..).+).h,.@).>>.>>.#).$).m,.%).&).*).=).-).;).>).,).').)).!).~).{).]).^)./).()._).:).<).F,.[).}).|).1).2).3).L,.4).5).6).7).8).9).S,.0).a).b).V,.W,.X,.Y,.c).d).p>.e).f).g).g).g).g).g).g).g).g).g).g).g).g).g).g).g).g).g).g).g).g).h).i).$'.j).k).l).m).YS SO SO n).aL o).cL p).q).r).5+.s)..-..-.bX h*.@-.@-.@-.)'.!'.e;.t).u).PI v).xL w).x).&c ld ('._j id `m y).z).A).B).C).D).E).Nr F).0t 3'.Aw G).H).s# I).J).K).L).M).4] .S qi N).",
-"d T+ T+ 8; $$ 4v .x i `0 O).s# G+.B] i Xc P).b'.P).y;.Q).R).S).T).T).U).V).V).V).U).U).W).X).Y).Z).`). !..!.+!.@!.#!.$!.%!.&!.d-.j-.*!.d-.d-.k-.k-.d-.c-.p'.a-.=!.=!.-!.-!.;!.>!.,!.'!.)!.!!.~!.~!.{!.o-.o-.o-.o-.o-.o-.n-.]!.q-.q-.r-.r-.^!./!.t-.u-.v-.t-.v-.u-.w-.x-.x-.z-.z-.A-.A-.B-.B-.B-.(!._!.:!.<!.<!.<!.[!.(!.(!.[!.[!.<!.<!.<!.<!.<!.[!.C-.C-.A-.z-.z-.D-.}!.|!.1!.E-.E-.2!.2!.E-.3!.4!.5!.6!.7!.8!.8!.9!.0!.0!.0!.a!.b!.b!.c!.c!.d!.c!.c!.e!.e!.f!.g!.f!.e!.e!.h!.i!.j!.j!.j!.j!.k!.l!.m!.m!.m!.m!.n!.v%.o!.p!.=).q!.;).>).r!.s!.t!.u!.v!.w!.x!.x!.y!.z!.A!.B!.C!.D!.E!.F!.G!.H!.I!.J!.K!.L!.M!.N!.O!.P!.Q!.R!.0).0).S!.V,.W,.X,.Y,.T!.U!.q>.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.j).D@.V!.W!.X!.(Q Y!.Z!.o).Y=.kR `!. ~..~.7$.7$..-.S@.bX z>.z>.@-.@W +~.@~.e;. J #~.$~.NI %~.&~.*~.[H =~.-~.|j ;~.>~.N .Ee T9 B5 ,~.'~.)~.py !~.~~.{~.Mr ]~.^~.s# /~.Q>.(~._~.^% 4] :~.<~.[~.",
-"09 ( m 8; *$ ZD F2 }~.Tl |~.s# eA C] k Xc P).1~.2~.3~.4~.5~.6~.7~.8~.U).9~.0~.0~.a~.b~.b~.c~.d~.l'.e~.f~.g~.h~.i~.j~.k~.|K d-.5G l~.'z m~.'z TA cx !z XA EC Z$.n~.o~.p~.q~.r~.s~.t~.u~.v~.w~.x~.y~.z~.A~.A~.A~.z~.B~.C~.D~.E~.>=.-=.&=.)=.)=.)=.F~.g$ G~.H~.H~.[O {$ {$ U; 8$ a$ O; 0$ c$ I~.;$ {,.{,.8@.8@.J~.J~.8@.K~.8@.'%.8@.J~.J~.L~.L~.L~.F'.Q; J; 0$ bS ^=.LV M~.M~.M~.^,.+B M~.N~.MV O~.P~.Q~.R~.S~.T~.T~.U~.V~.V~.W~.X~.P'.P'.P'.Y~.Z~.Z~.`~. {..{.+{.@{.XV #{.${.%{.&{.-$.*{.={.~$.~$.-{.;{.!$.>{.,{.'{.){.!{.!{.~{.{{.]{.^{./{.({._{.:{.<{.[{.}{.|{.|{.1{.2{.A!.3{.4{.5{.6{.F!.7{.8{.9{.0{.a{.b{.c{.d{.e{.f{.g{.h{.i{.j{.V,.W,.X,.Y,.k{.l{.m{.n{.o{.p{.q{.r{.r{.r{.r{.r{.r{.r{.r{.r{.r{.r{.r{.r{.r{.r{.q{.q{.q{.s{.t{.u{.v{.w{.x{.^L 3N y{.z{.n).o).A{.B{.C{. ~.D{.7$.E{.F{.G{.A>.h*.@W @-.@-.PS J H{. J I{.J{.NI K{.L{.M{.*c N{.-c Re O{.>~.Fj T9 T9 ~&.6t P{.Q{.R{.*v S{.at T{.U{.V{.s# W{.X{.Y{.Z{.`{.4] ]..].=} ",
-",h c'.c'.8; +].eA l4 Ki 5e @].s# $x 8v `0 #].b'.$].%].&].4~.*].=].=].-].U).0~.;].a~.b~.b~.b~.c~.N*.>].x& g~.,].s) 1p XA L;.'].e-.)].'z m~.m~.'].!].~].{].Vy Vy SH ]].PH ^]./].(]._].:].<].[].}].|].1].2].3].3].3].2].4].@=.5].;=.6]._$ _$ G~.7].7].g$ 8].9].~=.{=.{=.U; 6$ 8$ ,$ a$ O; 0$ 0$ V;.;$ {,.M#.8@.J~.0].CV J~.J~.J~.D#.D#.0].3@.a].L~.L~.8@.M#.'U R; 7S 0S bS m6 m6 b].M~.m6 c].b].d].e].f].g].h].i].j].j].k].k].l].l].m].m].V~.V~.V~.n].o].p].q].r].r].s].r].t].u].v].${.FY w].x].&'.y].y].y].z].z].A].B].C].D].E].F].G].H].I].J].K].L].M].N].O].O].P].Q].R].S].T].U].V].W].4{.X].Y].7{.Z].`]. ^..^.+^.@^.#^.$^.%^.&^.h{.b).V,.W,.X,.Y,.*^.=^.-^.;^.>^.,^.'^.)^.!^.!^.!^.!^.!^.!^.!^.!^.!^.!^.!^.!^.!^.!^.~^.{^.V..cU jU qU A@.]^.^^.=Q n)./Q /Q TO /^.]N |L `!. ~.K%.(^._^.:^.:^.<^.''.[^.@-.}^.#~.|^.H{.1^.2^.3^.4^.5^.6^.7^.eF N{.8^.9^.qo 0^.>~.a^.]j b^.c^.d^.e^.f^.g^.at h^.m` i^.j^.s# k^.l^.m^.n^.o^.4] p^.q^.r^.",
-"yf s^.s^.8; t^.u^.l4 a9 v^.G~.s# w^.x^.56 y^.z^.A^.A^.3~.B^.C^.D^.E^.F^.G^.T~ H^.I^.J^.K^.=^ 6-.L^.Uq M^.N^.O^.P^.Q^.R^.S^.T^.U^.V^.V^.W^.W^.W^.X^.Y^.Z^.`^. /../.NH +/.~K %K /].@/.#/.$/.%/.&/.*/.B9 =/.=/.=/.=/.=/.-/.[a -/.-/.;/.>/.,/.'/.)/.!/.)/.~/.{/.>/.]/.^/.N#.S; 9S O; 9$ 0$ 0$ c$ I~.V;.;$ {,.'%.D#.J~.0].0].J~.J~.0].J~.J~.0].3@.C#.TT //.(/._/.:/.</.[/.}/.|/.|/.|/.|/.|/.}/.|/.}/.}/.1/.2/.3/.4/.5/. g 6/.re 7/.7/.7/.7/.re 8/.8/.7/.7/.7/.7/.9/.9/.9/.9/.0/.a/.b/.CU &j ;+.C@.c/.d/.d/.e/.f/.A].g/.g/.h/.i/.j/.k/.l/.l/.m/.n/.o/.!f p/.q/.r/.r/.#o s/.t/.u/.u/.u/.%o v/.w/.x/.y/.z/.H!.J!.A/.b{.B/.C/.#^.$^.%^.D/.E/.F/.V,.W,.X,.Y,.G/.f).H/.I/.'^.J/.K/.L/.M/.N/.N/.N/.N/.N/.N/.N/.N/.N/.N/.N/.N/.O/.P/.Q/.5=.R/.V&.S/.T/.U/.V/.W/.X/.RO SO g$.Y/.Z/.`/. (..(..~.(^.+(.:^.@(.#(.$(.%(.&(.^^.*(.=(.-(.$J I{.;(.>(.,(.'(.)(.!(.~(.{(.>c ](.^(.20 /(.((._(.:(.<(.[(.}(.py |(.h^.1(.2(.3(.s# 4(.5(.6(.dT 7(.4] 8(.9(.H* ",
-"b'.%].%].8; 0(.B] 7 o a(.',.s# dv #1 Tl z^.b(.A^.A^.&].1b c(.=].E^.9~.d(.e(.I^.I^.I^.f(.N*.N~ g(.h(.i(.j(.k(.l(.m(.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.n(.o(.p(.q(.r(.s(./].t(.u(.v(.w(.i(.x(.k(.y(.5;.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.z(.A(.B(.C(.D(.ZT E(.R=.F(.G(.H(.I(.8@.R; 9S 7$ 8$ O; O; 0$ 0$ J; ;$ ,%.M#.8@.D#.9@.8@.0].0].D#.8@.0].J(.K(.L(.j(.k(.l(.5;.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.M(.N(.O(.P(.Q(.R(.S(.T(.U(.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.V(.W(.X(.Y(.Z(.`(. _.._.+_.@_.d/.e/.f/.e/.g/.#_.$_.%_.&_.*_.=_.-_.;_.j(.k(.>_.5;.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.M(.N(.O(.,_.V].6{.'_.A/.b{.B/.C/.#^.)_.!_.~_.{_.]_.V,.W,.X,.Y,.^_./_.(_.__.m@.a%.:_.<_.[_.}_.}_.}_.}_.}_.}_.}_.}_.}_.}_.}_.}_.|_.1_.2_.3_.4_.5_.6_.aX a;.-Q 4L 7_.8_.OO ^N 3L @#.`/. (.:L 9_.0_._^.:^.#(.a_.b_.c_.c_.d_.e_.f_.g_.=(.A>.h_.>(.,(.i_.z8 j_.k_.l_.{c m_.n_.o_.}7 }7 p_.q_.r_.s_.t_.u_.v_.cq 1(.w_.x_.s# y_.z_.Y{.A_.B_.4] C_.D_.B* ",
-"E_.F_.F_.8; G_.H_.0 4e I_.',.s# J_.N+ .a K_.K_.K_.K_.L_.M_.3~.-].-].N_.O_.S~ f(.P_.f(.G;.Hf Q_.R_.S_.T_.U_.4;.V_.W_.X_.X_.X_.X_.X_.X_.X_.X_.X_.X_.Y_.Z_.`_. :.S;..:.+:.@:.#:.$:.S_.%:.U_.F(.V_.W_.X_.X_.X_.X_.X_.X_.X_.&:.7;.*:.6;.=:.-:.;:.>:.,:.<< ':.):.!:.~:.{:.]:.~@.0].v&.7$ 7$ 8$ 8$ 7$ b$ 0$ P; ;$ {,.M#.M#.{,.,%.F'.8@.9@.K~.^:./:.S_.T_.U_.(:.V_.&:.X_.X_.X_.X_.X_.X_.X_.X_._:.::.*:.<:.[:.}:.|:.R~.1:.&:.2:.3:.z(.7;.&:.X_.X_.X_.X_.X_.X_.X_.X_.X_.X_.X_.&:.&:.<:.o(.4:.5:.6:.7:.8:.9:.@_.e/.0:.f/.g/.#_.a:.%_.b:.c:.d:.S_.T_.U_.(:.V_.&:.X_.X_.X_.X_.X_.X_.X_.X_.X_.X_.e:.f:.g:.h:.i:.A!.|).A/.N,.j:.k:.e{.f{.l:.m:.n:.o:.V,.W,.X,.Y,.p:.q:.r:.s:.t:.u:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.v:.w:.x:.vN y:.z:.A:.B:.C:.D:.O%.E:.@#.1L [L C{..(..~.(^.F:.:^.a_.b_.G:.H:.R@.a_.I:.J:.K:.u).L:.>(..L i_.M:.!7 N:.]c ]c @0 m_.O:.P:.Q:.R:.S:.'~.D).T:.U:.V:.W:.X:.Y:.Z:.s# `:. <..<.Ag +<.4] @<.#<.$<.",
-"%<.&<.*<.8; G_.H_.a =<.-<.',.s# ;<.><..a K_.K_.K_.L_.)h Wl ,<.'<.h'.)<.d(.S~ S~ f(.G;.!<.d6 ~<.{<.>_.]<.^<./<.(<._<.:<.:<.:<.:<.:<.:<.:<.:<.:<.:<.<<.q>.$'.[<.}<.|<.1<.2<.3<.T(.m(.4<.5<.6<.7<.8<._<.9<.:<.:<.:<.:<.9<.0<.a<.b<.c<.d<.e<.f<.g<.h<.3% i<.j<.k<.l<.m<.n<.o<.,@.R; p<.7$ 8$ 7$ $R 7$ 8$ O; q<.],.Q; ],.T; S; Q; ,%.~,.r<.3<.T(.5;.s<.t<./<.u<._<.:<.:<.:<.:<.:<.:<.:<.v<.w<.x<.y<.z<.A<.$'.B<.C<.D<.W,.E<.F<.G<.H<.(<.9<.:<.:<.:<.:<.:<.:<.:<.:<.9<.I<.J<.K<.L<.M<.N<.O<.P<.0;.Q<.R<.S<.T<.f/.e/.g/.C].C].i/.U<.3<.T(.U(.V<.W<.X<.Y<._<.:<.:<.:<.:<.:<.:<.:<.:<.:<.:<.Z<.`<.$'. [..[.+[.[).@[.5).#[.$[.e{.%[.0).m:.n:.o:.V,.W,.X,.Y,.&[.*[.=[.Y_.3:.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.n(.M(.-[.;[.>[.,[.'[.)[.:*.![.![.~[.A:.{N {N (.C{. ~..~.7$.2^.J%.<^.b_.{[.][.^[./[.([._[.:[.*(.L:.<[.,(.[[.}[.|[.1[.2[.3[.4[.5[.j8 6[.W6 `9 7[.8[.Q{.9[.L>.0[.a[.b[.c[.Y$ s# d[.e[.f[.g[.h[.4] i[.j[.k[.",
-"*<.*<.l[.8; K# H_.a =<.a(.),.s# ;<.m[.6e n[.o[.p[.q[.r[.s[.t[.b~.b~.u[.v[.w[.x[.Ti Hf e#.y[.):.F(.z[.A[.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.B[.C[.T;.}$ D[.E[.3:.F[.G[.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.H[.I[.J[.K[.L[.f<.M[.N[.O[.P[.Q[.R[.S[.m<.T[.r..U[.R; 7$ ~$ V; V; {$ ~$ 7$ 8$ 9S T; 9S 9S 0$ O; O; ],.V[.W[.X[.V_.Y[.Z[.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.`[. }..}.8<.$'.+}.@}.#}.$}.Q[.%}.&}.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.e<.*}.z<.=}.-}.uS ;}.Q<.._.>}.f/.A].,}.,{.'}.)}.!}.E[.3:.~}.{}.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.]}.^}./}.(}.K!.+^._}.8).e{.:}.0).n:.<}.[}.V,.W,.X,.Y,.Y,.}}.|}.1}.l>.E<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.4<.2}.3}.&}.4}.5}.6}.7}.G=.d>.d>.8}.9}.0}.)[.a}. ~.D{.(^.b}.c}.:^.e_.c_.R@.d}.e}.f}.g}.h}.I:.e_.+W i}.j}.k}.l}.m}.n}.o}.p}.q}.&7 r}.h5 ]&.s}.t}.u}.Q{.v}.4'.K>.w}.X:.Y:.x}.s# y}.z}.A}.B}.C}.4] D}.E}.F}.",
-"*<.G}.G}.8; K# H}.a =<.I}.),.s# ;<.Bq 6e J}.K}.L}.M}.N}.O}.v^.P}.P}.Q}.Y).R}..- Z= M+.A4 S}.6;.T}.U}.$'.V}.W}.W}.X}.Y}.Z}.`}. |..|.+|.+|.+|.+|.+|.@|.#|.$|.%|.C[.&|.*|.=|.-|.;|.>|.$'.,|.f<.'|.)|.!|.~|.~|.!|.!|.!|.!|.)|.{|.]|.^|./|.L[.f<.(|._|.:|.P[.Q[.R[.S[.m<.<|.[|.}|.,%.7$ EP V; EP EP {$ V; $R 7$ 7$ 8$ 7$ 8$ 8$ 8$ 9S :/.||.1|.2|.q>.3|.4|.5|.6|.7|.8|.8|.8|.9|.8|.8|.8|.9|.8|.Tf 0|.a|.b|.$'.c|.d|.B<.$}.Q[.e|.f|.g|.h|.i|.6|.j|.k|.l|.j|.j|.j|.m|.m|.j|.l|.n|.o|.p|.q|.^|.r|.s|.t|.u|.v|.+_.d/.;{.w|.x|.y|.z|.||.W(.A|.Z[.B|.V}.C|.D|.D|.E|.F|.G|.G|.E|.E|.E|.H|.H|.I|.I|.J|.K|.L|.M|.N|.O|.P|.5).C/.P!.Q|.R|.h{.S|.T|.U|.V,.W,.X,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.Y,.V|.W|.i).s{.X|.Y|.4>.a>.Z|.`|. 1..1.b>.+1.@1.0_.#1.+(.c}.@(.#(.a_.c_.R@.d}.d}.f}.g}.$1.%1.e_.&1.*1.*1.=1.l}.-1.;1.>1.,1.1[.%7 %7 '1.)1.6[.!1.~1.FD v}.L>.{1.V:.]1.dq Z:.s# /~.^1./1.(1._1.4] :1.<1.[1.",
-"}1.|1.}1.8; K# 11.d yf L_.+=.s# 21.Bq gb J}.31.41.51.61.71.a(.81.91.01.a1..- L~ b1.c1.d1.e1.f1.g1.h1.i1.j1.k1.l1.m1.n1.o1.p1.q1.r1.s1.t1.u1.v1.r1.w1.x1.y1.z1.A1.B1.C1.*:.D1.E1.$'.F1.G1.H1.I1.J1.K1.L1.M1.M1.M1.M1.N1.O1.P1.Q1.4:.R1.L[.f<.S1.T1.U1.P[.Q[.R[.S[.m<.V1.W1.X1.Q; {=.8].5$ 5$ !=.EP V; V; Y1.U; 7$ 8$ 7$ V; dM aS C1.*:.l>.Z1.`1.9|. 2..2.+2.@2.#2.$2.%2.%2.&2.$2.%2.%2.*2.=2.-2.;2.Y<.$'.>2.,2.'2.$}.Q[.)2.$'.5|.!2.~2.{2.]2.^2./2.(2._2.:2.<2.[2.}2.|2.12.22.32.42.52.T!.62.72.82.92.02.c/.a2.b2.b2.c2.d2.6;.e2.f2.f|.g2.h2.i2.j2.k2.l2.m2.m2.n2.n2.o2.p2.q2.r2.s2.t2.u2.v2.w2.x2.y2.[).z2.+^.d{.P!.f{.A2.m:.S|.B2.C2.D2.E2.F2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.G2.H2.I2.x<.J2.K2.Y,.V|.W|.i).L2.M2.N2.O2.K,..1.5).P2.4).Q2.R2.S2.T2.B=.U2.V2.I%.I%.W2.f}.X2.X2.d}.Y2.g}.Z2.`2. 3..3.JI JI +3.@3.-1.;1.#3.$3.%3.&3.'1.*3.=3.-3.;3.'A RB RB >3.,3.'3.)3.dq !3.s# ~3.{3.]3.^3./3.4] (3.j[._3.",
-":3.}1.G}.8; K# <3.i [3.L_.+=.s# 21.#1 a9 K_.}3.|3.13.23.33.43.53.P}.63.73.83.e#.W$.`>.93.03.D1.a3.b3.c3.d3.a> e3.f3.g3.h3.i3.j3.k3.l3.l3.l3.m3.m3.n3.o3.p3.q3.r3.k6 s3.Y_.t3.K[.u3.v3.8|.!|.Z}.w3.x3.y3.z3.z3.A3.A3.y3.B3.C3.D3.E3.F3.L[.f<.G3.H3.I3.P[.Q[.R[.S[.m<.J3.K3.L3.P; M3.)=.g$ g$ g$ 7].5$ N3.8].e$ {$ {$ EP f$ {=.O3.P3.Q3.R3.q>.S3.T3.U3.#2.V3.W3.X3.dY EZ # .$ .$ .$ .Y3.Z3.`3.$}. 4.Y<.$'.>2..4.'2.$}.Q[.+4.@4.#4.$4./2.%4.&4.RZ I/.*4.R=.5;.4:.=4.-4.;4.>4.,4.'4.)4.!4.K2. }.~4.{4.]4.^4./4.a2.(4._4.:4.P3.Q3.t3.e|.<4.[4.}4.|4.14.24.34.34.34.34.44.54.64.74.84.94.04.a4.b4.c4.d4.z!.|).A/.5).e4.f4.e{.f{.g4.m:.B2.U|.h4.i4.@4.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.j4.e|.c).Y,.K2.k4.`<.l4.m4.n4.o4.p4.q4.a{.r4.s4.3).t4.u4.v4.w4.x4.y4.z4.A4.z=.X2.B4.C4.d}.D4.g}.E4.F4.G4.H4.JI JI +3.I4.-1.J4.K4.L4.M4.N4.O4.P4.Q4.R4.S4.T4.T4.Dw U4.oy g^.v_.w_.g> s# K$.K$.V4.W4./3.4] X4.Y4.Z4.",
-"`4. 5.l[.8; }-.7v )s .5.+5.;=.s# @5.#5.o $5.%5.&5.*5.=5.-5.Bf ;5.>5.,5.73.V$.'5.)5.!5.~5.m>.l>.{5.]5.t3.^5.4;.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.U=.V=.W=./5.(5._5.:5.<5.[5.}5.c<.T}.*:.|5.T=.T=.T=.T=.T=.T=.T=.T=.5;.k(.T(.2:.15.25.L[.f<.S1.35.U1.P[.Q[.R[.S[.m<.45.H3.55.D(.!,.+=.+=.&=.&=.+=.',.!,.,,.!,.65.N3.9].G~.75.85.:5.95.05.$'.f<.a5.%2.b5.T` wW ,@.c5.G#.G#.c5.c5.c5.d5.n..e5.4:.f5.Y<.$'.g5.h5.'2.$}.Q[.i5.i).j5.k5.l5._ .m5.n5.o5.p5.m(.q5.r5.s5.t5.u5.v5.w5.x5.y5.e|.z5.A5.B5..$.C5.92.D5.-{.E5.F5.G5.:5.15.H5.p:.I5.J5.V_.|5.T=.T=.T=.T=.T=.T=.T=.T=.T=.n(.o(.p(.K5.L5.M5.N5.O5.(}.I!.P5.a{.Q5.R5.#^.f{.a).S5.B2.T5.U5.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.f<.;:.-}.*[.V5.W5.~4.$'.l4.X5.G].Y5.Z5.L!.a{.0{.9{.`5. 6..6.+6.G,.@6.#6.2>.1>.$6.x=.H%.%6.%6.&6.*6.Z2.g}.f}.=6.-6.JI ;6.&#.>6.,6.'6.)6.!6.$3.~6.'1.'1.{6.sF ]6.^6./6.Nr XB py 0[.}&.r` s# (6._6.:6.V4.<6.4] [6.}6.|6.",
-"16.}1.:3.8; }-.dP Vl 26.36.;=.s# j~ 46.o $5.%5.&5.56.66.76.86.;5.01.96.73.4& 06.I;.a6.b6.c6.f5.d6.e6.f6.D1.!:.g6.g6.g6.g6.g6.g6.g6.g6.g6.<:._:.z(.7;.8;.9;.h6.i6.j6.k6.2}.l6.m6.n6.4<.g6.::.::.::.::.::.::.::.::.::.o6.6;.::.p6.q6.F2.L[.f<.r6.s6.t6.P[.Q[.R[.S[.m<.45.u6.v6.w6.),.U;.U;.x6.U;.U;.U;.y6.y6.',.G~.z6.@].!,.A6.r<.k6.2}.F2.$'.f<.B6.C6.- .>U P#.&R EP d$ D6.D6.U; Y1.8$ E6.F6.Q[.q6.G6.$'.H6.I6.J6.$}.Q[.i5.i).f<.K6.L6.+U l@.M6.N6.O6.E<.P6.<<.-^.Q6.R6.S6.T6.U6.V6.W6.!4.c). }.~4.X6.Y6.EU Z6.E5.`6. 7.k6.2}.l6.m6.H5.2}..7.g6.g6.g6.g6.g6.g6.g6.g6.g6.g6..7.[:.+7.@7.#7.$7.+[.C!.|).J!.r4.L!.+^.f4.%7.f{.S,.0).m:.&7.*7.=7.-7.1X 2 .;7.'^.'^.'^.'^.'^.'^.'^.'^.'^.'^.'^.'^.'^.'^.'^.'^.'^.>7.,7.'7.=[.=[.{5.)7.A<.$'.!7.X5.~7.{7.]7.Z|.5).A/.9{.^7./7.(7._7.:7.:>.:>.:>.<7.[7.}7.|7.G%.17.27.37.47.57.H%.67.77.JI ;6.&#.>6.87.97.07.a7.$3.b7.c7.b5 d7.e7.+C QX /A f7.Nr g7.h7.i7.j7.s# f7 _6.A' k7.l7.4] m7.[1.n7.",
-"o7.o7.p7.8; w6.q7.r7.s7.t7.U;.s# cv u7.v^.o[.v7.w7.x7.y7.z7.86.;5.>5.A7.73.B7.C7.06.D7.PD G/.E7.e<.F7.>|.G7.H7.h1.h1.h1.h1.h1.h1.h1.h1.I7.J7.K7.L7.a|.M7.q>.N7.O7.P7.=[.k6.Q7.R7.Y<.&}.S7.`[.`[.`[.`[.`[.`[.`[.`[.`[.Z<.T7.9;.U7.p:.i5.L[.f<.V7.W7.X7.P[.Q[.R[.S[.m<.Y7.Z7.`7. 8..8.+8.@8.#8.#8.E~.#8.#8.E~.$8.&=.!,.z6.h$ N3.r<.%8.&8.i5.f|.*8.=8.-8.K..%R gK kK ;8.i$ kK gS kK jK hS >8.,8.2}.q6.f).$'.'8.)8.!8.$}.Q[.i5.i).*8.~8.{8.Q..]8.Y#.:m x:.Q[.^8./8.-^.(8._8.jU :8.<8.[8.}8.|8.18.A5.B5..$.28.38.48.58.68.78.1}.k6.Q7.R7.(<.88.H7.98.h1.h1.h1.h1.h1.h1.h1.h1.h1.08.$'.$'.a8.b8.c8.]).d8.e8.f8.g8.5).c{.j:.R5.h8.f{.0).h{.i8.j8.k8.l8.m8.n8.o8.p8.q8.q8.q8.q8.q8.q8.q8.q8.q8.q8.q8.q8.q8.q8.r8.r8.s8.t8.u8.7;.v8.O<.q:.f).$'.w8.m4.~7.x8.y8.z8.c{.A8.B8.C8.Z].D8.X].E8.F8.G8.{).H8./).%*.I8.o=.,*.J8.K8.L8.M8.N8.O8.x{.x{.P8.}^.Q8.[c R8.S8.a7.T8.U8.V8.&3.W8.@C X8.+C h7.*v Y8.Z8.XB `8. 9.s# .9.+9.4Z @9.+<.4] m7.#9.$9.",
-"o7.%9.&9.8; w6.yt Wl *9.=9.U;.s# cv bv Wc -9.;9.>9.,9.y7.'9.)9.!9.;5.~9.{9.]9.4& C7.^9./9.p|.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.98.(9.c).9;.$'._9.z1.:9.$}.Q[.<9.H7.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.f|.[9.J[.}9.L[.f<.|9.19.29.P[.Q[.R[.S[.m<.39.Z7.E#.49.59.69.79.79.79.89.89.l$ #8.99.09.a9.a9.a9.b9.c9.=[.Q[.i5.i).*8.d9.e9.x&.ET {R f9.o$ n$ n$ m$ n$ 6I {R g9.h9.o(.F<.i9.j9.~|.k9.l9.$}.Q[.i5.i).*8.m9.n9.l@.6U o9.p9.x:.Q[.^8./8.-^.q9.r9.s9.t9.r].u9.v9.w9.x9.c). }.~4.y9.z9.02.A9.B9.C9.$}.Q[.<9.H7.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.D9.E9.F9.G9.H9.I9.J9.K9.g8.L9.M9.N9.O!.Q!.O9.A2.P9.Q9.R9.S9.T9.U9.V9.W9.X9.X9.X9.X9.X9.X9.X9.X9.X9.X9.X9.X9.X9.X9.Y9.Z9.`9. 0.k(..0.X,.&[.q|.+0.@0.#0.$0.%0.&0.*0.=0.c>.4).-0.0>.p4.;0.>0.,0.4{.'0.)0.!0.~0.{0.]0.^0.%*./0.3B (0._0.:0.<0.[0.}0.|0.10.20.30.40.50.60.70.$3.80.90.00.a0.6* b0.c0.v_.!~.!~.XB d0.e0.s# f0.g0.h0.i0.^% 4] j0.k0.l0.",
-"m0.m0.n0.8; o0.p0.q0.r0.s0.x6.s# cv bv t0.u0.v0.w0.x0.y7.y0.)9.z0.;5.66 {9.J& A0.96.B0.C0.~5.D0.E0.F0.G0.H0.I0.G0.J0.J0.K0.K0.L0.M0.G0.N0.z3.O0.P0.Q0.b|.$'. |.R0.S0.$}.Q[.T0.$'.>2.U0.!|.Z}.@|.V0.W0.V0.X0.@|.@|.@|.+|.Z}.Y0.Z0.`0. a.L[.f<..a.+a.@a.P[.Q[.#a./8.m<.$a.%a.&a.|~.*a.=a.-a.;a.;a.>a.,a.j$ 'a.)a.!a.4;.4:.~a.:9.{a.$}.Q[.}9.]a.n{.^a./a.(a.}I _a.nK nK nK nK dO nK eO n$ 4h :a.X_.~}.f|.<a.[a.}a.|a.$}.Q[.i5.i).*8.m9.1a.h@.2a.3a.p9.x:.Q[.^8./8.-^.4a.+` 5a.r].#{.6a.b ..r F2.T!.7a.B5..$.8a.IY w].B9.78.$}.Q[.9a.0a.aa.ba.ca.da.ea.fa.fa.ga.ha.ha.ha.ha.ia.ia.ja.ka.la.ma.na.oa.pa.qa.ra.sa.g8.ta.ua.va.wa.e{.Q!.S,.xa.xX ya.za.Aa.Ba.Ca.Ca.Ca.Da.Da.Da.Da.Da.Da.Da.Da.Da.Da.Da.Da.Da.Ea.Fa.Ga.R=.T=.J5.Ha.z5.Ia.$'.i1.Ja.Ka.>).La.Ma.Na.Z|.A8.f8.Oa.p4.Pa.Qa.Ra.Sa.5{.A!.U].Ta.Ua.Va.Wa.w!.Xa.Ya.Za.`a. b..b.+b.@b.#b.$b.''.%b.30._0 &b.*b.=b.-b.;b.>b.k* ,b.Z{ 'b.b[.)b.!~.!b.~b.{b.s# ]b.^b./b.s;.(b.4] _b.:b.<b.",
-"[b.}b.}b.8; |b.^s 1b.2b.3b.E~.s# #1 ln 4b.5b.6b.7b.8b.y7.9b.0b.z0.ab.;5.O_.;5.;5.bb.63.U$.cb.7I db.eb.fb.gb.hb.ib.[v ib.jb.kb.lb.mb.nb.ob.pb.qb.!:.rb.sb.$'.z3.5A tb.$}.Q[.ub.$'.f<.vb.N1.wb.xb.yb.yb.zb.Ab.Bb.Cb.Db.Eb.wb.Fb.Gb.f5.Hb.L[.f<..a.gb.Ib.P[.Q[.E2.Jb.Kb.Lb._|.+$ Mb.Nb.Ob.Pb.Qb.Rb.@8.$8.Sb.Tb.R=.k(.Ub.Vb.Wb.Xb.Yb.$}.Q[.Zb.i4.`b.^a. c.v&.fM .c.dO dO eO nK dO dO n$ ce +c.@c.!:.[9.$'.#c.$c.%c.&c.$}.Q[.i5.i).*8.*c.;U i@.=c.U'.Ab x:.Q[.^8./8.-^.-c.+` 5a.;c.T'.>c.t9.,c.'c.)c.K2. }.~4.!c.~c.{c.]c.78.$}.Q[.^c./c.(c._c.:c.<c.[c.}c.|c.1c.2c.3c.4c.5c.6c.7c.8c.9c.0c.ac.bc.cc.dc.ec.fc.I9.gc.hc.ic.jc.kc.wa.lc.mc.f>.nc.{<.S=.):.):.):.):.):.):.):.):.):.):.):.):.):.):.):.):.T=.oc.pc.k(.E[.qc.J5.n>.c).T0.rc.$'.sc.tc.uc.vc.wc.xc.yc.8}. 1.K9.zc.K,.Ac.Bc.Cc.[).(}.<).().2{.Dc.Ec.P].y/.Fc.Gc.Hc.Ic.Jc.Kc.Kc.Lc.Mc.Nc.10.u).TU Oc.Pc._0 Qc.Rc.Sc.Tc.Uc.Vc.Wc.k1 Xc.Yc.Zc.2(.`c. d.s# .d.+d./b.Kw @d.4] #d.$d.%d.",
-"v0.&d.*d.8; =d.#5.~h *d.p7.-d.s# ;d.>d.$5.n0.,d.'d.8b.)d.66.+5.!d.!d.~d.U).{d.]d.]d.^d.q< /d.(d._d.:d.<d.[d.}d.|d.1d.1d.1d.[d.1d.[d.1d.2d.3d.4d.o6.5d.$'.6d.7d.8d.S0.$}.Q[.9d.f|.0d.ad.bd.cd.dd./9 ed./9 wi fd.gd.hd.id.jd.kd.ld.4:.md.L[.f<.nd.od.G> P[.Q[.pd.qd.rd.sd.td.U^.ud.vd.wd.wd.wd.xd.yd.zd.Ad.Bd.U=.Cd.S7.$'.Dd.r..Ed.$}.Q[.Fd.q|.Gd.Hd.Id.Jd.Kd.Ld.Md.Md.Md.Ld.Md.Md.Nd.Od.Pd.T=.Qd.Rd.B|.Sd.Td.Ud.Vd.$}.Q[.i5.i).*8.l5.$U Wd.2%.I&.Xd.x:.Q[.^8./8.-^.-4.6 .Yd.Zd.`d.b,. e.u@..e.~:.T!.T!.B5..$.+e.@e.48.#e.$}.Q[.$e./|.%e.Zf &e.*e.=e.-e.-e.-e.;e.FL FL >e.>e.>e.,e.'e.)e.)e.!e.~e.{e.]e.^e./e.(e.A8.L9._e.jc.:e.Q,.<e.[e.}e.*:.-|.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.Q3.!:.Y_.|e.2}. 4.}}.1e./|.=^.$'.i1.2e.3e.4e.oa.5e.6e.7e.8e.=0.A8.9e.0e.Z5.ae.be.Cc.Sa.E,.:).().ce.de.ee.fe.ge.he.ie.je.yU ke.le.me.ne.oe.$b.pe.u).%b.qe.re.se.te.ue.ve.#C X8.we.k1 xe.ye.ze.Ae.Be.Ce.s# De.Ee.4Z Fe.C+.4] Ge.He.Ie.",
-"&d.*d.Je.8; =d.Ke.Le.Me.Ne.Oe.s# Ct Pe.Qe.%9.Re.'d.Se.Te.Ue.Ve.We.Xe.Ye.Ze.`e. f.`e..f.+f.E[.Bd.U(.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.5;.>_.S=.S=.3:.R3.>|.$'.(c.@f.gd.#f.$}.Q[.i5.i).$f.%f.F+.&f.*f.=f.-f.=f.;f.>f.,f.'f.)f.!f.H> ~f.m>.{f.L[.f<.]f.jb.^f.P[.Q[.n6.`0.c6.f1.qc.T=.T=.T=.T=.T=.T=.m(.U_.S(.k(.V_./f.(f.$'.o|._f.:f.<f.$}.Q[.{5.[f.4:.X_.}f.T=.T=.T=.T=.T=.T=.T=.5;.>_.k(.|f.qc.1f.{}.$'.2f.3f.4f.5f.6f.$}.Q[.i5.i).n{.l5.7f.8f.I'.oS 9f.x:.Q[.^8./8.-^.0f.`Z af.bf.7=.cf.$>.df.ef.ff.gf.c).hf.~4.if.jf.fh kf.$}.Q[.{5.[f.4:.X_.}f.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.T=.M(.lf.gf.mf.nf.of.H9.^e.sa.pf.qf.rf.sf.tf.[e.uf.rf.V,.m>.=[.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.{5.V5.&[.1e.<9.[9.vf.$'.wf.xf.yf.zf.Af.Bf.y8.8e.8e. 1.A8.Q2.9e.Cf.Df.Ef.Bc.Ff.Gf.1>.Hf.If.Jf.z!.Kf.Lf.Mf.he.Nf.Of.Pf.Qf.Rf.P@.l$.Sf.Tf.Uf.Vf.Wf.Xf.A8 Yf.*L Zf.90.`f. g.b0..g.+g.@g.#g.$g.3* e0.s# k^.%g.&g.u` *g.4] =g.-g.;g.",
-">g.,g.'g.8; )g.;d.!g.Re.~g.{..s# {g.1b.]g.^g.[b./g.Se.Te.(g._g.:g.t7.<g.[g.}g.|g.1g.2g.3g.f1.-|.g6..7..7..7..7..7..7..7..7..7..7..7.4g.v8.5g.a<.L[.$'.,|.6g.Tw M# W$ f5. 4./_.f|.$f.7g.O7.A'.8g.9g.0g.ag.bg.cg.dg.eg.fg.gg.hg.ig.jg.kg.q>.f<.lg.mg.ng.og.c6.pg.qg.rg.v8.e2..7..7..7..7..7..7..7.e2.sg.tg.ug.rc.$'.wf.vg.wg.xg.Ed.f5.q6.y<.yg.zg.E<.|e..7..7..7..7..7..7..7..7.e2.Ub.Ag.Bg.Cg.$'.Dg.~|.Eg.T` Fg.Gg.f5. 4./_.f|.n{.Hg.WW Ig.<,.9O r9 Jg.c6.Kg.F7.-^.Lg.!U Mg.V'.Ng.Og.Pg.X'.Qg.Rg.Sg.r|.G<.I2.k@.Tg.Ug.Vg.f5.q6.y<.yg.zg.E<.|e..7..7..7..7..7..7..7..7..7..7..7..7..7.Wg.Xg.(f.Yg.na.oa.Zg.`g.Cf. h.J9.A8.rf.z8..h.+h.@h.#h.c6.$h.J2.J2.J2.J2.J2.J2.J2.J2.J2.J2.J2.J2.J2.J2.J2.J2.0|.%h.-}.&h.M7.+7.Z[.$'.$'.6d.*h.=h.-h.;h.>h.wc.*0.Z|. 1.b>.Q2.zc.,h.'h.)h.Ef.Bc.5>.!h.~h.{h.]h.}>.<>.y,.^h./h.(h._h.:h.<h.H].~{.[h.}h.|h.1h.3+.2h.@-.RI 3h.DO *L 4h.Rc.5h.6h.ha 7h.8h.9h.0h.ah.bh.ch.s# dh.eh.3Z Y- A> 4] fh.gh.hh.",
-"'g.'g.ih.8; )g.E] v^.jh.kh.*,.s# lh.mh.]g.,d.nh.oh.x0.ph.qh.rh.sh.th.uh.[g.vh.wh.xh.yh.zh.d).U!.I7.sb.sb.sb.sb.sb.sb.sb.sb.sb.sb.Ah.Bh.f|.$'.$'.$'.Ch.Dh.Eh.ed.Fh.V$ G/.Gh.f|.$'.Hh.Tw i6.Ih. K Jh.Kh.Lh.Mh.Nh.Oh.Ph.Qh.Rh.Sh.Th.~4.L[.$'.f<.Uh.qt ng.Vh.p>.Wh.Rd.Xh.Yh.Ah.sb.sb.sb.sb.sb.sb.Ah.vf.f|.$'.$'.$'.i1.Zh.`h. i..i.+i.G/.E7.@i.rc.Z[.#i./8.sb.sb.sb.sb.sb.sb./8.=^.F7.$'.$'.$'.B|.2f.$f.$i.t..~@.%i.&i.G/.Gh.f|.$'.*i.=i.-i.;i./R qM >i.,i.'i.>|.$'.-^.)i.!i.Wd.~i.{i.]i.AS ^i./i.(i._i.(f.:i.f|.<i.#}.[i.}i.G/.E7.@i.rc.Z[.#i./8.sb.sb.sb.sb.sb.sb.sb.sb.sb.sb.sb.sb.sb.e<.$'.$'.|i.;h.5}.6}.1i.2i. h.J9.g8..1.rf.jc.3i.4i.5i.6i.f).7i.7i.7i.7i.7i.7i.7i.7i.7i.7i.7i.7i.7i.7i.7i.7i.8i.q>.$'.$'.$'.$'.$'.9i.n{.0i.ai.bi.ci.>).di.0e.A8.Z|.A8.Q2.9e.ei.,h.Z5.8>.Bc.be.fi.~h.gi.O2.hi.}>._)._7.ii.ji.^h.ki.li.mi.ni.oi.pi.qi.ri.si.ti.ui.vi.wi.xi.yi.TS zi.Ai.Bi.Ci.Di.Ei.Fi.Gi.Hi.Tr Ii.e0.s# Ji.Ki.s` Li./% 4] Mi.Ni.#d.",
-"Oi.n0.Pi.8; Qi.;d.)h Ri.kh.{..s# Si.mh.;9.&d.Ti.oh.oh.Ui.Vi.Wi.th.Xi.Yi.Zi.`i. j..j.yh.Y^.p|.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.3|.+j.F1.@j.0% #j./9 E'.$j.%j.p|.$'.$'.$'.&j.gd.*j.u(.=j.-j.;j.>j.,j.Kh.'j.)j.!j.~j.{j.]j.$'.$'.$'.f<.^j.w` /j.X` i).$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.@0.+j.(j.W}.J3._j.:j.<j.[j.}j.p|.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.j9.<a.|j.Y}.1j.2j.3j.}@.4j.5j.6j.p|.$'.$'.$'.7j.8j.9j.0j.bO 4/.aj.bj.cj.$'.$'.-^.dj.vY ej.fj.gj.hj.ij.AS jj.kj.lj.$'.$'.$'.$'.V}.mj.}i.nj.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.oj.pj.qj.rj.sj.4i. h. h.J9..1._e.tj.uj.vj.wj.L[.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.$'.`1.xj.o|.4|.yj.zj.Aj.Bj.0c.Cj.Dj.rj.5e.K9..1..1.Ej.f8.L,.0e.Fj.Ac.Bc.be.Cc.3>.3>.3>.x8.]h.C,.D,.Gj.Hj.Ij.Jj.Kj.Lj.Mj.Nj.Oj.Pj.di.Qj.Rj.Sj.ti.17.Tj.Uj.Vj.GU %L Wj.Dk Xj.Yj.Zj.`j. k..k.+k.@k.#k.s# $k.%k.&k.*k.:% 4] =k.-k.;k.",
-"Pi.%9.>k.8; !/.Ct ,k.'k.)k.{..s# Xl !k.%5.~k.{k./g./g.x0.]k.^k./k.Xi.Yi.(k._k.:k.<k.[k.}k.|k.%j.1k.}j.+i.Ed.Ed.Ed.2k.2k.Ed.Ed.3k.4k.4k.5k.6k.7k.8k.V# 9k.>f.0k.ak.sP bk.j6. :.ck.dk.O7.ek.fk.gk.-j.hk.ik.jk.Kh.kk.lk.!j.mk.nk.ok.pk.qk.rk.sk.nb.R# tk.(b.uk.Ed.vk.+|.X}.H6.Y}.Z}.Z}..|.Z}.`}.`}.`}.wk.xk.yk.zk.Ak.T1.Bk.Ck.Dk.IC r<.Ek.<f.Fk.+|.Gk.`}.Hk.Hk.Ik.Ik.Ik.Ik.Ik.Ik.Ik.Jk.Kk.Eg.W3.Lk.Mk.D#.M3..c.Nk.p9 Ok.Gg.&c.!8.Pk.WZ DT KP qM EM SP Qk.Rk.Sk.Tk.Uk.Vk.3U Wk.Xk.Yk.MM MM pO BS R/./d Zk.D<.#}.`k. l..l.+l.@l.#l.$l.%l.&l.*l.=l.-l.&l.;l.>l.,l.,l.>l.'l.)l.!l.~l.{l.{l.{l.]l.a8.^l./l.;).(l._l.4i.y8.@h.:l.A8.<l.tj.[l.}l.|l.1l.2l.3l.4l.]l.>l.>l.]l.]l.]l.5l.5l.6l.6l.6l.6l.6l.6l.6l.6l.5l.7l.8l.9l.0l.9c.bi.M2.4e.al.rj.bl.9e.A8.cl.A8.Q2.zc.,h.K,.Ac.7>.6>.5>.Gf.2>.{h.{h.Hf.]h.dl.E!.el.fl.ii.gl.hl.il.,).jl.kl.ll.ml.nl.ol.pl.ql.rl.>*.%6.sl.tl.ul.3h.vl.wl.xl.yl.zl.Al.Bl.Cl.Dl.El.s# Fl.Gl.Hl.Il.+<.4] F}.Jl.:1.",
-"Kl.Ll.Ml.8; !/.Ct Nl.'g.Ol.{..s# {g.s[.Pl.nh.Ql.Rl.Sl.Tl.Ul.Vl.Xi.Wl.Xl.Yl.Zl.`l. m..m.+m.@m.~K #m.a'.P# $m.$m.z1.%m.V# .M $m.&m.*m.wi Zg =m.-m.O).;m.>m. O rT -j.,m.'m.)m.!m.~m.J# {m.]m.^m./m.-j.(m.ik.jk.Kh.Lh._m.:m.<m.[m.}m.|m.gd.R0.1m.*m.G# !m.2m.7#.F+.3m.4m.5m.Uh.Uh.Uh.6m.7m.8m.8m.9m.0m.am.bm.cm.%a.jb.dm.q<.em.fm.+8.!,.gm.hm.im.W1.jm.jm.km.lm.W1.:f.:f.mm.35.x1.35.x1.Z7.<j.nm.Ck. 8.om.pm.qm.rm.hK Q#.rW sm.WZ tm.sW um.^R 4/.FM vm.mS wm.xm.$U $U ym.8f.zm.Am.]i.Bm.Cm.Dm.Em.Fm.M&.Gm.Hm.Im.S6.Jm.Km.kj.Lm.Mm.Nm.Om.Pm.Qm.Rm.Sm.Tm.0 .Um.Vm.Wm.Xm.Ym.Zm.Zm.`m.Zm. n..n.tc.+n.@n.$_.vc.#n.sj.4i.4i./e.I9.gc.$n.8e.$n.%n.&n.*n.i/.=n.-n.;n.>n.,n.'n.)n.!n.!n.~n.bi.{n.bi.]n.]n.]n.bi.bi.bi.^n./n.(n._n.pj.%_.:n.*n.di.5e.<n.6e..1.A8.b>.zc.ei.,h.Z5.[n.Bc.}n.Cc.3>.|n.1n.hi.}>.C,.D,.Gj.2n.fl.3n.4n.5n.il.vc.s,.6n.7n.8n.9n.0n.an.bn.cn.dn.en.fn.gn.hn.in.jn.kn.{j ln.yl.mn.nn.on.uy pn.s# %k.gh.hh.qn.rn.4] fh.sn.tn.",
-"Ml.Kl.>k.8; Qi.un.hb vn.^g.wn.s# ^s xn.p nh.yn.zn.Sl.An.Bn.Cn.Xi.Wl.Xl.Dn.En.Fn.Fn.Gn.Hn.In.Jn.ak.Kn.Ln.Mn.Nn.=,.=,.=,.=,.Nn.On.Mn.Mn.Ln.:].Pn.Qn.`J rT bZ Rn.Sn.Tn./m.'m.Un.Vn.Wn.Xn.Yn.Zn.`n. o.hk..o.jk.Jh.+o.@o.lk.#o.$o.%o.&o.*o.q; &f.2m.T;.S;.S;.@].=o.R# Y# an -o.kT kT kT kT kT kT -o.;o.>o.,o.Zg +].}-.9].fm.'o.)o.pK ;a.gM 4j.!o.&a.F#.F#.~o.~o.{o.L#.Ck.%$ %$ D#.'%.!o.q<.]o.^o.j$ 9I /o.(o._o.:o.xK 0@.V#.zT DT BT mV _,.yK FM <o.DK [o.[,.KV }o.|o.5U 0%.Xk.xS ij.Bm.1o.2o.2o.3o.Fm.M&.`~.4o.s].5o.6o.7o.8o.X'. {.t9.9o.<8.0o.0o.<8.ao.DU bo.co.do.eo.'+.7:.fo.go.go.@n.ho.io.$_.jo.ko.&0.sj.lo.^e.^e. h.:l.mo.gc.no.mo.lo.&0.*n.oo.po.qo.ro.so.to.uo.uo.to.to.i/.D].i/.'}.vo.'}.wo.'}.'}.'}.xo.yo.zo.il.oa.di.sj.0e.+1..1. 1.8e.A8.f8.9e.0e.'h.Fj.Ef.6>.5>.Gf.3>.{h.Hf.hi.}>.C,.Ao.el.fl.Bo.Co.Do.Eo.|h.|h.Fo.Go.q,.Ho.dn.Io.Jo.Ko.Lo.pl.Mo.No.Oo.r,.Po.Qo.Ro.yJ Jk So.To.Uo.Vo.Wo.Xo.s# -k.gh.hh.Yo.Zo.4] `o.gh. p.",
-"Kl.>k.Pi.8; Qi..p.+p.@p.&d.#p.s# $p.%p.Z+ nh.{k.Rl.Rl.&p./g.*p.Wl.=p.-p.;p.En.>p.,p.'p.)p.!p.~p.{p.]p.,m.^p.=S /p.(p.(p.&S GQ _p.:p.uT <p.[p.}p.B` {p.|p.1p.2p.3p.4p.Tn.5p./p.6p.6p.7p.8p.9p.hk.0p.ap..o.jk.Jh.7p.'j.6p.bp.cp.dg.fg.dp.=f.=f.ep.<].fp.u~.Nn.gp.hp.!m.ip.ip.ip.ip.ip.ip.ip.ip.|~.M3.em.jp.',.kp.Pb.lp.mp.np.yT op.pp.qp.rp.sp.tp.up.)=.vp.tp.wp.@8.xp.yp.>a.zp.>a.69.Ap.Bp.CT op.(K ]M Cp.Dp.Ep.Fp.Gp.hM 3O JP Hp.Ip.qM EM FK <o.GM Jp.rS H&.H'.4%.I&.Kp.Lp.]i.Dm.1o.Cm.MM MM Mp.Np.AS Op.Pp.Qp.Pp.Rp.Sp.Tp.Up.Vp.Wp.`'.X'.Y'.Xp.Yp.Yp.`6.Zp.`p. q..q.+q.x|.@q.'{.){.x|.#q.$q.%q.>h.&q.~h.*q.=q.`g.-q.;q.>q.,q.J9.gc.(e.,q.ec.*q.#n.'q.)q.)q.!q.G9.~q.{q.{q.o4.{q.{q.o4.]h.]q.^q.]q.]q.rj.^q.6}./q.(q.sj.5e._q.:q..1.Z|..1..1.b>.<q.9e.[q.0e.Df.Ac.}q.be.5>.3>.{h.1n.hi.}>._).|q.1q.Bo.fl.2q.3q.4q.]>.|h.s,.s,.6n.5q.Ho.6q.Sj.7q.8q.Io.9q.0q.aq.bq.l/.cq.dq.eq.fq.Nj gq.hq.iq.jq.jq.kq.s# -k.lq.De.mq.nq.4] oq.pq.qq.",
-"rq.sq.5b.8; tq.uq.vq.wq.Je.>=.s# xq.yq.zq.Aq.Bq.zn.zn.&p.'d.Cq.Dq.Eq.Fq.;p.En.Gq.Hq.Iq.Jq.Kq.Lq.Mq.Nq.3p.Oq.Pq.Qq.Rq.Sq.Tq.Tq.Uq.4p.Vq.Wq.Xq.Yq.Nq.Zq.`q. r..r.+r.@r.Vq.#r.$r.%r. o.&r.&r.*r.=r.%r.ap.-r.jk.;r.7p.kk.>r.Nh.,r.cp.$o.'r.)r.8g.!r.~r.~r.Un..:.{r.u~.]r.u~.<].^r.^r.^r.^r.^r.<]./r.(r./r._r.(r.mp.:r.<r.[r.{K }r.|r.1r.2r.3r.)o.pK qK qK 3r.4r.5r.1r.6r.7r.1r.6r.1r.8r.1r./K PQ 9r.0r.F` F` hE ar.br.zK cr.Gp.Gp.qM f9.BK dr.<o.<o.FK DK 4/.qM iO qM :_.zS er.fr.gr.hj.hr.Cm.Cm.Mp.FS FS ir.DS jr.kr.lr.Np.mr.mr.nr.or.or.pr.or.qr.rr.sr.tr.ur.vr.J8.wr.xr.yr.zr.Ar.Ar.Br.Eo.>h.Cr.Dr.Er.#n.of.Fr.Gr.Hr.Ir.Jr.Kr.ra.Lr.9e.sa.sa.fc.^e.vj.lo.vj.4i.Mr.2i.4i.4i.Cf.9e.y8.0e.Cf.[q.y8.Cf.0e.[q.Cf.Nr.9e.:l.A8..1.8e.8e.9}. 1..1.b>.+1.9e.*0.[q.Fj.Or.)h.Bc.Ff.5>.3>.{h.Hf.dl._).B,.Ao.el.fl.Pr.Qr.A,.]>.vc.s,.Go.Go.p,.-).Ho.Rr.,).Sr.Tr.Ur.Vr.Sj.dn.Wr.Xr.ni.Yr.Zr.`r. s..s.+s.@s.#s.$s.%s.s# &s.*s.%k.=s.-s.4] oq.;s.>s.",
-",s.'s.)s.8; !s.~s.{s.]s.^s./s.s# (s._s.Z+ v0.:s.<s.[s.}s.vn.|s.1s.2s.3s.4s..m.5s.6s.7s.8s.9s.9s.9s.Iq.0s.as.bs.cs.ds.ds.es.es.fs.es.as.gs.gs.gs.hs.gs.is.cs.`q.js.Xq.+m.ks.4p.ls.ms.ns.os.=r.=r.0p.ap.-r.ps.,j.qs.kk.>r.Nh.rs.ss.0g.ts.9g.bg.bg.*K us.0k.~r.~r.Kn.~r.~r.5r.vs.<r.<r.yT yT <r.<r.ws.ws.[r.<r.5r.{K xs.pP ys.ys.zs.As.xs./K As.xs.|r.|r.]K Bs.Cs.Ds.Es.Fs.0r.0r.Gs.9r.Fs.0r.Hs.Is.Js.F` Cp.Ks.Ls.CK CK Ms.oI Ns.oI oI FM dr.WP FK FK WP }R }R }R Os.Ps.AS Qs.]i.Rs.Ss.ir.Ts.Ts.Us.Vs.FS Ws.3_.3_.Xs.Ys.Zs.`s.`s. t..t. t.+t.@t.#t.#t.$t.%t.&t.*t.7>.=t.-t.di.;t.>t.,t.'t.'t.Dr.)t.~q.!t.!t.~t.~t.{t.]t.^t./t.(t.(t._t.Kr.:t.Lr.<t.[t.gc.}t.|t.|t.|t.1t.tj.2t.c{.#[.#[.+^.+^.N,.+^.+^.5).5).=0.5).5).z8.c>.5).5).c>.=0.A8.b>.3t.Q2.zc.[q.4t.Fj.Ef.5t.5t.4>.~h.~h.{h.hi.}>.C,.D,.Gj.Bo.fl.6t.^>.7t.]>.vc.s,.6n.;).8t.8t.9t.0t.at.bt.hl.ct.ct.at.dt.et.ft.Rr.gt.ht.it.jt.kt.lt.mt.nt.ot.pt.s# qt.rt.(1.st.tt.4] ut.vt.wt.",
-")s.xt.yt.8; zt.At.Bt.Ct.13.Dt.s# Et._s.Z+ ~k.Ft.Gt.:s.}s.Ht.It.Jt.2s.3s.4s.0s.5s.Hq.9s.9s.9s.9s.Kt.9s.Lt.Mt.5s.5s.gs.0s..m.Nt.Ot.Pt.5s.Hq.'p.Hq.5s.gs.as.ds. r.js.Yq.Wq.Qt.Rt.ls.St.Tt.Ut.Vt.0p.Wt.-r.>j.jk.Jh.qs.'j.Xt.)j.ss.Yt.Zt.cp.`t. u..u.+u.@u.#u./]./]./]./].@u.}r.$u.{K {K {K {K (K (K {K }r.{K 6r.[r.6r.xs.PQ PQ ]M PQ %u.As./K _K (K xs.Cs.Cs.&u.]M *u.Es.=u.-u.Hs.Hs.Fs.;u.Fs.>u.Cp.,u.Cp.'u.)u.!u.BK ~u.BK CK CK DK DK DK mO mO WP XP |R mO xS {u.]u.yS ^u./u.AS lU (u._u.:u.<u.[u.kr.kr.WV }u.|u.1u.Xs.2u.`s.`s.3u.4u.4u.5u.+t.6u.#t.7u.8u.9u.#n.-t.0u.au.fi.(l.bu.cu.du.eu.eu.eu.fu.gu.hu.iu.ju.ku.lu.mu.>0.nu.ou.pu.qu.ru._t.Lr.su.tu.uu._e.vu.wu.rf.2t.M9.+^.xu.B/.B/.j:.+^.6).j:.+^.+^.+^.5).yu.5).5).L!.L!.zu.f8.Q2.9e.zc.4t.[q.Au.Df.Bu.1i.5t.be.La.Cu.gi.gi.Hf.Y5.E,.1q.Du.Eu.Du.Fu.A,.Br.]>.Gu.s,.6n.8t.Hu.}$.Ho.Iu.Ur.bt.4q.Ju.Ku.Lu.dt.Mu.Nu.Ou.Pu.Qu.Ru.Ru.Su.Tu.Uu.Vu.Wu.Xu.s# Yu.Zu.`u. v..v.4] +v.@v.#v.",
-"yt.}b.~k.8; $v.%v.&v.*v.61.=v.s# -v.;v.>v.,v.'v.)v.!v.~v.{v.]v.Jt.2s.3s.4s..m.^v.Iq./v.8s.8s.9s.9s.9s.Lt.Hq.5s.0s.gs.hs.as.as.Ot.as.gs.5s.5s.5s.gs.is.as.(v._v.:v.Wq.ks.ls.<v.ms.Tt.ns.Vt.0p.[v.-r.>j.}v.;r.7p.>r._m.)j.|v.0g.ts.Qh.cg.1v.2v.2v.#u.#u.#u./].&K &K &K @u.{K {K @u.@u.6r.3v.6r.6r.6r.}r.}r.xs.xs.}r./M As.ys.RQ ^K _K /K /K /K (M ]K qP qP zs.%u.4v._o._o._o.4v.5v.4v.4v.4v.4v.4v.'u.4v.6v.7v.8v.tM tM tM vm.Jp.4/.Ns.DK dr.WP GM VP xS wS xS xS ]u.{i.Am.{i.9v.9v.9v.9v.0v.0v.0v.av.av.VV bv.cv.lr.mr.dv.ev.fv.gv.gv.hv.iv.jv.kv.kv.lv.lv.mv.nv.ov.pv.qv.rv.sv.eu.tv.tv.uv.vv.vv.wv.xv.yv.zv.Av.Bv.Cv.Dv.Ev.>0.Fv.Gv.Hv.Iv.p4.3).Jv.Kv.L!.L9.Lv.L9.L9.L9.L9.5).+^.+^.yu.+^.+^.+^.+^.N,.yu.5).5).Mv.Nv.4).-0.Ov.z2.L,.ei.zc.0e.0e.Df.Fj.)h.Ef.Or.Pv.La.Qv.!h.3>.{h.x8.O2.F,.Rv.Sv.Eu.Tv.<7.7t.Eo.Gu.Gu.Fo.6n.o,.Hu.}$.Ho.Rr.,).ct.Uv.Vv.t,.Wv.Wv.r,.Rr.Xv.Yv.Zv.Yv.`v. w.it..w.+w.@w.#w.s# #}.$w.%w.&w.*w.4] =w.-w.wt.",
-";w.;w.>w.8; ,w.'w.)w.!w.~w.{w.s# ]w.^w.>v.>w.'v./w.(w._w.:w.<w.[w.}w.as.Ot.Nt.5s.6s./v.9s.9s.9s.9s.8s.|w.'p.5s.0s.gs.hs.as.as.Ot.as.is.gs.gs.gs.as.1w.es._v.:v.Wq.Rt.2w.St.3w.4w.5w.6w.7w.hk.8w.9w.0w.+o.Lh.Xt.Nh.aw.!j.ss.9g.bw.~j.cw.dw.ew.fw.#u./]./]./].gw.DH BH %K {K 3v.3v.hw.7r.{K }r.iw.xs.jw.6r.[r.SQ 3v.{K ^K _K ^K /K /K /K /K /K _M ]K qP kw.%u.%u.lw.lw.%u.mw.mw.mw.4v.mw.lw.mw.4v.)u.6v.nw.ow.pw.jO jO jO qw.Ns.DK oI Ns.Jp.Jp.[R [R [R Jp.uS rw.rw.sw.sw.Op.sw.tw.uw.uw.vw.vw.Rp.Rp.ww.ww.pU xw.yw.cv.zw.zw.Aw.Bw.Cw.Dw.Dw.Ew.Ew.Fw.Gw.Hw.Hw.Iw.Jw.<)./7.Kw.Lw.ce.Mw.Nw.Ow.Nw.Pw.Qw.Rw.Sw.Sw.Tw.Uw.Vw.Ww.Xw.>0.Fv.Yw.Pa.Pa.e8.Kr.qa.Kv.uu.<t.<t.g8.qf.L9.Zw.L9.5).Mv.Mv.+^.Mv..1.5).Nv.`w.P2..1.L!.-0.zu.zu.L,.ei.,h.,h.0e.,h.Z5.)h.Ac.5t. x. x..x.+x.Qv.di.di.gi.x8.#6.@x.#x.$x.%x.Ao.[>.&x.]>.Gu.Gu.Fo.Go.p,.*x.}$.Ho.Rr.,).=x.ct.hl.t,.Wv.Wv.r,.-x.Q@.;x.>x.,x.'x.)x.!x.~x.{x.]x.(8.s# ^x./x.(x._x.:x.4] <x.[x.}x.",
-"|x.1x.2x.8; C(.3x.4x.5x.6x.7x.s# 8x.9x.0x.|x.ax.bx.cx.dx.ex.fx._v. r.1w.Ot.3s.5s.Fn.,p.Lt.Lt.Lt.'p.Mt.5s.0s.gs.Nt.as.as.1w.gx.Ot.as.is.as.as.as.1w.es.js.hx.Wq.ix.<v.ms.ns.jx.Vt.Vt.=r.kx.8w.8p.Jh.Lh.Xt.Nh.lx.|v.mx.mx.Ph.`t.~j.nx.ox.px.qx.rx.sx.#u.#u.tx.p~.@u.+/.ux.iw./M }r.{K [r.vs.<r.yT yT yT vx.vx.SQ 5r.[r.7r.wx./K _K _K /K /K :K wx._M :K xx.lw.lw.kw.lw.lw.lw.lw.%u.mw.mw.mw.yx.6v.6v.zx.ow.Ax.Bx.yK vm.qw.qw.mI jO jO vS Jp.Jp.Jp.Cx.:R sS sS Dx.Ex.Fx.Gx.$>.$>.$>.$>.$>.&>.&>.jj.*>.Hx.Ix.Jx.Kx.b=.Lx.Mx.Nx.zw.zw.Ox.Ox.Px.Qx.Qx.Rx.Sx.Tx.Tx.Ux.Vx.B,.Lw.Wx.Xx.Yx.Zx.`x. y..y.+y.Pw.@y.@y.Sw.#y.$y.$y.%y.&y.*y.=y./t./t.Pa.Jr.e8.e8.Jv. h.sa.sa.qf.(e.<t.<t.g8.$n.uu.L!..1.L!.zu..1.zu.zu.zu.P2.zu.-0.Q2.+1.zc.ei.,h.,h.,h.0e.Fj.Ef.Ef.Bc.be.-y.!h.La.;y.di.gi.Bf.>y.+6.,y.'y.)y.!y.C,.~y.{y.&x.]y.k=.^y.^y.Go.o,./y.(y._y.Lu.t,.Ku.ct.Wv.]>.{>.r,.-x.:y.<y.[y.'x.}y.|y.1y.2y.it.3y.4y.s# 5y.6y.7y.8y.9y.4] 0y.ay.by.",
-"1x.cy.dy.8; ey.fy.gy.hy.iy.jy.s# ky.ly.~w.my.ny.oy.py.py.qy.ry.sy.ty.ds.Ot.as..m.5s.5s.Lq.Lq.^v.5s.5s.Lq.Nt.bs.cs.cs.es.uy.es.vy.wy.cs.xy. r.yy.zy..r.:v.Ay.Qt.ls.ms.By.6w.Vt.*r.&r.hk.8p.Cy.Jh.kk.)j.mx.!j.mx.Ph.9g.9g.Dy.cw.ox.Ey.Fy.Gy.Gy.Hy.rx.(].Iy.p~./].gw.zH {K QQ vs.<r.vx.2r.2r.:r.:r.Jy.Ky.vx.vx.yT Ly.SQ 8r.-O -O -O _K My._K _K :K SH RH RH Ny.Ny.Oy.Ny.xx.kw.kw.kw.lw.kw.(o.Py.Py.Qy.Ry.Sy.Ty.Bx.Uy.Uy.yK jO jO jO jO Vy.Wy.Dx.sS Dx.Dx.Xy.Xy.Fx.Q&.Yy.Q&.Zy.Pp.Pp.Pp.8o.`y.%>.vw.<X z..z.Xp.e,.7=.Vp.c=.+z.@z.@z.#z.e=.e=.f=.$z.%z.&z.*z.=z.-z.;z.il.>z.,z.'z.)z.!z.~z.{z.]z.^z./z.+y.(z._z.:z.<z.$y.$y.[z.&y.{t.}z.|z.1z.(t.(t.Z5.0e.>q.qa.ra.sa.sa.pf. h.(e.gc.f8.Ov.b>.-0.f8..1.b>.Q2.Q2.3t.A8.f8.zc.+1.Q2.ei.Cf.2z.,h.Df.Df.Ef.5t.3z.La.-y.!h.Cu.*t.4z.gi.1>.5z.=t.6z.7z.8z.1>.9z.~y.0z.yr.Ar.m=.k=.k=.~>.p,./y.az.cq.Lu.t,.ct.bz.Wv.Wv.,).r,.-x.cz.dz.ez.fz.gz.hz.iz.jz.kz.lz.mz.s# nz.oz.pz.qz.rz.4] sz.tz.uz.",
-"vz.wz.xz.8; yz.zz.Az.Bz.&v.Cz.s# Dz.Ez.Fz.Gz.Hz.Iz.Jz.Kz.Lz.Mz.Nz.Oz.'p.Pz./v.9s.Qz.9s.9s.9s.Qz.Rz.Qz.9s./v.Sz.|w.Tz.0s.gs.5s.Uz.Hq.Vz.gs.gs.gs.hs.as.cs.uy._v.Xq.1p.Wz.<v.3w.By.Xz.Ut.0p.-j.Yz.Jh.kk.>r.>r.Nh.)j.Zz.Zz.mx.`z.9g.Qh.cg.Qh.ts. A..A..A.yH IH =K JH !K +A.oP @A.oP oP #A.}r.{K {K $A.pP iw.iw.PQ Ds.]M PQ %A.%A.'S 0r.0r.0r.Hs.&A.x, h#.n'.q& *A.x, x, Dp.Is.=A.=A.=A.-A.Hs.=A.;A.>A.,A.6G nw.'A.)A.dr.!A.GK FK ~A.oI oI {A.{A.{A.zS zS zS xS {u.]A.Am.{i.^A.Og.Og.Og./A.(A.(A.xw._A.VV :A.<A.[A./A.}A.yw.yw.yw.Bw.|A.1A.2A.3A.4A.5A.6A.6A.7A.7A.8A.9A.0A.aA.pu.bA.cA.dA.eA.fA.gA.hA.iA.jA.kA.lA.mA.nA.oA.pA.qA.rA.sA.fc.,q.pf.<t.qf.6e.<l.hc.8e.8e.tA.jc.jc..h.uA.vA.#[.wA.xA.7).8).uf.d{.P,.yA.};.P,.vA.yc.};.zA.7e.0}.cl.cl.<q.AA.%n.BA.CA.Nr.'[.DA.EA.'[.FA.2z.GA.HA.IA.JA.KA.LA.MA.NA.OA.PA.QA.RA.SA.TA.UA.VA.WA.XA.YA.ZA.`A. B.!*..B.+B.@B. b.cz.#B.$B.}y.%B.&B.*B.=B.-B.)x.;B.>B.s# ,B.'B.7|.Ik.rz.4] )B.!B.~B.",
-"xz.{B.]B.8; yz.^B./B.(B.5x.Cz.s# _B.-v.:B.xz.<B.[B.}B.|B.M7 9] 1B.2B.3B.-h <k 5b Z0 4B.ui ui ui !k !k ui S7 79 5B.26 w% 6B.]k 7B._9 8B.9B.,= [} [} C2 0B.aB.+, cA E% WD bB.cB.dB.eB.fB.gB.hB.iB.jB.kB.lB.mB.nB.oB.pB.oB.qB.rB.sB.tB.uB.uB.uB.vB.wB.xB.yB.zB.AB.BB.CB.DB.EB.FB.GB.HB.FB.IB.JB.JB.KB.LB.MB.GB.NB.OB.PB.QB.RB.RB.SB.TB.TB.UB.VB.WB.XB.YB.YB.ZB.XB.`B. C..C.!G !G +C.+C.@C.$%.+C.#C.$C.%C.&C.*C.dM =C.:Y -C.n<.;C.>C.>C.,C.'C.'C.)C.)C.)C.!C.~C.{C.]C.^C./C.(C.(C._C.:C.<C.[C.[C.}C.|C.1C.2C.3C.3C.4C.5C.6C.7C.8C.9C.0C.aC.bC.cC.dC.eC.fC.gC.gC.hC.iC.jC.kC.lC.mC.nC.oC.pC.qC.rC.sC.tC.uC.vC.wC.xC.yC.zC.AC.BC.CC.DC.EC.FC.GC.GC.HC.IC.JC.KC.LC.MC.NC.OC.PC.QC.RC.SC.TC.UC.VC.WC.XC.YC.YC.ZC.`C. D..D.+D.@D.#D.$D.%D.&D.*D.=D.-D.;D.>D.,D.'D.)D.!D.!D.~D.{D.]D.^D./D.(D._D.:D.<D.[D.}D.|D.1D.2D.3D.4D.5D.6D.7D.8D.9D.0D.aD.ez.bD.cD.dD.eD.fD.gD.hD.iD.'x.;x.jD.[y.kD.ez.lD.mD.nD.oD.pD.qD.s# rD.sD.tD.uD.vD.4] wD.xD.yD.",
-"61.zD.5x.8; D; AD.BD.CD.DD.ED.s# FD.GD.HD.ID.JD.A+ A+ KD.LD.B+ B+ MD.ND.OD.zq o4 >s wT mT At At At mT zt zt zt YN >k PD.>k #x QD.RD.pW SD.]k $x 0'.fA TD.UD.VD._].~k WD.XD.YD.ZD.`D. E..E.+E.@E.#E.$E.%E.&E.*E.=E.-E.-E.;E.>E.,E.'E.)E.vB.!E.!E.~E.{E.{E.DB.HB.]E.^E./E.(E._E.:E.(E._E.OB.<E.[E.[E.Y+.}E.|E.1E.2E.3E.4E.5E.6E.7E.ZB. C..C.8E.9E.0E.aE.bE.cE.$%.dE.eE.fE.g&.gE.g&.fE.(..hE.hE.iE.P> jE.kE.lE.mE.nE.nE.oE.pE.pE.pE.pE.pE.oE.qE.rE.rE.sE.tE.tE.uE.vE.wE.xE.yE.zE.AE.BE.CE.DE.EE.FE.EE.EE.GE.HE.4C.IE.JE.KE.KE.LE.ME.NE.OE.PE.PE.QE.RE.SE.TE.UE.VE.WE.XE.YE.ZE.`E. F..F.+F.@F.#F.$F.%F.&F.*F.=F.*F.-F.;F.>F.,F.'F.'F.)F.!F.~F.{F.]F.^F.NC./F.(F._F.:F.<F.[F.[F.}F.|F.1F.2F.3F.3F.3F.4F.5F.4F.6F.7F.fe.8F.9F.0F.aF.aF.K].bF.cF.dF.eF.fF.gF.hF.iF.;D.>D.jF.jF.-D.kF.lF.mF.nF.oF.pF.qF.rF.sF.sF.tF.uF.vF.wF.xF.yF.zF.AF.BF.CF.DF.EF.FF.GF.HF.IF.JF.KF.LF.fz.}y.,x.MF.-B.iz.hz.NF.OF.PF.QF.RF.s# SF.TF.UF.VF.WF.4] XF.YF.ZF.",
-"`F. G..G.8; +G.@G.#G.$G.%G.&G.s# *G.=G.-G.;G._ C+ a a <e <e ( a }e >G.,G.bb 46 >s R+ ^k R+ Pl R+ R+ [ ^k 4B.89 89 4B.zt zt zt At YN 'G.x% sf $x Kc )G.!G.(].Ww vt ~G.{G.]G.^G./G.(G._G.:G.<G.yF [G.}G.*E.-E.|G.1G.1G.2G.3G.4G.5G.6G.|G.7G.8G.9G.0G.aG.(E.bG.cG.dG.dG.eG.fG.gG.hG.(E.(E.:E.iG.&%.iE.jG.kG.kG.+%.lG.mG.nG.gC oG.0E.9E.pG.qG.rG.pG.sG.tG.uG.8E Z; W*.8E bG ^G h&.^..9G bG vG.wG.xG.yG.zG.Lf AG.BG.CG.DG.EG.EG.EG.EG.EG.FG.GG.HG.IG.JG.JG.KG.KG.LG.MG.NG.OG.OG.PG.QG.RG.QG.SG.TG.UG.Ym.GE.VG.0C.WG.0C.XG.YG.ZG.`G. 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.1H.2H.3H.4H.5H.6H.7H.8H.9H.0H.aH.bH.cH.dH.eH.fH.gH.hH.iH.jH.iH.kH.lH.lH.lH.mH.Lf.nH.v!.Lf.v!.oH.pH.qH.qH.({.rH.sH.tH.uH.vH.wH.xH.yH.zH.AH.BH.CH.DH.EH.FH.GH.HH.IH.JH.JH.KH.LH.MH.NH.OH.PH.QH.RH.SH.w=.TH.UH.VH.WH.VH.XH.YH.ZH.`H.dD. I..I.kD.+I..I.@I.#I.$I.%I.&I.*I.s# =I.SF.k2.-I.;I.4] >I.,I.'I.",
-")I.!I.~I.8; {I.]I.^I./I.(I._I.s# :I.<I.[I.S+ P7 /k Ol V0 :k V0 V0 :k Ol Ol n4 S+ Q+ *p 89 YN 89 ;s 89 8#.>s 0 R+ ^k 4B.89 YN YN 89 YN PD.HH Kc eA 0'.eA )G.UD.4v 0~ Jy 9A }I.|I.1I.fB.2I.3I.4I.5I.%E.6I.7I.-E.|G.vB.vB.sB.8I.9I.9I.0I.aI.bI.;E.cI.dI.eI.fI.gI.gI.hI.iI.jI.kI.lI.jI.kI.gI.cG.cG.bE.$%.x#..%.mI.nI.5E oI.pI.pI.{E oI.eE.5E U+.U+.qI.j&.9E m#.W*.rI.^G sI.tI.g&.W*.W; uI.8E vI.wI.xI.xG.Q> yI.zI.AI.BI.XT CI.DI.EI.FI.GI.HI.II.JI.KI.LI.HG.HG.MI.MI.NI.OI.PI.QI.RI.SI.TI.UI.VI.WI.XI.YI.ZI.`I.`I. J.NE..J.+J.@J.#J.#J.$J.%J.&J.*J.*J.=J.-J.;J.>J.,J.'J.)J.!J.~J.{J.]J.^J./J.(J._J.:J.<J.[J.}J.[J.[J.|J.1J.2J.3J.4J.5J.6J.7J.8J.9J.0J.0J.aJ.bJ.cJ.dJ.eJ.fJ.gJ.hJ.iJ.jJ.kJ.lJ.mJ.mJ.nJ.oJ.pJ.qJ.rJ.sJ.tJ.uJ.vJ.vJ.Wx.wJ.wJ.xJ.xJ.yJ.zJ.zJ.AJ.BJ.CJ.({.DJ.EJ.FJ.GJ.HJ.IJ.sH.JJ.Of.Ko.Ko.9n.KJ.LJ.MJ.NJ.OJ.PJ.LH.QJ.RJ.SJ.TJ.UJ.VJ.WJ.XJ.YJ.ZJ.`J. K..K.+K.@K.#K.|y.iz.`r.$K.%K.&K.*K.=K.-K.s# ;K.SF.>K.,K.'K.4] )K.!K.~K.",
-"~I.{K.BD.8; ]K.^K./K.(K._K.:K.s# _, c= F/ Y0 79 .1 8Z R7 R7 (k (k Yg R7 Z0 Z0 Z0 8#.89 >k <K.>k +Y 89 16 R+ m4 R+ dP +Y [K.#x YN yq 8v PD.o] _} G/ G/ G/ }K.yi 8&..Y 0~ 9A ~G.|K.1K.2I._G.2K.3K.4K.5K.7I.6K.7K.>E.8K.9K.0K.aK.bK.cK.cK.bI.7G.7G.dK.eK.fK.gK.hK.kI.iK.jK.kK.lK.mK.nK.jK.kI.kI.4E qG.oK.pK.qK.xA zA rK.sK.5E.tK.uK.rK.wG.vK.wK.L; xK.m#.rI.^G g&.~I ~I yK.qC 0E W; Z; Z*.8E zK.!I AK.BK.CK.DK.EK.FK.GK.HK.n5.n5.n5.IK.JK.KK.LK.MK.NK.OK.PK.QK.RK.SK.SK.TK.UK.UK.VK.WK.XK.YK.ZK.`K. L..L.+L.8a.@L.#L.$L.$L.%L.&L.la.*L.=L.-L.;L.w2.>L.,L.'L.)L.!L.~L.{L.]L.^L./L.(L._L.:L.<L.[L.}L.|L.1L.2L.3L.4L.4L.4L.4L.5L.6L.7L.8L.9L.6J.0L.aL.bL.cL.dL.eL.eL.fL.fL.gL.hL.iL.jL.kL.lL.lJ.mL.mJ.nL.oL.pL.qJ.qL.rL.tJ.sL.tL.uL.vL.wL.xL.yL./7.wJ.wJ.zL.Gj.Gj.sL.!).AL.BL.CL.DL.EL.FL.GL.w!.HL.y!.x!.x!.IL.IL.Ur.Sj.dn.JL.KL.LL.Xr.ML.(L NL.OL.PL.QL.PL.RL.SL.VJ.TL.UL.HF.VL.WL.XL.YL.ZL.`L. M..M.+M.@M.s# SF.#M.$M.%M.&M.4] *M.=M.-M.",
-";M.>M.^I.8; <E.,M.'M.)M.!M.~M.s# {M.vq dA z/ [} [} B2 B2 1 i4 ,k Nl .1 .1 .1 .1 .1 .1 X| w% sf sf .1 en k4 k4 k4 >k .1 .1 #x 8v 8v >k 4 z/ C2 7< Ny _} z% ]M.dn 0~ XD ^M./M.(M.1K._M.:M.<M.3K.kB.[M.}M.|M.7K.1M.2M.9K.9I.4G.3M.bK.cK.4M.7G.5M.6M.7M.8M.9M.0M.kK.aM._I._I.aM.bM.cM.bM.dM.lK.eM.fM.xA gM.zA hM.;I iM.iM.jM.0C kM.Z*.xK.%z _G lM.a$ bS 0S 8S bS V; f$ ^=.mM.W*..B aM W; nM..B DP CP CP :O oM.pM.qM.rM.sM.tM.uM.vM.wM.xM.sM.yM.zM.AM.BM.CM.DM.DM.DM.EM.FM.GM.HM.IM.JM.KM.LM.MM.NM.OM.PM.QM.RM.SM.TM.UM.VM.WM.XM.YM.ZM.;L.`M. N..N.+N.@N.#N.$N.%N.&N.&N.*N.=N.-N.;N.>N.,N.'N.)N.!N.~N.{N.]N.^N./N.(N.(N._N.:N.<N.[N.}N.|N.1N.2N.bL.3N.4N.5N.6N.7N.fL.fL.gL.8N.9N.jJ.0N.0N.aN.bN.cN.nL.dN.eN.fN.qL.rL.gN.hN.iN.jN.kN.lN.lN.mN.nN.mN.mN.oN.mN.pN.qN.rN.sN.tN.uN.vN.wN.xN.yN.zN.AN.BN.CN.-*.-*.CN.}7.DN.hl.t,.,).EN..q.ll.,Q FN.GN.HN.IN.HL.JN.KN.LN.MN.TL.NN.ON.PN.QN.RN.SN.&I.TN.UN.VN.WN.s# XN.YN.ZN.`N. O.4] .O.+O.@O.",
-"#O.#O.$O.8; LB.%O.]I.&O.*O.=O.s# -O.7&.cA ~ ~ := := p] x] m] k] n] m] m] n] n] _} x] Ny xt a_ xt p] k] }} J+ f_ y/ h m] K+ 4 4 4 o] y/ C2 7< a_ xt xt xt dA &p `g DF ;O.(M.)C >O.,O.xF 'O.)O.}M.6I.6M.!O.~O.2M.9K.{O.,E.0I.)E.vB.4M.]O.^O./O.lB.$E.(O._O.:O.aM.aM.aM.<O.cM.[O.[O.}O.|O.1O.*I 2O.3O.jM.4O.dC jM.5O.6O.7O.cK W*.f&.rI.J; ;$ N#.,$ ,$ U; bS a$ ,$ B _G 5S Jv 8O.Jv %u 9O.0O.aO.bO.cO.dO.eO.fO.gO.hO.iO.jO.kO.lO.mO.nO.oO.pO.qO.rO.sO.tO.uO.5k.vO.wO.xO.yO.zO.AO.v{.v{.BO.CO.DO.EO.FO.GO.HO.HO.IO.JO.KO.LO.MO.NO.OO.PO.QO.RO.SO.TO.UO.VO.WO.WO.XO.YO.ZO.`O. P..P..P.+P.@P.#P.$P.%P.&P.*P.=P.-P.;P.>P.,P.'P.)P.}N.!P.~P.{P.]P.^P.4N.5N./P./P.(P.fL._P.eJ.kJ.:P.<P.<P.[P.}P.nL.|P.1P.2P.3P.qL.4P.5P.6P.Bo.7P.Kw.8P.)y.9P.xL.0P.xL.aP.bP.cP.dP.eP.fP.gP.hP.iP.jP.kP.lP.mP.mP.z4.A=.nP.oP.oP.f}.pP.%6.`A.gn.qP.3$.rP.*T sP.tP.uP.+6.J8.vP.dz wP.xP.yP.zP.AP.BP.5D.CP.DP.&I.EP.+M.FP.GP.s# HP.IP.JP.`N.&M.4] KP.LP.MP.",
-"NP.OP.PP.8; QP.RP.SP.TP.UP.VP.s# WP.XP.YP.+, (9 Ll r] Dy Dy &p Sw xt dA ZP.xt a_ dn (9 (9 &p &p &p C/ Y| v] xt q] G/ x] x] y] F/ d_ g~ Ny xt q] a_ &p &p &p ]e D% xi Jy sq [) `P. Q.zF _G..Q.#E.+Q.[M.@Q.#Q.|G.4M.9K.bK.$Q.%Q.&Q.bK.bK.8K.!O.*Q.=Q.6I.-Q.;Q.0M.>Q.,Q.<O.'Q.)Q.cM.!Q.~Q.<O.aM.{Q.aC eC ]E ]Q.^Q./Q.6C (Q.cK wA _Q..%.J; K; ,$ 7$ :Q.7$ 7$ u&.p<.7$ {=.{$ aM @R <Q.RT [Q.l~.TA R }Q.|Q.1Q.2Q.3Q.4Q.5Q.6Q.7Q.8Q.9Q.0Q.aQ.l7.bQ.sO.cQ.sO.dQ.eQ.Ce.fQ.gQ.hQ.iQ.jQ.jQ.jQ.jQ.kQ.lQ.mQ.nQ.oQ.pQ.qQ.rQ.sQ.tQ.uQ.vQ.wQ.xQ.PO.wQ.yQ.zQ.AQ.BQ.CQ.DQ.EQ.FQ.GQ.HQ.YO.IQ.JQ.KQ.LQ.MQ.MQ.NQ.OQ.PQ.QQ.RQ.SQ.TQ.UQ.VQ.WQ.XQ.YQ.ZQ.`Q.9L. R.1N.{P..R.+R.@R.#R.$R.<F.%R.&R.gJ.jL.*R.=R.-R.;R.>R.oJ.qJ.,R.'R.4P.)R.sL.7P.!R.~R.vL.vL.mN.{R.0u.]R.^R./R.(R._R.:R.<R.[R.}R.|R.1R.2R.3R.4R.5R.V2.6R.6R.7R.F{.@(.#(.6$.b_.c_.^[.d}.8R.9R.4$.0R.aR.bR.cR.dR.eR.fR.-*.Kj.gR.hR.aq.QJ.iR.jR.AF.kR.%I.lR.mR.VN.nR.s# oR.pR.qR.rR.sR.4] tR.uR.vR.",
-"wR.xR.yR.8; zR.AR.BR.CR.DR.ER.s# FR.GR.HR.IR.JR.4~ 1= _) <) KR.9= Jy Jy xi 5v B% C% D% D% D% xi C% Ll b_ b_ &p &p b_ &p 4v dn wt wt q] q] xt Sw &p C% D% Ky /C DF DF LR.st K% MR.NR._G.xF OR.3K.PR.}G.@Q.QR.7G.4M.RR.SR.&Q.TR.UR.bK.VR.vB.WR.#Q.^O.XR.YR.ZR.`R. S.:O.bM.cM..S.cM.+S..S.@S.#S.$S.fC %S.&S.*S.-I =S.-S.(Q.vA Y; rC qC '$ {$ V; (%.;S.u&.8$ $R >S.FP ,S.:$ vC vC M;.TA 2K ZQ xP 'S.)S.)S.!S.zP ~S.{S.4Q.6Q.]S.^S./S.dQ.(S.cQ._S.:S.<S.gQ.[S.}S.|S.}S.1S.1S.2S.#j 3S.2S.3S.4S.5S.6S.7S.sk tk 8S.oQ.qQ.9S.0S.aS.vQ.vQ.vQ.bS.bS.cS.dS.eS.fS.gS.hS.iS.EQ.jS.kS.lS.mS.nS.oS.pS.qS.rS.sS.tS.uS.vS.wS.xS.yS.zS.AS.BS.CS.DS.ES.FS.FS.~P.6J.~P.GS.HS.IS.JS.9H.KS.<F.aH.eH.fH.fH.=R.LS.qJ.pJ.fN.5P.6P.MS.MS.Bo.Kw.vL.NS.mN.NS.oN.qv.OS.PS.QS.RS.SS.TS.US.VS.WS.XS.YS.ZS.2R.5R.5R.eR.`S. T.+(.FA._^.s).F{.:^.<^..T.c_.t>.+T.@T.#T.$T.%T.[L `/.|L &T.@(.;y.t=.bz.*T.LL.bq.=T.-T.;T.NO.>T.,T.'T.)T.GP.s# !T.~T.{T.;K.]T.4] tR.uR.^T.",
-"/T.(T._T.8; :T.<T.[T.}T.>, #s s# |T.1T.K% _) <) 3= !C 2T.2T.2T.3T.3= WJ $s 0= Ky Ky Jy Ky cA Jy /C E% 3~ 3~ JF HF 0~ 0~ xi wq d~ d~ 4T.]e {k &p &p xi 'k 5T.:) :) 3= N% 6T.7T.8T.zF ,O.xF OR.9T.0T.lB.^O.!O.~O.4M.0K.bK.aT.&Q.bT.bK.cT.vB.dT.eT.fT.gT.hT.B; iT.jI.jT.pC X; ]I wA kT.lT.lC mT.nT.oT.pT.qT.rT.sT.k6 ,R tT.uT.vT.wT.uT.)Q.aM.-%.xT.yT.zT.AT.!Q.BT..=.CT.0x `H DT.ET.Yy FT.)S.qA GT.HT.IT.JT.KT.LT.MT.6Q.NT.OT.PT.QT.QT.RT.ST.TT.UT.VT.WT.XT.YT.ZT.Qf ~d VT.`T. U..U..U.+U.@U.#U.$U.%U.&U./d *U.*U.=U.-U.oQ.;U.>U.,U.'U.)U.!U.~U.{U.v].]U.]U.]U.^U.9:./U./U.(U._U.:U.<U.[U.}U.|U.1U.2U.3U.4U.5U.6U.7U.7U.8U.9U.0U.aU.bU.cU.dU.eU.fU.fU.gU.hU.GS.iU.jU.kU.7H._F.lU.1F.mU.nU.oU.pU.pU.qU.rU.sU.tU.uU.vU.wU.tL.ii.yL.Za.Pr.xU.yU.zU.dP.AU.BU.fP.CU.DU.1R.EU.FU.w4.FU.V2.]*.c}.c}.2^.2^.GU.GU.PS HU.IU.JU.KU.LU.d_.t>.^[.MU.NU.[L 5N OU.lz RU PU.QU.I%.w=.RU.SU.TU.UU.VU.WU.XU.YU.ZU.`U. V..V.s# +V.@V.`N.#V.$V.4] %V.&V.*V.",
-"=V.-V.;V.8; _|.>V.,V.}v 'V.)V.s# !V.~V.qH 2T.}) }) |) {C `P.I% {V.N% st 3= sq 2= :) 3= :) 2= ]C vt 0A 4~ 4~ JF & & `g `g xi 0~ 4T.`g `g xi xi Ky DF 5T.G% [) N% 6T.7T.~, ]V.Yw _G..Q.Xw ^V.%E.6I./V.QR.(V.4M.SR.bK.aT.&Q.&Q.bT.bK.bK._V.vB.:V.<V.[V.}V.|V.1V.2V.yA qK.rC vA 3V.4V.5V.jC 6V.7V.8V.9V.0V.aV.{j.=u bV.cV.dV.eV.fV.uT.gV.hV.[G $z iV.jV.kV.lV.mV.nV.oV.pV.qV.rV.sV.tV.uV.vV.wV.xV.yV.zV.AV.BV.CV.NT.OT.DV.EV./% 4P FV.GV.HV.IV.JV.3h 3h KV.Sb.LV.MV.NV.OV.PV.OV.PV.QV./5.RV.c3.c3.SV.TV.UV.VV.WV.me XV.YV.YV.ZV.PY D@.`V.[+. W..W.+W.+W.@W.#W.$W.%W.&W.*W.=W.-W.;W.>W.,W.'W.)W.!W.~W.{W.]W.^W./W.(W._W.:W.<W.8U.[W.}W.|W.1W.2W.2H.3W.4W.5W.fU.FS.FS.2H.6W.7W.8W.:F._F.9W.0W.aW.bW.aW.cW.pU.dW.eW.fW.gW.hW.sU.iW.jW.kW.lW.mW.nW.oW.pW.qW.rW.sW.Za.tW.yN.J8.uW.4>.vW.FU.V2.@(.wW.2^.xW.xW.yW.,'.y>.f*.}^.zW.AW.ul.t>.TY BW.=Q TO ]Q CW.RO 7` DW.EW.#(.e}.FW.Gu.GW.HW.IW.bo.bS.JW.ZU.KW.LW.s# pR.i2.sD.#V.$V.4] MW.NW.OW.",
-"PW.;V.QW.8; RW.{E.SW.Hy TW.UW.s# VW.WW.XW.YW.YW.`P.`P.YW.ZW.{C I% I% I% >, }) {V.H% `W.WJ 3= 3= :) 0= X.4~ EF b= b= Ww Ww Jy 4~ JF 6) 0= 4) WD 3= a= N% I% !, ], qH .X.+X.@X.4I.3K.3K.#X.$X.%X.&X.dT.*X.=X.-X.9I.;X.;X.aT.&Q.3M.>X.>X.bK.=X.;E.[V.}V.,X.|V.iT.'X.yT.)X.5S !X.~X.0C nG.{X.XF ]X.^X./X.(X._X.:X.<X.[X.}X.|X.wT.1X.2X.|X.3X.3X.lV.4X.5X.6X.7X.sv Cv Mt 8X.WH 9X.0X.aX.bX.cX.dX.xV.eX.fX.gX.0n hX.QT.DV.OT.TT.iX.jX.kX.lX.mX.nX.mX.oX.3h 3h pX.qX.rX.MV.sX.OV.OV.LV.QV.PV.QV.tX.uX.uX.vX.VV.VV.wX.xX.yX.zX.AX.BX.z@.CX.DX.DX.EX.FX.GX.HX.IX.JX.KX.LX.MX.NX.OX.PX.QX.RX.SX.TX.RX.UX.VX.VX.WX.XX.+y.YX.ZX.`X. Y..Y.+Y.@Y.#Y.$Y.%Y.&Y.*Y.bU.=Y.-Y.;Y.>Y.,Y.'Y.)Y.-Y.hU.!Y.~Y.{Y.]Y.^Y./Y.(Y._Y.aW.:Y.<Y.[Y.}Y.|Y.1Y.2Y.3Y.4Y.5Y.6Y.7Y.8Y.9Y.0Y.aY.ki.ki.GN.bY.HL.AN.AN.cY.;y.{*.dY.eY.*(.u).bX bX ''.fY.h*.@-.gY.hY.iY.jY.kY.-'.lY.eR mY.nY.oY.pY.YS cX d;.qY.rY.sY.Zp.tY.uY.vY.wY.xY.yY.zY.s# AY.BY.CY.DY.'K.4] EY.FY.GY.",
-"PW.HY.IY.8; JY.{E.KY.Hy ]V.UW.s# 0G.LY._G.ZW.YW.`P.YW.MY.MY.NY.OY.PY.I% I% |) QY.}) 2T.3T.WJ WJ 3= 0= 4~ 4~ JF & EF 4~ Jy DF X.6) 8= 3= G% H% >, I% PY.RY..X..X.+X.SY.6A Gy 3K.TY.UY.VY.%X.WY.!O.4M.cK.{O.XY.;X.;X.aT.YY.;X.3M.bK.cT.8K.ZY.`Y. Z.=E..Z.eI.jI.aM.+Z.@Z.#Z.oC cC $Z.%Z.$Z.>E 4C &Z.*Z.=Z.Zy 1K -Z.;Z.yC oV.>Z.MF ,Z.'Z.)Z.!Z.VA ~Z.{Z.{Z.Pq Lt ]Z.Lt ^Z./Z.(Z._Z.:Z.<Z.[Z.(Z.}Z.JT.|Z.1Z.2Z.3Z.4Z.FV.5Z.6Z.7Z.8Z.9Z.9Z.0Z.mX.aZ.bZ.cZ.dZ.eZ.eZ.k2 fZ.`T.OV.OV.gZ.hZ.hZ.QV.tX.iZ.jZ.kZ.kZ.lZ.6o.mZ.mZ.nZ.nZ.nZ.oZ.pZ.pZ.qZ.rZ.sZ.tZ.uZ.vZ.wZ.xZ.wZ.yZ.zZ.AZ.BZ.CZ.DZ.EZ.FZ.GZ.HZ.IZ.IZ.JZ.KZ.LZ.MZ.NZ.OZ.PZ.rU.QZ.RZ.SZ.TZ.UZ.VZ.WZ.XZ.YZ.ZZ.`Z. `..`.+`.@`.hU.9L.fU.#`.$`.%`.&`.*`.=`.-`.;`.>`.,`.'`.)`.!`.~`.{`.]`.^`./`.(`._`.:`.<`.[`.wH.}`.}`.|`.1`.2`.3`.4`.x!./).5`.t=.6`.%6.d}.W2.7`.d_.8`.9`.AW.0`.0`.jY.jY.a`.W/.b`.c`.d`.MU nY.e`.f`.g`.h`.='.9`.i`.j`.k`.l`.}+.m`.n`.o`.Sm.s# p`.q`.r`.s`.t`.4] u`.v`.w`.",
-"x`.y`.z`.8; _|.{E.A`.B`.C`.UW.s# VW.D`.pH E`.'V.NY.MY.ZW.YW.YW.PY.OY.{C I% |) F`.G`.3T.3= 3= 3= F% DF 4~ Ww Ww & 5) 6) DF 0= 0= 5T.3= 2T.{V.{C ], ~, H`.I`.+X.J`.xF K`.3K.L`.M`.N`./V.O`.P`.Q`.]O.R`.=X.&Q.S`.XY.0I.=X.T`.RR.4M.4M.8K.*X.U`.V`.W`.X`.Y`.Z`.``.'X. +. ++ +@ +# +# +$ +% +& +* += +rv - +; +~z WQ > +, +5s ' +) +! +@E ~ +{ +] +^ +/ +9) Gq ( +_ +: +< +[ +} +| +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +a +b +c +d +d +9Z.e +9Z.lX.kX.f +g +h +g +k2 i +j +k2 `T.k +l +hZ.hZ.hZ.m +'a.Hb ne n +o +p +q +r +r +s +t +t +u +v +v +w +x +y +z +A +B +C +D +E ++z.F +G +H +#z.#z.I +J +K +L +M +M +N +O +P +Q +R +S +T +w!.BJ.U +V +W +X +Y +Z +` + .+..++.+@.+#.+$.+%.+&.+*.+=.+-.+;.+>.+,.+'.+).+!.+~.+{.+].+^.+/.+(.+_.+:.+<.+[.+}.+|.+RC.1.+2.+3.+3.+4.+4.+5.+6.+7.+8.+9.+i:.0.+a.+/{.b.+Iu.c.+d.+3$.4$.gn./` TY TY 77.77.e.+f.+g.+h.+i.+@T d`.j.+d`.k.+l.+m.+n.+o.+p.+q.+r.+s.+B].t.+BU u.+v.+s# w.+x.+y.+z.+A.+4] B.+C.+D.+",
-"E.+F.+G.+8; H.+I.+u; bP J.+K.+s# L.+M.+N.+qH 'V.'V.J.+'V.MY.O.+P.+Q.+OY.{C |) H% !C WJ 3= 3= WJ 3= 0= 4~ 4~ 4~ EF R.+KR.:) 3= 3= 2T.1) S.+~, )C NY.qH T.+(G.@X.6A U.+3K.V.+W.+X.+^O.Q`.Y.+Y.+Z.+Z.+`.+0K.aT. ++-X..++wB.+++*X.7G.(V.WR.7K.N`.TY.@++!V.fI.hK.#++$++%++&++*++=++-++;++>++,++*Z.|K ; +'++)++XA hx vK !++~++j= ek {++]++^++Si /++(++/++Ef Df bk _++:++<++[++}++|++1++2++3++4++5++9V.6++7 +7++8++v} 9++0++a++b++c++d++e++f++g++h++h++i++j++k++l++m++h++m++n++o++p++p++q++r++s++t++t++u++v++w++x++y++z++z++A++B++C++D++E++YM F++G++H++h=.I++J++K++L++M++N++O++N++P++Q++R++S++T++U++V++W++W++X++Y++Z++`++ @+.@++@+@@+#@+$@+%@+&@+*@+=@+-@+;@+>@+,@+'@+)@+!@+~@+{@+]@+^@+/@+(@+_@+:@+<@+[@+}@+|@+1@+2@+3@+4@+5@+6@+7@+8@+9@+0@+a@+b@+c@+d@+e@+f@+g@+h@+i@+9{.j@+Z5.0e.k@+%n.%n.Ma.l@+m@+n@+n@+o@+p@+XS q@+r@+s@+t@+u@+v@+w@+x@+/L YS 2N hR fR y@+y@+z@+A@+B@+C@+D@+E@+U/.F@+G@+H@+{$.I@+J@+K@+s# L@+M@+N@+O@+P@+4] Q@+R@+v`.",
-"S@+T@+U@+8; V@+W@+X@+rt H`.UW.s# Y@+M.+Z@+!, YW.`@+NY.NY.O.+PY.S.+I% {C I% |) G`.!C 3T.3= 3= 3T.3T.LR. #+7= 7= KR.F% .#+N% N% >, YW.+#+H`.T.+2I.2I..X.@#+@X.N.+Gy 'O.4K.##+W.+%X.^O.XR.Q`.$#+Z.+Z.+!O.%#++++4M.WR.%#+%#+&#+*Q.*#+kB.=#+-#+;#+>#+,#+'#+jK.aM.)#+!#+~#+{#+]#+^#+/#+(#+)x _#+:#+{z u'.[C ~..<#+[#+kx kx }#+|#+/++ 8 1#+*x 8& 2#+3#+3#+D7.o) 4#+5#+6#+6#+7#+}++1++8#+9#+0#+a#+b#+c#+d#+e#+f#+g#+h#+i#+j#+k#+l#+m#+n#+o#+p#+q#+r#+0V.p#+o#+s#+k/ k/ q#+t#+u#+v#+w#+kX.x#+y#+z#+A#+B#+C#+D#+E#+.% .% k> F#+^/.G#+H#+I#+J#+K#+K#+hp L#+M#+${.h%.V&.Jx.N#+O#+P#+Q#+R#+S#+T#+U#+V#+W#+X#+Y#+Z#+`#+ $+.$++$+@$+#$+$$+%$+&$+5R `I *$+=$+-$+;$+>$+,$+'$+)$+!$+~$+{$+]$+^$+/$+($+_$+:$+:$+<$+[$+}$+|$+1$+2$+3$+4$+5$+6$+7$+8$+9$+0$+a$+b$+c$+d$+e$+f$+g$+h$+i$+j$+k$+l$+m$+n$+o$+p$+q$+r$+s$+)D.t$+u$+v$+w$+x$+y$+z$+A$+x%.Ku.ti.B$+$(.w>.'N KO C$+D$+E$+F$+F$+m.+G$+@$+H$+#L *1.I$+J$+E5.K$+L$+M$+s# N$+O$+P$+N$+Q$+4] R$+S$+T$+",
-",Z.U$+/T.8; V@+V$+X@+W$+H`.qt s# L.+!V.X$+{C YW.MY.RY.`@+YW.YW.PY.|) }) H% N% 3= 3= 3= 3) AF 3= 3= F% LR.7= F% 3T..#+2T.N% H% I% O.+P.+RY.T.+.X.Y$+(G.Z$+Z@+`$+ %+4K.M`.UY..%+X.+%X.N`./V.Y.+Q`.P`.+%+!O.dK.^O.@%+lB.5K.kB.+Q.[G.#%+'O.$%+xF %%+&%+*%+=%+-%+x`.;%+>%+,%+'%+)%+!%+~%+{%+{%+>O ]%+~r.0k.NH ^%+/%+(%+%x %x _%+:%+R= I;.R*.b&.<%+[%+}%+|%+1%+2%+3%+4%+5%+6%+7%+8%+9%+0%+a%+b%+c%+d%+e%+IT.f%+f%+g%+HT.h%+i%+j%+k%+l%+l%+m%+l%+n%+o%+p%+p%+p%+q%+p%+r%+s%+t%+u%+v%+w%+x%+y%+z%+A%+B%+C%+D%+E%+F%+G%+H%+{a.I%+I%+J%+K%+L%+M%+N%+O%+Db ne P%+Q%+R%+S%+T%+U%+V%+W%+X%+Y%+Z%+`%+';. &+.&++&+@&+#&+$&+%&+&&+*&+=&+=&+-&+;&+NU >&+,&+'&+)&+!&+~&+{&+]&+^&+^&+/&+(&+_&+:&+<&+[&+}&+|&+1&+2&+3&+4&+5&+6&+7&+8&+9&+0&+a&+b&+c&+d&+e&+f&+g&+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&+TL.F&+G&+($.H&+c.+'*.I&+e_.y>.;N J&+h`.h`.GO K&+L&+M&+L:.N&+O&+P&+,>.68.Q&+R&+s# S&+T&+U&+V&+MZ 4] D.+W&+X&+",
-"Y&+(, 2) 8; 19.Z&+`&+ *+J.+.*+s# Y.+M.++*+ZW.PY.YW.YW.YW.YW.PY.PY.|) ]G.@*+#*+$*+%*+&*+**+&*+=*+LR.F% F% F% G`.2T.2T.2T.N% M% {C P.+`@+-*+;*+>*+*%+,*+'*+`&+)*+!*+~*+$E.{*+]*+]*+W.+-#+@Q.^*+^*+/*+mB.5K.(*+_*+:*+<*+[*+}*+|*+@E._G._G.1*+2*+@#+qH |) 3*+4*+5*+6*+7*+8*+9*+0*+a*+Df &x /++b*+(++{++c*+k= |#+%x d*+d*+e*+)5.f*+s_ Ni C~ nb g*+h*+i*+j*+k*+l*+m*+n*+o*+p*+q*+r*+s*+t*+u*+v*+w*+x*+M0 y*+l2 z*+A*+B*+(< x*+C*+D*+E*+ s F*+E*+G*+H*+I*+J*+K*+L*+M*+N*+O*+P*+Q*+R*+S*+T*+U*+V*+W*+X*+Y*+Z*+`*+ =+.=++=+@=+#=+$=+%=+&=+*=+==+-=+;=+_u >=+-B GX ,=+'=+)=+!=+~=+{=+]=+^=+/=+(=+_=+:=+X%.<=+S}.[=+[=+}=+|=+1=+2=+3=+1=+4=+5=+6=+7=+8=+8=+9=+0=+a=+b=+c=+d=+e=+f=+g=+h=+i=+j=+k=+l=+l=+m=+FE n=+o=+p=+rz 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=+r&+Q=+R=+S=+T=+U=+V=+W=+X=+Y=+Z=+`=+x$+ -+.-++-+Rr.$*.@-+#-+0`.iY.;(.>(.L:.$-+)=+*1.%-+N#+bv.&-+*-+=-+--+s# ;-+>-+,-+'-+6 .4] )-+!-+!-+",
-"(, (, ~-+8; 19.{-+]-+^-+'V.qt s# /-+(-+_-+OY.PY.YW.O.+PY.|) |) |) {V.bn :-+<-+%*+[-+}-+**+}-+=*+3= 3= 3T.3T.`W.{V.U% U% I% ZW.8T.J.+]V.>*+@X.WP.*%+|-+1-+`&+!*+9M.~*+$E.{*+W.+{*+2-+kB.;#+3-+kB.>#+^V.yF 4-+5-+xF 6-+iB.7-+8-+9-+E`.~, O.+0-+>, |) {V.3*+DR.a-+b-+c-+d-+=G.e-+/h :%+f-+f-+H_.g-+%x h-+&x i-+!5.d*+g-+3#+X$.j-+v4 b6 &a k-+l-+m-+n-+o-+p-+[++q-+r-+s-+t-+u-+v-+w-+x-+y-+z-+w*+o%+H*+A-+fX.J| y*+B-+C-+y*+nf _< D-+O* D-+E-+F-+J| G-+H-+I-+J-+H-+k#+l#+K-+L-+M-+N-+O-+P-+t2.Q-+R-+S-+T-+U-+V-+7l.W-+X-+Y-+Z-+a/.`-+ ;+.;++;+@;+#;+zB $;+%;+&;+*;+=;+-;+h9.;;+>;+,;+';+);+!;+~;+{;+];+^;+/;+(;+_;+:;+:;+3d.<;+[;+};+|;+1;+2;+3;+4;+5;+6;+7;+8;+9;+0;+a;+b;+a=+c;+d;+e;+f;+g;+h;+i;+j;+k;+l;+m;+n;+o;+rz p;+qz q;+r;+s;+t;+u;+v;+x=+w;+x;+y;+z;+A;+B;+C;+D;+E;+F;+G;+H;+I;+J;+K;+L;+M;+N;+O;+P;+Q;+R;+S;+T;+U;+V;+W;+X;+Y;+Z;+`;+ >+.>++>+@>+#*.#>+5_.T/.$>+%>+&>+*>+=>+->+;>+>>+,>+Q&+'>+s# )>+!>+~>+r@.*U 4] {>+]>+I/.",
-"^>+/>+(>+8; 19.eI.]-+^-+MY._>+s# /-+:>+<>+`P.YW.P.+P.+YW.QY.QY.QY.[>+bn }>+#*+|>+}-+1>+**+[-+YP.3T.3T.G`.2T.G`.`W.2T.U% 1) ZW.~, )C E`.>*+Z$+@X.2>+|-+1-+'*+3>+4>+5>+Xw 3K.^V.'O.6>+:*+<M..Q..Q.xF xF 4-+:G._G._G.7>+8>+9>+0>+a>+6T.QY.}) b>+{V.rH c>+d>+e>+f>+g>+h>+zz.f_ i>+@5.X$.j>+3#+H_.k>+l>+dv 21.f-+m>+m>+J_.3#+3#+j>+n>+fv fv o>+p>+q>+r>+r>+s>+t>+u>+v>+w>+x>+y>+z>+A>+B>+v*+C>+z-+D>+E>+M0 U' J| F>+F>+G>+m2 54 H>+Q*+I>+J>+_b K>+L>+M>+N>+O>+P>+Q>+R>+S>+T>+U>+V>+W>+X>+Y>+Y>+Z>+`>+ ,+.,++,+@,+#,+$,+%,+&,+*,+=,+mh -,+;,+>,+,,+',+mr >y ),+!,+~,+{,+],+^,+/,+(,+_,+:,+<,+[,+},+|,+1,+2,+3,+4,+5,+6,+7,+8,+9,+0,+a,+b,+c,+d,+e,+f,+g,+h,+i,+j,+6;+k,+l,+m,+n,+o,+p,+q,+r,+s,+t,+u,+v,+w,+x,+y,+x,+z,+A,+B,+C,+D,+ME qz E,+F,+G,+H,+I,+J,+K,+L,+M,+N,+O,+P,+Q,+R,+S,+T,+U,+V,+J8 W,+X,+Y,+Z,+`,+ '+.'+*=++'+@'+#'+$'+%'+$'+&'+*'+7D.='+-'+-T.;'+>'+,'+''+)'+!'+~'+{'+]'+^'+/'+('+pZ._'+4U s# `..jU :8.Km.;U 4] :'+<'+['+",
-"fE /, V% 8; 19.fI.]-+RY.O.+}'+s# ZR.|'+@#+ZW.{C YW.YW.PY.QY.{V.2T.{V.6= $*+&*+**+&*+}-+}-+%*+1'+3T.G`.{V.}) `W.`W.2T.2T.2T.K% ], )C 2'+3'+Z$+1T.2>+1-+3>+8A *%+2>+|-+Uw ,O._G._G.Yw _G.:G..Q.,O.+E.+E.:M.4'+5'+fB.7T.6'+7'+;, {G.`W.8'+G`.DR.9'+7= 0'+a'+b'+c'+d'+e'+z] f'+Ht g'+l>+I;.'5.11.h'+l>+J_.f-+i'+j-+l>+m>+D7.j'+0e k'+Gf l'+m'+q-+n'+o'+p'+p'+q'+r'+s'+t'+u'+v'+w'+x'+y'+z'+;k A'+B'+C'+y*+D'+G>+E'+l2 J| y*+F'+F'+G'+H'+z*+I'+J'+K'+L'+M'+N'+O'+P'+Q'+R'+S'+T'+U'+V'+W'+X'+Y'+Z'+`'+ )+.)++)+@)+#)+$)+%)+&)+*)+=)+-)+;)+>)+,)+')+))+!)+~)+{)+])+^)+/)+()+_)+:)+<)+[)+})+|)+1)+2)+3)+4)+5)+6)+7)+8)+9)+0)+a)+b)+c)+d)+e)+f)+g)+h)+i)+j)+k)+l)+m)+n)+o)+p)+q)+r)+s)+t)+u)+v)+w)+x)+[J y)+z)+A)+B)+C)+D)+C)+E)+F)+G)+H)+I)+DE J)+K)+L)+M)+N)+O)+P)+Q)+Jx Fs R)+S)+T)+U)+V)+W)+X)+Y)+Z)+`)+ !+.!++!+@!+#!+94.$!+%!+&!+*!+=!+-!+;!+>!+,!+'!+)!+!!+~!+{!+]!+^!+/!+(!+_!+:!+|+.<!+[!+<!+;+.}!+|!+s# 1!+jU <8.Km.2!+4] 3!+T&+4!+",
-"5!+/>+(>+8; +a.6!+7!++#+YW.}'+s# :>+`$+UD |) {V.2T.G`.G`.8!+KR.8= KR.=*+**+9!+9!+}-+|>+**+&*+0!+3T.3T.H% H% G`.WJ a!+3= .#+N% {C ~, b!+b!+c!+UD d!+e!+B`.B`.*%+f!+cP }T.g!+_M.h!+zF zF i!+zF j!+k!+ Q.l!+m!+a>+]G.~G.WD n!+rH !C o!+p!+q!+q!+r!+s!+t!+u!+v!+w!+x!+H/ k] J+ [I.Ht l>+g#.}%+y!+l>+3#+k>+j-+b&.b&.j-+k>+:%+0e z!+A!+B!+C!+D!+E!+F!+G!+H!+I!+J!+K!+L!+M!+N!+O!+P!+t*+Q!+si R!+S!+B-+D'+T!+T!+O| U!+&} rq V!+I>+Ec z*+W!+X!+Y!+Z!+`!+ ~+.~++~+@~+#~+$~+%~+&~+*~+=~+-~+;~+>~+,~+ea.+)+'~+)~+!~+~~+{~+]~+^~+/~+(~+_~+:~+<~+[~+}~+|~+1~+2~+3~+4~+5~+6~+7~+8~+9~+0~+a~+b~+c~+d~+e~+f~+g~+h~+i~+j~+i~+5)+k~+l~+m~+n~+o~+p~+q~+r~+e)+s~+t~+u~+v~+w~+x~+y~+z~+A~+q)+s)+t)+b=+B~+C~+D~+E~+F~+G~+H~+A)+I~+J~+K~+L~+J~+J~+M~+=#.N~+O~+P~+Q~+R~+S~+T~+U~+V~+wX W~+xX X~+}*.Y~+r$.gN 0Q DR Z~+`~+ {+.{++{+@{+#{+${+%{+&{+*{+={+7m -{+;{+>{+,{+'{+){+!{+~{+{{++M.]{+^{+/{+({+_{+zf.:{+gS.fS.<{+ _.<8.*U s# 4!+-` [{+}{+;U 4] |{+1{+2{+",
-"3{+OF 4{+8; y1.5{+6{+V% o!+VD s# 7{+VJ 8{+[>+N% 3T.7= 5T.8= b= JF JF O$.9{+Hy.0{+9!+a{+%o.%o.0!+WJ 3T.G`.!C F% <) <) AF 3T.>, I% 7T.b{+b{+~, E.rt e!+W$+c{+d{+e{+e{+f{+g{+5'+g!+g!+ Q. Q.k!+}T.Vw F`.h{+i{+{G.1'+j{+]C 0A k{+7= l{+m{+f>+q!+n{+o{+p{+q{+r{+s{+t{+q] u{+l] f_ g_ 21.)5.v{+w{+)5.X$.j-+j-+j-+j-+3#+m>+dv 0e x{+y{+z{+A{+B{+C{+UF D{+x#+E{+F{+G{+H{+I{+J{+K{+L{+M{+z-+N{+O{+P{+l2 Q{+l2 )6 S' R{+E*+rq S{+P>+T{+U{+T{+V{+W{+X{+Y{+Z{+`{+ ]+.]++]+@]+#]+#]+$]+%]+&]+G|.*]+,l.=]+-]+;]+>]+,]+']+;{+)]+!]+~]+{]+]]+^]+/]+(]+_]+:]+2~+<]+[]+}]+|]+1]+2]+3]+4]+5]+6]+7]+8]+9]+0]+a]+f~+b]+c]+h~+d]+e]+f]+g]+h]+i]+j]+j]+k]+l]+e)+r~+m]+n]+o]+p]+q]+r]+s]+t]+u]+v]+w]+b;+x]+C~+D~+E~+y]+z]+A]+B]+B]+I~+C]+D]+D)+E]+dJ D)+F]+k*.P~+G]+H]+H]+I]+J]+K]+L]+M]+&f Xm ,T N]+#Z O]+P]+Q]+R]+5*.S]+S]+T]+U]+V]+W]+X]+Y]+Z]+`]+ ^+!]+.^+.^++^+@^+#^+$^+%^+/d &^+*^+=^+-^+;^+>^+PE.&L.,^+m4.'^+X5.)^+uY s# _8.!^+~^+hU *U 4] GI.{^+]^+",
-"^^+.E t'.8; jb./^+/s.(^+F% _^+s# 7A @X.:^+Q% #+Jy JF 4T.d~ &p e~ u] 8&.2v.2v.<^+8g.Ey.fg.%o.j{+3= 3= 3= :) 0= 0A ^C 0= a= N% 6T.K% `P.[^+}^+I% J% lT |^+1^+2^+J% e{+}T.fB.[^+[^+3^+(M.6T.4^+{G./M.WD WD 5^+5^+0!+6^+cA KF 4~ 7^+o{+8^+9^+0^+a^+b^+OP.c^+d^+e^+w] dA <~ f^+l] }} B] g^+;S w{+)5.X$.X$.i'+J_.dv d*+d*+h^+i^+j^+k^+l^+m^+n^+o^+p^+q^+/b r^+s^+t^+u^+v^+w^+x^+u-+l%+y^+z^+A^+B^+G>+D'+S' C^+lf C^+D^+D'+E^+F^+G^+H^+@v.I^+J^+K^+L^+M^+N^+O^+P^+Q^+R^+S^+T^+j|.U^+V^+W^+X^+Y^+&i.6j.Z^+`^+ /+K6 ./++/+@/+#/+3n $/+%/+&/+2~+*/+=/+-/+;/+>/+,/+'/+)/+!/+~/+{/+]/+^/+//+(/+_/+:/+</+[/+}/+|/+1/+2/+3/+3/+4/+5/+6/+7/+8/+a,+9/+0/+a/+b/+c/+d/+e/+f/+g/+h/+i/+j/+k/+l/+m/+n/+o/+p/+<J q/+r/+s/+t/+u/+v/+v/+w/+x/+k*.F]+dJ y/+z/+A/+*&.Zm B/+C/+B/+N]+Hd D/+Ba E/+F/+,T G/+H/+gQ I/+I/+J/+K/+L/+L/+L/+/d.M/+N/+O/+w(._d.P/+Q/+R/+S/+T/+U/+V/+W/+X/+Y/+P$ Q$ q6 Z/+`/+pt. (+.(++(+@(+#(+$(+%(+Qm.s# &(+<'+*(+=(+-(+4] ;(+HI.]^+",
-"[C >(+,(+8; /@.{w.'(+)(+!(+W# s# &%+~(+S% & {(+:C u] wt G/ z] g~ d_ y% ](+^(+CH fw.Hy./(+((+_(+:) :) :) sq 'k 4~ 4~ 0= 3= 2T.N% 6'+6'+6T.>, I% :(+e{+', ^, ^, W% {M.I% <(+[(+[(+{G.{G.}(+;O./M.|(+1(+cA 2(+3(+4(+5(+9~ c~ IF 6(+7(+8(+9(+a^+0(+a(+OP.b(+c(+[~ r] d(+dA C/ p] k] sf H_.QD.%S )5.X$.e(+;<.dv dv f(+k>+g(+h(+i(+j(+k(+l(+n^+o^+m(+Kl n(+o(+p(+q(+r(+s(+t(+u(+v(+w(+x(+P{+j#+y(+z(+A(+ ) B(+C(+M0 V' D'+D(+E(+F(+G(+H(+I(+J(+K(+L(+M(+N(+O(+P(+Q(+R(+S(+T(+eQ.U(+V(+W(+p;.^:.X(+Y(+%6 Z(+`(+ _+._++_+@_+#_+$_+%_+&_+*_+=_+-_+;_+>_+,_+'_+1| )_+!_+~_+{_+]_+^_+/_+(_+__+:_+<_+[_+}_+|_+1_+2_+3_+4_+5_+6_+7_+8_+9_+0_+a_+8/+9/+7/+b_+c_+d_+e_+f_+g_+h_+i_+j_+k_+l_+m_+n_+o_+p_+q_+r_+s_+t_+u_+v_+w_+x_+y_+z_+A_+B_+o$.C_+J]+Zm 4l H .D_+6*.$V E_+F_+G_+/7 H_+I_+G_+J_+K_+K_+L_+M_+N_+O_+P_+Q_+R_+S_+T_+U_+V_+W_+X_+Y_+Z_+`_+ :+.:++:+@:+#:+$:+%:+/> ~> ~> 1> &:+*:+=:+-:+;:+>:+p`.,:+':+):+s# !:+~:+['+U&+{:+4] ]:+['+2{+",
-"^:+^:+G/ 8; /:+{M. #+d~ <~ .$ s# (:+e{+_:+::+hA G/ d_ m] A] f_ J+ f_ <:+J+ f_ C2 d_ xt {k Ky 0= :) 2= 0= vt Jy Ky 3~ _) F% 3= 3= F`.`P.`P.`P.`P.{C F`.6T.[(+<(+F`.F`.H% 4^+rH }(+;O.[:+WD |(+}:+4~ & c= 4T.9~ b_ Sw |:+w!+1:+1:+2:+3:+UP.4:+5:+b(+b(+6:+8~ 7:+8:+9:+0:+a:+b:+c:+'= x 3#+l>+H}.d:+.x iP )5.:%+g& e:+f:+g:+h:+i:+j:+k:+l:+m:+n:+o:+p:+q:+r:+s:+t:+u:+v:+w:+x:+y:+z:+A:+fX.x:+8P B:+C:+D:+E:+F:+G:+H:+I:+J:+K:+L:+M:+N:+O:+P:+Q:+R:+S:+T:+U:+V:+W:+X:+Y:+Z:+`:+ <+.<++<+@<+#<+$<+%<+&<+*<+=<+-<+;<+><+,<+'<+)<+f[ !<+~<+X1 {<+]<+^<+/<+(<+_<+:<+<<+[<+}<+|<+1<+2<+3<+4<+5<+6<+7<+8<+9<+0<+a<+b<+c<+d<+e<+f<+9_+g<+9_+9_+h<+i<+j<+k<+l<+m<+n<+o<+p<+q<+r<+s<+n_+t<+u<+v<+q_+p_+u<+w<+x<+w_+x_+x_+y<+z<+A<+B<+C<+D<+E<+F<+G<+AE H<+#P I<+J<+K<+L<+M<+$V I_+N<+O<+P<+Q]+3*.Q<+R<+S<+T<+U<+V<+W<+X<+X<+Y<+Z<+`<+ [+ [+r} r} .[++[+@[+#[+$[+%[+&[+*[+=[+-[+;[+>[+,[+'[+)[+![+$/.~[+{[+][+A.+s# ^[+/[+Pm.([+_[+4] :[+<[+[[+",
-"}[+f_ f_ 8; V# (, |[+z] F/ 1[+s# e{+N% JF 2[+3[+eA A] }} <:+g_ g_ g_ g_ g_ 0v A] d_ xt &p cA ]C LR.0= 2= vt 'k /C 3~ _) LR.3= 2T.F`.6'+<(+6'+F`.F`.F`.F`.4^+4[+rH rH rH rH }(+WD 5[+6[+}:+2(+7[+Ww {(+[-.YD <~ Y| q] 8[+9[+0[+^B.a[+b[+0'+c^+0'+s!+0'+c[+3~ 7:+8:+9:+d[+e[+f[+g[+c:+[} (%+(%+ x >k YN m>+}#+bk Bn h[+i[+j[+k[+l[+m[+n[+m:+o[+p[+q[+r[+s[+t[+u[+v[+w[+x[+y[+z[+j#+A[+O{+B[+C[+D[+%j.E[+>5 F[+G[+H[+I[+J[+K[+L[+M[+N[+N(+YF.O[+P[+Q[+R[+S[+T[+U[+V[+W[+X[+Y[+Z[+F%+`[+ }+93..}+Q_.T{++}+@}+#}+$}+%}+&}+*}+=}+-}+;}+>}+,}+'}+)}+!}+~}+{}+]}+^}+/}+(}+(<+_}+:}+<}+[}+}}+|}+1}+2}+3}+4}+5}+6}+7}+8}+9}+0}+a}+b}+c}+d}+e}+f}+c}+g}+h}+i}+j}+k}+l}+//+m}+n}+o}+p}+q}+r}+s}+t}+u}+x_+w_+v}+P~+w}+x}+y}+z}+L .A}+dz Hx B}+Gx C}+Fx D}+Ex E}+F}+F}+Ik G}+H}+ {+--.I}+J}+cQ K}+L}+M}+Ld.O/+N}+O}+P}+V<+Q}+T_+R}+S}+T}+s} U}+V}+W}+X}+Y}+Z}+`}+ |+ |+D< E< .|+z< j} +|+j++@|+#|+$|+%|+&|+*|+#$.{8.s# =|+-|+;|+~:+>|+4] ,|+:[+'|+",
-"g_ dv g'+8; v6.)|+Dz.J+ g_ Y s# (>+R% [-.}[+_C $x o] X| A2 1} 1} 1} A2 5 X| My C2 q] dA C% /C 0= 9A 9A E% !|+9A ]C a!+3= 3= WJ h{+h{+4[+~|+!C rH a!+;O.}(+5^+5[+_) ;O.~G.5[+{|+1(+cA D/ Ll D/ D/ b_ b_ w] z] _} _} w] ]|+^|+x!+3:+/|+UP.(|+_|+:|+<|+[|+2~ s] 8:+}|+9:+9:+9:+e[+g[+ ~ yi ||+PD.'G.(%+&x lA pn 6s 1|+2|+3|+4|+5|+6|+7|+8|+9|+0|+a|+b|+c|+d|+e|+f|+`!+g|+h|+i|+AV.v:+M{+x>+j|+k|+l|+m|+n|+o|+p|+q|+r|+s|+t|+u|+v|+O[+w|+h|.8|.x|+tt.y|+S[+tt.z|+A|+B_.[S.B|+C|+K-+D|+E|+F|+G|+H|+I|+J|+K|+L|+M|+N|+O|+P|+Q|+R|+U1 S|+!}+T|+T|+U|+V|+W|+d: X|+Y|+Z|+`|+ 1+.1++1+@1+#1+$1+$1+%1+&1+*1+=1+-1+;1+>1+,1+'1+)1+!1+~1+{1+]1+]1+^1+/1+(1+_1+:1+<1+a~+[1+6^.)6.eL }1+|1+11+21+31+F4.41+51+61+71+ez Jx 81+91+01+a1+b1+c1+d1+e1+f1+f1+TL.g1+h1+h1+i1+j1+k1+=r -r l1+m1+0m n1+eQ vN FL o1+p1+q1+r1+s1+t1+u1+v1+w1+x1+y1+z1+A1+B1+C1+D1+E1+F1+O_ O_ G1+$^ V/ H1+I1+J1+K1+w) Y= A< B& B& `= L1+M1+LT s# N1+O1+P1+Q1+R1+4] S1+T1+U1+",
-"V1+~s Aq 8; 9'.+& (C W1+cv 7#.s# X% 5) X1+g_ gA C] 5 L+ Gt 1} |} A2 |} .1 X| My C2 q] Sw 5v Ky /C vt 9A sq WD $s WJ WJ rH F% WJ rH rH {G.rH _) ^C 3~ 1(+Y1+Z1+Z1+|(+|(+|(+`1+IR.9:+4(+dA %, 2+dA a_ q] y] k] n] m] y] .2++2+@2+3:+6(+3:+1:+#2+a[+9[+x!+[~ 9Z 4b 9:+9:+$2+IR.%2+f[+0B.}K.eA }} f_ &2+*2+a) 6s =2+-2+;2+>2+,2+5V.'2+)2+!2+~2+{2+]2+^2+/2+(2+_2+:2+<2+[2+}2+|2+0V.12+,2+22+32+42+52+62+72+82+92+02+a2+b2+c2+d2+e2+f2+g2+h2+V{.eQ.i2+j2+k2+l2+m2+n2+z%+w%+o2+p2+h|+q2+r2+s2+t2+u2+v2+w2+x2+y2+z2+A2+B2+C2+D2+D1 E2+D1 D1 F2+G2+H2+I2+J2+K2+L2+)| M2+N2+O2+P2+Q2+R2+S2+T2+U2+V2+W2+X2+Y2+Z2+`2+ 3+.3++3+@3+#3+$3+%3+&3+*3+=3+-3+;3+>3+,3+'3+&b.)3+!3+~3+{3+]3+^3+71+/3+(3+_3+(3+ez :3+<3+[3+}3+|3+13+23+33+43+53+63+73+83+93+03+a3+b3+c3+d3+e3+f3+g3+h3+i3+j3+k3+l3+m3+n3+o3+p3+q3+r3+s3+t3+Kd.u3+@_+v3+w3+x3+y3+z3+C1+D1+A3+B3+Q_ C3+C3+D3+E3+V~ U~ F3+E3+G3+F3+F3+H3+I3+J3+$^ K3+L3+GP s# LV M3+N3+O3+P3+4] Q3+S1+R3+",
-"P+ V+ S3+8; $$ T3+U3+G2 P+ V3+s# +& W3+h-+X3+Y3+{s <3.A2 1} 1} .1 L+ L+ 5 0v }} m] xt xt &p Ly ]C sq ]C ]C WD ;O.[:+_) 5[+_) 2= _) WD WD Z1+Z3+D/ 4b 4b `3+`3+4b 4+8:+9:+9:+`3++, Ai .4++4+7< p] p] C2 y/ X| X| B2 @4+#4+.2+$4+%4+%4+^B.x!+9[+#2+^|+&4+<~ %s 7:+%2+IR.`1+%2+0:+a:+*4+A% =4+f_ -4+Cf ;4+>4+,4+'4+)4+[E !4+~4+u(+{4+]4+x-+^4+/4+(4+-G 3C _4+:4+<4+[4+8#+}4+|4+14+24+34+44+54+64+74+84+94+04+a4+b4+c4+d4+d2+e4+f4+g4+h4+i4+j4+k4+l4+m4+[] n4+o4+p4+q4+r4+s4+t4+u4+v4+w4+x4+y4+z4+A4+B4+C4+C4+D4+E4+F4+G4+H4+I4+J4+K4+@| .| L4+M4+W|+J2+N4+H2+U|+s3 O4+P4+P4+Q4+R4+S4+T4+U4+V4+W4+X4+Y4+Z4+`4+ 5+.5++5+@5+#5+$5+%5+&5+*5+=5+60.-5+;5+fY.AW.@T.>5+qP.,5+'5+PL.)5+!5+~5+{5+]5+^5+/5+(5+_5+:5+$`.<5+[5+}5+hL.|5+15+hH.hH.:Y.25+_Y.35+RC.45+55+!F.65+75+85+95+05+a5+b5+c5+d5+e5+f5+g5+h5+i5+j5+k5+l5+m5+n5+o5+p5+q5+r5+c++s5+C1+B3+R_ t5+u5+v5+w5+x5+y5+z5+z5+A5+z5+B5+O& C5+D5+D5+sh.2~.',.s# E5+YA wP F5+G5+4] H5+KP.I5+",
-"T+ q4 Wl 8; %$ jA 21.U+ )s J5+s# T3+K5+C] l4 q7.cv 7v k4 1} 1} g4 1} 1} A2 0v o] m] a_ &p 5v cA vt ]C 9A 9A 9A WD 5[+L5+}:+}:+Ky M5+N5+1(+2(+O5+E/ dA %, Ai %, Ai P5+e[+8:+ 4+e[++, /6 ~ +4+q] 7< q] q] C2 J+ K+ 4 3 Q5+R5+0[+1:+^B.a[+S5+3:+T5+U5+V5+<~ 0~ 1~ {k 4v K5+:C xi hA W5+X5+k= Y5+Z5+;4+`5+8#+ 6+.6++6+|b @6+=k A(+#6+$6+%6+&6+*6+=6+o'+-6+;6+>6+,6+'6+)6+[] !6+qq ~6+{6+]6+^6+/6+(6+_6+:6+<6+[6+}6+|6+16+26+36+46+56+66+76+TT.NT.E{+w#+86+96+06+p4+a6+b6+c6+v4+d6+e6+f6+g6+h6+i6+j6+k6+l6+m6+n6+o6+p6+q6+r6+s6+t6+u6+v6+w6+x6+y6+z6+A6+G1 %| B6+U|+[[ C6+D6+D6+E6+F6+G6+H6+I6+J6+K6+L6+M6+N6+O6+P6+zd.Q6+R6+(r S6+T6+T6+MI %~.U6+qP.,).V6+Rj.W6+X6+Y6+Z6+`6+ 7+.7++7+@7+fU.#7+7H.8H.aH.gH.$7+%7+&7+*7+=7+-7+dW.;7+>7+,7+'7+)7+!7+~7+{7+)F.EC.]7+^7+/7+(7+_7+_7+:7+<7+[7+}7+|7+17+27+37+DO.47+57+67+oE 77+87+97+07+a7+b7+c7+W}+d7+E3+w5+e7+f7+g7+h7+i7+j7+k7+l7+m7+n7+o7+p7+j7+q7+r7+@8.s# s7+t7+u7+&A.0].4] v7+w7+x7+",
-")s f 56 8; y7+Qy z7+M_.a9 |~.s# ::+(C 6v >s N+ N+ A7+gn @1 F2 8#.@1 +1 9v 4 2 m] xt dn 5v `w Ly bA cA D% B7+C7+C7+D7+E/ E/ &p dA P5+P5++, J7 %, 7< := := := aB.+, f[+E7+a:+%, /6 $~ ~ 0B._} x] p] p] x] m] J+ 4 K+ .2+^|+e'+e'+e'+x!+<|+F7+G7+H7+I7+J7+K7+a*+Ry L7+M7+%& %& N7+Pi N7+i, O7+P7+Q7+7%+R7+S7+T7+U7+V7+W7+X7+Y7+Z7+`7+`7+ 8+.8+(_ +8++8+@8+#8+$8+%8+&8+*8+=8+S> -8+;8+>8+,8+'8+*M.)8+!8+R@+~8+(6+{8+]8+^8+Ce./8+(8+YR _8+*g.lX.|Q.)S.qA :8+<8+i9 l} [8+}8+|8+18+28+38+48+58+68+78+88+98+08+a8+b8+c8+d8+e8+f8+g8+h8+i8+x6+j8+j8+J2+k8+l8+m8+n8+o8+E1 p8+q8+_<+r8+s8+t8+u8+v8+w8+x8+y8+z8+A8+B8+C8+D8+E8+F8+G8+H8+I8+J8+Rf.+>+K8+L8+M8+N8+lt.O8+P8+Q8+R8+S8+T8++`.U8+V8+0W.W8+X8+Y8+Z8+`8+kH.mH. 9+.9+kH.+9+@9+#9+$9+%9+&9+*9+=9+-9+;9+>9+,9+'9+)9+!9+~9+{9+]9+^9+/9+(9+_9+:9+<9+@=+[9+}9+}9+|9+VM.19+29+39+49+59+69+79+m++p++D< K1+89+99+09+a9+b9+c9+d9+e9+f9+g9+h9+i9+j9+m7+k9+sq.l9+s# m9+n9+J& o9+p9+4] 7S (U q9+",
-"f Ul @a 8; r9+%x O+ 5e Wc z6.s# s9+t9+F2 7 m4 Bq Aq @x F2 F2 @1 Bt A2 |} 5 y/ d_ xt ZP.(9 u9+D% D% `w 5v (9 4b D/ P5+%, +4+7< p] 7< aB..4+ ~ := v9+w9+q% q% x9+/6 a:+aB./6 /6 /6 /6 aB.0B.w9+k] w9+_} Ny x] 2 4 @4+R5+y9+3x.(s.#G.z9+A9+B9+y{+C9+l'+D9+E9+F9+Pi j, q, q, G9+O7+H9+I9+J9+K9+L9+n*+M9+N9+O9+P9+Q9+R9+S9+T9+U9+V9+W9+X9+Y9+Z9+`9+ 0+.0++0+@0+#0+$0+H7 Z:+%0+&0+*0+=0+-0+;0+>0+,0+'0+)0+!0+~0+{0+]0+^0+/0+DV.QT.(0+/% jX._0+:0+B4 <0+t_ [0+}0+X/ Y/ =. v #( |0+10+20+30+40+50+60+60+70+80+90+80+00+a0+b0+c0+d0+e0+f0+f0+g0+h0+i0+M4+j0+k0+l0+m0+n0+(<+o0+p0+q0+r0+s0+t0+u0+v0+w0+x0+y0+z0+A0+B0+C0+D0+E0+F0+G0+H0+I0+J0+K0+ N.L0+M0+N0+O0+P0+Q0+R0+cU.S0+T0+U0+VC.V0+W0+X0+Y0+Z0+`0+ a+5F.5F.rH.4F..a++a+@a+#a+$a+%a+&a+*a+=a+-a+,9+~9+;a+>a+>a+,a+,a+'a+)a+!a+~a+{a+it.UN.]a+^a+@=+@=+/a+(a+_a+VI.:a+<a+h6.ch. .._5.[a+}a+|a+-[+%d w) 1a+2a+!@ 3a+4a+5a+6a+7a+8a+9a+0a+aa+ba+ca+-a.s# )s >5.da+ea+|$ 4] rK jI eG ",
-"fa+a9 Wc 8; 0(.d*+T+ y;..5.@].s# G+.%x l4 d a Vc Vc =s @x [ [ Q+ en Z| 1 z/ m] _} ga+xt a_ Ai (9 *4+xt ]M.+4+.4+ ~ j4 ha+n] w9+_} := 0B.q% ia+[} ja+u% [} q% x9+x9+x9+aB.$~ /6 /6 a:+)k v9+'= '= _} q] ]|+ka+la+ma+na+oa+pa+qa+ra+sa+ta+ua+J9+va+wa+xa+K9+P7+ya+Ff *x za+i~ i~ Aa+Ba+Ca+Da+Ea+Fa+Ga+Ha+Ia+Ja+{; Ka+La+Ma+Na+Oa+Pa+Qa+Ra+Sa+Ta+Ua+Va+Wa+~+ Xa+Ya+Za+`a+M-+ b+.b++b+@b+#b+$b+%b+&b+*b+=b+-b+;b+>b+,b+'b+)b+!b+~b+`Q M^.%d {b+L] +. v ]b+~. ^b+]. /b+|0+(b+_b+:b+<b+[b+}b+|b+1b+2b+3b+4b+5b+6b+7b+8b+9b+0b+ab+bb+cb+db+eb+fb+gb+hb+ib+jb+kb+:}+lb+mb+nb+ob+W_ pb+qb+rb+sb+tb+ub+j`.vb+wb+xb+wb+I0+yb+zb+do.Ab+RO.Bb+Cb+Db+Eb+Fb+Gb+Hb+Ib+Jb+Kb+Lb+Mb+Nb+Nb+Ob+Pb+Pb+Qb+ D.Rb+Sb+Tb+Ub+Vb+Vb+Rb+Wb+Xb+Yb+Zb+`b+ c+.c++c+@c+#c+$c+%c+&c+*c+=c+-c+;c+>c+;c+,c+'c+V;+)c+{a+!c+~c+{c+]c+^c+/c+(c+}C._c+:c+<c+[c+}c+}c+|c+1c+2c+3c+4c+5c+6c+%:+7c+$u 8c+9c+0c+ac+bc+cc+dc+ec+fc+gc+hc+$j.s# ic+9~.jc+kc+lc+4] -K mc+nc+",
-"fa+a9 =<.8; q<.m>+oc+2~.pc+',.s# t9+21.U+ Sl e f )s Vc =s S+ P+ Q+ G+ Z| B2 K+ n] m] m] _} ga+_} ga+]M. ~ := ~ +4+.4+qc+j4 j4 w9+_} := 0B.'= ,= ia+ja+u% ja+q% q% q% q% rc+sc+x9+ ~ $~ )k 0B.v9+w9+m] tc+uc+vc+wc+wc+xc+yc+zc+zc+Ac+Bc+Cc+Dc+l-+Ec+Fc+Gc+uc+uc+uc+Hc+1 Ic+Jc+Kc+Kc+Lc+Mc+Nc+Oc+Pc+Qc+Rc+Sc+Tc+Uc+Vc+Wc+Xc+Yc+Zc+`c+ d+.d++d+@d+#d+$d+%d+&d+*d+=d+-d+;d+>d+,d+'d+)d+!d+~d+{d+]d+22.^d+/d+;b+(d+_d+)b+:d+@) BP <d+[d+}d+|d+>. /b+y _b+48+48+1d+2d+3d+4d+5d+6d+7d+7d+8d+9d+0d+ad+bd+cd+dd+ed+fd+gd+hd+j6+id+id+jd+kd+ld+md+nd+od+pd+qd+rd+sd+td+ud+vd+wd+xd+yd+zd+Ad+Bd+Cd+Dd+Ed+Fd+Gd+WU.Hd+Id+Jd+XU.Kd+Ld+la.Md+Nd+Od+M0+Pd+Qd+Rd+Sd+Td+i&+Ud+Vd+Wd+Xd+Yd+Zb+Zd+Zd+`d+ e+.e+Wb++e+@e+#e+$e+%e+&e+*e+=e+-e+;e+;e+X6+>e+,e+'e+'e+)e+!e+~e+GF.GF.GF.)e+{e+]e+^e+/e+(e+_e+:e+jD.Tu.<e+[e+}e+|e+1e+2e+3e+4e+5e+6e+VK.7e+8e+9e+0e+ae+be+q3.+> ce+u$ de+u& .^ 9c+Xi.ee+fe+ge+he+ie+je+ke+s# le+me+ne+oe+'o.4] pe+qe+8~.",
-"U7 gb y;.8; G_.g^+}~.re+se+U;.s# te+yt ue+y;.Hi |k Ki f ,s o4 0 [ 16 Y0 xq 1 B2 [} [} n] w9+[} q% k] _} := := := ~ := := @, := := := 0B.'= p% t% u% !) u% u% [} q% '= '= ve+ve+x9+$~ /6 ~ y/ &2+'w.we+xe+ye+ze+Ae+Be+Ce+De+Ee+Ee+Fe+Ge+He+Ie+Q5+Je+Je+Ke+Le+Me+~) Ne+Oe+Oe+Pe+t% /= u% }~ Qe+Re+Se+Te+Ue+sn <0+m= l'+ra+Fe+Ve+We+Xe+Ye+Ze+`e+ f+.f++f+@f+#f+~e $f+@<.%f+&f+*f+*f+=f+-f+;f+da.l9.>f+W[+ ~+,f+'f+)f+!f+~f+#d {f+`/ ]f+^f+/f+:b+/f+/f+(f+_f+:f+<f+[f+}f+|f+1f+2f+2f+3f+4f+5f+6f+7f+cd+8f+gd+9f+0f+af+bf+cf+df+ef+ff+gf+hf+if+jf+kf+v( lf+mf+nf+of+pf+qf+rf+sf+tf+uf+vf+MC wf+xf+yf+zf+OO.Af+Af+Af+la.Bf+Cf+Df+Ef+Ff+Gf+Hf+If+Jf+Kf+Lf+Mf+Nf+Of+Pf+Qf+Rf+`b+Rf+#e+=e+`b+-e+Sf+Rf+S,+Tf+`b+Uf+Vf+Wf+Vf+!5+VJ.ZJ.ZJ.ZJ.Xf+Yf+Zf+`f+ g+Zf+.g+nl.yP.+g+@g+#g+$g+%g+IF.&g+*g+=g+-g+iz.;g+>g+,g+'g+`L.)g+!g+~g+{g+]g+^g+/g+MG.(g+_g+VT :g+<g+[g+}g+|g+1g+2g+3g+J;.4g+5g+2s.6g+7g+8g+9g+0g+s# ag+bg+cg+dg+eg+4] }e 9#.fg+",
-"Sl b9 Wc 8; gg+g^+ue+hg+ig+jg+s# g-+kg+Q).3~.&].Xc y;.b9 lg+=p n4 [ 16 )= Nl i4 i4 26 B2 B2 o] K+ B2 o] q% _} m] := ~ ~ := <= +4+7< v9+0B.ve+q% r% mg+t2 mg+u% ja+q% q% q% '= q% '= 0B.C2 u^.ng+x{+og+pg+qg+rg+sg+tg+ug+vg+vg+wg+/I.xg+yg+zg+Ag+Bg+Bg+Cg+r% Dg+Eg+Fg+Gg+Hg+Ig+Jg+Fg+rs.Kg+D'.Lg+Mg+Ng+GP Og+F` Pg+Qg+n< T= K2 /@ /@ mb d Rg+Sg+Tg+Ug+Vg+Wg+Xg+Yg+Zg+`g+ h+.h++h+@h+#h+$h+%h+&h+*h+=h+Jl.-h+;h+>h+,h+'h+18+)h+!h+~h+:b+{h+58+58+]h+^h+7d+/h+(h+_h+:h+<h+[h+}h+|h+1h+2h+3h+j6+4h+5h+6h+7h+5h+8h+8h+4h+9h+0h+ah+bh+ch+dh+eh+fh+x[ gh+hh+ih+jh+kh+~S.lh+mh+nh+oh+ph+o +qh+rh+gp 2m sh+HO.th+uh+vh+wh+xh+yh+zh+Ah+Bh+Ch+Dh+Eh+Fh+Gh+Hh+Ih+Jh+Kh+Lh+Mh+Nh+VH.Oh+>e+Ph+Oh+Qh+Rh+D;+;e+;e+~5+*e+Vf+Sh+Th+Th+Uh+PL.FN.4`.4`.Vh+Wh+Xh+Xh+Va.Jo.5u Jo.Yh+Zh+I@.`h+W6+W6+QJ. i+.i+-'++i+@i+#i+kR.$i+%i+&i+*i+=i+-i+;i+>i+t2.,i+'i+qD.#w.)i+!i+IK.FK.~i+~i+{i+]i+^i+/i+dI (i+#Y _i+5s.:i+<i+[i+s# }i+|i+1i+2i+3i+4] 4i+5i+It.",
-"U7 Yc s^.8; gg+g^+ue+6i+se+jg+s# 7i+H2 4e E_.8i+%].b'.9i+0i+09 =p Q7 16 S7 Nl 79 h4 h4 i4 7B.26 u% xq u% ia+[} q% w9+ve+x9+:= := <= := q% q% '= ve+r% (= /= /= u% ja+q% '= ve+'= [} $x (%+h-+Ff >& ai+bi+ci+di+ei+fi+gi+hi+ii+ji+ki+li+mi+ni+Dg+oi+oi+pi+qi+ri+si+ti+ui+vi+wi+vi+xi+yi+zi+3].Ai+Bi+]j.Ci+Di+<!.D-.Ei+Fi+Gi+Hi+Ii+Ji+Ki+Li+Mi+Mi+N*.Ni+f& Oi+En gE.lE.Pi+Qi+Ri+Si+Ti+Ui+Vi+Wi+Xi+Yi+Zi+`i+ j+.j++j+@j+#j+$j+%j+&j+*j+=j+-j+;j+>j+,j+'j+)j+!j+~j+{j+]j+^j+/j+(j+_j+:j+<j+<j+fd+[j+bf+}j+|j+1j+2j+3j+4j+5j+6j+7j+8j+C} B} 9j+0j+aj+bj+-<+cj+dj+ej+GK xS fj+gj+hj+ij+_'+t].jj+kj+lj+mj+nj+RM.oj+pj+qj+rj+sj+tj+uj+vj+wj+xj+yj+zj+Aj+Bj+;a+Cj+Dj+Ej+Fj+Kh++c+Gj+Hj+Ij+Jj+,e+Kj+Lj+WH.Mj+WH.FH.Nj+Oj+Pj+Qj+Rj+Sj+Tj+Uj+Vj+Wj+Xj+xP..g+Yj+Zj+`h+MJ.`j+Zh+Zh+ k+.k+`j++k+aD.@k+#k+$k+%k+]+.&k+*k+=k+-k+OO.Af+;k+>k+,k+)T.'k+)k+!k+~k+{k+]k+U1+{:.^k+sM.tM./k+(k+_k+{U ~$ yC cI 3#+}~.:k+<k+[k+s# }k+|k+1k+2k+3k+4] 4k+5k+Rz.",
-"U7 c'.y;.8; gg+)5.ue+6i+6k++8.s# 7k+8k+,<.9k+%<.E_.%].b'.0k+=h Gi n4 R7 h4 Nl )= S7 )= S7 S7 Y0 79 7B.xq u% u% [} [} ,= ve+@, @, := := v9+q% #, '= ,= (= ak+(= u% ja+,= [} sf B] dv :%+t) >& m= U/ bk+ck+dk+ek+fk+gk+hk+ik+jk+kk+lk+7B.mk+bp.nk+ok+ok+pk+qk+rk+pk+sk+tk+ti+uk+vk+wk+xk+yk+,V.V# C; zk+Ak+ws.hE Bk+Ck+D, #- Dk+Ek+Ek+Fk+Gk+L& Hk+Ik+Jk+Kk+Lk+2,.Mk+Nk+Ok+Pk+X'+Qk+Rk+Sk+S! )2+Tk+Uk+Vk+<v M! Wk+Xk+Yk+Zk+`k+ l+.l++l+@l+#l+$l+%l+&l+*l+=l+-l+;l+>l+,l+'l+)l+!l+~l+{l+]l+^l+ad+/l+[^ (l+_l+:l+<l+[l+}l+|l+1l+2l+3l+4l+5l+6l+W[ 7l+8l+9l+0l+td.al+bl+mZ.cl+dl+el+fl+gl+hl+il+jl+kl+ll+ml+nl+ol+pl+ql+|9+rl+sl+tl+ul+vl+wl+xl+yl+Bj+zl+Al+,a+;c+;a+Bl+Dj+Cl+Dl+El+XH.Fl+Gl+Hl+Il+Jl+Kl+~0.GN.Rj+Ll+u,.bY.O].Ml+Nl+Ol+Pl+Ql+Rl+ K.UJ.Sl+Tl+MJ.($.Ul+`p.x%.Mu.Rr._y.Vl+ke.Wl+Xl+Yl+Zl+`l+ m+Gd+(+.{+..m++m+@m+#m+$m+%m+&m+*m+=m+-m+;m+>m+,m+'m+)m+]>+!m+'>+~m+tV {m+{U ]m+^m+3G /m+^9.E;.(m+s# _m+:m+<m+[m+}m+4] |m+1m+2m+",
-"jb zf b'.3m+4m+)5.P}.5m+6m+@8.s# 7m+oc+8m+9m+6m+0m+E_.hg+b'.am+Rl T7 [ S7 h4 )= 89 )= !k [ [ bm+Nl .1 .1 mg+B2 B2 u% r% q% q% _= w9+q% q% ia+,= r% u% u% u% u% 26 1} f(+cm+N= c, e) n= j< dm+em+fm+gm+ik+hm+im+jm+km+Yg lm+_m.>r.wk+mm+nm+om+pm+qm+rm+rm+sm+tm+um+vm+_m._m.wm+xm+ym+zm+Am+Bm+Cm+Dm+Em+Fm+^++/++S= G~ y~ Gm+Hm+V] U] Im+<& Jm+Km+;A.Lm+}=.1X Mm+Nm+Om+Pm+Qm+Rm+Sm+Tm+Um+Vm+Wm+9K _2+Xm+Ym+Yk+Zm+`m+ n+.n++n+@n+#n+$n+%n+&n+*n+=n+%l+-n+-n+;n+>n+-n+,n+'n+)n+!n+>n+~n+{n+]n+^n+/n+(n+_n+:n+<n+[n+}n+|n+1n+2n+:-.H* 3n+4n+5n+6n+0l+7n+8n+9n+0n+an+@r On lj+lj+bn+cn+il+dn+dn+en+tQ.fn+`(.gn+hn+in+>l.jn+kn+ln+mn+nn+on+pn+qn+qn+rn+sn+tn+un+vn+wn+Hj+xn+yn+zn+An+Bn+Yf+Of.Cn+3`.Dn+Ml+En+Bn+xn+Fn+IF.@K.Gn+Hn+In+ K.Jn+G&+Ul+Kn+%*.:0.Ln+Mn+pP.5$.Nn+On+Pn+#T.67.H4.UA.Qn+Rn+Sn+Ed+AU tY.^$.K@.}+.Tn+Un+Vn+Wn+TM.Xn+&m+Yn+Zn+`n+ o+.o++o+@o+#o+$o+%o+4 .[U &o+*o+^..nI.BA =o+[s -o+9$ s# 0p.;o+>o+,o+'o+n; )o+!o+~o+",
-"xf Xc b'.3m+4m+)5.{o+]o+Fq.*a.s# ^o+c#.6i+xh.Xl.*<.%<.se+3~./o+=h rf Yg 89 vi vi )= (o+bm+[ [ [ .h ^= 79 Ic+26 xq xq _o+w% u% t% s% [} [} [} w% p% w% u% 26 1} j~ :o+*1 q_ <o+U/ [o+}o+_s.-G.|o+Q7 Q7 1o+1o+2o+3o+Zn.4o+5o+6o+7o+8o+9o+bg.`t.0o+ao+bo+co+}K.6B.d:+26 K+ do+]|+eo+fo+go+ho+io+jo+2s ko+lo+mo+.d Dq no+oo+po+qo+ro+po+so+to+H~ v4 c6 cx cM uo+vo+wo+xo+yo+zo+Ao+Bo+Co+Do+q].Eo+Fo+Go+Ho+Io+Jo+Ko+Lo+Mo+No+No+Oo+Po+Qo+Ro+So+So+To+Uo+Vo+Wo+-n+Uo+Xo+,n+Yo+Zo+`o+ p+.p++p+@p+#p+$p+%p+&p+K>+*p+=p+n2 ri ri -p+;p+DQ >p+,p+'p+@<+)p+!p+~p+{p+]p+^p+/p+(p+iQ._p+Wn+:p+<p+<p+nQ.[p+}p+|p+1p+2p+3p+4p+5p+6p+7p+8p+9p+0p+ap+bp+cp+dp+ep+fp+gp+gp+hp+wn+{e+Fl+ip+jp+kp+lp+mp+np+GF.op+pp+yl+qp+rp+sp+tp+up+UJ.vp+wp+%*.xp+yp+zp+Ap+&&.I{.J%.S@.Bp+Cp+LU.][.Dp+Ep+Fp+Gp+Hp+Ip+Jp+Kp+Lp+Mp+Np+Np+Op+w{.qZ.Pp+`V.=U.+l.Qp+Rp+Sp+Tp+Up+Vp+Wp+Xp+Yp+.o+Zp+TF.`p+ q+.q+^U +q+7G @q+#q+!X.#I $q+%q+s# [#+&q+*q+=q+-q+;q+>q+,q+'q+",
-"U7 hb b'.g; )q+!q+0; 0; a; b; s# d; )q+a; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; ~q+s# c; )q+g; 0; {q+]q+^q+/q+(q+",
-"U7 hb yf -d.G_._q+q<.J5+:q+<q+s# %$ [q+}q+@].|~.|~.|q+J5+U>.K# 1q+y` N# 2q+3q+3q+3q+y; 3q+3q+/9 &$ &$ /9 4q+5q+5q+|v 6q+7q+8q+9q+0q+0q+9q+X# aq+bq+fd.+$ &a.2@.cq+*%.2@.#$ #$ .$ KY.x; dq+eq+fq+gq+fd.hq+iq+jq+jq+;o.;o.;o.C; C; w` kq+w` w` kq+kq+lq+mq+mq+mq+mq+mq+nq+_^+U# oq+pq+qq+qq+rq+LB.QB.sq+tq+uq+vq+F; -$ $v.$v.wq+xq+/^+/^+_I.{G yq+L3.5Y zq+Aq+Bq+Cq+Dq+Eq+Fq+Gq+Hq+Iq+CG.%s.8h hZ.Jq+Kq+Lq+M$ Mq+Nq+A$ Oq+Pq+Qq+Qq+Rq+Sq+Tq+Uq+Vq+Wq+Xq+Yq+Zq+`q+_0+ r+.r++r+@r+#r+$r+%r+&r+*r+=r+-r+;r+>r+,r+O[.'r+)r+!r+AG.~r+{r+,C.]r+^r+/r+(r+_r+:r+<r+[r+)C.}r+}r+|r+1r+2r+zY 2r+3r+Sm+4r+Qm.5r+%o+6r+7r+8r+9r+0r+ar+br+cr+6c.dr+er+fr+gr+9l.hr+gr+ir+qD.jr+kr+lr+mz.mr+nr+or+':+jr+pr+qr+rr+sr+tr+jf.$+.~>+ur+vr+wr+vr+xr+ur+<8.yr+zr+Ar+++.Br+Cr+Dr+Er+vE.~:+Fr+nR.Gr+Hr+8r+Ir+Jr+Kr+Lr+Mr+Nr+Or+Pr+'K.Qr+Rr+W&+Sr+A.+Pr+Tr+Ur+Vr+Wr+XZ MZ MZ u5.Xr+Yr+Zr+8r+-^.'I.'I.`r+ s++j..s++s+.4.@s+#s+$s+s# %s+&s+fb.yz.*s+=s+-s+;s+(q+",
-"Ii zf yf Sl G2 /++>s+y!+7m+}q+q# ,s+'s+Aq S3+)s+!s+gn #x ~s+(%+0'.{s+%, (e E/ [~ @h ]s+D7+9Z %s xi xi ^s+Ly N5+1(+aA |(+5[+/s+5^+(s+-, _s+:s+<s+[s+}s+!Z.; +[s |s+1s+2s+3s+6:+4s+JR.5s+6s+7s+8s+9s+0s+;m.as+[_ '} <9 *%+d!+bs+cs+8T.)C }T.dB.ds+es+fs+gs+4^+7'+hs+hs+H% is+js+ks+ls+ms+ns+os+ps+qs+rs+ss+ts+us+vs+ZD }[+J+ f'+/h ws+Gc+xs+ys+Pt zs+As+Bs+Cs+Ds+Es+Fs+Gs+Hs+Qi+,C.Y:+3Z Is+Js+Ks+Ls+Ms+Ns+Os+Ps+Qs+Rs+Ss+Ts+Us+Vs+Ws+Xs+Ys+Zs+`s+ t+.t++t+@t+6^ #t+H} $t+%t+&t+*t+=t+-t+;t+>t+ < n! ,t+'t+)t+!t+~t+{t+]t+j4+^t+sO./t+(t+_t+:t+<t+[t+[t+}t+|t+1t+2t+3t+4t+5t+6t+Ar+++.7t+8t+9t+0t+at+bt+r`.ct+dt+et+ft+gt+ht+it+jt+kt+kt+lt+mt+nt+ot+pt+qt+rt+st+tt+ut+vt+qt+wt+xt+yt+zt+At+;'+Bt+Ct+Dt+Et+#>+Ft+Kc.sY.Kc.|$.Gt+ m+Ht+It+Jt+Kt+sj+Lt+Mt+Nt+Ot+!d+Pt+Qt+Rt+St+Tt+Ut+Vt+Wt+Xt+`m.Yt+_g+Zt+`t+`t+FG. u+.u+][++u+@u+#u+S$+$u+%u+&u+br+*u+=u+-u+;u+N@+>u+,u+'u+)u+!u+~u+{u+]u+^u+/u+(u+_u+:u+<u+[u+}u+|u+/>+:C %K 1u+2u+3}.",
-",h jb ib +a >h Aq 7m+3u+4u+A6.<u+m>+kg+5u+Ki 6u+,G.T+ >s w{+k4 PD. 1 ja+_= 7u+:= := .4+%, %, .4+]M.]M.8u+A% A% A% A% 9u+0u+au+bu+cu+du+eu+fu+@& gu+VQ Wy hu+:s iu+d'+ju+O5+ku+lu+mu+nu+ou+pu+qu+[s+ru+su+2^+cP tu+uu+uu+vu+wu+xu+0-+6T.i{+:-+5^+7'+7'+_s+n!+Z1+5[+Z1+<) _, yu+zu+Au+Bu+Cu+,M.g>+Du+Eu+a'+Fu+2[+}} $x 1 9v D2 Gu+)w.Aa+Hu+Iu+Ju+Ku+$%.Lu+Mu+Nu+Ou+Pu+Qu+Ru+Su+Tu+Uu+Kw Vu+Wu+Xu+Yu+Zu+`u+ v+.v++v+@v+#v+$v+%v+&v+*v+=v+-v+;v+>v+,v+'v+)v+!v+~v+Xk+{v+]v+^v+/v+(v+_v+_v+:v+<v+Y( [v+No }v+f' i* |v+c +v#+1v+2v+3v+4v+5v+6v+7v+8v+9v+0v+wk.av+rO.3t+bv+[m $+.5t+cv+dv+ev+9t+qD.fv+r`.'B.gv+hv+iv+jv+kv+kv+lv+mv+nv+ov+pv+qv+rv+sv+tv+uv+vv+wv+xv+rt+yv+zv+Av+Bv+Cv+Dv+GW.kl.$*.cz.>5+Ev+rP.rP.Fv+,'+;'+Gv+xF.Hv+YL.Iv+*K.Jv+Kv+Lv+Mv+Nv+Ov+Pv+Qv+jv+Rv+Sv+Tv+Uv+Vv+Wv+Xv+Yv+!C.Zv+`v+ w+{r+.w++w+@w+#w+qM.$w+%w+<g+&w+*w+=w+-w+;w+C.+>w+,w+'w+pr+0l.)w+!w+~w+{w+]w+^w+/w+(w+_w+:w+<w+[w+}w+|w+2E.db.1w+zC 2w+lW 3w+4w+",
-"Ii Yc yf yf ib jb 5w+6w+7w+Ak+8w+9w+0w+s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# s# aw+n; ;q+bw+cw+2$ dw+]z 7s ew+7w+fw+",
-"U7 gw+yf hw+iw+F_.jw+kw+-p.lw+,,.Dk.U>.|q+@].@].mw+|~.|q+J5+U>.}-.K# H# q; q; X@+u; nw+w; A`.N# ow+pw+O# O# P# =m./9 4q+5q+5q+6q+R# #$ qw+2@.2@.rw+.$ sw+3q+z; tw+gd.uw+vw+ww+xw+yw+zw+Aw+Bw+1m.Cw+mg.Dw+5A Ew+Fw+Gw+Ew+Dw+Hw+VD V# V# V# %m.Iw+lq+Iw+Jw+9q+9q+Kw+8q+V# Ew+pq+Lw+Mw+Nw+Ow+_^+oq+HB.]K.W# 1[+y` -m.Pw+9k.9k.K# $v.Qw+|u+Rw+gG.}u+Sw+Tw+Uw+Vw+Ww+Xw+Yw+}r+B_.[S.'% Zw+`w+ x+.x+`Q +x++x+@x+ /.+x+:X.#x+$x+#x+%x+&x+*x+=x+-x+;x+>x+,x+3M `Q +x+'x+)x+R$ !x+~x+{x+]x+^x+/x+/x+>% sX.(x+_x+:x+<x+x}.Z:.dW [x+}x+|x+1x+1x+2x+3x+4x+HK..U 5x+6x+7x+8x+/r+9x+0x+.q+ax+>|+bx+cx+dx+dx+Pr+ex+ex+fx+A.+ex+Pr+ex+ex+cx+gx+hx+Wv+gx+>4.Jr+Pr+9r+ix+jx+kx+lx+mx+5t+rU $+.jf.nx+1!+ox+px+qx+pr+hr+rx+sx+tx+ux+)w+ux+vx+dr+wx+6c.ar+nr+xx+dx+yx+zx+Iq+h5.Ax+lY Bx+Cx+Dx+Ex+Fx+Y+.Gx+Hx+Ix+_..0].{%.Jx+Jx+Kx+Lx+Mx+Nx+Nx+-U -U -U Ox+s..X3.Px+Qx+Rx+@s+Sx+fY _[+Td.Tx+Ux+Vx+&M.Wx+&M.'I.Xx+Yx+Zx+`x+ y+.y++y+j..,$ @y+#y+d& o& 06 $y+",
-"%y+#].b'.$].iw+F_.F_.kw+6m+-p.3~.T+ &y+>s k k Vc c >s *p 7v *y+H}._9 u% =y+7u+<= [9 7b 7b .4+8u+*4+&p &p 5v `g cA -y+Z1+5T.;y+>y+,y+'y+)y+>y+!y+M5+4s+~y+{y+]y+^y+/y+(y+_y+:y+<y+[y+}y+9-+X$+|y+1y+2y+2y+2y+3y+4y+5y+6y+7y+bs+!, I% <(+8y+eB.fs+gs+9y+;, 0y+ay+7'+by+cy+dy+ey+fy+gy+hy+iy+jy+ky+Q.+3T.:C )k co+ly+}K.'= sf my+ma+ka+ny+oy+py+qy+ry+sy+ty+uy+vy+wy+xy+yy+zy+ } Ay+By+Cy+Dy+Ey+Fy+Gy+Hy+Hy+Iy+Jy+Ky+#{ Ly+My+Ny+Oy+Py+Qy+Ry+Sy+Ty+Uy+Vy+D} G} C- Wy+Xy+Yy+Zy+`y+ z+.z+t7 s7 +z+@z+_P 8d #z+$z+%z+&z+*z+T*+=z+b9.-z+,a JC ;z+bZ.>z+El.pO.,z+'z+)z+!z+~z+{z+]z+^z+/z+/z+(z+,u+_z+:z+:z+:z+:z+<z+[z+<z+[z+}z+w.+|z+1z+[z+q`.2z+3z+4z+#i+&k+IW.''+Gt+O@.5z+6z+7z+OO.8z+9z+^a+0z+az+bz+bz+cz+*K.Kv+dz+ez+fz+gz+hz+iz+jz+kz+lz+mz+nz+Cx+oz+pz+Y` qz+rz+sz+tz+uz+vz+wz+xz+yz+zz+Az+Bz+Cz+Dz+Ez+Fz+Fz+fk.Gz+Hz+Iz+Jz+-z q'.uC :G v#.}...@.|..Kz+-@.Lz+Mz+Nz+Oz+Pz+Qz+B.+Rz+Sz+Tz+Uz+Vz+Wz+Xz+Yz+Zz+Lb.BV vp.`z+ A+f, .A+G] ",
-"+A+s^.@A+E_.jw+#A+*<.G}.6m+$A+%A+&A+*A+=A+*A+-A+=h ;A+;A+zq Vc >A+-s Xg )= ,A+z2 /= !) t% t% ak+wm+^e y% y% yi )k ZP.(9 &p 'A+)A+ek Qi !A+~A+Sw b:+{A+]A+^A+/A+(A+_A+:A+<A+[A+}A+|A+1A+2A+3A+2I.4A+5A+6A+7A+8A+9A+0A+aA+bA+cA+dA+st WJ ;O./M.5^+(s+eA+fA+gA+hA+hA+5^+I`.ey+iA+|y+jA+kA+e>+lA+mA+nA+2T.r] z% 6B.oA+_m.pA+t2 79 M+ 4x.Az.qA+oy+rA+sA+tA+uA+vA+Rk+^0+X5 Vo.)+ wA+xA+yA+zA+AA+BA+CA+DA+EA+FA+GA+HA+Fy+IA+JA+KA+LA+MA+NA+OA+PA+QA+w8+RA+SA+TA+UA+VA+E} WA+XA+YA+ZA+`A+ B+.B+So +B+@B+#B+$B+%B+&B+&B+N5 N5 *B+=B+-B+3K ;B+;B+>B+.j 4c+,B+'% #k.'B+)B+]8+!B+~B+^z+{B+]B+>u+R3+<z+^B+or+Ti+]B+/B+(B+L@+pr+/B+sx+O@+_B+<z+;K.:B+<B+[B+}B+VU.|B+vb+P@.Yl+1B+]+.2B+3B+4B+5B+6B+7B+8B+9B+DP.Av+dq.0B+aB+bB+cB+iz+dB+eB+mz+AI.fB+UT gB+hB+FP iB+eg+jB+kB+lB+mB+nB+oB+pB+qB+rB+sB+tB+uB+vB+wB+xB+yB+zB+AB+BB+CB+DB+@S b&.EB+f(+&x FB+GB+LF HB+|I ^$ ^..X+.:..W+.:..J` IB+: .-(+JB+KB+LB+MB+NB+Wz+OB+PB+PB+QB+RB+C..EP SB+TB+UB+g*+",
-"VB+WB+py.XB+YB+ZB+ZB+`B+ C+.C++C+@C+#C+$C+$C+YB+%C+&C+> *C+B# { =C+-C+[6 +~ 4_ +~ Mc )~ ;C+_e O7 >C++h |6 )) ~= lk+g4 ,C+'C+)C+%p.yq.!C+~C+{C+/~ %~ ]C+^C+/C+(C+_C+IR.:C+<) 7= 6:+6~ <C+`W.O.+[C+}C+|C+1C+2C+3C+4C+5C+6C+7C+8C+9C+0C+aC+bC+cC+dC+eC+fC+gC+hC+iC+jC+kC+lC+mC+l{+$4+V5+nC+oC+pC+qC+rC+sC+tC+uC+vC+wC+xC+yC+zC+Xl I2 0< k'+AC+O;.o#.BC+CC+DC+m4+EC+'v FC+GC+HC+{v+IC+JC+KC+6- LC+MC+NC+OC+Ws+PC+QC+RC+SC+TC+UC+VC+WC+XC+YC+ZC+`C+ D+.D++D+@D+#D+$D+%D+&D+*D+G. =D+-D+;D+>D+,D+ z+kq 'D+)D+!D+~D+{D+]D+^D+`{ /D+G|+(D+{]._D+:D+<D+8Z.[D+H> -C <6.}D+26+|D+1D+4a.2D+3D+4D+5D+6D+7D+8D+HG.9D+0D+aD+bD+cD+qD.dD+eD+fD+gD+LO.bo.hD+iD+jD+kD+pE lD+mD+BF.#I.nD+oD+oD+pD+qD+rD+sD+tD+uD+vD+wD+xD+yD+zD+AD+BD+CD+X`.DD+ED+FD+GD+-:.HD+ID+JD+KD+LD+MD+ND+OD+PD+QD+RD+SD+TD+UD+UD+VD+WD+XD+YD+ZD+YD+`D+ E+.E++E+@E+@E+#E+$E+%E+&E+*E+=E+vi -E+;E+>E+,E+'E+-%+)E+!E+z6.!/.q<.rw+<q+~E+{E+]E+^E+`x+/E+6d.(E+.y+Yw+_E+-z+!z Ny.:E+"};
-
-static const char* const image_close[]={
-"16 16 3 1",
-". c None",
-"# c #800000",
-"a c #ffffff",
-"................",
-"................",
-".##a........##a.",
-".####a.....##a..",
-"..####a...##a...",
-"....###a.#a.....",
-".....#####a.....",
-"......###a......",
-".....#####a.....",
-"....###a.##a....",
-"...###a...##a...",
-"..###a.....#a...",
-"..###a......#a..",
-"...#a........#a.",
-"................",
-"................"};
-
-static const char* const image_logo[] = {
-"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 image_icon[] = {
-"16 16 14 1",
-". c None",
-"g c #392900",
-"j c #4d3a03",
-"k c #634a08",
-"a c #806415",
-"l c #a5a5a5",
-"b c #a5a5ad",
-"# c #aa8304",
-"h c #c6cad2",
-"d c #d8ad28",
-"f c #eee6d0",
-"i c #efd69c",
-"c c #fcc80a",
-"e c #ffe79c",
-"................",
-"................",
-"................",
-"................",
-"........f.......",
-".......###....aa",
-".cccccdefedag#.#",
-"....g#defiagjka.",
-"......jaaaj.....",
-"........k.......",
-".......hkg......",
-"......hc#gg.....",
-"................",
-"................",
-"................",
-"................"};
-
-static const char* const image_home[] = {
-"20 20 188 2",
-" c None",
-". c #D2D2D2",
-"+ c #595959",
-"@ c #0F0F0F",
-"# c #B8B8B8",
-"$ c #D8D8D8",
-"% c #BFBFBF",
-"& c #9A9A9A",
-"* c #C9C9C9",
-"= c #818181",
-"- c #ADADAD",
-"; c #7D7D7D",
-"> c #3F3F3F",
-", c #A8A8A8",
-"' c #D4D4D4",
-") c #757575",
-"! c #0A0A0A",
-"~ c #B9B9B9",
-"{ c #7E7E7E",
-"] c #AAAAAA",
-"^ c #BEBEBE",
-"/ c #B4B4B4",
-"( c #6D6D6D",
-"_ c #4C4C4C",
-": c #747474",
-"< c #626262",
-"[ c #AFAFAF",
-"} c #7F7F7F",
-"| c #7C7C7C",
-"1 c #797979",
-"2 c #5E5E5E",
-"3 c #4A4A4A",
-"4 c #9F9F9F",
-"5 c #737373",
-"6 c #333333",
-"7 c #C2C2C2",
-"8 c #A4A4A4",
-"9 c #545454",
-"0 c #4E4E4E",
-"a c #4F4F4F",
-"b c #343434",
-"c c #D7D7D7",
-"d c #CFCFCF",
-"e c #717171",
-"f c #C3C3C3",
-"g c #9B9B9B",
-"h c #4D4D4D",
-"i c #898787",
-"j c #D3D2D2",
-"k c #E1E1E1",
-"l c #A7A5A5",
-"m c #535353",
-"n c #222222",
-"o c #CECECE",
-"p c #858585",
-"q c #ACACAC",
-"r c #A0A0A0",
-"s c #4E4D4D",
-"t c #888787",
-"u c #F3F3F3",
-"v c #FAFAFA",
-"w c #E0DFDF",
-"x c #A4A2A2",
-"y c #5A5959",
-"z c #525252",
-"A c #9D9D9D",
-"B c #D3D3D3",
-"C c #828282",
-"D c #9E9E9E",
-"E c #8D8D8D",
-"F c #505050",
-"G c #868585",
-"H c #D5D4D4",
-"I c #F2F2F2",
-"J c #F9F9F9",
-"K c #F7F7F7",
-"L c #E2E2E2",
-"M c #A2A1A1",
-"N c #585757",
-"O c #515151",
-"P c #3E3E3E",
-"Q c #999999",
-"R c #696969",
-"S c #989898",
-"T c #898989",
-"U c #7A7A7A",
-"V c #CCCBCB",
-"W c #F8F8F8",
-"X c #F6F6F6",
-"Y c #DDDCDC",
-"Z c #3D3D3D",
-"` c #312F2F",
-" . c #BCBCBC",
-".. c #E4E4E4",
-"+. c #F8F7F6",
-"@. c #D7BFAE",
-"#. c #AA7A5B",
-"$. c #8D5237",
-"%. c #8A6051",
-"&. c #F8F6F6",
-"*. c #EFEDEC",
-"=. c #292929",
-"-. c #565656",
-";. c #AEAEAE",
-">. c #686767",
-",. c #5F5E5E",
-"'. c #C5C5C5",
-"). c #E7E7E7",
-"!. c #D6C2B8",
-"~. c #A87E66",
-"{. c #DBC7B8",
-"]. c #DAB99F",
-"^. c #9C5021",
-"/. c #936959",
-"(. c #888888",
-"_. c #404040",
-":. c #939393",
-"<. c #A9A9A9",
-"[. c #676767",
-"}. c #C8C8C8",
-"|. c #EBEBEB",
-"1. c #D4C4C6",
-"2. c #BD9C9A",
-"3. c #E7CAB0",
-"4. c #D2945B",
-"5. c #B46830",
-"6. c #9E6A53",
-"7. c #F4F2F2",
-"8. c #8E8E8E",
-"9. c #424242",
-"0. c #A2A2A2",
-"a. c #6C6C6C",
-"b. c #616161",
-"c. c #ECECEC",
-"d. c #D1BDBE",
-"e. c #B38A83",
-"f. c #DDB18C",
-"g. c #CE7C30",
-"h. c #AB4F08",
-"i. c #A16C53",
-"j. c #F4F0F0",
-"k. c #DBDADA",
-"l. c #434343",
-"m. c #6E6E6E",
-"n. c #D1BCBD",
-"o. c #AE8177",
-"p. c #D49B6A",
-"q. c #C86C17",
-"r. c #A64A05",
-"s. c #A26D53",
-"t. c #9C9C9C",
-"u. c #AA7A6F",
-"v. c #CF925D",
-"w. c #C76A14",
-"x. c #A04405",
-"y. c #F2F0F0",
-"z. c #C8B5B6",
-"A. c #955F51",
-"B. c #C47430",
-"C. c #BE5C08",
-"D. c #963E06",
-"E. c #5C5C5C",
-"F. c #C0ADAE",
-"G. c #86452D",
-"H. c #AB5413",
-"I. c #A84C04",
-"J. c #8A3605",
-"K. c #986750",
-"L. c #E8E6E6",
-"M. c #D1D1D1",
-"N. c #959595",
-"O. c #575757",
-"P. c #666666",
-"Q. c #574E4F",
-"R. c #3A190E",
-"S. c #471E04",
-"T. c #431A01",
-"U. c #3E1702",
-"V. c #452F24",
-"W. c #696868",
-"X. c #5F5F5F",
-"Y. c #4C3330",
-"Z. c #B0B0B0",
-"`. c #787878",
-" + c #6B6B6B",
-".+ c #6C6B6B",
-"++ c #8F7E7C",
-"@+ c #BBBBBB",
-" . + @ # $ ",
-" % & * = - ; > , ' ",
-" ) ! ~ { ] ^ / ( _ & ' ",
-" : ! < [ , } | 1 2 3 4 ' ",
-" 5 6 7 8 9 0 0 a + 9 b ] c ",
-" d e f g h i j k l 9 m a n ] ' ",
-" o p q r s t j u v w x y z h 6 A ' ",
-"B C D E F G H I J J K L M N O 3 P Q ' ",
-"R S T F U V u W W W K X Y D 9 F 3 P r ",
-"8 Z ` y ...+.@.#.$.%.&.*.* e 6 =.-.;. ",
-" 7 >.,.'.).!.~.{.].^./.X c (._.:.<. ",
-" e [.}.|.1.2.3.4.5.6.7.$ 8.9.0. ",
-" a.b.}.c.d.e.f.g.h.i.j.k.g l.] ",
-" m.b.}.c.n.o.p.q.r.s.j.k.t.l.- ",
-" m.b.}.c.n.u.v.w.x.i.y.k.t.l.- ",
-" m.b.}.c.z.A.B.C.D.i.j.k.t.l.- ",
-" m.E.% k F.G.H.I.J.K.L.M.N.l.- ",
-" 0._ O.P.Q.R.S.T.U.V.W.X.l.Y.Z. ",
-" D `.m.a. + + +.+ + + +a.++@+ ",
-" ^ ^ ^ ^ ^ ^ ^ ^ "};
-
-static const char* const image_back[] = {
-"20 20 119 2",
-" c None",
-". c #788994",
-"+ c #5C6E82",
-"@ c #2D4D6A",
-"# c #596C7F",
-"$ c #244164",
-"% c #2B4B6B",
-"& c #5C6F83",
-"* c #6080A2",
-"= c #4D6A91",
-"- c #2C4C6C",
-"; c #637588",
-"> c #6D85A1",
-", c #C0D3E4",
-"' c #3F7099",
-") c #224162",
-"! c #8E9195",
-"~ c #98A1AB",
-"{ c #909BA6",
-"] c #8E99A5",
-"^ c #8D97A1",
-"/ c #A1A1A2",
-"( c #5B6E82",
-"_ c #6C839F",
-": c #D6DEE9",
-"< c #A5CFE4",
-"[ c #2B88B6",
-"} c #2C6188",
-"| c #627987",
-"1 c #8D9EB0",
-"2 c #8796A8",
-"3 c #6F8BA3",
-"4 c #173353",
-"5 c #484B51",
-"6 c #6E89A7",
-"7 c #D8DFEA",
-"8 c #BEE0EE",
-"9 c #50B1D5",
-"0 c #1A91C5",
-"a c #46A1CD",
-"b c #A8D5EA",
-"c c #D4EBF5",
-"d c #CBE7F4",
-"e c #90C3E0",
-"f c #214A70",
-"g c #4A515B",
-"h c #587497",
-"i c #CCDEEE",
-"j c #B1D7EA",
-"k c #58B7DA",
-"l c #1894C6",
-"m c #0E84BF",
-"n c #1C90C5",
-"o c #5AAFD6",
-"p c #96C9E2",
-"q c #8CC4E2",
-"r c #4F9CC9",
-"s c #104973",
-"t c #4C525E",
-"u c #55585E",
-"v c #114369",
-"w c #178EBC",
-"x c #1DAED8",
-"y c #159ED1",
-"z c #0E88C3",
-"A c #0E86C1",
-"B c #148AC0",
-"C c #198CBC",
-"D c #1989B7",
-"E c #1688B8",
-"F c #1388BA",
-"G c #0E4774",
-"H c #4D545F",
-"I c #585C64",
-"J c #0D4770",
-"K c #1A8EBE",
-"L c #2BB6DC",
-"M c #1BA4D6",
-"N c #1396C8",
-"O c #23A1C7",
-"P c #34A0C3",
-"Q c #33A0C3",
-"R c #2397BE",
-"S c #158CB9",
-"T c #0D3F6A",
-"U c #4E545E",
-"V c #57616D",
-"W c #0E4A6E",
-"X c #2495BF",
-"Y c #2BB5DA",
-"Z c #147DAA",
-"` c #0F547E",
-" . c #0C365A",
-".. c #0C3559",
-"+. c #0C3659",
-"@. c #0F3858",
-"#. c #091F39",
-"$. c #4E5056",
-"%. c #606B77",
-"&. c #0E476D",
-"*. c #1B7FAD",
-"=. c #125F8C",
-"-. c #244567",
-";. c #9B9FA6",
-">. c #9DA1A7",
-",. c #A0A4AA",
-"'. c #A4A8AE",
-"). c #A0A3A7",
-"!. c #B5B5B6",
-"~. c #5B6571",
-"{. c #0D446C",
-"]. c #104C78",
-"^. c #315171",
-"/. c #61636B",
-"(. c #102B4A",
-"_. c #315071",
-":. c #63656B",
-"<. c #2E445C",
-"[. c #828488",
-" ",
-" ",
-" . ",
-" + @ ",
-" # $ % ",
-" & * = - ",
-" ; > , ' ) ! ~ { ] ^ / ",
-" ( _ : < [ } | 1 2 3 4 5 ",
-" # 6 7 8 9 0 a b c d 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 U ",
-" V W X Y Z ` ...+.@.#.$. ",
-" %.&.*.=.-.;.>.,.'.).!. ",
-" ~.{.].^. ",
-" /.(._. ",
-" :.<. ",
-" [. ",
-" ",
-" "};
-
-static const char* const image_next[] = {
-"20 20 109 2",
-" c None",
-". c #828F9C",
-"+ c #33506E",
-"@ c #545454",
-"# c #2B4A6B",
-"$ c #285572",
-"% c #565656",
-"& c #2B4B6B",
-"* c #7BA9CA",
-"= c #37607B",
-"- c #585E61",
-"; c #ACB2B8",
-"> c #99A2AC",
-", c #848F9B",
-"' c #7E8995",
-") c #838E9A",
-"! c #8A95A0",
-"~ c #224466",
-"{ c #9FC3DB",
-"] c #AFCADE",
-"^ c #436479",
-"/ c #62696E",
-"( c #6D7E91",
-"_ c #5C7B97",
-": c #758CA3",
-"< c #8494A7",
-"[ c #8998AA",
-"} c #6D89A5",
-"| c #99C4DE",
-"1 c #A4CEE4",
-"2 c #C1D5E2",
-"3 c #436378",
-"4 c #5C6265",
-"5 c #65778A",
-"6 c #A3BBCF",
-"7 c #AED2E5",
-"8 c #D6E8F2",
-"9 c #D5E7F3",
-"0 c #B3D6EB",
-"a c #8CC2E0",
-"b c #3CA7D2",
-"c c #45A7D2",
-"d c #B5DAEB",
-"e c #C8D9E5",
-"f c #3B627C",
-"g c #606060",
-"h c #607387",
-"i c #C0CDDA",
-"j c #7AB5D5",
-"k c #5CB5D7",
-"l c #63B8DA",
-"m c #31A5D1",
-"n c #2C9ACC",
-"o c #0E81BA",
-"p c #1284BC",
-"q c #44A6D1",
-"r c #A9D3E8",
-"s c #C1D8E9",
-"t c #295673",
-"u c #616161",
-"v c #4F637A",
-"w c #BCCAD9",
-"x c #6DB6D8",
-"y c #1386B6",
-"z c #1785B3",
-"A c #1389BA",
-"B c #0F8DC3",
-"C c #0F84BC",
-"D c #0E86C1",
-"E c #32A0CF",
-"F c #47BEE0",
-"G c #2091BE",
-"H c #114264",
-"I c #636363",
-"J c #465C73",
-"K c #7FA1BD",
-"L c #599EC3",
-"M c #2396BD",
-"N c #33A1C4",
-"O c #279BC1",
-"P c #159DCA",
-"Q c #129ED0",
-"R c #1BA5D6",
-"S c #2FB8DC",
-"T c #2391BD",
-"U c #0D4568",
-"V c #666666",
-"W c #475E75",
-"X c #0F334E",
-"Y c #0A2D46",
-"Z c #092E47",
-"` c #093049",
-" . c #0D537D",
-".. c #1397C9",
-"+. c #2491BC",
-"@. c #0E4465",
-"#. c #646A6E",
-"$. c #979FA7",
-"%. c #848688",
-"&. c #878787",
-"*. c #8B8B8B",
-"=. c #8E8E8E",
-"-. c #909090",
-";. c #234363",
-">. c #1A98C6",
-",. c #6D747A",
-"'. c #2F4F6F",
-"). c #2A74A0",
-"!. c #8494A4",
-" ",
-" ",
-" . ",
-" + @ ",
-" # $ % ",
-" & * = - ",
-" ; > , ' ) ! ~ { ] ^ / ",
-" ( _ : < < [ } | 1 2 3 4 ",
-" 5 6 7 8 9 0 a b c d 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 U V ",
-" W X Y Y Z ` ...S +.@.#. ",
-" $.%.&.*.=.-.;.>.T @.,. ",
-" '.).U #. ",
-" '.H V ",
-" '.I ",
-" !. ",
-" ",
-" "};
-
-static const char* const image_zoom_in[] = {
-"20 20 240 2",
-" c None",
-". c #A0A0A0",
-"+ c #505151",
-"@ c #48494A",
-"# c #4A4A4B",
-"$ c #5A5A5B",
-"% c #D2D2D2",
-"& c #ADADAD",
-"* c #626263",
-"= c #7A7C7D",
-"- c #A9AEAF",
-"; c #BEC8CA",
-"> c #C0CDCF",
-", c #B8C3C5",
-"' c #909597",
-") c #414343",
-"! c #646464",
-"~ c #CECECE",
-"{ c #A9A9A9",
-"] c #666667",
-"^ c #ADB2B3",
-"/ c #E0EAEB",
-"( c #E5F4F6",
-"_ c #DAF3F8",
-": c #D2F0F7",
-"< c #C4EBF4",
-"[ c #CAECF3",
-"} c #CDDFE2",
-"| c #828586",
-"1 c #6E6E6E",
-"2 c #C6C6C6",
-"3 c #D6D6D6",
-"4 c #595A5A",
-"5 c #ABB2B3",
-"6 c #E7F2F4",
-"7 c #F7FDFD",
-"8 c #DEF4F9",
-"9 c #C0E8F1",
-"0 c #A6DDEA",
-"a c #96D3E0",
-"b c #A9DDE6",
-"c c #C3D8DC",
-"d c #808483",
-"e c #737373",
-"f c #9F9F9F",
-"g c #838687",
-"h c #D5E1E4",
-"i c #E9F7F9",
-"j c #F9FCFD",
-"k c #FAFDFE",
-"l c #E2F5F8",
-"m c #BAE5EE",
-"n c #9FDAE7",
-"o c #8ACEDB",
-"p c #7AC4D2",
-"q c #9FD5E1",
-"r c #A5BBBE",
-"s c #747575",
-"t c #B7B7B7",
-"u c #5A5B5B",
-"v c #B8BFC0",
-"w c #DEEDF1",
-"x c #D4EDF4",
-"y c #E4F4F8",
-"z c #C2E9F0",
-"A c #A8DEEA",
-"B c #92D6E4",
-"C c #7AC9DB",
-"D c #5FB0C2",
-"E c #7DC3D1",
-"F c #AED6DE",
-"G c #899293",
-"H c #8A8A8A",
-"I c #535455",
-"J c #C2CBCD",
-"K c #DCEFF3",
-"L c #C5E8EF",
-"M c #C3E9F0",
-"N c #BBE7EF",
-"O c #A6DEEA",
-"P c #92D5E4",
-"Q c #7ECDDF",
-"R c #63B9CD",
-"S c #4A9FAF",
-"T c #6AB8C5",
-"U c #ADDAE3",
-"V c #7D8B8D",
-"W c #686868",
-"X c #4E4F4F",
-"Y c #B4BDBD",
-"Z c #D1EAEF",
-"` c #B0DDE6",
-" . c #A2DBE6",
-".. c #9DD9E7",
-"+. c #90D5E4",
-"@. c #5EC0D4",
-"#. c #4BA3B3",
-"$. c #42919E",
-"%. c #6DBBC9",
-"&. c #A9D3DB",
-"*. c #747A7B",
-"=. c #616161",
-"-. c #676868",
-";. c #929695",
-">. c #C8DEE2",
-",. c #A3DAE5",
-"'. c #8ACDDA",
-"). c #81C9D7",
-"!. c #73C3D4",
-"~. c #5ABCCF",
-"{. c #47A3B4",
-"]. c #3C8A98",
-"^. c #4C9FAE",
-"/. c #98D1DF",
-"(. c #A8B7B9",
-"_. c #4E5253",
-":. c #787878",
-"<. c #BDBDBD",
-"[. c #565756",
-"}. c #97A0A1",
-"|. c #C1E7EF",
-"1. c #8FCEDB",
-"2. c #6DBAC9",
-"3. c #59ADBC",
-"4. c #499DAC",
-"5. c #3F8D9B",
-"6. c #4C9EAF",
-"7. c #8BCDDE",
-"8. c #C9DFE3",
-"9. c #777B7B",
-"0. c #3D3E3E",
-"a. c #A7A7A7",
-"b. c #D4D4D4",
-"c. c #898989",
-"d. c #656565",
-"e. c #9AA2A2",
-"f. c #C3E0E7",
-"g. c #A6D7E2",
-"h. c #92CFDA",
-"i. c #83C8D6",
-"j. c #89CCDA",
-"k. c #B4DFE9",
-"l. c #C6D8DC",
-"m. c #6D6E6E",
-"n. c #313536",
-"o. c #4F4829",
-"p. c #B1A675",
-"q. c #B8B8B8",
-"r. c #6C6C6C",
-"s. c #6D6D6D",
-"t. c #737F80",
-"u. c #8BA4A9",
-"v. c #AEC9CD",
-"w. c #B6D2D6",
-"x. c #AABEC3",
-"y. c #7F9A9E",
-"z. c #5F6668",
-"A. c #323433",
-"B. c #5D594B",
-"C. c #F1EBD7",
-"D. c #ABA075",
-"E. c #95917C",
-"F. c #ACACAC",
-"G. c #6F6F6F",
-"H. c #636363",
-"I. c #6A6A6B",
-"J. c #666666",
-"K. c #4F5353",
-"L. c #555858",
-"M. c #363014",
-"N. c #B29F58",
-"O. c #C1BBA4",
-"P. c #BCBCBD",
-"Q. c #707071",
-"R. c #868687",
-"S. c #9B9B9B",
-"T. c #797979",
-"U. c #6A6A6A",
-"V. c #7B7B7B",
-"W. c #9D9C99",
-"X. c #7D754B",
-"Y. c #6F6634",
-"Z. c #4B4E4F",
-"`. c #939495",
-" + c #B3B3B4",
-".+ c #B9B9B9",
-"++ c #A1A1A1",
-"@+ c #B3B3B3",
-"#+ c #AAAAAA",
-"$+ c #A8A8A8",
-"%+ c #AAA9A3",
-"&+ c #716D57",
-"*+ c #383A3B",
-"=+ c #4B4D4E",
-"-+ c #898A8A",
-";+ c #A5A5A6",
-">+ c #676768",
-",+ c #BBBBBB",
-"'+ c #D0D0D0",
-")+ c #5E5E5E",
-"!+ c #767676",
-"~+ c #AEAEAE",
-"{+ c #575758",
-"]+ c #272828",
-"^+ c #494C4D",
-"/+ c #828484",
-"(+ c #626262",
-"_+ c #6C6C6D",
-":+ c #989898",
-"<+ c #979797",
-"[+ c #5C5C5C",
-"}+ c #969696",
-"|+ c #4C4C4C",
-"1+ c #373839",
-"2+ c #4A4D4E",
-"3+ c #818283",
-"4+ c #7E7E7F",
-"5+ c #444445",
-"6+ c #434343",
-"7+ c #464646",
-"8+ c #151515",
-"9+ c #1D1D1D",
-"0+ c #959595",
-"a+ c #373737",
-"b+ c #2A2B2C",
-"c+ c #313232",
-"d+ c #3E3E3F",
-"e+ c #454545",
-"f+ c #444444",
-"g+ c #BCBCBC",
-"h+ c #919191",
-"i+ c #313131",
-"j+ c #0B0C0C",
-"k+ c #2F2F30",
-"l+ c #878788",
-"m+ c #4E4E4E",
-"n+ c #545454",
-"o+ c #B0B0B0",
-"p+ c #9A9A9A",
-"q+ c #A4A4A4",
-" . + @ @ # $ % ",
-" & * = - ; > , ' ) ! ~ ",
-" { ] ^ / ( _ : < [ } | 1 2 ",
-"3 4 5 6 7 7 8 9 0 a b c d e ",
-"f g h i j k l m n o p q r s t ",
-"u v w x y l z A B C D E F G H ",
-"I J K L M N O P Q R S T U V W ",
-"X Y Z ` ...+.Q @.#.$.%.&.*.=. ",
-"-.;.>.,.'.).!.~.{.].^./.(._.:. ",
-"<.[.}.|.1.2.3.4.5.6.7.8.9.0.a. ",
-"b.c.d.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.d.I.W J.K.L.M.N.O.P.Q.R. ",
-" t S.T.s.U.W V.W.X.Y.Z.`. +r.T..+ ",
-" ++++ @+#+$+a.{ & %+&+*+=+-+;+>+=.,+",
-" '+)+!+ ~+{+]+^+/+++(+_+",
-":+<+V.[+}+ f |+1+2+3+4+5+",
-"6+7+6+8+9+H 0+a+b+^+c+d+",
-" @+e+f+g+ h+i+j+k+l+",
-" m+n+ o+p+:+q+"};
-
-static const char* const image_zoom_out[] = {
-"20 20 240 2",
-" c None",
-". c #A0A0A0",
-"+ c #505151",
-"@ c #48494A",
-"# c #4A4A4B",
-"$ c #5A5A5B",
-"% c #D2D2D2",
-"& c #ADADAD",
-"* c #626263",
-"= c #7A7C7D",
-"- c #A9AEAF",
-"; c #BEC8CA",
-"> c #C0CDCF",
-", c #B8C3C5",
-"' c #909597",
-") c #414343",
-"! c #646464",
-"~ c #CECECE",
-"{ c #A9A9A9",
-"] c #666667",
-"^ c #ADB2B3",
-"/ c #E0EAEB",
-"( c #E5F4F6",
-"_ c #DAF3F8",
-": c #D2F0F7",
-"< c #C4EBF4",
-"[ c #CAECF3",
-"} c #CDDFE2",
-"| c #828586",
-"1 c #6E6E6E",
-"2 c #C6C6C6",
-"3 c #595A5A",
-"4 c #ABB2B3",
-"5 c #E7F2F4",
-"6 c #F7FDFD",
-"7 c #DEF4F9",
-"8 c #C0E8F1",
-"9 c #A6DDEA",
-"0 c #96D3E0",
-"a c #A9DDE6",
-"b c #C3D8DC",
-"c c #808483",
-"d c #737373",
-"e c #9F9F9F",
-"f c #838687",
-"g c #D5E1E4",
-"h c #E9F7F9",
-"i c #F9FCFD",
-"j c #FAFDFE",
-"k c #E2F5F8",
-"l c #BAE5EE",
-"m c #9FDAE7",
-"n c #8ACEDB",
-"o c #7AC4D2",
-"p c #9FD5E1",
-"q c #A5BBBE",
-"r c #747575",
-"s c #B7B7B7",
-"t c #5A5B5B",
-"u c #B8BFC0",
-"v c #DEEDF1",
-"w c #D4EDF4",
-"x c #E4F4F8",
-"y c #C2E9F0",
-"z c #A8DEEA",
-"A c #92D6E4",
-"B c #7AC9DB",
-"C c #5FB0C2",
-"D c #7DC3D1",
-"E c #AED6DE",
-"F c #899293",
-"G c #8A8A8A",
-"H c #535455",
-"I c #C2CBCD",
-"J c #DCEFF3",
-"K c #C5E8EF",
-"L c #C3E9F0",
-"M c #BBE7EF",
-"N c #A6DEEA",
-"O c #92D5E4",
-"P c #7ECDDF",
-"Q c #63B9CD",
-"R c #4A9FAF",
-"S c #6AB8C5",
-"T c #ADDAE3",
-"U c #7D8B8D",
-"V c #686868",
-"W c #CDCDCD",
-"X c #4E4F4F",
-"Y c #B4BDBD",
-"Z c #D1EAEF",
-"` c #B0DDE6",
-" . c #A2DBE6",
-".. c #9DD9E7",
-"+. c #90D5E4",
-"@. c #5EC0D4",
-"#. c #4BA3B3",
-"$. c #42919E",
-"%. c #6DBBC9",
-"&. c #A9D3DB",
-"*. c #747A7B",
-"=. c #616161",
-"-. c #C5C5C5",
-";. c #676868",
-">. c #929695",
-",. c #C8DEE2",
-"'. c #A3DAE5",
-"). c #8ACDDA",
-"!. c #81C9D7",
-"~. c #73C3D4",
-"{. c #5ABCCF",
-"]. c #47A3B4",
-"^. c #3C8A98",
-"/. c #4C9FAE",
-"(. c #98D1DF",
-"_. c #A8B7B9",
-":. c #4E5253",
-"<. c #787878",
-"[. c #C3C3C3",
-"}. c #BDBDBD",
-"|. c #565756",
-"1. c #97A0A1",
-"2. c #C1E7EF",
-"3. c #8FCEDB",
-"4. c #6DBAC9",
-"5. c #59ADBC",
-"6. c #499DAC",
-"7. c #3F8D9B",
-"8. c #4C9EAF",
-"9. c #8BCDDE",
-"0. c #C9DFE3",
-"a. c #777B7B",
-"b. c #3D3E3E",
-"c. c #A7A7A7",
-"d. c #898989",
-"e. c #656565",
-"f. c #9AA2A2",
-"g. c #C3E0E7",
-"h. c #A6D7E2",
-"i. c #92CFDA",
-"j. c #83C8D6",
-"k. c #89CCDA",
-"l. c #B4DFE9",
-"m. c #C6D8DC",
-"n. c #6D6E6E",
-"o. c #313536",
-"p. c #4F4829",
-"q. c #B1A675",
-"r. c #C5C5C3",
-"s. c #B8B8B8",
-"t. c #6C6C6C",
-"u. c #6D6D6D",
-"v. c #737F80",
-"w. c #8BA4A9",
-"x. c #AEC9CD",
-"y. c #B6D2D6",
-"z. c #AABEC3",
-"A. c #7F9A9E",
-"B. c #5F6668",
-"C. c #323433",
-"D. c #5D594B",
-"E. c #F1EBD7",
-"F. c #ABA075",
-"G. c #95917C",
-"H. c #D3D3D3",
-"I. c #ACACAC",
-"J. c #6F6F6F",
-"K. c #636363",
-"L. c #6A6A6B",
-"M. c #666666",
-"N. c #4F5353",
-"O. c #555858",
-"P. c #363014",
-"Q. c #B29F58",
-"R. c #C1BBA4",
-"S. c #BCBCBD",
-"T. c #707071",
-"U. c #868687",
-"V. c #C9C9C9",
-"W. c #9B9B9B",
-"X. c #797979",
-"Y. c #6A6A6A",
-"Z. c #7B7B7B",
-"`. c #9D9C99",
-" + c #7D754B",
-".+ c #6F6634",
-"++ c #4B4E4F",
-"@+ c #939495",
-"#+ c #B3B3B4",
-"$+ c #B9B9B9",
-"%+ c #CFCFCF",
-"&+ c #C1C1C1",
-"*+ c #B3B3B3",
-"=+ c #AAAAAA",
-"-+ c #A8A8A8",
-";+ c #AAA9A3",
-">+ c #716D57",
-",+ c #383A3B",
-"'+ c #4B4D4E",
-")+ c #898A8A",
-"!+ c #A5A5A6",
-"~+ c #676768",
-"{+ c #BBBBBB",
-"]+ c #CACACA",
-"^+ c #AEAEAE",
-"/+ c #575758",
-"(+ c #272828",
-"_+ c #494C4D",
-":+ c #828484",
-"<+ c #A1A1A1",
-"[+ c #626262",
-"}+ c #6C6C6D",
-"|+ c #989898",
-"1+ c #979797",
-"2+ c #969696",
-"3+ c #BEBEBE",
-"4+ c #4C4C4C",
-"5+ c #373839",
-"6+ c #4A4D4E",
-"7+ c #818283",
-"8+ c #7E7E7F",
-"9+ c #444445",
-"0+ c #434343",
-"a+ c #3A3A3A",
-"b+ c #1D1D1D",
-"c+ c #959595",
-"d+ c #373737",
-"e+ c #2A2B2C",
-"f+ c #313232",
-"g+ c #3E3E3F",
-"h+ c #BCBCBC",
-"i+ c #C8C8C8",
-"j+ c #919191",
-"k+ c #313131",
-"l+ c #0B0C0C",
-"m+ c #2F2F30",
-"n+ c #878788",
-"o+ c #B0B0B0",
-"p+ c #9A9A9A",
-"q+ c #A4A4A4",
-" . + @ @ # $ % ",
-" & * = - ; > , ' ) ! ~ ",
-" { ] ^ / ( _ : < [ } | 1 2 ",
-" 3 4 5 6 6 7 8 9 0 a b c d ",
-"e f g h i j k l m n o p q r s ",
-"t u v w x k y z A B C D E F G ",
-"H I J K L M N O P Q R S T U V W ",
-"X Y Z ` ...+.P @.#.$.%.&.*.=.-. ",
-";.>.,.'.).!.~.{.].^./.(._.:.<.[. ",
-"}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.[. ",
-" d.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.e.L.V M.N.O.P.Q.R.S.T.U.V. ",
-" W s W.X.u.Y.V Z.`. +.+++@+#+t.X.$+ ",
-" %+&+*+=+-+c.{ & ;+>+,+'+)+!+~+=.{+",
-" %+2 [.[.[.V.]+^+/+(+_+:+<+[+}+",
-"|+|+|+1+2+3+ % e 4+5+6+7+8+9+",
-"0+0+a+b+b+G ~ c+d+e+_+f+g+",
-"2 2 [.h+h+H. i+j+k+l+m+n+",
-" W o+p+|+q+"};
-
-static const char* const image_about[] = {
-"16 16 5 1",
-" c None",
-". c #5151C1",
-"+ c #1414C1",
-"@ c #7C7CC1",
-"# c #A5A5C3",
-" ",
-".+@ ",
-".+@ ",
-".+@ ",
-".+@ ",
-".+@@+@ @+@ @+@",
-".+@.+@ .+@ .+@",
-".+@.+@ .+@ .+@",
-".+@.+@ #.+@ #.+@",
-".+@.+@#.++@#.++@",
-"###.+..+++..++.#",
-" .++++@++++@# ",
-" .++.@#++.@# ",
-" .+@# +@# ",
-" ",
-" "};
-
-static const char* const image_about1[] = {
-"16 16 8 1",
-" c None",
-". c #C15151",
-"+ c #C3A5A5",
-"@ c #C11414",
-"# c #5151C1",
-"$ c #1414C1",
-"% c #7C7CC1",
-"& c #A5A5C3",
-" .+@+. ",
-" +.@.+ ",
-"#$% @@@@@ ",
-"#$% +.@.+ ",
-"#$% .+@+. ",
-"#$% ",
-"#$%%$% %$% %$%",
-"#$%#$% #$% #$%",
-"#$%#$% #$% #$%",
-"#$%#$% &#$% &#$%",
-"#$%#$%&#$$%&#$$%",
-"&&&#$##$$$##$$#&",
-" #$$$$%$$$$%& ",
-" #$$#%&$$#%& ",
-" #$%& $%& ",
-" "};
-
-static const char* const image_about2[] = {
-"16 16 9 1",
-" c None",
-". c #C15151",
-"+ c #C11414",
-"@ c #C17C7C",
-"# c #C3A5A5",
-"$ c #5151C1",
-"% c #1414C1",
-"& c #7C7CC1",
-"* c #A5A5C3",
-".+@ ",
-".+@ ",
-"### ",
-"$%& ",
-"$%& ",
-"$%& ",
-"$%& ",
-"$%&&%& &%& &%&",
-"$%&$%& $%& $%&",
-"$%&$%& $%& $%&",
-"$%&$%& *$%& *$%&",
-"$%&$%&*$%%&*$%%&",
-"***$%$$%%%$$%%$*",
-" $%%%%&%%%%&* ",
-" $%%$&*%%$&* ",
-" $%&* %&* "};
-
-QPixmap pixmap( const int type )
-{
- switch ( type ) {
- case pxBigLogo: // SALOME Logo
- return QPixmap( ( const char** )image_SALOME );
- case pxLogo: // small logo
- return QPixmap( ( const char** )image_logo );
- case pxAbout: // about icon
- return QPixmap( ( const char** )image_about2 );
- case pxIcon: // title icon
- return QPixmap( ( const char** )image_icon );
- case pxClose: // help window : close window
- return QPixmap( ( const char** )image_close );
- case pxHome: // help window : go home
- return QPixmap( ( const char** )image_home );
- case pxNext: // help window : go forward
- return QPixmap( ( const char** )image_next );
- case pxBack: // help window : go backward
- return QPixmap( ( const char** )image_back );
- case pxZoomIn: // help window : enlarge text size
- return QPixmap( ( const char** )image_zoom_in );
- case pxZoomOut: // help window : redure text size
- return QPixmap( ( const char** )image_zoom_out );
- }
- return QPixmap();
-}
+++ /dev/null
-// File : icons.h
-// Created : Thu Mar 27 12:01:00 2003
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 CEA
-
-#ifndef ___ICONS_h
-#define ___ICONS_h
-
-#include <qpixmap.h>
-
-enum { pxBigLogo, // SALOME Logo
- pxLogo, // small logo
- pxAbout, // about icon
- pxIcon, // title icon
- pxClose, // help window : close window
- pxHome, // help window : go home
- pxNext, // help window : go forward
- pxBack, // help window : go backward
- pxZoomIn, // help window : enlarge text size
- pxZoomOut // help window : redure text size
- };
-
-QPixmap pixmap( const int type );
-
-#endif
-
+++ /dev/null
-// File : main.cxx
-// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
-// Project : SALOME
-// Module : Installation Wizard
-// Copyright : 2002-2008 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,
-#ifdef QT_DEBUG
- const char* msg
-#else
- const char*
-#endif
- )
-{
- switch ( type ) {
- case QtDebugMsg:
- ___DEBUG___( msg );
- break;
- case QtWarningMsg:
- ___WARNING___( msg );
- break;
- case QtFatalMsg:
- ___FATAL___( msg );
- break;
- }
-}
-
-// ================================================================
-/*!
- * main
- * Program starts here
- */
-// ================================================================
-int main( int argc, char **argv )
-{
- qInstallMsgHandler( MessageOutput );
-
- QString xmlFileName;
- QString targetDirPath;
- QString tmpDirPath;
- bool has_xml = false;
- bool has_target = false;
- bool has_tmp = false;
- bool force_src = false;
- bool single_dir = false;
- for( int i = 1; i < argc; i++ ) {
- QString a = QString( argv[i] );
- if ( a == "--version" || a == "-v" ) {
- printf("SALOME Installation Wizard version %d.%d.%d (Qt version %d.%d.%d)\n",
- ( __IW_VERSION__ / 10000 ),
- ( __IW_VERSION__ / 100 % 100 ),
- ( __IW_VERSION__ % 100 ) ,
- ( QT_VERSION >> 16 ) & 0xFF,
- ( QT_VERSION >> 8 ) & 0xFF,
- ( QT_VERSION ) & 0xFF );
- printf("Copyright (C) 2002-2008 CEA\n");
- return 0;
- }
- else if ( a == "--target" || a == "-d" ) {
- has_target = true;
- if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) {
- targetDirPath = argv[i+1];
- i++;
- }
- else {
- targetDirPath = QString::null;
- }
- }
- else if ( a == "--tmp" || a == "-t" ) {
- has_tmp = true;
- if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) {
- tmpDirPath = argv[i+1];
- i++;
- }
- else {
- tmpDirPath = QString::null;
- }
- }
- else if ( a == "--file" || a == "-f" ) {
- has_xml = true;
- if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) {
- xmlFileName = argv[i+1];
- i++;
- }
- else {
- xmlFileName = QString::null;
- }
- }
- else if ( a == "--all-from-sources" || a == "-a" ) {
- force_src = true;
- }
- else if ( a == "--single-directory" || a == "-s" ) {
- single_dir = true;
- }
- }
- if ( has_xml && xmlFileName.isEmpty() ) {
- printf("Please specify the configuration XML file!\n");
- return 1;
- }
- if ( has_target && targetDirPath.isEmpty() ) {
- printf("Please specify the target directory path!\n");
- return 1;
- }
- if ( has_tmp && tmpDirPath.isEmpty() ) {
- printf("Please specify the temprary directory path!\n");
- return 1;
- }
-
- QApplication a( argc, argv );
- a.setFont( QFont( "Sans", 12 ) );
-
- if ( has_xml ) {
- QFile xmlfile(xmlFileName);
- if ( !xmlfile.exists() ) {
- QMessageBox::critical( 0,
- QObject::tr( "Error" ),
- QObject::tr( "Can't open config file:\n%1\n\nQuitting...").arg( xmlFileName ),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- return -1;
- }
- }
- SALOME_InstallWizard wizard(xmlFileName, targetDirPath, tmpDirPath, force_src, single_dir);
- a.setMainWidget( &wizard );
- wizard.show();
- return a.exec();
-}
-