ghemical-3.0.0/0000755000175000017500000000000011645354537010301 500000000000000ghemical-3.0.0/ltmain.sh0000755000175000017500000073337711645347705012067 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2" TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 ghemical-3.0.0/autogen.sh0000755000175000017500000000171411563552732012221 00000000000000#!/bin/sh ## this can be skipped if you don't want i18n. ##^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ echo "Running intltoolize" intltoolize --force --copy echo "Running libtoolize" libtoolize --force --copy echo "Removing autom4te.cache" rm -fr autom4te.cache rm -f aclocal.m4 ##OSTYPE=`uname -s` ##AMVER="-1.7" ##AMFLAGS="--add-missing" ##if test "$OSTYPE" = "IRIX" -o "$OSTYPE" = "IRIX64"; then ## AMFLAGS=$AMFLAGS" --include-deps"; ##fi ##echo "Running aclocal$AMVER" ##rm -fr autom4te.cache ; aclocal$AMVER ##echo "Running autoheader" ##autoheader ##echo "Running automake$AMVER" ##automake$AMVER $AMFLAGS ##echo "Running autoconf" ##autoconf echo "Running autoreconf" ##export AUTOCONF=autoconf-2.13 ##export AUTOHEADER=autoheader-2.13 ##export ACLOCAL=aclocal-1.4 ##export AUTOMAKE=automake-1.4 autoreconf -v -f echo "======================================" echo "Now you are ready to run './configure'" echo "======================================" ghemical-3.0.0/missing0000755000175000017500000002403211563552731011614 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.4 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 ghemical-3.0.0/config.sub0000755000175000017500000010115311634160016012166 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ghemical-3.0.0/mkinstalldirs0000755000175000017500000000370411563552732013027 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here ghemical-3.0.0/docs/0000755000175000017500000000000011645354537011231 500000000000000ghemical-3.0.0/docs/Makefile.in0000644000175000017500000004256011645347724013225 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = docs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ SUBDIRS = user-docs all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/docs/user-docs/0000755000175000017500000000000011645354540013127 500000000000000ghemical-3.0.0/docs/user-docs/formula.html0000644000175000017500000000134311563552731015404 00000000000000 Ghemical User Documentation: Formula

2.1.6 The Formula Tool

This tool will calculate the empirical formula and molecular mass for the current molecule. To use this tool right click on the view, select compute from the popup menu and then select Formula. This will open a dialog box that contains this information.

Screenshot of the formula dialog box.

Clicking Ok will close the dialog box.



Return to index
ghemical-3.0.0/docs/user-docs/using_mm.html0000644000175000017500000001132311563552731015554 00000000000000 Basic Molecular Mechanics Modelling

2. User's Manual

2.1 Molecular Mechanics Modelling

2.1.1 Quick Start : modelling Ethanol

This section covers the features required to build a simple molecule (Ethanol) using ghemical.

Step 1

After starting ghemical you must open a new project. To do this, click on the File menu and select "New"

A Screenshot of the creation of a new project.

Step 2

Select Draw from the toolbar on the left hand side. The Draw tool is the method that all bonds and atoms are added with.

Screenshot of selecting the draw mouse tool in ghemical.

Step 3

Now begin to add atoms and bonds to your molecule. The default atom type is carbon. To add a single atom to the molecule, single click on the location you would like to put the atom.

Screenshot of the first atom being added to the molecule.

To draw a bond between two atoms, single left click on the first atom in the bond, drag the mouse over to the second atom and then release the mouse button. You may also create atoms and bonds at the same time by left clicking on an existing atom, dragging the mouse to where you want to place the second atom and then releasing the mouse button.

Screenshot of two carbon atoms bonded together.

Step 4

Now that the carbon backbone is created, we can now add the missing oxygen atom, and after this step we have all the heavy (non-Hydrogen) atoms ready. To do this, we must first change the atom type from carbon to oxygen. This is done selecting the periodic table button from the top toolbar.

Screenshot of Set Current Element toolbar button.

A dialog box of the periodic table will appear. To select an element, simply click on the button corresponding to it. All further atoms drawn on the molecule will be of this element until it is changed by the same method. In this example, oxygen is selected.

Screenshot of the periodic table dialog box.

Step 5

In this step the additional oxygen atoms is added to the molecule in same way the second carbon atom was added.

Screenshot of oxygen atom being added to the carbon atoms.

Step 6

Finally, the hydrogen atoms are added. This can be done (for simple organic compounds) using an automated tool that will add hydrogen atoms (find popup-menu item Build/Hydrogens/Add).

Screenshot of hydrogen atoms being added to the carbon atoms.

Alternatively, the hydrogen atoms can be added manually, as carbon and oxygen atoms were added earlier. Now all atoms of an ethanol molecule are added.

Screenshot an ethanol molecule with all atoms added.

Step 7

Although the all the correct atoms and bonds are present, the molecule is not in the most stable conformation. Ghemical can attempt to do this for you using the Geometry Optimization tool (find popup-menu item Compute/Geometry Optimization).

Screenshot of geometry optimization being started.

After running Geometry Optimization, the bond lengths, bond angles and other structural features of the ethanol molecule are set in their ideal values (according to the molecular mechanics force field used for geometry optimization).

Screenshot of an ethanol molecule.

You can also change the bond type by clicking on the "Set the current bond type" button on the top tool bar. This button will launch a dialog box that lets you select the bond type from a list of single, double, triple and conjugated. All further bonds that you create will be on the type that you select until you change the bond type again. Conjugated bonds are drawn as a single solid tube with a second dashed tube parallel to it. Double bonds and triple bonds are drawn as two and three parallel tubes respectively.



Return to index
ghemical-3.0.0/docs/user-docs/references.html0000644000175000017500000000137011563552731016060 00000000000000


3. References

[1]    Hassinen, T.; Peräkylä, M. J Comput Chem 2001, 22, 1229-1242

[2]    Szklarz, G.; Halpert, J, J. Comput.-Aided Mol. Design 1997, 11, 265-272



Return to index
ghemical-3.0.0/docs/user-docs/import_types.html0000644000175000017500000001047311563552731016501 00000000000000 Ghemical User Documentation: Filetypes Supported by Openbabel

Filetypes Supported by Openbabel

Currently supported import types

Filetype File Suffix
Alchemy file alc
Amber PREP file prep
Ball & Stick file bs
Cacao Cartesian file caccrt
CCC file ccc
Dock 3.5 Box file box
DMol3 Coordinates file dmol
Feature File feat
DMol3 Coordinates file dmol
Feature fIle feat
GAMESS Output File gam
gamout
Feature fIle feat
HyperChem HIN file hin
Jaguar Output file jout
OpenEye Binary file bin
MacroModel File mmd
mmod
out
dat
MSI Biosim/Insight II CAR file car
MDL Isis SDF file sdf
sd
MDL Molfile file mdl
mol
MOPAC Cartensian file mopcrt
MOPAC Output file mopout
MPQC file mpqc
MSI BGF file bgf
NWChem Output file nwo
PDB file pdb
QChem Output file qout
SMILES file smi
Sybyl Mol2 file mol2
UniChem XYZ file unixyz
ViewMol file vmol
XYZ file xyz

Currently supported export types

Filetype File Suffix
Alchemy file alc
Amber PREP file prep
Ball & Stick file bs
Cacao Cartesian file caccrt
Cacao Internal file caccint
CAChe MolStruct file cache
ChemDraw Connection Table file ct
CSD CSSR file cssr
Dock 3.5 Box file box
DMol3 Coordinates file dmol
Feature File feat
Fenske-Hall Z-Matrix file fh
GAMESS Input File gam
gamint
inp
Gaussian Cartensian file gcart
Gaussian Input file gau
GROMOS96 (A) file gr96A
GROMOS96 (nm) file gr96N
HyperChem HIN file hin
Jaguar Input file jin
OpenEye Binary file bin
MacroModel File mmd
mmod
out
dat
MDL Isis SDF file sdf
sd
MDL Molfile file mdl
mol
MOPAC Cartensian file mopcrt
MSI BGF file bgf
MSI Quanta CSR file csr
NWChem Input file nw
PDB file pdb
Report file report
QChem Input file qcin
SMILES file smi
SMILES Fix file fix
Sybyl Mol2 file mol2
Tinker XYZ file txyz
Titles file txt
UniChem XYZ file unixyz
ViewMol file vmol
XED file xed
XYZ file xyz


Return to index ghemical-3.0.0/docs/user-docs/index.html0000644000175000017500000000657111563552731015056 00000000000000

Ghemical v2.00

User's Manual


Copyright (C) 2001- Christopher Rowley, Tommi Hassinen.


Table of Contents

1. Introduction
1.1 Changes from version 1.00
2. User's Manual
2.1 Molecular Mechanics Modelling
2.1.1 Quick Start : modelling Ethane
2.1.2 Changing the 3D-views
2.1.3 Add Hydrogens Tool
2.1.4 Geometry Optimization
2.1.5 Labeling Atoms and Bonds
2.1.6 The Formula Tool
2.1.7 Measuring Tools
2.1.8 Visualization Tools
2.1.9 Molecular Dynamics
2.1.10 Molecular Dynamics Viewer
2.1.11 Conformational Search Tools
2.1.12 1D and 2D Energy vs. Torsion Plots
2.1.13 Sequence Builder
2.1.14 Ribbon Model visualization tool
2.1.15 The Setup Dialog

2.4 Appendix 1 : Amino Acid Abbreviations Table
2.5 Appendix 2 : Filetypes for Import and Export
3. References



ghemical-3.0.0/docs/user-docs/labels.html0000644000175000017500000000425511563552731015206 00000000000000 Ghemical User Documentation: Labels

2.1.5 Labeling Atoms and Bonds

Ghemical can add labels to atoms or bonds that indicate one of their properties. These labels can be added by right clicking on the view window, selecting Render->Rendering Mode and then selecting the type of label from the list.
Screenshot of labels menu.

Label Nothing

Label Nothing is the setting for displaying no labels. This can be used to remove labels from the molecule that are no longer needed. Label Nothing is the default setting.

Label Index

This setting labels each atom with its index number. The index number is the number that each atom was added to the molecule starting at 0 (ie the first atom added to the molecule is indexed 0, the second is indexed 1...). This number is how ghemical refers to the atom internally, and is used when ghemical needs for the user to specify a particular atoms, such as in the conformational search tools.

Label Charge

This setting labels each atom with an approximiate charge. When an atom is initially added it will have a charge of 0. To calculate its charge either an energy calculation or a geometry optimization must be run first.

Label Element

This setting labels each atom with its one or two letter abbreviation.

Label AtomType

This setting labels each atom with its atom type. The first digit represents the atomic number and the last digit represents the bonding of the atom. Each atom will be displayed as type 0xffffff until a geometry optimization or energy calcuation.

Label BondType

This setting labels each bond with its bond type. Single bonds are labeled with an S, conjugated bonds are labeled with a C, double bonds are labeled with a D, and triple bonds are labeled with a T.



Return to index
ghemical-3.0.0/docs/user-docs/Makefile.in0000644000175000017500000004700111645347724015124 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = docs/user-docs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(helpfilesdir)" DATA = $(helpfiles_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ SUBDIRS = images helpfilesdir = $(datadir)/ghemical/@APPVERSION@/user-docs helpfiles_DATA = *.css *.html EXTRA_DIST = $(helpfiles_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/user-docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/user-docs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-helpfilesDATA: $(helpfiles_DATA) @$(NORMAL_INSTALL) test -z "$(helpfilesdir)" || $(MKDIR_P) "$(DESTDIR)$(helpfilesdir)" @list='$(helpfiles_DATA)'; test -n "$(helpfilesdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(helpfilesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(helpfilesdir)" || exit $$?; \ done uninstall-helpfilesDATA: @$(NORMAL_UNINSTALL) @list='$(helpfiles_DATA)'; test -n "$(helpfilesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(helpfilesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(helpfilesdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(helpfilesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-helpfilesDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-helpfilesDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-helpfilesDATA install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-helpfilesDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/docs/user-docs/setup_dialog.html0000644000175000017500000001070211563552731016415 00000000000000 Ghemical User Documentation: Objects: The Setup Dialog

2.1.15 The Setup Dialog

In previous versions of ghemical, there were separate projects for molecular mechanical models, quantum mechanical models, and simplified force field protein models. These have now been unified into a single project type and the model used to perform calculations can be chosen using the Setup Dialog. To open the Dialog, right click on the view menu and select Compute->Setup from the pop-up menu. To select a one of the setups (QM, MM, etc), select one of the notebook pages on the Dialog.

Image 1 of the Setup Dialog.

The available setups options are:

  • All MM

  • This model specifies a molecular mechanical model. The three options are the default mm1 engine, the periodic engine, and an experimental engine, prmfit.

  • All QM

  • In this model, a quantum mechanical model is used for all the atoms in the molecule. Currently we have no QM code of our own, but we use code "borrowed" from external programs MOPAC7 and MPQC instead. The code from MOPAC7 is included in the package, but the MPQC code is external (at the moment, at least). In order to use the features from MPQC program, you have to compile and install the MQPC program (both version 1.2.5 and newer versions 2.0 are supported) to your system, and recompile the Ghemical program and libghemical with the MPQC front-end feature enabled. This makes the working MPQC engine available, in addition to the default MOPAC7 engine.

    The MOPAC7 engine runs MOPAC7 code in cartesian coordinate (XYZ) mode. User can select one of the following hamiltonians: MNDO, MINDO/3, AM1, PM3. When using MOPAC7 engine please note the following:

    1. MOPAC7 code relies heavily on use of global variables, so it is not possible to run multiple instances of MOPAC7 at the same time in a same program; you have to start multiple programs at different working directories instead.
    2. The MOPAC7 engine creates intermediate files like FOR005 and SHUTDOWN to the working directory when run. In normal operation these files are removed when not needed anymore, but if something goes wrong you have to manually remove these files!
    3. Due to a bug in MOPAC7, the first three atoms should not be linearly arranged; this might affect for example carbon dioxide molecule O=C=O. When studying cases like this, draw the molecule in a sequence 1-3-2 instead of sequence 1-2-3 to avoid the problem.
    4. The hamiltonians in MOPAC7 support (at least?) the following elements: H, C, N, O, F, P, S, Cl, Br, I. If you try to use elements not supported by MOPAC7, the program will stop.

    The charge and multiplicity are specified in the text boxes below the selection box for the computational engine. Only singlet states with even number of electrons are supported at the moment.

    The MPQC engine runs the MPQC closed-shell hartree-fock code with no symmetry. User can select any of the standard ab initio basis sets from STO-3G to 6-31G** using computation engine class selection box.

    Image 2 of the Setup Dialog.

    Both QM engines can run geometry optimization, and draw ESP, MO, and MO density plots. Also a specific energy-level diagram view is available that shows molecular orbital indices, energies (in eV) and occupation (you can use mouse tools Zoom and Translate XY to manipulate the diagram):

  • All SF

    This model is a Simplified Force Field for modelling proteins [1]. Protein molecules are modelled using 1-3 "virtual atoms" per amino acid residue in this kind of model. Several chains and disulphide brides are supported, but non-natural amino acids are not. Files can be imported in the PDB file format. The force field is fully functional with an initial parameter set, and algorithms for geometry optimization and molecular dynamics are available.

    There are no sophisticated tools for model building yet, but they might be coming later.

  • mixed QM/MM, mixed MM/SF

  • These are experimental modes and are not yet functional.



Return to index
ghemical-3.0.0/docs/user-docs/conf_search_tools.html0000644000175000017500000000221411563552731017427 00000000000000 Ghemical User Documentation: Formula

2.1.11 Conformational Search Tools

The Geometry Optimization procedure only is capable to find the nearest local minimum energy structure. To search for lower-energy minima, the following conformational search tools are available:

  1. Random Conformational Search : All rotatable bonds of a molecule are randomly rotated, and a short Geometry Optimization is carried out.
  2. Systematic Conformational Search : Similar to above, but the bonds are rotated in a systematical rather than random manner, making it possible to exhaustively search all possible conformations (however there is a practical limit of around 6 rotatable bonds because of rapidly increasing computational costs).
  3. Monte Carlo Search : An another search method based on (partially) random selection of acceptable conformations.



Return to index
ghemical-3.0.0/docs/user-docs/visualization.html0000644000175000017500000001244211563552731016642 00000000000000 Ghemical User Documentation: Objects: ESP Plane

2.1.8 Visualization Tools

The following visualization tools are available:

  1. A ribbon model for polypeptides. Click here for a description of this feature.
  2. An intersection plane object (a 2D plane that displays information using colour of the plane).
  3. A 3D volume rendering object (made of several stacked transparent plane objects).
  4. A 3D isosurface object. An isosurface is a surface defined by the set of points that have a constant value for a function. Ie f(x, y, z)=k. Only the points for which f(x, y, z)=k are on the surface. For example, in the case of electrostatic potential, the function f(x,y,z) is an expression of electrostatic potential for a set of point charges.

The objects are capable to display any continuous mathematical functions. Currently supported functions are:

  • Electrostatic potential (in MM models calculated using the atomic charges, and QM models using calculated electron density).
  • (in QM models only) Molecular Orbital Wavefunctions.
  • (in QM models only) Electron Density.

Examples:

As an example, let's create an electrostatic potential plane parallel to the XY plane of the project view. The electrostatic potential of a point is defined as the energy required to move a unit positive charge from infinity to the point. The plane is displayed in the project window, superimposed on the molecule. The plane is colored to indicate the sign and magnitude of the electrostatic potential at that point. Areas with negative electrostatic potentials (a unit positive charge moving from infinity to that point is spontaneous) are colored blue. The move negative the electrostatic potential is, the lighter the shade of blue is. Areas with positive electrostatic potentials are colored red, with the more positive areas colored with a lighter shade of red.

To create an electrostatic potential plane right click on the project window. Now select Objects and then ESP Plane.


Screenshot of selecting the ESP plane object.

A window will appear that looks like this:


Screenshot of the ESP plane parameters command interpreter box.

Typically only advanced users should modify the text in this box. Click ok to run the calculation You may change the orientation of the plane if you want to have it intersect a different section of the molecule. To do this, make sure the ESP Plane object is selected (after the plane is added it is automatically selected, although using other features may change the selection to a different object). To select the object, click on the Project View tab and then highlight the ESP Plane entry on the list of objects. The ESP Plane is now selected.


Screenshot of selecting the ESP plane object.

Click back onto the camera view. Holding the shift key down will cause any translation, rotation or orbit to only affect the ESP plane.

Algorithm

The molecular mechanical model of Ghemical uses a relatively simple algorithm to generate an electrostatic potential plane. At each point on the plane the electrostatic potential is calculated. It is calculated by adding together the electrostatic potential energy between the point and each atom. The charge used for each atom is the same as the charge displayed by the Measure tool (an approximate charge based on the type of atom and what it is bonded to, ie the oxygen of an alcohol is given a charge of -0.25). Once the energy is calculated, a color for that point is calculated based on the sign and magnitude of the energy.

Applications

Electrostatic potential planes can be used predict the location of an electrophilic attack. An electrophile will typically attack in areas near an electrostatic potential minimum, which are colored blue.

Notes

The quantum mechanical model can also produce an electrostatic potential plane. The algorithm used by by the quantum mechanical model is more complex than the one used by the molecular mechanics model, so the plane produced may contain different features. The quantum mechanical electrostatic potential plane of cytosine shows a minimum next to the nitrogen where experimental data shows an electrophile will attack. The molecular mechanics ESP plane does not show this minimum.

Screenshot of molecular mechanics ESP plane of cytosine. Screenshot of quantum mechanics ESP plane of cytosine.

Return to index
ghemical-3.0.0/docs/user-docs/ribbon.html0000644000175000017500000000274011563552731015214 00000000000000 Ghemical User Documentation: Objects: Ribbon model

2.1.14 Ribbon model

Ghemical can produce a ribbon model of a polypeptide. In this model, a ribbon is drawn along the polypeptide backbone of the protein, parallel to the peptide plane. Ghemical will detect the secondary structure of the protein and colour the ribbon accordingly:

  • Beta strand - green
  • Loops - blue
  • Alpha helix - red

The width of the ribbon is increased in helicies and strands. Typically, you will change the rendering of the molecule to Nothing using the ribbon model so that you can see the ribbon without the interference from ball-and-stick model of the protein. It is also much faster to view and change the perspective of the ribbon model, rather than the fully rendered protein. It can take a considerable length of time make a ribbon object of a large protein.

Example

This is a ribbon model of Cytochrome P450 3A4 (CYP3A4) generated in ghemical, based on the consensus structure modeled by Szklarz and Halpert (Szklarz and Halpert, 1997).

Screenshot of ribbon model of CYP3A4.

Return to index
ghemical-3.0.0/docs/user-docs/measure.html0000644000175000017500000000672011563552731015404 00000000000000 Measuring

2.1.7 Measuring Tools

Ghemical can measure the distance between atoms, the angle formed by three atoms and the dihedral angle formed by four atoms. In molecular mechanics models ghemical will can also measure an approximate charge on an atom.

Measuring Charges

To find the approximate charge of an atom, click on the Measure button on the left toolbar. Now left click on the atom you want to measure the charge of. The approximate charge will be displayed in the log box automatically. The output in the log box at the bottom of the window will look something like this:

charge: -0.25

Note this only applies to molecular mechanics models; in the current version it is not possible to measure charges in quantum mechanical models.

Measuring Distances

To measure the distance between two atoms (such as a bond length), click on the Measure button on the left toolbar. Now left click on the atoms you want to measure the distance between. The color of the atoms selected for measurement will be changed to pink. The distance between the two atoms will automatically be displayed in the log box once the second atom is selected. The output in the log box will look something like this:

distance: 0.150697 nm

The atoms do not have to be bonded; the distance between any two atoms in a molecule can be measured.

Measuring Angles

To measure the angle formed by three atoms, click on the measure button on the left toolbar. Now left click on the three atoms that form the angle you want to measure. The order that they are selected is important; the first edge of angle that is measured are the the line between the first and second atoms and the second edge is between the second and third atoms, making the second atom the central atom. When the third atom is selected, the angle is automatically displayed in the log box. The output in the log box will look something like this:

angle: 109.471 deg

As with distances, the atoms forming the angle to not have to bonded to each other.

Measuring Torsions

To measure the torsion angle formed by four atoms click on the measure button on the left toolbar. Now select the four atoms for the torsion angle. The first three atoms selected will define a plane. The angle displayed is the angle between this plane and a line from the fourth atom to the second. The torsion angle is displayed in the log box as soon as the fourth angle is selected. The output in the log box will look something like this:

torsion: 120 deg

Notes

Atoms that have been selected can be unselected by clicking on them again. All atoms are automatically unselected when a fourth atom is selected. There are toggle buttons on the top toolbar labeled "The distance measuring mode," "The angle measuring mode," and "The torsion measuring mode" In the current release these toggle buttons have no effect on the measuring tool.



Return to index
ghemical-3.0.0/docs/user-docs/filetypes.html0000644000175000017500000001125111563552731015742 00000000000000 Ghemical User Documentation: Filetypes Supported by Openbabel

2.5 Appendix 2 : Filetypes Supported by Openbabel

Currently supported import types

Filetype File Suffix
Alchemy file alc
Amber PREP file prep
Ball & Stick file bs
Cacao Cartesian file caccrt
CCC file ccc
Dock 3.5 Box file box
DMol3 Coordinates file dmol
Feature File feat
DMol3 Coordinates file dmol
Feature fIle feat
GAMESS Output File gam
gamout
Feature fIle feat
HyperChem HIN file hin
Jaguar Output file jout
OpenEye Binary file bin
MacroModel File mmd
mmod
out
dat
MSI Biosim/Insight II CAR file car
MDL Isis SDF file sdf
sd
MDL Molfile file mdl
mol
MOPAC Cartensian file mopcrt
MOPAC Output file mopout
MPQC file mpqc
MSI BGF file bgf
NWChem Output file nwo
PDB file pdb
QChem Output file qout
SMILES file smi
Sybyl Mol2 file mol2
UniChem XYZ file unixyz
ViewMol file vmol
XYZ file xyz

Currently supported export types

Filetype File Suffix
Alchemy file alc
Ball & Stick file bs
Cacao Cartesian file caccrt
Cacao Internal file caccint
CAChe MolStruct file cache
ChemDraw Connection Table file ct
CSD CSSR file cssr
Dock 3.5 Box file box
DMol3 Coordinates file dmol
Feature File feat
Fenske-Hall Z-Matrix file fh
GAMESS Input File gam
gamint
inp
Gaussian Cartensian file gcart
Gaussian Input file gau
GROMOS96 (A) file gr96A
GROMOS96 (nm) file gr96N
HyperChem HIN file hin
Jaguar Input file jin
OpenEye Binary file bin
MacroModel File mmd
mmod
out
dat
MDL Isis SDF file sdf
sd
MDL Molfile file mdl
mol
MOPAC Cartensian file mopcrt
MSI BGF file bgf
MSI Quanta CSR file csr
NWChem Input file nw
PDB file pdb
Report file report
QChem Input file qcin
SMILES file smi
SMILES Fix file fix
Sybyl Mol2 file mol2
Tinker XYZ file txyz
Titles file txt
UniChem XYZ file unixyz
ViewMol file vmol
XED file xed
XYZ file xyz


Return to index
ghemical-3.0.0/docs/user-docs/using_qm.html0000644000175000017500000001140511563552731015561 00000000000000


2.2 Quantum-Mechanical Modelling

SORRY, THESE DOCS ARE OBSOLETE!
The alternative "Quantum Mechanics" project is for quantum-mechanical models.

Currently we have no QM code of our own, but we use code "borrowed" from external programs MOPAC7 and MPQC instead. The code from MOPAC7 is included in the package, but the MPQC code is external (at the moment, at least). In order to use the features from MPQC program, you have to compile and install the MQPC program (both version 1.2.5 and newer versions 2.0 are supported) to your system, and recompile the Ghemical program with the MPQC front-end feature enabled. This brings the working MPQC engine available, in addition to the default MOPAC7 engine.

Select "Compute/Setup..." from the popup menu to check the settings for your calculation; hamiltonian / basis set to be used and total charge of the system. Only singlet states with even number of electrons are supported at the moment.

The MOPAC7 engine runs MOPAC7 code in cartesian coordinate (XYZ) mode. User can select one of the following hamiltonians: MNDO, MINDO/3, AM1, PM3. When using MOPAC7 engine please note the following: 

  1. MOPAC7 code relies heavily on use of global variables, so it is not possible to run multiple instances of MOPAC7 at the same time in a same program; you have to start multiple programs at different working directories instead.
  2. The MOPAC7 engine creates intermediate files like FOR005 and SHUTDOWN to the working directory when run. In normal operation these files are removed when not needed anymore, but if something goes wrong you have to manually remove these files! 
  3. Due to a bug in MOPAC7, the first three atoms should not be linearly arranged; this might affect for example carbon dioxide molecule O=C=O. When studying cases like this, draw the molecule in a sequence 1-3-2 instead of sequence 1-2-3 to avoid the problem. 
  4. The hamiltonians in MOPAC7 support (at least?) the following elements: H, C, N, O, F, P, S, Cl, Br, I. If you try to use elements not supported by MOPAC7, the program will stop.

The MPQC engine runs the MPQC closed-shell hartree-fock code with no symmetry. User can select any of the standard ab initio basis sets from STO-3G to 6-31G**.

Both QM engines can run geometry optimization, and draw ESP, MO, and MO density plots. Also a specific energy-level diagram view is available that shows molecular orbital indices, energies (in eV) and occupation (you can use mouse tools Zoom and Translate XY to manipulate the diagram):

an energy-level diagram

It is possible to convert MM models to QM models and vice versa. Therefore you are adviced to draw your molecule as a MM model, optimize it to get a good starting structure, and then to convert it into a QM model for further refinement and inspection. To save your QM model, you are adviced to convert it into MM model and then save it (currently there is no file format specified for QM models).

The popup menu in a "Quantum Mechanics" project currently has the following features:

  • File : Open and save project files, Close the project.
  • Settings : Change the current element. 
  • Render : Add/remove views/lights. Change the rendering mode and projection. Add an energy-level diagram view. 
  • Objects : Add visualization objects (planes, surfaces etc) and remove them. 
  • Compute : Select the engine and other settings, compute energy, geometry optimization. 
  • Set Current Orbital : Here you can set the orbital index for visualization. 
  • Convert to MM project : Copies the contents of this project into a new MM project, and optionally closes this project.




ghemical-3.0.0/docs/user-docs/geometry_optimization.html0000644000175000017500000000773011563552731020406 00000000000000 Ghemical User Documentation - Geometry Optimization (Molecular Mechanics)

2.1.4 Geometry Optimization

The Geometry Optimization tool will attempt to change the geometry of the current molecule into the lowest energy conformation. To activate this tool, right-click on the view window, select Compute from the popup menu, and then click on Geometry Optimization.

Screenshot of menu sequence to select geometry optimization.

A dialog box called Geometry Opimization will appear. The three textboxes in the dialog box control when to end the geometry optimization. Typically only advanced users should change these fields. The "Maximum number of steps:" field represents the maximum number of iterations that should be performed before stopping the optimization. The "Gradient cutoff:" field represents how low the length of the gradient vector can be before the optimization stops. The "Delta E Cutoff:" field represents the minimum change in potential energy between steps. Each of these checks can be disabled by unchecking the checkbox to the left of each field.

Screenshot of the geometry optimization dialog box.

Click on Ok to start the optimization. The conformation of the molecule will change slightly at each step. In the log box, rows of text will be printed. The first column indicates the step in the optimization currently being executed. The second column is the potential energy of the molecule at that step (this number will hopefully decrease). The third column is length of the gradient vector in the last step. The forth column is the change in potential energy from the previous step to the current step. The last line on the column indicates which termination condition caused the optimization to stop. "the nsteps termination test was passed." means that the optimization went though the maximum number of steps allowed. This typically means that ghemical could find a more optimum geometry if the optimization was allowed to run for longer. If an optimization terminates because of this, running a second geometry optimization might further optimize the geometry. Ghemical may also print "the grad termination test was passed." or "the delta_e termination test was passed." if the optimization stopped because of either of those conditions.

Example

This example shows the geometry optimization of cyclohexane. Initially this molecule is planar and the bond lengths are not equal.

Screenshot of cyclohexane before geometry optimization.

A geometry optimization with the standard parameters is run. The optimization stops at step 175 because the change in potential energy (delta_e) is below 1x10-7.


Geometry Optimization log box example

Starting Geometry Optimization (molecular mechanics, engine = mm1_eng_exp1 : the default engine). Cycle Energy Gradient Step Delta E 0 34064.44003 1.3967e+05 1.7976e-01 ********** 1 20986.58834 1.3858e+05 2.0000e-01 1.3078e+04 2 5039.47883 6.6726e+04 3.4326e-01 1.5947e+04 3 3452.48739 3.5081e+04 5.8809e-02 1.5870e+03 [snip] 219 3.71368 3.0765e-01 2.1412e-06 3.1535e-07 220 3.71368 2.3451e-01 6.3032e-07 6.7052e-08 the delta_e termination test was passed.

After optimization the cyclohexane molecule is now in the chair conformation with all C-C bond lengths equivalent.

Screenshot of cyclohexane after MM1 geometry optimization.

Return to index
ghemical-3.0.0/docs/user-docs/add_hydrogens.html0000644000175000017500000000302611563552731016551 00000000000000 Ghemical User Documentation - Add Hydrogens Tool

2.1.3 Add Hydogens Tool

Instead of individually adding hydrogens to your molecule you may use the Add Hydrogens tool to add hydrogens to all open valences. After you've added all the non-hydrogen atoms to your molecule, right click on the display and select Build from the popup menu. Select Hydrogens from this menu and then pick Add.

Screenshot of add hydrogens selection.

Ghemical will then automatically add hydrogens to your molecule. Ghemical makes a simple attempt to position the hydrogens at their most stable orientation (tetrahedral in the case of carbon) however the molecule should still be optimized to get a more accurate geometry.

Screenshot of the add hydrogens tool.

Remove Hydrogens

Ghemical also provides a tool to remove all hydrogen atoms from the molecule. It is activated by right clicking on the view, selecting Build from the menu, selecting Hydrogens from the submenu and then selecting Remove

Screenshot of the remove hydrogens tool

Return to index.
ghemical-3.0.0/docs/user-docs/aa_table.html0000644000175000017500000000364011563552731015471 00000000000000 Ghemical User Documentation: Appendix: Amino Acid Abbreviations Table

2.4 Appendix 1 : Amino Acid Abbreviations Table

Amino Acid Three-Letter Abbreviation One-Letter Abbreviation
Alanine Ala A
Arginine Arg R
Asparagine Asn N
Aspartate Asp D
Cysteine Cys C
Glutamate Glu E
Glutamine Gln Q
Glycine Gly G
Histidine His H
Isoleucine Ile I
Leucine Leu L
Lysine Lys K
Methionine Met M
Phenylalanine Phe F
Proline Pro P
Serine Ser S
Threonine Thr T
Tryptophan Trp W
Tyrosine Tyr Y
Valine Val V


Return to index.

ghemical-3.0.0/docs/user-docs/sequence_builder.html0000644000175000017500000000375611563552731017267 00000000000000 Ghemical User Documentation: Sequence Builder

2.1.13 Sequence Builder

Ghemical has a tool to simplify building amino and nucleic acid sequences. The Sequencer Builder allows the user to enter a string of letters denoting amino or nucleic acid sequences. To activate the sequence builder, right click on the view, select Build from the pop-up menu and then select either Sequence Builder (amino) or Sequence Builder (nucleic).

Screenshot of the sequence buider menu.

This tool currently reads it's input from a textbox. You will need to change the text "AAA" to the amino acid sequence of the peptide you are building. A window containing explaining this will appear after you click on the sequence builder.

Screenshot of the information box explaining the Sequence Builder tool.

The sequence should be entered as a string of the one letter abbreviations for the acids without spaces or other punctuation. When you are done entering the sequence, click Ok.

Screenshot of the sequence builder command interpreter textbox.

The chain will appear in the view window, and you may manipulate it in the same way as you would any other molecule. The sequences are built without hydrogens, so if you want to have the hydrogens present you must add them with the Add Hydrogen tool.

Screenshot of a polypeptide built by the sequence builder.

For convinience, a table of amino acids and their abbreviations is reproduced here.



Return to index
ghemical-3.0.0/docs/user-docs/MD.html0000644000175000017500000000524611563552731014245 00000000000000 Ghemical User Documentatation: Molecular Dynamics

2.1.9 Molecular Dynamics

The molecular dynamics feature allows the simulation of the Newtonian mechanics of a molecule. The molecule should be Geometry Optimized before starting the simulation. When the Molecular Dynamics option is selected from the popup menu a dialog box will appear.

Image of the Molecular Dynamics Dialog

This box will contain four fields. The "Number of steps :" is the number of iterations the simulation should continue for. A large number of steps will allow the simulation to cover a greater portion of the conformational space, however it it will also take longer to compute. The default number of steps is 10000.

The second field is the temperature. A higher temperature will mean that the bonds can be stretched and bent further than a lower temperature, thus allowing the molecule to adopt different conformations. The default temperature is 300 K.

The "Time Step" field is the length of time between each step in fentoseconds. A small length of time will be more accurate and provide a more detailed view the the dynamics of the molecule, however a smaller area of conformational space will be shown. The default setting is 0.5 fs.

The "Trajectory File" field is the file where Ghemical will save the data generated by this calculation. You can review the trajecorty file afterwards using the MD Trajectory viewer. The field should typically be changed to a filename related to the molecule you are working with. (ie ethane1.traj). The default setting is untitled.traj.

Once you are done changing the settings press the Ok button to start the calculation. Depending on the molecule and the settings you chose this calculation may take a considerable amount of time.

You will see the bonds of the molecule stretching and bending to adopt different conformations in the graphical window. In the console window the amount of time (in fentoseconds) that the simulation has run for will be printed on each line as well as the temperature in Kelvin (this is calculated from the kinetic energy of the molecule), the potential energy and the total energy (kinetic plus potential energies).

After the calculation has completed you may view it in the MD Trajectory Viewer



Return to index
ghemical-3.0.0/docs/user-docs/documentation.css0000644000175000017500000000012411563552731016430 00000000000000body { color: #000000; background-color: #FFFFFF; } p { text-indent: 0.15in; } ghemical-3.0.0/docs/user-docs/images/0000755000175000017500000000000011645354540014374 500000000000000ghemical-3.0.0/docs/user-docs/images/formula_select.png0000644000175000017500000003217711563552731020041 00000000000000‰PNG  IHDRà«KD:bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ 9,6¤» IDATxœíÝoˆ#ççñßž‚¨‚6´ÀkÈBÚ$¸’éà…L^¹xL²=Ø8·°±Ùwûævýæ.¾Àm¼ ö ;pa½/Ž›À鼨Åx™^ppb¬Ôà†*A=`ÁÜ‹R©Õr©T%•ôTIß4Ý’JUTêúéùSO]ôHûk€Õi¥˜G.ËÀÆ0Ýwô9×…`À8К½Èú°O]v²]š÷4‰«c¥´YÇË `óàH¦ûŽ“mÛÎ5'Û€²\+¥Í9^nTK›³c`+—o£xSš ãŸ½$IòþüÕ¥,?kU¬oYë\´e[6—ÛÞUÿo¸V´,4A¯†³N?©U|8i‚^eìK—¯:8ÇMþï`1ñÏ^}ÉK÷u•ïñª??U¼žun‚žõ^”Ù_ãïqÞ}Ó8 àE .ŸgÚºê„y_DæylüþñÄiÏϫՕ-Ó´uÏ*k‘r]ç,‹¼§yåž¶­ñ÷?}Îäí²ËÎ:¨Nk9(Û¢0k™yßË¢¯sÖzò^WÖºÊ(\³>Çóþ?Ìû¹Ë2O×íXY7é{™õE§hž­<€§lòÛ2Ô­ :ëlZh}lÑæÚy·;Ïúæ5ï:«xmyûiÛœ¶Î¬ÛE—-òó:}|Þ}±È{YôuÙ'“_8g-ŸõÆÿ^ö1hÿ“ëÿ{Þu×¹ ºŠ/YE¿TÎZÇøûÇE¾øÍz~•™º7AÏS£_†E[]ÖbV™|ÝšUù-ãÃ7ùÍ|ü¾ems•š^þ¦¨ò}Î[×´ ª»&”³nÇÊuT8€Wý­¶¨Éf—¼r6¡ ºŒ²5”i¡š·|Z®"}Yó([®E,£üø¬ªß碟‰2Û­ºùyžÿ¯*UýzêÜ-Õç7«eÞ÷•×€§5Ìóa)ûâëÖ]FÞ?ö¬Çʼ¯ãëZFë2‚ÖÕ:§}þª.˼fõ}~ÕËΫÊmTÙ\»ˆÉ×”Õ ½êæg©ÞMÐuøß’ÎÿMî«¢ûÀIô¢íæÒìo·ÓÖW§f•¬oÍ“}IY;9ﱬõLÞ_¦LyÛÍZ¶ÌúÊ”«ì:‹<¯èû=muì.R¾Eú)³¶3~_ÖcE>'e·Qdù¼>Õe(~ó~v]¨Ó±²jU¶Þec‹îÓ ^xN~®[´ .¿íç©k¹šn2ŒÒ¿€%å†* h¢Æ7AO«!§¥?Øl|ÔMãxš´9:ýáà )ÿ ¬R#š 'š4;cŒPày–Ôv0 ! ÀµFð¼8Àb>\[Û>àIÔ†‘"|ÔÁÚÖ€'^qÐ…Äç@}Ô>€g0ÇŸ\–ƒ-R|ÔÍÆ4AP'µ®ϺëÞ3{+* ÕªuÜ:È}¼û »¢’P­Z0 XWôà €0À8@à €0À8Ј¾Ô¹tî§ÌóªØ6U«õLXR€“W²Éº€&©}gÉ äi].ë±ô>¿ùÒ}É~Pµàºå<'ÃqZXæ-7í±tÛ´×û@]4¢x< WÑ'Ëz½Ñ¯ j_—Wc-‚/RÔ„¸Vû.r ,z 個Ÿ®5¢ ºŒ*jÃÔ”×á  j_„5~ߴǧ\ó–›µš+×û@]Ô>€¥ÙͼÐ-ºž¢ë@3±ÔÍÚ5Aе®Þ;Ì}|•€jÕ:€nä>Þ}Ð]QI¨V­˜€¬+ú€p€Àæîž5BL7wÏ¡ 4Ý7î¸.€56w3B€ùÑ €0À8@à €04"€/u.û)ó¼YàB­¯†$%aùQ÷£™÷•±Ès¨B#jÀ“²y²vœþ=~ÿäïiËe­{òyyÏAý°¯ÔMíø£îG¹Ï´6œþ¤Ë¥!Þ?~_Þ:&Ã9ëþY¡¾ØWê¢ö,é\Ð-ãZ¤I:oš´›…Pµï—Ýd°‹jVmͱè8XTí¸ÈÒÕtÚÔû €kh‚.cYµá¬>`4á  j_Îä4~|<²5ÕÉfæÉíd5AOÛµäz`¨‹Ú°4û 9íñÉ žõw‘Û³+º¬ï?€ºY»&è*ÑÌ X–Z×€ïæ>¾÷ÌÞR·?«y€yÕ:€nä>Þ}Ð]z]À2Ô:€W°6×þsûÚý®®|éŠ|ß—çyŠ?¥ôöÿ}[¯ýÃk®‹ˆ5Vë€eØv_{Ïìi÷ó» ‚@’d¶Œ$iÇìÈö­þâ@/ü×DZ¾ù§ßtY\¬)ÀFÙv_{߆ïãü-_Þ–'Iò·|I’õ­lß*öcE§‘~ý¯¿&„Q9ÀÆ8Wó†o°È#cÌh9##ù’í[y­$œ aTmîž5BêdÿÙ}]ûúµóáë6|Ç™-#30ò·“šñOþñ'úÁ÷°ÊbcÍÀ³F(Mwç;®‹€ ÛÃææ‹žLË$á»5=|S¾?l–¶V»Ÿß]EQ±!æ`F(hcŒ‚í@$Û•oüÂÏ•$Ïó–YDlf°ÚívÒÜ<휸*"­1«•œºT°ön<㬯w yÆ“Øâ+hI$¡ýgÏþÙÒʉÍBX{žIú}5Ô’b—z¾µIXGý¨ôsi`k/쇊¢HÖ&ç÷JÃP\Á Y‡ÒñûÇË+(6  `í½ýË·DZ¢~$µÎj´éï\ƒ¤æ+Iñ§±^ýñ«Ë,*6qØQ)îÇŠÆ2Æ(ŒBIJÎóõ§ ÈH'§'Šû±lß l  ÚpÖ5y—q…¢KK\ùXcÖÚQ3t† ‚@aª½ÝVE£SŒ1£æé´Ï7Š"…CÿžægT§ö,}6p KeÝùé½ô×/I-i÷ó» •„pï´wvž¯9;Ï7î'ƒ­Òð=úÏ#Ýモ²c=­Eð¥Î¥ÑÏäýãO{Þ¼ëDsäíklŽWüªzìéøÃcÙ~R¶}«ètX3ŽB…Q¨ÞIOQ?ÒÉéIRóýݱîÝ×[¿xËõKÀiD 8Ïdm8ïvÞßó®;ë?~5© Kê<Ñ‘íÛ¤ü0™é*Ž“šoÚ }üá±î¿Gø¢zàÉ€,s-²ìGÝJÕŽ8€7!Œ4„ÃOB]ùê]ÿÆõÑdÇ¿?Öá¿Êö­zŸôÔ;é¾XŠFðdísÒ2ši®\o„0^ýñ«Úv_W¾zERRã5-£Þ'=½w¤;?åbX®F𸴶:~ð\Æ”ƒózcÿBJF<§sB§ÓTZk _¬Dãx–yj6³j»Ô–Ö û)Ïxºóó;z÷·ï*þ4–÷˜§ÎS×ņh|Oöß=¸Ž?/kó¬õǾĸûïß×µ¯^…oüi¬þ—v],lˆÚpÖsò¾iÕYËå5c]'šý†,¦5<ÿw¾ÞcÞhÚI`ÙÖâ<`˜K+éû¯«Rëðá½ÃÜÇ÷žÙ[QI¬#ÏK® <œ…ðCB«Që>¸uûx÷AwE%°®ü-Ÿ0œ¨u°–i²X}ÀXú€’n<ÃuP•ÖpúÉa Xéøw\ñ«Që0P/þ勺|ù²ÚO´\ DZ^xþx¬Þ{\ ½ÁLËèÍÿó¦$iÿÙ}ÙAþõ~nhggGNGí¶LËèøÃcéÎLÞr``†þü™–]²ÎßöeûVív[áÃP׿u]wïÝÕ«ÿ“ n‚Ë_¾,³eŒ1ºvõš4N>>Qص÷=þælèþsûºò¥+ÉóŒ‘w1¹daúy¸öø5]ùÒüù‡¡¾}ýÛN^š‡fð}_ÁV ix±ö•¶¤°ª½ÕVtéú3×¥¨ ×ÜÕ¯]U»ÝVàÒà,De$ ¤¶i+Ø tpë@¼ÿÚO¶“ðýJ¾íÇÛÉâÆ$ÍׯSlcik8—ô–ѯÿõ×úæŸ~ÓÝ‹DcÀÀ ':£óESÖZùÛ¾¢Óá€Hºþ­äŠ:Ô„ëiï{ò·}~´hl%û3ýReZÃß[&iá ßàb Û—1&ù26ü<¤ƒ¸Ò[aÊ´aC3¤ês÷¥ÍѾ¯xË÷}i jÂ5uõkWGá+Õ`Óý\LjÄž’ëwO»çj¾¾ïË´LÞÆœû2&%Ÿ)éSî z aÌD 0[FíVÒ ­«ýdÛu±J»Ñ’ž6F;é¤%}`­Þ¸.U5ƛӚ¯iyž'³5¼RKòZžÂ~(à+êGê<ÕIšÛí¤æ;%|Ç™-£ömé$¹ý“ü‰~ðý¬è•¢i``Aã´¼Ç<ù[¾n<£öqßoI×[FmI¦%yƒä·H{Æè…ÔkIw­ÕÛ ãôRƒik†çyI¸n·G!lV¾ï«wÚKj¼& i ’¾Þñýééè?Ž*y—¿rYA„màj·Ûgû(ë·’ßf8 Ìl™QórtÉn ›‹[ÒÁ_$ûó“³ýéoùŠûñÙ@»œ¶ÖÊÚáçAb4rÕ>€ÓÚf‘QÐó„á<§/ºÍVvßœžœÍ|µåš£~Ró £PÖZõ>é©wÒS¯×«¼ÌU0Ãfdk“®X™Aœ„­mKa˜®µÉϰf¯´ïtxžðõ}÷@Ý»:¼—\´`÷ »j?Ù>«š³ižñÔ~¢­ÝÝ]Ykõö/˾úµ« ‚@íív2H*H®J•^BP-M½?Œeý¤Þ3žÔW2wóC+ó©‘ž]Ø{Ì}‰JÏŽ¢H¾ï+ŒBy[ž|ùgçAmÿ,|£~¤ð“PG¿«æKÖSíXÊñ>®í4”ÖE)0FqZîö†ÍÎÃÛI/ Þ~$µŒ­ÕÓ-iG’×J)užêèà»zç½wÔy²“Ì¥ó§à¤!lÇÂÿ໺óÓüK÷í~qWív{Ô—ëûþhRŒ´f;ívüi¬¨)ì‡I wôÉûÛ~2R½¥QsrÚw’p:x®wÚSêšn2¸Î¦›”$õ“/c©¨É´ÌYø†¡ºw“þg`ŠF°4ûÀ99RyÞuåw™ò ^Ù_''I 8êGg5H ´…ïûõ _IêY«ÐùÃ>àh`µÓ2ÒƒnÒl­´å'¿Vêv¥ÓPÑÀê % ¤7%u†£Šcëè½#µŸlΣMCitÊÏŤFitÖüE‘n|çÆgšé/årºÃórƒ È­ÙŽßN¾¥¡> Ï5y_þòåÑßfÔÊmdÏ9-lúà$OH§ÎB8êG£féÑÕ$…65_wtu÷ÞݹjûØ `À•0 Ï&tîIûONOÛ¸Ö5ßÔÛéÊ@ê¤a3œlÃ(©ñö­Ô6Ÿ÷­…zÅZ¤Ë§}ÁéòûDz›\˜þ‰±ðm /l0vµ 4´<ÏSø0Lj’ýäüØþðÁ¹TÞcÞgúp³jºq+Š¢¤ù¿Ÿ4ÿÛ¾ÕÑf7ùýç‘.% át’¯5X•~¹ö«¥Q a·’«bÅŸÆò¼¤%$}žt6ð*Žcu?&|QL­8í_še©Ñ_‹Eþæp4]a{»­ØÆ£>ß´æ5«Iµ.BI‘µòZIØOGE$EÝd Ñ0œ­ÕÕá…NZÒÿëGê "¥–6ËŽ×|1£æÞ´™7ðõNz $!¼•ô­~ûO‡¯o}©™VÓ ?6n™]Gÿq¤Ë_¾¬øÓXÁÅ@‘’ÑÑÆ&5â^Ô;Í>HšÁMËŒjÂi_°g<íl˜^&å{çÝw_Rë>¸Ul™îƒéçÙ¾XÔµ«×´ÿܾ$®lFaí/¶¥;° †}³m“Ô€ÕJFE§ÓPªeô¦µÚž/쵤ä}÷@]ëj·«wÿýÝQq::8‚Qø~\¼~x„ ? ¥–ÎBx^÷ß¿¯+—¯L­é†Ÿ„É(êÓäËNøI8µ–[DúÜÝ/ì&áyÏúŽÓQËíöÙ­Ú;mÝ?º¯`;͘Õõº£™³ÒQÞ¶oóE õPëÎ V`UF§ ’Ë˽ûÛwuçõfhß ›K[ÉhçvK:ö æ‚¶V{-éïû‘žn%ÓVî´’>_¯å©Óéèé?yZ½“^2¨IJj¬ŸÆ£bûñá…ü@a?¹H½ýcr¾m7ìŽf¨ ¶ÎfŽã8iÖ†:99Q÷ÃjÇ¿Ÿ1;Õ° ½óTGÖÚQpEzå^ÑçoÈ3Éå ƒ­€àÅ\jÀ@ŒjCÃÿ–8ŽGçy6ÑÝd”žŠ$í GE{ióóðöÁpÔô?Kê¤Ám’SŒî¿w_?IBi|Žåô*@ÆÛv¶wdúF½{ò·’Sy‚‹ÂÁ°ùv8Šüäã“Q¿kÇz÷·ï:|‡’æê´ß¿óTgT3÷}_oþìM}püA2ølxZÔçoÈÚ¤úƒ?|PËóÀQ?00Ãèt“áA8:u›´&ÜkùýH12Ãqh­¢Ñ酪ú•¤_¾Lõg­Ú¬o|Åq¬í³9—‡}å“£ÆÓßéûyôGê}ÒÓñïê5gò»ÿþ®ö¾±§žé©½Ó²tõëWÕ}ÐÕ•/]…túe"x<ÐÕ¯]ÕÁw’¹¥00ß%Í‹iåý÷×ãÜλ%5^Iê[l$+éNz>púøPZ3֓Ε<° ¼àìÔ¬‡I ·k“¦ã(-<\^-I6iQ¨[ø¦s¨ëߺ.¯åÉßöõò_½<ºÂQ¦_Vâ~<š!JJjÀ¦eÔ‹z•°ªZ穎Žß?VàºzõjRãM¯9Ðjšty>7ÈÂyÀÀ ô“^’0­Ç6™NÒZ«øaòåÅöíìi k$êGŠm¬8Ž“ YJ4?KJ–Hï¼ûÎ2Ї†#€Ò«átžHæ¾ü•Ë¥®Â³ Ò 1Hc5à“õzõ›áª Û·£š{zÞ²éöT£,Q”„wø0Ô+÷Ê J‹¦iL§§¤ÒQ•.y½Z”‹{óož»öÿ¦¿SN2ÿ±¾·’b5ÚîŸìº.Beºº z9ù9‚7¿wÓuÎiDgᇪ1¹ °¾.\¸àºŸQûž´YœõXúüñõL®s|™iÏŸ¶ìäz§•neíÛ,L0¬ŸºN¼q¤!˜þL6W‡æd€f­cò±,é|2Ôˬ«Ç~Pµ¯Wa¼Ö3­Dusäu_Lû¦¼÷Ì˱Ë5t¹ºº éÑ£GÔý°«Ã{‡ºùýüNêÛ¯ßÖÁ­½ýË·µÿÜþÒÏ.Ò×;­™xž¿ç},«fE¨×Ǭýóæ/ÞÌížlšî<Õa9–c¹†,wç;µ€5ž·Q^·9¦í«¢}À,Çr,×Üåê¢ö}ÀÓúS«îË+²¾2Û¤¯±¾ø¢ QÎ áÉ~ÝEG O=yÑÁ[äë‰ý .ÀÒìg‘ÁU³c-ºîõžP7µo‚`Õºà¬f¹¢Æ'=¿/ýÉZvÖrÓ›g[YÏɺ=.ëý˜5ú6¯¼En}°IQΛñgÙFÙ"͹E×1ùgmkUÍÄ‹n·.¯cñ¾õ¶ö5àE-»lÞuº>¸æ}ù)ª®_¸Òˆ°t¾ì²ÖT´ÆíªYµèù¥eÞËE_ MÌðY à:(3SÑ*¿ ,ûKI‘€Î+C“j¹.¦¤°™ÀóMúóÊàª|ó†öøs&×QduØyn¸.€ŠÝyãŽë"djT1ïE΋Ț!+Pò&Q˜g‚…"¯cYµà²åXäùu˜¢û »’í@í8oÒÉÛUŸÇ[ä¾¢“%ÌóœyÖ]Æ¢å(ºì¢JÔ¹Æ óbôš¨{Ó.à<¸®ÃÏõöåÀp~®·(ÀæÍ„Àü¦MâBw°9æ`&,À:qq¢>a l¶¹˜ €å™¼ÚWÖ„-©iW ŸÈ$]nž«{XŽÚOÄlª¢3ƒ½ü%Åê…É Ä*fË›yŒêƒY¤¹·ê ¥ùX=h *ÂÒõµµMÇyÀ@í Óü Ô 5`À‘Y}ÀÓ”¹ÄãäHê¬ËuR ܨ}Ï{JŸ[äš²€°jE®ï\ævÞý|¶zª}KÓ/Z_öyÀ¦™õ¿Â—OÀÆ÷OÖÇoçõy]ê\¢OlƒlêþN›˜Ó&Þê£5àª19ÁæÚÄÐ)Ó\ `uÀYGªÂä›gC@ý4"€çí¦á3ÀµÆ÷ó |¸¶Vë1` Ô@ÑëûUå(ÿUÈ¢MÒó\¢tÞí–)‡j`ÚÅA–ÙŒ¹èº›V»Ë«Ñ.À@-3àæ­u6-xód5«RëAXÀºÊšmÖÁ¿Îµá,Óf™›62z™ÖéKÖ5`À‘É€*r»Ècón{\^`•©g…ð¬‘ÑË:5+ëõN{ÏóQÍûÞO[/_6 8”7EjÖí"Í3k‘çÏ«è:f^®êïYÛçYË]×¼eÃz£ @)ÔØ€j4&€óN¤wmÖd‹®{Öd ó–­*Ul£nûÙ_ :h‚®r:»&)úº]Ÿ^±îûg8o¨NíkÀEf¶I—+;5\‘ÛE×™W;6%^ž¼×]U°yoŠ”½èû6í±¼÷ÖU#jÀ³,cj¸*ÖYtú¿EåMX&è˼Æy¦é›gÚ?XWµ¯Wf³éæe»ŠmÀº[‹ð¼Æk^.&(cV qÖkY¥:½oPWÀ³Ô©†V‡`-ª e×jß7]•럫®ÕM›A¨ªŠR«˜ÐÕ¶ ÎQž5Ý¢ÓòÙf‘€ž¶Ìä`£¢ëœ'„ËÊ›0¯,³¾d-7kM©á@ÀR±°*r‘SšªXç<Ë-C™)òŠl¯è{²È”‚³Û´àõecÞÑúU«jýY­uÙç|ñƒ+ ``ݸž@eÕêÚâQ‡2`3Õ¾õV—ƒèº+3K™IPÒûón—YG™/“]yåÈ›4¦l¹ª˜H¨5à VU_9æSt•eN‚RF™Éi–aÚë)Z®ñ±‹¾‡|ñD¨hžð˜wFUæ?7fbYÛŠ  8Tõ*.O+«z;u:N*~ÆPÔÜ|xï°Êr¨À*GDWzó~ Yv¹ÆÑ*ÍÀ.\¨º€S·_¿ílÛËšå¬È¹éY÷¯JBŒ~_,Sé¾ù½›Ë(P‰Ë_¾¬Ý/í*ð™–Qò}_í¶ÌVr;ÕëõdûVÝ»K<Û²'AÉ TtýeB)o2y×YE¹f­+ë1j¡ $=zô葺vuxïP7¿OÀ¢¹®~íªžÞ}Z¦eäû¾<ÏÓÎ;jï´Õy²#³eäOái¨¨©÷Çžz'=ctpë@ÝõãM@p¡j‡÷kSyÏ[aa­xyÒ@2[F’dŒ‘×òdŒ‘ZR{»´û ¤¨%÷£6_lNCÂZéõzRK²+I²6ù­Aò+êGÒ@Šm|ö8_CkðŦ!€±VŽœ„ëà,|Ã~(k­z½žÂÓPÝ]EQ¤0 eV¶o—§ö`óðÝkÇö­¬±2-£øÓX¦oÔ;驽ÓV×veŒI–±Vái8ª-À*ÀX;½^OÁv0ªÙ†ƒPRR#Nû†ÓrE †ÚÙÞqU\ŠÆÚy÷·ï*µŸhK}ÉøFáÃPžõ¤(˜•6OÇq츴6}ÀXKwuWÝ]ÙAR˵}«0 DZzŸôÇqÒléàŒµuxïP½{I÷£Qk $”Çî€U#€±Öîþê®îÝWï$öûZkF¡Â(T÷C&ß°zôcíýÇ‘vŸßÕÓ_zZH‡¿9TÇŠú‘Žw,Iºñü Ç¥°i`loËSÇòótõkWÕ}ÐÕ[?ËYy²æ[^Æy°«˜Ü¢ÈÏ‹¬w•ç¯r.çYë_ÖûZ£,Œ`Œ‘ç%ÓTzžW‹W“·&ð²Ê\Õu]¿.·¿¬÷õB0ÖÞîwåoù£SŽâ8nÄÀ«KK£ŸÉûÇŸö¼y×9y_^ù¦]Ñh‘×1­,EÊ]ôud­/oó¼ŽYÏ+«èûZ´¬EËWEÙ‘0Ö^zU¤ô" ÒØÑ5•u‘ù²—ÀË:øYçä¥ ©uÍó:&·[fE^Ç´åó^oû#ëö4Ó.}XvûË\‹#€±ö¼Ç^®C+ÒLŠj¬ò½w[Eš{§=Îg§9„…µø¤a x(=ÿw-ûÀ;­‰›þêUõž³ïV‹0ÖÞK?|I»_ØM`µ¤·~þ–îüôŽëbåš ·¢¢²å­³êrN®·ŠmV]îYïmÖû`ZJ`ÝÞ;üÌÿ¼+ãyK4ÖÖço¨½Ó–¿u¾ÖZœž8,$h‚ÆZÙn_»Ÿß•wÑÓÎöŽ<ãéî½»ŠN#ÝøÎ E§‘â8Ö‹ÿíE½ö¯¹..€ Fcmì?·¯kW¯©óTgTëõ.&§Þ;”$]ùÒõNzzñ/_ÔkÿDpƒÆZØn_{_ßÓîvɨg³e’ß-#k­|ß—µVÞE/y¬%jœ!€Ñx£šïç; ‚@Æ™-#¯åÉ#;°ÉÕl,³eE‘‚‹ô„¤ôâ_¾èú%Ø@0ïÚW¯éò/'á»eÔÞn'!l’°ZÉà+_¾¢(’·í©§ž‚Vð™ÿ€´™–FãµwÚ£šoàŸÕ€Ç¥aìûI§¿ƒ‹z[½ÑEn¬ºø–ìÎõ<ïŸF£í?·¯©%Ûü-ÿ3á;ΣíäT¤-éÄž(ð…§¡$q0€•á<`4Z牎¤³n^øŽ´Æ–o5UÀ Àh´ö“ídTsËœ›pcÓ2òLrààb°Ä@6kÁ3Þì…ÆŒjÀÆ(þÔýµlvü~rU£ØÆ¥F4XkG££Àvç§w?ŒeV¶_.Lã~, TúyPg­M~vt:Q‘礿£~´ÄÒ@6NCBã½óÞ;úöãßVx&ƒ±|?÷“F û¡¢(Rüi¬ÞI¯Ô®*d]ø|ü:ªE¯«š·Ü´‹«oÚõZg½—y¡¯ê½Zöur«^?×õ] ÷Êß½¢ ´÷õ=õN{’’Ó‘²N/Š¢³ðµÖêø÷ÇzçÝwtý™ë«.ögpË8èmòA4/XÇÍóŧ¬U„/¡Ù<4Ac-¼ü×uø›CEQ¤ÞIOÑi¤““EQ¤è4ùé>è*ŒÂ¤†ºt_‡¿9ÔÛ¿|ÛuñgºÔ¹4ú¿oü÷<ë_w‘mNÛîørYeœv;ﱬÛe^ëGÝ*­ÁÎó^L.Wf}óî×2뛶ߦ-WE™p†0ÖÆËó²~ô¿~¤kW¯)êG£fec̨8puüûcþ[sÂ7«–VE­güùÓþžu{òïeÈ+Û²-ò^d•sÞõÍ*Û´ÏC‘òÍ ßU´l"kåå¾,Izé¯_Òµ«×äoŸõíž||¢îƒ®î¿¿Á;yÐ[ÆAmV_ó¼Ûœö¼4–©nÿ¼÷¢ÊõÍ«ÈúV±ßðY0ÖÒ«?~U¯þøU×ÅÈµŠ Y´v\¥Y5§ñÜä²ãQ·碜«NÂy9`™ª*¹j‚.kUå,ÚÄ]…:¿ßMÆ ,3­-ZSÊëÇl‚¦”sR™r7õ5Ö5` æ&ûçÊœ¾4«xÞmN[6«/±ŠZð´¦ÝUÔ†y/]ß2ÍÚoYË¥·Se á¼ ’=zôHÝ»:¼w¨›ß¿éºLÀÊÝ~ý¶np=à ̉‹zZç}txïP7¿WlÏ[š ,dV“ä:Ø›Œ¦d÷h‚°¢M”¨—º4…o2Àª>«Áþq‹&h €p€À` €p€ÀΘ5GsÑ ,ÊÎ=¹uWd¢‰¼¡ªz¯\]©.ëC6pdó%oòAtòýœöþ®bæ®U„/¡Ù<4A p©siô3~ßøïyÖ9¾î"Ûœ¶Ýñå²Ê8ívÞcY·Ë¼Öªk„ó¼“Ë•Y_s5ÝÇYe,RÞ*˺‰¨57­&WE­§èåäònOþ½ ‹^ên‘÷i‘÷"k›ó®oVÙò®¥<«|³Â—K. 8’uÝÜeocr;ón³èµn—a•á[DÕó`»è†¨b¿¾åÀ€#«8`-Z;®Ò¬ ¯ÁM.[äB÷ól³jó–s«hþÍзê×»N`™ª8 V98¨lS§«&ÑU5Émâ®Â¬/NËÚîºc€™ŠÖ²ªhÆœÖÙM)ç¤2åÎd‡r¨57ëÂéeÏž§O°HÓqÖóÆï[¤v4­©³È ¥Éõ,²íYë(Ò$[f}Ë4k¿e-—Þž¶ŽµŠ¹ éÑ£GÔý°«Ã{‡ºùý›®Ë¬Üí×oëàÖºº®‹Òx³F⢞ÖyÞ;ÔÍïÕ#ÛÆó–&h ™Õ ¹Îö&£ùØ=š ,$¯‰’𭯺4…o2Àª>«Áþq‹&h €p€&h`Ìá½C×E°!``ÌÁ­×EP±;oÜq]„L00†ó€¬ }À8@ sôÞ‘ë"Ø00aÿ¹}×EP‘ .èöë·]# d°}ëºt÷Ww]!}À8@àMЀÞE/óþøa¼â’$eq±]`ÓÀ€#„°Ùh‚jÊ»è~&ïÏû=ùw‘ÛE¶  ZÔ€šl.z; Íôï²µìYÛPpd²†Y&è&—¿½H`¶ÀêÀ€#u ;šžÕ €Œd5AXa†Pê0PCãªÒÛU­orݳ¶Ë@,`9`À"6m™¢°ªX®hY”G4À8@à}À@†º_G@óÀÀ„ .¸.€ @cÂ(Ôí×o».€ @CÔ|¬ƒ°I7¿wÓul` €p€À` €p€À` €p€À` €p€À` €p€À` €p€À` €p€À` €p€À` €p€À` €p€À` €p€À` €p€À` €p€À` €p`À‡÷]–€æíIÜ€ÍC4´$IûkÇÅ`sø¿ymÀ’̃#—e`£œp÷—å`£ü‹‹K5÷ôÈÓIEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_02.png0000644000175000017500000002243411563552731017147 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ #è1 i IDATxÚíÝ{\“uÿÇñïA¢– …ï”  AEÑÒ°´‚´4ÓÔìö€¤YZ‚¦Þ™i©Yyg¤æÙÛìhšgAÅCT~` ³æ™óÆ~\ºnc ¼ž×®}¿×á½Ï¾×µkB°~2!„F£aE@}b/ý/'ç‚y_¼xɆï°ÀÃ]RRRrøð‘ââ½³–——{{·èر£³sSíÄ ßðïÁzë ÷[· 8ôôÓ±ºï Úh®]»~êÔÏÅÅ%!!]tóÝÁ¹ë¬7Ü…nnn}úôÑMvFS^^®V«ÿøãâÍ›7×®]§V«""zý]ïÜd=¢þÙ»:Yñü4ë\~m7õ-Ü+ĺF£Q«ÕR¸7nÜÄÃÃÝÅÅåÒ¥KºsR¹ÃF¹89ÆF‡÷¸ÿ¾VžÍ…WnÜÊþóòë~¡;kþ¹ßk¯ Õ\¾¡‡¿lŽöçþ/Ï1xü7jôÜ£‘ýºuqsiúÇeåš?í?ù«â¾¶m¢»w ôóöpS«Ë/^Vî>öó–݇ÕååÕìoí-&…»T­K™^^®–8;7 ËÌÌ´³ûÇÌTî°En.Îï'ŒñtköþªÕGî—•«:vìøØc5ºt¦Ðí^ ìáÏOsÍ?Wýåë}¸´ð;v!²ßð ÐûØ1q1Oõ_•²~ç¶-4ë…gg,\’z.gâ°?ì?¼uÓ†ü?²›»8þÌØ!ýÚ¸:,\³MÈdÕimí-•‡»6Õu“][¿k4™ÌŽÊ¶nìS¶iéµü£UûøFåé«iÚüH~yÚ‡)ìéîÒ}ûö}rø³-=š_Ê»²ô˧Îÿ.„ÉdOôî>¸W¨·»ÛÕ·þ·ïè†]¥³SRÉüÞº±ýöjîš“›¿zÇîNþò¨®]²ÿÌ[úåÎ_/ähçìÿò!„Ña!C"ºÉ[y]¿UøÙÎ=ß>!5à‰ÞÝÇ Ñh®Ý*HÍ8·rË÷EŦ€%ÎV:ÏÀ‡C…ßoß\ÚÔkË©œ‘2YÜ€ˆÓÿ÷ù¿ßù¸ÉŸ¿©]<Ë=ÚÚ;,ûê`¿¨¨>=»-]µZåé«wQRw>ØøõSQ==Ýš ˜”¤·Sf,5î*•J'ÓÿîååS ÀÊ…u B>°¿Ä¹E©h, „BÈ„s+¡³KO˜ñf×ù¬W§Ç?=`xB¢ºqÓ¸½Ç=ýÍžý¯X>lÈàââT7”kw§ý=øàÞxl¬ÛµžóƬ¤qq_íÞ?úåi!|Þœ=kú3Œ˜>Omïx;v³ßð x"êáÉÃcޤŸ~cö,™ª$î™áß(/–9º !ìeš± ³¯\øµWDÄäI“ìK æ~ºYØ5ªÒhhž&ö· ÀÎÑ©°@Ñ¡CÙÕ?JÊe%®m„¢´L”–uî(„ÈÏÏ·+P–8zy¢€æ_˜:S}õO‡rUTìh½2oɨpW«U¥¥¥wbýïú]úW£)×h¨Üa󚻺!®_¿nwO'‡F…Î8µî õ_|¡.‘¾T$„hÕ²eÓ¼Ò{:=Þ÷a!Ä–µkŠìšl<~!.N é¹í‡ŸÔ®-¥G¥¤¤¨Õæ«¥_¿\ýQ™ºñáÜ2!DëV­šä–ÞÓI÷zz@¤âÓË®«<Û.ùß&¢Üι™bÃîTûëyj¯ßœ¿2Yˆ®!K>Qyµ­Òhhž´_·‡ 8pÓÉœaQ=…NNNöêÝù[z6ŸúÜ0F³zõjaï`üéRRRT¥2u›idvF:eÆ’QÝp×h4ju¹JU¦S­«îTí·§P¹£¸rý¦·Gs¬âb!Š…ÏO“.AѤV*•~š›7¤ÑYYIIÁM/wW!ĪU«´Kóöö¶»ž[Øèö%Âׯ_/ôð—%„¸víZ‡¿¦à–îBt înBˆÜÜÜ7¹¦¸HQâè. nvôóÄ@Ÿ{š::Èd2!D³fÍ슮Ux¸Ù•ûÂ×–>ûÜsMþ/ç’Ôr¡)×Îÿh¯n/ÇÅ86i¼dÙGRS‹\ïQ}º+W®zøi „†:eÞ’Q#•»º¬¬B¸ëË”›XÖìàé3GvŠŠúlÿ/¾‰‘½ºI3÷ Ê»z½•§û³Ï>{íÚ5ít»Šjþþª;§ƒs³ËW®·öroÙ²eQOÝÙæ¼4ÒÃÕ%iáÛ'ÒŽØÉÄæÍ›e2™¬\]ááfWîeB,úòûFË?nTt½­ÜgéÒ¥ÂÎÞÁ¹™‡[³øgëÜáüï9ËÞ{7+óÿÔžm¹x6ªì¹´«ËP§Ì^2ª[¹——«ËÊÊî$¹Z¥Ré^6#cî¨>ÞøU—v÷ÆÆÆªoßq$Cyývù|÷^]a/)¸¹ñ»½ÿ~fȨQ£oÚ¥ÒÈ:uhûTÿ^¯¼»J}”¡_K nnøö§É#;vìü5[ÕÂ~TLÿ%_lBÈ„FQxM©v÷yæé'LižñÊýî«ã§ŒxâÓ­ß6nl?rL\IiÙ† Êì{ûO}nhãFV®^óõ¶ÍevMŠÝ}Õ²&¢*Ï¥·S}ºv1{ɨ™Ê]îjµZ­V•—«ËËË¥+ß©ÜQ” 1yñê'»F„u‹2ØÞ¾QaqIÖÅ?³Îürwe]a‡ßq褦¤ð±Þ=¶-(U©ÉTlû~·KAn™w{#2R¹ïÿùlëÄÇû¼õÖ[Êë7¿üþ€¡‡ßÝ;ÝëÜ¥ "uO$è^á/åê¤x×fÍÎe_|-qîï …¦uÇ7'<+ýuÜóÏ{þ9í\2w{ôvª:KF•ܾ+¤tã0¥òÊgŸ}>eÊ”k×®–•IçTËUª²²2•Fs;Ùüñ§–-[ 6Tz|Ø€'¹· løÐhš]µ/¹i§.• FÖ¨¼‘}¹½C‘K+)…Úñ÷ ¿6.¾æP|]¦*2™ÚÞ©´©»ªqÓJ¥ûk…?5)¹Ñ¸èªªTØ5*qö*upB4*-t*¸lW^V.kTâäáTpÙÐÃ+þªËУš”Üp(TÊÊÕj{‡bçÒ•,c±d×h„F#j¤†¬“d—†/¤q ë?¥Ô3ôk½yY’þJ,¢VBV1æ.%ûíš]#dBÈ„¨Î°Œ…ÇÜu“]â°‰|׎§[ÿÀº¡2֔Ì|G-½e”J"«Ýµê~Ì]7Ùµª“ì®ÜµÉ®ML™L&Å¥L&³Úy…"Kj§ô«57µÁfG¥b“Õmån姈ë¸r¿;Ùe²ê&»%+÷ É®›ï¶R¿Ûºzy‡j…"ëîÿ*Lg(Ã*wkîW]޹×R²[¬r×›ì6”ïRñNÙ ¼çðñigèeض ŸvÒQ¯{‰'•»…’Ý2•»‘d×ÍwièÃæê÷ù´Z²‹9™L¸âÖÆ®¿Ó믇êf̽V“Ý•{¥É.•ÃÒ<Ö?ò~wóšg4B(ä¶QÎKwC"^ë¼f¿;£¥]ËGš®Ñø‘“sAo”ÛÄõ…:bå­­ƒÊ½¶“½¶+÷z솎®Û?(ü„×:]³¡âó*Aè;U`hf½§¬óµÊÐë–é³Yo¸×lld¯Õʽ~Ôìºo„µW ÚÖ°»¶ÙÚÊø.',¹SU#­|™Loµk…ûžîëî¿:bh¶†X¹[&Ùk¯r¯7£1¿_¾sšëŸ—gI#3µ±ij#ß÷îÝ«Í÷ 'î¸ZÉò[ÄP¾ç.äm¢wÒ¾d¤#ÖÆrcîKöÚ«Ü+\n»É®Ób©cwõÔFFÛ¥j122Òнe¬¹<4ÞZ^*¬mëh÷[y›kÑ{ËÈdBŒµ—ì¢6ï-c$ßm%ÙµÃ>òvB¡>¢ö4—-^@mâ§­ù˜ÔmX½¼5®MwªBãëÏíj$%µ§æ¤«¡j5ÙE-_-£½<ÜFkvCgºŒœ³ò+#Ÿ¸3T¦”Aw¿,ÙÊ^TWËÔv²‹Ú¿Î]›ï‰‰‰‰‰‰2™lΜ9ÂÖ> ”£¸ „²Ê/êjžÑ\º8ÒÊ_±ô^ªA¾£fßpP¹ë)Û…7n\±Ài: |BU·~—’=11ц’ýÎÙ¡ RÄ»Ÿ‰ ^iüh$ßQÕ#Å÷˹[òÒ ËÜϽ~Œ!J?K#×õøzAÛúd}zù±ÅS‘Æp[éÂíûŸè¾1—>ï—ž¾¯OŸÇªÿ®ÕûN¥jjÖÌÏ.šñÆSoñn+—Иš\öÎj¯ÕCÆÔú˜{$;ß¡Z³ï?ò¬zìBghžínù}¬Þ¬vÆÜëß¡ ˆ œU|•;P¹S¹€Tî–¯£©Ü«Š«Ù" r§rHyP¹×*wr§Þ°ÚS‘õfë××ݘʨÜMSV¦~ÿ³ÃOþ{ÝÈé›¶~ÿ«î¢¶ïúí…™[†LHBäæßœ÷áOOO^?ìßëÞ\òãÕëÅBˆq³·+.]—æßsävÍ’}éÚ¸ÙÛ-V¹«Õê… …„<4qâ¤[· ´¯ð«V}Ò­[__!„B¡=zlÇŽÚ·¿oĈ‘yyy·›½ç§¨¨h?¿€°°ðµk×_fí1¯†fP©TIIóºty°S§.«V}"tn«dÂGzíÒÄ’’’3fÝtÿÌ™³JKKO—Ëý>ÿü‹ž=#üý£¢¢SSÓ6oÞÙ×ß?pàÀAgΜ­«ƒðîu«·®”Ëý–/_œ0]Û¯:¬vu7‡‰G‡\î—’òEXX¸Ÿ_ÀÀƒûíŒ‘Ý•Ž˜A»ÿ×Jå¾vǩ뷊?žÿøû³ý|.W÷O糕‹_dÛòBˆyþÓ÷¾5o?¹fÑ0ŸÖnŸn:&„x ¸õ/çs…ùW V®?ZZ¦BdœË}0ø‹UîË–}øóÏ_ýUzúQGGÇ jÿtúôéo¾Ù™)„=zì˜1£Oœ8vâÄÑöíÛ'&Γæ™:uZ|üÔ3g26múòÔ©Ó•.³–˜× C3¼ûî{gΜýúë¯Ü{ñââŸß¬f¡ é¿… ç÷íÛGšøöÛɹ¹¹û÷ïÙ·o·B¡HN^l|ºâÀ7®ÏÈ8óبQ£wíÚ½vmJFÆÉ¢g̘YWAy÷º5$55m×®oÜ{ùr^rò{u>XTaë›rt!8´eËÆŒŒ“ÑÑý¦OÕÈîJGÌ Ýÿ+¿ý€÷iýê–·¦õkÝ¢™âÒåÞøŸ´„˜ñ)«ÿ3ÔÃÍé–©_˜¹õów†¥¾¸/íB˜ðÍßþ²ýÇßF éÓÝѪ}½»ù…Þ߯ôÊ]zFón?ž’ò_!D~~~ÿþ¤§§I¯ÕÇŽñöö¾û!EEEaaŸÚ7jèƒßã䨏¸´,vò—BGûÖ-\W8:Ú‡þëÞu;NýùV-\šØ›Þ€jÞÒÛÛ{Û¶Í­Zµ2>Û„ gÍz-22ÂÅÅ¥  0(è_ÒôÎïÿôÓUÒè[B i뚸Ìd^3 ÍàíÝB¡Pøùµ«“ƒM©T¾øâ„ää·ï½÷^íD//¯œœ‹R%«P(¼¼ZŸnµL_·Ú~åää´haÕý2ttTiw¥#fÐîÿµ2æѵí'߸U|ýfñ'Žš­¤Tݤ±]c{»ËÊ›Ë>?¢|ϧ›ŽEtm'-j庴‚«ö§š•ûˆÃ_}õµìl…J¥>sæìĉ“ôÎV\\âààààà““£qBLš4%33«¬¬L£Ñ¨Õª*-³™× C3 6ô7æüùç_7oÞœ7o¾4ÑÍÍ-33Óûë /¼8qℇzPwâàÁ&%ÍS*¯(•Ê9s’bbŸnµô®[½çJýJLL2dHÝ6ÛøÖ7ttTiw¥#fÐîÿµrµLÜà.®Îc^Û:iîWÁZšmòȰO7¥?=åËÙ‹ì¤3[HPë«7Š~ÐWÚVy­0$¨u•PÍ«e^zi|hhhlìð€€Ž“&M80ZïlÉÉ‹æÎ}ë¾û‚ãâž ë®Þ§OŸÑ£ÇÍŸ¿pÉ’ÅUZf 2¯†f˜:urûöí££éÑ£WëÖ­î5ã бÀÕ2éé'âã_©pµÌôé žžáááá‘­[·JHˆ7>Ýjé]·zuíÝ£G/OO¯øøÉu]ÒÛú†ŽŽ*í®tÄ Úý¿Öïç^·¸Ÿ;êúým*¨q|Bd¸ó U r§rjc2 r§r@¸S¹•;•;P¹S¹@¨•{ËP¹õ^|ü+Bˆwß}[wŠL&KN^;|À€èQ£ž“¦¯^ýÙ÷ßÿ°n•–\¾¾þöÿdgg§Tæ×Õäjj»P¹0Ç[o%:uzãÆMÒ¯6l:}úô¼y‰Bˆ3^Y¹r•t/-•JõÑGϘñŠÕv$;;33óìÙ³¿üòË©S§Ž;v$2²×;ï,²õíBåÀNNN+V,{òÉØÎ; !æÏ_°qãzév›!!]‚‚:nß¾}èÐ'¶mÛÔ¥Kg[é×oÌ êøÄÛúv¡r`¦:¼þúÌñã'Ž?qÖ¬×:tè ýÓôé +V|¤V«W¬øè•W¦ÙJ,Xäááñüó£êÁvájæëÕ+ÜÑÑQ£Ñ mîçÀãÇ¿äææöŸÿ,ÐNY°`Ñ¥K,]ºD§x·{ÐûùuÐû º6z§6ív©<Ü«ù}¤uU¹Km&Ü4L\- 2Üs*w*w r§r€ºªÜ¥¬´¡©Ü4p\ ²r؃·ˆ‰ÉÚ€úîŒf@½ ÷5kV²^À¦é9¡ÚÀùø´c%X§5kVöîÝŸõ˜Y¹ƒ—:õ¡rP#lô>‚¨·•;{$P}r¹+ÖƒëÜ€pîÂÐàÃÝÐù«z|^Ko×j©¿–\Ö³É*m gMA¸ꌽÞÂD&“9;;ûúÊ{õêõâ‹c<==êq-Ì• –_‡¬vÀÒá.î\ö^XX˜••µqãæݺuc›6mXY`+ Ë4mÚ´S§N‰‰oÆÅ=ýÎ;ïj ®U«>éÖ­‡¯¯¿B¡PŒ=¶cÇNíÛß7bÄȼ¼½ÿAí¯§OŸþæ›ÙÙ™BˆÑ£ÇŽ3úĉc'Nmß¾}bâ#ãdLÌc£FÞµk÷Úµ)' ˆž1c¦4ÏÔ©Óâã§ž9“±iÓ—§N6½kBˆmÙ²1#ãdtt¿éÓ_5½kBˆÔÔ´]»¾=xpïåËyÉÉï™Ð—*<—ñNUizˆ¡&-[öáÏ?g|ýõWééG,X¨·û¦lC­2ÔkŸ°Z2ñÏÛÜ=ªR©‚²²ÎI=v숷·÷Ý *** {øäÉã?ü°kÛ¶ÿ}ðÁû~¸bÕª_}æ°aC'LxyèÐÇ£¢úVµ}ÚÅ !ºví±aú¶m}….üÑGjª¡é¦,³BCCÃ6lX×®][!DffV\܈´´CÒl§Nwww—¬ûkpðýYYç…Ý»÷7îÅþýûÝ{ï=UêZ…åkhJ×är¿}ûöHóde]ˆ‹žšzÈô¾Tú\•vÊÄuhä!†šž’ò_!D~~~ÿþ¤§§Ý½(S6¡V굡§6r¶€ °±Ê=7÷²t¨Ht“==ýİaOßw_'¹Ü/00øêÕkBˆ=z¤§§ !¶nÝöÎ;‹6lØ$„8qâDa&¶Iïb…yyy>>·‡þ}||´óšnÊ2+ÈÏÏ—Ëo/Á××7??Oû'íJprrªð«J¥–~^¹rùþý}tp÷î=¿ûîû*5CïMéšB;\.×õ˜Ø—JŸ«ÒN™¾ÐÛ¤ÜÜ¿z÷î' à<ð@W¥RYéc -ÊP« õÚħl8Üׯÿòá‡{èýÓ„ GŽ|öèÑÃÙÙ™¿þú³F£B8;7•Ëå;w~íââÒ·oŸ‚‚‚ÜݶmÛ¦M›šØ&½‹B´hÑ"'ç¢ôóÅ‹µóšnÊ2+ðòòÒ.J¡Pxyµ¨ÒÚìÜùþO?]uòäñ ÞzíµÙf7£J]BhçÉÉÉiÑ¢…y}1ô\•vªfס.ooï´´CÒŽB‘% šÇP« õºŸ°®p/**ÊÈÈxóͤµk×O›6Uï<ÅÅ%999ÚqR!Ddd¯¤¤yC†Ä!† ‰™5ë͈ˆ^†ÞÉš¾ØÇIJšwåÊU¥òJbâÜJ§›²L77·ÌÌ¿ÛÁƒMJš§T^Q*•sæ$ÅÄ ®ÒÚœ4i⊓G¯IDATJffVYY™F£Q«U¦7ÃSº&„HLœ+µ911iÈ!æõÅÐsUÚ)3Öa…‡2bÄðW_}-;[¡R©Ïœ9;qâ$³wtC­2ÔkSžš4ÁÆÂ].÷óõõàЄ„M¾ûn§\.×ûàääEsç¾uß}Áqqφ…u×NïÕ«W^^Þ A !bbÿõ×_zÃýرã=ô é‹ŸâîîÞ½{Ï~ýtëÖµÒé¦,s„qƒÅhÒéÓ<==ÂÃ#ÂÃ#[·n•_¥µÙ§OŸÑ£ÇÍŸ¿pɒŦ7ÃSº&„èÚ54**ºG^žž^ññ“Í닡窴Sf¬Ã 1䥗Ƈ††ÆÆè8iÒ”£ÍÞÑ µÊP¯kð©:Qñ„ª%ÅÆŸ4éeÓÇâkÆ UX•ºüš½õë¿`€…†e„;€pî „t)$€Á¥°®p×h499´“||Ú5ð•¢»6`=Ø3ÓÙ“nàEh(á.¸oØ2N¨á Ü„;€pî@¸wá Ü„;î¬ Ü„;€pîÂwá Ü„;€pÂ@¸wá Ü„;îÂ@¸wá„;€pîÂ@¸w Ü„;€pîÂwá Ü„;€pî@¸wá Ü„;îÂ@¸wá Ü€pîÂ@¸w Ü„;€pîÂ@¸á Ü„;€pî@¸wá Ü„;€pÂ@¸wá Ü€pîÂ@¸wá„;€pîÂ@¸á Ü„;€pîÂwá Ü„;€pÂ@¸wá Ü„;îÂ@¸wá„;€pîÂ@¸w Ü„;€pîÂwá Ü„;€pî@¸wá Ü„;îÂ@¸wá Ü€pîÂ@¸w Ü„;€pîÂ@¸á Ü„;€pî@¸wá Ü„;€pÂ@¸wá Ü€pîÂ@¸wá„;€pîÂ@¸á Ü„;€pîÂwá Ü„;€pÂ@¸wá Ü„;îÂ@¸wá„;€pîÂ@¸w Ü„;€pîÂwá°6ÿ¿!ß§Fw©IEND®B`‚ghemical-3.0.0/docs/user-docs/images/md_dialog.png0000644000175000017500000001043411563552731016744 00000000000000‰PNG  IHDRêÃM¹RpbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ:nÌNâ©IDATxœíÝ=ˆçÇñÿš+v ÜåÀï’Æ"͉¨ˆIµp…eÜä@ÆÍI.bR)¤s™..CÀ±WF×éT]š ºÂFg°¹9°a ¬à»…`R\æ<÷Üó<ó<óö<3óýÀq»óòÌ3»wó›ç™gwFòÑ“T@”6DDÆ'‡¡ëã䩼ºÀŒ  b¡+Жõ›[¡«€ŽàR27àªÉãÆ`‚z|r(ãäièj #ÖÓ·CWà¸M7Ô"|øã¸ÐÔtaÁ•­ kuÿ®ˆˆLÞÿØk^™åʪ»ü¬¼¼¦ê^VS¯)Ç ¸ê]×·ú߯?=]XðA+ê²ìÿtuÿ®¬îß*¬›ª Ç ø07tÿ/>ÿC­uÕ gËÛ˜Êâà‹º¨³º¿I×RÛr¦yj Ò¥¥o+çEš-Ÿ½ºuMeÛ–ÕÕ/¿ŽZ†mÿ˼¦&7PEö÷–?fè¦Ù´Ô¦Jeÿ|Mž¡Ó…Wutaé‚Ãt’jZεŒªõ(:ñ­K~¿\÷Q}l{®îO¯)Ç ¸27òwe{“‚ºl ¶)e¶G|¸´¢t-¾&•ù»w]§Êÿ°K Û´6ަ^†ÉûnŸã|˜Žºã„Ïß~ç“ùtÙÑ……ºuÉúj2ìc;ÑVµu¢#r¹%ŸfÂq¡9uèd“ü?xQ— ]XpåÓõ]WÈ´5¼©PÌ·ªóÛ‹¥~*µ;’®oTåòiuZ”ƒÉL×¢Ë\ŸöÝqº°àÃ¥ÕÄØŠ2ÿj³Ej«G¬LƒÙ\zA8nÀ‡î¸aüå`2‘ê}õ"ö“õì˜.,´DmafÓ|–sg ]KW-Ó•ë¾ø¨³~¦2óõu}_ò8n  Ý ½ïIþH>z’á»é‚«!ü?4¥éOo´ã\5uÜ'O»?˜Ì]XðA+Ê_Û]ðmà¸|×w 8øÍèÚuk7Ú ‚@3úÐ@,6D„®"5‘4t%€Þ¥®ïO?ù4D=€ˆÜþàö…çizÖ ¾÷·{rû÷g3wïì¶^1†n4‰ˆH>›7DD’ï’K ''—§€f<>¸ð<Ëæ×BT¸!¨ˆA @Äj"FP1‚€ˆÔDŒ›r=sø%÷Óº`ë†ÛýÎ j ‡vní„®‹4M¿XŒ zjuº ]ûö½–ç5#¨ˆA @Äê fÓ™×ô:·Ñ´ÙtfÝ¿ü:ñš\™§g?mÌàŽÁdͦ39NŽCW£V¶}ÒÍëãkÐ7¶°œ\™\x–ÞÄ<~hQWtœ[[‘¶göX7MWŽn^Q˶¨nêº.멲6íOQýlû…z¬NW%ÐQu`Yk4 &]ðgÓÕyùé¶õlÛU×Í–7­—¯«n^þ·kýlûås}DP× (PŠÖÕ=6-S¶ì:åC´JXºÔ϶ Ý톀kÔ5É‚«íðÙªT[Î:eê§káÀPÔâÄÀg›U{¨`èèú®QS×T]׋ýš­ëG¹bßh-êš©a­vãÖÙ¬ÛV•z–YO·®i0˜ºœË~ÙêEk»«ÓÕ…oåG‡71€‚º×Á_¦c>}šU¨U´®Ï¯²eUh=S`Ú‚´‰yÜÑõ @Äj"FP#º­À A @ÄLôÔþ£ýÐUP‚è¡4MCW@Mj ‡ö>ß ]¶nl9-GP=´sk'tX¤i*ÉIâ´,A ô_8ÄÉwü£¾ˆA @Äj"Æ5êŠlwÃêÊ·oµq*õb¦;n¹Ü5 åØîfUv€æÔå…Û.Ú™^›üëVöV °›\™\Ùüó²ó´ƒ®ï̦³óuzþ·úX]F`¾e«ËªË™Êñ)Ó'7í \î¢EÝ05ˆLÏm]Ãùç¦ÇEÏMóL]Ñ.ûS´}Ÿ²š\?ɺ± n ;hQ–S• &—²«”YEÙ8!]Íêt%«ÓÕ…ëÎâF‹ºM^sõ)»‰zT \ZÈ`GP· É *Óe=osû¶õ ëæ1 è.º¾[V& ]ש»Åì[^•Ö5#½@uÃÔ*Ór4}¾Ø§lݲºaºm>e–åÚ²¦õ]Žz]:ߺ.;@;êù3 öÒ-_¥lÓ´üg—ë®—M•As„ty¶-;@óèú b5ZãrškÕp]ß‘ëKW¯ë~ôe .´¨ˆ-j §ö퇮€Ô@¥iº jBP=´÷ù^è*(°ucËi9‚è¡[;¡«À"MSIN§e j §ø¢ N¾ãGõ @Äj"FP1®Q·Äå.TM+WÛPïꥻ˗iY´Ëå.XùeŠ–Ð‚º%ùpÒf—ÃK½U¦m9¾Ë;ŒÉ•É…ÀUŸçÌ@\èúŽD>À²Çºiê:Ùi^Q™ºõó˺«­|@yu¤²Öivjk4›–ý˜æ©ÝÍjëW·¾© [ù¾a°&W&ç?£ë;Rù.ä*Ýâe×­³+ž;gu‡Úímë"ЂºÃL-P]KÚgý:¸Ö`GPwXÑÀ-û¯¦ÔuâA ˆר{¢hà™Ïúe˨s}ÀZÔ¥ÒR¯i›ºMƒ¼t«Òu]f}ZÞÍY®ŒŸ£Î·¢m˃ @F¦Ác¶Ae.]ß¶iE¡èšU?NH7ËõsÓ„3º¾ˆAÊøœ44‡®o\âÓÝÔ²€3´¨ˆ-j §ö퇮€Ô@¥iº jBP=´÷ù^è*``–/—•˘oÏ/Z.åÏ_¾F¶×^]NwM<{nº^nZ¯h^(´¨ôÆõ­kòÙ£Ïdïþƒóç&/_,%ù6‘«W_¯eÛ„ô™|«úáöMY¿XÈbµ–?þû‹Ú^#õõ¶=7=ö™A  ²^Ÿ.åg?ß”ù{7ÏçEÎÃ{<žÈÕ×¯Êæ/6å·7®ÉgŸ<0”è.¦ÖW¬nÿë ÖÐ+*Ëu[1q‚@çe!$‰È+‘Í76eóͳ™ÊQn,"ëW"ÉQ"{ÿx Ͼ8¬üjS‹lˆtƒÆÞ}¼ßÈëÒÄ RŒ']5€NËBzñÿ¾D™öò¿k9úê¹$ß%òìËê!—uû5¬ËŒì®²-µ›º1¾w &ÐYç!ýýB\†ˆ½|±”g_>s iÓ ±¢ ¶ 6ë3uÐØ»÷åÝÇû""ò—_ýÚë5±½öu뗳ТÐYÏŸËõ­kòöö\n¾ó¶ÈÆåÏïf?,äè(9û}èÖ’Ö†K‹kh-ëì‹N–ßÉÑry>hl6Ébµ–·^÷°WôÚ«ó]_sÝz.óB"¨tZÖ""7ß™kj‹rôÕ‘,¾_ÈÑ×G^ÝÝe-Åro‹Ò"æÏU»ò}íóÛuYÎg›!ßO‚@ç‡õ«µÜ|o.ëW"Ëg7ÝxùŸ—’ü°åÂ?¤á&ßÕÚbµÖ~[ÜÔz! ëñÆXÖ"rðè@Æ——A3l-Q[ˆ£A  7²°~ë—oÉxƒ`Ž] £¾ôʳÃçtq£Wj½CH£Oj"Æ5j­8x|º pÀû‚@ãF£Qè*ÀïSœjšoÏõÛ¼Oñâ5#¨ˆ]ß0P ë‚(MÓÐU€#‚f¾=—ä$ ] 8â5#¨ˆA @Äj"FP1‚€ˆÔDlCDÿí4|c ád9¼¡»­·: œ|D„ï‘ RòÑ“ÐuWÿù׳kÔã“ÃÐuÿðæÉÈ:3‡IEND®B`‚ghemical-3.0.0/docs/user-docs/images/remove_hydrogens.png0000644000175000017500000004470211563552731020411 00000000000000‰PNG  IHDR,Z 5bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ <ô<” IDATxœíÝ]ˆé}ïñ›6TúA Ó°õ…£ÅkqÀÇž VÈÅÙà Ë$`FZ8qÎEØäÀ‰7¹pvH¼ñE²Ç°«‰!f7pL”‹C6±ã ɰ2x‘ ^¦^è tƒº`ú\Ô<ÕÕ5õòTuU=OU}? 4ÝU]õtõLÕ¯Ÿ·ê‰ÈRþôqž<Û8î}ùŒéBd!°ëõM NÞ¥+¦‹P)šõ`¥íç|‘n÷;Xœ'Åqï›.F¥¼É5ÓE+táœ/Òó~§‹Hw>Xçü6éT`i{õ`ѪÁÅ?¼*""ƒß{3öqÛØôþTYÂêüÊØ‡Î6Âï³Ì÷“vü’Ê–TÞè¶’–Ç•?éo(­l¶ªê÷.ëøê®›g;m?ç‹Ð$T‹<¿teéBõ ß&’%]DLIº˜.þáÕÚ.luì§ê  ÎñË:¦q£ŒÏ¡ %ªŠ2ç9¾iëæýœºpΩö¼ŸuÞÌóûRäo3ÌH`Ù´Ðjý4IÛêê=) †ŸOú\Âëël+îÄ’öº¸²†·ÝftŸºëf}ûM*Öû*"i;iÇ$º<ísÈsüâÇ•§È—Œ¤ß¯¢¿CÑíê?2†_«ö¯s®ª#ëÔå=¦:ëÙn•Šl¿«ç|ۨߑ¸ó€îõ¿öÀ’T0õK_å/|Û«“ªÓ¾•¤l¾<ßpо.nßqëÆ=Ö]7IÚ‰<í}Õ¡Èñ,rLÊüf«$½6k[e‡€:Î/&å=¦ºŸgÑ¿÷M„·~.J'$µýœ/’Ý$Tä‹FTÖ)Ým„J‘2i–¬‚Õ}"(²¿.T–ùm")Xy]“$…–*ßWÚ°©ãiº ›Ô¸V]Þ¸Z¬¤õŠ–++°æÙN¸\á/.E•}¬ó„¯¬}wáœ/’}ÞϪ]®KZÍžŽVtºÍóÇÛåêÁ²~Y7ÙŽé?˜ªýc,zB©óxÖ¹¯M/ÄIë”ñ²šÛâÊ•¦Ì°•õþ£?‡k2šòE#oy»|ÎoíÀbë/s´š³ËÕƒYUƒe|†YíÛYlý=*Kj‹Øôso£²ŽAžP›0н¼ýLÊVZ~ÎÑ%dËßk\9òüÞÕ^Ã’Ô–\ä%ï›ïBõ Î·‰´?úº~±³ú5˜”Õ‡¥ e÷…©âøÙô™D=~IUÒqý|Ô²´íØxlD²Ë^^VÍÓ&ªú]ëÂ9_$ý¼oËïh\Ÿ¤¼aÙH“ЦíX"éÖ´7ßÅêÁ¬NlIíã:ÛŠÛv‘2˜¦s 6é;µÏ¸}ymå‰[¦û¹WYöMŽ_UeŠ*»oMRPÊ[~Ýõ«þ¬Š®›ç¸vñœ_¶2›Rã®=º¿S=YÊŸ~ЉÉgÚ^=؅ϰ.Ñ ³ú@s´ýœ/Òó¾ãÞoG§[]]¨äÛD1„ }ºpÎéÎy¿SE¤;,ò±½É @1œóÛ£SMB yÖš„ºPmšÉ¯a°Xl–;oß©»[¯ÜZ{ÜY.ýJ–ýïïË­ß÷WØ»½—º¡^¯¼ ,½^ODÖóIPÃâ~ìž{ûäüs""÷R—¡2†¢òÉgL  °XÀ¬G`Ö#°ëÕXv&;±ÿÂËã~®ºLº‹–©®÷²‰¤2ê–½ ïÐ|©wkŽŽ…ÞÄ¡{Xh™ l/m—X’f»Ýg¿ÔBìLvCAø¼©à.ŸúY•+Z¦¤çÃËÂË£ï=íqÚ¶«¦ó9dŠJ ,e“¼².æ›PÖ¤`‘¶Ÿ¸÷sÚ6ó¾—¤ýÔ!OÙM–Ð^µÕ°D/à6]ÈÂ5:åÒ]G§G‘àTö±+³ŠMŸ+ =j«a)z!£S§¯Ê¦–¬æ«¸ÇÔÉŠ>,iªüÆ­ÝÈSËR…¬š“M-ÔœL²ºKT“úDä©‘Ð N6½wÝ>,”Åê–h?Û/„Ñf›hÙ7y/&Gßä);£„U¨¥†%ëÂ^]·ê‹žÎþò”¯è{É[޲$mS·ìu•ÐmV×°ˆd÷‰»ñ²fËݽ¾»ñ>òÊ3ƒ¯‰òÕEç8´ùýš#5°”!©–F)#å•U¦0å«‹ÎqÈóþi T¥òÀbã߯2™Àq4E-wkØXÀ¬G`Ö#°ë¥ŽÊš§#Ï|&E%–^¯—ùâ[¯Ü*µ0qË·ïÔY@0û5ê¾é®HJ`Éšµ×ëÉr¹,§Tëõz=f´†1…î%¤ú®0S*ÓLõ¥ëZM}aZåSó@ÕêîO·\.ùÂÔŒÀ YOSÅÁ©iL``=jX,í­kÓq¦ö»)ÓåîÊçeú8£Z“K¡"ìTI` ŸÔÊÎmµ3Ù‘C÷PêˆcYTY[¥–¤û í¿³Ÿk'ÜsÖ™ „4Uj`ÉLPŽð·YSµMúölºÜ]ù¼Lç<&/œò Í~»óÂNæl¸Ñuâ¶SVêž¶Aí3º/jWе԰ԩmÚ“Œ/ŽEDdz<íÄ~7ÕÔr7 ÇY…Œ`ÔÍÇ®VXñ§÷WëÆm§ qá ì°7¯KÒ>&—&Ü Ъ–èðÀ¢ƒ,ƒÃ Õ·Ù¤“ÌࣿÞv¹'º¬ý:ÿËÎm¦Ž—îþ«R÷~›øû±s<Ôÿº¯©¢!;)¬”^Ñ2¯Ë¹ýY0  £u5,a…O̳‰´“VxÙΑ_¾Åç"²ù·YÝýN&þ·6ï™'c¯­0u¼tö¯³¼Mv&;²<»Ä›þýpUíH¯'î/×jMt¨u]‘µíl*«f¥¬ß—<óº0 šÄx K™Ã"£Ãš7¹ï‰‰ù¢ß|‚ nÅ>SûÝ”ér'í¿Î2D÷kb›LöX•hÀÐ -ÑuÊê»’õûíÏR¦¤íú!h+jXÊ<á†Æ&Û59¬Yd½ úÜ·²íCÙ9Ú‘ÁGƒÒš8tö뺮L&q.8âºv|3u¼¢û×}¾é¢}#“ǹbßïG˜n–²Õüuæ£ §f²84Ee5,ÜkdCêð%œ÷«ê‹Ñûi/uû6^ˆD¤ÖãwRÍeqÇ'iT†Hþ`£öÝWÞç ç¸÷ öa{í\]L‡<ÀTЕ԰p¢Ê/|ò.2K‘‰LÄ}âV6 zx»ª¯ÇòK~Eq•ûÝ”Éã•ÔIRÕ@郼-£ÛVó>_Tô8«÷¤ë¡Eçý§ý>Uµß®.h®ÔÀRv¬MÛhuþÈš:¬9ë½é¼÷"CJMíwSM-wQqa#) å}¾(>;“Y<+·³³ÍT“Yž‘[Ñ7$¹ 4ÝgêÞár¹,ôOÇZ÷K“à„)"¹~Žn§nÁ¥—ï¤5øh ß-B5›ô~Ú˵_炳Îj@ÝÇ+¼Ã?GÃ@Ú ÕÏMº€ä=Îê½™þý¨U¯'R`˜ùÚïÊÙ6ò˜\šçEÎ?E†ëÎ¥bëß1 «ÖÀRÇL“‡5gõ H}íCw7ٯɡΦŽWetŽÖà¨ã÷ù:Ù8¾*:É3·! 3’Ô^Ã}yOxeÏɢ˖ QÇ+n’8‘õc=YMCy$ë¼Ï×Ɇ2Ô¥Œ‘wÑ ´Ž ‚.hu§[ÐÔ°h…ƒ˜.€ X4žî\Mš+5°ÜKÿÆ’µêPÇ嘕XtæK¹õÊ­R '1°ÜyûNåh­Ý뻦‹ÐX&n‹€j5eÖZöI ,Iwj†¾<7@úɥ ·:¸w@ˆPH­wkî’pÿj Ø £„*6¹4‘?}`ºsõKWM`&ŽÖ#°ëX€õ,ÀzÍt P‡fºPžÉÎFóölúúM™Þ?€vK ,Ëå’yX6ppï ¶[\»zMî?¸odeì»+Ô=zaߙ씲ýªÃBÕå€4ôai“ÁÔ¾w&;Á?Ýeêqøù2^ŸT]‡î¡vØH*SÒ²hÙÒ^÷XGžò@Qƒ®]½ü¯~Ž[~.mݬõ’–Åí+kûyö­SÞ<Ô7|õ/zANZ^®.äE_¯³nø5ѰSu­„nÙt·Uwù Š™n 7©D›Wt—%mOw÷ܯ¤Y©®æ¢ð·û¬oúyÖ-ëõÑ€c²¯GÚþ“ž·©üº‹ÀbXÚ½ê‹}]Í9i¨ŠP³é·ÿ<¯×Y7®I¦èE?²¶QV-H™å€¢,-”·‰%K8pdŒ²÷WBóô'ÑÙWžQ¦¬ýè–ÉTù ŒÀÒB6wÂÕ >yTyµñ]$8„×¾ž   ZXԷܦœ|«îç‘¶ý<û.2ÂëG_¿Ih‰v"ö+‰.Ës1N۶κ¶\øó¼h‚V–ÉŽ,Ï~îYráÈ¢.ÜêgõÒÖM[/k›†'Ý2–!+HÄ=Nê0›´¾Î>ó¾6O¹ÓlR–¼ë†——U~È«5%Ú`)Í -EŸÓÝ^Ö2më”)Ͼ™p «ó°ìLvd¹Y.E¸¡íÓøÀ¢ÂŠ¢BKOºQEÍÔø€.ht`‰†•°&„•2‚aÐ ,Ia¥×kFXúX+tKã a€îi԰榆•«_ºjºã>qMؽ¾+“KÓÅ`¹ýwöÏ=טÀÒÔ°"ÂÅãï@,M+JYwΠ͒®ëÖ÷aiCX›±:°V€ˆåEÄ'ÑÇ„ºÅÚÀîó¡B a€n²6°DVè.+G EGÔTè6+‹BP"–ÉA¬±® aDYX¢,Àz`= °ž£„âîdLç[ XXDΆ7ÅÚ&¡C÷p­æEý}Ný‹®§ûØÏšáZ—h 52´—µ5,qÂ$)œDkfÂ54S£jX¢hÞ UæjKÔ¿´u64›µe“æRÔë£@³XÓ$­É ÑšB íeE`Ñ qëDŸKë”K ¹¬mP,Àz`= °XÀ¬—:¬ùàÞA]åH”9Ë­WnÕQŽVY.—²ÿξébÐZÇþ’I×tü˜Z)ÊF`= °XÀ¬gÅÝš‹Úyagí1ƒh§ÆÖ°ì¼°#ËåRDüaÄËåò\€íÐÈÀ +½^/ø™Ð@û4.°„ÊBh ÝXâŠBh ½XÒŠBh XtŠ¢BK¯×#´ÐÖkÎVD$*êg†:Ð|V×°V€ˆÅ…°+ a„YXyŒöÉBX ý¬ ,"z¡…°@7XXDÒC a€î°:°ˆ¬‡–7þü yãÏß^¯'¯çu!¬ÐÖ‘ó5-*¬¼ñçoVèë'ŽS&tW#jX@·X€õ,Àz`= °XÏø°ævbŸg3PŒ Hg}“ª ×Äì¼°ü‹[?íù¤`/+jX²ì¼°Ô„N[¦û`?+K\­G8P$ýœ†@@{XXò†‹´ŽºjYt›4Ð\V–<âšwÂ’š¨q ¹¬ït›‡n- µ-4‹5,Y}X¢Ï‡×Wy˜Ø$÷ÐÆKVxˆ[}N§é‡@sµªI´XÀ¬G`ÖÓêt{ðリË(3°,—Ë:Ê(5°ì^ß÷‰[WYbчXÀ¬G`Ö3>5–I±ºLÅ@[XXDòTêõz•˜ÐˆÀ"B ËXDhæ «¬ ,q}WÔsºÅÚÀ"²ÞwEýLÓÝcí°æC÷ð\8éõzÔ®ÐAÖÅêÀ®e¡v€î²:°è_ËøâØt1@…¬,ª–%©veðÑ@ j.¨“•%m:þð²#ÿçÅçÔ²ÐbVk>teg²Ôª¨ÿÃÏ@¾û7ß•+Ÿ»"ƒ «ÝÅb!r*ò›ÿí7 – è+‹È*¤L.MDDÄ}âž +‡Û‡²s´#ƒr¸MAsÜÿÉ}ÿ¯ïTdöl&öP^û“×L 1Þ}ï]¹üÂe‘¾Èpk(""ƒ­È©Èât!Þ‰'>üPfOg BÖ–€šŠÅ_LPASÜp_DÎ.z}ÇqÄó<‡2~n,»_Ù•Ùl&?>7ÿúMÃ¥…ˆV&“‰8[Žßì|ö¹9}G¤/âxâ =™Íg""òÁ¿}@h*b]` O¿?™øµ+²™ÈDÜ'.Óó£‘î?¸ï“ÐEODDNE<ÏïÔ¿è9}Gv¿²+Nß‘7þò ³…î8U³¢Âгå¬>·3Ζ#ެžwú¡¨ˆunÝÃÔ0’µ\„¡Î°KV¶Ç2¼8”ápèKwq¶ÿ¹­¡Œ†#qGÆÏåÚ—¯É«üªé¢wÖßýŸ¿[«Y‰ +a޳ZoôÜHþåý©±´@7XXÂ\÷¬¨ç÷aÑÅPgØB…•Éó‡‰ë9[ŽZ.Žü‹äYÑ·ÿ÷·k,-DD^þï/ËäÒDœ¾#£­Q.³8[Ž:ûŽŒ.Œdïö^ ¥ºÃÚÀ¢š~\× ‚KÚpçàu u†EœþÙElKï‚ç8þERÄÿÖ>zn$7¿~³êb"düüXœ~¨™G#¬NWë_~árÅ:ËÊÀ¾î·¢Z|ðod6%D©Q(*àŒ/Žý)¨Íx<–ÁÀ?æÎ–“«§ßpxÖ¡zË‘ñó|aÊde`ÉêÃ’úÚ³QCƒ2=ž–Z. Á`°öM]—ã8"§g¯wÙ¾¸]Q gò¼ßÙ_âÊÃó<ôý!Ï|n@¹¬ ,QyGn2ÜæõENÎÚ‘³oóΖ?tv8ßöQ½›¿{S§ ÈòYXÉZÞÙëO=yõé8 ”¥hš½oú.g'3‘Sý×E/’Þ©?O ýXêáx2ŸÏeñl!ީ營ßüd.Þ©lgzD-/P PÅéB‹…8ý|Í áõ=Ï9õ/‚ö͘ÔNwÿù®Ìfþ$p*¨¨Ï!Ë|>÷'”;[wz4•÷þñ½j t¨À{?|/êw&NÄ¿H.>]øßöþÿ¨‡wâÉÑñ‘x§~-Éìdæ?N žóù\<Ï“éñÔŸðÙl|”‚ÀTÄýÄõï4Ÿù³ÙfÔ´ÌOü‹Þìdõ áùae÷Ë»5”""Óã©,¼…,žùÍAÞ‰ü¯þ‰Hð™ÎçóµÏy6óÿŸ22­hŽQÖí\[Æ]›¹ó3ªæþÒ•ÉóÉH¦2•±ŒÅó¼õ{Ñx뿵‹ÞÙ7|Ïód÷+»rÿÁ}™Ífòþ¿¾/oýí[†ß]{½÷Ã÷dòüDýx§žŒF£ /‘œœu¤>ñ›ïT¸ >¿§3™ÏçòøãÇÁý…”ÃX`‰ „´Éã_<–/¿(ÒõG2=žÊh8 B‹œÊ*´œ®:èz'þÅoúÉÔo:YÈäÒD¦ÇSqúŽÜøê qú޼ù=nX÷W¤/ò¢¼èMï;2?žC¾#³ÓUXQwÝžŸøaÅu]ú¯%³ª+_\€IZ¦»^Ü2õ UºûÏwe¼=–+¿qEäTd4ÉÔ›®Í ¤šÜ'®Ìç⺮¼ûÞ»âyžŒeÔÔì^ßïÔ£¦¥¯þñ«rãú ÙÿáþªãíéYÈ|&kÃÌ‹…¿Üó›ŠTXÙgßDÑV3XÂ³ÖÆ…†¸Ùnó®—´Lí›°‚ª½õý·ä[ò-21ñ/vÞ‰'ÎÖù°²X,‚š•ùñ\Ü_¹«yYT3’È*´œõk!´”k<ËàÂ@ÿü±ÿD_d|2n³0ïÏe8žkÆ›Ïý€™w¢@zŒÖ°Dk<ª˜ðÖ÷ý@qùó—ýû GâŸËͯßïÔ“+_¸"Ë«P2ÜúGÇ:ã1÷«)ÓÞ7÷d8Ê·þç·äòe?`~ãëß§ïÈÃʇÿñ¡ù5d'þÄrï¾÷®ˆˆ}r$³ùL&¿>1ü.€v²ªÓm”n5'hÕ¯á寽¼ªi9›(nvâSŸ—?ú_$/]yI§ 8Yœ.äݽ›>y_ÿìB"~ ýX€ÒYÑé6ü\Òò¤ ‘¶^Ö600é寽ì7 ýf õíþÝÿû®Üp_†‡ÁôÇñûTüÞ7ü‹ëÙ_îÂó;ê^ùÂyø³‡ßM³\ùâyéó/ùǶµuV£¥ŽûÂó›éfOgòÝ¿ú®¼ÿÿÞ—¿}c}cj(ºšáv>óg:P*+:Ýæ]}>m;ºÛêv÷Gwå[·¿µ6ZÈqyôóGríêµ ÙH}Óß¾¸-GGGrå W‚ù[Ô|.£áH._¾,®ëʃŸ>0üÎìvå‹Wä¥+/ùó«l­ÂŠˆÈè³#™Íg2è‚ã~ôÉQpËõ˜š¾_}ŽÓ§Üð¨Só=þÅc‘S:x5ÒDÄo*š>Í AMË–‘uúNÐqW=l d2™ÈÕ/]5ù–¬Ô¬Èj¨øø¹±Œ.Œd<û³Ùʪyg6ŸÉâÙB®|þŠìÿ`_ýü‘ˆ¬¦éŸûae~<3%?P  `ëºÁÐØàžCg÷®¹ÿ“ûA¿ ÕÇb|q,ãçÆ2™Ld4Éø¹ñZx!´$SaÅqVÇk4Ép8”ɯOd¼=öûÉêxÏOæ2ŸÏe4ô;áºO\9:òk\¦ÇS?¬Ìý\NŸNåñÇezD P…ÆtºÚèÍï½)“&rY.‹ˆ?*h´å__ûÎkâþÊ•I"²%AŸŠÉ¥‰¿ÞПîp:ųÅjºÿ-¸ó•/^‘‡ÿI¿etÁo^S}Vâl92ºè‡–ÑÈ¿mÂÞ7÷äèÈ¢ŸôE¶/nûøm-döt×`Fâ¾_K3Nצã_,â~ÌͪX ¨Ð2ŸÏe¸5”ÑÅQ0œÙéû5ƒÁÀŸlî¬ãíÂóC‰û3à.‹UÈpüù[¾ñ{ßX ]þz< ÂÑàÂ@¼ÓÕ=œäTä\´?R IDATèøHD$' Ïo>Zœ.‚Ð2¼8”~¸ +' ‚ P ` ZnþîÍàf‰žç‰\™ÌdøéPfóYpöNýéüƒõDViÏ;‹ÅYÍÈÙóu?¶ê9k.úÇÅq™øÍjê^Aꆆóc¿Ùgöl¼NÄ”wÿù®<þèñFŸ5€ü%X&˜tìT‚©ûEü‹åüd.Ó£©Lý;:{§^07z‘ö<ÏoîÕóu?¶éïÄ š¡Dü0âø5%³ÙLÜ_ù#¶¦OW£Ÿ=«‰QÛ9 `5,€…fóYÐWe0ÈÑ‘ß\!§~çQUâîîÔœ…›Å‰ßÌ1{:[«aPÖú–ôWñ@B Eâë=/5,,¼PŸ”¸ÿÏæ™I Þùòfî?R^9õkªFÃQБVMò¦jZÔqU}SÔ( ÏódqºÙl–û³P `!Ïó§zwđٳ™Œ.ŒüÏgîÈÀÈìdæ_LÕ÷Î.Þso\ä~ô0³™Du¨û_$áuáf–¤qêž>u“BBËï۴fc÷+»2èŸúÙr‚ÿ§O§«š!Y5k­Í@ÜwdæÍÎ;µ±:°Dï5Åôúh«ét*ãí±ÌOüN¸³g3q>uDžÉj´ŽøaCÕˆœMbŸ.äÁ™¦_Y,2=žÊø¢\Ç9‘Ø5;ñkRÔTü‹“EÐ|À kû°d…Ýu€&zø³‡2=ö›+ÂÍrê_xŸ.üf ³& ‘ÐÅõì†}AG\ˆˆßÈ;ñ›ÑÔñ ŽS¨¦JG^ÞÂï;ôt*îǮɷtš•5,:wiVëqÇe´Õtê–ñÅq0_‰'ëÍ'ó“Uóê£áyž?C+eÍã_øMJ‹Oý@7¾8öCJ_â«øáo>ŸËt:ånØ€aÖհ膕ðrjZÐFÿó¡ÌžÎV5-g÷ŠÞ9XÕ ,<¿“èì©ZÍrÞã_<nT¨î¤:(‡Cßâtáwh>«Y!¬æYYÃ"¢ß?åÐ=¤¦­õà§äʯ£ƒï¬Ãí|&ƒþà\_ U³BXI¦jZÔ™ÁtýªVêÚÕkÁ¼2³§Œ l`U`Q5%yƒ¡möð?Êï|çwü}ÿ.ÎŽãÈüt¾rûé"˜ôŒ°’M…‘ËŸ»LÓïô ¬¨yeÆã±¡R³*°8o÷+»«{ùœú؃{~h9«Y!¤=v/^~Qœ-'8Þãç ,€ ¬ëâL.ML°ÂöóÛk3ÈÎçsq¶yðÓòø£Ç„•’M¦k7z?7–Ýë»f ÀÞÀÀ÷â /®Ý«g6ŸÉƒg~•ªÌf3„ÖÙññïä À, `±à›½ºá¡ÇäeU{ðÓÁ\-ªfküüX.î²á’Ýfu`¡Y]7y~²öM~<îÐŒêùÇü¬fËq™üç#À$«‹¡Ý6ya²öMá-äÁOiªÚìÙLŽŽÖG mÓù0ɪÀžÎ}²š;+´ Øl÷únP³"§gQu×fTêá>”Ù|¶vü·Ÿß–½Û{f t˜uÚÃsªÜÿÉ}¹ú_¯ŠÈzh ‡f¹E[MžŸø5+gÍóãùêŠÊM§S¹üë—åÛßùvðÜþöeÿ}ƒ¥ºËºÀ"² -×¾|-ó^BÑÇÔ² -îüýàç×þì5™ÌhªÑx|~8óKŸÉPiXÕ$nJú‡´Áwÿæ»kÿà•?—®p±¬ÓÝÝ=wwæ+_¼"¯þñ«†Jt›µEDïæ‡qëZÐt×®^[{üè—dú«©¡Òt×ß?\k‚~ëûoÉë7䃃äƒû@î¼}‡~-@M¬l ÓiâQMHa4¡iîüý™\šˆwâÉý÷åê—üþ[rê³}ëûo™-`½õ·oùMC_ö›†®]½¶v£ÄÑs#yñó/ÊÞïíÉÁOäµ?yÍp‰ö²>°è"´ ‰þåý‘Ñ…Q0ׇÓwÄy2äÁ¿?Ù³™¸O\™3Yœ ¯ÿÅë²ûå]q¶‡2èü%†&ò[œ.d>ŸËî—wåõï¼.¯ý¡¨Bk‹H|hlõÁÁ2~n,ŽãÈ`ËŸgÅqñN<‘‹"³“™8[~ˆqû®ÜüúMyïß3\êñű ‡Cq¶œsëy'ž œÌŽg²û•]yý/^§¦¨€Õ}XŠ FMðÁ¿ùae4Éøyÿb¸½½½öÿø¢fFÏdri"×¾|Mn~ý¦é¢wÂëßY+ΖVDį}ÙÊèâHœ-Gv¿¼+ßþÓoÇ®  ¸VÕ°(„ØLÕ¬Œ†#ÙÞÞ>ÿWØ÷/‚Ò÷Ç2;ž‰ˆÈe¹,Nß¿hRÓR­íçý›ªZ•áp˜º¾³åÈP†"E\ÏõoX  T­ ,€ÍFüoâËÃÔ¿@ÇñÃÉh8Ïódpa ƒ-¦ˆ¯ÚÍß½)£á(8þêÿ,áõ‡Ó€üZ×$Øì»õ]‘¾Èhk¤u!T§Ñ…‘|ë|«Ú‚C`jtùs—W£L4̳׌F#yùk/—_8ˆˆ?íH¨f%O=ôéêu“ 7nÊD`j4‚y<´…¾é. ‚¹¨–çykÿg:]€rïÃ’6 ™Î³huóBïÄËZÞ"xý ?°à/·½f³™:NE' néõGñN=ñO ‰óã¹ÿÙœ­ç~âÊ{?dè9P&ã5,QIa%ü\øqÚ²ðcTÔÏ47Á÷—®¼ôù—ü‹áñ<~–3Aó‚ +žßä°x¶»?º[c©»åîîÊKW^’éÓ©Œûc?„œ FmÝKHdõ¹Ìæ~=›­½@9¬ ,U‰ðö)0íÍï½)7¾zCŽŽŽü¹:Ž$˜”ÌÙr‚oñóÿ›ººÎçsY,2›Ïüe¨Ô£Ç‚ÑYãçÆ2—³–³Њê[4ŸÏý°òt&ñXýü‘‰b­fM`¡Ö]qðãÙýÊ®Èܲ¼8^ø£€<ÿÛ»úæ¾ðâž…•Oâ>qÅý•Ì|‹ê¼÷Ã÷dðÍU0÷Çrä‰ã82—¹ ·†A ˜ú¼f3?¬|øðCf"*`E`!¬ KÞøË7Ä;õäÆõrtz$Ζ  šN—é'S P!ã…°‚.zó¯ß§ïȵ«×ÄY82 ‚¡ÎA ˯a™~2%¬¢jZ¦O§â8ŽŒŸËtk*£áHfÇ«æºÙ³™L?™òù2XD’Gî¨ î4~>k`³7þò yõ_•Ñs£àn¿ª©!ÚwÅ}BX1eÿûÁÏ7¿¾ºÏçy2=žÒ¨‰ñÀ¢0ÒÖKZ–Ôá–P[¼ù½7Eäì†{[£ Ù!øæ~2ã‚hB#`ŽñÀ@˜³2X9q@XÀ¬G`Ö#°ëX€õ,Àz`½F–¤©ü@;5.°¨°Bh ;XÂwvŽÞô´W£Kô¦…ÜÄ€nhT`ÝD`Ö#°ëõM Ëî¼}Çt€ZÝzå–é"h¨F–6u¶Ý»½gº@-z½žé"h0ëKxèr’É¥‰ˆˆ¸Oܶc‹´÷´ÁÁ½ÓEÐpVõaѽžÿ/ó´ÐÖÔ°dÍ`«‚ÌD-_.e"~íDZ0iRM ˆgM`Q5"EÂEÒk+´ƒUMB:Í8® ½^kú°€tÖÔ°(:!ÃÕX‡°r^Vs[8äø6±.° Zi!„€°•UMBºýS¬ÎËêºß&42° ^ªyHýãb¾8¨MB½ÈÐ „MÐ× @],Sôâ·i$!´¨C£KôÄȉ²>g$áw@Õ‡%Ü‚°bµ-PøP—FÕ°ˆl6#.Љv´åØC„ßõj\`áDYTÖq /®Ë1‡ÂïÕ$º©‘5,ÈïàÞAêòÝë»5•€ü,±w{/uyÚ$0M;°¤ ©£M[·£mѹI¯Ó¹!`:HM¦XÚ>ÿIÜè£6¾Oš¨´N·áùQÂÏÅÝ(-¼n\ÍÎÍÕâ¶§ EÄÝG‡P@õJíÃ’Ö|’öXçç¤ý„GkIòÖ˜„_OÀ¥kN›Ç#mݼëT$²Â ³íP¿JG i† ‚´0 »í¼eЩa¡€zUXâšctiÊÚ–Žðv %ØÃº™n«¼±7í ™*«a‰»ažN…N“PÖ¶£pÃë%‰+µ,Ø¡P`‰»€ë<nnÑY/Ï:ºÛN’·ƒoSCL´–I÷}”Ü€¢˜š¿Câ!Ð–Ž‹ 0IËt׋[ÆPðöÐÅe#°tHVÿ ݉öt' ?¦?Pûðy¨“u£„P­px¨cÔ´vc䀺PÃÒQi5":¸PA¡¦@,¢;¬\((ü.¨MBHTFm 51íFXPjX:$:‘žz.iyž‰ût·AóA{ð9¨¥cŠ6 噯m“íaŸ#hÖ£†¥#î¤.ß½¾[SIȯ±…¾ùìÝÞK]î>qk* ù56°Vò!š¬±}X. @w46°PÃ@w46°„kXÔ}q¨u Zч%nB´&ÉÁ@×56°„G ©Ÿ›Z²FðM·ÿξé"h¸F–É¥‰,—KqŸ¸kÁ¥©ýZÁ@ºföaéõüÒÜô5.°LT³Ïr)“K³…µ°.°¨~(Iÿ—õÐÖ–h”èÿ®jêõ‚¾Y¯Íf]`I£jL\÷p\@ë5&°DovHsÝшÀwgfš{Š Ï œ'ôEgŽû€ªXXÂgã ÊüÔ± ÿÛô8u°6°ˆ$‡.”e‰ǸڗpxL‰·^ܶ£¯K{ ìÃgÀ«‹HrM 'ÌüTJÚ1«} ºÊÞF4Ì$Õê¤-ƒ½ø¬ÔÉÚ©ù³jP¨a)&|ÿ¥ðã²·ŸµNÒŎϵYÒjA LÖ×°$áÛÝfÒj;ê®òϪùÝøÜÔÁÚ–,|«ËOçÛ°©ã½ó6šƒÏ @[ÂêUõÍ9®VÍDXP—ÆÖ° ¿¸& ð'º,*ÄD;L*q'iB3‰Îâ¶wO¢M¾é75˜ÕH¨JånÓFw¤=Î;B$i[q©hÍPSà MWy§Û<£;t§u/úÚMV0§öaÍEú¤5ÙvÞ2V0«ÖÀ×£«H“PÖ¶tÔV²FðÐu˜8®ÊжíºjV²FðM·ÿξé"h¸ZKÒ”ì:}[²š„²¶í„^/MRMM™A†<¤+-°dM­žôœz\dZwÝ×ä™"¾Èz ZLͬG`Ö#°ëX€õ,Àz˜‡åˆ¢]ÅH(f”ÀÒ1qwÁ&\lG“ÖìLv‚ÑçÃË“^Wt›hŽ´ÏªB q÷cJzœösÑm¢YøìÔ‰ÀÒ1Ñ@‘ç‚£³nôÖelö"´¨ ¥c²îh]EU?ÍíFhP‡F–<7-D¶¸›OVq\ù¬ÚÏ@Óé6|·å¼Í(¦È1Îz Ÿ[»VÔ¥5,qUÎqµØL4湫µz]Ü6¨k'>Ku²:°0¢¤\qÇ..ê¼6íqÑm¢øÜ˜`u“PøÛyZ- h7«kXDhú)ËÁ½ƒÔå»×wk* ùYXD¨I)ÃÞí½Ôåî·¦’ŸÕE·³f¸Ã'âHMfe`I “K9ŽŽTía]`Éì¯Òëùÿ§Œx¡Ï íbÕ(¡¬ 1QMDËePÓ‡>/´‹U N£‹«j_z=:‘Ð!V–¸¦œèc×=\—ôa ]¬ ,"«Ð’toš,„ÚǺQB"ë£}Ý BX }¬«a ;tƒ’D¨QÉOÕ`…k²¢ËÓ^[ÆþÈÃÊ–0I¹âŽgžcÌg0Áê‘øæ!“L’ú ÅÕÀÄ=N«©‰. ß};m?°Ÿ¬,JÒ"¾ñWCÛ´NÏáu¢ë%-‹6ñéìvâóP'뛄¢5ÂJuÊ>¶t˜n'¾4¨K£‹5Ûlú-››V6¡@X`—2.TÜ´²ÙøÌÔ¡1}X°¹´Îµq#‡ò*2š~ÍFXPjX:&.´dJº(¥õ)Êêo×Ù–‹_³ðy¨S-Eç]_g¢8Ýõò¾¾íMYï-k²>Ým¥<å]ø¼˜Py`Ùt¢²¨<œE÷Óö @[UX²&*‹ÖtÄ µ~t›á È6 ?] 5÷´ÖÛ½¾›¸¬­Ç`?kú°¤‡¸ e\؈ ¯Óõ‹íÞí=­õÜ'nâ².?€YÖ–ªú5d…•®„š´ €íZ?¬9Ú„§ía€¦ku` ‡îU@sUXòLT·€H }Xt'*K{]ÚúyæR±µéGw]UK§[݉ʢ“†DëlWwÒ2Ý2VIwÐTûïì›.€†³f”P—1‚€t­ît ÚÀ¬G`Ö#°ëX€õ,Àz kî "ùUÍÆ ýö °tL\0 ,lG“P‡$“¸£þEŸÿý9ºNÒ²¤íE·· ˜ÇçÀ Ö¨P£þÅ… õ|øç¤mè\Ø¢·bÈ*ìÀç NjJ:AÒœQ{9ñyt͉êÒˆÀ’u×f»:£YøöÞ„u°>°èœ ÃM áÇh.>Ãæà³P«û°äýæFŸ‡tIǦì㥳½<ûäó´a@]¬­a¡š¹q¡%Ú/%¼¼ÈgÞFÒ¶ótÖå÷ÀN|.êde`Ù4¬¨ 'ÔxºMliÏgu¾Ýt|vöâ³`‚ÕMB"Ö°èÔŒL.MDDÄ}â&®Ã·Àu÷2×Ù½¾[CIÈϺÀ¢¥×óÿ'”hÛ»½—¹NZÔEPT¡qe¢:c.—2‘r.²]Àq4Ykû°0€öh\`qU“C¯—Xkw3=Ð\Ö‰ß\÷p\"ÂvÃ7éÍÕ¸>,Y˜Ï€ö±®†ED¯–% “ÆÐ.V‘ÍC hk‹HþТú«P»@»X߇%éFzaYË@³YXDVA$©¶… ¢'«ö)¼<îXg½6IÞϧŒZ²:jÚ’ö=Žü~ÀæXNü›K»ÈFE×K»ø†Ÿ/ãnÛmѦ÷&Y݇vÙ¤#tÜd~ªÏQt›q“æÓ‰[Vd_I“ fÕÅ­ oºåÕy¬û> mUÂͩ‹l\HÕ»´¦æÝmDßcÖ¾êj¶Ùt¿¶¼0Ô&|1­âÂZt›¦/òia1O1ý> JÔ°tP¸Âä·rÝSÍ:Ç&ï±Üô½Ðä «,0"«¯GXªê§hÒÊ@- €®2Ö$î<¨ó­1m´Œiû̳ÿ¶)ra¶¡„îïAІœpy£ÛÐÙfot—‘–¸ñ&ÃMÛø9ñÇ‹—2ÃJ´ßFÒ:n=e"ç;á꾪jYò–c“×'u:¶!t@µ–´ªî¸kRÓAÚ(—<'å.À³îd]V§Xݦ Ý;k§•E÷5E¶Ç¦åÐ]·È~ªîì u°z”PÖ°Õ¨puz‘í"ü^€¬,y¾æÅEÉN¦?Óûij:°T…‹’½L.¦÷ˆ×¹ÀBX yj,IýOêšt‹°@óÖZt‚DøuºC:ã–%mÛ”ƒ{Æö @›éVg.Œ¸ÇYC=‹ 5mïöžé"•Úgßt4Só[À}âš.Vë\§[Ð<Ô°Xàá<4]¬F`±ÄË_{Ùt€Jôz=¹óöÓÅÐp‹x'žé"¥zÿ_ß7]-A`= °MB2¸08÷ÜâÙBûµjÝðÏië¡›ÞýÇw׫þ+ôcI·^¹eºØ¥c¢aB7`B“!Â&½^ÏtP Ñð’§VE„PÓºŸ7"ÂÜú¤=è¨ ³x¶ˆmrB{ñy¨5,½È”Y+Bhéž´š·¤o¶»×wYõŒ­‡æj]` ßÙÖ›šT´ $éw(©K´©ˆõX¯Êõ¸ñf{4*°ä #„ IW· 뱞ÉõÐ,*¨,—«çz=ÿ¹¸`rèÊÎd‡Ð²"M;4uµsêb}`Ù™ì¬E=×ë­BJº´>,á>(ºýQмíV¸©'€2YX¢a¥×‹Ö²ø£¡E„Z–8yç[Ñù9kÚ'ÏgÌM=a7Þl«KT´¦%®æ€]¸©'LàÆ›ícm`Ij Š“TË‚•¬?Þ_½QSIÈÏÚÀ'©IÙ²ªæù °™µåÐ=”^o½–ůIY,â?GíJ: Ú*i˜¢s 17QsqãM;•uãIkKÝ:Ü@÷pãM»”yãI«K\-KT´v¥ÉA…Nb@5Ònì©‹$Ͻ¨·¾z>iÑ×…÷‘µÍ®ãÆ›ÍRöí¬,"«Ð"r¾ÿŠZÕÄÐÂíÏÑM«~O #IËuîhÝŽN`JÚŽÎÓ»†cÑMÖ‘U(QÁ%ü\’&…–+¿q¥1e²˜¸é\YÆM~Xä˜wżs$o6i½²4"°(:u.ü@÷$uºcêÛy‘P•ÖTn¼Ù”õÊÒ¨ÀEÄõ)1Q†M^gºü6âÆ›ÍX¯,V–®æ+ºí¸Ç:ÛL*§Z^¦Ûo)í}—ÖtŽNÙu[Ò²¸ãÔf:“-ÞøêZÂDÑfzXPà¾8ê\ËØfÜ¿ŠŽãBL\¨Š£[>ݲÙF™!¬ ²nê)âßG«®ð@HªóÓ@³Tq!lËÅ5í}TýÛr óòN¼Ì@t›ÓÖ£f: J®HjÒQÿLÓéeKÓŠMÇ @<ÝZXl†&!Ô¦€&5›4¡ŒY¸©'º.mÄ«îhX”XâÒež‰ßŠô‡ÈS¶¬~º} š*éB]eÿ8uϸre•µH¨©ú}U9ä»*ÜÔu2qãÍðß^Z8õsÒk©ÉVz ‹­Cf³~‘º"®Ú2îB·¬¬}nh¢Ku·™ô¾ËüH%”U–¬Ð·^Ö6løÝ榞¨›‰oæ‘ÖlD“R¶Ú›„t‡bn²^Q] 5:wç“Fó”½Í"ëê–!6ÝŸî1Ñ-{‘޼mû}lGШG­Ew(æ¦ë% ¿¾APŸ¶w#°Mé%­¹AW•tž¾ üÒ¡Nü¾íÆæÍTÚ‡e“ Œ1íIëWÑáÝVV_ííÛíÆ´ çUÚ$TôÂ×Ô“¶"Û%”í ;zŠ¿w”­Hß¼<˰®UÇ‘N„qh&Qì¶Z;ÝêÅLª6‹~SÊ3´5îÛ•-µ,¶Åš*iÞ!‘ÍoP™Ô¼lÃ9¥í8ÆÝTj`ѾYtxk¸)Gg{:e+ò|Ù˜X mcbò.]º£ ³BLóø º§UMBMsë•[¦‹tŠî¼6Eç*B½hêî%1Š\ ùÖ_/Žu·X "ïHE‚JýÒŽ÷ÃÿxXcIP €Î X´ƒÎgøò×^®¡$HÒëõJïÏF`Ðxº3lG'êJ’5R1i}ÂPµò_ïÄ«¨$Hó‹‹€ 7IDATþ¿¾_Év ,-oGÚ¢7¨L{=€ê1J6Dí P=jX`„•î\œ{nñla $Ý@`€ Vº-P„–ŠÐ$@EÁ¿èóáÿ£?ë¾>íqÜ뚌*­mIz¬B…úY­“õú¢ûmªÆ–¤‰›¨Ž˜­ÁÈ Âë¶!PTÍúÀ’5g‚Μ T!Z“UU“L¸6&®¥MMAŠÕE§÷}ôVð€ qáÁTÍIkl¬ít›w¨à¡{xnvJlQv­GRíJÕû5ÅÊ–¤°*[…;ÔªÇu¼~ÓýÚʺÀVTPY.WÏõzñM@ÜÓèÝ{ µE\M²î{ŸÓΕœG³ÅèsIa!©ÙH÷õy¶ßÖ–¨ÉÎZPQÔs½T@—%}Éiûy¡è{nûqA{YÕ‡%ú—V–Ëî}».îb®þE…Ÿ/®÷8n›ám¥í/ï²<ÒÊž¶í´}ë¼_ JÖ×°(½^´IH2à €ö w¶Oêûý"×$’ç‚›¶Í¬}è¬÷¸jiÇ"Ïûªbm`‰Ö®DÃItMC@w•1½A™£ u÷¿É9«Êšå¼ÇÂÖsïûÿú¾é" DÖ–MönJ«­(›émÖÝo§iM>½^ÏtP2kË¡{(½ÞN¨smr“P¯wþ¡è†<L–©)Û,‹Íe‹šÍgrçí;¦‹’YXÒ†$ûÍ>ë£Ôk£ÿ€¢3ÏSžeiÛ,Z–M¶·²_c󹕚•ö²*°DEkYâBJ¸v%nNí×ß"ü·]ž´,n=eÑmæ)«n9ãè¾gÝþ(e½_ÝÇUؽ¾{n÷äÖ+·*Ý/êa]`‰ÖŒ¨Ð"r¾IH-³9ù¨Æ&MBºËt¿e­W´,y×K*»î{*ãý¦mÈ˺À"ZDV³Û†Ÿíge`‰ïÏ’U ™µh&k‹Hö„P"åá<ØËêÀ"r~¸rÒrÐ^Ö…`@w5&°h–ƒ{¦‹ E,*±w{ÏtÙgßtP €J¸O\ÓEÐ"Ÿ1]€,`½Ê›„â†#ëŽøÑf“%aTö¨¥‹­÷ûÉšŒØÁŠN·qwUÏEïöYt½oáp·<\¢ýã²¶ Æ;ÝFÿð“ªuãÖ‹ël›µ½¨¤@ÉèŽ2þÞ9gÕª<°èTÕ&ý¡g­ý”µ=²h§2æWbŽ&Àã5,PjQ€fk}íןD$»ÿÚ¦¨mêE €Æ‹ -áÚ¼}ÛŠöP. €VÈ EúÊío |4 ëX€õ,Àz`= °£„TâàÞé"h €JìÝÞ3]@ößÙ7]”„À î×t´}X€õ,Àz`= °XÀ¬g]`™Lvd2ÙY{n'ò8Nt¸íhŸÉN⿪÷›õ|ÕeºÄªyX‚€±\ÊDüyv&;rèf¾öÐ= ÖÛ€vJ:?TÔ¹F÷ü`sV–(uÂÉsâÙ™ìȲªh„¸ >„—…ÃGt{XX\U;Òë‰ëæþ£ÖuEÖ¶ ;’ÂJ\H‰{œuÎ /§–¨UEDÎ ÝBt‚ Ð=I犬ó°Ÿu%ŽnÝ¥S3Ræ¾Ô«ÒäiÆQËÜÍB@õ¬Ö y”¨1ìG €ÆK Ñαáçã:φ_À.–špDWÜ;¨uº[Ñõ²çÙWøù¤ŸaŸEó%–^¯Ç¼[¯Ü‘ýwö —PwFùË·ïðoàÎÛwL€ÖH ,ª†òhZX§&¹¸¦5Ër¹<÷™¥öaá@^ÔÌÂF\Ïš#é°f`=F ¨5-Ê´Q`Ésð&iÒ{)kÒ¬"Û¨âu&ßOžíèîcÓmè̬ZÅïë¦Ûïõz¥–¨a a¶Kóšë(§nP¨º,y·¿{}7×kÚúÅ@¹´ú°ìLv‚áçÂÿG×ÕÙFt;y^—´èsyÖ9t3ïG’¶¬rêØä8d­§û9êl#Ï{IZ?í÷¡Ì÷S…´ß{ãV¤œiÇ!m»›CÝϤŒ¿eH’YÃwÓ0uaOZ–ösÖã<¯‹+gxzí¤×§­£s’NÆ:ßu—9ºÇ5ü8z ò|6iŠ~æe¿Ÿ:ùÝÈ*gÖ{ÏSž2aÕË&>?ÍPê(!i«‹,Ï»ï¼Ógo²¯¼Û+{½¢6ݾé×Ý^ø[~ßö7ùÝØdeì¯ì¿Ã²·  Û´ú°”qR/º.UGkÂò4Ãlʦc^G h;[>O[Ê ™´KÙ£6òœ¸ºvIªB¯³fƦc^Åè—ª÷aÞß&ç)Ð$dòDcËI.«ãc™Û­j½M·±éû-òú2Þê£þW¦:~G7ÙGÇLȬa 7S¨Ça:äâ¶Qôuyö[¦¸ÎºiË“¤•;iYŸÎzºŸ£î6âŽnYÒÞkÙïgSqŸsZ9³ŽKÜöuÊYteCÝßErè¼w:àPz"²\.—â~ìÊÁ½¹õû·äÎÛwäÖ+·8Q¤Ð„|Úp,Ë KM?yuñ=Xwpï@önïI¯×“p>á^Bš¨.G~7 zÌt«©hU8ô5õÛuU¿]›“¤Kï@~–˜c¢ZM>ŽU•½ÉÇ$¯.½Wù%îΪÜm˜¤²H_$þΪËå²Þ„„óIODH&Àj~“П~`¸ñ†?~Kþ?á~ šg~I?IEND®B`‚ghemical-3.0.0/docs/user-docs/images/labels_menu.png0000644000175000017500000001651111563552731017315 00000000000000‰PNG  IHDR± $ZYbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ;6ŠK(ßÖIDATxœíÝ?ŽÜ8¢`ÕÃ$ì^÷ &Ø ˜`7`OÐmÊÓ<`ÃÙÀ@_`ƒ¹ÛwØf2¿`¡†,“EQ(}`¸«ôUÕ­_‘¢ÈÛÓû§/\Èã»Ç½‹Tò]×uÝÃÛ‡½Ë›¸Ýn{¨è»þ‡—Ï/{–V÷üñyï"•ýÏÞ€RB €f 1š%ÄhÖwÓ«Ôuw|þÓ˧×塟`lóëº.LB €\‡kNŒÕÔúeý?®ÍïÐu ±˜¾i±ÿçF×¥¿ôç·KsâøÄ£ ‘%\;…ë:Ü5±ߺ‰dpM»„X)')bünÀ55sMlL­Œžƒëj¦&6îÌáÄE×ù=€«Û<ĦN:Ãåãu°èù]º®áæDØ´&65ŸÓ›ßlTÎ`Ó›šAÚĜ̱iˆ )jrM €f 1š%Äh– YB €f 1š%Äh– Y»„ØýÝýWÿælWãØœÃæ£Ø‡fà5+/%1ŸX(ÔbËr× -럚íë?KŸ#\Û.ó‰¥N@〉Nj½Ø²þØN|çáó„kÛåšØ0P¶¸Få$wn®sÂuíÚœ˜ª9åpò¢§F×tˆŽc¹'#'-z~àšŸXZ™Û¹ 0¸®];v Ÿ‹- RëMíCÓÓyøáÚv¹&VÚœ8~>µŸÜ}Ð&Ÿ#Ðu 4'@̦5±çÏÉåo~|³QI8ƒMCìáíCrùËç—JÀlbB €š\ YB €f 1šõzMlªç ÍkˆMõ„Ö}øùÃÞE*{ 1=hkb4KˆÐ,!@³„Íb4KˆЬ]Bìþîþ«s¶›ú€ëØ|fçû»ûofå =7‡Y~®é͉¡P×ÒúŸ‡Ïÿ­Ú÷x»Ô6Ï èºBìÓË§ä ¨¯•õÿúõú ëŸ>—ÚÇ8àBÏO-ã¸|Vpm»ÔĆa±ÆI(§y1µŽæÉ¶2¸®Í¯‰ õa1¾&¶ÇI)Të£K¯«m:DÇŽ±½NF±Påø|^pM‡èØ‘²V­,tMŒ6 0¸®Íkb¡ŽÓÐxyª;þÜÓ¸Ép|œPsbìxjkÇà3€kÛåšXisâ8ì¦~Îy<µ,÷8lËût]͉5i28—MkbÏŸ“ËßüøfÕãO5UЖMCìáíCrùËç—ÕË ¸ÎcÓÛ"¤¸ŽK]à\„Íb4ëõšØTÏA8š×›ê9­ûð󇽋TöbzÐ×ÄhÖkMì·ý¶g9`¶¯nvþéo?íUXÕívëžÞ?í]  ²oFìøã?ìQXͯÿüuï"+qM €f 1šµù¤˜ßÿéûožûýß¿¯rœ5öK~ùû/_=¹.FÈã»Ç½‹@¡]fv‡‹Àa nà'ÇívÛ»,°KˆMÖÖ†áÖ‡]¿<†¡çs÷)HÛ‘ú¬‡ÜÄOŠáöÚw¸‡IêqêçÒ}ÒŸ\Û.!6™9'¡œu‡µµZûä¸RAû¦ýæÇ7Ö³'p{zÿôåáíC÷ÿûG÷Óß~Zý>±œZÑX¨¶5~<µ,wŸ´aªƒÐ/ÿ%yMlÜÌx÷¿wÖ»àz~þ SGãvoN ]Z#TÕ¹Å>ßÜkbÖ³m:ü}bsšs·)Ù'Çå \×î5±±ñõ¬ÜÔ¸×âx%ûäø|–pm›‡Xè¤3~.vbšZ/Õ$™»OÚàsº®æDˆÙ´&65šø_ÿò×JÀlbS󕙀96mNüã?$ÿÁQÝßÝO>[XkbPɧ—O{.ç›æD³à·>½|êîïî¿ ªœÇÃís·®;Ü–4ï×5}b¦$à,öž7l*¬æl?wÛ«ó~]Ëkˆýðç|ðœÆQ| Õèz±çý]Î'È®Ã51ÈÔP×å$ïïî_ÿ•Kg‘rÞ»k8ܰSp9!—ª™iN\Æ{v jb0C*tRÆ<†ûˆu¡œ»51XÁ°é±\º½ò<Þ¯kÙ-ÄÆß4Ç¿x©o»5šW4ÑP*ö{3~>õû•³®ßÏy¼_×´Kˆ…dN¨øe ëv±ÔEìX¸õËcûH5ÛÄn8ïGÓM[¶ü¼rºë¿ùñÍêå¾uèkb97|NxZ6L7–¶k‹ÏëáíÃä:/Ÿ_V-vè«}rÊÙŸkÏÚA& à¸b¹–vGÖ¬}jÐpM§±'/͉mó™Á5m~³óøþ™^ªSÇ©mræ„¢= ®k—šX(ÈR=cËCû®7uÃ鸣Gê8“Ï ®m·æÄ©“ÏpHž%ûªqc*ÇãóºÎ؉4lÓšXîO©Gu¼ ·iˆåÜ4Úuéûr½MCÌM£´ªÆ€Ôkj Wäš,$|`?B ß.rwÿÕ Ó¡õ‡Ï‡Ö¯Ã4ïÙ5 1¨(tïáÔòñí$Sû Í{v-¯×Är{yroêŸÚó¹Æx¯!–ÛsZðáç{¡˜dêd×ðbzÂqz9ïÛ5¸&+)½6ãšÎrì:N1 l¡dÐê9d@ê:¼g×"Ä ÃœA¦K6 õrÞ³kÒœi „m©‰Á„Ôí'ãÁª§æ°êb0!uûI¨W¯à‚íìbKo]ƒîÌ„¸ýŽk— ……`®Í;vÄÂ*j¡=cƒ¥ÆÖ‰-‹í/4«‹õÇãsºî ½‡÷Ë„îµé—÷'²Ô:¹÷ê¤a5ëqù\àÚšìØ‘º¿fêyÎ'ÕýÛ¿~Û¸4À–š ±­ø–ߎTýô·Ÿ6. -¸ÝnÝÓû§½‹ÁBB,Am®SŸÕÿùc£’Ђ_ÿùëÞE ’ͯ‰¥& ¬)gsǵã˜|Ù€ëÚ¥&65Y`Qbƒ¨N ÐëâDyL>¸¶Ýš§N>96¦:x,݇äqmýÙ|ÿ§ï¿yî÷ÿ¾ÊqJö[ºÝ’}©¬9~ùû/_=¹.Ö6×Ä ÓøÄ»×É8d­rÄ^c(Ô[`ûs¹ÝnÛ†Xj ÕÞx@UhÅðÄ><ñ÷AÐ/…aèùÜ}ÿŸ{¼šA+ëø˜s¶+9þÔ> #v}žlb9ß‚jü‚idkã0H=Ný\ºÏTyr ºqHÎ}½s^c‰#ÕYߦ!æ-Ÿ€çœ(sÖÃ’}®q¼¶:f*Èb-BãV ëµ±žkbi\c[ãä|„kO±fËZÖz±²ÆZ„Æ_²­wìõ>üü¡ë:!EB'ô5š°®Ð,¶ÖkŒí7·EÈzm¬wÈ€¡u%µ‹©mj×Xæ6]Öº^U«L)WþKM *_ëÉ=‰Ž{Ž÷Q«ç^Îñjí·œs̵^#×!Ä CèÄ8~.vòœZ/Õ$Y²Ï9ÇK™»ŸÜŽ&¥å™"¼®Is"\È:Š@Mjb0ajÄó¿þ寕d¹5šï`OB &LÍGÖÚ4/‚‹3Ù<ÄR“Ž—‡¦?™Ú6fî(SåÜj¥Ç¿F1)×ZH±¹ç§ñ¶sþ>C3rÌ)Ûp»’sÑÏ!»ÔÄR'Þ±ñz©73öA•8êVâL¯ŽdÎù©TIàå–ë ç†æšûy¾JÞü~»Xm/‚©¹ÅBËúçæ+T¾PY†rÖÏy-sö‘û:ŽÄL¾LYcþÀ£ÌI;/Í9Ï ×9Òß÷®“bÆN€kJ}«ÉišËÝG(,çÍZ–÷(¯cŽÛí¶w8€Ô¼a±Éq—¨õ·›à·dýÔ—ÌœòñﻹšØRSiÖÜÿÛÕ2ç—{j?Gòß8\™ØGÎTPsMÍP_ës¿àk^¥á*ÇÑì:³óšŸr1Ö®!¦Ž›3 öœ÷rékÙë½€£™:Ñ×ø[ë÷WrμBç®ËÕĆæüÂmù °v°ç^>óÅ`×tjüŽ×´®Ë;7¬uîØ»Â³ëˆ%oÊÞÄÔ/ã^µ”Ò_°ñnì›_ÎöвþZöÞç—”-ÿÞb½Åö7øšXªÍy©Ð·¯ÐI;õ-mêܸ£GîëXë[ÏÒoœs¶ul9¨aêšXÎù%%ö÷–Óc9V®Øö¹ÛG«‘ÝžÞ?}yxû`Öå‘#|HG(C«ž?>w5¯cßJK÷U³ç›ß“<µ'Ø×óÇçîñÝãñkbWåÄt<µzk­Q»†«2Š}ÀÞ²÷ñ™oxéð¹þ_hÝ©õbËÆÇÊÝßpý£]רᬯ‹45±€½dïãSf¯és÷7µÿ³8ëë"LˆA¦©‹åkŸ8kìÿ*'wAvB 2­uRÔ¶Av ¯!¶Æ,À4'Úux_¯á5ÄÞ>ìY¨êÃÏö.B‘TíAÍ"Ÿ÷é:^C̽PÏÜGCëåÞH_rÜ3»âk¾2×Ä CÎ+s·ÉY/~±ur¶™S¾VœíõÇ}b4KM &Luzzóã›ì}¹®u[Ý“·dN°+b0aªÓÓœëÉND×´ç8›g'Ä`‚NO,ª•ŸëŸ¯?µ]ê¡ÎA¡í["Ä Ìþ+µ|Îðbs†6Y¨¼¹C£Ýæ;†ƒ“ΰ34êÔzkƔҰHõJ]²nËv©‰•Niq渮Ò/ÞK¿°Ÿá ÿášK{øèÁs->oŽ`ÜDW:ëqÉïqè\9×þ~NqŸØ¸ ™ëðys6{ýN·ú·´KMljJ‹%Ùõ´zAº®|¨°ÐvsþÎ2DYS×Ä Æï{ÉÎkª“EÉðb©cǶ;ãÐc§hN„3ü1ó:ÄJš5%^Ï–Vz{H¿íÚë­ÝËm­ýïÕ;öîšXèæ¼)%Ûp[Ø’¦ð«×S7C©ÍClîý`%m»W?Y\ÁÖŸqìwïw)×2uÃxÉ~öº¹;õZr_ç)›Sjõ쩽ÏPÔ¾A0tœá¾ç|«Ý«(w[~;…½¥z†ÇžÏÙî¶¹{¥ûË)ÓÜ×YªÉÞ‰k¼g9áÖîITëØk8dM¬Ôz 嚪©L½–-é}:UˆM9RMáᔫ…2×´ysbìºN­oû¹á°uí"ôº§ÊZtk¿®¥÷‹Ô´KM,vB-¯ÙY"wŸ9÷ŠÍÝgIÍ•Û (·ì©õ¦öÑJMh×n͉sz䤞õ"¬½Ï’usË0§÷QÎñrß“ÒL9Ë„°…&{'@× 1F4-b'RëÚ!@+„Íb ÜßÝõoÎv¡Ÿçûê^{'š²`žZ3rhÆ/÷]×™²`®œ9JÚNÍFÑ/=?\+Gh‹Öô;SSKl¶ˆØTJãeSKf9*×ĦtPƒ’õ[°®»ØÀ{٢ƓÛÑ#wxº1€•l=[ÅœãhN¸°µg䘒3Ë{é¶-Q(45#ÇpÚ³q„f‘ÈUCs"]ו‡@löŠ93YäÎr±d‹£Óœ°¢Ö¯9X‰[ŸX‰[Ÿ YB €f 1š%Äh– YB €f 1š%Ä ÄÑÍ\w¸ÞUë]ƒ(´EÀ¸a:MˆŠMÇ2twÿúoøÜðÿñºãçBÛŦ‰íû¬Œb°’ñ؉ýãÐô,ÃÇ©1cë¾ 51€rjc¹û©µÞ•š …ÀBµ‚Œù„Íb©6v”rlAˆT2¾Õ[ÿo¼¼fØ u¥kbz'ˆE(ȦÖKm“»^êXg¦&pWjBR8ñ5¹«ÔÊ„ÀI\%¸†4'Ð,!@³4'—òüñyï"P‘.åáíÃÞE ‚?èºNˆóòùeï"P‘kb4KM ¸”ßþõÛÞE "!\ÎOûiï"°ÀívëžÞ?u]'Ä€‹úã?ì] üúÏ_¿zìšÍb4KˆøþOßf»Ø²Üc ×+9Ξ„À l0¿ÿû÷Õ1—èþý¿-ö[VZŽßÿýûä6¡}÷?· •!¶]êu„ö]“Þ‰Àå…NÖKjãíSc?×(GN™úðË)_jŸ©Ÿ×¤&PÙTð¬Õ,—SËÝO­õÖn‚TXÁÖ?z¡šÕ™ 1àòÆ5˜¥jž›SòiNèº×ëC[„HI×÷9j5+Ö°v9ÔÄ OÐ}†jvÃÚÙpù04kÖceˆí»fäøõép0s;o ,µýÜççl“³^j›Üõ¦Ê[“æDªÚ²)SM €ªjw”IbT·Us¢.iÑ;G —§¢vg|ÜP×:öZn]×}Ù»k{zÿÔ=¼}è^>¿ì]*xþøÜ=¾{Ôœ@»„Íb4KˆÐ,!@³„Íb4KˆÐ,!@³„Íb¶žj%g»áÌÌ¡I/ÏÈÀ'š"åhÓ¦¬Aˆ¬`jDøÐ(ö9ÛÅŽZ·Æqû}çë×KͶE€ 1€ÊB'öØãÔ„“µkR¥ÇMmÛÿåqM  ²©÷^M|±ã––÷M•jb+غãÇRµŽ»uù…@e©ëDSö¨Ý,)ïØÖåל°±ÜÈ]¯ï`Qº}©©ýoQ+S(4>I÷µq¨Œ{ñ —k.¡ír…‚,wû©òÆÖmWRþR·®ë¾¬~€=½êÞ>t/Ÿ_ö.Ê©ìu/ÚóÇçîñÝ£æDòmä͉dÛ£É0Eˆ0ËÞÁ5¤9€f 1š%Äh– YB €f 1š%Äh–(°õT+©íîïîƒÿ–³¦µÊàfg€8Ò È[RXA¨FZ>w»5ËÖ?žªÅålÚǯIM  ²Ð$“±Ç±ŸC·,Ûxº•Ü2†ÖMMí²”¨lêd½ÆÉÔÑb¸Ml»Úåýôòiõã¤jcµ_û­ëº/ËŠ p|O‡·ÝËç—½‹r ¡«Ù¼ùüñ¹{|÷¨9€º¶¼'ĨfëÎ$B €jR¶F¸ 1š%Äh– YB €f 1š%Äh– YÆN(PzSïÛ…Ë]㞬ñd™![š/ÄN`Íq SÇÚcº—!͉+¸¿»ý—Z>w»ÚåéO•gî±bsg*€„&ÅŒ=Žýz¼gyj†jÍ×/Ä*›:ñ®u½ªô9ëN] ›£æëb+(=á—n·å5±9æ–cîëb•…šÅr!x–JÍ윳í:vl,7ÔjwîX¢ö5±Z멉Š]‡_?×L†Ë‡5ÐvK˲d¿ãrέQÆjc5_ÿ­ëº/Ù¥hÔÓû§îáíC÷òùeï¢\F(Äj]«{þøÜ=¾{Ôœ@}[u,bTµeÏH!@U©«nB €f 1š¥‹=p)ÏŸ÷. 1àRÞ>ì]*øðó‡®ë„p1î;×Äh– YB €f 1š%Äh– YºØ,šÇkj»ãÆæøê÷½å`¼1k–AˆZs¾¬9ö©=iNèþ>ý¿Üõc³—ì7¶^ÿxάʵŽ:fÎö¡}ŒŸ«õzÔÄ€Ë k5õ ÷ÛïÔz[•§Ü¿ýϱ¦ÉÔãþçÔ>j¼.!ppS'úP­¦$†Û,Ý~õC„@ãæ„ÁÒf¼¥ÛkzK 1àò†'ÖþñY-}m5Þ›šÍ‰:vtÝëõ›Ü“ê8øzµ:,laZYí÷GM  P(ÈÆ×•rjxKk‚¹×Ä–gÉöãŽ%ǹu]÷eñ^îéýS÷ðöÁ|b'ñüñ¹{|÷¨9€v 1š%Äh– YB €f 1š%Äh– YB €f 1šeìD€Rc'NmWk´üTrS³<[b…B'þ­ÃàeØ“æD€± Jÿoj¡õúÇs¦0Î×5Þ6tœÜõŽHM `%ã ‹ßÔz©šUjj“~YlÊñô(Së‘8¸©×¼Rw6B à$b5©¡ÜæÁ£7#ö„@Ãæ4õ…š cZ©µéØP`x-j¨•ÌG~Mjb…BA6¬ÁŒ—çtÎH­WR†®û¶ÇxÛq3ä’òlMˆ,Ûébêù%1RëL§œ[ž£Ñœ@³„Íb4KˆÐ,!@³ôN.åùãóÞE "!\ÆívÛ»TöÿÔ¤rÙò´ZIEND®B`‚ghemical-3.0.0/docs/user-docs/images/sequence_builder.png0000644000175000017500000010130111563552731020335 00000000000000‰PNG  IHDRït;À«ÐbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ "0½ k IDATxœì½_ˆçïýC ž‚TÁº@Õ ƒZØà x„sáYr‘ ~!2yae²à3I Gg/í8¯µ¹H¤]xßèä"ÑØd6`íEXŽÉ^“ñE‚ưFcXã6ب Tƒª@ õ€ æ½xêyººÕÿ§»«jæû¡§»ª«žªî®oý~ÏïÏ þñO‡ „BHe°@|±_ô8!„2"x€ÿRô !„2oB!¤bXE`YÈóÍ#oƒÓ „2æq}NÖ5úĈ·øb"xpäíHÿÊFC!D3¯ë3pr®Ñ'F¼“ó¡BHÕàõy:NŒx—ÕmžüæÀþ›;3=?ê~4ýÛ›u?ó¤ cÐôŸ/àèŸÉ,û?Ê>&ÙFþ8çy<£Îß°± ïQ¾»ã~öYFõ½w~']wšíÐm>=…ˆ÷4꼨ŠÛ|çbÐ,ùÍ ØsgèÅl™”a y† ‹>gË ˆïÅ"·;ìü;§£¾»G¡ bÝÏ"Æ<Íùä:2éçT·ù¸kÓ4ŸÉ,ßÿ¤þ‹P?ã–ç·3è  —-òÜêãê¤Q7(“¬;jÀèã%>‹dØüåß3Í9™ôsŸæ ú®M²­yŸß²xÅ´çtÒÏsÒíÎówÑoUç_6¶aÌãú<É5Z5?æiÑç¸ÿoÚmôiвQLdyÏÓU0fÙ_Ñnó"ÝrÇõ‚8ì¸y®GYµE}ÆEá(^³EwwcØzyfW¿'`VKw˜5v”ó5ïs=Èòæí·ïeºÍ‹¸±6Ž£|ï*°6Í㸺eŠþV‘Y4³þð—íXG¥aëÌË25%1h\£˜çǸãïÿœu[F¦ïq½>/ЉĻ¬_–aótƒ(k´ù<(ëçSfªà-š…qó '‘yƒinðƉí,7=ÓΉÉÔ½Ähó²ü&†MÌÕm>/ôp\`É$L{àËr›å‹1­koØòAçw^”éî’9ï£Òï=*‹8eúLú™õü s)öokܱ»æ”…qãïŸË.Zxõ][–Û¼,߃AsÜÓÞœ-Ým~T??0ZŒFø¢Ü2Ãæ¹æñÞQËûïðõkGy_Ù™ä\e®qÜ>íc–÷.b<ƒ– Zwû™ÇvŠS?óž‹vÓ0íø']ÑŸÕ¬ëNs^«â6Ÿç”NÿÉ47š+øÇ?–ÕP  9~T¥HK™81â œœõ8Se—?!d8¼>Oljq›B!Çã6Ÿ—»‚B!‹gÀaу „BÈä<7çý«ùUã „BȾûýïö<·•á½ý‹m|÷¿©…[ßÛ¹‘••è÷B!dq¬¬¬òzm@ðyðÜÊÁÏ¿»ïíŽ\N!„ù 5W£õz©-A !„rt(Þ„BHÅ xB!ƒâM!„T Š7!„R1(Þ„BHÅX¸x¯ùkÿòËý¿è1Mú|Ö1-ëXŽÂ°1N:ö*#!„G†vëÏ-; ‚G3-+e!„“ÇPñVemû—ÛsÀš¿6T ó–]Q"šŸþ_«LÃ^Ï/Ë/ï?öQÏGm{ÑLò9Œ;7„BæÇPñž·HOË8a; Zd†‰ì¨ý óAÿÚæ´Ç2l?Ë`š±9NB9I,Åòî³2]Ôóã$ãštIæƒg¹‰˜÷¹›ç¼u™>WB9Î,Åòžõ¢Î€(Å"ÝÑã\üƒžB)–Âç¼G±HK®ßêÆú^ã<Eº£iQBH¹(íœw?UšCÆRä&¢LÇ>éœ7!„ÅQZ˻޸ì¢ÐïÚîûQŽ¥È(îiÆÎhsBY ·¼Ç]ÄóËû×]´L²¿iÆ7ë±L;Žy1l›“Ž}Yã$„ÒKi-oB!„ f¨x_GÞø¸*m_ß8ò>¦ešÊqEŒoYLrŽóñBH•*Þó`˜õ®™Ç ´ŒSž"Æ·,&9Ó?Ý儲<*Þe¿2Ž©x!¤º°%(!„R1(Þ„BHÅ xB!ƒâM!„T Š7!„R1†F›Ëž&_šB!óc x¯¬¬Œ}ãw¿ÿݹ†B!ã(Þ¿ú—_-{„BJ«.G·Êâ=®úÖÊÊ ç7*B!¥fee…•KÄÔµÍõ\7+tBÈÉ€1NåƒÑæ„BHÅ xB!ƒâM!„TŒ…v#³ÑU8)G &)j¿G¥èqŸ”Ï«èóL‹ÞÀx¦ª0wñÎÿÀçyq:i€i£ù'ÉÍ/ó~JÑã>)ŸWÑçù8RÑÔŸÕ »ÖV•…XÞ‡‡‡s½8Mº-?ûàˆ_¾ymç¨uá«ê·èqŸ”Ï«èó|ì(hêká£7d, u›kËyR«yV·0¿/_Ù¾ÄEyªêé(zÜ'åó*ú<Êv½!Õaaâ­ÝkÓÞ¥vïDPfÖ"KÏ ó´7@UÚïQ)zÜ'åó*ú<“ÅÔÄÊJáG2Ç&`­ÿË7ëE%fþï¾·‹­ïméî9?§8ë PUö[åóUôþ—½ßª~?ÊÎ 2ƒ¡¢¹ÞŒU‰™»ŠMÃÔVðŒ÷¼¾üEýˆž+=»Œ’„Eí÷¨=î“òy}ž+kþ°Œ[“qÁ¿z,¤: ïaõÍ·¹=ÕXBz)J,)ÐLJ¡â=­H“ù·rв"«dU=î“òy}ž§aP¶È$bٿ΢²Nô~– «÷Ù¿/ZÝÕdá–÷29n©bÃðV=@xžˆý•ªŽ»j”á<ŠÞžTœòⶨ(ðAc™·pʶÿ¼ÃÃÃcWp\96–wÿmÖ`ãä/0uC[9Ã~pöǶZ¯>ßý¸ýŠÓBýS²ßyQçkÒý/Šeï·ŠßmÝNw³æ¯-$ëd˜pÏÝò‘7þÜþJcNfãXYÞyfþ1!×ü(Œúç—­µÕø’G·r&ݯ﫻yùTƒW¸[Ôùšdÿ“,?N(±SrWô÷cPÖÉ4ŸE>ˆlž©Sã,îy}_¦ñ0ǼÚjyÏ3Õ¤ÿG{”:ÌEä;ö_dŒø,XŠÚïQ)zÜÃö¿Ì1ôï·ˆý¥°Ò¢èÿÝN*àýëÌë÷?nßýóßódØvå] Ë£pË{žŸüí(Û-2U è³zîn½þkí5ØÛssO²ß àû>Äi (ÇzQç«ÿ“¾^uúçRó…Z”ïû‘gÒ9ïy³ì›àIê],Ê»@–ËB,oÖ>>"úô ¹.jîv僕‘Û/ãEÀRÏ× ‹±žRt~†E÷Ó‹…ÞOÿ¾¦}}frçyÐ1è}”Ýk³,Š:Ó[¡hW—¹[ÞüÑNOþBh.¸‡€ßDËêå‹Ú¯ž>|E9ӹߣRäùæ‚Õž‰IErÚ¹ØþmëçÓ¾>+ýçYÃ0Nº€O㦟ç¹b,ÆÉa¨xÏ;xá¨s:“|᪚*6îØ&9öYÒtŠÚïQ©ê¸geð»Y˜öõY™dwÍ_Còt¾‚eFO+L“ð\nù‚ÚƒR´ÿe™;;<<œéoz"'Ïûæâ`ªÿû·³lÌÅueº°ý±mR¢fA»–W>X™j¿â´è¦À²ÏWþ&4ÿ¿0Žjæ¡ÿ¯ÒÅtÚó¬­èïÇRYYfHÝëù®dÛ˜ÿ¼o®y´ºOKïeò(¬1íÿ³²ñõ#Ý1¯‹?è™?û¾\:”¶(gÙï£ú##â“ì·'}l†ýVñ|å¿#ýó½ù9æAߥaï­ ùó< =éc|?–É,7ýúšÓMÇœÑp˜â¦¡ŒÙd6–ÚUl‘lUOë¿+ÖÏRÄ¡û=*e÷¼]Ó£¶»ì9o2³\fIÝš4W»¬¿c2;Kïe|yªœ*6nqä{u”ý™>VÔùš…yÐõ[öú|Oûú2)czᢘGKb¦n‘i86ý¼Óþøçó=)e¹(/ã| *Èôžƒþó1Î}> ÃÎõ´¯/“2ŒaYÌCp§ÝFÿM99P¼ !¤ÂP´O&Ç6`B9®P¼ !„ŠAñ&„B*ÆÐ9ïÝ÷vG¾qÜrB!„,†â=I>öw¿ÿݹ†B!ã(Þ¿ú—_-{Ç’¯o=„ÊRDiZ²XªR-*0P¼‡u#“3MsÒ‹Þç…þ²ûÞ.oh ™Kë*v’ÈÇЂ$„2oX¤eøç}ì}°Wô0*Çú+ëEBJ SÅ!„ŠAñ&„B*Å›B©oB!¤bÌ\aB!Å0s…5BÈüXó׎Tà¨ï?*EÆ@ñ><)hqë¹5m.Û_´p.zü„éàœwÅ)R<‹Ú÷š¿fþ&]¦Ÿç_ŸÇû‡cR&Þac¶¬l£Þ?èù$L3~BÈü xÄ•õ+æQÿ?hYþµQëŽ[oزAû·ýiö=Éx§A[~ú¯_œ†-Ë/×¢6ëû'Y7ÿž~á_´µ:éØ&ÝÖ²ÇO+¬HÞíÜtÙ°íMº{âz_–K=oõ³§Yw^ïïû"ç†GíØëe?!¤ Å»@F‰Û¢…oY.ïQ7‹ø£Z…Ó¼’u¹­gÀ¼xŽÛƼ¬ãyŽŸ2?(ÞÇŒiÝÐãÈ‹ï8±÷¾§eÁTÓÌ?O²¯iwžŒÛϤc*jü„ÑP¼e`›ô&`)(e«YD4¿~ÿû)Ê„T“c%ÞÚú©Ê…hÑó£¶?;gÜüúýï?Š€÷`õÏC÷/›F˜Fm{’uË"‚Ó!¤šñ^ó×p˜ý¿R’‹è8´ˆéÿ'YoÔº£Ö·£ÞHL:Æy0NT=l6lýIö9í{§÷(Ž2–i×Í/Ÿ×ø !GçXˆwÿ|ã!ª%à³¾6éöÆ-›dÛ“Œiš}³¸ !„ÌNåó¼×ü5‡‡‹ºB9 TZ¼µpk´€¯àd¸ñXž”BN&•ï~áÎSជèR¸ !ädRIñ&Ü++ÕnB!ä(TN¼)Ü„BN:•o 7!„R¡T±ª ÷ú+ëE¡r°—üñdãëðÏûEƒÊ±ýËíç^«„xWU¸ !yø{ d>”^¼«,Üö?&„2 Ãt®ÔsÞÇA¸ !„ySZñ¦pB!ƒ)­xJ¨ûŸS¸ !„œtJ)Þù9b-ànB!DQJñî‡ÂM!„t)]´yd6E›Bé¥tâ­¡hB!ƒ)•x¯ùkmB!d ¥šó¦pB!ã)•xB!d<oB!¤bP¼ !„ŠAñ&„B*FáÑæƒ:n1pBNáâ 'æ„BÈq¥râÝ/Ü+++æ 8!„“@¥Ä;/Ü 8!„“FeÄ{pk(à„BN•ïQ­¡€B9)”^¼'nð•• 8!„cK©SŦnF´õÿL#„r)­åMá&„BSJñ¦pB!Ã)xS¸ !„Ñ”N¼LÔø8(Ü„BN"¥o`2§pB9©”R¼ÑNá&„r’)­x½~ûÇ·qûÇ·±²²‚[?º€ÂM!ädRjñž·Àµpßþñm 7!„I©‹´h(Ò„BH—Ò[Þ„Bé…âM!„T Š7!„R1(Þ„BHÅ xB!ƒâM!„TŒBSÅÖüµ¯35ŒBNáyÞjB!d:Jí6×–yÞB_ó×Ìß õG½>ÌÒ'„BªDá–÷8Öü5cçÿµlÒ÷B!U¤pñd çÅuØÿ£ 8B9Î.ÞÓ í¨ 7½¬›t—B9N.ÞÓ0Èžg˜«œ–8!„ãD©Ö¦aRëšV8!„ªS¸å=nλÿõüúúù£àÑP·ù ÷B!U¦Pñ'¤ƒ–÷¿6‰{œ‚M!ä8qlÜæ„BÈIâM!„T Š7!„R1(Þ„BHÅ xB!ƒâM!„T Š7!„R1(Þ„BHÅ xB!ƒâM!„TŒÂk›bÖ&",‡J!ä8Sjñ€ÃÃéÖ_YYYÐH!„rPzñ(È„BHžJˆ7@W8!„¢)¥xšëÔ«›B9‰”R¼Þ¹ný?Ýç„BHISÅžê••ZÝ„BJ*Þ„BNiÅ;o}Óê&„Bº”V¼'Á[õà­zEƒBY*¥om}³ºímØÛK!„R,¥ïQ%QóËÖÚêÿäÅ„Ö7!„EéÄûQð¨G¤µÕ½æ¯qÞ›BA Åè ¶Þ‡ÞïyͬSWÏím„árH!„Hi‹´tªw0x±pB!ä$Q*Ë{Í_3.sßW7a¬ïürB!ä¤R*Ë{Üœö$sÞ:x®tB!Ç•RYÞy‚ ó•¯ÁCüæ`ú!„ãN)Å[»Æƒ 0">‰»œéc„BN¥ïþ”°|+PÎwB!%ïQóÚcçÄ™>F!Õú QûyÑ£¨¥ XÄ´…Y˜>F!ÀzBl)ËR@Ô©¬H%¤üfÑ£,-¥oB!ÇQ»  a¹©€"{´!S@@¦„`=„°"Äñ_=ìÒAñ&„²„¸¤MÀr!¥,2µ!,G ·% S™=R¢ö'ÈlÙ¤ë ë ®y³@! Äºš ·Ž&Vö(Ô*ZÀ]W¹Í…âX y([qÂ5Al¤ ñÎWK$ ƒª¬M»Þ°ezßnBY,"›ãÂQsÖBË)`ç,qô=Fϲǜ¥®Üî`þ7 ´¼û-áE‹)ÅšB–‹²°Õd¶n™åw+ANRÀÉж N³O±xt\W¹ÐO8…»ÍGYÊ“Àzç„RN„%²ŠiRÊ,Ê<‚°<%Ä©l'›ã¶m@v€ä™r#ÕQçPÁj–dÐZFiÖú™ÔR¦EM!e%, ¤2«œ&»…X„ B³³9nÇdÔ&Ñ+ܹ÷ÃÚ/ò€JC%Š´Ìà §…N!˧k1'Ùs aIH©‚Ï¢H$(+<>PÖw«G³~ª|å²s³°c)…¬å_¶|˜u=j½qÛ`Ð!„,U£¼¤I¦6™Å&™«`¶ 35Úò†¶Ôeæj‡¹ %X›vyÿë³´¥hBÈHïCÊëBil\â*ú”‘–÷w¿ÿÝeãØpxxˆí_n= B)%2•pD®¯·”@z›=ùÞj¹Èº‰‘~ƺÍ}Æ‚&“²û>½„2 #Ì&m,ÿº4·²Àiy£µÍ !„Lr]Õ<ÞWÖâõx°¤;²ü”6`mí…ÑDè „êñüœ·j@(Ï?’á”Òò'Ü“®C!¤\tKŸêÒ©Ùk j‡æQˆ«Å ²”Îò΋ò(ëzí…5¬½°F œB*ÄÈ9ol*a·6U缇R*Ë{RáÎ/§N!Õáù9ïļÞe.».vò<¥oͤÖ4œBªÅósÞ¶yÝÔ4Ïu#ƒ)Û\ ð´nðGŸ=¢ B*ÂóyÞêuïì>šÍ&.¿t°® Inâþï´>-v¼e¥4âM!äøÓ|1À•õ»ðÎy@ ìþy»ïÁç‚/¸ÜÞùÍ;xóoÞDëÓVÑÃ--¥t›ûü¢‡@!dè>Ý:X-IÔœ·ÁGãBÐ>OÆÅFQÃ,=¥oB!Ç!² ´LÀmÛ~þõü#Å›BÈÒ0Ah9 È,òÜsm‘“Á”V¼é:'„ㇰDO~·Éóî³¼µENSZñ(à„rÜ6çÝoyƒÝÄFRñÎçlŸæõq>kŠ!„å3nÎûæoö<’Á”F¼^ßûËžyÝ¿à›¿<,ÎB!Õ¢Î[[Þ­[&5¬ÿ‘ŽÅœ7!„rÒüŠnÿ¬¯\äyá¶”p ! j¶¥"Ï™@¦ñA X@ÇÊ•N ÇÎò&„R.„HÒÄäqk·m[¹ÆW]¸Ž gÕã8ðêÜšzt-ô­·¶ ;†²AË›BÈÂpO»–€-²|îšPÏsÂíÔ¸gÔz°Ù‘]u:„OB!ºÍKÅ›BÈbh¼ØYÚ)ó˜ážvDZzœmK l½µ…í_oyX¥ Pñ&Ð,qJ!ÕÇXΖ ™J8”¢&”k¼¦j'ÏͰu"ÈT"zÈ\èÈ*³Y@’²òP€µA•Ñt“’A¢>l™~ž7„²Dt©ÓLpû›’è9l)%¤”Û!dG"Žc í.OžåÞŸ.û ÊI©f† wþµüóQËòϵhëÿé’'„Å#Si7‘‰²¸3Ë;IÔœvxƒ‡(TPZVû<>ˆ‘He‘J¸š*äBJdy/BTóÛ£`BÈrÉ[Ö&ÚÜê ´ì(qâq'Fû  ÙQx"“ ÜÌ™×nüÝ l~c³˜ƒ* ¥oZÄrˆ=°ÿá~ÑC"„”äYÒ RË,h™JegÏ£§‘JËæÄu;мådGÂ;ë™Ô2¤À¸ÖÇ-ìüq§ÈC]:…§ŠQ¸ËËæë›ðV=0\ÇE]ÖÑhdBEØû`¯à‘BÊ„évÞÇÃÿxy*+uê¨à5·æBv2!Ï#õ¸Ôu`šžëß›´ IDATóöÏùh}ÖBEðÎyðV=s]j\lÀ¿àãîÏîtÄ˧–÷ ´¨÷÷êîŸÇ¶Œkß¹fj ççšÌ³”°Ïª I믬SÀ !€õWÖáyüó>d*±ñÚvßß…{ÆE܉á8NÏuDWTËWPË ¸ã8@ <Ø{€ÖÇ-@S6!¥„·ê©ªYÉÕwÁîÿþ~Q‡¿4J™ç=ÍzÖ V£ÀG ·¢§Â‘®x$;ÊwT³™J 8!¯m ^¯Ã«{]×x^À]qÚµÀma&mlå¶CA€×6€h}ÚÂþGûØÿh믮Ë=xg=%à–ÀÎQ» Ùñ ;Ë k¤<ä…Ûu]Õ èœ¯~ž÷´z V·+W÷àyÖ_Y/zø„h¾ÜÄæë›ð/øÏ ·°Ô¾wÎC©,q'6QæÀóÁl‰LL“’Ög-H)q÷gw±ùMÜø‡h\TeW÷þ²‡àËÁçj>üî/¯C@Ç !Ä;E’…S¸Ûœ” ·Ön§¦ºûÀ‚ù&V‚öAîiQõÌYñÛDÈÉ£ù•&|ßïÎA÷ wx¢Ýnc÷½]µþËÍ®Gï´8ŽáÔSI-î¨ô°½½=85¯màîÏî¿àãÎOï<·ÿý÷±ýÌx؃”MáBʰ6 j€ô&¤¼·´s² x¹%Ï¡Ýå^݃ã8p]åw]aÚí¶ª9Üj2&pO»h¼Ø0óR„ãÍÆkðÏû¦SX¿p„aˆ½¿t§Ôö?R™*j¼æ yšÀ¶m“fÖ¹ØÀîû»*%ÌvÞÝ,˜kÌ¿»÷vÐú¸…½ö „Xa&à— Ó²!q Žó&âø›f¢¶¤uÀò€Ô…uÈö!;¿´s8+ob¸ök½Í,À=㪀¨ŠGù&I’¨¹ªT¶lĈÍû !Ç!¶4ѸØ2ž¹¼pK)pk!îg’›üÖ§Ù:Ù\÷¿»;?½ƒÆÅZŸ¶pç§wpýo¯›åʺ¾!n@Ê6`5!%ˆLâdêCˆK@êYqXv¶ž¤6Díf×·Î_Íé¬Í—±â½ûþî2ÆAJ€®€dÛ6„ÕÍ£´… ¤@l©” »¦\]¶mCFªd¡îþ#"Š7!UDˆ«r|”¶¨ÝÒËbÛ¿ÝÄõïÝíîŽDðE0Wíh}ÚBãņÉåÖ¢n,ïÏ}8Î.âÎî@Ê;↢ ™ú@z@&ܨ+×z¥Þûè+‹]HÕLÅy€8¾2·c™#ÅûððpYã % ‘‰qaIGýåi‰ðqX@)—VÒI Si )äkÃÂ@×ùÆ×7P_­#îĈž¨Rˆt¯R,B\à–¤Dí:ÊÌõ¼ ¤÷úÖ¿¤MÑÈ~ï½WÂvˆàË`!Eœôõ¿à#ø<Àõ¿½ž›o!Ž=ˆZ)µ€++\¦×!¬(gq×Ë5–¶LíìÆ}º@LQ{Ù)—€ï¯o˜rtäd`[vO»¾HDÀUnšÄq·³O.½c÷Ï»h4ÔÚ;ãÁyEår^n^îºÒ-eµ{u‰LÐ|©‰ ˜bFÈ’â`]à¨9áÂÉ™zpj— Ó-¤Üƒë.CXN¥úÎooàoÝFx Rº}S|®tI[öŽ"ŽUZ˜ìxpœ2M ;ªˆ°": Ó¨t8缉aû×Û¸þƒëJ¸¡R:ÑA[ØH¤*s>QAkñAÜÓÖOG‰&ÏTð ,à“Ö'ˆãW¿uUÝ¡g…ôºwÎC3m²Ü*!ËÂÊ„;u2 Td4ŒÈ‚½$â΄ØÐ0¿Û^‹{ïü[Rn/õ0Z·ÔÜ÷ç[Êâîxâªq›(óÔWl=wÞÂpjPÆE&àv H$H©b~”aS œâMz0ýv¥*ÌÒn·!„@ŒØˆy~=-Üù÷ ! Q…]Àó<ì¼·ƒ7®¾aÚÊŽz¿ âu÷K œÅÒcq 2uºs¿9 TÝ`+›SÛTh¡wnØ‚r­[ûbÊ’ª¹ï¤Ü27ä`m*ËÛÚ‚.Ú€•u5dêv…ÛQ¢íÔ²sTdG=c ±⎓YàåñFW®HËš?¸œ*™a;ì¶é‹"$‰êú=ÌsÙQ"¾óÇ Uî+ÿ_¹Ì>máÒK—DZi6NõÙs™2ÍÕ³(o2Sž0‡.GظÐ@ò4ÁÞ{j= ¸òÕ+Ÿ„ðÎx¸÷o÷Eâ8F«/~ø$D’&&Ú™+*’JØÍ/!d.(—¹“Yžây ²Ï”XÙ}© ^‹ „’è×H„@Vâ4R™‹ª‡™DªŽ5î@gÕŸR¯§ÈŽ? Ö³’ÂŽ)Å›LÍÃý‡¸üÒe€wÎ>Ö_]‡Î \ÿàý³>~ò¿~¢rÇ£[ßßB»ÝFò,éF¯fE_¢§Q·—/!d.è|mcyJ©Jêz @º@gs»±´(›ó6¨±<Ë!^ã2R72VÁyRÇî$}ùêjj >¤È¿_ýEqö<•$¤,GMŠÊÌy“ò`:Y€·êaë­-\j\‚»êBÔœUǸÚUú‰¯îÁ÷}lÿ붺 d‚ÝŸ/Þl2]Œy¢æt•p:˜+êL˜£H‰tØVb¨eáµ\¹šÕv„¨È vz?³°‘YÞÝãPÒ IG u÷>F1²©†ÂJH -GDZʉ7ÕÊÁîŸwU.x'RA/5ÂÝG§+àùt0Ïóð‡ÿïªÑI–†Å‘IGóÏûØzk«èÃ#䨠j|G@H2‹;1B¶•X…¡ú ¾ìþÅ@x  ²(ñŠ; >¢Ééõ8D¤b™Ff¹”ê8£Nï#HÙVµÑe  <^‡R‰÷$ùÛþyþyÿÈÛ!G£õqËtÓBížqáº.<σ{Zý/„tXPAn5þ9þC]©æ¿Ã'!6^Ûø¾­ïQÀ ™j®6oykËSù„£%àí¶r•p«4) ™†™Å@XÕi(¤ºƒ%@fÇŸ˜ãîµÀã®Ð§ºÂ\^ècuüi9\æ@‰Ä{â¼í•õ7NLÎâv]õÕ:¼³ÜUÞYõÕ:ÜÓÝ4 ó˜dyøÇ1Â'!ö?ÜÇŸÞA|#IÔëu 8!sBXÆâœå\"<ˆb%ܲıžã ³Ç8{,Qa–q¤÷ eåyÐ{ü™0÷<—i[­—†9‹;‚” e9\æ@IÖÆUNÓ¢îë凇ð_#Eš…\‹â3.ÇW÷Tζm#IanÚ‰B¥…Ù†´T÷2-Üš»¿¸‹ë?¸gÕÎÇõ\ÇîŸwÙ>”# æ~•€ ÑÈ„ÛÍ=vûqwe®¯u X‘ªbV5Ò{€µ•‹ª÷¡,ðl.[ êI£ëΉ«t²ýR 7Pñ>JÅ´aï¡p/–­·¶zò²]Ç…{ÚE½®r@MÛÐlnÛ>e÷¦‡eï39Þèöé½û‹»ØúÞê«u8«6¾¦ÜépBf$½)7³¹k–Ÿ=ºª_µ}ݶ ,N“AÊ -Aór[•ˆÍ ¸‰6×çôñ›ãÎêP”P¸¹Í'quZŒWVFö§p/Q¦F¹Rså25åJ×®u½>³ØO»=EY¶þf ‹ªÂÚö/·Ñn·¨ ·×6Ðü #Ñ ™™tGuŲÂÌ—¢¬pI6§‹Š!ÓvnyfqWT¸ é=íìxZ€(WºÕÒPÍ›ãý°Z@º[JáJ$ÞÀd‘äAð¨+âGØ9"ù.Cn¾¶LUó“†ÞGí’Ò!ðöÿ|pó‡7ñæµ7á_P‰Û¿ÞFðE€$Ià8ʧ€rÒûªF9Â,_¹¥„ a6·e!¤üªÝ椬¸pgH¹÷'æøÕqêyº§< ؃”»òv±A©Ä›Tˆln(ÉJI)=>ŪªZ’t ±$Ï’ž9µ|_ðÛÿ|oÿcWÀóø½ßÞ3^×u±ñÚÖ_Y_òÁrŒHw å³Z@ú0{lÖ>>€°Ê[Üý¤;*}.݆”w ¬@ ÀCHyHï*7{ZîÀ¼Ê‰7£ÈËA’&ˆ;* -ŽcDq¤™< Â'!Úí¶r ×—©ì©¨vûÇ·‡Zà÷þíZŸ¶T2!påkW(à„)ïAX>€ëâ€â:úòN%lHy/³ÈKÚ)m•oRîýöž)1˜h#x(+< •pw²Âeq'21Ï5Z¤µÞ¸Ø@ò,é±Àïÿî>ö?Ú7ÝÈ6^Û0…]!3Ð]®^RyͤìP¼ÉÌ´·UyTäš‹D’$Q«ÚêºÊ™˜ùñecýÕul|NÈL¤ÂʲAtžsUj—Ÿp*#ÞýsÝœû.žÝ÷w•€Ç] ü¹Ç´û˜tSQMv$ö?Ú7nòÛ?¾«¯_í±Àu0\ÿøÎ»;Øû`Ï,_¥WÀõM@x[ü\¼-®–¢ê9QX6¤žÊ2x4ú=¤TF¼óyàÌã.FÀ;*øL[à:˜M»ÌÅEF¸å ¿õ£[ºwÞ6¾ûÞ.ö>TÝÍìS6Ö_Yǵï\ÃÖ[[¸òÕ+¸ö××põ[W±þêzéÒËnÕþ$8Þ°€+Bà›ð÷5¨ ¼]ã7BÈmaû7Û#-ðaQè»ïíš}Ç1ÜšÛm’â¸pW]\j\‚Î/Mtú­šÀF xPO%|KÀK%êœTÂp%n 8Y0ÖUÀržŸóNiyWJ‰7@á.+{ÙÃî{»hµZ¿  _ª´±ðËßÜü&6_ßÄå—.ãÚw®™÷ŸSYàÁçÝêz—^¸¤»ÖmCê¬æž[B5Jñ¼ÂüVM`@]ø|KÀÑÏ-až{B`Ã-p²Pt½…®ÅÝí²EÊOåÄ›”›Ö§-ì}°§Äüý]ì¸ý÷Ñú´…Ý÷w¨‚-—^¸Ô#àÓXàš­·¶L¿p×uaŸ¶áylÛîéfV_O:7•58ë/6€ ༑J¸–0ø¥¸F œ,™¢[ÛzÎ;®V×° Å›,Ý÷•›Û>eßzkËXØ“Xàškß¹ÇqàÔxgTûÑÆÅ¼³pVÓO\Ô2w”ÀÁu!à Y­÷³ðRh\^ºxp¡€k)Á® ·Ñ’“€.»gÎ[¦Ìñ® Œo%Keï/{Rbó›Hž%ð}5-,ýöÞ¸Ø0ébW_¿Šûé}´>UEZü >l¡DضUcï¬gÄ:Š¢î7;d¤ÒÕ’TUhk¼ØXz‡²+)ádMYày@Ý|ЭS£H]A;1ÔúÞRG9œëÆÕR"°îJºW«ŒÌºûõÎyó3­ ‰÷¨´¬eÌAO]>kú°÷å_Ÿd2º÷ÿÇFÀu§±ý÷| q±aò¼àí|÷­[jÎûµ\w2Ç…ëºðϪí85ÈŽD|CÔdÜí#®»œ-“: „;•@Í,Ôà¨Îky„% R [8 äÏ…@Cئ&½„_s S‰«5ýø{Šx%Ñý„@.êœZªÂDâ§ã(Vƒú‰Çã,ûîCJ‰«ßºŠäYÏópå«W̲üøíß6sÞ÷Óûð_ð3‹AÂݹmX€ã8ˆâö)Û¼ž$YSH3G¾lb±”p…€ˆ#eæÔsÝÀ%ÈËB`7-f¼?—kŽŠ~×élBÀ±€zöÜB¥¶eNª…mÛÊ›’õ°mÛô ågnkƒ\Ìúo˜èõ/öú°÷æ×ëÏ7†~X¦Z·pûŸo›'Þ™LÀ³¦#âÐüùA·$ëAdº™µ·Mõð Ð-ݺóÞÎs5Õ—Å'"™Y¬©Ú!°ÿhµ€ÿܾ€vˆ8[Ï·v¤Ä;5›Kölå,n/‹~ç}ÿÒe¿ê™èx‘MK½TˆÆâÖÏeA7‹dzæ&Þy±'|“ã°u)ªƒÜ烖øysçÿ¹£¬çg \×Å•õ+¦éÈ0 ¢§âNl Áèüòè@UrK’Ä\6¿±‰Vk¹jš{R¢míT"Ê\v¤í8‚ŒcÄ–@”JH!ð0•Ø[XYGK¤‘YÑ:m *°®y¸ØPg뫜TáÙ|Zß•Bdul;ËÀ°Š¹±%³±°{åY\Õƒ,é£l{Ú1hAžDÀ)ÜóçÎOïàú®«ªí§.kºûþîssà­O[pk.DME—ÿáÿ¶m#ITýô7¯½©šŸ¤0Et *GéÒ¬Ëæ)ñ¦j^;{t- ‘2Ë·•J‰–ÜÉ„û¾”xû¾{¿»×S fQø)àXPÁu" ¬;ïç|Àq€/@&ÀAl‚؇.×j‘v µh œ–wuXˆx þš”i£»ç Ÿß.º8îþân€¯¿º!vþ¸ÓcßüáMl¾¾ G:°…KKꔵ}°÷2•Cå:GŠnT{A준oºTÑä2Í„;•ÊâM%®û;)€T ÷íÎö~ßM™›'×…À–¸Õ‰•pp,¡ÄÛuÕãYO‰w'¬@ýßáfž_\M%îSÄ+òäœw5)U‘–Ev c²êp÷wÑ~ÜFò,}ÊFóå&6¿± @ÍßüáMl½µoÕƒë¨ÜnS µæÂ®ÙðΪÂ-žç)àó†!ö?ÚÇÖ÷¶ ;¶û©²ÀwìJ‰€–”ø$nvb#ä?©9¸ž‰è½ßÝøÑS¤f\³€?Ôkª³Y3•ø÷šcºLÅ:¸îIhÿç†êõ,À.Ê‚ã̃@ªƒ}Êî™óNž±HKUXˆåÝ 6©%;‰Û|ܶ‡½sÃ÷/§õ],Û¿ÞÆÖ[[¨Ÿ­Ã¶måB·T;Эïm©\èšÎSÕ5šE7 ½#PG¾ °ñÚ®¬_,àú®ãî/îrl;)°“sOnÕ"©,VÙ‰ñ“š¤·j)qûó;ïî -.³þʺ™¯œdJàÚ__Ã¥Æ%¼ý¿~Òu§@œÉ%TqKdil±n©ŠÝ@&À—!u’ÓQô‘ÜçœieÐ^(cqsλRL-ÞƒÄl’׆u÷|š÷L²­ALGA_Û¿ÞÆµ¿¾¦*ª²Ñ|± oUÕÓ%OmÛ,5w=àº.¢§‘ö€šÚ–—zØ}o¯màîÏîâúß^‡Á_Êò8¶sÌíH:1îÖÜzk °€÷M]xÍÆ×7àÔ¸NV@5›2h4h´=‰z„|óõM4.6àžv»ÖU–O¾Ó‘xàNfA¿m—„º¡BÀù"P÷0TóßqÜd'S‰ªò©ÝùmÎyW&wRsïßî©úæ¾”›\×*?ã©9°kÊrðê¢X¥%I¢„;pG:HV쾿‹ë{w¦¬îÆÅÆBæÂ½¸Ǹ‘ý:×_éÎû*jÞ«{]ÏC& NÍ”vÍVÂ~ÆUõÞÏxj "³°ìS6>ùìüÕW¯­º©ùg}sNâƒ,ú;ŠLðžSs°ÿŸªV¼ÁÇÖßlK|û7ÛÀÿ¸‰íßlãQ––öF È,ŠüvGâ†ð¤„gN–‡.¥Dla'Fh w1ùÝ€™ó67¿¤P¼I%ðÏår´³öžuQÐó5•Èry«º(¹EíÇm•ÿm©ùcãrÎÏ]U¾6^ÛxnN¸(tô=,˜ÎiþyÞÏXÞ¡è–ƒÕǓȎãàí|¶mãß¼c,ð[ÿt HG¾©óÊûÐAlW-ÀNªš¬„Yt<àT9ô°Ž™ÈÏy“ê@ñ&•`ç;ØzkËXÔÒ‘ˆã¶m#He9ıší¨¨Ùçš“tT<®~û*vßßÅþ‡ûªL­;g,c©,ûXu½¸¹àZÝ´8pVÕ¼¿ìHĸëyȺ¨Ù†}ÊÆí«ñ[?ºÕµ¼ÿuÁçnN°ÿû)ŒVqš_išž÷NMußËÏs'i‚«ß¾Š0 Kñ'£¡x“ê¹l…£æeG"z)‘ÎJ Æ±è\T´°"©¢Ð¥”pO»Ø}[ÿu ¶e#I#~ÉSe©ÊŽ4A_ͯ4 Ÿ×îr™J¸¶ÛÓ%ÍXÚÚ‘Ýà˜ç5aê¿sïRç‘ŲþÊ:†éOî¤Úm55YOa"‘ ¢Hݨè9Ì(Šp󇓨×ä8ÒüJ³G¸…¥²ôãyr„š‚qW¿uUµì%¥„âM*Cû ­¬†,Û>e£ÝnCvÚÐmo¨M x܉Íséo8 IDAT·ýÖn©Ò©çÍ PQ³€Š>×·ã8&ÊZ»ÃÇ¡)~’W|™XeÝx.½p ÷š47™–§´+)ÓîÓ²UÓá˜4ÃürÝ™N°¶»•£(2SIþ þDífÉò¨¤xS¸I?ãÜÚa;„wÖ:€p¢'‘šÛÎb¹´uO/KÒ¤”%#ý|Y”p’ ŽãÒT‚#å@[ÌIšt£Ìû,p“­þ±-»g¹nVbàRQI·ùš¿Öó¿þ#d;ÜAðE`\ÌýÁ^ù×eG wû±ê‹}ù«—±ñÚFч`ðêžîöAÁ— H#]t¯n}ãÙSï]ÏRòTÝœ†í°;õ”¨×¤”=i—:‘”‡Ê[Þ‚Gn2»ïíª^Øg=cQ@B¹;¹9î4QsàO#l¾¾ û”mÚŽj§¹L6^ÛPù¸Yîè b49AãbC¡V­r÷ÿs¿§ùˆ”ÒLµÕ÷ÞB·•n¶^ÇHdÒÛ^×Â/ÃÂŽ ¦’âŸóÖÿSÀÉ$ìüq믮«~àYàŽŽN:‘™û–i„;I8«PõÅ‹pÿ¼o iDO#SMŽT‡yöo~¥©{UuœsRJl|mÿó¡Š.—Ý jf.;'êúÆTJ‰DªWv‰LXR·„TN¼ýó>|ôˆ8çÁÉ¤è¦ Í—›ê‚纈žFÆe®/T¾ï£ñb¶­ÒË<ÏSÑ»–(¬hE½^7ã‰ã˜ $*BóeÕ–jcÛh4wT*㴆͗›ªŸýU·À]uM[OÓ´&«Æ§KÊ4«]ž5߉žvKè:5Çôè ÖD÷‘”ʉ7VVÔcðˆ‚MŽÄ¸èÙû¿¿ÍtÍ—›] Üqà_ð ©:µñÚ†ÊÇÍòÕÃÇ´ºËŽñò8Y)R«[HÔü³>|߇”;ïÿ>5.6º‚]S6ëËmå¬è\nû´(ŽàÖÜn×¹z¢É£(2ßo=…d.ô4A«E«»ŒTJ¼}í?<„ ø‚s}d±è jóåf×?ãW㨠î¼ñ/t£Ì£(29뤜¬¿º,ct-bÝÄ©©’¤žPw5Ñ%NšwÕ5ß»¼¥ÝoqGUßÀ;ã!zÒýŽh—º¨‰®§0]÷„%ºÂ»Ÿ±ÐOY)•xçç¯=Îë=„LÃλ;Rbý+ëJÀ“¢&иÐ^_Ž€7^l(—yf!…aOž;)F¸3 Y×G–q¥ó®ósÑ®ãbóõMŸÝà³UÇ”70ÐÂî/> {R'u/xÊÏjøËN”†na" ›&Ùjµ(Ü%¦TâÝ?Ýÿ”õ½²‚`̺n2Otšðg \×UîLK,¼u¢Î7¥]mÛF|P¾üs¢è·¸šÓSé̶•ëÜFv#˜ éÃý‡°OÛh6›J°kb¤… ¨úZ°‡ mëãVWüSeGHÕô—¹®t– NC –Ö­¥ïQhK: (“‚Ø}oH»¾úÂë_ðÞû8e> e^RU€cÅ ·}ÊVQáY³¨Á©9ª´mMHê÷ ³°…%D*Øí‰zœ¤îþþGûh¼Ø@RSeÝÓ®ª¤VR˜::Ï»,µüÉp*!Þý.pºÄIQèJf:zX79ÅÂz7¿Ò4 $’g ¢xúe²„ÆE.„è ·m£¾ZW¥H³n]Nêv»Ý5ž‘é¹ìèélŸ+= €‘`IÝŠRzñ$ÔnR$»ïï"I\þêexgØÃƒ½ð›' •ÒÕl6Ѹس…ñ¬¿²Qfût™——ÆÅ†i",aJ‹PÁaèZæÎjo›éòå8xðà­zˆc 7N)-o -oRv´^n^†Î7®mÿ‚oܧ­[&_W_¤eGšŽ`£.ÐÞ9¯'Êœ "ÊKëÓ<Ïëié£Â™ÀÓS‚´§íl®üÆkˆâˆAcd$¥ïqÂLá&ebÿÃ}SŽÒ÷»QáþyUT¥Ñhô¸R¥”À*¤ª„³ê -sš2¾ e>‚- ¨gol lPÚ3y– êDÝ‚(B¨:áY4·¶Èõ÷ yªnàB}ÎYÿø²õ'壔â=ZÞ¤lì´oŠ\ø~×T O=Œn…-•ß+|õºðõWÖaŸ¶T¥§½qõ eNk¬—ëÐn Ô³ 1»æ J%6ja ´,`{Ib(;ÒÜÈA [Ñ,ŽÍÕÖ‘Ž h‹ãXE‘gËM/Þ¤‘1TR¼)ܤŒ´>n¡õq ×¾s —^¸„O>ûnM•´µ®Å…¦Ij:ª ^U¨9ÒD&¨Ÿ­ãáþCH),œçºl/„‰îJ8âð-ÀKˆåX⺶¶¼!tÔ€$T–uG¦0‹îb—o ’ÈÌ'd•oBÊ̽ßÞõï\S9½™pÛ¶ ¯¦R¾d*MiJ}a”pŸ¸²~¥§ö5jª^µoùfý¤c„€#D*á ¤È\Ó®ˆR _lH ÔÄP |Ë|!ऀ´€@JÜM§Wëã–ª)GpW»µÄµ =| ,˜ Ç|äy³H Å›9³þʺ©G­…Û?«„ש9ˆ;±ÉßÕ–7tTPš^OJ ÇQëë9sß÷ôdçéæ-nG¸R‡)l’y:,H ß6R ÷rø !p]—»k2šB`3s¹ÿý”.÷Ý÷w±þê:UŠ4ߤ';WK\­…áR›ÝêBñ&dÎø¾¯„;+‰éŸõá¬:ðÎ(ËÛM]S#¼d B¨^á׿½ÇB— ]?Éâí ™p§™p[Î7”xÛ6Eq „ð2‹Ü¸Ð3nÔ6Rµ=a¦4$l!¤2ÛþÏkÿ}JßûËžjá  \_m…ˆeæÏÆCá&ÓRÚÇéöw¶íÞ¹p¡ ¼øç}xuõ ›l e™ç;E4œ°@J8–n8ç/].øÀK  ^‡Xõ”0g5Âýl7„À•ð,@¤ž%ॾ%àdÏÝl?©‰©Ç¹ûþ®ªCß‘tTÀ¡v‹ëÂ,Z´)ÜdZf¶¼×toí,# lÒˆóY#Ó‹>>R]tA÷´k,pXÊ…ªÝáñ)å -åRÕ5®õßÍÞÄÝ_Ü…•h„ah,tÇqLäúIãšJpîwÝ<¸ØP–Â,Z[Jˆ8‚Yè^æªn@ÏqK¸™`ã¬h+>ŽQ#ˆl®RâZŸË}öþ²‡æËM„VhÊ¢ê9p¤@Rbÿ#Þ!Ó1³x÷F!£ú‡2Ф£ºEO#•&Ô‰áJWµo¬)K+IT>°LeO°’”*ZÙ©)ëec÷Ï»ìÉNffasÞƒê“ç…oøëåýÂ9ìõAëä×Ó¯M2†iމQh«JX*(‘‰©YÄHž%h´U‘Ž$é ^Š;±r©çòÂó¥5e,a[vaÇV4q*!jN–‰4haíD\3— ©‚ØÔœs÷Q ›¢H%à8]Ëý\f¹ÖRÛ8á 8•¸$p„|q=5bÛvOÓBfa¡ký¢9ÊZ¶î¨mŒÛÖ ›‡Y=n2)Á—ÜUe @uËò{uþ¶”²+èÙz‰ìVØÒݦôÜ(ÐM'JdbRŒN‘%Ж®$R•‰8:1ðE‰v ž·C ófÀˆ¥Dl—ssæjJÃîZîYU<ÄÙöh‡ª±ÈòÄíSv÷†"‹:gƒr*Þy±›GÉÓ¢•P¸É4ì¸F£aÚ:êÒ¦îi1bÈTÌï•©Dô4­ºˆžDÊÕžYè:N9‰Ü—ªrš”EJˆ€ Ps§•åÏK5ïý8,=þÿ·w7!rœižÀÿµ„à HA” $P œ… ÎÂWá9¸ŒL´ÌZ¢ÜsX÷, öœì™Ã®}Ùm1°ŒY˜nчÆXÓ2¬i ¬™ò¡©ÁÒ`¡4Ø( D‚ "@ ñ€jo¼‘©Ì¬¬ÊŠÈúÿ@¤ª*+¿J¥>ï×¥ˆ ±€$šæûÓD‡}*Ùõd§ ŸäÛÎâÿ·TfÑ›9 îÔÉA¡Ù-u«ØQæ‹' §å¶ûÜtNíçÛú¤­l5y(Å¢3 ^ú¤/¾põÊUßêícq?ÎÏ¿6óáNü!ZJWÒf~ÛÙ‹€þ=])z¸|/„X aVq'"DYÅKv°K#àë®þ{ Ž€ï@D_ßÌPyçû¼mäsÞ'uô„æciá=jÈzZG6?趦ÁণêÞïBY ­çuS’|¿¶9 ch‘Z†º›Ôã¶­»ˆ™¯ç×KEo;z’`ëå­»Ø)°:)Ðέٖž“VàQ±o^,}šd'­mg•÷›)òýÝQ¶˜M}èÊ; õ‚==ìg{’ ‚òû˜¹nsI4‹ÊÒ²ÈtÛ nš•iVâyšëM½OÛ²¥Ùv? îÇ!6ŸßÌ·‹™¹*ta/D†¸ôW—ò³¯g 𷲡ã5 “[¦âA;»4Û¹Ì\¸Yœ&–®´7² ýªRØMÏœ’mSßùªtɆÊ#=t-z›Ø E³šTÿý¤N}Ð|,-¼ËÃßå§™ ?hØü Û^ÀV¾Þ$ã*x†:MË4+€ö‹íüÔµè‰> Ã|MY þEÿé#4Mpï…ˆGxã¯ßÐ7ì›/mƶçý†B3ÕûœÍYà;)Y@ס•æaån*ðl<,mn*æŽÜÁ»Ù•w6ãï6¶â,t«x=’¬¢G*øÀ‡sèJ–WÜ€„«Íi6s ïQa6ÍçÌÇã>”Û:ìmÀ¦yëüyüAwÿtwÿt7xÏ@O’|Ž»ýb[ïÏÞÀ6Û›@:}þ«†B;;ÃÙ™à’U¬’uá Gjʱl·Dp EoO$ß¿}){crÀ{Yð¶¡ÏDo¥‚_)…wú:Ð7SAÀèÀLE.º©I{†¡rÜðfš‘”÷÷Eå‡Í‰N’Io¾¶óêìSvàÛ[ÛSUà¿j(´¡+n;[DgšyÄ© ÉïRéE@ùg{ÙÒ'¯]Ê*è·SÁ{Ùõ>°ê#Uß‚àŽRø {ŽW”‚UÜ÷²ˆ–4³¹rÌãµ0«Ìm}àÎI>Ÿžfdz͉j¤óçv?ßEEùªj(l¿´w²å-¥+n€ š–Ò =ÎúPJ¡™åÝàŠ`ÛÒAX7·RàF_u›!ð?d‡ÝÜ=·/©àý¿{ê?_οï¦ØâìK7ûXÍ£òVªX]^ƒQ ª>†7Q͘7îå7¬†ùЩ =ÄŒ³ðÒ¦nàñÒ&pÞ×]º »u9fN¼¦Þì«Ãw”ÂÛÙsyG¿üéU 6.n ¼^RH ÛÀõHؖµßÈH*zÎÈ×4Í‚áMTC/;Øýìé ¼ýB°Þ}êú- PY.4p±<Ó^ÚÖ—}Àqóþ×¶¸5¯?ìÇùªï”Â÷ÎÝ;ùÜsy´¢#zλUzÞ×v ïÿì*¢_Æ,Êý¼¹¿›æáMTS/³ ¼_TàþúWp¿„Rïç×»¬Š³¼‘ °îé÷}à¹"¸±Þ„Jõªm YÃaó²S½¨MY ÿüwoãr6LÞ½ßÕ]¼²9è+?»¢?àW?¿†ÿö­ü6ž>XÇkz³? òœ÷†âédcxÕXçËnváãïÿw¡,@Ò&”ºX:Ào•÷‹[*; úr/.NË*Õ$ôÜoÝ]Á/vÐz¦…ö‹mÀíOo£×ëàŸõ±õÊn”^'3œ>ÖÇÓÎÒ‚µõl ¶eÎy×|TƒŽÛ¨æº÷»øðGP–Ù3®Üi\Ë+ð E~8$ÑGй|ê&"ØMw¡ÏþŽj<ç]Ö½ßÍ+Þí—¶óÏ?è>б>ÜÓ•¶³îÐ]àLp›à?¬¼;\iÎ;I9tN³ax­‚ô&âþ{:OUàt%-–‚Ä1ì?ûXûm|ÙîÞ‚Ò ah¦Àmè3ÄWÁîç»H’κƒKu €ÞZ×ýZ»j(\þÉeı>OÞ?«»‹u¿îæ§ÙyÞцÎuûR Îy³ò¦Õ|V‹ˆré-Ä}Ài¼ ]ªÀßÂuQ¸Ž°š€åAY1ì»!`E@ÚC ~{"ØÌöIÿh5²Ðù¢£9Õûâƒïtïwqëã[xûï߯íOnC5”>–¶/ˆ"}„mëÙ|¥+ô£®χÜ1çÝz¶Å}à4Ûh•¤·÷%.7î@©k¹XnV* uËÒ°bx}…W7ˆàæO¯bçQ€ÝÏvûÍE÷ë.îþé.¶^ÙB’$ØÞÚF÷~[/oå-\aAÛ<Û„wÎÓýÔ£›Ïo"‘¾ï#Žcì~~ˆ×%-öyôõ.Ñ»×Õ+þÇïûùýw¾xL o¢U“Þ†ôoÃqî!p¹¥|Hª ”­‡Ö i¥’ÚPj¯§ Û[øüó>ZϵV¦ýèîç»ðÏûhžm¢¹ÞÄÖË[ð<nÖF´\!‹ܳ.DÍf÷¾º‡í­mýùu——pûÓÛSݯÙ&V>Û¼\Åo½¼÷Œ oÝËï€n'+ÿ¼ïœ7õýÑÉP›9ï þ…ü,Ž7!é]ˆì–I](ËÓ•¸ÕÌ.õçH=ÀÚÆî[HÒ‰$hµZh=×:î§27÷:÷€T¹{ÆÕÁmé9os©,§áäÛ–ÖÅîܽÇq ,½uìÒ/MuŸ¦Ÿû¨9ïà6÷¯Šûw}y˜û£“¡•÷¨~ÝlB4…4R&¸›P À_GVý)D{¤9T‰û¾¹§‡p•B»ÝFëbK7Jy’ÔºxçËŽÞ·íyp×uÅmÙüohÛz[—‚Ê»»¡´Z-ì~¾‹K¯]BÜó@=¨"vOëûžó΃»ééžâJ Ý»§\$I‚¦jêþèd¨|x êiÛ‰hÖ[€eë¡rËR€ð<ÀmQ „| @ˆ$€e©ƒÎ—®þT‡·¤[éÜì³6ìÓv­çÂmÛ·ʆ“N)¥+pè@7«Ì¥_TÎÞ]!; qëÊøÉI^q—ç¼mÛ·ÊMp»§Ýâqd«à£(ÊïÏkz+5•AGWÙðfµM4¥ôp·Ê¼u^ª¶qQWÙÑ@} Hè~kæÂ•b7ßëìXDNÃÉ·Qí¼¶SÛÏ:švO»P =n†¬ã~ ·á"ì…SÙês¥¿×ó<„߇@ \úñ¥¢ÿºYEnúv›K Îy'I¢ß”‡ëÂi8ùã€U¼qÎ㠷׃ÎgxSuÃÛT׫o¢#I=Àrò!qX€ëκ®À»_±£¿¦²~ÞÊRQzˆÝʆHòJÐs¸u ðö‹í|ˆ\RɃÓkzp'ßËíº.Â0<øæA±ˆ¬áâÃÿõ!®^¹ª·že‹Ï”5¸Ø­üq÷~÷©~ÞækfdÃiséŽãÀ=£G¤/yïï0Ì™¢Ú§ÕWék&˜ÐDG`…¤dm©S ÞÓ—Q¿¸º©õ”k·?»æÙ&6ZðÏùù¸YDÕ\o¢õl½³)KÁͰ˜¹å<8Ïèàl=Ó‚³žhiû–¹~~XKVYïã.¼ûùn>l~çîUçnÃ-³¡X¬æyü³>üó>ÇÉçäó“ÚöÜ_—Ë–nû®Røç†¾¼¶"'ì­ªÊVÞF¹'¢é‰t¡Ô&$ ,ñöt•­úHóxèí™ëGYå`çÕ’º¸ù»›x÷ÞÍ·6I*HNÒOò!è:IR½­¼ßz`n_)ØJl¹b6'¥™ÊÙ i›³ÏóŠ;î}uö)¾¯û¥÷õà¬;‚‰$ðÎyù©oÛ/mÌ…ç'²ƒCïÙ×™ïѪo[@K)¸)àd÷³iQ ì4î‰à:O„«œÊ†w9°'UÞæz¬Î‰†¤¸œ ‰Ç÷œl5[Y.@Ñžþº^m.€loÚhm |ꊽçAe7ìb%uMˆfÛ·² •Tô÷Qé‰8*®_ºL$ѫã Ü ÑétòŠ[RÑÃÞîˆ}Û ·¸ž\ÇE" î|qqÃó¼|Hüý|°ôÙê’ŠîW ðyyW)lZ€Ýï]å?w“=?ûwp}EŽË]• ïIaìŸ×ç ߟ/Wç q¢².DlÀÖ„tå-Ù¹¤1€"=ÀŠ dsß‚ßÿŸßCY QC‡™ ô|qVåþ™¬óežçÁnغrv>ºùüsúÿXÀ;ÿõ$?$èõzˆú¢'¥ OÖE½elãù ÅÀâ±­W¶àž.‚;_5n† U6'nÖ(À?ç#@P\'ÞûÇ÷píç× © |¤;›™Ö¯Á7ƒÿÿÕÛ°aN xt;جÿ¹ùùŠ¥‰à K¿6¬À«£R¿z.@[[Ó—#®c¾‹Øˆ Òÿ%TãŸlfÿ!GP–‹86‹ÔÊJ © îÛxÿ¿yðÏnÃ÷}D{le §² Ьª6g€×‰¤’ç­Ooéà6ÿ¦@†ˆúDñ^¶],öl½¸﬇°éÖ+[EÅ-FSV±ýÌ܇©¼}@9z]ðÎè•æÛ±°"îëF)Ñ“(_¸¶ñüDd¦#S¯(…–4xJÁMŽ¥û¸Ãqˆ’ÈFZ ÞP ×û¬¾«¢2á}Pèúf}>ž®¾ ®B'd\¤¥÷}K1ô­ç¸£¬2¿·ÿV!y’èaãïKó»"zÛ”H^&’¹YÇqŠGzXZœd Ÿ[¾ ©ä'¡ÅYÿó(Ž=ŽŠÕáç¼užç!ø>xzß¶¹´Šv ù”鬿wCÏÛʆ·¤‚^¯§Wº—æÀEQ!ø&ÀΫ;Øyuª¡p÷?Žv`ŽÀN7«¸K™ã¼¯Ãû´ DÇp€¥V¢¿û*©LxÑâ迤>`µ âè3Í%¬"®ýÌÖ«Ñ- |¬·IEq”wÚ2s½fžXDj¹ß¸\±ºgÜb*@)=Tþ$œëN¨¡ÛíbçµbU¾¥€†n*böaÅ«ª¡`Ÿ²õ¥ŠUâÙí©¾Ê‡äÑк_t±óêN1ÂaG_v^ÛÑ‹Û,àõ¿|®ëéÄ5 ™UÔv9¸=8ëëEMO÷yOè…p”¯¼Ã¯„Ú„w<ÔÕ÷ÚVÕD‡&ýƒý|¯ÓÆf{3_t| œÉm‚,ŽcDýþy;¯î®ÃVEtà`Ô¡ IDAT¾ì ýb[WÞ¥çEQ1TžM $ýÝ®~“ÒùsͳMøgý<À%•Á¡ñlHÈ‚¼¡+t¥lÛFôD¿! ÂNí|¢ßL„{a¾ÚÐo Â0„mÛúÔ·òUïíÚPJáÖÇ·¦~î—-]yCŠÅi0ûÒXwtˆ‡¡> Tp,…0´k“«¯2?ŠQÃÝÃOÚ2':S‘n¶7*?SyúãDl>¿ XY+K vÞz®×-º‰™ç­ç[zÈ<›ˆ÷â‘-9w^ÛÉ÷a+KWØn£¸=eé 6'¦¹§K'Ö9N>²!"pO»ˆR}‚›ÓpÐ{ÔƒRúXÔásä£'6Û›h6›ù:›ÏoÂu\<øêÁTçÎßʶ‚é7åen~zWþîíüc¤Å³ˆ‘ª¡2á <½jü°ó× n¢Ù˜òÎypN¾X ÐC½føv£µ$Iàº.Zϵüyþõ88 §8‚4«|Ã0Dò$™jJ`÷³]´žmÁ¿è#ø¾$MàªR@WÐÐí6Ü|{™+.â½8é<  »ŸŒ#ÔùsÒ´Ûm½û&«À›Íf^ÙOóF*gsÞQ*x/üûxJáæ?]Ç•Ÿ_âè GlÎûu†weT*¼ÁUãÆ´¡Ìà&š]çËNâ­çZºIÇ^Œî×E˜=øæ6Zz«”çyØÄ&ìSÓDzµžké“Õ\WŸv–-Bó}?ßîÇ1®^¹ ¤ú$´Ûÿvð<²j(D#½ÐL¶•Íi´6|‚š­lĈ‹ÓNÙù/‰$Pê2Dƃw¿î¢ûu—~| ­g[pOëçåñ༢Od»õÉäaô8ˆRï¤@ zÕy~ Ì×]à‡xÔ²ùáT • ocš­_¬´‰k\õyów7qågW°qq£h²ñ*Uo½¼û´/S–ΨÁK=ôözùc"}8KƒÛœnŽŠ5ýÀtdÁ«ò}ÜÒ$N¢·ÙD{zä"гmhÙ*öòŠþ8Ž!étGÎÞþô6¤/ðŸñÑl6õíX@ëÙ®üô :ÎÀ®²)à§@ÓÜTà•N’{ |ó@WÝÄÐepWJeÃ`8UYàC8€cð­—·àóŠ£NQ,ã­{Å g©>Œå¿~Éú´³aíõ¢°r`çý¿Ë‹ù /ÇÑG­BWÔ±ŠÇÅ8¤z5¿9­­¼o^7¹š sÝÏw±•l!‘D¿‘ú!mÛðŸñõãl(tþ¼¾õòÛ…² ÷u[`pWT¥ÃÛ˜f%:›¿»‰k?¿ÿ¢¯+ðs6­ã ðrÅí6ô¶ÓpŠöŸTÞŸ<îÇP–B§Ó³î`çµ|1› ì§šƒ”ç´³í\þEq#Iõœ:úzŽÛið(Èïß,ˆCªß˜“ëtõ®Ë¬+@zsêçݽßE÷~—äR>ÇoÛ6ðò]ä‹â ×ôôêú¾àÒg»-½˜í|ÀÕ*«á <Ý]ŒÁMT7~{C¸ïVà)¦Ú¾4­g[ù¡+åà ¨˜þÙýâ„3¥ô°r«ÕÊ[Ò1ý¹‡†ÈÃG!¤/‡ùÚ€×vÐ\oê½ØÙÁ+éïOžè!íò· î(Žpû³PV‘äPÁ]vûßn#Šôv28Ø|<Õ†ÔQN1Go vÿêҋݨjÞ›¨Êò/WàÐûÁ—Q›ÕÜÁméàvœ¬â̪æ¨1€'z5úÈŠzècA¸—vŽ\ ¶ûÙ®p«©jé.,äÃ'§Eý»ü=”gÝÝd¦EÝwÿt"¢÷ƒŸ-öƒ›×¥é4õÍókmMàòO.3Àk VáMDÕöTn±-¡W–˜Ûtp«†‚»žUä§]}ÂY©¹^œ5ºÂNú‰^•þ$™úñç¾ÞÌ»ˆåMI¬âLy3TÝéü>{s ÷{Çý§Í–Ùîwù'—Ñz¶¥Ÿ#Šmkù*|¥÷cاìüuqQ¯6¯'ÛˆæêÆooàÚ/t€TàXl€»® Û²‹€²õß½¦î“íy”¥à¬;yãn¥öAv?o¡ýܧV©GåCíÒÄñ=D1 iOWÜi¤Ìåõh=×BÜÑëéÛÊ‹ðÇÉWÍ›XÈ·Ìí¼¶ƒÝϪ·gŸ o"š»¿Îü\Qo¤Tò@4À˜ÅZãö$O£õlKÿoV:[<ù!ASé!b×uõ gëúÀ9-ùêo§á ûu7TIçÐp%ýûïB© µ« ÿüë݃”ú¡+KJýÔC‡o22‰Óp¤I~îi·8²ÕÕ7#fϹôÍfs®ƒæoáá]^dŸûŠJ{èÌu×qáº.ü³~Þ8%IDx¬çÀm±çö8h1Þ£‚p–pœöû¸µŒ¨†+pÿœD’ÁíJ¢·+Eý(o«yØWê ¢(ÐÍ?Dßn’$pR'?á,ì…ùÉg愳¼o7ŠÎæIäÔj[¯"·LÛU3÷mz¢ïBd~Á ` ™ŒãèUå8]:,º2ö¢¼ò¶OÙs h1þÓ¢nx\Xoù2®Ð/øF~nÒ÷Æðã˜ô˜‰èènüúFÞÒ2=ךÍÁ*¥Ð\×M5¼uvÆÑÇÖË[‡ºIÝü0”ò¢°¸¯Û—†aˆðqˆÞ£ÂÇ¡nBÒ/H1«Á£(šÿ ~é¿X7ô€õH»€µ ‘!òú܃@¾ ­¼Ïì/Ož$ˆâÝo»ù/å72Q¯ÍU%æ¼'UÉ£ušncåë0”‰ŽWð]€¨勤Ìjo³ïÙlW2ýµ}_z2í<¸²æ"è~5ãœ?-\%Â{T8Ïëv'7žh9TCï¿.7õpÖ¼WÔ×á=ÑCçî>€çyú:vq69ìþñr¶ËÎæ”ˆPÊF†zè=;¬ }Àvmôz=}HK¶p+*/ -÷z½ÙªULò$Ö‹#Z!€œ„ôBˆ0?º5I’|È|–Ń´•ïE™&˜ÜD‹Õz®5°h ôö­uG·éL¨X/K~ÐÛ´6_Úy$éß½•ÝNÖÒâþ{º™‡(t¿¾ àZ³ƒWÈûeExȇ£~„Þ£^%Û™ÎʬÈóˆÒHÿ" ©Çq Áß.w„€ŽfeûÈ h¢ããñ«¼G÷œö}Ýù*‘AdûžãÕáf.z`µ¸…lXv Kã}ˆÜR>$‚oïØD«ÕÒG”f«Ï•Rˆ¥6sÀ½Þj·1àÙv:s¢šy#c^w},,¼Çæ4!Ê %ZÑ“>üâÌðR7×›èíõò¡ñ§Úl>ÕvSò“Èô×MC^H $Õ‡Ÿt¿Ú„{FïeV ¥‡Ð•Dôy¸ykZÝÜýÓ]Ý„äŒWœá.E7³Þ^‡²ÔÌB+ïQ+º§ åò÷Mºþaöj³ú&:yã]¸â~ ·ï"ø.ÐsÐO$i’/^3Aòôá-޼¥ÞÒÛ®²ƒO¢=¥îé¯5®bãâ`¸ýø¾[Ÿ¼ XÈ*ïªêü¹ƒ²ržmMìõMÕ·ðaóƒÂrÜbµqÛ̦¹ÝIóÛGyŒD4]!‹ÒGƒæCè‘“ï¹îõzùu7Û›¸óÅ©N‰|¥ÚzuvJðƒhh®#ï®õú_¾Ž{{bÝ7;ï‰fuÁiõ·²sÞDTñ^œÕ*K¡×ÓÃÜ¡ê¯g«¥_,";ìÊo‘7¡ÔGùÜ·²€¸Ø ;?IÍTþHïAäÍ9?K¢åaxÑÂí~¾‹ìÀÆGœê“Í¢'Q~ÂP¬þ÷BÜúøh-)E®ø `m@$†þnë/–æÎÜTw o"ZŠ$IòjKÜfÕ·¤‚(ŽŽ܆®À¯–nV’·ÿ4‹ßˆVÛˆ–Â;çé& çô–¥{_ÜËÛdÆqŒ0 Ñùr> ¨Dô–'eµóŠ;IݬDdò7ÕÛˆ®ýb[·í ¾ pë“Ù*쩘Ê{xΛ¨æÖ˜„ˆÈh]lÁ>eçðƒîƒ¥Ü¯ÙW 8aì ›nPý1¼‰h¡¶^Ù‚ÿŒŸÏ9÷z½åŒ24çmÎ4'ª;†7-”ÎÏ»‡ÈöY/‡}ʘó–T8çM+áMD ³õò6Zùœóƒo,÷T/ °OØçMTs o"Zÿ¢ä‡l¨:Õ Õ–IYª*OukÌUkûI'W›ÑBl½²ÿ¼ŸW¼A,½ Èîç—pç‹·òŠ[ÒÆNT'µ ïá'Ï%'ª&ÿœ?0ç|ï«åÍuç,"EQ€óÝ´*Þu›¦û-W>× ð »ä¹n#”2ý¿®6§ÕPé𞦅§ù:Cœ¨:ü‹¾þK¶Ê»Û=¦yfËÉ›”èE欼i5TvÁÚa{o? ŽìND˵óêNÞ?)Ð{Ô;¾¾ÑYÅ èGÏã š³J†÷aƒ›ˆª£y¶9p Ê2÷u?%›ó²9o‹Ãæ´*Þ³7«o¢ã³õÊоî59,¥.ëK«˜óFÊasZ • o"ª¯‹ûª»ßßžj½º|hÎÛbxÓj¨Ô‚µiªnÿ¼^|7þ°¹-ßΫ;ðýâ 󥟦6DY®¾TúñègSZ õ«¼×Öô":v­çZh¿ÐÍuù(ݯŽ÷$3]y«Á9o®6§Q©Êû ¾™ËÞ߇ÉÕ7-Fû…6”Rp]WwíR žç¡×ëå«Ì|uLsÝÖe(Ë ËÒÛÙ¢µªñ¤¯ Ô[á)kToµ ïiqµ:Ñb´_hÃó<8ëÀVÙ j I<øæzzÃpùκ eµø€å©L?o« é߬m ¡Ô»ù`ù‘hNjÞAðPWßkk8qN4_íÚðÎy𚔥òÿ=”R(èK³.–×ĺ ¥Z@º¥ülu¹Ê.H*PJ²K’ºP÷!ý÷–óøˆæ¬Rám¶yM Ýq¡ ]¾4·K´Ê.ÿÄëͦBÜD1pówó=Äó]q› ܆¤!”ò é&TãmHÿúR+ѼTnµù¬‡¬p¸œNŠË?QØyÍEûÏ»ð<Àó<Øh¹h=l¶]¼õ·³‡¨ëšmWEp;ëüó>¼³ZÏ´  îéìz–¾^ûÅöÌ÷}·¨¸­,¸-’*8 ÕGÏ›ÏDÌ¥»ðÇH4o•¬¼§>':É.ÿÄÁÎk.ZÏêÀV °•½ÊA"’…“`Ûr¡,X›-_ª¡`Ÿ²¡Ôà¸ùØ>mëà>ëÃu](¥Ç1`Á·¾~*°Uq c]†RMv6ÇmCYzÈÞ?¯÷x».$Ð=Å"qV‰÷tÅÞ_ìÃ$š·J†7pøçü6$­ç”î3 npÖ”%ùêjIžÀ;£<ø¸òS=/®M¾ãذU‚?|¶@¯W–Ê‚Pò!ç(Žò‘nÃ…}Ú†wV¥Ã¢(ÒsáQ6T mÛ }”å©Íe‹Ôüó€ãþ9äÿËÅ{ú2x uô-–RJ]ƒÈ…>V¢yªlx˜jÑC›N"ßÏ‚{h®+½5 ôþf²BxM Þt¿®ýÂ-»‘ÝHv,…;_¸ÅÜðˆË^¯‡Ö3­üûò ò@/nOÝúb9€Õ ²Uä NC¿AñÏî:àÑ•wœ=ï¸1²ë›7<Í?N¢ùªtxO÷ë÷u¢“Ä?«+Z§a‚Û ‡:̺HhµTÑœ£|)åËÑÁ÷BDQ”'I‚D½—ÛÂ4Dô$B¼CDôªóHúÉŽGÝl$^zÀ= ÀÒÁÝlêç(¨,ÀUéúú6¶ ¥z©|x i"íÊO½Ê»ì7Øn:¼ÍÜ· ¯"ÜCÑ׺t‰¾Ä1àû·?ÝÐ!ÊÈýÙ›ÏoæÞ{ÔÄýXU÷õк©´%ÍB|Áôªq}?ÊŒ@ÁôF1—’ÙjÞ°סǼi˜MDD'A¥‡Í‰ˆˆèi•«¼ÒÖ“­@‰ˆè$©lå}˜f`ÑIRÉð6E¦Ùúe®Ç'"¢“¢rÃæ&„ÍåA^m8• ïa d""¢A•6'""¢ñÞDDD5Ãð&""ª†7QÍÌ-¼Í–­òŸÃ|ï<¯7í÷•??Íuˆˆˆª`®«Í‡W†WeÿµÙ7>Ü>´ ˆˆè°–:l>ª*7þÜQ¯wT&à‡/žˆˆªfiám‚Ðü1A9êP–Y®7Nù: e""ª³¹›èQr‘¡:jø|Ü×ðDDTU ›óže({Q ئ f7UÝÂŽG=jŽZX6é>Žr» h""ª³•ÙçÍ-]DDtR,­1Éð¢²qÛÊF]¯\%OºÞ8£ªlVßDDTWs ïQ!8*0§ùÞqO{{Ó<¶£|žˆˆ¨ VfØœˆˆè¤`xÕ Ã›ˆˆ¨fÞDDD5Ãð&""ª†7QÍ0¼‰ˆˆj†áMDDT3 o""¢šaxÕ Ã›ˆˆ¨f–Ö˜dã:†ñ r"":‰*Þ&´Ç…ôA_'""ZE• ïiÚu–Û„–?&""Ze•œó>lŸíQý½‰ˆˆVUå*ïqÁ]fVØDDt’U*¼G· íýýâskk£‡ÉMõÍp'"¢UVÉasã‚ûûƒÁ ÿ‡É‰ˆè$ªLxWÌ&¸'଺‰ˆhÕU&¼'Y[›ü1ÑIRÉð®ºG ›—ÿÎás"":I*Þ³`Ѫ«dx?  O6_[{ú°8­²Ê„÷¤CVö÷uH›?£²•¼ñÀ""Ze• ïaÃÕ·Ù6¸ß=üýDDD«¨Rá=\1›5l^nƒ´ÑIP©Ö€§OI3—æTµò爈ˆN¢Ê…70ú˜ÓIÍ®bDDt’T2¼Á!töó&""*T6¼§·€û:ÑIRéð6ÒDDD…J­6'""¢ƒ1¼‰ˆˆj†áMDDT3 o""¢šaxÕÌBW›Úâ5íÊñi:=ꑨ“—pu;UÙ·ŠUõüñƒ~!""ªªcßç=܈¤ü¹rÐÏr½Ã<–*¼± ""šäXÃ{8,ÍÇÃg›Ïz½£<""¢ªZxxC% ª n""ª“¥ÎyÏ2Ÿ<í÷ö>ÜDDT7K6Õês£†Ã'ÝÇQo—ˆˆ¨VzŸ÷¤gpQ]낵rÏnóqÙð´áï^¨vÐí c«Q""ª£…†÷¨þܸ <èzæãioošÇFDDT+=lNDD´ŠÞDDD5Ãð&""ª†7QÍ0¼‰ˆˆj†áMDDT3 o""¢šaxÕ Ã›ˆˆ¨fÞDDD5Ãð&""ª†7QÍ0¼‰ˆˆj†áMDDT3 o""¢šaxÕ Ã›ˆˆ¨fÞDDD5S©ðöý ðý Ÿ»0ôñ(Ã×u;DDD«¢2á‡íþ>üó>ʃ‡~ïÃàaà£n‡ˆˆh•XÇýÆ1a܇éÓMDDD……VÞãšÁMDDtt•6¿à_Èÿåkß÷±ùûðçÆÝ>QÕX‹¼ñ‡ÁC\ð/ ôÛ6‡ç¨ëækÃ×›dÚÛ'""ª¢ÊTÞãL¤‡ \†3ÕÙB+o`°úžTÕN²÷µr?K s¸œˆˆêdáá=­I¡><¬=êûfîf%NDDu²”aóƒªîaÓVÂÓ\ï°U5«p""ªºJTÞà ØÊ!?êkæÀ¸aóáÏO äI÷MDDTE ïá<ìÇÓ^wÜ÷»Î¨ë3°‰ˆ¨N*¿Úœˆˆˆ1¼‰ˆˆj†áMDDT3 o""¢šaxÕ Ã›ˆˆ¨fÆnÛýlw™c¥q+ÍÓÈð^[[[öãXI7~}㸭 ‘áý›ùͲMidx¿ù7o.ûqÑûûûOåòØ9oÎÓ¯qëϸڜˆˆ¨fÞDDD5³ð.·ØœæïG½mó±ù3Íõ­NýÀçñXçõsœÇ÷çó9ÌíÌ£_ý,½ìçñ{8íý.ú÷ÁÜ~~ïˆæaáý¼9wnúzú˜¡}òÔeÆ2çðïÆq=–eýL§~ÎD«`bå=ªÊþûpÕ;üNxÜå¨ûWAOª¬Çy<œêyÔã÷¼']ç û+?‡i^Ç£8èõ;èö§ùLúYO{‡y.ý{þܼŸÏ"Œ{œãî{sÒë0évg} §ý™ô{0í¿a¢“b¦Ê{¸Ò56êð¤wÆUЋ®¦ÍDx4YIDAT}˜ÛõX§¹ÎA·oþ~Ð×ÇÝæ´_›t{³þ Ê¿óú9ô˜§y½æñ|–á(ÿ6zœ=÷Ã<žy¾†Gý¹Nûo˜Õ7$3Íy/û—dQ÷W¾Ýq÷1Íu{_‡½½y_ï¨f½ýãþþ£Þ^¹ú[D8Ë¿Yîc÷7Ç9Íïi Ÿóž‡Ãf3<*Pv˜¡êYUé縌p]uUùyVåqUEeÂû$þÇ8o㆗Y±Wéç8ïÇ2*@ªô|¡ ÏoÔ°9ÑI7õ°ù2a&-Rª»ƒ Íóvu½YocÖç{”ïŸÇó1sºå?ó´Œß³ÜÇ<^C"š‰•÷¨ZÓšvÑʨÛ®Ç=†Ißw”Ƕ(½Ž“†¼Ë&=îq·1ík4íÏ`Ôm /V:è6ú·tÐýMózÍãùÌjÔÏyÒãœ×ïØ¼îcÞ¯áQ_ÇýÞôý\¼F«lm?ø6Àîg»x󿼉ßüËoðæß¼Éô 4íêr:œUx-çùÆ¡î¯ÅaÄçL«o÷³]\ûÅ5¬­­a&¯gZmNÓá"ÃDt•Y°¶ÊŽ:\HÓ«kÕµ¨'mÏóIz®DÃ{i¸‡u±êü:.ãü‚Uw’ž+…÷¨~¡ãzˆÑñ0Ùl­­­=õÅýýýe?"""š œ×k˜ÔDDD5báþý¸MÉùüCüæ1‹±Y£¶IEND®B`‚ghemical-3.0.0/docs/user-docs/images/clipping1.png0000644000175000017500000045454211563552731016727 00000000000000‰PNG  IHDR›­À»ÙHbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ 9(÷&% IDATxœì½ˆçÚÿÿꇸ)L` Pp ΢Ð,-˜Pÿ00âŒxÀ]<àIý€OôŸ¬ÚÝž?zbôì¶pêžÂÓæž²+<â 4ÂGÿ°$‚%”Á¥#(LÀ…h 7œ€ß?f“Ýl²¿tW­½_ÿ¸&“ÉÌdæ¾î뺯ë}½…B¡P¼–üåwóÆ«/íX …Bñú!ìÞüßÿ祉B¡P(~(c£P(ŠM'°ú&¯r[ôe¦ B Š×‘×õy…_ç3û«26âaa—^öal Òˆ¿ìCP(6”×ùy…_ß3û«26ðëûŠ_2êy}}øU›×Õ-_É%oüw¶ãÿÁ?Œ¯{ÿ­}<ËgÏÏF\ÿWé7\ë±¼®Ï+¨0Ú e#Áõò:»å½f€KêÆgiüwv]×zéï¤ØZ¿Ëâßg#¯ý‹62q>¯óó ›ëµ­v­×;,Ý~½ã¼$c³ÿ¬ó×ä–¯v=W3ø‹Œµìgñ¶+ý½ÒgVÚ÷zÏa¹÷zW¯ÿ¯e?+k¯}­‡õ Ò½®ÓZ®ÿrßµÖÿ¯‡g1:¿¦çõU¤õ[õš4¬wÌ~áÆf¹\: Ú ^W·|5—¼× º^ÏÒý,7ˆ,Ü—~ÇóÌÞW:‡ÕÎoéßËý-×iñ9¬÷ºöúìf?õÛ¯´ïÅ?ë¾_×çÖ÷ÌÂó÷Õö½Ú>ÿŽÏsLk66é–mÏò}¯³[¾Ò °× ²¯g½×x9ƒ³Ú~Vz=ǰxÛ_ÂýØú\¯Ó³îg9#ù¬ûYÌZö¹Qç¯÷ó «{m›N}6Ê[-Öó`)·|Õ<‘Á‹˜Áoö¾–”_u~ Ç©ž×ׇ5›W!‹¥KÝö•ŽóuuËŸ%³eµ~¯èE¡çeµó[/k=ïõ|ïF‡Ð{%k9æþ-7ú|^×çÖö̾*“ ^¸g³œ{ý<ëkÝÏëì–¯%m­¬>Yn¿›á)­çžgñz3Žg562äô<,=§^¡´Bƒ×ûy…µ…¾_6+­÷¾ò °11ÀÕfŒËíï×ä–/é¶^ëõÞJ±úµ~ÇJk6›ažõü6ê;Ö²ý³^×ge-ýzÏéeòkz^7šðŒzÝOÏ:™xxÊGßÿ*ŠŒ^W·üUúí–²­¿Šõòº>¯ðj=³›‰°Kx?L/jžö+áuvË_Ö PÅfñ:?¯ðëóÚ~UÆ~}?ðfóK É(~y¨çõõáWglÏrÆE…BÑb¡-ôkì®* …âåâ'( …B±Iض­ÚB+ …bóù?OŸ>åéÓ§|ý¯_öñ( …âN/›ÒölìYû¥”B¡P(^?–ÚFS( Ŧ£ŒB¡P(6el …B±é(c£P(ŠMG…B¡Pl:ÊØ( …bÓQÆF¡P(›Ž26 …B¡Øt”±Q( Ŧ£ŒB¡P(6el …B±é(c£P(ŠMG…B¡Pl:ÊØ( …bÓQÆF¡P(›Ž26 …B¡Øt”±Q( Ŧ£ŒB¡P(6elŠ_ƒ¢äN¦^öa(ëB…âFÿÃÐ9™ìz/ºÓèùºBñ²QÆF¡x…ÉO0v&Eâ³ýš=ç0cÛØ®íïšÜ)åù(^-/û Åòˆ€@{+Œ¹C§ø£@Ųå{v×öžçb×µZ·!R(^&ʳQ(^aìšCõ®m/êýÞ† µ M‰¹MQ‡¨P¬ åÙ(¯0Sת+¾Ÿ=›E×u†ÿ4 Ààþ(zD‡fƒÔþ(Ó×Wþ¼Bñ¢PÆF¡ø… BšÁ›+#e€ð[a4M#}2¦i”®Ožµ¡‰24ŠW elŠ_"4A?‘99óÈÁu]ì‡6Ñ·£”ïØ”ïô±= NHÑ4lÏã·uÉO!¡iȺ$èyö=Š×µf£PüBðê“xõ"^}Yÿ-ãŸãz.¥r‰H$Béf s[dc¿4   á€@H‰23Šõ¢<…â'}8±E阸4Ü~=÷IŽÑGã¡¿)(ߪmèw'%ý@QJÌ]&ãïÆ‰D"Ôþv~C¿Gñú£ŒBñŠ£… ò–NCÊök™3™¶¡(üà§E§'ˆh‚óß6ä»ß—¤d2$0MÓ4±X䛲{ůelŠW˜Ì±Ž×€ž× y Iôè²ÛGúý;L2Ç$‹]ïg'Ñû4†?ŸZ×q|w(Er_Ïó(•Kë>…B…âÆ™s1"a å¬Ù#ŒÐ¿£Ÿ™3ÛeÏe¡ Þã*•»Μ۵¯Ø.ƒ°&ÖmÛ6åPš`ݳžû¼¿>”±Q(^a¦¯W1·G°fýµÏó˜y0CíqÜ™£_L“9š@×u´Æø•I„R½ß‘V¾gÓoD \wZtùVPþ¡¼!ç¥øõ¡²ÑŠW˜Ì±™Ã rg|­³‰/'(\+`ì0°;dŽ%0·H»DµZeè§0#dŽ%zî/µLþJwxm-”(“Øß{¿/“Š<Õ4. ñ²E±ʳQ(^a¤lШ/$سE.üCãô¿ÃLù;¼º‹Só˜¸4Mìmƒ#ûbèz)ˆ-DwG±mûN‘©kÏç™DߎR¼þlÆj3ÈÀÔ4Iz.,J¢P¼Z(c£P¼ÂT¬n]âý¼0ˆÊ¦D¹cdÏ5øîêÔB!gÏí{8O<Œˆz“RBóùbñŠyn@`I‰Ñ”TêÊмÊ(c£P¼ÂTïÛTïCöX‚ÁýqjžKî›Ëxž”©ÞIrð÷iþF?õ:ç•Ê÷l¢uSs°, ëþê ûi!‚ËRúiÏKþ&¸ gùìLII^„”üNy5¯4jÍF¡ø%ÙôCj²~Y?€Þç'h!­½žR¾c·U¡«wªL_™î24É÷LÆÎ¦øú£tÇë#B …CšÖu™S4Mc䃑 ?½çaôDšó]}CÅKE…â€e»XkÌÌvö©™±f°m›êÝêŠk)#u)A6éjÀæ5¥ÿz½[¦B ¼›ôáÎ ¶ž—Ìáõ' H)™œš$-NHðSC©xù¨0šbY÷G™ê‘";x öÜ ÍŠõQø¡ów9ágVïÛŒ>Þ3KläD’°&þ|šð›áŽ÷Š?Z4¤dià)×s®Æù BªÕ*ÎÜ‚`;l÷¼d'0¶D9™äüWkS@Ȟ͢oÕÚ:DêãMSI¯(ÊØ(zráƒ4†AÒ)UáÜ ¦ÙÈU{­(6!‚á{ÅëEÒ'Òä¿É|/ŠÑM0·G°m›ô‰4 ÿ•¿MõaøM“xž¿ŸéùÚÜibì0(\-{/FboY«hDÐ2ËF6¸Þ³ðÙãItM`×üD†õÚ !®ëâ áO%¥óJ¢Œ¢'ΜƒÓ£µ°ãy87Kê~ñ'Zh¬­¤ØX¢•ªÉ@ta`O‡_ ¡0§µ0‘¾0cgguŒ-"ðãÂöÆÃÐÉJ1úå4à×ÏȦÄ~äR¾U¥w{ͦwÿ3«ØåÈÑ<öl’µ•Ó“5­„lF‘õÕï^ë/ÓWüs‰í‰{/æ+[kÆV㙎_ñrQÆFAt§Ö§¡¿¥wÕÐø±eh6“Å¡´ÜÉ$N]¤çb;¢]Çbl‹2ÀÛp„pдnýw`ûj-¦—$pä¿Êcî4±î[D«¹S)„ëj¢&¥ÍÐñ Ì&æsUc#›zŸÀ 4Vœ¬¤O¦)Ý\¾![ùVs—‰mÛ¸®‹óØ!{<Áø·¯Ž ¨bu”±QP½ocÝ`=¬a;~*mæTØTl|³9’²ýë]·ˆDt´&L{%@êG›÷ç[>gÏE±Ú¸Oü{Ò (ݵ ‡D»5ôr´Âb¦A„"ìj¢&B„ˆâͽÑõy)"ëi¤”8OrŸäÚ)ð•j…é+ÓdÎd0w˜L_™¦r×Åõ4ÀB„==œÄþ" ü~9+û= ðS¹“Q=aìLŠá/¦WüœâÕAK²›Œ‰½ òÿT±ñýØ&KP}ä kNÏgbdNeH7%æ“Éÿ™ÄØj`?²¡ËÈz·i`?ŽAsíŠõÀ&(‚Ðl`?ä¡$¥›yd3‚Éè»|Ïçô_;÷k…ë?7º DòPÒ7pÏË!D?²>Šé¶dÎù¿œ÷ë¼üÍøçkË*«Þ©’9šÀ«KÂu‰=×-©£xuQÆFÑç‘Ãåÿ½Ü!Mò"ÉK BbͲ%¿tÌ&Æ6š0úå .< m{ =¢£¿¥c?²©þXŽkÏüZÒ!Á³5ª³ Å Õ;U`>¥½ùŸvH)I¾m×Z}:ÆðŸ†{îß ´›%Ž4ýÑh”x,Hþ›QJšFÜ[H«NìO oõן*Õ O#Þ¨Õzîw1-‰OJJ÷lÂÚ«Õî@±2ÊØ¼$FN$1¶è¬lšìËȉ$5O®Ø™1{8Kyª!¸R¶ Mîãܲ^î×BøšdÀÐÍ"C×üë_‚ š† *MÁÀüïÒh4h4Ì<˜Á™s°zˆ~.%ºËð¥lšàz‰wL¬Ç«(Å«ƒR}~Y@ß!¸Iͨ²ÇÜŸ ºÓÀÜYv;)Áº;ƒ\4@§Ž¦(Ý.µ MöXÃ00w›$ö¬œª»QØ=ŠåΓµ…J¼¦„Ç6¿ÔÀŠÑ)\/´µÍ$`ÛŽoä?Ç0ž= kRJÊR2½d`ù`Ä_{Y„5[#µŒ¾3ÎÈ#¤Ž¦˜y0Ó³Núd °ê».Zt]€7_œå.’7*ÿPFÖ%Õ;UŒKÓ+$`/P½gc=r©ÌÚT-‡ê¬ÍÄ:'>é“éÕ7RlʳÙDÒ‡cËÎÊ«–M­æb;›3<Ú5—Ë× ¾”|+þ4A"¥X®2qÉP'.I¾g¶Ã1Ù³Y¿ÙÖ½…¥t×Oðê œM¬&_LëøÖBölñMËó{4Û2GèÑe¯Ó‡bm9™‘FzVÌO\,’Øc¶ÛÈU<¶FH ":oÌ.$u,®M‰/©MIN¡ë:BF>¡V«uÖ¯4¡V«1€¦ïÝ´ÖÇ!y(IÿŽ~ŠMèÿ¦Ûë9_—èx„›0$%ƒbp£J(~5Áx]R!z¦>/¥C:éÇ7íbä£ô·t2g2L|1±¾+6el6‰Ì±Ù“iŒˆÞ®}XÌj™CÏËÒÔWðÕqe´P§7Õ:–‘Fbrj²ãýç[\¾Ì¼AéÇJÏö‹Éœñ›yŒze½Ï¯é5ÙˆîŒ`î40tWJöé•YJñ–µ¦2Bx.—5#óá8h}Ú“î/ÎëŸåU¸VÀºoaî2ÑßÒýl5!0M)%Ã.¬ÕX÷,bóa­™34¤ßÔÍÜeÅ; Öéy9r"I¿a»YÅèÓª»¼?ÿ^öh 9»y÷WloÜ¥”¸ž‹¹Ë$ºÛO#—RÒøWƒp8Ìðö^Rl *Œ¶I8s.ùo'q–dÌä>Α9•yaÇ1vn±sƒÄÞ6ÿ¶@ñf‰êƒÞ¶7ç1}išÚ ˆ…œL’;ÕÝp+Ò0¶Fk~ÿ•‘F–í ©¿¥sðßâÍy/ÅФÅÈJ‘>ëx}æ¡Cév•ÊÝîë,%85Šea»t¥–gŽ&È[èM“<”Ä©9Œ}6FdK„Ácƒ=eº s5¦¤lðÓË7ËóIKŽÅ«áÜ/1}e²"³îYo)\-´=âÅ¢œÉ}Qr§’Ü¥p­@ñz)%Ù³Ù¶7Üë÷’ÀÌ#à¹ÈEèÔ·S˜;MÆ>[6Ô•9“!sfá¹ùh„ÜǹžÛ.fðø RJÊ·Êo©V«Ð„~³÷g—R¹Ô–Ç<ÞûÚ*6åÙlÓ׫DwyÈz£ýZæL†ØžÖ}‹ØžñÁM-L<C‚„ßèoù3ÛÅJÀKÑuïþßwíEêØ.ƒ¡C1ìǵ =ÎØ.ƒpHÃÜat‘Ú5×ó°‡Ácƒ[ ÂZ¸-_â<ò[ضóÄϘ(…" ð^ܪM$ÆÜa̧ð.œÃJÊÅÖÃñ}:ÑÝQÒQ8ýï ²/‰wLô>hÔDR3Bø­š´—‘I‚!ѦnKBm½ 2ÇØ\ ?T©Þë>FGÓˆ„¿»oáÖÝŽ¤£/LD×ñ~n`Ýó=¡#{0ú¡‹¦¹['0¶]ÞXñf ãII4e)IM1}iºíyˆ€ïMå>ÎÑøWƒào‚4þÕ úcc«Ñq»„Caô·üì¹¥‚£ÉI¢oû5IÖ] Ù”]]L[ŸûtŒÊÝ Á@©oמ>®X?ÊØl"Õ%¡§ÖÃçz.£H`=°‰í2ž+D¥i.RZHïzÏr$á[otô éEîã|¢…Û”D$Œ•K ,É­¶ùõ£¦?‰JN!‚¡ã5&¿õ'îÏnW/$?Õº†~4…¶ÝDkJòók4å[eÂo…±Û=üØžÉG1‚HS2¼ÓOR‘R’ÿ&¹ËÄ4ýÔñp8Œã8; ‚Á ÕjµgbC‹V*wô(é“i¥¹¶‰(có‚™øb‚ô‰4…ëEÜ&Ïihfˆj8N k6 Í%³ØˆmQt &ƒŒNãÍg#-žuŽ}:ÆäÔ$Õ& ÎZ~ESú‚Í2R66ÌдX:HF߉¢ë:úô‰ôšÃbÕ«T¬2ªiDîYx/0A µLtg„êýÖµT- Ù\^šE„žR­‚ýx)'úÃ" þÓ0úŽ(廑°Fxû®ë‡y¢Ñ(ùoò$$qŸx¸u‰{×ÂõÖž¬!1´-O‘õ8².q–鬙=ž`ZhhßÚ…¥‹ñ×÷oë¾…7ç‘ÿ*ÅÈ“E<Ò'&Û‹ò§ÿcÁ{›¾4Mì½Þ¢ðòjkRå[eÂ}haâ5§ý›·ážÕ‘Ð’>‘Ʋ,d]®hhÅÛaCÅæ ŒÍK@ëÓÿfmM¢D¨ÒÑ¡q1^}šJ5”" :âà¹OrÌX3Œÿms—‰uÏÂýÙÅØj`l7HŸLé‹ ë:ãÇžµi„ÃM˜h¥ÇþhQüñÅ(=W¬RV±XÌX3€¿~7ÊŒeqþ›•ëKƤD4%ç_ ±ie÷YlF¿œfúF s›ŽU›A„ŠÈúï:?C‰[€†7çáZEôh’Ôa?¤´€dŽ%Hl?;ÈðçS¤§(Ü,!D°í9g'0·Øž×Iˆ1DhÞ¸Z&±Çô{ä,!µ/Љ Þ S>…EÉ ™c d½Ñ†]|̲þ¾ÿ/ ›¤' ‡Ã dêâ‚ÇÅ1ΜÁù¯ ä¿J+O.f¤Ä­9Xøm¤zðtÓòv{=ßÏM ÷i݉;MûlŒJµ¢Bj›€Jx ˆ5ÖÖh}O:íX͒͞û8Gb‚äþÉCY„0HŸXhj–û$Çwÿû]û±îYDߎr$uc»ð,FŽ%¿ÆØn´ÊÄ®(ú‡ËgFm6öC›‰/&Úõ="Ÿ×¶3.7×ÐDwFÈí¼\Ù r×®ùÇh?ö(þ8JòÀiÒÇ;2!¾F e‘²ˆ¬—I:Ïà>OXw»C„mæÏIJIô( ýïÃ!ÚÖDc¹š-)‡ñæ¦Ûžoñ–Õâð¾ŒmÛØ®{úp s[„ØÛ jÑ­ôíå˜øb-¤aÛ6ñX¼ã¿Cçĥˈ‹”WÜÀïêD¯¾® ¥ÛÝâžÉ÷LŒm"}aFN$Û¯WªŒ~“Þ§nʳy4i/Ž®„”Z_žôý_Y—=u¤F>0¾©3òÑÁßý|oœò­²ŸðŠGç IúPŒü·“ÔбØÌX3Œ}:†û³Û•öü"‰D:‹OÇ/IŠa¯±°s39²?Nt·ïaN\*’=—Å0|C‘¿²0+—r]Ïqù.·ÃC¹s”ÊÓ®-Ìü-ÛDÊŽ /« P‚aÛAÊ )ˆF:¼…ê¯.—­¡§Èú«JÛoY¸žì ›:O<"}²î¿6r"I¿iÐhÊÕ/¤”˜¦‰eYí –&¾È@ÀCÓA­¾ì.:8Ò'°ç¼+««[÷-Ò'Ò$÷ûåü_Ïû×S‚3çá<¬ùú¥Ä¾îÏ.•j½OgâËW#…þuC›ÌÈ#œþ÷ÓŒý}l [ûͤ¦/Mûé½Ë<Ö}‹ä¡$a-ÌäÅIâïÆIJ"ë²g±`þj¹½àï„c‡â˜š‹õÄ^sŒ{3èßÑÝge¥ì¹Ídäd)i‡ku‰eÍ çkJ„è}:¶èöÜ'.ÉCI{þ ðCG…kF>AߪsúßO“9•A—’ ÿ¸à¯/<°ˆD"侘ÀkJ´í&—ï[„”ˆÐ÷Ä9ß´‡¥Zë(Mcéô%¶'FõÞÚ;lVïwŸOá gÎm¯MI`æÝe¼2°{Àï£cÛ¾¼Œô=ëžEô(Öý BÈú8RjH¹ö‰„U%srø€ýÈ^S[hÃ0MIî“âÓ1¾÷$ñªMØ—d°Ï$(‚hu ÊÐl"ÊØl™c ÒGS\¾ZðeHn–Ú…“֬Ũgc8s¹sØì® ˜’LžLS¸6Œ¦¥¸ü¿—W\¼'{.KùVÏóÚƒblOŒà›AŠ×‹¤Ž¦p=—`(Øþmóiò²)qmÖbaè—TnObßù¶‡º˜Ÿ4 C Ó@pÑâ{b‚ò-ûä{&¦a¬¸Þ±Üõ0"LÃFßG„ÓóXóbž±÷bü·ƒØlìÛô>A£æb׃¸u—þD4ªw’hšA8nson}á*)Yä!­жÚh}žçal5˜¬{lJN7¡t2¹Ã¤Z¯R¼YÄÞÄ¢R…Ï+òx¿~”ªU_Lr‡AõÞLûuc‹Ñ k…¿ÇaèÛ<±½ ¢× 85ÍÞìÇv»î ÿU~ÕÞ à ÑèX3®që¾ÈáK34ÐîWò²‘õ3–Õ¾Mcà–?YpB‚±“ôº…išjᯠœ>‘F Ü|± IDATiÄ¿'}27çaÏÚk1å[e ÃÀØføá¥V;„æzn;¬z HâB´+ðeý „&çkQ²È‘:”& bl5˜ú$ÇHÝÅ–Ò/ í31 ££*>jôï09™\—š¶Ò"ˆ ûƒ;– yXǺçŸCù‡2±÷b$Ì0ÆVƒF¦¾*xÇľw$BqhÚ¸ž”Ë7K[–æiª÷’xžGåneÕÍ‹7Š˜»L4Mcrj’øñ4éùuœ¨çâÕ=4MS†æ¡ŒÍ3‰<%Üöl)ßïz_† Š·*„…Àš­1óÈÀÝ ÜcÍåü_ü0Gö\– ½YÄÂMÉŒ¦Ñ¿J¡bñF!Ñ·£+n7˜Áž‡õÀaºYôãó³5†þxú¥ö®ù`ÄO{~jòWËÄvxõ®¦¡í4ImÕ‰¿ç;M£ú_çI¼Åu=„2Z—\þ&hÂôñ!¢Ñ(BÞÿã½!Bß# ×aèØidSúkw‡R=CSM˜Z’1&ëCÀRŽãL]ô료í•SF¿œ@K`nÑqÐÐBé鶸§çIfØm­µµbÍÚþÿÀf ä÷Ó©Þ®2u¿3c«üC™þ·bó©Õ¾—Ûm´ëd}„rHyd]ÇТpÕ7’¹s”XyR•<”Ä0 ´ðÛì0|ϰ ¶m¯ºÅÆ¡ŒÍó#B D2§rí«9ú§QFÿ<Úö`~Ò4ô`µò;ëž…<žfôÛ<² _kï:‚så24%ú2ÅŠ­êèÒÍIüy1=Ãaf@À»|»B95MÚ #ŸŽ‘ÂÏt!6€À|ù+âݴꟜÎ ›ýóÚr’ÈŽ3mœ9ßhTŽ&0¶è46u‰7ç1x| rùÒ²) ÷ACJò_¹¤Ž–(\Äóº;b®ÄÒpªýȦÑh`?´1'p:~8µéúõ/‹2'.ÛEÄÙc‰5·‹X¬³W¾ã¯idŽ%ÈŠâx^‡—Ô҂˞˒тè[t¿Ff~íMÊ<š6¶æ><Ëá8ËLúYß×Bs]*·+è_p´%½ó2×&­(c³üþ0.úÓå1¤¼ Í#Hàü_ým²g³ä>͵‹'Œ¦„IÄÕ•CK³’*ïD™üó‘›EØåûk~·ÂS*¥UÈ&}|üÅ©™™))1Ë%†wš¤5 š~ÍÀžÇÓ>§["¼ñú„X÷,jkÌ<˜!{6K8nKŠñ=Rþn•=t’|/Jð;&.=ó¡´½À‘F˜þ6ß5Áûl¬#”V¾g“=ž``·Éˆ«Ö/%ö˜ÄLƒêC‡Â"£ÓêÈ\fr~3Lé‘_ÿå-*>9‘Dj9Æ?_÷©v0ñåDOµì–©mIS*{Tnƒ‰ãΜÓ!½£x±(c³F²Ç“ ÿG†JµŠWoà5‡;¾㟓ؗè˜yUq­@uW{ :ÀÔ·S ι¯¨æCq=<œ™àȶ(†W³è}ùvF‹¡–¡ú±JÉôc×­0Bz¾¹–  †_`²Å¡žÅÇ$B ©clK@ uoõ”ׯV_·ÌÙ C¿B6eÏÅyðÓ†[,Miwæ$™CÓX&(Ý›$¬™–íß#¹S)"z˜÷ÿ¼rø0{6Kã_žïU¬ö\oþÏá¶~Xî“BìÛfØÔÖ @ݡӿÀD·ûë‚ç¿*`ÙŽŸÈàuOK„ÓyâÌà8ùù0qj_”°¦aÕ½.M¼gAJÙ¾wDÈAˆR÷;²Fž×Û“ÉM ew¡ªbsPÆf8s.¹ÏÆ ‡4ܺÿZ~Ûâ"#´×bžUrâ‹ b{bŒzi!ˆQ!HJ@Óo¸•ÿ&ÌÀÃÎc šÅÛÎ*ƒÉâ*é|Rž‡ x/ÌÐ,ÍÆËM`l‰P¹gùBý4"ô5öc‰,4;×¼²ÇüjðʬÓ)èùÈ¡Ø\ÐðêEæX×k¬:èM_™Æ4M¢»V^[ŽÅÒ<"T!ýÇcŸe°<‹ØÛ~½Šü¹Aj_´gkðkAÂo…‰îжëw2ÇhóÞIáZ¡ãž[Œã8m 3!…Û6‘”מּ0îÌ5(ÍKãÄw™áü^ºjéi?ÕXJ첟ú¼xÂSµÌ=I¢†Ž‰À›h4 ß^ð[M4A6§q•ïáÔþ(FDCÓ \)™^¥…âùQÆf´¤ØÛA!:f²½°nL†K+³,/%šö”óÞŒ¼õguL‰D­Õp¯ –CȦ@Êq ·ö‘>š ¿D‹ÌØÖÝõñà&iC¹š†Û”ü¶.¹ ÞŸGq9˜;M"["س6Ùc1ªw-{㸞óýeý}DÈ›¸Æ}±ËXŒÂ2—Šˆ ‹ãxá ¥^-FN&IÄâèÿ‘üVaüdrUc3xló9¿jÆZõ÷™±1¶%¨Þñ|=¬aœe MæLý-½­•æz®/-³%â rJ‰ˆàÍyŒ}6溭têFƒò­²/YôÀ¢!س6k½;ß÷zŸ‡”¾÷”=žô¥yfíöÚ3ç÷Ç¡é¯%E™ ™˜ZŸî'Fнöô¬È¦DY·)ó@~Þ ¯ðÁ& µ9÷•Y'|ÝQÆf¬e6¾×=›íYñÿ¬xÞhšCù‡Ñ·‡)\+´•o5!²» Í "\²!Aÿ"%üæ‹Iø>$жèhBpáž…húò àš¦qä? }ÀáòÕö’ú YFÓH9 §Ö¾sks.—¯ÚÙOÐ–ë  Õ»3$¢ }9ÍJ-³Æ>k+¯Ö)s­L]ôï#)¿qZËÈÄÞ‹‘Ø› 6çwÌlõk™œòûÍDߎ"B‚þ0Ô~–85׫âÔ\ŽœLS*—ã:]Nb_‚H$BñfÑ¿'„๵{Üå;vǽ/~çÖÅ#Háj¡-tezÅcq¬{NÍ¡z»Ú.|uvÛÇÛjlÖk]l)Å›EÌšIt—CùÖ½ßJwîÕ~ …õÈAþKÂoDÏp¸bãQÆf ‡7~@—Í® _ ‘x|c‹AðóqF¥ä§À‚7fkí¢TÅ‹A q>#™3*Õ Ù³Ù®÷Ú"…˜üïI’‡ÿ²Ç\þûÙã½iWCÖ‹ušù¶\{î“#ŽôìâXhJª7Š,.¡ù`„ää éL8.%ºçÑ_—¾¡YŽ@’é«Öã¯{¾ Û Ju˜ºZîihúkfËÓX‚#u‰ {Þõö€²g³dÏf9ÿ×ó$%ût s—¹â¹®•ò­2ŽãP¼Q¤!ä¿Ê“ÿ&ï‚>´©Þ­vÍì³ç²Äß#˜—Îy`c莔o•ÛžbëdÏfùhÄ7fø)ǾÉc *%vÍa²ÞihÒ‡cŒIáÌyxORÒoöw‰h$ÞíLjèDw¤Ž¦ºö£…Âh¡0zŸFö\–ÂõBW³Å´"Bjs5&/šÈf„°:[ZgNe–ÕLìOø}’l˲0¶økH£ÒáêšBàjÝm²›‹òlž?&Š5k ¡²Ü©™ÿ›†@®­‹¥-¹±E(ž¾¥zßb`á™ÅqÁßqŸ¸äÿ™o·ç ¿¦Ñhø2ƒCØ’‘ö‚mñf‘``¾î‰ØUËbb>þ>rr^Àp•æÏ‡„fš¡caòßt¾“9•!Òa|p˲Hy.Ñf¬™®A¹p½€aL_šîZ0_ÖüÝ»$ö%˜¹;ƒ¹Ë$u(E0lwˆlÉ:5}‹_5¯iÑw¢=[,¯ûlë’R¹ÔŠ_?ö^¬gz®”gÎ!¾?Eµ\@ÖÙ6®à‡’û“˜»LD@ÐoöüMÐOø$‡Ð4RÚ©íOÿ%¯WðæüZŸˆF{KÇŠ·«èfœÊí Î’"Ðì¹,r¶ŠWwý®ªÜvºzñfѱ ›„"Œ÷(ZíEáZ„CaRG®Æq½ à¢iO‘Í âïNC ·—™û$ÇÌ]ÿžp§Ëë±`×%FŠMÕ»æE£ŒÍ32y1Š™—w¤¡éÏ]Ïcìï4$äÿ>FtoÂï{>ÏøÅ¢_™>o`6b~%›’ÂÕB×Ã5x|â"vÝ#¿$¤”ØŸhÏ4á zŸÖ^Nî4æÛ1k¤ö-¿pý¼ø]# Jwf˜¾1‰—©TAˆñ½y¿ßν=øÊ¦¤t»„±Õð•zÝÎl»ÖZMËœÿËy î F©V«íΘÅëE ?dݳ8¿D¬2{6KôÏ£ØïDÛ^’{Ë›Ôþ(‰wÍÃ[yÍ¡r·B8&¾7NÆË´ Ë?”ÉœÊtý–ÅëEŒŽãP]¦ÇuÏÂ~xYï'}2¬J_ÈõÊ4q!ðšÒ/àom_â>ù²%øfû±ŸÎìy ?Áb^Ï/}2Íȉ$¶Ô÷…ýIÛ#è¸uIõ¾MõÎüºÓžÚ; ‚Á Ÿüa¯/QfúÒ4Ñ]é‡9Q ¿~„Ñã6:ùo"~¹Ÿç;£žÍ"Bþâ~ð7ÁŽ´ô^áµñºÄ~GÔ©Ø÷HᣌÍ3"ë§qçt¤tÐBcxžolÆ/<>H|—Æð™4c_ä»nüV^AÓ¨>ÃM¯i?!e)OóÝÿû)eχkêÛ)Ò'Ó”vš°èý‘“IvG‰ü´ß‰KE\ÙÀsý‘¨zߦzw^8Ô^Ÿ´ÉZ;“ÂÜm2y¥ˆÞâß. µ aîãÞýå²ßN¹Ó/Þ(âÔF>Áó¼ù¶{`›º8å·›…;<ÌÜ'¹ekfr_M v™„o•‘’ ¡¹&”4xïC²îv4±[öüïYNeÚbž‹ÑõnJMÓB¬èU‰Ð×€ÿYç±Cåv¥m†¥Ä €Õ^ô nö\–è—/]fúêB¸+{6‹¹Û¤ö¸†õ¿— 9“Á0 \×_Ø÷{+%Ñ4÷ÿïûxuÏ÷ØP{†açX’ñ‹†öÏÙÚû³Æä?û±ÛíI„iúaÍjµÊù/׿=åU7Η†26ÏÁ‘}~›€üÕ…sî“©Ã)&?¦¸LŸ’=§šŽ.›5³š!yÀ p=”§9˜É‘ €#ùºÄ”ï“ fÕ«{˜["xuÁЇýˆ˜;Ÿb?Ì3tó4Åˆî •†æN“äß8DÚaÓWFIHbÍ ¤”xxëzº¢ÉMßóŒï3qq Ms0¶GpjS”o 1r"I¡*É}œC„ü”kÏóÚÝV[žtøÍ0±÷b¦®¼¸M¿Ù¿|=Õ2DwÄ£RBþÊæyïŠn”±yÆ¿-ú7ï¾$ñXšÃŒî/æ¦O¦{®£ôB6%…ë õ­l›ÂÕ‚ÿ0 óÄaüou;¥Û%"}~MB¯‡9ÿUžìñ$†[Bõƒ'¿£±JØÚ™k¿8…W‡hTÇÜnbÍZä/M#D)}Aǃû¢¤ÿ0M¹fá^ƒA 7ЏÚ\ ç±C~Îã})aÉb¸ýÄcf¾ 2ø½é™µÖ3Ò'ÒL^*cÝ× 9ÍÈg“¬{Ä£$$™üŸÎÖ×5˜¾2Ý•N»XkÌ~dcî2©Þ©2,%©¦dzÉÚÌ0ìy¸øÞŒë¹~fTÍ!€È6MJfmÒ‡cDªvÍAïÓ Z(Htû(vm·BèÌHÈ]½ì«EŸÉ’<¤p½@êPŠx,Ž‚é«ÓX÷ýÖËRJ´ÖNYÊLH` AUÊŽ,ÈÖ¢{‹Â-‹Â"ïB6ÌH’ô>M¤xÇBߺàÍ„ÃaJå†a0ò¯ríÍù æ’û“xsã,Öz[šå¹â» ¢¦ç./c¤Ø”±yNª÷möÊ.ÑËüWùŽTÛì¹,ÓW¦±gmDÈ%Ó(Ý, åAœÇ~šæâ0ÚÓH/$ȇš¦õ ±µ“•êeº¼ŽW?§–DÉÈG#Xw-ªÕ*áoè&ç±Ã…ä±k« :¦Ç`ϵ F£Ñ×%%)\+°œ¯T½gS½·r†“?ÛÍ·Co6‚ï" Ÿä¸©£©e‹õž#$`G?f½ÂÁ¿vÖÝð˜-'+dîò?Y—=å‡ €·£׫ŒÊ…ë‘=—í˜ Ô%c!?ìkMã9ôI¿àÒØj0cÍ ïÔ¨!u8EX 3y1Ùõ»·>S¼^D×õï‹^XRbx.3‹FÛè@Û+¼,Ñ-: ÏåÈn½OÃØaP¼ž§öÄà ÕAŲIJ0ü¹ßY–…uÏòÅT·êÈ´)LM ½¥Qµ={L_š&ýÓÇ”=–@6מ”2½(¼»^¦®–‰½mR¾³yë<©ýQâ;}¥ìáϧ¡1D ë/ÕÕVó¢; Qã¹¢¿$”±yN2GL\*úõó5Æv{Ö¦pµ@ölÏó8òû#hšFò@’â ‹x,ÏðÄ)•3ä¿é¼ñû=™{Ž”œ–’Æ•é¦ÄG„D(‚h~ç·^„ŸuÖ€¦c/[ußÞ×S ñpë·jáx’â-‹â-_©:ñ®Áä «…Ùò®Üzc¾¡œïí'bæü¤ª‚‚ôÓQ€Ä;&ú–Ú›AXcos»‰±ÃÀ~`3v&…F¿ð')•Û&úÐõåÉfÙˆPg^ãOJ}‹‡3×yOÄw~_¡xÅÓ/elžƒ‘I†?Ì¢…|™÷ÄÞé?¦ÛÝ/ × Ä÷ÆÑßÒûûzD'¬…IŸô{͆áËŒôPmµ‚‚ƒïÆÉíKt¥G;š†I„Ä>˜¾Ò]›1qÉoûìJ¹ª¡ÉORºû[¼æ öÃQ´>ÁãƒLü}‚Ôáö#ç‘Cþ¿óÏÔ€jüÛ‰=fW–Qö\–ƒÿvÏó6EK …f!í×G3wgÚÙz#ŒàÕ=ô·tC¿÷=1Ëò%ö³ç²ŒÿÍ÷l2õíÔ²ê­Á·è RÚÈf§AJRpþ¯ç})˜;þšÐà±Áv {öx‚ ç©ÞïLüˆïcYÏ7XN7AJ‘ÛÝûÄÅ~hãηn—rAãž=_÷D;tÙjÛÖMŽüþ‘¾Õjµ›ºV&ºËÀšÍ‘Úwþ„°ÛxKD´…ßÙ™sq×°×Qoæz.årÙ¯³ ÇNç‘ ÒùɆßש•(„hg#ˆal oè`_øÁ­KÊwl¢» ’±*žwÄW)—Éž«pþ/çq<—Ò] gþÚ'Þ11tíµí¯£ŒÍsP›sût¼ÝcÝ©9L_ÆóbÒ¥›¥öbéðgÃä>ɵÃP- Y_¾~bXJ¸Q$±/Á…\ÀÜiú²ñ¹2Ó—4ô–”\Ë;r"ÉðfÈ}:ÎÄ•²>ŽýpñÏÆqçÜv mܤ QÄ¡pu]— X&µ¥Ýì^¤Þ(d}Ñ©»¶xÝ u8…¾U§?ÔÏ̃Š7ŠIÉ÷¢=›Øž‰ý þÛÁe»v‚š:6Äð"îÕã²wŸ ‰/&Úu+ÑÝQâ{ãLÿs‚°¦¡oÕq–vï~‰Š#ÉžË~3¼æú¬ÅäÐØæ×®V”àYÓØ6BÖ™[,ßÈP#_—w­›â…©º5±|1Mtî—¢Eýð„€@ IDATÄÙÅ~€FǶDQŪ÷ûëù>Ïô;ãÈ— 8{üyÿ¡zoéÒSË”öN›ñ·ÆÑ5bˬ©fÑ5Aýæ}#»åïCÄT;• ¤Ñé¾_Âð»ocíÝP¾9a3dªs0ëí3ªDQ‘…ÝÄÙ£žåĂƢ‚G"¹< Ò;Í+†9¿^£iáí†b™Þ Hï4‰¢²ÝIX;¿OnMj›©*±·ï?ïùƒÎßHÚöÓ`ó„‘Ùª“ÿnJ¹LÍóÑ4ñœ ùœÙ§¯IGýáèº.‹K°¶Z”/—Ñ4 +!)˪,óNÐíWƒ2EËì²ñrà,ÇÒ`öýŸ¼OÁNQ|£ØqÍ£iÓ$7¶h,Ä)âRþÄ¥pÈaìÄ £ïM"bQôðö×ð‰aµÑhs³‰w³JéB g¯:DL‰0Ò­làÉ›ü±"ão­ÿïkY,A¶%/W›-¦Þï‡ÊÕ ús:Ö•Ê};î ‡Ìd’ú-Ÿ© 5f®¸8èH)iÉV—$‘ÞnR[Á¼«z>¡lQ¼êa&¹¦ìÎóÌ>s«Iø¹ÀØNGŒ>ƒÊ• Éäç¤ìý˜›ÍnÅ—?–ÇÜdÜ ˜xg]×1’FWaºôA‰±7•ŠFv­¶þu¸˜|½Àô•jÏ®™wK¼ºÛ²á…Ci&Î=ļî@s³‰èü÷Ô…ÉIªµ*9%J›Þi¢%IC‡öÚ×Ûo4V±àJç+˜›“øY]­…Ü^›Ìv‹=6'ßVŸár ÁiR› ‚Åk‹ÉÔÏ& ûw)ÿã+ôôä/%É>Æ29£áÃF2IñX–Ñ¿asž§Áæ Ãó&V"Š$þB µkuZRöì-¬„û™Kî`nÍ­ï@Ó»àìv‚Ó˜[,Jg¦1“½½wÓÇ¿åÓ¸³úá)vVd| Ä £?ìgúÃi¼yÏóºâšVÀ¿í³ïq&ÏŽ ¥ †FŸÆè{£ØÛ!j d»ØiUÝGñ¥ét†Ò¹i¦.Ô”£æî ¾ï£ gO¦[T.W07šø¾O}¶NþÀ7Hí°¨š84~,7Œ>¢ ê ©KoYLœ­ô,¼›ž²$^µOjäæÑ_íú÷À’㥆µÕ쩌œ½N—±¸4Yhà>õ»˜ ô.}Àk„Èk÷gBí“©)êÍ:áÝccŠLzs³©èÍ1Uí-Ÿ-g¾-1ó*WÕýäûfŸNETg}u_®8]†f1û4ª ±HYLw”ÇAÍ > ï¶ß£\!›’ ¡$u¦.Ô<<ˆÑgà|Ï!Š"Н•¢AáÉ€¨¢õ}N´øŒºÞš†q MÃÚœ\Õ¶{:”w'ŠÖŽöFŸŽfÈ6x·}*Ÿ)²B[Õ.ð!åOêD÷lm‰ÿŸñƒ}Ñ^ÓÚû«ÄÓ`ó„‘Þa’ÿvžSŒ`ð’‹#ĺŒ2Pòð‰a&§&¹xé"æf“Ñ·Ç!&ß?IáÍ"[,,Ë¢Öðqg}<¿¿"¨¬G-¾”£ðÝt(¦"ÑÉ–ÚŠoÈ ºÃï%DQ?ýV‘ì,B”дˆÁè ‡ŽSºpº#>¹v+Ä_ð‰/9j.4(ý´DЈdÀä¹r÷P,¼\èÙ3Êlu¨{>C³I­§r³·$q¿€éUv_–d2ÉäÔ$CƒC蚆µ£ï„" Ó°1µªò™:;µnEZx©€Ö§­jÕ®û¤¶š´šnÏܹŸ½–Þ+u}hÖjé¼6ÂÌ[ãd>÷÷b×qrâÝ r‡rd¶êTýPµþuh_«wSJ>"ïnúûwBÆjCaD#j‘qüÛ¾ÚMê,±fdùÎ?õb£ï~P»îcnÐÐû"‚FHá PO²*ÈH“L*’AtOâ­c ïy¾ œ‹!Ö YÒ/¶¨}R#j¶Ö4ró:oöN›áË•ZMÄ×LDÙ,²»S8»ÌnÖý]:Ø[’DMÉè»Ov ái°yˆš’™§»[úŸ'¼rLɹׯՑRrjÙŽÊÄY€~$*Ë•Rö´(ê7}ô…€ê¬z(Â(dæuójÚ/HÙ&¾/ÉÂ4M ß-(¹žw&ðæ¬­õÙ:á²aîà¾4ûw§@æ<ý{³œ>3ùHíB)%F£k+4"Ê—«âË9‚FÔ ÔÃG²ÝeØÁ}6bs¦k€·2àœú“S^* Û²§ Ðú42éLlM÷Ú«¬n‘Å”f›çy”>(á/øää1·š=êÔBŒqêOîkš†Ñ|0;0û¢¹AGö™«$ʲŒ½\ÁÚj0sÍEÓ4tÙ »Ç&·7Ãñ­/c™ɤAòYûQ…Ü¡¥>ƒ´[ïqa]šE "ßeêÒý –¾§þä•t]ǽ:Íû5ã{SØ–‰y¾ŠÑ§Q I.ñ=Å׋xóÊÙ3X `F^œúÑ$a¤–°4Ó>ì¨Eß5ØŸ_Öæ$ÖM3|4Ëø÷ƒØÈ+#ÄãñnÂQþÔƒNwÉé üî€ÒÛûÞñþŒL:C&Á_ð{å`-H ŠBZkÌ[2D’¤:ë1r4Û‘= < 6O+Û->`¼3ΣõÏœ›¡±Ð`n~ŽÚ'52BPÆ›#G³p©Œ¹ÓÁê°pÌ­&õÙ:æf³k„ö ÷µ¼…FåK’¥¬r-4C’xÌ\ððç×Τ²²¤v¥To¿tÛ€K½úÜÁCÿ4ÕÕ+¼T ôAƒ9ÏTʽçf0ú JA©kÒUùÌSCòO½åè^„' Õ–”kÅÔöÝW=X‰ü±Ëqö8^.tƒFöE -¡ÓÒÔƒ§ôß,„PÆqæóYÜë.ò¼ìuÃ\Ó4»FkZBcêìÞMFC —hÒ˱2356˜[Lª×ªdd±¶Y„‘ª6ªB‘‘1ò$ùiJjQDñ"Õ«ÕΜmup°-™°°¶šŒýx¬+Œ)D±‹¸·| NùB…ÁIJ…‰:ÖÂà¾4S—j‹-„M‰eLœ›¡ðRýÙýä¿§v­Fé½Sg¦hìi¬©‚Qû¤¦ÄF7èjÙYœ:d.ø¾ªÜ¼(ˆIN7#ä‰apë]•„¥êkä•fΖ9’ÂHN,œz¯÷gUg}̨…»Î½üEàÝnàÝòÑ´x8mî`®k±Ü;ÊÙã`m·ðnx„÷BâòÁÏ-¨AÝ­ÓX|2í¾¥}©%q!¢¨Ÿ©K.žàØý¤vX_O¬Âyl¾,§‹~­)É ñH>†Ñ{X,—É?õA™ôN“A‡¡ÃC4”ÞSÎŽ/_ì1h[KÆÚ’dhï(ƒ‡}kNQT×ÀRß|øÄðšÄõZsÞuWU?Ù}YåjÙ§¡ë:a*PLÐjµ:YþQ41\Ö“.Y)dZþÄëô¬Õì"›¶°í~Âìý˜›ÃmüÍqÊÊÊ’YÓ(&ALÐÿ‰‡xVàw„>Ñú©\uN¿’çøŠÙJ{›¢µzž×sfÎÍ0xdt:M<hFRêNèh5àšŠŸÁ4FŸš¥œ<”Uó¢˜úŒF_¥ðrÌ® Ö‹ Ô|*Fw2 ”*vùB¹#ã iIô¾<ÓW2DQ¿b¦ù>ÈH¹¦/Oþ@šô®þînÊÊ MëÓH&“øw|ZËx³O µ „À›UÚn™ÊÝÖìÓ)×<\¹D€PV Õ+•5™s§~t {»©²öfØ]GXŽÚ ÿKµŸÖÃZë¾ïã%՞ݙ¤rY±Ð¼;™]y´„FùB÷º«: .fRãä;+ÚZùÝò{«pØÁд'b9„@×’À/ˆ¢¯áÞl`¸þ£¤Éø£žØ+=źxTæêµi`}f—s`ß÷)¾Yì.áÕ>©)wÇ—W»;®…âK9²”±Ýyai­^]‰•æ^sBÅ`ZJE³þ“SÝlm%²²LNM"›²§µ"åI¥ƒ¶Æ¾ÎØÇÔV}›U„ ';Dp7 ò™‡ë)AΠvJ¸¯Ðjµî”~RênsRbo1RBõµ0 ±¶§¡á"â‚Ü»çßG_íœÜ¡D>ÈBL"Ä Q¤$I üyŸhY›ësMÓKÓ˜‰"–î˜Òº[ʆ—HC—Ê|­)±·g`·E« AS‚ë.D·UÜjµVÍÞìmIF÷sÌl˜‡f˜8ŸAJƒ¨©®qµ–EJUõ¬×˜ B‰7ït¨¼+o÷3ÿ–ÏÔÙ)%ôˆšÖv )%õ¾JZö¤ˆ‰nâV|£H†]?›µàìËQ½<ƒ.•%„h!D bR–͵iïO ùcy’É$µOkT.WÐcÙÝiÂňÜ^{›‰µ9IÝ­S¾TîVg3çJØi3»l»Ü¡"&Vµ=ííŠðìÓ>â|)«Ú3Hy’0¢G2KÝóO–@ð4Ø|9šÅ[{1KÄdW´Õâß蚌þ°·¿Ö‚d˜h1AÿFƒÜñç⌾:ÚQ ¯4’w“È;’‘×F+Hü‚ÑW§1%é’}ÑÂÜdt>Sò3b{õÚ0KsÀ©³S´4 ѧ3ÙˆS9¢Ú?Ë[EK€ËÉ'•O=ìÝY̘`x[}ƒ²/xPåžÝ›¥z­ŠžÐ;AËE¶Ë3‘m£+ôUA6%Þ¼‡¦ix×V®ĉš’¹Û>Îó)üFoûxøj­ôÓñxœ(ŠÈØFŸ z3ÀÚ¨÷T0ëÍ'†ü4B¬­¼*Q0·š”¸>.ž›G@AX Ú×£¦dìõâš=ãõ b‚j @"D)K¸×ˆÐ~t,MÓ˜þpšòåòªò{9F¯ûd0—ãôŸž&¸t[`'¥Ä‚–Œ˜z =«•mIõš²ùMo˜IƒFŸz{˜L(ig¯Cùr™  ÷é$û’˜š$»×¡tv†éZSãù™]6Ū¯ä÷ë·æ.2sõ$Î^¯ëŠºd,D„ÍJ׆5‚Fv])zïæ}ªvxOâÞ(b$"!ðnÜWö•Ío c#¥ mu ~GJê1(¯sýjŸÔ Зèµë>ûÓ6–eR¾r‘ü1Õ÷_R¡^i%]íXSÐgpú–‡¿ÕìÒëýŸÓz×u»­»ÊÕ"FÒD(¾aQ|Ý'4ÖHí0»3‚šç+ý®u¿Íž?ù€¹2¾Í$Û—D$âäöÚÌ\v<<Èè•àëJ”/”‚˜º¯äú•IöE9_ÁÙ¬qü­Þû~ôÕco–,¢ÇßNAÛ"³Û¢Z‹°6§(¥ò¹‡ê¦åå16*—Èån‹:ƒZABPÚ½LXôKÍ^Öa?M™BOèX–…ëºä¿GÓ4æ>-D3Ô=Ùl1ðýqê—&ñoûa„ˆ /8}µÊ7ô8Ã'긟 &6BÖ®0Þi] $Šéxn…F$ £ÿv Úsk¾‘øœÊ•ûÅÜjãì­3þŽI>}’¡ÝYÂæ}ëì(úFÏ÷Ï µÑ¤ÕTž2Ç›¥NàymDµ‹n”IöM"ÛòGó”>(6%¾ÐjJúw)\E”ÎhО pÈÁÚ’Ä_ˆ¨Ÿ«lJâMŸ)9ýý“”¶[DQDú…4"!B`™Ý*WÂÈC‡ËÔÝÎïòþ¼OДŒì‘MY‚µÝ"»7ËÄ»YŒ>‹0Öb`Ï~Jç+d¨’Ù6€³ÃÄ_h¨ÃN3y-KE ÿ`xÍÖŸÖ§1ýÑ4æ&“ÆB£ëº6$BS¾:k-+æûßþ`™ÉM"\}ÏN"w(‡ç©Äf9]~e¯Ã»é‘;˜ë¶È—ž±ÔŽ¥3 îKSu½5[jƒ°)qoùÝvõJ_/®Ù:>šEO†‘ö4Ø<"ö7%Ó Á3 xü¸Â‚ Ná¥Ræñ¨\fÝ@3§i°ÕÄŒÔVõjŸÖÝVú$©¶”eóš6GpòGGуT®VØo?¸‡=òÚïL0]…ꔽl±1–ƒöãÝ€¡¦¡µ%ÑÓòYIÅ\ ËkþõÐxwA´Z p0M“⛣¤¶šØ;LŒd’P˜ìÏîç”a ®V9õ'§Ð´zLœÏ±Ô8A#ÀÉ ¡%4&~2Áð‰‹Ý øR˲øžú³lÞ4#¯Œ°?»_Í š)4¡˜bÁF¹@Ó><¢¨_m..*Ûë)Ñ;pF¹» F_eúÜ4ÆÆ ©)ZíáB]y˘&Áb¤Øk÷ZLž+bnN4"„¨ bqtMv=[aJJÂ>ÝÎv‹ÚåÑbDx»N&½Ÿ±7³Èf Ehø·•à¨ïû”ks˜I -Ð6§{ˆKÈîË’Ú‘¢ðr™‰w Obm61“9.Îæ±L“dÒ@$Zœ|{ŠâëE’“]åæµÀå"¨ÁÝ`Ý`S|½È䇓Ô;3¤žªa»bJšÍ5¿÷ËÀó5SmöV Ã'†Ñu%:|bs«¹ŠÁ¸k™À€‘×Fp¯»Lýò».îM•ò{áå‚"¤´YS£.½ÝDO(©¥jôËài°y 4Uoxà°þ‹`ä•òßÎSúi‰d2ùÀ2¶?Š¨ÖªÌ-küŸx;mÆßgøˆCjWšÆbˆ½-‰{³ÙžÄ0 †_&z5Â_P;#õ„@N¶a"!0*%Åw&øN3¢xn_J2jF$>FÓR; r¥´®°åZÐö8”¿d‰¾ðF^áÔNálÕÓª R¶¨]›£%%ú6êµ*AP¾TîìøL,¤T‹t…— ää()!bc£½Ã¦ßêW i‹dŸNåjª$cjΕì˜Ë-‰r¶:í‰HJª×\¤¼OÝâ"z >öN›òàÞë£Ô¥Äüa:–sÞZBÛWî¨ñD\1ÌîµîFø ‚(Â_°6ÛŒ¿•Q³“v§;ë5CÂHöôň<ñgSØi¥©';D‘Ê• Q¤kÛtGïM±ñŒ>gW?ù UJÇò›Œ.[n9ü[¾¢£_wÉ Zi, ‚F€išT]8‚Å€üуR#èöïÝùyf )[X¦‰{³lF_UJěʎ 8<ÄÉ3%’é ڽΠ—“ÇòE¢°Ç=SÍ ZT¯Ñ£kõ(pq¥²®åóãBß 3=3ÍäÙI|·Š{«Ñ¥â.¹pV®TºmÓ4±ŸŸÆ0 f:škÕZµË òïøø¾;ë"¥TÞ{,ŒM&ÞmŸtB@:Ãà• ™·Ç9…ú ìçmDL0|bXÍ?>*õè“I¹Ÿ ñ1Ä<ŒMª-Y?1LíÒ kuê~ƒáÃææ$îÍ*s~ÔÕ^«ÖÔ\+³7GJ—Tæ%©½ŠoRÆ£ RV1ôõg)HâÒ±TnÊîý¢i!Bhø·\ÊòÈf@nwJµÁv˜ÔcÊ\Kh=^F¹=6zBPZFO_šc¥·›µHýZc‡‰µÙÀܨá6«0“Î(ñÉïï’,´DœáÃzg>”ÿVžúl]½=În‡ÒOKjŽ“ÐºÃôÜådkö ÅÚëÓ)R'þl¼kÍýU`¥!ax7Ľæ’Ù•aâÝ ÜÏÜUîµÚ•Z5£po¨{P$¾˜ÚA5!0ccNLíÓ†¡üµ´>mƒ¹Æ qe@ý2xla’;CJÙãõ²BeµëºLþx-irMÁÇâëE|ßWÔå=…˜!йŸ¹/Çð‰a¢Å¨»ü©Åì°0–íÂT>õ°M-©ãݾÿ÷f,$³+Ãôµû¯ç¶%⃓€Y«e)Þ—Å»á1ñg«.£æ("¦#åú­É7 Cß¿Ÿµ•;8{‚wKð%Kòô éŽ@£ªh¾uœ`rjc“¡-7w¼W:mš C-]Þ¢Y:ÄâÏÆ™»:ѧ#Ú’±ËefPbˆÑå‹‹WJŒ«Uf¤äs¹´Mw;|>CyU"â!›'qvQ¾P& Cê‘ä™Ïjª]¡i†I°(»#.}¤P­wešº§Õý Ä@Ê“Ýá÷Ì•õ¯WI4?À½íEa³wÖEA—~ìn Øm‘ÜdP“­5ïóÔu[íÞ{{ðð "€ÔªT.W°Mh¢¦¤t¶Bv_!D7p•¯¸š ¸‘MÛˆçt ‡UÕb$ Âų­Ô§aÍ>©)‚Å€ŒeÔs·;.¡ÀôÌ´ú]¾€£éàÜJ-òÓÿ‘ &µOkÝÀ1¸/MÿfõÜ/7ÝËL“ìS ±ùcùn¥8|$‹¡ ª7|f®(âF¹“–=L~%†c`õh²ÅXB¬é£ ÷éj1|§I´~å¦mOƒÍcÂýÌ¥öi­«±Ux¹@ÐÈïKQ¾Taâ\…ÆBCɳ›&¾”hwÕNËð åßâìq˜:7…–èj¬\©0!™Z•‹mÕËÍÊaôȶDĹ‚ `Λ£öiòÒ¸"+YË×\6UûÍ0î{ê,wš\VÌó3ŠÎ¹Ö^C{D‹åì§•˜óUÆ·\8Ó_Œ(™ÄóŸÌVrõš¢BÏœŸÁó<†¾5Ôe0yž×ý_î`ŽÚ§5Æßgä•‘nö=¸/û™Ê 5MÃ|!Kår…úbØñY®»¦Ž[©dõÿð$ÃG²d÷(šñÊx·<‹U²6Ê:ü8Ã'† ï…T®T(¾Q¤j’l Ê7|R–IËu{|U’}:s^@x7$™ÔÉØ6î¬Ç`ŸõÀly-Ì\q±·¸·=’5²=M°h’ÝWB$Ôâ°ˆIDBCþD"ÎÇ ÓaëMü°Hé'c´o^©: Ñ”Œ¼2‚wKÙEK);,-°·dö eþ·ÂW¦t¾Fz§…ßh "%š)¯¹TkUì]jGªr¥Âà>›ÜîþmŸ©Ëj¡yðÈ I¡Ñoªªñâ5ŸÚÌÈ×Dâ1Áz®µñ$74î=´É>eÖfm³°¶ZÊ4o»©*˜˜Xe'ªeÿ8Þ?‘øQˆëgÓíÌ,·Aø**aøÐ IDATñ4جâ±,AS®ÉÉÊQ¹Z¡u¯ÕÍbFŽf™¼2‡ž´˜ü™ 2­Ÿ´˜:3Eô‚…ï,^vym¤Û/_jc,ÇI)ùÁ0µOj—Ê«v DBÝàK?{¿”<*¯sòr#©C¼ÑÃ.[ Ks‘µt½ ³oÑùïáÃd÷e™9?Óä—k)3ÉÀÞ ¦é3sÙ¥ô„–Ð@=,Þ-¯Ûâónz=CXk›¥l veºzh§~t g|Œ| Ƕÿà4Å×Ç™üÙ$îu—gÖúËpòObm·º´Vß°¶$IíHu„ü±<-ÙÂý[MÌIª >C‡†pö:8om¶­î)k·Ãø›£ø ¹C9RvŠV«ÅþMq.–/’Ùªãκ‘dê 2“–‚þJÓ·¥Íú™ój‰vhpˆ‰Ñ…’Ì·¶˜˜±:ujš†³o€™KÓÐ'ÝÏäK9F£n%tÈ EM#Þ,àÞ:EfYB´V¥T»îQ»~ÿ~wöêjoÅ»OW7“fRWjâêØÜhݪQ÷"‚ÅÖWhPóŒH¶Èì0׬¬Ï7hÉ*S—]òÇîïv@ÔIâ*W+Iƒ¡o(XB%É´F8ÊàáARvŠàîj…ö% ÿ`ã R+ÄY ‡œ®}=¨%Ôõ䃾*< 6+0|Äað»ÊÊd÷„«dÛË—ŠÈfïßÕ gïïNà<¯®±.%qÀoK5‹ì´qÓÛM´„†öÜýùÝÅ„ )ôx·}´Ä~vW õ,äöÚ˜I£Û~\•ˬm–Ú±ê É—ö×–W€þ‚±Q ¡š;Mø‚K_æFƒäcUÀQì¯ÎÚª]†!¢éan2ÉlQ:ÿë—žÓò'ëW/zŸÞ%D¬„µÝÂÙíP½Z¥¶âßÓ;M¬-&"¦„g­]Ù5+¨¯OƒÍ ¸óoŽ#å}!>Æ~ÞÁ¿-‰W/ -§†m®ë=FSË‘1uüF€†zX–“µ7[û¤Fñõâ#›d2Iî`N vZbSe2{²kÊ߯ÄÔ™©îj÷IÌ­£?ž I ”¨7ÚT.Wð”/}j#$7”¯Tñ"˜x¯ôÄ,w—?šï±Æ‚äv›©ë.sG2»l&Ï•ç$´óäLüd‚Ê• ¶m3çÍA{‘ÃÚîg3=×rìÄ Úï¼:žQ¤ì:6cêÊdn1¢t¾Ö™©Tpö:Ä8þŽ3ã·‡©](]s‘,ØHX–©öŠ.T™°tlƒÊ¼¿®‹”Ùi±Ì\*?vÕëµ%“o¨Îöîo o6ñoùÝÊc‰u5 TU¢÷¥Ú ÓL"eDÔÑKs¥Äã¶ ‰'Ô¡Ü’!fÒ@JÉà>û¡ÆuÎ^ÚŠ^íÝôÖœ+I£›é;{{U½¿Jx·ø·‚ňJmí,PK©K’Kþ­PÍ®V9–ZZéÓ8»ˆ­f¼Ê¦¤vµ¶JÙÛ~ÞVÊÙº¾æó\»îcsjIø9k‡µnûï«ÄÓ`³kí|a ¥êÃFÑXZ‹Y²†&}c”¡ïŽ2örŽú¢àãJ‘Ú'µGîÉ‚*«5­N¥øuRJ&þl‚ú¬š#ŒÈáìÉR¹))«U—5íJæC–ÚSÄ¿Yeòà c¯á/ôÛñ­j©°ôAIýΟªMn±ËÂHÁ#9`>.rsŠž×uU›1&`±SÅ®¡\;OvضMÿÖ~ÕúkK&Ï ³äKßX £ Þ¿³ËÂØ 37ï“?èÐ’!µYŸ–”x· qmÐ#Ú²3©P8è¸ü¦ ¼Ò’JÁ¹:4*8{‡Í@™“] £_kJ MIþ‡Eö8T.¯Ã$ëÌJöïÍ0u©ÆÄ»yà‹ø~€\¶#¢Øp&Q3ìa—-G$[ŠUfšÝ÷%`U iîð £g§1A•ýK q7@J0Mƒ(l­š+.yÚÔgëÝD¢r¹Bá»…n&žÞi²— HFß+wgÎ{§wKmòÿ`:ŒÍ¯2T÷nyJ©b1Àؘê*ˆÄ$E6ï·Ù àßêÇ_XÝùÐú4ÆßGÓªÈv3É¢k?­VkÍŠg K ­ý¼M­Vëv^`u‹í«ÂÓ`óˆ¢~¼›UhÝýŒ/й…€â«£Ô¯Mb÷ !¥†wãÕjanQYå£B¶mÌ-Ÿãßþ´ïg;"ñ9Ù}P¾0EöÝÄ,‚»>žçu+;{§ÍÐáqr‡rìÏÎHÁè«.­{#¸Wg - ï…Ô<ŸÁ½âºÍÐ÷Ç•„ÿˆ<œÝ6•«5¬­zŸFØlao7Ñ7h”/W±w;†ëºø §‘Í83ç@$Z8;3€ÄÜá0òšÃøÛC€ÿùЉ1ÁܬÇéWòø Ç™8?‰lu¿&0™4˜[Ö4“sž·Ðžè›S„aH£­3}u‘(Ä€V÷Pye}ƒªàXœ£t¾FØT¶þ¼¯ôÑ6Úôo= …— X–…Ÿ4(¾;ÁøŽâΪ Rõ|Œ„ÀUšxc'rJëír•v›¦iè uø¾ÿÓ$•˶²ÏèœTý›’h}:Ð"»/ÛMÐì6æVÃP¦{–e-þ§ÏÞWb½*TˆÆÜ¨á/´MÕ†ôf=.Æ”eˆ³×ÁÞn£oÐ ï†T.W¢€”!F2MШQ¾Pb*Rß»dð· ‡´-éž÷co317'Ñž‹w=’¾*< 6ÙÌ<ò׎Ë­C0X:„EB0Þ1Z›iF„aøX@K€¦idS{§M&}œÉ³§!ßhJr퀙NÖsê• Ö:ÃÁ¥!¡±G’?xœ‰³4­Né bµ«Â6]ÂL:ÃÌùÕ’Ún3uv M êÕ² f.õfÆï¿–ǽåS÷|öØh ¦>ªôT#G³ôï°˜¾Taæ²KþX{‡çyL~8©‚Ëà•ËŠœ!¥dhpk›²H¿q¿½¹ÿ›yúwùLŸ;{Ý%ŠòÊõôºKùÒ’ŸK™¡#“g’ß0}µAùW‡m«)ñ²3[3 ƒìÞ,“zÿN)AÞ Z¡ªx£ž´4}ƒÞäÊæ}©!$•ëu`”ìɳ£X[’ I£¹þçlîp0Ú’J­Bþ žh‰Aôƒx7ŸéÜ qÌ­&áÙmn¯Mj‹‰¹É R«“Ú—Å_ðÕ¢iÃD6ãø 6´%Q³Eî:ø¤A¤ÌT—®+b@L`nWöÊ”ÅñÈóYâñ8sósL~8I¿ÕÏÀnón}²-ø¦ƒ¦iTkUú­~dL)>g÷eñæ½îÏ«ÏÖ¹ø‘Iö@’üÑÏz"þ”úü7 …CÎ>¥û4Â5%ê‰ #bˆqo~Ö‘k¢¨DÔÔ‘ÍïP|C-ÐevgÈîÍFC]zì̲‡nðÈ õÙ:IÑêY4Mm3)|¯€”-JçUkN$>gô½Õ’è´Æßï’îKˆhd÷ÁÌù3çÔáš?š'lª…P¿ %†®¡%tt!ОëPªMe5—x_ÛÂڞīÝoû”Þ+õf ‡œžÅÚ¯ÎGÉîAþXžº['»/Kt«F¿iâßY›ê¿¤™'¡g~:xv’÷5gnx¤_LÓúe $È6h¢EÔð‰"¥d]zO±-3é ýV?õÙzÁ$TÙ‹WkUÂ;êZ[›“Ýç-.xbvÂÓ`óÈí±8è3—«kn×Nœ« %ÔÛrKcèØ$ÆQ /ÃÄ;©Örþ`ú픕X’ŠÉÊamSö¾ï395¹¦…lú…4º¦Sü^ޱ7Æ{s s³IéL‰`1bìÍq‚»÷ß³l>³f`éž:3Eþhžéó.3ÄÔÃ?xdì,"&‚€Šë£?'0“:µj:sÙ%Сt¾Ób鸿â’Þnqê9É'•Õô¹õ5ØF_eìÍ1Â0d 7ÀôÌ4ZBÃÞi#‚‘×Fˆ?' C*7\Ì’Ò‹üÉÄ»ŒSƒg{»Ý•rçhWHj:¡,Ÿï¸WË ì±•¸â“”.Ô:, ²-™z¯Dá°CõZU±àZ!Å—;/\Œ°vX î ™ºT£zícˆBÊI¤Ts{»‰³Ã$’­î}Þ »R0$âTo‡öÉ®€+ô²MC´%zgÇbìšÏ©„"ŠWêäî¶ÈìʲSJtôŽOü9ÅÚK½5N1!Ý«ôÎZ²…ïk8¬îÌkd»Ãø;C¡vir‡*Ìœ›AAà–1’I¬>¨·ZŸF¿ÕO<Ç÷•BÃÒ€»ËÖZ3©cY&ò^ ñœÎw~7ÀÚ¢!ÛªRðƒ=¡fl+O¯n 9ì`mLbmN®ì-ô÷ ì«”î…Ê^ ¡aï°±wØÿÞqr{lªxݤäA˜xw‚ô iE61 NŸa0™ÄÜl*I¡ÅÚQ³í¤ì}&––——Ϩœ=ÉILÓ$Ù—ÄÞnãÞUÞí€ê¬‡¿ =ô=)< 6ÕÏV¶µ+3óåXwÐvËMCÊi&ÞÙ”½%mþX3i<–ÂêÒ€T×ÔNBW7쵑îá¹$Ý"bÿz…âëžbÝ Ñ"Mi‚%¦iRóz³ìø³ñ5Ykùi’;Ž÷8A#ßþ‹"%·Òjuæ,ŠuáCÚNáÎzŒË✩@'Àž¾°¿2 ”o¨¾u&ÁÙí<0ØÌ%ÖGÓ mR~ a’±0XTÊ~Þfàw(þ°ÈôÌ4Îî2Õkl³­vrrj»FÅõ1’Êãfì|Ué„%r“FДL_(vrÇ2È;ÏèëªêÒ‚ü“Ê­ææ4ɘ ú£ïÌà/†Ì\v)¾^dú£Ô*6aÆ2Éì² îF Ñ;Ãzu팸$³ÝÄÞ‘!ˆN¯9—‚$À‹AË".âÔÎNR¼âHÉiÀÙí5£gÏì>ÕèìmÚÿ¶ßõš)rГñ6¡£'€„`朚¹ønǶ0t]1§ÎVÈìÊ0çÍ-FLž¡•H1’˜}µFÐÕÜ[‚lC#iII´Ð t¡FöÅ-.HíÀûÉi*®Grƒ‰µ6eSùþ<È.T ÉiŸ·%~[±èJÏ[Ø–"­EÍNï4ql¥P½î1sušì¾ãogÈ).Nëž .{ˆË¶dàqÂ6$å?7ƒ±ìú(‰¬¯­ù½Ë¬ÍIì&SÔóïìUäR'Jí°ˆ?!%çÇÁßþèþèˆþ*Âÿ…ÏG?úOúþ&aöÖz¬ß¸Ë‡ÿúÚÿažýõ¦”Èß7¸öÙ¤ü»ÿ¶iƒFó¯‚¿Š¸öŸô@ÓKüƒ¶¤ðü[þXJܺÛCýúûu®þ›«¤_Hó{¹ßÃq®||…ŸûˆÚŸû¸±@ûWmnÿûÛ|ô¿~„ó,ôÿBÇ¿}gW?׿|r{lD»Á†¿ÿ›äåÑCS qÈù}¼ñóÎþýû1þŽÁ×w]×±þÔêólú»›øÙ™ŸußÓµ9Ÿ6m¼×àþd–Ìïdùí+×8%%‰Ã…oñ³_Ifÿñ×ù­ç €[·o1ðß~!ÍÕO®ö\‘(°©íÒÿWã´™¿5ñLÄ3ÿÚåŸßp™½5Ï¿úõ¯Ü^ ¹1Éwÿ¶Ïϯü>¿eß!XœãêŸ÷“úG.‹ÿï"Åwÿ:Æoýã¯#…ÎÂÿ÷ ò/ëìØò5Ì­ýÌÞšž¡\ûs®ýÅ5þùÐ,¿÷Ûü«3<—ÜÊ?ùþ 3çËüìç#ðk'ù­\¼ë׸½`üW¿É׿ñ{ìz~ü'Lã/Uye¤û{ýÖ?4™¾Rcƒ.xN‚¨Éì_,ð›ÿð7¹ûÿ,`lPŸÏíÿ»Á7‡þ§žë‘~1ÍÿžÛãðÌÕÿX¸Í³ÿÍ×Ù•ÞÅâ?Îðóóœj4ø_DŒù%þ/|ø5¸yã&­ö/ð1@ùâ7ym„«ÿæ*×þí5DBàþŸ.¿lÐþU þVŒùÿkòÿ^Dþõ"í_=GôþÙ?‹‘™œ¢úqâ;νÿØdá/ï"ý9æÿbñ·å]‚_Åyå¯^ãŸýFý¯% ¿[eWÑüëÍÿئöçó\¼’àÿdù¿È×g€M›þÞVæoº|í¿Ü@êk œßý}~~ùç=¯áþÅmÚü컳û²ÌßšT‚–¯UiÇ`ë¯ b¿j£ÿ†Ž‹Qû‡këVžý•äçÿvuçbSR§ë&ä_·iþÉoˆ(•ŠÈ¿nïýKfggùðÃøü®‡‰ÿáô˜±÷Ï]†þÅБ!œo8üÎ÷;˜ßì&uƒûl~wOŠ«õùž×°6'ÉíMѿѠ\U_ûOÙñ_ï`ÓßÝ„??‹l6ñn_HþQ±2¦üÁüÁÓÊæqñe†h£MÉ(0™Îÿ¶ÅØï‹ôÍ\q9m »l´ Ï4#÷¥Ñµ8g+Š®Û q¯»ŒÍ%T¯¶îÖñ|¥ÝuÃ[%Q¹æ!f=üFˆ®©ªÍÚ¢äîÇÏTºó™%JéäUÚJÑ4Mên½»ëPF±ŸÖÚ)_q)¼\Àßí0Y«2Ô–T…à"J›KÄ ³ÛÁ_ð™:7E~¯MýJ™+.B¼107ç %Å!†‚°-UûᆇÇc&ɽYŠW+È6 Ÿ(tÛ B #å3çž¡øF‘‹å*º®˜W+Ié&"Ç»åS÷x·âcÌЈBNk”ó>1¼j×AKh݃wI›-íz4¢9¿nù´~Ù"ÿ­<¹LÂ3J@Êï D‘ RОÁˆ”ˆ!måsSzw’Ö,\©•7ŠˆeÚ¥ù(ýÕQ²û²T®Í^ëàì,Ù}Y‚;•+œ9Ü·N!Dÿv@áP?…+Ø)âo™<’‡hÏ !6Šë“ÿÖ)Æ~œ%;©†îQÈðÑ,HIÅ ±m[µgýc'©\óдŽôÿ²=˜Ò{%†O Ó ý. 6h˜ u´•/(½1]Ó»Êîu·{8[ÛÕ{ 1¦iø·}’}I¤TÔgÙV‡v¥Ð´HE½Â="q‘êÍ,BHì-&´K ƒ”®IÛ†a ƒ÷f£;Tí× „æýšøwÔá8ÓÑE+v(\ªó~ŸFYJö/Óò*¾™¥øúÁlï†×•n<ÆÚ’¤|Õ¥üÉ coŽõšKòü‘®vÉZͲ-‘MµHjoïGÎ £Y—E|žLòñíg"§HAn_–d_’V«…¦9jhŸÈuZwBÔt>^ zÔÜóGóX–ÅÉ?|†“ÀÉ5ì*—+ÝytJ£Ãº»½š|°ôü¦_LC³AzW y/$TI(4óZIû¿ç“ÆÓ`óŸ§~¤P_Ô§b¼)Y~|û‹c?%X ©^­ ›’œðR±·ÇI]…ö´’Í÷}¤”*czÞ$ÿÍ,A(9ù£Õv KsµìÜ›>o³?™øÓˆ„Pl¯«•­/†T®V:l½ +Á^»îÓo;˜–IõZ•Üæf“Ñ÷&”ÑXRŽ"å(¹ƒ9RvÿŽÏø{%F^±ÉîÍrñç©l³p®»ŒÇZdÎßïÍ~c0šÐУˆ–¦¿T&ýBˆ”vd½SQ¯ënþj)ÔyÞÂÙUBëÓqTB&4Dçõµ÷&8.sm0òˆ„ {`ŒÿŸ½÷mó¾ó<_)˜âË;f÷áBøàä]?…=ð£±gMž=0‰øâ@s0 wÎÔ¹]Kã\&R9ƒM©×H fS*™K¤äš˜L6Ø”15DckˆÆ®®ôbí#ƒ•ÁÇ;òéñ>¾±nbÍ›çB”ßI9›ûãKR’%'éì 2mç‰zH>Ï÷óëý£Ñ€òR™¨¡a0©Þ…ѯ$B(y|!‰í3ñüµe[t²zI;±Ï†QDË%iýzKJj?·!&N(ë·é+±P Ôôa©‚!ÚHYÃÜ%O«'%3Ž”P¸´ˆ”G™:Bù ú´;à¬5ðB‚p·37vèÈ–/ÛdO%1wD´p)[»#àaH·á!:’Ñ‘æ.“)ÔîB\§º\Eø˜»"äžN÷w ×ÇðÑ×0÷˜xžÇ{ï¼Gy©Œ> +`ü¦ÏâÒYèÍßÂu]ÌÇ~¥ö yû‘®ÁƮ♠eh÷â4™ÓŠ]·êØ·l‹—f‘f;k4(î2a›ŽÞéHhº$‚‰§3äßÎ3ñŒâ$Ùö§k¹E#iÊT‘Ï6a‘R"ý6µZ R8_!yÀ$q$²ÍtøÓS°~Øžêo+þ!Ù|N1óȨ̂z]|ÖÈŸßhEÝ5™ Œ·òØ@rxcÐÀØ¡Æ]õeLi}^B|¯Ñ÷‚™xfç®CùR™5 .,ð`*zO4!z ’Û(¿3vrŒ¡ÝC˜¦Iy©Ü/L<­^ßuÖÇ- ª~}PçÌ7Ï(­2Ë"1Â;chš‚jvÑeÉa%M2vjŒ!sˆH$Bþí¼ê¾Å·j´?l#?A„È–ËBâp‚öÕ*Aß'5¡t§RÇRÊnàöªb}¯¹Œ40Mƒ£ß˜F„\RÃYÄ£àì7ño9Ô›.Õœ iDvDZ’Ì>›ú½ `_³*'TY¶IíŒn;vuî®J{¡‰ ›¿'•LÌ:“o)¹žì³YhÚÄLïCÉô cöõ)¤œ€…Ûˆ€OæR•ÜS˜—Ë$w9h! !%´|ÏCvG9ÉEr5v¬®²Ïªn. ÒþY›Â)tßɖ¤ðG³ØwU‡äûŠóÔ‹ø‘4áÇÂÌXÆüe<`ë sïCÙéZ1 IDATWgU°ÃP0푾rBáýÖ zÐðýG(‡ª”¦¿fàÞs·í&úIVBï;Jk£´ÎY!8óÀ¨ÍÜQ*?gX×-̽æ¦Ääµ<ª×W7ü†ah·‰{ïïVùù’ÍçÆ®ÏnW;q"‰'ÛE!=¸ìjIR‰~:ƒ©iøMŸÊ• Þ‡^¾_¾b!P_/ÑDDÿÊ8ÕZ•• m)¯ø#»ð~ŒðT†úÛùþ(lêtŠÑãi¡ ù æÏÏ£Gtªµ*@ß&9ÿvžÌñ$•»g8ûm‡3¯(Ž„ìH¤”ýù|ùrs—šU;wœîáásôÝ9ŸËRøA¡ŸêV)e_Ó+OPû usVYI¹‰aÕUµ‰2ÓwDF ‚̾>«v^ßž¢t±DøXû®ÃÂëY2/Eðš>úã:‘Ç5ÎŽdñ[>v­Âè-‡È]‡FK’k¸ŒÇUâp8LtªÊ·nZX+mÙf4=J$¢l’{"¦SßžbÈB×õ-2FÖ-‡ÑG·nâû ̽&£'F©\©Px·@þB…±‘¨‚so üp=!€rÒ w”‰\[ÂL¢œ9¶H[Jæ»*Ð5Ì»y¬xc‡±Ë`ñò"GGŽ2ûòÆc@ÝgíÛ´Ûmœ®—NùòYܦ¥¬¨»‘9!öÍ3D… Ñ‘ÈÓJ,²rÕ¢²l㬩{/9’ì‹«Ž£t1Ãb`šàcAVW~ ¬o•+dk†·$) ]Cж‚Vßï •v9A•H4е(Öò"æð(Ðë~žDò$©C&ænµÛ,Λd¾–ùLB—ù·óÊ®¢g…`bP'Óôv‹¸±#qb»T‘4ùÖÏ{P5¾·{Ûµõ3Ÿfðø_ÿl>Çns`<Õàìá(éSiü†OÃõ?Ñ=¯—"ƒJò^ÐÈ¿§p¹Ìì3YJ ›Ôž¬Ž­ë ¥ܦKVÓàØ(Óç‹´»Bˆ½–ßéHŒw 8¥)Öó~·ïØÝÃ]ÅÜsLNQ~{š³ï û÷ŠK³a0ù†:H“‡“ŒS¾\¦º\¥|©Œ6°€u3<ÙS)ä]‹Ì·r”uÇ^eh÷‹åEå¼ÙM2¹—rˆèûµHYG„jÈVB©@¿1Çhú,B§4&À ¨îʺa¡isôË5Í…w ¤ž0±o;HY iy¡AæÈ8¥K%¤$XØgP9_¡ ÇRÜÞ‡~Óïïgò”'ü¸:ˆÃ!ÕQ…ºrú7í¾ði»£é‡Ù<ôœA«ËUŒAU¸ô åÚö=óÛÕY·ü–ŽçoPOv¬5ÓÐ7y=8²)†TW«„J$?S‰„ÔWꤎgwkÄ¢&SBinõ¤hÊ—&ÂAÓ¢È@)§1‹¸ç š¡0‘Ž’Í ZXÃÙ0îª,UÔ®©#»û¨yt=Myi’Ï÷Úµ"ÔF,|]$s< 6‘ýJäÓYSžF‰½&1)©Þ°Ð4ʗˤž0 kšò“AêËuX˜/ö_Ï4 LC'÷Lšé·J}Ÿ¥Ï•«ë#h7Nss*; ãûëßǪ¦aL<ø ðîíÌ· gÍÇYû»WÊþ‡dó9Æô‹j÷°·@UâÇÓDk5r—Êø-¹­I/²ÏfA<§ÒÝÝ€:D2GRˆ»Né³é÷º"Œ… ‹XwýöRôsªp.–ðš^?Ù|©Û9Éý&•n¢)]­ã4›eör™É‘$ÖR…¹wód„À¼'ù­ŽMµ6‹“˜{Þ¢Z«öÚò5šÅˆ¿(Ƚ4Nt”Ò……î~bâDœDÔ¤î‰M„Ø jæ/;’È@„êÒ"†ƒ€úŽz¦c•« àÑhà67È2hÚ{€„À"$0vض½id?ÿTAXµ¯Ø\´Ô®Õ>“bòxKbàS—’Ä U ˆ€@ß¡D:«W«»âœŸï+AÇÅ(_#å<²#­I¥0Ämú8ç+·#qî6²>fö¹1¼¦ßßÿ4¾ÌRöÙ¬BèÎQ^Úz­"àB ÎØ±¸BhÀÔÐBÕëeÇ2œéȽQ²±Ë Õåðô$ŒzÞ>ah ÒÇÓýƒÜoz8ÔÒõ]¦F>Y§¬÷¶3-É´&øÒ†RZ²ð=¥²Ð+BÜ÷ ˜!ý)dÔàc?ŸmûßuüR'›‰® qõJe‹6Ñ߇˜úö”šgêÛ>à OOPð}rMëý2¹†Óòê ã6]†v‹Æ¨-×p.a-L"ž q0a›FM½!±ÛÀ0ô¾Á@lÃÍœíÊŒ„Åú¿•;Àu›±‘(a-LþBeÛdÚm z;%ÙqÈ¿mjdݰM+(éÄSÄÔ™{«€Ûðq|ªËê÷œ{.¥%õYõâ²F„Vƒú•úž½ºRv,ÂZñ“-”eòÝ0†uão¦ ÝýD}­ÑßAt“ÜFr1×Mgˆ\ž|!lILÓ$ûì²%•môRwŒP ¡àÐÞ‘±hL9†v\D ˆ/Õ}µ±8‹R>C©#),Ë"=\ÇìêöåW$ÉhŒ¡AƒÈ@˜ÊõU4!Ò#(“Ï'É>—E¶dß“>¨ÌîfŸI3ùV‰Ò’EòÉØ—cHO9­öLù`kç—ùZ×ýìn´=4]vèF*וy\r8É웳D”uÎ>7ßÝ ìµu"“óyÅ/u²A¶¡³ÕÈ2º+Bæk£T—ëÝü¼±”;ô¹Ÿéò¤T¾Ý}ÏúYv$~Ógô+£8·Òö*“7-¢'ÇY¸P$¸AÍv£íòü¹yÆNŽáÜspî8hxäÏ«CZûŽÆª½ºÉŠ·sç ÔîD¨Ö `|ÓË>—Å]s±®”IIG .l¿;ur/N#;Ùíåvzc!úR²õ%¤Ì@§€µÉœžÄûУð~¯¥ÆN²¥ºÊu::ìíƒDÀ$9¢ÌíXN1ýü ¹èQ” y8IîåzK®Õ¡0‰(T— òM—j#‹¹7Ö­š7[;ÏŸ›'~(ÎÙ7 d§È™ož¡rEÁ§µ M—`¶*7Ô˜ç¤îK ¾‡'™od0v”/• Gù·òD÷GÉ|=ƒµ¢€‘íÁ6Á@h4JxÀ&ÿVÊbî2ñV*›Æ5'’¸¾9¨#¥Râþ¬EVæ)ÁÝÈÏØ.\M#Ò‘Ì£:œä“Êu»Öª/×IÄX×-’¦Nµ B,~ÜV;”Ž$y8IX #„ÀºZÆiæ/[ÌÑU.–cÐP MÙi#‚‰§'úâšS§SøRR·ê„µ0…÷;Þ0 üû=ª"²ã#ÛP¼(Ûi(—O`ájMäßÇÜ›Q…KGB@à‡Ã¸+ëŸ]åe^PºX#O BÞ&{€^lWÐ}R8÷œ¾²ùv'rúx}PKÇ¿2Îä­*HëÖö:É•˜¶³)ø<ã—:Ùä/Öpîûx(ê&LjH|&Èág WÓˆ|kãÍÙŸ+Ù€âù"®ën뚌àû>~Ëg´%qÏY•’4iúLœL’>žÂZ®3ùÚ<ñýãG† (u@Ó¢ýÉÌwgÈOR¾´õðð<  !B.t&˜~!ÆêíUF¿<Êì›j‰)}wm«Oºß’L¾Ãó·ïù‹5dGAf7jJõld+ˆ}Su¡Jôæ.( •òå2š¶JxÀÄó%~sóh 7.’•% Ù:º ºš{9‡ëºÊ©ô¶½‰ EÌ=ÉaÛÍÀû6ápxÛ¤÷·†Ì!Ú²Mê “ò5[NÍÖÜæ^s[Yù˜”,ø>úÁØún¥Ó¦~µÞ}k©ˆ‹:ˆ{£¢!s}Pïó²Ü5—…9b;"ø¾‡A —"L‡˜iâI‰üÙ'ß‹ÉC&ɨ©`ÜkŸø£€ÚÕDÀ.“ø-›Ìñ8æN]-Ö×̽_ û\–D<ìHæÞ-9A„Òh¡<åËy’#U 9ú¹àÇ®ë’<œdÕ^ÅYsðGù ¹í¾jt[¶Ñ#ADÐX7“­vÚŸ9'²w•™WÆ)_”k9ÀÄ^³ ã iR‘n…ÇøWÆ)þ°ˆ±ÃP~I€«™Àúó²±Ê½”…Žê|…ÃØe!‚Äá"$º*ÍŸ~¾$‡“D÷Eñ[>õZ%*’Ø“#yÐT÷ÖŽퟵÕ=sß%szRÙ{Dä^:Êô‹Ó}Ulû–­xaW+ÐQz‹^ûç¿Ôɶ÷ôž{¿ŒßôX½·uäó°˜:"¨iÔoØ[–ê®”D^ŸÅ–’jHl€9>Šþ¸Ž»æ¢Gtu0Ý £iЖ D)KˆPcp gMuI³$)·$½ xŸLÚQJÕ³¯Îbß´?œfll´;2«Ô¤Ž¥(|¿@ꈋEzc#Q´Ž -ñ¯¥1wÔX¼X%vסp:CN×iØþDÍÊSt)©¯Ô‰],)60Ô£:ænƒÆ}èH†3ß:ƒiš¬Þ^Åó<܆«F-¯fIì‰á¬9¸ —úí¹ßCˆ~ ê¶­|g.Ù“É-&eýè¨BC¶< ï—HI‘Nv÷(•ë›ïõª”Ä‚ð-›ЖÝ. %:íxç®:ì ï ¡x!H,Ëbâi—ðã ªµ*ÆNcÛ.ª§7>6Žßò Gýó9„‚ùóó$C‚ÑÔŸ'º×Àºé(5êg&@ÚD÷ø-›Ìé ‘H„¹7|Äд²¥“91Š ÂÜùF)_žÁºn©n˲!ñ‰.¶Rž@M¿¥î'¡)“;×uûPëOЉ“J-¢|¹LX «½ÝÍQ„ˆ£=&Ð4¥÷ qìäFC%õžuÈ÷\íƒÇãÄ»ãȾÇÓç_ø\ÿúç…Kµ-~ñÕ,z%õÄVoû $GŽn iŒIÉ#¾ÏB@Ͳ{˜Û…­*'ÌŽ‹s·ŒÕÕòò3Æ#¾OöT’ѯ“<’¤¼TŲ×ÿsç*ä/Öpï»» ´Hô@O‚³²º ê tçÕ_Ú”h@y•ë¡ýQÂ!Aô ‚-ë{U÷ñHkMûZüÌ×þiaÛ6ÕZ•…-à8å¥2©‘"ö­²UAÊ'’ŒŸív¬]&zDgq¿bDG^Í‘x;Oî¥æõ]öÆm®ïSøA·éQ±½¾J¶}Ë&qtä(c§Æ¶½¾¡£G’¸ž¤Z³ð[mž”’ Êú7~ Ž±Û }<½é÷¢{Œ¾Ðjt_”ô±4t êÊ×Dcôä÷Õ!3ýÂ4MÃ’ÄÎ aéP¾œãì;SdNO’üò8Öšê*“M,ÛVDÌ‹*–MÅv™]v˜]ª+®Ô6Q¹nS^¶)_U™)•îÒ²ƒ‡ „7ÝËùœÙ«3q8ÊX@¾±ŠìX”—‹T>¨3½ Üyþü¼²É¸Zíw¿Û…×Q`§á}î‰~:›ìsYR#)J—Jý‡ {*‰ßjoi-ÇQÿ6WeÙfuí,Öí‡i3ÝŽ¦nÕyï÷°,kSu$Dc§Ir ïÛ$Gp]ùËa¢{"[ðx8‘Äk­ûÏØŽËŠø¾²1Øx#M}{Š£_>Êâ÷sXËàhŠÛ C .•qî+±Ìé «öêá‘X7W±o9¬ÞnÔƒä^ÎÑþ°Íøsä…Ãè X¸ØÂcø¤(Îñ|ü›ùþŽÊ¾¥*Ðô‰õåoo<–I1:œF …q›.ó—Ámz˜;u’f¬ëuš55«Ï„40‡H”սˠt±´…$Ù{?å¥" ¾š¦ˆ–ÛEeÙÂiº”¯Y}¨7ÀdK2áû} >¨cîY׆K#øhêr•F£¡*ØÛ6) ,W©wÀYóº{¼6f4N­V¤xE’j%hxj©Pxšôñ,ñ'â4Öè»{]‚‹¹Ç%v8‰x· vÙòà!Ù‹~âe½‹Æ?Ʋ*ÄŒáû~ߦaúÅi27xDÊþ¸2s:ƒ6 aÝRŸIö¹,…w§ñ[³H‘À¾£ÑQæ^›#þDœ©Ó)¥2¾\'ûœ‚p{÷½¾}rÏüÌ@îÅ®…·óB¯ZÓcÕaõÈÑö-yÏÆoEð|‰¾'̪½Jæ4ÞÏ#D‚äÞiœ{ê3«ßn …‚ø"¨ ä;ô¾âDj8Jb¡¸èZWT–*ŒY€ÎÂC;öÂûu??D±|(š¤|µŠö˜Æüåy&žžèëηÔx®teûï #}"Mòj•‡qþÿ¶öÑ[ñK™lz~ ¥+ ?ßh6ú $sžV>óÅ£ðoÕ $Ð ?R²AöM›3@¦K<Óôárì³YŒÝa<ÏÃkZHYß`±=„»¶@ætχ`PqWŒAƒv§Mñ‡EƇMÐu¼ V/Vi¯9øŸóáÜu0w™8w<Ï£py‰9ü¦böÓQLöDÃ'²ÇÄ»c~qZYŠï60v¬ s×!!|F‡GIÆ£Œ¿0ÁÔ·MŒO~£Û-¬Y‰â8…K5r"¥dæ•Å–G rÖ×\ìŽdöý–”ÄZ’têA¡åcÁLK’{9Gæ¶C»±ÊÐNA{À¤vW¢iŠP¼qT-[sÔï~ŒÓÔûÓë–£Ð^#J>H\W’ïP]±1 Çw­°ò9`Ýet÷d?ÐKJÄÅ9š:ŠgW”„ŽPJퟵ‰œèÏÕ­:²#·ÈB}R”.”ÐÐÖÔ(ö‘O±Tø¼ã—.ÙL=•búõÓßP¨ªü[yêV}ý~±†Ì!e›ÌïOa-¯ßˆ_K¡šˆwò[v=šö¤´‘r³Xãv1÷Úœ²¨mzäžÏ0÷jN¡Ì‚AŠÄí.Ò¥T³ØüuÝC¦É¥ʦ9¹sÏ¥ðf_ÊþÑ{9÷PµÖü[yR‡LroÉ|-Ó×öbÀdâëÊi±¸Tľ$ÿòÙþ¢[]Dv~kókOœLöÇPRJ„t˜y¥D:1N°Œ#º-ý¬¤„ ?cú…,š˜cî|…äH’ÒÅуQ¢†Frÿá°Fá‡eÎ|9Iæ¥ Ñö-õùèZçx-‰}³ŽÛl`îŒÐhz~PìóŒ /«¸ ‰ãœé«C)W)]ª!å"Ñ‹ùóë5bo¬âj^G2ôöpc'Çp‡Ú55ÆìuÒÛ :¦žJ1´Û`Nê¸÷]èþìÜsD÷÷4ÚÖG9"´¤‘­G(œk“:2®œ4;Rñrv$â ¢Q«‰‹U¦wê=Åõý>¹T£hÔo9”®XL}g 놅}ÇÆó<ñP`îµ9ÒÇÓ˜ÂDÓ4rßÇ}1¸c÷ß“”ÏóAc­Áü¹yüC&ZXcñj:5èLÁ·Îà…ZH£v¾BnôˆNæ© Ó/Ncî515ÆG]ˆré%‹Éˆ &ïu” ÀouX×Yë@üpœÊ…UVo9ƒº2o»m‘Šš¤ê›”‘ÇOM2÷Úæâ.þDœºUGèªk8–¦²\!ÂÔŽ\× Œ:t>Ý-øXÊŠŒ¥“ø®ËÜ[*™$‡“œnU'æ›g~®d 2$”LÐßóø¥K6å«uä738,ak×jJ5.ð|ù ó¬zÜÆÜÁiT˜|U0zx|K¢b‚ñSÕ«:ö­‰M‰ÛEö¹læÞk0Þò·êŒ>ìÐꀅ7±ïÊØ”@ìL¿0½ÉA3û\ß÷û7jù›dPg¡¤ªèÌ72XË“/R¢¤OÀÄ GIF×Bwm:›çÕ©á$¦éb»P]ZìKã”:PjIΆÉK%Ü€`V&„@|k’‰×g9ÊãvÙìñAAxG†ñšj‰íI‰èÑ ²‹L2qÖQ¼²²T!z JåjÿÃõÏ®r¥Br8¹ég{û຦ûŒ]Ê´”x¾ÏÜg(†>ïø¥3Ok4[Ôþô6öOÖ+—©ïL©nã/}þøÿ˜•?U¦BÿëïýOüÚ¯ÿÎÿ}¾ø|õd˜ÂƒÎG?ØôšÀŸ`¯þ†Ó·bþ¤Ðÿ;{U%ëÏÖØ±Ëä¯vÿÖŸÙÜþ/ÛÿÎÕ·iy.¥¿ò©¯ï…Gÿ5ÐÍ>›eüwÇy,ôò§’ßûÚï?ç±ÐcX7-øÜsîqoí+ÿi…+U )¿ÊÊŸþ5RVø7Í¿ Ìw:˜Fþtkç¤üo ¾÷Ö÷hú›qäc§Æøí—gYþïcü‹…(4?ê^þ\‘’yÝfåÏ®ö×þ4[rïÿúØÑ¡óWâü¹Kà V~rñÅwX¹ó›td™ôH“ïýáð£{•à ðoj¬ÜYcÇ?ݵlaì6XþÛØ ±ÊÀÀYZr™äÿ¸ƒ„ùÇ´>šçÑÖmnÿ¿>µª_°pþ\B§È—´e´¤õÓ~̦³¼ê ¿ñS‰³¶Æ¿x ÑLœHø"¬5Ô¡pûÎmò«6ÿú :·âÂÙ:výønb¿>„rey…¡¦sÿ#¡D*w›’çW¿òU:uøÁ¿þRþ+:åiþå2¹§Ë·Öxì=†lKîÿ÷yô "ÛçÿqhµZüàO~Äè¼jí¿}”VËçî_ÜÇý© øÈ_s¿ÙľëòOC’QƒJý6ᬙwþìÖ ‹…‹;øÞ›¹?hð»¿{…«7noyOæ^Ó4)-¬ï&¦ð;Úò8G?êàüÏ¿ÃÊ¿ýw„?’<";[>+ºNà‹šÙ¤õÓüõ#È`ù?­pµnSþÏ’?ÞfåŸï懫w˜”~ôQÙépoögßÞ}„ÿQÙ‘4 †~}ˆï½±›ðcZþ}¾÷'W‡/X[kòè!¶{V÷^üêÿòÕ~rì!+?® ðÔ$5hý©ÃüO?¤Ñl²òŸ;ÐÆ_4úßÓoǃ}ænöí||ÛϦ¿h°rgÛþ€²Æ]màcäOÿ¿ÿMþðÿüDÿÉãüKàûŒÝJí£O!G}ñ+kžæû>gß<‹×Ú‘&¡Cõ¾Õ„=`rô ‰¦…±CAè·«û£È ·áª®êÁ®Oe¥ÒÝφ‰î304ªM‡¡:‘®º±daß¶™}}Ïóû6'’ä/T0"aLÓD¶=ž”0vÄ÷Ä·ìðlÇ…N›ü6eE¡ºÇ‡Úİþ»²%)w@ó½M;È_–ø•H6ÓzÒ5%ö [C}TUêXªÏ†î¡£dKyˬިo÷r íV2÷Îg‹Úªß÷» ³³®K0f@íQÇeôXcOŒü[³Tï8H!È ø~cP#=œ öD‚…sÅ-ºW²£a_.ãt £úZšö1Éa(/E­ßÚr l|_‹?ZüT-.P£ƒPcæx>‹x§@ª«v,¥¤r¥B;d0t0ˆ×r)]Z¤xeH¢i¿52·ñSã8w¥v­<‚ªË‹È+󌉳x©¬ý—JÈ–Z¤ë+Ÿùè‘ ÑØWçÉ¿_À½/)| û{õvƒØ>µ ‡5@; À÷}ôŽÀ¾õÞ¦N¸vÃÙ€Tˆçy,–ñ›>Sßž‚À:gBˆ*4dkMû˜êMI»5„u÷njӎDtÚH©^ìÔzDgî ‡øöAûgm‚™~èøÍuB®”²ÿ?ŠüJ…=&)Mëÿ4ÂèýßiÓp]ÚÝQ]êp c@ÃmlÙV®ÛT®oô3ÚÛ(vl )5´1w%h·Û„_Ê1ç8ë6¿Dñ+‘lz‘9Ù¤#•Nbìm‘î÷î{J 7À&^Möd×o3ÿÃò¶è´êrU!noß¡ŒÃo*Ó°»ŸOޤp×!”¥Ùf<¢nYØ+6^K‚9í6…›]8pW–½ðvAñJV ɦõù.äõÇGRXóxR2ó®:œËKE²Ï8»ß£vuûdr4utÛ*|»0v}`CöT p)|¿€Ûp±V,ÒÇÓŠ}«Š1 •‡pHb$ ªW§ñýr_îÅó½-É®çº9¹¦dL4œ†ÏÙ«6b¯É#—ËLÄŸˆÓh48{i‘¹Ð"tªˆPc'8wÚ}×ÌÚMÐÂh!0v›ˆ,\©‹Æ¿@ñ©Œ2©ó½>Ò ”V–¢ÿ èf”£ÇG9ûæYLÓÄÜcRºTÂØ¤R.2R½¥œVý–‚úŠƒç·iÜ÷I4‰î3)_© íêvz! m Œô=êï–È=“Åm¸¤…ÏiR¼b3÷ü4ãWÇ)^É#BjGWºbuí¦ÁëVô•l´Ç»þRt†.–È­³¹WóÈ–³M˾ÿR•¥íŒ³pi_¶ eP¸Xcâé Eè¢5\ÜØd`ˆªU]ß“v  †ïq6$Ƞ΄GšŸÜy”¯Y¸¾ßïÔÆÎq@~<Œ”Rí¶~ ãW*ÙD7³Ã«WkÔ—k4P¨}P#øXö‡íþèiâd’‰r”æ /n%2n€ªÂJŠiŒZJ)ûöÅ?oÈ€ Ó‘{cª‹5ܖĽïDÁrkBÐÀ™ ˹sJ&Ý<˜¢þŽÃPt‘ì³U‚*ãª`0ˆ{Ï¥ðÚ4G$0‚ä!‡ê9 Jð±±h ˲úÆh™cqq¥øÌ‰”)Uîé4ËÆ4 bû£Ì¾Uèó‡fnÎ{9‡gW=–Æó}\‘ð` nxT®Fˆ@:xšFñíü£©íB‚äH’…Ke|@»i“ÙR‹êòù<©&ÕZÙ’D(çÊä»"BÀp’èR™öýÁ J3Î\_ö”ê¡8ù›DÀÇoM‰œeôÔ¶UADˆîÂq]¢ÃŠÐÙn·•ƒé• 3¯ÌP¹RQ]E£Eˆ)¤ôñ}MY`wcöÕY¦_¬"%¬vå–ìÛ R{5*/N#o;¸kî& ¼øq CyÝÏûnžÅóEü–ëºÊÅõŽƒðh·”™.|œ5‡Ø¾î}—ÚMG©"jx-ƒªeÁ€©¸8§S¸*hMKJÄH¼ß)gŸËB$…v “ÃofèaõT—°¹H+uaí³ÈD°[>‘ˆŽÓ’;¥F4z×uû#®I)i‡"¤1 ïÓ”í^K‚êÕ*±A$`\ª’R2vjŒx<Îü!Æ!0AñŠF0ΚOUÄ þö(ÈãÓ dŸ­2Þ'}<ÍÂHšaˆDùx@ãKZX}o»ÌmÕ êBÕ4lßgèÐh¿"üØfÍ«w.ãA¹‰ªå ÿÑ,nÓßÂÂߎ“¡üGæ‰ ~LXëÆ4‰ÃÙ°H'·ŒÙ>-rÝjlc{­ïI0ñ\Z±£ß/0 [Hd"´ŠxÜÄo=ÉPÔFH‘+…ß: ²²¦Ýgbu$Õ«^«MåJ1ñt‘êU×uÕÈj$e;D÷$Ž¥|Íù¹:´ÊÅyF‡£d¿>NùJ{ÅÆ~À²yú…i²§R¬®XÈnUÙ÷±- [Ž˜D;–¢²f÷µß>)¾Gñ| ¿ÕF÷}eõÛQ­ìH/¡ˆŒµjŸd]·ÐC‚†”D–ÊØR²ðò*‡ÓÏdÚ7„sÏÁoú˜ûLÌ]&±ƒ“ÞÏbî9«$[ÎEI¸Èð•Ûm©ñþÈqìÔå¥r<™{:–}Ô””3ˆÐn# õgžÊô;Ãüˆ0I §ÿzR‘ ;ûŽú·áª=a—Óãº.žç1n¾ßé1z@Cø6õ5¥ÅVé 7º¶F#}YèùÁ@½±ƒŠÀZYªP<™Ä?WÁd Ì쫳8÷œ¾ÅsùR)%ÆÎ!ÆGVY¨é;+XŒ¢’‡Lâû šÆäkó8BàHI á’T1—'”èfËïkÆÅ÷`ä„ w±Ú§;ŒÃ0 E<]¶0Â` FÐÂA, q¡‚¹Ç¤Ñh`¯Ø; *W¦ÑÆ-F·SZ €h¸È¿k惑:–Âqá:}<ÍÜks¤žˆ¢êÈ–ÓGÅù¾O"ž@жHÒ¸0¥ÄVØõ5ý]ǯT²qï»›Xä©'Ì.ƒwëˆHˆ,R®w*Ö-g“ˆdúxšØAEÜôïl?bš8g¡†Ó è¸*“ßÌ’{qú¡–¿ÛEætôa— xÖ‡Ú553ïzul¡Tác„Ž¢‡4è˜ûÀu%ö­4²UFÓ4¥ë8TWÚÈŽªðô"s¯Í1q"‰cUˆšÕš…}·ÓÑ1¤öswhµ›ÆÅïØÎЫUËÆo© ;y †æ/×”Zr-AƒÔ1ûM–jýÃq»xP)¢nÕÚ=¤þ¨-×clù¹é–¤-FKò¤”¬¾æ3ý\–ÊR…F³ÁÑß>J$¡rµ‚}ÇîÊÎWpî&)Õ8ÒØe …4 ç ýqßvfhÞ}ôy6²5ަy¤Ž¹[åOj×m‡S8÷4M£tQé›;Ôß›{mNÙï3¨Ý°pï»Ì¾>‹k•Áõž‹„ñ}IéBy è« lL6= •äp’v»}ËÆkyضC¥ûs™ˆŽMÓÐ4ôŽ®ˆ“‡“h®A.ÙX×­-÷¬çK¤·á“Ž’¿b‘ïnT³Ïe‘o+míZm“Rƒ±#‚±Ó@gFT‘’:’ê[4 ¥Ðð¡¯Fc®Äk©Ó0 Ê—Ë̽1חБ- )¿Ô¿®3±…¸üóFü‰8Éá$bDpæ÷×Gåk–²w]²!å…”>‘¦¾\ß´OÈ…~‚­_ Á/T²ùx@ƒ]&¥›ÖÃù*Ÿ£_eÕ^%9¬Ð?™¯e@(ñ¼Å5·“â߯.ƒ±c¾_`ü›Üææ.ûŽÛ-c§Žy¿%­3[qò¯çHì7HSð‰x‚ÅË‹Û>ý¿eTÿ]‘Ä>½‹š¡™ f¿¿HðÑ ‘Hc—Aq¾Hü‰8CCuÅaú%·&ˆÆˆ÷ *WlDÀG¶žD„Î|Ô§t¡„ÛpÉ|#£¸"óEÂÃa̽&ù 2ÇãX+©‘c#ëÖÆŸÅúT—ˆ'p硤µ±‘(ÉC1Mé·KÔn:LœHR½^'q ÆüåñCÂ…É_†,‚!ÓÄmz;œOL6#ºÇ v­Fòp’êr•èÞ(™a“Ì×3H¹UÂh#·fHJøî ñCq„DÕá^ ãÜQ”³/K¬u0DL͆båèáºnõ”z"J"j …g^™§bÙhAAéŠÅÄÓŒ¦Õ½“˜fLyÉoØ7~¬iœ95®ØûƒJŽGÓ4ôÇuÊKe*K•>yS†êäZ§áu ÊíM øžÒÂÆˆ †vÀê¶ÒÙç²T—ÊÊàmÍEÃÃØ¡!nf™~1Ìô ӤޥÐ#º’ YsѺm" $¡4mŒÌéUŠ?,nzíØîÆ z/þ†‘Uü‰8RJ¦ŸŸgúEõoæ>sSBt›.A¡”)€õλ»í=g²£®CÛaR»R‚†Ù]•¸kn×?F™åõ\_{öSß™"c¯Ø›½„6DOÌôÌk[ŸkÙEèm÷ü”®X¼÷ý÷˜¾íÀ+3¸÷ܾ¾ßƘþàÕ<¿PÉFJ‰?Õsc»˜úöÅù"RJ¢І£T¯–ssu DÌé(…s¹‡ÊÍ;wf^¡Ýj3÷b–Ø.‰Ï2ýü“Jg* ¨ßª’9^¦j9X·Ö+쉓I¼s´H׬j£¼¦‰'°®Vˆµ$©#)ªµ*ÑÝcßœ r©DÒq™y¿Lê¶Ëô×Ç)]\ xQB`’é烸+²/NQx}Žv«M¹fã…L|¿‹¼ë}ž­3ý‡vâ™ ÂZ˜` ˆ±ÃXÿ¼CU L=•"cÝ\eîµ9œãζžšæá·Æ#ûì"¾ï“<œdáþ¶Ÿer8IXƒpX#}ÇÄ^¢+w%ø8kéãi|ßeárÙY÷P_‚THà´$_Ú²|,Nt¯$ÉŸ/`ßmÝeõ®Ëì›ùÏ$Þ{&×ôqÖ\¥ëfÛ8w»ãÄ€’­‘­u?“èþ(u«NýŽÃ´”d„ TnØ8q]7HD)-YdO%™z*…}§Júø,î}5¾\µWI~˜ìH“ÃI&D‘Mµä¶oÙ´;m¬ëV¿Sm€ˆ® @$à¬kžL¢G"TolåΟŸßÔe˜»"øR²x¥ŠìÀÙçÆp>…Ë ¸kŽ~e\i:ub{ 4-L»S%÷R M›¢z|ÿ²Ïeq‡Äa¥øìÞw1M“£Çž¤|¹Nâ`MÓºÊ`])ðq>Ú®=xp0¤²TéÿÜDrK4RG2ºd‘< q}ä‘QRmÙ_ô—.”HS’KCæÑhTmåSc~wŸdì4Ôx³{:Æ÷ûâEP©qtP{·‡(˜;#Jšæ! Áº®ìÖE=7ÇüùyŒAƒ‰§'HIm²ŽNIõßÿϳ/ýû¿PÉ&Ø’kUÒB¡B ŸqN™}.Ûß©dO%ɽ³Àô7Gn,¨²p)Šx[D&Ï Á)ÑôþlêtŠèáÓÏ?‰sÏÅŒvG4áM(½èIòO}'Já\Ò…ÏLP<7 0„?ö>LP»VC;§ðæ¾/‰¤‰+°ÁÜ;ª7Ç»Ò7%ÜûèÑ$GOž!y8ÉÜës} Û=7]Ó[yè€×òдþxÍkF)/å(× 4š…þÜó IIâÜv˜|cžì©$ù‹’Ì©EŠ,d+ÆÌ+= >äHr]úCT®T0Ng¨Ô,¼–Gò I"jP®­öÿ^æ© æ>“ÉoM2ûæ,s¯mMt¦°/†áº´×D@ô‘I™§2ßAƒC¦¡cßm`-•ÐvG ‡~/™»"Øw¤‡£h!D˜{c¾ûNQ¾TV†U‡“$â‰Mþô1CA†¤¤¾æ*Ñ#)’—ËL¯5°ï8”–,2Ç㑱ƒ ‚WÊ”.•¨/×br·½b+ƒ=©ö2ù·Â胳´å86åVk‹è»c¸U¸m‚Ø‹X×2< ¡ëaÂw·VÖu«ÎÔw¦pî8è40wH Õõˆ àCG _¦Z)4Më«,Ëî!,„‡E*48Öu‹Ú5F¿2Š”s‰Ût‰ÇãD"j$W”a`¯SèRÇÔhؽï’8˜ r¥BüpgÍÁ¬UUw ‚]­?#š`ì`ß÷qo Þ‚£B“v*Õ…ÕÛ«jÏÓQE#ú¡T³…(R8çYDhéÚŒ«n^ìˆR­UÕ(4À€^Øw›äq¶‹Þçñ`$G’Äű¯•AëZS_.3ûL{ÍÅiI4MSG¿`ñ •lÆ¥2ªÊ<•w šéû[ÚÙÙ×g•¸]KnB‰Í« ;£xþ'éÓX{dË¿~pr'¤m:0¥” P0É Néb‰÷ÞyOÁx]·ïÑÑ‹ÜS)Ú@ùÂ|¤ªÎÑ=†aàµÊoúªs½\Æf³×’¸MŸêr§á!"áÇà ¢è4 Úíö†û®ŒÛ˜ tiÙZ?´ÒÃQü}»ÑcãüÿÔ½p[õïý‚UدYe{Ôuîêtãgsh\r¼qŠ\œ"ѤO”Mr£ÜÀDÞ,öM¹Td»TÚPŠU¦¥2Ý‚Ýn!‚iƒÈ”ŒÍ-;Ód¢ìÆ‹rï#±˜JYœúdkß?±‡£‡hªsAŸ›jáùã+Ë6v Ýçî…û™a˜ØÒñùñ=ßï÷óù¼xÜ Òëðd/]@9c-›Éik5šô&êêêÏšxŠÒGGQD 5€wµ—ìHcfœYǤÎ%pœ! »:.ævæ„I&›¡¥µ…:Q'ÝX«˜@k€äá„;Jd_²ÖOH‘:‘’&x_î ×­`íǼ§“„e‘Ÿ4étÙ52qf$S/žÕ-…‰×-èuq(Ib_Gj¥ôà– ÁPŸîƶӄØEŠqôum dÉ H $j}(Ó4¹¤þ¶¡¯Ó—ÿ~̳i‚7éXE›øcqÙ r¾J§I§ ï £¯×k ÑGÿÛ-6s1WûïøR™l†no7uuÎë8RFß²–úRÌEáÒò–D–-_:ë{4N©T"ó>¤Zß i,»Dá’Cú5£iu§æú 1' ò&%Ç!à—ˆžEΕ•“˜.ð}@©0¨«ó:T§R5;ÛÄS‰Ÿ¢ôv‰ü˜T½î¼=Häk¤‘>#_Æðš×³ØXË]Ï$HJ×é8åw†Ð¥|²ê•c]²°]úO¥±«ÚgŠæÃW‰€«Çq¨‚žªÝq ÑÃЉ!Jv ]×—,6s hǙŜ0±¬ÅÏgèèíûÚkæ\ËEOeÞæjeîØù³yf½´'#Üè{ʤó~Ù ?š/“7QÜ)Ò£ãSÉÅq òç!ëþ‘=AìòI’‡’Œ»¥>\zÒ¡g½†U´±m«:Þ:Ë6MBÔjîBt‚+„Z߃Y(aJh«=¨ÍºØ\­Iã´Kú˜,°"~‰7z{°V’5ÎÒ¬˜¯öl¸=<+l/¼EÊç —Àœ18‘•Lx¿ŽÞ(¥öÓÙ »B»ªç.ûBLÛA÷zÈŒ™ÄïWŒøáþHʶmTU%à ëºt"IS'd¿Q¸J½muMkC]­Òy'é3iÚÂm  ÒñX/½U^’=-Ë©ùïöдp88%DYJ ‰Šƒ]q  FÅ¡ÅqNJ æ9ô™4¹±gÑꯣc›ŽA4%5£ã©÷3ç%:ÌY©Ò±3„ax,©½/¢÷DQÜÊ•­;D>Ÿ§óê5ÞÒFÿ‹ý×)ä&KrÜ”TU+¬¢E²Úÿñßä'Ð ´-Ä]ñáòY—øßv±™‹þçû—Íl좽¬wç¾±Çð@-Uî•jÈi£pÅAâ¿ÉZ¯¢( ÏÒÅh^^ÆûQ=…[ÚHå-Úþ¼+ŸF©÷âTæK4sá8=àƒ£ïH ÿü5+é¹Ý®¾^—æ]»ÃÄ1xLš9¶…x:AÁ.Õ²µÞCìéƒ8•5xâ…4éµ^NÎØÔ Aê\žAE! ´Ü ;š«][ôž(âm ­Á‹²6@È%'õ¦PÉç“5òHaÉüYÐ×T'ì;#„÷„éŸ6©«f}s‹OòX¶ B°–d`s¥¢9 Üß4’‡“5ÒäÂî ü¦©ÒÑ®Ò÷ý¥cªP…ùMNp[Ç‘œ)ß*Þ¨Ü݆v¤|-Fsh«†Îäèý~‹Ù³ êvûñïÞEäÄIúO@ˆ0žz•<î:ÒùqL«@[£,É-E,¦îY ƒSÞZS…e8)°™:“&=œE[­1x¬“@¹‰¼”l›»®°P_p 4ÃÂtzÎ¥ ¬ÓPè$u¬ŸRÑÆ¨˜ %­r£9Ôz•\>G»n^¶z¬:·À*”pÊòùµßÞ^ëEïŽVÕÅeØçóáq{8yê$ÁMhkä&Ñ©8èÍrQŠ<'肃ù\U…@P+-« bLP”:Ú¶ùÉ5ˆµê¤,®^¯Ë’bs×¶Ý=̼¨^Õãa| Å¤ëÁ.å=ŒóWá»ÑGhç¼É¡Ö¨aš¦ÜÜJ¯:®&týŠ=å næVˆ 8»%jÐ0$бT*ökd¦ÔÕ-ôJâ»Á‡Ç¹±\µ÷¬D©=• ´%@äîÖù º®£ªªdso’¥º÷“ôæ&íäá$ÅC‡¦I›‚ý‘ZC=¼ÍGÓ: »Žg[þúí¢}Åzù\DÞç~:‡@[Âå…RÑ!ù\òŠ’<Ë…ï†iI‡FÓ©ó‡ÂhŽtÅ!y"‹1Y }&]³hHË2t*w]\²Lão  Ö+„¶ù oi!{V¢×–GîùÑ× „Mâ¹,o¶ª$mZ áΑ<œÄ©8d”÷a`›oÑ‘‚7Í£œê\ÜuÔU’ðhOf0 C¤ó&éQƒþa¶C :†S”Ê%T¯JòÔ¹[éW 4½…ø£:講TÙ0&¤íE~,/-0Ær¨Âfà…²¯eQT¼^/Ùl–žïöpp_Ü=aÌiSr³ s,Küž0½÷,vE) dNhY¯¼A'¼eþº Åš¦I$aÕUUkÔ°K6%ÛÆ4M Åæ´‰×ûNEfÞQUàΑ<””½£V?¹±œÌðyxY IDATª ™lÃX¾´å¸NÙ¦§"3=ë’D¤)õÒ±µçP ß ¾ù\Ó42Ù™‘^’GzqœÄ‰‘:‘"ñL‚Ä3‰ßzãõQÆÇv±ñî ¡­Ñèþx­p_ “ -û»#(Ê{‹~6t&OìÐP ò™8š&ñx—lˆ6.…‚lpç&åĽðÅyxÜ‚Ž{c(+úúeŽUÈÓ÷ý>¹[{¸ÏÚºï ûþÁ% NÀ ò¥HÍî$JN¸Ç±ËKQ(!¿è׺p 92§¤iSþ5©Žœ:•ÂMaŒ ÜĶ’OöbÙ¥%⟙=a ç ì#ýäÊ6¯åI¿fà]$òU™òkšFhw«`‘>‘Â~ÛÁ£xÈd3ô=ÙwE8èÂHNB´û;ñ5ûj6ºš×Ch[mµ—:!–Xt:ŸV>p±‰ìöÓyO„èžÅ Nòpáž_\m» ÇéÁ¶=ä_Ë“N/ÿÜ–‰¾'úðo “N×65‰§Ä· Ô{ØU-“Eöøñ” ‚¾yM¼ÄQi¤å8'³f&gíewÅ‘Ý~"{ü¼$T’çó8ξ}ø[ýt³›SYrSù³ã$Žù ¬ëààí—†¶Ôzßú¦š@h“Þä¿:é µì<š&y,]-9 ÌâÆgÆqœ÷GÜ–|!ˆ?§®n©³©¦80YB¤Î¿–GkÐ0'd94ñT#›Â,Ë÷<=,ɾù|žä¡¤DvU$ø É³Ø‡%ëZT儿þ¤µÂZsÚ”vÉQ™NãÔ©¤²ƒYƒä©&ƪÇVð¬ôH¨{½·öþ[–E>Ÿ§Å×" Ül›«Š6Ge£Ñ½A™©ù9çQd†ì”¥à\ï*¸EÒ!lÛ¦óÎêlü¹|µ¶4®´Aê¼=Hç¾åçÅ*>¶;.šo•ùËò¼¤}ôž(®k\Ü×¶™Õ1s+úºvl `œÿ •Êrd%•Êéü[Ù×MFÇMB»Bd3‹3†v!xè­2u‡¶—G>ð8âZ7¯¥1ÌÑ{¿Î¥K—˜™™©ý¾ë@÷ïB¹âb…k…”± Lücš‰Â%|×kŒMÊÏkk4ÆŒ1Æ~1Æg>ý¬b?âÚVzp¹ÑU8Îâ ½Uo®”SÿãÝ «þH£î÷êp 7Ÿn¤åÓ«µÝÆë™ÓÔ‰:Ѝ4|¦™U¸ cÜ û›ÝìøÓŒÃÜ} —2YŠ×¸H¼#å[¯odÇöäóy\¸bäìV±DöõIÊo•ájh\ÓÈÈ?|ð}hßé£am žOxï 3::Êèk£p52+›™flÜäøË‹-‰"›o.26Ö°èþ¶ïô369Cèæ LN™ßú—%=1×5QÜ×~ Çù•JUPrJŠPvüMŠCÉö¡x?åÅóû64o`•º Å­°ãOwÔTœƒ­Ÿ!ÐÚŠøÝ:ŽŸ‘–¡/øPW”»˜$д•Ó¯´Ðð‡&¥_ÙL.1v¡@år…Óå2ìмî3456òSW…ØÅ!†* Î;÷qàÀ^ýù«œ9s†Í_ÜÌßéûÑó„v­äå×âT*L¼±™ò[ì²Éæ?IQz«\“Ãoü£U˜SÓl¿¹…Íw…ùÑ;6ÁÏ71zΤø+ùÞÝÑQ!ÿº çá]”ßù Ÿ¹þ3466R|³Hð©>~ôßßæÖ[o¥á‚ŸkbtÜds³Æé_”hXÝÀm~ÚM>_$|·Iobìcß,ò•ûâ¯ÿ„Ç¡_º ÓÏæéyÇ¡h—Yárqé¿Ù œ%¸5ÈÐφȿ>A:·XâfÜÐ1/V˜ø¥ÃJ!`ÅU̼y‰MèŸ^E`{/g_&ýw]Ì\üž £ã&æ”Iô«QÆþyLJÚNê䮫¯â¡®ãdF3\úÕ%ÔO©µù¡øf‘Ñ×Fk6ÙÊÒ1Ó¾ÛÏÖÖ ¬TܜΌálÛÎÛ·†kïGö•,»ü ôüà9ü›ü´øZ¸êª«$_êTŠJÅ rùGT.¿¸ì{}Œgü,.áªÙšoÔ ~a#+¯TæÃ-Kþ-âcg1`¹Þ5“¦D™-è¨÷Hì$Òs"öHŒø½„ÚPz:ŽæÄ8ßqpb^e7~O¸Š¸éB[óVÑÀ)7}àùÌ¡C…@uA ìпVÃñH¿Ðÿßj¾ôÝßèÆ˜0°Ë6ám>TÅC©iÛ'vH (ý· 0#åQôu:Mv…v¼IöP4¯JÀ§£TK:PÝ9W,§E‰A%ŒãÜ%™øe›!øxVzH;¨ ôÞfp8OSkº•Õ(”¨­K™‘L­Øõµ.æ¼a­êÎ~¡úØÂ¥ûñ^"‡…ÚéþõRÚf×N‹ :ÚëÐ×x:[À·>@Þ¶ñ®ö3kf¤‘âú‚­:žz…øÝabÏ ‘Í@Ù&ÔªcåS8NÇØ#’ÏÓ[ïEu,Nºµ¬õÜ.SÌZÉ>u*…êUÁÕ‹!œrÓ"ÀÊ\OrîÿïÕ+*ø –æy-Í-ĉ‘~MŠ˜Z¥—ºÀGZFóº4êx…à=E!rg„îotÓ¾¯Äéæw“ŸÎû;1§L)µBâû±Z¿Ã)ÂÇà‹^„(™Î}!Â_êBóªøÖi„v,•öïÞZTÏ“½¯Ñðï2èØS&âè ÖoH$í¼_rzœ©Bï#1Ìé**gfÞ¡÷vºï”©·^m~MªI# äá$ÆyƒèíA"÷F oj©¿ï}d«Ìð½GûB$Ou’x~ÕeÙ¦cÛs8EÿG¨5ߘå"àØ £½ƒÐ¶¥²CúL Ó²±l›¾§KIu•ì²Aê” •ƒOvôitœÊáU<({;ð4먊¬¥7­Õð(Ë£“‡’RÀrJîŽ[Z[n ¢(R¨5¾?„ªx`µ¯6©·1YßíOQ*–HËbN™„v‡ˆÞ%þXœîovcl’jfÁ&=:NˈùhœÙ*Ÿe¼('p¥Úc™³)ž}{–Ô©m_Š{fÿú<Ñ=»ˆêG¬äÏåk½G¿®ÕJM†)Ë[¾å{¡­ÑÀeJ=·‚1)U úŸïÇËßÙR³†Ž~5вÖOIè´l ‘<œdÜ'?–GØó †U ý… zË-xoµ—à);\W}výÕ¹á½jÿ6á8(BH5‘j45j|{ƒìÚdו¾õ>4MÃßê§®®Ó‘ß©«¢óÔ,ôu:z£½QCoÔÍ ‰ eyÜßt¡Ù;ê;’ª•ì;ïïÄ×êCQ:Pëuå¥%ßYÈ—J:ïÕ+‹®u¹pÊéáô"ù¨¡3ùvøÈ2›qEÁpÌá Ç¡Å­ÈÆXbÆH<Àçó1pd`^>þ˜LÁNÍÃu;o’8–§£ÝWó½è;"ÿJv‰üyc* ®Å«|÷!"÷Æé{´kÑϽ^/ÆŒIßTsFÛk!—ƒïn¢¶}E=³È¬¢UC† DŽÓóp”Þ‡`—ŒÉ­R(輿—ºº:úžìÜ4n…Šo½†1i <¢Æ,Ÿ‹žC)|ë5B»wašæ"]¨Ü¤%eÔ¡Æ]PÜ ýÃ'é| Fß}Ä¢n¥üüûQpT$\ààpgS€Xvi³3ñBZ¢÷Fì8…À¿Nçäo0¢úޤî8Vy½²•ñóTä‚Öýn9!Oš4)6™¼¹ Ùã'gH(ªqÎÀ*X”Ê%ޤ‰ÞMzÔ@õ(K$ˆ„ûNù:ä‚—u°Ë³äÝ.!NÄŸãœAÄ…ô¯€Z5Œî ¢*ß ipKâæ ãT{0Õ—Ú˜EqkP™Eñ(ä¦g ®õcÏi¡Ù6ãÆø|¿¥X˜4)¸eÖîÿ‚Ÿžïô¼AÃPL¨,•¯ g~ ýkœ1«RO')U‚ØöÖü¼í88në úg¡/èšuâ‡ÛP”öêæêÃû¥U|d=›ƒk5Vµµ1v6OL¸ùÖþç'XáZAÑ.b^4—Õ ›˜œÎ~Ÿ?›'{Îä+{L6|zçÝÒv[>»—óg^#zw”ì+ߤryqßfäìå¯ÿW³fí pë-·Rîè óºAk£‡‘Ü›#¶ïØŽû÷Ü4ßÐÌŽ?Ý¢(ç >yß>^þû—YÐÓÉž3)¿19]äùT–Ñq¹Ë8pï"_ŽðâÑQU*P'êØ|ófœË±‡bÿlðЃ÷1=–_b7[xÓÆU™Å0&HêçÕìiºŠ¡6ÀØÅ+Ý+1ÎLür‚u§™~£Bö†øÖ£m·Nðíoˉ{®&¿0.Ù#ö€ó†…S©ð·n7ßvzï Ó|½Föõ òçg°ßšßåT*wߊ¸FP´‹ß,^ñÙwߢéÓ):þýMNgÇýÇ(W½{VÁ"›É2]˜fâM‡ðÿÙÄñ—d]¼{ˆÍŸàW‘øI„†5#˜S¦œÐV±ò“ ÜvsŽãðü‰Å%¸Îû;yùÿ¤>šö‡+á]H Ž0±¦žÊ¯Ê*Aà[€ù }ÏS-›oþ¼ŽöÇ*?ƪwÁ~˦éÁCï”iºÚE¡l³õ9þ<î•ð^…¢]湟°ù‹›ijl"õ·)Êï”ÉýSަë›hñµ°Auñç;n¦rÙ!1(ß×ûÜÇéáÓ˜›ìëËê칿·Û•:çÃ94ËEhWˆ¾'ú¨TŽã8?üÐÏŸ~zÊe~x…âæÏ6¢ý«8ýJ!6»®õ¹ýÏŽUÏ&;e"%Ime/…8‰ãt-+Ýж§MJ6-R'Rèk4‚_Šâ<, Um_nCq+tÞÛI6{e½«ÎáŒÜI¹½÷t2pt &Ï.\‚BÑ¢s_€_'u¸’Ë»V+,s'“Çä.ò=· €ò7ÆIïGY)0Mis½'JKk É'éú‹]”ìYúÎg±ˆFöG(Måm R˜69y¦@j8…p{.Gñ<•³ Í" ®Ž“döín¨°(Šî ’›˜w\ØLU•@z„DvûÑš[PË%´3B»;–dyJ½B×׺¤Tû˜Í·éØ×Aÿ‘~ôu:¹±<-›B$žL?›§s_Ok€ðî0ñÇãV5Ñýn²Ãü¡¯Õ°¬õH2h¿½ïú ÊTQ1I —¹#Æãõz:1 4k7ù¥’¶=‹º>@à–6:îì ÆÂºÑG°"﹦i̾=KÏw{Ð×ët´w ”Æéz&†ZïEoŽnÁqdIQ¸4Z| ÐÒÚ‚qÎ`öíY:Ú;0Æ I:.;˜&jU"'=šg|ʤiS±‡cÄïá½]%_åOd×+D\uØv©&©_#·º °½ƒìèI¼^ž¢‰m{ª$P!•4ª¨BéêÜU,àoÖéNA›<(ô?ÒTôF¸7†aÔ¡i{ÓäÏr×-IÁá½Òº t“ŽÖ ¢®öйϠç¨õ*^¯¥ò>ÍŠƒcÏ?§ Æ@:k`L˜U£@Ë-ðØ6ÁuúuMîâ-ö™õ‘8*KQžJ¡¦7§êlÛ6éóŒ)³FfsÞcçÂ)à”ƒ·®n¨\yRÏ OÌÊ|9pÑóúŸÉY‚–ã à8½ô>ž$;¹¢ØíGÙb¸BíS¸-bz‰?>NÏw›–,8t’ÍÉE¡Ê1gL’wQ*;ˆ²-ï84éMdG¯¼Øè.)?Ó%º¦á­÷’Ëç°‹6Š¢ ùvaép u*,^l’Ï%ÁÅIš¹xIØF3èœ40f "ía Ž“§NÒù@'B’?N"“Èþ(ÆÙÉ¡EÑÐΩ#ãÔ¹^UÃã6`:Gò©8}OÐv´‹œKsS“î"Pß,€ÆÁ§ž âU]÷ÿÚÚbÙí_¤¼è:Od¢ŽR¹„ϤókÒ…q޹3‚qÞ öpl‘²ö\D÷IKÓ÷BÈ&vycÂ$}¶úâï Ñuo„ä)c͵%Hÿ‹ýèš*!Û/ à8àßF¨òž¯¤¬×è¼·‹Ø£qœzîBrt»dßAq/¨{» o—dÀS~ôš¦¡í £Ùײøoôã[ï[´¡ˆ?A¸Æ‹RY'——Z`RW+Šã¤Éå8•>ŸEQÈŸÍcΘÔU•’‡ãØv] lõ¡Ô{˜Ë¯K”&M/¤ ݤveCGk þ5b^ëïþNš›è±›pk†]—ý+£„ê² h:Æ„‰…Jx‹u†®ëx)c3pd€Žö¼õ’×bŒd°æ€]’Lvï¿ìÝT4B—ÔzŸ®ãT²è›Úiin!õb!À«j8³r ZÅB€]]XæÆ‰Sq˜u®,•?oÖîOüÑ8I {v–B±€åÌ2plñ{Ø+ŽjRr b;øtøÝ ±g†ðx-›Ú(™zï¥`—Hî£ûΚ¦‘6¤jrdg*Aú^H“x!Mx›»äÚäÜ)0tLÉ7ÉÆµU°( Òê»ìÉfHÛ6AúØj;´ïö34Ü…ãœò."û#ô‰á8jmƒ>ðB°fÂwÒ-ØUvðaÐCÅ‘ÍêÙjÏñpªJè• s~g€¶ØÂÊgè˦‰Þ.{’¢l{JEˆlÝÁ˜0)•m<°Ê³ä Û¥ð(éRG™PHžIðj‹H›’–Mmh¥}?èÃFö¬Ip‹Dˆ™“RÝZ[ãE×T2£y¬â,žbÙ·g% Ê# bÔø/s÷³nÁ{nAK>‡¦IUåö½íRÐöPj½sj^ЃƮM>ú‡«®*JÍ×ì“ÉG›(½]"ôL‚|B.PÜ„‡à‰ i5µpcÂ@oÔ VÀ»ZE±Kd¼*ª6NusÖy{}­8Ë¢çbèèPM>©Io¢T*Ñ÷D‰MA‚Ù ÅA!jê&_°&Ñ“:ñ[ÚÁÿ†á»ÁGa¦ðáüãcdz©\NPa%Nù6Z>ׂø=Aþõ<î¼Ï¬¢â\¸ olç¾êº1.èþF7ß{â{‹²ÆnŒ ‚ŸoD»¾•™ÉóŒŽK§I[P´Ë<¹Bö•,ÚuÓ3ÓŒåÇøÏ4¶Ã0ÈÿSžì«cËö8†ñË•Ëß^òóìë(û¶“º®+:8íwaä^fâ—|ë`?C?bôç£ü¤ÿ+Üñå:f…‚ë"mÖ†öIÉð\m30”BÓ7¢^×$• ^e$7AäZ7«²¬wžwÊÜ“~)Í׿îâŽ/Ý5mñÃÇ 6nE=dãÞw+/L°ãå<ù_JžÊ½¢eb^¼Tãú,ŒèíA>ó×<ÿÓã¤_J“ÏåùÖ®?޲¢ûb1¬)ãBó‚IÎ-hn £Ù6¯6ªü¤¿Ÿ•×®äô+IŽÿl;¶ï ¹©ÕUàÖ];ð‰Ï}}‚ûÜGòp’øcqO%¸ï2 `ÍÌ01UÀ´¡8>B x+Û·nÇ4MRÃg°Ë´Š‘³lö5Òâk"ÿꫤ^`ÕÚ—û§16oÝEþl^žçEN¿2Vë§müÜFÊÿ½ÌÌÌ &ýùO™˜<ÀméÓ|ëÍÓï8üørqc+-7¹îÓy6¶šÜög·1šåÕ7clwÁó—+t£›çò<9E¡áÝ Û¯uó½_N¹Ó®qN¸ÚÅ«ç&hÚ°Q6õïïdûÖí4éM(”¹m÷vÌ«~Ò¯eØØ´•ÆÖíx®.ðù¨ãUFÏý°vÁÀ®û´ÆØù ŠÅ2+”Uð^µŒs5x>á¡B… ŸÝÀFßFFó£Lürïj/3g°Îg0¦ µ^fxO˜þð‡²_ºÅÇ®Ö Ô¹]L¼q ç•ÜÏsÔ­¬#p½‡Ê»ðãÁ‘Ú¹ôºQ!@YÅ_ž7ÐuÀ縄‹Â›Œó­8ïxpœoã¿ÉÏm{oõRÁå”Ùü9×s¯òÃ=ÏæM›©[YïB¥RaègCôÍp»\xÞ…†«Á±mr±W½[aèïä‚áù„·â¦’åSå2&.~ú;069Có¹ ¬Sñ®RXáZã8<}ôÃybÛwlGUUêVÔqzø4“ô8Á¯„)ÝÜ\ã¸ü<Î;NÍfþJ‚—ÜnîpqÅ^Íráù›oÞL`S€ôKWv þ_«žÍ…SžGˆ-L=U 80§«Ü›Ûƒä ³o‹E6ïžC)ÚgJ¦‰½FìánòÙý§2t|éãÆ8=ßéY¤Fü~AÆ?ç«¢ÇéXôóî;CÄž$öÕ]$= Š™oöŒ…íkÁ\§“:ß.‹Ìh†èþ(™™<ºÏG.+Mï=a|ÛÚ`E/Ú®»BÔz/M¶MDÌõ!g:Gx‹Ü¶íi#´;„oKˆþæ>l— z(‰é‚ƒOäÀW¥ÛBâå¢dÏ’ü~_­té[¯!Að–6rçzé{4ÎÐpžà6©mÕ?i¢ÂÌ‚—¦5íÁ²;PÝ~‡I¤ñy…DŠ:|ë5òçLb–P”Yâ³XÛÒ¨î:Œ)iLç»Á‡Y¨HIüÙ<±‹Ü&Å,–H˜3Ãy„ޥРùhœYgvY%UUIÌ—M©€¯ÙGG­ÿ$wª!§fX×ÑÞAâéÙ Êj@¹D÷ý‘o).zÅA¬÷¡VÙÞÂ-xö¹g¹ëË’–~Í º7XËlÌ)©ŽlN™Ô9%O¥0§-D ²?Fß¾Mé¬A¡PZTú”½@ °hÙÒ†5-ŸWÿóRA»B[‡ì IDATóÙ£ð¸=Òe¶hcÍXˆŠE]£†â˜è7è´¬×0™ÉÏ3šzBh *ÖŒE¢êªë:Ž£á›5UÒŽCØ%ØÅ,/¹Á3i:„ NÔ1x¬»|ED_§ÓÒÚ‚Ö¨¡6¨˜£sY€ÌÐÓÃiZ|-˜Sæ¢íã ÞÅjÐ0§MœÑ\ ²U ‹µÙ½Üu8)Ÿc5ãò(²Œ¦z=ôþí²ŽLVf½ï×`´Š6³•ùÒ\ÍŠä.-ã­"óTG^÷oU œÙ_šýGÿf™Í¬[»Ö8½ »öÓŸ­ äÏÏï²ÜՎ˵‚™ ó"Mþ Ñ»£Ôýž4Uš™™!~w˜ðÎ âw*‹ ³no?¿ñ‰zV¾[À*˜.–éûëc¿£éú&Òéå'ÜèíA¼ËîøFãºAÊïÜÁ¯?ùS¾]U>(–ßfúõÌÂ%NØr ±‡bLOO3ÖÚBêtœÐ.nÑ@öÕ +¯Á˜40ÿ)Ï%{–[6màºë›ùéO‚ý¶Cá¿•±¦-¦/NóòÌ4ß«Ölò• ¡/n psí³ÍŒã¾®oQ.—éëë#›É2zí ÙËuôÿþ«\÷àU”J%Šo)‹„]`¼{åk›œa•ÖLåÝ ·Ýv½?8(-þñe²¿0iÐo–MäŽZ}­ÝÁû¥ÁÀÉ,ZƒÂØÏGIV< ½ëü\#•w.‘ùÅ•ró‚Éð+²á?}ñ>ôu*Ï»ðˆllÖ¸ã?E˜þ¯Œœ P(P__ÏJ÷JÆÆÆ( üùø+ùŸçyîØ3oÚŒ](оÓÞ:ç÷=l ldègCµŒã%·àùËÚwúù«'DþçyÆþi µA¥áS ¼íĹ꽫˜˜”H³à¶ íí<—|ŽÙ_Ï¢ª*S“SL¿1Í¿ÜÒÆŠáÓ¤Þ*óÐëy¾]EJ…\.6^+p]»’J¹Œ½s#.E¥\.³ãßï ýRÿM~ôÏoÆó\׸p_¾D×Ñ!"oX¸ÏMñÐÅ_²y‹!V­âôßž&›ÉRxÓ®e¦s¡·øqÿqFÎN ®4]ßÄôù—ÙÚ|¡­­Œ½6JêÌ gþË.¹ÓÎçÙ±}Óo–1Æ ?ò#w‰Êåï]ñ˜·\íb â°ë­ùJJXŒ™C'&'˜Åó ·Þrë¢Åø£ˆå2›3R§XïƒM´EîÝDUU÷bÍ¥ø÷“¤G2µ¦Xn4'-w/•jÝ'oƒŠGU—X®öŸ3ˆ|9"í‰Ë ™‰YB~øcñšâ•¢c_”€¿}íRaÏÚõŠ^„˃D…`Ö-0& ôI14,­‚ÅÁĶmºžIƘ3@Å!°)€1mÉ ýxÈ&ãFÛìKZüö|·‡þ‘tQ½'J÷7»^éáC‡“ÓÕ~Ãd–SnCˆ8‘;!þXˆžïôH—G·`ð/ Aç¾Úšùë\H¬ìØ×AG{¶-5 J‹Xàä© >Ÿ¯*—#u§ò¯oÄ)‘Îû;é8›'ðïTøbç¼Á]¯?ÄmÛf=g½=È×ù.§H“VÏ¥w`jj ­AúdQgO1m;Lÿ?ÓLNMbý¿ô 8‡ã'Ž3ô7Y| à‚Û:îÀs_?¼ì°ñÐOèÿÏý¬ò¬"ŸÏ3v~ŒÆ5|¦ñ34~¦çòiŒ_Þ W÷1]ük<+“Ì\´˜°Š˜3òùÿCNqš×ÿ¤o÷ýýë__Äsšu \ë¦Ï‘Ά¯æ_¥áؾc;ÁMAŽ þd¦¹Õ%8íâköaÿʆß燖϶°âš”l)gŸQÚ«=×Ý_aåÊ•d†“8:B>—gó–Í4üq§ÿvž×5±¾™Ö&.}®‘‰ ®žç9ͺmSÓ¼ø©ާޓ:BUNá9g²¢h3x¹ÂÄš$Åâ·Éf²h¿?ËéQƒ­¾&*—ÿ…‡.X|E¸jç„+D—8ïV¸kÜ`å'VbÛ—pU¦ß´Iþìê§Zq¡’?ûŸ×Ì‹&Ï%Ÿ#|k˜º•«˜u¹ÉOÌP¶Ëß,²Ò™r§8Í~oMzZ£ÆuŸ¾ŽÊå F>ËRIÒÿ¸ùŠü§2ËU¿™±IúʾNjìÚn:)•È5·Cðæfx·BS£†‹ §_• N÷7»YY·ÇÃæM›™¾8T(¿SfeÎືÊÞ(Ð{Ñ$(ê'WqGÅabÛvÔé›ãª£X,ò“¿á!ô¼óÛÃÛwû¹cÇF6^'ýªÁ_ºCöj.Q>!°ß²Ub– —kêê.p‰o!®ù±‡W ¯Ói¼¾㟠ò¹ùÅïxp±aA¦³ý‹>RŸç¶]šêkÙ­1ž¦hßB>·ë#çÛü/íÙìrº]в)H>ÿ›í„È!„ä¡' Ï\Ùú4º7ˆ1–¡¥A3Lr£9é•Qq®ÿ›ƒ*ú¿àGˆn`=ß Þž?¦i-‘Æ¿¢}ô‚í‘:!%q†*‹ÿžïFß<Ì–y¼½U,ɾL%‚¾&Fß‹äþov“?5Dß#]8ÎìÆÄϺÒŽÃÖïöP(€]–H¶Ø©½{ÂRS®ÊxÞÅšI"Üí!ãäõ&Ä‘$CðÝÐNâè8ñ»¬¢Mòû}Pq8ø\’_Žà]ĺdIgJMCõzj×ùRsÚ¤ç;=èëtâÆ)M¤I¦H$à— ù/Š;ƒq^îx#wÆyœÈHq¢ûc¨ $œ¬õâÆeïÈ5oÍmœ7ˆÞ­ý[R=–eæ 4kx„¬k÷ŸˆáÚHHÞ aí'¸³ ­Q#}&âVHUù'ù|žœ[r'X£3x6O›ãÔàÔ ÑCG‡¤NÜ÷{éúšì=fÏÎs™º÷‡èØdp8ƒg8‹‚{evaš&¸ZH‹t°máÎÀÔíûÚ82P“½IׄϚ„Ý‚«ì6¥§"•Õ“èþ8q‡ôHÿ$2/?š'º7Aâ¨$î÷pœ­’ã¾@ßSuD÷÷B»Ã“©S)f¿à§Å§ƒP)ÊkUig‘Í?{¥^Ãã®I.‰üù¡½¼ë¡î;=t£§² rá¢:vr†´hŽÞEUUÆ'ÆiÒ›p‡ÌéþEJå}Èì{ü8¯åq\QÿvÑ–ÍùUfgg)Ìpìé%ßeNáÁYæ"¯”Ñ\MH‹rÇIbÍ„ÁåÁ)ËL-ö´ïkÇš¶Í]w†H+ -?˜ï/¶ïk'=f¢i^Íú"_»Ç·>†¹ŒÝ÷Ç!þM=‡SŠ%¬Òoöp…Љ= ñÇ4†Ž%°,«æ×:•ªqYÂ{Ã(n‡ð—ºè{¬‹üù¾U"_ŽËQ*–jüå"ûY%Cìaˆ=òCǶÒ}gˆøÓƒøò®%‹Íû#,Cï°ú:ýŠ°Æ¾'úˆ?ŸG¢TïúÀpõ† Úê0ùóKa‹=ßé!þh¼ ÁŽ‹tÜ­À=QÏ$ÀqH–6ÙÉç†ð5ª >ÐIGk *þñÇâR®½ì TLÌ)H<™ÀÞ×Aÿ‘ª7Ì쌃uø6c]ßMÝ$þµ.¨oœ2¥ÉyƒèW£´øZj\£¡C˜rð«ªü›x}Dïö’x¦Þï‡PW©PIaÛ¼ä8h‡Z[PÜ ¹|s,¾:O[»Iÿ@ \`Î$Q/NÅ!öHÂmÙçÅ·>EÛ&©e. .0 4ëý>„â!yd]›ˆÝ!ºžÂÛè#ØÜ‚ºZ­Éµ·ïmÇœ6)œKKÉšIg®ŒQ¶¥´þÃ1”zeÙÔœä~xo˜Ð‰u.èwRÉÓ(•mÀ!æV¸Ë¶Ñe‰(ÿZ« ¢¯ÛV€÷°Ëï¶ÐVë„÷†ÑVkXEKêµKâT@qGB¡¥2Ù,`.²-÷Ö{)ÌP*–u¤LJè¦&k52£½¡¡¯ƒü¹<¥i“ OCB6ÿ×IS>ÛC©(ù;é‘4vÁ¬J0I‘[«,¤¥‡ ";wÑwdþ}ˆì?“Â,:„v‡ªòžFöøÉŒ™UË€Y,T,Ëb—OE[-BKFÛž%è“ϲë‰ù XkÝÅxê$ÆÃ1ÔÇã— ygkÆ’¾9gó(õ ©S!ú‰ã8Ku¯þõZMQ`h8ý¶CúƒðÞðod`uºZ…TÇÙµäs5cÀ¼Â…T\»€?@À ùdi‘Ç*. HTz0Î7ëÃIªEü›£Ñ’'²Ä£hú²ò3 ‰^³•Y …]Äí…Jº¶C­é¢!kš-Í-’}*IÏÃÑê$ÿZžÁ¡Agžì о͇=ë,ñmƒØ£* ^°K5öþÅ{ëuM#y&^‘<½Y'›]ªÄ¼0f=+ ½\‹™ÄBˆ¥e ²,Úö¶¡/ãµ£Ú6ã?èÃXÐ;LÒ‰í3)Uw_žUržëtSj¥Ï¤Ñ¼^ …BÕËKÏ&ÂåA:¾ê§e]Ñ{¤³b*Ÿ#ö`\ͽ;ŠuÉbÜgÖ‘d»R©D¨U#ج’8*½a‚›‚¤Ïçº0E˜ðÞB§R½*4ê$ÏÌûª{\>‡eYøZ} ë'¼Žî‚JŠèíAúOyIN¼QNXú:ôa)B RÌÔ7’¦¯"ï·9m´¼Ï¦i"Ü ³emÔ*뱟¶[Úä¸R ÅãÐVÍ"º÷‡è·8‘a¶l“ÞEÌÎR2¥]ó’g6mUÕ±ã´ðÿ±÷þÑm•g¾ïªp¶¹Ýjí¢Mcš 1Ívq@‚$H¸Qn`"O’ƒÜÀÁ.Í´‚RPèlæv9”Qh)qJ\.¥&·°ì¬Â²r›œ(w’A¹3ƒs¬ N½}±'Ûë°uˆN´ÑA露¼¶Ç tºfn™³îw-‹(’üî÷yßçùþHÑ©ª´z¼œ7nÒýr ÿ]º5¬ñ#*È00Ëša¥1ǃ@žèºm$wjh> ·Û¾H'¼",5d¶LÕL* *C€ÎPFÊÚÖ¤ÑF) Á–í©*óΟÄxšm…-‘6Éøó´CÅ${XÁE™€áC_äC«ÓpfÜ™EI`9ÖœCœ¾X:u·‹Íä]”7F鹟Îïwâ^¢óû~DIà­ó26:FدÝžBËY4—þ«üt>ÜIv0‰¡ûЪ¨u:éÌÍ7I&ÝìDQ Êù!˜Ù€[ïhE_¤“y=CñX‘€? ×ÌÒ£09Ãbõ_å'²6B÷Ó^pIçá*WÅ·è?¡+¤Þ§ë9ù¹ÓoH/·øÞV¸'Ž9n¼.ˆSrªìÙðªpõ׺ž“Iž¿ Òƒ’0^&_ÈÓûÜ©›ŽmKÝ ¨)z=3Ræ±a?MøW-6ßïÄš´ðù|¯ âv¹¥m&ÕnVHûFŒ±‰1i=³$vN5~÷SÝ’>è’'ÄȺfR»¥Ãî٨ϭë‚ÄîÚL6#…§» ŠŠŽ(Zp{2Cl¾zv&‘Ò˳Ù²Pr6NEºÇ*.h¼*DöŠùzŠØm(•Þ—{eœ¬¢T©Ögýþîdów7£üdî gÎûBŠršÕG ¶ÓOôöVº_H’Ïç)žvªr/Ö#Ê Bzwõ;I<×ÊdÌÔþ8¡e!´ú¶êM%~oœ‘ÑÌqS¦* éýi¼^/{R{ØüÝÍP0‰¬ ÊŒr\ÒJE¡ëŽ>Êܺ…±¤‘Ý)yÚ—lCšø¯ñÓr«Iü•¶Ö6†2Cd³$w÷BEž”ûö¾FÛšÕô¼šÆß‘í¾—“( M²Àuÿ´›­cl­@×Þ!²«ü”‘„àU:ŽS&²±­Ú‰¬‰ÐõhŠ’@Qât}3Fâ¾({³è> «bšýŽgn ­··b,1ð_ã'ùj²Úæ9Ù‹º€XIPtNýœ³ãÑ5~Â+àRÐ܇#=BYçEU÷ÎÒ¿Ã$².‚â1HHã¿Ê/oÇŠØÏvÓ§ª’ŒR‰à8í…„¢ÐUB¯—$™è*ïâñ}(³k­V‚þãºO%z{¹jç“yÃD_Äq¢bS‚Þçzh½£uÞ€=²&B(×KëLñêß™„;Zɼž‘I¦ã&¡!ŒÅ¶m£nïE÷¨àÓÐé’â\«á”ìqùü8Å2 Ð÷J±oÅd„sƒÎžþ^ðøH>çEQºŠËDTb¤œÛS1³ËÙ(Š@”fŸšO†¼y)3°ÙVyЏGÅïQðW ë€ŒãÐtDIA·âfl8È)"½‹ô97›Cæõ ­··¢7èRStd¼úïGfø4à_¤Øôý¤Ë2IgN…%O¿/Nâñ[~¼…Ø·bKgooùj}Uû™³šÎoFpJ‚žWÓlùáÚïo§ûåC£&™Ãí¶ÓýÔüüøþÝBW4bçæoèÑ[bô¿|ê¿R–ÄU¨||ÑÞc3°=…•·«ÚŸsÁ:æB­•3u&s¥÷Å^Œ+Œ³z‰å òÖaçmQBþÆ*ãͲ,þ‘µé7nJ;§ˆ(¤/ÛBÑ{ÑëuÚ}Þ:/¶mc§±¦mò…"©e2Š‚—Óòæbšhª¼s§v§0<ÛÕŸ=©=èºN¼ÛP…ÑE×sÐ]<`çlÆþe-ßì`Ïþ=(H=ÖV‚R°è †ÐíÏÓ×_ÿîŒÔiýöTGàÌ®Düž¸Œ3v!çl.7JE²#ë"Ä^èÁ¨Õ¸s¡l‰õ<ÛC« B.6iRÔuìié–­( Ö1 "ŸÓÀª¨«ÎïÒÒVEP &Ù#apùÐ}`å4Déìñ¸Ú1Ç»I¾šD_椂¢h[µÅþXmYûa´ZéL–ôá>OœôC/–.@´¦FF²òÀTtä KQÇÂhÐЊ*‹èºtœóï›ExUXúØíOWoŽÿ³à_æfãPPjN ¦ÒƒiŠ'ŠX9 kÒª¶qÎĘG!YãfË#[h½£uNÛ ¤p3öç ’/ö¾Î ý†Y¥5 !½ŒÎVhf±ù‡½sìôÛïosæ+²O8×Kœó}µé¼Íêk‹ø}ñsúY¹£ e«·²Ù ÇqªƒfÅ3•>e+‘µ§ìo:ïŠRœHã_ÜKx]'™7fZËsŠòú½•Ì~AyfàžzݤýŽŠTÀçóƒ‹jt³}Ì&ñD‚Äã ºŸê&².Bô–h5Ã%ŸÏÓ÷Rm­mlþîfv`OÛ´D[è{¥žg{Þ$ ÑqW‚žiô&"sÞÇ!9™”Y53´á– ŽY€æ72P´ßßN`Y€±Ñ1’»“t=’'ñD‘5’pà¿‚×E°íÖÔj­Jx ìî¡\‰£û¼hµ^zv$Q\ –bÜÑG^Q°+ç‰8–éP¶Ê ê²H, `Y=?ëa(3€â‹gòZfÚg3ö^UúmdE€P0„V«RTäF`Y}ý}ŒŽÑùýNºŸî ÷ç)R»ClýI§´™Ä]Êö$37£ðš0Ʋ0Öäákq{Uô… ÞÕ‹¡ëèu*‰û¢t=›¬ÂAxE˜Øs=xï‹£¸²‡³s4m%û³lSLò··Iký—û«Ž~%Aò”YFUUº*ŸŸÓŸ“3-öOGø:¥$ié=ËBhÙÊ›!HÜAõi˜ûAwŠÄvô±m…ŸÎ»dNR¯j J­ ýïÂM^DI`ú"]v'TäÎ$Ù+²Õ"^fëËÛ«SkU[}Ž®Ç,ÙçßþEŠMâ§½è>Hzºê u6”gòl —R-D ó“4¥q£dc¥ß8õú[²UXh ¨ú÷Ÿûá8}&ððù|XS’fÝ­†H̓+ gDMÇï‰c4ô˜&ÛTíén™£âb®Ùã< ]—ÂШI Á˶—zq ‘µš#ÍØÇ‚ô½là8núwÌü}·‡i¾¥…²(cå{Èç ¦I<ž%²6ÂHv„ø½qòù<é37¿Ûô};Ž9šÅÊK#Ä–oÅÙúhn§Èˆuê&4’©†¨ÍÂqÜŠ4Þƒ¶0Pm‡).…ÌG²XB0¦ªËÓû\‰ÃÆ5Zoo¥÷çò³išFë­s’@mÇ¡œ¢ó›ºwhô¼ƒ, ¤°í.W'¢"ðÖx ^„§ºeKŠŽ“ “QÂF¯õÒ²V¶ÒìB‘Ä]Ít<;@÷b´¦Ð¸X'½7Kx…ø e†p 2«\.Óól!ºQ”v´z°¦4ÌIPÙ¦u¦²ØÓrÖ½£›ÖµA´Z/îz9´í~ª…ø= bßÒQ”6~#£D¶{ñ_ã'|(K`æÔjÔBþ˜C>oSÎÙŒJ—cI0(:Ysîf£ª*-OwÓuK”a /”NÆgÃf!ˆ+ÊY]5ÂkÂ’(2“¶^&¤«òvµV¡ì1ª·ê³A×TÉzÓt'Þ¡ê¦]®ÀÈxQhfŠk\u£×ÏÓLïâ=¯J“Ѭ)™Á­@ÿŽóˆÝCUUâ÷ÅQU•ü²<¾…>Êå2ñ{ºd0¡ˆ¢¸ q[΢üW<Û€ªjã8’x\Å¿d h1Dq§pîÖVÏŽ4úBPjþ@:t•á½)ÒBÈçébY;£[˦‰ Ô%:wþÅÌañáNÌq“·;IíO!ÆM™ßsZ[Ò¿šŽ[.—éy®¥ÊVûŸÿ":›Âñ¹ú—3Ñ~{]Sñ3SU´{âx§¦xÈqªùÝéiâ÷Å«¹Þ³>bÍá¯×××£\¨ð ç¸Üd>IÝ’c½c1ñö£¿Åûy/—ë—“ú¿N-ÖÄ=Qü†Föèë×ŰÞÙ€ë‚[q]ðûó™`å²2cÏY«Sõ8ÇocÏ/Ü”ò9Fnâà;›™Xá¶ÖÛpz{‰yº65²åð›”!¾Îr£žÒIÁÔQ û¸ÃtE¥î‹u(nD‰‰éMþ•äóy\绘ø‡ ’¿êåî{þŒô_§>ô5\®Z*\Š;QâÏâŽãT=öBׇX¿1Æ‹¿|ž—Rr}ŽNæ­^÷s^ NðW’LLŽÒtµ`t|9ÇŽ×!Ä(}$È­6ñÉR»›åÁå„ûv±ôGÝà­çá-Ï0xx‚c¥}4~9‚/Ðýò¾êºåC¨ü¶‚ëí *«e«¥t¢ÄÄäÄ;™9ÏÍ¡a¢£D[¢\~ÙåDÖFX¾l9_m¤öóµ ¾1ÈÄä® \Ô¸þ‘†Ëê©û‚—7ßâò+—ŸÓcK¯¯C9NÉabÊæç§Öûàá B׆0'ûªëx©î£r²‚Srp_²œgž~†à AVÿI '*`Ž5â8ì_'H¼–楷€F£‘Ë.‡ÏÀc/<Ïêÿ´—Ëˉ4GX¾¬†ú?2ñª5äÞ;vVm‹ë‚.´ZðP*ý`æYJQ(¥¹µåé¿ÞÇK{‡çý¹Y‹|4]»Ç2ÁUCî¯ l rò¬£á«t^ùOûXê_Jý—ê)}Pbðà ª§†º:/¥÷K ž ñx‚}û÷q‰~ MW6q‰v wÿÝÿÆàû?ç± ßÏSG¿Ãr}=¿ô’=ᦛŸÁ›ÿs¬‹Pÿåz‚¡à]Ù§ o´ö;"t<¾mOl&x…CæˆE£ã0òl7VºÏ|ëõúœÌ•9˜É‘ˆ}3Fz0MzÜæœÏ™SU„„ sG_5_b¶usz "vKðº6†öà_Ž J’*Úõ¨ü}vA:Ÿ~sS\ 愉5mFbÃçÄÆ»HïO¡¸ÒضCïíB!ÚfhßP,¶Ë×7e;aÜ"¾1LûqÉ^šê¥ûén¢£˜ã½ô¾()ȳÃóY¤wOÚéô ÁæœEÏî™72(ž£XywbÊ×­H²'ÓØ)óDfÑq{›l}<žÀ™´º/Ž1eaOÛ„‚!œ’Cj kJÎwÏkÕïqŽ#P\e²Y( ¶Î!;<‚9mÓñÀÔbŒÈ = x2+B„3Cè/÷=Š l¦{GZ2OTÝOcC#†aÐóóʪ8ØyÓ4)–ŠRËðD‰G6cd ¯ûénüWÉ5Ôm!²V$Ýz_ê%{(‹Spn£ŠÅ¥B²©fa^FæD8N3ûézº›'Djc[•æ¼Í)Ò8iQ.—Qk?BˆŠâgÈz Ój¤XQ¯ ^%Û/¾ZŸÌÔy¸ïS[¸ÊNE‚㜚i>{ÔÁkôKb† Œç’´/Òé(1·÷²º$hÙ”Û´ÜÚ‚=¸‡˜§‘ iß¿?Kl]{Ú¤ïç&º?„ßïG«ÕØ9@cS#šË!¼"@rïyÀðê^y h¿_f å ²Yœ" »%•¾"ˆ¬‰P,IK¤=™!²3쿳±ƒœ¢  Yу¨“ÃþÍkC„ý¸Fl›ô4šOÃ>fÓ»½öû»è~JGTÀÎY ¿G%¼*LòÕ¤Pæ$ÆqRWù‰¬‰`>Ý=Oï5 ÷Édš=´Ùy›öï¶cš2‚{ËS²½6Ûþ:}¦f\aÈ"Mt•Îü& h2h{´ ˜;œŸ%hšFxÅfìœMúÀV¶="Pƒg>M\œ’CùD™ä`’˜¢0â8¬>œ¥üÛ2™×3ÌÞó‚#iâ“Ö<;ª3a,±ˆ¬ÛC÷S§1º*[Ð¦Þ õ^‰'‹E—R%y½§¤±[‚¨ªWj‚<6a€À¢¸ŠB`,ÔPº¾Ûœûýfe’Ùö9›Èƒí$¸åC±8ˆZ $;Ø9 ç(.}q+ÞšÕDÖÆ¡"‡úVEª¦gOç) øDÇ›ÏQè…y%¿ìG;ŽÌ±·&-Š.ι±,,³ÿ EBõ = !¼™½ÛM„˜;еr6‰G»é–ݳ¢34ZÇqèZ†W“UHxU˜Äí‡h»½Þ—{«ÔíÞÝâ·‡ ùý Y¯êEñHgaÛ¶¥:Ý)¢¸ÜÕõØùp'Ö”%õ+«ÂÜyï„›| }±Ž]è#¹_Zâü’À°ycÛœCÐéHÎÌ ý††¨€Q/ƒ×Ì ‹1ReTžŽöå9~ŸIϳ‚.Úï×B=”E×uü×ø" 14 Ç)Êš³éÙ1£‹Y&µ7…×ë¥x¬HñX‘£Š‚W9ÕÈçóÕ®mÒ%áö0ŠKº”¤¤¥î«T$|Q]G¶mã¿Æ/­=:-Á"Å’Ìï1ê5RüÿÅæ÷B>—§ïHßé,ŽÓÏÐp;Šk+ÙCY3FoÐ?¶Ø4~L«a`N¤À–RD®³>örޔŶÛÄÖDéy:1Ç G^yhZ„ì¡©½À ‰Ú° EÚïˆ0”5Ïšuþ‘ªbmïÅ]´¯‹Ò2nâYTeÑK>?ÙVHí¶¯I „äûO)ž(ÎcÿÅï‰CjÅ)‹øp»`£ù´9ì9EÑpœÍ@‚ȺÞ®BÛÛÉHÓYëÅÊÏÚ¦Ê UʼnÝ?é&²*Dxc˜È­Qx¼›Þ½}Q s2YÕËÌáUõy{uI›¡˜£&æ¸Iâ‰c£c@è%{x>E]U|>/#»öTW¶•“ÅÄ.)˜»Ò¤^?µV¶üp ±»blùá2od°&-âyqÀdÏ-¡ªóŬMv4[5ƒ<þ%:mküŒLÚ„®Ðq„À^z~Ö#Å}k[q;§ÅNG÷SÝDÖF¯ »«Qrã®qË9šªb,1°¦,Ç‘‰ŸSZ­†]ø&­y…&öÍÖèA¿NxAr]•¢å² @pYø·ãtüy‡l©ÍZw U½wÅÏ*"ó¬ë’‰—ÎâÖÜ$žHHÇa¯Œ-(Ÿ(cMY´?XfË_ÈŸuëZÿ¼@²® D1£cQÕ×À% Ìlz¦¢lÅšl£ûÐ)Õ\QÛ&¬ªÆÅëõ2’!=˜¦­µ *ø±Hw…޼ e†ˆ¬ÞŸ&óF†àðPUq“ÞŸÆXlH¦æÌ­=sÄšóŒÍ6ì¢ õz–àU†ÌÓªUÀë¥íÖ6:þ¼CRû] ½¶KýÚ ÆÌ1IÎpɃnð*c‘œ’ÏdZ×ú 4XÓ6]3E¶ýþvôÛ¶Iïï§±Á7ÈòiƧ*<í#Â/¿TN«™ÊÉ BüÅSdXH›îHsdÎðùÌ×{ìÒêJ%RcÑ~-MçÜ…÷äPx"W ¶.8ÏÂýt¨n0d98:Q5V̽sê÷O¼=AtŸ¶æ•Z@]ÓJ<' <ô£mdߨ7o°]ãgÿeÞÿ'N|P"ü¶ÉwJ#ÏÖÛÈþ}–·÷±éëQú’»ðÖx98xPÐÍð¡a‚×)¦ä8XïÎ%l ¦æÂòïJ=Hèúß»÷{!¨ñÖ`µBn¾Îq‡¡}}Ôi ìÚ7Hrï ¡¦ËiûöÝØ–yVûtsÜ${8ˆu8ø7™.CsÃÔÄæÔ4MËF8þþ€‡– -4 4\Ö@ûíÔ/LÐÝ ±Øz_”ÑwÜ5n ï¨_XOæ é×ÒŒÅsá&ÜMåäcôïí RyEÞ::%4ÿ±Dî½õ—ÔÓÿr?áÕa´‹52‡Fç ý²#Ò»w{¯ÌŽÿ¢Fý"÷ÿ!ç׫?£º/Ô±à3 ðªÞ9ó1€ÆÅM_½œéw¦q) (J<ÿr’•7®¤R©°úÆÕ çèùå+‹}ÜtuC•,Ò~Úž¦è¹ík·‘ü?ºÑ¿ `ýw½Px¯@… ®÷F¹ü‹&&GéÊY<É÷ÀåÅuÁ_ñXׂ7™~wQ*°ôËu_¨Ãzg‚þ=Ô?˜… uÿtŒË¯¼ž_öÿ’•7®dýºõˆƒ¯òŒ ê—4¤RŒÞ¸’eË—±òÆ•,øÌ¬)‹ø}q¦ß¦"*äÞÍ!>Ķ÷ý‰–ÞÇè²Áëƒ|ÿwi6q/p¼.Èà냌žÃ%ãù“z…@ñü‚ÊI/âƒ^~¾}7­ò’=’B¹@Çq.©þþNE¡ÃÁϪ4ç¦ØõåKYð™ÿ{‘s€z­ž¾¾(o·P9 ÚÅn¤þªMK¡zTê|u”~õ M•‡\.¶Áð¡a6üÉ\{þÓ÷€ÂñÙ·sL¼#?K½¯†åW6À‡^{“{_ |c˜-?ÜBéƒëZÐê5üWû¹X»˜•Á•Ô©žô4¹¼ƒ²’†qÞŸ{hÌ£¸\<Ó·¿úkzƒŽËåÂ4Œ«R`¥¡QúÐ#ã¦,&þA¦cê‹tüWúi¹µ…щý}ýD7F‰ýiŒ-Ï<«TÀ´ŽU¶³aøÐ0džɿ›gùªõìû«ý<ùlÊ Ë—-Gû¢Æ¦omd‘ŸœœD_¤Ó²n%å÷¦œ‡¦THýíÚ‡y¼õ¯ ²´i)KýKÑ.J1úÖ× _Ýdú Ü´V&&¾ò¦³0§òØ…­LŒÿwßSB”ÝÝÝ;VÏ~0ÿ½§ÈÃFàp–:pÑÅäÞ&ü—[°Þ¬¿e=Îq!‘µê´:´‹µª;¯•+:˜eôhžÁ‘ –ßa媕ÒfÆåæùíÏÓt‘‹Ð• 45h4¯Z‰û‚ ÙñíwDÜxápͧáùœ‡:J„®] Ÿ­§î¢: Ç 8Ó&†züW/Ç9žgøí6´/ºˆÝ¼…ÕW'ézª‡Áƒƒ„¿¢RãVxæÕËÙõ·~FÇ.×÷¦º[ò7býÃ(ž/èŽð(ò…<|·½_ÂsÜ!ër‘¹¤žî§º<8ˆ5e^f劕¤÷§ ­ ±å‡YZ¾¶åµ4 • ƒ'+Ôêðz½ÔÖþ’Ÿ=û3‚7qÿ‘û¿ÙÕCܹàºà/Ñ/ ÐÍ3òŸobu¸Àô½‰Âñq*'Oµ-ov¹}^E9_^^>'xÓ´xå•Wä6eQ©ô#Ä“¸”Ë)•ꨜ\@åd’eמà¼Ï#ýZšK V^¨à=ß…ËåªæOt†X\NàËn.©ç¦`ûÞ÷žsy×ù.Š'{Ó§¼£GžAˆçÉ¿›lˆl`מ]Tþ©‚8)˜~gšÑ#òõÌ©ü¼BòàyÓò¥,ÿªN¤5ƾ¿ÚGý—êq_è®æ1}šñ©-6¶G!¶v=—NNpó'8²Þæ‚ìµÛ˜ÎM°lùÎ[)œÂ4±ï<ÄHv„‹/º˜ÂñÑëuv¦T(H¡Û' tmÛ¶Éår„ý>DåŸÈfö‘ûo…¥u2G,D~ Ëv˜x'OÛ×ÛxòÙÞ9…@ÿ¢—K¿¨²Àíbìm“lC½“&]ï•Xý×û|}Wå¡?ù:%±ó7&»ö-cô7=4\ÖÀ+¯>OæðD®oB7š'|¥>¯U—Ë;Ô™àÅ¡ ûöï£2ÓÀ^zåR’¿NÒø•FN|p‚'ŸªÇuÁ¯˜žZͱc‘Ëå³Xc#á« ϿݜŽöÛà ƒ¦M郹wr<ùÔ“–%Ar ‰®ë,_¶œ›#73°û ?ïK2<Óºèh ñ½Žvvýê%Äù5ô<×CË¿o¡ýÏÛ)½_¢áóÐòÇ7òæø4×_{=‘?Ž`lÌ1c‰ó~ãò:öí»‰Ë$«lXŸâ£üg-8õõõTŽŒRsR{gš»/7èß“&|c˜Û¾v%Q¢üAY2$ý×òô›x\¶zä!ü? >³€J¥ÂyžGÝEux?çE¿ÀÁu>Ô}Q2#kjÜØy‡á1‹Ð• T/¦|£?ŠK°©§ôöAŠʬ™ÊG âø4v>ùŽ9Õ€s<ÍCÝU׎è?+KùÁö<þˆº/.Gœ¼™úKÒ"u ® —;ÆK{á|húª Äkújo.[Îê¿ÞÏKB0úÖJ\JŠÚÏÿˆ·x’ïO`4ØïÚô÷5s÷Ý“ˆ ëéÿò%üú|_mÄåráõx|}Áƒƒ”ÿGíK+o\9Ç:ÿL¸.¨Ç9îåÍá0N)ItƒÊ+—Yóæ¸ ÕûõäÈø‡Ê‡pñq‡Mßî¨Þ(ÎDådš›–±þÆ}4_oc½=A ÍÒÌÒÛÚýU? >¬ù@°ôÑÇÞdÁ hújuÕa¾s ý³P:)H¿yö–úÄ;yêÔ‚W6œv(½ç—Äî*`1©Qkª3æá7‡«…æã _ìEYà¢T*QøÀÅð¡a*TØÔº ¯êýÔÛÖ|j‹MÇ…< :Î;ÓÒºäcÐs²Bñø÷¨|¨ªïá;]Û°ÿŸ,=?ëæØ^úåKXG-_Ñ ?ç K°¼I§á4ÏÙ xÜïOÑp±Â±ã‚w’yËú½ Mç7#ÜlÂ.i¸ìbÚ¾Ö‚öY-Ñ<´7Y$tõåèyšÆ::A`±N×Ï~MöÀ.ò‡'<ú˜ †Zµ—°}§@øæ7ßäæ¡b×Þ]˜c“ܽÌwl&Ç'ùÍZ]ݼ¡£…»ïØÄÍo›Ä.ôàjÛD2™Äw±•Á• ¾>ȱ÷Ža¾#vG55.2‡j¨œ”­Íðµé¿3ùÞ¦M—Õ‘yëì*ç@“βk”ÞËñX¢‡¾Wû0ÇL†ß–vd[,xCºÚ:Ì·Í9úª†Ë4Ì¿eô/%*–Ñ71utŠéÜ4|P wÿßûÞ÷ú»!²ÿ9Ë¥—]JøÆ07­¹‰– ~ùò1DÅbôÈ4Ï<Õ†]°ùzë }ä'÷–NËšåø/Óȱxsjï =›6‘ùj#ÚE _i@œäßËcY/ýò%ÌqS¶êf> býIEv‡åÁå´üûŠ¿ÙÃ÷þc7V4qÞù.NôîÂY¦òGÓN™ÛþÃm¸½õÔ|®†gþò*T8ïüó(_Ãè[£¼²wÑ·F<8Èè‘Q†Çs,m¨ç¶uaê.ègððÜìíó^\nÙ·ëq¿ïç]8N’3Íz=»‡É¾]Àó%è†(MW6áþwnnºù&Òé4×_Lk[+»~½ —« õ³+ñª°åýKùõù)ìëW¢ë:nwŠþ¾~"ͨq×àVÜhiL¼=Á¥ú¥ìÛ/5B—7\ÎÊWb44,i8gË»rrOŽs9±˜Bàê4_mdý†õ޾v9[†2—‹Í37‘}û÷a\aPúàMîÞ0ÊÒË|snôïäYp¾‹ƒ#,]q3¹\ŽZµ–Òÿ(1r±Í‡²¼R© x™x{—â’3²Á½üÓo+X¹ÂœÔßÓa,ò±áÆ ‹.©ÎkkŸÄåòyÓ$Óé~ªûœŸû\˜x§ tŸ |#CàêÎÑ!ôZ×9‹ß§ÍïÍqغ;EºòÉ7ÇñJ7b—ÁÖG7c;EÒ‡,àÔÆ×ójšÓ"¼Ì ö@‚ÞŸ&ª:Ÿ3a+ Ú9â~_¸= ºn  ›QÆ)É”EÍ+Õä#£#¯Ð)ºª´‡Ž{£ôîÌà½E¡ëÛÍXù"[„€G»ˆÝÞÁ¿,L&›bË_H{`&BÀG±P$|]ˆì‘v&éz >ÿ»Ø9@hvøáú…èîÝtP,QUÈÒû²ÅUDˆSìž-/¤0ûÐê5ìÜüÐVU|…–CtOÛèõ]÷¶ /:¥I1®0ª}ñÌëéæ`žzx"7¨Š‚]pà·Ð¶1‚â‘ôÔÄã ôE:ÝÏv¡ù Òû;èy.Ž¢èÄïëš’4i\^3@jwˆ^ë JòglM |ªFxEˆ±I‹ÎÅAé]°;E¨"Û(ÉW“ˆÜªâf 3ô‰TÛÓÔZ{Ú¦ç9ÉæêxVjÿ5~Z4Èšˆ|3´ør¹L[k–eá÷ûñª^œy´cHéÁ æô|õ{úô&Œß§Ó»=‰5éúÁÕÇÀ®m·¶UO¸¨®!Û¶ilJ¿'[e| ±Ç1pJQzÖôªqÓ÷’\ Ñ[¢de¥ËzÞ&Ð@_¬Sþm™®GC¨êŒ³òÌçqN3YÅ#³¬|¾2ª§K[Î:¸W˜ãf0ËŠœuè}!êc±ü\œ‘-ã_!2ãÐólÏŒßÞ›uŠ'Š„V„æd'nÞ{6˜Sy¬¼ï´Ï–/$0§i^bË_|Œèw„9nVóŒ:¸b·„éÝù‡~þçâSQl€ªoÔ'a6_£ûén¢küxgLü¢£šÒôo6žàˆE A'ùÒVÇ™Çò(ø÷ïÐfûç¢ëÙ$Ák 2‡L8C£Z}#Ø6ý/÷Ó¶.LŸcÑ¿;Cûa¶>«Æ%ôœÁ0i½£•ðŠ0c>y+KìQt-o¡^µ¬ é§–æ5a‚ËBôþ8Aþ,9B’¨jl>RUº… Õ£àAì'[érË´ß?BϳQGêŒE¾êéΜÌÓöÝsøÑUƒCl~ÝdÛƒ~9C9"=¤²‡²'GˆÝ¤wg¦ZtÚl—æžGLŒ–Q¬œEÏ‹I"ß³õ‹Î»"UÖ_Béf¨av»!Àqâó #ÏVüWͰ§ïA”š¥06gã Z¨•|!¯Ö‡Þ £xR{S„‚!öì-Ò»£ŸÎ‡;IîL~¬÷±@“NYÑÑ|ÚYýúZÖKÛü]XS–̘©UÑ긽nÊ•òû™Ôp˜›}òqže§#ñ¨MñÄÉCØ9½^F$ë‹W] IDATtŒͧU70€±QUÕ1–œž»"E¸í÷·£iaDE xZÖ· Öª˜¦ÉHv„€_úÌY–E¹RFñ’¡Åéý!i;“ËŸ“2.a!*~D)SrÈçòÕxãÓ/@jY‚Ñ`È03‘Ä)õbN Š¥¹!Áë¤w¢±ä”¦îl‚ñÔÞT5c'þÝ8éW{1i¤³&C=çØÜç1Â*=˜ã2îûŸƒ„G¡ëŒ½Èqš×7£ª*ý/÷“Êd1tÙ §ú<ý[Á§¦Øü.èü~'¡e¡*[-yšZ|Y¼ªäm¿¿¡ŒTÝžkتŠï‘.ÌÇÿu íÚïˆHG\!Ŭædžðš9Ì÷8Ø“jUþ‰I ©cÉìOÒ £_BÌHŸ%![7±[ÂøB_2EQˆO<‘XAÔ¬ £V F¡ª*±oÄè~Zú¶µ2÷%{xŒ±¢¼œ ZI9&5SØ­\žè-ÌI‹ìK4.Òd€ *nzvoÃëM²õ‰­ô¼Ðƒ/2°3‰ãTm ½"Øü„B|ãL‘ô(8.…ât?ujó7Œ9áS±[‚ôíäsTHUÕ¦÷ç[qȨÓä-fgRf…X’VÜó\þ%:†î µ?…V/3æOOíSü.p*PÎ;h?‹Ñ³½q––Kðº t PUOws^IHOºi«º‰kµ#Ã#8%‡à5AìE›É9û÷¾FR“Ïô×óì åú† ÑuQ`+=Ïõ"*‚в6TUŠþ—û«ºžŸ…iûF ë,£8Q‘ÑÚBHkù·e|НªWé{¹ m¡óÈyõ(ô¹Rdr‚±Ÿn#ŸO0 5GQZ¥9¦HÏ ¥DIÜ*; ë–(šO#ÐÀ]sŠ^í8ês=´yTœClÛÅ)9ÄïÑçâ÷ÄѤ†JÓ´ªá(HÓÑp“NqÆ#.°XgϨMóMÍÒ¡`¡†¾P#P‹|€û¬7ÍÃÇyCž‰m…¸G¥Ss‚ÿÌqkªÒà³G¤sƒÿ?-ë[hkm«&Â~Úqþú œ eU壅>ö¨*©*þkd ÆívËó´–Æl˜‚¾—ú俨dTCÃλ"àÇ >yK>7úfòCίG!¼® ­NšsF7FBÜ™DYäÎGºç…Û¿£_ž ÝÙQ“¾º1­Sq *6úb¯ªbŠs â)¢ª6¸bó^÷Ò’`KœýiÌý)Úfn—ŽãÐõhí÷m•ªåZ•¶{ãøj½Ä¾5ÿuÎDê´¤¨€5ea[²àv>,“W­œÌ¡((.¯Ôf䤓°W•& }û;IkÒôî–áh÷ÄøñV¹ù¹d{ªýþvœ’ƒS’jç÷;Q7Ñu ŠNk*IÙÓ†ãht?ÝMzšòoˤ¤eÌõŒ>C­•?¯HÐ ¶±™ö;Âde1–Õ¤ÄYD= ÆšAU%|•ŸŽÇ»Ñ}>bwDi]+×lð*λ"„ /æ¡b*CóU²P(Š‚¯Ö7£—JUÍNÃ+¸Ýn†.÷Î@l] _'ºÊO|cxÞÿ9Kšmíu?@ˆŇ5ýŽã`¤PÐï÷Óþ`;š¦ Z´}Ãblt®ÆÆ7Éf³d³YÜ5nÌ#&™Á #£#4ßÔLǽX“I¢3"F|:R#5 íÖ6W}QQI¡(gÏ}Ÿ¬û4zv&éy.Dì^{Z¶ÒfãÚ<*†G!èÓHîìÂW»‡Þí ÔÚPÕH<‘ ¿§ ÄÏtQ:~€ÀMõ¢ªJõ{ëz¤ »PÄÊÛQž™Å ,ùç[þÏ®÷³!zÚÞaU _Xgéðônï%=˜žs5%A±XÄýtÏnNǧòf£xØØ†ò\( Æá,YÀÞÃØè˜œQ [/ßí QJ@Á$›•–'vÞ&´,$müœýtqz;é÷Á˜GÁXE ¦Êççl° ]†¾‘¥7©zÁ‡¶°Õ£RtŠlù‹-t* ùÛÛØÙNÛÚÍPk r#(Š›¡ìØœ˜èYu2×K‚®b›†èÙGljStćkÅ3Fô*‚äî(¢4¿Ñ+½g,ðÙþxü>9ó1§ltaçl¬3¾Ïðu~]*ÏTǃüµ°eKUôš°Ìbùy+gÓ[í­kt?û Úï“'¶F¯ öˆ\„W5W}§„€î§åZœ01\ š_ZàÌ Y%ÒÆ^]Ä|#Cüž=X9‹À¨Îˆ0÷£ öì“Ù0Ùl–Ø7bôü¬kÒªnðŽSdÆè‡b¡x*'gŽC|ö×gr1ôú^M"ÈM Q×ÑjUBÁ0=Û{Q< mëChu /õ0tLGÞ&½3–?‰'„ /ºOE«ŸîÌ»%( 4R\ðûqJi¢küsnù§Ãív#J-(ž¾S7‘aŒ%[ ­Z¢,Ês>Wc“)Å¡9«êÞ^,ʬ–ä€l³ev‹G¡ãÉÊûm;-od0!Ðë¼(.û˜ ŠŽü.ÒÜKð*°ß 8›/ã)‚Œ)/‰ê@UUÜ ÜØB`¢â0D£i omtfô“x"3™!=S`Œ%ñûâ(Ž…×£02iaN˜Õu¿=L¨Þ]s8]¸¹ÁÀÊç‘Úo—^xçÊÅ ¯ ãõzçXÍbLU1\`º¤ð¼[ˆy>‘§#{(˶ŸnÃ>fKwéqS Dÿ áSÁF;õV8od˜Ôù°úý£ʶT×z}­ŸîúQÕÈŽ¬äɧžaø°ÎÍë½è_]*{œk›)½_b:?ÍÄÛOÑý}>ß…á‚R.GÆå"{Ï/þw夅õ_ê°ßµdºRá¦eË©?ƵÎÄsÉ2â߉SšÎ²é»‘ËÎa‘Åþ4V-šÖ»ò‡å‹}tïHвñI–^9L߯71úö3D7F±ßC¹à1*îÇoÂ:Z¢rr•ʾ³~c±ožVh6:µ&cwŘ8:Á„9Áô»ÓÜùüóXÝOŸj‘ š#Ílúú&Þü»7q¶¿HÿH–´4]»œ(³ú׻شiSSSx½^ìwmœ÷Jï?ÏðX7•JÇ)’6i¸¢‰ÕÿËjÎ[p[¶lÁ•Ÿðš0/%½HgK>Ïó'+à‚á#,¿ÑCÏÔÝ>FÍQ?çÆ|Ûdú=‡:O õõ:Ó¹<†®¾~ˆ¹ã´zʇÄ7%´‹5´/Ôb¿ç ]ä¡eõJ„L/âú°B¡0ÍDΦmÃúwËõ]åGUÝäòò†g,1$möd\Ë)9ÃÄïÁøªt&'…÷ äóy6D7 _¢W=ßüWûá|XyãJBËBx.ô°ôŠ¥ìIíÁøŠAèÚwÞy'í¶“ɲy Éôê0þ«ýL¼=AådÃ0(fx,¨ìC”6£~öGt=ÒH¹\&—˱t±Næí+ïmaôµaœó]\ÿá›TD%1AóM9Nœ88šÁšcêÆfR‡†=V* jmõ¢BáO7Q__õ_,^Ùñ Zcü›ƒhõ¡kCØÓOà+:µu5”Ž žùUšá#25ué¥:õõu4ø¼óHDï(8sŸÈu+CËqSaß9˜aúe:õ_ªgÁgÌ;ô¶¹ ûOVÐïû3š×7ŸÓe{©½)V^¿’ Ñ R0,*ÒÎëc(å(|jÙhgâγÜ8œ’`Û›qJepʼn¬§éAÃ×Ξ}:¢'´*BßyŠ3–sBÒþ%Ñ"±ÃYŠ.圞am뼞.ð zž=m`ìQà?Jf³ºÇ!µ7…5•§÷'ò :FFç‡D¥'Z6J«*P.  /î$µ;Edmª ëÙ$ñ½Doo¥ù Ч<' -žµQú·÷Voí÷·ÓmaÌ£gxujˆÀ²fŠ'ŠÒ–fÜÄ5åp¾Éþ>ÊB`MŸ2Zœ âj¿#LhEÝçeËöZVò§¤e<öLûȳeaªÎÖ"œ…Ù3Ô;‘gÐŒ4ÆÖ¡&­#eºwÌ nÆØL)ccˆâ5…ÆÈ1öj@®\Ò­\ãÊÍ1j÷¢.Owˆå‹ ±Ó?^’’lùGîm±3yþ%Q‡‡ïyŸ÷yžïUñØ·(^×!‹ÔáIû $ E•}-Km©¬NàpÖ&0vF˜ûáÓa¸SïN)§È]Öa‹ÊrEéíu+©wÕ:s¸J¼òÅ0‰Ã Êñö/Š8·¬#‘HDUŸ»"œËå•ï"‹ì$˜ýQ‚Ø!›øËqÌx‚äN{¹Â¼”ÌžÍÁÙ"~«Nò(T½GZÎ× ô^kÍíKÁÀF¥ëÜq0 Œý œ»«ˆÀÇÜkâ7%Í–”>^×¾9ûF-¤áÜu¶HYõ¢ü‰£L·Áœ|k’ÊRe‹§—U¶øÓÄ#:~ãr*ƒ¡ë[ИO »kC )]-1{nc§ñ…0Sû\&›íb+̯JéJÈVšú]È«á»}ÃVvÅÇâ8KΖñ“Bˆq@GÊ';~>Ù7²!(<Å%4¶WǾ+Ñå°ÑÂ:Ýì‡yÊ¥r]©Tk¡£Þcö¸ÅùïepxHÍØ¶˜8¤¤Ü½†‡dG )~T$ÿ“<ÓÝaieÅE×ÊdG}æ.M<æò'%4î9´¥TÞ绕„ûª³J£Ñ@AâðÆ ©à­{ G•ðö╵&¬¸XÃ)êwÔÆ›=aaŽS©V‘¨-+3ë%“æ§[ioØž:ž"9š$ S¼\Dt$åÅrãøõÊ*„‚L 'qL…™æˆjhÚ²S¢~Ó¦úñ “'-rog©\.ªäÞR÷ÝU¶½ã]·ñ“ã ÑÔúë%èk±ý&æ>“æÅyè(´Òå¹×R$‡-ò·—UJ'È}$÷¾À¾a³º¶ªÚ$ÝþäÉ$™“)Æ^Ÿ&u<T±¯«ä[¿S#zD( Àˆƒ{·²õTþÄA„s/¸¢j˜O Ûúk5‰™±ý&m@Ð0M!‚Û¶<{1óý5Tß¡«jS ÷•À3§2T?©ªÀS9¹þ¢HêXŠ`0؇W·»wö¤DÊÞÐÛD iXÑV|ˆù%}‡Ž )®¬È‘­¢ ˜»ôä“{ï`j!ÑÞmœ;ζ&‰Î‡ä›“”®IÁm6û€cpëŒ&s,Ž Ó–0s±¼%ÑL¾5‰a”ËÛ"e+¦­";ÊÊz$" b¢w¤‚‡wÚýÎvQý¤Ú·0÷™Ø×m¼õÇÕ´?ñ…I6†lÅØ¼¬„dN*ŸÙ‘ý“Kù“&ßš|¢u´­b1©-Kë:ÛC[7GO’¾zóé'D÷Gr8¹×¤V¯‘N*‰øÅ2Þ2çIîÌÞ!±o¤€…`c„Ø‘$þÕŠ‹ DãVÓͽ–bµ%hÿ¶M³Õ¤²TAJI¥ÐìÝ÷”'z7êw\êw6NþÓg¦É¾–U<™û~G²úP`LRºR"<fòB‰£͇M%mÞ;½@T«+«ƒA’£é~ûª~gãþÊVÙéÚ_wÚÄÇ1öáþpÿÎãš¹³9j+5åPà€Ä {¯ÄÈœÊ0Ñrq\{âè³àt$:éPüHGJõ}{Ùeâi -ÉìïÍIÆoW0"ÆRcœÿ™JþáN0˜=7Ë9„”i¦Þ½eSëºgºëMÌ]0~4ÊÐ.f˧¼hwgÇô!jT–M A­^Sóª%R*ø²]­á­7É 'h®«Í´'yo<­D%¯Ûýäþ(ÏGYˆ¯B@Òhd "aìeíE5ã˜ÿhžäË&BЇý‹5wKåœ|Ù$ºGmª›/í6‘H„°&: ™ïB¿eKrm¹Fî`¼›Ø687åÅ2ãÃqÎWëœwÀeÈÂ8[À}gš©ïEÑwÂÄwæh4}åLª)·Ø°FA,CÓ4ò¢4ÖðfÁ‹:¹·²Ìþ Güå$¹ò:²ßh˜}kœ¦ïoñZ×uÌ© —(ÎiêM2§2èºÎÄw&ÈS:>HÄ´Û¦t¥Dr8IîlŽü‡ù-âæ(\­nþCD SYªâÜ÷É¿7Iáj•ñÑ8A@ Æ©´d™UjL¾9‰lÔɾ–¡ty¡¿¡|¦i8Àì@˜œo¾d“:v¾o§½9ÉÚÃI²‡-ò7m¼®m‚ï«£Š·Þ¤â”Ñu½¿¡K)ŠpíE@’y}Šòb#¢FUepiûV ØZ5[G-j˳XÑá]1j+5ÆRcxu›Ädðš>CQ !]´:ºŒŸÔh·ÛT–T2._-w9$Ry ¾CGTà˜Â…"…Ÿ$È|Û¦éëHé +¥vÇíËÞL|»Ld0Lý–G,ºu3ô®Šóv;ï¢k¿%ˆî‹;ýç2Ý‘ÔoV1}÷˵z DPƒõœ¦qm¹ÂW÷Çp‡ôÙ×~žÇŠ›ø-‡Ì©0íVtòïo(›û°ÃY*‘;£“ÿ“ ¶î·dŸOJ4B0÷þÉ—MÌ:s—l×ë¢6ª눅÷A¿#q&·}--¬‘{M0}¡9ÞºÏæóCþÃ<ñ}Æ®šnû:O‹ôRe[•ÏS|.¡ÏO‹É7'ɼš¡t¥Ô¯dKµ\  ÔoÕ)þ¢ˆ¹×D„º‹"%Oùv†Ä¡ÙײT?®âûA¤Á¾1 i`ºöÔ¿Ÿ{/Ge©BñçEeò¡Ï0÷~†˜gr$B‚öÙÓïL#¥$ÿã<ƃô7Ò¸Üþi$s*CôÀ4ÉáÙÇN%…+UJ×ëÔo×·àõg.–i4œ'ÃxÒÂÔ ûNç¾r}Á÷qßœ$÷žò±ÑÂ[!àSߛ½ï*Ï•:Cû‡Òí–pªm¡Æz“ÚJZ½ÖmkÐål(iþ')sÏn¯Þ“„M‹ðƒÂÅ"ÖA+£x=Mᣠó:ß÷±v«S¹lÅ­W0 ƒJ}•ÂÅ¢Bu7”|_•N†aæ=¨ÏÇÜ·Ý;–ÅÜm’¿§|£Žs×ãÚR…üe!jÈ€Žiš$âŠ|˜:žB¶$ÓïLÖ ÆÆ³èƒ*yëM*õ:åë6ör™Ä¡\½Ä¤Ž¥ˆŒbzÙaörã¶£f‡áFd0By©F}ÅáÚ #Ã#ØWçÒÁ^,‘MbßuÐ#Êc¥Gf·†Ãä›Þº‡”#ø~ŒôðyôÀ¹«ˆÂ†¡d÷cÑ™×u@(Âí#Q[s©;ÕåmfIíŽK펣Z«+«ÊB¢¥IEHP¾Z¦îûØGª<-̵UÍK) †Á€ ²#Ld ¢Ö]H;›#w6§p×1´é7·G‰t<2£ 2LJ€ÿ®Ñãvmë%“ìq‹ñá×·ŽZýƒTt¹ÛÀzɤü‰Cþ²Ý?HM½;…}Ã&/×"”Ë}ÿ¨žEÀüÕ*…«6²5”c$'Ñ÷[8]ŸÞÏÅ-*·ª·Vç÷–ö}? )¿7 ñ}fÏÍâ=ôðn«ª-88„XWk0Y‡„ÃaìrchÒ%R ª¾â>uÎô¬HŽ&1w›ýµ:ÅÔiøMâÑ!ü‡MN *wm@£±V'¾ß ,•;nZž}MÝÓH$Ò¿ï¿Ñ4ŒŽ$ÿFš‰ˆ¿g,5†ˆ-nÖ‹èÁh¿¥?ùæ$õ[õþïµ­Çy†ÚÂöñ› £Ó=ˆýŽGsŠëº_¬6Zþƒ<úe§ë¯ûÛ¢Djw]èHæâfÑuh*ñAd«ñÔD åÓgÔ¡ùiÝ'2Ùö¡ê…sgç®F©å3.%óÝMjÞ÷¡»°D@Ðl©‡^i™XîD ²gN“Œo_‹ÀFµ`^*ª™Âm›Ùw&ðü6Uê· ¢ã'Æqî*Ã5€q!à»§‘çr$º›^¹Þ¿¯—ld«ë=Ç" @9yº÷Ü-½ðzK’uVÚ?Dúi¦ÏNc xR#Ü^o´5¥„òõyÒÇm¤Ì](]ªmá•®”°ŽZ¤Ž¥«¦‚ëþ—ÕÓoŸ&{ÜB Ü«T?©â=z↾ ¢ï¯R[‘Ä¢±~ÿ»ÝR,ÿÂEƒèÁÂ/†)_O"ÄRn¬Uy¹w’¡ýCD"ä/äûŠõá"àãÆM&¨™›‡ vØÂ½«TÒßH#»ÚaÚ‹êäošÎZ·Ïë¥Ë_&þr\]Ǧ{Ý3"ëÀµÔ0"Šõ®iAÂ{¬ÇLõ[™SŒ=É£Êï©!ÛÜÒ6Rk GîÜdwèÿøs1Ñ©¡šx S[©1´gö%ðnWhÞ­a4/†1ë«$â œ›6‰½¼¨‰D0v¸®Æê-÷ž‡u8F³ÕÞÖ¸ïyÂÜk*…‰w§p?)£Gt C'ÜÔp]Ù‘XG,‡!°8„5 "j YG,å|Úð¶Ü»/û>mMUšÖA“ñ#CÔ]·Ïkʾ‘Å0 jõÚ–ÙqþC“è î}esý, Ó³âËëÿá“ÌÓâ •l@‰åÑá‰dÍ|ŸÏ"¦?Ì! *U‰¸$‡ð¼ç×*j~Ú$w&Gî\î©ÃE)Óý¯{‰æÑè¡®²od)^*öYã1]àÞ”n$ØÎ2ZJɵ®s¡xû úÅù"‰¯5™>&ÿ'Æ.ƒ‰ïNà=°‰EÓpâ‰ñ'³¸›h@S?š6ããÔœeò¤Eæ›)*KÕþ)2{Ü"5©×²×k4;’bH}=«Ú•ûÌ>.½XFtdßÒZÐÔ¤åbßh°ê¬ì‘…L“9å“ïëUõMêHs—ŽsÏ#y|œêbìqkËévòÍI¼Û6ÖKf¿Ò5ÁäÛ“äÞ›{"4¾ß`dXmú•Ÿ,P¸PPŽ» ÜûnwÖT3½Ž‹¦©!»ïÇ­±-¯å­{¸÷\eŸíºˆ€À¿ïØo-òWªdFéköõBjê÷;Û«IáÓ\¨=Å4ˆ Fˆt"}ˆ»·îlIR'2¿DßÃCÐn{¿ìW•ó‹U’/›T–¿v¢™=7«\d…Û_gžßDÜWíâÊÏ:b)i¨€@ßù»Ú¿€ø.…,¬,?rg•í IDATI±(]P‡žÈí±kU6Ùì Õ}(\Ìá¯c „a0ºË?i¡hœ~û¶õ)¾pÉ p1 l[ &Ž‘–3.zÐ)#ÒåßíoÔoÖ™>3­N©ÿŠÝišjÙô6ÂɓٷgáŒEq1½íïd.ú­šÒ]‡ÕÅ’j-}ì°°%q²¯G‰íW^1Å{êÁ™>3Í—Z’¦¦1~<ÅÐåu)±@ »}'%Ô\‰Ô6 ŸBb/Y8Ž‹Ù‘ðö4œËQ^²ñ×}ÎèñC†“„ê'ïÞw‘÷ª¤¿>FþnµO:̾–ÅÜ¡Rw‰hCG Ev‘0™o+V¿ã8˜»t’Ãc4ý&óÝ–†wÇfl4‰ç5Ð^xž×’äÞ›£±Þì‹}> _¡ø¼uŸhÃ'€™6“oNRý¸JøÅ0Óï$ȼêcšctì?}7Cý®Kþ’Mòeß­S\®£ëjöAß§Ý‘T–ëøÝZ† ìë )™:–¾:RC}çnƒ™Ì`µhz‰ÃIœ»ÖÑi¥>-38·m‡¦Ñ´ÏHަ™ÿhžñãEw¥‚!4[>õ&‘}ñštŽâ*Ñ4¢ûã¯htº«Ï¾?ÚÖ¡_ ΑÛo€¾¿É:;íó |ßG´œ5b ¿¤¶R#O°PZ€Ž²×#:Í{µ>R1¿M£S¢_¹÷bòÍI¥p°© ‰ï3HD•©{ßݲ>ìJF±mÛv3ZïÑØŒì%šÌ±8Í€²^·^R@ƒñã}NM,:Oñ’”=Uˆ0Æ Žs¯Êä[“”.kÚ¶vâ_ÄøÂ%›ü‡§ÕøµÒXêÀé·gúríÅvÑUîñVÇÿÔß–Ìõ¬P­#‰§JîlŽk¿,â6šäÏM£…‚XñͦAb¿ì€½¼Šs·Ñ}¿¾ì3ËDF™=7‹ïÐuC‘}Ÿf«ÉôÛrç²ÀÆÉ>ìûL L 8>†q©ˆ=|ûFs×õÛ.R3H&û<›êÇUê$Þ…Œ]Q¤¨ ~QÄ&^ŸxìýÅ_Ž“þF}P§|½Œ€ò/¶´a*7Ê$§•”Ð’ ëöR“ph+Á—mæ~”§¶æ’8Åkø/:<ÝdãKpuJ;š Ù”Lü ÀÔ©$ÙWÓØ7*@UX`T+L_Þ´Á|¦i°/Š~³Ž'©c)Ì}&«k«Ìþh)¸÷Â8w›@žÆ: ñx,޹Ë@ )R£tÝ&ój!õÛ."†Þ$v£ÎOC‚‘ËEr£ ò—ªŒ¥Æ¨Þrûv½*.(«ü‡yrgs}M@Çùí eßùà§BàŠQY,b2Uë°Ñ ¼ä(Þ•*“',†Lƒ`H°p½N»#©;õ5Ôñ$FŒˆG:ÊÜÁ½×èK¶l:ú€è"©>Ã÷G ó”M8 ”Šó†c§`ÈÂÜݵšè(Tiúiêõ:“W0;’0vcšñãÛJ¾ôbBÓp¥ä³ _J g„|»Ÿ¯Þv1Œ<ï…}Ý&÷^î‰0âÔ‘(æn} º3u,…uÄ"v(ÖÅŒï3(^#wªB 0 DÔ$÷3¥Á'BñС 7žÑúŠ‹ï7©¹’±=a&ßÎm™ù|Ñã —lD@£ð3AæÛ ¤:cäÞ[`úí¼ûž¸nÿ4åi‘s³hçf˜ºç2óŒS£'=åí¢"{Ü"}2õ+*I<sËkï5™>3ÍÜwÓTªF¾ž¦ùi“؈cîÌ$écãŠÜ÷vïìi%ç? ÈߪÓì(ÇžèÁ(ÆNýÌ4ÞYÐ¥ƒ?hP¾ZÆ4MrïC ‰µÕ¼' ‘²ÄÌÒœÖ4DÃC²™Ñ9¢ûS8+uæ.ˆ Dh¬7úÊÎÉá$Ænƒ…Ë ŒÅX7lN·$É—LœFwÜ´úqc§½dcj’ÒõUœ{[7®ðNuª´ŽXŠ'T¯bìÑbëAÀõ|RG‡Ð÷«yÍØñ±n ¤LæUÕ¾B0ýAžñá(íOeWË ìe¿%ñÖ›¤Ž¥ˆE•×ÊBHÈèÔ.ˆu[]_ÙQB©S{§úà‰ÜÙ0Óg=DÀ%uÄcúÃj-h¡ úÎ|Ò½æ{.ÑQ5¸ç’¸\"Û¦,=pûZ«+[ÑFú€P ÃÑ(Í+e NóÓ&õ[uô±·Ç¨T+Ôê î­{d–ªøg¦q‡±h ï†ÍìJéJ‰üyæ.Ùd;P®Öpø}(xöµ,ö’Ml§âð[Å w4žéÛ6ÞºèÞ9ÐB×ðý˜zwŠùKó¸wÝ~nî7™~ÛAø¤¿©“Œ+kƒé³Ó˜û”Ú´±G*jõqÖ{ÉTÏWwmõ欽*ÇØeô?ñþF@@(ŒR îImvPè°§…ç=™$iDÂèšFf4Þ¯úÜû]µ–D„ˆî>ÍØ‘8cTúí/gÍ©œ^½‡z@'i+òÕîÚ‘_8ݳç‰/\²‘‡Ì·£ŠWЊuÿõ¦Ï¨¯zœ·Û³>/%ÓoŸÆéÈg&šÜk)"; ìj…ù«URÇS»Œ>¬Ùj³z»¦³¿Fiëû¾‚$K©T„G“8+«7Ь:9šRbîKP©V)üxÇU‹ÞØŸ p8¼T¸Y§~³Î€§2L^(`\YÀ½&µH7p]IýVcw ë° !ÂøÑ(¹}c \ë@eyšè( Œá¬©J­7p޸߽æòÕ2eTëÏÜoÒp=Š‹•þ¦9ftA(ã«Ù³”._CÛ› ¶?†}æÐm :kJ:½~Û%{ÏcˆÒøhœp—kPüE‘Ü9l9äÞËQüyQ¡ñÎæÈ¾‘U– {Mæç‰N‘9•¡é7™½n+6 ˆ Bç£Dô}è¢w¦º›W0¸Ás¨T+‘€ŽÁÐî PEmÍEv }³FqÙ%D"è;tÒ'ÓÌž›ítMCtÍ#'ßšÄøÌÓE…R‚Ûðð«íþi{úB-žÀ^²ù(Ì’95¾S'ñJ Èù« 8÷=DHpí†M£¡ÄB››Nì½WæXœènCý¿ï0öõ1Ê¥îï(¿"cAáò3æ“­GNÚâZîkšÊ3¦hÉ|«„±[GÊ6æ ‘öÐýë2÷Ã9¦ÞBš"qvÑ–©£QûLD&~¸Ì3}fšìYLӄ޲~0÷ª™¡Û‘h~¿;3|𠯳¢pÑ|â÷æ.=.|š<šÜ4ÜÏCÇ éû7%nel×ýüw*•÷ ¼ G«¸©SIšøÂÏm¾xɦ‹zR<ª0#¥r»|¾WÇØkB—Xgì2”ªô9õ0Í/VŸ{H™=®{Þºßà{ƒZ€Ï*Lôä<Ö\Ê;X òäX]klŒŠ‘M‘{/‡uÔ¢ýi›p8Œ¿d£U+øR’{-ËÌþ0™SUŠ—, láÜYŹtò„µ0sïÏQ?buO~3Ì]ÏoãÞolë×qí—׾ܕ•0v›H š¶±1›»"X£#äß?»»•gw…†7Ô×›?£©ïM~ŽÙMÓˆ„™øÎ$™×&pï-` šx,Ó憎•;›£R­¨ v­ˆ±kšv ‚”’Ôñ·¹C1ÚŸ¶1:’úrúrùæÙ¼}eFã}é–øKqÜ{Jï¬ýÛvŸ×’þfºï‹RYvŽS]kØob ê€AZ7ê4 ¼‡ç|oÝ#q6KõLžö­:#Ý5~1L8 »÷KÇŠ'(-^£º¢ÐKöM‡kBPìHb7l¾*%FhJþE iý¶êÜwN3õrœ`r„ÉÝ:aMPøþ уÑÇd‰D ˆsÏ%3šè[­¤²T˜x}‚ì ç^ã‰êÑO )G˜>£f„=ÄWP¹¶xFCbìnâÜ‘Xñå ¤·úqc·ñ¬|³äÎãoã é»RøœŽqþ†ªõ†Ï@œ>3:¾RL?œî£þ²Ç-d§Ýç¿õ"ûZö1Yõ¶Kýn´?ÓJŽ&1vªÅz«®>¿®#ì£èØíÚ…¾”;Ϫ8?ÿñ…K6ÿÆô‡eÆï5û eî‡sЧà?ÞÛ}Vh!AæíYΟØv›>šÄ]®Qº\$÷ÝWû– Û˜ž5›MŠóÊŽ7ûj÷A—üVnÖÉA¢»à›~Šô‰Ú­6ó—@¶†¡dGô] íî0¼‡l2"arçrÌœQ¯!º³‹ÔØÜ­N=T^þ’”mÚ­¶¹RJjŸThÉà òä±oT*î]w tÙÜ«„$3Ìaˆ’¼ãìnÈÕ—Æ;Ó]†¾Î{ë›>§3ÓäÞË1{.Ž”sÔoÍ1õ½)ë Ü»nWfÄ"÷jžfKbv%å c—Nj8Iþ²MâpB©BÙ’ÈŽä˾O嶃-%™o)ßžG‘nR~µûÕŒ×kJñöÊ<ÕÛJìÑó¼~’b ˆîƒçR ¶æR8s^A§»Ãû¦£”®5U!\+_S °CWFe)MÊ‹.0„ !å,‰Ã.öõ*ñ—ã¿$þr\âR.±Mß'WCòôÛyÌ]:¥« ø~MJ2Çâh!%šy-S-`A= ˆ†ÖKf¯–·Tƒ•¥ Ö Ô—ÊXû#ø~ocTPëÍkNÉä·qïå°o(ÝëÛ ‡µ0ZHSè+MS¾Ùáþüê¯å ] •ƒšë>ív[Í0}¦‰E„ˆQº^Gã>h0¿X'u$ŠìHü‡Ê•óI†pÆ@s—A0(Èž°žxê7wG0"aŒˆ_R"ªóÛ¼^¼Ö,e ÙIbîªáÜU3SÇo"[’©w§¨ß¬S©V”ÍøSäa‚¨®{8õ6‰AAáFôÑÆN} Aµ~³NeO…à&M´Ì±8ñ}Cƒáß)Q~žãsižöy ë«Ë¾¼í÷Ƈã„B_ê›U=O¤ÆRÌÿOÏßWîŒýêú¯ø§ÿô1¤MlÏNöìßÏÚê ?û—eÊ×Ê|%þ*•2ÿ$LýÖNâW„þ£cG†˜øî?¥±.ɼšaùYæOÿôOù/þî—ð¬ñ‹«7øÕõ_ñµø5vü';Ðÿ®N§ÓÁ¹ãð?þÑN~ñ> ðwØÿÚfý¯ÖY»»ÆÎ?ÜÉ/ÿÕ/Yú³¥m¯?{<Î7N¤yáßµ°ÿÜaí/Öpï»t¤zÝ‚”hǾŽëº44øŠ`yõÁ¶¯u~¹Bùvü7÷Hì78ôÇÿÝûJ§Óáú¯®Ðé8„B¿¢¾zš¯ý“rÝãk£)Vþ×î¬Þé#? þëZüßüc~õ?ÿ÷ü²£Zã‡÷ðÏ.þKZÇ–¨ÞÞ ð5Œ];ù{?Äý¿ÜÁ~óÏI§Ùù‡;Y÷×yHŽ$iüÛü»‡üò_¯@R[½ÏÊÝ,ÝZÃû«&à"ÿÒÁˆì`åÿpùÊïä+¦ÁÏþcøúÿþ€ðíÖþ«­ÿ§…÷yüäÂOúï{ê{Sè;uZÿ¶ÅJõWÄMƒ=ƒ:Ík\ÿó%”ùŸïÀÜf©¶Æø‰qô?Ôáà…?xØùg„Ãa–þl MÓðÿJq¤þÑŸ/ó/öí$ÖðYù¿×é bå/¶¿÷ÏË«.Kµ5:ÿ¾ÃÏÿU•’þ'ìÿãý¼ûnþà¿EÿOáûþÙ«-î7<‚'ÈòjWóîßÃÿöøòíàçÛ!Æ9öì\…?èБç7éoO`ÿÚ&sÌÂ:d0ôŸE¨ÿÅÖÿªÅß3øÒxèûüøòãkÓÜÁ:´Ÿ°¦üñÖD”ùGúã/óÿÁ¤ØÁW}…Ö¿iñÏÿù?gíî¿l°|s™¥?[Â:jáþfk›6º× 9c=e¾\åWŸ¬°þW-";4ÖÿÏÏ®l½ž•Û+Ôo)ù¡¥—0vî üÿb{ÃÃÏ{|aÌÓ>o±þ¼9&O&Iަ°K[f½È³hË6þ§>îƒ&Ö¨ÒKêU&ÏуÑ>©´­i¤Ï>ΊÏ_¶q=·±ÑÿV}à2ù a¬£¥¾ ™×ð(ÏY¨*"e­^#{ÂR‚‰Åí5h¶$ÞCé3Óªååû8WˆHI0ɹMsú[¼ÖÓ½8š¾¤^­Ðô7ZÎmÓ4ûH?Ïó0„$5©¬ʨë3cÑ}Qå¯s¹È5)9­Aâ°ÕMå-•gæÕ Þƒ åE Ü+)æÞ÷­¯R Œ.ïê…–ä3M#øž‰‚ZÀPâ’—mN& ²o8.$ðtg¿¥éo¦©·N$aäk#J»ì£Öp ¿å37PÕVúh‚ø¡…Ë Tc‡†‰¨yÌb™üb )1˘{̾º3¨!´ïûêÝHX#(¦9k.IÓT(¯û.F“ÜÙÞCUéEkW¯õá‰]jVX¬b½3ÍÂf™8b¢…‚ÌosŠ" åµ…°Ù»¾mdñ{í&)ÕýRàhw@ˆ ‘:íŽdî£4"4…l}û¦£7»»Ò£nB˜Øõ)†Q»[cöœšcÆD4ÁÐc l¹p¥Jü€±í³ ŠLk/×û– [Þs ˆÑñ[mdKây‘®NÜ£Q[ÎÝë’Øoô+Ëú—äaU­mŽgŒf~0£ éÂë3~Ñã÷Éæ‘9¥„4·ó‹èé`ùÛ ÝԞ½çP.Û$ÇÐw¤O¦ûPÑ'Eò%}‡†½â’ùV†b Hþv‚””ž¹ÞL2Í·8ýzûFçv&‘ƒ™o)µìZ½†‚æz“ð‹ašëÎJMIjüV²ÚÔ¯@F WJŒŸ'7šdìJ‰±–$ëK•hÖ›Ì?"ç“y5C»ÕÆo)ç!ŒÁÔ40ûŠº®“MÒô›Jœ´#Éýø<¹÷òh»kÌ_V,yß÷I3MágFvK6ú© ÅË%š²ÍªÄç¡Ó 9ZÃØiÐnµß律1!ƒúMˆâP í¾Çì=—WŽ‘”I^Jc 'I^-3s¥+I2%sª@þÂΦR ¿®…ŸT•àûT–+xžšÿÌ|†©w§H+dÛÔ»SÔ>.³zÏc~±ŽuÐÄ{è£i>åëeÜÞ>qúm“oMŠ0¨ïÔ‰ˆR^,÷gNÙö’B"ê/ˆ€ w±¨ÂÕ0ñ—»*Æ žJô`—´îÓljDFiÿ¶Mîµ,…§êreÐ4eζ]—M)(nL¹š†ŽäHŸ o‘×ñ}!Lû¦©×uòW,4m\I±@bï4Æ ND + 7Ci¸5›M‚Á ÓgmdÀ¤r§‚êõ:Î]D©™¸0N?Ÿ”h¶{n¬F÷}xÔÙiÓ–[ÄvfŒ¾?FâˆEt¯Aîµ×êCæz4úTÎ@N2¨ Ädͽ&º®ÿ­Ü™ÿ¾¥¿yD÷Ô»ÐcÃ0˜|s’Óï<.Z˜¿lSsÜ>L9{\±œûHð}ßó  ×ÞC¯Ë×yÝ–:ES[s±™˜ñ$BÌ+ù™;ÆkYÌ &žÆ­äó_Q¬ì“y;Tîû”®–pﻄÂÔWêÈŽÄÜgâޮ؈@XÜB´\&¿9Fã¡ÇÂõ ‰=¥äº3­ÌÔ©$~K’¿l“:ž"ûmE\(-9•!2éºmÞ|&ßš¤ð³âj™ìu´ßÈÒô›j¾ëö‡¯RJÜ{J{,úÖ~Ë'yr’òb™„˜C×â$‡'Ð̾‡ÐHr„ÊRØÁu]œ;Ed'ƒh·¡Õ¤Ù;A±ð>*ª§aÍE ‡M¬£åeU!Ø×aöGJ—•H¦Xwð[m‚CÌ~Tdä2ýB:ž¢ñ ÁBiú-5ÿJ6‰Šá~ ÚUµTêuÂ!Áì™Iæ.¶ldÞëˆÕ¯¢¼^_¹@ …q¶ëá6êä¢Eš&²ìÉ«W©~\eöܨ¼Þågõ„!ÃZ˜±oŒ‘M2õ=%—ßs¡ŸD ªèO@ߺ<¼uŸÒõ:"´€1h¶Šh¡­'óì«M•!S‘™'ßlR¸àtš´;’vKâ‹6B„ûó™·76wßWÉVÅKŸá·FHS@}ðo¶I›{ Ì] B>}½Dõ¶K²kAЫXf~0£”@:}ŸPϼÐùK“HùU%Ût?Ò×b{RXˆ $ qî8ç‹ýJÝ:hb2i¶ü/üìæ÷Éæ‘8ÿnÝ#ØŸ8xž§×›$‡“}#±ú­:Ñ}ªL–»ËöÖȼcú»òWlOm†®áÜõ(ÝPÀÔ÷¦ˆ¿ßò`'ö$†ÓðQÙ B§­`¸Rb\*â<7_dÈ$ó-¥ÿ´ºæ  D©\-’<™%öú©|õ¶ƒç‘rN¤;P¿]Ç µÑwÈ„Ca„T*Å.Ó~úiÎÿø<Öa‹Âz±ogp–kÔÖ\ôܹÆ ¡r(_æT†ÒÕ¹³9Ú¿müRÉs9”*‚ÊR!—N¿}Ù’dßȪ6J@±ó{ˆ°ÒåR¿µ©H§Í>R,ó­ ¥Ë%Î_*2vµ£)„ôº§Ó B»YÇ oLÒ¼ãàÞugsÌŸ™&r×á«2Ÿt°¯Û4ý6M¿‰³¦|ìSG»Ò2Ûh;d0v8&ÔIÛk\CÊi²¯ |ßÇÜ«’–»æÒ^k+çÊŠhZ‚0 —æ»]Ên¹çXéÞw©-ר,UÐ4üµ:‰¨‰±Ç ¼&º›ûj¿R4v¸@¼„~eÛ³P6M#ÉF’#ýÏgúÌ+€2ôb ߟQÚlÃé-üÂÕ*BdºŠÍJ‚æAsW„d|ˆŠ«Z­‰Ã jèt?»N“±h’ÂÕ*Õ[¨¶U´ý‰×ß ßÌ«VWV©øªï~¼Í÷¼‘¿l?¦§5 ŒAñÑx_y t¥ÄÔ©$Æ Þ)lcÔ3^^,S^,÷8ŸñAƒê=—ⱓÁÜG[[ÂâEÀç×§æyã÷Éæ‘ë:"(+êD"|éƒSWÎ=®IæT†‘䈒ª¸ãP¿U§Ùò9öt_%·“|„g3ó…ªê%›É·&iúM_%§Ú]÷âyÜû>õ›ö÷¦(wå?ÆoØ}4ÕS# È Þ&ü~º:Aôx ¹â Ý+èÌýpCÍø×‘¯thw sÛåônQZÀØiôÑQΊRðý6åŸñ|ŸÄ‘éo¦±¯+d{É&â¯ûL|g¢ÊKŽ&™¾n#†“˜Õ †”h¯eI^ÈS9œPHú*9šDß¡cî3©T+”.—úgÙ׳ÌýÉ“oU˜û¡OPŽ¦Ò IDAT£Ñ ÿã<¾ï3/% ‘²ZÁù™‚ü–nÔyEʾ åA³PZ ±'Œw<+X,¡G dN¦(])3ýá<™Ñ8RqÖ<ÆŽ&0w›¸×Ê×IŽ(Bã^“¡ódß›¦pQG<²o,8” ²Té»F#»”Ýsþƒ­Ÿ¥}]éñÉŽDÓ4b‡bx<ÇAQ   ÝDLÓn[è;ä½é7 ¶ˆh{Urž<©XOÏ«~k ÷î$™WUå‘¿R%ûFŒÚÒÂ?œÍѳWðý¥UÖxРÝi3´gˆé³«äÎÌ1{n ) dÍÛÅ®¯â6šŒ|}Œv»M}¹®t÷>©b½d2}ÊÃÐc´;’ùÅúÆsr¯ÁXjLÏ=%  dŽÅ1":ZH£~·¶åû=rµÛð¶e}ìõùçrç|TâÆ¹§þýY˜ü‡yÎÿÉù'jœ½pÇÁÜ!‰lqîìEùFæC Éû‹¿O6ÄÂåäoe¿—kM"4o}–úŸ+\,ôÉX½YÎveîä 3ÇY©nùþô™é>Fß¾a+xñG…>cysÌü@͆ö Q­v5Ë^Žâù>ÎÝ `l±9uÊ/ü¤€a}@ÂäÉ$`zɦ¸î#ј|æ~¸õÔä·|~ºäðʱ1´Ò4É6s?œÛP¿LQøhÙJ;›ÃÜkb_ÈÃzQ4º[Éá$ù| œÆ:ªcjÐlydvœ_,SM¹ZÁü0OEÊÇHrõ[uÅ/¹%û ³÷_oÝÃ]sùúµz”Ìñi #ÂüÕ*VH@ ˆP¼4¿…¯Ðk1M½;…S¯’è*ÓÇSä/$­*RZ/•høMƇ£ƒ:Æ! Vw¨­¸X‹V»s^¥%„†ìDh4ù¦™{_’8äsíW׿Vó†eŸd*p©Z>±ý1ŠW¶¼´lÅÈø=ó³vG t+§M|'E¯½%[ʯqËVÎŒ6ÑÂڥ¥k¤ŽÄÐw„i>¿³lÿOC‚!ÀþÒ³¯Àó|„h  AØ´˜ëVCÕ[.CF„¶”4OWÑ#aŒAãq£¸'Dê¨r~´âI£Ö‰Ùð`“Ê|ô`sI»Ófþ£y¬#ñ—ã}žÔ³€ â÷Éæñ4¹õp8üÄïmþ}ÏoãzÛ3¢Ã;”O|ábÙÉ1û”'p]Sés™&õ•zwV‘&9¬’ÄÑòz‰ðŠ‹6 âפOÌÓn·?9Nùª²D–G%óW«„CA%ºøR’ÒõºW0CrxŠÌ73h—X4Je©ÂÜÅ®¡ÔQ‹lGÂÉ âbà© žï³°øk¤tð[>3ß™aò„‘ó—æiË6žç©kßÔv\êR…fËï·K܆Ïé·§)]·€ªBñµ0êµþ˜=Ñ%Þ]Ø^$RÓ4ê·êDv ÂZ¸O‚=Ý}ØW…`h›Þ¿ ã­7©/×i£î‹îûTo«!´1&yÔ¢Z­á6|Š—J}¡Ì±Ô™³ÓÌÆ A0DAxG˜òâ4²3Ž”ó í5qÖ"fMS‚ s— èZm§IÑñº³¡mµˆîS0îš‹çyx<5ÿzèa¼žáü±Tÿç'ߚľaSkxT¥T |g‚Ò/‹[ȵ¹³¹ÇÙèÝVœuPIUVôÚ¶m´G£ùPy !Ò£°X%u$Jl¯N»ã3td„âå)êwǶ”=+RB0D´0מ£²Ñ´®ŸFt4ºälŠçý»ö'(òlZB|ŸÑ }4ÙŒIÉê=—GS‡÷ÀùíôÛðÚ€5l}}V$_6‰î1pÛW‚Ÿ÷ø}²ùDeiš^kâiуNNžL"ʼ«÷h!M¹Fu÷~Žô‰4…‹Âá0ÖQ‹ÆºB6I9GùúoŸ"å+ÈN›ÊíâŽMæT‰ÚrÂÅ*Sß›êûûü&$È”‘”uÔ¢|µÌÌ÷gHèèeK2ižpH#z$I­þÈp×!H}3Må†]Õ{m : ð@`£½¥im~QÁ^Rþò½êϾéàI¶ðŒŠ×¯u>Gд6RZx<š¾ÏOßË⮹‚h<OH6s?œ£Œµ šb«#kéix„³`4Ð4ÒÇ“ä/Ñö&Hcl aV†G[ÊÇzó…Ï’ ,0õ½Ê¶v¾ÙW5ä—…+.n£‰¾×$ÿã<º®ãÜm:#5°ŒŸ0Ðu%­ÒEì­jzGRʃ:ÆNƒ…W³¤ÿ_öÞ>º­òÎ÷ý”¥0¹Ýjí홸'›Æíâ€Tœ" I¯ÅrX‘Oȉ|S&ö L*˜80Ó:í-µËê0J:P›—ÕR kȲ³–Ír£¬Ie†ôH æH¹8õÎÁ¶‡ø°µ]´WÑE»Ì.½<²lç…·2:+ßx‰³%K{?¿çùý¾/Ô EN}]H×¾ÏÁ{IÞ—$ó¢üc›cT«ÕeæœB Ô „†âdOšô+°ÜF}Ë…ÝgìØævÉ®_Sm”®/ÓÆ4B„ÉNåÁ5xe¦›Ë[Þ}!ŸpF|‚îö ZÍýBŒ.áäŸ/lÌ×Yþ~ð^ ȶVH×jƒûEÄ®¢xAŸ±QK‹E/¶)ÆØ1„/ðå Oí—s¢Îß šªbWZWÕ¼æ~Ãp±Øü °+Cïú3Šò Žcâ87 *‚¾½)ïì&¸FC†ë1³²%4†¿!I8–>_5íFÙ.ëŒQx±€S¹œØÖ8£GaÛ^Â×õ³ëî]è- Ê¥2¹çs$¾7Ìà¼I.—#u“¿…^‚áÆd–ÖŠ\Üzvô`ÏX{÷,k>;™§·bÓ›ËÒUqèxË.3=cqÛ·Ñw?ƒ÷ .{¸WRœvqñmqìÓ²?ï°Xl„B[)Ðu‡ôÑ^Ç`ôhŠÀšQ2µ1€ãžÇ'à±ó?”}wôa>6Âð7‰Þ—VqäNÚ6°l«Tetk½P º^får¹e­ÂÄÖ0š(Óÿ•~4M#}4M("ù@’ئêJ•ÑP3¯ôÈ6®ÁÙûìC>AÌ#@ì®±{:ƒ˜oÀà½}ìþêb¡y*Cß6éßgž± ­š ÖÄ©8øß»kqDñÓ³ZGmVémêeô‰ÑeGˆ}ÑãV±mùŽסX*"<âš÷‹óµ=#mŠâgð:5|"E¤=BÙ.“÷ "nêÊ VQv3ñôÄyõ{BfršÞ­Q²°ízðQÇ%ÿÑoà7Â÷ ákǾé þŒ¢L“¸]C¿*ŠIʇ‘{ûp©0ÖViŒ<<‚X܉gsYF¾?‚9'iÄVÑ"q{‚ÂÉÑÎ(Éû’øýõ‡,÷|Žé©iFŸ­û™]î8¨•žm=tW$-6Ž| )Ó>…€ju™ûÄSéç FžÊlѸ=Fro’Ù6­÷&骵¤†d0ÎÀ®¯î"_È3úäè2ášC!ÈOÒ¿#Z»öz³JtsŒhg”x§46\“œϑ9VÀ©ôJOªJ+{¾³G&‡ú[é¾shG”ø6Ù:껣¾»$4«(8Ý;Dbo’þ«t¦}ç.j}wõÛ£kSZ° -,g[Z¸ µ-ŠªªRu_’šÄ޾;zP•å­RÇUQýèºNWg”@Ó;SR'žšÒs )xMìL †p\GÁ]¨¾±Ø2¸g€áGzñ{LðÄéò댡ürcâB$!Ò9‡îlq˜6 Ùâò E!›ËÖgi±Îýw™@‰\ «h“9žG»6Æ¡»úIÜž gG‰­a2[£ìÞ¼H'Ž]¯¹V§p"®ÃÐýË^{ä©  êÄ:‚³¦l/úßûÂhΚõ¥r¹,Í:·÷ (Â÷ Bľj@#Ú%¹7ÉÈ##LOM/‹€¾q„ï%ûž_ûWU²1çM2Ç2¦ DÚ#ÛƒRà©(@«hÖÍd£Qb1ö=¼ï=]_mi%s,‡1kþƸx²ùÀ/‘õP8yþ¹¢ü»r©Ç~„ãš8Î ÇËÜl‹'3 }³€U´$£kÞ¤z<Ã.ì‰k-šTª?ž"¾5Ž9cž×Às¡³4Ý/ùX \‡=ÈÙRw\R›Çaضa™xo°=ôìèÁr¡UkÅœ”I‚Ö™ÅbRö ”’ÍÄã)F*Î"C­†øúQðŒ“™’;¿àXXÎÒOMà¸ÔO ™ç ú¿2Ž=›%uPþý¾»úä ¬dÜ—ÁiŽBÏ6YDt]'”ÊCóE2Ç3$<ü~Î÷mä yéÖ\,p-9CX #ÜžÀ*JjñØþ±z x¦`â0FfòìÍ„…U²ÈOã0N—Œž{þb=Û{(Lüú 劌Œˆ´G0N‹Åº_[ÿ×ú¥EÏÊn4mšÌñ$V)!é»3FÝ­bælWlé$ìóÖ[}éHÿ¸@b§ÊÄÓèm‹a`ŽãÐ{‹ƒ8.8/©ƒ?¢ÿ+&Ƭ¾ZfÒ( Ʊ1BºFµêð±Ú©¦\q°Š6 â8xO’ ù@åJ£‚ÚäÇ*ÚìþÞûÏ—q‡ôá4Ák‚KZ›µëˆC€Ê¨í'wË æä!zvô ­Ôê­B!ú Š¢á8ê^åÃÅÂi§ïŽ>‚íAX(0òÈe!ˆºÃ¤E²KùL¹¾AŒÖ3¦. m•FtgBn.ÞÃ\í£†‹Åæ¶UReÁgàžŒY)ú3çMBÁƒßü˜,8¶Ä÷m‹ )Lê‹‚¾J¥÷ëCì»w†™'°½Ç.£¯Ôð·û¥ßÕ¼‰P)Ãq«øäršØÆ*ÛËí6:½¤L×ÁïüH@êˆ,‰ ¹4øÉË DÐM|«Ža8èz‘pµQeüéq SòAÈ_Ü €Î(#…,A \©E0f,m|•†ÞýQ†÷çèÛ•-$EaäÑT½Ðôl S¬1¿þ²¢Ò´š»t5 í„ñ§v£®Giü%ٜ̩¯ºò$ ­”tR?²åwCåÜ6Zt½¤—}¥«ä,€/w%ïKJ+—Y“_þ[]=~‚«5¬RyÙÁ©´2v @ß¶(!-ðžê­z+þF?e»\·92f Ô€œÅhÍ@­Y#ÔÂ.ÙŒÇÄöøåÐy‰Vdø{Ã$v&øÑÓãØ€ñÃAÊvu™µÊÍÖœ"át‘WʧHy2!ÐV‚q2Aß¶ ì9‡‰§¤Æ'–ÂKÇó´U×ô€dMåN˜ÑÒÄ+À*J«}µŠªªd' ̹"å’Íðþ÷Ö":Ž#™Öi«îŸõ O/:PðÄ™<á`+KȈiä}>z@à  bû÷‚U´†Àœ•kÀ°ã |û ² ¥ñ—¨­Òa} &¹7y^]Qøú0ÑÛ!ÿ pœ®›ãøßçËw~™Óæiž}ûuÇùóúÏnø¼Î–ÿóVfþŸIJ®‡-][xî'&ž7æ˜3áS—sÃÁg(Ïfj}„Ê›\×envõ’"7ïèÃyÓÆœ™á¦?h¥÷ËÆ™W r/-¶P¿`êäû>Ùˆï›ßÀû?²Üóò, º=ø¹ÎÁÛpã¦OÓò™—à’ >­¥òf]×ñ^êŘ58ö2ߦòF¥¾óÞã8¬›6°ÿ •È6ýo7Q8ž¥ñÊÖü,­- ~?s/Ïùl3Êǘšžaôhž+ôu´´´°±­‰;6àyÛ¡¡ù ”O*zÕÄÿ¶Ë‘£Ò?+£ý“ÂÉ/03ëÃþÙ3^ôòÝÇhR›0_5ÙØ±‘ÐÕ!2ÿ˜!Ò¢ÐÛµÿþçwæ^Û¶–É'9òüÔ²Ïk)2Ç2¬ø­|{ðÛ‹OûIˆ?ÿ^ ã•ÅBï Â%Pz]FÅ®ûBŒ¶ÏGQWªòKŒ@7‡ ]ÙL¡æžœ¸=?-à©”HMó×ûŸ¤ôÓžK=465Ryõ §æi¹¢ûg6按GxP›þ†©—&ˆo‰Sr`lühý5†„àÖSS4ý^3ˆŒü¬ÄkNÂ}wõqëÝŠòq…©“Sx.‰’ºôm—zЛ¸ÜáI·›Rq–X8EèŠf®øL Gs̼<ƒõ¿-´Ë5Ä[%ž|ö&þAú¹…¯na][3‘àhÍG(œêŃûõVÌ×J´µ¨¤þî9Ä OÊqüÄÌ{|’–#¾-ÎØþ1´Ë5Ú?×NÃ'8ò÷G‚Whòx(:ºõVpJüü-—©WKà"™y×Íá¼ùxš©ØŸû@ïã½"¸&@±T!xM]wîbäÑrÙœœ3U-ÌùÂ÷,Šïf<žo`¿¾‚R©tÎu2Ïf¤[Éÿ[¦ks…|ä}Ižø›'8þÜñºÓôz6Ù‘{éƒ}Îÿž8ŸëóÅbó!amÛZН™›Ÿ#óç‡s'fp^ŸgÊ<Í–ÿÖKd½ìƒÁ§j4)Mäÿ`“í!\×¥;ÞM˪ffgh¸ÔÅÿ)?ÅWf˜yµˆÿS x~áR*.ž:9ÅÀ·8þÜqþ_.Ëñ7žt%3`íg×òÜÿxsÖdÃú Ü´å&~^ý9/üó <ó?ƒ¸Tð‹·~ÁÌì “ÿ<É­;nåôk§ ® âVæ™/Ú ìŒq:¨Qø_§ix«B>7Éé×m6tnᇩ1|¿åaþ“ÔÁׯ…·A»¼™µ…[ÿèVY„+mÁVl»Ì¿ô§L¦è6ðÜz+v¾@î2xî… Gþ~ §òçÄ>W õP”ž}†?þú•:Mj\SÓSüåWnc8õ$ækç>Àý_ë硇zOßa¬+†ù¯&…ÿÙÂÐ_fqœÞºËCßö(>âòßñ#„`ÃÕŸÖY×¾Ž3¯Ÿ¡á·8Sz<7357ÏÔÜn¾ýmp$Ì™ÙX»ª™®72÷ªI$x“'MJ?-1õÒÝëèÙáßIr,s#+V¬À{™÷-— ¨¼YÁ.ÙlìÜÈÆM¹âÊ+¸ÿ…Iú/óQ´KŽËŸ,¡9oøÂÔ&•b±ˆÖmWN±a®H“Ïžœ~Ë¥©Û`…ÿ\êÇ}ËffΤpjžðõab7Æðþ¶—&á²N¿‚ô ôܸŽÂL‘¶•Ðg[h¸TyáIlû믹Zc][ âRïZõ«tn¾ùf| ´|¦÷mïoÉÏA¿JG{©€v x.k òf…¿Ó4rS&­ën QiäþïÞ_ãXÀoö1õÒÔû~/òùÈ]£ÑÝaC{ Þß½œááÅ6Y¼#Hlý:"Aç^ü4xÚpÞšÁ}ëÂ'“̳º·vÓþùvÖ}nÝŸõUn¯E 4Ñô Qߨ|Tp1bàßùBþ‚ÇÛžMAZWªX¶CµÖs×[ôº-ËÙì™øÖ8™cÊå²´^9œÆ.•e$í‚Óô?Æ)ƒÄÎÑ\˜Æt2€ yt„{ê½pÇq¨þ[•b©(Fglªnuq˜ýÇÒglÚ˜&Ò¦¡úBá ™Ãôf•ñãytMé:†\ì&Ž軣WƒÜþ ©õt!(ÛùÉ<år±2ÈØq,ËÆ¬ cÌìùênÂ{“D<`lìFkÛEö¸F¹RFà066ŠYÓ¸L<=mÛ”ËÒmä±}=1ôf…‘Z›©gG­z+U3Kò®8ãÇ usÕó!v}g.½2„Ò¨`Î;ôݙƜS:ê0 x…Œ€¶¨„j ý±R‘Ôc)eºÎ̲ £8ˆij¤“Jv-à'}4CÙvˆ^ߺ쵭’Mn2]DQÊdŽ‘ìôR.K7l«hQžÍ#|:Åb±Î*¼¼Îœ[Þ:\`¼Å®Ó‰†u¿Ÿá£úJ6e-Y…®ClBê`mS7©Ú½Ûª·J‘êÁ TÊXåZT÷¼C¤#†cXgÊ”+6޳Ø"‹vFq²Gà÷™ôïˆáTÊõïãl Áž%ÌÁä}IòSyô¿â's$äžÏ-Ó1,…Pé¹{B.‹e’Íe1M“ªS=¯†  »\9ÿ^o¨P0D¬S¹SLf‘œ…äÞ$ããKEÌY“xXG[¥¢-2¹‡³’Îü´t‰V…1SF×TÒ3D;"hktx|ŒÈú0–Udt }³ÿÀ(ÚŽ^Ôý£L_¦;ÞÍø3ãËRFûîè#TÑ|e‚Í:Ãc£ˆû’äj0s,CÜÑP=çj\@¶½’{eTCy&‹ÒèGøé~ŸŸñ±½a"í!ò'Mü×êè-µ”ij>Ï`‹Ê®?N°ï™<¸)ô5*ÐËà?Vf_ nËå™6‹t…ƒáEø#µƶ[z0‹]IÒ¿]»VaðQ á{c.B±ûJ*1ס÷ÌâÂ8îX‡³„þ:‰Ø/éÈÆ$ɽ9úîÇ*ZŒŽ¢ªNÅA×u´•Z]‰~!$

aâ´iØž* ³W:KðÈÈ2ëuÉ=XuªRD ®‰’ªk§4Mcô‡hZíª(Éû¤)-H¶®× Å1›ð*`…ç)6ÓŠ‚ Á.Ç!å8LÓõÜ»b£( ùRyá#}0MÞýxŠ ¤]‡˜X;uÇHfÒÀ,Zõ°Œ "<1"í!x4¾ZÁ8e`U"8(íå²\LûºOÁqvß2dŠ „Ì1‘GbÄ6{± ÜAa<íy=çWž÷l =V WH M÷þ þMAØÞKî`z1çf 2Ç2 Ü3€9g.+`Ák‚õá¼išƒèÖŒ“Î|V]cÚ4>$¾uHF;T¬¢%¼/àØ,\Upªô¹)3wÒ‡ÓÝCwõ£<Úãi±ÀScD| !ÐôvD ‰2j“Ÿü”ÁðŒdë•ËøýþeÚ©÷ƒ¾m’]w!kÿÈ®`˲$qæCB ˈÿpqfó!@Q^Á}ÛžÄ}ëÜש—çÉäg˜/Þßö059Éüü<ÚÚ(÷ß?oܸ|ç| œdF• IDAT9e`W+˜ÿZ¤õsnÚr-W¶P,ik×c¡›MiiåÎT^™$¶9FË•-L½e××1~b°¡¥ç·›iÕ[ñxÈØHüQߺ„ÜK&áëÂl6/‹šn¾ÔƒÿÍ ÿý •™Ïj蟑÷÷Æ\—‡Þrkó—[Qí4\¦â8S¸®Á­CC´üÓsø=Çá_œ¤Ekâ7+õå™Ù>Ñ@¹Tæ‰ýOœso¼ôUb_áÿxÓ5-ó¯Îƒ6Þ¸‘†O4>ôÁ˜wgcÃ6°aý¼ 9úŸ'úb±ù þŠo|ÃOæèÇpÝwÞ‰‘ÀãInlŸâÛûþŽìß?‰‹Ë|Ñæ¯>ÙCÁßá¡× Äo¾ûõ"+«TA¿Rçôÿ>ÍÌ¿Ì0ÿê<>×Bƒ¿‰™Ù¦^ž¯if6ðÜ%70º·†zŽÊí ¶ü×-Lÿ¯i|>¹çsÄ?¯ÑºFCõ7ðÂÔë6Þ —5Ö5;oظlØ:_´9~bã•"3ó%Z®láçÿßÏ™uãeeŽh»Nƒß‡v™‹ÏSÁx©€û6¬plJ¯Ÿ¡ð“9Þ¨íRÍŸ:¬[åá¹ü +Ä f^™!"Oë•i&óM”í$¿(NÑpYƒZ[æM~P+ Wü~#æ+3üpü8£>êú[^;ÍM—xxÛ%÷¶|ß±Ž íºÆÔì<…Sóô_êÁÿ{ÍðÉ&Œ×Šx6ß„qÊ ù÷BkšéÞ|3³&2=Ç *_þ2¡`Hº!WŠÌÍ—xá„Qg~õìèaÝç×ñƒGPÿ¬Œ¹"žO˜=m{¹ùæa&õµ¼ÑÙÊØ‘,“;oå™gžAu.Ëef~žB°çíqœJýý.­-ë>ÿ Ÿx’ÖϦùÛÿóÅÝlù¯S!hR›¤'ÜK¬Ÿ¾‚çÒ<—ÜÄžK¾ÁÞN1…‡¹×ŠLÝÇñú µ…hÕ[Á÷ß¿´³©œ™Ùš¯™ü‰â;‹ ~Ýdü`–LN*÷ÚwgOÂׇ™xj5Qת(5‹¿âÇ*ZtmŠ’/H—…ðõázZls \–ÙÇ·¶´]ÑÎ*Æ© ÚJi“_£âÍe8ätUGº&líF<&º9&Í¥C€9kbN¦‰vîfâ© ï•ßÚ¨¢iZMàÚMúpÂÁ喝…ã:ôÝ5$CÊÛ¶—¦U÷&Ùç¶õ"„¨“G¢QBm!F!z­Ž9_Äi Qý7i³töѪÐ4MîôÕ5@£úèÝd Ò%A À¼E|[œôáQpÁÓ‡2ãEœ/Èeî4ŽÓ˨+ˆ)Št[Pw&èzs˜±ýcõ(ó!z­NP— ÂãE¬’ùK©ÇSêöm¢ú‡Œ2 ›‹c• …¾*@wgáá=‹YÃ×hDÚtü>Áà£òd¹ô^Šw‰u„ˆ\£ ìG‹ÍûDÏæ0±m½ØE Ó.c̱í˹£ ¶÷áxŽ3AtS\2‰*N}ÁðÖü¨†÷Á]þ„*uvÑãiŠvó´ OŠwk1sÞ"õxŠo H!Ýñ,cÆpÜ ‰?ÖÁS`°C'ÚÅ4d¼²9gíŒ2òÈñŽ #ìÁq@»&ŠÞ¦cÖ‹øÖ8ÙÉ,±°Nd}! tÌ á<¹«Ÿ=ßÙÃnŸ`è®~zæLò§ ïÞyÚ"}X¦kN›E†Â Ñvá{o#‹bÌÎIC„E%¿¾&qJ•3acž¶ð¯ Ñ·5Háp ¥Ñ9oÕ‰ƒ@ÿ‰Ö¦0]ë#”ÏØ„~¼ø Vkó–…ùAv¥B9‘…¼hè @AÚƒ!F­ÿÝ=‡Øþ£v£« £ a1§ÿ+ýŒOŒ×™… H=ž"±3AæXF2È™1]á ŠâgD@òE“„Oà(~Ì•l»‹ôA9ïÿZ?Æ)ƒò™2ƒ´4òô#D7©ýûèÙV¥P÷”¶J7n¥QP¶Á©¨ wñý8ÎbšçÀ= >:"m…žÅþëQò¹4ö© Å“ V†¾<ÙSA-½X…|½¥º_¡i™gRýXv¡þ} df^—áZàÝÄ_ìAQÀv4Š:ºÎöïˆëœã²žØi3ò(èžZQ^&æ­÷5ð÷¾CTe—Qæå|ËB!Ö¢Slx焪((Š ÷ã4ñm£¤ª8Ž”2sEÊv¿r~£¬O9[xì‚Pà3.ëŒiÊ Äo2.›÷‰±ƒ9Z*åŠ\—¢pÊdâ Ì Â ŽƒS¶—íÜlÛÏøÓyiõáž·µ µXi´b-0!K‘"_½+¼„‚¡úbçTº¸=Æðq„g„CG3ŒÌ¾.ŒÖ"MÁk‚g"›bµÁ«Ct½¶ýž‡çÓ3ö/4f‹5‚Îâ÷þn,°Ì¤Qš°m»^hp!BÁ¨O¨ü²RåcÅÅ{?wÒ|Ç€´wûóß\œÙ|dò¹“æy{²…Sr60yÒ„·ßàô¼ÉØáåÊvÇù®ûîδ=›‚léÚB£Ú„Çu0椈sãÖn¾ùf*oVÈÿÏ<3/Ï`þ$ÇÚ`Ÿâcíºy៣ÏÿS/ÏÓÿµ~¾ü'_æØ?ã´ušµŸ]Kóï7Sq*L<5!½ÿ2ƒqÊàȳ…vyÇÃüë¿àÈá4ÿXàL÷ùëù9š?ÝÌÍó3×µskï­x~˃uÚ¢ÉÇ.ÎqÓ–-(ŸðâmÎò—{›hjÔøÅÛS|ã/ Ì[§iXáeòÅÇükóˆ·ŒŸ˜¯Z„>Û¼¬Çn¾V"ó‚qA‡æßèû"G& Œ“3³3ŒŽ±1¼–¾½//wð_bÓܰ]SqVB½² cú­!þÇc$6‡Q?ÙÀ­wþƒƒƒä}‚žÏÑ{™7ææ¹uÚ$½vŸþÌZ„¬ûÜ:š¿!DÝýdKqÃú üà±[Ùpõ¶Ü°ŽL>Bƒh¢d»4zŒB¾@“ÚDæX†¶«ÛpÝ'0Nþ®ûÎtØ©—¦Xñ[+˜éˆ’VU*oVøXå ÚïûÑW7Óü»~üŸÖiùL MMM466.{o+V¬Às‰ã”±ìÿ/ÀqF˜yµDî%çm—àgši½RÃãºyÁÀqöà¾5"ÿé>Is“‚+8óºÍ÷HÒÅ©¤¹¹ý JxÙ«C¿z----¨MjÝUüÝà¹ÔCWWúgõeó›ÄÖ0Ñöµ¨¿ë«;EÓCqäï/<˜7_+Õç8æ+ィo»„\˜ªTH¹î»ÿ…ß`\œÙüšq¶–ãýÂ.;X–‰ã€S]r„v‘qŽC×M]X–…·=*Û_dz Þ;H|kcF¯ÏrœŠC$aü™q~ôô8]á‰\–ÛÆ8e Ä8Ákâ€ÁÈ#»ˆ¬O>˜fà[×;òTä8²]·½3—CÒSÍ/Í"Ke´°!4p#Mú¿ÖOß÷1xï`æºÞo}ž0qp‚²]–ÖF¿OazΗì”IPW™8º˜5/|ãà–qœÛèß)5F‰§2è«4Òsfݱº0cb?6†U*£vv×߇ã8¤öbÛË€ášeWgTFP¼°Qb~J¿®á¸€ßÏô”ÜMkr•ŽR²iw¸¼â?i _%¯]®”ky>‹ßo¼3ˆyÆÁï÷3øõ4ɺÀ…þ¯2ü] ǹÔc0ð­4M“qÃ?LÉL—5:Â#ÈËÔÝ·ÌÑ @sÆ$ÔŸáZ¤OÚ²-W‘±ŽëY¡Uo­·.3Ǥà²ÿký¼þŒÙ"vÐaÚ0±Ïã[µtܳæ‚å’4W«Õe§Çž=Ø%›ò‹É›±Ž zÀ_kMŸÇú¿=‚®K3ØÙ@ô:}•†âóâ÷‰e1ã²;‘ô ¢@ê÷Pìú º¦Ö=ßîÀßäg÷WwŸý²çâŽ>”ÇSD.Ð.ûÏŽ‹Åæ#ŠþíQú¾ždì‰} . &nO,kÕDÚ#Û ¨1NÊäL*û{ØsrBFŸ•.´/ˆ\£QÒ:ú”‰1[ÄqºÉ=/¯éúê~ô¯è²¥æ:„ÚBXg¬Z@[ŠðuaüŠJÿIvÝ’ p4‡qªLÌUHN3ÚáPxq7`2xß4…OJ2¢.ôîèeð›ƒìþªÍ¾stw黳Á{÷0øÍ~vß;¼,±SøžEQ¢x˜sTTUÅ!³L2«/%º^_¦½8o$30qbúJ?cÆH|)AW¬ë‚v' g=~ŸMÓP*™£L3‹¨XXÿ& MÙ–. âÍ¥x¯Ú’ }¾ï„±côÐsÎÆä|BV­Ñ¾Zù€[@¹"ÍO—®vUÇÁ*ÙÀÂ?‘ûqŽäÞ$ñ½ItE©m‚jÎšŠ¾J%±5ŒX)u?Ò !Þ ÜÄ;‚ç%äügÀÅbóŒþíQ𠆹,Æ·0c‘ú~’biq'D?£ûu %ová%Sÿ=÷v缮ѠNts\î+£çˆJ0ü½aFŸEQ”ZR¨C×z±òÚVÉfðÎ]˜–M´3Šðô’>ÁqéýÒ³ôn2z Iðy½…"¾>LáD†Äæ.LÓ"ý¼ÁÀ2ˆn÷í ' ôÞû¾¯a³IA†žÌRö($÷&Éæ²dâ8i¼q쎱û{òµâA ÓÂ8ÏíT²“ïžq²ÐÏïÛÅ(A¬M%ÖC} Io{„òeÖG¥I©[Ä©Bj×hG”TG”ðƒC WÎz=ÝWF4ú1WjdŽe$Iâ*]ž¤æŠŸ†Ú(ÐZ ?©1a/þ>ÙcDÛuZ[tòŠ—œG#ù½aŒM1™eóÅ`à[ò„P)£¹e[Þg½_ìEòSy¢ë£¤¦™¾/I\X¬!}FÞCæEƒèu:ÁX­ÐwW~¿mµvN ]q(ÎRñ}ž÷¾> i ’9–¡l—Ñ×èP,­é3s&ÉΨ¤€?Ÿ!¹·}µŽ£Ø•(™£7 øúq**¹/¿~îÇ9ú·w‘¸³äÞ!ðô0æN`¹0tÒÀ¸^Gõ+ôn³ñß)Õà±vÞm½ Þ;HµZE ¨ôÝ5„qÊ`âéq¢vmA4Il$¨kh³^H£×êDoêåPúL’4Í÷œ’¸à` ­Ò°N[8Ûz‰4«Tߨ’>šf÷Wm†T(Wªà:¨WE‰á'Ž ( 7œEZ® <ÞEŸ»úîèCødÐqRFgŽ;X%“²­bW–ãs'L¢íº,´Hß6µâÀSµð´³i¿áëÃõÈ…$} ‰ŠÜõk+5¦i´»úÉ Œ=.¼Ìñ ªÇ¡o[TÒ´kŸÇÙ ¼þ¦åÉDÁZtuk‹vΪµ4V@U¼Rv°$.õxJºo×pÈ'ˆºš%…\iTP…‰§'ˆo38k²«b“‚ÌŽ}h¨Í*‡Ò‡Î{ºZh-*JÇÉ‚GàTn ¶IF6Xg,iS J>\‡¤ ÖNFéç ô­þ}¨M j£Š÷דðï‹Åæ×Œèµú²&?™cºP`út‘þ1º·õrè©Q E°_4PWGè]™"°2ÌÈ#ZY®8¤Þ.¯Òˆ5ô`³*PU™+0þÔ8j@%|}¸º6òT«TÆ©:çÍ]®’9­Y%Þi-´P$v.ŸK.à½Î~òFíYr–6ËÖb¬3†¶R#Ó¨ÐûÈUìiXXvbYhÓåžÏ½#Ñâl8άbwíd³¼¥fœ”,ÈøÖ8£¹ì2úó… „À¿*„q,Eïæwn~Ôq±ØüáW‘Î8ÆÔ’tÍõ²×ë^”•ÆsÁÄ݃d36&#¡÷üÅb×éõ“ȨO ­T)-†ŽdÑã&½·ôj‘›”ÁgŽ[ë9¿¦ekK+ÖTc²€m—\©)È=Ÿ#²>‚a˜S9ì•aDƒ ê8×!?g‘¼/‰º:BW{¨®F? 3ÃŽ`ÙeÆf Æ]H{2ˆ£Ž›EñEy4@bÇ.Sü¼ß'°›Á{z`ˆäi е?Åô¶(£&z‚Þ¯Ž0mLsÛ—n#ë 4ë;I}N´3Jîùéq2dzØÕs›ŠúªÑŽ(ƒ÷ÒwWBªN•=ßÙÃÀ= /zÉOA±XeÚˆ0ñ´FâK#„ûä.ù/ö _¥SõÉáp~¦ˆ¢ø±žNc˜yŸ@±Z²ÓN7UGîì3G3¯ ’ÍeQˆ¶ëäO™¨6ª_A_­‘yÞ@mR‰vDëRz‘hgtñ)÷H:ýØá%Ì«ƒ?Â>ËbIºß—­Ø•ã³&™ÉÁõ1Ò?–‹²9g¢­‰`Í0ç‹L-Ôç*KõMï »ù_Å„2Ô¦¡¯ €»ØbBžø…( Ãߦ^ Þ%ŽùýÂqBïøçOOpÛí újsµ T=,c¹ >ò›y¢YÀÅbókDúXsnYc‰È̳ÈfYè­×àAIÈœ0Éœ¦ÿkýDtµiœÔÁªGÀ—(OŽ£ž2ð¯ï&$…BB¡@öx¶_`ΚàaÙû0mL3¶d™¼/Iøúp} ¼t êdfˆ…Crˆy´èÿšN ¨Wû·GqÜå»Óô d}‚¤ãÐãSè­Ø(Jî­‚ñ§£$nObÏfÉ犄ÖÇÐWªtmŠ1úô¹“&»¿¾»c¼&È(`Læ(–Rd “¢Gþ®Ó>Ž0r<‹k˜é™"ŽëP,É¦Ç ê²oŸÉ-Ò©¡Æ ó@ê yEQèýb/£cò¤·ç;ꣶ¢Tü¦—}ØýÕù)èé B­P›s&UŸ 3gÑuÒäE!¹J Wqž2è;Q`xG/ÕJ¯ÏËÀÎæ¼Eïqƒ.ÇÁ~-à' bž¶ÂKðÚ Ó3ÓX–d ¯ ¢ë:cûÇP| Ù\EQhõ9ˆÕÞ­b±}÷›‰§&ð+~Œ)CúÃmëfäE²É‚iç¢×êhEзýüÑï„àµATU%¼¯ÍÑÙp*ÕZ[ìÜßEñ)(n ÞÄ~Ã!¨©ç¸¼_D;¢(>sÞ$Ú½àÏé-ú¯ô:5\uþam&O™K‹bÐ̳<—x–9ÓKŽŸ˜AÿL3®ëR²+Dþ‹—oü%…WBø.Kpƒ›¢!÷3¥"©¢lo åò¦žû[¬=MôÆ›êFšÆ)cÚžeŸòsúµ¿Ä}ëÉó¾Ço ðý‘ï×ÿ{ß÷÷á¼åp…v3ÿ2ƒó¦\¤Ã×h¬]¥òD:Goç:nÞy+ž_¸Â2òœéXKÆçá ‚/oÛ‚W€S*’Ÿ= ?/±vU3kƒ!ffgq…BïZñk:‘?ˆP*•ذaáHÇqøë¿sú³U IDATÚʳ€uo‰®;Fúp…|aõ÷Z#3³3h—käôµÜô»* ¯Ì0ü–ËCŽÃŠ;w1y,Ãß#×´Qêî¦l—éºZ¥z‰Bwgó•9bsgx¨¶!™š'ôYlÞàL¥Bå²fšüM<ñ7O°®¥¦~~#Þ˼D>A ¨äþ9‡w…—v½ã•y|—® wÒDQžÅqs¸o]xÇ\Ȥ˸SáÌÉç]©ÑÖÒoCÃÇ_~ÓåxM h¾V¢í3*•7îÿ'›âkE²“ûÈ]‹ð¥.( }7^žÇçŒ,qå^ø]ÞOKl)bŸoEU›Ð[šiø¥hû"¶)ƺöuxÛK¾¿ Qè{­~qQÔùÅù´'ý;cD;bøO`Ìå@]Œ¼6AâE/£À>Òß$X­’9žAq,z¶÷’>8QÏ­YŠÔãC ~}ëtsî—8n‘èúéÃéš!¡Š}꬇ѥ¦¿0ÉOæéŽwÛÃ_1M*x…Üéy–½|p«ùl"·ÄIÎ`Ã8§§Ÿ;a’Íåêħ¢bœJг½Êð÷Æ·Ç0çË A¬¢Ð5–&ýã÷ °ëwa—l²¹,F.âһ̓wr©,ç1-:úóу?<„æ—í•ÄÖ0ÓÂïsEĪ ½A•|!O¤½UÚï¨*ãOŽÓÖØó脜»­T (~Œ¹q)|tœzëDø~ÄÓÆ4újP0„ðºŸÅY¥oµÈš¦IRú}‚â‰Ù»wc-zïÞEbk˜Q'BïÁ,~¨wÊϨJh†c.мÊv¯óà5AºãÝrÞ4oRÈe°¯Rpœ*#s5wpE¢3 î…6u¥J$!tµÉOÙ¶éê’ØŸ!P‰-ºj_àÒ]ÿuÒ{ûP|:^¤¼môakU†d_#¿·÷{b;#Žà8£zè»ãüd‡÷Ú…øMÂÅbó@µz1šë,&Öà8·aœL`~­Ÿä÷†i]¥¡ùsÂ#ÈÍÈ!¸mc±0ç2àæ¼/Fò^0ŒÛ¨:UƤ¥F ‰»ûÉËÐS3›;œc÷7uª·1áòŠS·QOÞ—$?3 ÿ&Ùbj[½Q¡0c×ÛwÂ#P¿  z‡ôÕ·›bl¿Tkç¦L2Ï ûBÄœ‰um‰C¡( ƒßdß} ·ô211Žâ‹¢­2ñôÁ5Ÿ ?eà_ÂZ£\ZIÆl‘ø¶8Ñfئæi“²‘aø@†¾íQo‰’Ÿ2_#i·‘`L¥ŠàWt4 ²“Ï"<lÛËЃr!‡½ÛSXE ÇqˆÀ¨¨D×G)WÊr í:°RG©d'³õùÓôL¿kÚ™`ßÉÿŸ½÷më<ó=?0Å˹ô½çÌÈ{y.äYŸÀêøhìŽÇî„;{u wÖ4Ü®)¸…¥É.“ÙMå JÉÞFj°·•Rt*%¸Ycë²Æ­![CÔN½¦1J펳d¶2DßÊÐ1*oŽ1æcaÎÙ ±|·åî/EK¶ì$ý1‰çú F$‘:"yÞç}ŸçûÃÅY˜‡V±ÑbQ4M`Y ¼ZÜi=ئÚ4AlMàÝò˜üþ$£ç‹D›’ù“†Úº#®Š,#ÍR›‚{ïgQQ{½0TzágÓ­ÏgC=É]]Œ ,!è èØï‚Ř Ñt ë5d3®ŒE Hïµ0·làÆþ°Qòæ|L`ߥ—y2ûmBtJ³'Ð:~-OaÉ>›Å[(“Þkß7KçaÄ£bó!Àê¾gJZodŸ"ú¸NªÓ$½Ó€ˆ ÿÚb³E(Lò§'1v¤pLÆÏ˜¦‰»à"Ä Š—ŠT¯Tq—²8û‚•€ÚJÒ¥Ú~›Éo娅‰íš¡øþ…Jy*ÇÝW8ý½V£+ãßö™üþd»ÐØÛMgK$fÊM‰‚ü»ìr³‡’Ä;tj+^=JúÉ8ÕZ”áž #µñxœè¦(áwóT¯T)^,’}6Kÿçû±;`êûÓøµ°~‚ÞL/©=)r's¤÷Aº'Å3¯Œ“9’…˜ sX´gƒ/’Ø©ÌL½[Å‹E5çBiJÜ%ÓN!#>µ•€ÉsÂz)]‚Ц±P# [)¨{ú!"˜ºXQŽÅÛ-¬-7†º‡wÓC6%Öv‹ÑJ™þ«U¦ŸX7 KX&)Û¤´$Úm#wXÐb’U]"o¹ˆ»òC„ÈS¹ú ©&Üò[‹hEEoŸÎcFl·H­Æ?G”ÍŒ_ó Òˆ ›â¾ÅFëÐûêBœ tEi}ºÏ–¸Ð„gV6^du! ¦3Úc2QiµbªéBÐÓèõQ•Çø9ùe`™&f§Öª¿|A3c»;ß1{«Éüœ‡lêtïìF‹i w«8ˆ¦¤t±@ÿ$Hù¨Ø<¯Å‹Å;ü”'S¹e ïn5Û'œÌá pÇÅ6µ/‰µÇaâÕò­…3+ã—ZS’íQêöjµJþT~}¸‰ÊIÙ*0Û–ÿŠMdZ ´xœh¥Löé$ú™I<úih½õv7_Ì’/”éïëÇó<üeŸêus$ºâ¤jÚ~- I_.ónMx\'ûù,Åbj®Äã&Çÿü8ã¯S8_À»9ެ«B>ƲTμ.T穼YaøKä÷§)]V¯§¬KJ—ËxË!º®“9’aô+£hZ™0L!„ +þºÛ.4é½6¶¥ô?ÅË%zû²4~Ö r±€ÕeÐà“KÏg™.Ì#bøoIí²›tj·CJW\¬-Q÷IíïEÖ%“S“$섲ýÙe"všÈåõ‹Jþ¼Mþ" >¯‘Ø“ úŽ*û–ïÜ 0CâqŠ×¢Ì u8ó̺çÈÌaŒ€¨ùÓ“ÂÞ¯«XŒ·5 b:Ü'çkð…AUhbeDÄBJUlV­wVÙgÞ²ß\¨KŠ;5qE‹®÷lYî`².% '£ô¿Ëçä—lJå5ø+ò'Ë®ÔxPÏ]0·ª "!&ûÚþ­69ÈÙï`˜~MÅ ueã¡w€GÅæ…µ-Ž{£¦lâ£Q´˜Æøl ³)q[ýîÉeÜÑ~DDÐmu“Ü—dâµ Üë.åJ…ù¹*‹Þû ðt?Óù¶@/*¢L~o’êÕ*ƒ/â·²pœíïå8þù;··¶-Ù.z“—rˆH Yï%ÞG&S\¸T‚¦dl§Cî›9dÌdòû“Ôj5<ÏkSkÍN¿Y%^)#ÃwÓššÆH(™ššÄ¯ùÄ·;Œ|5½Û&¬‡*×þÆ@ÛAaôÕQ¦ Ó”fK8=éýi&¾9AåÍ c_k?ÖϦ ÓʸTz¤“ƒL]T,@免ÔûÚ’hè‚nÓ$ÞiâÝôñ}Ÿò\™”iîIâݪ‘ŸÉ“ÿ®RÓ§¤‘M¥$.$¥+.}lÌN3nP™&ýôƃ¤)G!ѩȩìõ‰ #Ä("Rµìphû„¹Rb„¬ø@ª“Àª[€ )BÖSðÊ£¯Œj ª/`ÁºTNJz—}J(öœ¹ÕP…£E^¥ a©€ÍÊú_J‰;WÂh“hÖ“g¤$„ʃ¬¥ {†¤dø…ú¿öë5©Ì-‘ÞkÝ7íý¢Ð„ñˆ`üµÑ÷dÆY½ª ts's ¾0Hñb±Ý °vX¤(#Ù¡/‘é±é=Âóîµ zñ¨Ø|@|ÚÁèˆãÞðèÞÙÕe©P*€ïMbþù©VxÕØ»éá-{mwäÚlÝaÈü™I¦› oÒɟΫ»¼­iL½‘£¼Ë¦ÿOûá¥!¼3&ýA[ YKON@Líšó+!ÆÅâ÷Ûâ$š®¡k÷­"éžÐM¹RVÞ^ƒìv‹”©¯£;'w˜fsh1Á‰¦§‹ôH#k5_DJ©óMÈtw2ýƒiF^ÁÞmS<_$µG©ê­YÓhLœÊ“úÊè=Ù$Õ«ULœ'˜[â„ï¨VÅÔÙ)´ŽŸ3ð\ØÖ-Þ±à"\Ì­4=¥®_^¤:W%h펃zÀÈË#LÏL#:L¦/UIîSÊýCÓ0»,ª7<Š—ŠØq(¹†P'£®á.yíÝöêF¹ÿȹSýd3uvŠô4Z‡Æ$pðÌ?×4Êkvèc_cà¹ì=6Ö¶ T/[4¼2•‡è>G‘$n®í `òpŠÔN‹`É£»Ë"d©(ìùE—õi¼›ÖÎ8V—j æÞÈawˆˆØPÕ_¹êÖ˜qÃz°öän?kkü׃ü«*4«x" á=šÕ¿q5^{•‚9’Áw«„2 ¸¨¤VÉAÖé¢f<*6tM£ÿ #Œ¾rœÒl‰òå²RüÇæç³x­¸eïX–Ì¡4"¢¢{…ë„{!†Šp©ˆSju­Cc$¦Ñmuãü¬AöåB ~´c¶ÄxS2T—Ô–×?wfŸƒëÅyæúú¯—®f€DtŒxCsA6Ú‚ÚJ ]W…&½×Æ4tæ—<Ž÷¥1~P&lJJk¬r a‹d„PnÄ›tžS‘–¥ló{÷’?¥¬ô«Wªí–ÛÇéqÐ;t²ç 81ÁÔ}uM†Õ0X×—üšÏà ƒ„¡2©Ì-Þk‘éIÕ5 ß.’J¦Y#84;Õ¢¬wèäOå|qƒéƒ\(^`ìÌz ¼åù™a e‰ì±Õ5’»Ó”Þª`m·0g•îÈoN`Gr<ñzL0uViC))Ω6êcaÈà‹ƒ ÑnÃuå ÖC4ÜPÙmàú>Á;Á:·kk‡EÙ²ðoù1âåyd]’;WbøKØÛL|_íª…pÃ'˜:zL¿³`Þ'(léCýX–*N«§jwÉm¿w«±k#Ž8^ÍhÚGÙcYâq¼›Þ½Þi‘4Zlš‘Wîeˆf%™¯–é=à Èht]Ñ][hœÝ–iüB.Ú<*6¦/–ñ–Ó¨L­ió<±6e ¨ia=ÄÜfÒÿ™þvûè~bs›_öíÃÚnal1Ú1ÂÑhÑ”4"ªó°P’Re¬DTŸ¾zµŠÝ)pö§(Ï–©^¿‹ÂÞ¡Q½æáÝð(ÑÀ´¤ ƒÁç™xc¢­OíTf âlòœKo:Å¢ç­+6½«m)é[ö‘šdü›ã-'äižŸT»òwAöXVÙ· lI¦›Óí6^î\¥Õ³H%¡|ÙA6‹$ŸLR[®au+.1Må¹»ØMÝ]qìm&úæV²gk×_½REëД[D]’?§Ø1‰µ-ÅÁôAuššTæ›_ÃÚn‘Ü›$•Lal6(WÊ*«¦õ^9v7£Ïe𮕨­Ôðªå–aékÞ{Ú­ŸwCX©­Ôh¼Óh·ïìÝ6}GûèÞÙËogÍôí£¶TU­9Ãx¨V'SRJ†¿4ÌÄCˆ‘@ü¾¤‡ .éÝŸ¢Qš¶13µ…äNÓ4Œ¥™ø>HÊ)•“vß‘>ÕÃ÷œ})¢Ë7‘€±A$Áj›mmnËjˆYbgBÊ^¤0ó²©)6¢frð“iü¬Áð—†!¢\·u]WÄ”­Ck[ú‹˜ÀÜbÐ’°îQ¾æÀµ~DlYÿĺëx7dŸÍ²8W¢4K›tÜ9•žU¤±$ÚE³tÅÅܢѨ˶ÝÃÃ0(ž/®!áŒ!xÜ¿›¾…Ùj[4xÔA@Þ“·ì«€¸ÓE’;L–2@}XN:> |Ü2ÙbnÁ{{ ïoWX®½7ž~u¾ÊG»>Šˆ –ÿæN,²ˆ-">ÒÅÈËÏÛLø÷y¤T줹+sÌ]™cáíU^ õ‰ Ÿíû,æï˜L´\œý½Ÿêeú/§YþÛe–~²„d›sߣþÇŸ¢RV§ƒì¡d+’YÇ]H9‹÷wOùWUŒc oÒiÒäë_ÿzûÚ*?ö(\¬¨¸ìEÈ?6)þÕv´îÝèýÍOüdš-‹üéæãàR¼´…ƒÿmüå_²ô¶GýVèÞûé¶édó§ê”r¹Ùdâ§MœD½UãÍ ¿Bå§wªÍÜ¢ÇÇþè“,¹KȦdéíGä#I>{X°°—ÿ÷?¡:¿¾Oþ±Íñ¿,-ñÄ¿øÿøøï™¤>ñ)äGb¬üÍRûïèþÝnªW«T²ÌÇ~¼ÀwŽè¾ÍÇWíHÅã9ª×þšÍïã|Â!|'déÿ^"ü;ꢋövÍ¿Âí¨óÝÞ϶)ñÉ'“4×á§u–ÞöÈÿåú“šóß8Ä6Åë!ú&-¿³…ÔÇST~TaîÊñgì«c\~ó2ü{›ÉôØTÜe¿‰wÆù-¿ƒÿw>ú¿ÒYð|d½Î§Žý”¯-áþä8ÚoíA™Èæ>u0Bô7£ˆß|ö³Ÿ%õ‡©uª|!¾C,öß“>$Ñ›5,Ó ËØLåÇK¾×îu—J¹‚wÓÃ]té;ÚÇJý1Ó š¿[;Ý·ßæ©?è¦þÓÆ†‘ìžàë_ÿ:ŸªÝZ÷9¨×'òß¿§ç9Øc#~êÓÜdl7½ðvMÿº‹¥K|ü÷M>½?ÿ(ù« œÛ?hlä ðôEý—ŠÜ¹½6ÂØ©âO5aüÜdÛÀs"¢#¥Çøk`𽤒j¸”…P³m&~L)ÞW[>ƒ/"D™‰×£$öxè²ÆÈË#˜ÛLÌm&á+#ŒœÌhé8ûS¤ÄÙ=BúÀ#/{€ƒÿj©7³Šô^›ô^uƒ/ 2ü¥a¤0Ö “»LœÝw| aˆˆô0™<›FÖä¿—'½/ódÙ¤½ìÇùa-Ö%¹>¥kU&68™åÞÈ!›’ÞC½ <7Í“ç`•Qõ¶¦áǃBàÇ'„`ôj{»Iº'Iñ\N‘ŽÞÉHiÈÏ«¤ÍøÓ½ûUÀ¦é*§ä®ßßx§AþTžüL…üL…^|z÷4ènºLÏœPó˜U×nŒ½£›Ì~›»Qº\RÞh jî"¥¤xÑÆÙçP8“Gˆ>²‡’øaHiIbn1±¶«ØðÒ¥R»ÅÕû©^±8…ó¦ÎLaï \ÉÑhBjÏ ;mÛtwuSºT¢z­ÚÊá9‘dŽ”È>["ô\•?cšï]‹2uv k»¥~ÇÎ;»|{»‰Ùi`m3Éô<˜lðO  ÁhLãçïão½#oz½€Óã9’¹çû«.ÞÃ_¦p©Jq¶Ìüõ‡‡©ö¨öbäX#%½?¾I kÃÐ@ÓÞ&¬—°wÙD£Q¬í鳓p¬ŸÞSyzk>ñiÆ+e²aÀÔÙ)DÌ'}(Nñ¢I¹â3þñv;Hߤc}e-™BÆéÙ‹U—P˜˜;üšOœøæÜ!,¶§È½1 Œ‘Ùo“Ønâ*RŽ Oå8¸ä1òÊÈ:WßþIh…‰­BÊI&Ï8Ð, åƒ/ â-{Dô&Ãèk9F^!¬‡Ä«óÈNÞª´µ(À†Yï}l¢BgqÉkýõ3ahÐwÀ¦p9ÏxLP’’ìÑ~¬³“Ä…€C½$f¦)Õ”°3D§¶R#*Ïè«£4 ¢GÉÎà/ûD#`ÛÝÌŸõpozT®-’èé]/l\s÷‰ØÛˆˆKyNCÖ»‘ÀÄ7Ô÷†¿< M©b$6kJ0ÙÂð—†ûÚN ²+^ÅÙ7D <«þN?,AÄdú²˜¤÷¥˜h©çýæVU‹‹Xà-˜ûMž@ëÐpz|ܽ˜[m‚ —IHÝÅ÷}ŸoͧNN¢w€_Kcw)7†5‡ô^ñøz;k[œÌ¾zL0Ôr6–-Ù*ª×=ÒI )ï?ÓøEaï²I%SQÖLDT[lUp? <7@éâ4ߘ QñKˆ®¢ñNƒT2¥RD·¨÷f•‘†!ÑÇÑàa!O¬â1àç?ÿùÏÕ÷R‰g¾ðÌ»>è~õ°w˜¤m‹Z= !åéŽÃ_&ûgY*—+LŸŸV¡X«7fD¹ÅfŸÍ2òòÙÓy„”<ÑZT5 WJ&¥ñ<ïÆ4Öv“ê5Áçóf 놿GDü°ëÕÐ5“î'}(Mþ»ªX+FÜhkfRÈz”ô4ùJš’øv yÝ%ÛýX¶­J~6­úÚMIÕó)_+#ëë“Ae’BªëY 0w8ôï3ýÌq ­›<¹Wf®²Ö=¾5[2Mƒù—ܹ,RÞÑM AùÙ,².ñ–=~87O¡)±š` tÕ+%Î~‡¾#}èšÎø7Ç鶺1·˜xž‡Ö¡\]×UVCÅpszŒ¸¡N³%Ön±â2vºˆˆ-âô QšÍ"ë½ AÚžc™#téã7uŒNYÅG¯žHü˜`äh?“g©}.Î>‡x<Ž»ä’;9„µ-Ž¿"éïéEÆLDL0ñ _l‡³Y;-ŒHˆÑ¡1ÝÃÜá(ªw=P‘7½vÜtXI%SXÛ,æ敾§GiФ”øa€Õi®ñë;¤{«"8,ÞôÖ}ÆGŸË¨à¹Ù* ¡an1Û›†µÈôØ¿”CæToÕm1ÈÊ´ýêdS:Ã0zicJsro’”©cthíç Æ4E…þ%°³°Ú"~qwMñ<ïÑÉæÃ‚”e6%ξ&È&.U±·ÇIÙÝ뼜j+5òß͆á=:û9Ï 1úê(þŠO÷ݬ¦Õÿo?î Ü?Çé9޾ÙQ‘ÄkŠ¡ ^aôåQº·h†A侩hØý§ó¤¤$s$CåJ…‘W|„pÉ>›å;禡) #¶˜°]öàLž±ºdô+£”çÊ„¡ÄIÚX;,FßÈ3þÂÇ¿zçš'U‹-Õ)ð¤AÐl`u Š— 蛳¸Û-¸æÒ÷tæV“èãQLÓ¼÷µ‰ª‚lï°Yt=ˆÜi_f'™®KL¡b™ÝE†â‚þ™ÝR’=`ãù!¼¥ÚNÉÝI&Î9š%Òh(k às«‰·äáœÎµuIF‡Au®Úf²~eÿ¶ßÔÔàžI ç=d½€ÁLH1(T¡Ÿ:Wh±È,;xË OIeƒì>g§Í$Ñú»ôá D$À½¡!"ÕeIú€‰½Ë& CÊseœ}ý}ý,.-"â6 !ÈWŠ Ä-ÝŶNËÞeS8W 4™:[ÄÜjÒx§·¬~ŸÙi`m5àq .¦iwN"z,Šè› ¼ÚúöÏèi!†0;S8ûRèÍ[Ë¿L¡ÉÉØ™€Ï b""´³¢Ì­fÛNæœv¤ÆF¨¼YÁ±2¬eŽæš÷²äNæÖEXo„_§é×…GÅæC‚ܹÙÃIDL§±Æ=ÙÙ“ }(wÃ#¨K ³Êz&¹ËÄØ¬aïP§PÃ{kßC/©ÝîèWFßÓï–Ť9/2’ü7OÖŒ¸IaÖÅÜ*)Ï•1M“üÛõ0;MF^-6Ž‚ɳÌ—L.üÕŽá8ÖŸe™oÂwb2&ÈÕk*r¸Ç¡¼ä¡iÊ,³ºàQó×߰餱Š|¹Œï»dö§è¶ST—”µ{MG=¦«Ü•Ö)ãn.U14Ü™)u2êFÄ”ssºG)µ}T|p4¥{§E^3Œª×ªÄM“áž ÅsyX©Òß“`þ­âºÖ˜½Ý$¼^¦Ñ¤]h€{ä·„WWů´0EÊ2Iui8ûÈÌÑ¿ÍÀÑ©=6å9õü•7+¤’©v°Z÷™™›l‡ÒÃ(ML”re#~ï–G£Þ »±yÂ0Ai–¶®eU³ÝUÑÛ·<ôMÊS/÷ÒæÏŠ%¦iŠ*ÝiP«Õp—U¡ ü)b‹„a–ÚŠ ÑTZl3IP—d[vHåê¢ZqnÖîmEÒˆX?|]cä•÷Ÿ9ó ¤¤ÛESJÙÞP]S§ëÜ9œýŠ™gÞ oÓ¨¢eÄ ÆZûªs¨S‰lÊ÷ü–ŽÀ¨øÍ;'ÙÕNEr‡I·_g:pÄÁìŒã-×&<*6*ƒâù 4Z§š** Âuï–c[˜]&Õª«Z`GzŸî#?SÁÞ¥\‘G^Yw#Ü#/%¢‚¸ IDAT1òʽ_OJ·3Ñ“{“(óÈÕ…3µ'E¹â‘>ÔÏÄ7&д¢wúŽÂÄëqæ”W™Óã´½´²B°ÖIª4[j· 3ÜÓE¼•IDÌ@D\°%Ä[®¡íp|ΡpjŒâõÓVs£ô´jQÝpÑ4ù¹ù¶ÍÊÝÈ+!ÄDFqöÄÞ¥ÛbÕC#dâôaâ-”‰w©ÝÿÀsø5¿½ø¤÷ZèBàô8,žž\÷ü)ÛT4ð h§DÞä“IˆÛX(ž›ÄIvcY&º¦19Sj»;¶…·äÖe;¥U—•Šb‘™B€¦ kzÙ”dŸ ÉŸ.2y.‹¬§þÒ0"ödýÎPÝ_ñÛïájäµïû+Á=‹dòÉ$A Ú¤þmŸò¥ ¸7k8=Ý]ëiº¥…2þlØn®ºCw·BÀò3ª76Þ‹H Yw Ãn?Þðg~Qdeñk>BŠ—Šø¾OöÙ,z£eQ4Æð—‡©^­’Þ¯ZÁî’Ëè«£A€{ÝňßqÔˆwÆÛsGå×@DªXÖ×ÂÞ®†A NRÙÃID$ÚÞ-­Úâ$ŸLrð“J X®Üq9Ó4Ì‘L›¢†ŸÞfâuméÚb÷XÂ]†Ê[dS¶EÂÙ'(]6bÜÌ""éâ-{˜3%JÛ-ž t¹ÔžÑ”fK8Û™CŽc {YbÝïýÊ(#_Ñ@êh}[ zõ2þÍqd]0ðÜA`íqÚÃÙ‰×'Ñ.âÅ7]ŒÍî™IŒm)V݃Ó{U*gðŽ|`Ò¤Ùeªÿ¶šÊóÍ«bÄžçcíM“°4š ÆNOam‹3pX)ê‹o¹ø+!™™"…§ûÉÆ Ü–ëêŒ*ûl#>¤L\¯CõZ•þ#5+Iå»mÝОI”c‚Ô¬½UZ³³_ù¸e;¸a´í ° YïÆoŽbn$•ÌÔ ç ÔV$H÷ÃlEêh9fJ¿ëæèý"œ‡ (œ/@’{’„aˆ”’ä“ɶÕwË£|¹Üv­Ð7é÷œø3‡3˜yWAñ±$#¯Øô9þ¾®¯°Ë¤´Iãø¬*0}Gû”Ðx—ûf‘ÅwÖía:ͬţbó ïPÙj‰­BAú@šÂùº®ƒ^)ùùå29@_Ó ®^÷po˜Œ¿<¤„^¨`ŸˆÓ{¨Û¶{Uݰ¯O0úêè=ŦïÖ¡²4± X[ó¤?ÓÛSض­è±7\´ÕJ©¶Z:ɽIŒ-FÛRfõ†töµg%éí6˃ J³%J³%’»-ž`òlÙÌ " oÅ¥¨¡mþÛyÏ ‰if ˆ˜ ÿ3ýíç BIér«Êä•r_¤‘MŸ‘—«L{¤÷+—Ña0ø’bßEcÑv‹JDU ^«Aù;A»°®.ž"V&<ªZîrÂl6©×f¾:Oå­ ™ÃUD *W*ø·|•Z­†e;xR¢uhˆ&LÏL·-O»¡ëˆÖ† w¶¤|ìZ,¸»‡ÈBˆ¶Ï€ïû*o¨t¡6š¦©÷õºÛþw£B³«-(‹"¤@´(ô}O÷ÑÝÕMãg  A­–"™L®¨y¢çyäï¢öÛ;L]q JCÄÑ;Ôç=s$ƒÑa¬cþ*P˜)܉°Žôam¯â.¹ÈºzÍÃzØÊ/º‹$ö$ÈŸÊß÷îŽÃ é"ëR*猻½Þî‡ä.Å”²Aªu–MIm¥FôñhkøçáöHÔùOŒ£©?ø›~3‚ø XZ^àò›—i6›xãÑüÇ&K?Q"¸§"ëÿsWæÖ=ÏÜ¢Çå«K,¬‰XÞüÛ›i6›ÌÍÍáÞpÉ|:ƒyµÊþŸwøãýŒÙe¶£vŸúƒòÉO§Ùô/"ÌW]z¾~ò8ÿó¤A—Ueé?Íñ'ò KKKè¿¥³¼¼Ì\e®]0>÷¹ÏQ«ÕøÑÜXº±Dú`ã_¦ï܈s?šÃÙïà|ÂÜ8·TáúlïgÙôÛ›ùñú1ÿᛯ¯ðÉ?þw,ÝØŒJ^aîGÝ;«˜&ÙÏg ë!Sg¦ð–=¾}òÛ†ÆÄ,RÿiƒZí"±Ø$F¼ ~£‹fóë<õGO±å¿Þ­¿¹Åµ*oUؼy3·oßæ©ûÎ>‡œÿK7—X¸üW4W\ÿiÊÿõ×<õoÓüàüúû£ùÓ1ˆ ãüá õ“oû˜ýÑâ*ÃFÿ-§þè)¾}êÛ¾ÇæÇëÌ-,òƒÿí¢JÓìíŽæâÿÏG»>ʧÿ»Oã.¸Ì]™ÃÙm±eó&~r‹‰ÿxñž×-þ_ʼnÅb,/+qïÀóˆ—…[·yꞢËêâc;?ÆÜ[sð/ äÊ-R¿ÿQþúr…-fŸûÓÏñýsß'Ócc™ÆÎ\å³oV8XRaùÿª…úÛ'¿Mi¶Ä忾ÌÇÿàãøëùH„ðBºR¿ßÅÎß5¨üøNÁqþÐâãÝ&†ãÖßx„?wÑ%}0ÍÎßÛI4]gÇÔw(É'ÿèctoé ú“å.ï=Cüæÿœ`áê'©\IcyRÉâ#‚Í¿½™¿þ?ÿšü¯ïm ´·ÅÑÿeŒ•°N³ù}¤ü÷4›êºWÛëÑì÷Ãr-ÄÚ¢óx$Ò¦þ»‹.¥–hIõaÇ£Xè ºw¥€yĦõ;¾Õ>úè«£í“Â'ê’ôÍw}Ú»mì]ö:k›É¹yÈ%Sí¶‡ëºŠ²zf’Âù2Á>›Ü™iæçæ1·õã^s±:Ò$:-ò¯ ¶wðƒ/ ¢ë:"öCŸ/á])ÀØù £¯Ž’=–eüµñ{¯k—Óãà^wIJcmSù3D”GMÕÆKíK¡Å4ò2wÓÃÙ—#±3…µ½Äè+Er§|†^ň—‘Ò¢0SÀ¿í3ð…vkoøXšîjž¢i:é$”ælD‡¯ÂÊfKôϪë‚”í¶Xãg ºwvã.¸xž‡aè:šôHXñ¸ÁÔù ÞüBŒ#Ä òL”ј†ˆ ªoL3y,‹Óñšc_ke•ì±pöÙŠv|º¨œ¼ox”çÊô¦ŸàvÀô÷§ÉÌ1|LÅ8ûlÊ•‹ôÔÙ)ìÝ6éCi.TÊxg&ÉHJ¦RÒmuÓh4hü¬Ap½Lb‡…¶YG±Óaè¥!ÒOª÷#±Ý¼/Ó+#v õ—–¬íëÛhÏ  oÖñkþaù%öÕ5çña1&mBJ4MG6å:Ö`Xñ}¿}â²·Ç1ãæÙ¡ÁûL×¼²Þ‹Œ¼”.RdêÌ/ö<ÖÖ8½Rˆ ½¾q|µwÓcô+£ï¬uX g¿ƒì°y#wÏ÷¬mqì.ã‘ëó#übÈ-!ë6 `5Óf-F^iÇ¿4ŒÙebÄum¨£R6‰¶žãîws´ÇâĬ‹lJÌ­&a=ÄÞi3xfKå,=[%÷­z÷šŠ>64Þ/gô‹ƒJÞL‘;åhŽâ^)â춺A£©òJ&ÏLÞc_ª%"B±€êj.34S ˆ¨B jά+RJ¬/á‹—Š8¯ ÚR¹Zÿ5AP7È}K2øÂñî?ô.poÖêC»pšlJDL êgF… ¹æsj3fYV[œ»©&I»3n0öoÞGÅæ@þ|{‡Éèó‚P¢ÅÜ{,kF^Q§ÑhØ™ R©´Í3=6éiF¿5MöM·ÕMþÛyÌ-f{ ›©0œ8;ÉqTß]×t¬˜€?Âøþ$Ý7¼uvù•« Ëdüåæo…@?Î~Ò¬ Í~¤,@ÓFlÒÑ5Ù„àT¥°4Ar‡‰RäÍ …™ÅWüývLÐ_—d„@ôØ4j‹LSŒ¨üM„`r¯æa‡Ò…ŒþEª5;˜F6»™ž‘XÛËíöÄ™åÔNKåÃ4x~FGš‘cYx£µ0´òBDDïˆ#›êu¡µêΈwS¼\Æ#:a½Í@×”’_Æ ¤Ìcm/“?%I 6[j hïîù—®¸ë\ ç ™Æ»VRú–e5£mRnÖN‹à>§§#ùVçôRH¹êâÝòql‹x‡N\Ó‰¶lñWçrÃϦé6M¢BàÎyø·|‚Û¯OpAz¤Iî°Ð7éhšÆÔ™)´M‚ÔÅZ‹‹dûµ³¶[·„À_¹£ÍY9Ò|ÿÅæW…9/¯¾«§6!NÕF‰7%óAª9Iö˜ NqO¡hH¨ùÁõ>›°÷¤ðWÊ j¢ ”#h±Lzqö;ä¿›g¾:±Ùh+ŸËKD ¶\CÖ% ÙÀÙg’«L+Á ¯è­Ýu u‰vfgÿÅó)²H¬×Æq¥¤ÜãÀÅõ7MnMäÁªå˜ˆ@j‡‹¹ÅÁéI2y®ˆü™dàªGù…Aj×U{£»+ŽÕiHIñ²‹Ø–D]r­›®t©„Œ &c‚göYØÛ»•MÈ[ó”®¹Lu:_Fìs )±+eÆoÌ“=6BbO¢¥á ˜x=ï7(Ì´\¾4Œ¾Y'ÿí<gŠ$w™í^‚èãQ†vŒ^õ•2ù§û‘7çq[mù¼$• SE:(ÌÈŸÊ#b‹Dñ7&IïÓêÆoªmäûˆˆ`DJF~‰¨ak›Åø«C¤{lD‡ºîò•ÜaÒÝeÒ¨Ê&T¨ž‘w±àÔg)£\¬g*Šq¸²HyÁýQC?âà‡• –'­¶Ý¿ˆÀÁÙ*†§±æïŒ Ñ„¯ž¼« RBXTËÖ²Ú¹8¥„™̨“Ñ4Ö\«$Þ¡³Ö&Ùì21 ³Ód1²Øþº‰""M‹’Ùo¯·ú€`ï²1MÅ2\ÛÎò8~(ˆ  ácäÞPß+ž/’9œ¹‡xp?êüÊGÅæBåšGáÜ4~p'^ÀÜš$•„És„á8ûéÿL¿ÒAÔ| 3…¶…yú@š¡/©Lû³“˜[MŠß›Ä»’ŸQ7ÿªN C&Ïx”. “ØBPmJ ÏÃú‹ñ5¶è÷" uJ³?DÖ?AÊÎPnÍ5ÛMFN Ò×]†bpü Œ¾:½'A-lPYðˆ>Å[¾Ã¤}.ÍH(Ÿ]DD¢è›5µ°®.’ð#‚øe5[é4Ð;T/¿Qo„¢dßšWýî¦$½ÓÀ½R¤÷ØP[¬W½QFÓ”çY¯”Œ¶e|¾Ÿüì"ÕËe%l6TÖŽ蚎¾IWÙ™£"6ˆè*º!’ ¼@äïvzË5ü™8RªÀ»éµÝ|]wý°xQ%F6 Š‹-ìú!ãÈË#|çÛßá™/ÔÐb‰=P®xNÃ:;Eïíhß»^gæPž©³0}©Œ³§›¡o´¼ ž`BJÒg&‘Ïf[9’©sJ˜4AŸ¹³ ]¨*2Àcµœ«!›¶3¸0S&¿ß&jg—|RµÎò§ª”/—Û7âjyþò0…™iÛ ¿¯ŸÌ‘ Åóý˜qLJ—'IíɪHÕj>f§Iïá^¼Å‹E´­í„ÝðʤöØ/]&1;M¼åÔ˜¯j/ŽR˜þ£c4¶ÜÝ^^fÜ ™LÁl‰ûSWû°¶™LÏŒ“Ø–Rëê¦zÝcѽ³‹?Ñš™Ðiâ,{¥TÆ¥oÍãØ&DÚ&±áNxàù;v·CáZ—•bìt³S[·ax¦.a ™ÀèÐÕ h‹B}®«×ÕjêìÃÛ†ïK{_‹ûiq¢Ñè†>akOà„+!¡¾>)Ù¢y—ªî͹}áÅ3kÜë.ý}ý4~ÖX§5rv[Ä7kýIçQÄÀ‡²n†ASÁÍN“¡/1ñ‰ w;#¯Œ´{½#/ iå{~¦R© „ˆA¼C}-<™£ºâãm·î°½ 齆8ªb—'ÖÜàóÕy’{’ô¶òè‰'q‹üù S+ô÷õß³IíKµÅ¢ ˜Â¥*ÓB0 Ä4´KUô­ ì]6?uÞÏ(¿°Õ×`à¨ÃÀP‚ÑÌá ¡0É>›U¦¤ÂÂ[®Q®Ô ÙÀÞmã]S®¹“ÅÑh-¦ADéRv‚òl‘â¹)ÆNÿÖZ,Šˆ(÷q)ÍÖÃ2¹oVpzŽ“?'a'0 •ì¹V( „!Õê<ÞJpO$ÀàÓi²‡’ˆˆÄ¯Ä»loú.^à;^ˆù‰¶Ý+a¨‡„R2xižò•Eô˜@¤ *hLjØÑ´c³ÑvS0,?b;wÜÌ{_¨×šPzË%Cü[~[÷µ÷‹1·¶Å8â=œ|àóotrü°¡äOçyY¹v¬ÂÜ¢‘J&è? 6œ¿´H>ú¦;Ÿ%kkgŸrO_%D¬ÅÀCt\xˆ.õ¿ Œ A:zD`¼þþü¡dóÞ›vuG’¦0£CD`4]N¼2Žøî$Ã_fäõ ¢÷õY¦Az¿£ˆg•5Kr‡I4&›ôõCðæ¡¸½ÛnŸ&úžîÃ]p1»LÒÒ뙳Dz,.-ÂÕ*t´Æ«5 Cõòãñ;©¤GÊ VgœDkÞU˜­R[®µîù3y²Ïæ©^­RºTBÄÊ”+yË ±Óf¾ZU§ÅÛ>~M çg§[öõÓPôåÄN›0Ì29{œçæéÍôRºTÁ_í¶ã|UÙâø·ü{¼Ï&Ζ8œTBÊ5'Øì¡$ Ë$xÇ ¾Mû9aøSga8£1 „à)aÝP  wÙgd«Iæp†T¤†{ÝÃ[®á-×HÊ®s-°w)ß¹ñ×FHZ$±3Ö¡‘°Š¶IÍ›æ+E]&A½ñKíœ'Δâ;qBÑŠW1yÆÜð1–i(/¹zƒU†°êpñaC¶õ~5šrÝý3öÕ1_¤|¹ŒlJgÑT¢UgŸÓv,X‹U!ëªøz•êÞ¬á/×”ƒÄ]­Òñ h'š-gŽ9›²‡²—ÊhGû ÏN2­"Ócãzþ1žfƒÛv^…¬TQÆ:ùÓ^ ˜_‘ðFŽ T‘’’ô^s‹N¹ºHbßAdèáÝp ßi ›êw&¶›4š’ÚJ€©Br‡‰” ‚›ó€Ò\hšF†í"Ð{¦—êÕªRæo5þò0î5e[ð“é}³ÂtÍg^J*='éMZT/MµÛ%F‡†¡ ü0dú|±ýéõk~›v]ºTÂéq”–ïS¾é0š€!¢­“ŠÀÜb¢iª}fÆ º- ³Ó fZµ7›gw‚d²L¾8”’`% ‹¶_ÓÊ[Ê÷-¼ÏžÛ -”?_A‹EñWÔ*›ê½8âØg34箣:}µåÛu¥JïÅ"ƒ‡Ò7L^º@ªëéqô˜Næp½CWÑáMR¹3‡+!4Á_ö ÃPٱĚÖG÷¦ÏÿåC¸Dì z,ŽeÇÜ6M¥“rc%}áR3®?069} ½!SëÃ[âš²uõ>Ž AJ¦þ¾~Êçóa=€ºš=F2øâ ¹“!Їˆ˜L]OÇ^e÷aqcCB@D*ÖÝ»émìnð!Á£bó!‚wËGF,,À ÍàQ˶1ªkŠM/ýG4&Ï‘A64§ÈËÇ©Õj­¡lŽÊ‡‘gˆ¾>Á°СCÍÇ3tDÜ&}8ɨׯÈ>›¥ê ÜÉÝi›,Ë$µÏaôÕ F„ÀûÓ ‹®K÷N‹0¢è¬ýÚOùr™É3“ëÚ µ¥*-³AwQ «Èì·™‚îäAú:âT/M‘Ü“ ¶ mU×2yQÍŒº»TÊäøIuÒ*^,bï²ÛèàvMp¯¹è€}©Do¦—É™iÐ,DLýÜPËó,›4ñ–‹®Ëâ-uma Š©ˆ *oV¨¼y§p ¾8ØéE7EÛFŽïÕÓkm+²ÿèùSà­Ì/¸í"´c_‹"Ä „𲀬K àÿé!Ê—í¶½‘ˆ©–`mMæð4µZ´=ï²w)h¥R¡\)“9”aþ¶@ÄT’¿ì?0r?ˆØ4RúÍ8æV{ç÷Cˆ I ëÆ=›8óàvžµÃú…®çŸÇë¿m2 ‰ ̈@œÌQ|y„©KU*®‡Ù• ¯›= qs›ƒwsãû<:Ïð—‡1M“çÖ*†ê’¡z s›IV×1 Õ0·šŒ¾‘ƒ¦d HxK¢_7Íl>D(]q1ÂÇÞªðÄ{ø`tï²ÖµNDD²¸¤þ•²€µ½JßÑ>âqŽÿùq¬–Ò- NÇOæðez6K2Iðâ b«ÍП¥ñ®ªEÀ_öqo¸8=c_£\õ˜_p9ñ­AØ`òé,‹@vXÌûàßRjýòå2žçá.”™:;Õî7[¦³ßQn¦‰mô>ˆµÕ@ߪœ‰õ¯.(\*qá’š±äk!åê"‹KÓ3ÅumoÙkë0Üëî:_ªêÕ*D û¢r8è=ÜËà«£JlŠÊši´zé‰V|sñ-—‘“…6 o¿Mz¯ÅПßY =ÏcðÅA¢Ñh;ƒdàˆƒÓòyë{ƪùhq¶Êة↭,-–Áì41:E7Œ¶0•T³€©3SL|c‚ùÙiåLpÓûéQ­”hÈFÛÁ¡zµªò[L“ñ¿P¯‡®ë„õgŸÓ~¾÷ƒÌ‘Œ:I7ó„õƒhšF­VkŸøD,E“Ÿkî3±·ÅÛ¹E«ÈË*ÿµwy W e?¬kkœÁ§Óxu R’¨Ëva1ãÉ'“÷z­E<¼›!"¢>™#÷FJ»×\¼%Ü9_\7—ËVÑÑV—Õn5Vçªf <†ô6Á´¸ùàç^N6)&Ζ(V×ùY…¡AåÍ;?ã^sq¯¹m+tï–·>- Ýb9œaò{“Œ}uŒìá$£¯T™ºX!ÓccÄ$î-¿}ã]ºå0øÂ C/ µwøã¯3qRí®V\œ *u‰»ÅÀ6 úôb:óKZLJ %ú÷$ ­–‹I¦g’ pÖïf/UÉ Ar«I¹.‰žºw§Û=Shë? Þk·{ÜɽIÝETžJÐ:=ŒÖC Aê\‰ÒáN2‰[½žÉJ”¸*ÂÌNbu¤ö•]¯bn1 ‚€òå2Bå}·ÓBj&¶m#›’©³S8»­{ Zzïf<)¥_3‘Ò%ûùƒø·|E÷}DL>”ÆÜ¦\ˆý Ī{h1Iõú"™ý ÆN©çÖ´;‹ÙüÜ<ޒמéeeñnzø·ß_;-} Ý.J©vÞÅ‹þºö—¬1bb:‰•{ŸßÚÇIv+©i;["¹7©b¶('ôû!{8‰Óqls݉ñŸîÍý‡îóÂV´õªs³wS±³Ç²4š6)GÖÇ‘Àä÷LÒ‡ÓS&=~g6³¶-¶Öò&s$ƒÓã(!ò-] ×]w¤¤üpÙç¿„ìW…GÅæ!Æ{Mê[¥b®îd×¢Ñhà.¸ëæ®ç3pÔÁÐ4œýÓ3Ej·_<_ÄÚf1òÊáJØÖ“ø·|Ž%Çtašp¹ÊÔ¹i©(Í™ý6¥Öb¬ ÑŠAn "!¡0)Vk4¤†³oâå€Á'7ø¤d|Ùǽ‹Í#ÄðÿÏÞû†¶qåûÿ¯‚Ž@…p@x2&ŒH ÉÏ’XÁ ‘É…ÚäBjºÊ^ص[h­íƒ®ÝÂn¼…M´_V[ø;ð và†(pCå)RÁE $x ;Fà T ìïÁ‘e+¶“tïî½m’7„g4ö IDAT’Æ’¥‘æ|Îù|Þ â—s,Æ*äFdFÊËJ_ÕIM’°ä~‘£ðg•.Z¿[ç0Ä×4â1¥ñ‘×*”Ù,D'“–eaîÕÐbQ¼µÍ6É—¡DDÔë¨T+*Œ,8™>Ië»^;Š¿V¡JÚê¤cÄ5’ÍÛë€EâH³ßÜæ¶gØ¡²aU98¨“ÃFñŸþp³_ÅP'&Ñ÷è40z$í!¢1Ì ïqˆ9`2~fœ…Ë ,][ê$„v®ïÅî¦äEàœpÔûƒž¢ˆýúŸö˜®J9Á¹6dÛ0ÖoÂSÌJCÓÑ…Py1ÙQõ«*Îq‡°©¾—é‘ô¶vZò€I¼OÇÜkþHùN‘I¦áz ë@ÇŒur§H¤•}ÐûÊù`êƒ2-)i¬÷X¢i´[]Ý’bW«¢0 Õìm¿ÅìÕ%J_ï®Íù!x]l^)L}0µÍê?ú“h—Z†Ìt‚Ê¢"ª 1ðeLP‘’œÌÄ{¤Hµ ’&h×HZÊÕ_⯇ññÖ8Ç3ÊðôÇä§3¤"0/%µ§q=-&ð!‰Ûuœ-ðiÔê5ÂPÅQ|üu‹Ýô— Wžˆæ>l01"¨Ô=4M†Û]6ds!1â-©Šlî¬Èÿ߀lJÞù…‡ËbÆ‹}ñŽXS2tpˆk3Tm£½ÑZ¿b£xctSUwCæ„¡é?ªÔÎ×ÅæCé¦2ýKMböZ¬¤)ºª¹W£¾\¢üÊNQ^Q‹ff´Hõ›Á:LþZSCwÔŽ®t¤4ÈO³pÉCaÛuêˆÍÒJƒè>“ªç‘81¡ÒAwñšRdµÐ,t²Åæ¤Ä~¢ݵ•þºÏü•yÜû.³V77K]uþ†þÄè3”º[²-x+¶:ýÎý>‡išøOj˜ûT–ýä[²ðÛÏ]ÅØk`Ä $*ž ÕTÖó'‡ÊÕ T )D'[^­ØçþxÙ–Ô4  O§¼î«¨å§9¡ôO""X\þ)DÔÌ)¨×q®”q"„ xb÷¡‹}ÄflÝGÓtòëÑN[´üKNò1ˆéT>J@¸ÁtN¨Á·‚¥«K؇&©ß+"›o ›»^:€ç&XnÌ=J»˜ññ×%ZL°“ÏØ¿ÉC&zl»°òi¨ôØ zŸ‰ú¯¸jƒÈŽO}ÀÄ0ÑbQr§Ê®®éÛÈ"Ö@|ÇÙ¬5`0´ÏDˆçÓÇ(x]l^1lˆþ¬ab¶IØ ÅTZ«+ž¾i¢Å\¼õ€úýõûêv…ü'“äÞ›êaÇ YC˜ýÊ>gcá?¹1cÙr:ÁeÁO6[$ †ªóUúJÜäX\Z¤|»ÌâÒ"ѶŠí Õº­­Z—§áØ& VŸø$ìùòd†UhÙÆŽñÆÝÀ±t&>ÊoÆ¿xñë˜D'§gÀ„{ja×4M91˜4ÖSç‹.6¬s^„`B|)Úò7X\ç¶&NWöBÏ+6ΰCy9…ßø´Ë]«žÒÍRÁ¡~ÏÃ44Ì>˲p†ž ¤ìhkÀÀ_·ÍÐÜG>RÊM¡×Åæ•D<'ûïYª+U5<ï0r§ôˆ`ìt†Â Ý2€IÆFß¡VoA{‚ð¾‡u@Ý ;ñg)½EìKDÄ@D¦˜¿^"è2€äÑ$©#)ÌA“¨ˆrî£ 7«¤GÒT¿®2y&ÍĈÅü²`rJ áî¾£UmJo³ÁðJ $w4)׫œR¶ð;Y0Õ•*ÎÁ¸Ò:t EòXRµó+/¶Âœ;í "Ê9ÀدfLf¿‰®ëÝ,"PôÞù¿Ö¨Ê(}F'l­%[A€&„r[æ>_èˆþªÝ<ç„Ãô‡Óä?›e¦-Ñú ü'u¤”´¶‡oü× œÑqhl¾÷|ÜÀlø=•Cƒj—zkÞŽ4íAëÛ–Òô¬y;²©2§3$ìÙj¤ÄmK†š{0Nýaƒñ‘$†Eò¯s}¶㤇m›'™Ñð˜¦I*™Â0 ò÷T«0wÚÁèÓðÖümó§­Ø‰]V¸ZîÑ‹ýØñºØ¼dÈD`©C½ÀXSâÇ­†¤¾„ xižr}†©êO2éÕ•Z׿]ˆ¿ b²9Û=½¤Ž¤h}§t9sç§H%Çp]•o³“{ôÆÂ­i-dÛ¥tÓ" Ù‘€Ä IÜЕOÙ!‡òí2žçQ¾¹ˆsâ$­f‹¡ƒC$ìÅKÅî¬Ä>d+ÃÂå2Îa =ر§>f«ôÇÛu¢AêJ™1)IµHÙCÔ\¼Dî-‡úí'>A«ÕêfÕ€bèE#ÊÖf4Ê !”’Ù-ÞCë9¼•’ÊÅ!`öw³êä–L¡išrpj—ìO)7!0ûKpê7S›ï¡“ —Ëä~¥òNŒ¶ÑÖ(ß+¶”3µßðU¼vØ«7)ß*#„P†«[ìt¶ÎÊÒ#iWñ]‹rÕeh_@Å ñz¤€ÅNë+sJ9üw¼Êvûˆ¹¦â¶ÎÇÒ£iŒ>CÙ }”g¢£%ÊŽ&1û œ¤„ˆryðÿ…º÷a¿ÑÀÐv>ÉdßUL¸Z½ÆÉŸŸTLÊó,\^Àè3zZ…¢s:[<õ¾^–B¯‹ÍK…šXBP—’ ˆ|¹æc4% É.Wh5%¥•yì7þ3ÍÉ4$Å©vf(B¬ª°°¶‡¦MaLá?¬°¸ÔÉUÚSª lJe¾Ù§ýI”VKµ¢oFqŽ;Ì}®n4«ß¤¾îA$‰iªžuE ÑO¦OráÓI&N$ðÃŨ'ɾåŸ/tß_z4Mø¨Ž¿…½W8d¬‡ÛòÙ“‡LR¶I|Nªê¢%S¤;;eû Iâ …&À»S&uØÂÚ7í2æ€ÒÅlmÑ®”ñžÒû(ˆ‰Ê[íÝN} ŠÅ¹#é®7ØÖ¨iÃ0Tlvª»°teŽðÝp› RÆÆ|䡲Ÿ™ø· V¬âÕÔ}呿5"®B¼žjßuPº^BD„¢]]Å{ìá=T­ÃÄÁåå2ùóLŸI£›f\t7ÉC&ùf‹dŸò£Ó›.Óo§·]ó…¿î£yʤu£ÐŒ¿5Î5DX-Ü»no~M4M‘'üPâyÞ3(/†äõ±í½ØÌ]g!Ö~Ké§úâ.z®3ÀÜçsñmçﻈ2·"3l“4 šÛg3/^›—¦ˆ÷rØWTÖü GèW?QüWд´çi4,‚¦ÄýÓ4üÇ,ó·dGa±j‘=¥[ÞÃÙQ›òr@ùv ûxÓ2É3…·bS©{ØÇm'›™Og”Å}ǵ ÷–ƒÙ§‘Ø'}n!½ZO[Ð< =¦¬]¢"Ȩ̂3ÛþÝüÆÅßò¢BQÂu]Å5—W\І¾)@Ä:§åˆÁìg;/¾¥å:V\‡vƒüŬôáŸ[hPŸ}¶zZ°­v <+óÀ>hbhõ‡Ïnoɦ‘i„8‰l>ÛÜ´x­L¶|æLçeÀëbó¡2’Ä=‰ÞgêóB—±’{/×É.Ñ(ÝÚýX¿A¿b˪QüÿŠXdzäŸ'5|’êW%ª_Uù›¦aG€ˆ@Þª³»˜hÚ ÂpÓ%“4!tI2{©DJÊ߸Û xk>­¶ÄZƒjÇ)„†}pC-¬m(,”»‘Ãσ0ìPY© Å4œa÷öBWß’9•ÁìX®œ/ìKü<ˆØ_ ½}1kœÒMÕÂÒ÷ê4 V˜8ž@¶7E“gÒè1Ab_ïnzòýÌþnóù6N“gÒ¢<ÕvÙpÈÞ ••Šš'´Ù1ù5Ó˜ÚoÝ£Q¼^¥x­Êä™(ÞšÀ9<ÄÉ·Îvµ_ìºÌ Ålt Üûo<ógÿ7ÚGOÏú./à ;žA~h¬D#-öüç×´,B˜ÈÈßÃg³Ó^öB¯‹ÍK……ëU MGJÙCBÿ8O*™z¦ŸRðm€ÿħ|mžÊ­('ÿ-Kýngd¬Ç“*Ú–pÜAJ‰V­cdFã,]ßT¶§ZšFz4Mñ‹2§2ˆ“É÷m*Õ :’”eÄ,vï‘GÕõ˜~WÍ:Œ>Ê=IØpÚoâ §˜¿VzáBPjJæ#‚ôˆzN÷ q›ù«‹”ëÎè˜Ò6t¢Œ³£IZ<_½½"ö„È""’Fc“!W¾]ÆÚo‘IãÞw1LŒ=ñ¾8ú›½m:! ™LõlžnÉmE宋ˆ(fßÓX}°ºëk­SÇvº­·mï¥-IÙš¦|ÅkUæ.—I⯘Ä{"-žÙÌ##¼µ~ˆ(/—Ÿ©áª¹ª@UêÏÿʦ mó¹…æUÁë<›— s—KÛzÍsŸÏáwhəә];û»Y ŸNaÄU»cõö ç ÛB›Œ¦$\.ã­Ô(½EDÊË "BL£i- CC¶¡~ÏE¶ÁP‘ÐΰÓõg³måX b‚Öw-,Ó aYLœÊ×"â( ™5ÿ{-t'¥D×tRGRX–Eå¶U®Uq5BP¹]¡~·Nî´ƒ½ß$u`ˆñ‘íñÚ»A6U+21 ;ºù8³ßÄ4MUÌûèoêØ‡lô=:åj­g3ÐX(Ý,1w¹Læt†™Ofð¼ÞÅl|$Iî´šµTïxDÍÔŽ3……Ë ä¶un½½ÊÞo’9ac ÄùiS4%"í™GûS˜‡Uâêìg³¤Y¼(¤¬¼ðìâ‡cÏ~ßÃóC2'̼·û½@D†Ï>ѽJx}²yEP¸X y,Iâ`BiJV*ÝôI{¿²½¨Þñ0 MHiP¹»{Ÿ\oJþ& õE‘B³·I9‹&lÛBÄtü°Œ>Õ¯ª´¾kQ_©ãÞw)}UgúÃiÆ2c*²Z³¨Ýu©¬Ô #Áþ ?‹êäÏ/‘>j=ÓFýiläÇ.¬­XaS—Šøàô8•Û•î0=wÚH]׺,²…5˜Â>hbÆ „ˆ¢]+S}è¢ióÿg¾«)Ý*áÞs)=ep¹µ}gô)–ÞV$˜ Ä ƒJñô;~ÂF×td»Õ:-<5ÿp†mÿ/e«¿Ùoà~QÚ‘=5÷ù\÷¤5ޱű-“Ùr…žFæt™…ËÏý±6œvCKJô˜¶É2Üù\òÿ3_Ù¯‹Í+€ô°Mi¹NÂNU»1¯£Ï «Å£%%Æ -&Èþ¿Yê+5¼†Ovt÷ÁåO¥¤¬jsÍâ–“‡”-ÊÕ:²©¼¾tMçÆÝ úUµ»pmõÉ2ú r¿ÌqöÌIüu‰3ša"æ³x} _Óú…fòL£OÃÚ§‚¸Š—Š8‡-¬=yÃÂõ8qc›1dýþ*•º÷Â9A2¢êtrÛ%uÐd&§Z­ê´,sïåÂï®Gâ›:‹1׆©ŠZáb  k›­§ê=çˆJe d‹ñ·Æ ‚ ›M`Ä –ÒŸSÛô6æ  Ë›Ïœ°ÑbsŸ…lŸÅˆØ$´XÎáû¾ÊiÑ4ÝòYÏÄÉ6,D@œHá‡KËêä¦Ç~<-´ qƒ™OgzÂå¶âibÉNp†ÕËûÑâuí%ÇôÛiÒGdO%•õÉr¹ÇmÙˆëØGŒÊ "‚°))þµHe¥Jñ3Ï£Ù1 kØ!ó”ÝoáZµÛ²Y¸Y¥p¾€±Ç ÷««îªn1dô×|æ>z‡ÔA‹ÔÁ8î=Ù–Ì´AÎ’È$Blu0PNϯÈ9lâ$-Ì~ô‰‰}qäZ/›¨pµ¬çß³Ðd†m̸h&öÅ™¼UMGCHìÃÊIÚ4i4ä„ ä„`z‡­^öT’h$ЦidNg˜üõ$~LpöZ…ìŸæ9¹\LjJ©Þg0yÆÁ9dRE·ÕÜÆ{ìaÚ¤çnP£“ÇT«/}ÌÆ0Cɪëª÷™Dˆœ ý:`94ME2‹ˆÀ>`«kFÁHð÷˜àÕ"p°m‹D'¦ÙÚo!Û²_ü£A´˜tNÿvšÉ÷'ÕçˆblfßÎ>÷)œaG¥¨Ž¤ÿ¥/õÇ„×'›—HgÒ¸¿÷0L“V«Õïq@¥ZQnχêwê”®–ÈJ2óû•úîg¯b,—9ùÔ, }ÔBÊ5¯Aò€Iõž×Õz(³Â2Ùw³Ì_™DDB®¤˜y/Ãøø¥R-ÇØcPé´®-»œÈ$šv!T,¶lN0w¹L¶º'²ò7éᤚùD"UNËOáaùA¨üÃ:§”Ÿ†!„!é‘4‰Ž5¹WýMý“< *ãÌÄCžºn­6˜ýqRÉ”*ÖO5:)—sŸÏ6CâøÔøX–IáªIfx•¥åKWsH¹½Ý†9¤†ÉŸ/pãh’‰;uõ%éSŸÑV5¾·æaš&Á·"žÀŒ¼8mú_k Žsd"Û½ÕìC6Ö E‰‹Cõë* ;¡ÜÃ//àœPdÙ”ÛΤš™Og¨Å‰>ëW ¯‹Í+€Ýdyy£ï,ó·Jpf‚¡Ëó4Ú’ÙßÍ’}7Ûõ9¨Þq©ÞÙý9U(Ú8µ{uÒ¾ßÍqŽ;¤’)Üå"Î1U,¶¢t½Ôã‡5ùëIåâ|ßE ˜øRR¼¶„èO(¯´[eêë>ÓN«9SD1®¦;Má|žt2…7h„êW¶-DÊ]#ÑôHsÐìîJw£µnÀ>hâ$S;.HÐ ®êÓH%¯,’:žÆ½ëb Æ»¿SJ•@Ú ÂfÈÜoÔïÜœl.>š¶Š”B8ÌþNƒÝv׆”™,}ãaï3;‘dêsE/·8T¿Rí²l†ö 1ýç õéªØÖk$&‰÷ÇÚ7„·æ± ·GEÐ^@62³ã5«~]%õþ$å‹ô†OR²;£j<¨w[¥•˜àP‹ ÊÀÔÿÐâûtȘ×·E.;þ·Š@îJ ßÀÖÏ¥|«ŒÿØßQ³´üGy¦û4¾lCBˆ£Í_¼.6¯¤ ñ>Õ¦$þE‘Ô–¾x©ˆ}È&=’¦ÑhôØÄìü\P^.á¯ËmAWB—kx Ë´ÊŽ&iµ{Û(™ÓÌ}Ê)wþÿÌS¹µÔ¼n¥[§ûf úä?CJU a3žÆ9žR…©~C½¶ûÌv°ÛªÕ¦›zù<4Öª+þÍje IDATµ]]…]_bÆCnÜ,c9‰}ÈÆó¼—ì¹ÏçȜΠš>†%{*¹£hÔvð[´¤Ic­÷õeG“Åõ|Ê߸L¾å kSk%ÒBp®-©^¯pãT¦'RÀÜkvŪ•j…©·&˜èüÛØÏ•›‚”R‘^€Nn˜d†;3ž¦¤pµŒãdNÃÜæ˜CÍ2nÄ㌯y¤¿(bEÀkƒÙ!˜¤šŠLb÷XaÀÔnmÑ2ûM´˜èº6”¿v1÷h´¶Ù­ýö€P¬Únq´sŸÏá7|Ò§³‚ nPkÀÀ´,@vo楫KXƒ*ø Ÿ°¹»½¢e ;Aùê„ؤ‡¡¤î®â7xä/.‘<¦\–­N»N‹i¿(2ñïϽV°ÝŠ&y4I4Å4iÉ–*^}&³ŸÏ‘9%T$Àùí'Ù”˜}:©¤*Fö!ÉXfLÝum%¢5 ÷î;Ì_íÕÆ¤ªk¦í1Ðb‚ò7.zŸF¥î2.ZŸŽœ}èBv)Ó-Ù¢|}ïn•©Ïá7|ƾ(’êì¨Ó#iìC6aRY«0d !b‹Ð^$Y"ÿÔB˜9¥ü×r§”yjÃд¿f'•rŽÉ_)³T)¥J>SÓ1e‹BSvY‡`¯ûx‘Ì[íÁêC3®÷§gsÞš‡¥I„ЃgÛ2± êZ”ÚÍ©O'g€ aȘxu ¼.6¯dÛ!sJ°tõù7yþã<Ù˜@D˜Bß¥àŒØ}ޚߥº‚Ê›ßê½UþÆÅI*‡f)AˆEˆ@*Y ±®Œóçɽ½ûðØŒ«EÛo„,ýצ¢pM½ ‹›ì»Y̽Šá5”»qðmÐeßm ÷V'O¦<7ˆÊ9áÐh4º®Ê¥ë%¼5¯‡z¼ä!“!3Ž/uJ7K˜o9x\üuIýN½ÇdròýIÌo¥DîÔs[ô(TKc/„ë_»ça[&Þ7æz€lKÌ÷r.jTb@w¥Lê ²ï_üb†0b0ÿÖ3{Õð: C,ËB6%gÿã,"¶Êä¯ç)œ/k/1©iœ=5ƪ»Êµ™¾Y¸V%ÓTÎ"VÀì”³Ÿ)“Mc¯®ëLyéuŸPJ¬cY´Nø×æŒênÁ}BBéúnSší›u¸p³ÆÍZìÅÞͬ”Ì~OýÖˆ×Åæ•À õú B„dNo_ Ÿ†Ñ”ü}¿ –…¹…I3y&t Cý&¹ÿÈ‘ÿt»“o~kÜ2›ÙòBÌ`Ä3€Ä9î²ê®â?ñ™ÿcž±a›„ß±ÝJ‰¿â=ö¶e|L¿›†6”c`³ÇA ¥Ä÷}Ds{OÝ{ EºØ¹ØD…Níî*Ñhÿn¯^!óï*JAJÉÉ‘“D#Ñ-FbŸI â˜ý:ãgÆ)<ãZÏýaŽúÑ餵Ïì)|‰}&U×£±twâKËu¦ Ÿä˜ª×•ŸØùš¶ŠˆY”nž#µ/…+—†6ÛìóÓ#iŒ=F7˜NDtêwêÈ6Ñ–øë>CÖöEuN7Ò”n–XºU'y4‰{¿…÷h )ǺÏ+Û-¦Ñ ˆÀìi‡üÅ%èœn§;Ý=éþoÀ>lcì1z˜aÂ_PÁ‚‰}æs‰ÅkU2§2¼†h} ý?wJû±ãu±y‰±Ì7g‰þ[”ܯrÌ|úbÖ!Õ5à‘ÇĖݘƒÜ/rä>V§–ü¥%)wmÄŸ²p2¿>ÍÄ[gYüÏ ;ÍJ+«äN9LÿÖÙ¶0®”·™Nn¾.}0'5ìƒJIãæ ôˆl$ÍÜ[*Çoø ˜ïÑv†Tú˜ÍЀ‰Öɇ÷Vn:hHÉü_ Tï¸Ì|2³ã¼CÊæ ÉÐÁ!VÝgÓÆÊ_»X{5üF¿µ¹píÖ¦œý¢Dfxó$)bAJ°ð¥Ä‹…hZCyÁ­mo¥›¥žWÊ ”o]@MѶ®—kœ0 ÕIîf©ëà ìóurïU›››‰¹?Ì‘};Kñ‹"Óoo×–Ìþnö¹'}ÌÂk=³¯Æ~>Ö}/ÎQ çˆú“¿¸DêàÖ`œé>ý™Y=ãgÆII!Û’Êmùzýx-ê|IqN¬~ëxŠ“1 ï±Ç¹?žëšN>ó#)æ‡{3;òKL}2ÓcTù¼p¨•Ôyâ}ÊÔQÓ4ÒI‹Ôa‹tr÷¡Çìïf™ùt†ôhº+ ›‚s1ˆ}¹íÙÊw<ŠW ›a×B$‹R{,)^*bppŽZ˜q‰Ñ4º¦7tÒÃÎŽ‹…ˆ‚ˆ€µOy€Å5ë EêHc*3ŸÂÄ¿OlS˜Ÿ»Ý9Eu Ñäû“ÛlÿE¬7B[Ɔ0ޤ9™îe…&Éœ°™<“V Ÿlš™Og -™™áï}RÎ"åO‘í*"v«¡i‹Ðô~ )%¹ÓNÒb²SDdSWÔjw•ì»êók¼{-R×*d/—¸ðTîÍìïf™þpšÜ{9ÆÏŒ÷ü[ò°If8EväÙvüÏCfØfæW™®Ü‚ èù¬[OÍN‚0P¢ç•g;UlP÷­A‹0"\í}ö¢x]—_R”O8ä–Ë)Y•rÇp.åî¿Çö?wÚ!ûVFEo}Øîiq]ˆ@%"XØ¥-›Ro˜Ì_ r ç„C”ðî ô=:²)Ñ#ÉŒQøsB§å?Ê3ýá´züå"ÓB …@kžäÈ8´7ÛSþ·úù­V‹â_‹Ø¶M*¹¹h•—Ë¡á7BJ·Ê¯I.ò3\×Û±e·t«ŽÓq×iÅLdèáºA3ì.àRæ±²©dÎa‹V[’5m̶äŸ/ô„˜iÚ*²­>`¡i™®pˆˆèñÚÊœ°‰F@ïÓq=ŸÌ© Þ##nà=ò°XÊ«l$IÙUs%4 œ#Vw1u[ÊW­ãîz>éãCð¸Â\r#&(±(Ub ‹#›pŽò#‰¼§|جAA}-ìinˆC³og»æª“ïOb]*ï7I?ÚÎh¬ß©wUõ[Û¹Õoœb#ÖÙ>l«öˆ”©¿!I" ò;èL„Ÿt2MbÀ!hiÖŽ­¢0ê¼Ns@6 ²#úA‡üGùmÙ’X,Œ=:šðH؉® SߣC{ãdòn cuÀ¢R­P©×»­ ò7.΋P¶XZ®“ð¶ Eë÷<ê÷zw¥º®,ò7q͈€3Y¬ËEDDydåßËQý¦ŠÙ¯v¹ÅÿS$*·+]åõØÏÇp¸x½®I§q Õ Nžq°öYÄ5Ù?Ì‘ûUŽlÊaHX­0!%Ù‘ñ¾4Þš=h"ÞÔ)ßœÇõ%Ó¿féÚZLãäÏOâþ_—ú:3ÏPøsô‰¥›Q l¶¦Rɦ©ÒÒ­€Üh‚¥ëªX?S DˆcíGµû üHœú-åPm[&0Øvr’mú½ ‘¥Þ€Éá?¾ ) š!ư)ñ>¾ïcT…4ƒžÏÕ0‘w$Þ#h3 }ÌêêŸò—ÈœÊtm‚ ]ÃI"—ëMçxíæ"a¨!å²™ øVy鉘@6—(^*’{/GøfØu™Ø@Ø ð7Ù”˜ýq@Û¦Wq™¬>ò¡í±p«Îäû“ YC$%»§¤…e* 2°£)æø™qv‚àIÀÄ¿MP¿»ùZf>™¡õ]‹ÙßͪSVÌþ ÅËà#Ä—ä?ª’*Ý@¶%ýE–ŸwھƋáu±yIQ¸ZfüLü™Ì³ï³“\üÏE¦>˜êþÝmK¬/ŠT¤dñvÙ–ÊždÀÄ>h#b‚x<®|±tÝÇ@±‚o¼ÇÖ~‹“?ïSH‰š9tfù/ŠÄXTï»ü¬Ó®‹÷éLœÎ0õ™ºù£1Õ‚2öT¿ªvM'WÝUŒ½ÊÓkqi‘ÅkY¤ Ƚ·ÈÜçshZ );ÑØùQTDÑc:sW+hí¬ûÊ}à[›‰ûnWù.e!&€ô™„ošxÕ8™,~½Äea|2}³Î˜ÌKÉœ”ÈfŠôh™Bú>¥›eÒÇìm ;ÓˆS^qñÖÐLÎþÇY²ogñxhš†¹×Ä{àu ¡lJæoΓ¶M,;Ñaí©b3~fœÄÁ²­N”æ€AbŸI¾?Añr–ìè""H¬×êÌ~4”ÿsžø>[ùÉÅ|毴˜ú`„è)tþšÏêÝU8¨"Dd‡¥e ÄÉœHA[]³Ó¹?Ìqî÷ç¾w¡5+̽åìHNqN8ݘÙVï­Øp5°ÙÝö£ú™Â–ŸQÿ;›%™Lâ=ð?=Þ!•xÔëuÜ{.• 'õ ;¼(^›)¶î\w¹ߟë)ÈžJâ? w|ìFKj§9Æ5D¸¦ì÷so9”ú4fî«j×@íòÙw³èšŽÖ§Q¾UîÚø;'œ®mþÜæ˜ùd†Z½Æô‡Ó=¾R…«å&V  )Ùj˜¿1]Z®cM“8r󱔎ŸÇØc:ž¢ðçz¿NáüBˆXh}P¸¨†0ŒvS½GRJZmÕʳظ]Öš¦!"‚Ü}WE0³äi}wÙtÐ÷èOÌnu-åÆrE-°€Ýo`¬ù$€ÅQ5ì×ßԩݤh®»­Øè±(©‘$>&³Ÿ©Áº”ÊN%3l# Ò£iåg·Ò™«X"[Ê`«yÈÜ%c‚lÜCe MyÁy}Eœ8fa[Ñܨ{ОÂè0 g>5É¿ÀôÛiÊ+.CGVWÊÏeã{³ùýq5ˆ Є†·ÖÀŒÅi57?ÍÅ¥ÅmßµÅÖB“{/‡jÓQ¼d@Ĥ¼<þÌ~ýŽJ.ÕõÝcü5Ïó¨ß«“:’BÄÑŸDY¸¼Àßc7;Ä9¼Æv¼f£ý1ýnǶºÅa'ßn¿&ϤɌœÄÞgnû7ç°j)yî@r+„LŒ¦º(é‘4ѲJŠ—ŠTªæ¯Ì³t „Pêòò­2š¦Ñj©Å<ÿqž„`ö³YV5 {ÿöß j8ûÆ}w›«ôFAòÖ<ÊËeô‹¾Ô4Ì«Kx=— Õ(\,9}Žôè f£µ0wØ]sP‹·}ئÕnaÄ ŒvƒÔ^•Å"„èþ¬8d£D•Ò<Õ›Kˆ˜ y4‰¾Ggö³YâšNú„ƒÑ§3³âq.Õ5Ú’ )B`ì1Tj§¦³Xõ”¯ÛS(\-F‡hÜ++Xg[è ;qs¯Þô¨Õk¤ÒëzL§¼âQþÚei¹ÆÜçsÌ~6ËÒµ%¦~3Eðm@¦Ã0LEv¿Á‡>-)ñƒ€V[â>ð?1 n7 õ{#üuI‚lNPª–!n£ïµÕp’6Î‹Ì {Ûû¥±ª4 1’%|s¨§½VýºÊôo§w|Ü÷aÊÜUJ´¾Blç¨ÅôÛiežúæ>Ÿ£v·Æ]ôVÁ·µFŸAþã *'3¼?HX”n:q±Ï᜘„6ä~_ìö׸Nê IK3Ñ5]µ{Tª¨­¨Á­µ¼G›;ÆòHšÅFƒjL£ÔéqËv…ù[S€€ö<[[0/ gØA{X„d ívj§D£QZßµSk¿¥òGŽh4Tø¨ßs™Ï’ì‡¥Ææ¢7w¹ÜcGãÛ¤Y$÷èx¼NËJÙÝÌ}>×ÝûS¤†<;MøÉ ñG>0†Ðy®ÊŠ"L8Ç´˜ÆÐÁ!¼‡†ÑiuÚ5ÞS”A<®Øvî=·ûY„áO‘m¥)Ñ5M–…ÿÄG×uVl.îÕ¯ªê}÷ ±øÉæGSÝãoÔ¹ðg“ÒÍ€™ ÌÐ÷äIMªè›*Úšd/Ïc㵪¸ùaØÝ(Œ$ѵ(²Ù¢öÀ#wÚQíÑ‹ `XR­À˜`áz•ÚJ­+ýG±Á³ö[8' Θ &šÊ(6hÊg¦kŽEÀî7™_ó(l#7Öèºþ\××x>^›8Zt #ÞËa/0ùkeÚ蜠»ÛµÙ$Ž$°m[EøŽ¤w mÊ Û}ºŠïíèF*w=üOçðÀRÕEÊ D,À}h“ýE™Ô‘T7J:'¡½& TK¨|»¬Ú×tf>ÍS¸X t³‚”Š›{/‡ˆ &>áí­ÃÔÁˆ ü5Ø~SOF Œˆ]MA¥””Ûëf 7ÂfË­ÓîȾ›Å}à’¹T$ÈÆ0 šöA[ÙË?ñY¨×¶â-íïIHB†ÐŽÒÜJw“>š@DT;HŸÂyCÙ¶¬70v[û-åšÐF™zJÉ›7º‹Yæt¦Ûæó² ùýÖŽ,À>f!¢/ «á©ÅvLÃ!ÄxN¡˜oƒ¹æ¡7%üaó;¸“>í5þ1¼.6?pÌ^*Á¥Ùœ;_ Ò–$.0o–Õ¼àpëºÝù‚â™ ŸÄ~Û¶¨¬ÔI xë’ÒWeÒ£idSiBdSiT\7{×íjA&Ϥ‰©£)æo¯ªk[e·ŸûÓ9Ê·ULÏ![6Ú›MÓ8û˳œûã9¶ö¸Û#.°B°®m k»8AØV4ÜÂÓ‰ £i*Õ î‘­ïZÊuø©|‘£ØmIærÙVÙ2~[âî·  Öuí6ìHž¶›©= XºXêþ^³ß¢x«ÆÉŸ‘ðkÔVˆøÌ¯‘ÿ Þ=eG“R™XÚGl*Õ ¶mS¾VÄ}¢œ©Ï Á„´n–˜ë3ž*åsÐ$rö7.Bì\l3Ã6­V‹ùË3€†µêw˜ùÄ'X¯QØÒRõŸøjãð@¤²§¬8Ö>ƒ¹Ëe†ºü̓©L²o§˜¿¦é†!‹×.°¡KÚÀXS’~è²øëÉ®m”ƒw´˜ŽÛ(º-̾!ÆO˜øëj~uîç”Ø² ã §“"ëŽO8’xîbŸ<`’N!›-äýh4ªHmõY?ß0HaNJžd£®óVÃÙ×ø~x]l~$(¶¡†ü]Ó(KÉÒmé€õ;u‚õ ËÛ ­¦D×t¤„¡#A3Àè3H¤»³‡ $Ž$(Ý,õôÚÃf@êHй‹0í“\øó®,;í i¢»ûö‡Œ°Ñb:åoJœû£ìîV7Yqcøþ-­[äÆGlÂ@RúÚÅŠÄ I<"°ïÔÉžJRqC&þ}ß÷1 ß÷ Öª+Õn„²ˆÝè˜$r“¦;_='1 C21 yÌ~”‡6ø¾¯ô6}´7Uòé#¦i ÇT Ë>d+Wä¿Fþ’…&öAý^û0xžGv4‰5hRY“LþÚ!l†Ø¶2¸\¸å{/ÄØcŽ@<&@3H}Qd\Þ蜌„øZLE6‹˜ƒlöF%˜ý:FÙ€õ;:RN0õÁöÏ~ÈÂìDÎþòlÇ/Œ¾ÍÖÑÏNHÒ#*'û® p¾Èäû“4Övfv•®—°75K»YY&ˆGzLC‹G™:ÿ¿½÷ mãL÷þ?-ÜfÀ ¸YȘ2"H4/2%D& ‘ÉBlz ?µô8=е»°v_tNã-œÖ§°­Naƒ8!›éb³²ö3¾=Û·UñÐ;mœW Î_iPüßyd{9q츇+TGq¯Ì\±ˆc«÷5×± ‚òUŸ9)¿Д’æ›9Ú·•KÓë ï GýZŸ`üýqÊˈäID"‡µ ‚;0v,Fã6âJ,0 ¬›>t¤r(èÐûk0 CÕ?Œå"³JÞDKs6-I»Õ&Š#¦Ï,9ZO܈DÀÄ&ð|ÕFœPC—Ù}*v; ÃÞ«HŒãìthtÀiId+dTÊU ¥*kÅÁÆ0BâØBˆq¤œ"NØœ?w‘Äño»Ç¤þÝÊÕ6DïŒaa"[’̇º e›¯®øL >‡óÆïwçtg²–Pµ3‘ºIŒ¼1Ò³Ú šMd«½Nh [ÛX3#’—°2„Í™å ÿ=.ïØ™üºYš'MIdKǺàç¢ÅæW‚·×!jE4šX)‹f³IáÍóþ|σËÛëÙ­îH-ËØ0§¥p$Cªß¤GwòGòÄ­˜úµ:¥”h6—;̬~“á#9*ßV×=°nFfÕõî³1 «?føßVPLŸ­0vÜ#»Ï%Œcd‘Ò—Ë_7 ƒfRu6MHÉ„”ˆdìµQ¼ŒCªP»6O$TFK³Ùdò£Iªµ*¹#9¦>9…0&=ñx²”/W(Í3uaŽvB0sÐaÞMc¥ æ/^bpߥ3cŒv¦ Aù²²åùmK"J­ŽÕo2v4CǪ(Ý} ‘œT;ÈŽÝ‹ .çSþÎWu£_Õ=VD÷ä‰ñþ8/­é 9är¢æ“mÍ`0¿ ­,É:`#’ÂæB˜ÈÎyìΛrCÝ ¸{\†óý–Ý¥ßϵéK J«Ðorò1¦>+ÍL#]w새½ƒ;yÁm5lš=%¼å«Øìÿµ×þŸ6¶­rv¦¿˜|lKÙ"¸uHäÉì ñz 燷\hÊß5ÖÍBi-6¿ÆŽ{Il©»ÿpQý¡YýVo±ñý Ü%²Ó°(™Ùð¹Rý&'þµ@ñïe¢óÌ]œCJ‰½Ý¦r¹ÂÐï†z"R½ÁÙ9*yå uyÍ´vBí`<׆”‹”²—Ñ.„`äè0³ç6Ú›>[Á‚fÂZu.?}¶²jX/³?Ãô‚ÏäÁIÂ@"+•¢Í|oŠ}ò£IÚí6î.5ça÷‰ã—h|¯žCvrø7æ»ó˜óV‹Þÿ~‹ñ¤‰¨B5kasþÜçÈN@á 8ñå4ç“ûb• !ˆÞÆ4 Šÿ1ÃäßTÁÝþ³Íôg'‘YHŒ(SQð( IDATÍ5?¯ýªÍ¥ÿÿÒªZšÑŸì¾)„.˜ö€E Ÿû»ÊôÝžÀ;0Lùõ5‘°°·„‹ï‡5ðçÏ [ÃÐñˆŠÈ¹6ƱdG®€¨!Ï ^B0ýÎ'¾˜fn`’Ò—£Äqº÷þ{‡Aíjc•3ñÉ?¤ýS›Ùs³ˆd•Æ÷ÙÞ‚íßn®r9.¼­bŸÇ{„¤(ÎõîæÊßúÈV‰0^õ<.iÔyº „Ø< zì1,ËbÚÄI¥}c”z£Né\yÕ®íÒÿ¹„½Ã&½;M†x‡†q¶ŸDvdÏ ¹ÚlSk¨äÎl&KôS´áÎLÊQHü€•r8ñ4ÉY Õoa/†>™Á>šÅHÙÔ¯Õi.6»ÇWjm¶6‰žN¨L•Úw5ò]-ÜBÊì†N æ_šG3„ÒÄîd ue&¥¯CüÛ) À° ï†ÄñëL­?–'›Éaõ[Æa7š”„Pf“>›ÁjID§l¥{«]UíÒÎN»B¿¥K»Çe¹#9e^*FÒP5¬¤,‹ö ëðLJñwgh~¢~_VW)~PT¹Bš_Zlž–ìþƒ»á:+™`1âôNÇ’ñÿ/O6©Õj«æ¤,RývœJg²Wh_bü½q5lJœª ­üíú!µ©Ïl`:>0ùUÅXÙêÃÝ£ìû£8Â0æ)ß&ŸÌ]˜#Š£^@Vc! ±pZ †AMJŠR2‘€ÂAB¿…½ÃF$}¢úzÏQT °eYäæ»ÃŸê®:Žcœý92í去ÚÕþB:£ô‰>ÎßPŽî—àN€wÐSÒ •4EÁ½`CƒR wü‚i)ù¼ß€¢ÓÆ>>ªZ—¯Õ‘IýZáüð†Ï³’ùó¤÷©E\ 8pbÎÏ`¨XéBÉ&qå $¶Ù¤Ý4¥/«Y*™,•o¼¯K«º©æÎÍa¥¬U¶úk à¶$&£ÝãÓ•B³ÄÔ§Ê^hèZ•èLjtc9Ogò£“ŒêÕwfÏÌ2r8£¬uVìP‡§ŽÔdK2ž4p’[JÖµ>&9ehžO´Ø<xûÜÝSÿ8óª…»3Eca¹v²2¬l©¿Zµ’ ®Ð=Ò:6ÂìߪØÛlªµÚºéÙz ‘ $ÂÞ:àîTMµpÛ;lâ8&Ž'(ãsjÍìÇÊÅstÅdµ#1‚K8‘Ø6öß÷ÉÊaš&ÎNGÇ}6­Ä ¡2J¦¿F~ºœQãíupwÙ˜¯¨Î±òÅ æ. >%Y‚Ÿò7eܽ.ƒ»•øú7}ÆÞ#{ ‹uÛbúbCúÖÌèœu—ÙcSY¼éS—j'Ùnµ©Öªd3Yr‡s&rzûŒ>Ñk•=;‹5 ŽAR©S›RM›ßíí6¹C9»!þInWŠ`1Æ¿éSx;dæ¢AvÀfú³i6ò#žþìÁ.ÅCKÓïÝŸ¿p$ƒ}¦„w²Ýör`…8™:7ÏØ‘Xý¹×\ìSò‡\Ì4©To÷–?äI·Ú›?SD?hžO´Ø&,ÏôÓÞ,?˜&n=xXñq°,œö*±Yr@t]¼;’ÿº¦¾Ô™BvPÖ:ø˜Iaš˜wÂu®v¿‰³Ã¦>¹É䇓ëjRšç-6O‰±cjxÑRÒ¸¹úëÅ/æ8ýnžñ?L0ñµX¦w§Iu­3ÖŠÍC[Q×`š&ÅOþ)ÄB ™³‚‘!ò‡=|¿É‰¿ª…#ŽcR)œíe6ž9¸T¾„ý 4:ëÜ óÀë- _tC‚a×bæb™ê70ùÑ$ö6›á£%RjXsø÷ÃÊ*çݱ޺! »Ï%nI‚¦Z´DÂdÐ 0Û†rC´j«zV¢óeÓZµ(å„P90ÀWÉ[]¡¸$Õ÷&iÞûU‹è'ɉ—Íæ½&Ù}Yê×ê=k `»Ã¥Å‰„ÀŒcú„ÀÞa4›˜–…³Ýé%q.ç‡É¼–!¸»^0Æß§q½t$Qµ" o¨7êjWÛÛ¶‘m ‰“ÐÙøn옇”íGòœ+~1ÇÈ‘esW{[ŠÁm†!›êfc-R–˜>·ü߯Ë}‰c{–µöCSÝNÄàî£Å“? AôD3{lL!(_ÝüøPólÐbóqœAd§Mãû;h‚Ř⇓„q›Úw5Nüë œµk5FÞéµ%»»Üu×ãQºvÔŒ‹dâo>3g- ÌôÙ RBéÂòÝîÒÝjîHŽûIÁK,@µ«5ä.›ê»£Í©¯W‹ÒÔ™2SgÊ8ÛRxû1_6 PÇtÁ퀉< oÆD‘ŠLî¸{TÇ›|ßGv`ö›}ƒ€ Þh"e)} à~MÕ¥ü"~ݰëðÕ½‚Ñ~‹·ZÿÏ0¨©Ë *Ö-Ô¥¯KÞ, è—8† Grœª†3²Ã¦¾àÆ1Õ[ÿ$·­HØ U:å›ê7êÈ–2á /„½]êˆPÛ÷ ƒ·ªd^óˆü*ÕEzÊ#oŒàºê}(תØ"ÆHŽÇëÅÆÛëàß )üΣݑëÂÌ6bå‘mp§IÔŠ1 µcœþúÑÂÃf¿©=°µQÍ£àlOáß^üëºî²+ö>ˈ—ņ­ÿšg‡›§Äô¹ u?À¶ ‚bÞ!(Šh\o¬û#¼ôÍ%*W*«Zƒ oÈÎÑø¾Aó`ó‰ÆÔJÙÆêO!;²µ°RhVR¸\á%) “kÁiÜ 8qóÁv#¹ƒø·BŒd•ôî,ÅŠddKYÈìph\™T‹¯lIÊ—•£AîH®·ã1ŒÏ‰c5ä)Ú3Ÿ¢ö}Àø{ãX¯ªBynM|uIJJ@U@¶ëû$ ²È.ÆÊgÐ, .¶;mÊW}²ûdÒ»ÓÔuAÚÝf!f"î-ºî¿+„éi¢8"¼’vÓü3)°‰¤ Ñ‘ˆd6M䀅L.ß(˜ISu%Ô®læÌi¤\ÿ{ûÜfÒ R«?’ÐlÄÊ€½Ì›¾„ rýỆ•>zOŠ\&Íè!Á¥oIJÝžF£ÑÀ•2FÊgÌ4Ï-6O/ãÐ'fLÜjãV“Úq·^°ÑQÙZo(#©º²ÂÕ¬³Ëyh!èᬥ ãBv$¯_¨1syz•Ð<ˆa)ùJDBðCRyÚ@tx]Û"í:@›áü0õu5X˜t™ûÇ4ùƒiXLaC§J6£Ò@³UÇ™üh’â}j–#𸄋1ÛãLQåüœ×ë–r÷ºëÞç슎¨ò¡¹n“ÂZ3Ó±wÇ0’q+fú³iDò$“_šŒ¿á_«Bªß^bìߊÊôŠKÜÅè¿”àœÀ¶mÂ0¤rq–ÚÍ@¹Ew`0!H¥,d+Â’!òB‰Â‘YÊ6gÉ pw¹ÄqÌÄ–[¥OþI…£Í]Xý¾}«?…mÛ´Ÿ€mK®ÛÄÒ—¤^1z±›±.ÉfRp©Ö`è ²û)Þžcü½ñ^ë5<^ú¬æé¢ÃÓž"fÒàä&Tkm7†øÄ¿žÀ¶íui…· zœM}:ÅÐúdŠâ_ŠÝE¯a´¢ŽaÌ#ÄúÎÍŽÑN ³Í&›²“‚ñ÷œœ8²&dÊc»½Ó!Ý­#eöØŒ¿‘£pdóp·%¦ÏU˜:[¡~çZ«†¡šéH¶ oV CÊ7#Þv¼³ÓÇÝ몚¤ òm…yž“Vs5Á1$`êÜ$"1†S åÔð_6“Å;èõ^ÛÝ™"³kuœ½Íƶm²™¬òGë2ùÑ$F²;!ß â4p!Æ™úÄcú³i¢;ur™4Ë3ÄqŒ5à D‘xñ¥Þ £Ùo/Tð2*üNuõÅD ‹!´¤z¼|‹Ò7—h·T`™½Muî9ŽÃÈ‘L¯¶rêãSP3R ìf2û3Ì]iÜkR¿Ñ`öòƃè˜Bí4ûžÑ-jñ‹9jß´¥DUךút ‘ض­³5Ï-zg³…ˆä$C$"âV‰°Ù¤øÑ$qÜÆ¿Ó¤ö]¾¾>eþ8`“ÙŸ¡vUY®·[Þm&[}HÔDzÚ…öCX¦KÅÔ¾WÅÓ0 {EÔ•4¤ÄnÅÐ )ðX؃Â+vcw½¤èÓ)±ï…H)îÞA§›Ü¡,=º={‹ÒÙãï»È;5œmvwÞEbïtÜ=Øó"›»pšÌ¾Qfþ1ƒwÈ£q½Áð¿ Ü ¨Ü.Püò$àì„àŽH~®²y–ºèPíܹ®Šn÷`ŽÊå Á=å†Ü\l2¸cï G»Ý¦r¥¢<Ì®7°Rà DŠôn¨7l¤T†˜ƒ¶Mô“ѱ°ã·¨/^¢¯¥~Æ©O§pv:ŒtpºþoŸv›6¨qÈVÍî÷úµ FÒ ø¾Bv—jj]'é¥y¡üѼJM€õªEa‘?”]W3{\æ®4T,Åb㑚 r‡sØÛ잣ē¤Ñ„üÑ,ª•íÏ™]6AíŽú4O-6[Jg{ŠàŽDˆ€©³o­új*•¢øÁrwTáíÖ«–šo>~·Ž”’(xŽÙoÞ ©}J¥Ê õrOÚÿÓî DK ·u%%ç¯Tøív{•ËóIý&ìp°ºu¢ÉÈ /6±ŽxxwC*×}¦ÏV€·ÏÁ±S=r)$– ×8)Õ†°·â®m}ŒÃ'¼WÆò• a'E­ ¥/ˈ¤¤r¹Bår…ñ÷ÇÕâßÕµ‹vz_š¹ sŒÎàìT;ºµb·bš÷µ“Ù¤ø½½Ç*(-ÈÅh úâ ÍÃðöª†„rmÿN“SŸbüýqÜÕ~m¤plë±k-#‡3XFSg+½ÝÌÊ×±9¥Áèa÷‰üLš'‹›-$ŽMÊßÔ‘²Œy2¯ïí(DR¬ò%[þåÀ¼Ñ<ãâß ™ü)‚{!™ýÊ—Ë«<À–Á%Æß'óZ†x1VÆ’;lœsçæ¨Öª”úM‚8fvmò¤”°Ã{¤Œ‰[˃zõ…€è?¦{‹ËÈá VaÜîµ×žL HdI_©0-•ÅLx/¤t¥Bíj 7)h¼1Š gsw»=ãÐj­J³ÙdüOãÔ¾S¶.K ¾šêæÏÌ}[§t±Fþ˜òõ’-eèI²’V/lmiʽ.î‚/% ¨šÉ©¿*¯6Û¶‰~Ѝ]­a;Y¢V@íZ°aïÏ(±lµ±ŠL}¢®%¼§:΄Œ¼¡<êDBMêgögÈ}8IÁ0¨\il·+f¨FÞQv>ºòU;¤²~6Û%!z‹¯¥§Ó•åìPï- zîSŸLqòíQa¤ˆãhx#ì”Éà›‘ÖòïPñ/ENþù$ïÊx{ÓÄ;#&>ÝØ†HólÑbó„)É@¢ù  ö}Ðóš’­"iw óe{»½Ê´r%MBWƒyA¯Ê'ÙŒ%‡€Â‘ ƒD-¹‘k3 ’UJ_‰óH)™=;ËàîA‚;Q+Úô:úZ’èÛ ®dÿ¸z³6ÑÐê7)ÏS:»b!xÿ$ÁgSØ×êT;êxÄÞf#[²'ÄC@Ó²ÈÊQ¾\¦øA‘Ü~‡P†4®ÄŒß p>œÄzEít–2NJk†IåÚ%Œ¤ ÄÌ›ëÕ7ŠÀ‹Íf¸Î 2-%"ÑFÊ—àö²C±H ¬”ÕÛ=4 ryŽü±¼J³iÏ3ºõù "D¶­ZT7:0ˆ—™–¦Æ=×&wÐÃÙncÛֺXCô‰ŸµÀ˜B`oWUÙƒ¹ ®Wb.ÎѸ>±*™råµ>ˆ—☗ºËk)¼YXÕŽºv12ZõoJÌž™UT¶w ‹³Ýfò#8ýï§)~P$Š#ÎÏ–ˆî(GË0”!è@ŠFWèŠIAªoìòpl›´cÅmlËàAx=r‡sL~8É|÷8N$bŒäFòóÞã¦>¢ôu©7Û1.Ó_L«Àº~ ÍdI¥TÂNd÷¹X†©-@6r‰[1Ù}Yr;^º×ìÕÂVÒø¾ÁÄ'Ô®ìJƒŸÌRül㛀Ìk™-¦|qw¦8ùvž“oªßë¥@º‘C.'ßÌ‘?¤ë6Ïzgó™:[Av ’íu[}€¹ sÌ]X¿Pœþû,²ÓÆLnU¯3öî†a`…ÿ*,ø½,™‰ßg™ÿI¹*dv«Ñ(Šñï4ñï41>d«M³Õ»Õ1Ùì™Yò]²{¢V¼Jl–vj+ñö:DR®rÏÍc¥,FŽl8 ü"Rüb½°N­àî´i,ü¿±Ãû5¡Åf I;6^ÆEv@nÒ‰cõ›äŽä©\©Üݸ†ð$™útŠ“:‰išˆ¤À¿éÜÈìSéíN!+ë º"ùζ¢º;ou„êî²/Ù‡ìîž–2«µ*Þ` À¿é«.°ÄÝ÷b£3þtבÀh†œh6Ií‚°)©/„‹³l]µkkÉU>hƒ®›&\Œzbsêë2A3"N˜Ìߘ§üM§ß#\Œ»y}ÝëL6Ýód³“‚×[RaÝ (Ýg—êÊšûV¬…‹!(IU³K@¥•+•^ zÜVÙ2frõúZ›¡ü!;eõ1—ê‚ÎNGÕŒ¬Înúý?šç]³ÙB"ÙFJI[J¢M¶õ‘”ø7Íæ/zÛÈze3lÛÆ;ä©‚:*ípúïÓŒŽŒǪÀ=òÆÈºï³úm¢8Æ¿ô¦ÈmÛfê?¦T;¡|x;F·¶²tÔ1u¶Âð¦6@o·ÛʶEJd3ÝÚÕa&ßgîJcS¡™L ¢¤`~ÉŒ±%WM®OŸ«0}®B«‚þÚ"üÒ ÊÐÅ9¤ w±Þë¢ÚŒ%ûŸ×»ÇxæË&©o«8;¼ƒ;ño7)^¬3s+f¼{[wZ>ïOvÍ5—†g+W}‚{1þŠšËÈ#ë†{-ÃÄÙf‘Þa3øj w§Úù¬ôËY_ŸÓhž5zg³…Ì^¬mX»Y‰2üe]<Ê$Qµ ³ânw3j×j4n4˜þlšÂÛ…žhz·JUt ›!ÍfsU»t¸è3}áón’¥Â°{~cK;‰¥ø€f³ÙËäyKÝg§VXæŒ îÀÈawSçb»ÆvGŒ¿=¾Ê¾¤p4C[‚™ìÙ¦¨f†Üá\oø±ðvAíî€Ôvqoó÷OÕU–ö%¢Ÿ"Î'`êL‰Jb]b”ÐŒ Õ½g-Õj.Dˆ·ÇÃ00^qˆZ’°-t{qØKµ˜ Œ0’‚>!Hõ›äúM eª—ç3Ìž™Å;ämhM¤Ñ>ÅÈ‘ ¢6Û îbüo§ÉìßKDQÔšÜ~LX)‹Ò—êy #bêÓÕM îÎBôõoiÁ;ù§“«K×2ùÑÆ‚dõdö¥)? JaTJRw^oI&Wšz{œm–esþ› …ã9ŒúúºñÙ UëÈìËÉd˜¾VåômÓÒ‘ ©~õüþÕÕnÐB&v§É~]bæ›óxî cÇ= ÍÿGIþqNýõìp…0(_õÕ C'ì51 ý¯!’¶M Ùú >åk{Í!—q™>WQin59’aö¢z¯ÆÞ#Š#¬”E¸n‰³Fó¨h±y˜:[„ Œ£}&òŒÌ]˜Sµ‚{jî£|¹LÄRR¢ çBPx»€hIAKòoŸTÍÉ:"!r!&{^d¹é^ŠèÊÖÔgiHLBgõЪã˜D¶ú6¼ä¶”êÚ2}¾tœÕn/?®rÝ'ãÚÈ@5DÌ]¬àư9ý·ÓÔ®ÖTX[ "®Ë6S >ªom="©ZÛû„ Ù B3ú DBvÓw‚¿q®œW»”¤‰Ìmö¦AbBÃø©3¤|‹Ük–i¬ð-¼YÀ;äõâ$ÊßùX¯jæ(Õ}­„<]búKƒ“Ró?–eaÿÙ¦y¯Ù ¿O€L¦uç–æ) ÅæaéØj w²áw,²˜¾ð9"abo;Mùb‰Síãä›9‚;Jâ¼yÂ;èQþ¦Lî5P òºÚËahçgK4‚^º¤·×Á¥ß€*IDATxY¬«íD­6ÍPզĀ ?s_uUâf3$ú)âÔ_O‘{ÍAJè³ dg9Ùtc2IGÍ;5=¤„ìnÃ0)ˆ>JÝ:ÕÒs¸{]ulÙQõ±Ü~ŠBôÜE²ŠH8L}qúß˽Và¥çùJ†“¤$›Œþ{$æQÐbó’?–ÇÙîÐ\l-FLŸ;HÚxèæ§¨]Ä©5¶óƒIj_ãÖ<9)¨7ꔯøD­a3ê}„A )xìä HxTó¼õ—ÍVÙ*a$§‘r)ÓÈŽA6ÕÚæ V¿½cÿ΃—‚Íš‹MR„ô øÍzÁðVØöÆ}¯“;àÞ‘âÔÇJÐ\ÇÂN¥IAÜ’X† Še¯þ6þþ8Y7ͼ?ÏÜÅ9ªßŽSüKƒ¡O¦ð’‚׿óÉîv¸t¥JãÖæõŸÜ~ë•óÁ)‚ø¤¬áíwcÂŘ(^ß~nYÖ+Ö€¥,rîúTo˜FH/ †Hؘ†A»£2“V2#N¢ëþ2±ï=¾Ã¸Fó¸h±yq¶; 燩֪4®Ì0ùN‘™+>a(˜»°yÃB;!àn-‰|'GãÛ2…`]+©lYdd°šwN“=E$ábDcaóY!!<ìí²åâ/€lý¶;›³¹@Uoú4n77u:.$`~oë‹ÌkjßÕ0~jc½j3{ý"j$ £Žì„ÄñKðÈîs)_®AgZŠ"¦eÑw;À°H;6ó· ÁÉ?$nÅ„Í8Ž©\®p>Y¥úã™”…”mh5 cì”ù@·ew·™40úMj_+6çUw§­†ƒ¿_tX¾XÆÙî†a¯i`ò<")˜ød¹&#;Q+Õ³Êì±IïP¢>FX×}>—!媤Rf«Ðbó‚PO Kœ€ÝB|p/`öBÜa“ÜáRJÌWÌuó'Kü6Ž!ŽùüýŒ—MÊßm>n˜ ÎqþÂußÄCsßãø··#¤\>b“­,ù£ùu±ÆKlÖÊÙ‚ðfƒ0齃ì…9ŠFo–f w{Šòå"†á"ph¶Ô¬OoÞ'ñ9V¿ËìåóDçb ož†fƒv[";*&z£&‡á–¤ÇЊ Û\ðHVúuìµ–Ã8ÂZ4âÁ±+gŠ6n”­Adkù¿íWSØB¨‡i))i‘ѵ«5A2ggxKJr;Òx‡mä:F²¸ÕVƤ‹cÌ\ž²ëŸ°s‚pqX%«Æƒ=Ç€É'Iò..Gf÷ !ðo”¯ú„‹!¯ïNSy@×ÜZÊ5Ÿ¸%W Óƒòj~ q¤2x„þ‹×<#ô¯Þ ÀDK2Þ¿Ü…t©|iÕlÆÈ!ÿ‹v»ýD­L6ø¸åͶZ< op]eJiØ”¾žèÖrÕšºóIÀìF¤¡”ØwÝâvþì eàtªW*X™"t,ÜÝÊù:½Û%¸å“?PÄš4”«6åÁNÙ²V5+Žd¨{žv;×{?½ýVÊÀ~Õ&îÖU¢(Â47ö¶ÛŒŽ(FæµÌª]Í£²Ô2?än‰˜i4C‹Í¯ !N#„‡ì@âUÑ~â§ï‹i*ïŒQûdõb4¸ÓÆN„Tï,_åºÊ®æVó©Ù{˜¯¬_Œƒ{™5õŒ¾1ÉÌ™õk.²5ÈI™ K©"¬WðÛ–„Öò®ªŒj絓ž”Ìü!• 5lÑÆ¿åÜ ñ¤éKÔi, XÊm»³>йp$ƒ³]Õ9Î_\éÊU×¶R9)äŽäpw¹ôõõaõ[½Ž¯!°€©Ÿy\åíuhwäªòÁƒ½¾•ä^s°-‹ Œ(·¹˜h¡Ñ<+´Ø<çŒΨ]J·«JˆVÊ lÚH))þe´÷Øðø³Ÿlp×ÛÔ€¼¦,úÝ)Ò;Uô@OÇKªðfz÷õ—p÷¸äå(ýWiͺl5c'¸iìkÏò™–’Ï v:8 >–eQú¯în—RwG7ùN:ÊBºsÏÌ¿—©7LeɲË!w(‡ÛïåѬemgSãæ<›ó½é'Ái!(¡LGEWp:Ê$Òì7UfÍõ$rˆD )ã c°íY×!Œ"/(7äüÑ<…~“(ŽVe¶8¶MvŸCõ¿|ÆŽyL•kóø‹1ùŸì%6õku¬‹l&Û‹Bx\¬WÖ‡Û5¾o;œ[WG™"bŒnçãR¹îc[m‚ÞÑ×ü­yÚÿÓæÔǧoœé/†‘2 ‰1J ¤ÜÜH£yÖh±yŽ™:S†Ž$nµ)çSƶٌ™BjQª\÷±m›0 ¹êIŠÌ9!0,Œ„`pAí–ÂÔR5hyòO'™þòtRÈÎÆ­Õ¥ 5ì”Õ;ê"–vÓÔõn«´úÞ©3e̤`ÐNáî¶AÔjãßi†jG`F/ô¬|±ÌôÓL~8Éùÿs^‰ß¼½j"i'3öîÎyq[&Éc“ç*¤Ïm<'d®©)=.+ݱó]X 8Õõ7Sâ6…Hþ€}ÐIA"ýÀî=æY¢Åæ9gjMæËK >,ø°æøgâ¸{]rGr›ÎÑl5ƒqLRR\s7oÇq˜üG…á#MÂæWT®lÕ¼rv$³_uŒµ»‘ sæÈΑͨ]KûÚI›æ]‚¹+Èä$µë³x‡"ÊËdögT’èå2cÇ<ÚA•l&‹wÀ[µ+Éì²I½"ÈìQ6ýÖ+sæRRýà N' ÌŽ¤ÏU(4ŽüÛÖº+{{²Ýø¹¦›L¶~ ÜÇÞÁíG_k4Ï-6/ë üdØØÔòi`Æ{˜M|º,ÞàÎëH¹ù.LˆÏÂAv { ¼*6ÔŽii×jÆû]‘™ÿž„…axÈ–Å©¿*Ï6wKé%×L¾›'㦙½Xaú‚J î=ÓÑf,1Mg—Cp'èÙõ•T6/ls·}µsù·­?ºª\÷ñöÙ¤,‹¹Ï6Ú ÎÜqr}ЛFó¼ ÃÓ^0d«!.!DþY_ʦœúøÞ!Ü‘¹Ã}%Fb‘ô€¾uB³Å¿)ý£ÔuEö°úUÙSŸNõ^kæb•ò• ¥ Jìæýy\×Å‚¬ë’J ü[~郞ôe‰‘Ã.Ó)e¬ÉbÈÓv+~QÞÔwN¶F‘­ôS¾"æñÐ;›D!ÒÈŽƒH:ÈÖóY4¶?œÄM@IJ2û3 冘ü÷“ÈÖK@ {”ííu0LÑËΑ-‹Æ÷ëWûfŽñ÷lj¿˜î†Ö)fÏÎ2¸{ÿlEÅ87ÛØ]wå%Á‘Ÿp"޶¤Þõsðö:8¶jZx${æ¢ÅæCˆÖ@ !À¿9ø¬/gC&0’]±˜¡«5jW—pÕÇ}Ô®>Ú󹎅=ÂbÓÈé±c†!h.ƈ7 Œ,F4n4Bý¾ñÑ$§_¨’nI¸\£¹Øì ˜²ÜacFð|ˆMÊ2pvÚ œõ£Ñ<èc´ ÙÊÞ“ø M¤}ø7<ŠKÇ[Û6xDB`½b©®¬M•©ÞkÀ¢ð/ê·>7 <” 8ýùnäóÊXå©3eæƒÿ)¹-< ³kÄÍXgÑh~èÍ ˆ”R>Ÿ»š%|)¼údvj0óÁxSg+¸{]¤”÷â8Æ|ÙäÔ'8ùÑ$NB@3TÝl+:éœí)²»mÚòñ½àžÅçðš4šÐbó‚a÷UNËsLáÍÓIAæZ}ÅñÙÖâîuýý(á!˜ ê70R¯g²½@µµ‘ÐYÇ&ã¦iþ¨Æ4š_‚›Œ±w‹œúë³¾ŠÍq÷ºØ;lR©Q=5±ýý(ÓŸ&¸½| ´$n3ÜÔ Ô`e*eê£*æ¢Åæ",Ï©¿>_Ýg#‡3À²]NãzƒÑß?ÝZÒ˜T>˜àÃ`åž/-%…7FÉ÷§TÐÜ™ãžÇã3æ×†›„ÂÛÚ²Mfæ©íÆØ± Î6›p1ÆÛëP¹®,l&þ8ñԮ᫤ ÝQ©ž/-.÷Q»;m¬~A*•"íêf«Ñbó?šÇÝí"„ ,Ëðˆ-Ã[OŸÊ°IôQy€»òV2¤,ìfÈ[ÝÏÎ`õ›H))_,Ó÷›¾UqÏÎöÀºXiFóóÑb³EŽdhK‰7¤±ðä­ÜáÁÝÿ¦rx¶·Û*Z ¡Ü•í'ÔNü$˜>Wyè°aáh‘è#Š£ 3e~1 ±âUÝÅ4úHïvÃés߯~Ý\fIUp™F£ùùh±ÙÆŽyØ)dG"áb“Ùco¼ %Æ 3½êSãïÃgÓØ@¶ë×Å•î¿^~Ü䇓Z÷÷®O  ½Ü™g…Ýoâìv©Ö¶æèÏŠcXã×6}¶‚!”ÚZ¼½v*…eY„‹‘æ ¡Åf 6ÎU«àC€cÇ= !°-ƒÙo–ï®…˜G )s°ï<éO¦È A %Ógf6}Þâ_Šœñ„JÀLKÉÆ%ñ§GÔðn@ÜzºSð›…¦U®û8¶Ap¯¹.H£Ñü2îß¿ÿþ·~¸ÿÕ~uÐùpwÙ÷½½Î}g{ꑟ?š¿ïîuï»{ÝUŸ?ý^þ~õ¿Oß#·êóFÿýû¹#÷ïÆ«>Æýû¯eîßßéÜ?-ÄC_wòÃÉûÞ!ï~î°z~w¯{ÿRRÜ¿ßoÜ¿4ÿÃxæï¥þÐúãÅûX«)AÜ×;›ŸçÚ!î‰G*"ËŽ$w(×›Z_ 8 îÅÈo«÷–Eò+¤ô©~묳à·â˜öM_J&áø«Þ¨ãðˆ~ŠeË?Ð’Ô/—•˜F£Ñ<´Øü œm6ƒŽÃÌuãlOm(:ùcyÒnš(ŠÈÈ6CÂæ²°¬-žÞ,0sÎB¶ÙLú6É‹ÙkÀÂÙé ¥Äï&g.¡…F£Ñªlˆ£g–Þ©Ñh4 Åæg1}n¹pl§Rˆóe+e‘;œÛpŠ¿øÁêbýÉ?Ä_ð±RQ1ýÅôºïy†ÑF£yVèˆ_HÔŠ1M“‘ã#à‘íbN}| g§ƒwÐÃJY[rm™ý™“FóìÐ;›_ˆòÍ*«ÁMvÞ~:púvH]JÞÚ¤¸Ÿ?äÜi¬i—9œAv$s9ô8üûážÃ±F£ÑfÒì}]vÓ4ç ƒI!pÿ}ë‹Æ÷çþ¬Ñh4Ï}Œö™:SFJ¹.îy# oHõ§ˆã˜x1î¹Ì]˜[÷X»#û²8µ*CÔ‘æ×‡ÞÙYoŒyêãÕÒ›eN~4Iñƒâ–]«F£Ñl5Zl¶ˆêµ*õu†rCÖaÖ2v܃Ø)³×6y-ƒõŠÅÌìÌV_®F£Ñl)ºf³E ßô±~#¹4[zøƒ;•Â;àb¼¼œÞéôHïK“ݗݪËÔh4š§‚›'Ì?“‚!fIï´I;Ǭ%\lR½æ3ûͲQf__î.—v§³-…½-µU—­Ñh4[Š>F{‚ü`Ø ˆ;\¨’›=ÍÌ…G+êOYßŶT§ÉíwÈH«¶ê;:üL£ÑüúÐbó$‘ö¸ˆÛ>E) ÏÎ=R+ôfŒvéKê· ûrø·- T£Ñhž7´ØÍXû¢i4š_'Zlž0KBódˆ„¹ªŽ£Ñh4¿F´Ø<ÇL|úð–iF£ù5 »Ñ4F³åh±Ñh4Í–£ÅF£Ñh4[ŽF£Ñl9Zl4F³åh±Ñh4Í–£ÅF£Ñh4[ŽF£Ñl9Zl4F³åh±Ñh4Í–£ÅF£Ñh4[ŽF£Ñl9Zl4F³åôĦrù—e¯h4F³ÄZMI¼ôÒKÏäb4Fóⱑ¦èc4F£Ñl9*<íÏÿ|Æ—¡Ñh4š ãÊ4ñw*²—Ô)î4žÙi4æÅfYl‚ê³¼F£Ñ¼À¼ÜÖ¡Ñh4š— HAð¬¯C£Ñh4/8ÿnÄKôLŽÁDIEND®B`‚ghemical-3.0.0/docs/user-docs/images/setup2.png0000644000175000017500000003370111563552731016251 00000000000000‰PNG  IHDRú'À| pHYs u u-x”utIMEÖ 5¶÷ IDATxÚíÝyX×ÂðÖ€¬²ˆ A¢€ZPAp\péÕë®X´‚XwDíõSQ\[‹ÖŠ"®T©K­K+b©€‚¨  *($€ì[–ï©i ! áý=>>ÉÌÉÌ™“É›“3à !Ð Ð!|>  «²²Þ0LÁ“–-ÅÏïÐ¥ÛÑhM€65ËÙaíÚÕ-{mDD!DAxRMMMLLluuÈðx<}}=ssó.]T/ÝŽ6:ï@›ºtû^‹ãžò¯¸//¯ˆŽ~0{öቇzø>”<{–T]]cmm%œøÊ]ÔñN´3>ŸOå3F£ÑhMNW¨÷zMMÍ1cÆÔ{Çãr¹99ÙeeeÁÁ¿p¹œ‘#Güó› ¢ íÐÎYoddBIIIRVVRPP ’]x:®¬  ÐhÜ× z>ŸÏår©¸WTTêÚU[MMíÝ»wÂ%Ñ»)¤­®¶röäÁý˜ÊJŠe•ÕJ<÷4ùª°Ÿ¶Bœ¾ÙŽé{ê…Å€„„GêêêŠŠŠ„*ë !ÅÅEÚÚ]ÕÔšŠ{ªGO¥<Ç¥té¢jgg—žž.'÷¯Âè݃Z»lö°æ>û<‹aö6úïg)d?¯Ð6’äµÊ™OJuÍІ åRR’,,B¬­mâããÔÕÕûô1§fݼyƒÃáÖ+/"î9/œõ‚>>ŸÏ§Ñäл)7Ø¢!$#%±J³WRµÚó“¿*(«Pû*FûÏèaSFØèkk—–߈|t)ü>ŸÏ§ºö„ßÿ]Ðǯ×ß~J=þî竳Æ;ôÔëZTZ~ånÌÕ¿bÑøÐh4š²²RBÂ#kkBÈ AC³BB®ÓéÊêÊÊJMÇ=‡ÃJùÅ=Wÿ$}ôîA •UTuÕTÿñÇï?{‘œ‘›ø‚Íᑊ2BÈ܉£Ýÿã|+"êı£3§OY2w.§´0øÏ¸‘_­¿wú!dÊ”)„eB¨>>ŸÏ¯×ß~:ܤۺm»+‹W-w_>s§”ýkTÚÚ!îÔÕÕããㄳþÆ«t:][[[]]]xà^tÜs¹œÚÚÚAÿOŸúŸÏçñùè݃´ûîܵåSG1 '6iÄ0—{ø—·bŸB¾ë@ù-8¨JNéò“7sç’éN£®Ýù‹«ÑíŸNŒÑ`*ñÉÇAÒzû¹àé©S§ªËjËuÇÿˆ±··›9qlè½®ºÞh‡ÄWTTTWW¯7Q]]Ê>-GDÜóù|.—ÇáÔ õè9{öOAï¤ßƒÇOãbu!6V,X ®®î6eLhhh­²†®¶!$00PPX___®$¿R^UÌ^]oŠàiAAA¥–¯ªŠ•“KÑÓÓ“/É«”£ã-€ö!¯§L™2ýáÃ"KŠìÝsëêêŽð`Ný¸G洛z6!9ϲ2ýŽïݪ¢¢¢\Á¦uíYP\b £½páÂ>ŠÊý{O~,''G£Ñ”»¨ëji4, §§WEïJ鮫M¥?W‡´Á9—ÔF›2e:!ÄÖÖ>>>NCC£^_DïžÇãÖÕÕ}Ìv.‡Ã>E‡ŒÝCph“çµ?}Jãój*Ê.ß¾·rÞôÅ‹ûýÎáÓú÷é=ËiĆIEYEUuºÁË{õ»‚Âz:¶¶¶QYåóœ†7ÜíÝÜÜöÿÎ¥).™2†rýúu¾œ">ОYrN§«««?|øÀÖÖž2hÐЄ„GTâ7Ý»Ä=—Ëår9<—Çã þX ½{r5uÜå3&hkk)*(””W†ß;íˆGWWî¢þûƒ§üšÊ©£í¯YËá&§³®…ý©V‘_§oüGä<§áÔ8uúß/!«þ3vÓ¦MnE‚oG¹4Øíãââ~úv•A7ý¢’òãgÏß¼y“Û•´CÜSnÞ¼A§+SÇf !‚#·¥¥eÊÊtqqÏårËÊÊJKKëꨣµ<§®®ŽÃçÿõ¥¥e**tôîAÊyP-}'Ç©–ãóø|Ÿ&ÏUîR­ªË¯(#„\‰|r#ì®ru SKh4®‚J­ª6§¢ìÜÛ—/^Pª,¤ñyÔ™9q ‰®q±*åïåxu<9…[7CTÊó…wû»wï†KÜ+((_#A0]QQQx §ÑÞ}sÍrv¸tûš:¡^–C¬™Ý !éqø@››åìð©ß„>ŸßâÛ›€”‹ˆsuõCCtˆ{Ä=È ‡j ¥°¢AA£G;á hµ¸'„àÈ-@§ˆ{éd`ÐKÚªäç·íZoÔAªêç·îÜyH@ÜK…ØØhÔªµLG¯*€ŒiâP-ƒÁüìÿ@›Ç=‹•ñÙÿ€vêÝ.èÝ´kïþsAï@Zz÷‚mÑGï½ûF­Þ]ï4ÎZâ¾Õú×ii/]]ÝÌÍû››÷wuuKK{)¼ð±c…ï†ÈçóÇŒqjÓ_ “B›öî߾͜3g¾—×Ú#G~$„\¿~cΜùW¯þÚ»·U@E…~çN¸“ÓxêiXØUU•6ým±zo´®ê¦%ƒ÷gçóÉžñù…•‡69HR -T×pC£2“^}(«QQ–71Ô1¤G†fÃ_Ö!—]q#âmzV)!ÄÄPcêèÞÝu»H؄܂ÊÀ+)[=†´usµÊòµmõfèDqÏ`0?žÉÚ¾}gLLL]gØ0[?¿ïõôôš\ºŸßÁe˖Οÿ÷+Ο?¯´´ÌÏïà¡C~ÔOO£Gqôh€§çrÏzko]JŠrÏ_è£C=MzU¨¬$׬­îôµT=mú7óúwÕ WTÕ½b•üÍê3o@˲‰]\uä—ç“\§ö#„Ä¿(8òËó5 êj«H¸/3?ô3ÖjŸæúôå jÛºÍйsiëæöõÒ¥n ™ššúøøJ²ô¨¨û_~9MxÊ—_N‹Ž~ x:a‚sqqqlìCBHLLlIIÉ„ Nöî ?T^Iñþ!fýw÷^|^VQ+á6µí“-xz÷aö¸a½šU ÕkõšõaʨÞ:št¨©*Z÷Ó]ù1¤ZàVtÖh›žöVteyº²¼½•Áh›ž·¢³$ßÀÔ7ÅýŒµÛ¡¹Zeù‚Ú¶n3t®¸Œž‡‡ß¶··£Óéêêê7zEGKt¼±¸¸XW÷_?tuõŠ‹‹þY½œœ»û2ÿc„ÿcîîËäää®]¤À+)£lzîZe»kÕ°n:ª¿…KzY·}u+«9¯Y%„W¬’ªjÎ3ÝfhõZ÷Ô¸pëuFviM-÷ÓßÔ´7Ń-õ…§ ¶ÔO{ûA äpùÙ¥}Œ4Û¡¹>}ùµmÝfè\ƒ9‚þu||ÂîÝ{Ÿ?O®¬¬$„Ð#©biii±ÙÿŒ3° 45µ„ËÌœù?¿C—/ÿš–öòÔ©@‘kiÓ’AÔEâ2²÷vÿG’~ÅÑÈÛžá±Ù¦ Íð˜ì1¶=åhÍ+ÐêµZ2Ãüχ9WîdäVª©*~ÑWg¢ƒ]Yžš+<î,ɈDyUF—ݘX£‹bEU„ø6§´›ŽªŠ²B;4×§/_¸¶­ÛŒ+î£çË—¯Ø²åÛQ£Fª©©UTTZXHôÙÁÁþêÕëË—» ¦\½zÝÞÞN¸Œ¢¢â’%_y{oÞ¼yc½»§‹»›Sv=âMv~ymBkNÄØôïöG4ëaR~»bˆ¥E ´n­T”&0š<ˆÏ'ù…•>Ì9uõ…çœþ-Ë&5UÅÒŠ:-u%Á”ÒŠº.* n`ÚÛ}{kµOs}úò…kÛºÍÐI{÷ÕÕ5ÊÊÊÊÊÊYYY{÷~'áÒ׬Y=sæ, õiÓ¦B®_¿áïì×_/Ö+æîþµ»û×bÖ.Òék©ÓÇô6gvUV’¯©ãnü!¦›-OiÓó—ÐWÓF+ÈÓZP -jE}=èªÎt2Ù|0¦Åoª™‘Ö“ä÷c…¸Ÿ$¿7ehI¸ioЧa¶Os}úòÖ¶µš “öîØïã³ÓÃó{÷ËBBnJ²tfpð¹½{÷ûú¨ìÒEõÂ…à¾}Í$¬œøÞ}mWAANAA®¨¤úÆ_o›»åc†ö3´ç§hÅZNrÔÝ„¡©¦¢XR^—Íè®Þâ7Õy8ãÇó‰*t…Aæz„øá±Ù« d+«9ùEU½{¨·Os}âòëÕ¶u› “öîÇ;nÜXÁô… ç×+ÐX.››÷;{ö!¤®®nâD‹õÅÅ¿¤ÉeRæO6»úgÆ©«©ÚêÊcl{=MeKCƒ¶¬V‘ß]üãuu-W£‹b_cm·/ûµ¸ÝtTVÌéÿû½·×þ|SSËUV’ÿfîÁy÷â½Êü`ÒKS¾ù=ôÏ¢^m[·d Âçó…ïVhhh,xÚºg¾'&&}õÕÒ°°Pæöî#"Œͤ­ùbbØÙÙKs8\þ÷gœí ­Íõ$YÚÅ?^誎Ò£C4W+Ö6&æîf²*""ÌÕÕ£]¯™3pà€'OJ˜õWÄl•Ÿoò´y“Ì®„¿)«¨“¤|Ãã´Ò¬cÕàóÂõîe£»šïÊ¡êÿ>5³1[=†èªv”MëXµê¸Çõî:Qï÷ªè½{Ü«@ÆãdC'bJCCc¼[’ =úŸ« S'b*t”ÚKá7@‚ÁÄ= îqÿƒÙΧϷÿ¥³bRÛðY4ãP-›Íþßÿþ/**ºªªZSS£{÷·nýÞ™EÄž€ßdOYo=Røw555'Nœ ¹™‘ñ¦¶¶VWW×ܼ_PÐiìÙÐò¸÷òòþóÏ¿Nž<>r䈔”GŽ•ùÖiÝ|oõo‹²²²Y³æ½zõjûöÿ›:uŠ’’Ò³g‰ÇŸÀn 5c0':ú!ä‹/*))YY}xL0‹ÏçžttÅdš 6üèÑc|>¿áÄ»xñòĉ.¦¦ýlmí/^¼,ÜÅnl\BLË—9r “i6fŒSLLl³ê)É ‰ÈåBNŸ>cgçÈdšë|åÊoÂkøø+ùÇ’““½¼Ö-X0_CCƒN§ÛÚ=yò¸ÈÂ'Ožb0˜½{›4ÔÛ{SYY5=6öáôé3úöµ43³X°ÀõÞ½HñÓ1F ûq¯©©Iqvž´aÃÆàà yyy‚Y;wî²³–œülöìY{öì <Ùp bŠ>}vƱ±Ñ¡¡!IIIäß÷9Ù5S .îQhhˆ¿ÿáׯ_{{ojV=%!rùgÎmÛ¶ÃÒÒâÑ£ØK—~¹yóV "y%oݺE™>}ª$®¬¬ ¿––¼qㆠ.mÝêCM_¹rM||‚ŸßÄÄøÕ«W?:¨füUmdd”ï«W¯þRPؽÛwΜY„{ûÙÙÙÑÑ1ŒÒÒÒþý­ ïß¿Gþ=¶.¦Øðá#³²²¢¢þ22b4ì¿7kìžš÷ÀÀÀ€Ãá0™f4-33]|ûÝÐðÛEÌòF±X,jù„ÌL–£ã¨z/lr!’W’É4ãp8¯ä%i —Ë56îÓµ«öÓ§O!jjj¯\¹daa®¤ôÏÝÌ›Ò/""¬á_Õ6£w?b„ãÝ»·ïß¿·k×N---‡³oßß÷(ÏË˥ŽÁ`öïoEÉÉÉi¸1ÅrsßBzõêÙZ[k``@}'Qßgͪ§p¾ ÿkrùïÞåBzöü{+Ú¨’úúz„6» ÉÖxø0næÌÙŒLŒûBŠ‹?P³¼¼ÖÉËËOúeß¾–..Ó¢¢¢ÅOÙÌùØ÷7\¸pþÕ«— !åååÔÄîÝ{BâããÉøöí놯S¬Gž„ììœ6ÝZ ëÙbT¾çææROÅ—|z%'L˜@¹~½éó£<=WÆÅ=:|ø`zzÚË—)Âß.nn_%&Æß¸quÆõ‰‰I«V­?d?îgÍšr“Íf×ÕÕ¥¥½"„8::P³–,YLÙ½{_iiiEEeddÔ¢E_5\‚˜bK—ºB¶oßÁf³‹ŠŠ·mû{dYMMÂb±«U“$¬@«X²Äâë»§¸¸¸¨¨xçÎ]-Zˆ¤•\·nµ¹y¿ï¿ÿ!8ø—òòòêê길GK–,kX’ wuuõêêš}û¾žåî¾<55ÍÒÒÂÞÞŽB§ÓÅOÇ¡Z€ª'bªªªîÞ½¯   ®®N[[{æÌ[¶|+è Òéô3g‚¬­m”••ml†Pñ]˜b‹/¢ÓégΜµµ®££³nÝß}ÉÕ«W>|ÄÁaid¿ÉV@¤z¹Öäò/^ÄãqO <ÔÈÈÈÃÃ=,쎼¼|³ÞÉ+©¡¡qíÚ•'NÛ¾}g]]–––……yÃ’?þè·u«Ïœ9óºuëæé¹üßßâÿõõÝýìY"FõP-HÂÃcErr ‡ÃÉÊÊ¢†¤¾ùÆÍŸš u¹¸LZ¿~ÃË—¯ètú€ýOœprfĽìÅýd—ÉhÁ¸Çm>»z7,l«Þ=íH9ª@Üâ÷€¸Ä= î …ðWµR*""¬±Y‹¹7÷ž÷Rjôh§ˆˆ°zÉÞpŠ„0˜Ð) ƒ ¸4Y‹»öˆ{ôî@š:øŸÒµGÜ wÒÔÁÿ”®=â½{¦þ'ÞH q€Þ= îqˆ{@ÜâZ¨®w€vý¸=Ú í å0˜й{÷bî‘ÒIÌeÔļ  û½ûO¼HŒÝ îqßv &ƒÁ”Ú&kAõ¤|‹ê¹y3tذáFF&Ö¹cmâ¾il6ÛÝ}¹…Åcã>VVƒ'NœÒ*YÐFaѬÅ"°„mÝêóî]î;°XáËq_Ÿ——÷­[·òKKK>sæT¯^=Ñ|2©  €bfÖMÐIã>:ú!ä‹/*))YY}xL0‹ÏçžttÅdš 6üèÑc|>Ÿêj‰ïs‰)pùò¯#GŽa2ÍÆŒqЉ‰¿"IËãñŽ9jgçÈdö±³süé''¦'Ožb0˜½{›4ÔÛ{SYY™$­tñâå‰]LMûÙÚÚ_¼x¹É-³"ª>gÎ 6ÜØøïð=}úŒ#“i6v¬ó•+¿ ×YÂÆÓM¾emô~BbcNŸ>£o_K33‹ \ïÝ‹ÌÈxÓ»·©…ÅÀÊÊJª ‡Ãµ¶¶122IOOoX¾±ê‰©U,8øÂðá#MLú:9M ¿»gϾÁƒm™L³‰]ž<‰ÇèŒq¯©©Iqvž´aÃÆàà yyy‚Y;wî²³–œülöìY{öì M6ÑéÓg7lØh``’””Ôä5¹¢”””»wï¼yóŠræLжm;,--=нté—›7o —”°qÄ4E“oY½_„•+×ÄÇ'øùHLŒ_½zePÐ9&ÓØÙy|yyùµkש2‘‘Q………£G211iX¾±ê5Y‡¤¤çaa·RSÓÜܾ.))ŒŒ8q" 99eÝ:/dÈ Õý>ËÞÐÐXäI÷‘‘Q>>¾¯^½¢ž*((ìÞí;gÎ,Bˆ½ýˆìììèè¿ FiiiÿþV†††÷ïßt¸Df½p‡Q¸5%.î‡Ãa2Íh4Zffºø5¹X;;‡œœwÇêëëçççÛØØõìÙ3&&ªÉJr¹\cã>]»j?}úD|ááÃGfeeEEýedÄhX‘[Ô䊨 SF±X,jó !™™,GÇQ‚ÊHÞ8bš¢ÉÖh£÷ËÂb@MMí•+—,,Ì•””¨‰Ïž%N™2ÝÒÒâÖ­BÈÊ•«¯_ÿýÂ…óööv"Ë‹¬^“;gBÂc®TÍ !ññqººº<¯woS‘o€ô‹ˆ¾šYDD˜««G3z÷#F8Þ½{ûþý{»víÔÒÒâp8ûö}GÍÊË˥ˆÁ`öïoEÉÉÉùÄêP_*ÔÒ§¯(??Ÿ¢««+ø???¯±ÂÆÍœ9ÛÂb ‘‘ 5R\ü¡ÉUäæ¾#„4vTCä5¹"AÖBÞ½Ë!„ôìù÷òšÛ8ÍjŠöy¿¼¼ÖÉËËOúeß¾–..Ó¢¢¢©‘C{{»ää”'Oâ+**ÃÂÂ---ìíí+/R“uÐÑé*¨¹ Aäää„7 s æ|ìû.\8ÿêÕË„òòrjb÷î=¨nõ#šÅÊxûöu[T÷SV¤§§Ga³Ù‚ÿ»u3h¬°§çʸ¸G‡LOO{ù2EÂO~= !ÙÙÍøªkÖŠ¨|ÏÍÍ¥žÖ‹-ɧYMÑ>ï—›ÛW‰‰ñ7n\ݰa}bbÒªUk>¶!äçŸÏß¾}»ªªjéR7ñå[wŸè¤q?kÖÜ›l6»®®.-í!ÄÑÑšµdÉbBÈîÝûJKK+**##£-úŠš¥¦¦Fa±X-¶ÉÂĬ¨ÉÅΘñBH@@`uuõñã'!óæÍi¬0•¹êêêÕÕ5ûö}/aQa´}û6›]TT¼m[ÓÃýÍZÑ’%n„_ß=ÅÅÅEEÅ;wîjYãˆiŠ&µÑûåî¾<55MÐy§Óé‚ß”–––!!7ÏžýY__êÔ)âË7¬žäu‡jA4ãz÷ªªª»wï+((¨««ÓÖÖž9sÆ–-ß ºZt:ýÌ™ kkeee›!‚^ØêÕ+>âà0Š42Üdz}ÀÆVÔäb×­[Ãåò®^½vêÔ™nÝôׯ_»bÅòÆ ÿø£ßÖ­>sæÌëÖ­›§çr ›hñâEt:ýÌ™³¶¶ÃuttÖ­[ÓäKšµ¢Å‹ñxÜÀÀSƒ522òðp »#//ßÜÆÓMj£÷kÖ¬ÿúúî~ö,‘F£ ?"⯒’’9sf#ëÚi0¤‹Ë¤õë7¼|ùŠN§Ðÿĉ'§ñ2¼½öö#rss´~ý¼ûˆûN÷“]\&wžíü5 î@Ʒ󃂄Ǿ÷ ãp¿b™$æ^¦Ò ç î¡Í£ pfâ÷€¸Ľ”iÁ}ÆÑháÃŽ¸Ä}»|?7ü×ßäééž21éëâ2íæÍPì.4­áD>Ÿ¿qãFmmí®]»nÞ¼÷vî§ã—·¬Å½à&õ·®ÌLÖ¬YsíììîÝ»ûâEÒÎ>¿ÿ‚ÝE¼ãÇGEE¥¤¤<þü¯¿þ:yò$Úqßšjjj6nÜla1ÐÂbàæÍ[jkkßóÂ}‹åæöµ¹ySÓ~ ¸ˆYæ?øyx,su]¨­­­¤¤dmmu옿`î¹sçíì™L³‰§¼x‘*~ù 30𤭭½‘‘ !¤ººzÍšõ}ûZ4ôرã‚êq¹Ü½{÷[[13³X±bUyyE‡ë³œ={Ö××·{÷î=zôصk×™3gðƒÏB̧Ið™:zô˜µµMß¾–^^ÞTh î;€ï¾;ŸŸù'‹Å:pÀ|¼µ…pßßÍíë¥KÝ'$<255õññ³Ì¨¨ûS§º467:úÁo¿]~þü©³óxoïMM.?11ñÖ­›ÔM®¿ÿþ‡òòò˜˜è;wn=|'(óÓOþIIÏCCCâãÑéô={öv¸7"99yÈ!ÔãÁƒ'''#wà³äÓôða\xø÷ïß{ÿ¾àÀƒ¡Y:ðíM &å66v—.ýblÜ›’žž1w¸Âªªª²³sxúôIcŘÌ>/_¦*(È‹\ï³gO´µµ©åXZÌÈx%~ùÇ î0>t¨ý¯¿^`0„·o3GŒM­ÝÎÎñܹ3&&&„6›íä4)>>îó¶pDD˜ðEDŽ×S¨azyyùº€#÷0TIDATº:ê¦Þ<OII‰Ãá z¤P‡»þLÃPjì'¯øO“àÃÎ`0###z÷6"„dd¼™;wþÇêíüúi"oo" ×Ìa³Ù †!õØÈȈÍ=JŸ°{÷ÞçÏ“+++Ň!DKK»¨¨PÑõPYOQQQáp¸M._x9ÔÆ !½zõLÏÏÏ=z¼$Ùú¹z¥Ñh Ī©©•——khhBÊÊÊÔÕÕ¬ÐvöÒß’|š {}|CüÐ.s¤ˆ®®nVVöÇ=€¥««'²Øòå+\]>z“™™ž’’$þ¼GÇáÍ=6+áòuuusrr¨ÇÙÙÙÂ_ qqŸ©‘ŸŽÅÒÒòñãÇÔã'OžXZZ"’à³äÓ$¬¬,===Ä}Ç0eÊä;| ‹ ·oß1mÚjº¦¦fzú?osuu²²²²²rVV–`À½1kÖ¬ö÷8wîü‡jkkŸ>}æáÑÄ=%\þÔ©.;wî.**.,,Ú±ãŸñý æoÚômf&‹Ãᦦ¦­X±ªÉß­ÒfÑ¢E[¶lÉÍÍ}÷îÝÿþ÷¿Å‹#wà³óiðñÙI…†ÏŽéÓ§#î;oo/®ŽŽ#GuïnàåµîcwÛÝÅeš +Ø¿sç®~ý,çÎ]hg7Lü2{_¼x>22ÚÁa”¹ù€Í›·LžT+ÒÓÓ-r»ÿžtV¯Þ¡Z2p¨ö‰9C°óËÞ¡Z\Dá3ðññ-))a³Ù¾¾{&Mš€€v€¸ÿ z÷65jœ£ã(MMµkW£A àæ…Ÿ«ëBW×…h€Ï¥-®¼‚Þ= îqˆ{h8 @–àP-4 ~R"((€¸ÙסÿâIz`0 s÷î#"ÂÐ:Ë¢Eî Ã*ˆy @ö{÷8L K0v€¸Ä}Ûa0˜ŸëþMR»jÉ+&\R’WµÃ&ß¼:lØp##“l|†¸g³ÙîîË-,÷±²œ>}Fß¾–ff ¸Þ»)¼¢+W~;ÖÙĤ¯Ã©S§ÅŒ„ˆ¬†È`pð…áÃGš˜ôurš~wÏž}ƒÛ2™f'º}ú]¼xyÓ¦oííG\¸p‰šE}6¾ùÆSEEeÉ’¯!M¦O“Ö¯_Û¥‹ê¸qc !,VVsWTQQ®¨¨Ø£Gw999›!'Ož»eË·]»jkkkÿï› !'NœlV5ìZ×¥‹êˆŸ®íÒEuÔ¨‘„·o3ÿiq¹Ö9<.ù&PNœ8EÙ¾}«®®®ŽNW_ßM®ÂÓs9!äçŸÏSO¯^½JY¶liÃ’çÏBÜÝ¿¦ÓéTsç‚¥p³EâwaMÖA’=Aüw9ÀgŽû#ïÞ½}ÿþ½]»vjiiq8œ}û¾£fåååBF1Ìþý­!999ŸX3Bˆ‚‚õó¹¹+òòZ'//?uê—}ûZº¸L‹ŠŠžÛ£GzBrrÞ5«"éèt”$„èêê Â]ü [FòM äæ¾#„ôêÕSòU|ñÅ@{{»ää”'Oâ+**ÃÂÂ---ìíí–ÌÏÏl2õ~~žîb¶Hü#¬É:´óžÐúqO144\¸pþÕ«— !åååÔÄîÝ{Bâãã¨> ‹•ñöí붨®ä+rsû*11þÆ«6¬OLLZµjðÜwïÞ}|CéÙ³G»µ8—˥Ƶ…GÃZ ¹›@}+dg7ïkØÓÓƒêß¾}»ªªjéR7‘Åôôô!l6[ð·nÒ¹4¶Eâw˜–Õ £Æý¬YsCBn²Ù캺º´´W„GÇ¿®.Y²˜²{÷¾ÒÒÒŠŠÊÈȨE‹¾¢f©©©BX,Vc‹m²€01+ªÇÝ}yjjš ïF§Ó…çúúî.**...Þµk!déÒ%íÓÜ ƒrçNxee¥Ÿß¡Oi“æn•kÛ·ï`³ÙEEÅÛ¶ùH²Þ#---CBnž=û³¾¾þÔ©¢Ï¾1ã?„€€ÀêêêãÇOBæÍ›#a›´óÐØ5V¾aõ$¯ƒØ=‡j¡½5ãDLUUÕÝ»÷ÔÕÕikkÏœ9cË–o=#:~æLµµ²²²ÍA§iõꕇqpE9ç¯Éõºl­¨Á—Ó}}w?{–H£Ñ$¨*eüøq3fü73“Õ­›þ¶m[\]¶Osïß¿gË–mË—¯èÑ£çÊ•+~ùå¢Èb’´Is7añâEt:ýÌ™³¶¶ÃuttÖ­[#áz==ÝW¬X•ðÔÛÛKQQQäÂ×­[Ãåò®^½vêÔ™nÝôׯ_»bÅr Û¤ýw‘[ÔXù†Õ“¼R…FáóùÂD344–áë£Q]ª}”¬7ËåZY ©­­}øð¾––– ì²·EõDD„ ß&""ÌÕÕ×Ìqø|~DÄ_%%%sæÌ–d”½-hýÁè„ìíGäææŒ ÿãþý{ïß8p°aèè¿ývùùó§ÎÎã½½7‰\Å„ ÎÅÅű± !11±%%%&Hz• jÈ¥±L7Y=Ê?LMM ¹ÿ^½Û Ö[þÊ•+ú‰ºë!!äС—,Y¬®®Ž6@C?ý䟔ô<44$>þNß³go‹?¤ˆûöpüøQ##Æÿýß6kë!vv;vø–•• ænß¾MGGGWWwûö­×®]køò={|»w7PUUuwÿ:99YôÆËɹ»/ó÷?Fñ÷?æî¾Œºô§k²z”+W~Û¹Ó§Gîššš>>[Å,päȪª*¿ÿ~“òömæ_Ý[¼Ø•ÈÄ>Z†úí+üO0ëÂ…K;vlëÞÝ@M­ËæÍÞ·nÝnñ‡qß4446lXëVHZZrPÐé’’R‚¹††½>¾åŒ‚‚‚†/×ÖÖ¦¨¨¨p8ÜÆÖ2sæRSÓ._þ5-íåŒ_¶V囬åýû### —¹r劃äñx?üàçáᮢ‚à Щ n /ø'˜•ŸŸ7zôxê;`Р¡………-þ"îÛFëÓ§¯¯5êBÉÊÊþø KOO¯Å WTT\²ä+oïÍK—ºÕ»«‚‚|UUõ¸¸¸¸Y‹•°zúúzÞ’›2~ü8EE…ýû¿ü8~Á‚yø´4þÉÒ‹{ øÈÌLoñ‡qßfÍšr“Ífs¹Ü¼¼¼ï¾;`mm%˜ëã³³°°¨°°ÐÇgÇôéÓ?eEîî_¿yójÙ²¥õ¦[XXVUUåååmÞ¼¥á 555ÓÓÓE.SÂêÍœ9cëÖí¹¹yeee¾¾»Å/ŸF£­\¹ÂßÿتUß¾™p¨ ¡ æoÚômf&‹Ãᦦ¦­X±ªÅRÄ}{X»võ!£GïÓ§ßÔ©ÿ)--=zô'ÁÜ¡CmÆs¶·¡££»nÝ궨À¾}»oß¾ci9púôvvÃX¾ÜÝÅešÈÀ•°zk×®655uvždo?¢{wƒ&—///olÜ{æÌŸñ—uÒ=ξiæééacc3gÎ|33óU«ÖLœèÜâ©,¡Bø|¾ð­ ¥üN SšQ¶]õÜܾž6mê´iSÚgC""Âp½{™ÔánÒê¡Ôä‡4""¬Cßͪ^ý#"Â\]=p{“ŽÇã]¸p‘ÅbM™2­-€¸ïz÷6íÕ«×Ñ£?µÖ©¢€¸ï¤üdó¶¨ίÀê¡«€¸Ä= îAà,LY‚3s QîìlUAAhÄ=ȾýOÒƒ9ˆ{"s0LÐ)âÃd²ƒ9ˆ{@Üâ÷€¸Ä=´ˆóî#"ÂÐ.×¢Eî /q¨ ² @ö{÷¸ì-€ìÁØ=â÷€¸Ä= îqˆ{@Ü îqˆ{è(Ј¡¡q§Ýö  €Ñ£Ð8-kÄ=@ǃkÖ¢qZƒ9ˆ{@Üâ÷ÐîpfüË@+놟& e÷ ; fèƒKÔ㪊ª’¥„ªªêVÖHüŽƒ9𭮚„#cÃwYyy¹ï«ªª«ªªóß½—Õï6ƒ)r:â:…Ì7Y5552ÿ;&z¥×i‡qõÂÁ`Þ7UÚ¿Uꃸ€úÞ¼Î$„ðy|ÙÞÌ’/õéªõRõî<7YÝ^Ä=@g'òØ¬Š &Góª´´—®®nææýÍÍû»ºº¥¥½Ù}ùòÕСöÇŸ¶­f±2&‡ß „:øTÖW¿g?È'æ…ééž21éëâ2íæÍPÄ=tŒ¬_±~IÃįªªóª·o3çÌ™ïä4îÑ£ØGbœÆÍ™3ÿíÛÌzŞλàÛo7-[¶Tj[€êà ²þŇ¢]IY¬ ‘…33Y³f͵³³»wïî‹I;wúüþ{â:@Ö‡æ½{O=núEìâDZOKKËëM÷ó;¸lÙÒùóç©©©©©©ÍŸ?oÙ²¥.}ÿë¯=úaúô©Ò¹ù‚þÍqSoŽ›Zýžý¾ºÒëqtcYOùá?e®® µµµ•””¬­­Žóÿ¸4–›Û׿æýMMû-XàZPP ø­sîÜy;;G&ÓlâÄ)/^¤RÓ9ÎŽ¾VVƒû÷· KJHÉÎ|§«¯óåìÉy9ùõ^uÿË/§ OùòËiQQ÷Ooݺ½aÃÆ3gN88 ï@mòUt¸˜¬§6|êT‘³Üܾ^ºÔ-!áqBÂ#SSS_¡o¾¿ývùùó§ÎÎã½½7}üæ8˜ššrÿþ½ììjâO?ù'%= ‰D§Ó÷ìÙÛŠ[G#„ðù|\5 C044n•O+•õ™Y<ïŸÞŸœœÐc‡ÃMùæéãçñqÏêtolÜçÕ«TyÁ‡kfÖ/#ãÕŸUP?r䧉[qÛ#"š¼Þ}³G0€C=~C|ÖB˜Ì>/_þkÃEªªª²³sxúô µ–gÏžhkkSÓ--R­dkk|ÎÄä_§ÜØÙ9ž;wÆÄÄ„Âf³œ&ÅÇÇQ _7ñæêê?³è¤ýú¬·ÙÂYO~ZVR‘’”–ù&;áQbÃ?°ÒÒÒb³ SØìmí®‚§{öìÞ¸qs×®Ú¶¶C¥³êe½„´´´‹Š õõõΊOؽ{ïóçÉ•••„íŸÝTÖBTTT8.õøýû##£z ÉÏÏ=zü?ýq ƒ9ðIYÿ.+×øy–ì÷EÏž$¿MÏ™õ„û«W¯ O¹zõúðáv‚§³gÿ÷ÀýK—ºß¹.ÍYÿâCÑäðÔþ÷Cš<½ÝÑqxcÇf—/_áêºðÑ£˜ÌÌô””$>¿‰ÓXõõõX,Vƒ‰úqqX¬ ê_ff:âZ(ñiÂ<—¯oüz«¦ºVdÜœüçÏ^def?}’ÔØ…Ö¬Y}üxàùóÁååååååçÏ?¸fÍjá2ãÇ;yò¸—×ÆË—•¶¬^éEe½àÀìûêJs­®M¾vÍšÕþþçÎÿðáCmmíÓ§Ï<<<©YÕÕ5ÊÊÊÊÊÊYYY‚z1fΜ±uëöÜܼ²²2_ßÝÔÄ æoÚômf&‹Ãᦦ¦­X± qŸ”ø‘wüy;’ûq`ÂçñssòSS³3sRÄ\$ÇÄ„|îöí;C† 2dØíÛw‚ƒÏ1™õo;t¨Í… ç÷ï?pìØq©j’/…³žÅÊø*:œƒßcãÞ/žŒŒvpen>`óæ-“'O¢f8°çÎ]ýúYλÐÎnX“uX»vµ©©©³ó${ûÝ»ÿ=,æééacc3gÎ|33óU«Ö´îÁªèHZëP-5ªã0jظI£ø|^!»˜Ïã•ädå¾Ï+xñü¥^­ÕR™.|ð“Á`žv§OW•䀭¡Z×Çhe­¨¨Àãó#nGÉÉË Ï’$.ê(AÙ°ž,VFÃï 7¼£l5â ³'~?‹>ròrÍêÎwÄþo«lT‡ÞpŒÝtöÄOMy…kÙwˆ{$>²qˆ{@Üâ÷ÐpÞ=@G€F@ã îdŸø« qÐb`0qˆ{@Üâ÷€¸Ä=4N’•õ&"" mбý?mgFd7œIEND®B`‚ghemical-3.0.0/docs/user-docs/images/energy_vs_torsion3.png0000644000175000017500000052156011563552731020675 00000000000000‰PNG  IHDRóxþòšbKGDÿÿÿ ½§“ pHYs''* ‘OtIMEÒ  %"_¹ IDATxœì½y˜]U•7ü[kís‡ªLE‚ˆb-­˜TÒ€„ Èd†¿û{´»E@Ã&a”A €ÚÝ ¾ŸíÛ¯"C‹Ì 2BH*a´AE" IUªî½çìõþ±Ï9wß±nU*!‘û{êÉsrîÖžÖ^{­µ×!Äÿ:(‡2 @È€iœ”¼B-€›>×-!ÍÞRÀP"²G°µ6íl OhB37Y9m×,—ê6’%H<šé¿¸œ¦I9I«Ó~K¤Ï1»QÀ§Ó=“²K¬R®HSo+«CR)j9{-‘•YØ-@n i“äjNDª–(no+åUFI¨–w©¸7“Téê‰WYò<ñ^“.*Óæ÷[ƒg·PWÅZ¨IÜD|a¬6]k~JAéž_þôî;o–¦u€PØÅKOýì®NÖ¶K—.MÙ¥@TÉY(ï6ç=Ž5yîe÷X;žÔ‚‰”•@šÌø¸k,"ªâøÄ p\/)MÖ<'é’b%«µ+ë– Q2_ýÑ•šQŒóZг³²·É•w2VQÀêX^šÉb«Þíãf–w1Kô¹ÌÑ*w xÝz˜Ï\©ÁœVןJ€ª7û]íšK "²ˆ\Ÿxcí—\Íc‰SUu¬LàOo›fOy|ºòý6&]]ÑW®±DÄÉj×äG@Ò›žì@`…­ØÿÀ Kà´ßë1t­icm{Éëv±„õƒÒÝ*™óÕ}˜Žií®Ðˆ%)3<®Gµ),ÑPškÂ켟Ҷ$ý£u“!î² ømdHúË_‰ Pn£›•m%˜ô=PÙÿŽÛ¤ÏË)S餪±¾Ô‚X¬–Kü,¶"%p¹AªZ>O0B¦þß½ú–*/Y:‚2û éT¬wÞy'R-Š+÷®»îºò²+9Jž~î™xCSVtM¶UÔ‚1G³êI´±Œé¶gr¯õV>ÔH˜¾B’^XËD®³«eJ))òþMÒ¤+¹‚¯K.¯NMä2ÇVڈȣÓ*ØM¢ 曬•ZyJšA±L¤is“÷>;§:…“ÖRLåÞKêU¸‚­Ëé½I‹ªùoµ,¯.…ÅÙã¬äZÙ«ê¸KÃõ¤Y²j‰šì0”&(í.õ%E˜cÀ½Œ¼~Öä_"w¨°¤Õ²›õw\Žåß„TË pücÕ¹3¥Gýþ¡ ®”Žù§¢r'«‚Ý6™þ˜žá"oòTÉÈN˜ð÷!o?ñZçý¿æ4ƒ˜ÃzZ$E²åû­LÎU¨˜}L4– °~ÿP½ÝˆH+v¾žÐµÊS´zE‘õæƒã'M×´QÉšª0bzœôÁçK^!T Êy×­wß}wú«0cÆ fn”¥îÒe¹çž{Zgú3fÌ ¤±úñ£Ž:jΜ9R¡÷¬¯™yaé—…ò!ÞÑ ÀuxòœNý2õ©¼—èFHüÌi›!Òx­‚ªP(sºù+jÇ |²®‚õ¦lUÇdŽÿ릕“!+ÃÛÌJÉœŽÅô”øê‰îÖ¶›`ʉkc<‘7I︓•IIàvRJØY¹-)Éð˜E-ܹ¤6®2•ñ…,@)â>÷ÇŽHã=T)¡ÜQEÞœ©žÉú7aÀÂåJZãäò¤¯\Jë1Žr+Sy¿ª9ÉCÉc(Ž~o×I[ wç mCÒ¨äüa• VJ´jþtRµ§xŸ¤XHð‰LúSýÉ)^?€l²Í“ŒÉºqbIYˆ7waU®˜?ñ9¦J‘j-j8äÅ*Iå:Šéôž=§M[îæ°¿FPSx"÷`ï ZÖîÕ%‰“Iž¶¥BþÓxÄ+O® ñ8²Pa¯o½s§2bQw~K¸è¢‹jz¦-Z4uêÔÅ‹)Ë.»ìâT)­dQÕ^xaêÔ©/,YäÚXÁÙïºë®=vÛ}PóϳÏ=“¶ˆLÀ‘/5U°eÀ;aYUb%e PX‚±0PEB%P `¬æÔ ˜KªJ± (ng&€J‚‚@9„#t›¼…‰à1 – Ú›­ËÄ–¥ŽdùW*|ÊìÖBPA¸p¤Š ^9é´ãŠù]YŒ¦µ%¿øbK]Ú"BÈdU#âÈm4Î4B•X5«X¾WwËØß“kdº€ ÀN‹!qš2aLP&B¦«Yr‡3µ[Ñ"(Rˆ…Q”T!cy‚”Ôp-`•­³•¸áDP±Ä C°Œ€H H!‘2"'ÇY0Àj0ELëXíˆ;Š”"F1]ðž,Jnú)1”•I<}nÊU•IÅ™âÌnò;íVº`H(9·ÖÚx<DJ#nB,Hj¥$›œ'ü ²,#+¡P‰)J6À R€””)d” 3)!ˆÔi{,ÃÊ …DP¬€­œɱҗý©bzļڱºr¯’rņlu«ÄmÇž¶6m`…ìâN8~9̬5PIUl5Í©h‹7 âG7ÿ)%RA9•B ÉÖPQõ¢E‹êVçãÞ{ï:uê YREU]–tPÒ,u¥ûºµTËì]tQs ªSC/Y²n´˜˜Y•ËÛ\|©ÙJÜ‹$TøÝïNû»íÏRõêë}rû›¥7ß<íSŸ: Àk¯}ÿ“Ÿ¼Áj‡zFTMz?î.fèϯ¼véßþÝ÷üîk¯]êkŸþÔw-„zYµâåüí§¾gmÞïAÇ©cís²ê(µºV)¦P¨Oxáw—-¿uû‰×Xt%öæb=õ`¥RÖ¬ëœYÖ’Z@8"]/²~ÙÒóS&9eç¹D$Ú»xñeÝ;Í‹´€"ò•*¾ÞÙ”Ïò±Ó­%0Ù%/|}êÔëBÛÒX9·WËVVŠÏª¯^¸ð‚Ïî:/ÒŽT•#R hÕs /Œ»îv½ÕNM7×Ò¥RdêgZ¿ð™ópBéçv¿€ ÿ©g¾û¹Ý¯´š·”'”2ôÞSO¿ë7+p‰°þé§ÎNyÅî{^i‘” ÷/|òÔ½ö:§ Ÿ(éÀñ¾~FßÓOœ·ï>ßðøãsÓ~¶ŠØkŸ#ä­Š/–%[Jå;p ¼½!í¯øUùœWæw ÀULŠ yä”ý¾ðïɆ]³»{$!YüåiCa@«yð\G̺&Ôœ+„Ãa€5=x. tе¢LŒÒƒ÷Ïv4pÈU%l¥dª{Â+ÎÜ5ô$ݲéµêÈ]V€x:eM”‚”ØÆâ3/kWéÍd-EéûAO¢•Ôúº„ ¤r”ey¬I†Ã­Z‰ I«îLU\¸ÞÞY1𱂱žî¥îÁ´¶ÿýÐevÂÓÏ=“üÇ2C„Ô1Š  ¢#¤*;;š1ÒËŒLæ/Ö–&î0ÇÈX¢d3«Tb°DÐT²Di"«* EŠem†ßc†˜à×^½tò¤#›!ξúÚ5'o5ÿòʹ@#QHž4D!£„¦º§Œj–H…ú@‘…@™ˆ¬È[z–_0cUÝJŽˆú™¢TîH•z¾†R@ Q,DW‰É²ª¥x† È ÀZ¿dÉù»ìr.È’B‘Y²dî.S¿+`F&XÚˆˆb‘À("‚U°cÁÚ²vÅÉ}l5 wŸvyÆ(C¬ZQµC*„,¢P$ªDT ¨Wb"¨³"Æf¥E /Ü}YV»Ó© ·GX°jž`…û V5k!VÅiuˆlÀO=yÞž{^àjQ˜§Ÿ¾dŸ½æ2ú…ðÜ3çî¾×U¡f*4@ŒÀØÖPߟ³Ï¾B#ל§Ÿ¾tϽ¯‚æ˜"f<óÔUÓö¾Úa!ŒHÐÿÔãç `¤×õ÷~Ó¿ŠL¤9æ¼Â× Ti–¹<ñ’‰È"À(6yŽÈÍy"¨ˆâÎWK`„j‰H@¡ÁúC¾FÌ…‰ ìÈEŽ«$õ‹¥lÊn `D?pîá‡}Ëj y肃¹¶ˆ¬Â‘}ø¾sg~Ž™¼ôî±0÷ß7ûð#æ ŒÒC\~Àa?>[yˆP»ÍXÏúJÉY³~b;+Q­OZì"{,± €:KišÆ&òBªJWMí«û µîüäŽGJ\Å+ýVÄô¨F áxí¸³Oý]¶^½Ôä¿»îºkÝ\Ï?ÿ|íK'Å_|ñÅ‹-ò+:uêœ9sf̘Q›¾bÿ9ꨣú‹…b±P,Š…zÏýÅwÞ9¦ VKbI Rxów³2Ù?‰D ¿ûí©™Ìï3™ÿyóÍÙÙìÿ¼ùæ™o¾9;—y'›}ïõ׿̈́߾~[¬{õõ‹M°îõ׿-„×^ýÿ±È˜b.Xõúë§¿öÚi¿}ý´ŒùK&XdÖI°úõ×NíÕ ƒ`3ÄXRqŽd[åñ SdÎMš|E÷”YVAbŒab2¦˜ V½öò¹à­W^>=¼• Þzuåé¹`•1Eý/¯<£#xùÕgä3og3o½²òÔlðžH8;y§«þ~§S#€M Â"lL1¼·bù+—Ÿ– ÞêYvj.óv>óöŠe§æ‚·V,;uå²S³Á{FB2»¿€Ä FEˆ ‰ˆ²Q˜áš¶déù»M;×JWˆ—ð‰Û~v×[!£È dÌ_–-=õ¥%³²ÁªÀ²Áª—–ÌzqÉiK—Ì 2k‚ÌšlæÏKŸÚ‘ýÓ‹‹OÍgþ˜ þ°ô…YÙà/)Æ>¿è[ôé͘÷_XtÊ’Eß\úü7³™Ul l A°jñÂY‹ÎZôÜ)Að¾1F€“!6dk‚þçÎÂÂgnd‰ >{ú¢§g=ÿì¬l°&JAпè™Y9óÆsÏœ“‰ €€%zêÉsöÝçBå®¶ i»ˆ>úù}nU3Šƒ Ó÷;çé'ÎC˜!=ñÄ9ûM¿ÐÒ¸?ZÄG"·ï¾<ùø9n&¸™È@ÀýbB16™‘ÀX†å !,ä…ü•qÖt$HÿØPüÀ`ŠÿDÊRʙտyôD#…ÀóÁšßwù{œýÜsW°ç^³>{ã®{Ü€Æ ýO_ düüÇ¿³ï¾°†D…§Ÿ¼v÷½of²Lxê©ë?¿÷w™Ç¥r“¹á˪æ%â°‚"³:6d )€âýÞ£‘Í):€z ½‚°ubáœü›ù·ìsÀÕ¤ }øü<ïᇮ¡Ø[™u`² ÑØ(dI•zò²DÈÉq˜„ ‚ FB h=c'#Ÿ©`Pæá/;ì°K„ú™ðÀƒrø\#Á}¿>gæ¡ç+óý|÷ð@àÁûΞyÄ·#æ×÷_0sÆ¥¬B¸ï×̘q£ðëû/?äð„±>!ÖZǯmޱ uÍÐÌ™—Þ{ïÁGͼ2¬"P†µ{îšsÄÑßã Ë“—ã³£ª²“† D`%KN×L`Åü4fp”x ÕsônƉ¨Ê‡Çé÷e‡Š_&2EúFºuÿlºòx •p.a‰`ÎD`h|{aCPöfnÙéÅ‘ñüóÏïºë®Ó¦MsªDx¤gwU’!bgORˆPb…ƒv>ƒ»ç‚?Jôg%0l¤  %(wFñ›QqGAÄŒÀôGè U"YK$ Xo1vÊŽß\²ä&–¬;J² öç&ˆ!¶n  •=7܈1«b§]®°fk LÝõ$2¤ ˜€’b—]ÿ…D,°ÓÔË!]Ĭ·v4(>²XwsÉ0ÀÒQÔñ;O»rñóç:b]v» ´áUĤ®r €¹˜Á{ÄëYa¨æ#í5Ç,±¯H|ô‡ˆˆ2¡øüÓ§¸e³ç^ç2‡ LÛóJÈø Þƒ“£©HŒŒˆ· ‘P¨ŠÏíyxköÞ÷4§ ‰÷†‘H0@€ÊØY…ì±ï­,Y¢âžû]id£ Á˜~·±¤F3‰(Ïm$9Ã!–Æ)Ù€VC€‰_Øÿ[*Û(fe×n’ˆ(1Âß<úu׺ü#´@Dã÷?àúóO?øÀ …®ª 3Ü“éܯ D€J„@ú¤ÄA9¯®É &,xøL·¸Ý=ƒ½%Ò¼Ó Y£A¿áçN"[Ä8‹ÄN£`b¢ŽLHˆ˜œ#&j)†”UµB¤ŸHCà°#®¸‹¸èúDI?r¤ƒi½%IÎõœQêŠù²œ­ðð™ßw½@ ¬ÚÔþ!`ׇ6q["Ce½Ò]¿<ÿÈ/^\¢.Ýs÷¹GñJÑHÉféý_üböÌcnޤ 0>L|rb^-ñ2gAÙÉs2Kcæ"Ž6¶T£ž?Xü ¨^Êךœ6ÄVZ’R <½¼²°sĦ8oJƒŸ¾†Îj;&Û« ³(m(gOá+^…U*𔿔};žî’=ÿüóMö†áëÙ]¡ÌÄ HãÓ Œó„#ˆ$îíÒ €Ä ÉP€%ëŠt g‹«±zlñ‹? -œÍE 1J €ó¤V$  ,ˆ¢Äý‹$ÑY ) iâÎGDBñáT9ON©gâñCΜI’‹ÓÒáÚˆµ¬ ÅË ªñ\&3iÔ‘Dˆ3€eذ¤þL}êéócGŸÿüMPçË®"CÁн÷šcdÝ¿¹V¸ßMM¥N""^gdˆ‰<öÄm  ¥¸9QÒ K`fr>&™èBJh§"$Ǿˆ¼`ÁÅ”lïFb[—;ê¨eA9 gbwÊqŸ˜¡ÄJ  KQŽ`è­Ý6̆YÐCžËX÷ЃW\@lJëÓÁ‡Ì}ô‘K=èL8ìf‚(»»° ÇX2‡ú‡œ{ðá—þêWçzØu$âÙà°Ã/p,ÕµC0ƒîûï39QàFÀÁGüˆ¼ÕÎ3Žüþ}÷>óÈËuÏw?ò 2[‘FîýÕME@ÖÕH‘"É+2†tæÑß»çÞK”0cæ€Æ”»ÎÄ%Í;ó¢a("Î+!Ü5B¶‰Ã†£0±[%ˆ°$Šxwq”$pþc2Rü‹ÿ3û˜¸Ò¥š¡Ø³Õ_ãŽÝ:.í»ª€y¹ë¿É­ºJù·Ú|šÜ‡¨° úIê3ýD¸N[ ¤$΀Êq‡ Â–‹x%>Zå3™»HådiuÕh",»ó‰1ˆ[¸~: EMÝôƒ^ej¢ë7þ¸ IfwÃF¤"¤1³c„#p?œ…ÇÙA`03 ¹ggnvÌE ©zÔ=( Ž€]§žÙm#Í0õ u‚ú°X&pŸØDª¬1ÄÎVD„ˆ(áÂF­r:Aˆ¬Ç œ'A|ºdŽ…çFïV]*]ÆÂ¦%qζäÖ˜ÈèÃ!vîq³ÞœÁQ¼µ(A¡Á{ÝDŽLµ¬ÒÁ H5u'"ËŽ‹Tyeë6ª¸»ýŽr‘±À¾ûŸUÔ¨Œ‚‘QLýäwuÛ]WÛxÛs-…" Ê3ô7œ}ÀEv H<2;&f²Ö]e¥Øí'ý•Œ$Î8“¸AX”a5™ÄK¦ÂJ¢È»ëŽ’´Îˆ`ˆrVH$1V! 0;þÅ€3sÃñ}¸º$ˆFŠD€ÉÆZw‚"3>BŽ–XÁPãd1@ ä›ùï D¬d‰!™tD@–”¬fÝð&Œ6¬HH8òè ˜  ,yA¿[6æU™Ã¹…aï½{Ö?3—¦ãhÉdœñ4îO"ˆ!"v·LDD“›éâtÜ<&‚0«*C“™œ¬vc ë~úŸßþâq·¨t)Dœ'm]©9æ­Žq¨&[“yÅ÷[ó|~åŒÏ—«ÄrBF–¾Oor9¾\¾œ…ÄSÅ*ÈÆëDAˆ˜ÞaAëm ‹'AùÚG3Mà¸WêÉåôÍ. V\4ñ0$õKUF_¨O%÷ºæÖ˜_Bÿå/™Ïä²™L6“ÉfrÙzÏùL.UÅÎdAbT ±SoKÀ.^r$gc ƒ3îÙÍZf&Î8ÑÆMn2“MÞd"€yI†Å<ûü…ÖŒQg#aFž]x«˜Y 9/›‚pɘ€„U IL”FJF,‰‰k±K’·›ôMŽ8È„- LF`2 0 ˜-qJáÀ„O>õÄÕ1O<ùí@,KÀ,FÅ( Ĥ2Zy”¥¼J"6±¨û#á}÷¿üÑÇ. $ LQŒyô±K"@L^ŒS/‹°dÕY„#ÀR‡˜b™žåNPV]W»VPV99u±s…—™Îˆ`¤”1ýA0ðÈüo8,A„L "¢€J–8÷g"±2sD€É©)¦ÈÆu£c"Ã"",†YH “‘Cޏò¿ï»Ð˜ÐH„õë ,É3çmJ!ç=òÊ{ý}؉6ãêÿ¾oŽ˜Þ¬¬7&¼çW6ó*’€ŒD˜ ɨ#ºöžÿþsÁÆC@r®7˜‰Œ8Ï.HbCbH„I$’Œ•œ•N+à<1`Qf‚0K@|ñKWýüÎ ŽþÒu!gHX–€Lðó»Î é€äà€Dˆ$øù§Šˆc¨×.6ä3R2)`MG2ÓÜŸ¸Q–øOÅ(q&ŸÀ„ - X”9d±n|I‘Ðkå¬;92¢S ¸ \¶zΆO12œ>‹€YEXŒ³¥3 ‘¨³…Š0³2klmæ´rαTlÕ_²:,‹%Ž—I…Ó{#`±n9ÃÆ° wKbb€•ÙQëšãt êètŽì4 °AšÞ½!1L:¯Š=;†ëcêÔ©©Î¤*e‹Ì½®‹dÊÖ‘x¸7r°A•6æè£¾øâ‹‡âÏ®JÄÆÝ$¡ÌÔiW,\tµÓv»tásçƒÇˆc àQ@,îÍs oþÜç¾­ **áÙçæMÛýÛÎóÄvÛãòçž½ŒØm•Ç[wûü5‹ž;‹ {ìù­ßâ­AP:"€ÉÄ©dŸzâkûî}5Q&Àd#@e4€˜¡BeTJ¹û ¦CÔ( ”cŒ;dï}¯zì7—A1}ÿK~3ÿ‚T¦š¾ÿ%ó»„}÷¿Z‚q¨¼Yƒêû „L„­ö?àú NgÀ*8ðª‡:'âÑ1m±þ«#„_8蚇ý®ë±ý¼‡‘º8cÞ €âÞ %²|ù~@™ÁÔ;4ø §‰ï£:¹^|ÿTª–¦Ñzg÷–,Òœ:%ï¾wÜ^Iî$°²%G겎hH!_üå¿ë®»¶Îëï½÷^xªùÔ zï½÷Θ1£Ž6 „BqÀE h=n Õì/~ùÈv»×·<ê„¢ÐzâRšVU™ÙÚ@‘W‚;é[͇ú ¡¡Sµ3´YïM^i”µJZÏèô+2EjÎ÷eè/„R„\dsÊ£ú‰ú„¬¡Ž·èP²D¥@ûUÉR‡…`D‚>P –ˆƒy—,(mžˆ„Ö!T-–:Ö3iÎ „šeIÁT0´†¨Ÿ•ðÑGçø…s˜ìC}oŸ®TdX‹…8µ•»+O n”{“Zoè=Bh‘·X¡N S¦°” (0õ3õ©fJ4^5ê#¢PsX×söFÒô"d Q†Þ#„àŽÐfCÊ`¬P`ô‘E>‚²BBÍÞŒˆ„ú- Ô-åh5!²ÈFȺ‹TBý"ÍÃÝŸðîd2ú3¼ŽPŠœ¶‹Ó P˜ùˆÜ¨•„ŠDÚ@)`c  5â.Ä"WÄXK„J¤,²À:ã§PÑ9¡CK†â¶d”󖲑–£d F¤LåV–H´Üd0B¢×ó±õ%AÁýYHH]‘Š¡"`#dAFU…¬®%¢"TÊýOäç-aŒ…14à~À:@D®—œ’X@„©À(Z°Œ±³6GÜø Š–Lã$(°«H#Œ‹M\õËe“­®rõ×Ú=UŒÿcjT¢šè]•yk/¸V#t*.ÄDúÈâÔõ#"x|?eÊub×ÔÜR´œ¨nQÆ–^zæÁž§þ³gñâ»ï¾û¢‹.jñêE]´¸å,DtÏ=÷ )‹«eΜ9‹—¾pçwνä²jߘ‹/¾8±.¸Öùý¸+!LD"x¾1p¶~K–,C õ¯$XÄQ@‘'"†ÓHnXh dDˆÆÇ~S0‹%ŠLˆ13– 18‚Äìn0)òJu×…4ËpW—è pì8ãè¡@EØR¼n- `jÛG"䉕IüA€:,àBœ8õ®‹xÇ ¡hÁƒgzð·¶à°¦CtÀˆó!òDäÊ! âÄ_H×BÝ9Ml ä’ž1 ² uF&v×mâø Îc!gXê€2!X‘–Ðé"–(QiÄæ(~æ]ª!P6BƲ%tDšƒº +Å­–4Nr|©D”r(˜”0ŽTÝ6–ô°ã³’8$8™Ë tÙûb9{Ô•ÆÅB ;oEB6¢q‘‹Hã,¤N_Ÿ%"Šg”ÔK³Œ ˆ¢3‰*ÁêD1MÍ(“XŽšâäPK±Ú7ö\Ï Ê`´C‘ ©Ã‚ €äÈ0ˆ €ÙPÇPÎ0 ®]nì4ka,å•8ÝŸÈm¢Î\ÌÖÓ³+±"ÁXä ‡|(ßÝ! i6¢`rAˆAˆ›6ÊüÈÌiœe—õæU/+;­âE<® gx\^]®.*šÄÍSg㬎/DÞsUÌ¥”Îê¶Ô¡0¾_VÞ3˜T"J ª´u8­z+ɪhðÿ[ÁÙï¾ûî=vÛ=±4(ºâ*œÆ*bwf×Q=8Ÿ²„&u¤[±{êô9NÑ€xZ#íc"2)1 –4P Ò~ÎUÙY×â¢ÈD)¦Ð;1ZŠ«°¹²ª,NBNÈOb=I2]Õ…&8ðЫzðr8ð°k!£ dr‚\Òätâ™—Æ|wGÞ¤ê*9B&êH;±`密 òLg(æõñ¯É3 ²JÎȉ›ÝÒîàÄÀ8¶©É%òæ'®G¿AìÈ(@ìjâ5#@D&¦Óo q&]Ta8Ko2Gãó¶3+Æ[uçE‡“ý©ò½ïrG¤ë™È$ËEÜér2$í«€/±&±àãžqw#Ù:û|oÄLÊ™4†¦Æ|–…È&KÀj.©ØÆ÷TÝ3‰-cþÁˆ‹•Š35)™DS; ÆqóÖÁX”"º-A4V«–9 'ó‰RiÃçÉ8ÔÄ_l‰º–ÃÚ$®=ʾŒ±»K]ÙÙ&‘· ˆcƒL°Éwï¡”8Å¥Q Há?Á ¢×oŽOÏTŽW“®Ó21ìæ­H}cTuÑ¢ENIҵʖ^x¡6Kmÿ¿i-Cr¹©àì3gΜ3gŽ#ˆ¬SÔÏ–ÊìÌL’„C‹#Å£•Š£^C›(šÝøU8Zù?×—jNÃc´åzA±k–Ï‘„|óõ}5'8âX²õŽg^\b_¯—‰ÐuÀá·Àݧ§±Äê˜ø¡J@eâëî®) /æUúçV1ƒÈ­—ÄœdÈ“ßÈQá;¾qkñ>–ÜîrQUý ‡NÍ P… D¨¡'ÙÈë½'[¹ðRļˆŽIüÅŠx#^'Ûtû-3´¢zCÐ@ð)ïµñ¯Dî¬$^â´è8>1•=[\W¸Ä‰ˆ“aËô§ãîbT6¼J®ªs§†ì´ûY5Šû-¹¸±"€±·¦ýœU4Ôéc;‘óM¡2ýÉzõß—ËwjnÕÈK_Ý–Úæ1¡:N'”,•ýܪ¾~C ñ¶îWYÊðiHûÇÙt­•;„aLÍŒ3¦Nêá3fÌØe—]vÙe—!eqµ Õ“²ú+we–íñ”PBÈÔŸ5ëRO튰p5÷Ñʲ|õ­³FÕÔW™¥¹l²pX)ý—§du_Ô6§þ†¯mvÞ²^uƒê-¨×v²@¨l¯²¯ªÒøÛ=ˆÏÑ57AügOÆ÷I-G(õæyYúð#S7A³¢þMJ57DX¶DÄ–AÉ·¢¼çzí¥ºô$Œ)ÖŸz ê[ò=_½ˆÓœ|ƒÄ:_½Dwï¾æ•>'G·ô_NÂÖCuÒÄzŠÆßQJ;³ŠN'2$Í;عµPÑÞ„czy½h¢ÄÞtq2lªô•õêÅvwöbc=¡Uª’dÏ®ù†Z¥¨”¶½îÚçºÖo{ìÁ+œÜÉXÝ6ªù‰$°vJ5ÊòMC¸Ú™P=¢DÂ!# 4Œ)fvy[ÇFÍ/ö¤•¶Ý»îºË÷©üæNú1¬$LæWwÝþ§ßý>¢ló-¥±œ^»bý,ÍVu¹=Õ±¡«gOiúJ¿¶j®´·TÔ[G—çô‰ž&Ê?&_*(¿wzÃæÜÜå­Ÿ†âO_¸gxª-.×>£öW·?”u¬ƒ£J£ê¾® €ÓŠÄ%“-ëÊëuý1¬ºæÉÊßó¢ò÷—lòÌ`õÞ×ù×Û †ðo£&4”K¼ýU\¸~—´Á´«YésY¦õßëON¾±”)™wIüÅÊÞý·ÁÑXNJžý ý÷KùÉ'œD•äm‰'Ô4¨Oh²'€¨ªPÔÁá‹K—ß}çI‚AÖoú\QoòžˆG‰m ªª•¤ª¶Rþ¿øEÿ äbXS5MqåÜ+š7Õk4ÇêVd›~áºP+iš‹H­¤9TèŸX¤+°âi€Ö8]ËÏñ—É¥¶&M£7­ÿëgLi¨ÚLZ*­òë¦Ãü×/³Ñû ùwƒËôk²|%W#¨ÓdT§ê³+ǧ¤‘€3Âh°~˽Z™¦<-g£ñ„Š9œ” vÚÎ÷•‹jE˜ªØá¥g8ÓMÝô_üâýŠŒÉ’‰wtmæžYkØØÓa E:ƒê*7^ƒVW«Ïnô¦õëÒPEÏPËlþoÈH—¹ÉþõQ_’¬‡F% #UÎH¡yÏl>t¦[!×c¼ s 7äk*åý²¬íïÙ+V¬hDÖÊ•+ÓllŠ7Ôsà-?»sœµõ¿ÝƇ›HDÞ˜H´‹Éa`ÃøWªëH^Ô®”M¹v‘‘Zd}ô0/}U 0iÒ¤ªÑš?~š_Õ…Éóÿœk@”ÚbïÛl×Q*ÿùHÛîMzÛúÔÜû|†².†0g6%TÕoÅN×÷íÚVoÊ~àæGßÄî8=J¶u6½!é,XP7AÃ6¬X±Âå™4iRœ”ýÄõ3nT–4ÔpÆ›¬ºG‹÷6%m´ÑÆ–ˆf»Ó~ûí`åÊ•¾´^™×ÿs¾è’~îy¨»Ð HOm-†jM-ÇâiÍS°9¢œfdO0éQ Íßÿª1ˆüØÆˆ£öü][À¸4ÓÆ¸U>}z½ŒÕy7ò½*¾O“dðXs‹>ÝÉÅŠA2£›Öؼꪶ´õ6m´ÑF-† ©D‰µ'>–O7ÝÎæ3¸VXÿ¦\«‹÷Ÿkyt%ñ[€t°Y¢ù‰ªÝ«›Z“”7Ÿ­}?¯-ƒkcR¿9 Ëöåܺ¡Gª"#ÃüϦ´’~³Ù´ÚhãC…-ƒ¡§\CDŽÅ7È^§„ÍgnŽ £³™TؼdRKÚðă öýAyGl¦^-£ù¾»±Z·ñüÁ>@O³M€Í­uMéÙXvÄ‘ÅàÚ˜‰'¶Xu×ÀýTû0"ðK«ûÜzu#KØàWíxz Xôm´ÑÆ&Á&ë4Œ ŠêŽÅ7Û+šê¤ÎžžžÚt+V¬žCˆ$K‰it“¢‰˜V1¤[åˆW^Éõji¸¡n6¾.m5ôp°ñŽª[Ä!ø¯õz»ÆaD7ë5Ò¸TToªiu…P_®’_ÝdUž0iHiµ4Ô6iÒ¤ª¼U¢òdàž+]þG“'O®K¤«7='x½m´ÑÆ–‹†2{*ªOœ8ÑYtww÷ôô8ÑØ=£žžžîîîåË—ûRüäÉ“ý#BúSZK݇*ÂjŸ}TmU¥ µtúÿ”˜I“&mHím´ÑÆ_%šÅh¬ÕÆ´¢—ð¹ä ¼fʇºŸJp|-ånU®2.}b\Þæ¿VewoüІÇX«ÄŸìV²ûí­ê™vlŸ6ÚøÐ¢!gŸ4iR*ª§Ú˜V8EWÅ‘‡§CªÛßHq7Ÿoúé®°!"sí¶á5ÍNõ>gÑfëm´ñ¡E3mÌüùó§OŸ>qâÄ•+WnHµwA«l­"]úu]áºá§<ªZÙ-ü“ÛóR²:hõ!¾…˜ê¬jÓ·N|m´ñ¡B3‹Ÿ *°råÊ ¹©ÔJüg_‡j´%4¯×ÿ•™•‹«ö§ÝNeêá­UŠŸàºÂ»K3yòä ¯º6Úø+CKÚ˜éÓ§O¦n"ŒûªíZåøŠª‹ºêxÿWŸ†*bªkŽÑÆT!€?(1µµ»¦1s[ÓFZIJaúÕ]vÙEUOw†Ó”Å/X°à”SNi5âÅ”aKW\ÔÒßö‡i£9[ð /P²wÞyçÜK.$n  /nL›­,¶túÛh£M‰A´1Ž;·rS‰ˆ݉÷åÊdO­(Ç7F½#‹æÞ–és-ýmeKm´Ñ 9»3œúÚ˜æpJá¥müu("†Ý wœjó÷6Úh£Í˜8Q½§§gHÚ˜FáÑ[üÒЊ$¾1êÝ”ØÒéo£66=‰âëÔ»CŠÓˆmŒb´>l³UÅ´‚&ôé[Qm´ÑƇƒDñm¢=oŽV>‘±)±¥‹½M>'Ò6®¶ÑFUØXßTjrh¨E5ŠÚÒy_“{LØò÷­6Úhcd1x_$—Q?X”?š0± ÖÖàFK[T¼üVÐæãm|¨_¾mVß]ÚÌQæìURmT`Ò¤ImVÒFm| HíLm.4(|^öz¬ «2þ| ,˜?¾ŸáƒûÚµ½ÿ´…Þ+·wöJh£6†ƒz+kc£½r‡UEª«ýÙõ$q7YÛh£chsö-Õœ½¹÷ôú1‡Veö 8b·lëimlFØøKªÎJoßËkŽÚ«ìudv+W®lÔ‰ãËy­¡UÎîN‹þÉQiX»Bm´Qƒ¯“©¿ZÛl}H¨ÞÓï9Ôº±OÃÞÈke°”\3´µo¡œ2)³õ¼m´ÑF3V³õäÍðV™M•-Vë‚náN˵ÁÉ*zÐÿÁ÷©-¢6ÚhcSÛòz#Ty¾¤ÏC¸©4ÌoTîðv˜š”¶ÆlRû¦>”l¢~iHóPÛÒ|Wkb~ØÜŽ›€ž]ÅÆTØ|„•ÍmžÔE­´î¬¸VWh%Êz½òÛGíabð›JÍãÆ uFÖî0u¿Î\õ¦ÅØä þð ¬*¹êóuiQéýþapŠ;p¤‚Ýo< ‡]ÅðÊo1W]bÒÁjRÈæ?. F–Zׇ¢6E¥Rg©” CÑt“h3÷á Ù®]߉'6±š6ù~t]>«ª•;û_jVU©*˜à­Um4ÀöÒ¦nÃaš2ýúè ÎBîûÔjGÍgíš÷«kôå뺯I)i¥u)ü Ê^ÉUØlÇe“£lÏLÍ`5§íŠ_‡ ×AdÇ ]ŸÞÀšW^YÍF¦ÍÓ‡†œ•Ú÷\wúê¬äÅ1Ò‰n­õ%Üîî)iF¤ÌÝÆŒ>†]…‚¨öA¿HI8¢f#í²×ÍÕdý i]©jºà[ 3‰ÁVom9-–<¼=iHh½>U›CùC-¹•6ŸqÙÄÈEQ×@ÿ¸‰o¼òÊ +qx–ºÖ®½vŸ}Vutœsà #^þ‡ ƒDñuHµ1ƒj“ëj<¬µþ"I•kUªjê!ÓU(Œ{÷Ý_œpÂ-_?©«P¢ú*¼4½+¼«P·jÕÇW䶪 ¶¨ô¿ÀÌM, ƒ¢IÉiša´hÄ)I1 eñ†—ß$ö\ë% µ›f\6!¸k 8îÝwoßm·9ûìëÖTõ²mÙÿ­ Æ |å«;¾÷—Ëî½wÜÎ;—$½£Ô¾¦44ÓÆÌŸ?úôé'N\¹reÝ4TÉéœðžJîuÙýÎÝÝ@èÙÚ¢Üs>Šîþæ7¶+•¾òÀƒ;fí›o¶Òž|ÝsÊ)Û•J'¹ÅªROÏÊ*ÅQOOOóÈ-ÞÆîéé!ÕÈ+yYúkƒþtT#cI9šRëmDw‘ôô¬Šº“QŽ.RΕöCMù”ŠÕ­ß\÷ãF¨rJ93ûvO!S#Ò¸"¥Ç…¬µ@L¾Á¿.=®AQ@i\j±Q]kR¯³m§MûãÂ…Î+!YS¶¥8 ˜@Ê"–/_ž¼³%ám§M{yéÒw€ˆ(d.‰6m²¿ âCD¾oÌ Áͼ$¼:›•!çÚ8F—VVQ­AGbZn²3{+zí–¼Dš–0höaó¬AÏ‚ÃQ5wÙ4ºæ|hä!Öˆ†¡ú•¥¥U9XhwwwOOÏ+’)FÂCÉcë}A°Eh¨6 þ…k ýÀ8"D¶«Pئ¿›þþ&¾1•Ös"Û5PLsk•@jI-CH‡á­å—o›º¨ûÂ&ß óÛk¢ÜÜóáÒôô,KK^±bE“ï¢¤í­‰ÓˆòVáè¯lã2À&M­|¥ÏzÕmtë6Û=ØOãêmÞoɽGØOÙxt8ýÚïs5‚+jÅŠDª¦¶’žê˜'#ã1200îÝwï<þ„[N:±«8àVAwww•0½wíÄáýʪ›ß‰éOÙz÷”ÉÝÝÝ©½A•êòAÛëÏ–+VÔEÒÃP+Ô¶Ñ 9]mܘÖ1"ą̂°4níÚ[¾~ÒÅgœ1„\¥¨Q®á͘êK üðŠ¦´fÔšÜgrc·[4¥4¼Á°‘ªt³¥ìÖïo=1?q⸉ÙRVl³cÖÆ@jÖ.šÂûml2Ð o¢6 n;Ü0’G¾1¿¾^±˜™°f¤ŽIɸl”k5ù(ºçߨ®wÝÅ?ÿù¸OZ4æ¶Ü zzzº»»co—k‡†zðuˆ+"@µj›l¹0ܶ¯oÒ'>1iûíóQän–¦¢Ö/&}âÚÛ› ÃaTÑF]4dªêDõžžžÇ{lSÚyÜ”í*øêW§¨=àÑ%;v‚ ¢ò~ ¸éoþf²Nd)ÆŽýó+/»(tN0T1–Hüÿºé„8o®s_®ÿÍm~{öœ³ÍšmÎZLÇe8½1(*=Äæ½ô⋟ÜqÇxVrÿô¹{r÷ Ï/ìúó»©_Y”Ë´^c:Üé›ÔG •1ªšê¹0¼ë§l†_yð~Œ³öÍßû ÈGÑõ§6¥wÝ÷ßí>ñ§?üas8±ý`ä}cjÑ¢r¦jN¬ÉfcÿÖ#fœsà ;M›6ÐB!€wy$õŠ *¢O Ÿ!¦Úátr÷ô,Sº»§T(Ýž”ØÚ|ïOŸ†Z_Ë{º»»—Ç%÷ = 'åx´$²'YÝÁ’V¬X‘ÊkN îîîN?g«°î‘ÍzØIë~®XÞã¼GÊ[f¡Z° 6’‹ãZk„Éõsê “æ­÷…–ú5)AU—'à»»{;l0ê[n6tëMO`kr¹*±åIÆF7"Iz÷Óš0$?ûÏ«ãÀ¤æo_æÉøå3V½à9ƒŸ~D (C©{§ú¼Ÿ:îÝwŸµÓÎÜé£ì`Ú–Ö7 C‹3lÄ'»îíTmÃ=÷š 3æäÜ  èyñÅ3¸Š9Eï i.¿º ±¹§__úúصcÇï0Y¼ñúë//[ÁÈF™ÙÇξõÇ·^{õµg7»S;QsìhŽ_yqMfõgþŸ‰9d_}õõå+–AAD… ð…ó§ßyÍ]7]2ï¸ó:,àîŒl¨êëK_óþ˜ Ÿ™€,~ûÚo_^¶2R gþÙ·Ü~Ë5W_“¶q¨ ¢W^zµc}ÞD+Ц4鯕«¦D˜(è(äMPŠŠ¦äH%JJ€‰Lò&*š0”R(¥ˆ›u£# [ÊŽY_îPJŸ™2Àâ§OøŸ ¿¼öîŠqiô‹ôwV÷sºšjÓ»ŸŒùc ‹¥ •»øÈ4§_äÈyó~|fùVŠ¿Šwéî^ä´1'Ÿt˱_þòm·¡¦±m -ÝTrl½ Ÿj]*¯›¸®•²$ü~6Û«jˆ(‰#1ŠLïe2p^±Âþ†Ñˆ¤f4WxXÛ±£Çÿnü]§ßýV¥v5_èüä;Û_vØÙR6ÈQY;_+&¥UhŠ{³½o|ôó~xîGÖl3û¸Ù(tfBV’"<ø IDATÕµku;Ý÷º}2ýkƒµ¡”è¬[Á CS;(N³×q×u®‹x mãå‡_™-æƒ ˆZñß/§™Üݽ¢g…Zí,v|lÕÇ~|ÅDtüyÿôöø·‹¦äXÉäISü€ å+¾"B-ÎóOGG!ÿñU¿ãÊŸ(…Î=@f}æŽk«ßüäºÿe­-fŠ'œ{üšŽ÷{;Ö¥šñ:7àP€0fý˜ ÿ3á.gçøÎ±ÿüvޤµ¥µøö¹vïBv`»©Û½´üÅæý\]þÈÝk"<‡+¯"§[_imDTíýRq,6W¹QpòÊ{p•üän¥œ¿rÅÂÅ‹ã[)Þ†]Vg³Æóã;"ÂêÁî¶Ñ:† a®?Øé˳Ad» ¬Ú› úEš¤ô'“ó•L=y­¥õæ¸ÌÚÇßtîümŠÛuûLLÀº·zSî“ ÇùéC A@®˜5Q3Ê•°à]û³kFn>ñ–m°Í[¯½–\Wð›é¤Të³ýŽÑ7AÝ¡©uº÷)yÿ±÷ç_¶`›Â6GÝ6[£ïz»w¬j# ÒЄ…  ªÙRý6¦Ë¸»»{eÏŠIÝ“z–÷%ƒõß;áˆY‡ÝqÅO¾âà&ô;%Àò=ª1KI vý0fý˜[¯¿õ¤Y'9º~tå¿}íÔ½íúuÖ øÑ•ÿöµYÿúãëo;á›_MÓÞñÙL¡‰åÙùefKÙG.¿Mq›£n›‰ñ°Û{ Aáݱﺔv˜ü™W^zuÇecCÔ‘un3ѧwÜÑ9˜IºkúV÷oF6Ð/AQâ£p“Z AеãŽ===«“7±ÝWuòäÉ===À€1«³yíà_#ˆÁµ1+W®t¡Áªæ\y¯™‹ÍƒY×¢®Y¦«P³êÝŸ9ûÍ1cÎ¸é¦¿äœÆ¼Ž^ÏùŒPr±ß¹ýÌÙoŒwƼ›F ʳMþ1‘«ª×^YÏΔ†¹PB!(Ÿ…ßRWźú\WÂ;úç8M"K•ofzÖˆ¨£ÿxæãÞ.¼½®3/ðÇÎ_™ñ1©%_ƒ\3@îæ'Ì@ð·B Â…”³7ú„–…“î`볂fÃä—™ž œ´~ëõ?üò·ÿñìŸtt~íÿú×ýÇ—/<îÜŸŒîïüÚ)ÿzÛõ?>ö‚x'_NóÃËtÄeG4õ—¯Kz÷ôÓ@²ËÄœÈ'výû©ï¿ô>oß^×V]nhõÙ}SÀ°}H‚ÈŽ- lõé@ô±±c_{é¥~¢ª­%}N !£¢ð£û8€?ýáí¢Ô±U‰ˆÓ«Ôn?¦Ê»¸Í-±ÿ Ú ÅWU]h°Z4™¸Ú2•zòÎùùÏÇì°Ãß︣Û0º»§$ñí‰É“'wOŽßL6íîo|s»Þ¾=yO>ùäæ (ûo!(|áüýÿ4öO7ž5ïÝ×V)ÙZmF(áúlߺÎugÝtÖy7~+2-I"™(sæq³»z·ºðê9¯ÿþµøk•…63ºoôVë&üô›?»ã´Ÿ˜(h…w4jc#Ev!(ìþ¾ïtýñ¦³æ­zuUªŒö—}d¢¾\ߺÎugÏ;ûÜÏ‹¸Ú%µ¶äôNy÷çº(G¿¼õÇŸñO™ÐdKÙ¿ïž’šCà M¸€Xƒ& Bc{ó½«G­^ŸïƒEeŠ¦Ô—ë}¿sõº|,2aP4‘{Ó—ë…"eZô@wvŽ?{禳æ­zmUHQmŸKhÞzþ­­0á§ßøÙ§ý$ešÏm‡AçÞFŨ°´Õºu×í·ß·9¤gáBmì¹ï°swwW¡ð‘õý7pÀõÔäöS¶TJ}Øwéî~yÙ²Ú4[–+Ô–ˆMá3l”=y =K—ö<ù1}p§HzzzþnݺûŽ;¶Åò“«ž-P’øto·ÇÇÞzúû]»Ïúlÿº`í;}æ¥Ø‘ Q(`2…wǾ{Ý^WÌ/>ñ»Û–¶íM=/oÇVØ•ì¹ýçŸüíSWzE¶” ™?³SÏòž*×Éü@îã«>þÓË~ÖQÌuýqøV÷¾7(iÔÆF÷Z·ÛãoÞzú÷û^³÷úlÿÚ`í;}ú¥že¤±<æ ˜ׯBP¸üÄ‹?VúXo¥¤O•ËåNôªQϳËñ6B >~0ï_Îúç1ëí«K^-ØBšÑåeU¾Ø©4W4Åb¾8YßQÈ[³¶c­µŠLdF÷.qimÇçqØ`Ìú1¡×v¬0¤pk;b}zlç`§f©ðw§‡¹ûÌí(æúþqØY·jPiºÉÜkÅcÇOÙuËqñЧØèÀ%ñÍ×–ŠŒDªêÔ­]…ÂG×®7ë£JÑ)>ˆñãÿü»7Z ’í*ô[µêöÝv{cô˜?.\¸ÚÚÐp­¢©’¹—ëmKë#‚ òivqƒ DU±?Óš×ã¶ÀìÉÛØ&3 fw÷”žžeïâ]“»»{–÷¼ßàXæìH~â*ÖÖ¨.÷>žå½HŸ{–÷t׸–×´aC¯b׊í®R×F÷œ´±‡ˆPyõ¤¼Ú»‘Õz<²0X—ë-u†_9ç+7_wó‰gžØ—²Ò,”ÒÚŽµÿ|öWn¾þ¦SN;…-QpËn9ùì“oúþ¼9ëŸ9¢@ƒþà‡'ž}¢{CÊÙ(sën=霯¿-h¥–BPX5nÕúy‹bLéèwOžÒü&`ð·À¿ì8¥ê}­’6ý_öÞ(Ö–ì¸[«vŸ7 ÎØ!)*PA r-X”, H‚_6@ƒÇ_‚>â ˆ@År ÈIB‰ˆ±ØŠÿ–%Ÿ2I d‘”¥J’ü„Šå!)‘ñÌðÝÞU+U»Oßsν÷¼7ïÝ{çM/ ÞôíÓ§ÏîÝݵk¯ZUÛÿñ_ùÌÁÊ ëÃhÆ·vNãfmÌd*=•yÖA­Ç¯¼ú;A;9ž¯mÍ»zÿ£GÖú߫οç¼´‹ž}½KY‘1Õ$%d=€ŸùK?ó7ÿáßøÙŸûÙÏþ…Ͻ¨¯PŒìÅÂÇ?z¼óÞüý÷}ý/~öÇþ×Ïþ£_øëÿËŸýoÿ,_<«ýºBúyü^}í•ßâd$ ¿˜†y?ýzxqQµ^Û»˜úÅ{.¾õÞo}ë½ßró%ؘ?:âÆ¿³Lk®:QZöÞæÿô?ûÉ¿óßýü»¾û‚OñÿåOü¡}ë?ùkùúïþ]ïêmþñÿâÇÿ°}ë?þkùïü­ŸÿžGïêmþñ¿þã_÷ï¿ñ›׸7±½’8´§o¼ðæ×ßÿõûÜýãÿúýýŸù…?÷7ÿÞ{–7}å}yªÃé–\ª‡þŸÿí¿ý/~ûŸwš26`àñ·x¼§ÏßûÆ›ÿãOþäÿðéOÿÄßý»x÷÷\ÒÌHkÞrü6ޝn™ñ<¦Y¿Y;¿aA¹W_ùÊWòïþáÎù€6æWõW?ó™Ï<™æØ ×wT®0¾~««—ÛŸ'ÉkðoðÝo¾{ÝŒå¢Ö±ßÜH…8’è0¾ø¯ß›Û)%ðXïpžíÅ7^|ðÆìðõ÷ýÑîQíyóvøúû¾þÝé»/½ùÒú˜¢e®ÆÄñ^|ãÅïÿæ÷Cgÿ·)Œ!Û ó£?þèÑ÷¸x³µo½ë…´ì¸–úã}ß·¿à_¾ôâU"Åóõ×ÿØk¯ý½¿úSÿ÷K/ýÕŸû¹o¾ë…£L”dzÑiyFQëͲŸÀÇ¿üå/ãñÿ›Ÿýg±1©ÉOöðOÙ÷ 7¾cçŸóvÞŸæ>ðíænòþ®Úyü‘X"€7^xO|]ùÃlx9Ëq}’õ54cíÊl¤¯A,Û«o?ÆÛ›g{ã…7¼wr‹7ßõÝ@Ï=Ó‹“o¼ð¦èëc²ß®ÇxÍo¼ðæ×ß·¿/‹[3ë$Ïz×ߪǃzèWáõi÷/_z17®:&gÛÿÁßÿ{¯ïvß<=o~<ë<­ÔÂ?ÖWß¹¸I?â*m̆k0ùt½Œý‰ÑÛüwß —¾<Ù5ºÅªxV®ú“ Ïöh÷èõK;œöø˜§Žûs_ÎÓž@|Ñì¤Øq'Ë€=Æ2‰YƼ”?7Tñ•ôòË/oºaÃÛ·9xŠx›6ûžà´eÏÑrÍÆÜj£6lxËØì‚Ûdð7Üœž4IÊe7$—?×ûŸ?‡û6lxð¶Ö¾}[~‡8´ìkÝÒIëö™Ï|æ6ÚµaÆ ž‡–ýœ¬èçK>ê;óòŸ{<Á¢okÜUÞø3ÅÛzæqË8á³øÝßýÝw Ûx˜çwX!ã®ð\fÙÌúù˜p*<%1Kjî¼fÏ‚köÜ·ó¬÷|þóŸÏí}èC¸­T¦»ÅïýÞïåžð´nåÛeÔ¾ƒaÎÁ„S#a¦¡fê‡?üá4…×ìÉõÕ’Ð8È\½·çYïÉøÐ‡>ôë¿þëÙo—wø‰ññü‹_üâÁÎçu¶û±} W\ÝcÝèÇ*äpãÎ'8φ gâJÕ#.ç æþu°ƒcþÉ?ù'ÇÇì¹WçIÁþúzß9øµ_ûµÜ8¸ðç»–©ØÉjeOåÚs|y{U‚îùçÙ°á±ps}v™ƒúòË//ÏÙ'?ùÉdl–cÒ\^¿ç^gì¯Ï³àòF­íÚógÖ¯òO^iÄé‚ãg> üxã  {ž  7ä be Gx½gÉS]ïYsßÎsrÏ™õœá øûs6˜=÷|Ú† × ,ûñ¬|ƒºpé,¿úê«k®c¡³—=Xâûvœâgo½lÙ=Äîáó‡5q>ÝtÕGgzÍç;××¹9éž JõxlÔ«—“Çô…—ÖY© ®ßsßÎsü­ƒ—ÊÌžÛ—ÎxR×_ɬ½~km{FX—>ŸÑ>Æ–¼áí‹é`JŽ+¼†§õpß·ó\sÚçæe>3'éùÌpö½[V[]¤ß‹³¯—9çl×HÈϘ?—Rô ·ŒéÀóÅ<>Ë­Õ#ö×ã7Iá¼õŸYÚW—J_¯#qÎ SSȱÆÐ9ß:)C<Ù˜O|âWyŽc~ò€¥©ÍøøÇ?¾>ìœ.'üØÇ>v|üҀ凮ñ'ð–¯w9Éñε]o¯­jî¿ñžïgœsäY¿æ+›~fÃU¸W ”Øq{î9p<­¹çج'nÌ5æõ¸ygêíÒ¦ØñÄ¿øÅ/|á _üâ¿øÅ/ž<àäÙ®"CN¶ðzúû­\ï5;Ïñ‹sUn³ÃÇ2]û‡æÆq3ðH¬§/Û/¿üòU-ý|0ÕØlý†[°ì‡öš ê´Âì$DˆqüÓEÚ²´z‹ ÊíÅÌ}|àà[W}z¼sù•“¿~°}ÍɯiÃWš¶ûäG‹%ú¾ð‰O|âØp¬{i}ü²qk×»Ln¼Þ'Ù“šw\6ʯ¾újšþƒY>ÊOdÞÜ+¯¼’+,OŽ=yžW^ye9Ï™¸þІ»Å3Yôçz\Í«œ`i$¿óÇtá ÖLÅB5¬w®·s òÓüã_úÒ—Ö¤DºÃIààê¥òN6,ùñ“ÔÇ9'y,$3>ìÁ™OöÒÁG E³\ïc5õœë}\\EjNK`6Û¹þÖãêgNŠÜoüÆâ Á/¿áÏÜgãLûÔ‘%Õ Û3hÚ¹X[å5[v>ZnÍœœ|­+?ß^¬Ïvà®®G—™™3íËÉFž$¸æÏ§r½¸<\ªslâñ•ž¯¤îÌg¬„ïÏ3ýXÖ0qlzÖò›ëIü´\_úÒ—\Ôå‹'i‡õi¯bpÊ$­÷¤=yž“×r2Ðw°óF›øÖ¯÷dÛNbmL~´ü ÎT—¦Ìôú³-ñÛµsiüU—pçÓÜ wŽgnÙ©#ŽåxOù¬Ûòä8~óÏ—C\ãÌ>±í¸ÆSN+~ëUe¿ÖÛ׈RNþô5<>Û5ãʺÁ×ûòxz×{MãOþâ±+½´öáÇ_ûÚמÌç8`u ôÉ–d‘;¯¼òÊrüú»çtõ†wîÀg?$wÝßÓçþèG_ýßøÃ^øîÓXý °¶Ë‹}ãËsl°NÚÅŽkƒu_¶ó…/|aÙ>iìóë¯âüÖÞx!„õ²ÿ —žÝõ.¿»¶ÎË1Kxs«¼&²úꫯfŠc£¼xk(&C×Ü‚«Î³aø[y䛟P²'Ê—Ï—ç=}þÔG?ú_ý©?õ¾ï>ú‰ýÑ_øßø§ª9|Ë.ÉBæføîªOqÙ£Ì#O~zÕW®7Ž.éªóœ<þ‰±&@®iÞº—®úwz½ÌÒI[ùXôààel8yžeÏñåààõŸ76r³øNâ^øìï¤Ù­½ö§~êßÞmÿç¿1¿û'þÝ?ùC?ú£ÿû˜užÏ>-Ø‘ëÿ¼ê»¡¿µ æú“¬ÕñËŸùõ“ßZ Õ¹¦ë†·óšÂW]Âõí¼'×»aÃs‰[²ì×GMÇ;\¾|k¯ý™~ê_ýÑôÂ|ñï}àü•äzáìHy«oï¢{»ñG¯èh`nÄ)q#tòøó;êd;¯—úÿúù´Õ™ív×ûV°î'î…Ͼ€|½µ×~è‡>õÍõiÛý³ù]/üÓ×~üßÿÀ?¸Àï|ùË¿õ‡ûÃnæ(ŸMóxðë'× ‹­<ß"“uüUÇœs’ƒvêŒÂ2˧OL=‹ë}êXb§›Yßp?qK–ý¤·¾vÇò iíµùáO}ãµOO»WÍ^wÿÀ£Ýƒÿ ø­¯|åõ©-ûè&ŸìÄAãOªúŽ#xÇžïxÐOvüɯ_sÎkÚy ½QÝ>žÅõnØðNÃ]úìëôâ­ãµOïv¯š};â¥ÞàƒÿÖÿü›ÿâWþ°¿@wôÒ^co ÙØô«FˆsvÞ®jçòé|tãawx½O†ãA}Æ{…[­&– Êõníµù‘O}ãµ?¿Û½JþQÄKóüðýøåßüò¯¸`ÌŒo=^å™§‚'x¯RìÝxÚ{k2Nå«>:ó ç÷^a°7BfÃ=ÄÝóìf¯³¼õ?¿{ðªñÿ‹øc½äƒü¥¯~õÿèýß>ù¥Ûnå[ãŽã{çüÜ9‚_GŸ,f{=ž~·×ûdØÜö ÷Ï>µž~pìh‹`{íÏ|´H˜fÿÚã½óüá÷à—¾úÕ_‘¿ºäæ?S†=ëL=“Sß3|ìcûéŸþé»nÅíá­7poÍú'?ùÉ%‘jÃs“Nç3·ì׊Õ^oíµþéO}óa·{…öm÷—æùÃü¾ÿí«_ý•Þ`XðãjW­ÝñV‘)‚Oý´6Ü>Þ±K·¿pã|ñÖ´1£ú½©„yíŸÞí^±öð—æùáÞÿË_ù­äÖ—ãcužÃ=O¹äcÂÞ°aÆ;Äç?ÿù“ûog¿dÖÙ‰G?øƒŸúæ7ÿÃÝî+´o‡¿tqñðû>øË_ù­_éýpªÊdž 6l8·Š‡LŒ˜ðô÷ÿoMÓÿcü#—Íßÿ_þg_)o׊.Ž566`cÕl]ñ㪛{{"“rÀWVúOü‰ŸR|ïìòÑÅG?8¼ué=·Ö¤ Ï+¶yÞ[ „çW%lßÍ ×/¿ü#ñ¾÷ÿÒë¯ÿ¥÷½ïÝ:–uS¯+T¢{]Ì}Ãc3ëØ:äùÆAáܲžÝ@IIÈHáÂ?øS¿ýÛ¿Ñû¡«¾=‹6lØpŽ­å³W=®èxøðÃõðÏç7H»Õ7Në^”Žü3SÅlذaÃsƒÛªâ{T/•ãQ•°yè6lØðtp ë æÿʦ/Ë6RŠ/_Ï$®Ì2eÀ9GnذaÃ;·[ìha0ê\>}‹šnذaÙ¸½ê^Ÿ~\î±ögm™Ü}3ŸN=«6lØð¶Æ-æ ^]×ûŽ=-þåQa³é6lØpw_ŧêÃ\}LâpAÔ 6lذàn2•®ÂãgÊmö}Æ qK>ûAŃ8ꂳ³“ƒ~¿F¦ 6l¸¸=6fmÍSûø¸å,Žß blذaÃ1îÆç}õÕW>|˜e›Ò_œú‡–OùÈG–íüúfÖ7lذáwAMÓ¼¤/=|øð•W^1³´éW‘6›Aß°aÆkðÌ}ös¨óÅ‚gÉõWÒ»?8ÏË/¿œdÎÓnì† 6<xæ>{:à'?’dfë?¯Y¬nñÓ×ûƳoذaÃ1îv…ëÃåÖ Ì‰O¢f}ÀfÖ7lذá$î†gÿÈG>rÌ¡_e¦“Éã×Û›Yß°aÆ“¸=˾öÁ¯ .¬ú²ýµ¯}mãÓ7lذá±pK–ýõú•_ÿ¹„Iv>³fnذaÃó€Û^ázÆ 6ûs‰°ŸÄ {n|–û‚[íФ³ã¶ö^âØ¿¾OžVÝßóÙ7lذáyýöÙ·\¤'Å[çL×^ÿ“Ï6Ü.n¾G·éQÞ­÷z~—ËŸ¼íÝ;Ë~N±ß 6lx[àÖMzá~±1>L']R.r}×-zRܳ¸ÙãgxÅÊŒ§ê°?¦šøžõä“á‰3ìö_<»h},O|ú´šw«vžü­ç7=Õ·Þ÷Èg_›õäarãÏýmJ×ð)¨g¾ŽàdðcžöÆ6Ÿ×žÇ$tÙNÝpìa{Ž/ûüŸ×8Ããº]'Z{ªÿûóämiÍeó¾|ý`Ïú$B—þLÄå?——h;lÒúO;úHx¶Ü‘«¢'8¾ºöO4ëÛúwy@à¨C ¨;Ýî‹e_Ìz""ŒûÉ…;î¯Y¿º]Юþêõ†uýüyò¼êÍ?0 Wí?¶ 8û€«ƒó]D­Ž?~±"½§vž<ÏU_·Õ¿Çí¹ ×_õÉn?yk– hì·qÇG\ýÙ.÷‰€-.ÿéW|´ü"Vg^·sý)/_ÎÉþ_·‡GSŠ“ Xo/Ô˜<.Çàò-¾þ#žzÖ·õ ý|õçUÏá5pÀ!=æ·žî…e?0ëÎø™žûÛËô€oÿÁX„@H\¬GmÇ¥®ØÏcÆ6#{Ey¤äˆ¨#ë#'  ¢ç0ryH’ååRD¯oE0T ""P"äŒú¹ú*ä!8ƒ’çy²1u•Äš¯.‡0ö,÷Ý„àþ_ Š XUnÝŸ„D#%6’l&©µV_;#©,#jYNÔ”l¶wê#FÕmëýûÆ8Á4  ˜·R,;$™ @W'iI0zä-@øØyGÑ%…ÏÙÏ¡IìÑ]À»æYóE\Ìš/¢Ïq1ÇÅfù"ú….zÌš/¢÷¸˜»_p˜¹AMa"™¢±¢)ÿtƒ›rvˆµ0H Q0óNåþ•û‰P^ÝÔ4khÖlG’m2³Év4#Skhl;’fÓD33ØdSk»¦†igS³éL´‰S³ÝŽ­a·kÓ¤ÉÚôS³i×ZƒMl&#­ÙÔ`ÆfhyÖ‰ÍÆcýÙlj2’¹Üiå=µzBòá#÷GÖ3`@aÙ¾â5`ùð8ùâ?èWúŒq÷–ýج/¸Ê¸ßæ„–v4˜@“v$  ‹eçêÒÒ2bmß•ÿúbÙá!‰([ÏaIåãTáà!ˆÎ4¾„§MAZí„G%„‡;cüJÚ÷ð& [ßDx6AÉë—ñX_ËØ¯õu¾¥ßDZÚq1’™ ÈÌ0lú¾±‘‚µ´ÝùÎæ¿"aùfNËÎ ¬5 l†tèÈåuÍ·UJÚ€2´Ø‚Õ}YœÖ×;®}yFF<BŸó6Ed9{@îs7„<ùo œgÍ]ÞÔ|ÁÙãâš/8ÏÛqÑyqóŒ‹GšgÙéapƒ7EãL÷Iat“7ùÄÙ ßÁ¡>I ³&s©…YÈÌe! +2gäÑ„²òÓ´“±ÙŽÍÌ&ÚdÖÌ&ãdf2ZÛ5NlÍ8™M»hÑv§†iâ´Ã´ãƒ ÓÓd»ië1íìÁ ˜ ÓÄݦ۔öÍh¦ÖØŒÓNÆ2÷-MùdSS3¶3M£¡ÑDí`\§µ|6`9²#`lf0F°ô9´²ìéIä½ÎPºjíÕAwlÙ¯1ë‰u½ß4î÷߬ß §‚õ@( •«9bƒT†~\o>Ca(÷@}THb¤“˜N_žyXŠ•A/S^ÿîé)Ãcüb™~õØ‘ IDAT›´ûù[Š¿®r<½æ‘¾ªªÙÀžñ•d+«W™5‹ÅgÝk²á˜³òßǃ‘–×0slé1µôÑa“ØÙÐEÒ&0SïdCgžs±ìAR„ŒCÙôQh¦S#HEMî %Ëô%M6³o£/=Æ2ú!¤ ¿úS³]Xï¸ø..:.fôYÞ䣎4îóEšx\ÌêßÅìÝÐéÞäs or¡[¸ÁCÝÑ'yCGxc÷èÀŽÌšÔD†šÀ@ Zˆ2s5¯t4Ñ\9s2ŸL574j’ši²˜ÌšÅÄfÀl|`jdÛaj”ØwiÙ±»Àƒˆ¦ÎÝNáð½3\êð|G9»«Ml 6³MJ¿kèÒd´P3¶úna»›ÊÈF!£±îiEÒ˜ç“à5Ò7"ŸGÐL&FYð…GEŽôÀâË稀¦»¬L{—–ýF³ŽÕ‹Ïþ¶0ë:S¾§÷¥Ê$tAÔaðM—i¿CpÚs½ÿ(|gƒh½¢ñ«ÄHEØq3$Žˆ”rì¿(¸ ÜÇï†Õ†r¼AæW3‚1ÏíyÆ2‘ËtXéÙù–JhF#"`D‡a® Ø€ 9Ìh@ô-HÐÓwc,?>( B‚±Œ;².³:$Gµ¡7z“7Dþ +–/GÍë&‰ DË±Š i†0™5˦Sf”1Lf0Ë…SbO¡æ]–Ü€˜0…!‚ÞeŒÑ¢wäIZj myVý&N¦¤ãÂ4¡æ^á !)†ƒAÁ†œžx= ©O§¥£’Þæð¼üföö˜û—×Å`¿ èÝ$o߆e_¸r$_~ùeIëÇX̺™½ Íú ¸tÙ—ÍúØ—–ïp‰ÁÕÇËiœœ¬š2,f!Ž/º ‹üîð"‡mÚS ¼t°Ö—Ï€ÕoŠeü¸÷ÍYJ|‘ˆØ{ñëa†,»ÖLèä‘.¹ÂE3I4ƒkï§çuÙ˜=P‚&Vêc’(‡’&Ȇ·+ƒ®½+§¶/õá>ÌP®ºäÝ"¥Xœ÷´>iý3˜QÆ/"ÕMÐâË/_”Gdt/ÊjG!F4¥Ã.BdØØccX¸ÉK-ƒhðFoyÌ™RL4Ï e„bÄiÊaJ=ÌN2‚ÉϘɊ‡*"`€dR‡l$û¸"}nƒ,ä!L>C“ H  š$·†ÆHy””sx¯’h$ÏI—$ reh=cRI ¯ßÀœ|gX—ÝÐå®cÌî·aÙÌÓ5QÐ…ì|;{ëo $1¦q7åËx¼ðÃúù_çê/óBõcM—»å껀³˜“HÉØ ?}åáQf}?_Ù›l¡Ñ!ËY1„òê+æ IÖ¬ $“ß0+?³|öbf¦Ì)‘@Þ4YÛnÊþ:KªÉÀpH¦½ø!2ÏcÀNÚd}S*‚š^6”RƒtÞkPLO¿º:÷£¢âž£B iÞ"R "!ŒRD“ûàÍ‹ÒH#N·P³ @§œPC4\¢Ñ›ºI .ÑQ-öu#å0ÉCXN\R 9²O@z£ÑÒO·ÆÎ˜Ú¤l„<¦@w´`DÆKˆD™DyÑ22DÀ¢Yήr~ÖjÎÇ M‚ØÄ–†@nL’AôœiÀXä[УYNNaÃͨ±ÿÔÔ9Ÿ½;ÍQì}Àí±1k'ý*ã~•Yô0'±²‰û='ñãË,»ͯïOÅæh±ã Œ*Ú™Æ+ g(IùÔ~¨¼ËEÎtä§_jùʬ/þï`c”Ÿsxñ#™DJ§n …—km5Z1"{f'€ôÓ#‡—‰|‡s¿{ù£ Šä§X¶Í’PÎÝ£µû1ié7 ©núõùIR¹9’íg9ªÜ‚¡SJIŒ§ÈÝÈR1ímúðú³ŸPDtÁE…1jð´÷˜î9²)EYs©1RäÞÀ)Í:zCÔªv‚9Q¤9äÍLÍLz¬BÎg,CžVÜ:çFk”Lrì28´¼ó´0¹Ô¤ rÉNME»3'Fš¨žLœÐ'Ø MÕ8 ÓèÀvÙ>›Ü™!‚L‘Œ –D¼4@Æ¢‰äˆ¤Ö#·0ª»»¸¤ëOï·gÙ.ø¤q?6ëzö[kçíaÿæÒ#}À±ç :ZÑ©3­S˜Ï°øq`¬/_ÌþúPIDHCY./š%Û’ï#É„¢û!áÀO_|Ûþ)ýLÔ?ª7LŸv°"` Ç-eja²¥)·1T K%0I¢õÜfÒ@éã dr5Å¿Df '†žŠIì#‡dš<½W_ÏR÷½éeÙµ§È} –¡î5J¦Ç¥Îñ­E´"œáô`„’2B d0N„!LAESчÆæ7hB4ªå¨ÜƒbŇ )ó`=Âòᜪ’{dt£ZƒSf¢1yy¢˜$¥#&‹0å\¢y¤¹Áà&ŒÇ©öI“™s4 U™šˆ*Ô³š!oB“<ŠCOõ‹+#1¥Šd:1åDŒõ¬Jpz¹*)KQ1ûHJî×ïÏܲ§¾åä8¶÷Ï}îs>ûÙÏ~ö³ŸÅeo}ïåÝ‘ð­ã€z»rÐ:0{ügèxfÀA  'õŽ)…,·:º-MÔñ×ùé8rÕµÿ“´4—9—©‘ÞÈt£Öft=ÝÉÌʰî EO'3³øé™E”V’‹ 9ýúH6Ï΀f6[Ïc´âÜG?¦kRóK77V’ö¼êRˆ™äEÂ{æ 1äœÉ§|(a´W»#dj*@”gq†ø,õ0rƒS £Ú¢‡L^$»4Y¾4–l"„¤AË›"#ª`¦Ö3°3Dê’ï#"½àˆ`°…)eôp‰&cX¦Y0µ³m‚€06av˜R)%˜B XJb@ ¬“ Ñ!³ÈˆtCw4Ãp±QÁ‡›LDÎùR %4Si0a/ɪ—%X¾W†^HÖŸË$F¸[ƒõÌ)~iŸ:xüi÷ÜN³þ¹Ï}îk_ûÚÁaÏYßã”9^³Û'÷¯w­¶ýdü]—‹‡`,Y¡Ç¿r8—ZÙwCTK¥W‘H”{ùÝ"gŠ8vC¤m’wùœz¹##|ã?„K¡JãJâ+s¶úÏ‹„`š¹—\žÅ?ÅÓ%Ëd¹bQV»÷ßÛ#Ãcö¢Œ‡^š @K³0¿ƒp?öÓ÷´”¼ÊBî‡öüþÒ¤Htè•$Áê€lI¤“NLy i€úéŒL(‰½´™CHXê2׉ËKbÊžefŠ`zîK÷ÅáM<ðÓ"Ñ€¡uQÅ3J'ƒ1tK¯xÅÀp_øA5ž%cæ¡èé-áéÛó˜ÃÂ)TwC˜`r F·pÒÓaŸÐ'DƒOŠú¤Þ •BN–øC@Ä Èæ´Ä¹ŸŒaf­ 33 £í®P& ‰îaNMŠ#‰f ËJG Z$»Ô2›hdë@¦YXf7‰­A‚&h†&N¯\š«“Ö @t8aRò0c–Qþ{3ß.fR”0“•¦„ÌF%¢*ß*š.¨wíX°[ ÞÚoÝsheÖÏaد:ÃUñ²UEz‹Ò‰O/ó«m¯Ù%ú8ÇRñÊ÷MË•ùC«Ì£µ6f•½•±¹PíUkeÈ̈pž}‰¸.3.³È«·®™¬¼?£ Õ‚e¢Ø îh{]óÂîK29@ÞafÖ" eÜWS,¼õ‚eR ^!»…+OËÇÒvçÌ b Á…«Ñ˜¬ä5ÏÈáE%ùI ;Qœ ÐYi¨jL³é„Oò©ò’RÆîaJÕ¹ZŽ€•¬”·Ð£z‹Ì40 `Jꄬ1›ÓĠ–:oHŸcJR¸Cn9•B4L’Ax%z„…eæèo2a³™ˆ†L‰Ë“¢¡æ­fS:×y]r¸‰Á–Ö%³¶Rae>ª²¾ÛxV#¸Cò™·ÃŠ^f¦²©ôX㸧ð’Þ®ý»ƒL¥çUèòVðX’™'øë³A’£æiY¨SÛ#}f•hW¡¼ÔFÅNã²BfmëÇó½Œ(ë((‡Û®õa$0)µOÚ;bn]_¬FBÎ8‘Õó¶h-º[ki;­†ÏŽ 3,ÑþK·À÷ó $pÆåe½Ñá"‘=rE±ðEæP£¼LöDŸáBd¼Áèéõ‚rDÄг+’•/16£2õ¦hƒÒ²›¼¡Op“Oè“|Bä³EX³­îV ØA!3D€‚!ó¹ Í"JHž1Œ³ŠÖÊ'±$Û‚¤1‡3"å²}–‰&˜hSØœ–›6 ‡#hݬ2Õ$û‡(>!à‹Ž”yd1&¸) ÞàD…-ňkh) 1,⢼uVe´$µ2%`ˆaÌ2›Ì§ÈïÊDˆê¡ ò†DwXÖM&dFRC *Ðz%0Ø,Sc+ÛÈ„˜bU•…d|´ŽfáFåLNŠ x§6ôÈ%sª2L„e‹Òqˆ‘êæ2u‘HÏÿ* Î ¯Þa–pWÕÞán{:qkú©„VÎ}”̦ٞOç·Ê ìÕìUwûR½‘z±òÄ‹i©A""ÚÂ!ŒŽ]u¯œªZé“Bœ±Þ²†ØòbòøâÓUJG•[¾°¨#”‰ºL/Âé±UÞ{X3ø¨6Ak‹Þ¦>`ì{§¸õýLe)ª3Íš¬hŸ¯»(Ó+ãÔ;ª©ŠªH·=Y/w`€ŒÆ€<"] ‹€RCŒ09ÂYÙ§IsDé3Ž ™ºeÞiR혓|O}JA)#sC ¹hPRTÙ½™Ð–Ã-Ìh–e¤I¥C DÎë‚-Ù:åMÜûÇî3›,Ôé &+F_˜€hlL1{f™™Llùè:FƒN4“‡™Ã›Œ4É»µ0æd©©1f†NFê«Q¤P=»ùŠÔ™ËqQ§ñ¼Ý#Ü}}öw:ZäL\áÑóªýWŸápt¹¼¿žrRá«Ã’ÖD:•_-Y\ÔGUhI𧮋Ï>ƒd_¹ð#ÄàŠˆÈ²”Ëäw|%M¼#YùQŸæ—jŘ)Պꀙ5…J¥Ž–TÁ„a’Gq.6cxrî˜Â•Ï^Í‹……®õmZ¨¤Ò&J•¾• fd¥bÉNŠEòo™›ŸÂÂ舺ò†…W*pd¡C”Öeëzco{±c±í Ñ(…NÀ;tÕ°*|VJöü4(Ë\ÓüÌÊàå€Ã¥T¶»œÁLY› h†\ò}¶ e¸Ch ÌNc [9Ñ*GvF²h¢©n4¶TF›É=‹ ;¦ ª«²[k"•oÞÜ0±b§‹Û¾Ï³Y"(ILi5? Ð(¨ÆCÞ19q7–ýì°à +žŒ7¿þ0R™Ö®úb˜ÊL®†Ùµb~×aÏ%7µâ_yXt7  ÁW ÞÁíT>2Q%O¸Ðóܽ¤D‚FÖ~õFìG¬¦z¹àCVEÏ·±µªKûZ1y奈@HäÔòëY{ éÖ Lz³¬q‚¼W°ÁÅ—n÷ý:š³^óH³¼RæúøÉÉx)¿K×>Ç0÷`ÀrM8ºÜ)‚pS(Üà ¡Ò¡Ô¿ YÊQ >êä´q8ìªú½–<û˜t¥kjˆÐ  ²F h "»²Ìé)!¯ê.f2ûTb„2¦ ²Po29™{ &Ù$S=}¦ † Lb²t­ =zkùw„¼Ó&Èá]¹z†,­.Lµ\VM¡ÒÀäóP±`T XÄI'ªrM1â?Y[ô¤·~£âp–ýáÇ{ÞiÕ`ÎÄ*F#õóò:'¿yv=¹•¿™Õʆ.n9éZùÔ88,u2êÃ"{}TÕ¬ö3*~8ˆæ¬Š£áª ¡Î…Ž*9Fª /[s «†-ƒPÊi(¢£VLVêe`²–ËÜ!¡zd½'°åBw4RM6„Â8%ןEÍÙŒ eÆZ¥žïi«¢’nÖÞè_²ï£—r%“’QN«E””KÓ¹<8²UBÏ:½éY¶”9Z¸—# z Œˆ*y™C$œé­×¿+½þì¦9·'v“µ°FϼB DY²+`£Šp ´1ËjrgpJÑÀŠºó&crFQ¡â Qr÷Æœ ź€R6*zÖ„`ƒ¢AëòPæ´Ð;ŠUGŽÊð@«!“JÎ=ÀŽZS$ž9Ë©A›¤,Ø`cF•«ØþV¦…_M`¯´é—_Û;Á-ùìkSþ'ٯó떕Æv!Ör½ª%[Õ¹áë2µ°ª–šŽišÞýXk)X~BC×(IŽÐ’Ç„¤éÓ›^Èêô•b¸KyKžÑè,HCa5ËÄ–&à PLÊzÔêÍÅ@ÈmjE}XrÚ*-M³ÞÓ³Üñ~(¥œ£Ík Æ.wû^™îžªDUöÊJUæj*Ó_¬wÖ{[ÍS²´–[‘ @€ÉÁHv%j™ÓädÔ³bLúéMÑ  ¢6õLre É$ªøô\¶¡ˆ\o¨lYµìsÊ(`Ë{Š`#z¨2|)EÀÝ›¬ŠÎ¬(iR–Df™R 4Á&…ÀÛEk É{tLÝe^v„ÁDyUHmŒwخĵ֒?‘œiè“3JéèþMTéf ÖmdŒ\A¯çÛq×´û­²1’²Ø@¾Š>|õÕWó_¬\ûeí$’¹s=0öv„ ß\§†ýDǸ²¬ÂZ £X6”0nœ„ËÖeVý`;Š,'l™uY\p¹á*ÊÞÊ;C>¾çLö_H=DÉj^+ð SNÀ“³ÎâB¾×ð°t— ¬Ì‘ú“Q\ÅïûZ1-×ÀàR0×WjMðU¢ Ræ M­xv˜2#œ¢Ø’Rùþ¦á’W~IVT-Jž‘Sªˆ® ï{±P­a+©›ö}%)àa!5ÅXSÛseciqÕ™õ¿" ƒUWL™2Ê0…UAö^’vô– MTS·*Ãȇª¢ÎY@‚¡ œÒ²|<GR¤¼>$u"ƒ ”<¢niŠ{ZHø˜ ! ÂÒñ‡µ*HÖÚz‡M0ÅMv?§žYP,—+1“'ÑÖ©^ z®¦!%ðÊg˜“'/ULÕµŠó‚9¶¢¾å…6J¿Õ®áÔ¯}¦»Â­Zö¥ÚrÙk³¾ôÜN³~ðé²q°ýöű$öÒ§ëàÜ^H‡Å¨_ÒÃŒý̧s½q–WÞz© מ»†Ñ÷\!´Ä(*Ù}Ô&:_ÏLNìö(Fbo›¼Š .d=b™õòܽ®1Y”6b%`zw[=B’ÐŒY@F8£eM‘0Q\lê¤Ñ!#z§QÈR0¨Ä”hÊè«B2ÈÓ Î VrªÀ}÷fësÂSŒ(#‘e¿²7Xµ_œÂ ×AL‹wFÐx×2F(*vnòAáðÐu)…1P·2ë½á¢¡7DcÏòé¤O¸hê¼ê(›,§–µ×M@cy Q¹©ˆÊÃŒ¡e’À”Ñõʺ§+(˜R¬>´‘PÖîÚe ²6”ë’ hîj`.GjPšl'ÁÔ™ZÉ0ÀäDc¦v3ƒ9PHÝC‚1ÌÂÁÆp¶Ò³“Ž6‘e& æéA0 ºiÊÙUfqF™µÛžÛõïU¯ômá6*‚áˆj_,òÁÆâŸJ—|ÕçÀ‚'Ê×óϵë”U¼-ÿj],ä5QK ùhJ‚s¯½:eµ85¯’¤‡ölÀ AHxÏêÈùyÄ~ñeI½/kA0k°ÔG¡ž¬r[« ½›ôñ=a+[¿\òÂS—¿4?ZÄ?áà>lä !M[ÕbÍõ4bôy­½™j†tÉAz µË&å ©(7*`frC3€t˜c°Ë=F‚hO{Å!Ц ÁZYB_Ö­ø<¼|–wHìE§G–rCrWwõP) ®”9ö;ê;®uWŸÃÝ0Oðè}’ïØ'õI}‡>Ù¼“7Íú}‡¹Á`ž* š:Î’¬dXÑ*;) 0§h{/žcʈ¢KMqmGÔ`¨|Š*ó ‹ÀZ5ŒfÚ¯®7™±Á ‘•ZR­Ñáà,´*­N§5X€‘¢Ö¼4 DCt¿°˜ÐÌ#ÐŒ²ÐÄœøXW4k;e 6Í  róÆfU”"Ç7V<¾Ô5Í*—5ÃÎ$<¨'äÊýâ™[ö|n4Í$_~ùåõŸù­…Y<ýÜó6­–—ùz/ÎøÊL‡’,S‡ªfz)þŠjYÅèö"Â*ó{úbbI¸X´Ò¹è—§u.¢[â Í‘u»"äÎQ4|h9zV¯eˆCòTé$ÌYÁ$ËÎd¥5~+Fü“C © ­½q%¤¼p2y]!eaí€`96ÒÄLIöbÐjé6]ÁÌŒD.‚™+áeâ›'Óa> >ŒòVÕi<§#—,û*¾íå‰Fò[&죬©—§==ï€w¦qÏjeiÓsaëˆîÈB†}ކÃËš«‡ºËÓ”GôÚOŸÕÝÔwð]ðòçI¾C:ì;ô±3-»Oè;Î%’a]%Uu1Ï]q£\­œSÚ`Èò:Q®7©ÔŸ‹LÂ,•ÎÐ N5K9|®‹ 5²­JçªLh èĬުd‹Ãbg–\¦Éò¶èh $àmÖ{.}nly˜–#F£5 <`S uÊcRÛQ-³ŒÒ‚Ì Ü¨$#å*½°–Iµ¹†*'¿C#u_ôì4Ëò’“0owÿÝŠµë LàØ?{©LR|ÂÂfìs 5|^¤ÜY£ÖyºŠ¡zßÊ+Ï1`Øz)ÂBRpw$©â¡Ù©@ è “’ÜYžWg” IDATäŒà^>{t„£wê`È÷8~Hs¶ÙTHŠ‚öᕤÐRTg½v¶JÜm(cÕV1 -Ç ÕšžJÁò¨ RŠhŠÍà(:] ,›Z4ô0Qó+‚uÌ'–þ_x˜ýv©ìŠŠI'ˆ‹ÔÀ0ûÍ.ºCÊZ•RÇdÞåbxÌ¡îHk~‘U _>­|WŸá>©ÌúÌû¤ybß¡Oš'ø}f}âŤ¾Û“Ép¶c¯[G,“'(ˤGRi{ŸÝz¥è[EmªWLèu3É8HŒŒ“xÀ¬Š¹[œ±hMlAªåB¤TkffNN9ª)436Ê:,Ù‹¬G&!5†uH‹xÄžáXÛ! åXjÆfѦÌC 9-ËW‘M;Ò*³ÚF %ŒË2Ùd4cÕ+šŒÄ¸ÛöÖ·dÙoÔÃ$ýr‰<½‰I›òì"½¶Ëý! ÌüƽKX¾9ÉEfWéK¸rQ+–lnÄ‚"—Éf~#Ê;Nº —d©«T0…ÇÉ}{‡wÍ}a`ßSbô¬¨b@ÝÑEõè€Ï1 =¢#wuébFïɘ÷˜'Î;ô'“þ;úóÞÒ[ç8­4¥ÅÝÈ‚-(UkÅ6•Ür,º,ÜrŸzÖ?R™ÚnGQSCÜÅ@£lbdXC&²’lU‚F4˜É¨ N3³Ò(9­ÉzX©1I ­©9 lVŠwW 3§eÉ:51¢±í\Ž Ú„Z§¦|M¬1⢙Šx±ĪW\½üwBYLtÌæöãäà6,û >`ZN¶T_yå•5¥ž{žmsŸ1Ò‰^ÍÔ’ò6,AÂ|/r w©µVÖ¹JªžþøG$4æÎC: „»eH0í´ƒa'É ¨fèµè„|FO%L(:†Ï>ìxNT{‘0Ýc¾@ºWR%jëŠëïR:MØ/Úçµ^„ö\mŠ™•Õ/w &)—•PÞ[ÛIÁôÄó]ÏÀ2ª¤#Íz-G!é™ÁÄу0&Ë+¦†°,¨`ŽÖ“Á>S–;‰*k…jmZ|#l°13ðœù"oç˜ å‚j”Ô“-Cïêªj׈”jE¼[Äž„ÁbÖ“I¿ØÁ[~´çdòÕcÒDf¤T¤œ1µB¢?=‹­xZíLò%Ìdàˆ¥Tô¥gTëj¤wM ­ƒQ݈ªìÈh­YÚúfåË7*\F™“"­¬Ë`4Y£´gY°æ Ý™ChÙ2O•h2S› áÚ$uÚ$m²¬tÔ¤ÌMËI1Ë»gA±V—š2P$[.[Æý;~'¸ûZ×°4‹9{ΰ¬[TÕUô¼zÂÀ̾£±K#j9¡Mƒ>twÉÃÈ¥Ÿ“Á ™v6:9"bÄ¥‡• ¼Ã³£½cè^övܽTzÝ+êÎrE}Žî†×±ŽÐÐÀHAQ©?)nÕ9—âÙètÓ£Úäá)P H[DrÈc:SRë!+Uú˳®w^—ŸÞe©’o™-ÝÉFÁBƒ‹=ó—ì/Ô*`hÛ³®Ž,)iÈŽ^„;™±èîŠn®ˆ “ Pty‹TÈ‘ÄzW‡Üᎋ ÏðØá"µ.}‡¾ÓŽ•YŸÀ.†­ïõ¯Í-dìMjtSz™!ÈR)^ O“RÝj"Ø*¬šÓSæ!h*âeQw‡¯v“ÁÂ9eÆ\T ±5Â,hN&ÛU8Ò»ûdÍ$XБ­2‡ÁZ)âƒd­ÉJö€‹Î\õËÌ`ª }3„{7Më€Á&ÊdÛ H½Ãaéì“)¥²Îq³¬Xl¬¥TÌbUþóöq_"¨ï(HZ ß>ȶú8™ ŠV ¤‘’r3Ɖ–¸è~&]±Ó\‰-ÉŽQb0s¥Óñdràá)ŒFtzïì³¢#º|F…û<}̤¢»­Ò)å3ÝÑgu§wô¡tÌuèk¥Ž,ûçYU&‹®V•ÉÊO ŒTî,Æá§1raÏ…LÑè Ï0¨Btª¥îŽÑØ,B$l=G•LC)4Âë-E =5µr´–«‹Î&SH¨äx.æ|í”H^Þ9@´šŽ{LlU€;£ËAï8M¤‡)ä!x4Jr°+já8u BÝò92RdøÔèñ`¬f·C<àÅÃÊ£/~Źcž´¬©ÔM™ªÆÈÅ sžäÜSÑ^Ãn™°x&iÇcxë«çxÙÊiºˆhp×0‡‡ÌÙYò˜¬Á¬üÓMlhùQHùLѤ0#6ƒ@kdˆ¹ø¸—¼¦Ñ3âb ȉ^5‹ä-Ä1¯4ʤ9ÔÚ(…ƒ0´,5le¸3–´Œ,'8"ƒ…ívêžB+Á1]óã`³ìwðÃrÞÃ¥–Tùñ¹jnå¿¥ÂìRì4“€ êT-60ývÄ^ó®…OÇXb)‹¥ß=wtGwëƒ^ŸC¥‡Œ¯¦S/§GD·º—¦»Ê¸Ï°-YN”EqëV¾„œ‡T}¤Ö‡UœdaØÓ™%¤ØÌá]„ÑU‚!XºŽ´€,LÅ—g‰óL™‚±„üFFb$Þ^˜§‘Ée§r12wiQQj‹%c.`Q²Ç`¨–Uö®èì€aJ›n°B.ý—Ëg‹¬,S64ƒL ÉVkféÇ@Ì¿Ãí›e¿mX²1C£\ðs©cÔó³²à¹c¦¾e5*(C£ƒË®óC“©¡¹:sÚëÜ®ÃÔgD‡wöaç>$íÒXZZÞ-‡“±.°úŒÞé=º#ºæ x˜+µ1 Ÿž„LZj…Ä ›äé¶—9(WÑ–5,]æGiÊì"è&UB( 8)¬բ ¬#×ÀÌ\v@Èb’YB€4»ÛRé7_Μ#Y"K)*ØXÖp߾˴;¥Ï^¤ÍXsÏ#_©”•¿zô’^¨–– ÿ?{ïÒ+íº]1ç[kûˆ$|âiÞÚH š4ˆ û@;à‰)i¸á\LhЀ4 ?!Ñ¡M‚·¹Ù ÅH(Nƒçà½ê}æ4Æ|Þªµöå'ç|ßÙ;~õ©T_­ZµêòÖ|æ3æ¸,uÉ&ZU:Í[oÔÕ­[tàj—u—òuÃýÀºé|¹ØæuèžÓ°+°’öP°ÙÈéŰ¾jwk¢Ð¤)€±ÏÀ|ƒ§é©®x35ƬVìId&Ì@J‚é:‰ e ÔQ )B“U+3(– ™ŠnžLOÄë`Þ×Þ”X½àЪV”"ZÝGãHé@˜-“èˆè8³¡ˆ@ŠÞÀ'· ÜAfȨÑw9UqRÑ?ÒñÇ•ýc­1nŶóðd Éç²ù퇦‡Çv‘-W?Ë‚ÜÖ¶¦6B2½rìÔû]ó®á§»Iwß]m%$–ñt±†…­*f¯»—g•Ö©uFuû²–Vo É6»qúð‡"IR)äjfS’8&"ð“ßÓûY.ß­ÈÁEZÈ£ª$£à’ 6‘2WÁ,baO¡mCËXštfGÈjwÇZQ‡Š(±„:O¿­ìÏ{‹¡®cÍúÑJ$Ú¾˜ Ï¥Ïës)¬²l­SöãáwKd«ºUZ#4åÙU½qv©+zݸrT¦õbôœë¦µËúù2ìÆ3¹nªÛùŽ×cªc<Ü•èQÇCÂ!tËnõœ}›P6P™¥k6“—I€ZÛ¹GItáD‘¥¥|³BGÀÖL#Xè(EáHz"¡:2â ‚¼w”<Àe!"ÑUŸG¥[{´áPf¡>Å)Åê4}+ˆäMT²—Ö+äApá•ÍéRÄE`kØ<‡ûtÂùMι×!BýãÊþ5eÓcžáÚ zÙá’.Û€fîSí¾µÑMÏ!W ÅDì è5ý» {WmÉû‰ZX'«ÌdÇ:ÑîÁGòn¤8¶m‰)ØX¥óTîÙY.A§l м:¶ŠB‘f¯O8‘+=¢ìm¥2 ž‚ìnƒô vØQJNRîVQMDwE;¡Âˆ …ÁaÞ]˜uƒ¶¤E AËS#BmCróá­n©ºKa(f &ä%Ê®v¡§/¬gà.vq Ò MX§™Žc¶N+’ CÕ€Æ^8PŒÐ¬Õ«uo•vYo´q˜uè~ÃýÐzÁÝ,õcºõó嵯VÆ:´Ž^nŸç!%‹è”-!¸Ð˜¿)ͪËk² äNìB¿1ÂÚÚ”…{àHp¡„£.²•=(w*Ô(QÍ´ EuÇj¥x„æ¤=±ƒ°¶^) uG-–V); o¥€ÅbŽß§¢EÆ!¥TìƒyÓ dªÅ¤føê@(Og–iDòF”swCu‚o2ïàÇV3þÈÇWö}Ð¥ùby¿Âù]lSÛ‘¡^ÌØN,íÉ£v§^Œ®`»mwoŽIÔÄ[´=H¬B-uc\…Õ:‹g¹ôè\Üþ_¨ÓìF ¨ÆZ¨å:Îî>«tž¬VZEŒÝchëNav¢ZcùÊ€¤mlg…™š¶y‰öu œî®h­.A£Á)ÛÉôA‰D¡³½xÈ¡Æ\»6ßQr¬\PAu…ÂÖ Q\µŽFï¶Ëý¼õý,ªâ¼ëÉCÕ{÷ do…6‰È.eg˜ ?ª´¨v¼`` ‚Lj4ÁqœaT§Î~ál]ëpçyL·îþýLœ·a7ž©º¡º²›s†”è`'‹ê­­±š—ÂÃéù[b[ÚLäWA‡OÙ©.DŒ3E42ÁB 1†Ç‘D šN6ETEðд65£ÓnÁìŽ ZZ$²ÕB. „"íòYPËcðˆdèèHd {d‹¡¾#Uv•è;ÒÓÔÓ<~’`ʧÖ„·' ãÃSŲ»ð¼›¶[÷ñÇ•ýcÝ&¼»™´e˜1``ör-£×z05z÷æ×6~·çÆ|LŽ4d©8Iå‚~²Ju¢¯žý\¬595B×9ÙI–2¹Çœ½Ø…óÔy×*¨bµMcº{*·÷¤À78¦a½\þÂ¶Ž‰Õ A¡G©K-`õÙÕ«‘Jÿ%’„RÞ€×Zgiï%jï ÖgRl.LÏN*B b÷éò^>씾•^;¹©à!Ÿ.zn E°{葹ª ‚ݲ9{­¨B(aI2Ɖ¦@9ÉÎ_½zãìKµ°®²~¿íÞü†û»nÝê¤AØy¨Ã.¾ê°4INÁ.;¶í1` òQþÚÐÍŒÑ÷°;q™ºuùÆ °ÈëÒŽ )T1Kݨn­‡yY®©1CÔ©ðÚvÍâÀclùV±c2iÑ)%ÕÉ& ,¢ÔÍhÕR4é8ñ„uIÈÖ2ÜŽd[I #º"N$ªƒ‘°‚1¬ö gµ8„jX§ÜÍ(ö`2UßjÖãõøŠÃU|áAâú©fœøÿüÇ×kÝK½¦çĸD¤ ãëë}.nÙªÛì@ÙµûrK7ùo®÷f§¸â“½6%ÆjhWO5_{(ºÌnlƒï½*œ'Ù]Ý)aÖR«°ºÏ3º±N¬3ju•{ùý…ÔædÎ)>KU̇F EhFR¾ ‰è^@4[BçðÖ¨P!ü%ªh†,&Ž2ÆO¶4Xe+/”¬%‚¸"¢0µ/˜Èj¡ ¸OïPµY1ª±.†D/Pž hÖcÜERÛœY½;&°ÛïÕÙT[IKö 0Ý Nÿ¨m;¸–íû”za-so´ìÈÝú=§[?_p·ÿ×ö;žëÐ:Üž£ˆJuð¹ÊWX0jééôé“Y"Ó­_ÚÃFÕ£g˜ð›#IáÞ\GDµ¢ ØÈ"›µýaæŸKi+à ¤‰1¦ÌÒ®È`œL*Õád°*…\¬CÅ(õê[sæ¨ÅŒÀmu)3Ó³H¬‘”But/dÚÑ $cÌä™1Œ}Û͇k‘«YO@̾ùy=þÐã @\7þƒ® ?ÅÇdO;˜æèaÛ­0óþ¦å 4–9'»Í“U{<àõ¾wy|ªV7ZÔkp·êç)“Ù«Xg×9:ø.v‡µ°ëDU¯“«cU×ÉZX§ÎsX×e¯Ù°§¦F!“^“­ºå,Ï|6“ßÖ0b ÑÑ£¨í®àÀlº!ªË QZp.9»ó²ärT’ÃfrÑšx ¢Ód§AÓꊖ%—r¨ƒ=„,ö> nºØ 1ÊÄT/ÐØÄc&¼½¸Puΰ%¹6»q5ŠXöx&JYêBw/S” ëÌ.`n²i”¥ƒ°.ÉÈÌ.ëªWÁBŒgo'*T'im¯GR(»©y‰œ—7K#‰Àït]âwë¡PdåçÚ4ö u ¹Ä¶WŒŽ«¸CQMuGxŽr„gPTˆ…Õ‘X À8PZ-¶×cp5*±Ú²Ú^F»$ÇÑb÷bDª¡öŽDVEDG„“Áuíy{‰Á˜Ø„á°’ª¾÷l¹¥$éø˜«ÊeÚþCk÷e< KFñÓÚ­ûøš§6¹Š{nNf™$FØ–Ë®ƒJ°€èIHï!A^¬ÇÁaÓìÃÖ.L¨NÃ>©†ƒ6y±µ^g5VcVÓWœQN}> ×Éå©éB¨…³°Êü™¾Ÿ9pQñÚœ»,ó!ZÙì‚Þk×ã+9Ê™ (XÝìVE6Ùm.âôïØ „î=@µ>ðÄmØE”§¬^Q¨É5ZÓ¢ZhèÜïßdH›!½êPvl(š«d~·ƒ™ K4L€6s«®ªe ªº¢;ܧk.‡4O»©uk€âmÒ{b­¨~á™:‡3n3;}Áý†ºMÂÆUßûÆZ©Jv²¢C9v ¶#RC‘ ª•ûƒñ€¢¦gœÌ AÜÌL‚nW0“]ŠB)eƒ‰jd¢ƒ[ƒÚMMYW…”I5”r\Ì„QƒBÊbÙß £ÎúÜSÓ*êl;?ªå¡°.n CRÑê•õ “¨µ/Á.v(Oyfê Üy®>™RÞÅY†×­õçc§õ0ëñGiÆ¿…–üS²ï3D'êN[Þ6/t“}`<Ó…3ÛlM€þŽ3”0âͰìÉl«Æ9|,³bì³ÜïüŽVlç/´Ûù–qùubšýSg±–¬WêÅ5*¢aMxo R \‰3yÍ'“ƒ=æm†¿#Ý­ˆR7¨Y ÂÌ@ÑÔp tÎ{:ÔFÈB\E|‡&…ZÁ õ èJ£Y‹ØAnF`.(FÍhuÜ®‡˜ÁáøGRÀ¾˜ëFÑ PöÅ\Þ{5ºèÊŽ%TêÕ­Ì…šåðÙWa-¬Åê÷ÜxË Ù]֯˺]¢Sœ‡Öu¨’E>ãìx½'u|cld¹S¯€Ý­ïÝÉãû8èš.Ò>eÅYK)ä(f)«p 3>Uv°­cìNÂ!xHo°Ê‹ÃGM v+Z¹ˆ= (‹j²äå‘f¬#¢ÍGˆ#uC4쩹®sNK‰Ê8l~&&SÀ’ÕŒFz1œ†³môd°ñQŽWÙ÷”éýñG*ÜÏ}úO3Îþõ‡œ´ŒaT›†%Ž#VŸZ¯9µ/¤ÀR Œh5‘ÍB£ž™! ÎÔt»8ÌšŽ[«p_¨fƒ›w÷ªîSÁ׉³XÕ¾OuÏ-«7^ïÛ¥rg·câ.0äa£ë£Œ7{ÓÙj¥§¦èP··è\€{öDUG§ÿŒqsªÃmûæžw÷¾Ñ”1š0­0Ò¨‹EŒ*ˆ×tñŠî¼$f{*bM2*MÐ²˜õXÊ9°lhøôÍ çc·Ø˜Ì~+lU.@Iu2'¸%]¨B$U‚ B#Ue>;@U…´¤ŒIT±?›íÆì sØ_?E2ÄŠVÔº6X·W¤ZŠV-f±KË«K³IÆ¡ž©Ö›š>•=G+àHfÐÍ&ƒPÃl3zŠÊ½»/òâ릈£UãW»‹¸¯ÇÐdÖUTµÎ5I›çB5×ÄÝzêò9þìf^áéh‡ö%VqNõ™ZVÖRW ì„…žþ=¢¸ æòèSÿ à˜fq­¯ñ¶Q Kì™@Ëø»73»:’=Ã=>I“¡¤¥Å8,âµÜ%Éj¦ëx¡{6ïÝ¥*Þþ“NT+;â¢9*.ëG‘ËHÑ’&£µhæe·P«*°\Õ.âå—F”z;‚¡¥ÅªPÝxÞéHSÖ_°n¨Q™Žèôõ@æ;bÁ½90X ë ‚•x°w¦g¿ IxÆö4õqK™EFXìÑ2…Óþ0Zh–)-d"ŠæÕ4Lo©(‰Z8ˆFgÂþioa(Ù;g‘nA­»„˜urÐUU*sœ@T£ dä-Ž•ãÉ&²ÐáKF¡y W$ш4ª†f3„–Ñ7´Èí‹7ô¢ q,´Oï€Hmÿ •ýyRúîÊ?" û"’1´aåY-‚GÂ<984ý Öˆdc¦~Ê>µ¿®dw‡y ª>Ì8î®ÓU›ëdî»Ã¨‹ÝFÛs­ZZËnŽ—FÉ·°ÕëìsEW¯…^½ÉÕÓ)êš—^íŸ&»ËžZ ‹@hI*tD©kÐv`‰hIBÈÈL(÷*F´4Íû†¹š@§ØÞ_ïº ¼¦¦E²T®ï .°‘UÊR/„}&MåÇ.V²{Hh ç &¹z…Ç«öš  Zâ‚$ÞUu‡=NT Þ-hEÏDôÀù‚WÓ`g•©»u·êí9ê•ÚÞëo80 sØiG°÷õè¤æ™‹iù³fŸÊóùõöÙ Tw“ìðÔ4Ìeàfwâb¼#¡»ÁŸK$%*5”„]dèÖRDCTݳÔÅ,¡Ø¥[‡Ëz7–õ‹éI)l-É<´x}ÏôÒ„mSÝ*Áª%öGª(–šÑ¥67T!ˆ^ªY[Œ¦j]~˜åø•ý*èW5N¬öÞÝò-°¥ÖÌ IDATgÌH,,áèHÌÀy"M— Àét÷#Ø›ê©Oßìu÷œÓÂ!TP³³{¸í½œtêð6M{¾™ì«±ö¯´Jc'P,ûÈ–‰4Ù×0gà$O‡RöSù~,KóŠ{wîð(UQAFiTÆÜ—º©E´&.Ä`VS­¹=t$‡Cã1D5•Þ¼'œož5ŽÞœŠ;àÁiO–Ÿ;Юf‡g×ídÁ†‚DØÇ±lÂNÚ' ®øeÔbBSÍLjªR\DQ+°²‹náq¢‹¬T¾›:yCâÒ匤CýC…Ü!yuC¥¦|§:Ø©Š‹ÚxU|z|jÉ’Q/#G˜ ¾5°QÌœÀØæŽ°mŠ k«ìÇ#Ù<«¤RXKA ­pR•d˜…#"ÕJÌí b@Ê<ò2€Ö:äœ]RªÚ‘xvîõçØ:”дMMw3äË¥Ž*r‘l$¦ÀfU‘¨5ks@¯–Ô“ÛéŸ.Úv¨uŸXtr3XúPîŸ"¥Òs¡ÿrØŸŽ¾¿ê~’ A[„ÛTV@`2}m lD|rƒ]-‹º{2.úÓžÐb&«WÛhõÚ >Fší–fß¹¥=¡e[kÚ21¦–jmµj³ŠkõSY·fµ´®V}Kh à9étˆ!Ì–JŽôê„gŒSt%•RhHeeR6aR8…û¢®_0Á±ú±Šl¹[š@O¤ÙIBižÆ8ã›nÇVDK‘$ßOÙ»¥I¢ÒdnRB8Ê^YÖ!CÛÄX†An<Ùë@'׎F*Â#Í•¨ú†u{¸«¯Á[ìòˆ3{§7¬u Æó‹j¢Rrq§³‡ºÞ㣠ˆ.îÀ^i³‡ôûø@i°«9€ ëÍ“aO†ìïˆê!›í+Á*)D1UyÕåB§¨‡¸’ Œ]CÍ/úì1òÞT’Ê‘ýQ!L <»;`—{ÿ“Øq"牰æJàˆ¹2!:úý.Ý|†â›ó9èõU÷»Um ÒØK†°ÍîV (ÞIv&2"¾ƒ:¡|CgœæýªïÛØ]üØÅ´‹/ t&jf½›tË‘j±Uêb/œÝU£/<,!Íwt·^eÏÂípœ Ö¾©éO]ü#j;#Æwpáí.ë)ß„þ¤.^Ç0Pâ©Ó|[Ðç/Òõ~PÄÒœ–$ ¬’)7ÆÍ¸±õç†ýßùÁÿõ‹¿ûïÿgÿÞ/ü¿¿øk¿úkxýîËŠ/vîßÐnÝG}åë$˜Ès1í¼‚ÌÔwnêź^ÜVˆÜóRJƒÀ¸m÷P~tL»ÐKöt˜Æs#ßcÔ>D*›í^ ;÷®­SÝp<÷»Ê¼€JTêMßòu‹ëåhý4i`óçúÒÑ42.°0=» uÈß³··-‘Äü9{W5§×[°aŸD`õå∢P¯aÏ’4}QD(È]ÏAY09÷÷JãÂ}îIæ™èŒóЊ1Qbl¶™‘–5DÞ|cî©up¬›ÖUÓñãu½¶`Þ™n³ÎÊeÝóRÊ76Õ׈#®êïW÷X˜¯-Y?}èW¶#‘žŽl ~îFެ ƒ°}&Õvß='gYŠœâ~­ºÛr½Ñÿš©Kë—’°^Ý‘· "‰ ƒL®@&ë+p™B*nìnõ=yeÞ( Iaʱx$&¹K€¢û¼÷ºâ©>Îñ!*û5õ•O?ýÔÕü¹^ûÆó8ó¿ü«¯ÿØý7þí¿ôóúù?ø¿/tßôƒ€^O|~7Èî¼súJL#gñ3?ƒÕ¸ÙŒbÚpH]êq9¯µ{v'aï\=ZwKÎnª»£EùƲ™¡-«6ª^3Ví2ÈŽ*V[”ÄZêBjU•ØÀSÛ¸SŸQïª9€fÒœ÷¼Nl›¬Ô¡5³>cšÅÁŽî°”:v§ÉGA±¡£øÀüöÅ*"Hà=40;ùU:ܹ'QîâçY¡Õ9=bÌQ<²L‰­d ;vŒ1Ïš2ãsÞek%šZWh¯‚8§éæ:†›8ÃZ¿vb%V¢o¨dXea‘Ó6[}iy ){™ö99(qŒ€ Có·.À(öæi#écÅótö6à¥"¾úwYtǹ÷´þû7­Âj"0]¶¼ƆsÈQ‰e£{½ƒ®ÝÜŸâ›Îý˜YëDîØö¹p$åln2 îÍáò-61ăq bܾî}úÜX¢¥o1¦N Ý®·D²EñáÌ©õzÞq‡:¿Íh ž€_ùì³Ï\ǯ†ýªõÏwF5Ÿ¶óßènݽÞñù爠ƒÆ}%‚ ‡‚q{Ñ*‡É"~{q#0Ý{^jóÃ5¸L›ÒÞ¦Ó Ãp&~QªuLîÍÝÑ{dºPµËúÚÞ2¶dm”£0ª}ûm'ûÂ26²¿çšòÁý‰ÎÊM¡ƒÀ`Ôðrþr…àË­ƒt袭7ý öà”£’†Am¼9{î½…Š–íøOìÖU@\ÝúrÌ)œul’£ŒiÜ×Í֡޶¸ß@ʹY‰u°Rçf^씦)‰\7Ýs‹KoKÞuÈéHrDµ‘¥ví.j îmÂîF~vö›ôWë1yX­=twèOý;Ü›cX¸ÿ!0Î$üVÌ1¥Àص-ô²7|ÔÇïS,‚Hr¥5MÜ©}î©w^z?ž&™´ 52¡ÆhBs€u<¢ƒ•Î ÉH5Š˜”×5h‘fˆK«²(´t¸k_\¤Žšy’'⤔ϋ"÷©óaŽªA½ÎßùŸ~ç{ï{?÷Ïÿ^ð»ÿÇïþo¿õ¿žZ$?9oÿî¯þÚò_ü§¿ùWþÃ?û+¿öÝþî{z쯯¸y0†ÔÎP_¹uF upëS—G¸ô µ ë˜Ý¼»%oUqr‘•j±{wëËÉ\Fê/ÓR•Î3ºÚäÈ^èÅU¨ª:»»“•&ð¡’•ã¯ëcöÝvß·ÄEV¹J~³•¬k@:ܘÂîù*Bš¾!gU‹6Aà–›Šc<Ñu]X`0$çùòêܧNÁº§)‚ØKÒÎ}V ½=²8 0AfÖ”ë›ÜÉN®è75=…¡5rt¼i’+à` û;šcÈë4æ˜Ð;c,ŽI€±©)µ´}§&=FC»¥&kþî”.n '˜W»Œ oUKØ¥?÷õÜ໣-ÝŠ°é'(Tè°Ø¡Pa:¡@PhœOÅ¥>¦Íg\Èûî ¦|CÑPà¸F¼óŠHÑÇÅÎ)n„Ý={“'M]ã†(à Ü0ŸïMTÌXA!¬U¹¨“:‰EK”?Öñá*»Ó|ý{ÿß÷~îoÿÜóïüÿûŸø½_ýó¿òýŸýþºU€ßýü»êÿùSé_ûKßYß9^oÙyå×6 Ü™™Sðp¨û«^_ dŠ`ÞÐ#cp˜ì`ææ8®ÆÑκ›=î¬WGïÔ¤–£šAuw‚ƒ­?¹ ÇQê~7õµp¿£œ±Œ¤³Õ«Ô­:Ívo#3ÝÝV¢Oó´Ž7ëàpO «èæDÎuwÓ†V>q`ÂŒlµ¡gÓø¶“ø×ζ 4wíšÞ0Ï®éÌh´]¿âXê/tîWéÙoú´ÃØ4Ôî.’4©Jx*€ûÝvô:°.:ù-Îè•]iš¬2£Ïp&ÌgŸP$Ó%oZ;A©Ž¨£ÛÔØýIç€ì=<ýBÜ_Ù^·ìÞ£§–<6‹tÿwƒÍó¹Ê–~±)ã|Z6Ìjõ¢>Åxú^Ù1튘Üûi©P›u*¶.îc+¦#·Cª·n=Ø‹G²i—%_6â­iò£µb„H2¸L*€¤ùB+–E›ã»?¡ìÆ ·ð6¦\…Òq’÷àIœìOÞ 1nøp¬G—u |ÿøþ÷ëÿý?yÿÅã?ÿÓø9üà÷þþ§Ÿ~Jà³ßúìOüàþÝ3ÎûËÀ'ç'GÏù¡ßªß¡ó®×;£À¡O#NÒc£SÇŸÜ쵋\ÐaDyl£˜Ëc ŒÏx êŒÎ a¿Êú.÷ aX1*tTµ¥®!°÷ÚzTk‘Êh ¡·÷ò“=æáV÷Tn!UOšõýã>&`0Š"C´µq=80–òªécéå>ƒ,ûoôö|Ð@Dl}Ъ›ÙvsŠ#zõûì|ûz;€·¸Íýå~ûgn^ÿÏÏúYßè郯‚?ž#€¾ßqE0»v P›KŒäϨ 4·‹ú\ÑîЫ²ÇF`U¿ a@› O—ÐÏ2%A­qc¿@öõ$I½ªgi{¸wwKíaà€0æáÍo+ûÅ\hûÓ[òÌgßÀKRă$3µ‰óz’ó‚ù¢ŠC33&#¢<_ˆ´çâ\k+u;¢W·´v碙êØl^dùÙ%„Äa¸ígújžÛÈJ]Ö³í–^*£<悯9I˜¤{ŽWŒáƒ3æGv ­árnFÌà´éäN÷$ê=oÐFØçK÷4;uùzÛ¼?޾.æG3J™öœcÐ8Ë€QuY(Dt·ó‰(DË}}Ó¡Z¢MñB6ÝE(20G]Ìm0@CI—î €ÊÙ¨pý׈C¤ˆÎaÅ<“d”dË„ʾ+;f"qLÍ[º¡‘KZÐ]:‰;q§ Ç·y‚z•éÍ”‰×Ûë¿úü+ÿí_ûÿñŸýë¿úç¥~v€šçš^±>yýþÏ~ÿ7þúodå_üÓ;µâm<@@¯¯xýCð@РЈc¨2‘ùÉ‹z±ý‚^¨„ŽÐý¥«6¶~Q_ö˜ÞØ€; K½6E²Ær°¦~ÁFž:{™…*¬S½°ªëÌF×’V£:Yæl»«Ìâ8Þôìo'œõâËú÷™‘¶'¥z€ìÖÁäÂt'þ¢nÜôZ'\uMâˆ-sÀ ¨Zb à¶Ž­cªúÀ;F›âb–¢‡AnÀݯå}·ñ°Öàe¢«uãJU¶™ûõ„À: 5ú@ó&?þåÅAštìÙL„â¤@MhÅÄL_l™™QZ0ÁÜ ”Ç,ú Ïüâ³ã©…Ÿ3ëéG›ëýØ2£j¦É0»sï@ ­KŸ4+®ÃNŒ§Û¹…²p$T gO±7泎 Ç<±ÙŸú© úCŸ˜=B)•ÊÔ‚yë³Ƶ9ñÈb¦9æÝf—B"Ïê{çbœŒ¼ƒ'q¼›{vÉÕÜŸ¿c¦ðKÿâ/ýÞÿø{ÿò_ý—þð;Ÿÿöýî_øgÿæg ûö@äóãóßÿç7ÿ«¿öúòú—ÿ­¿ü'ןüƒÿý0=à›Æ“y¬p€î¯ñz6V˜[y{Qí:^6„Ùzµý8.;ª‰‡$ÕÊ£1“1EÒ‰ŠhÔ©}GwúÝ´êµwkròÔ›S%­%­îFÆfgOZ‰•êãѳ»µÓ dže¯w[Ký–c1ª§©‚LXi‹ÂwM×V!é‰õˆŒ“ìxôéæ¿å+!ecAG9suªIþæèÁÄw‡îm‡P_Õ³@G¯ä ujæ>¢“çß1Â&bù0˜ÔÓ—}¾†,äî~¶5¼& ×8zƒQÆj†øïô˜§‰[&àJ÷ô²¦Ý)¾‹f™xôï@yÃ4É{‰1$ˆÄžbÄït‡s ";…ÑHˆ0ØNÌ€C²´•1ÓÙ$¥BSGkôB\¾dÒð:“@EíÌ®8ü9/^îÝ­5&D¦ ”°VœÀIÜ¡%Ô+±‚w ¾Õ•O‹¹s¿]ÿ›Ÿý­gâ#ö6èúï–5ÇóNð›u\{‘ôùçz}%€ Y¬„¥ Žc;vxé=8µÚˆ ö¯"eš£,"5zL¹÷×ÑJTp˜3Ð&·°Kj®½°Uª“Ð×iÎ «uš!³ƒñºZ«{™(f^öœâ Õm »˜<½vˆ—{LƒÀ…‰?®?q``/xšR®w5ýü]»,úΚ¾ŠiÀýô<×FluÊY!L¸î«>79bI]’œØDŸ¯:ü¢.•é™—ÎVÀeŠyš§y†1>3 óaF‰ºg å÷$/³sÃ) ïÀŸ·¯â1;ݯj¤8±±†MO½@¢ÇÀ[ç¸:ôw¯Û¶i #mBm><©Ö¬÷&D&ªüÙAD š/ÉNñ¬R$X€Fkûs,Œö¶‰!¹#’(! JãÑV€™†×ÑĨ§ý¶Í²±5mòw‘s& ¼w,ê$^Å“XÒ"îÙwédçËW àø`ܘâôÎ%æÒ£ÎwZÂ'ç'?ÿ÷~ñÏý›î7þëßøõÿè×ÿ¿þ¾‡ï]÷Á5šûFuîØÜ¾¾@#m †<˜ad\ÆOT”e¢e)sd›]¦»@Êî%Óª—߀¤@_|jõ1lÑîÚ÷DôŽ«Ysr#°°u!ãqj¹Î `ϵãŸüë£ ¸>ä3[ës«#:k×tŠyæ8n4‰Ûí tÕ>¸E§ŽLÂ2“¬0ÜjR´µH›â21ðÝo£y,½Ñ’Ûãÿ«{^³_çSÂÓ}€+ûu^Ý–ÚÖ‘šic$ªÁP6+”P %c/  ‘1zIy ºÍJGC­º€Dì€tµó è\:¬&-¥ymÞ ³qÄP'@»Ä!’Jµ_Á~ì­½$*˜A­!“JÊ3ú„ʨ:ux’wQ¾|›qöwÇ5jö¹ã4¥ça·ÙÇw??ü™_ý3$ïäÈÖ×^ÏþüóˆP´PÆwR«ùbÙçTá)ëµ`-P %F5éÕ°9I«=Űb¶EŒ4#Ó ½æëïÙéXo•EªÖšž¢SÕ©*õ[öç2Iã`eÛØd+nºµ±™€ÙáîÚœw6M'lçó’L%„ /äGÄT]ù]ãžÛ“=¸é.†³Ò6¦(ˆbø³Ìfa›$oPÞZ=³S§ŠÙ¨4:Ê,x)À– #ý\O!ýŒg«Ä huB@‚ñ°r$’ÀéÍ£¤yY)ìǼ»Þ8Ð)¡£:+îÀ\áÁ)±¤{ô«t&OévO|´ãƒúÆü‘~ÅWŽ:žiìÏÇÂ~šç7¡ï¯¸ÿ!h&ã“›ªÙ«WÄË¡^ª¤ñ–b ½°îˆC»¬äâA¨vÉîq±Võ¤Òa`ö®ûuzÙ@/UÉBÓ.ÚN 'dì èÀê¶©C¯Ve¬ìx´“S¹GŸÛè˜l÷Übè‰45°Šh6b“^b»øw‚~«äyÍ9Ÿ`Ó?ôÔ§w|aÔôsâ` ’ —)ë@ ̧öŸHa¢ó°Á}]O×YĺÁF½ÅŸ»û¿'^¿âã õmvHãfL¿¨™Ô6²×¶ÙñÖ¤žQš-÷½zsmé?f¦·ìˆ }Ù€û°®ÞB2~äØh=I»¥‹Š„8Ø¥@ê&RÑ#*{@æãñó@LjÆúzOI²V–é k¨™œ©lP,/í”[+‹X·¸!Jë°Ž-8̧‡HvyÝR’e("$ömUÝu­:q–pÎä=tJ·×±8ü$ŽŸle°Ì[;z»a/ÍÔ‚_µ |²Ž€þí}?>'ò«×š7æõŸ¿Ú] ^^°’‡L·ÐV‡:yý²+¬YŒãü5¶f¸1FÕ73õ˜ ÞF2£iÒ«°V¹swjך¶ÝëŠFã >¢ÒU>*u7 <ÜŸO•ÝÇ® Ïà¾îD7²“&§}Ÿ®]Ч² Š÷}zïý¸Û@š|‰_šb`†|ƒðŒ'âTºËÏjƒÀå{#0_sR4 Á{ª-¯½€—Ù„Fc¥§_€ ô °Ò¾êlO˜3.æœÖ^.”Æü^+ßÐYšmJCâ5Â}";>=ÿØ%þ:ŵ¿³Ø?™þÖ† He¿Æ½Üµr†¨Dk—xÊ)åAIUÈTyT8à(VisQ ”׃1,ccB—ŠVü'i´]T-¼Œ²Éìu8Œ G°pu Ú¾iíbÌ/êüœ 8LçéËäXâ Ü÷÷íüÖ¢1_ßS¿+Á¥_Q %EÄé1 pe?ï à¸)ƒŒÛÔu“Ù1XÇ1ú@[$Jœp%ÀnìÚ?1ê¸Ä@ U¯3j†¢èR-t«[m‹˜¥ug{±Úƒ\ui¨Z9.áëPÛqðÐ}«ÞëPß=;€=)•ñÒ‡øES^l,u+•¶­ø\mßôé®éÐEMƒ¤O¯§>ýjügUÑ6mbmÝÓîÕA…#àÜŸ~iù¶?æÁ_qx©ädn´j:D4Ÿj«ü€óZ† ³lRÿÄÒiH;&ɾ˜~íÛ¿w"žÈ0דyƒ›ãX)|Í÷ëKkýÕnûù'¬ÇWŒÞ“Fg†ÙôõÞÈN «e1¾î5ä '=M§Á>a`oŸjSŒÒ“>ÖÂ1 È«ÃASÌjÈá¬~¾¾Öõ ³Ý«3ˆÎ¾Asç’ºC º§îàOÆÆÙõòúmž ÚNÀÇ&À¼ïn|ž}©ãã»ÃûÛC IDATÙ(מ÷Wrí£·í_{èû]Ÿ¿"ƒ$t@޳7…< /€À1íºÓK5Ls«Ž‘#µ©Z` @Ã]° fÅ8Ùîn ÒÚ‰H ÈÎ’cZUk¬“+´­›îu°GqŠJ>¢í;xÄ=ÉúÂÝÄ£å£.O>=Þ\þì»×Ž)Ä_Ö§#\Œô˜srø3oúôÁ‘ ©Ñ1ü“8sE?2‘* ™d—_•tpÛÑ@ÄpêG9ßZžÝ‘…ÍÎq5ÓÓÛåßOžù“&m{à ~BÐÄn^_ÈFÒ{o€¸ PôäüÌ}|þlÆùBµøÉì!GzØê¥Áž_P'бì-k+R«p£%ví\ަ}xæ‘S:$¢„Þk´ÕÚ¶0M¤ß vÆ 3Þ·úi l5q“z™ä׺;ô§sÔ5ÙcèûŽ{gWàÝ…¸NhÝuÇVŸîÀ’^~öÛг?ÆåO…õ]åýÒBü#>ì—þ÷‡Þÿ§ð@¯§^_ãåÜtqÕ¥…~A5³Çy±’¶ˆéB{Àƒñ¢§ñáUÖ{KRÍ1Õ:U§VEµT8/>Ìš¸»^ªeZŽªµVtÛD G©‡íWô êÆg²—ÍLÌ“IÖ‡kÛ[™R0ûû ±í§1)<$`ýälU¶¹•?_H7ñ*ìÖ>è=p̶ò¨ùhN·‰•WÄñï-‚…&r‡ë]æ—î#uñ:|ÙœrŒÍòËß@ý…°¿q”,¢o›:ÏgÀnæi^Š7žì~»ò^NK½GÚÏ„ä^#ßP×õ#|“6„:l‹¹•%Q6“ypái$æ`¯åÃï¶&ðîÞ¿îg(ÁjM;t_¥‹ iÖ 5Yðí‹(I@X}âníOc;¤$› oŸÆÕ(ò„NàNžä"Nà8ÉSqnéé=õÚ(ô'ß œý«ë©¿SùLZÇS/ïßýúÛŸ.ÿîWüß/Jœþá_ËOô Ð÷×,i{.¢MÊ•M`$qóÕKu3JŽº„Ò͹|îÍõ ¸oé)€2ÇÑL¯ ÓÕXoV½ÇÜk±´Ö’„Œ¾áŒÞÎ0ìƒ}hgq%ÖÃ4†@Fo —=E¼öÈØ©E¾~q¾GJŠËrË„ß/ŸAvô4žÓåc>p¡vOÏ\ICh¾Í;«™'àwÅ}°¯7ÁK)à¾øí®ó‡ÀƒÚÒ=5Ý`ÁÛ_Ÿ2ª=×0|žö &°¿Ý \—xp]øXœ.­ÖuO«,w¢&«èñæiŒÚrž¼žšöwt Ma .dÃ2.O30Ѽà&á6ònÕRÁ¤Ìy$°ÁVGNÊ/Øó…6šÏè ty‚Ж]Í4Ä¡ê%PêØË)ýôA!R*Òá…ÐÂöÉ8'y‡N¸[—§¦'÷?x‚ŠWaAŸ¼nÝÓ;K~DZ|ô¢«»þþöoMˆ’+ï§Ÿ~úÛ¿ýÛ¾ÏUš¿´ÓÿôÓO?ûìù²?»<|ãlö~ê+;üePµVàE’ɇÈ(#ã­@û:UZÞb6šRÛ—ÏÄã¶½|øíi³;¹Øgœgv¿ÿt½ÁȈ>Ô!©”àˆÎvÔCÔA%ên¡°F\¦žiãç›á<ó±ç–°9ˆ6P°DȤfBmÁ!ÐFJ4AßïV«©Ð4Ž;§u»z<ŒN"¢MdãÕY¿?Üî9¬‡ ¿A?úç À9pÛíàÑ5_𭹫K?n¨]—¯\Óqo‡aâzFÆ¢ëÁÇs±/KÃT”„¯ø®lè|3•õæö/¾Eþ‘¤øÂ}b£ð±—A±ðfy”äÛcßg Úüª}¿ž;_¿å'`¥žódæ¥Á®ñºžŒ©ômyìdÈSխؘBÒ!¶Š@· ±èYŒ%žŠÕY¼-§öû>ÍâÇËû‰àìÏg¿+ï/ú)¶.émÞýÊWgÞãò_ é|Íèõ§ê¦ÐÆp†gx0M«%‚œv‰–áø¿«€‚$5èÆXÓ=ï³*ˆh6 GÛ¼…½ƒ&öá={žÎÔŽ @H)¥ ¦B’%•Î#â&Û[GH«ÃEo¯/w>šnÀVãÂTù Áîð½´)ð1´Ríß,ÈRvb2˜¢O[vT´F³EȈ†ú_аþ…`\ºRKÊ H:Âõ„¯ëñço…"Ùްôeçsãg¬D¾‰Ô@ÇûByµ×¦ý×sWù7÷1$m}¦¡¤6×S›âèV…è­Ýì5ŽÕ>q¾øÚœx²ê)„Â.8· ˆ²³#($‚“€lF+D6²&,6¢H JÀ…h¥€b ÑŠBøw )D-?Â!°Àòƒ#Ñóß,ùÎ>#C!)½€ÝM³-Û—š¯d4æQ|)¾ns…/…\8Š·…—ÂKñ“Ž[áhïìö ôåçÅOöø@¬Ç/¦â=OV¿x|ÍO¿ŠÆþ êÙ4{›H™^Ý¢âjÈ9ê#Ъ”®uŸˆàr'•#Oé]§ÐZž`AÒÖoÄÁ¯j;æ`ð39"­CJ*…„2p„RJñ*¡ƒ‘µP‡o´1šO¿r]lµ©"Ú€µ¨˜Œšâ仨 LDm॑œw3C(‚&t÷:Fs‹0i/‡2¨J+KÓðˆ'·šIà†½è6HF•r?á|p{æ³yšÈüŸ‡ÖeK@7ä:])*…«‡ž#ö[ó…“ýùó4luÝ>Ô¼IþD·&FÂû«‚[Lª…DŒ´%ÿžêÐãŽá³?Vá^ÅÝj¹hAHÍìÔ5}÷f! ¸F7²g ˆBöÜž.ÐR¸Ö7B`é*ÖÙb!Ú•]Qó‡¢å+»î7¢p´¢˜¥lî.^ì9 D·‹rÈ~ŒæQñRU¾=m|÷ñ^WDÁÆâdZÜ “&VÏŸ>f䨒ßÞ<áá[³itej:5X6qÝ÷éÁÀ=ꌄ77ðús¢5çÉ=†¼x<¿ÄØM—ølPŒÖ®æœº/°™ JÙ`“­øÿÙ{×4I’ã€yµG¡téèºų,ÓͰ?Ì<2ª3äŠìÖ ß|=ÕYÙùˆŒ„›ÃXo¼î²Q½0¸KìÆz%?Av²ŸKÉ{1ˆG-ÏdTŽdl_ÅU]Ý¿ ,M¿¢ö÷;:eFSËŒÒÕÕúÆG2+y½xŠtÔLJye­b4¯ùs¹˜¿;²ÿ-,ä_såøÌÈòÿ?46ÿ×cNÁ"ÊÈùYÎîŠmÎÒ~5èl—S='8 =¢À9NÆ&’sÖú·¿õUAIëxÁ ,Äd3c7 ÓUüÂ2“ÉHbß|ò@y|&+ŠÐ#ö¶‹LÀ@¤†aÝkÀm.-˜p¬QËä Jkº táˆT±TaÛMÉßzä³Eôï”üîšyƒZö­!qÃá§v£ôýùHÜä…'Ýp’}Ú™§.>ËÞx/ƒe>Ñ‘_–ð}nîŠÊ§lG«J€r›<{1Îýô$º=ÙϹ¸OY=.“çw³ÏëégóÝïšÚ ¬;Ú4–ɪ)½Ó0¢ÿÕÙúe2Ï?/Ä)Ï™X‰›ÀQ"ìÓûFæ©å QŒÍUŒD¤£ sH|·aÍ“³›èHÝȾ‘XÅUü(\ÍÏÄÆJE²köhF‡²òk±è;þžÈþÍÒû[zöO·Ñßüí÷þÉoå}ZA]ʺ‡”q*Û„éÎgy¿L^àÔ»ƒ {Óbu‹µƒ±·aJg#  ðïÎÛ}ß.2ä9S¤Å°³‹tY!0¹È‚ 3 9\, ímì/¯çš{SEZgJÍ›xµnñuœ‘Åá¸AÄ–Ê ûí*] Ó° &$’Ìô0Bg{t˜tÞøz¢nI²ðFö^-k$áï=Ç#y¦ßÉã}Oµ´koFÉöj~ŸÞìÍٲРnš3ºãgšQñ $ª“×8¶É++19­H©^" “†X}åM@®Iºðú~#‡ ›ɳIW¯©wÞô…Ìîa¢Ð%ðùk×éïR=îÒ»€ö¼«u•»Ø¿ëw¦Ã]‰Oåé(ñq‹Êë¦ï *®„Š‘^«a¡˜É#< Žrs/ÍŒž¯ƒº¦ÄÚ\Éý®Ü›g¬O¬Bx\­Ÿ Ü/Öÿuü=‘ý‹žuכϮéóøŽ[-Ówþ&Xs øæËø¿ÌÌÔtP ƒTU,4 ó¸›ìýzIbÓ)]ÙUN@ž³‘Âéºkö¹Ÿ>4à þêSaZŽC~s‡r‰îšÚ!„(•C ’%¶ÃDª6}ÚyÏg¾ë\œ©öqÿÆïŸš4h± >â0Ô Rì—Íê636‘%®&jD‚q¨•ûl<‘½qÏ£q<ùɘ쉣Æ_?™1¡ƒ-ÆGö8Pг!ómÜ<\™[>ßUv*õ)úñnœÎöûöÒCt=å1˜ ýPðei¤¦E»Ø#¤ã+ºoÑg¤šf´‡^?Rß|zcýƒj¿™+‡U_åTô±çúþ ý«Ìºÿ‰Uˆ]á7¥ÎšҞ‡Ž§Ê+éH¬ÍËÒ«Td›‘#Ôq«n9mªaêØÝ]QŠâGrVråûÏØè=ÁJDÍ?îjýÈXýjùGÿÀê°ßÌ ø…p|¿Mú×ÿ—a½[—æ™&s†H¼Ùh å|‘ Ê0»mÛ‘t‡ØªöÉ}¯ùXy29ªâï¤IF½4˜{Ív"@a-j9ƒZÜa,*ä@™©]¨VÇû“Pãý–©›·ý¬õããƒö‰ôjNÚ¡{l ߊlt7’J—Úž#ÛgO`¼¬êÕò$ý~ÙY$„8Z3J,VGv¹‘l ø¯_]&*LrsÐ-·c³ã^ÈçcÀº—ªªG§t˜ô©¸›%= ØXô-M¿D¢Õ/˜nVý°ð‰HtɯtÜz¡E5‘7Ã>t|$×v¤Wê#‰HÆD<ƒTã8k Á½PõEbY}=Di%¯Ä•¼æ\ÉH\Å«ÛíDé«¥ôl¾Ü+ó_ßëú;ÿ(Õã/Ãë7ã_f{øÕvæíë_ý/Øï£ˆ¶¡xÙÍu¶*Ï"ÝÚ=&‰8ÞŸ®2níy¬õ-ÿæ2É#Dó0ËØÂ5v¾ øähÂ\rZvP2¶]d %dVßúšøBiyjÄ1c…orb 'ýeL@=yä±ü·Ó^.rŒ9‚d˜v'CÁ3íif>+k³êõèšöíÇxß§ó ;»ç¹6}Úk­â¯€€k",2Ó·ß½a#TzÒ»iÜò0ûß¼x¾VËÜ•x—ÒÕ÷)+PEësªÕiÐDœ>­š¤ªiœÓôåæä&.棜:ýM£³éhPžR]å飖É47„£o©Aí®ßJÒ8ˆ¯Ù7ÂÖ͘7¦Ï:Ñ„Ló3ˆÄJDò#›M‹GâÖ½ttÙ¬:7ÙEÍuÒÌLÿÉqí·Øñ*\‰•øHÆ +vôN’¬2:ÔŸDÆücýW±õ{õø7oÿ…GûúW¿XoŽuH^±ØqßÇZ¹{fǺ#ÅvÒ4Þ¶U4å‚‚p¬o è:;gŸÖ=KO=2’f‘ä®Zc6‚ì­ÒRqË%"7ÊØVº²¾W³ÿÂÂü¾1@h;•59S*V¾7³P¢ ÍÆô§ªNŽJçËXúÄ¥ÑÔùI ãDC‰‰<òöfϦœoy%ðTq¾‘¾W¨”Ù3+:I¼§ÕaJ†š>F.¿ãK*:0áTv5—^›À­³e¸;¢°Ó‡áªõéî«™–,D°3¶ºvÒqEuÿ³î)!£Ö,ϯä, -*ò³Nª`N+Rå@ K¢F…ÃAˆÏÏø¤Šu0‘Tz•”V96ÈV1¦U<²H6cSS3¶¯äÚ¼ +éD°'—u(‚˜°M ¸wK†!QŠòi™zm®«™÷Ó.Æ”k¼“+FøôcKõûø *ú Ý~ïFr„ßóMš¢.k;|·´œ Öñ%ÁH¶6¦ ï[e¢Õ¢…';È0|ËÖ$@ŠÕÄýÐ÷aAU›0.6î vdÉ•Åm€³”Bª2Yo&í¸Lýå+úÖÕ~<ý Z¥n“»ÝR-æ×û §E,¢‰Y 8uºß«ÁÖ-rNum‘-òNˆÃ¿w/°- ¤‹Ì#Žûü‘ž·s1é%d÷ýŠÎñÿÀ4feªlÂx=)Ë8Uùa`°Ö½•'cã·ØUSõ“#‘l¨b›™ 9$¡jl¾Ã§»÷|ç‘¿vcŸøô[gy«_Âà5¶ý®+w¥Ê2˜þ¬]i.~à¾5ì·Ry`½›ªZ9æ£óOüæÖÝ÷oU¢®Íñˆ&×ÆÊ³´œŽ´Nwú±’ OJ²'õ×&¬H_›‘^¥[$sµª 2½!V%æÊ¹ã<Îñ/dÿGq5ó…IÛIžý£*ɘña˜®èŠËH–&×—nç)CSx¹«ï^$'>—ÌO\ âZxå`H²Á] 0ˆ°#è@ˆDYi§± ýç«\ÄkVªâ<ó·ß¤…NÍ;-†l†¥ s?þ?Ú6>4Rcq‹ÖIÙz˜]G¼}N:Š<^¢¶ñ@Ì{Ú\wÑP%Y˜Ôr q§~gÅçsù< È`‡AH0턎Á5ÍážhqŠ|׬¼ýw È–vn¿oÏ©«ÛÕÕ¿õ4Qò5šYîí =ýX yZ©³²ºî^1†àê‡zçé÷Y>n,´©ç“óÈÄqð·¦u‡h¶tV`Ä‹Íë“”å­y?šÅ»b*=ZõlÍ"žæ#å{3ò£mߘâº=y%õò•šnªÙQª÷ÕxÞ±‰€h±Å?ŒQ=ª´v][›Wâ#ù±ÕÞáTY„2ô“Z§sü ÙÂáÄ Ä’”î‰qE²všE&¥ o¡ Pk„3CÂl¨w˜Ï ônн ôï¨YùK|á"2 çH(»N_#]ç¢T ;3vgæÒ l4Õ^™8N¥ç¨0²úé_o¸ñÔ°šD•#ÅÁrñGwÍ>‹—ÐŽ€T]bCøÃHŽþpèór8'7dž:b•Ž/Hô8§@o˜†¶¿i±?'3úã¡¥AZÍ;Óé8%ðÞ¢›†¾âxÒ¼9€îsžúý aL?k3é|ØŽâÃ5,ÑüÐ×úôh˜Šfzˆ°O›öqÏw©€‚›^opoàî) U½EîGÓÒ¢ÆÈ·ˆE³yûQÙ£Iù4W™é•`âÃÀ~9y0ýæë[iÞ„IamŸú+'6àH×Ýú½>ã9õ¡b&ˆË<¾Ó‘Á¬;ØàöjHéœýqýl\ÿ²ÿ¤£e\4ðª$¯lIûþ µ0êu‚I.Œe²Ì Éwž×]³AñåÀEÛ„ÀøÇ}FX0fDðÃäÕ¢< É-fÀË P”àL–ÂU…°;Í46™-TlZn§ß‰ZÀ”ÇcÃéòršszÚôp&sK˜¸[R“äÒUî| SÝcÊ:óí(UÿÏ€ FtKv½HWÕP5(²U•'⼇À}ë㤋H2ä2fšOÊDGŠ·ø–Eñ(e:Úì~qº÷7wÃâSã­ÒMe·f& Çv”Õi‹ÝM-ª'HŸ–}0ÇÛ¥C9z·Mgc9ïp>© ÕB³.Àš,%ã!…dNµ!øv„ª°’Sh*/{ô0·­´Eî±9+Ažÿ±*¬Ù°¹ûUX9Ä­xùªã݌ݢÉѰÏ.Ñž¾~&JOC“1" +urcÉ(Gu¯º gV7Æ›0õq?|ãZùQÇ¿ý'“3ŽÙm¡j·6F”‘Ô¢lWƒ{7§´2N8 ð`øë”Ö]ÉàÂ=l _ÝN‹ž´ 1‰1è|!mnh£Ê7‘@BIïgw‡DAÃC¡xÜ•À ºÝõ7P§$ïúž£™Ä¬›^G Š„ƒS¥sbhÞ§åMãœ}`²º耬î£VÿjrÒ{ÀB²Ÿ>ß/{uR'E¤¬ì‚jAϡ׳äÖ¼ß;OM~cúÝ,Õ„û¼‹wŸm ê){/ £ÄZäñÌèê¾ï5‰>¨^ë´@ÞŸËûϳOåÞêJÌ m¬:‹oAöpî·&=OÌçU'꫞,ùXV—áÛo¶}Ⱦÿìâä;¶åJÆöGê#¥]±ñ‘ˆÝ¡`|¾£³Šê;¡Þ[öŸ]ËÆ*_Å‘±—Â<ÉüF‡ C4 “1Éz?ëø²ÿœÃSŽaYð–JÍN“”©5bйò ÐDïÚ ½ÍÕ÷÷g ÊÄË|«…S€$ÄÔgNà.D ñ`7–†Ô¶ôr7Á¼‹]ª§Ç€šFÂ=øë˺޵ù»cuÆ[¨iäcŽP=e¬É}`ºiëfä[D¡½k¬JoLç[ï:3™ì¸ª¿Õ9–\lq-x7Š^øT¶gÎ,b7½<ã›3 ªä¨rG¤ÍFåSº©›OÿT§÷Ø›•®ªû¢ñ¶0wÓ^™tÑl{ž –Õ‘Yÿ%#”[õÿ>í½„x–™³êÌ';þR¿cat´W:1Q wÞ"I;6ãêuG»`dŽ#Zg¸£»ÞºÆ;©QÕªGr{îGàFl0ñ‘M›xm¬Ýä ?ºfO΢‚³± Û‘kü—ì"kJ! ëJ¯ìü€qOæ./NÌrïIýXÂÖñ/dÿÑÇ¡àê¶ñ åý"™Á%­â_ºP#—ÉÜÿ€ËKz¤sƒ'øV~q˜0E+pÚœ7Ú•N»5Ê ÊX¦Ð¥r1»+tÓr’ý× &‘®íÍŠ‘Þ4FÌóŸ:¹Ø¸ï3‹ç3[X¾50˜ñÖ<¹ÏØ<I“tb)ü–]uâÙû™:ëGaٽŖİ8ÃÔeòèds·½ÞB†„  #¤Îƒ@9H”Uv‚ºõ>ÓAížê]§³#ˆ«å‡mzÝhÌñ¨­›iINÙ.# Òà w\ïXvžÆ©öË/ÌPºñ 4û|¤Dwö!ÎŽŠ9·ß|:NuP@WÙ ;! Žæ”䨖¦ß…61)-[ŒRÓ/ë4Zc#)²Yõº|炵t+É+¹6ÚtíCwSõÂUT[“8È›Ah¾8Ö1LÐT·‚i­tWë«J–|ºI,“U…` ¹ß=ÏÎï¸I¿—Óû½4‚ßÓQ"صj§¨ Þ—Òê|¬üˆ Æé ÖÞ‚>yÝtÌWgïp» ±ä,ö˜ œê#t•³‰¤ÈEu32G ÃTmx§Ò±é*ß%üžç°/Ÿ®óéevQÙY1} Ôé·\CîLKµ+~²_!-|&Kz£ÌÖƒ$r¸õ8ï‘pˆÙÈ &îÑUõiQêÝÉ«°ˆ]®B£y•"„*<¢ôV»?êôêÉ¡S8f÷‰…N!_††+oÙ¹ÀÓ,ò½ ¾ïß§é„>žÏaúÉt5dw&Ú‘<ž}Õ/¢Mª'榪›m?)ÔPî"š÷P3'<‘¼îü¥á»ùÙ8.¥Áu‡|%{hæý+ƒ»5æ^¿Xº^ˆäµµRëU«xU¬®‰î2l!äé#s¢ßxÊц#WûHäÊŠ“7Ú•Ñjfß<û—ßÂyüÑýo‚u<¾~çø®¶UåFUYÒBïä)°Ì"W[‡fˆ'Iöˆ™fr¿ý­?5#î¦Ä¸Ú=·¢h±€ŽÏÂpîU(†$Ži›H*ÅÝJ˜¾Nù–›p?¯àÓkôaƒùЦÅ0ÎQÀçcöÎ ÍÔûd²ß–ÔOGÁÆÂøu×éøT§ßªö;ÙqÌý#Wï´€h‡QKÑOò×£foqz©» 9¶Ò•ULáJ¿uî/Ç”ÿŒ«eŽ…õ—Ž`ÔµâÙNÔVÈD"*¸›¤º“NuXÏ(Q§éÝ, °¬kÈœ÷.¹uÓí£¨ªì½-hä·¹Ðvü 6æ Ó¿òØ¿mpÿÝÀz¿'”™(;€ªrm)ˆB ©G@ƘµH‹ )¨&´>Þjo¨.ÊøE¼£ˆ¥ij^1•³/h€áv›, PUÉØD¨ OÏ IDATº¥ëµ‹»T­g¿U1ª$ó’ÞK;oëãw¥ƒnzäY³Ï_[/ßZv¶vm¢»vz"ûó¡ndÇy–b4ëUÄ=_ÉÄäŠ8Ò¦²å4=¸™È.˜Ê^ V²—cãJc‚Ï)Ü1e]ËI€ð¥´ñ¦àÏ2Ànåûžm¿ Ô7´í½‡ÑÉ^o-•NUßs®Hê˜)εä½ÐwêtÑI5ݘÅÑ;¾SÑoa"é‡=gÐ ­¥‰óÛÉüfxux˜&âYæÆ2¹½ «Ü­Ñb¼êc¯HFúJÅË«x½° ©Ø.0Áë­ :5»Ô$ŒG³¨¶!PÝÅYîUÁòáЈ“ºOŽ6fÔÌÙ…§QîÇ?ˆ¹ÿüeXÇIëý-fóþÂá¯f•·_&Û< ©eF+ÙmMÐFcšAÚq­' ó×JbЂÁ‘Mmyªµ±í—€Q,‰Y/îvf· ¦)u¹„Ýh$ðÖ÷¼KÝd1±Xr§ã¼_ÿ-É  ®Ñu½ô…ÊâÀ‰:ãlÂOÓ7}|Þ¥Ì"8z˜•ÐPÞ¹<¬Þ\³)ò µ“æE Ùö}Τž,›Vt8™² .œÄ›7ÑÄÇš÷x‹÷Ò%÷¯lNù²Xã5íf©¿Ö¶sòìSƒ#QjÆ¿ïÖ'v'ç/Öé÷$<ÊÅÁè§æÍŒû9.ãÓœŽK ·¬erÕc# ½ Âepßq`ÓG=¹1\…HÓµùë(dŠWjíwnLóûÓï%«À˜ÙÙ$a,Œ64´RU+¼‡‹ ›g²×éªò‰z˜®þÔ‹ÓùøYÇccž¥å÷™ögàþþxùøKÙÙê´˜ééDéS³KÀgÐÙS]\Ïã‘}Ùï›ñ?àø¡Ú˜ÿ÷'ù§?ý雿}2òOpÿ^ö7v<>é²w¥W¡C¡v•¸8¾$“‚9£‚§”Šy¸¾&M…ŽDzþùÈóÚ … ,`ð‚/ø çït%«ªÇò%PFu„ÊT³­c½GN»¨4r˜†¬=#”hF<^ã|­¿ÆÑ$§{Æê‘±C3ÚFÏC¶èŸØ]âìCÎˆŽÆC¼¦˜ô4é©[„P£þæ)N{¶í¤,û@-­àІI{ìÚ‡É6ýO}ìSh7Ým3èÝô{»¹Z‡™DI„UÈ&gÚ[ÅΘ0{Ÿ`øÜÓå‹Ìòê•#g´Ø¯²ÏEœ„Ë^m×dãô:!é½ÜÈ>Ôÿpë¼µíÝ_eάÑÉ[7WÞéê=.,\í3J æ©Á×IsT"ªæqNroS:k6g Gquì×h`"¶WI/t–z¤¯ÕN¥”¶U¢IÎ|á¶œv«¢¥ì6Ï:s*‚ÃeõÒy{ –› s•K¬î¦|ÜÜñ£U¿òxÄn_6N°ŽOŒŒ®Åˆà$-’ÄêRB ÛkÊ ‚ 2$uÐ#CºÊ“nѪ‚Z%*T¤¤ê=¦xK!ŒEÝ­Æ8Áãçç÷0Ð×eLg&!{ma=ùýVK¢Š–dC='íœáf¿Oªà“‚§€^¾õé_ Ž8½†ï#l×£ÒÝ]8µð“Ìá‰R™ÕÅé¸ ¢OžAA èqÈ÷ìö³1™. pÁ—#èå:  —×™ ˜ËqÉáb¹D#ûËivrOÕ³¤¹ŽGÒR´ã)÷±Ó"PdçñvÛ·‚)D1‚®zid6V¦“<2v¼u3ÝDÕ¤ÕÂD«WÆ¡\ÞS5ðÈy¤Ä¼Áý¸LÑþRÚ«€î|¢ó9…|‡Ì4T;o`3<À=s¨ ëÓø$®Îtìzßjn1ÌË\T˜Ëü(ŒûÂ\åEõÏÑs‚d˜dŒ{lÚZ=Þ;ÆŒ:ß,Š–…ªÇl9áìˆýj‘éL.N+ƒµe'2*b}|F®ʺÿ=ûÿøÇ?ÿùÏÏ[øÄ‹ßû±>®¸>€Ö@ùAv’AviÀ=:ã7“=Òˆ1jA„ÂCÔ‚V£¿¸ ‡,r0=QÄßjeŸ¨wTÏÛsër5Š™jü#ÃaÖbeÈ.›A–QÝç4¨Ä—;À:TÃã—g³oÂvt€ªšý*Ô™3:`ŒÓbÈ;W¡À¸ #÷jÖO–yx$5÷/H€%À°Y¡4C”úUDÿUŒ–»QÆEEq1¬Ë±Ø3c×…WT,W°oÔbUO‚"Ü0á$‰ÊYœ¸Q¤ “A˜ àÊR±ˆ%UÁÕ9 ¶Xåt©b²"™E‡’¨t ÖDÆT—©<1ÂOi<ŠšÛ ñmú†ï4p¶Ž'`ÜI ¦ÊF|?Ù/·GÔJ2quV{Wâ`‡þÜh>ú™­VIÆAv•£¤¬fíZ ±È >>¨p]à‚xÁ p’D5­Â4˜Ð!¶Ïô|ÿÞWšÂ¤Ô»Mô/€TV"«´€íØäd™ߊÔþQÇÏt*ýÎuŸ›S2À¸´þ!"@锫/,ST_hs ¨ÊœHQ­Æw†v *âþ™kY^fÞ#à¬*Ú¬šÌÛ¹Y“?Cçñ=Žº´ Sì p¤âb*Èêç­…zqE§íßû”)·p­ËѰ‡jqËyÙH8bÎ?¿ky†Ü ‰ ߈/ˆõ8÷?ýhB8ýÜž\89XÅXFÊêùƒDÞ(ï@ ìšý"]¤R*ˆ-r9Â^^ê ‚ÛØT°óÆXƆ¯GµdcWÚÀ~e+‚cvK+ù²X!›É¡gŸTö´X:¸Ù'¬ƒé>a÷¬î£sïÏ<©9Ej½Ms2~ÿ‡Þ[Õ˜]ïÉG<€î‹ò«!¥ô‚“Ö IÑ7ÃÕ#îJØy5Ú˜ÑÂwÉÅ%Rd ²Q^Àb;¹Áˆ™ & âr_«€EÎéïE/Ð4œ4i³3гýµ1qÌL§¡žuº.9lg»Ü®«ÏåO‘?þLdÿ¬?‰õß Éþ™SŠëÒõ,´ä.NOµÎ%’’šÎ[ÔÎÆnG1%¹V÷W2Ù±}Œ˜”©ûIO×ËNÚ¨j]üÁôtíÚ»7Ÿê6^m*ÌDÈeÆbÙ^ìYÕ|CŠV Þ¼bïøÈ.¨Þ ù³ë{´"âcbõ×S<µš¥óÁèûƒ} Ÿõàm×bô|ÕOÏôÜXŽ!NGgóHi ´‘P±`ã"£7ùDÿà ,k‰—!ð"Ã4«WS! ¢¤E§A¨]SÙ$)³²–®Ü›yÊA(R"åM8ˆd‰/T¬ÎßG¹twúCçc@µœuRqFøêã€?Ù¾gÐ$N亻rŸQJ˜|öŽŽé"ýèÍÁšt¶AéqlUL⪳`ÌôhÊbym²¼ÒªXiæu$¥Nšc÷ú£Õˆ‚%0¨E¼¨þb-p5•šÍAÈÓ4ÉÔtkÔ$§ÁBºKxÑUU#½ÉhØtÚ6’Îêˆ6Ë÷ÐÊŸrü´ç¾ ™¯+÷ªúèÿŽx}àÍ´H$öþ¸K ‘Ñ9(Ó—É¢Ø5»S&+°VóƒXB,ÆBˆ±Ð5;€Û|YvmÖî ý<ƒÎJérzJ¼¡f¶QZjËlÒÈä»üñ¦Õß¹/œSžÿ}Èï]Aßòúþý©Æ9ž÷l#œÑ:¾ ¥y^0Et:æü xÙÏ?àÞ3­œ=Õº;›-ôlL' U(—Ay—Ø“¾Û˜(-W—5ü®…e^3åªLd"ª`˜Þäú 2±Á»,F±ü—Œm'V`•MDÐ@„WD v0"\•0BÜ® WX%̳•gºo)åIU³ün<4¸'« £^≋™©ƒ¼“ÅØ]Pn„;Ú…÷l;lboË!„”’aöl~„•0à( ón8+JZaJR”.QÄjn j‘º†2%1Í%÷wD²Ý_:ÄÈÕ¡Ði53‰"¸Li,×.xãþâ8›‡N9ÝÁüåX-ëaT™úãýëÒ»ÁýkÞ2 Æï‹·áõ¡ëã4HÕ RXìDj>Í`Q®œë,D-+¨e˜Ÿ¡»–÷¬Ž]²¢£®`ôxÚ¨í,–Ý„Ìø>{0 ±'šIÑT²ÀªLj1ÍH¨ÀÊcÇæ}|÷ßûFÒ;’·ŸÏâ¨!ßÞÑÃ5uw?Ø’ãùòœmÂË{E‘–ç ÈŒaŽMÊÕìr×ïv±Üã½ÙH¦­‰Þ X‚Rï‹\n¤ÑÕ_,Û–ËÈ€„JÂ&šÉUTf ¡|½ü‚‹ÜÌ1Œ²D'Ѝí ;X`¦-¤¸(övçq¦{"Жâx7NoªjdB$53@Xå гŠNTçj–& º'M7—Â7ÓR–Mù èÜGlS""Ðѹtܸq<ÜÆUÀΫ–:‡y)¬D)}œ:=¨è–2%‘ .’k¾WL7žxÖæÓVíº!4I=MÇ‹àÜrUÉ0,4·n7ón›Žù¡gX–õñ‡ÿHüo‡ì’žZÆ?þñøN+Õvšn=ûï Ö ÄÇêÿýƒ …>}2Ù£7ªmÙ$/³ùÂé£.1Z9È.@¦;”ôÔ[¨½aœ4E7¿:N¦ÚYv–t0%Z³rT´PE©-LC#•ÒÆZM~ûè/lçc1~2ì÷"}W07v›ÇâÎn‡Þ„ËaiVÜlû§ã8’æq>ý†÷K¢øØt/¡`S­E¬žûz‹GÄ*Ê,Vד¸]†ƒº€@'Ûëý±hg¹Hõ3Ì5ÍÓÎŒ)ô¨å¨WªÇ˜lú¥¬nf”›j¢ÊµaEª,¦Êä®Ûr¥‹H Só–Ö#Íqjy5Ü7Ï~N÷ä­·$rÐü–<Æ{¨ô˜Eg]Îpên¥žlű2ÝÍÏCc4àŒ»£Ê+“­„ñZÙúA¨©p¶Ð †×Áôe.ð‚d\@[d£7µ’Œ ÝÀâ%n™Ùä¤~˜÷ÞõjAç‹R›\p Þ§N ]mb[êÊ©l[ëú¼‹ý[¡âuü dçQßàþßÿýßÿùŸÿ  !ÀMÎüBªÌïà(@ëÒuIkX—©Ðf—íl1VlE(A"Q"cì‚Z©‘ÁwHÏÝp¨ö:JÇ:b˜,ÖvÕ€¾=—5x†­ È*ôF•ŒÉiE`ÁþKE1„Õ®Æ9Þ¬ö<rì“ñ…©jö¼§;Š»×˜†¸ ¨ÍÂ3VW÷MlʶÓ=b~Ô/jnÝvë•ìægEvÔöuýíððw;~\n η«Áý¿þ뿾—óüù÷aCýâàõ¡?hؘ–œ/«»>$”Ë)ع æHbª˜óç‚„¾”ÇØï½NûM€êd”ϸ=œÐDò³!ùb½Z@gIkw°bp5žß©*±•‘$겊%&soWô*Iû$`NÚyóz#~k+mg<©ïOh´í7±¾rÄ‹m;j‰úJÌ´¼ã<â™`7SÛºQœÉ†P0tkØÍ^-h­ #Ódhö<$ ¥E·uA ¾ZuEÎà^Ü$L4i)j¡§Í4ÓH½™@Úå¨b %¾ïéÞà`w÷KiU¤ ¤ª·©ÍÃÐNqýá÷œóÅÑÅÔ]¹ÿêýàn ®¾yvRñæÜ›“™heÀ2ö„Õj¡;¨}yOýNÈžzSÏom œU93öœp!סGnîõŽŒšì¡ öˆhÙ¤–ž6(à4‹€b± ¾In8Ñ©ø¬oé¶­>—Õ#ï鵯>xrèÍUÙþ$£7‹çñÈõx^wÏðì¶Ù n}îãI8#&Ç Ë^BŒ†ADqAa,‰*!Ì‚èå¢Ô,˜Yà&´zÝ-M5œ[ØÛ›xÑ/«IR¹ËK«6J(a‰ED°‚Ú•AIÛEU ÛÙ¡ƒÀÑ;ŽØ1»ìqþ>ßfI¬rëOìQ¤urÒï,ÆS­ïO5û»¢¿G•jŽ1„nl2¸%°ó~#¥æÖUŒ •¹KQÊš¢‚Ñ›Ü ¼0 »Ð+†\µÖu0}!„èm\°ÍýÍ&ÙÅx,¡‰™@°Ü¢÷ ›„»B¯lÅpUe]ÿLzöûËùç?ÿùæažÇŸþô'>‚Ãð}pÿí¶Uy}ðú7A1 |qäØC5 yÁ/ÎbX§<çTkJx³|d#žïsﯻИyž©L£p'‡[g'ÕDµWSnÿþ<—X%©š2 KurÊ>Ó! Çp÷»î×uwpS„Õ„Ï4{yF q8oˆ¸Jß>¡M¤<‘]z”~¨Bî‘ÁT¢‘Î8ÉbàíàïÄ–XäFEgf5)\ üªaúÔìz~R3ʦ~ÓßѾ¡¹Ï!ýoh&ÀÓx~ëaކý‰ë~ÐëgR`¦[ úvŸÊ­RaÈwnùg%@»lrQ ¾@U,Updï¹²›Ž'¦Ø¶@¤·&sÅÁµáíÌW¥â¦÷cò‚ØC ˆI\Š•ò*¡W‚‚/±ŠYbjI=*öýiéf`­’õ ÷è«f½óa,w~ÀI^œ!“Åxåž~f“Ö]}÷ǪE²kv–$¹""ÈãQ’Ò«Jea)*Ü!×£ V‰¢4u\TˆäLwhQÈ«3”ȸ,2E¬˜„¥ÁôádFƒÀ¸ú™þÆéÏ…`¹™‰NIö0û`‡ŒªâB;•t}üuPõ¸àÙkýÞ}~£‡>þÀÝãp-‚àb•³°ä²ï™˜-Ft‘áL°GÚõÜÏ€Ö¹WÇËbóSe¾­šù@í¶áÙìV@o= FƒÓî‚ÈŒj‰&ðÐÃ|û˜Jþ(1ÙÏÕƒyÞO^ÓSSꆰ–ñ Ÿæó,&KŽFô°Qq©–cv¡&2»·î®}C¦Ye–º¼+FÀví6±á×™%û27zpUÿ×jîÚ^b§<:¼a«'ZpœS-lG/ý‰³™d<Ôð>6=ü>æ'®Üg¤œ­b,\g°Ñ3K=õ-]6Q[ CR$åÕôKï¨öâIܸ̞|m;"àð¯K’ˎ㕸z¥° {×&É,¦˜p-@V97¸øjíHVM6>_j^Þ'°¾úÕpŠwÏnKƒìè Á{ÞiŸ M|.TXjÅzq¥YX§‰Ê÷@Œã5ÔñvC²[“cÉ`¯’£'b·žÕ÷o©ºÚAÈ%†ÈÕ2!BT«q»øîôúXŒõfÕc6æÑJªBoKj4¡ÿàgB~òïSu%m9«66ˆN“C™ n4ÏÞ5ûÏ®Ÿì÷ñÅ)øíŠùèD0µ¹°û‡uæµ¹l2.àE.c3:òhA D­Q²#âdØ6èˆ8X4õï}FË'Ï÷ °Þõòü[¾µÞ-®Í °Ìˆ~€ž€ñW]¬]¿™–ù~Ü1LŸjêæàÁ–^¢ïà7_ÿ ù0gœ½Ë‘ÓÜšô÷žæ Â>&óFï"ìD-#;WŸ‘ݶD³.ya»pÃÂ."7LÚ]­nm¹ý IDATØîùr•gzÛM¯wËôEï.Õ‰—˜åMl•Çß›r‹L;ÅÝÞø„ R,™é\¼‚©É0ááÖ'ÜñÎOètßž^u·dªfºôÊ™FÝìyätPõÂõÎàE+ÓaËê…dQ’ŠV°¨N¶‹¡eZ)ĤzªFÃ:BŠêÏ‘—òj‡v!DéðˆlN§mØ×Õr*p…¡Áôu„ܯ o7ÅhµÌz;•VŒâ †å[•i‹%àÌ6ˆ³w"0Üó ãºþųãøÖ„Ìœð·ýáreÏÜ@Ùù‚c.s-#¯ò„WlRF4ÅEܨ“-îeHP$Þá¬æ²+wð¡°FôÒhK=ÜW¶‡µØ¥ñ¦Öí3hÈZßÔòʧÞñÉ­7BÖ¬4ÀÄçÏŸçAŸ½Ô¾$îg¹yüÓ›í?ŸüOéæ¿Ø§»y‹Ã:“k¾¥ý~ïm%&]€ÑÉQÅL¢=ž×ˆDÍn{Ð6ŠÈ¬ìØý]ÖZ+Û,×aÕßÉ.¼ìX]™cê¯à®*b4 ¹@bDì¦zùÈŠ˜”ÇÆôgu°¾ºK€G;¤Ã{ãž§qL·ïÿ¤€á*vº} ÊŠJq×$LO#è*¾?õÞ°ž0wJ"h°› ÝÛì­j‹!A—àâä8¢Ûž+H=%1cSsO·ð‘$½Í\„éN¦ûqG÷EPŠUµ,ï;¦³I ;f‘¢D°ûx~µ0ÿâÎÿð÷? 0®XEÒU\¡³‰ï ˆ±á‚±÷È$4ñÒÊ–F™˛@È£mo°«ÂIž¢?×ÐñÆ]âN½¯ž6Q€]/h˜“Ïuý3×…L®G«¶Kû%8ÿêñóãÎO=L?&÷yt€ã~p‡¹B;€a#„‘ÿôûôe÷ï|b)ï_%A.modW9;F¤¸å,@ã–,3 ….Ô®Ž+Hxg´ &©ë°êÚÌ׈døRebc%H–z4RKMˆ§’T1‰]ŽÀž`Èîæ8£Pçl¸F …:åÀÝ•™4˜•ÅâÚwÈ×—)`kŸ¨Þ[Ò.‰‹=ÃÊdvñ°&ÖÔ¤ƒ$K‹å0`ÊC6 *[…ª5#›Ñ¡w¢‹„˜ÙaƒÝàBZXez¨“ÇZÌNµ? zôÛ¬$ C²gUŒÛeÒ|á0‚A¯ÐídIÈIy4Ñ3•â÷®gÿ¦rñî‹Þ·Ü_¤gmþîÿ6Êö_;ÖõfϘ“]Zð_6¦Œq{þ±­ö™£5™M>éÝ)•ˆc…Ÿ_= ¢:œ¸ÉnŽg‡<ü#yÐ3d¬·N‡éƒ'y?á¹xÀ€ãN†ǺÏs·”o-yï'¾:êà±uð$nOMΖ¹¯œGª{Wé7Aßג΃ÌIú´=yWîÝ &«¡åeºÛ᱘ Q؂˛ì¦d åcXö~yÓ/3Y±›„ ïâÎ6j'7ñ"32 tÊ•à¨b”UZÚH­ v'LS,TURÊÛT«G¿ø®Óïàûã‹“Ð;ÄKáÆôHhc™ÚŽòµ1ãñZ쨅NíRóéwPÌ!gt“ïуþhÒ=„#`¶Þ<¸€ˆÎ6vO5Š2zt0ÛÓ JêLº3*òÝ)íìõ/1=еYb./]ƒ,ÈïûtË  hL?ºáž9zGÚqëÙä?CºÀí0º ðobýSïø½‡úÀ:­uÇíÂt—‘46yt¦3{zçÀ}T¹»t2[>u;]‰£&üêèu㼡SE?o׳kz’o¾»û¥ótäÈA\_ð0£‘@×K€ï @›:O“¶:tcþiŸ4=©î?êýg¯ôØzô¸±Þ~U©»Ë0‘]Ï™½€¸£Ç5LO‹gþI¾ö°ê)ìô&)©yv&ê/ mVÓî ÐwO? ¬EtŒú½ÈÏò‚%nA…$•>ã“ú3B1ÂÇŠÑDú ^;Tç$ìÓ½Ì' 3¿ª6£žÇ„(fÇ6¥%]ƒ3º½ÃnÛôY`Èv~l{‘¢<“3,´” \»ŽÖ%PjÅËŒ [ß$Ö`:I.!.w,SwJ›Ïìtƒ3Ç = –œ]e‡ L Ë @34xòÙit¤2jÓ‚;h|™âûcšâ{ÃúÓMz£üÿüÏÿÜ5ûóÆûn­mï[þï&…ýÚ‡i@kYÁ)ª·QÃ}b¹6Å.O"X÷TK£µ€8aOÿyo³+M–$‡™ù‰Û„4ÀhCH‚´Õ¦¦¡…ÞK>׊ bVó| rÓ¨­´ÔÐ’ÀPìÊp7-ÌýDä½÷»_U«û~]_Ÿn|•7"3#Oø±cnnNøÚ~f™%pîu2n=ßQ•«ý I £g÷Cs»áãÍôPàRØYY¾¹¿/’Žò&µ×ð?˜þ·Þ•´7–Fxýœ†ÒTS.uIа…4>BKbt{ôʬÆó/µù¾ù ã¡Þ»÷·_]Ê\Ð[r @Š ð„.ÖTí«Y!®UŸ^ŠJÚ6'™TZã(J®ZÈrk¡ªdù«*lY™ÒbVÙÆ(ò„ѹVPâ¶1( M†Uvû$žB>7­v«OvAë:1$ŒMc¢p¸Ùi’¥ÖŸ‹`d˜ Œ Ê ceh¾˜¦°lù£ìÐbS/SÞ±ŒÇ»‡; #ÚKÓ6V%õÂÅ6ìµãéøå*è0í:¸¯%ôF¡)ø˜‡z Ý;èæŠ*„]ãbª¾> *Pb0râxªù¸OêOŸêâ‹÷Âú?þ¨gÿ€}ƒä?üpîÛOæåu£–­F !à Nè€Nv`$¼œÙð¡«kª½ÔoIȧÑ9Ò`uè›ã¹kS›áý »f•Wõ¦& GmC^cçhøý~o¢Gñ3YÍáñE5®ßbäþßl©Ý ·óÐ×7tõlj~fwº¥—õt|õi›#ºˆ´¬põ9Ò-; DI ‚qH'Ãýèl4`U* \ëzbE Žî{ïÅ„P)%Yàa÷–ÿÅBÔI)ðBØðKÓÜhuó:B‘+Ȫ v_î¬^ÞÊ6,¸'ï//[Õ¶Ž«åÜ)™õ"¬“GvËÓ£«L;¬Ã¾.Jj q¹û—ÁÃqÂâáèÖ5jMÓù× Z!®Î¹vè_ä´öwº3vg`Nˆ÷碻½a<±®ý¢E¿üü¢‚ÖÉ´)°§¥»&œÖÎn)Ãe/˜Œ’•â+Õ|ÖñyÔWazŸÏ½lPÿ+ è€+ë€R4*yÖ™”UN-Z*´÷H4#±®Ú}Ó/À0{t eÑLºÕ/7Ý¡z–SÓ‚cÚ+¯vݾ3àq¿ßq³sÂ^~¸ßB‘öþsÙ§½‚Ñ"ðM½O)/²¿Öéx•Pý•ŽˆàZJ!B%®•ˆ”VçjqÙ¢ªlª„®WêúIØ9Àî™pêÈÝÐú©¶³;&më`v"Ђr`&"§›oßgç¸û~_¡ÛK]P죧ÿQÅÖ¶›Ë]†‚&ïü-:¹{gõ7èùäE¹ŒF(–¿KÓSšÕñ4nÊ«E^…]÷' ¥5fc@ÁÒFùh’ ÆfÝ ]ÎÒed”ØÚ'@P QX¬¢›UaÉáij܂ܽêºÉrß9i•XZG*LyT¬Î&‹¬©¥ÞaÙÿ¬,@!K}V_üÍÏ´z( ÑÑœñ¨UÓ^c÷›ž®ÓQ„´x0ŒœÑìJ»Ä¸y@¬X‹Å¦Âùhݬ/«eZ1$øj{/®xiìJãÿôµ\[;@~laÚSÒñÖÅ4Þ2.ûbá¬Ó{ôígÂP®ÈœéQ¸c,ÁWlÌ'OŠìo™“}QñËr—+NýŒäê¯i4bu­DØâåN;ä 2 —õ«;íV/ûõ˜ˆi.¹C€ÁÈ®à‡nôªÐ¡g])GôV3èŒâ¥ß´àUîófèz&Š ‹ªüØU"Ô›Yî2|ÛaH³DÅ&}péÚí 3¼¥žƒ£ÞµpõË|Ì,]¯½¨'Hoj ÜÖˆÌsžrË(í/LZ€;‰ŸýVž¤–—m—´À¤MÇ#,•ìÌc &¢Záò÷.awÞ¯xHH-¸nK€¥E,‰R9†È¢${b²0uÊ+•Íz¢]ä!¸m³Úì²RDêP„Ää1 }¥^j±)vÙ9h]Á2¯NÒÍ ¬åª†½Ž0Z_Ëá`ë[F’ˆèfaÝpfY§;M즣* ÚÙqϘn½x\³º'ÉЇ<‚§iU{gU|‘´ÕRHuc÷ÝÐÌ8-ÜjZ^]#y].Ÿ7>Iõ¸Éô{@÷£?‡ù> ú^ÃqXF±3–Ó; :¥†Är½ö´0µ›éŽì6î&?úªÚêÆ'¿Ã°ÅöO2;øë„tÞŸc3¹ š&¢w³—cBK.æ¤ ’ûnÃqóÆ,½ýäFèOkÀ=¦ßïßûåë¶ßoÃö­$zz‹þ÷/}· Ì â¹)|õ ‰þ@%Àâjì"\fŠÖ\ÌÒª9”,F!® !ÂêB.ŠŠW4S'X§îÔe‹x¬*)É*÷Šö¢ƒ^U€’P±ˆÂQxQ8Òa]ë¤ù™•S˳—]»ï°Uã8 ôÎ÷=~æ;aØ`Z†Õ’Nq¼à,„q§TÀŽéMÀhqíÜçj +ÿ¿ß°HBöWçân¼Mc·f„ºÖ¿®°ùÅÆœ-z¾ñÝu»ÿ©^ÔÇ¿^ëkóÚiôqû<û˜ë~ûŠÅ}•<ýúsRú⬠b$ocúµ–4£*<ã©NGßaþ;ƒH×Y¢;›˜²i Ñ9«·ù•BG™M¯s½¨~£Ûî“+¤Å"…âô"'X ±èjžI´"¸„XUÑ}²B½ã ÒÅø¶†ØÜzP)VP`-Kƒ"å&G!«ó¥VËp%Ý£c:#xLE~0ÖcðpX_‡Ï6í©>ÜzãX²ÊåpQW!pá(Ù=~¹ºÂÎûÎÑèȗ«É;ÉFý$Ü9ïþÛ5ó·pÌÖsMy¦Ü4]V5¸)VWƒ®FË"œø5¥šêd‡gøwÍÆì±£ör¼ßSøþ`V­Ñ>Ž’ý’xK§ÕÛ|Št¤Öw@+ZÕ@áÊDÀrvÊ"Xå‚•›§Šs=ò:ÏC 8¹(ûùghè~^w,­j·ûb@»˜Ù@`pý•n¹ç >G#Ã(ÜŸÖÆª­ÍÇE¦ãmLçs¬¿ý ÷7¼ޝ`-óìbUžÆqå¯V$‹:Õ±ˆê¥pÓë"ãP (ÄâRUiE¨S]zjNÅ$H1ª(¬ÀR„-å ݨ‰¨ YXÝîAeiTïcŒßI2Tb ªÊÞ¹E…dŸñ©)-®“+u¸§’äV¥ÑuFvÅæå¥30dsí ­iácS+Á+¬ÇÈWV4rg;è6Cµ›Az1=€Ý÷\=©±ìfö/všt›g<­ôê6|è¥À¸S4(ÙqR”]×¼#,Ë#­X`±ÜÓ}„%˜ý•¾åäþîk÷Âðó_õ;ý5j*%Ó»ûrÛÚlµO`Ä 8Ðûù9²¤ ,5NlÒ`ÅêùÑ&1sÿåшg]yãè9ÒÓwÙ°y_wüŽ©¹ÑÙÚ‘zW9}éD]ËÌ¥ƒÜØû®™ÙÜ‹ ÷ý*m„ÖlÕu ís¥š¯~ó­ô`±Ì¡ƒUŒ8D]˜_É©QçBmO÷gv‹n¢=IÅ8³À¥*ÁbI•\XQ\6 DºíR„K]kø^¢‚*¨B’ ]× bX”ŠÖÄ*»–²lS‘< 1U¦‘ˆd"ކº\@0¢è”æb"ý÷•Úzvr© ôwX?ÄzQÛ¢«»ÊpV‚V¶h+eG>ñ0´¦«œZÑKÞboa™$ì¾»˜üPOf½ÂûFÄJ_Ž^:Êz]B¯©7Õ€;{|«ñÍ\|Q€æœ»ï ¬wÍwjÃ/XLaLÔEE¼¼RÅLd†kj®ö¹¤r¿yw·4i@VÕššR ÚËn$hC1Í oèý¤½¹‹™iž½#û]ùÚ ;Ê{c~íÌV»±ôË^¿ÙMîûGÑ›ÛM°ìOñÓŸ” óŸ²ýçýш1&³M»af—ê㺡¥ª +ôE(É…"¼$ÄÁ%°ZÏÇr±°òôAÆ„ËE¡; I!² „°ìPÑOVIKj!{¸ÅJÍ’¼¢t`Q©ªD…²PÙe­ë‰Õa]G¥àr­UÎí‡Ã÷Bw;Ú¡<‚áï°ŽµÓŸhк®¥½ÂyŠ®vnÙª˜Þÿmè½Õ2Oz˜n—ÑîÌgÀN8+L íÙÒ¨‘äöš{ú9ÞîÄúÀLì”ÿPŽƒ”¸úVã/ןýÕø®ˆƒ #ŠÀ’+Wî„æ¡QÅÜ0{5.Þž-¦“Äai€%ÊN³+¢5“,"¸Ð)Î Ñй?A!ÑÕ•­Q\ªáù¯"š§! Ë†lNÏ“ßñø‰Ÿyóœ'œþޝäM§Ïûzóäçî ÍɾœFý7t?ƒ~œ„NYO®ŽìQÐ!‰‘«s$ò€p·´­&‹Ý÷­¼!Z+mö‰’òT›"S4¡¢°º BÒBk$GËÓôNaÁ% Õ»™r¯}/¨ÔQ„J®³-¹Ò:Ç` b•ÖIÀúÉp|5BŽëK¬ åvstIêFëËD<^.´ÎãÑÇiÆ|™Š‰fo.4Ð+ÇŽÔÎÄLß3-õº¢óm^ÌNñ^ƒÊÉ— Û×0|àæÝ.aJ™&ECŽ@ U°Ò.ôƒ³Ê¶}éÞ=ÊøDöïªßI8Ù 5pÒ“:kZ@&¾‹±†3w½ß YÒb$:“˜ýͲÁ¬¼}œÈÛh"غl é÷Ûyó¬þÄs÷] æT’m"[Ï÷|¦.Êc(y?ÎëßõÆþl5ä;¿ýýµãV3qà §÷Q‡R¿.øç’ÝW£¾<åÀöÈl_Œ5: CHo¹Ý¢ÇZMˬŠÁX8b¢o(ݦԟV…,Ω[b ¢ÄŠæâTTAlR T„¸ý­Í8Sš,T1ì'ê®.TªMµdmLv]ïú ‰áƒ0càerã ënPÒÿœ~uíO‡ÒáUVóì1¼ ­c|†[¢î½mw¦¶¨1#u'Ñ’¥ÝzòììKo/ ÌG4ɶŸãÛ+DD¡˜3 \ß½ @kvîeoì6{ßjüåFö--úÎÂ:Ð5¨r[ia¤ÑYS*";ºØXÎÑ!Øvµ·ØWîÖx•k[_ºXªÀ‚.~Y·j¨>OOhúr#µÖ˜wåäŽÝ%ÒŒ£®hŽÁõoö¤¯½hî7æ~‘[äòêå›{ÚÇ™˜¾ðæ½v~ÕßñJHìS÷ú¸›Ó£vG2U,»„Xb×p†›‰/¹(‰$* GçC¶}ù"©DX²†/­UʺôìF)`ék©D)´\@JyÇ𰆦T~±=—©ÕV!Fª¤`)¬Øí¤£'W -Â:›t@gÐmZÁÂØa=âè¾S1E¤öô5·þò\æÙm0`Çɦb8,gM*pÌ à5#†‡9ZͲgÂmÚ 7xÍ„{HÙÌ û¹ëöÌðqé ‡Àµh€ÑíÝgé©=ÏûÄñí#;¿à.°¯½ï/²³“Ô „”Áe¡[b™U'(経Ù!s¯ôD@È»ª[òZƒf„ *­7Ú cø¤ÙUµA p[4×IÈ诞Öl9Gp/wØÂWˆüùöõèà믞ÄÝ1ƒÍƆkFö¾ûZîÍ÷m~ÿÖ÷ ÿ3§{ÕÞÝ,ètš»Q™ÀÍRô¶ q: b! ±"Nä ’ÀI 5ì0•‰êT†?¤–ÁÅŪ:]aÔÍÿ*”Ê‘%@u(UWÑUöo¨ªMEÀÂZ.‰<#IØo«ÜÊ6÷2Ü® Š$›0i®üè$ª±ü!¢w]ÖäPî°H š"#z×.•‡s¿n}Aqq šîûá6„Ø„xLÙðÅÛ?è-IÏÝ•åº/œ ØÀ|Çn`\Âã½î`ºõòóòw^ò¶ô~ÉÓY8Á{Îfcü/•CÏÉÖÞêÌK´>u˜•½»òg­9k ¨:'Åã… `! u*‹Aå0³É©NÒbö³\w:xœùS¸ŸT3;¶fãñÆìA¡dŽ¥"èª%*•r­i dE¦¤)LúE†ªVM‰E„¸ìÂèê$òªR ²šyß ¾Ãú–™fû6wDpdéSuÁQFƲ’€+Е!ÈýN¹ÏOŸ2Xš#àR«j¶v‚»Ãp †|¿–Š{Ù*; åzzޝ_Ï·]må̘¾Éø¬ny· -Z Ì»›%iìÃ~õãK‘Èrš ÈPÝÔgÂR,)ë•Óq@(«åÞ&mCPº˜!Êê %¹}±Ûw½ÙºrÕ±.`³UIý‰Gß2WNH[ÿå}É(ĺmpc¸š75®ïÝöqñïî@ªë9=up]5FyïÔ²NÜ¿pýÛ¥åµg?=žÀ­ß“l¡ͽZVê.n¶÷ioÒÃ}œËnŽÐ—Pžä²…€Yû®ò^ç,Rˆ…”T–c¸ôi°9«À¢°P ÖÄ÷ µ ˆHH%)U )ª«³(´Û¸n«TŠXÄÂZ ÏÑJó>Ê5¨S­dµ"¹*/kœ¼.´î*ÓÖAû>.Úx y³ê75K\•¨«6Y¬ˆ%‚ÃcCŠ=%^öëþÉȈKÊu£bü§5óXàÙò¨gM£uïðœM µùØ_à ì¯?Æt¯Æ¯N6³bcö] XrF*ER…r‹Ë0WË ±hHº+›A¿h §i ¤±7Ñ0÷ObPÀOh妙i^¾ÓMÁ®PÆ[Ðè)Â|0ÈŽžüù·÷›#0{ÚßÝ;—æ•ØÑ_–›nëÌ~›Û2   o>„`ô†‰XÜrõ†ÿWL—W\ãwÀÕ;_`­j émQ6ÖËŠã©1CH(J'%7Œ6ß²¢ ‚!£ˆ IUˆÀ4Ô* é¨Ý·«qºR•™„y[¦n{ä´ù4خۖN—»›`f!"œƒÙ•¥£[âÙI‹Ë~/ÓxšC…óVqÊqc_v¯$HÃú÷Mëm »Kçèž'W†ó>IFÀ~ƒí¼&?àZ’Èïùsò{ºn(ÀÁl Œ3Ç}¥ùüñI‘¤¸)a¨;R{Ó?ˆÚ¿^»¶¹`Ç%ÎìvÆ%0!)ˆ,Œ,jÈê ¡(¸ ÜÅš•A“8ÀŒísAQKgò¶]½xާxå°÷^ä›×š^¹軵ûF@›ß¸#èÿ?·ëF­ìû-öØ€ìRË  ¸4[¿¨{=­¶;æ+@7ÿ!ðeÎ} b8w}@-ïߥ¼é!Ã-°Ò,5-¹«9td•Û"åÉÈD©Ž:öý¦&H±à@ËvÐ*”÷\C Y(¨ @ÕôšmnÝgKU/úX~²Ãº›it3Òu`¡#—F­(€ÖÄøîÚÆ}­£uâ]‰J´¾E«žFûÿ{FõìuEÐ]8:×sÓ±ôĸý¬÷%¿I—9¾ž_{¿GÄX½ÙõÞúU˜¾æØÒl[÷ëE:ºãÙ7ŸÊ³ ­óñ÷=_:Èm?õ+‹ì{( ¥ÕŠ„ÃîQ¨±.QÚvÙTû°>è˜ZÄ<Á×@}‘ë{:‡êôàï¬ÙIì]­ðzØ~>rÓço4‘Ñoý„0&~¯0ýÓ9ûâxš`¼ÎLïl|ÿŽ>VVÇ ·‡%‘š½l9)°Àì?HTÍ ØJHâY6õ5m‚Rdׯ… Ùö=I·H,%ç³Y×ô>‡B•%ö"Ü®Y:Ï“AÆQ½4wk V`ÿ‹E,”î$ÖcÅÖ×^L÷p6](“„ŸŸÌÛÐíŽwm:û§Ú€H,,.ÇxP©û Jt…WUÃvÛÇøpY]UW°EGË `xYˆå{zŽ·`©}^j/£j'ºûž0çü[ÏâÙŸ±l¨qûÓ7x“B~Îû´qѲ$9ñÕ¡Áú–ai›TTÙÛùª¦úb ´czX@ÓÚ Ü"‘%.¬zc÷ÁÌëµí¥Æ–]è$™aì=EXRp~ò÷”è/Fê†îcwÑížüYŸò W¦ƒ#Jhž]Ø?„×QgSi¥$¤=¥<)!Ëÿ" þ¹Ë7Ji…¢TÅ*dá|(LáLdéLf¡|#q¦²X‰*=ú’ BHª0kÅ4¹BHZ$IÈYz*U ÓÎÅI­U\1=ù„€γ”–“ç/3១3ˆ”N*ܲ«T¬³ÖPÐ ¬Wix&JkضÖa5f Õœ G{¸¨*FHI¬VßFÛ@"µùœF-ecý­:£²dKa-4n2¥Ö“¦®Ø©Âε †ÂÞVss€C¤}ÛJÏbcÌÓÝ"ø«'ü&ëÿþ÷ÿÿù?ÿÓñòÓŠ¯÷_cèwnŽGëÔ»àm$ Y?7±þÊO¼Âƒºã2`xvA;Ý2ûµr¤nseFt¢ó|TU`t5$&Ÿ9R1˜kûŽú[óþµÛ?ëÔ½÷Zìõr§ „íæáÏãů±ý,æ[¾Ç^ï6L †iìã ª“²ù2TýSÚÙ͵£:‹¦n²Tvm눯Ìù³P§Îbž¨™8 yêLæ‰*f!SY}ÏãÁ¬ÌGU!¬ˆI’'r7­*B¬2‘Ã&â!»$@``±Ì‡.„Т›|œT´Gc!ŽT-zš‰„hȪކ« „)¦*œ!†ÜoMƒS¡ ®–—õã-:4C£Ö‚'ÞãDªŽé®®ªâ¬mÓÑY¢RÝçdˆžGâµüäî7 ¶¬ Ûa»ý.ìî•,²^˜Ø·ŸÙIvÄá;Šu’Uõ7çã¿ýïþ{¿ÿ¿þÏŸÖ?{uQ}RHÝ"¦ò9ÄÈšp¬6èS›ÆÜÉdL4§û6È(âÄwkI°c PgNZb¶üFªšL¸`í° ¾Û9%&·ågœèµÀÙ¬  ™@÷”nûÃÛ?óÎy|ýšºEá¹êÒøýêÍž³ôœÝýòm=ÝÏíPæì¨B%€Î—îÓ1Oèw/É~i«E£l©Î^Ëëì‡ì— ²O=’YÊ„Ñú™ª“™ÊÄY}O ç!„Ò°šPªFî4~϶i¯"¡¨`œyÀâRQŒ¨ƒ‚¸¤%…èÎ|«‘!Xnûw)lÈŒlå–D…â Põ–Žƒs,*±XHwÿîÚé Ë{¢/,©;7V÷Ø£ …"Œí¹ ý§[Y °'ÇÅ×÷Ì­FëSÁ[ÖzÖ/±™²Ka¶ÁÿôÙ+I ;4eß+L­§(ö¹ã3"ûFTïè—3ÿæ|ü×ÿéÿý·ÿâ_üüWÿøûU˜kò{Ò¹{³ÚáÛQ»N*ëªÕÐŽõûµšÀáʦmaqÝ?œ/**«Áä¼Óë,&Ö¿B³›¸×¬ô{—Úk­•“w%ûów÷öÏš©B%ÜK8ª™,ó0'ª|'3ñH8ôŸ)ÿ[g©Š•ô‚“Þ÷A§4Á“]ÕæjÊ€ëÄjI$V1Ž ‘©up5~ç’8¡ a‘°ÓÓ$Õ¥iýý) )W*sÒ;®`åã ’#C*8[ëįª#6‰:%M„ KŠØZ—5fd9°îh^Ãëzê&Ê&6Öôk˜V ([úlí|¸lLUÞÎXïâž+CQæÕQd¶ÚßjüÙ#{_ ì*Óßþö·¯¾ðïÿÃøoþãü·ÿæþ›Gþë÷ïðÏÿùÿóüï~ò«ñÝwÇt÷˜·’}°¶T¦P’à@øÜÜTsî}M©ûþÔšÕL|‰ÊI7Z£•j%ü-³_›ü]fþ!‡u tÊH‡kxLœ¿hFÿb탋ĞiûPr"—FˆÁÔ÷æh^š·ƒÞ\ApûŽÍ¤;ÄÛ+ €†íð"ÝAä–51NW:â;‚³NÔ0ì%Ôãñ 9O¨RžÌSYæÖ‘§ûÜ“ÊÂù@–òÄù`VÕY¡ŒRðdHVUÅ‚²1;` U®@•[u¤µµZhSKˆÂ$4 ;,´<¬ˆ°S¼ÕZQ°«M^´”ñ°ˆ¨SéÊ'(«jU@Ñv=Ô ¦‰8ÝÛ*§à¶MÆô Üc’„{ư%®ŒcäÂ#z¥+ºªÒrƒ½2Ûc3ŸñëßY`>á÷Æû¯ ˜Ÿ&pÉ¥!éÝ6íôù4Ïû«þÜãó´1ÆÝ¿ûÝï^ݯ?üáúc.ò·üû ëͳK*nÖE›a*'RLËÎ^<Ìu¨ÍºôpБ6ôŸ“áÁEY²ÚŽäæˆ874S¯§ÖÆéý·5õJ’θþ²$ÈDí;Qúj|p¼¸a¶VG  ñ~)€zÒaŸ“.³»ttŽz~>ÿ%Ruf8•í4éE¬§²(Õi„-‡rH¨Â#©Äy6*ÏB;¾?8aÜOÔ™™¢ ûOX=ß0á”à–Jáy’`¢¢NI,r)TT†@Õb,¸¸ŸKŠb8JßÎ%2 äþ•„Žï;•¨Íh£Á,¢ŠW¹Ãòþi HÒ!ˆ¥!O\]-Ñz˜¦Å%ÛIRØ*²MïîH> Ç»/ÂCµÜzìÂï‰ ­Ï„á±L²‹Ô©'‰úíRÒvéBcw]w¸ðÙãÏÙçD _ UþéxùýßþíßÿÃ?üÃßÿýÿò/ÿå¿úÇÄù_ìGÂ~}aýãÚÔª³jªPuÓÆtBš£Õ”½ ÓwìXŸàβêf‚vþpXþ¹=¤ºƒ–…·©I½ú(t|¦Î å㻸ª¹HaÌ¿^}ù{pÖó ê­÷%þ}ŠÂzsBM¹µÁ¸›Õ Üçd¨_r‰½MœîuµC×ßóKùŒUžþ $UÉ~æI9‰¢ëìY¨Š*”ªÜ=CÈÂÃ4z Ùò0‡nÖÅ7˜§Q|(U¦¤ d ‰¤ñ¨¤ª´îžgSU ¢BKÁ Š+jU#„%·eD@Q±\&ªE¸µž¡0Õ³5õ@RüÞ­­Ô²[µ¢¤…¢›Xß»\gi¾«ÂGÈ=F%#hw4À2Úå”t›W<‘dn¦q˜“ qhÍÆï ‘á^Ľc¥ýj;¨w·3OüÐk‚yPò5ùdjæ“xö}ûm€þiÅOëŸø×ÿëÿà÷+Þ¾öWÖ?fN¡7k•Bw+Þy¹-ƘÞ¢y&%MïºÉ†9ÚûTÕfSpE.퀯û¬{›¢l|/1-¸UV~.©Uã¸+ãôz&ë½åN­uáógxýÂwnï…Éo-ˆUÃ`u\»«½~æÐ¨ø÷·ßç„î†á•¬Z=itßÎKÞ ybS4•æÜ‘ÆÖšOf#p¬-ãiÀÎ>öýÈG{ÎäYUR©ËêtŒöÛPAœ¸¸õbP *nµM¡já„5ŽÆÈØD-Ä!Ñ C*l<§°aŠ„@9Ä™{!²+ª;ƒ}ºõnˆ™U,t(­RTûE£MÝ Î7DǤ¬9i’` R¬Qðn눌fÚ^ëß76·*Ϊà M®ˆÜ»|…ÒÏ UöÔ¿Ï” r.¨ ušê¥n‡õ­ÆŸ³KöÐÁ¦Aßÿt¼üþ¿ú[IÿéxÙw~ðü¿ôñá§–š„M…ªŠÕûiîµÐARÛ-À²ÅrÔèaz°‹YL¸«ZÈ el¼Þ!É¥R~‡~íÅ­·jþ®Ag±¼ŽX%s©Í,yœ2tL<;¼3žt8â—ãúý„6xvÎs_„`Ç”Ñ";ìö'ï=„T_Ø7¼~—f”¬º”u>¬ßT½«l†‹‹™i£Çl"> ¨ÞútUQU•2— <[!­›dÇ™(ÝD/'ÎB&²Ãº2QÉTf"¡Œ:¡ $*Y"šÔ“ºói¥DÀ wë`Ax¡ÛyÈö«ÀÀˆs§]ŸB<›C èÀø¾QèLC°›zÙpê3!²È:Ë6ÅUI¬r"'Dzjç$63¦JÀév¢ªÞpnƒp•FtÕB•É<Åôq©Ìl¸+©pTà® ¨-öTy§4QÙÄr¹¬ª@¶õ›¯Lê?çøógPoѹ“rïëŸVüÿãÿô ›ÿZÃú×FGÏ!Ùoøº&³Ší>ÜžfJT¶§™ë¬uê|ØÃËzGÔ‰,TâLœ-ƒA‰yâ‘ȤïÉDÊdžªªJNÅž¬ZL”£|A.ŠUË|Å*Oÿ¸ö(#“ªU"*˜‘k-†Dà–­ZŠÌ:ÇÚæaαn ÚM‰®Î¥o‡X…P²T ÝÉUEçE{ªÙEÒTŒD/­_õxG(H•Ÿ0uôl.»˜ ¥ý¤ØÈÚ5DQÄJ]åmü>^’º8Û]Ø_ór˜!Kót«×C˜Wt¡ï7Ÿíâ{ ÖO¾1÷ñ+†ê3¾B³»¶°&wªÜITI­›î3ð¤D|Z#å• F€q8n³·«i”ñ¸Åbs“ý”@[»Žžð¤*DŠAÕÙûV§½t=àpñ£­´¸x~eaëpÜý®òÐW< ¯Ïvó)‚ûøOµ¦þ O–{ïs;Ï?Ob¯‚uÛµø}4Ü)Žé½'sïX«G«^®>=£„Â&dpªô8™DíâYÈÇg/UÕãÄb2UÁ$NžuÙÅÉ–=}EHY ]â!–‚ðK@-Õ‚‚ ‰àJ¹TîŠH Hp)=ƒ,) Lé…ubyË j)ídVR,Ö–×ÙN…Æs¬k‚HûDâñp³Ùæ{‚Ìè¶‚V(Ñ…¯]¬êâ;TGÛš¦Õ "@y+Ðû¼~— [›hµ~Æ)€nÞ% …T"$ó<:% Þ nŸ6þ"üÙïã…õ_é`™ù:v{zgÒ°äûгÜä®[Ÿ{Ô™á]ëêÎÆïÃxÌÁºžO7q:öNBb5P§Z/çÈ%¨qþˆÕXŒêÎÛ÷O¾¿R'ôú~GOÛ6®¯£­Íï½öbHFšâ×’M£~áv†ÞhýÛ7šs0_ªs$;›ºc: B:•â,wÅÀs] ™Ô£ã3›fyؽÝh}‡õ›Ì1UIÂ`>Ãz”5•ŽÚ½¥ûk4þŒQÖSRÈ€Õr&ÓºõrÓˆ(‰R…"dLRc¡ `”þ %I´wBˆŒ*fPÅ2Ùÿ€ðA§ÛF‘ص£€³dkŒhâ°¹E9{nüÓ.IÙý7ÚÆ§rbpkÑ›ÆØߟùwTÙ}¬å¿C©óÚDø“/h²ºô –€Ö_f¿÷¿ö–âPáKOþK|¬”'5E.5j–zë/Ž ™6‚¿xBI#ÊÒ¢är8M–õM2v# \IHÁ ÎºUz·_GyÑ2}© ²»LDïªo=hô¤Á|ú.×::qß¼ï®{Û¨i(—ëùÒéóBN9Qóã½xk~›8¿\|ö|¶wn ÃÏø¬J’èd«•vLwÍ‘?µ†Ý•¨.@5ñÒüŒáù¹Õë­çX œè§ gV•$…NæI$•d%qR œ*;À@$³7Ùh ë€å^OµT$–€ŠX¹ˆÕ# U@4zöixËâÊ0 !¼×K%¥ T@m9XîÌ',Œ±š¥{: -‘¡,7œíþ‹½B¹k˜îì-¢Ka]²Ô溳Ï#Û£@6qWˆ-§š©ø>~ß6âåí[@(´<ìÒœ–Ûb-¼EÒøö˜]ÒoûÛͰoãÇ1ýW=4Ä Êœë“D½Q3€–í=-`ÙÜÏTã!uUÁÔ»çõų]h²[ÒˆÈÇw ÍŠìS_éRëÀ`r”Ñ.•.¨6r"d¬ãsncÇý§S1Yâw·_{ç]ö¿;+0´>)ЉsÛâLò`û^·“ Èx?¦k+ÔÙ¶æÓ­O—Æ'À'¦©ÃúùÀYÊ­WžŠU,óéëdž¬¢ÒQ”•Yý3UIÓëÁ"…h·v<‘Öb™§dˆvs$É*EP½Aì˜ÀŠ:” x©|Äz©¹èûï§=áýAÖä*²¯Þ÷bºïgM™RïÌÎn}e¿Fk-p´Ï×iuZãØ þ,dZ—" CE$T ÉL¢ˆ œTRŽûZri¤t!eDB ‚2#ϬED$Ó•¨\  ‹¼juYŒêB×ã°w.$ÁH;d‰ŒÈzZöWPE©hɽ@µè2ˆ1™g¬Ñ•», *èa ;Nñ8Üöì 6Œ/\šÚ?¬ÍÑ ó«K´v Ôþ0þœ¼ð{oŒ‚Ä£ÊvÁ£§”‡ ³RËàŒ (@ºÏIqAÄfñO7¾}d÷ø’3 ·ý÷÷2Xãè]¹/ ÐõÉï=ÿF²ÌÇ8tÈÚH`ˆuuÄÉMûFÍ)ÝMeˆÍ ÷“áXtjöZ$òlƒlU­ éýÅísp“~›ÿáuO?ûyþûS‚_xþ×og—²ÿ³Ž÷›ÑŠ}fäÖt^V-²Ì¶»ãô­mEuž¼‰õ¶ÈAâä©áÙu>¦ô´©öÑG¦T`%TÔÉÊPÚ£€ô" RKv;Q«YuóËÈÈ4¶vî4jIÌ %ŠàÃTŽUÐA(sYùá4h3{ 婎@ªªeîÉ`àLjQæÙC%UBcÙ’ëðž‹A¡Z"3VÑ@átÇö©$rzuë\½<'wtŠœ¾‡]x5sáwÇïb/z,F/Þ—š/B–kYEFÚÒÉj Kö6p9ß_9fßãKåHßSX÷MøT'à«âË/¨b:1†ÍÒL±a[Mé²lŠMHø\ç9ì|/œÍ¥]d並ñC»ÖT W°”Ñùª3£}±-4~ƒ‹qÔþ._æÜŸG/Q¸¡xM9ìÅÀô[tûßOßϼm1MË0›_ÎG®&mQÈpb7œny½ ³iL×+”2 âÌ–-U!sX—bžj½cuÅé¦Ým/Ó7Út¢¢N–[2CdT,þAg–㵊Õ˜#N!R°–ÎLN˜ÃYT ŠyRƽLÀrõ…HH:— <ïd_­ QCLQëfWnµ¦ÃÝL”ÏH\OÁŪÏÓ J¢;¥uG7ŽÓoÿXƒ¬'ŽoüÍêõ6.¿> 4¦QÝjü ¾.í?ê2º™UY&¯xû<\ö*¦¿Åé;¦³Ë” ü‰ò“w‰©¾UÉL¦ì+ | Ù •x$*•åþ®/qRÅJV¡2XV·D‰•ª‚k”䯰ÆùÒŒJB…²'®Y1´ÎÝÚüåv­ÈŽép'¾=]ÜÆJUàÑθªhî%CK'È@=`¯Æ§}iuòg-eÇ.4EgRQ‹TEä±@!Á…JzfÖÝ¡I#?·4)¹¢ì ‡j{ß«õ3Õ¢ÕuO]ËÙ H8‰‹H—ÅJi’ªeRÌ$üoÙ7Íòñ÷ÿκ‡5ìO‰Í·»w%wM÷¿,”Waè IDATf¯s ¥çe‘%‹å÷ó_ 5Ëî˜~‘ïþoÕ%È®ú†=aN¢µ.}]Ÿ"ý˜cð»0çÍɘîÀŽËÛ}Ÿ–çÏ~;QÍ¢ê@ô·ØGcD•'zsîn½ûóx ‹&»¤Ñ8Åæ^$•01½å§^Ϊœe'KÛlgU>x–ªž]×OdUfÕYKM£/$ÝàC›^G'Tak0d”‰>EX¢ž‚ e È Õ*pe”È )XQ\¨(íÎÍlÈ(¥¤5•ºl60B)2S™€ZfØ—B) ˜  ,¸a·"€Õ^ê®jÔ2Ïî¦"ˆpªVÌj¾{~3Ï—«4´É›Õs¡•ë„á»’kuo ,krîøÝ>6S»„I“z×»€À:TE:„”Å‘²Ô?X*×­Ré[DøoÙmÐúëT¦ÿq£FéxÿÂשx~ò}×r¢’•†ª&ÙJ–µëZï5¨OGhdsç¯Í?„Õ½Q÷†× –·ÊþFêèk·gzwa̳v%¯ìèí ]_ß/ßk ~Iö£¯Þ«Y _6—øfUžVE«Dý]áEãŽÓV¹Œ?{é4ᆬíúàªDØÌ«ÚáKU8mp2‹•:Sâ­–I‡u„Ä.KKš©öuªGe”Ðx¼¬yr{l–b‰•tú42”¡ ºS‡ëj2d#’Ž‘N…™f¹ìª\Gë»2f‰P¦–\_š€†½Beqe@‰jQ¤E¼Ì¯þT¦Qu€¼;t9d©7‰‹[atºð°ËMëÂ}ø/ª'o^°B¥äUEý;IIE!I7¥ÏLE"º ‘õ-h§ÉUßHG‡žó5°{šwåé|ž‹ZEqß~ÕŠú^µ´O×û¿ÝÏÍšÞs>Û^÷üÞö.LE±lɪl;ôRRTQA¤ºÑ´X*©X×Y¬SUÈS2-Ó>0¬³Î¹­„ªtÊœøÒ#JD.QVÔ•fi–ÒNך.5B_´Ùÿ¾'£œÅT ÈêÐo*­\nT\•©E,VHVhÙ¹VX X¶;\JY¢(¥…*ª ª–b)<Ѫ¢Š‡T)´X§Ö‚]ˆªˆP0XWYbM¿,Ç+Í-‹UsÑÆÅ`Dk+Úüy ¿X` –ð iÇKxùY¡ p´¶qù ÙÞ8êJònFé×Wƒêiïй‹Œ6´[ûÛßúÎåýÌßýîwoƒõ>ˆ!önÃä'ÿðÃû-Þbÿ¢ó+Iå½0jô?â<|4>̆g=2ωOG· v!Àf~¨ …”U…Ò*È]Ö”HÜ£üˆdÜQ³ -.âG…”@¤Ò¥"s*Ð3e+ )µÞ€¥Ÿ:A¶/ÒEÒpž¶j á|š„yçdì?«Û"¤Ê.OÚÿÞOêÙWwr_½ÌïO•—¼}§d½Zk¿¤J›U?“¾ (Ór·t·¬Žæb©èp’)Yâ ¶ ]qRgU'–¨”R<%¦‚'+=B"Ψsé\|DæR¬Z8£2ê\•DPÓ£–Ú+&¸xˆ¨¹³ˆ² Äٔ "SÉ T©ˆ@©l€hŠ$·Û*´JUZf)ªU‘Y»{”\$³„ƒ?…H!ÄE)± ÂA†Â"(,‘ÝÆ/\ ;^ry]ʼn•(ÑVLD7ÿµ¯†¸ê¾šÍ »: ¬™EFP0޼ðX*‹yl­ƒŸ€Dè8ë` Ëg/Föaì=¸ãÎÿðÃ?þø£ŸvûÇo_²x'^Œ¾ïm˜>Àã{ìþU²åÛÒúgYÝIêi3`…J£³nÝ‹šºU¦qå%ŽKU†‡YP*ëÎÍð¤ï›ñ¨VŘ"F1÷¦V¥‚Í÷€Qo›–âZ ö$?ÅÝ[ç+õ›à[íd}_ÿž¢veó¦ëä<ç!¼ÏúãÃ:Ÿ/¶ùÌ÷s€ª.e2F°TÈ֡Ѻ7R᤬V•-Óm&„e*Å" LFi¨DTU"#U<ÅB¤ZÄcátßêàO¡\¾o÷=ñ&A OäZG1]E.‘®Ö ”HYÏOW‘îf} X¤è".^`oŠ+Re}KåáG‘ý«ÜÈŽž¯ ð¾ßöÆÛãmä½s÷|â?˜Ãú+V]Ò^$¼Ø¼K"ý)LJ«Fæã¬Ç{K‹cqµ{‰ÚÀ"RJŽáWV¶@#¥ræLJ_|rƒˆÒ©1W²ƒ6 ²tQíÃ;d9n²¬t÷;lWÈMµÃ;Ùí%I2åŽl ±W‚àSÃQà^ö¹…§¬ƒ ¸o‘ý~®¨ðÆÀø8þ2LTÈÝ3`׃»zÁ ÛªãuP”tïÈ–'•é­®$U*«[Nð„R8‰“UµN¢„“:©þ3…T¤‚ éˆ3Q§ù–¥GÔ¹ª0Bïø~†e3°àðŠæ¼ :î°½1{$«M£Xb$²´XŠÀ*f) ±^•V?ÁÂóUXÅV! âqæ!@”_Žåÿ ž…•nV2¤(0¸R„Žp K‚°ÈWצ]«d©~¬Î“Þ¯è¼;â‘*Žíj`îåü×9@Ìf Jë”Lª>ºƒ}öJiåt/i7{;‘Pi/€uá^²ÜÒ$pnvºáwÙ²q}±*ÜÉÙ j(W"å‘`›`p)ú#ÔPsð°–qèÆé:&Ÿ~ ÕÀ:†£¼##ÛOæ.šâXnìñ[#5ÇQê~sÆhÞHNÌd"Ú“™ Ç(^…Q¸žƒU¥K¹ù†czDj,Ecv!ÄP ˆâPûnÅA01Šc˜Ç_ÀƒûÜ™±o£:B™¦Âõp+l¤ ˜íX@2ÂÎÆ"í5ÝMZ (Ýh»Ž’.ÑMCt @éš´OÕ7&?5²ßït6}اa…ïWÞõ)Ǽƒä¯Äîo-¦pÔÇñÃí7½Ù«µ‡m‰ “›C¨4ÑYPjÚÎT¹GO;}g‚•U¥‚•P°¨Tg…å$Í’g¶ðœ¨L;wò“tÛà3šÃ˜)u~5 X”4*î,º\û!ÖN‹¥„ÍNv;æz3¯M7/XaSú)]&ꣀ ñÆÚ-­»{‡2½Ÿ¡ÍZ«X]%›CÌ|)à¾tbÚ|¡‚G¸~>‚ŽÊn·4"¡tcU¡tA9x@¸8Gªê(?ð1”5x%3ê9Ä'Í­W[85jž}Ъ+ Ð@KWæ’ÙIÈÒ8ÀÅ‘:„K5ÿ;…1°‡i2<¥AŽb%†@éWâ8ê/Ò(CøT¦P¤Šc媇™îäDˆºd(²ØÌ~÷¹åÙfå¤_<ÍŒÅøÒÁ@Èݪýßd)[®žˆ M»³m&Ût‚îäÊàEpãÖ úùñA-ôkrPqÕŸ?A¿ØøéÚ˜ýÁâXðÌÛ«¯µÄÍÖñ)Ïþô æÍ-j\½{ïã&`á',B_{|̇~è0¾»Îá ¥H²€dÅ´XZ¶&Ög(QÌ:DU9[/‡éþ(‰dn ÆÊRúât¬ôF“%G `(oÚfÇä2íé-*ì‰Èg% w2OÒMÊÔö Kú²Éï1¾Ü"ÈU*Ÿ£kJ ?,MÞ6Ùv 7ÿf†‡Ê_nÊò{çä*bBiZFr’‹UÔâq;´$KH3-. :€¢Fp¥½Þ‡»að 4âUa*†×ÈÖ5ꈪÁ+ócdžLï6ÞiEvGðjø™f–JÀä-$PAJ—J#b¹ãŪÏ=¦†D¤\‘Nv"“¦Ô«êÃ…£x-]‘¥á5À”µ][ÂJDpˆÃîèænQˆ`U‘Œ„F'x|ÎÝ’iÍ«þ:¿‘«ÂEÚ3÷JÆD¸…d„Xf)ˆ¬*rXvg> È ÅApbˆ*E73FÆ/¤ê]<}埋ñ?ÀÄ ?úÆÇƒ<}ãë§w÷Œp—Y}¯‘õñZÑàô­›9)R#”’—B%‘–W$,€q3‡êÆÖ(ÉA+ìãJ©'èU wž;ÔÑüþÿµ ×ÝÀ”Z˜ÝlLÌŒbœEͲžå_¶e¸-`ºÞP”{9XLËT=®vHË=槇€P­ÂMôî±Mƒ×áÏÓÐùŒ<îØxH $fE—\"àø^t§ )€¬@ª÷LId°‚…æêLŒ# º”ÌCQ‚ RT «s(#Mæ×pšT9X×@Rǰ¦ãxìSff ¶~¼‰æv|´Ç€ ²4}jý#4„#1Š•bé2€êÿeÂ(Jº€’"I!KãÂFAb&‡…*Ò|A0ëC æ10Ü‚‹CŠÂpOm‹d"—°® D2 £p€$o´S±óÃfÿÊ‹4KôÖÝ.o$b¬È®î$‡è+3yÊ`{E2„$ñ´r¼‚F‹a¬t<™™…ÍGˆ8˜ Î>¨æ:²Ÿ¿=i3,fê2@Çw™+jåá(H8JÆÅyT i.B)£âCFˆN¢FËf2’)21RBdD8ƒZC )#D )#ÀÒ@5 °à|Ñ/{é©7Ržcl»_„º"ÔhÞ— Ò™MõŠ@Y)ßž`(†‚aiY\HeÊÈ…Z@…PYŽý^&PʸâýÆçEö§´õÏá²ï0݉¼‹Ãlòûƒtìº à¨™Aêiꬩ‚¥LE’¦#H²À£3¥]qZÊr¯d•Žþ!Š $ÊèãPKSúnk€àn§+zÚŠ¾P¬øÎéd „m]¡‚ ÕÂ8Ýp±¡c’Ñ6ÃúV5Žå4·Õ¥]ªZÚ1ø\L,_û$6¦iô‚5äÖGó8=é˜öó1ìî Ä •U£Aij%! %t&2ˆ ¯5­W¶Ð*DJEVź"T8œtß;ªph®Lâ°Öå‚#~da{ó-í«8,EÝ/#£Td1œSÑ Q·%û¼Š-†KÃFŠB%PÈAJáœx €ZT ñ(]Ü›(qUu‘³¦‰¸èštÁQ,zÐ q”µä+÷2,/pTPÃ6Ž˜ëô4•‹·‘qAtëÊ@ÂæÀ ì e [ƒ]ˆÕÜ#—€Qˆ®»"°ÅA„@hØF† tDË\`PºæÇw,B} ÌþJÈÞŸ_‰¬O_'>åÈkáù6²©Ö]\ú¸ó¹19Œ"aM3vuRJÉJEJU¡êâÒœ…¦V@:(1U 3Qƒ°|cÒ»+Öÿ ¡û#Ábľí+‰Ñ©!AÛh£q“ÿg½WE•F¿eŽÚÖÚ°å˜@]ÙjaµÌdŽÉŠ´ßìç×[2öåk½€¹èžÜh×`Móž€ýú¶¢7B­n#A&kJØýæ&cͰ[o×H¤"\&ª`¡8ŽR2Š*á©“'¼¨ ëMÍ;¸krë«ÊÔ3»Æ°3hÇ–ÄhÊÛ§ž½ç‰z3¤•{ì]–,ƒ!SY¸ ,6ÆlÃð|I‚¤0$¢ð!aœ~ª* Q!!ÄkV˜¿ LoH*c|Pˆ§r\Øoþ,Y]±”© XŽ>'I°µ.©TC„)œ™¯î™Òˆ#.E“æ"!R#Ä ^¤B(¡à¥¶­´Àfb ™ÀàÜ jÝ ¶Šn (™q}¯ñ#‘ý.,ÎÍÎM|¼{òN9s|_¯O8¯ÙÁø§œÏãÁßw|¬Žü;?¾«¢¯âHERÖ$.…8˜%c+%K•WÊ¥0ÊÌÖM³K׫E^ªiáâ¼ßù¡RsÙN* @«Ó‚´\ü ›šÆŠï†3Ÿ‚J£Â’G¡àfp?äÔYUŽªé>¢Ðg<Ïv‹õlÔßsò.%{²(ñ«ŸÌ{ü<ÔMB°…__¶ûj&X÷1¦š½ „Ó§6f“ ©` &¨¨J6ºT¤FE¥pt.rTÅ!I¤ÆbÌˈ»ˆã¢®Cº†‘;¯D†Ž˜|‹¡ú@ÒÞÍÌd€¬ÀpçQM¢Éëx–8+Ž(db\Geih Ûaí$ðšËF‘è*¤JŒBGâR¸‘J”"8.Ôªb€ †0(^y1Œh­Áê u5ˆîRw7xÌĦg’[†"³×…/üˆ ýû– ^ý°ŠäîT˜5$ãR@`Q((o6$QtX!“P8òŽìh÷)þÝß‘ÚwÑùÓÃë‚ñŬ½~>ßà0f_7ÒÙKÑœ<ä²óJeb¤ê`´ÆQ•E•òtf/°†$dULAæiÚ´o»t:Û¼NnR¾ßƒ*Çl”½À³7›2¼¸–uaNþ¥[ôQðÝzvɹ]ˆ»°SÍÿŸÅGŠbÅYFtr/Å.¤"y·É=uîgö ¬kl@Ú#höhú ¬kbM‹ÿiöÙ{g…K*QUþƶ€‚”Jíå`‹rÆY%!²†»:§z æÖz]K)–ÈŒÒ`²&‡#…2Êœ»«“r¯¡køÈj*†íS} ÅUͪ%YšÍ}]Ô®t2| Yfc á—;é$D7Fm¥ 8ŠUUTŒÁ®…%&ð”ŽaÂ]‘å„%‡š§gøq©5ˆ ã FUt— -¬Fµæ]1c:º¨‰¸€5µ]D>¢7vÑóÊÿ'ÒZKB¶nõ—à ïpƒÞrQ-Kࡃß<Ïþ(rè|³?Åþ?í _zÙ·@»úø1ÿ.îê+¤H¡¢ãx* H2¥ƒU>«‡9 T±† f"ª˜Q* )ºoÍ\¯¥7=F1áq#íìKá*ÿ I¥¦YÍø.CÕyªáºLÿ 'Ñ.jʨk²J "«F{–@Þáè-kRÓøibóû´Þyû”i>–Ê"e§ŒŸ2rhç´PLúbP«NvÇ ›–C3Ê2Ç ”ÝÏÍw:κ’äpÏŒ£>dóÝaÜm EºhQ+†üyáG^ë‚ ´B&€‰ÖÛ'àÔ³«l3ZÜÔN”ä"xâÔ‘ôe`<„‘8„Q`"Ê·^ÑÝTUp¼633¥YE¦!lB|8Ö#CN=jTtªi‘Š!Ûç²1>2ÓM/Rv´¤6¨Þ;­ð¤uÀ7ΦM•4D8¾!Ö/êÚ„N³÷"çt¨.kc8íîÖPDÉºÏædHC‘ùÍGö/8^OÀ>Åþ_p¼gXïHW˜¾1û…ÛX'#… X=‘R"SNŸâ *« vè<^ Ì’@ûkK¬BW'¹°‰ŒŠ<Û”aÅÄ–D†Ë(­Óhö¸ Ö…¯Ðl¸]`VÉ kc†µ•Þ9ƒM?™6Ÿ4G^XöúÓ•[^„ÎÉûcgå¨1Ûú.kx5›œ< Ùe¼½ñìq.iu¨Èèr#Ÿ·P¨LÉ¡1áfX‚’͸KC‚«P¡4¯BŠº4¼¨%pÌÌ”-v§h]“^×Ű×îC]Gð:TÄu”-˼K¬@ ¥€ËÍ+˜.Nœˆ­ r‘™¯Ïišè R§’YŠëË£¯Ó4æ*„ˆÒE€tGá(¹Õa} ^Kã#©œ°Fßr‘Ðpð´sZ9¬G*fëÒ9 rbäó Aº?ÌÀT‘³_àò! °á—ç㩟"` èr&ÊhÀR’‚ÁH›Áe?S­ë÷]PÂ5>¾#ŠüVTßš~ƒ!àc~Ì-»bª:Q¨d‡ò'T· Â\y•}5¹]‹Ì*YL=Å ¨ªZk’ Ï‹\P0Ê>:´”1›o·×PK¹³8ªoã¶¹K‹F¸Ø˜I|s9óˆ4Ôù¥(::'Ñüø)PŸ8úÌÄ®³_u­ýšÀPä°‹üª½ZVÝ ³„ÐT^ä¼Qu•ýGovÒ­}ZSÙng𥫠"šG`™+ï¾tÖØ$CÐQqíJ²¨Š1µçÆæ¨àÁäèÔ«™™#dùã1‰—• õ§,v¾s¤îwºÕ%™j0'×q<ž\LàÌ—fbÏP.Q” Tk3k:d71]„¨ŠŠÈŠÒEÁÌ(D1¦M´Ñ=§»@9^ÓÍ[昃Aê¨&ÙAÉ­Wghî›h–Å¥I7hÝ(^@·þ¢«G’íy'öÞSX¥¦b+•䈇„b¯|Z÷ÖcX˜ýq,¢ü½OäíÆ5?~̘[a #¥$Žº"©ŽïÒKÚcU*e¢2jöRrcH¶~Cd*…¨‚ìÓ5I7’v å"“]вU'Y•Þ›3.f»–¨kMIá(5÷RI“Àò=ÿ¤•SÀD Ër †81µûÅËçc(µû=­<ªn¡:N–¦¬TpãôM+V±Ér`j’`ÐnÈ%V´´¹”*U°»é¨7, ªªºZ3nóŸê¦Ò*$*]Q©‘º@dF*XS#¬P<†‹•TÁcT¯Q5ä°¾¤ë§«WÅ©}DsA]}ª ®\_IÍmÉêÈ,ýncxi)º5 aÑÓì.ò/Ç–<â"ŽâQ9*¢dË«}ÄüÏq²í(pÞ» ³Iê >4h­[±ˆÂèíßæ‘„…É IDATØÚP=(VÅD pªÜýÊ»è´kVI‚µrãq¨äf3Tb«{ »|‡ÆÅ³L¹Tuõdg´Å*ë:þîócÃïÙÿGæõÐÞŸwêè`ØÊñ`š[O1H©”GªfÓʪ†{!QV!²çã0ãRÿI"KrWVMºÌ§CÖ…yûéê3ì¦/[JÓ“8lr@ ÄQ+²‹šPPÝ2v j6<­˜«RÀ2 ª–¦~)ß7M0ãxCõ–=ÄÜ-lz˜2O?Ýæq5TE)§FUP°7AbVˆ²lÈá¼ Ve¶R³±ysâ'X6ÛNe0£šÆhïZtajðiD“êÂÑPçQ™y‰äq úÉìNIÐÀµƒø)9½bÆú/EÍÜàÒÃpm¨œô’ÛA²0¢:^§¸TOý ©d ë•4$*lÒ{H6}.=-E2*;kÚážQ5ÊUÄÀ(RSªÈA#B â(4*Š¥ƒËcη{y +·h–HÐ]¤Øæe$n Jάƒwr@T á–¦eÚj‹ìa”AϵãgLŽ3@ÛñŠ£ÀñŽÙ÷ñ{ÀÉL6øalOúh=;‰b©È¨Ç“GJ‰K:Èa¡tÀ™Ë‚€:#:'³+Ê S»ì¢ ‡rû…¦Y#¼\`ú±¤µª0 O2Õ6 JåâgÒF•Âþݔˀlgöú˜%ëß–;LÛ$#PPTÔ³kvJJWÖ$Àyš+¼L˜v(!œòB‡{Ð~íƒ?ƒP¢£v€Ìå•Q"K` !•Fðc}´Ç÷ 6Nr6ô.6Ó""½“@Úå°¥ e£˜ãÒ±8é°ŽŠ¬¡dzÍ8¦zrÕšžJÇöt<_svÞXÜífvÆwLÎ}™+€…LYûXû0 tÕ‚ƒ{¯Æ’f‰iLØ©Q`µW{ØjÞEª Ûý<(¹Ð”Vc6¡Á–FZ!#šY´¥h'ÌÐ ÑÏw‚—é7M»%íÕ;µ–¿Ð?+"’µ6µ¤ŠðN¦XŒ@syµj2àfvYð¶ŽŠ_€6æmÉ;ÇßבyÍú­WiVJ1SLdŠI¦"Ã@ž©JÐ^0D) :ˆ—{Ú IPñ8wÜ”÷fÇ;Ò¶]®FBeÓðž»ÄÑXޱÔÀ¨ÈnUÜö ?¶f~±1fæ], ž›zÎÊ,kPŠÈ“ðŠgÝiµ¢÷È*†›E¬p¯™2µjÍélÿ›-„•ZMáã÷‚çm†K}û†¥Jºã‘ë‘$g‚‰ú(yS?™t›yNÊ{ätÖ!·¸vkÏÑJÄ aD.þdHÁ¶‹<»jò‚ Ђ¼ “ZJGʘV0Ñ ¾sÆñgÿÝ8w˜=. Øž¸(9e'¯må :‡*Ò *DÕ‰ÓÛ,¢*ŠÌ5ýUH2/ …°÷%+¼ rêÙÓ„ "1݆DŰáWÊ`çbÑýòºÅ¶KµHÆé;hîµæ—ž]ç24ƒ ŠAÚ g®1±„: aj˘ÑVbt•,ìû+`0™S„êÃÙð·Óª=õf}]Gsâ¬EjJ=úy÷‰ç ®8>!T|­ñÖ‘ýõÀ½xö½Ç+‡úÉ¥°ï8 È!k,¾etCkÈnáâ êÜ^$¯´ëâÄe’ïy˜«ír&à »\©ìR{ìž!Ætó™ÝBDûéª* óÍÉÊža@Ðô5¼ïV·sŸí,)2O3_£©›EÚH<#ù]qîù#·K»8+ªöo× ²ß±õ ²cmÍ×u¶ õ.%°:ɹQY1˜è¸ï îÀ}„fLoÜ=5éó3FcŒ+j ÛùkÚxi=ß¾Sc3ò§t2ÃZÉ®iR¸äÕÎÖÆD±:6‘ºµhöæf¶ìÚ®msÊSÕ¹ñÎŒ„Ëe¶¯¯ ûµÎ‚í_ÚW]ÙÏt ªÚ@µ¬C‹OWx i5ý,º™M¼·e2aÏ6Êu \ñ]óÂzWe£9`¨ºKᔂP!ËËiY¨ ®‰ËèË.Wp«¦ªHˆÁ\µÆNTÛnåN¶¬ó;ì·Wy" ÉHˆ˜k‚bLˆ°þÖþΉ ¬ŠÙ5—vµ¿þ\íÄkC#{[#ä¬Ð¥³†CKUgÇ®º‹oKF|õȾñÝów!ûWY|\óÛßþïý»¢[ßýæ7¿yÄø«²é[Žì¯Œ"òC\Ý)¥ Tâ2‰J\ÈC#8¢k:fvQmÍêBº{$ÍÌ»}ùüÍ‚»éf™l{îäé99ÿ?X(‰U¤:Ž·?ÆhÀ(D1§î}{N`ª¡½Km}˜5‹«ÃíȶNÖkh[lêy¬÷HSç  š¶8ŽéâªùÞ¾˜©õJ)ÓÙX¾.pò­¼,”}ÓYCGX‰•5ôšq c霾 ÆsØQ}âtÎ Y0£7“”7í®iVSlÖsÃ[lŽž¯'½4:Ÿqèцɼc 0UÎdI©^¢+·ˆLyKw ”yöá#y=4ˆKÌ æð 0Q ÑL8“‚’sŸ§Nü“%BÂ; PBZ‰3Û}©5]\¼qœ—v8õí€ó^À\QN[PôÖ'ÑŠø2ë^}æp³@Ìþ^Z‚¾§0ã)‚}‹ñÕ#ûÔ«=‡Þküñqý/þËÿêßþ¿ÿæoÿõÿý_ÿö·ßÿ=Éßýîw_ûôÞ~TàzÁ€Fàb×Ú • ÊPùùÕJÇ–ç}.®vhg@_6@r¿È·¸ål'v¼;ý¡¦yˆ,B¥D.“?y½¡‘¿³Is"°ê’î0;Y­yìýkW-¡Øÿ%¹Päú{ êl¹°ÆÉ9ø `¥ûñß—æÝ ™rÁg_R.ÜIN§+éý{i°ˆ¤´w”.2Z8ÙbÄó5Àæë2Ùo Î,èéóÅt#Ûš4ý¢_Ü_iþЙQú5ëÀMà—»¥ã0ÍOû Îev XiÉc5ðï)J± „s=0üÏY7æ`¾¢mfQŠØ“ P©¨êæEÑÂ+KŒ‚a³ÍÆÝÝdY@ÏÙån®lOk›¦ô^ðNÆÎòg&ÆìLô´Yù›†“¥ôÌ@t’˜‰Óp&§m1 áá{è(Ýa”·ïÖyc=i´þŸý‡ÿOÿ‡ÿþc\þá_üÅê}ú *ÿ…v˜gÿ€+Q‰:ÌÆH ¸ è@EGùsOêIÉ•»uŽZŒ±€¼ÁŠ ‡=Jåݬ›”‘GÌ7¶=wa BŠpÅÊ|²ÙÍÙ±›”“>‚o°Þg Õ¢_¬ŸyúC®¬YØa¦NF~ò¡6uu~—Þ_wFN;ßD|™è@ ;#ÝYŠ M,«UEÈö@BÖ±¢yË]Κ£Ù¬ŽÈ‘ÃJUS÷â§½³ïrD±šñoMdó9î°;J®iàë[;Û˜3â³]|»wío4oÑ ²{†4xw2%Zc‡7ƒwÐsûuÆpÐJ¢œ^ôJï3dR®X&¹C„g@b%Ø]  ÅãQ„fql¸Æ¡™(®€08»2yö4å™ßø}Ï$ï²¢u=Ë,S1@KËÔi¦æi`€UÊx'¼¼fÎ÷v™V¬ÿOòøÏÿÝ¿û§ÿã?þãkþ£ÿõÁßû{ÿæÿú?oŽðË/L݇ˆc—@†:ŒÃ$¨D¤RŒ©»ŽùÞn}1ì[÷KDð×sÚNsbº¾Ã}³y,A »³V*EGð~Ò­–ö“{¹õébCñÚ¸õõšu}î/,¿SÆûhU –ByGë7ßpO5‰6OÇTZ ÌJv’NÓ‰š\ùT§ ‡Ò:–ÖºHξ“…8¹‘ÊqÆô Κ£ªO¢ ¬IjËÉÉxŸ1³vi·íÞç·Þ)—‚°U'­Ñüûæí°Ðî4“±Oóbfzª¤g Ò¯B{×Ã<ƒ»$…bf ]7굇ó¬*1ÈM²óóêS"7Þ/±Ô>gQ^ž«jë‹\SÎ2'¶¾HúëÌ ‰è«4§¢È¶XHs2U+¬yæ‹3ÃJRÄÚ®ÑÛîçSøË7Í ®*ÓE£ÿý÷¿þûÿßþó~÷Êï¾ûîw¿û]¿`{Ë[žíWEäè‚:0‘ÀbftÀ…ö ÄOYˆÖræn?Ÿº’¥a±F/×ócÕ#"êV sî:ÝU#Ð+F1Õ»‡ÙM9owQ+¢gÕ"–zM˜}á»U¤êó»ÉÇÜóéê”×Óqî§4½P~Wë•q]Õ§h|Ýn#géf§.ŒÍn‹R@ƒÕ… í~fPgLOª}¸¢&}É´Ò\C ãwg»Y>êB‹LçÂs˪;¹²¸£–šÖTwˆ˜¥g[X? EsU“u÷) ׋Y·¥Þ¹¯+_}“Žét;rŸÁ½û>k¦XT`p\Ä?L|›¨wÇTbl™É• eoåŽL(%0\eƒxÍ’¥´ôqÁC¥ÀÑ{8ßXyž9ö{HãYåÅÃåQXÛ!ÝÛš§†Ê©×|‹¼ÁøúTo÷Ô…pŽÎûÿÅ¿úë¿=®úÏþçö§ú?ýƒðÿâ/ðÿGfØ_ü{0¸~P\<³¦y=ñ»’Gº0Ê€‘Õ7ÿ`mìðäg¢PyJÊ ëÎ|‘€˜4´ùn‹Úgºò§l  ÷°÷ÿª€Úî4ÌÓ»Vê ßSœ`p¦ýOÛib뜳ç!ícÁ+5VdÍâùݱcÿÙ-Eöbi¦kbêšáµ¬‡ñº˜ýb-o–§»L´Y‘jŒoÝK1=&{3·\Æïæ|›MšNU듯§{=ÌVn‚Êr•ñ–-€Mn³µ/:ø·ýÈYT°À{Tv5ž/ž´ýZ Ü ÷|…1”…"b®<‚.v˜¡+6†¹éJYµº‚ÁÔù0,•¥·4DUËR¸úµÚìˆ}Ø…s¼KX3amûKo9§ò\lPà•, M®—ç9•^ ¬;òv ë®8þfã0{ÃHÞ?Iòãˆÿæ¿ûíÿó/ÿå?ú'ÿÒߎ÷[æÞjä%Ž:¡Ë€ÛÈdjV n'ƒÅU}«7úë^õÝi“Ppšt“€óí.Þ J7l»¦ETWŽ5ôÌ;$%—9Q£yó(¥ï«Æéä^‘¤Xpþ³ 0eÛEQ~ñýõi<h©_ͪœª|öW`Oò^Ç}¦£ur\âÊ”.;À¡År£Qcgãt\â`Õ…uÖ‚v׋^0È3¦×L~.Ådïpªï×ÿjÒn5¨Y •+Ý2n¤ÙN„Ö»Å"8ó+@KD¸­åwÃÍCU7ÄzoïšFëÒ|O—^<ŒòÂw…¡¹aè,Œ Ë5¨F¾ÁH!àÒµ>እŵS³D6€:zMDÏé[l…";óÄ-²7!ƒ^Ÿiü׌òµê{cøú¨ï5N‘eï®Øªüï˜?};6&æÔ؆!Æwß}÷ý÷ßÿû¬¿ýOÿä7¿ýí¿øWýF§ô^ƒÈÌ_±RemÌÁA]F4~Ï>ú|Ÿ:dlñˆ5$ÌÌ›ÙæIjãž—n«?råÔÜÌæÍg-·Q¶å#¥ª.Ĉ ØM?‰èÏÓXh*μ.×Fá6Âø®ãLv½wòÚÕÙíç×øë Ó¡°YõÉ·\¢0Û×™¥iù[µ23®­yŸFóàË'ÝLºÎ ÜŸ5±öCL>ßIÂ,ÙÞD Ý9 ì @_‡8¿)1ÆÒø7M'4ß?Àãõ DÀî”=1ÎduC_³gý®2K½ÿÓðÞKòvmM6/ðDÙ»¢¤€¨áö}Ý3 #@³(K½Žžr,`0m¥Þæ@=»ÎÉB¢Ö\Õž òvmS¾†û^Ö?úúš>m†‰Äy»‡ZaŽø8þèûþû÷l÷ý6ƒ8.¼~À¸Ré¨DÄÕÜËùµsy3w¡özmνn0íV"ôl8¸sÝ“ñYÚJ¹èÌJ]2ºT_1sV3RwàÖ$ÓçóvJ*̈Þׂ'zºMŸö¾7Ajêܹ”‘ûØôégž° ³]Á´sôjÍ~Z½~ñn³")ʦvI§GAm)dW'é¶ìÈ¡­“1ã}L÷ú1ë›´GgÍ]H'„Ï~IÚJÒfL7Ø×„Ÿ°wnpâ'ÓÌ5L+¼<7eÉ «›äM'†`­y·¯Ÿ¿ã0u—² ûh«Ÿ¸ðÚìsî IA3! º³:.8±6gõ„R×B[‚@Ú]`î&ß-|œØÙ¦µó{GFq)¦:µÏ¢ÚpÏ™J¹{uМ—Ö6È0ÊÂ"œÿøp<_;ßf¼Qd¿Ó·üæ7¿ù›¿ù?–—€$+œ8}›Sz·AðïðaU*]ÆÉ8â䈷âš8…nÍN5 &F6]Úm²t{׬*­Ÿ©% j×lÛ†¤0yÚ–ò¬2v·€eenf·ÊþvÝ:kÉà°Çkû}`ýwÎá9꬯vk“Ðܽ°ž9ùÎCF(*g˜m¿Š At4ge™©.nçžGË8 ŽHÈÊEkW2„åHÓ}6j×J.•êÒò·;KÈ»usß¿#Â~hóšÄâ@PÑ‘³«O?AfV†‘-BPÙ×e&N7)ß­À©]\²ð€z…³†ê˜Ü,ª·¡ÍccP-†‘¥*gÓéK1ÒMÀ~æ~Bêöª”*5&‡ÙˆØæΘç|[ÂGùºaNlãñ鄳$ÖÂOá©eÄL‚—?Ìþ8Ÿ¦Ö¥°Åýßÿ°cv}ü m•Jyh\ºÖô‘ 0®öoêh‚¢ÈÈÞy¯òlhõ«œcEÉõxþ\ ÈêÝç°Ò;:n M—áo–Z€à†î”¨™ŽÒÆ©Ü(î&ØŸ\Ýä‹üØb»FáÞã÷õ‚Ž êk¢Ó´>:ãšal>-ÐØ¡:S­•ùœÚGG^"²°X2Çk׈DEÝø„œyÊ#Dqvõ#ŠCS¯•¤íßl~ßî2}NVÅV[›;˜oY3`îaÎÇØÅ¸—Ru=Î"ë8iŠjͤI˜laŸžnWýgÌé=wx‹þføÃÃŒ²Åéöm|Ê*©öy7˜Tn7»\P#¸Êèæu6'Ë©¿=P·År^'Á¶ì´ ¥· Ê¢§òJ}go¤º*bü!`ö=”tèAþæ»ÿöûßÝ(^~o¤¯ âø€üàŠ¤B„F[œ4E߀ë6˜)âêh¬Š:\R§Òq ­#Úôcãéx­çͳÙÆ«ª“+7k;&iƒIh‡²ÇÄé§zýæÛͲ†{ ¾¦Êôküñ›cÁó;®y'èë¼&§âól:27Øœks —Wu)“•›˜Þ<{wá1¾&ÅrÖ2 ÓØá¹–d…šyNöÙætC—M£OEÇ–s¬ÃkÀ~^}@[Õnlb¤NœLŽ®ì^›×ï0QZ¡ç'ç 6Ö?}`¿gÓ!X’Geë\Kâa»±¦ÈªNZ+-óÂÀUK ç3n窓‰áîƒÕ<{§U÷ùÐy”…Ùµ0&'C¢TlSl·ò*Å(xc«»ôL>ÌÙxÃØ¿ÑxG°¿ù›¿©›ÍñùüïSQÒóAä…×°]Ì(0Q »=ÆÄ%ó6lj²±UPª=ûÅþïÉr4&*Ę謃«¡è::þh°NüÖˤeõ³/Ú² ¶Â€ Êð·oé˜îZÓåëÐêuóò®í¼¨îbºA=‚O­Ýi¤µí#”Æ©ºÎŸó¢\¼ú[Y ˆü€ë¯PÉL\¢‘fV¬¹À‡óízôÞ\Oh¼ÅÊ Ûwõ?ÏòŒÓÔ÷¼ÑcÚê®]ªvƒ”˜þŽSp6•3G ´Â½OusèÝUûXšN>ÃäŸÍïŽ8ó«'9pCž¥Š6ïx º^”›œ¼1ë{»5S¬ÙnŽÌÖ5:æ2!ŽuÃ;7;ÿmPÓ1=¼Öž‚ôµZFΠl]f·ã˜Éácz»‡’§îš„Œ¼–׆îÏõþfŽeàÄ IDATÙ:Äöäùó-2͉` QB±Ýâ s£Ùoéßݧ}~*«¹øÈF} ņӣÈÙÝIC“©ïêŠÄ Σ§@T: …mîžê#cö¥d?¡Ñ[¨1ãxµtÝ›ëæÐn£¹ýñØÏ_âéÆñmÆÏec¾Y7Ý»{»˜þú*M p½ð‡¼„"ÀKd`»ÖÙ>©âYñÂ’Ç‚êÕwñd·Ï÷×ywji“ïV,fÆ×[-æ§œå©ç‡rji’Úu5çkn®Á-'ó3ÇbœÇê£ôÙçËn6ãd·(ɀЪêŽÝhñÉŒæt­ùL_¯V­G,#¹P5è”lS+ ÁþéÈ cÊ”6±ÖÖ¾£v§Oöo¯˜ùdêPÐS½€M9^¿ì´ç%ÐɳsÛ¹X¡·Å¶ÍéÔWò¼ŠýÿuV±À(“ýʘôÅ) B8œÆkÏ{¾ #ëy ëÅ"E‹Yoæ†4[6Nz±Ãóò÷!é^Ök@n‚Øy30[á¦6u]1-_š¹G)ÚðGB äµD«׋~Á‘ýg†õ¯·0Üö›Z~ê‚믠ôüs…ôºQÚ!Éÿ´Ä¥ÿäÛlÚEa‹Ë+ÚbS¡,ßóþÐíî=Ïdo‘±!u†æ)ÄœÍ0;ÿµ¶¤–·¸U--ðî£ív2é¹/\ù‰ÿõ1ròòw‘}ýôf_çë錙áöbZ¬YÅýóÁìvÂΠ‚îgí¼¨;.;n²FôtYŒÊr]$Ħrzh(-ÝËâ…ŠÒ€½ mN²4¬œ¿¬9¼Å³Wÿfçu¨ßýLrûá'«>áöš3ûköõX-iŠy@®½‚ú¬J´’sF̞̓³žI… kka tz7&·‰ºÚhTÍH%íêîÀßJ–®Ê.±ÄêÉÐ. 쌷¿8·-ÄYÃLçf4Í0‹+ïbª­ªšihA¹ðøøðKÆì_u¼÷ÔæwÇé~ñ[2¯^q½ðãÑG?OœÑy?Vœ¼dǵƒÞkM9í–îöçÎý2ûöHœŠ VdT ©¸Üúšò¿½ë›Oï'÷^ÁtEùõéwn¾ùgFvñ”Ü=`vááyWØ‹'6_qv…õÎŒaêÐáëß½§5ŒÐ1uê%.JÂDîíä%WEÓ á. ÷Y ¶pÅçÙ9ýfݯ‹,)¤þ“øFš[í×§HP[…l€]{”ÇÌÝH(°ÐüIlAUrµÐ,7˜s¾*lk:óH¹×š6hàÊχ˜SDË,t»æÐw;rßàÂ(,±2/+G ]Ñæˆ¥;Ú±<€.ûò~ΘLg¶'hI:žaÑo>~Jdÿ‚@{…Ú§|ýS^ÿëcÆõñÉ÷ÄñÅöØê€ÞA–aÛ/®WjäpõljŽWù±ÚsÏ^^çR[üÛÑôQ$*¸ô—4ná9ªuëX”ºßîíh§ú°_x?8£ó§^Ëé5s¥7m?÷E›ùÌ îà§jpR1öÈm£>K|r‰#a?€y'ODŸÍÛÎrÓ[¿å‚ܵ£fVͧsi0Њ—Í?6ºÝ«¼-XÌ™“ƒöUÈxÈ<Ï=À„œOÙªý爾DÄ족Ýj¼ TÝ­AøÿŒ¯{Eôœ NG›ÛÏj+[Ö/EA"†³; ‰ér¹µ6ióaO%i D…9{¥"B.š ŒŠJ︸î·YæË2÷pý½¹ëܳ `æKt U˜ÓÕmŽÍÅ½ËøìȾzOïã§©޾;þ+’öO¼Áóüƒȋ®¿ZÍÝ)§nõ$Õ-: !Á…¦1ÑØŽ¯13˜Ý1Î#Ź)žÚ•ùvw­!‡²«ñSlÑÙ­ë%5ircÜhf¥^ýú¦ì½´è‰êô,1ëε؞sß`cýù­úO1™ô±rÂò÷]‘H“:pˆηOAäDíè+œôÇTñFÃ~7bò3ÝzÜ\Ã¥nÜËÊX>ZÓÝ5ëØÊZ1¦iLrr>v2ØL)à]Ȩråm`·ÅUkJ  ÷¥£ÿ\p­"¡AfÉÊá¬pâé)D¤æÜèýçæ;Ô§;s3¦ÑO¨Þ•h]´õÛñ˪A]ÁqÙŸLqü($Š»?q<.O»ª¾ËÈÁ¼´Ìw¢+FÒ)îÅ#šaÔÿ´{Tý²… Í ZqØ â­Êh ûR8Ý|ðJ€qº3În¿çº’Ò’OxWÑ1ºÏÅøçfÑò{çwo­âüiú»‹kðIÑå†óÂm[àÕ¢šÞb«ƒøÔ°[³)H§äÑjÈ:M§y²%ŒÎ£zÛ’Ó©ÆÒ—ްœÝ«§ˆ3Š#Èj/>A:н>Ö‚:3ŸPm/ªîI.‹Kitß«ýÊ=¡¼=oVú¾tè㟠žï22`Ï;)æÎÀº©Å6#˜K.ö ] „Šî•Ç\Ãnk´Ðk€Á@TSg„³¯Sc U¶¯L·Y@û…Åyñ·‹¹o'éë¼¶b; ¨õ+÷Âìªæ½0à­ÇgGö—ˆ{3 lyEØõ܆ÝÇgÖaïòë_ÿÛŠòø¯Œw¯nÝïô½Ú‡d•ã;ÀÛš’¾ášPèý» À9¥ž­6÷hd^k#Hh©Ö§Ï;óvÒibK²ÜÁezçJà;œÆDþ,™…ö èšÓqs5ÿÓðU󆜱·¿õç=^ßî‘XÌÃ1aæ*jçWÞ†û~U8wè'‘Òyûˆzö¼;K^Égg»ôÓ±V÷Ö#"çÅïï;¹܈ nãÌkÞ@I½ðøfm¸5C¤=!¶å‡S²Õïâ,{ôš³¾i«*³—Nó÷-~owR:;LÏÅ2ó33œýÝc^ù!,R.šñA¯ý5sE\çy~Üeºfé,k,ªÜçº ‹[jVö÷h‹c­]ø;ÉŸ˜A} Ÿ÷˜»Âènòõø‚§o¹{ñz|·r¸ ¶€W¢6É_ÿú×ß3Ç 3û¤Oüù×»f›®ê.ÃÀ&L¶V ¦\L¾V\ØræjÖÉ4ÎbËZ\Ys~ûÌksÅkÝ¢’óSÖzFoHæŸÖ+1_9Wƒ¸Sà}Îã}ÜÅÊó5|1íoÜïù÷xýÒ¨3l½ø²Úû4©P“,ZùþÖÞÝ~â§ ÝFõ¯2öù Þ‚ýŠk–UwëêùמäÆù粡0“¿ÚI¯a¦þöCïžÁœÚvwód]ðõäÜe·zF(×] ›ô–"˜ÎBËóÇgGöÎY=ãIVx]î^¹Ø›ÇÃ>†æOØŸ¬]×úîa}ÿxΜߵËKyÅÞ7®ÙfÅÁÚZve²+'.îchò¤Ñµ¢µžm6ãá>á"|Õñؘ_qÿ»ï¾û”#<ågÖxšÝÿº>ú%¹Î»“0¯Œ{Ç®WÇ® 2ߪQö>Å])ò((äSÜt÷Y<ƒïþ®=Ö×]“ûÛô§cmÞ›~òãýdÖ}ë"ÌG&díÇŸâYCôZú´„ÙðÒkV¦´íÆö»»?ì'Ÿê½þ´µ¢¶m\K¹îÔÉlÿáÚ6—Ï>ô&ü @¹¢DÄèX¯ÄýÕÓCèðžJ³•ÙÉ&Mä>Ü ±:;Æq"ws^njöŽã ëÙý#­~~¼þú4)º³+û_ïØ˜ÇÏz=«Ù­ég~£¯1Ü`¿¹âA8œúþ':&³ Ü,*Ä)ú[Á}¯iêã» ÃY¬©üò½´â÷€^+CÀ3Í»ï!îîž“QÙž¹}Ü´üÃóÏï§·³(7Zýù‘Ï­÷NVýËŒµl,UɾcÿGSdçÑÄgÖ] ¦Ï}~×]aôÓÇݾðþŒôí¸Ù®i¿ã†;üqŽ ,‰9kAAVûú<…U¸æ!пôC[ÒSlÿ/§†b4r¯iñè‹êÆ 7}é«|íñ֕׉޻r¡»¿:)ºÆg Ø—Îô.îûùÖ¿©êSO±ÁñÖgW>p*²n+¡Ö[¾zû%YJ€Ç;þñÒ=MKêáãŬ¯ŒšÒ±‡ÇUö(í5çc4v»)¼<Ïó~òÜ|£ý{½Ù„ùÑÛ‹î.&g§Ù¿µñéÁkš3?yï+^û¯ü*©5•‹ý˜‹ÂZ¿g]zŒíÎêü¼q¶òîqû¯Ÿ‹ÖÎØ·wŸ'7­Šˆ˜rÚ0,Þì8ÁêKðÙ‡®4Ï\6nøA–ºüU0–JÛŸ%†­ó5H‰S*scKt¿ýøé‘ýNmr4÷šfYñã±”3;ÐÞ×?Þ›§aÚ]÷^úë72^ŸÙçUmî»ý8 $4¼$ppÇ".o¨’Wª 8׆ûxYÏð¹ã-ìÌ<ÞÝ'íÁ4žÆ'2ã?s<.7Û—ÏÀ‘x»†¯]É—dBï>Z—"9b±™;¹Ï,ݵ„xÈëà.¯À×èµ¹g;'È+ŠÓ†š«ÌJ}ZUr%ËÂB¥jëÆr›³÷/FvÍÞ¤û3?Ù=ñSÞøÊ÷?}–©À{!>E‹'°}a5yÞn?#ÀjX´ÐzÒŽý9f, 4?íÄï»f¦V?.íö§¥yÄÍ'ö±ÏïêüÀ^eúÈÏ~Á±²¦Os9ÞÙH÷ÑaÓÎi톩·|ÿUÕù—u/c ëÝkt@·ñlòù3ÞMë×äÚK¶ðüöL]«Ï¦Þ{âÜYjî&_X¸¿ØçÒÄKc5¢‹ÓtÛbjî¾Kß>¦k†°8Š£½n4fÑC 3¸;Uʶ®Á!þ¬ínÆyÍÞh¼f è/e|¥•à‘z¾ýó“Ë~³ˆî°ìûü^ý†ów«û{hŽ[Ó¨ýíîÊ¢ýqäöä 0ó•¯üµgÎΕ/ѯ¿W?V(´^øsÎð¥ã¯ +Þ\Ø»×7w¬>o›ï㥶آý÷àYˆ»çKÖ‹c™½¼FÍß¿ý^s>ö$ ÓëgXÇ(;‹)Ô†À~ý-ïL~uZeÌ5ïýpæ7íõøÃ?êW =/Æ»¾QEb ”ûõ|*€¸ÑXÀ®“Á.ªdxÀ\œúâ4OŒà£4ׂüê:ò“š5ëÈÝ÷Gg„ý”vÕ?mL%ø=uí}ƒ_ò€4Ÿ“ìÏ%&Ÿ?ÿ¦¯0þkL¢âÇÇ× )¯ŸåM™Å³¼$¾ª.í©¸¸“þY•˹Ûö­JÔý!\°=ùwó¥u‘ENg¤Q›ùÝ"ÝÑ»Á#QC(Å@Ö©/î$Ï[`~¹·ŸÙߌ-}¯ñå¿ÝóÚ5¼ýÝ9÷}Àë©·zÑ›ã﹦uX¼B…m,õ]Ýév„û'½ï^úôgâûñÑ/qàGióç½ý<Γ?ý´û{Å©Wè²oa¬¹Qü¼é>WM‚=ÖÊ=ÎÆÇ•cÿ\Þ¾÷…¾aD§ÀÑ2°¤rö¾fó왺Œ8(c4V0€ÙÛ$üø*ý•Ç'ý¿gaý-¾Î«t 1kB§Ž*ô#´1VõCa¯ôýà©U7ÜB9o¨©ÄÆÌü(ÿÀM9s³w~©äý¥ÝJb~"-ÕÙy†¯ôx…•.÷xzmï°ÛÎÉüºãõ÷~"S¿ªxúŸOgæ,x³¡Úª^¦8<ÎwiNyîËän{\Õî¼_úÁü¼Ól£‰‘'±î¼ÂÒ( WÉícÁCq"1,m,\dí¹Üý.oŠù´ñ¾uRï3öæÍ>ô% û^éãszì‹gxrÂñ<”<*Ü÷ñ£Áý®>ûqÔvV¸¹¤/ó â{?xµñì6™{{Ú/\–oåŽý去 ûÊô[èaÿ×"VlÙØ#WþÚ1§Òl?þ¤Å­[æˆE˜^wŸ™ÕëÞ06žôì˜y|såE6æ/ÿò/Ÿü}¥eþäOþä-?Ž¥§´ÅdZ;‰ÿ€L@sµ5ÒôÒž*Üý áUu yûxn‡›¤~Á%F.¹ö9ßz¨ëbßz’kîä‹hÃ×Çümxãs\¿ìsæ}õôV¼í±¾‰€ñ™c…Ú;¬ð Y±Ï±Ep¯\ŽnUtÿ[=ê 6ÍŒ”7/¸CëwÜz$8;Û:[Ö¾¤{Xª›‘aö^õioöï*_Œì$ÿìÏþì-OåÇZ¥2óÏÿüÏßånûì1¿$w7¶sñü¶îZíî{W¸ã¥Ó¾à¶–äõ{ïnì¡¿nlÞxܯ…{åú ÔgMØþ•ÆK›˜¸uv{xqèsr§ßì Ï:ŒO;“®‡ £ŠXçãÏxÇøë¶™TzàÖZïjÁQ‹¸tÆñ˜ñý¯éÙüÕ_ý՞̋ã½WðDz<û—ˆõfœœÀË1FH2?÷`¥°!wL…{ªZ9°úNlÚ¬‚¦õx‰vÖ ¨³¢ÝKŽÑOµªç™¤c…úwM$ÝíQÖäõ¹ô4F<{Íý[îj…üšûJúW³ /k½‡{}è¬Õù’KÀKÚª;à|—?oÜà–ð%Q˜­ZÜx£ç™î"µh½í©‡ñ ð sн¥ìfŒ´¥^Ä[ÂP´BѨœn仡u'°ÜLØH¨„;jEwïybö½ŠÍêwXïÆ³–EÌ/7¬ÊhÀÎì\p̽y°öù³ës_‚±i*p’øç î°?~–ªzeÜAÎ{#—WÞøù`YÏþ‚ózá°1÷çdYò¶šñõ´Ù§$Õ““¿¬q·&‰?ry÷<ü>ígÙ-€Nûþ„÷ýž^U‡õWXÇZÿÿØ{ŸÞÙ²%;h­ˆ“·@FÀ2BxæY?15óª!¦n1ñ´â+`¹…<&€ÄÀ‚àR«ò‹Ñk« jÉRÞͳc1ˆˆ½÷ÉÌß­ª×U÷V]÷Võë¼ùË­0`Í?Àµ°‰m¦/…¾O%|02üÖø€ä"}ï˜êK~ú}9x4•öe ÖÎ<Ï÷?©Á¾Nê«èÎå–œùÔrµ·h–µ¦·ÚG]u@]³^ñH¥x¨NCRL%rlJÃì"—êß+^uv ƒ¥¤[µÿ]·î´?æžr3;~ œý«¯¾š€þå—_>€»Þh©ñsBûU€{ᇙ1½ bÔízѪúfŧK”Rʬ÷ëùskOÈK*Óu—m–FëEíJ(®kˆüžôÊ6ü¼úþ>Ÿù.¯ñZÎhįܱÞy+²¦W;‰„†ñáÉàåÉ}%vQy«›]×mªœ1ð±ÛùÛãÇ@•×Oß–2’¥ô‡÷XýuÅÝiDòúK>êÃÜÐû#@Ý#å\7ÌùÝÒÐa”¦¶^ex“Â7¬{×gOþôìd2a »‰¼D©½ÈÇ»g¦ÒVнÒe®z¢=`€üÓ^þŒOÆÙ¿üò˯¿þ@DüÞïýÞ×_ý–iágFÛ÷=}z†óŸ<ãÐ,/—áSC–a £: U}[f!$"eA0TF ,\y‹K²Kq¢Ü¢&eu ›á ‰Ú’ÔëóO¥°çÖ¬~z2ßš™´áõªA˜÷}nîû¾î'qwX¼xMA{Õ›/& ©LÅI9˜ “ ʳM’ª´OI(I®‰¸ Y‘dÔt¤ƒ¡€3‚nTVT^\ƒ!Ò䀢6Ù„ÖCÃ:T§ÐêÊö!F vj:@ꨳÈ!ùp3öÝW·ÐÎ%/¯û·ÞRºžç’í»ë¯¼.cj'uù–$‹yÛä¼[7mÝu½ÑÊùļ¥CUÀ à€+wmnÅý›Ì²|ëhX‡`Q1R¦/r”ÞƒÙ‚y÷ s˜p¸¸këv “RH>fSí§ËðãO†ì“žO5fú,“ÈO@ÿ9Áúw‚„ªÍ,M «A²ªŠÀʵXE€‰àhßÕ$³k¢œù®m—$UòS>Z–‰P•`ÝON®Ž×6×J››ó2W¸IH§üü|„^½Nžõúýëñ¡×¾Eë¨Glâ5ø¶K”ÁYh¬ò²¬Ù)Á$Š$ Z–BC8!·ù[€ì^ŸG6j@϶(ÉV ­äa @ƒGå°¦ä Q´œÝÖ?^5]¤2•Jö¤|—3û½/'¶®Â|n¹S„Éf‹" ¥pÔåkJÀ…1$»¯àRÁ(À#of͵l-¹b[P†¼|¡ h}µ\Fn3àAbà0G È«2Y … ÁpBŠ„dâùù)Ã#Ù_’nõõ7¿üêQXHýÿ™v|§‡ã¸ãÝÀJTA …ÙÑ€aH:*ç8D‘Ît ·ÓöÂÍXqj—¤Eö¢Õ4¹¶x£9 ‹ åÊ}\O×…›Ï§w_ L¢£—òÀÅ· @yóÕJ­ÄÐýóßp|c°[ý†É=¹ìÆtSPÈ*Ü,À­+qçÆ… ˜1"R2h0'Y7e6)Û/tÓÈ ³1 Ñéb*çÕi"y?Y¨'¡&¼ôžÓmo{D^¨ç?ƒ‚˜#¤½ðñkDúyìÝ›#¹©ZQ i«ÒÂz^´¾^_:7¦ ð¶÷úÔ+ŸˆDAs &‘²뎈V»TTk X§ å{™Økµý:À`Ý*§Ž6àŽ„ÓB0GÏÐp¸tž°FþÕ`‡Üp;µ;p?2È dß¡ùAryÖ?ðÝÏdŽ“·;’¸©õ×*ïä âHW 1€rKMAW¥e1¦|_Öçp0QX‚5×Vc\ÉÑ€£µ2•®¿µ=œó}M‘'C+Ü·#Ë~oûö:‘Åßì·ðÁ‘s%ÕB¾iìu=xK "–xT&ñ6j×™¢§Œl]/JÙÔÁ ‘ĸ¦Yµ»MÍ—EèlæÂ¨íGã³(ÏëÛQ‹„Âïd@ZZ•w€YæùäûðôU„à¢8ë"ª¼|ý[hÂY¼á™lVñëk)9õ–¼ ó6Ã$›f8e“ž™¡p’l¨XvsRäIn¡Ô¾m$/™å0mì³äzí•À! ÜN¼»×Ã9 1œAØ’‡d.sÈp@÷O£ÃäøHj̤ÞÝPEÿö—¿Ì?}óÍ7»P˜#áþó4A Ç{¼û &;m_#PFösÅéàŽ„‰3æÜ_žOÔv'µ*ŸO°f|É6ž^ü(z_¢˜×¾Xž5±18m@´ŠRÊòÓì³önÓ .™Ø9Þpé|ûÙœ[ÜÛBÕ>ç_ëÆò^R´ŽÝ“@ ë”ߪ;$¢--þȉ3d†°,¨TWS5«ôa¤ñÔŽ]= Ê”N'gÛÅZ t[Û|uX"æ '“`@°ô£‡Úœ˜ É«×óì=Œ·xúRÉ!ŸoÂË×wXç ›Wîφé-×°#Õ Óe‚!’kCò0 Íò eOŒX8è|Óƒ6äÓÚ¸;Ö×ëü:½'ƒãÄí„ßá戌¥dõGçÎÈ‹.:<8BAØ^ÈþiŠ|$dß©÷/ùKl¨ý/œç¿úþý_û·ÛÿôþÁ{c˜¸•¿ IDATc£óŸ¾ ~×í}ëèd¥½/Ä ã½ Âðê:†ô$N™²VBûʽ9u½FG~ÙK…— 00š°û"/H½Ä¬%Â÷zÚ .‘jç%æ^ `P½o@®?½Qç{Œ¬ýìmÏ9´èá:®Ìø2¬l+“œ»&iTbä’ÈHËs’R SŸ †¡43)œ˜µÇCrë+nÌËC£Q#Àèªån—ÞÕâdù²(› ˜ñ™ƒOÿÀëï>l‹‹j·£„l‹gLX¿ˆ9m Ï»+±œÀûJˆÂì¼j£>pÀÓò!ÁËÒ'˲¥DEKó5ãðî^é»;S „”kh‹ÂîÄw3øSŒ!w„aîÀà?:û ìU]<=¨Ÿeø©Æà‹÷UhEÓï(…×ü†NÀLÆZ¶'»/iµÕÉEÆK+¿œÃ•e)MÓSIgZÇÔ±©ÅÓT\tsˆ-¤uùžˆ, Øžä§ñðæ,"ö\À¶g¦’¶‘êSý W…‡Ø•ß,óÔaºõS ŒÙ•ª?`íu†x Ñ¥¿0Ïq%ṡ!B2Æ!ˆòHþ?€!¡Èhh.ÁäÚ¨Q@BxB hKD†Ò{Z‘ªL,î‚´…ò{B}Ê|Œk‹Î»ûâ÷ó¹$Ö^0ã73ÞpÙðʃb]°ž ýW^ÂÉ?Xò‹M3{…7U&†²’WÃ:-ÄÁ+¬·þ>èérqF\1h@Z×´ÀíÔÑlývâÝ]~‡£ì1Áa˜¾õ ¨Ò%ǃYfŸàxÝó‘ÇÇ‹ ¾õ§föïÿáößýÝ¿û·ÿÖßúƒ?ü;ã‹/>Î.}²!÷¸½eP30H§F®Ó#õ6šnO×tª”ž¾ûóAM•#_^ #»Ã¨Ø«š§÷½N¡#7o4ZJµÚ7æ¸kñoEÞžOÄ"‰v™øÓK~‰LÅ`Å W¥„Ç÷^”ý3?H^vI0ÆH—"5@–)[uÉì¥Sç½æ r£•îF¥žfÕ“8ÒÕ?/IJ5p@fŽè¬(ÈhT`ÆT ©¶ï³^§Ø—ZM¦þ_n÷9s¦9‡[U¬o½ oyc¬ˆhRÿzyÈó|éÁ¦­[¦FtYÿ¡ÍkT±É43E«¥‘©òH“­[<°õJÍXh ñ8„ªAÒvKØ€Ž¿#‘ýÝ·S~ÇíLžŽH?ŒË#Áû)Á¢ »Ã6#¨Ÿf|T5ff!å?óõŸ~ñÅÿòWþÊ¿óŸÿývü©ûÝ ßK çg<„Û0ݦ«iÖ5kL'Æ¡4Æ(ýý8pÆ¢ÅÍ ÍŸ2³KýhE¥=0b>]I¦yz¢9Û-`*‡ÀäæêÌ‘äkå#¼ 9-Ê‹’=h>¼ÞêB7éÄ$FM& f$2_ƒ 4%M «¹jÖÊéæÅ̦±È§—s©>Y'!p0Œ` /ØMlïM²qe'9yÂM#U¬5 ((ÄQFy‚B{Ÿ°(| ÈÊzYÊ‚a0Õ-réðx•eÆ)ÔãmZ~äI>ßG)æ5½n?¿Êy¥ÖÕiÖím¿òÀ gýŠ|ª`=³:}Q“ú Ó3š`j3®jGÖÉÕŒ´—¶•Y6/m‰¦`݃\¾ÆÌ2cè8Ngaú„õÛ{¤å)n(?Ì@8ÌR¤¶>”„]n6,JgÿDãcGPwÇËúÿëxàåš1?ð³î¼ñ8?Þ9€N4@ºYNõ²EÉaƒ4AÝåNº–µÀxÝüÀl°P=ö“ª@Iê©§ûÔaJéIóùÌg;*7é<7Ï;4áäõ^YóÖŠö§£=?¶ùgláÎ5=êX;“G!•ëª^²×bME2jŸ1 @…£ƒ‰š–Òú´Äˆâ‘Ñn’¡LP0¤à"JÃr;¥Ì‡Ê)‡8s1áY`ŠYÛªUl¶«RÛj¬KDLW”¦Xõ¬›¿Þ(ÎUË’Í saÖWX×ÈÐÖÙ_°>C¦{%žj¾ü]Müw‹d]»jcTU_£ÇªôÒf˜õ"½íÉÖ=0­Y„ #Sy{wwø}©ídŒÌ(˜c!žÐyië"N§€qà0òü熳ç(ÇËW• ôå—_~óÍÿ˜¯¸ÉtÅ|>°@¸ðßÅV3ŸÃDÃ80 ðYlYiÀÀ³NÎäDSmìt¹ v{±‡IÕ¨ÌûYJÿu>*r€¥*0JW(^ßÚa½ËTª²xØf5,t^°ØæœäÒ¦ˆRŠWlùekšˆÌUÕpyvF>èé@ïLœQÓL‡I ^*qv}É(Ó…Û*ŠZ¨8µëðÎD•‘&ÝyRtˆî€ ppàÈXAg0'©!s„Ø:Pºäwë=â¬Óç ]<è±ëŠÊ{¸õºzãß|®ØúÿÜÂËKérÛx”ÂÒSˆÑ¡x\j g…yŒÂdýJU 3§:㥵ÞÒ„uZIäØõtFE\¹˜;9ÿšÉzÁº7BYB a]ïî°÷xwâö¾ÓÅ™ÂáÆ!yð q%—€‘ Ïp~WLŽŠì;pýÍ7¾úå—³h »Ë”_Ô•ŸS(•‚ßȲ÷ 7 /ùÓ9F(2dÄÉtpF&DIºëVºà`6Ë‘ËX,&kT=›‡y󬤨+sR§f=VD¥áHûvkGÜÄ„j9Sk,¥ø*(×fì}/ï_IüQV,º°f’>”HÓÀÓfxóêٻǦ¦žÕ4)ä"Á×\a”Éœc”í4ÀwÄû’ÔéÈYÑã:œÃxe9 Á™§DÊ‚}>·éÙ7|žõÒFŸë3`]o¯ÌHÏã;Qû™n:a½3þµ­ÛöäRÌ´g-XŸÚ::aµž‚­žÌf´]««)ÈÔ‚Io³õ´ÍllýBá9ÉÞZè´ÐÎÖo-µßî¸Ýq;« Ä «d4; ·3 1'ä2">8Ló øãGGö—÷4TjGð‘¹…Ï Ö˜`wø´:ÃÃYe J÷ d' Þ’to„«ô9‰ð1Õö«åQ¶j÷¹žãžšã­=ؾßý0CÑÝ*c@Å&k×zS;àT–^áË<ºÇ„I\‘]\ø’ƒ}ŒOîb…õnþ®RôÒA^¢¥Ã0R#"º§TÊèVW!©§×S¥ÈÀ{Ê2UÀ€r‚Vµ D,LGfÇÖtpF*‘Bô>É•Íf;{VsÍu$Æv˜b~sžO®‹„íœKóöš:‰‡ÕÚã ë&*TíMØzº¹æ”k5@ägSÊGßœÝê@âõk¶n#c§fCÁ´þZEîNX0m¾8B~Ç»aÇûH¦üŽ'o'Ž÷º,Ñ.Ï0˜4Øy§†0ÈDbÀË!#wœé'ûãé3?:²?ãò|g&"} @ú™vÌL%èª#†8¾@ЦGa”#†HFRˆG‰­×å7ÖSŽåˆèßvLlñ|T,d F­ëýxÁÍóëØæ• KNÁ½ú¨|wlþMVɵW¨¬”>Ž××ùÍGaóƒÔ‰Í1}Ùû73¥3Ö&ÚoS°Yþ¿œK/éýÀ®ÊIæã¥qi;ñÂà\Ehƒ´ »®],<ÕiÌèôæ>œÞÅml;/ ê󪧱ýÑdúö˜yóüóé¤ÏSÑ·”çYya/¶(k …´³õ¥­wÂsF°QZ/û®˜>×—Þ“tž(Cïí"Ž[·!kszÅN…ÊBRry™À[ÀNÜNï5µõ„õã½nw'SénÀ0¥Ÿý É4àQÈ.gœ c˜Âˆï|~øñÔ˜|ŒÞ<Æ—†™ù×Ï Öxf* K^ç³Uõ»Cæô¡Èê1¹–dêÁœ5[z¬týÛ‚²åšQ˜Úåô`ˆÈR×¢²6^~+¨EìñÉ%°ð F•õ¬Û&h¹Ð°Yƒeílù°? ?Œ6¶}%×òW…b‹aUÁ,e¶ÞŸIX¹¿YH 𴍬}2*6v\ 'CP£ê岘´!)’­#ˆAœÂQ•Ú”Fåpd!ضæt,í-óc jErâ ˜1:mBÄŠW`Ë8ÝÏp%Æm÷ÅÄ´ì|G¶sû»  UŽÆú¥ÌÐ%g%ÑZ *¶Ì‰åUoÝo•$êÈ?ÙµÛ!“ɾª•h”öhƒ;¬—Ú>Vàôð;n'3ÑÔï|wçí}4Ðóv×í„§7ÆaËâ0& Èx?å‚!ÉܧÙ%¬›€SÓÔÖéz’·ê1M0½8TïšÏß lúP)¯«O >Œòã¡æ{n~S‡rÔj£~7_OÛþ¬·3¿•Ë™bjÈŒ°(’ÉVÒ<©úÍ5Òó•ƒb˜è‰Â ¡Ôa!OY?DÃÈ2°(Õ8°Ø:È’îZÆh/»¢Š"¬Ù‰³fdëæIÛ5¹÷ÎÇw‡Âv=&¦Ïû’e}x+³ß©ªcžùgߺ6.?W„µëÕÕ™ïXߨëÍÞ‚/ëºÊº>ªŸQµÑˆjëÑ~öb÷i¸ô€¦©qØß'Ы^­nL@V¹H-¹ DvÇ Â% ŽpœÜž»>>²¿`ëûí5Kìÿ ì? •楰æÂqò‹Á€ÌÄÆYø"v9;–®'Cô=JeÈ,×­Kn%Z@ÕX/Pï!«ª.MR:;Õ."æÆ§À'õ¼£ŽKå(.?eë.x`¦ðRi‰ bvd©ý×:–š&Öûj»«ˆîû:÷ĦFÔžýÍÑ`šc)Š®ƒÒÁÍØåw!Êû§“áCd]_ÇY^JyÕäU ÜÎuh”?}t%‚˜1¤*4–ÀWÛ«àr¦wröüãÊšÕLžG‘gˆ‚uŽê[Vê²ANéÌjZœ—©/È%²¢~Q;Ðþ’Âv¶¾ß]óJy¬kCŽÉåË×ÄþkYQÚz%•ü’U]7fFM Ö3L:Êùn?Ó«¾‹0z×lý8•°þîN¿+kÂÈàÎaJ==×Óƒ‰æ™©Ä1ã1 ‡ÿ¥‘°ñÉz*M‹ús‡ýý|ýåû?}Ä7à¸ÇÊÊ‚A…2=Úc„¥J`tfX•ƒS€DVj]òÐT¿!–„Ý`8Ÿ«Ä×c`ŠÓñ]·þ^u`YÓ8ó ‘ÚrÎD,Q¸t®|:Û3™«‡îµÛ9^ðñvCŠhä<º ÉW©L…5ÖÅm<¹6q  ”YaËc/w”½Îp >& ¯2©c]…m“aõÉÌGýÈ5qãibŒÃ(pD=6Q,Æ•IOEÇ|¾ÌÚõ[’U¿šª–”fº /%ÂaœFLÿÉÜu­Þºæ÷ÌG]#žÏëz=UZ g¦ô½4U'Ñ&î¾—,ÓX ¡¼üìÚʈÝs À‰¬ŠŒ£œì8À NÙÃ9$„ª`¹pˆ0+µMÉGç\ê‘e ‘€­Ú¶8j–™.á»Âw–2Ãy5׉\ò7®×Ês®D$rÞoÏlgâ/¨fî@VQŸ^uÎ@¨»Átá¶žE¦‹†BzêW $µÎ^ÁUÚÐcMö-pˆÇ ôû%dzÑÖ7XOÎnÂ0ÁP¦FƒNXŠ3^:»#¤ƒ'.DZ*>ì·ïÇ?$²?ëËræûu)Ç—¦õoÅè—Ðÿ³è ÜNÕÂLg$Ô‘F¹CFFt¦R0šS'¹J¾½¨8c®[EDLÕ23ñcò÷–¤g†jòðX#¬²‡”Þ†“Šãô-P¶G†=ÜÝ•¶S²êИæñ¬gù”S¿†Z¾Gsö)Ls¡‹nurz×TûCzPØQd\O¼^ÓnÚo g>I4"²õ^oÜ ™%šõÖIZALd( ÀÓ©(ÃL_܉ÂY,Þ{™‚šbænB]]iéåéCè2Ÿ‰é/Ù:7‰<¯Ø뜴£;‘6¬·—&?3`3º0=ï½q¶Ÿ=½7;ñ¯¥˜º‚ãÊHzÌ>-"Ÿ%eÎéŸY°~Üq;óyÜu;yœº°ßàô»Ž“vêvé`û t †Ü0†dWÊ2#ôŽ­ÂóSröø§¿ÜÆËHÚÿ4o¦¯¾újnáåfÞÙ?ÿèn¿÷ɇ~òÝ ?Ë•åC.·Á#pŒŠóø uƒÒƒÇÇ©ãTÖöwƒ·àtу¼]ÿ«oÝiƒå8==ÀQöÞT$mÌ–´APK]ÝòGÃ|ÐmÀË^ð0æ~zÀ~ÒOÚÈíˆY‡/ÌìjätŸ„!ª_1êõþ¾ÏÓÕ¯=xôQÏ3y|gî[=Õ&1Ïv#˜ŸŒ*Üš;s ó'Nƒ>ä#Ï¹Ž¡Úí:@:©ÕKþ.>¸9À>x)B[Ñ?"ÓܵªÑ&±£|¬ˆçdÜ«+ÖÄV {çýiÈo‰@_çûoÞœXdë,îRš¨Ú/+ Z‘›¼ôQ™ÌWXçœ!4Ô ¯Žè¬éUÏs›ÿÌz/IÀóœ O~'šr•ˆY ˜»d5‹ô p*/ñ-5™ÁlvêwƒvÇ»Àq×íÄ1ävâð÷ÕŽÃòïðvæ v—å?-ïœ;쾜[™°ã‡åì†ÅïUÉëå''1ÿœœ‘\v#è®P îŠ1†nn DBŒ8’L:‡*@ªí~™+êÎÈoé¹Xg5úyàé“CeÊF…¹BÖ„hé¡Uù«ð(—Z¥¹WØ7x‘/m{„¹Ωªtƒ‘mì%àö)z©L/_o¨¥²¯S¥Ò\UÚÉèÑzД°¶ßö¹2šüÏ”Ú18ëÃ$¯w ‘ÙMGÿ3sPƒtfJž¬šgÈIQ6~Å4µ’ô–,KÆ_st-$ÂÒccÕ×Â2Áµ¶ìt‘…‹Ê=,§ ÖñÈÖÕKŸy¬¯<&¸åÂný—›¹ÍܼêuQž 0ózÕZ!€”àÏZÐdc¼žp 1u'[—uÔÈ•}ë«—\§¸HwíÈ^à*Y²dWîäL¯Žl¹Xý5HBÑ¿GRÁ?~°Ÿ~Æñݢ/òSyàõûæûß²zdÿô C&Wõ°Cþ.ü8G±Å㆛‡Ácð»ÉßɰÛ·SG'Èù~×q*ÿy{w¿Á» ‡nCï’ÝŸ¸ýä1Ø6ßÙùiótŒ$Pæaɸ­¿‹êénL†ÉR›ºÎveÇ`s7ZC>ÔŸÑ1TÔ8xÈrýQì¾Ù4Dð­×µ&³0Díd†?«B$¥BÐO/ƒ,.,j®Xv‹ŽþåEo‹½ö²&¥€lë•a”ï* âÕ Ad*üh:Àd÷G£ôZ-å'Ùé”myDµºª4ú"§®ú§•w; õüÀ†°a ãæâY„gúñ^f}}Ôš`,°N– ½p98tSµ”eÕk„Í£²yêÐþ÷ܨïæU6TKYkŒ¹«ƒõ".ØÞÜÄeÚ†¹»çèr6´ÿy|X÷%êŽúxðcçÙ«ÁÌ×@üõ×_õÕW/¡yÒöŸ>vëðর0Jº ßKʶǑž7 ‘mH j´0 l̽8¬.Óty6Œ§ËSÞ%Õnßž®Q×g/Ÿ‰ƒqÍRÙzŸNE Ë´Y@rœòi¤± ‹~j.1€]OÐÌí<Ží[m¼³^^Ôié›LÜ‘ž NÖ÷9¬>ÂL,õ>ç±’ä0 ;khJRŸç6@÷ÊGu.º—'§Ü{)"âPt6Ùèp‹‡Fš=mì2V™2UH’*H«{V—Ý£›ãÒ{z[þà„ßi/GÞÌÖÙlîü'?°ëqÖ—µÀ¾—Çq_$—4¹ù³þ§ë» à"$dFß!?âH}å0Sà&ÕŠP*DÒ€sÀ4„œ>vZžÛÞ”&²‹dWϬDÕ6a¦Ö9Â@HU)«¬ŒU•×Ò§ØH4JfMíù±Ô::üµ †0´Óê:p\Þ–ÅжõÇe{ýóõ»kK7Ù ¤j×lÚ‹°wƒbù«@æÌÂöX&\F`-ÑûBJ€ObžÝ”ÅLÂJìÈÛ6g‚€Ó‘…Ú¥Ì`<”Ì1rÝΤϨjôrž6ú`Š„B0{?­n|"ƒ«Ùg÷µ"@rË]¢ZD‚ÖõyÖAÄdëÊ š’÷*¼4Êg'ô™©4íêùœ°ž«®‹ûv« _NKœ©ê1%»õv%²££]å!÷ ™gwï!«fG-iA#Mæpÿ<8û7ß|3ÙtŽ~½ IDAT‡bCÞï(›|wÓËŽé?å4Ô„ÅŒOFö^ S<†äPV@Þ߃Ƴð:e•¼.› £¤t9*í'Q&z•ŠÆ>Aðýá°,õ¾Ù!æƒ]²r“8›V”뮟Ÿ}=¾¤’銙ſÜ7Nd\¯úûøü?Ö¥ÄvÍ´IÙÜùbz`Flë‹â’ŒD(úè®;S;éõÌHH_K Z][dA`¶N_˜žà^ï0xt£@'Âeö)#-;uÙ`¸,$£GÏ.©º0 Jšµü`¬•Ö«›5Õu™‡=róÖ;긟j¨`}ZÎëÆˆÎR®Ÿ\«¥z‘Ö”'Ç:/°>ÍNªZÓrÓ?êŸTÝf›Ä?÷EÛ=3ƒ1©)eXè{òC©z¡°mo7اΟqüœýÁ¦²µÔxÄÙ½gÞóvžqÿáIýªÿ„`ý[ÄÅcT§5<œ$ð‘0s¿ë ÂiàÉ(¦xU<}m=V¯N…1+‹n—VM©VàV™}f¦izJ7,sÛ‚Åf¾]K„ÝZ¡m×õIl0aÍÍKÛM©šˆ~¢™uùúªùÓ;"00¬ŠdU´03wL¯TÖÊ©zU==(y™ñÅEÍ“4·ÚŽ^ åȉ5K±¡é=tÊbÈXu}•7æ¡I½ú²lÃeq­25FŒ6c(† ¡B0 +­)=‘]?òår^£DçßÑÊ^²õ ëmw©³•/Z¿%L?Lg–Š»"¿¹Ý=Öµ›¹Äm~×ÔñM¹ZÕ¾ˆK—×¶Á\ØpWYÿSg?Æ<"eèå­‡öáìåS`ÅÌsÀdžÁ”N¦þ@ÔíÇ?°ó`3ß éóý|ýl‘|xñò¯ßëŸæHºáYb6@7H ݆h se±&7;Çd±VŽÌŽ/8ÛUŠêM ÀI"™Ö‘Z*,uv½˜ÍÛÚv˜Nþ2šã£‚Š›‡R¤wS-Å4KZßzàÚKÊœSR§ÏD#æ‹8ßÓa`Þjr/&u-+|µöBÕ¼ Mʪdc/>–ÐßH—¿Ø_T]»&õ§Ì+/1îuׇ€k£Tn÷fùè=ÊJb6J9sÃ,èÔ0¹0 Xö²HôW0‡®|–"¤ªæð–dœ—féNÊ‹ÒÙ¶Ñu¸žØzSìÉ W0µ <-&d6V×ùÚRU/ñRÍÀ jå$k¶¾ÓóYÏ.”Ø™¹Ÿó@¬²¦.WÜÜšÌ;ÿ·DnÙJ‡¡{Ð`Ÿ‰ƒ'îü ¹?3ëo}çaS?!2þçv b0L8&;F!Z®q˜I«AËÄb6ÈF°ŒŒýü—x`š¯)]:(•²j"Îì$ 4ëö8n¾f­z,m iks©¶]ð¤àU1ycSJÕ% 'NÁ¥Ó» ÚB¼Œs†{ÒÓ;™¸Ì4ùìUC†ÝìS³¶X£üµb–µ¾ÏÔ¶ º07òyöÆ ÑìˆR81t¤ÑS¢xnà>Õªþé<}`BY7²Dd $2æ•¥AT z†BÀšŸ}vÎr1PþøçKLÿÀLðSi‡pYˆï„÷RÃxŒ ›B†¸0r0¥y®§øqd ÍLÃqbvkë¿ÚR-7³£(ZÄd4ì.Õð®Öta@ÀâhÀâÂ’w¢Þ¼BkšiWÌèøžo= i8k›óë“f&-M6‡©µzÀùü#W$½·\Aÿ1ó*AÒUBN/¥Ø5c¤¥«hŽˆªo“%ÛÆ4AµÞˆ0Õ˜÷( á*±>J“AЈTÑ]Š!Ü0„:h\“mªÃ!˜}h°g«NC­ ö¥U@«ZgLK¶ê¶Iƒ£f d‡õí¾ªºÐù•Ѽ{§ácëä%p¬ H~rm¹šHu}ö¹Òš­”¶ú0˜õaú‚ñ}0w¸ÿĺÛ?„é}~Þ`•D&¾š¥#8ÍÑÅË>´Õw|?dÿó'w›ãŸ—»¯ïóÁ§Šµr‹` Æ*gÇ=„SgF“S§ÂC<Œt¿¬£`‰×ã2xæR""s›ÚuîRa/¾£Õãý”w"õŠ nüÝr1[µÎ—÷y®¾´Ÿ}ñ¥eÃïpý… ìª¹»ÊYö½‘=Vaúîg·M2û£æÇ.ïô¼ h=NÁÙ߸¹Rá fÏ&Q¤+6“üÈÉØÁ€c1÷[‹ï@MxÒY¡=œ8IRE IQ!uct ‹­Ó%KÁ2n`¯¡jéï@Ö ¶¾@eíOMXžA·˜ùÌ`jÉeñtC¤Ð—AÑ·ŒåËš•Ó§‚gõWîÂ:·²hŽ_^:HFVXs*¦Îžú›­¤†uhw à®Ï¼­Ö⯾Ý'7×npÝÌ`ÞU75ÆÈ¾`oýÂ=¾ÙXöGاu<û2?òA@0ËE‘ƒaÔ*5`ƒqF;ÏÓŒ–½ GÊ¡µ9)cð„òrŠ@àH‘ÅLة꠴TK]ÄÓ¬/š;Z l|Ÿeg:ot+t5ýïªɾàKÝßfÙ¹d’¡¹àÇá6Û ­±uf˜µÚð}ÚIœ­YK^3”õÅh²¡¨v%yB–@¼À©R}:®‡ÊÂÝð}ž¥œÔÖëëzüè„#ôòhÓÄ!±mŽ^ÕjÈ\ÐÉ맰Κ°^?ÁÅ÷Å.fZ%©Y˘^;n >ö<Ëé±ï¼ 3Òa‡hpžpØ!3¤Ö>!\~;²ÿ üú§3æ'IùÐÃna„#ë)"£ã¤Á©€Z„I§ ²lÔTTèD IpŒHõÕÉY|Š•Í¡£çé ÆÕæÈʶ謿Ö+QÞvì§®²ó9óSÐ>V)ð–vûØIq ë³¢@Ö&-ƒ 0×1‚ؼü›§3aî¦3XÏóäw,Ñ_ë'§Wód'ÈhCJ«ÂFUƒ˜à~ÇåC#¢@ÃI<€ûÆ¢‰Äî⾜œsªõX¯n, £ ŽšAÂWõ/‡´Ž²æ±]+G îS¬HÐLØ]Úz¬_)^wQ¯™*3¡¹Tr ™7·òK‹mÌš½×¾©è.`PEŒ2Äj]°w ‰5 ½ÛÛ~^ÎÉwßE÷ECZgÍÄC¼‘7™žˆ¿j¦ÅLJÏ!ûy1Ÿßøøb½.ÜÂÓí L¯È]pdÏ6p° ¬9;›‹€ˆ°ZK¸nà}d’“8„Š|ŒÙ-/÷¤›Úlœ(w²ŸÃÌ› RE+v9eĨç¼VܘON?1“_Vó\äÿ7ÆØ¯ÂBüR„ZŠ)F™º/]–‡šXù±Iß”@߇6Ѫ8;÷Yfýúóë¹Éš-YÏ/+ðj:ÎoqîYA‚¦$ì8€SÀt@4˜ÚKÖƒ4“BN",b5x‚a€´ÀWeGµÊÄ€e‰GÉ}ÐÙ/~ÔÇ·“ÆÏ]³ ¯:ŒbÓÖW %gÓyÎóþ™>t^õœ,òµ³õ¤™°¾Íõ¦Í^wªÓªì87þÄÄ_„æÑ=‡^އÕ!sÑ`FZ˜Ó¨ì€mFÑ™Dþ“7‘ý÷ÿ÷ÿäOþdþóg®üizXHGa6R=cQu§'O†SNEÆôT°êÚÈÛ=PmÝâwVÞ‹ä>±¸² ÇR]ö|?έ3ïÉ‚µ3tôô0}2ù±z•š€èU¿ˆì­Ñ,2c×|ÔÁ[¬utJjê„eŸ˜œ­åöôª¥˜^ªg€Þ^žGA_®«ÄA‰3ø â;ÅN/ …í ú¯sßqDW ä ³^2ëÔaÜfu6̨ëwÍåkUbÙМUi= ” pyø™{13’À‘ÉÀ¬º™ÊcÔ)¥ñ1Í7u®ZsŸ¶vë%lü½ô¾€uk>¾êÉÖ³³¹í÷RŠ!9ñ4¬çyGM;x£ž3úë›ËY–`æµnV Ì:ÌœŒ\"ÚYü&'Ö}ÔPö ûÃè#bByòt:F„•&óö³!ÓŸàpá@>½·î)¼pa4D Ìd‚ŒwQUq±D‰ ‚::,4(i«HWLã…AQõ»œ †|È0'ü%Rg§Íç®)æb~·Ä™ûÏò.½ŒíìždîÈ·®Õ•fžÍï³`HSÀ±Ôèó»*CKïðžÙkü¹#©ŠöCÞ?ZSϼÉ?H_%s74Š“^¾9z¾ŒÜÝî³ü ªšêÎμ26"ê<  Â2:`¥œD ð‘E§=Ÿˆ0²EöúUmè}|‹¿Ï¥ š¯Xì£ÎdªëD¥Ç\Z:LtíÌfu°–Ú«sédî%¶L³cžç¥­gnj‰0ƒ¶D£„ÖylQOv§à>¶@•HÚ¸KZ¿>p­_ß-鹘1‡™ìHþRîrƒr·Vc> )þ²ÿ¬ÿên 9˜‚8ig Cê0”“'iéy±*îê`0"ãŽá$‰3pÀ4Ûåã7Õj_Ëg .+?‹¤?{]r]_ýk´“2¬Rõ$×c?û kójû_`eœ.žNúrëÿï¼~rÏê(ÄZÄ`M6-­¹ç,}r=ö^mbý‡/';R„,»«\Ú~¼¹m¸ Ïz¿P6Hƒ‘Õè(hN ʸa…d™yIVs®Pªl=•8çE¬sH.Ä_âÌ6Á]µõú裼> .Î|-ZPîõ9ã¶¼ž‚ŒÇ£»‘]©[%ný Ͱª <¶Ef8C,¸|À¶xþwlÒÄ.;äT*0

lÔ¶‰D {®£ÈΛð@{Ÿ1k¯Of”c÷º²fM.Ÿ»»wÎþz2‰éÏ8>ßÿü´~Gà8Eˆ¦‘1 0 b¶¶&AC@¤B:f4ãðò2ßZ¼Ö@¦ª–vÙ²;H¹õTZø»ê½¤Þb­JWm&£nJ:PeWkAÚ‚õ¤ühGsy%§3› T¢å$,shUß2K·øè´Á$BƵISaw«ÀUa¥ŸäÉãÙl}./¶Ë² 4[eó§×T)°†Âid6ž îQnu”9©ÖÖå{)xPÔ`Á:„,è˜;»‹šîFÑ elkKL£ïD±½\OE¦[ÅÐU·©_Ž‘y©|‹a$¼¢uëI714ë†.ŽŸÎJPê;gé6Ôž¿U™ +¯Øaß®^ç¦íN˜mêÏﺌ^F³Õ Ž}¼D~ )¦[é9î0>…‡¥Ôîf´A“}æœývÉ_üâoqó|ÿ-Üÿ¹>'r!†²à#D˰X®ÚU·df{rk—Ÿd ”n8'#ζl'„is(ªš3÷Ú°΄uª‹U]S´,e 3®OHfwjëäÇ#Ñf’´'oŒ®â¯„ò¨uNMìm¿ý„ƒ[ÜÏ—¶übìQçÿÝ÷3c›Îñ-m%Šxã3Iá_RŸçSúrÔRlË9x81Æv £±kžÜâ3ŠÛ3¸gÔ¹ï=,¶dGÃÜ8ñTÔÖX»±pßã+–¾–»!27%vÕ­œ†Ô(U§Ië‹€[^ë, Ǻô *Y&œ¦U ÈN…ÙÛäŽÙ_Â:ÉßýÝßMÈþ€Vóë_ÿšä&€ŸãHr\Z¹€Ö‰` *CÄ B Ji+7t1ÙÇŸ`ßµ%{ga–ÊøÏ•PÒœ.4–;G¶INeÝR@•œS2í`r¢Ž«¸ ’³’Ùõ¶¿Ð<ÿëÄZVZ¨.ЙGDÈ“#ì9¢Â††œaØ@´¯Í2KQ¥ð&^Aë^”?†ûo¾Jg‡!ŒaY12œ†H3³A†4žË1²£†eüƒ0…3¬‚¨ 1"–ő SXÕdÖÒyú“(«ŒAż%XÚ,[k­ k;×:U¶þ¥é1 0ï绫-Lœ¤­¿‰Jùˆ©q³,L$ƒ²V½ó¹@b”UëLçÎT4¸e1A˜qÆC„´Œ§¯Gvxš AÖã £:©8Ö Y(íg0ðÀ€4Q`zÕMÌV³ŒÓ«þ±»ÑtF<´kú¸ããÕzܙńuLark¤7?ö™é0s ‹a1 1:C ‹“101,1A $Dæ#1é÷,“Ëy_·¬± >?ÁÝ)ª¤éY ÜK¢0ÕTs¤h@˜Y ‹UЕºĨÜwJÕ\´)ªÉ,ç›¶_¢ÿdVž*P:Í‘÷º&5SŽ3è*7׿ Ѧï¬nVËújب©Þ|z ‡)2 C8¢œÃT ìYTáÆp‰}G¾c˜ÂÔàúÆîÁr ¡'ãè¦yºê?t0¸õ.rMû²CX:Ll7Ï-’QV'Õ:I½5«^Þód¸žE¤{‡ÛZôôògþ{5Ö³…B0«ÄgdUh!oôt¦%Ä]dt"[pÌ#ÚHFô6ïÒ—Èc%)Wg–}¦ †^d;, GH‡²Ÿ™òQ4”Ó`|RÖþ ¼1/9ø2¡~ýë_N´]À †Å ‰ˆÁÐÉ!Æ 0 0 ™{}“ëùÌǸ€Ìjãz^ƒ§N›ÝP) Á­nzvQªŒÈ*…(2 #{™€nÉÕÕ§ÌŠÊ_U¬<ýÒNŒÑªvl Ÿ_T K`C÷ÏZ ½—ó¦ÉY+Xú²¤&æ0¬}ÎÓØY^\ØÕ_çIve5üa€ÛÉC8ĤÛ¦4Ì ƒL"‡aòbúá ý g†)hÃ$Ÿó….–\>‰›¬ÑÜ5 2NæžçM3ˆýŠ ±c§ØN#l?+Û‘o×!‹OF†F© C«¨hahîgöŒÍù¦Ò~³|!¬”ZÙŠEçú0“‚V5yŒí¨y5vu­F>xëž!8zÂËsè¬UN¬§Lƒà‘9 „µH €„ƒ :Uð‚7é>†åEy¹¯e|$dŸUßBðw#þÒy—ôÿ¾ûâ7×òçÇÜÇi:©ÀF Nèd4ÐkmÏþðìˆ_߈­iˆ 2Úé¨.œT.R4‹±&2¼m̨ì”eš2 Î2Öýò[£°yß—€êÌô™ÜÛ¼ØÓ³óG2ËØ¶Xèß„záw![h©anMµª46Ðg4R¦®û}¹¡–ê’3½­ÌEjD /‹fÜ©«°:kí‡\álưê”2Õ2¥˜;P?‘×(†.í/X43WlIÛ‡êÚÌc\k£í¬æÚjø| ׂ@ëö˜š„w´g¿Ê´eBlóñ¼Vۿܺ!ïèH™»K«*ÕAÄ!³ºïóŸU-ùlÕžpªêË's°iMù˜Ä+³§|åiO_mFvjÙù^ ñvTµk…Þ³ôôƒ {ÕþäcÊÙ¥ñ‹_ü›/Ù÷_:ïÿú¿ñWüãÿóÿøÍ_Ì÷s2øùö®#€0ž†Ál²8©…Å©11q?Z g ½ñWî­9k¦Î‹)Ô"¤l~ÆZØ6¸O9$+K¥Ð¿o³ÃªD6ʰ¿Ku_ל²€º÷d+“{—ô9÷Ô™!°ycæWvzÞˆ¿Ôö¢ b#lNK¥ÉØÀÚ`÷rêŒíÜr^b­<|!xäõ"'Ñ0%j£¦UÊFžØ$×­ª3\Éâ³{m0’°O>> {‚Rï$ #=ka´k/UgLä¦vØãÃë7¨æTÞ0ÓŒW$sW¥ÒbÆr:ºÊRD­Uú<«XˆLÄE1wög<uOÖŒ²¼˜%¬o®öDùmnžØúêæÎÐmΔõ¦ÙõAŒð €C¸'…—ŽÊ+¹ .ŽëÌñ6$ü(ãÓèìûH¶þ¯ý³?û¯ÿ½÷7ô?ø{ïá‹þúÏnw@"\÷H==c¸¦SC©ˆêÌ`D%ƒ²$…=}ùýÍ`xñ ,pxw20ŒFÆ•êT²yqj7™Úž=Fi£mOžhý$ìäo ŒfRë—Ÿ½‡YN× îË‚,§ë`(º,nÍ=ÅÑÁÕ§§«'ƒo»¹Ô1À©}‡ká”b)0a<­*œL¯r !¼`!|)6sz8SÆqÖ*že·„X ¬5íSI¢töëlô7C¯®bž…—VÆÙø©Ð¹¸öÌhÛx½¡S‚•ë?Ûa5£;£ã¨ë^MÎ’K®^¢¦ oP¥ËZDï².”f*ìl¸Ÿ³ÒšÚ/GôâÂ>œ‘2Çê I#Gw1¤³¬ÙäFA,@W+òs‡’+/Zµ Δ‚ß @ZEÓ[2GÖØBpdÈ´ñ¨ χÀò¼y.P×êÓþ9`Ÿ]Ê!7˜Vf2’‰0‰ /Öœ {®îÃË÷2ý0r†/?Lz`Ê*—Ò<æ¬0úNØdW®]­B¬ŒGÌvXëº<]mß3n¢Pµ5C3÷´{ôÆk@n UuÒšbú¥œ<* ”©miÅɰj*ììSÙ2ËÌŽšÅ‰,Dó&&dò\¤~µR¡æòέÝcª:FÊÑe‹€,¥µSpŽÁ8Ì`q~Êê+ý#ýÐÄûë?;nÿøw~ç?üoþÛ?»ÝþË¿ù7ÿŸôpÕ=3_)ÿ—Ýøs„uUbË",†ën:-NŒaç°qû`ù€ IDATÂyÇ9,ÄXO¢eâjP ..2B©my½6¯XÜ\Ë‹ j¤Ï ¢þ“›2«Ä)§þöÞ`Y’,¹;Ç=â5%Š L&ƒ!44í4=`ÔJ¦Í,´“?¢wü™iÁŸÐž2í¸€i!­HÌÓ³ÑD@â É` ]/®-ÜýÆÌ|¯ªgº«ªkx­­:_fddÄ¿îÇ/þ†Â®pEî¿@a©“éé¢Qk´g:ꋨ-ÛcºùÎ(NˆFãÔÃƬr¦a ÖÞÂz²ƒ”õd™`¹ «ÃKK*£2ÉlÎÃp˜Ž¹±#ÿ‹­^ô©Õ‰®£PŒ iÖs?õÝ Ãy8Ǧ0HæŒd ×A¥éWå]!·Ú‰AõsP(Ñž<ÙdÍO7S &_r1×m°0_'fVè̇þ¼‘êÓ³ls}¼nÂ,’óvjNíùs¹§ääMX`µ+5‰ ¡¶§R§0ryë;öæ1orS×ÜMºØòéEœwˆšª:_*sέvšf=v;ŽÏŸov¼Ùñü„çÇfÏαÛó¦gçMdžç ÇŽM‡ÅañÆb˜†E>2Ÿ>3Ç_üñJa$ùÆíà¿ý'ÿÀÏ/mÓÊ[Ÿÿâ“(IÏ–xz¦O#b„ë€[Â&,ª@#i¹2V]CÈó–½rQVEú½kDH6HÊŠUFµP0çÉzL„}ÈÓ¾,­‹F4õeAcÎßkŒsEEÖ§—,çCØêo¶gÖœà4(R± CUÙxú_i{ʽ6Nê/ßB!0Y…”‹PºêÀ˜J:y²CV²b‡Ñh~$šÿcj]Yƒšø¤Å|¯d˜Ì9Ðõâ¶-¾r`îp°‡³xô镳RëhЬ&¼–h±6´Go\>%¼ó¨“÷’—Õ;"©û¼E’–Éô)tzë&Ë•+ó•\ÔÖÑÕmç¨?óÜŒ5m¨ÙK-nElX°ÜdÈ{† ›0¤M0ë’¶Øø¬€éàøÄ-»¤¥ÔÖn>ʽí?ÿ»¿–/Ö V;ž%©ß䑾!àà8<YšD ÇÐù-MB•±Hœ¤ŽÎ°ÍÝ.9Õ¨ò¹rë–ûÛ!%N‚ƒ]{‚ÚmóXΘ·„!3I)WGêyÑÛ¨T‰*ÐFA8,Å¿'ÞÔÇˉ¨Ñ¬0QW®jÁjò«ù•‰q ë•4]ºóI.ДXr¦¹8up°8Ó'€3 ’˜ÁGÖ—6O&\õ"¯adÕÒÞiBêW>L¥F‚Õ0+Ó³ òž5hµ~Ïäj;쩉%i‚oMW™õðK›¯)æSEÈiß©4¸@ÝšèJn•ÞGéRÒ̲“)U‡Q]¢tÞ瞬›d¸³˜S:½Ôƒ)¯³ujç³a‰ÍgÓ‚,ûˆ“3Ú'ä•è@$_HÁ¢úÆgˆ²–Z7’ŠÐîDò\°?ùJ¥s<}p,xúôÜïǺñýž_)qú8Gt¥Ò€‚qѬ˜eº?&yaæ9 o=k”Š´ŽÉdÐ9" ¼Hæ{q’"ŠÀ†«é/z:È­îTغ1ʧ’y—ÁFÉUÂÓ“¢ kÍTAF‹'~þÜ:3ËÓ’ç!­µ©+²ÓeÿXUV@¸Ë\c…Û{f²!똮U"F2õYÕˆFýGu­P$ÑH¸–"”Uòá[x 6˜ST™^fâ48¯©ÍrÓ®eåå\â¬;­©SÏÉëf}Y//S‘«_ºáÕu–>ØÅÔ¦»¾ùè2ÑrÛGhCÃDB8ü¨û6Tš“'S€»¨P¥zÖò¢¸øæÄÅa_èW:Ðu˜~†„€¶[bM)/D.¥–-S2(IÕRa»„0ép#ƒ0ÑU¾PÞø`ãÃè³Oã^¤F½â¥í_²àß:³ž#\‡E1Öc¨Ë »;½ô`1|'gk5ÄgN¿1Öº5yõO­üî ,I„ö@9‰é©šÒ/»`Tx>ý÷䯇ˆ!”BäÀU›z¦ïr½Ò ¾MQ¢Nêì¢W#›Uµ /jb*2Ôw¶{1Ó·7LíD+iý­¥d¨ ”PL"0ÃWW½ xR—APxÛÙÊ1¤çž®bâ0ÓXÏÄ©r皇mÈÒVÓÌŒ…hT'b<#­%g>çV‹­Ÿ~ý¼æX` 3–j›õçj)…<{¬SÕ¿Nk^)¤5¦¼Ìµ)cDCá0'··Cš;M²B—«yâló8o¯µõÍ“¬˜3uhU²£ÁÊ &’YH‘"h”6"¤'moFl7À‚F¸ŸѬG><šox|°ÎÏýѾUË÷=Þ77D桃‘5¨© “PLLÇsy¦S©¹“ È^@GßÙ:=0,v#CWÖK\ö‚rØâ§ãâ=i–Š8GöF°¢<™A÷4ޏz‹lNÅú¯p2^]û¸ÚqÌÄ`§z%ë…ÇNgsÝO¿æé%p"3Ý᯷ŸyiñrðјltÕè R+ ªdmÔÄFJC&]òæÃ$µFD ‡M‡½=Õ’ !*Ë_UäT <ô<ÏéºqÉ/f½¯Ä9ËH’b‹OÔ®’ÛÞ¿vÙI1LfºíiÇóéN?wî¼z½1QǪhí²°õ&ªOb̉,ûz¹ïlèÌË+Q2§¢"öŠNú~Y8%7&ý7Ñ>½‰á¢aCnJG”.%oï|Ë^ÅÉ_|ñÅ>ÿ\À_|1sÙùÔ}2ÉÒûÀ`LŸ}XŒRE„ŠX·`dWh• *lýÄÓdЊk¾]'œ¾9›ºþ€fy_Ÿ^­Ð)ÊôÆ’}¤D‹ç…ƒ,üݤY™xÇ´›#Ýšù¯Ú[jhö<©yFçŸÖ…¯ÐÍž›0™³7ã›ÉPÎõŠÀ¤êMñü£z9¡­yíÁÊìbÃ…#Ånmzmn¯B`š+ÉÒ ›Äê nÆd4š”5l‡IFÊ¢ÓBº&“Ú²ÔËжzNþM³®§ò«©¶÷3v,£u¸.ÀNI$Ö Å SA¦§³Ã_Ùq…kdKR«ž¶2³qwËhüú½6“·Þß‘L)Lôâ—Õ# 6ÓÓïP‰ó>d`P qÏÛ\Б•µiÍÁ#è¥Ç*‰ù þwËûâ'_øþ¯RO%•Ô#Õ$K_)›‹6²9y–.);wÚÅëùo¶rIŸGKâ4³±Õá>ïцJï“ib—úki]‰(%ÏÅê¾âïhþÌ’†Íªà`Ì´ü;Ÿã8-û¹X•¸ È«»ª“ Ó‡¿,i‹ýš¿h¸¼^œÜ3C«ˆšª‘f´2ºÖ‚*馻+-@< XOCŸ,šÑe2(ÍŸ¹0œû˜ëÄMìÒÄλo*ç;PõK*{†Vçýv’^2cQx ¯z2óÚ¡åDYü÷‘m¼ª–žL•2í…ÉÄ€DÈLÕaÎT=˜ØÑ¡átÞëâ LÁŒ«Iœc¾°vëÞ0 XX°ÀÕ¥`2/¥¸ÁÄ ¶ŽbŒ0Ê™ÊÂfµ±\y=ä1~jP¯#p]óÚñocvô]†€aqXŠRðh”Q$³sc#£zæP yX‰úN°¥*Ëgrµ}ù†‘t…4|6-ãbõÖ¨|>äÀz ­ûȳLéŠÏT„@%½a3ªFÆvµ&—9áåß :@oüa5Ó×´!X€û9/x gx¿žWMÝÅ \¤iãýNÒ]BšV>œ²rÕõ^mzòކ‰Î&æh`½ŒuK£TZµß/sÓۤÞ|ðùNnó²°}ÿuœõJw6ý|}ë× “ñQ/'2“¹±©ƒ‘öÕÀ$U%KÕ£dÔÊŽ†!ƒ£N&͆½¯=ýgeÙbmì…säT Ì—f(¶Š}Ù Œ ÑË¡)Œ ! ¹HÓs Uc¬c@†îÔ©Òú!ÆÇÒáºÄ"áŠøTÍ:Ò²3ž-Œâ "áFµŒ†¥œU0 Ínì]ðŠ´ãÓ¦ÇÌÎUÕ_6Õdµç!-†5¤;7]˜0XìÁ²æäÏÒ.14®2½17—™é ’Þo–oc ‹¿o…‡f(Oñh'‹¹9$DÒó®§y£"¢%ñPÓ›ï,Š}'"”f½ýñZi(/›‘«õ B׬üÌ $(ÁÓЗ {†7kpa%Ñœ×è륓͉9]5 ù]7)^³é3ºB-Š6yY¨˜SgùqÓ®j?Zâ3Nþ;j_/ñ T8‰£$ê$dµÑꪯÄô Ùc‰17ç˜G%‹Ô. ÏËÞè}ß9:.Â(lÈTXl <x‚i l†! PæIŒ¡ô+è³íËͱZóoµ~À»Œ¬Rk ñ*£)§CÕíhÅ.“ê¢×Y¼WžZ‚ÂÁó±¯ÄÝäG¢éáKÈ™¿¿‚'ÁJAÃX Jqð$Ýyý|äxñß'`rý­›1©uQI6SÕœ÷V 8ýZ/lÅxVÓ–77Vó¨¸X4Á<ß+«„¦?[kÅ ,u23¯ügÂ_ŽÀY—T:?i2|:éÉuáÌé©uØ5}UbÊÛ!'ÇÎø,’·Ó£V… ¿æ½¦{ws,&2›8¶®ÊÓ <­¶…­ÚA©Æž¹wp˜¥Ó›™É4Ù‘Uùɬ®í5d]\òÖ(rÝæ<àçµ¾Ÿ¹úàxÎè£òð& tæ¦"¶Zés÷ÃéÊleZÖ »€`08Òs‡Eâ3¿Š¬Çûqcħ„À§ç¹0¨AÌö 9F€n¡& TÒ)-`+mnj²—tLÕ°t_pEÄRCt:§uH‹‹:©Ü…‡(å›crZˆL«BmQä·zìr횢s¹ÊӲט\ìyxKýHUT.ŸŠ©¸'ÜùìI§I#_±wEâ=:ÈHpæ¤97©´"÷®/-¢KªÆÛL¥ÄaS}— DÖ;:S׋tüYDSÞýZ˜FVSŽó¢-Ó• ygV/“ ¬ÎÁz!΋°–³ÆÌFh¦=+2ë gÕƒ¬àDÛ eÜMT¨ì8˜Î{®@ž}æ,ï±’1M?ÝIÇbßïÇ„×^¿ô•fahÓ‰™P$˜pÕ¢ÃS9ÝÓ±Ð\|ŽFnŒ7‡›RGÆÀpcçQu£âûžÇÇbÙsLS¾þ‹ës{cî?>ë¿fæî!e³…,5.Ì8$Þ$Ýléé`ié¥?›wyãéÅà(öF]šïØ%— ( d1¬¯OoOöÁAæjû^þ{gM»’%«8,½„7 œiYzL |ÞØxxnÓ†µÍ¢Ðz85QA³MöÙáò×ä£úû™ºv´}a4 ¤nc ƒ¨$®$ª^¨‹ûåä¶Ï«¬Ä~‹Î´8ì ©‘3; yǤ|H‘‰Ö8ÏÎl_QõÊy>BÕNË Í”5ÅVŒæk…jj롤È3?›Wæšêû–‚aÈdÙlr˜:ûR•šÑ!ú>*àE)½D—òˆ‡6½®Ü"¶5I³T;g±±\ª=rŠ"Xì`“ À›žý[#ŒN—bÀaQJ5Ã>¤aú:-ûDQ^ßL’™%ürÿÑK»}i›Ì¬¿}dþí0{*ÚYã3ÑLðjlVÍHÝEšV¶^Ä`ŒfR>ÛôTXðœ2h…õôVÄGu…Y$9‡¸_ü÷m…úæ“\8;ʦ<¸(÷˜Ìú/nrAi©WŽ6YmÓ­fSÔ›hxª2äOPXù«‡Z² ÛJ2©6Íy£Z3î§Mïxh”]ÌèÈ96i‰+º D™õnÚêiHRãŠÉ„ Àœ~}i³•~oBœÅa¿¹”ºn†Ýxw!æ„"bâé:½øéíRÄL÷ÙŒ1dS£´ºßMÌ]¹Ÿ,Ä¿»!–µŸð»×šéœ>¶%j¸ð¯¼}Œ…ÏÉ ¯#k±2uÑ\”I×)pHž €¾Üq€n&Hîåk2e>ñÁÆ×iÙïìç qU[}ð¬Wºq½g…ê~ðƒ{æÌçw,I|DDÉW¯¦€TØÀ³YD×z@ 0¨JeŸÍ`¸ê/mÂç&Ü8\ù:6¼1`ãp;‡)¶ÂÏ#KµÓ¢Æ§ó» Ô‹½¨®IÙD"—×ȇ9ÊaW—΂Óbîg§÷Rœ.ÿé¬qþÊyÕnQ)@ˆðIÁÔŦ[aåo´=rþËH¶‡]ÌzxgÒ–¸ôPÍF©½ÿÜ,855©öëge†ùf÷«'[+ºP8^Ý š³½Ž,ÉäcU³‹ÊDX9²9«ÅvÏ{)–ˆ1§ l*”Il=….V'Ã\‚óJyÿy¹OšJåqM0zH@ļ¯ŠØræÌ M‡×>ú¾B “,VÞûHÿJ1“ p"À„§dR@8ˆ–ˆ”;ý€†ýCcH~ÿûßÿéO:íõë]ªoV…—„brLi°›Ê¦oÅ;ŽÁYDGÁ´ò\–mkhÙe¬ŒæÂJ0öpW8=­ò¥M¤(\(rÙ²r,ê^ùÙÌ žØlâVêdHyKƾ+†èƒ1tK^Œìwzv–ÈDê>4fßÿþ÷oTV9©ÊûÓŸþ4?]…H®²½÷K‰ ¶Y¿Ñû˜‡€cdz)•o3k”'D*ü==÷&ÈN®±¡ô|oòØ”ÿpĆp /øxÞ„+]ÀÙ$Ó–w{Œ|B$Eõé‹~®Ês¤ã–[H­e9] rqºP*+X~a×OU 1ÑÏÆa*g0ëž2.oW¿^kÎÔò E+ì· ±Ód ­:+PGŽZJ›>3æY¿T ¨J] “ê1l)vܲùø˜iU/zuŽJÀ*œÙ¾œL- Ë„ùÁÙ…•ψáŒ'nlzM{/««Mï5òœœ\ƺÐt]€Ï÷Ó+OÌF:­ù9Ãí‰_ßDö<š“OÁºÙ´há#¯",©Áö¡šà‹l¢„yëÜ#Š•wqÀaÛh¬›4«yC€Ž(ß>“7€E¶Tû0¡;sQÁÍÙ6VÕ‡Cѱ>Øø`Ô‰·LÈ%ÝüÕˆ¯‹AŽ•ycÖñúG‡áÁ&SÇ.8ú®Íç¤|yt÷/†Ã16<;bócì8¬ì{þû¼eó†SŒÁË“œ£™ËÀÕŒ>6ªÓð8•:ªËe$´CÈI1íþ@ ®½†¦]SËû´]ÚBq»¶ÍgqõÓÓ¦ÏïGÿË´˜MT+–NšË©ý’ðKRÑ£k—FµájÖÏÖØvv«çžý(dYÆsvO³'vNµÈõ¤.3`¼r¶l×Ur~׊þÒÇÜ[œhûôB²+S¡Z]›š¡OVl¨×?Es½¢86iëu= ”Y.v=7攜ԃ¶c£lãŠUàÁ¼î±0ÎÆ“°¡ )ƱüŽÝø?‰LžÇ‡¾†0ûDpöuܧ=oÞYÍñì„÷ú%­l¼ áùàã‚2ôH4fàôòÂd’VP÷ ÖÆTM;αéØ8cÓó†cÃáP#0Ç®£*$Ëú¨mßdïÍ*ŒJk=è+@’MsD"¦‚krÕ”õ|g{w‹Ÿ[™ëúNŠä‰¶OL9ìÀdå^µþj3væ›UmU|ÌŽÞÓ¦¯Ç™ø¤»¤!N»Ù©Xž:鉨 1w+›.¬ä÷ 3 re:=¦˜ÌÓ{ošIZã`AÕÓ[O³.¯UdIœüô<•›l*§HÖj4Û(ÏÐW¬¿n®šÚØRr •·´f•i_~.4õèú^dú6 É¢ŽÁšåµøò`ް XŸRÝÒõK@ô™WÝwmöMÖ ¹@ƒÂÑ™Qž{<ÛAJt™YåwæÙ¯à† bÃóÝĽÏñµYv’+Ýe5Áf¼Á9y EyÝÖ'˜óæ£õ߇a8žY½ŠÒ F09…'øÞ¯4ôiU^xúó¦vÒ/àû¨†m²Õ2ÅÎj¥‹ûÉç­ç ¦ƒÝåˆÙ¦R)/¬10»S(VÚÅmv®uÏ-´TêÝòsÊÀÕ1÷²”çJSŸÞ!-ù#§ñ*ÿ½ðÐŒ'h›®Uߦg&më‘ VÅyÃúÚÊ…â”” Oo3Y4iÓ«©€õF`d+›nabhÍ ?-*™Æ]}­yæöz6^°é¯¤õl‰ŸlüvöæM4iWÙàº, ÈÄu³ Ï¢"+ެ:’ž{þÄ ààh† ”|˜úO¹ H³ÙzºÉN¸ö›‡=qҾÛ©ðùÀ ©¬˜í Ãáƒ2*«Â³šNõY%hÚjš#ä·F"–/Oõ7=¾fËþRšôfÜ`H®ïÌœêK{xøæ g棕]Ùa#ÅXR_·|aÒÏ;ƃG‹¡§ÏÞP Ž-±õ““.a%ô,Ø4H0nî3ñôò–ÃË3Ýp½®ðt®ó;£y™vöá{0óñêŸu¦§= Ð&¬ézéWÛôÏrƒ5K(З?ûç–†ô· XŠ&GsÞ£Ö&ø8ɰ¸pϡ膙 g ÄAX»êa¶éΟŒõiÖלê0Ьº†äÚ0¯‘ÛÁ¸ÁÖs‘븡"›Åúê6ýáXÍôšÍ•±šðÝ*S9 T‰·ʸW´‡"¯DçKHÈ«ã)¥£‚°A°!eßq]xÎóÛ&Ûá;¶ ûg0 ßmc\Ð(o ó(·'Æ2_SãdÒ ÁîÛ·,o€ãp%¼>ó(#> Ÿý<ý¥‚£›mÎy\pö5›uäxÕ1ÿÈí{žØáÄ+±ˆSIfŸ~zºÃgCáºO–VUê–ʱùÌkz»mâÕF¼<ØvÞµØÐó8O:Í’/B7kmŸ.íR–¨<ßxŽ›>{ËÙ6‡üÆÉoˆù´jò¢ÐùäÒ«ÁÅ„Y_ô~Kµî+Œù´;($ç‚PW6•Jà¥ÉŽŠìzÊl` j†j]|pc&ZÓ¾Sä"‘$ IDATLêzª´t ‘%c³ÑäôxŒ­Õ’-ÿ\èçì­ó¿þ1’¯jnf ?=ŠuÏ,ŸFsIj—(ß|ÖMÇ¿·(%¢)ꪥȭ)Š Ùeág›¶,õ±X1õßÉ¡ö>~ náŸaÛ°ïØ6ùöM›kë\é dTõêA "•4ÀÁg2°êIÜØyò…‚&"ŠØy@1š’Ô÷Þû_sõÆã΋åëù╬)^¶é/­á16iC;" M+Ï®MÕhþxQhmÍ›“ÞºsG’Ã,£Æºá° UÊFŠa]M€–ÉŸPÜi¯ ´³«å¶¾oÈšCÞîê<ýZzÆÖo𣑳«õ #¡Ì|t³HF'§¦ÞoþbÔìt­‚0eë¢&kvõf6Šßâl.ù‘cÖ…*YêP+e Äl¥4!”’l´Úó¤6ΆדMKÑ8ùëùA+ÌŒ´&K•YOl¸ÎºñíÛ2‚UƒSÕÉ Ý<5×´ö™G­K¸ÌðÜKÍLÍ…!Xw ‹Ü)À¨¡éXX]‘,`}ÈJÒ6ˆS! i2ç¶ÉŸ´ïØvlüI¾Ã^ªC¨LTßf1R:È4ýËëk@$þc +&8D *v„ql: ä¡Š—.ïy|ýhÌôš¿êW^ouüßýçÞÓxa•NË:vÆž~îY}êènÑ™¢L˳ö' ?˜öáêÒÓ´ì1fe^ú抠]ìÒLÌ]½1±qFÞcÁ^*CŸiI5þ.‚g1j[ü]A[Õž›–äˆÜíí¥+Å”uPHM Áš% 0u¥ ÉW[½øÊ Ïý±Ä(Æ{›® @0M]d£;L» Ù”ôÊ0ÅdŸë“3‰ía@ñTˆRH´§eg:LSùýl9Rغ'M“U€›‘ì…Wù$Ï“·Jƒ'9oâÏOk½ËtÕŒåϾ¦7©ò²û3f"|!ª‹ï@ä³Îµž «´d› £ø¾Åq ¥“îGgPÇ…wBV¤è Ó·°'>í±íØ]¾£¬üFïÛÀT}̉°#‰X7};ݪ¼%6†Ã¦¼¸Çí¹ïÅág~ýŠ`_Õe~—%Vîüvû1;ì@ÎcoƺÐLG%%œmßÁDŽYDņâ³;´ñ™ÒV*²@'ÜZŽª„jû•cæQ³ÙÙ}õéœÁ°+ªLg}l4ã~2˾„©‹†Lðý¤ç×—kÙX~ú¾h6—™ª–8ŸMè” ’Sª*ÿž®ÞAÒŸ.|—ÅÏÍ&Bˆk¾´oVŠp>C“Ñ[1©èa³*µ3®º1ëS&¿ˆÓÖ¥iy¯R{ç™2=¸\î>æ9uuÕÖìâÙ*/¨Fûí¸÷Ü3'9$¿~+ S”æ6"$TÒ$¶WÜ÷@(*w×è wC™õeÓ=àÁJŸ†¼Ð˜ôöʽ؈OÜ·ð Û&{‚oa;m‡?É=°™YÞñSz¦gŒÃÎu.ÕÐ -‘ƒåÌE üúl®"çsr§Š§3\aðÀË3ý¯Ÿõø‚a­lÜ/¼·Ý^ߌW–86¸´M`“Tw!@ÓË£‘áÄÖK&Ó¤¥~¡•“ìÕ¾cÖCc‚‹•-Ï®±õ¡"¦?v25‹¿˜œwËÉhX¿ƒ̧÷w£Ò’µ£|«ÇȪ¨˜q@ªn“r—G1Ûy/0N] s¯SžÅ‡JæÏ %Z»q¢1M:l"f“J|ÑöjJ{r`F¶IYjPÓ+ׄé]¯ã »g²ô,€:kJÙ§?¯l:ÂWä|ˆòr*^09™ÍŽÉ¸?a¢a|úZ Éh&Lå6 Ù«=˜æ<ûþ²á4øVacZÓ´°ðâ8–‰G#ìiåç!9Áé[$ª¾mòϰo²û†í)|çæ±59žÂ Ù€ÆQxKNÑipm§"õ€­©ŸÌÎ'Žb40ãæ¶éP¡íã•5ôWç_‘›½Ù˦» # Lçý&O€ I·‚Á‹ XR¬Vk UÓ”ŸàÀÅåi_Jí›é{Qª§¤'¥92––Y¹ÛŽ×"œ£jm¨ÍsÁʉH£ÖòI‘ð– s WÑûùcd3ÙgáÕuÚµ,lAXbDí”U’Âi|[}1ë]ÓqÚñTvœÊ‹a˜Zr%ß&V #Ú%gÙèÓ¦Wã=0e~¯u­5¬}ÞykÕûœ›©gë‹uZ^üä,QwpŒUk{]Z1Q“œØ]¢%fTêg$à®\0@ÊVŸ#d-èRj+%ßÑÂ<”Üì°ØÌ7ùÛ°}¦mãöÜàÉy’ïØ76Uƒ¾*ô,³¦}¦ŒˆL¢>÷/LïjÞä'ö’ig«.ÞÜò:–Ëd‚GêßU TÅ!‘•Àôh"ýô9úÙ8ÓbóÉX!±ÿ ‹¨K#¿K²Ô9²R·ÐÞ®¢Ê_ZW¸å×¹žé<ßµc±†Gr—JÑò¾;YªÊ|¢ú`t§ÓÁÉDÌUá„bjv¼ë=tE’ב¿¥4ÐPŒ¦Ã>™õSR­Š3ÏhžÅ¼²ë㦫í^+6WjÞYë± V6¥~­ ”}zOû¨ž(óœ Q¤):pÈ•Œ„Å~I¦_³j”4÷D½]—ùa;÷Ï´mðMÛÄÖwìü)žvn÷ 2¶1ä¦ÿÏŽ%/h&cˆÛ IEžTrý•5ŒƒŠb¯ –ÎÃ’ÀÆAØöHqí}糿÷AÄfÏ®æ»P•‹¥YÛƒê½g'ê’0G*—@dúòˆJ®àÃ$•u§Ês¸ómÕ˜;ITW£Vìâ)âHžÌDÕ éy[Õ.iê \Pu–2Œˆ fWû¾^S ¨;³.¡š‘çÛˆ ®¨:Pgq^[öÕÅijoœöóX×¼é¿'Ñå&-vÑÈE´ýwCq`Í4º•<Í=õ  3R¯À3Û$Ll?]lÆ.ìYšTÔéÔC„;öM¾ËŸ¸=éi‡o*l}ã¶cßa{Ø:7S)Ž6(C´è>kIÙ@&nò(ÖTFršš_“ÀÞ¥§Ã•I”ázÚ>­ ê¿oÉÙ@Ϻ²ZŒ ™H‹Ê—flkþl1ð*ƒÉö#»Xàâ«åIWdvrÃçk8µ!V¿£)©H«¸!$“ 9òÚÊó¤¯㊤ŽÙN‰+Lßõ~¹DÝt§d Q‹?õHE˜G~÷æ³Â€ ¡¹ñÚ£®i0ªøi÷åå8Kƒ7¥]ZÏ«,xsé8,TU©éÙuíÉu)£¬¦±@”ó•­ÂJþ+ ê+óÈ÷ä•0Œ/¹®'‚ºøïÉVJ;>ÎLŸÂšã¸6—òT-ÓjœùÒÑr1™VUåWM ÍÀ½ôm§?‹ÃmO³¾i{Òöd›É³»ÝÁq,åZi»Ï‚˜kuö à„!²¹MÒLÑÎ{þ™zÚAŒíW,ƒÚ·æýCù˜?SÌÅ[Ï›ÿ¥`ñciObç±3eYóᙚŽ]šD¥ðs>NÁ,Oïh°˜­™Õ½ÁYhb2gUçŸ>àõ»]ùEirú¾Œb»ç•1¹×@"8í®IUÈÖêêËÛÕz$-.Á‰a²iß§NÜ:•—‰FÅþ7Ÿä$¤BMVÁ’/Ū½•Õ)íΧòb™í²ŒFÃË+O™ÆU‚ˆ†k–7Fûé§A_.nöoÊ×6½ŠôUÓbµã³r3ÛÓúHêÍ‚'œ ð”b;ñ–e8 K‚xw÷Í.©çãªb:ë· qÀg¨ŠòÖ(¦ x…¿oA§oðž^y¥IeOÜ7mÉÙð´kÿŒûv¸ÃÍìK z%¬Wgœ¢òSàB©ô™uz2jlˆ-»& ›=[¤ó.WvÅ G8â͇ľ>û̵~"ƒ©±^]A½ÊQ ìþJž¸§G³ö3Z6¶ÑÉ6èRÕÂ!Ñ»2Þ¬ëK¥›§}&`Ï£c±Â¯ðzûãQ‚v@O¸&„ŠQÓY{s:+s?åË[.uÍ«ª\Æ„„_ÔHÂtž¢Û¤åkqͤúÕæg¬nàà:ªª"¬g7ǼP–obÁ½}aåå}3Áˆö¯kM5FëªË˜:uÖ8Xɤ'’H£¬8SÆqº²zj}mT]Jí#¾dÓçn{y¬"°úè—ú².«S¦%Àšb¿å¿7O&tñÜiy·SBZ*W½Œx—ž&=°€‰I•ID~ƒoaü3ØÛ¶^éÓHeÇmǶ‡=qóá|wC›ûHfU%Tó¨ºÇ/p2'Èp ·Ã®0Pxdéi%Z cƒŒÏ®cû¤qökíúêWO|"¿Xn—©y‘ ûzë9òñKq× ²H–*rfé„Oiq ‰ ‡ŠÅx㡯™ã,êÉê—–{œ_A*3éŸFÜê©d&SëãüªM»Žœ3%€Ê°W{ &€4­|%ZZ)…/%çLéPe3âÄk§ÑÏcžº1W¯üœ²>Ó6ôD« œÃK!æ|:¦ô ,iËÀ„SÚrU¢ÒˆÆUÒÖÇ\M­ÉuTÚúa:¹êeÊ×#ÄdÒƒd^uî·f½O’žå`@;ì㜫Yy˜ÐšÛÛL$Þ˜{±eÖŽ t>H¥â{^¯¾¦€”qiþ’Ÿ“ ¥`@æ-]U”ÔùR02ÿ !ªvo—oa;üÉ|%!°kßä©%°ÑvùÛåÜa;ÜÂeC§UŒuÛó,€¨:+ƒ›!‚„Ei9å”3p ‹Ø-áL´]ÆppK¬èÁœ¿Ÿñ[öW+ŒþÆýßšýÕþÁï§—õÇü?JGúÛ¡§<¶tP¾½jìGÈP³™Js® Ëg€²ŒBט,0ú…&q­L¹ñèsðŠsÍÀùæ*üY=ÁŽ™fðÍqLo”)€¥¬|Y¶óϹŒ°ýAåc_̲«ÇØ |¤nØÂÖXýÄŒ'Ô•÷:ó°§ûéÁ,UUÈ@VM¥@1ËmÏò¨hÖ©YuèN\Ö€aÌÍö˜Ðšè¨²Ë Ý>H¬¥ŒÉ\›ôPgŽÙdnÙàu³þp¼îÚ¿4^òˆ¥wRæ9æ„Ïëµn3—‡y·×‹îU`}›¥  p~Š®Óf­f2… p ³.52p4¸Yd‚´$áfF33CZö¬ww33’N l™ÞžZeFÓAÀ÷Äûuäba «î4ç÷7¾yËÞFÀÍ©ºÿÛßùÝ>=á/ÿò÷Éÿwį÷»¿÷æ ~üãÿ ñ¡-ÉÊ÷M<^Bä¿CðÁí £d3&‡ÝÊÉ%‹2úHßÙbXÙç¬d™† ÄÚ”óê×ßþþ;<Ïs]¹yóD­:¼ëïwõÊ/òÒ>øÁo½ô-Viáљصª@A‹ÅOR²“™ÝDF˜Džx‹­ÚOç®á]aDuw‰ #‹¬‘”n˜ÛS¬Ôˆl”œL–íHWi-„ÌŠ¢®™£xÇñªM€-¼¾ož˜û­õ»¾—_Ϫ:àŒ¡nà¼s¯ù¨ê~é¶§É6Ôk7ÚÔà™ª/̘+Óòf2––˜y~YÌÁ ºÑ,é t‘ÚIÌìj2 èpg€8=Ç{~ts¿¯ñapvòK³¿úßùá_üù?zzúñ¶ÿØø×÷Ïþ_ùæ~ç;ÿÍ~ôÀ¿¯E¨ýÓ‚mÏF¤:n™È¢±káA2º8êÅé¡§·>Mùôâ™ä„=“j>LÄëWßÅ+@üÖe`gzmysôºB²ì»¡¸˜Rœ‡Í‹ÅO‡Ñ«¾Z&%Sžƒ0Ïd)£m½™¥ªŠC…²(`•;Œ#áñÐ0x`˜ê’lò‚˜:ªH¥ ñPB;¢+†­ê`×|¼´Ð>/]ëó²ñ¦*[ýökw ö|SLÛ©Ž€%&@5SDH€.sZÀ n0“…Œýšù~rUáFÒ`;žEˆƒõ,:Dß@’<le8„€Ž8´ã•‚ßøøæqö5j.ûdÆÿçw÷‡þÿè³Ïþ÷Ÿ}ï?ùWúgÿ©Ù¿Ùö?ùÞ÷þÙÏþÿã_ÿátöÏ[Üöo§Ÿ~6`G›ˆÂ‹Õºùä³J“E€€bVLÙ€›}¦œlâœ÷fý%m¢›ØgE9ðÊ“œ±E~·óúà kâÁG/î4sÑ„ˆÌ Õã§ÅÏõ€–33 À‚rŒìôΰˆôÍ-í®4´9èˆÒ*d0(Q!k¶Lª\ 1‚³•xŠ4”q"ª¯TÚ}€çåš-ª “ã8#¶·Ìû5n~a.¯€ÕãO{'öâsXz7¿Õ4“¾Ðëš=n0»óPÙ ElÞÖ#ìÌ9K:´.>á¤Y’%³2‡24cæ‰æXÀH³|Qž;ø%¶#`§ Æ!@pð€RµÆÀ 6pAŽSA úñÚ„Óãýùì+Jû7OOøìéŸïÛŸ_þ«?ýÏ$Ðþ/ç—ÿÇ¿þüÍ—¶opÿ?#~Múì[¦öÖ!ØO#AæåŽÔ¶*zÕôS$d÷è˃´æÊ®\æ‡fx€>Ïñž{«ïü•üÈW¼u½Í‘éê×Ó^Žámq®Ç˜²;'¬Ÿ…éž=z”iRHŠ"C™«ãØ&kõ.›Ú¼i(Â~´¨m %W „“ª.lÞõécE™Ø†<`iÜóÅ:i/MÈʇéëþÞ†² øÉÌ‘Üe*.ïÛvÄ £!ï‡S‚È¥îäGÙd˜Ày"éiÖ³—¤¹§Ö}¤Ã.#¬|v33Û ã3Û>›äàÐØàŽ8HICŒà0$µQ¡xs¼áˆ Üâý^›ëø |öøÿùïýåÿý{OûÿJû+è³›GÒì¯~ö³üïüðGø?ý{øKÆýæãü•Çûœ8 Jw!iËLS{öçÈ’ªs(Þª¸Ñ ŠÁ·d4+tºq(”„JkÎ4æ­1bSóÏ0'BÃÈG¿S¦«‘rbHÈ¥óÚé¹oêx®“)Ý€oï9½{'²¾þ õbzÃUœQWs \ô`%€ìä°Ï{OdgJëÙ57¦<¡‚_ÜDÒæ Ã¢1wÒ¬Â%#͒ǾCNÎjÙ\DHá6¤#b3À’õèÔˆ¡À“,†á{LJt=ß³âqYŠ_ûñþÁoþF±Ÿ¶?1ÿߟ8~ûË7ÿÕw¿óßÿÑý³1`2ÙyQ­ÀÇï°¿8ÔQÄ60RW [mÑŸå…•U°ü¾rç—lê¥RqšËåá|'»yä ºØâwóÅ_ýõ þqþDäå¹…‹™ÌB)¾·ZÏvçç!†T¤ùà6ÄÁBc"Ec²ø(…€ä¡ÃDƒ¹¤ì”)¶°OâÝCaRi7k­vaˆÇP>^¥§³\–4-DÒŒ@£sàó¿e>n_¿•ƒ;ãþ:OfÅåù¥×_|”­ùÊ»RÙmUK<-óç‰Èd$tÂS `7£9l¾‰®¶òɇé 2H7ç0´¸Of?Ü,C7iw×3!ñP(BxŽ/Ç`„öÂ4€_™ êI|Ôgcüúü¿ù>=áç?û}à¯C¿ñÝïþY©4ƯÍo=ä;.ÊoÛ¶! JW€Ç¼õ5º6o*÷ÎÇx,ðzbë^­èž#ùUF¢ÊlˆsÊx}Ócå;¦ÃžLÁìºP4¸%—7ÇÔPÀ ´6ë~¤‰oÖãH V‰ˆ rÅm¸<8šŽ‘ÉÕÝ[n3@ωhcä ÎÐ@§†`âÑ0‚õ±¥ç^«œÎ•óÅòNœ©¦•ûôáìÆ‹ã~…>ñ–%öÊ÷¯åµtÞcv½Ù&" $V¬˜;Lϧ33ÑÙ”GZÀ\}Ïù¾™ƒÜ©Û²±Lê…Ô Ðæ òYýYЗÏ³Ž¡=)m éÓFc®ù«ãïüèG@û«ÿð?úý¼fü“ªøµˆ¿-<­»¸«AÞæ}|̃þ|©;”ð bk_ N9!ãUw÷³~Õôxi†*;5_¿;ƒ…ïäü?±F)–õà¨n‡‚Þ8LµÒSÑÎGµ¯ ˦c¾ ù ‡ÙÛQ°ŒÌ¸fÛˆ“ >„(¹ànÀÆ”²¢ + ¼² 5ÚžÔ™u[ïÉa¼×òàSd_ UË‘›qŸ#¹è¼Êйìç“yéÙ¹xÙw9Í_¬Ö¬V®Ž¤”5[ .ÞÔ9ÓC¿Ý;i‘™’U#¼ÑÒI"Œ• Ý`m³Í˜Rkn4“MkNÐÍU|vÀéMÙõ zÃç Jú¬Ø‡ 3FÈÝÞ‡dÇ`„a0[Õ(,¢¥§Ð³ú~ÆûæÆ\ßø[cü-Œ_ÿ˜x ŽçÛ¯<0èGûÆŽó›Â6â¶îÅÓH=9» ²¯•D˜^Û;xë¿üà*†þrñ÷×õ[ßœÿ%}(e맆ׯÍiQ3 ^?à’áC~`ìÈJæW²‹)GjϦ¥&0eFÔ ÃˆÊÓ‰4D¤«ÎÐu@"Sg?M`k|U˲u82뛤V4àeØñ%VÌ)qu'áù– 0‘' scŠ‚U:ðÒ¸QL˜FX@s[ãÅWyŒóùÝAÀªN"ÂéPž;»(‰Áw,kPYtû=¶ IDATô˜.7 ¸c³m§"JRÆ4'–1‡ …—Fâˆg ED m¢"¨;Lü´¹1—¼_´QÖÍ¥ª\öÛ¯>j/ã¼_ã[ ÈPðCÉNÃ6$n>Ê=?gcêm/Î+f]¯NÎ䓼~¨ó…éöÍ_l¬¿waÍ/Fy=€Å¦‹2fJµ9‹ ÙÔëitØPúæû lv`ô¡m$o’b¸8B""›²ÄžÄE›!ŠØ‡Ì0†Ê¾SО´FZÖ(e',†ª_hPle±òÇ—ÔÏùù…G¨ÞRvç¹Ï×_Õ=}¼²rÕ|Wƒ:ÿkÙEÎí‘´Â^Ì×€/Q¦á¦ÝE§9½r¤ÌVª ˜1íØ]™W)À'9¶iåQÔu„ÆQb:‚Ð}rP9(EŒˆç…« à—ËfÕñþ|ö¹˜ÿûßÏw¦?¾&µçx¨ß»Žo£YGVÙpГð2ïÛ³(éìÏP™RcÞÎÑ w^ª5ý&Æ×½#¯f]?&!‡Ã0Š‡Þ¢€é³Ï}±…?&%FÛ@šuJ¥”M'%ç‘;ßààÈÒ!‡‚cS'º!E»òš„3íû3S`c­L›µ.šh Y€f|ì‰óÞIþ%Fª²4þ£éËÿ2ûüJæ~ªœ—l…Ýqa1Î|iÚî¹æLbÊ ÔG¥±9*UEÒÌÐìuLA˜|á&ºÙÅ„Ien»mbˆ4™È\Ê«n ð¼ž1$ÄP|9þ&{0‚q.J܆Úƒ18†L'ßé=×Ò¿'ݘû„çËR_!‰ô/¾øâmÜñ5Ù—a0ùì5%P,%Ø“®^ìF]ÅxYY·‡^ÿfó—Èÿ/©…,”†+> €_ùZðÖöÞ½Yóʳ|VœÊD†J‰+´‚ѹCŠ s¤‡^dÇü·š®*\4†JSX*•ºNœ=/‡Ó¤!™ªÇÈÜéž`{é¢ÔdÎB*ÁÁÈU `Iµ<Ÿy¨­N¨¤Ú»Î…œz·r¤Ó|Ï,ë”Äš»z„¹¿~Eêºô³Œ·×‚Ÿ¨²-¨Îºÿ%SZå3޼Q‰™äÆàɲ Õ¶*Š6 óòÖé0£m0ML¾#Ã)Û`’A<àÛVí„÷<Á4ô3fL””Y‘2ô"ñæx“6][ˆa )b"¨¡}ð8>$düž|ö{³ž.ùCûN2?ýéO¾øüŸßoðmó‰2Ànå{–®k±eô'L9³ƒb–˜¾ÍUo"Í;E4lúõÉÿŦ;úÖÛ}õÖÓY«‡¼µ¹p焉Š}DV|'°~1ë[À} ÑöT؈×0™1 [RæÁ”¢=¬Ä¬F$h«a¥LðLX,ØÒ¦s–ÅVTÕ°›¸“sãÌ] xéÔÆç£ÑY…G1k DÅåLyÏm¿jH c‘ËúT:EϲҒo$ms·ÝªLÉR„Ý70à›•Ÿw~9I =ó¨9“´›ÞŒg yp h0B&ŒEÒhLCŠÔ/ø:gô+÷ÊgO£“Ö<ÿýüó[Ã7p~*à'ŸŠŠïÉ·¶}T,«]V3lv ÉÛϬéùÑ+ìõYX?Ç+äÿÛiñ­~ø¼Ayøg–HünÏѵ"éÍFúÅç‘XqÛ+ TFÚBÜlqÖ9´ý°Abƒ`/åHV®/+NY¿ =†ª-Lo8Á"˜×WæD­u³¦LD´¦VåÌš\/ÃåZ?nõ¶yf:ÅrQZkï¤ËY¼í‡îŽýnˆg¥[3b€\¯6½~sÓ㟷¥óQ¶ü¢²ÒÌLæ° Y—äÞŸ²73™›iKý·NÍÔblÅÉ-[‰ë¢#bŒcj`—0Ách1¨P 9¸ îñ5;Û'ùÔ$—aG8˲¨{`‚ÔÙƒMj¼y>Æ·J3Þ›õWÆëÏd^‚×¹¾õ‹.‡­ÎѧlŸ¶%Z’|Liûú¶l0Á–í …öÚ-Ò…ýHÊcé8& S6@2Ñ ìYlŸIÃBÚ’ªè"06Úm€¥êÀú§uo¸y#óÑÔ|%l½@ów›áWvüKÖ¦>Øá¥àöA¾½.îúªÔÈÔ­sû¶ž÷€ d×Ü-¡ƦcÀFK‡½5a¦ÏΔot§m阛™Á7Ð VEDòlÕ ÊDî¨$Ei‡"ÆßìAE*=RÁQ˜ 8Û’Ðv|H ù›÷Ù³kId„óöÍÐ\_Øæ[м7Î.ãD`ˆ„P·ƒ²"³w$Iãu4&™u‘e®.(ç ›ûY]ÅCV›òŠuxÓ3ãëòÊë·Š«M¯Ü¬FÒkêNÇùf£x˜ì í,´´¡”Õô€lG•¡²zÃEÃp$ " 7 8¬<ñT’©7` ¼¢u˜/‚-9^4×"9Žj:],éæ^œ1ñLOÎ1g¿eˆßÀn~ì}Âò&l®ë—è¦y2El5Áf'CÛàitƒ9m« ªUâ”æA³2úp9Í¡€0`58i8ˆÊG€ 8ÅñF2eQR ؃„ #ždÇ€D·ñ‰£1ÀrÏ}‹kG¿¦a‚ Ž:E„„¬!GßñÑ‘r²lì°_$¶×§å¥õï!×-‡¦Õ&æáx«Ó·îö^'äá—­Õ`¬+NQ¼zÃzk¬S¥±ŽLµ·C mC¦/|˜ôÓ·€Jwž‘ͪ®æÈ”º ƒ;\Î($Åa†ÃKÃ%-ø H«U‡3Pn,zÖÉðœ~«^¥;³»i¯ÛÂóú¼?grQ‹üÚ=÷Y*Ì®9ª÷WÇ¢KˆMËXtÆICªwÖtK®€f}ÿD`Ûè[9DF5ä"ÚYŽÔ ÌÌ6#˼ө" 5¤JV“ÞLZfu]PoÆs m¡R0·¤1bR`³út£Ã4Þ_O¥úómf½¶oß›÷¿ÕÞzÙªÞ¬úÉ st·ùçÜpQi¼Ûó•}·ãiÊðÉ0y8ÃõpÖõ³æç]‹˜j7}[S`w ãÔqÌ“]r¹˜  €PÚñ´M|,ãN‚†v’,Â/|˜óµ·Ø6°=Ƕ$0¨Ÿch„d9O@?­õ–ñ1“Ïq1=ìµ'Òâ§ý¢× Ó÷lXÙT€<[¥3šÉ:ûëÕÌû£d'ð"Ejn‰B«·ô_ÒÙ”d¤¢O¯™0/!{mYëuO&½:Ž2ï%¸NÒSô 4ÚF:é-øµ™m Ó6Ú&s˜ æ4cÉW <êVÌÓ&c„ÉŠ‘™EŒCo¶ˆðÀ6¨€‚!ÆÀ>hÁ<¤0 Fpôø>ìûPñÅ~OaÕ÷ù4÷õD¾ÑEÐÒ‘¥ÎT¹ eFï>œf c“«ÜN#ëjpçz£ìõ‹ÎÚ½»`2'O`q©py]vyæ çwj¤¥ieÓÁ3? ôqY—!BÛÅrÏŸálU€lvÖ>»¥·î‡,°òÀvL0lÇ¢ò˜Ò¥êÓ q ˆ9ì±áÀÁüôpHž mÜE1”Òêôdc„m4É“.3E#ÂhŒ4ÓX°ega[µ[ %í2ËûUúÚS< KÕX•V™*¡1VóîK=ÚŠ¿Ý=S¬yíÖ@w_d1”Ð0Ú¬,[´yO¦P.x`¯#y¨´¹àa6dC²ab$þï‚§oØ6nÉI73#ͲNÉ[~³<)—wW‹:ž'ÛÒ, Èj¢ËÊCÒÿOÞÛìÜ–dÇa±2ÏmQ‚)‘‚% áQwAâØ#<Ì™~¿¡‡ðÌOá™Í4§@‘bUkb€€E¨) ЀlöݹVx°2÷9ßwou·šìªêvVábŸ}þ¾³V®Œ‹bÕ¢Õ}®eÑ­Z`«!Öâp¤I+ŠiÐÒ·ÁþZ‘ý³åµú|¿x3^>÷;ïg oàšwxq¿òG?úÑë‡Üïýº§¾ ÓÃë0ã1ôÁ1àA#ˆ°… ŒÃT8†F ‘^$Í:·œ|ú&Ý(dÕž_»@Ó_Çd?ìºS²}7¨ýI”W¹só–bí[zÇqâ”ÈÞ¡ÿ4FÁ‰0Y»iMïg×'š«Ž;”ŸÆë *ÌÆB´0KZõƬ¤¬èÛ³Ze¦ 64ÊŽ‚»£}7fÑt& ¡&SW²Ó팤C.? í#…bê¯,2…’+ÀXHÁbª†X$¼˜l‡2¯º±²Ä#µ<'¦& °Amï÷}Ú…céÿ™ñ™Å ß~iã›#> }¨À°8e xØ¡ PaE@u b­^Å2رûy㉾»oø¹,ÈŽïtª¯¦.¯Õ·øÌ“º°ßåzãò-¯î•±_sÏçÓöR@Õvê] e“…FÒsÑÏ¢–£øŠÀÄÕÒ$+1TÂŒFä9ár\j´ƒf–$À(»Ìjú]!$j™h]ÌÎÖ™-d2.Sq-J¢ y­(·á~jÿ[bÊJ\áŠ;Êg —çDã-|ú B½r«$~]Np½©NÁŠ,ß):ˆ7IúFQÎû {íEÑ»Üùø–Ý(YmWŸ}6w¬'Ü˦Ê<óÂ\ž‹sa\ž óDü¹vÂþèœ}a:†9ÃzpÊÚñÝ#c?Œá5†6?†l’ûØ¿¯µJ½ò Á¦T»†8 {»‚4ät–b..(‘Æ€ ôE„ðÂ÷~Î÷«¿<ói”üx¹·_cî+,ÓÙw?ûå—_øùø=îOûº|ÇÇÁïy2ƒ@("n~aÉ骬Xƒ—O"|§JÉoº~Vv¦I0½y lÐôUŒÿ5Û¯_sÃ3ŸDí ÄãmÎþ$6¼0ØÚ!àžcx0ÛÍVnDY6ó`Ò]ll}£±å(bçõaßA|ž•{ÔFÕ•Ðò¨È+1h-h¶ß,«\fÁª&L{•›]²û njÃ,®Kv²° 0ûˆK£+3kϱ–\ì )‚\¬9‘mI(ar²è€Ð~û¾p^ë.b=y±`œJÆÛõ“Zùu)|¦£Þ!’¾žÐûrÓ1†ÞUî:®>‰—øŽ ]~`y,Gb.Ž ‘˜—ãr|äHöS#1ÆÅ¹—ya,NÄðŽÐ“ƒÉˆ˜›Žá9°ã{¨3ú!Ä@ŒæÉ ÀÞdÉç!©¶?¶c-4(wñ•"‚0L™RRÝу9X1‚öx¼µ"ÿ†Ç_·‚ú µ¿CEø¶RñéË~výs%NŸ¢ê¶ïIâ‹/¾øê«¯¾ðË“qÜ#ôú`¡d„*Œ@ 0Tavþ.R(!óʵ˜n39¼¬¯‹/v3xn›a×UKp3>høð²ŸE±ÏmdßuÑ^ÇÞôµÏþÂ;úïî'U­ö=ÿÊ”o ¦û%±Ü²£è”°ÚžÏÛòżcý—n& "1ŠMv<‘ŒË£Ú“]€V‘“Ý{¾„HvV9°«Ó:œ ‰dtk¯@ÛÌ€¬"ÊXƒèPžÿßÊeÃ…4Z¬ww·òÈ (b*Ã?…‡˜éJ 6ßé_ ø(Yûø@ êpÿ+Ÿk8¾)–¼ñM1zì_ÓŸ¹<7ÑèI×oRun:•wßvFvÔ.<ÏKº#¸vqûYñçòLÇ…ÑÏteXa)9¤ˆÒPD)Š¡`rDLŽ(I!ÍRƒêrW$ÚS¿—kÝßz‡x‹¢-[ÍD.Æ„–)×01ˆU#Ì!«æø[pÚþõCc^Ç[ßUSßQbÞA(Ÿš üÜgï©âþº¯¾úê5Á¿¿ô5—Ö¿ ¥Tuήï9Œð 9€‡|.ÁŠ)d^c¼à«ÞIûü"¹ÉD6v¼*©îÞyÇuìpàcWË7Ûø“æ ðÞ:‘·‰ýÛ%þyKyçƒ^ûÕgDÞ¬A*-s¤YRAU»‡FÅ(ªp(êiœͯXPbtÕ4¹czAhÔµ)-’YfȨ‚¥3E7Æ+›A7,A–+ƒËpqONe§$ÒF’ÂO•!­Ÿš :2—K…,Ô#v´39PD \Âä°Ì d8Ww’pj—Iu—DïòÞ9tÚ È—9ª9<ÏãÿóîßϺºëº“q·€ãýñ|"µxòÛ:y@?ÿŠÏ–õ“ \:w8ÈŽl²„²6¥=©ô¼a–.ŒÂ‹ µ<,²<ÃÁÖ#:`V!cóŒ¼Ìa–#«,¸Ü.1t‰Œ *¢Ùz„ÜI,Óm›Tº"Ó¯ª„³ ¨`Ò8uTGîè’é | ¬ ×ÀXDtjésxKÀÖãØ8¦9ŽvCQÌ.àÞ…Ðwú­Ü‰çÒ¹Mw÷åaòÑ/E‘&,Bs{õ¼GÕ­NÒ7ª~*¨­ÏuÔ—;[ŸË£±õÖ _{/wÂ>M+ c×E‹ã®–bŒ(P8T †$j_Hè>ׇBÔ¹9X'šïc  „Œ#¬a‹`š2XÆ`-@Ôäʈb#òX¶Á5uGö×3ð é—þøìõu‘ôù]Jþ3b÷wuùEGãìvSnbÌ@ êà.Dy­*Ôe/b Ÿàì¯c{®U­ÆÖÚpº©µ|ÉÙÖhךgÎ7X|ŸõêítÞÛpð)Üùf:£+¨ÏXsóaúïòI6ã0(vb^n^c@Ìj¤yëQí³«©Ñüн·¯@›E1,èàUˆ¬â‘|^UÑTÃ釴»rˆ„œ,q•‘t¢d•T€­v2"y9ÓvÂU^.Ã);³ýc廎šÁÞ™%p‚Œ&„x­ ±ë¤÷Á¶`»EnÝb¶ e(¥^¡Îxsi(_ *Þ„êzO®;y¯OQuóNÕÓÄöÖßÕŽå&ÃŒ›³¸ë¥ ³q˜ÅhÀ½0œóÆÐÃ!Äl† b`¹QÁñè&×ÍŠ¡jMà37'„ÛƒæŽøÜ9;‘:O·Ä†ÔAZà*ƒðœ1X†rðÃKMäoÐ5õ‘ýSR{Ï+þZMí=ï*«?úÑ^ßû¿°·)ÿë'ÜXÄ·Ž·üÜñЇ‰ (q(ƒ+6¤U#f_ð•Ȭ£6ƒl“´³ˆôê[^.âxªøçpÞq&݄㞠ܲ ~Bü¯lÈOMÃï|¼¥•;”×[~¤÷Œqsr6:ÿ¤¾Ç›-SOªÌ(p!Ê,ŒE–g!V§çáp.o_°&°#Z l4FŽb×»é%³ÀÀ³šJ¢Eå¹ã{Û·©‚‚W! Ôî£ÊËì†j®*UºŠHV‰Nâ”O±£<‘KÐÖ…ˆ´.ÌI$Y(îi›<Ý5[úÛöÎý¨jýÂ|fNšRö×í7§ïŽé¯Yü~¶qå³6¯±È2·»2›×Y‡ìè0´0×þ7ÒóÂXxäÁÓ³ÓyŒUZ-@ÃX˜³"JÃA‹Ç­Áè=BÏä½sùÍF'Ã;mÇ‘iïZ…úEhÏÞM|ì宸Ý}Ac˜ÉJz™£ÖNtÎn†d°²M!©tÆˆ× ê7m5ð׊ìï"ï^»’Ù;?Ë|ÿtûUÄô³é.Ÿ>û)Ÿý]eõ»6Æx h’E¨#;(*0èU®ô*^áe&½sv³¿ _>5 uõrh> ÚL ÿìæy £A”›äþ älNK½ 3ϲÞýYûÈë…?ã]:üœý÷ ìB0áæ­«vø¸+¥q3Ü #obûÉßn»˜f¸Ï ¬mþí¡ Ô™{P,¶E”V*È2ƒ¦c³õ7ÙO¬`wÃ-!•p7BÌv «,Ûöå2È‚¶qøŽ‹Æ@3¼.h€d…G`-Äà(ç²…„ ¸MH×Ág¶y×Nw…³Þ÷O¹ÏŒ—8~g}*k_mÝ8NF/¡xgå/ÔÆaÔhûjv+=1ô]DÕ…XŒ…¹<¯ÆßÙÉ{$æ³jʰ6 S8ަ£S'Ãmî8"ˆ‰ÐÎ]DÛ =½ëºÏÌ6‰„@0zÑÛW·Ä e ©˜£2 †8U®Z䀊ͅB=ôëÉzü®×lý»ÖÌø0ý=È È¢—á\0rU¸€e¤Ð•u–ù‚ÆpÛ!a;If/“qw]*Ùëxi½òçÃŽé£×déã^Î?Ɏ݉à|Ò×ü>ÞyßÎûëè߀7o¶;ˆêP¹‰í ƒé0£¨Uû -„1ž½{é(Ä…°•¤5ØÞà^“÷Ý.=Ü?H µ»$Š(x3á¸g±HWÝæ´ $d.D8³—Nª*&²Ê‰*åZP¡`ÖbÉgPÓ$±|-Œ¹ËX ŽÛn¥Ò]÷ÉjöI7õìÓºMÊÌÀ‹ûóëÙz=kïÏໂJŸ¥¦†ì‰á¬¢:¦G/ìæ5¢Ø©zó£Æ%†ÑfYì ê\˜«ÆB\|oMY”†§ °bRc‚­HÚQ^1“CˆnªdÒ¢BÐ@3ÙcXAFŒÖ ^ã†Ñ÷e+É4C}|Áá‘À0³À (#‰ä eçì,FŽøuãÆüâ ö§ØÈß ZòŽ-óæ¯cÄÎÙMµÒ¡¼rÕ̉«±õÂ2/bÙ×§PyçÐN(ó €¥ÀÕâ ºô©EŸo§wn×—Þ$xÏ>_šßýYOx/|˜ý,ñúKîºê!ÌíT=ŠÌ£c”ïŽÕ·%¯²ùìo˜;Tb@Ú !ª$u#£iÙ²³@ŒìF¥nw§½*ß½ÆÉ"È@1šM Ðmz¥?¯œt&Qpâ,Í‘Y(&Œf¦‹)gءź†Ù@ÍÀ\Ìå«¡çHà*>{<ýó‚(Á*‹Ü¶·£hd~ûâÝEÅ·{NõÛç^ÚÍfÏ z:üœFµQ@'òÇ®ç„õÃ{YŒå±Ô£+%—G¿2©âÃ#¬É1ÀÃw$=z[Þ?J"Õÿip>0Æî¹qìÝ9¸Èòæ­6+J”ÈÍdgûh+TÉÀ"tx E„à1¶¯c–kíIF®¿)9ûQó¿èÅ?c>xÍÓ_8¿à'óƒÀÔ‡‰ï9 y aÀ Ôª(#íà&ê2–y«|~"ÐNQ…üh.¯¸ÊÍ~ÓŽòníâÇo„¾#þa«ì8Qþ•·zCäŸVa_™Žoœ8ߺÄÜ*§w Ð«ï }c/ÄÙ(¨I›àؽ­ÜÔ—Qo˜XT9͇‘V0T ‰µ<¬ºá¨ƒÞ°•ºyºõìm²¹Ï³Ì¤èJ["’éRÒ¶ë‚ (Õ¢ËUè)¡:g§-–¸¢(ð çÕ–´Žõœ™æƒåÏï3U@6bü ¿´CÓ»¡ög(QŸ» ?9§÷¬Ü‚ƒÛöGï¨õª?ð+ªÞÔ,®]5gQu`væ>Ó#=.Ç…¸Žâtq‡ãÁˆ TÛ¿4êr¤_¯¶ IDATIsb†·‹@´‹€%wX/Qc0Äè:*°çivÄÞzTÞN0ݲO°ž«Ò1àr.*¨‰ëÒ˜j€´aw¡Fv9­röÏÆÍ¯Ó%}Žßñ ñõQû]2þé÷¾ãä|ºñcÌá ìåªDU‡r,s3§¯“³¿Ec€n—Zv­])eöµSuöþ„e}jþûôkyIÕí`{œw_Ååox2»èjS;‚ïžu/Û]Øq€>cñvÏ5¯ÙŸ’²•¸áæöÿr¬ý²Hj«Oq»ø21,ƒ!KÒDDXBï ‡XîV|bÝú$Ù¶Hйí}âkÒ‹BÁU*IÌå̜͇Ér¢ ¬ª‚ ^tºÀ —è6…׿`7fLäò\Xƒ3‰¹ÁÖ=QØhŒO½¼§ÃÚže(P¼3ëû|ÝðsÌdîZ7Ÿóôélu{¿<90»›U£ƒööù±¹ç§¬ì%¬oâãò(ŒÅ?}ÎÒt ÄÎÊ7Œ¾#øStêG8FÛÈ0ªÍ]ÈÝ-OCcvtÞí8†ž) ˆ¢wÿ'F{8$Èf¶ %1€ª1¾Wµšø©šÎ*\"œEÎ௕õ]Ü|é¿`²ü.”ÿÜd|S‘>÷ßý þÙ1â{ áv¨)v#/¯¬«´ÊËXDš|ÞEö“#WÂiË­ÄÚ0ˆ¹£¼iöÎOI,·.ãM÷ä°?kù7…¹=‰ó@Óœ‘CßÕÔf“tÒ/`Ëë÷ÞÛ7C£sv†Å¬(n¯öl)Û­÷v‹j1êÍ^oÊ#•T´S"Õ4G]Vú©.£emÂ{­r ‡í±FÍ>VŒ&“—éq¥ƒXתB¥@±–ËæR¹ÌB-š,VÉW ¢mëéÀ5ËŠfƒ¸!éfȸh»’h[*3e‚ÈîÕÜ„ÂÈ :4}нíí>›×ô5×ç½R==ºìqs63A·à k5§Ûz³é›wcñ¹Î2«‰L—7¼¾|«“æÉÍ•ˆðPGvhxKʼnÑØØ»¾ÍÍ~R¿ã”@–‰¶õÝuÿúd@4@ßT—–­ö'%zµÑ£™ÎPL!V÷¾¶‰Ø v×Ä*TÍøuV*ýqö¯ƒ¼ÿÒøþwjŒñxÔ‡vþBhÒ¹®J£yë¶_ð*]ö²/cŽ»Ð‘Ú¯-4È«, ;u±â6µ£ƒ¶«ûýÇtd÷9¶wjoÑ•s·?j½lëHfîí¨Íz¼‹/¤qûS½bý>,õv`Ï'åñTJÁÄôSwºm»ŸU%H¼iŽ"‚ ¬hÓ˜‚D;:\Z¤é´·Ií†ZË$­Pu?L^4$–W)Ò¹Ö(»º{=ð‚°×2ÊU¬ìŠvÓØ=‚?æðZk!sñº<®Zr×E neUîªi3ò|2u›ào÷“ž–Ïñ}õ ø™ë–À‚k#0]Í~º«—ð~­£î¾µGDzüx/Ì„–ÉvslÁAì *çÖ0°ù0³±utJ®Ñ€L?ûà£ý{»`JMÄðÝ|#v÷Æ©£*Ú|Ç%¤¶€d¿YOœ½íbD:é5âÙ6rÁ&†eç¢ÌU¦5ø›‚³ÿÂãʯ"7Ãú=ß„Á5jåËX®Ë\k`yWP?3°¦/žœý™i}txõêXdµ!-:`ÊZKfª¸ÍgYîEü¾n˜®Óh»™¤zÕ(|ÍñüT/K«xþ™/ë³Dhý}p/xngèƒ7øÞ {3#cwlÀ(Ü}”P>Î0 °E‡òæ³!kô’Û*«èYÅ4f±ýQ¶èü&ƈN Q¤«PbY ¹2“e"Q +ÛŸ·j¡L/ºìB¡k6à¼<Wr,ç…\Ã+ýHæÂ\†L2«ûº‚ I„Xe†‡ºÕÓ^$¡¨xé‘ñZ}«løLáÄû-aà}žaýÉXÇžzÍg¸ßÎøí‰?úÔ,èPµ~ZŽ„ãìØ.`j #M‘áˆR´Áz1êm)µ†b$5Œ.Á`dÔÛª aˆc÷ƒa+x£Ii·#ØØ©L„)ò4ËîÙ“,f24⃳PFb윽 „mÁ®BÕóÜ?ŸÞ=¿òñm²zóOº¹qÿ¢9>ŒJƒ®r,óªí"ðÑJû*,ú²–ÝPÌe¦}û€¬Ák»°«­- €Þ àp›ý½/çŠ+v]î(CYácóbòæýºë•ÇΛ­“zùŠ–P>ß»§  Úg\y3aÂæj #FíýÑžìæŽøm F³+emKÁ ¦Ø!CRÀdY®&.3³ssêTÒÍwÜà )/xL¥%,T4oyÁi²Àå²;Ußô˜´A_ÛÈ=K¦‘ò ŒÉyÈŽ™\é™üxYcè¾~B[•(½’ÖÝ™{§õÒÞèµ"óz'ÿz<_vÈ©mº90¯¾›,Üõn¸Ÿ†ÇLÿÖ{iåÑ ¹%¦;ôouRWM6Í=”âÔêðBÎÊ$:÷¢Í5c¸1?wœÕýNç> ÙßÛš¦ à¤ùúzlð»>^ñÎß›¨ÊY+Ǻ`kpÁWáJ¦±#¾ÝÞ],«+SÉe…ªo¸ ™«ùÙ…Ì¡ŸÄö¦7 M;Çí÷}cú|a;~]tßHŽ ’Ç@êþ&ë¼þ`ú'º¿¸ÖǺ+ÑŽ`Ûo½éíy¸êmãmÚ®Ó|G CÑ•®!í(ï`9‚BD4K™GkwgzBtA-ç÷Fc:Äï†D.h°!àüxUÁµó2¸I½Ã­>uábÂ9Ÿ0œ‹kx-ëÁ&°¯Ë1¨…G –3¹–K$!;we….+6ר®îöªhYTðóFéyóý$üÞ}´wòºÍµŸB¤ÍdW(ªFá9T37Œ~“PÇm°¾Mc6ó4ÿj"c)QŒÚž»RŠhCÕîQ]â&ñj£¦¿AF/¿1ÛæT˜6ß DCíîÛêÓ­WÚ}—8½VÄ&²ÐMüÊЖ¢ [‰{²5LJ¾çwžú~õã;¡Tú:jͯiôçŽ1æ/]™×ÁÖ‹‰úpkìšÍ*-ø˜çæ8Êþèd³²A™ ìî2—Ýz%ÚrÉtœÂ;7ÇèRR#(Ï»C°9-;x—ä½Û~¾æ¦±»ï½Â7Øþ´¢{¼¥ÈÒ ²ë6^ßÕ:ô«Á@4iTÔNÞÉ 0@»‡ (‰‚ØÈJbÀ8¹9!¢ä®¡5R}WPEæâúx•‘i¦›S‹èÞÇé* +s÷ï@"uáz Mâ Ìã#–[£ä•X[×ã°¼„&Í·" EVsÈV¥Ö6hk º!—géôÍxÕ¿žÃª/Wy辞Ü:àŠÚÌ^B-ÓOX¿u§Ï°žíÃXˆåñâÐÛ`ùƒs'Æ›fP@±]bD„Øn ¯.¬tþî&ÃHˆ‰vŒÙÞ§Òé ·Ñ›öÂo2dtm´9äÒ`Ù.0;7g•Q¨„ LÒÕ>ôqܾøá쯠Þkuî³ܶoʯkÂŽ·QpðÃμpܾ¼Š &|¹qöÃt¾¬EwRoÛl"Ç\Þ0½Wí¹·¹ìljøÊ£WÜEKÖÊ㳘i~í!þ:Þza›,±qöý€-Pâú n}||Õ :žì—æ;zæí€YÛ“»-*TPµ |4ÇMœ0¥Ñy_@¢`¹(ñTPc ‘ DôúãÎïl3Ê é5 ¤3Q…Z@¹V¹ŒB¦Ã±VºèT¦w¼n¯q5¸À¹ÜdÇ ®v'¿8Â3°礳… Ø-[ËÍn¼xœ¢Ü}ò€Wç8¿9èï®ÆOŽïNI[O #ArtÁ~’S;¬C¬: i›ÛsÌxßš;ÞŒõæAFZ Ó@¶÷z£.aojcµúTó€0Á oïõÍ^g; „ØùûƒÛ` ÚOubë ¸½b¤íåÛ~0Ûò<†P-KHÚÅêÒÊ9 Ë™¤ƒ ¡·8û7Þ¿ýœýS#ßî™÷ µ ðˆ‡®K—QÅrbÁi.¡F×gèpšiäU)ä¨B9³{]ÊP9»„bºÌ´Ð+t›T‚ÇÏÛvˆy¤v~ö!… ½O䞣mdðÖÓ±øGxöóÖ¿r;¦¾›9n¤gGög†Î¸÷íטÛà[»šºûr @”RNÝ£éÍÁmУVÞ¥ú&,ˆ4¹ µi™úÀÂ}+i—Óªª;­´ Uˆ uxÜ̾÷]Uj ªˆe  ‹e&Øž^u~iSÔ[Þ¹La‚èNNéÕ¶U)ÓLnJ;™ªÊ–‘LšùF†ÏÍÊo¶K{S_`DôôFfÚc9/^1lôÌ/Œ:}¨OXOT[‰ºÉì»:ò0Ãz æá­Ok”fiX³4ÀiÂô¶bo‚ºÛÇQdï i̧£€äfÅt:¿ášNÕ;vdžÚiŽh‡°fÈœ¤þ^·i0¬t–xØN,+Yí%¯e£u¨<Æ·]¿µï¦õÃþ¨ýèGõ$RƒÆ¿ø¡_]ÚÝiæ¯}”¿ç*I a‡+É l\à°9 ¥R{~%ˆ"r‹Æw#Œ¢í°«ŠrT$‘°‡aç¾H`Ç{Ž ¹°vk]ÑK¤oç¯r³Dâœx9AÚÉÞ ìÇV;A@™B•š5×¼²›_¿ÃŠÛ™’éYê 2L%wg¥¬°b;6'Òá@Õ@ˆCÔõ4"8¤&3G¨­ºc{v#B"нXdÇÿ£EÜ'Kχ݃Ž"ŒZWhV!·Ñ—ír,lÞQó¨ Œ–×”JŽîš»F! RÛQÞÛ q EϪþT9Õrû 3½¹÷­c áËj5£Z.nY—7ô<¯_«%î“Îݤ°QuËÛà>Žgï‘)Qå¶ç'¢êgKŸu0÷D·Çë×ÄåQÉGj^ñȘ©™Å‘š+FŽQúP1R£Ôl÷pDF@ôÇtˆcv%ÎÀÐ]DEÓc†¸#¾°·85R]"åÝké­`2Áàê23›uÐ¢í ŠÖ‚ íó-Å­o-²3ÞϬþ¿úò+sçò_}õ• ÿú‡u¼Á(B ÐŒ‰´ „yw© :=8 ƒ°SÅBH¡æÝ†W¡ýÂ+¨*FtKKK´¯À–½¦QU‡àtÎn»;ˆ@ÝmØüF ”ÅxºÝn»ÇQ¶óAc‹÷Îo|©„ àié·áŽØ±ò´ßT³‹·‚fà„0ì@[¾X”Ê’M3€h ºQ½¤!‰VÏšÛ­—ÐÕa½_CR£êÛDDÜ7öKdßH+DrköO)HcÖº"& ¾³K¶‹<ž#›#@’Î ÀœQkT xJ—ζ TŒŠ¹%“1jrjìUW 1¬0œ ¡¢D$!GèZ`P®ÜÑÜÇÅóîwJ|ÙMØm^´=Åx˜éÜ-ñÌÓ·º#û–,ÕS5Ö~ëzëŽ ³—¸cmû‡ÝoqZ39.ÎÔXœÙ®c.=R35—bùQš ‘DB31ø"ÆtDÌv?Ô‰gcjÎ6z[áÿ®&´ï‚~B(bœ[^‘Õê HPqŽº’s¸ AÖÖ‘À–•^Ø!»ñWÛ}5ìгÛÅ/î1[nçNÛQÈF!6JS®„ò=­¾‰ìEèåÓú"®Z§Ñ$l‹Œ7î4(ÜÙ:7ï:ZnCuƒ 3ÜÝ¥Lp¤‡I˜…a ÞP†6K=F£1Á†¼#>LrSÍáØQü&,w§…¾ÏûçÜÙº±"ãÓ¶|¨–g55ߺ\&ÃY$‘Mön°Š“œpX“Öà$8ÈYšì×(*ÄG‚Y%fYQÈÁQªÒ¥Š벂iØýÏõT)´iÕKËܽí³2~7v‹æ¾Cwù”NêáÉP©Ûœv·ñHoÒúµ{Z½Ð`j®'°¾«¦ÝD)õHÅGr.ÎÄ\|”KR–Fò{‹si,ÎÒ\–rs"“%jÎ]G»§f' ìR96àžË•·Ð3¯·åÄ-‘Æ Ч¨í6õÖ6ôïÕ@¾-@}Ãã[ÈÙðƒ/¾úêO?•~Býä}ñ‡ lüé—ÿÌõÛU¿eÿ­["÷N›þ0¨` Ø®@&5ÜmYÊ(C©˜¨N`[Î%;ѺÆ.“.o¡àÂ\ÀÑu4¢4 gt&-×sõÈ!ù¸±i©ÜÓ-^X‰÷0ñ’‡j“kK{¬.úµiCmØÓÆó]÷Ñèì}2 „àÐHUÝEXvP~6^²õ¥dˆC›ëDP#$©èš*Ù¡Ø1ýÆ[€.¦q—רœ˜èq[òx¡K*&A”‹ ™4?ßË®RÛŒÂ'ñ0'9­ANë!=Œ5÷ bpF9¯XŒ%§æåSv1JpØY¼ì|Õb-íæJïy©À×µ`I¢¢sGQiÂ/â#¢Ü¢SUM¡²î¶´sa´aq¦Çµ=aâÂ#­ ‘x$ÕN‹39/Ìä\úPñØaÖhWÈÇâXšÉ9¢¨’ èx£CöNÞç𘜌‰;a<0ÆtŒ.OH÷é¦7FKB¨lÞN/Ó|Ä{ íÞÜ?ïý¤…J«û{Ä/ÞÕêo~|³|vû‡?üáWÿîG;/ÐO~ÿ÷ÿàñÀ_þå’ÿOÖïüý¿ÿ‡?âOþäŸgþŽý·t‹¥Üæ[è(øËŒ×»ç“9©¯$” b\lç’lh}WöMJè.uè|ÇwøO£eåËP«(¢†k•»[pbÖîDK@b‚¢[ѧÓf;Y¿8ÜIÌ»k±mžÜJÁàsµéMmœ¶áœhÏ=¨<ˆ*¢{Çæ’+H!‡³SãVœÛÆ®›µtE'禫Cìü Ü’¦½žÞ¬ºÂF0(V–Kj/‘Ud Ë Œ…æET°­d²8Á Mr9›$îoÞÛ½s "«°*Ó˜ìâzTåÄ*dp„ËúXÎb”W±¢êc¦‚סÝgíÓªéó %$TÁ­ÍÄÆ[ºÍ)6,CšvÛ Ü} ïÈ~hŽž qÓcv ÏCôd¤É™|,>*¤?6\ƒÇâ‡ÔcéqòúÙT™ÝÔzp†_!u‰3Ü;Ǩ19¶ù#f4ÓÜóª;+0iƒPÒð½ß[Á„}=äiÝ}ƒ›”™¦3pI7bùm¦£ßBÎn›øiÄOþñ?þƒ¿øñ?}|ø£Eþç•ÿàÇ?þ'×õßþÞïþ“?ú7ÿ"óoã[¢‚þMŽÏþù"b oJ Ì‚dÆ€0j4Ç‘" ¢¼ÆãµÄi¯ £º¯>¹6|ØIR³ûb7–*)JµM¹[¤Ó©°—Ø®! îh£0l]Lè°¯`Þkx¼‰zr3ö¬ÜàãûsZ7"©°åÎÜ÷vÛo CD£1BçVêÛ•ÝȘÁÓÔXl!y÷ÖäŽõ‰[d‡õ£K¼]ýNnOŸ¿ÎÚ6õM{»%Ë L ÙH™¬B®'Ý~4é0Gƒ0à4'8© Ms2Ü;U93uIk¬,'c2Ãc(Í5q• \†³˜fAº3™›Ÿý)7æ^«ÝçªÉîqê@öÖ‹ÁL@Çôvñ]{cû'7ó–æxÛ´i\ÕÑ|î~§ÅQz,ÎãÒ#1fq,~(=.~HÍÅGb&ÇÂL3æ`LŽŠ`'ãcbæcrL19Ãc(ÆáÉh;Ét³ÃÖ%mî>Åê,~³×õÜnä.Jí«¤l‰ØJˆ¾·gÔñ¾¥ñ+ìÞ¿µpƒæFÄO~ÿ÷ÿàÇñ¿ŒñJÿüi¿Xúë{ÿ×üOÿÓßù;ÿý¿ù7^?8û·y˜þ‹Ç×ÏGMŽÙºçj_“Â8r;ú÷¿ÝL½[C;¡ €«×ülWqÛŦ ¯îàÌUäp®W·–ÍÎîB+ën^’ðlº¼kço”°‡tg«OyKít¼·ÑÅ^‹ÏÉø‰Ê÷…¾~¸½€÷š@a»»9 ˆ;O‡Ø&öœ$2Ã"¬Ýb>ÇLp(Hʃψ­Q 7儃$"¼èÏÈÞ³×$=âíÏÚÕT\>÷{ŒcÚ°½ŒÃîˆ-#B±¢{åaÐÚ¨úd<Ì =ÄQh;ßÉÑo^Xö$bµŠ^庪"”Æ–±—½´᣺5ÇgpöĞκRj¡D‚ë&¼–ÄÚî›ÍÑéU½ã{‡þåYØNœ[zêHÄöÿ¨×Îß›9S#=#c&?4“‰èsu:©ÇÂ,E)ÆTæ¨ÑÌ¡8¨‹ƒ hÇtŒ`L7,3ûD· X„^r ÛW½!xñ,¨œ„Ãìd>ÑüŽïh˜¦Ñˆ{zßÇ\Òo4ëñ³bê'><þHú¿¿ÿýýçþ[Èÿüýïõçþ[…1"þSÕoÛߦæ_s¼ðúÞîßž¢£ªTÕKëÆÙÙ9»§k€‚Î6{­*[EÀݽs#¾Ç€(²ŠÅ°Ô&&)qµ¦R­6voî‡V‡Îr¸±söÔ¸MßÅ»•ž€v5ˆC“ißÞ=Ñ´=ÇÛ j?²eU›‘4˃џ);ÊaF{÷­ íµr×¾¢Ë\£ik1ƒÙEDpôÝÅ68—8&lŒyìD:šdØuT¢k³Œóì¹ÛM€"Ûl Û‰‘€{:’`$ÊpРfvÉT“å<¤ºvÚ-p¹®Hò ¬ÂÅ,U±ªv~¬Š1®• ®B™ü˜É0P-t~g70‘a¾‹dÁ…ÔFòšž4Ö>Ÿ-k[ögL¯MT×f¦wøöÓÛ6àÎßOõ±“wOw4gÿ;; ëCªÑ˜¹"’2CC[A<4ƒ1¡‡æs"Æiv:0æNØ_ýætNŸnªw£› sNôÍrâæHíÃÇ «Á¸‹U×!RF*wó‰WnL'é¯Ü˜n“4Ü‘ºk­Ôr›ãCio>{GüјûBgâ£4R‘‰Gî€þ!õXãCƇ¥™œ—fFFº…0ÃoC˜ÆÄ˜‡8:…oUjìÿcwvj>90zâ飿öòÝGiCçÇñqB€[5|øŽå ßaówÏßb%ð›X/¼KÛßÁ¬öû· €ðWÐz÷Ê/~øÃ/ß¿Ë1ýÍø4a/€ê¢ 7ý»J1:mÇn–Ó^¬ÕN%0ŽÌÜå Ü9û@Öò% 늒«Äìäš.çBw_½ÓM†›¶ØyIU!+T¨2ÓÉÆ³‚z<Ìw5µÇ©ÈÙNm@¨iaO¸–$8HÙÔ}Xú(Ä»g°ÀÑœm[öÀ”oÉÈFÚ¸VY¢¶D»qNs[¾ÄÖ§4³©¥Ð¶…jç¿ ³Üi¹ùŽ;ëjØ3ïye÷HÃ6ÄáÖ„-âQµ\†Û&p¶S'<ÌIŸª)9 cÐyEc.‹Zò31K«ƒ«ƪ•P˜éMVÁjRQ:Jƒë*~ ÎŽ.gkg¯’e·º¢íùÝU£ŒÄ0p|óQÛ&¬AØ1}û p,ka”Ç…‘Žë…Yj(fãì©&;Žä£8¯x,ì²ê¥Y Û``ÎS5}` GpL(:OoÆúf7öF Œî-«î£ÔS~¯×Ží ¨’á#45ÉϼÎÕÜoµ¡m½FRpêLËä} –ñ޳vüÛ/ÿÙïþîþÅ_üÔÿá?ü×ögÿ¤ê·|ÿûÿûÿÃþíßûÝÿíÿø_Výv땾øÁ¿üÑWè ,|äù.Œ3¿^Ãú˪˜cxˆM€Ù€»‚ÏN4 òì¶µhɪÝK¾'€nöF›Ãrj©l–j!«E8uND‹„\­ŸP—[e¨…j÷”— *Ÿˆyo÷E¼!un¬±Úæý ×Ïcчcc¹ýÑ>>[;UïÏQ9àÀæ°F |o_1AR 5g ¢«¦d[t÷†(=¢6%&Úz€¡æ57»ñn™„V®ˆÕqÊû>ß®± IDAT¸ÑÞ±Úž`v™1Y"ڬѲ‘쥌Í0'ù(NêNëA>ae)í•XåUüh¯`åZ€Õ­œ±„´sŒ«9ìÃ*sô5 J_¹»Åùe¥ûŽ'Ó~ «“ZÓݧÉ}F¶‘ÀhF~nšíß {b$tœ|ƆÔO3¼t MçK5u$îP>KäX~dÌ…™x,¾Á¾ó›5qnàƒªnŒ¨M8ÚY|¯ÖÑ?¬øîŠ^¹ïù솥¦m'Ó@ lsR£‰1Mpl2âúèKX…E,"ÅE¬¨šEdy%–!¡¬å ÇU¥rº®-ûZv !·ÔÍeÚãÜ02«D„)”Pv²k½î—ÿ†¯ä6ÝÄÝë*Òí•?-®zQ!ÝÌIØ7Õ£SòTëQgFãì5ÚÎ北Éò1¤ÙIº›3f©Y1Áqrù19OÂ>f³\Z½éÀÖCî ÞGµÐSm¢:ÕëéS=Ùpüϸ—m&ŠMÃHî©ÿy¯÷Ðõok|s‘ým¯úí?þãù»ïþâÇÿôñøÓ¿øÿø«Ìß©ÄOÿê¿û½ßû_ÿí¿ý™xUŸ~õåŸn¿»ýi·uûwk|æ\ú“GâÆÙGØ Ë+ª"Ǥѹk“F€ô¶pYMÅ`Ò¾š°FS&JªÅ²QÄji\7‚ñÖG5:N~ê\A³/HÈ2E”¹ëñĈÝ©ÚþÙ4Þ]7EöEÍÛçÇ‚Aù6»£ºAþüvžº†·}lQ(G—4·CúS7Ýä,F_†fÏ™R„BŒÑæ1íDû¿n’Œõdµ xÜþžàé­]*N`…E/€ð²zMPÖMÃp²hgÂp঱³k~`]±†}–˜ÃWñ"Úí]È’„\Bbpµ¯ËøÿÚ{{^K¶$;l­ˆ}nafÚhb$С¼ªGb€±èñP9þÐ’ˆ9Cý‚äÊÑ4]‘2d±BŽD«é 4- õê¹ ¢8¯ÎÞ±dDì}òž{OÕ«ºõñ2ðº:ož<™yò#vì+V=d2#C(ª½m¤NЖ½”˃‚1\!À†!ªœ¶Þ©ÜèÑbÓvÕ K¾`f;'ŠBÌ(•€àT& ×·¢‰•&Í0FÍG– <«-ãwd½TÐhÖ²¬“³“dÎ<¸å³“–*1DÖš:Ü9U^“Æ.o,u‡†hçkoœü¶<„Í–Ås+—0ÔfªQZžÙcI4Ñ5kPá©Dþ@£û0uò-Qðú@7ôƣƌ=Ô cêº5ñ­²™È°¤±W /Ì8Lg8;€œ gÔ5p”ÌÁR.ÂTcÙ;‰S ³óÉÖ¿—à—…J+æDf§µàC/lý!Ãön‡°”ö}|Oý€ßPË¢$#Ìü@k ¦Ë2Bw5£p˜•¥3NOîcÖ¬iÞ¾yëŠî’`z,žÌ\£Ê培 8çj+ƒ:Wú®éô…ºlDÃâ¡ÉAø“ØKxöå‚óßo¿{óúõë7ß¾‰øÍ?ý?ÿ¹Ù¿ÿéOÿV¶]ÿÓoÿWè·ÆøKÂÎs­ U2>á„ç}Í,Úâ]ÐSj·aXòX¤‘~_‘ÿ3ÉLƤËLÙ³ ¶hE?‚âèÌ0‘f¯L]¦,»R"FÊJS 4Óp1ÀnæÕ0¥xJ(i(a Œú$)¬(fï˜ô×ë¶±Ús‡‚dqØçýÍ$”©2¨.Yâ?ÒqÃÍ6olÝYX˜iÒTsÌFgœtu«×$«Ir`ZöÙ1éqæÈkò%V–õ”YÍ¿ÄÀÈŸ'­A0¥¥lÎ`–ú›„†AáÄÃàƒe™ñà<ŽáC1ݳ¹z$½Q]Þ{Àè!w¤>Œ†À¦~± }XS=`2ב3Y1ë%s Äȹ\fD˜Z@Ž£=âÆp •>;-ÔFšÎn…SQ¹'ý‹ SyÔÃ@ oG> ka‡b²Û¡ˆ|éÙyè|è<:³eеWH~p´–4˜)õeÓ§û,C= V\¶NžÜÄÄØ3Å„©y³[og5AE%ZgqWñ¢¸4œsÓ‚7³h:˜’õðovÿRþꥹ1$}ûæÍëW¯ß¼y3âgcüì׳(©OßZZ¼&Ô®¥'ý%Zù#ÝÓ}£™Âèb ‰„g .Ê AIrfÌÞ1Hdˤ†ÑA‡dÌå ”Š´* –8cE@ Af@ äC rê…‹éhGbÉUƒÊÌ k&^A(’ø•å:¥—4œœ÷)9‘B²æõtg% mý ƒ)#ä ˆ¥©Í ©Ìg^Ø18è–N+›ZO©Ü¢<º.ÏJ¦JœN4¦ømIf¯?1ßm›svf,t5¤#¬bóàä°æ¦ £Šñ"³КFtt “ÃâHMGX¸ŽƒÙå¼{ïC¦áæ®.Ž Ž#` ›K߀ô¡ÌÓÉ$ℳç}¬r¥áˆÊV‡q@„çt¬r¤.Ù`1 §„ÀìV4©ãÚÀaºõà,Mâaà!’éÈCG ; ûI·CG‹ß½u¶T†iÎÖ`-yëhJû¥ÂóéÓåÞ0µòåJ–¬ú#8—>„Q0¥`/Nµ¦+`?ÃNÕ^”G(”Ê0ËcGeúk‚šclˆö ÃÎBcVؾ£oÞ¼ùæ›o$¾yó¦„Á§¥OÏþ˜‘û«¼lîøeXÖ ò&=¦µê³!!ú&f fCôˆn2Æ,MòâÑE„ñì=ûüÊ{Òè`@QYG+xïÆ@bˆéýcdo •žUæW êò첺)²tÓ ÍêS„ùTúM£ffU ÿ‰³gD$qUõiMRÕlÖø•~žŒ9ß0KÖ»`pË8=¥»|6[` ýz.3åÂUhZ\õÒª9„XYVÔ6©ó@C6† Ìr;ÊÑ tBCef£ NÍ/ŒÁ¡VíˇÅ!:#›ßvãQèŽ#<šLClÒ€†ø}t €b|ˆ0ggÕïr2€"Ýœ„ÊŠ"ŒÙ±C!3 KáÍ ÞͪðDZ²_Ù“6\¥“’-*Sº‰ß•Þ¿ úQ)ÿr´Háú`µãR æÈjáS"†mÐ;”³Fk“¥îh>u؇©"qJœz,ƒÆlMÔxœ(ÙTî]õÇÊ0<}”ƒºG*K¦‚²*!èX(ISãEðôLF¯&4ŸÄS½g¯IÐãÐûÛo¿ªÿÆvýmÙÞ¯ÄdÉs6eËÒ‰§+;‘#¢X1$™¬Jèír£Y{€ öV#Œ‰ª‡¢ca:™:½¢”¤®ðÆ fÒdÆØÖ À”ö‚ÞZ2Þ…dJbPJ…±¼ÍÒ \,òz ÆfOô¦ðh4$cRÈ:J) –GžI­Ù•¸'IùÆì­˜²MZzófJá°ÃC^v¦[6Óqcê­ÓšŒÜæÌ,BEDiyk0Xú«íE¶Ý “ua¡h²ƒì­!4<Ýt tòh:v`øL¢Gé­B.j4ôˆ¾#IHl² Bõ”bÒ] gGâìi„#,,»Ú™¬™G‹l£AD³ˆ?ÍÆ³Y€:fïYÍjÒ-Ú¥½ž|v?"±õÖ[†íÙ1cd6•-q˜a>øÐ-…Ú=É0žœôô鉡;ÛÁѼ@˜ÃauÛÈÂTجö/=QÆmsÝ_“\Ìâ°>†×·C»°¸X•5R1¦Tš¾í/Y1èö5ÿtö!=ûUØdZ¨F¹óõ©è»ÙÃX™|nº)}‰xú-cò(š‡N™B9æ°åå¡¡‡ …º ƒz>]ÑlhŒƒÆÁ‘#CGIuŽP7ÐÐHáf’£2¥ C K{ˆÉ€œó¤Ä‹•Ð2c$n.ˆš…!¹Ûõ;ÍbœfKAÇUY±ÿH±#)9 N£ùì}3 ‡™°äÉäGfîTö¶vh>ë’ ÞR¯¬ivM›žFàDp~T»´ÁaPœÑÓz#è¹B“·>*!1Lá!Bšô0ÇÉqDWt³£«KÇà8à8t uãhxÛщn#(Jb~ ™Ç÷#èâ€{þtK}Gá ÉœGÂ'>,V-s7ЫžL 7† ÷yo"5ù¸-Ûôã>ûj8?ê0Ð"[gd9ÒÙ;[T ÿ0]|<½ZÐܧf@bëÅh,VŒÜì¡iÓO­…Ñ*e²0:)ú0 fìΔû ÈÝFëõo–×¥8üûL~«ÄA/I÷¥sÊ#žÞp*¢˜Oä¸^ŒsiÿžþnGzr€ùô–(†¼Aƒ‡êÇB`$4hHˆbˆ#äpPö£ 2š¬#†ÅP„±#Â(ÙÐhÔ°¡ ‘j*!I#ȇ)Ñ:’ }­ÉƒI'–è¦ÄÓ¢)½<áQþ2Û#…Žql¡j„ÍÁ’î˜ è‘’¡`'C4p,b¸™ ]‘…Ò!vº ‘¤&ë•$ÈÍ« §,%À’qÏQÂàR¦5ÕvÔ²hJB•xf´”ó[Ê“FøDØë¥ óB´$æ¥k0Éœ~Ø´´o,w¿©Z²‰®Ì£ó¢Íͦõ¨‚ÎSøV “šD$M’e=™$e5‘3¡Y°9Æ[to=¤bG.ÄQÞ=ŽIŒ)b;ºÑöÇ,w9U8­%àž¢gÁ£•»ƒ !û.,#÷lE8ÛExAí2 «ÀÔgvtÑ•¦#Ê¿m°· uˆ,D²–ª¼ƒ-øÐ½…µ®‡Á6‰í©â냇îNòá0Yê¦6 JO‘û!̬9n­*N«.!Isʵnë„_f5ÒO¯ûè…Ô*¨ã)Ñ2ø|6 ïxŒ½<ª¸FN¿:}öm¾t®ûXí¶nýòÏÏÐКyˆ©‘®‘ŽhˆšÅk³jyy¢3ë–£Ãýh$FOŽ ‡,4Œ#šYfEmhñ^@€‰QDfP;ÔGá0ÙìCK ÂÄ9¥MtS…§¤'iÂ̳Ӟê±7‚#RJ©ò{% I,èß8_¡ŒÐ‹šÂ¥ïHrIš1KvµŠ cuºiJÄ”PŒåÜ­Ê€×Û ¢˜òé)VuË™™)Ö M‰¡+ ’S¨v†©%£˜?!" 9#zo2©“ÝЉ#Ð9ÉŽ¹Æ8ƒw#ÂF#%ñÂA0*â(³ëÂð`<Œ Â\ƒ)É 9¡ƒ'7FaˆL jÏ<…²ñiÅé±á;Â:š˜ìõôéË×g]ÒO¢àõàwþ$¬½óÐqPiznPU©&úê‘Ô‰«äͼááAÞð¸Çi%N­Ø*•óÌ8}*‡‚Õ/yÒcpº­·áõÔº˜»ÉúÞâ²?v-Û¿·¥æGöõ© X>²[>½Šh8g¾—v•ã1OælZ ¥8þÙï ™¨?5‡UXGÆæ4Jo(8"( Óu&FG¸YcØýèÃQSp®ƒQ-;+×0†F§²^Rà%¦*z§àƒõ¬Å@ 8†ŒYŽX…£d2½ÍK˰RJyKlj fÌ+Фdg@ÐV·&¬ g'&Îw,‘ô¬ö®€Ú±"wcI"wl¥Ó¦ˆ£~(òCB·æ0C;¤¨ÌP}­ê ë¿3È”±ÉŒqmI)yJí'ÈìGÅÙçˆy¯ö‡ÉƒŒÞêB—†ónŠ>8ŒGW÷è£ Æ0 g¨¡€É2‹ˆƒ›Þ¹ÜΈ8x¦ß—¬ESn8B–ø¦"a{Õ±)¡Ì*Ó$;–ï½+}z­?ŠßÛСÛ!ØZTv´ Ò³o\ùa°EöA¥‡ùC£ü¤úR:_…ØZqØÉû1¸Ÿâq®ävfÈ·xZ¾q¶Hîäl‘xÂ^$RT’FÄßò[Kõ¹wKj£ŽüUxö­ÿ}W¯út ýô§gǺ˜+|võo†_JGRå‚€`–ú«“}Tã: ÓÃ`‰˜zV­•… E'˜ê!b˜7(J=.d-­!8`¿©þDÈ2û¯$)2SLÅŒËr'-Á¢ô0@#[Ï±Òø‡ôìxLEŸ©ŸÿâÕ¸ûN»<Äëׯ?·~ÕjbQ9®á´¾†1rãì“$ˆµ’6Pxj§Q>¨‘¡% ‡ rxáÊ©()‰Ö€¹L0@·vÐè…SG°ØŠLà”D1e”ñø(X`õµò‡²p›‚6¥™h­ßVwy’Æü™ç<½Øéͧ_fâ$Ó˧GÀ,Ò)6C<§×€)æW¤œM\hùÖ5Ýúʹ-×PCÝBê1•E rKçœÒ0"œHAͤh‚YruÆIko™wÖE (™Ñ:L²Ïl&²±§t†¹œà 5gôñ¶ ¦LÕ ‹æܘ5Ã-"FÅž';S‚Ó³Ëzò^Ä>¼T+~çÈ^ájò"½Df\iÁCd²”U_Úa=<ÌT½R€ @Ëh•-Ïò¢¤«Þæ™ÄéÝyÎoÔ£¸ýóOóœ3¹ê¯2D¸\ùb®éC¢1káò'­È:qþùúõ_Ûþ™ŸŠxõú6Z`gß}Ún)ˆ½œ=‚ÕÏ-¯RžDL™­­·¦ˆ*_|ì÷O™½0XLÉÕJ-$бb ¦ oI³6´Žã¨x_†ˆ\–òµiô®ŒïhDC’)ÝQøaé4Ò¢B~ˆêý˜S ˆ¥–óN¯7ë—¼öŠ»‚,v9”©Q€ÍS1u"''½§œ³%ég¤e„žšìÇ!h«í— Œ€ÍÐ~¼çŠS¯´´Œ^ª–y¶9áÕ/¡šÝv˜Ä§Hä 932r[B õÐL5!Ñh´!Y¨·vh ÖÕ ½ÁDOo(7¨C”x"EÒ„.Ša …Œæè 7Cs²®a ËJIv¤u™`Á‰ÀäB¢.Ùç#)4–mm¨¢ò€ e.ß&rD“7•gÎs…êHZºYæÃ‹1oH]«u/xBKæó¾•¶¬¿·nˆ‚¦´Ëz¡oqù¾¾Cˆ¹ùŽßúè%#ΟA½êÖ—·Í奸ˆÇ¡ýå§¹cÝÓ^›ä«W¯>+æ Ûºìó5Ûõ5C½›„°éÜ`s !5¶ O©‹ ˆ ´’Ó³Ø(7Ί# 0)œŽÓFÎ%-Ù) •Ž+TªŽY£Ú AiÀI ḯÐ7Û0d½ª³^þ2eáR©¥VEIá$3§OÍ&Ï–xš¨ÓÏrâU­ÊБÌÈ‚8ªš|2Ø* {ôVN5­ªÃ×\j–#Îû%”Ö RãÔÒaŠ-žÜ“èUC`-…^aÔ0fÍí0Ñä bv¼x„•{‹jÒ=Š>ë“…@˜y”Ä`xXxæ×†a„q2X ¹‡H¡[iaÄ!Ò­·(0K9°© Æ"AÊbIƒÂ^BÁBÞçšDíW<ýºè4¯ÖŒ§»9Kj¨ÎÜæ³øÆÔ»J¿m§ÁuÇ·þ›7c²/Î>°g_ñ5É;cç{6»ÇYçñéÝú;Ÿ<=MÚCøP³€+Ù Fñ¹G!f U'¦fS¥ ¢‰‘MG$#¼ÓD;Ð æuJþŠÌˆèÝŽàÑc4Å[˜ „…Ø3o¢HçP Ϩ]p!`ƒòSuÛhŒŠÙ-û(eajõÕƒk8!ºà)%&XÈJ X¨Ä‹‹^Ù›úéYBœUÄjl‚34ìn³í»˜¯Ï ’U4ž™Æ,ûÀž}}çÂ=`ÓÕ,èöÓõ•«P>æ]-úªv[TÁ…]\[–lö–ºÀ©1ÞUÁ€i ¡,§üÍ7ß\Ýn'$}óÍ7_˜[ßšcÉ1®è³fz¡ÓÕå™›œü NB“kžÁkÓ¨¢§©N=’’!y’ p7ƒ„!3Ht„€fbD$wƉèÐT4L&L5½K%,™¨q€Ç—¥d•(/sœ&ŠIŸáp–û`[O¥¡sDÉ"[ôŸú—úÐ IDATC6¼›üjR*1Þ ûÌ.]yìrÙçq"/yÓa×17 Ér¢š眘âÓSjÉY²äSXsH á]bƒy¤ƒ~  ™ä‚hàx[dùäËG'dŠçP$´.š j¤ÈBƒ¥¾„„äðëŒ!cc–¤&ªž¹•ôcI‰©÷`-Ä‘ð]"lœüŸj7À™…^|§€e ­¼YŸv~³Î&ÏZwlù¡Oéû®·>úÌYk«>ÞþgÏõË­ßrýŸ¡­Gs"rZ¯ BOlýÑÕH|Å’(¬È=5pÓY¤‚TÆì&€éÕ逦P‘‹hŠNóSnsÊ.ÂÂa2ó›Iz¨[&l“*)A¹“üv²ï£’º˜ž•ÉRõ‹BvBÞ±€$–ç=ýO´]å$'8ròà ÑZ›¥§) ›5å+çVA"+[g“¬›B1©ÐZžÜºˆ,ઋ–CEkVÅÅX5NdiʧÓɉ$[h€0XË›²×Ua4„Ùi€d#¼ËŒl´ ™Sf2AvÆ€ a@1CÒ ˜ýÐ)AÝ)ÉA¦çYê®ùÄñ‰°Û$¹{¡†„hà¡6Ì=Ô‚-Ó­]-à!÷0ÛÀë Kô€©•ŸmNoÉã4÷âùÒoxËw°-æ^>Ì4¾ï¸²žÐOe˜õ¸lëd3~_Ëë£m¾t»ezêo¾ùæÛo¿}óæÍ«W¯Ö§W÷ æ| !¼·•ˆ¥i^ CäU®¿c WeGÒ$J#0¡ƒ“`Œ:‚ZeP%idsô€ÕP ìO'YÖ¡3hTæÔÐqÕbbÀIi—ȆÐA*F¡É÷Îô©!iŽUŠÄ[–×Ïô€A|ePßJ¸LVL]²¼ýä)*·T³è&¤'isû ¯WÀîgSòZ3Ýú¼ÈýOŽë9Ïr$¦0ŽŒŒ¬<5ØhªŒET’vÝ»±Š³lÝSe¾Ñ†zíjª9:9Fï`Ð\n²¬K†¥CÇ †aºAuÀ-„!–ÖdÁ2UÚâ„ÆèA¢IA™ÎÚXOžLõܨFz,r:Iç ³Á µ{™ LˆJ5\‚”Ó* ÂÕC a«¹Ñ¤·×£þlÿúx¶¢õOëÍ·ö!Ygõ£þÔsy嫱;â\ÞWÝô0øœø¹°‚‘óú’:çöÓ¹Ps>)AꊲWa(À™Ž«b÷âÅ d „§“,TÝdkä¤Á¸5K;HAo@/=e/V Ãh2æŸÌ>Ÿ‘ñ/CÝ”1{DæXÚ)Î !ñ|lИäYrÆó«„')<òéÊçÇ '[8û$8ž‚wËÂ7…赜góØÄ¯H á œàõ¬–ªŠ°éŒæ­É'9([h ¹8ÅÚ‘Ê?È•ÁIWO¹|?(Þfš$A'k¦Qs7¢Ä”Íqâ>z‡‡ñŒnéÖ;1ˆ bÐ:5 1³.ÀhÎÑã` G—\TÑ‚(7vÙ)ÛL`—ié]®*@µ a‡…Ä@Cêe¯TYvcAK¤qŽj"ÓÍo`™ü)î#èb6Ó˜óXñ¯Î^¿m±Ò‡³ÏÇ­ãåј3·uÏ–WíK^ž0EN6‡ËBâ¬KŸ¡_>•.Ȉ‰kW-Ó ákÙ§ ‘=è[¥òD Ê¢0ëÒà"άÑACŒ¢ÚG¦}—ânP!РA¼u º¢´Ë•ýg²Li&K‘¬ð|Ò$¥²Š¡ˆð‘…À*¾KW€+ƒZÞ¯Ñ.›f+²³¶©>=¸tJ÷˜Äÿì[jŽ6ëç º@›j“ª8“i3Ë®J r"`”jØdÕŸ¢Ú’°2Þ5½ Ã)óì߆–} Ñ‘ýÍI ÍAß›l(•½YÓÀÑóÚ¦ÍPéDv¡k a(+B`@ÍRœÍ:ò.T§žFE¶x“À¤6ÙÕ*Z‡ -éíé÷g—!ÔaAæAó`“½N²Ä‚ÌE·%ÞbYÃ;3Û9xûiP ´ìU/hoq1fÒûö®´~c“,ßÚYóËÛ'ÀÙ䧘ZÕŒ™S4BÎYµŸÛ?ÆÙ]à2gØ`ª£@1[îš“¨*v I¤SÆÔ#r{ˆ2'¤m¿FiÐ,ƒz™YD˜³æ²Iw1Œ§«0r)RÒ£ÀeæœT‘f)(É’£FÒ2ƒ˜}ÀgV­0ùä°ÏÔ%geÓÔX·§äÊ›ŸS#¦§¨qª5å&x×É­S0Ò,Æ07ôQwgKjšqfN‰“ÒŠáL˜c„HX#§f@st˜Ûà(ïôu† —G„…kt Ú0„ëØÕ‘1;ÂDŒ€ÌÙ»²÷Ô8ÂKù¿nON{$Šð(L€) d—¡„bgw=’ÝØRõwˆƒÖÁ¨$*Ötgzód©§—¯!ÜH?€.sÂ&¯ Ÿ(õxŶ®³…úãœ7ÿÒ¶{öO`g^õôC*í°x2áæw (bA 5F†Ñ¥I¯?kШ£9ô¶¨¶ÞˆdAS¶]`  g‡Ê";`ŒéÒËÛÔHHAÒ˜úæVÅ«¤µ¶—V€™Ó žXÄãL{ºAJÕJX¦¶âʬbò¿3ÿ™zîdª¶fÙÙ2a¯×.ªS÷²¹.ìÔ1`@¶$kPÃrTPd1$dUjr~ŠÃ\#VDøRô.Nª ÈTUŽ&F”è Ù9S0¦Z>Akð u: 4b°‹Gè-ؽG9Œã˜zù¤3†”w>Ó#ÎrP”F*÷HR‰ ‘Ú©ÙiRÑA-·žÞß&¤ŽBáãÄa÷˜Òüd¥Ná5%Jµd[ æÜ,/QrI?À‹¦—p¯ëuþäqúÖvÏþ)íld¯ 1´‚¾•û™UK¦ˆä²g9RÆìt“\ÔQ•ñÀ$ÆæÁ@‡)e3‡‘eº…³[†|û@E•Aˆ. [ú!9®0ë•bœrĬ·)AKd„®ú]ª‘+ñ©"‚B¸m^Š•ŸˆºóeŒß|Ë`á–Q·íj¿ ÆO×}&î0a}%1e¾®'8ž˜u¦œ'8“©‘€šBî^§HŠÏ>2nœÆ‘g‚\Ùø^"ªÔÇ:ÍI99ú_x‡wjd¿»ŽŽVéSê눀Ø;{ÍB1,j— *iJ{dÍðH2)[Z'c'êzB1*©¯rë@Wy”‹mÐ,h2šÏš>Ý«-íŒß§ø×ìeÈ8M°~ˆmwÁsíÓV7JdÎŒ“¡w¶ñöÏÏÇ­c÷ìŸÜ”Н›4ÏŠÒ¥å¼Ê!.¥+Й0ÌA`Äl>/Xζ™uÿ•L’°‰± ‰Xx1‰ŠhÈÞ[åTÙY;O2`¡0Hî#Aôrîéž’bžùDIPl;M£„‘E£@Aç åä˜"…A ‚Ó†!Aðj8i0†jšx;®ÇòÅôS…QaëF#”V¥è£Dئ¬#7 ôôñ5éa1ÖO€» Ljy’­[O×´¢õ9ŠL‰Ë´*Ï‘ôþD«­žm@òšè(€+ÃvOe£IÃD R[2ÀQ@R£dÔ:’m¤+7vŽ·â†aêÀ‘Ö; P†‡–¡yD3vÉ'zˆ@tHCN`”æKfª´kysZÈÃ,„ Þ“Þ^⎿£š:‰>§¾ºÎNP+ov7Ì8æÓ¶"JÛµ‰f‰×&¤H{,h³àšG“¿Gûz!Û=û'°+PÝò)¡Åé›ÁÖŒ®èÃŒŠ¢‡kÌRþr»$œAs ’9%â I×èð„b°¹ú€[êyz€)*P)ANdž[âéÅÛ#1ŸÄäSõ[ORúòæ²äÑä×ñHÅ7]°M8ØêU3r–usŠ¢²qkM7h{ÆÝK2g gÂë¡oÉ0@B ¯Yþ½ø¦@WfSS!ÕêKë1«ê[Þ0",2 Z ãlL› Êáì£RËØç\*}_è8ª0Gú0ÉgcTØ.1,LÙ Æl|PN’½ä³ª †ë!K5þL«¦P̬DµA8²-ªÕ‰•/" •;-Maz5««íli2-Õ‹Ê×Eq7Ë#Lþ{ù0ã„–VöÖòͽF•ùä¶{öOiIÛSQÔTqfq,8§–wàžªå" ÕŠ“ j%D $÷Ñd¡€œ¤s‡XIÎ|cÐM…̨¡u(@¦Þc¾W?)‚1Uk ,N}`ŠÌ âô©“•déΊ [ÆõÊøxâ'Üd8WG”_JŽfñÜófõ©ì’oöÖn“?“^~݈³ZÓ\n]®Õ •™Æb×PÚ0Êã³™„nf©*^Ë™R4>˜t~BC a”:€*çÇÐûbˆC†ÐÅ!ôúOGY˜FÀ¬g8]ϤæÆ.sve *Ü{dslвSj¶Ä£ŠÐK¯1Y1Pù}r%˜DW6|d•aëKÃGK?'k”&‰T‹{lW‘wN)‹ù·N×ýÑØ0/á5›“àíV 7·8È̾•리‡§(†H‚Û£põà×vÏþ ,ÀAK½QˆËd¿dn’\¾ §Ìù†Á atÍT= ¬”•TÅd¨©~—#{^Ý"B#¨†¨æËˆêJŠ6"p)ýH¹ƒÂÈQ€¿††³©@›I!PÕ¯jýºÜa•ˆTÜx=ÓõU Ú/Ÿ¸+kƒ\6³€Y«¦H0ÃØ‚¨ °“6”zë6½KR¥Õ|#¶8 ŠÑQP©qžÃôA¼¨èŸ8Ã+á,‰­ª‹Õ‡(¸qHÃ×e§†ZÞit„k,B#]ÒÀˆèéT17ÈG›!,sPŽhRƒšÔãø6¼Ã0ˆÑ¦îSw b8ÃÕ Ý1La£SGB¨rc[£få?H(Á¬“ާœ–žÝ æÙ8ÚY£¹™Á›±™™ÙÍÌœÖÖzºñpàCãáÀv@; 5Ñn‡4G;°äní€æhÎÖh¦fr7wºÍ&æMÎlM#2‡ÍhYbËòÎvxdõŒ%íªª—QŸNÑÒjÉ‹«91 -°ä¾~JXé3õì5áþcÝÇ6#+ÈËN­Á“ï(yœVÖ6–'_%"ªçFäJUÃKEÕÊÿ‡-" ÁPD „ˆôP1Ž)$ ÔÈ©º$Œ Ióêß ú0Ìì(êä9èhyp)4svœº+eY‘HøDEe*7[Nx¤f`9Ç×c4€ävƒÄF&ɶM±Næ>Xšôæ ÂQèA]䪱Õì"•žë·ç}ÊÛ ˆ(0ÊGtÈÒDDDv³Â`Œ1ŽoÃCövøOÔºŽo{û [ŸãûïuìñðVo»Žocôx{Œc¼)Î0 ‹pÊÄÈÀ8,º!\Â^raJn»²º yê¥ÏŸ€ Bù„2j}+nfkfëÏF3³CþQž½>mhî‡æ‡tën~°CÃÁÍhî‡Ýq8ØáfžŽþàîN3x£™µ†”ò÷†å¬Ys³KÙ`³ÜÀÚéÈÁ½îiVÎ'aÂzg³½ïoÉå3EÛ¨ÿÅí3õì_Ÿ-ïÀoýåß¹ÙPël·±ËgŠŸ^™´ÞÞfû'âò[—;¿õ•í£ütÐr$yÏ[±º¶^›O/_³-{áò#ÃóôÛli¸ô.[WŒ×œ­¼z_8ÿå?}³¼ÎJóß±YÖãÎþÄÅ~øø^ûÅš«÷ñDÁyîš_žÀvùÖIêñýÍz…¸ñÑ:ÐÕsÀ»?gÆkÛè¹o}Tûèž}6k~·O·ÑúÓ{øRl…¥ë5{Öžíï¹$Ox™Ëý?½Ãî¦?†qóª?mwzêeWßö['pöïÓö´ë¿µåv<àÅšË×™Ÿp—áÙGOG Ûäæûyö3»:0_õÂO»æ'þ¼ÜþÌî¼×ïdg—ý…mÙ?¥sßí½í¼sZ à“†Iïm›3ÿÐ?bëíß]}ëLÊ~¹WûÇaݳ?k߉éÑú‹ÚG~ßÞe÷ÕãcœÆ·ŽÏÂ˼çå×ÕÅbïý2ƒÛÑônÛëóY vŸ¾(àGhŸéõN»ÿ„%6wû*ì3qU»½“}.h̪ÝzO¿8»r~˜]œ½n’÷l)}ÚìÑ'³¯ï7Ÿ~Ÿ Ý?«õ¥ìò’|&—áå<ûoôþÓï¿wé?ÿÑýè¶å{¿x‘üfè÷“ãñ‰oí¶Ûn/a_OXõc±—ó’?ýþûßþ³?û'ðÿð¿ú{?ýþûC ¶-L·]Äëo^Kúé÷ßÿö¿ûwÿäþàþ½ÿò§oÿâ'#mFÜ!øÝv{»gö#§Ûgr^.fÿKcüÓÿúÿÊñøwÿ÷†ßúOþý¿þ7¯ÿú_;ëbº…)¾}óæõ«×ñ/þÅ?ýßÿ•ãñïþ³ÿ ¿ù›ÿï¿þ7/v»í¶Ûn_¨½€g?qd©Qýõïþ.€³_籯ÿÆßøþê_]ߊ Uæ3­PýL`¶¯Ýö˼Û{ÚÇ~t>Góåböÿèþ_üñÿ£¿ÿßüƒßÿý?úãÿñ_ý«ÿë?ÿë¿{³§q6†õêÕÿñ/ÿåoÿÙŸýOô÷ÿÁïÿþýñ‡ßx±Þm·Ý¾B»§–ìË·ðìåÿùO~‚Ÿýìoÿãô‡?w?š½yóæõë×—Î=ƒ÷W¯^½yóæÏ{ÇÏ~öwþç\ßò/&}Ê˕мÃÎ^26ùÇú!ûüh¿ý£_ÿUuå˱‚áƒØ‰ÝóÁoÜöj|êh=íåbö¿híß¶óÃ]Ù·]ýÖçnŸÇ­Ým·ÝÎìSés½¼}iNóó7ýÿÇ’>èÞag/ùŠ\ëü‡ìâs(Hx¿søPõ®W¾üùFëiñýü†‹/ÜØm·ÝvÛíNÛ=ûn»í¶Û×f»gßm·ÝvûÚl÷ì»í¶Ûn_›íž}·ÝvÛík³Ý³ï¶Ûn»}m¶{öÝvÛm·¯Í^γ?-°~üú™¶Ì_ùšÄÜwÛm·ÝÞÕ>¢g?s¯O;å{šQœõ߸ú•Mç‡ÝvÛm·©}DÏþ„{½õѳ_y6ðߣõÝvÛm·—‹ÙŸ¶KÇ}öõüó–ë_ŸÞ3ì¶Ûn»}ÝöÁ<{*­_¢%Û®IOØúâ©åæ» *kãm×½ÝvÛm·§}ȘýÒ‰okœ-¤]ºà[Húáü™ín}·Ývû‘ÛFc¶±óvåŠß_½zµH¾ž¶ÝO®YmQ_¿~½ö¼–sƒõŵŸmßm·Ý~äö!U|·4$åòrÐÛ&kù镹ðD žÝ9¶_ÉNLOȾï¶Ûn»}õö‰+•¾ýöÛ÷þ×wìPÌn»í¶Ûî¼±Âö«mð.ø-œ‚Y‹ôÝwß½zõ Ov\JÛ2ÜïLÕî¶Ûn»}õö¢=•®úú-³êŒ¾ûî»…çÜYkº#0»í¶ÛniI¿|+`ßÚñõY¾@D¬ý_r+ßiç»í¶Ûn?û1ûÓ7=þZ¾\™ Ìwß}·V®¤èvÍ™ßßîg9±ÓcvÛm·­}0Ͼ¼°¤mÀ~ky»2áòüâ üoí;*\n€ y™ÝvÛm·›}`4æ=¨)gôóK§¼Xí¸›ú²{öÝvÛíÇlÒ³ßò§W×ßR¸ôݹf¡íÏÚû 0»í¶Ûn_½ŸýªŸ}×°úþí÷€}·Ývû‘Û±§ÒivÛm·Ý>[+Ïþ£‚/žF‡vÛm·Ý¾DÛz6»\µÛn»í¶ÛçlWu·ái;Ûz-ÿêW¿ú˜'ö™Ú¯~õ«_üâŸú,vÛm·ÝÞÍÎúR\á³ÿ¨â÷íåøQýðÝvÛík²3<¹]~ö‹_üb/öÙ¯Àn»íö9Û6*ýùÏŽtàÓi]ñìþðÿðåNð³´½åÞn»íöE˜¤ôì$…òZ7qö“N¼åC o½çëÃ}ÔÛë„?à”âÙ]åAßãˆÛËûô×/oÄûn«tÿ~øÅ|ivû¨öCùì?üé¼µ‡wÝóYQë­ªÛ•ãÕºÕ«ïÃëcû…íÎß{¬zö\ÝòéíŸØÏRºçˆwîóòÏ®¿µ¼ä1ÖHù®Gßm·ûíÏþ´û¸¿ãè{<¾ïêŽ/{go÷Ëí?TØ{‡}ïc=Ñü²øÕÛñìq·²Þ6îØö°¾óô–›»<Ä-oruj|K³ì »|Ÿþîåö9šnOÕÌ> Üüýž"7»šnyb Ú ·ýp¼èV²ç~Ñ·µÙëׯ¿û³ZËK#úò£;íêåzb~yÏþïib³ÛnWí©˜}Åà¯_¿^¡n®É×§Øt¿Ûî$#ñ˕Ϟè›7ožxm¶Ç] —§‡M„NòlŸ[/pu‡ký­Ó¸ty—_y=íòë¸v‰$}óÍ7Û¯d¤¹=·[GÁ…­ß~õ[Û/^Nh¶_¹º2"ÎÎíøâ–àg7åì¶Ûß Öxpõrmž¸¶——îì™?;᳋‰kü­{±ÛnïmÏÄìWƒ‹×3ŽÈ…ËÈâÛo¿ýæ›oV L÷´myšŸ®•ëu½?ÌYáíòàg­—η>ÊÎM—Ží~pá Î~õö»—+Ó¶¿îò»—_¹úéåÊü OìðÖOX¶¾žÿ«{øöÛosåòJwžÛåwÏlÝÊ«÷ôêüéΛ’G?»¹Oœüö¸·öy¶òòre/°[·R³ïÕߺþ묮î|·Ýžµ÷É >ûœ]"ÔWç¹Û•—û<{íoeA/÷p«÷]ºµŸ[§t¹Û³£_M…]~úCp•å,Þiû«ÑUÌ*ñŠ÷;ÏËÑn-oãÜmÄúÄ»ç(—¦Ý ^]®]ÝçÕ4ÌŸeyg‘é-šÊ;íó#ÍU·©×mZõÎGÒÕXl»Ã'vuö©$3[+¯þðõé6»ˆw¹ŒwÞè³+sëXÛÉÁ›Çöì!n}ôì^EN–™øEy¼goWïþå=ºõõ[;xÇgv»ÇnÆì LØ¢ OXæÍ¶¸ÄeZuíd­ÏfÎ3isÛÃ=í®æ- ¥a·ëשÞ:“KP5÷°2ŠÛ}®•—ÛãqnàêÕØæ Ï>]—:?½ôß}÷ÝZ¿Ýçö·¿Ç¹mýàÕÄÃÓvvµÏæ%WoÊ¥­ŒåU¯šcÌ»Zw›LÉ·c›¥xú^8ÕÙËu™/½LíîÁûn÷XEU¿þõ¯óïßû½ßûÅ/~ñóŸÿüÅÒñ屮òxI“¸šx¼Ç>NúN¸öÊ=j–A^%fä⽃Ç[§tç%ÚÞ‹gÏaKyºä³ÿpãc±š¾·3`ý*Õg·Ý¶–õ›ò'@Œ_þò\¸¶žIDAT—ÿÝûß¿PÔ'ÍwšÃþðÖ³v+Ž{zš¹åeBõl³x]Ÿ%Wœq–ÎPÝ[ßýé'v{ë+WoÊ=çpö?øiØûj*ew뻽‡½O ê³vùæ_º¹;}ýÙ›óñžòuJg³ã³”àÓçöô©nÝå=aK/á†qIiQqî¿Ô—vìâõÖÉ\F Oë »„,Þã1XDûûO㉬õÕ ¶›]&ÉßéH»¼þ÷?»ýÈí.Ïþ®Ñ=sä;wþbïU‚ÊZy›:{Ç®YWé"xîwéOñšÄÙ°þ}¿(û’ söžÍ¢.ïì:w=úv?¸vSnm|ëX·¼äÓÇ=³[7›ësu ¸ºóu¿®ëŒq¿Fë«;Üm·­Ý…Æ|ÔÇèKFßÃ;üÀ}¾Çá>È\çìxÜw²w Éßcÿ÷L€îÿÕ—Á[ö¥¿&»½°Çìï!Üm·ÝvÛí3±sÏ.éç?ÿyö^Úm·ÝvÛí3´[9͸üܳ'uf·ÝvÛm·ÏÖ®zvI`á.pv1ÄÀ¥†Ô\¶|íÛïÛïÛïÛïÛØíŸ¥cœgPïOéì¶Ûn»íöÉíª»n~ýë_ÿò—¿PƒCdï²µ~_Þ—÷å}y_þü—/Œ› ž÷å}y_Þ—÷å/oùÿmpøXa¿j:IEND®B`‚ghemical-3.0.0/docs/user-docs/images/esp-plane_select_obj.png0000644000175000017500000001152111563552731021100 00000000000000‰PNG  IHDR‹¸yÀ<bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ:'/ ,ÞIDATxœíÝ»·ÀqN âT¸Ka´[IáÎRyþ)“æN*ܺv Ëê’:€t×øß|MÉ]w vÝÙE:R7)N<ñx|?†äÌ÷nwçAw–¿!9I|ýý,p¸wòÓ¿[çйߴΠ €Á2½ø™xÿð³ÖÙ¨ê^ë Àè¶0öKËàEË"»ï¾Bqÿ¯ÿèb=Kê)Ï2/*™¯%òY"u¨ÛYr{\ågË›-¿úºlÓMù×§™òe[¶7=ý>jYÝõÄ”Ÿé½)?)G±ûZhYÇ–_HÕeeú!¿ó%BBZH©¿Q×ü½“y5í[®úx±1 [&L_@Í<È4}• NÿQøÖ›–í‹KY‡^š–™×•žÌŸ+˜Ä–u )å™R&%÷)v_ÓóRÊ’¿ÍbË4§þóª)dÚú_ì:ô<™¦é¼-‹’MŸJ¦ç:**y4ò…ŽpDâb«Xjn—먽Uy¶ÎCN+½v~M­7Û|ªÔ|•úMÛŽ¾SòÕâÀÉ–Ørz€»ç¦ŸºSäæ³õŽU[jåúÃ[º…³”ÜJÐ6O‰mðuñ™òåR2Ðù¶_]â7="o°èµ0lýº9Ô#ù¾Ô:…HÏg¯ßA)#·N]|ýã[Tª b(|¿é” ›ú›îe°u©º¶e±1 Û‘DJêê;Ž]Oê—Ò”.}ô¡ç7'ÿ¥¹Æ,J)]éÖ(¿ž¾]jù¹*X[Ÿ¾k=½üø¾»ÜßtÎ8CIz OðY´*¥ŸL:HìJß5 ãk«} 2MÓúBÒò)±Žšl}¦yäë’išÒHY¶F~LÓLó–H§ÄzZæIWz,EæÓö[Ϳǒ]‚¦1[×öL'ù;ϳДêÖÚ½R”¯µ“÷…Zóm?†஡×.„€kk÷†RPùÅÙúÙ!À–Ð ðºwr|Ó:€ÎMBZ§[Ü//ZåЩógçâÞ<ÏâòŸ—âüËs!„gOÏœ MÓ$æ™ÆlÁ4MB!îÿ{¼3ñøÓÝÏ„âêõ•s:`=d/§Î,^ €ÁàE°x,^UƒÅ~·7þ©ÓM¯kç)ô}jž–Ú–¶<†æ}„mPŽñåê¹µ¹ÇCÒ´ôž?XŠ1XØ®â¾|uY4ñýno­Õ#×V•¶š?ùZæKÏ“ísuš:]ßv×{׺k ù|e`|Æ`Q:(ÄòU¤9d¥f«Ô]阂‡éµk±ÛbKg 1yo™OõUoYè•gO•ˆzD’¯ÐyBúóS‚Vé²+9îÐÓ÷  ¼ê-‹ÔJ„Ôk5»w|]f¦÷¶©é˜…KÍ#Uý¨>¦uQƒ¯…Ó²{‡!:³ÐÔs$´zÚöÐ1 ëÓeËBï÷ï½Ò»Šô¼çlK˳ŒbòÎÙPÀºUmYø* uº>oí '$½˜ü¥nKl>J±­34ïKå@ºlYúb %ž„ç» üôÉiv±b®Lo‘¿¥„”Ú·@ Th&W¯¯ÄÙÓ³¬£µO85àŽ’îÈåÕ:ý¥ÓuÿèÝ$> &Ô75òâ«7“î:#ú(?±EQª°[}i‡ãáέT¦iª~ôÖ*Ý\­ó½•ï«u9¯Õ~·‡ãA, }' ɼøƒ…íþP—¯.Có'„ˆ?{Ö.´r.-7Mc°ˆ (C=Šku”<ÒQcë|oåûj]Î1Lg3†TÎú<µÎŠ”é,}i€LSO+&pUmY,im§ÎÚ<øí!„?ÿïçM¤›kÔ|¦‡r6]Zª•i­³”Ly)(L×mØÒØ=܉yžƒ·o- ýËM|»é4kx*›<г}Á÷¼=ß§ew2_º'Ÿœ\¿èl¼±Uy…¦_ËÒ鎸È£÷˜qÓýn_å¬H[ (Þ%å¸nãNz‘×x¬¦e¡J.üŒk=r¸vuÚþ—ëü½ûÃ;!DþQ\hº»ÝõÑÊû_ß‹âAó£ôVå’~Èô5¹®\¯«×Öû‡é¬È˜ïBtN=+Òµ^•ú¾ÔþÓ"Ji=5kY”<õNßIrîcSr'‰IWÝan*»Ê•N«tsµÎ·-ý%ó §Û"½œ ikÑ·¡CŸ§Ôïß—¶>~Q’m½©­§¦-‹’;»ú忬·å©³BÜîs¼s4òéAìÙ‹û?Þ/Ö­’îñx»ÝNœ|r"ŽÇ>úZ•—ž~èç£ÓûÂÕ óŽ¢¿ýC:fQÚÒ]!×›å´žŠ·,¸wL&Y|–ß\­¾÷é‡É¹þ+!Ä¢åeúñË.:SùØÎ>"¾r’éèiÅ~žL)gÓ6È4zo•.¥U9„\\'ÅmY°“ÄSx7?ðYˆØÝœÍ!§×JWöíÏŸ_7Nk¦›«eyÙº4dË+´RŽíK××-ßÇ~žJ/g¹ 6[1Ý^%˪öXZÔ3¸SåöÉ…lਧÎú¶-dÛSN[l•n®QóÊTÑÛ‚Sìç©Búà÷»½x÷kÙ z&»ébÎP»smG¥Û•— H‹=)ožç¤¿·FöînvV!DÔk}=K»ù1Oq;Ìýïßœ"šBvÕL?LQéž|ròñ”É–./õ G}­WÄ®›ïÉ×#yÇ–³Ü¶ÖûÇ¢¦Iˆ„S™oí+Öc÷pwSçÕní­ò±ªep'öuªÓ'§YGû›ÍñVÿ¯w9åôPyÄœ’îáÓÃMÐI÷Öé´ éŽX^ê>¢÷׫c¦}ɶì(ÔrqëtÚûÇ’R2eóñôôÄÕˆ •ÛóØ]gk|~ê¬õåû*ítn®ó]º«ÇµÞ¥Ç,'¥þI9•5ôZ‰R¿‡E‚Å?Þ‘Oõõ;—Í8=4'Ý–§Ó¶*¯%Üõ–‹,ïØÏ—ÔãéÖµ”xDBé kXÅó,Ö&vg+}ÍE¨^*%ÊËtž·Ë@/_wT [YÇ~¾¤ò°”|ì:BZT Áµd+d•Ü€²/‚À+éÜ%ŸÑ èß`r=Äù³ó*™ôéN°¸xyÑ"«súä´É-CÖ`”+w­Øïöwƒ…펳'nO¥—æêõ•8}rÚ:‹ÜuvKÏ)ƒVÙºP§Œ‹òÐ¥·?¼môæ_oÄþ¢u6`±ŸWÜ“^oZàÁbATˆfR \”ð"X¼’®àlKÒÜèC‰§Â¥®£ç'é(ïN°àb²­&X胶½3 4ûæsÍëšÏ·ŽÜÊ;4¥Õ¬Àz¬S*mu~}y‚b¬"Xìw{1x= t±˜)Ÿ¡Ÿ…®Ï7-dÝ!yŠI;õûÑûÝõq}ZLEèZwȼ½Tº1ÛĘÿ9ÌW¯¯Äù—çââå…8{z6ÔEyòˆvV>›D»†¼(O¿¸Ñt:l®µ\E­oÇÕë+ñû?þ¾aŽPϳÛ~·ûl¨ýn/æYˆy¾[²–@` à ($0Z¶*B•È_ïÛ`]† z PQ‰@yà pÛÅ4õ(¶r/$ë3T°9Pôž?p¦jä@£¢eA Ø–Ó'§b÷p×:(èÑçZg‰._] !ŠméZ` ºk!÷E%©NŸœ6È 0–nƒÅútöôìæõ4MìO@€.ƒµ:Š«×W­³ £Û³¡¦éî{ŵI/œÀi¥×`;º ê…k²Î"P„›m—¶@†î‚…Ž@GoLÓtó™©Å NWçÑ?£µl[Wcúí0y¦iºiiØ…:}žg1ϳñsý5€mé*XH‰òdÐ?‹]€mê&Xlíù ±Ý:­*j5È,€íê&Xl)P1VÅK7€î¸QFê5Û„è¨e8!ãzRLůxÛÒ° ‹¹*m}šm^×|¡ë°tC­]HJiÚ²0=ftkÝ5é]O´¤jÞ ¥‡­B[@ ÝuCއ[-ùZÿLþé󅾄kÞ²¡¶6ô–-¨¯»–…‰ lAo‘¨(gˆ–…Ž.¥k¾k-\W\—¸›+ºí.X˜º¡lóôÔ¢95¦â5UÔ1•7•<€Ý‹œ ^½ Wruµiý¶ ¢§¯Ïç:ÅÖ4M}î…þXŸæÁ"öúØDo¡7!Ï£0Û2<÷ئ¦Á"¤‚7Í£æßz)]i‡¬@¬Oó–ÅÖ˜º›\O³Óç©%÷Ö ÜpX7‚ÅÂbn¸dwN‰tè†Ökˆë,p›ívã®Áí®elÓ¸i!°n´,úLíî!× }7#ä¹À6,TúèÛW)Ë鹃Ò)Ïİ.‹…P‘cÄ4€X‹ "PˆE7TeÓß®š.Û.~×:À˜hY¼/º¡VjþæÔø¹Ú­¥Ï㚦OOÉ]jÀ¸+檜M•·þ™o:€í2XÄÞÖar &²Uâ V¦t}ë°- ®á‚Å~·7>K€'´R¥¶>l-ýs×{×úhéË*XÈ@!Äí§ÂÉ׌Û|ãj%¬O3-R1—˜‡ôg˜`¡ iãùŸÂçýúû[oC+]Û‘»mù” â[Gíåä"X˜…´ê€¡Uþ%åtá”ÛPß/•6€4Ý_gá ’~{l}ËYòÈŸV°œ®[!BÒƪZ‰\cê·>-GÈÀ¹ž¶|2–ÁÙP@Ý‹˜@!„àì(Mî@sNElZVÿÌö>t>Ë겊@}é.X( ?] ÅØè"Ö««1‹Ãñü·QgìôåòÕeë,Cêªe!ÄÇ€á2J €µè.Xá X^—ÁBˆÛãÅóâÅóbš&ñí7ß !°¤nƒ…w[2P¼xþ‚@ êj€Û„ íuݲô`ð"X¼/‚À‹`ðjvê¬íivœ* ýizÆÐm7”ly¨-ýnógšßõ9Ïå€t]_Á½ßíoZêk×´Ðeáš ÓѾZ™Û^»  ¼¡Æ,\ƒârš¾NºŸ _×ÝP*S—’ÊÖõDKòu;À#´õ@+Òt=f¡®Î/ߎk7”i@¼fÁÂWq›¦ëŸ…t7 ßÿ[­çyqÇÂÑIEND®B`‚ghemical-3.0.0/docs/user-docs/images/cyclohexane1.png0000644000175000017500000011276611563552731017423 00000000000000‰PNG  IHDRærŒcbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ ;F IDATxœì½oh$×þûÈÔÀ)è*¡ l˜1XCѰK$/¬à Vð‹uÈ…k“…¬œ@2I ñl ;“¼ðÊ^ðŽ}!;“€3J a¼°f&pC¸ÃÊ/²h £€Í(à0m°¡¨‚i¨S ß‹SçÔ©ên©»Õª[ÏD«Õ¥ú×ÝõÔ÷ÿÜÁÁÁÈX˜››ÃÁÁo`ûÖ6^þöËØùã7È~ÍGGjap‹Ÿ[„”W~zo¾õ&îüùüG}DŸªåÖž[Ãî_w±ñúšŸ6±õÛ-Dq„sOˆšÀÙ'΢ùiç¿yRJ4›M!°uk ‹O,âÍ7ÞÄåŸ^ÆÍwoâÞûH)±þõu\ýÏ«X}vwvïàKÏ| ×Þ¾†¸©Ú¿(ŽÔïd*±ø¤Ú×ø~Œ¥¥%ì}¸‡Å'±s{2•Ž€?¯Ž1¨Õóû6¹‰sOC"µÂ´xîÂ3!¤”XY^ÁΟw6 S™/ëõzûûûêØ…PŽõ<@)%Â3!\×\~ã2®üì Î~î,îîÞELjZ¤”RöÉ›÷̈ãðÒ?½„ëï\ÇÆë¸üÆeì}°‡µç×pó·7Í>„Ÿ Ñü¤ QæÀn¾{ÛÜÆõß\‡7ïÁ÷|¬<µ‚ååeÜþómxž‡½öÐh4Ðø¤Ù’8x¨¾²ÁãâVŒÅÏ,b÷ƒ]ó¾lüd—ߺ !Üš !.ýðnüöÎ-Ãò–Î.žEø™/üã hî7>bóW›©DÔŒpû/·‘$ ¶omãìâY\ùÙ4>j nÅj?€T½÷RJó¾ÉTýpnéöþ¾‡¨©ÎåW^ü îîÝÅ…ï]ÀÕ·¯©úœ6þÞÀ¥Ÿ\ÂæÛ›¸»wÍOš…÷÷ËÿøeÜx÷¼š‡ýý}\úÉ%l¼¾¤@ò0{ʵl}¾ŽK¯^Âõ_^Çî_wÍ> G¨Ï¢ês‘}NV¾¸‚Ƈ œ{êÂ'Bxž‡›¿½ ÙRËÊTâÞÞ=¸5H’H÷´‹äAbŽ_¦^ÍCÜŠ!¡¾‹gqþÛç±ùËMõ7!°û×]4 ó½€xž‡ pné¢O#¸¾‹‹?ºˆ—þï—pᇰñªúŽ !†!{îÁ÷}„…êûè²%±þ­ulþ|žçáìçÎp÷ý»XY^A£ÑPŸ8ÆAr€/ý__µ_^SŸ÷ìº"S‰ðñF×߽ޝ<ÿxž÷´‹å§—±ÿÉ>VžYQׄûê{â:.^ú§—pù­Ëæs oÞÃ…\À…\@ò0)~·˜÷Í«y ÝWׯí÷¶E‘9·ÂøÊ _Aãã¢8BøXˆÆ' ¸ÂÅ Ï¿?𑹈F£»{wÕEóÓL,R‰­[[B`ó—›-‰½¿ïAJ‰½½=ÄqŒsŸ;‡Û;¸ûþ]ì}¸‡;ïßÁÎíìßWâµòÅxž‡ø~ŒÆG uuÁþη¿ƒ;»wÐü¸‰/?÷eìÜÞï«5}‰æ¼ôµ—~ÍGã£VžZÁÆ©Dðh€Ý÷wñò·_6Á à q«/ýo®ÃŸ÷±òÅGÀuÜÂùq…úÒ6>i ŽclÝÚÂú7×±þõu„ah¾BÔçëˆï+¡4ÝìuM³ÙTçå©s¸ô¯—°úÌ*’‰„_mbûÖ6`á‰øúpÂØx}C­ÇQò8ŽÑøD]à~ÿ‡ß#y˜ ^¯cãÕ ÄqŒÅ'±õ»­Â±4>j˜/ª·µçÖ°ù‹Mˆš€l© ÁÝ;Ø~oWÞº‚0 Í{´úÅUl¼º9wsÑõ¿ö"Â3!.¿u¾çÃ.ÂÇÕüú»×Ñl6‘$ nÿé6`éóKˆîG¸ð½ Ø|{¯ýûkˆ[1Ö¿¾Ž—¿ù26^ÝÀæ/6qûO·qã·7°²¼‚³‹gáÕ<õ-]¨ôÅG8Jô¢HݸíýmI¤.HÁãþçÿÿõ^þa ëÿ´Ž¥§–°ñêÎ÷<®üì ¢8RŸ᪛ŽÝ]%,»wqé'— ¥„çy¸þÎõ¶ïSøXh.–Wzûûû5õo¬cõÙUsƒ† jê³±¿¿³Ÿ;‹ÅÅEl¾½©ŽMJDQ„»{wÍs¯æaùée#&ZTõ ØÊòJ~“’‰Žkϯ)Aþ`[·¶Ðl6±úÌjá¦Q¶$dKbç;êÂ.^û÷×°ýÞ6.¿uYÝ̆!µ/û÷÷!„ÀâgñÒ?«ë„ê°ñwõ]^xb¯n`å©|é™/©óOšˆïǸ»{OØþã¶9o·Ôucýë€|ù¹/«m¦Ê@ؾµ Q¸ûþ]„aˆ7ÔÍQÔŠpå§WÌwOŸýý}\ú×K…ψù~gçG8ç–Ρñ÷VŸUBjÖcÝxoÝÚÂÞßöðå羌ݿª›Qál¿·æÇMœ{êŸ\ÄÒÒ’ù¾ÞÙ½£ÞgëºúâW_47™w÷îbû½mxó¢(Âå·.£y¿‰(ŽàÖ\uâgÛˆrv½^ÿçuø¾ßßú½úœg7ÞÂxñ«/¶Ý sÚbž››ëï? !„2t :N¯6!„2YÚ líæ"„BÈøaŒ™B©fB!¤BP˜ !„ Aa&„B*…™B©}–=“a²²¼ع½3ÐóãnGS^ß Û&UØMù|ÇOÙþq¶ÑË:ìãæñvþºí[·ý=Îg÷¨ïA·uV‘Q}îŽ:¿½.ÛÏzH;f¾9ã8öN§•åìÜÞéz¡'UØ›n¢¡ÏÙ8˜Äçb”ëívþŽ:§‡}vÃ4^sF±Ïýœß^®#Ã~ŸÆÉQס~ŽeÏúD…yî´ŽÃõ‡á0«¶Ûïörú÷nËÛ¯wÛ¶¦‹ã0޲$ÊÛ.ïg§çý.{Ô>ôr~‡%2ÝÖÓm½‡Y~åÿí÷üuzÞi¹ÑíöY;lßËûÛËÅ»Ÿ}êe]zû½\GÆqÃ׋åßï9íeùAÖ;J¦I€G>ç¾W‡iÝÄbÌÝvª*–Û0éô¦”/0eŽzÝ^O§7\¿6Ês©«,6‡Ý|ô²ìaÛ?®Ã„e”tûâß#ûú9'½¾ïýœƒNŸµ^Ö5ìó;‹ß}›~Ïi¯ïg¯ëæ÷¢l Ûë¶oãDï—½ý¢Ïgù§ßu”÷©Ókeú¶˜'m¡Nz{ƒ0É}œÕ‹]·ãå¹>ÌÔ{<é}8ŽwkÞ¬^>ÿÃÚ¯²?¨(u³¬Žs¾†}®;Yìݼ“þnLúúw˜ç£1“I&Á¤?tÓÈ âA¿èã¶ÜÇÅq§Û2òè tÚ¯ÃæMÅQÇ_þý(«´ŠLÛþV¾…¹ª'º[œlÖ9)Ç9LfÕ«sTÜñ$2¬sÐÏÍÛQB:È M/qɪPQ®Êç¿[øá°ó3±s·;ØA>x‡Å]ÆÉq¶Ù¯»­Óë£>Ç‰× ›ÃbÌÃbØ7ŠóW¥÷¤Ì çï01ëƒ=l=“ˆnõÞUÍR®òg­ÌqâÂäìµéäêïÄDŒØw—b½pÔ{Ô”w†ù¿‡½~˜›kÐÿ«:½œëãÄöŽÚf¿ŸÑQœë^ß÷ã&û kßsþFµOe†‘(dÓ토ßýïuùQ½W‡­§—e‡}^ÇMyÿ9ŽNŸ…^nç²!Ìsss888àØG25Ø„i»É „n°%'™¦õΛBúÂL¦†ivÃBH¯Ð•M!„Tˆ¶r©?Ò!„B&EA˜çææ&µ„BÁ F®½}m\ûA!„œx^þæËEaÎÂÍØüù&^þöË€õo¬º›&„BÈàh¯u›ÅÜø{£máÆGí€í[Û‡¾N!„£Ñz °\ŠB©fB!¤BP˜ !„ Aa&„B*…™B©fB!¤BŒU˜Â…Ž?öë~õ>õú|Ð}×±‡nûØë¾OÃ1BÈ4phç/]_u\î5î ôZ¨úþB™~zænÝ¿6±9ÔYºŠŸm‘MJ íýÓ¿ëý*ïS·¿Û¯Ù¯—ý°ç‡­{Ôôò>un!„t§'a¶÷ËQ¢u´€tÐöÓI¨;ý~Ø:û=–nÛýìû$÷“B¦™±[Ìe¡ªÒÛ¶ôzÙ¯^—é%þ:È Â°ÏÝ0ãÄUz_ !dš»Å<è›ÉEŠQºˆr»wzN!d¸T*Æ|£´ÀÊÖj?Vó(8ÊrŸ¤‹˜–0!„Œ–©ˆ1—™¦˜e?f/7U:ö^cÌ„Bzg*,ærœ¶êü²»¹¼ïÇ9–If;÷³ïÌÊ&„Á«Å|ÔÚ~½¼ì¨/î½l¯ŸýôXúÝaÑm½îû¸ö“Bf©°˜ !„“BOÂÜø¨qì Õ=lõÙÕco£_úéh6‰ý½œ‡Y>~B©= ó0èfuk†!þýrÔ>ÙLbÿÆE/硟㧠›BglÂ\Ea«â>MžB©ûH!„T 3!„R!(Ì„BH… 0B!‚ÂL!„Tˆž²²ªsí§˜B!Ý9R˜çææŽ\ÉËß|y(;C!„œtŽæko_Ç~B™"Ø p4,„ G óQ]¡æææppp0´"„RmæææØáo„«W¶Ž-³s!„œ ˜S4z˜•M!„T 3!„R!(Ì„BH…Ût)2 áÂ@ÿwÜÄŒIm÷¸Lz¿OÊû5éóLFKx&Àü¡I1Ra¶¿¼Ã¼ðœ´/w¿Yï½ÔžWy»ÇeÒû}RÞ¯IŸçY¤2‚¨ß«v­­ #·˜†záéu]a&äc~°†µžã2©‹Ú´^L'½ß'åýšôyž9* ˆúš‡ƒ„¨ÀM dl®lmñöjíê*†÷ÁªÚtRž‚iõPLz¿OÊû5éó<+TízC&ÇX„Y»¼ú½»>88Èï ÑÄdP‘ŸdÛ”NûÜïÍÍ4m÷¸Lz¿OÊû5éóLFO£qOÝ$ÌÍMÜSxR™Éä¯òkÐ Føº}këßX?Ö]¯ÃôæfZ¶;ÍçkÒÛ÷v§õóQuæÄ9ðFk’ eºT?ôm½h)ëƒ=©/Ƚƽ¶v§ãhƒ7©í—Iï÷Iy¿&}žg•…p÷÷0ŽÛŽ£iõ¾ÉÑ“0wë—½ù‹Í¾6ÆžÚ„RdRBHñ­.= s¿L†ƒmLÊú›&khÒû}RÞ¯IŸç~èTUÑ‹–—Uu†ÞθËAõ6ËÛ¢µ\ Æj1“Y+—êF0š÷›'b»ÇeZ÷{Ú¨Âyî”åÜ«ðØÂ5ªléNû2lQìTÝmá™3ÇŸfÒb.‘ML1Ž÷ –/hë¤Û—ÉýÀUËÕ‡û…>j»â´P¿Tì;<©óÕëöGŸ·;Ÿm•ö“ç².Œ¤:£›(Ýb=¤.ºm{¨¡&Š™µ˜mþ £–ú8öå´_[ØWû—|6p|ë¤×톡º —$·>'u¾zÙ~/¯ÏJÈ””MúóÑ©:£Ÿ÷ÂNÈfùÐQ–ò°>/ýXú¬¡®•±˜‡YnQþB§¯ï$êùÊ#,#¾ÀOj»ÇeÒûÝmûã܇òv'±½ã4åïm¯â\^fXßÿ£¶]Ž7“në•W€ N¥,æa^Xì/ÒqÖ;Ér) #j»Ë®ßÃÂþÜÜ¡¹f{Ùn£Ñ@†§jÜYOê|•·ßëß§rìÒn2Ò@õ>6½Æ˜‡Í¸op{éç0*¯9#·˜ÙK÷˜èÓ×åú6ªXéÜŸæ]/¸Æz¾:]hµ›¿Óùé– ô/z;åmõû÷±Îs§cÐÛ¨º·e\Lê<ôÓ(„‚\Fj1ó Ù?öEÎ\L€¡É*Õ¯j»:{ð´rpr»Çe’ç«›[T{zÀ~cŸåuëçýþ}PÊçYC7Nº8÷ã:æ¹bîÃôÒ“0;à¸1”^>LÓZ.uÔ±õr샔ªLj»ÇeZ÷{P:‰j·~ÿ>(½ÄLÂ$†›tWe´«¿ŸLù¶Ú逤 WŸG&µáƒƒƒ~z¡ax&4}ý^^ϸ1ιþ¾œî®) íîûÓ\_Û§E^&3Æ}¾ìLû÷²è6øAÿ>MÊ~ϳ>¶I>ÆÊÜ0@ùZá³’­£Â3¡¹æÑZž^&&Ìãäž•øÐïúìê±îtŒ¥Þ(ÄëŽü?«$H[‚ƒl÷^ýžè^¶[(¡`»Óx¾ìÏH9¾jÇt;}–ºýï´`Ÿç^(”PMàó1N¹¡×ל¼$q@£ ‚*fÑÅĦK2)lÚË¥Êw³úùHT`»Ç¥Šû=lwñaëwŒ™ôÇ ×ŸAÊ—z­E®ê÷˜äLD˜ÇñÁ˜ær©£bv‡þï1J‚޳ÝI–PMê| Â0’Ñʹ>ßýþ}œT±ÄnT cì,Ë—N639yÖè÷‹=ìšæ^©Êwç«S3 xÊçã(—v?t;×ýþ}œTaÆÅ0Ä´ßu”oÈôBa&„‚<œˆä/B!dZ 0B!‚ÂL!„TˆžbÌÛ·¶õ:!„BzãHaî¥Þøåo¾<”!„BN:G óµ·¯c?fžÕgW'½ SË$Ú¡’Ñ2-]¼™G s·ÉR¤wúidOŠ„gB^Ägí[Û¼Y%¤ ™.u’°ãï´ü!„ŒŒ‰ðLˆÛº=éݘ:–Ÿ^žô.BÈXa¹!„R!(Ì„BH… 0B!‚ÂL!„Tˆ¡tþ"„BÈpJç/BÈðXŽU÷~Üÿ?.“Þ>!ÓΑÂ|ppÀ:æc°}k{l-KW–W°s{g"ëƶO Z¸Ê¶. eý£ÅQï?!'ƘgˆI 㤶½.˜Ÿ^_ÓÏí¿ãÿ»íG¯ÜkÜëYT»íS·×ÊûvØÿwzÞ ýì?!¤;æ °²¼bõï^³ÿvزG-×íµNÛ:jýýl»—ýím±éŸ²ðt{Í~] Ö ÿß˲öÿ”E}ÔVf¯ûÖëºÆ½ÿ„œDØù«"Ø®à²[¸×׺­¯×uìÜÞ‰;|\nnÛZ;ÊrëgÙaýYÈ'‹=lûÝþ^¥ý'd–¡0W„ÄkÔ¢6.7ôaÂ? ñ>®5×Ïÿ÷²l'Wò âf ãQë–U;Ìý'„t‡Â<Ãôë> [XÒao»_†‘˜ÔO¼·—mõ#¦Ãä¨íôºO“ÚBNæ¦ÊÉ`½ |?ŒR,ª(Dƒ¤½|ùÿ)¸„Tƒ™fmµLËEfÔqØÃÖß϶S{ùòÿGœËÉLå¸oùµ~Dç°u÷²lU®Ÿã „Tƒ™æ…pÙïs¹@…(ý{/˶ìa˵ŽãÞ$ôºÃà(Áìô¼[âV·å{Ùf¿ÿÛÏ~Æqö¥ßeíׇµÿ„vfN˜Ëñ½L—8ú·^×wÔk½¬»—}êgÛlLB!93UǼ.àà88ØH”BÈ423¬EY£Åy'õƖ˜„2Ì„0—EÙfDy‚JQ&„Ù`ê…¹›(ÏÍM‡(B!6S-ÌeB!³ÆÔ 3E™BÈ,2•åRÓ*ÊËO/Oz¦ÎŸMVŸ]Ex&œônR)6± ` …yZE ÈbÃï!™*ažfQÖp~-!„2¶†MMŒyD™B9Š©fŠ2!„“ÂT3 D¸üœ¢L!dÖ¨¼0Û1Y-ÎeB!³Jå…¹ E™BÈ,Sé¬ìr3™BȬSiaÖP !„œ*+Ì á™Bȉ£²1fŠ2!„“He…™B9‰P˜ !„ Aa&„B*…™B©•ÊÊî4y‰I`„BN•f ]ˆY6E!ä$QyWö½Æ½‚%­/ÿMÿ”—ëõ9!„R*g1÷‚mE—-jZØ„B¦™Ê[̰…·›—-mŠ7!„ª2•sº¥ !„Ì Si1ÛhëWÿ¶ œBHÕ©¼0Çí¬ÅXÿù9!„R5*çÊîwsÙ¦øB™f*%̽ˆi§eÊ;,9Œ‚M!¤ÊTÞ•M!„œ$(Ì„BH… 0B!‚ÂL!„T 3!„R!(Ì„BH… 0B!‚ÂL!„T 3!„R!(Ì„BH… 0B!‚ÂL!„T 3!„R!*5]jPúI!„T•©·˜ÂpppÐ&Ô„BÈ´0ÕÂ\å¹¹9ó;Å™BÈ42µÂl‹²†âL!dÚ™Jaî$ÊŠ3!„ifê„ù0QÖPœ !„L+S%̽ˆ²F‹óÜÜÅ™BÈÔ05åRýˆ2#Èúw–PB™¦Âb¦(B9)T^˜)Ê„BN•fŠ2!„“F¥…ù^ãžÉ®> Š2!„Y Ò ô&ÎeB!³Bå…8\œ)Ê„Bf‰©f (ίýÛkxíß^ÃÜÜ6^Ý@Q&„2L0í–³å×þí5Š2!„™`jŒh(À„Bf™©²˜ !„Y‡ÂL!„T 3!„R!(Ì„BH… 0B!‚ÂL!„TˆÊ”K-„ ÿÎò(B!'‰Ê3@&„B¦Æ•­-jÛ²^ÌO§åû{7 B™$•²˜b!\0Vµýûa¯õú?„BH¨”0w²bmáìöûaPx !„L•æ~Eô°„1ýZytaB©2•æ~èä–¶éæ¾¦M!¤ÊLMòW?ôjÓz&„R5*e1c.ÿÝ^^?¿×¸×Õ•Ýé!„*Qa>J$;½^þ[/.kŠ1!„*3“®lB!dZ¡0B!‚ÂL!„T 3!„R!(Ì„BH… 0B!‚ÂL!„T 3!„R!(Ì„BH… 0B!¢2-9bÐlÁI!dš˜a€ƒƒƒ¾–Ÿ››ÑžB!£aª„ ØB™m¦N˜º§ !„Ì.•æN±åN³– !„Y ò cËúwº´ !„Ì"•/—º×¸×&Âsss´– !„Ì$•fB!ä$1Âl[Í´– !„Ì2S!̽ÌæƒIï!„r,¦F˜µÕÜÍZv?pá~àŽy¯!„áRia>¬ §ýÚ¾ú=ùlB«™BÈTSia¾×¸W`m-/„ Œ3B™I*-Ì@.Æá™á™°ð7³L]=w?pѼßïB!Cd*Œt)s£óËZœ !„i¦²óB¸`ÜØa¨,eÀXÍöë„BȬPY‹ù¨r/1fF÷6!„i¡²³M£‘ù¯ç€ÆG]|Ù` !„i£ò¬ÝÕFÃt/.l–PB™F*-Ìå²({Ü#ãË„Bf‘J óaqä#cÐ,¡"„2…T6ù«ý6a !„i£Ò3!„rÒ 0B!‚ÂL!„T 3!„R!*!̺½f¿m6‡Q2Ų+B!UbâYÙF8r¬#!„“ÊÄ…¹„ºÛk½.×m®³~ä!„*0qa¶»xuÇNÝ¿ú]®ÛkzÛeB!Uaâ ´[°£J 1!„ªR aÖfáö¹!„L;æ^\ɽZ¸´„ !„L;•(—ê‡aXÏ´¬ !„T•‰[ÌF8Ú–oùõnVña˵&€B© f ‡އˆq¯ëéu„BÈ$™:W6!„2ËP˜ !„ Aa&„B*…™B©fB!¤BP˜ !„ Aa&„B*…™B©•h0B™7Þ¹8€L%„#Š/¦@ÔŠðò7_žÌÎr¡0rB¹ñÎ O x40W)%d*I’@Ô®¿sÍOš¸ðà ÜcBNS!ÌG `[MBzçÚÛ×Ìð=Þ£à¾ðÍÕ I U´—z- ß÷áÕ<\ÿåuÜýð.^û÷×&{„Ì0•æ^&Aq!½qý××QŸ¯Ãõ]xžá¸Â!ðàAB*q–‰H”%-„ú© \~ë2.ü€Ö3!£ ÒÂÜËT)½Å™î\{û|ÏG0@ø^­h) G®ê¹B k–DMÀu]x5×~y /ÿ3cÏ„ ›Êfe÷*Êö뜳LH;—߸¬D9à=êÁó<¸Âme“øå í¹„„ë¸B¨ÿ?í"ð\~ãòÄŽ‹Y¥²Â¬éÕ ¦8ÒQSbZ¯×á{¾Xµ… aD¹ðh[Ø™KÛ›÷&yh„Ì$•f-®ýº¦)΄ÙxuC‰±ëš¿vr1.•N•K¨„# !Íò®ã¯ù¸ü:­fB†I%…™2<σWSîk hëd.Æ}mÜØ4JD¥ IDAT¢d1[µë¸5¸Ùú=¯|ÿ•1!³Kå…9<Nz™J.þø¢q9È-á^ÉbËÜÚZØÀŸ÷áûþP÷“Lå…™2þi¾çÃ?íw…m)÷·\áB8B­»&PŸ¯ãüwÏòp91P˜ ™A^ùþ+µÌ]íä¼tÌX¢?ËhÏÞ¶cÔnÍ5îrBÈñ˜ a¦;›þñkÊÅ\pG‹¢¸öDšÿZHËÖãBÕ5÷£õ„îL…0gBúAJ™‹(ò,jy’W/¤ÅeešwC Ä2F’ªÎ`}Yá„®TR˜í²§ÆG ó÷£ÄyÐ2+Bf=ŽŠ ÷m)J”µÅœ=ÜâÖÀ ê2!á’ ÅùöÿÞ6Ï„æÇ†µË„äH)‘¤ ¢‘ú]&ÆrŽ(¸§Åc i,åDªAQ™v´˜ •î•}¯q áV¾¸rd¯ìòsZÍäDc¹›¥”BæÍBúùÖg³¶Œâ4 ÄÚ…«ž§è]ì !‡Riarqî×"¦8““ŒÝ·bÕrS eå¶€ºSW õàÕ.ÌgNÛcÌ‘Œòç„¡PYW¶M/C,:-C÷69±d‰YeËYÿ]¦²%·t-KÈcËIš˜ç…3-fB†Bå-fM/Ö¯¶®mh9““È;テ‹O^D$#2@ô ‚ïøÊj¶:zza[í9 –2r‹ØùäaRZÍ„ ‡©°˜û–3! ÛB¶Å3i%¹--±m;ZÜÈÝÙ0‰`Qaó7›=^Bf…™f€åR„À›ÿñ¦Š1Ë¬ÞøabÄ9jEJP[*k;n)÷vÜŠÍsH£–-kù8‚Œ%šQq+FGˆ[1ö>Ø›ôá23̤0gBàÂ. Š£¢e\zÔ¥ORÊ<ö,‘‹±Nðj©×šQS‰uA¶$öÞßÃÍßÝœô¡23LMŒy(΄Íf!BDN×uóžÙŽl›³l²¯‘?ÆR•HE‘ãæýLœ£›¿¢ ›a2³3!DñÚ¼†¨¡±ß@LjD@ÒÙ‚–Rš¬míΖ- $¹(kK9Š¢Bg>BÈp˜i‹™¢ØýÛ.–°¤@0 ±<á¨ñÆrÖ¥Oª" Q Z¶$šqn)Ç÷c¼ó_ïLî ™Q(Ì„œ¶~·¯æ)M%¼š‡¤•À.d+{îdjœ ®(—HÙ–²lI\ýÅÕÉ!3 …™Â;ÿõ^øê ©D$"ø§}5¯¹&Å\ÇE‚.\ÕDÄ`DZ²’c•¥ÍÒ(BFGe„ù°Zc&q2n¾{7þû¶þ°e,e<ö?ÙGÒJpnéöÓý\”B¹¯c5ƒ®kBFOe„¹›ø²9!ÃEóß;½Ý=c!‡a¨,æ4Qs›3wv’&¸ó»;¸ù[–C2.*#ÌèÔNÓê^_Óë±×ÇV䤲û×]H)áÍ{¨×ê@ #Ê62•ðR/}í%¼ôÕ—ÐØo`ownlBFLe…¹›(wÜ£^³Ÿkñ. 5!³Îú×Ö±üÌ2|OÅ–}?‹1gÙØTr˜Nür¡,çäaÙ’ áÕ<„‹!î¾—nmBFD%…y‚i¯bLN×Þ¾W¸ð<¢–‰²#TSðß,«GFêžØB À¢$‚nÍEÝ«#<âµm‚GEÈlR9a¦KÈðØxuõÇêðk>¼š÷´g8ù4)W¸P"m¦MeåÌ‘Tb,¥D ħb!‹®pqù˸ðà !d(TF˜{ÒÖëöZ·Ä/Š7™E6^ßD.Î~ÍWâ[š"eÌíäbÜõQ*q6ËŸ’ð„‡HDØxu—~ri‚GNÈlPW6!d8h1v]·(¾à Âæ±£m-_x+aÌqó2*†]c\á¯ùF8‘ª²_[”5¶H[¯Û³.©²-eûÑ­¹ð}ç¿u~Ô‡IÈLCa&dF¸ø£‹¹¥ì¢ ¶ÒÄ’{ÆA^×ì [¬ìní&ϲµ™FÈñ 02#¸nf) C¶1‰_Nq`c—bÌe‹Ùw•…î{>ÜÓ.­æcrñ_.âü·Îcýëë“Þ2*“•MÈIá•ï¿¢j‹u¶3¢$‚Œ%ÞüÏ7Zçú7ÖUó¡ÜÙºäI#S•==ˆ8ët§,íÄIT'0¡öj²1Ðqœt6^ß@x&,x6VŸYm[î¥ziŒ{EÆMO¼}k{ÔûAN(ÿå"d*!¥4¦fyzÑÿ¾Qmõ€Ï•/® Š#4>làµÿè½õæ/6qågWTâWFÚ¡™H¿¢¬±ÄÙˆ´£šŽ@ªõ'IOP”aãǨ‡ªuª¨ ø§}à!€SP€™þ%S‰ßÿ¿GÇ(Ò³HÏóËß|y”û1“`ó³+2Çåú;×;Æ0ݲ4F”³›’$Q¨+\\yë ö{¸úŸW{ÛHš»–%”…œ 1*ålÝzÍÍD $217V”圢m„$éÌ+ßaª.m5ψ²YïrÝ´<…šþ%óÏ‹qãÚÛ×pûÏ·y­™!úreßû 9zeû=zºqýë¨Ï×U-ì)5VÐ…5X‹€”XüÌ"êõ:ŸXDãã¢ûÞywzÆ ^~ë2‚z€ú|]‰²Õ«Z eYäâVl,'á l¼¾Kÿztã)¥:§(ÕÃåA‚W:›Ûrgë¿»pX'ibDÛ…;À†Nç¿uáã!‚z îÕÕgâ´0¢l¦~éæ0™('RMÿŠe¬D¼&°V[Ãââ".ü€Ef©Ž1/<±À›…)âÚ/¯Á¯ùæ_˜ z°™ ä¦$ˆp€ÅÚ"šÍ&Îë<®þ¼G+r‚\{û|/?^-ʾ(vâòÅ~S‘[B­›µÓþ¡ƒ"^xþ“1É«OïðØ=a‰2ßDÈTBB"’‘zL¢Ür~H‹ù(Í\lÏóຮÉ(LýrDþ9©eŸ“šúœ¸ÒE$#„"DS4±X[ĵ·¯Ñ»9L­0/<±`)ÎÕçú¯¯Ãó<ÊÔÈçÛ¬IˆV>8¡±$›qt±Ò³€¯üì ‚z Ž×¹—²œ=ÇËK’Ò¼ôÈ.¢VáD޽rËËÕgVU‰Ræú6¢™H3ªÑ÷üÂöú¦$ʦ‡véQ[ÎEù(®¼uEݬÕT‡¶#§~&‘Ï<ÖTŒ_Oÿ5åÖ5ÁQœ3ÀT–KÙb|ïÃ{F¤Iõ¸ò³+¸ñß7P¯×<®DJÔ”ÄJäu°þ¼¯ÆΫçÀõ]xó¼yO Þã6~\݉F~ÍGðæ=Õ«Z ­Ä¨S “; ·¬]×m«^{n õùºiì!„²%‘¤ d+ÕˆÔêÜÕO3P´”‘ÅQ´œML9EÁÍMÚY{~MÕ™;€ïw˜úUnÞ;¶éç(†\'o¿<Œù¨È°ydnnsss“Þ¾([È´˜«Éµ·¯!|,DÕ\àšêL¥Å¸`Af#]rcÜÞž01ZÿQõù:/€ç{XÿZõêŽú°Èˆp˜½G†ÍÆ«æxƒ븦مK.ЩNÖD*Šƒ@qÃuU°_ó![ác!^øê ¸ùîä,µóß:¯<~^Ã[¾xvž I›¿½iDðÆ»7Ô‹.ŠçÑZ¯ïª6œÆœ•^¹ŽkJ°’Vb²· " ÛÛmênL4ŒPuŒ»ùTþ7ᓃ1ÐÔ/ ½ù‹ÌêØ³›«æ§Íá+ŽÁ£Õqwؽ:¡;Ô¯ Ðø{ãPf‡°ñ ÝØ…Ò& ÐyÊNp±¨t‰‰ª G”Fƽûâ×^Ä;¿™`/m©:• ) ý°{%Š"y)9Èb“%7¹ï¨)D…Nj°²¼‚Û¹ÖCȇp³Yïe["Oè²bÌvÖ¶L¥²”ã̽‰rô Bó @7Ll^cYÈÆÔ)÷¢ìÜ ;AO·MeÙÚTâºõTmá"¢Ýþ‡¢<>vÿ¼‹sŸ;Wø›±úñÓÙ%O0ү˖²Ž£–ŸY6ëŽ@øX¿¦Z¬Þþßé»ñú†qGûúf\(Ð.Êmӛŀõò©€Hêóõö¥ñQC¹Ñ ‚ªKOœÄ”ªÙòôMlâäß›‚›Úïd¹q¬z–Çq5¼Fdp`ú²÷ì6›åêñï}×Þ¾Ñ&ÖìÁË/2V­q¢Ý6%RYìÌtœÊJut=mã㮼q2•XüÌ"êõ:‚Ç„…Ÿ¬óÎoÞÁ‹_}á™ñéØôöÖ=¯ ±ÃŒ¨aûVf%[í8µ5KK”u‡§TMز§ éóx·q¯<®Ê‚ìžÚúb¯»âV¬†$Ê]ž¤J4¼y+Þ ‚G4>l`÷ƒÝ±œ»a`÷R÷eªÄdó×›ØøÉF1ÁKìïï#y˜Ž^H¡D"É¢´ˆ‡ŸQî`ቩ°ž7^Ý0ç[5TÈorÚ«ìA*vj}¾jêóåÕ¼Û_ýÅU¬c]%ä!@ 5Mª¹âå’:ûû! °/÷ÛšÀÄqŒæ¾²”ûu±“jRÖÁ¡(W›—þé%\ÿåuu!<ݹÎÖ.¢42õ²@{é“vÓ–E9ŽbÄ÷c\ÿµjai·«Ž@x&DP°ýÇmø5Ûÿ;ÙD¦Í_k׿¾^xÅ‘™¦åÖ\#Ú²-L}B–ìói„ ÔHF'ÏöÖçaçö!„ÀÆë€\ú×KÆrÖ–²>çQå±ðTw»ïøHd‚°"˜<¨Øóߪ{BMÚr…[hÆäÓž å\‡,1ËnŠBÂu]õ¯üË+ei7÷›*g‘qE›„¯ì¦L‹4œüû`ç Ù÷BJ#ÊX1;Lµ0“ê³óç,¥KeÃÛmq¶êm ‰]iÉýyÇ©lÄ vgoüd£ØÈßr?B—ߺ¬Üȵk§×Ðø¸Q™D&»ËÔ ÿøB>5«CÖu9ÁKJåÂ÷jªV-å–ÕÆ™kÛ¯ù…Îh¯o˜íîïï#º¡ÑTYÉLà{>dM"ðƒ‚8Ûç9v¯æ–JôŠâla&ÊÍûMìý}õV]• ‰Ì²ctY¢S}¾nJdª”ÈôÂ?¾`Üðݲ® @[Óò?,«°€è,^(qÕ}±mw­ë¸j´£u´õ‡-ÕùJJøž¯Ü«fó u'0˽íÕ=¬Ì¯À÷}lý¡™ðÿ´oÜØv¯v-ÆGö¦¶Gf³“D2‚/|óƒOåó„‡ÅÅEÜyÿŽq:² ˆ‹õÕ6:·bº°‘v(Ìdä\ýùU¬}‹‹‹ˆDßóUBXv1Ò™ ×$zÙ1ÒÂà„™»ã왳¸óþ„Qˆ¸#|,„77_ÏÜŒNžh&S‰ÚG³ÙœhìÙˆr¹ Ê£ SYp[#ÍvÿRÜçÛQ7Kÿ°<ÈFaB…„Ÿ×çÚíQuS‹H*„^çÖ­-,aYÍõõÄ2F}^uÈrW51)Åž?»ÏóÐh4*c=ËT‰¨ëºÆòõ¿¿¹Ç¶'F[Ìêóuj€Áþ¼ àÒó—L~À…^0Ù"'*|/t{ÔHª›ÓÞNßÂ|ØÌãqÄ|{Mø41¬ÛÿÙïeRD—……ˆãžç)‘®ùªž×A[[H“uz?1ÇqÛ Ëo\VBÖR™É^ÝÃÕÿ÷*p Å©•eìy™åÞgìyõÙÕÂÅ@¡cY4»ñâW_4nk80±e3è ”uØk^O\ÞöÒç—p.<×QŒ\ÇÍ·“-2íMX}v^ªb«žTå^娳v‡…ðçýjYÏv²cea÷3T¥<ï8…ç¬íå A€ú|a=4ë× i´Hï§û…ÿ‰âhê;°‘Þè{ˆÅ¬×wÊöžÅ㜺®øü·Î›$£}w¿(ºT%£(Ê;Ý|·óEéÂ/àâ/"l…ˆ¢[ol™fHÑ1F*¡D¼×ØóÚók…Îe¶ªo"<¨l]ïd¯=¿–'xYY×R0cʀɺ¤—_Sî\»„ Pç×Lé²:§•Ù¾µ­¬g_YîÒS™É…Ø3òROxX|RYÏ{{{õF$óžêÂË[BšN[=aWd7K2•ˆdd¼ý²þµuU×øæ&¡à!Š%Â'B\øaÿ çÌE IDATÆÈl0tW¶±²…©é$xúõ²øuû{§eìå:Õ8wÛ‡A x;Iå•ï¾b~/XÊ©JøÒϲtMé•·® y¿ ?U¢ìûyŒa¦'iq.Äžkí‰LkÏ­å Aœ¼ÄI—Þ0S¯’4Éc¼Y‚lI#Pm ^È–I‹±dÛRŽ>v‹Óž§DÈÌkÖ1Kk;ÚÞ m=›Øó¼u^¡nzìõ G x,PÖó£>¶oM(^ŸÏl4¨¾AéËéÐìÆ<¦V®>ñæ=õÁ|Pô¼@½OwwÐh4Z7™ Fc>Ìí{Øó^~ï¶ûy§ƒ~DÔþ îhyó?û/79Œïüà;Xýª‰‘J)Uc‰ÓÊ:m‹‘–bÏîiQ3ʳn³5‰e@ç:WH¸i.Îp€À ŸŠ±üô2‚ 84ëZJ‰IáyóãæÀÍ<Ÿ\TÓ£`Í©ÎnJL N DIÔÓú¶nmu>¯® œRª}^!”+Ýó<Õ”dÌÖ³ñ¸´"ø§|H)±õÇ-×ïw=…›§$/U„½ö°öüêóõ¶æN2•h|Ô`†õ g$Âl ÙQ¢Ö‹èu[f”‚y”(S¼«‹Ž¯=»xÙ´ .1Òrìy©¶„=g¯80Âêºe²uu½´åÆ6Ï¥T´“ÀsTs‹8Žž ó/+fY.…ÆðÏóT-4Šûm[Ì:ÆÜïyÕqv-ξ_:¯ÙHC¤Àâ™ES÷¼ukŒ±ç4ïÙž$ „'°»» qZ`éóKG_ýl‹ÙöhdYÒåØ|/,ÿÃ2„ØúíV–WÚ,ææ'M4>¤µ|ÒKVöa cÝ8ÌÅ=Ⱥû݇^D—¢\mt†qàÝc¤åس¹(—š|z{[M<<'Ïz¶ÿnz,;j`Åݽ»8÷Ô¹C{]7›ÍžÈÃuÝÜb¶bâzà)•ÀêÓ±gßWMG ^‰Tm;I’<¾æañ³‹ž@co<-=Mïð¬Æ[Ô”[_»÷5Ôƒ¼”Êiÿÿ‚¥œªùƱŒMl¾ß–œLïsÕ™Lsᇠ½÷*3„…LŽ‘ s'7r¯ âÊ>j]½`¯—â;Ýô#µbÏÍOšJ-ËP£ùììfæ eqû§}e)f³yt„šN7u±óÞÎ-ŸëØëºÑ^óÏó îw;Ƨ*6*¥ØÅ\8¯–EiΫÛî‘S]ÃüGý‘“¼úó«¸üÆeÜøí ÓÞôü·Ï«óâ2–ØùóV–Vòig@!ñð°*ƒ$~-~vþi?ÿ|Y3.¿qRJìýmoªz‘“ÑPÙ:æQŠ!…öäÑ5Fzº˜Ð¥]×…¦Nñ¹Ýl§r‘×1c×uE‘¹Èë¤1!TŸiÈR¯k)‡–$µøä¢I<딤j—lÉ\±eìóxAἺp‹±ç켚Øs£÷ØóòÓËfÀ‹ça"¶s{G5nɲ߯ÿú:$$Öÿyѧy=¼éMu¤3ëG1;>Žc4›MDñ`cuÏn¯æå!+”À¶šD3ra¶]Òöó^bÏG¹²Zw9Ì^®öVólÐ1FšÅž…›ØÐ1eÛBÖ" x¨:4ÁAÞ$®²¢jÀ~¼ouqÎæëú®;ïßÁ⋦×õqšr¬>³š7%ÑYíIÖ¹ ³±íÁ ÃÀŽé{žêUOUS’NuÏj ˜®{>Ìz^}fU¹ u,¶Ôô#|"옽n׉ Gݨè¾ÔZ”›qÓô÷…Ÿ‡Ò$?‘1m6›ˆîGØoîwÞÙ#p]WÍÄÎ2ü˽¢¸÷:x2Û8Úå4„ª—¿Ùnâ^–ëg™^×Ý~Í(ÖÓG[Œ4‹=Çû±©y-ˆri”8-ŒUê 7ï¬%¢V6ìÅØu”FÆ2ók>vßß…pÄÀnKémDÙ²Œ=Ï+L¤Ò±e8@ÜŠU¬´=SºÓ÷çÕüc=A×=›„9Ï3Ösy ÆòÓËj‚““Ådã×¢æ#s“gePkÏ®¡5†a{xšµu•Y]üýçž:gz·7e3ÿlJ—‰1'@ó~Sý4›Å–—>¿d,fã¹°Ø¿¿Ï9ÊÄà,?½Œ½¿W£©?!ã¢{Ž€ëåYÌÚ}­ëtõsÓÓ8+¡2½˜SåuS5·W·×{×QYÚÚÝ=èð‡å§Õ …î­ÌÊuÕöy‰—Uß; Ìy}.‹=gYñþ£V³ä±g8P1<_µS•0ÇשTÍ$ÚeâîÃ/žßš@|_u‰[yj%¯—yöûõ_]Ç…ï_Èç‚gï¿ÎR×⬛”èYǃŠ27{)¸±-’V‚èÓÞJ×ÈìãÖ\€Y§58„Wr_§(Ɔµ…츹8gƒìº`í¾Æ©,;(ºŽ›Oz˜`éóK=[­‹Ÿ]4µÐmì¦fÎr¬Ú›ÆiŒz½Þ>BSFXþÂ2â8É´­­?laõ™RìyÞƒ{ÊÍ{@[±goÞÊ·‚½¿íuG]N¼3ž‚4¿ùT eF,fÁkw7C2ëºÙl"¾?˜E»øÙEÀ\Ïmf7q3鋯æÑ…BN,þi¿`yš)L™ÖÙbà 5æÐ®qgû5eùÅil,bÝ<$y71±;‚I©bÍÍVo‰>Ú=lDJ[’ºtËÎÏš‰ØuÖZP´%èÕ<ˆ0³ð]wdc0uìxíÙ5xóÊÒ­{¥Ø3¬¦$(y$¬R¦òqšzò’8ëó›8 öþ¶‡ð±Ðˆ²”‹gÑø¸¡Þ÷X‰w\‹óìk«y R ÑhàîGwM;ÙAB îÕ‹±e½ÆÂ'DãP”ÉIG‹÷|Öè:\¹¸™(g‰³ ᨸ¶©ÃrKÒ±Jˆ˜f¦ãÖéÜlbÛ©„›¸ªt V”¼ÔÃêVûšM=(&öüܼTÝä$­Ä´@ÕÇg r!ñËeûæ"Ž3K9à å ðk~ÏaƒA19¢TOŽ,¦^sM.ByÊ(ÊÖÈôã šiHÈ, [jª“޹0u¿î©Ü}-Siú$ G¨)UY‡/ݬb÷Ï»fĤ©·Íb–æ¢ Ë¬/âz•)†¡€&:‹2QN&ÆÂ·cš…í¥q›,r»”K:pÑW¦øqÑÖ³çyÆe_ŽñÛÇ_e_¨lj·æ"Š#@À Јelêǽš‡å§—ÕÈ¥Œž;ížvó’¹,¹K¿ß¦$ h‹-ëLl–H‘N8…,DBN{ÛÃÒç–€”;´¦þî:yiKÒJŒ8ÃAÞ¾QJ#ʲ¥JrL]±pÍœf½>ÓQ ÅÒv'+!ö?Þ‡ç{&»@[ÌÕv³ë­^^8"w#OøŠZ‘J\“¢P¿«·+¤0íEÇÁòÓË…Q˜æxJ m@1Ön΋>¾¬I¤Š5G2ÊÛ£fÿôðŽké–TVwÍ*]s:„Ò<æÇꦮ>_7¯G÷U³“qÞ ‘éà‘•§V*Ü1›Ñ£ë\%d^÷Ь¹D+Vµ¬q¤š@´²ËqlOÈXB>8û™³f¹¤• I“BLQ×EÛînm¢«›ì›ûNK¢œYÜžðŒå©³Åõ cÑeË,wûy¶ýåXÕ©.RŠ%ëö¥f~ô)öÏ®+‡PM;t&·z![^Xë·¶3 –¿ :’DY(ñ·EY‡tM6(÷z#¾c~ÍÇâª>çÎîIï!ň¶˜³-펖§d."Cm1ËT§T§()eÛˆÈQÞI,_äu¼Lì±ñqÃÔH· Ò€%NN~±·-d-Ú­ e) ¡æ ϸ{íQ•Ú# ›ŸŒ…4%—ÚLŒ¿l9gçßs<Óû¦ÓÚÝÝ»yŒ7DÇ1’ Ÿ\,´ý„r=¹±àËõÕeO¬ð…ÌæwKuœ‰LðÂ?¾0Ôlp2Ý8@)»qÊXp¯Á~ÕäH垆P¿ë)F¦ç5`b¸v“ݰC¿ŽTÅhoÿñ6"D¦Ç¶Îz¶Ý´‰“´Y‚å²i"rÕ1k-NBˆ|n´vcŸÎ;‚Ùû«ëžÝS®*ñ²{y˼—·{Ê›{Õ„Ò¢ûZÇøMV»}óà3*nŪÝf+ÂÎí¶ÞáÊ},=‰À °¸¸¨:Ÿe¹ýãÚ³kjÿ:ˆrùf @±ÞÚÊö×Ét ›~ßG]²F¦Ç÷ü¶þi‚¢LŽ‹Ý{Ù…k.¦·jVê⺮‰ÍÚ¢¬cǰ´¼¤Ö+%öv÷”{õÚÄY_ÄÍÀ '/Ò1êr‰T¹„ËuToí2õOg=¼…Wh3)•QìËý¢Ål•NyÂþO³ ûü,Ì´sÖ:F_èm‰òx×%†o:º¥@„jÊÕ‹föab½ü…å‚'B÷ò6Ëœ,aMG#tBžëæu×Éäp³¥o:Læ=9ñ8¢& Òéý@Ðb&Çeû½m¬=·QSî^ÛbŽÓ¸(Y‡*#ÆÙM­]‚À¸ÃÃ'BÕ¸¢%Ñl6•Åëæ.bÄm®LV²îìe•àØÙ×ZÔm7·¶¤!×+ë¬k+áKÿ_œæU®ã"BT¨µ5&ž¯³â3ñ,ÄàBG/}<ú¼êrÏBÂ]&îvv|›åjOår2±ÎFIêaQ¤JØÜS¹»Å0ƒÈÏ¿)]C~¥EÙ΂ÏîáÔû¯³Ñk–¿°lš±“Ë#Á£ÁÐæ²NŠ2[ØÊ¿úÁ²¤ÍT¦,¦‰JÄ­¿›ÇTšD2¤ª$ )àžVÖÞö{ÛØ~o[uK©zhÙÊ,H§(@‹¥„¨S0MR Uâš”R%¬I™ï¯·£G(OB¨Y|,x.:œßHFQ–d{ÂèŽmŽ«~¬çv{S» ¨ñ@ÔÂÇC“ÄeÜ×Ù˜ÉB=µ«j®õœn“–…t“¯–eÛ»yŽ€y¿Œ5+žTÇó¼¼cÍb[Ì á‚ù;›ôËÖï¶T·­y˜ØŸínÔ&’x…:ÕD&&-[jÔ¢lå7ÁåºÚå§—€”-ec~˜¨vI‘nòÐÍc¯2F’dâÕÊÅ9Žc—f¿»=Ž”LleMݘèóª-cÀŠíÛa¡š‰@2Qû~&T.h+û\‹]9–oÑÙ¢Öîná쾿«æB#OÝ$¦cB^‡G{ жüãV ®I Œ‘w*W£R]Ù}Íû½M¹©"¶SŒÉq‰>Ô4¦ÌZ³E×<–-dËRÖËiQ¶ç7ãæ¡³ÏµP'2i³” ³Ý3[ä±îHFH’Q¢eÜ.ÊxˆÂ…¶›ŠÌMo,çbÆf›/4áÐÙÖpó û|JäÙð™_8z—²I©ºjÉ–ÌÏC!‘‰ñ˜XvÉ¢v‘[ÖWÌÂ.Ĭў%o…Èë¯e^³:ʲr¬¦)ÂÞÐ"xž‡fsz…Ù¶’o&Çåö_n£Ùl¢±ß@ÔŠµ¢‚(Ä2.<‹8µÜ¬–¥·”åµ¢žÆ+jqÒnu{¡ë¸…R&¥Ë¶l÷uLjelšŸhQ6ë/Ýl´mc°˜¡âûÆíâù”Ps£‘fs’Qåñȳá‘«Ë«Xúü–>»¤bÃTs]‹®Ï‹n µ¢6±.¸Á3KÚˆ°p‹uß™ûßÔ[ëó–e†k1Öuξð ëëô˜ aÁ#Íý&ŸXœô~ Dx&4Ã5lQ¦8“ã°û×]e9ÇVs™‘(ˆ&`êiÛbÎÚ}-û+Ë)¯ßX²HL Ó¾ ˆdfë›…L¤“81b w×y¶y¶~Ó-w¬bûv,_¿n»·ñ0ë´ý&CJ‰³Oœ…÷¨ÿ´¯bú·¶XÇQœßÄXvÔRÓ¿’–j»-k§"€e1ÛëýÒ%U…f$VLÙ¬ßβŸâòU2¿æcëÖèf±Ž”¹9õظG1&Ce÷¯»Xüì"¼š§{ô@ÇŠ5[uªq( ¤è{j•ïøRªP“£ú3똪irb?fõÑ®£zGëÄ( }ªQ'‹ÙÄœ­ãÛ·¶MÏlH5MK÷º6ó¬³Á!ú¦!JóQ›Lv¹9ÿ™ûÞž3Ý)¦¯³¿u7P̶N&y)T¹Yˆ(Ö[›\„,æï;~ap‰¹y+Ã΋¤„µ"÷˜&BíÂ>8@pú:žçáÜçÎaçöŽº'Êb›Xdb–<È]ؽ¸­»!¥*Ñ™ÇÂQ=¢÷?ÙW™½ójL¢î­—Ñ7 Q·îHf϶E¹cÖ–ôq;dõËö{ÛX}vu§nÁÚïdž¦-esþÑ.ÊуÃDtj±ú…UÕ&k&ãB‰®/²k¤Ýæ³K½µ~4Í`d¾ÿ…ðG–{ÐVšÆÙ'G·¬Ú5ÝíqXÿCH7ô ‚µçÖÌß¶nm‹M‹ [ºÇ´Ý¿î"#2€åþÌ\œ²¥2Ã]ÇEô0jËZ¶÷GǤˢlg—Ï.ž…{ÚEôi4Öá I”`?ÝW=¿SQìô•Æm",5ÉŽ'•…žDÕ—³¡—Ÿ^6±d×ɛϘzkm1£xašÏdÿ¥yÄÜ4•cþiî¹ '§ªwgåxqù±Ñ¸§¬æ¹94ŽX–¢Lúeé³KðjžJØIs‹síÙ5wÞ°×Ø‰p™ÞËöÔ%++Ø${Íç aÚ²³Å Qh‚RȶÜðzž±v}{OzXª-¡á5à×ü±•îÜþËm3@ëyyS‘ÿÓÞù‡¸qÞùÿ½b Ï€ 3° ¸…"s[ÓÀÙ´tKÎ&uèΡí:…v“B»N¡±¯¤v ­ÝÂ5¾B_áŠÝ?Âùþ(õ¾¡›?rØ-öAK]h° Œ †°`ðÀ~ÿxæyæ™ÑH«Ý•4ÒîûkYÒhæ‘vVïùüvÓ[¼%\Ì\Ç5uÍÑ£h¢#íX¼nú¢ÝÛ…¬lÝÁÌîçˆBb±”‘g“›‹Œ4.X2º¡-à.—L ¡b•ótuBÕ ›“/œ…h8´šlx©g,wc™=ŽŠbœ1`)ë)ZYšN;~\ £„DûH±ˆqòðIt?êîÉ=?.wþp+»bê—u“ŽÐ •HÛb¦-T„ýP‰råeX“Àú¼ì:ëXÆ&ÜPî¡>¬þ}”¥l~?ÒJ†#–…æ²[šnj2 ?P‰_NIä˜,è‰ €Ó_„bu{™-ÊÀ@{ÐBÖ¹Ca& &ÌU"LQ&Ó@á‰AË3kn‘$êñµ¯¬ÈK¦ô—êNGøU‰²É¶Ö±Ô´tœÌÒµ-³ªlå‚ûZæ P ‘‚H¢|ð‚SgOxGÔ+ÿ°0 §&„zž´„4Ӝਖ©e7¼”rêIj2•pÓÜ"¾ýûÛª¼4kãÙý¸k<˜˜?PÝrÌ¿`‰ëã ›úE¶…jÇt…fήØG…XyaâÅ^„ë/¯¸ùë›ÅÞ×iµ(#UËzE¡DGbÀrP(Ý)‹2R øT€$ÎJ•RÏÌuÖîÕäqb²Óõ~[Ë-wžTæ¶íƶ;k%iÖ‰ëQ=sãïýéNñôPKÙnÏZ8¢-è¤:æor²ºkÙ—8ñ™HR5»ótÁ—ܽ÷þ0»²5R?Ž]û8l'ºe2I:ÏtT*ˆÆÚ޶*K®©æû‡ó†<¶eê"s[ T±#pDNÑEÑØ|og¾tÆìoý›ëð›>.þøb± ¥Lòä¡,ùI¤j¿žðT§¯¬ÞWÇ5º\*%!ÍÊ(Qí'ïüA%s­~~^ê!‘‰ÇTš÷9,ö,„@Ð à6]œ<|á'ážÄ÷}3vQ£›¬Äýx²%P;@‹rapˆ-Ê2OÈ'æoß×Úâ~ŒÕÏ­*ËÚê@æ-{8ñÜ ÓZ” ÙGôpqh1“Iâyžš0ä¸h?×V]ñD6eÈͬUkÊÕµB¹_MǪ¬´É*¡'i+Ç1ü¦k¿¾† ß¾ Ä¹é#‘ Ö¿¶Ž+?¾ ˜5…‘©óMDÖL»±³Ä¤r¬;BTÙW5¾2Ì(ß|oÇ?{ÜXÊ~ê«Ò OÀu]ÕT[ÐHà;¾iÏñrëù°ð£ÑS´ªè<£ÚŸOE†ë¸èÉÞTJÓÆaKYÿž‚VuÌ¿ÊR&»_ö%@…3àª,oG]”èãÿÌqxž‡î_»¯ ó‡=Œ$Ò\ E™L’SÿxÊ µ÷=eÁùMâ°(ZLÈ댅¬¥Ò<æ+¥„ÈGâd=—ûJlB'ÄQ÷¨eÛi—DÉTâŒÚÂ]ùÛ³ßõ•è["¬Û†ÆˆDœ0²Y—B­~~RJ$Í®tU—*ÛøPö~“Ü­¬EH[Ï^S%ˆí$ö,šês¶ÝØZœ’~‚0šý<ÛRÖ#Ã,eíeHøÊ°”en)'I‚cÏC%*Æ_j£ª÷×~Z…S|ovM_H=(I^€3!³ µÜ‚+Ü\œ}e1¦Áš¿›…‚ŒÅœæ%6Iš"so èQ„–h!îÇD€èa„ëÿ~/}õ%#ÊI’bÊÃ’lÑ;þ™ãFÄÌ-”;[¯i'eE›ïmbõ³«Æ"4qí&òس›gkËN¦-¯e„Ù÷UiÕ8Ç®ÌÆÖ-,ûræ1ÖXʺ{šÞ¾ÜüÄ¢?/-ÊHÔg=TBí¥*fﺪý§#bûžÏ÷v”¡~þ»çÖ£Ön¼sc›W“Y㔯ì9¨¬½¼¦DÙËEY¾7¥D(·¯š*¤EZ¤Ê]é9ª½dà(w6äó“ý߸ˆµ—×LG±S/œÂõ__/LF…¶¢'‰¶ÈV?¿ Of±çTM»òýmbÏŽŠ=ëìv¯é\£ÉÆnÎG6öé*,e”D¹¯bÿqçD„@(óe.²ÙV‚­î™÷cl¾›[½&ÆŸªýz©—_ÊæB[nòöÓmœùòøMWvµò}l¼ºßóÑ Zj ViŸ}»ú«èv»èþ¥K‘ž؉MÈä8ýÅÓXy6ëíûÆb.´ÅÌ\yš)ñ±FJHcA¹ÂEÔW1_ô¡Ú; e‰¶ŸnãÚÏ®áÅ/½¨âÉq4¶(O›Í÷6qüïŽ+QN¥r7§jú•{Ø5ƒŒegj„t¼Âfß÷U[Ï ëY»ÎÔž=ÔRÖÇÒbB^ò(Q x®U·,óÞ×å¶œÃÊËLŒ?õó¬üÒEý¹è‹Ÿµ¯®¡ÝnãÜwÎÎ|é üeA¨˜Žñš^žk`ÝêcùÏúhªöÓm\úÁ¥Y}Üdfr`¹øÆÅÂ}ÑJ,uLÕq îjÛ}ÿ{M IDAT  ØV±\G¬›{ wcÚûI JbL"×rŒë¿ºŽö3m\ùÑ•}㡳¡µ€zÒ3·¢©’ÃLÝs¹Ýd*Q±g!„Š=—ÜÒÁ§œþâi\ÿ÷ë¹k¸†lìÓ/œl,XÊýÜ}­Ûk–/žŽ渪û.“½¸‡î£GÓêÿÉçO*QÎâÖžç™ø~ÙCá{>^úòKŽøío~‹àH D¹é™ÄE=SÜoú…:j~îfOs!úÖßÂýî}\ýiµ%N¦ÏD„ù)=¹‚Y$g›™½Û îºß™k_YCçÙ‚VPèaW¸Æ}]¶”õ4!Ûr.XÈe·¶} ßQ ^žð§±±°ü¦Ù—ð–=Dq4w¢l£­:»­gªÏÑ®{.dg´Ž=ûž¯2·? M"Z»ÕF°àÜëç ‹o^Tnìþì²±ûº©.ÈÌE˜(ZÊÚ’­òhL*¤pëÝ[ê"(•Ò@%Ž5¡<nV’ç¸ØøÎ†ÉE8ùù“h·Ûøó½?.‚üÃÅpŒ/|uñ”YÊ@v7³¹ÞMa~.¾q¾wa"ï‰ì §*ƒp§ì÷¡£æ?“Åàô—NãØ³ÇÐ:ÒBàyg/›ïo+C!V,¹”èUpc[±:ÛrÖS†ìÇ;ÛÚtÔ—¡ÛwÕÅœ£­ºãŸ=ŽÀЕ]^ ,¼¦€eg7cñ–=tšyiÔÑg¢u¤¦~ùâ÷.BJ‰Í÷7qëÝ[À»Ó}OvL@A” –rªÑffÐ!)UBN ÓŠó¯`55DçéÚGÚ¸ûû»êâÒWºÄO{€tv¹~½ W]tûv¹¦áò/79™`¹æ¦DU¿k[Ôª„]?_ÅaWmco§g ;yOdþÙøÖ:ü¦¯Ü‚‡U‚—¶´›Ï4IQHð*Ü–Äù} Úb¶,gcY ¡,˦úrôš’$ÁúËë¸ú‹ùw!Ún×0 Mb˜çenS×J\z\¬{†“%|yá‡!^ùæ+¸{ç®Ú±£Üÿq#ì…Sw§Ž´”åx–ò´°C:1L×—Û:ÑP¦wÿx´”í°Œ]‡/…(ŒpûýÛˆ¢abãÕ \ùéð¸ûêçW –UH@×sÇýx ±Š-Ê®ãšÇÔm)WQNÀK©ä¸ö‘6„§Î[í¶ÖÖ•Û£D ÙÙ@1ìÒT£.ÝËbÙo8vC‚Y²›øì(÷nö½Ó5P”‹`Y‰²i^Q1ZQÇÒ´PSd÷ÇËRL¹­ õxÜ•kñ>$Í:¼¦‡0œ}‡«I±ùnVò#³zgÛ½}ÈY÷¬cÏa3Äê?¬âÂë°z|áÃÿå".|?OBÒ]Ï|ß/¶GuŠ*,< x"@ò(AÇftã@ïëL”µ¥¬{_ÏÓ„§sß9‡óÿrÞtŠ‹û1ÚGÚhÉ&ƒÙnëír$t]4ÄÀŤ„Ê}€TMw˜6[œv3 ,p;Ȳ+z/ûÞ‰ÈR”‹·ÿímxMAT[:ÛZ[Ê~µ»Ùda‹gQ´”Í— cÖ¥AH”(÷W”5vì9J#øMÕÓžrÕt´*Õ=·ŸnC4®þì*ÂB\|ó"¦ú\VþfEý.»Åžå(Ö÷êæ$öÜã–h!1ÜÃ.ºuÑét*-em>¢¬¹ôýKXûÊš²˜ûmtÿÚEk¹e\Ø…R¯mr$DÚÉ-éÄÉKúÚGÚu¼ÕKCÇÛifAÚ7Ey±¸øÆE¸MWe¥6Ec+õºÖ¬hZ)²’ŸrÏæa¹µõqtìZß×ÛéÇíÑ‹Î[ÿúÖ^^CøIˆðaˆèa{þ$RÍB¬Ø3€Ï%hh?ÙFûÓm\|ó"‚å+ŸYÿ„oš¿Ønh·™YŠMÕðDÿ¾M¸"k¢Ý¼ÁºÝ.îþñܟoQÖˆ¦Zs‡Å‹ }þZ#? Íqôm)7ÂäTØ#7õçèºð–=œÿ—ó3yopt„ÌÚ­ÏkÛ«B׫F”åZèi½—¢â*QNsK9–1$ÔñLlÙj“¸ˆ¸‡U¶¶äÌçn5ÃøÝæïEº½.Â84±çQuÏáÇažM/D¥(Û1üÊúÜrâŸÞŸ#LÝòNÆ(ÖÉIÈFpÚç·ëX5vÚӴ⼕iþ÷AfƒãyžêKÈ>@÷b6–‘mW ‡Øn;S"µ— VÊ]jYÊZ”Íô)[¬k]PοvžP½°ÝÃnnyY½Ä5·ß¿ øÂê€&LG«a#%ËÙÓÀ`€ïøfÔbáVOe‚´! L»TÝ&U ÕilÒœþÒis¼I‹¾9ì*€’GØaUAÙÓ ³›ÿü¯ÿœä[ #pÂÄ‚YtŒÛÍNxq¬Ÿ×o\Ç_Ý0Y¹¦ÎXë™ÇFo¯¿ÓJ±å$M ‘Å”çÏ'2©û7ÿkq,7M,c´›mcêf*&VYѤåw›¿Ã‰ã'òºg¯ØÖS‹3ܵå,n×Qqj™˜gb¬Ý¹LÂY”DK:êG¹…?Î÷¼r“닃¬dkã™ µŽl¬ç_ímî±}^%‰úŒZ¢¥ÜØðM"׎Î_;ü¢Ï×~>âÒÅìKk*Žþ2"d?Qp_btvuÔL¯j!™¨ÞÃrâlÅ8íD/m˜˜rš7ö1–Éc zUïwÎf:PŒu ˆ¡Ÿÿí;¹õ¬;ÉT np»è}Ø+$7™\ÝáÌñd*á»Vý®“?nÇôu¯iÓ‰-ë ½úÙUlþ÷æŽßûúËëð–³9ÞÞb˜Çž=†0 öBÜøõîDÚx\²Ê‚Xƹ¥¼› Ë Xçof¹ö«k»Z'Ù9ÏÊ&¤N‡!Úí¶µh[#Ðs=ǃ|$!…DÔTv+¬ÑŽã$Òè!÷%÷uœª˜`$£B¬Ùïða¸Ö2 bõúBC—ÞJv¶A[ÏzÎs"àC;²Y¢l»©í!•¥q™;Ù´ŸúÈÝÙY[Tá ¬|fe`^ô0Ö_^‡ðT]´hªÒ.ݳܬÃÜfç…멞í¾ïcãÕ t{ÝeâÛ%^^š]T:jt£t¤ —Œ}Qi‹rv^jKAãmÆ0í‹ì+d,Í´&»îuÔ™.I`9s ŠBŠ<æœ}ÙÙó–‡îÏê• X 4Ö—²@±ŽÈÜÛ}‰«?›ÿ©R#Ñ×øeOŘ–Ûí;·ñ…Ï}qÃC^òfïOïG1í7¼éPÜ ÅWÜÔû±Kƒ|á#aÁý=Œµ¯¬Qm-·TY3ëWe rÁä$i–m.³vWdíù¾Œ}$ýD¹°‘‰´d"s•31®8—st Y"gß²ù Ó¨{„L’ð“PõDÎæèV (qþ¬÷pf!˜ðŽ„y\goÇRÝʾ•EB‰’•]]p–,h“åšÅe,KwQÑS˜ôû{3µ$‡sËØÎ*6à!.’ôt.¿éÃu\3Éj¾vÁ½‹ìõ¥În TûIíÆú××Ñ>ÒFð©­V nÓUC$„0‰o^ÓS nžÈJÇ|â°€ÿ„¸Pé²&,žç!hh}ª…Χ;Øxmc¬ÏéÆ;7,Û$MÔù™ªóSŸÇúœšõŸ–D¹\= Û”’™Aa&ûŠ8ŽxFýhìò£õW×M¢K’$·³nÓ(¥¤%¶ý¢ÛÏ|)ZÏËTšýDý²/EÙm¬nïwï/¬ Û`_”<’æ3Ùiý«îÂ6,G@Ç–íÇD>ªÐË‚ˆ¦0õÏ…æ2 u¾b “Xë/¯£Ýnà <Ë™ïí e=ë1‰ºdL4…™n,ð„‡–×R=ÜýÀŒhÔâì/ûè´;¸øæÅ±>«K?º4ᬱÏWY<_ XnoûVJ $êoêìWÏŽù$“ÀYô€„Ø\ûå5¬>¿Šè‘ʶâh ö8Œµ—×pí—× èQ1Æ,ûÊÂJœ$Ÿ•=X%OÙ…€©OÎÜס •?ÊE9îÇj¼áÇ‹?¼âÆ;7pôÙ£ª÷¸@?§¾˱ܩº”¬œ}m IR[.´/µÛyf®°=(CBšßÛÝ;wËI’˜‹§ÏYï~ò…“è<ÛQ]°²zjý£ËÃD³"AÍéÄ¥›Ýèö P%uBo-G Ú€ÀØÓœîÿõ>:Ÿî rÔùªcÍ:ÛÏ{Xç8}Qà9Þ@®Ž G2B Uª—‰þ¸}A®þì*6^Û@mH‘ÅšÓÜcã ÏÄÖ'i»í¦UOo_L†Ÿ„è}ØCØ qîõsã-†L ~•8¯ìdø9x1È:: |•²víúÍË?¼Œsß>™J{æ"DʽڇúÒË,géHSXCCê—m÷u,cs·¥2óÈ¥\Â[ÿú–±…* à ÷0d I¢0XÁÔÍ>NÔe-å‹y›:Ý$IL— kHTZŽ¢) RaJµLo‡Te#¯~nÕ Œ€Pm0]×Jø²›{ Ø¥<ÿØnº‚¦zߺýhËi¡‡žr­7ݱ­æî‡]“Oh9-sü8‹çkvQA]¬D2»hÉ,åXÆH%è~ÜE¯×Ã…×·?>™ÅÊtˆ+ nзí#m1â›YÉZLG t‘`_< Ü–Ké ëOœ¾çãüwÏãÒ.mû™ßøõ œùÒséŪK'Â%"QÍW² ]W_8_S ì)aïv»>+ÈNp‚'{îXÝëIYx)ÄdÎ~C‰³îm¾´iܬ®psw^¦¥Qª,¾sßT±µÿ¼ùŸªcÁoúˆ›±ù²3m#­D¯rÉI‡±D·ÛÅÕ_,x­ò\úþ%œÿîy ´·ÍEŒþüµ&ý¬m¥,v@ÓŸc’fØtvw)ÆlDMZ¢m…-´e¨Kç˜6¡¦s˜Õ©MÏ1NÒk_^Ãõ__ÇѧšØ²pT²-Êå:í‚8[–¾qc[ntãf¶›‘dî~í*žòwTXdýåu$Ë â8†çyˆDvÞŠØLýr×·>O£8ÂÙ¯1ûzpDSàwÿïwøÂß¡îµ ÅvYÓj&;áì7Îâ­¿…öÓm5E ¬M]®ã|¬bpÇž=†[ïÝ‚çyª …£îv¥±÷+¥ãèa´¯bÉãpé—pþµóHd‚ ˜ÆÙ€L´åVè„–?GÓµœ• 1ó·ì0Eëɺé"’QÑ} ä dYok-ºÁ‘8d•nYÙý&ÐŽ!—çAg–¸¡ÔÔD·iµEÝnâ5=DÍhl«Y£/þÖ_^GôIá ôÜ<á¡›-a™Jº¬çg’ ܧ Å—ì–W¾ý .¿yÞ²ª?MåŽ6tIŒíÖÚ ÝiwF!â^¬,‘¦‡¥2«GvØ ÕT¡}’q½.ýè6¾µa,7]÷‹Ã0GewêÅ7.âÊO¯@¤y‰•q[kwöãÄô·ÝÏh?o)éÂ5ÙáúâÌŒ–´DÚ.Öþy @î²6MJD>Z·5DzXò@Æ¿e‘Û‰_nsÝËÛrß'Ëâ‡1Ö_^ß±·ÅÞ~í+k…ç®ý’}¯çGJ‰—μT÷:Æ‚É^d·œ{ý6¾µžß3-ųvCËT"z!ü(D÷ãîH«WøÓîD¢¸ò“+ª§tS˜f¾—Ç:íºo×qö‚ ©ÄRh°ÝÜp`¦I•-ç^¿gD_[Â+»‚;ÿsG¹‘¥UÂe‰5 ^só›‚À´Í„“•`e½·Ål_4 3rJâlœØ#S™O½ÊÞ‡{HM9ó–=È¿î­r†B¼X8qãæÝĉã'ê^ËPÆ-ÒÛѪ&Uè,èõ¯gÓ€²T»îXIêãq…v'¶å¶ñê¦ò4ØCáÇaá³>ùÂÉ¢¥Yª»°Z<.º·uB7Ô~ŽÿÝqH)qï÷÷”»Ù` ËÍÜëõÔöY»O»™ˆÙoUvø(œâí@É–ŽIëfôdOÅÄ›rìvdà\þáe¬¿º^÷:*%´í'Û²> Ûª¦@“*ìAk/g.>m¹ÉäÀŃgɸÙè:¦,¥jcÄY7uÑÙØiT¬Ï}1¶ç!šzè<ÛQ`±òˆh‹X:×uÁ‘@‰yZ`Å´;ÝL/ÛaHp WÖ LßzÂC˜„žàÈņsîÛçÌ”’ybÛxòÒ’º­ØF¿Ž1i²×~Á/¼ydóÝM¬>¿ª²ˆ%T3Ûb¹û×.¥‚ó}Ve» ¥™˜õ@w»Ø|WÍa>þwÇ‘8‰ê¤¥³·³_úbÀd‡Wôô;‹»s©0ïW»éÉÁ¢Ñ~º)›¶Ô¶vmom˹ Ƥ Y\6ßÝD[ÓJS»ÊM_ªîëæfÊR–¦ëÊã86¢ wþçîü÷¼.=Mò‹îÍb‚Ú®°Ã(z^4òi]:1Ž,œíûBH]$”Õëyªó–mDѲdm‘´-js_[ÊY}óæ{›CŽœ'Žê‘ídåN_»aH ]-Åf5äÀиûÇ»séÊEW[ÓKK1fBÈþáÎî Š"e9÷óQž2•ÅR7 ZÊÚB¶ÛtÆ2FÜG~ïépf°ƒ,vèPÕ]S²˜íÑ¡ùøLr°˜ËyÌU.èòýn÷A.ÐC`Œ™ÅçÞÿÞSã1? Í ¤Ÿçd—nmËS‹«Ý³;IÜùŸ;CY嬾ÝÎß³¥¬Ñâne››¦5ú&^,Éì¹ub—³«wÚ`„¢LÈþáÞÿÞÙ:£úp»®™cl:‚!ïíÂj³š¥ªGù­ÿ{k¬ãE2R=¾u=»Œàò;±SÓ«Ûr«MZ¼Õ–¿=p"I3\…,æV˜bvµf\Á¥(²8ýÅÓ€{în¿[‰q¢3èª8ŽMj›îG]ÜÿÓý!{®ææ;7±ñêFngÇtïn7Ý[©Ô@³ä¹îÕ^JŽ(>ÏŒSþD ™}ŒÕ6óä '•Õœª#åÞç:|ï÷ötH «öÓ\üå¡|ú“nû)šÅQŽc¡-eY_32Óê¾h9@dï8Ö¿s …—ƒ‹Ý³Ú…«,Ë$Âêó«&ÁkÒm'¯þô*.¿yY –ÈDß}œ¬,ÜÚîìí¾Om÷5¬:k[¤ç⼓dЀƒ±r×I•[›²ÿ9ýÅÓê?YiÜ’›76ß^ö´ν~ÎĘ¥Ìn³¬ï$MTu6Ùß2_×¶¥œcË: È-ç¨Uì„ìwÇ‹“\0,c›Ö4!û'¯ö…¯2£­,i™Jt?˜^Ù¤ìEÔLÃ*‰°i+KPm)ë,o]‡Ñ#•¨öB¼òÍW¦ö¾ÈüâØMü…²8S” Ù¿˜^ÕzT#P,eš2ç¾s—ß¼¬F2–bÍz¾³Î 7ni¨Þ×zê•Æ®»¶n$i¢Ä8 ?Œ>¤(dX}~µîuìŠ1!ûí Â* [‹qfPÜ~ÿöÔ×!„@øqˆàH)²Xs*!d>j2ég½º5P…Ýe‹Y—ti±6¢Ü FaÕ2ÈÁ€ÛwnãhçhÝk!„"™[× Kd‰QVg¬ûì¬j7¼òíW°þê:$$Úh+·ú!߈²™çœuÓâ,«É 0˜­Eù“q¬D9ú$bÂ×§±ò7+{ï^C!S }È-vÆšqîêO¯" Ct?ì"îňEC;鄱$MÔ™·Õ‰búV·¥(Ç1‚VP÷:!¤€ÉÆÎìá¨) ·4']"µÝ»ê‚à1ÐJ[ˆE Ïó „€ëºÆ‚F?ëL[–1rKÙ$¥Ò¸¯£O"\úE™Žh Äg“•]ΦÞ.N„#L¶+Ts.¢4*$NÍ’[¿Q-=×_^G’&ð}QÁ÷|!à5=$"ïHT‹±€0VsØ qî;çfþ^Èü⸮‹(š~­\•ÈíEøÆ}]Um .! €騳±Ó<;–õ–x^ýÅUœùòÄý^ÓC«ÛHDp=±ˆóNdå0G­óÝÍ™[üd1p€é÷b&„eÑÔÿ¯R½}yŸú¹½Š<Å›ùáú\G«Õ­ßÜʳ±“\Ü®þòj­k¼ñ«æÿë__G$"øM"Å^ØV½µpνN똌ÆÙxmc®ê˜G d•XŽ3uÊÞ†‚KÈü£c¶kßXÃõ×U66¬lì9›Q|õgùEÂÚWÖŒ(ëiW×~E˘ŒsîÛçæJ˜«„wRû%ÊoBêåÌ?Y˜B@¿éãÂëÌô¨¨áʯԼÒÑÐ=MöÊŒ¯˜ ãˆ.E™Ù²ñÚ|á«ÎYPó”vŽšN_úVö••,¥ÄÚ?¯áØñcu/©á„[l)¾„ÔËÚWÖÐZnÁõ]´–[…XlËi)Kù°¯ê—›Ù€ªxFm8 ©çÂ÷.àA÷–––¦vab8Ž@RD Y|N¾pÁrÏóà?á«[Ï7}°uÇ,Ûí6]ó\a>ñcÎ'&ûçÏ÷ÿ¬¦§L™ª©Pã®ýºQÛ酪V3!³¥ódž š*v,„€h ¸pC8¤ê}å# qD7¶-Îwþû6¾µ+?™ïX3!»Å™¥kh;!–ø5¬ÔjœýŽŠ'ïf„qþ»çáVnkW¸MÕfÓoú®gSR žåøq+­5 QÏ'N"´ZÊÝ}þ_ÎãÒ÷Ù)‹ì?œ£+Gñç?þ¹îuBö!k_YCð›> ¯™µ¯<ìªNYBÅý¦Jóá#IS÷{ÿO÷Mê(Qâì/ûJà…­dmæSIDATÀå7/³.˜ì;œi'„lVVVL»Jc)öMYO‚øÂ#Ênª²´…Pí+¨Ž_TOj!öBœþÒiÜ|çfÍï”Éál=Þª{ „}ÈÅ7/*1nªìj×ÍÜØÙÄ([”õ}æ Ïtø’RÂ.™ %ZˆpèQ)%Ž={ŒÂLö¥CK¨š™2 ÎüÓ5ªÑq(k7¶±”…[¬WvÔ)}«ó„§¶oºÆ®E]4<ÏÃÆ·6j|·„L§ýdþ~Ýë „ì#ŽvŽuÞ²áäS¢l Y=€¼d ÅÞÒö­ë¸HœÜ½í5=D;Ïï0²h$’5„ɱñ­ Õ$DøJ|‹á¢ì Ÿ·,,Q†5•)óè‰lC³¡îûM¢)h5“}CãþïO}º!äà`ÜÕ&áËu,1-¹¯õ0hI<^z½Ž[žÊü^{y­ž7MÈiœøÜ‰ÜD!{`ýÕu¸‡UìØÜCª¬)I3Ï\š[ºÆbÖ9.å\—l3Ýj˹dq '»8,̾ YdQ?âÉL™ÂɧB鳄4³Ý~³R”·-f+›[Xâï¸hy-•\~—‘ŧ,&fC!{AJkd£ðMÌØ¶˜%¼]5H6Ø¢ †\¤õþáªm}ÏWu΄,8 ý‡D!“@ k&â “e]°˜±Ãg…˜2J·™Å,×uYöIö Ž·ìáÄs'pÿ/÷ë^ËØ”‡ahØçšz‘RšŒjmñzާæ-—ÄylÊÓ§œÇŒ3¦Q?O&¤™@¦Ñ£ Ï töÚ ©º1bœ•xÆ26#!e*óX6! L£ótgîcÌ;ü û rþ3!dʤ0Ó L„riÓ.öYh2’‰t"Õª$IŠÇ#dÁi´?݆ïÍo;»Š2!¤>n¼sx ÄýI’ îÇ€DaÞ²vKÞ>ÍÝÖ²¯nuv,cH)qã×7¦ð®™-`9@ÛoY{eZ̞̈́HFƒ–sŠ<) ØYŒ¹ìÆ.ßJY°¤ Yt¾wÇ?{¼îuBö W~tEÅš¥4£#)Ë9é±Ñ¢,‹±åD*÷µvcG2Â…ï]˜ð;!¤¾w§þñTÝë`k¹ýdí'Û#·¡œ°-åDñ4KŒ-ÐC-eíÖN%³±É¾¢ñâé±ò7+u¯cw,-©BÈ\qög•ÕÜW™Ò:Ö÷U,8îÇ}©bÅU"]Ž)—o¥Ê–R"Š#¼ôÕ—jx—„L‡ÆÖã­…tµuìxkk[«™2{z½žO¨•ÈQ_¹·u–¾5nn-ÊrP”u{OÙ—ˆÂa/D¯×«û­2Q›ïoâÞîսީÁä/BêáÂ÷.àÏý³‰5#Í-椟F¤µå¬-icYÇê~Ôô„±ânØEø0Dï£ÞB„Œ¢ÑþTaÖ½ŽÓÕ±ã¥%t?ìVn£E™âLH=\úþ%ܽwW%~=ÊKdªÄ)ôUS’XÝÝQ?Ê-l-Ö±D†ˆFJ”¿OQ&ûçÂæ²Ì@—:JÞêŽxN¿Ö¾Õû%„ÌŽK?¸„×6pbå<¨ͦçuª†èȾ,Ìm.gaë[-Êݰ‹Kß¿TÏ"dÊ8½^Çÿnÿ•K•˜‚LH}\ùÑà[@§ÓßôáypQ–ýj1N«’¨8Ž)Êä@à$I‚Íw7ë^G%ãXÍ£`×0Bæ‡+?¹‚õ—×´_ ðOÀó<¸©«,h)Ǩ´œÃ^ˆW¾ùJo™àè«Ôye¯âL™®þâ*`ýë눚|߇ðü¦$UÓ¡’TˆÔâ|ökgë\2!3Ç‘RÎmKNÍNÅ™ñdB曫?»jþ¿þõuÓ4Dç»\ûåµVEÈ|àH)ÑíVg5Ïã$pQ Ym—q=ªÑˆýÜvÛ ƒß„BêÄP›Å\%ž{i¿9îëv#Ø„BÈ,h¸‡Ý¼Þ &Àv‡/½}k?^õب×ìf=„BÈ,i$’º×°-eÑÔ÷Ë"®ÑÛ6E™BÈ<àíEÔê^ÇH¦9[™¢L!džpüõâ8†ÿ„_÷ZfE™BȼÑòaä Š2!„y¤Ñ{ØCëHkæG0÷š=MQ&„2¯8Ðý°žyÌUâ<Ž`Ž3›Ø]-3›BH8Á§„Õ7]j;!–ø5¬ÔjœýR| !„Ì+ !Ö¿±^÷:!„‚L˜¯þëÕº×A!„ÛïÝFÏw3!„rPpêhÇI!„jŽ|$„Bæ‡FÝ „BH…™B™#Œ1B!ó-fB!dŽhG@4EÝë „BGJ º³ !„ù@¹²Y2E!„ÌNò8©{ SÁžÅ¡„B§î솈.E™BÈ"¡„yA\ÙZ·¶òÇ––†ÏeÖs›)΄B…†{È­{ cñTû)lmE€y̶¢ZÊ„B“¸î|‹³eÍÒRñù¥¥jqr«™BYœV«ßóë^ÇŽ¨²š !„ý@#hs]Ç\¶–G1Ìj&„BçÞŸî-Lò—F»®‡Ý'„B•FEH’ù­e~Ð}0SÞÚRb¬´(/-1é‹BÈbÓ@ Ÿ ê^ÇŽÑÙØÛYÊ,—"„²H4d*qÿþýº×1’*«¹LÙZf¬™BÈ"²0cµ8W•J saÓZ&„²h,Tç/-²ºÛ—ýØ0(΄B gQDÙf¡¥BYDÆ•M!„æzºÔnF7rÜ#!„E¦`®;;XŠ1!„Efî]ÙzÅ8åOz;Š3!„EÅ™gkY ¬¾ÝNœmA¦8BYDæ:Æ\†bK!d¿3÷®lB!ä ÑB,LƒB!d¿Ó@ŠshB!û—ÆÕ_\…çyu¯ƒB!ç¿{qOt§ºlÉþÙÉk'¹Ý¸¯³gB!d8½^o*1ærõ¼ÔëºèòˆÈyX!„Ò@ ˆ¦˜ù«¬iýÿòc»Ýn·hñ.¯—âM!dÚ4 Š£™T‹œþÑ"XÕPd/Û ÃÞ†‚K!dž˜Z>vYw#~ÓÌ*—ö°ç)Þ„Bf…“¤ÉTv\Žáî–i%ƒ#ºeB!³Æ –„éd·W•¤5ê»Ù/Å—BÈ<цû®óËš!„,*N¢\NÐVZUµmÝŽÚnUÖ1­fB!óÂT’¿ª®J Çyí°ûãîoœµíæqB!d4Ø'›B™×q!¼Ù7!„BÈ N§ƒèálŒB!¤šÆÝ{wë^!„B2u/€B!9Ž¿ìs3!„2'4^úç—Ðëõê^!„B4~{ó·HätúeB!dg4Àoúu¯ƒB!È„Y4YÇL!„Ì ™JÄq\÷:!„ÀŽ@§Ó©{c3lr{ZBÙ8q?FïáügekA&ÀÛ=O!„,Žì˺װ-ãŒd´GAÚ÷ !„E¢I:¿åR;“\5Ÿ™BYÔÐÇ´æU a˜(Û¢K˘BÈ~ÂiµZsc®e-È[[ùcKKÕ®km5S¸ !„, ×uá5ç¿WöSí§°µUeæ1º® !„ì÷竎¹léjQE•8ÓZ&„²h4®ýÇ5´Z­º×16KK£ïB!‹Lãäó'AÝëJÙZ®reÛÿ§K›BÈ"£\ÙçË•=)(Ò„BÆé/žF†u¯c(º îêQ®ì¥¥ÁF#gB!‹DãÖ»· å|uÿÕ dkK °þ©J ³“ÇØl„BÈ"Ñ}‰DÎoç/`ÐjÖ%RÅzfĸüzB!dh¬<·™Î—Å ZºZœ«\Ù¶(kØ\„BÈ"âÄq<·-9ËÝ»ô­îöe?F!„ìœû¼_÷FRÕZs”sº!„EÆ9~ü8îüþNÝë‰íÖæ‡QûÝëg8îïd»¿ƒqÏaBgR;*[¨öħªÁîh·³|§mëcèýW­uœm¶Û¿þÿvÏ;›zœ}ŒúlGí{œ}”?ƒIý·[ó8Ÿ×$ÞÏ,ØÍ¹±Ý:·{ï;YÏ$?ÃÝþ^Ç=‡i5“Efl‹y;fý0­ãíeZÕ^޵ÓýMz»Ý²×ý×ýúÝî϶ڦa½ÍbòÙvûÛíñ&±ÎqþöÙ¯LÌbž$tQía³©É$Ë<ýg!œûyù}ÎË:™ÌÝØÇƒø¥7i†¹þfiiÏÓïqÒk©‡yz¿Ó`Þ_•+›ýÆ®\Ù³üc•ð³èl—€3ÉýNk»½îc¯ïw7¯ŸÄûÑ1Tûg’ÌâüÞË1&ñBªq„#ÆrhW%;˸ Uû.[{ÃÖ0êu»YÛ´Øîs冶µîaû÷3÷wPµrâÏvûØî\Úîxã|^“x?{¥ê÷î9ÉIEínE‰ODµU<¢ãæ&Ã;nŒæøÔ#>£‰‰yDï¹gäÜãÉÈQA ¢¨¼¤¡!A" ‚‚¶Ðï½5¿ïþ1«jÕZ{í¦iiw×o¬±w­ZU³æó7ó›ßœEÊ¿ ޽‚  t€9 TgmÉuÒ8¶ñó¬Æelêc«¾†Æy­n·F°û€æ³°$¨©ñiˆÓ™~óú¥á?hÜôú=Çyê5ñyx‘2si‰ïÍñ~Š –ÏŸÕ=”5¦ÕÉ=—ÅÞci˜‡ý·:œ!0z€MTlBø”Ú¾/ éþ zÐ Œ£‰ïMfÁß°é–Ë/Ûmµ{—e=,cãU­! }ôIEš$ÍŒÕàêx2©Ü$h6Šgù;àôœZ5šç,ÓN[šZ%)Rމ `.”'«À ÀÒ5¤ÇÒŒ]º%]Ð<ϱüo䨲ÙU]0ùãø×± Ddj•r–X‡ì)9õ{ZÙ-ùuÔÀH·2 ££L= ]HåïËÁÝEöÐ\TÒ‰t¥8Øž#Ü F¸8Fõšläÿd¦Õ!GUuî“uËø­ÆêÞT™«z5qœî*ë^U£–IÎD™‚åj]ùw‘ÁÿëÆ/|NÇÂ`¼: ¸á†Ö®][Šo¼±.r…ºûr¤6¢?ëlÜøµ…ù§}ø#_2;BÊ”•×;A§Ñá„ÔE)€³¬¦ôÄñ#n¦7ó½ÉÙ*békÝ$ImÄ3ÝSûlVcÙcOi¦qüë$(Ž™– EV5±:º@R•KÉ!KvðtÒ9YáÒUtàlÆ­º˜î$­Y¹SÿS%!Ö÷r²€öøµÙ1Œ +•Wu¤§úSÞ"LçÝcº UÕ`éCGÝëø¯NJÍDeg9-æéLât§Áêú¶<›WddðTŽM•e¹WeêB’u™¦ 6Ÿ¬ªçXŽŽ›LŠ]Ö×6{Ö鑯Έ#uðîNjà¶{¾§×ßð¯D±ôÑн—`{¾r¿~ñ‹_D=lLmܸñãù؃è}âªk¯N´eÆYr5p”•ípD‚NIªª9„+¹«ê—âî"t€¦P«ŽáBK„îU÷ tXªÒ¨¸ =ÃÜRuLMÈ Î²Û7¢·’¡Êo¶´âŽâ_«•:ÊĨ}WÉI¢Ã\HÓWxUÓœ”Qw–ue­¨b¬Âùأݓ'5/+®+“ÄÕsÓÈŠ¨(ž^¶Ãúb%#G $¤:HÉIÚ‡ mÞÌÿ±çÖOA™ç£R’:ÂcਠëLbYÖÕhÒ´øD3.³K.ÆRŠ×ÒÆˆ)ÜñŽJYuJ´ÑyZÊf† fÜ#;H•穦0G­=YçÐÔ·¹GdÊåX¿µ””ëšY©Ê…cá¤[«V=î.tÔ2â ±k)ço<Ë fœZ9¾úÕ¯&yþù£[–¡ì6lØ "Í[é–tš?¼öµ¯=묳MÕ3U©ÙæÍ7¥[D AªJÉjü(¯‰n*‰Î²Ñ–úÂIPiõpÂ²é§ T`Êœ_’FÂ=µý12&«q;Kj`‡h4ªia&I¤¨xzB<¢¤!#éVV/’t©Ø¼¬dDýܦœñ±Ð@”ÅŒJ>¤„MF*åØHx–±’¥IP¤YŽë_CcÀ¢•n%»VÕ·*(©ã(+€N¡¡—2)Ð292 §ÙVQ5îµÜi V±ªA•·êº4T…*ñu¹Ë(KGH#%Óø@@GDU4ÄóH–:ˆŒFÝ•„oˆÊ±ÈìÝR¤—AUDYž—jðæ¨é´Ê±ºõ¯Uq³$¨2X÷¤ëlŸ22%½1n4#*™h.$ Ù¥nL@jÉwÎ>ûlì6mÚ´víÚn¸á!ݲnݺ½¼%5´ë®»nݺu×_}:9Fj7n|³JíÊšÝI2PÇl%VSXC¥`ð̪Z½ EWú,‘§ž­,uar:idßÝ.I`— H¤à褮,TN5›ç¥ oTXE6uàÀ˜É„Föw7̃y1”¿‚>6Èò£qr8PUì:›-ÄÃŒM&IÖõ»9$áTs[H¥c%Ë®ägR æQÅ“­Pà!™`Há4vyÓ ^óÔø0Љ‚¤—ÕŒˆÕ=_ŠwúÍO–ºŠ•ÒÄ ÐsjIÚ^ ÁÂsgÞH{9älæŠ,ÝSkmP@™^kk©Ë4ku]d™›,oÖ¼±¦2ûën HÆ6µSÅ$É<âI`Ör«QWÇŸ>eTán,1i$å¸ ¯êþ=u$UYxm³KE+“ò›6mšÌ%¸à‚ Ö­[·ô–=ˆµ /¼pê-ï)'nY¿~=G}R¯}ík½þ`Ð úƒ^Úñâ ÷Œg¬­û4Š‹@ªT¥„±ÕÒG2—Ì©FyVÜu×iyöã¶üð‡ Á²Ð»ë®Óòü®NçG÷Üõî, ¨ãa D©‚ ¢ATûpß]wœBOu±›ýôÎ;ß}çï¹ãöwu–<Ûžå;ºÙ–n¸íÎÛÞ¢JQ…($P‚Kð–gÊÏè¹U2,d»»Ù–ÙÎí·}ÿC¶©})À Tˆº¨3Hú@ e:VUaf`†Æ½dàÄ×Ih –¹1Ùn<F2þëMJa†ÌÝÒ½…¢«~wÔ77ì„jȉ ê9MXÒÔò "–ÃpWC@اDš8N#”F„î^++ãOA,‹‹ÕT€Á Ò2Ñ©ÇDÊB¹;“mW}óÌãžÿÁo|ëÜã~ë3Ñ‚ˆ]ùívDcSh²T˜ÐÀÈèÅ@Ø,¾èE]E¨be†KR[ ¢ pPÓC’†¬ÎÞ;¾öµ™—\v΋ÿ‡’öµËÎè$ムÅSêRN²ú4«-(NG=ØžPǪªa(ëjL ÎÒÙÒïŽÆà± Ç=4g-–ÚY &·—÷º)F(énZš«¤Ð]ƒÿe† U€#íhŸàZ¢.“É… Rš™3BÍeË))ŒSÕúõë§^sÝu×MÄ3Ýxá…~èCÚ´iSsÚpݺuguÖ† –†³oJíUšŒt©¤fƒÝ~Z7Û¢Ú—Ðÿáí§v:?êæwÿðŽ÷t:?ºãŽwÝqÇ»g:?ÍóŸÿàPÁí?ø¯Y¶ãÖï(d;n»íqÛ­ÿ]¥E½Nvßm·½ëß×÷o=-϶fÙŽ,Û‘ç÷ßrë©·Þrf–ݯ„“2tÆðX—#@ˆö]ºOyêG~ک怨CÁ%cƒN¶å–ïžÞÍïù÷ïž>“ß3“ýä–ïžÞɶ„0PÝ}ËÍïšÉo¹åæwÍä÷t³»oþ·S;Ù! DºO[û§Ç¬==¦; ƒNvÿwo:ýæ;­“ßýÝO›Í~<“ßsóM§Î„{nÞ|ê¿Ýxj'Û¢Ù åÄ%P3 YOâf¦¹¦3Y¾˜å[7ßðŽ›n8õ¦Mïìä[²0È “ýüÆïœºyÓ;n¸îm!ÛÖɶçÙ}›®{çŒÞ»ùÚwÎd?™É~²ùÚÓfÂýl˜âsÃ5§ÞpÍ;6]û¶\·v¶nøéõW¿³›ÝwíÕoËuk®÷_{õ;¾sÍ;¯»ê¹> Ú¯Õh;a[7lɳٽ9Ð ÛòlHÍ~ëŸ<îEï-jPhÉNZªËá·¯xk¦÷k(²P|û›o톟uÃŽo~ã}! Eî¿êo¿êo¿òŠÿœëö\·ûÐÉHi¼âëo-µøæåoíèý™¢1ý\·wÃýb6lé¹nWŠv^zâ§_ò²D‚ƒƒ)*U2h^Ê¥Rt¡’•†¢‚¤ªTETŸª¡JAÊã‘Ìl|D-U‚!Lʨ¤¡êó•Œ"3 xSà§c¨3@²RI‰¸Tb-$J)š$Þä$sÉ|Iž¤ÁSyV】èSTAƒ%=¤îÙ îñ;#™˜«9&MÇS û¬ÔÈj^M A”p"¨StgäáN£ ÓíBŠàÖ[þüÉGŸFôo¹õï~óÉgýÔ3nýÞG>úõª³"Ð~ê·}ï£O}ê)ª³480ø÷ïžóŒcþ/xpt¾÷Ý¿~Ú1Dò¦›Î=æéÿEe÷woþ's¨2Mä…G›K1 Á¢@)™TÑQ' aÌu7‰Í7þéÚµï¾ñ¦?à™ëßvÓMsÌ3ÿ Eð¯7ýÃ3ÖþþæÍÿàÀºõïÛ¼ùãëÖ}¤ð¢#Úu@‚ºnAì†Mg{ìiŽlÓõŸ¤#»ŒâºM?öØÿ",®Ûôçëžý—C…¸ÔN×^}êsŸû™XYɨһúª3Ž;îƒÉsíê«?òìßú;z¼æÊ?~ÞóÞM`ök>õ¼ç}PØWàÊ«Î}ÞóÞÕÕ#ðüçŸvÕÕñœßú+À®þÖáÛ Á‘]}å§^øÂ³”»(øÖ·Ï}á‹þDBçŠo¼ÿø½W°(°«¾õ×ÏyágJ= S¿ýõ33ߺâ³ÑqÅ|þ‹? dDW¤ Uu°Qa!‚<ì†ÏºS€,D¤@Ôáƒo\vÆ+N|—“îù׿ö±O<[‰ ½4)D¦»® $ˆ¸.,.û—3:„_»äo à«—¾ÿ„W|&z tTiކ-oäCC:©µi_À†Â’†±¼é¹èSœõÊ ®zÐTMXÖ:«¡¹’˜‡U1JvªÚn(R·óÆs+¥5¦±Ò|”×êÍ& [LÉõ'}_vØœ­¥Pm✸Ë9¡d±lÈŠ}¸q"ÿ¯»îºõëׯ_¿> ’uSµá¾(µ§?ãu‘¬:.&÷"ÍD•AéƒHs<ùè8Ltà2gXˆʼhVž‘UCd^4A…‘…¾WuQ„lGÐí ‡GõÔg¼3:D‚ªRéL&¨R‚8‘ìP¥ %¸ŽYÿѨ1`ݳߖz!*$dðÌg¿…Œxæ³?îºZ ‹š’¹¤ÙC¥Ñ\ÒÄEÇxäúcÿÔÔ…°þ¸OD]íP•ª'4— Ç>ï³f©Â@ÉDC º‹€ñÐBWèãŽ}þß‚9$üÖ >—IˆJdY/¨;ðÜ~*êîxá OKæ\U¦|Sí1 PBu·¨GâùÇrÈ5®‡¿èø¿dÈBÆ$4 T1øâÎ|ÉKÞà„þO'œðÇ¢PUUMÆ}²´7"€JÌC/φ¸ÌP 2S"“¾Šu%òÐ?éï»ä’…,õaÈBÑÕm—^rÚ‰¯ø‹BuÍT‚¾ü•ç¼ò•§xå+ÿo¯ÚpŽD]AHOf2dY­¤<ÎRlFkc™ä’ìw¥J dæÌ<ɨÚ% Qg††hb},B‘$©LQ•ý4£©Ý’ù¬l)âcö¾”†éÌ%sÍ$ÙC›R4©c dæ†JN–Fɦ!8˜©dZ›zÇ5 D2m|M6bN˜AU÷@j“k ×-ÁÞÜ‚jèºFþ)µ+¯½š•ŠˆH93"É\<è0Í «ª$c„Î͈æ@î¥CÀ ÑJ¯¢NÊ6ÕÒsúú? îH¢Œˆ  ³N£„Ä_p¸ƒ ©ÜjD˜¢¤É¢”QË©4 ¤P™/ hu£DóÔ‹SgSJóNEI#T†."‚€ªÕÔ¥dTÔŠA`NЧéÂ22ÉýB‰ V¦³æIP$ñoüI-T¢@€Î¦ÉxU-ý¿Bi÷¸ü럋ŽH¸C•’2€³`G0TñK¿úá iU”–¹„’Ù%—žÓ!¸ô«ÿ߸ø²?yɉ €@š ÓL:¬²L%g9é¤_rɇ_~Ò9_¾è½/ÅŸSçÈ„„ࢋÿ¦@2"i•E&ÃtBU!DsC7ˆ¸Nýò—Îì¸ðËÿÏ8ÿÂ3_ùš¿s¨ H«J4ˆ§ù»TCÇüf$eQò|oø©AÔÓjMe·´Æ/5$&y9î0áé ËÉÔê*t'&•&•g£"ž„”3¹V$÷1ËZ³§¡µãÍh9Aò»J?Xò¹³ŽM#Þ S gtRS¶Nsðiò¶ÎÙý€=ØïB#ëðÚ×¾öì³ÏÞó2©äпyóæd%!Õ„´€ A ²D¸Ð *‘(#ÑA*ýÊ1ùYj“^ž%ÏZÚÀ vÅw™§ì  u´ŸljB *ÉZŒÔ<È2œÄY §¥¤_SO@Ce&WáQ*,-Úé@åH‰ÐÀhem3AÈÜ}wÊÉ’žAú„‘LÓĵ Ož¿’Ÿp¨” LÅMdxD—¿yù{_rÂY…J·o\þ)g/ÊÆ@Ê"€A1â„ß?ð5ŽŒ\T'Sþ ‹ [/¾ä}/yÙ§E—÷åâHÐj¬§ÎÙ—žô—_¿èÔ^qúE}úå'Ù÷Ç@碉RžˆNT)afÍB!µënÊÝ)ŸE²lxõû8<"Sô© )y¶ó¼óÎxÕÉûÒ…ç¼î5gÁ $ÝŒ¢`wÃëþê+_xÇɯßy_üø†“Ïêau”¹4ß"É %°6ã7+}]oµòL^ÃdéÅ—:ŸÒ‹‚(驺@íãJŒ|lÜ]Ênq©ÓŒ5kÌÝE]”uay ¥2±WK©Ê9†ÔÇ4}+ÿ–Ñ´ƒ.e¨j•‚¤Akªì@s’¢ŒmòU”±ÅXU2Qñ)m8Z/Õe{ ˜==Ô·¾¦Öhõ8t¹{C“vÏ;'6û™Ú‰2­Qª” (6múÐn*’T¡tJ‹BÕ3;‚”â$D¡ž®€sN5˜ÉÕß9ó¹Ïý˜"DBCA®ºúo¬ D `PµˆF:+’Fæ–šzI&¦ˆBƒ ¢eô:î š& EºeŸ«êî‘@èД%÷äšR¥¨A¿qù“0Iøæï?þÅV4¥ƒ®Ð=ª›Iú‘C×\û_úîã_úYI¶¥»–ö–Ð¥#@$($Íà0 ý<€ÙEÿrê«Nú¤»[©T÷™¨:P8 @îè ×CÌeÎÑ!3–!7@2OVk¡:g6œü© /üЫ^ýQ×Õy*bŠ32;ï‹ï|íÉŸð5¯ûÔùçŸqòÉçºÌm8ùSœÎkOþu€ÉcTGÆn¸Î‚]ñ€2¸‡HPEÇ<åm\¬ìPRJ'ªV¯ð["Vµ"Œ/[ºä˜l±Éwºk^Š&VŽÓ)L)WÕQÊÚ਼À¤4ª¥•6²YŽÖ·Žˆ¦!Üê”ÖOIqúÈáŽ#òvŽ¢Ï䬛VE5z‚êWO•Z9†OˆÙ½™ÊÜöÆÜÖd4ŒóÚÔëdžŸ'Ÿ|ò‡>ô¡½Pj劧;)îtwaxæ±¹îú?…ãYÏ>÷;×~r(€hÈŒ€ÎG@‚‚Ñ×\û×ÏzÎ ‚A€k®ý̱Ç}pHhŒ8ö¸]sÍGRïyìsÿÊå°‚ Ï9îÏ®½æÝžóü|óŠP2‡<÷y»òÊsSE>îyå C3‘`ÉR+´+®xóñ/üSA7¤ˆ„ë*ÑAQÐ#`z€‚ Š©9‰d s Y¢(à OøÄ×¾þa/:þO¾ùµ?.³Äñ'œûÕË?àø—~zQ:v í²K~ïÄÿ¦@Ç¡tÈê—¼ìÓ_ûêé "ðÒ—ÿ¥êœ»œøòO]rÉÙ©$^vÒG¿rÉG_ñò'²Hec:  BêI¯úÔEŸ%N|åßRç“|ƒŠC#;iÃ_]|Ñi©6mxõ'¾ò•÷nxõßFG’j€ëÜ`˜¡g•³~ g iLcv·q“_:ß\Vؼ`´ˆ½\Ô…j‡Y6åGµ†ztÆÉ²kþJ -æ+E Öþ)unøè®ä¾Tº5·OœÄ´+—žYÎZÇñeüMŒ‘ÚùçŸܱÏ}H6µ´À"– Ä´—S›þÐ’X³:ŽÙÊ‘F$âµF95Ò¥(;›4‹$Ž™Òß§ÞÄ™3säI.³Ú„KÇ^I¾mõH2 QqA¦luš©¡*nÙd„„S¨¯ØðɯüËGR5|ù«þ :hA@»’HU02ÐêiµˆH ÖICZÒ2Q^m°B^‘Œ8’g¹—«×ë&E=­íªƒjäÉ:êÈé(¨¬úš–¸/u¹dcðeå:Ͳ Tc4|îe|k --ä-W,¸VµÉ’·Ÿ{D¨‰4ui.ÒG|ÚÆDÕn(I¬5†oõ²ð‘íid‡ZB%é¹âp*ãШDuöXÙ —A[#¯š{xµS€U«/šJ7jÚ‹©ÊÆ&w/€siû•ÝžÕeuµ@G·\ýõiTØxB9­[Ÿ™ ú–½™HÑØ´iÓ—¾ô¥½xâ‚É]:êeñ›ÆM )5'DDÔ¤ÚH*­äØŽ¥P*QÚ>Ž›c§Ç°ÑÌ!€²K'àeó¨w8xCéRØØ$¨<ñ+­Ün9‘_›¢ ä}Ù«ÿN.šÌs†…“QP‡ IDAT^ý9hŽr&«Ü2©Ê«`zæ6Bžòèqc¥=)7eóÒÒœ¤hŠêžÃ;9}F¶‡‰žã“t£ô–=Ç•K3è=–;Ó"Õ²jw‘jöÒAF©íHåSÓÊðªí—ÄQ‹ æS¼26•?L‹C]?¥žmI6ЦŠçh7¡i)*w™Jf\§{\B “æÿj6–Kò(šæo+î%sÉ•cÊn)šV7;`-5Q5Ýâî6lX»víÚµk— s)öpËr·aÆuëÖ5ì%&ûÿr\I¦ÕË‘ZŠ Qó°£îHÓÆreS‡ÉÉòÀX>ކ·°qe㉬·9*3¢¹n®¹oçDNMLÙ¤éðf¿6‘0¤¡æ´}tÝRYíô €5Žá\d5ŠJMFŠoo—þŽWîÄ0’!Õî»#f)»¢jø_I4'ì÷ÌnKµªÆ6¶‰có‚jCPœ MZm¬˜þzMÕÞh|õ©7‹¨ÏH½}„ Ô§•ÅXüÙŒ¿T™V>ª9„™¸f¹tQ^µ¡i:žx´/i™c¹JŽâO 6®&מñôÔGuyíÀ1‘ÞjÓÖiñI£Úe¼á”qßDäSr$³&II[í=Ò-SÇ’Ë 0÷ü”åîÂRRÛ¸q£xsó¿eíkN†/oüïýá]‘©O]r®ÎôëÉ´â¹53Ö³9Õ]räTÏȼ"‘ÔÞ¡J°Ü¦d˲:T»Ñ’lîLÛ<®]Êó´Ñ½¥ê¡¡l`ll0ˆ²uMøMÃİb¹2}»,4QîS¶Ä Rž)—‘c¹¿BÒ&™Ë]ciå½Ò’áØÄi$)õñ´xŽ«NšÍۗªñû’îÚÄ% kŸ5Œ|ÓÊãæ~yqRÚNºx3]#÷Êt™\’æË„ÕÃêÖÑáæÿí‚/ü/NvÞÆJœ—õêîÍkÆc;9°\;Zz}µòX]}Ýë^× ­$µ´’8>þáMKÛ4¸x¾äÅ+ÓiëÁ~]zÍÞï{óÜ=ß[cbúioâ³äšR=U¿Oh˜½ú[…¹/÷Ný[Ù¤öË߇%†“Jð‡r}¢t!›Jj¨Î/=.‹ÌÇ®è® XÖÏ~/ê¼[Yø ×/‡}h;ØsžùL¸•u??~\³nÊ<¤~ÉõML gêõÓ²m ©9òÐÉ4/‹æ!”Nj™ƒýùþ¡_NL­²åÉ%ÍUž?Ô¿¿È½SBÛÄSÿݘBUåÞ©Ç{OýZ©à=qÖº—XZ ö#¤æ3ËåO“CRe¯þ‘¬'PJÅ=„Y_¶ÉõÕR ã¯ôjJðÞðýÊÀÞõo4²Ô''°»À#‡‹÷õï(+ößS–Kï4,1ÃíeI-iðû (¯aªq¹oDÚÂwzŒ§Ú’õ¹šMšê²Æ^¼²7 ½) ¤ Vžê%{×L¹ëÑÂh<Ú²bo\«"4S_Öä&‘=¸¬y¨om^ÿP3ßÌL£'·hÑâ`Å£tˆ69û¹—YJ¦Žª–ýeE`ßÖ¸ëá}£u‹ýfßЗZÓ²ö¨Ä>+µÑ”-Z´xô`•ÚžUÆ/»FÛßJ³ÕhãXjfÞ{‡ƒGž˜<âØûÆð¨ µj«E‹û yrÈ>*µ•_¨³yþêѦA XšmþIÿkÞ;Œ÷ÅŸ_òsì{xr«ÑZü¢hI­Å2 «ÔYkÿ`íàÐa<ÄŠUÃÛZÌ'é4’$3¨{"5wg4¸G+ FÍÂ3»7.µp绋@DÀZµ?ZRk1‚̰€ÿøÛ¿<b?_Øb À|õ &"(bHH"7§€Ü!ÑY¸ 3’žçË~üSnþôw±XD“’l¡-F´¤Öb Ðã×~ç?n?b‡­Š¾`œÎ æEgr!H¡WÒÎH‘4שwÇ60îZ:°ßÑ™cÎ|Úü W~òJìpk­ÅÉ֥£Å$³ŠÃvXÄ!ΦκΊç®Eè€9™S»ÊœÒtˆ¡%µK @Ïüýg WE[å\ çDæUæ¨óÊ.™Ó;D‡Òé0stÀ.™£d·Ì¡`FdÂ\˜“¹X'Ú¬õì8tçÖÃv¬{÷zÌ9 -‹µxØÐ’ÚA™^âÊ(óØuø.e¾Ôh˜‡.™ Ì)Jæ`tèz‡ÒIÌEtR @d`^ê5餯2˜ëoYó³§¾ç)˜²Æº…êC¶<×b_Ð’Z‹ÒŒç Žyç1ƒ#†X—$Ó²ùLf”™#sddNæÊœÈ(¹h&Ì\¥£”L¨€‚ ‰×j½é9âL\\µ¸ýðÏ|çÓ1WZw›DÖδØ7´¤vPÁFŽ`Muæ•k…sX÷öµ»Ø58´ç Ð9 sA;45H„‚JS3uWw%„P@*é@I§‚* Òà50ÏÁÒí]Î ¶¬þùÑo?9¸³\ J­Xk±/hg?[¨ü*0ÁÅá‘ d—’KT0â.£Q)F# 4€’t sw‡fîié!æÑÍ݈Âb׆ ½°;CèÑ`‚J¦µb­Å> Uj659¾Ž<Å2¬;cí®#v³Ñƒx@IªPÅ…ŠHé’FRAÄ¥Dh` é;QU©‚ ÒQv”EGÒ6ÎÄgþþZÌŠvQA‹_­R;xQs™»×Ö´Ýs»wvwkPWª¸ Qˆ»âÂê^!ÅIwœÁ¼Cθw#ƒ¹GD‡‹ ˆíô> Ñ\\-t¤ð(ZF °n±{ÕNÌ}°h}q[üBhIí Â˜jp‡ 7,à™ïyÆöÎV‘´:*A‚¥:c’z..’¤¤ e¦ðÕ…¯)|aÖaÑÀ-³¸5ã#HŠÐÅ(ÈÀŒ1GÑ-¶/lò›ã{~‹÷jk_+ÙZì ZR;è‘ÖrâÂŽ¹mì€Ðé$!Nº •Ù^ÜÅI2 JI£Q—ˆnäšnx’£ãfÉÈ/pñÛHjºÝÕÝô¨ŽŒÈ`™ÙÌ ?;@Äà€·†‘ûˆ–ÔV8šÛÖrêneÕvGüÚêÅ΀Á!Îd7+·Jæ¦)NŠ ²²¯Aˆ™èqt`ßëp‡™!šE/Ó]€¸§A«!¦/©4±ôQuM¾lÀlOµØW´ýáArüÆÉ¿ÑËúÃ00Eš€¸iÌH•4ÈL“P¸0Í0P€}&bT“ •ñ­úêîî€{ƒ¤ÂMa™=ýÏhwÊÝO8xücZ¥¶ÂácÇcox*' è`Ww‡…"ñŽ ^Δ ¼üJQJЈ($Q²_Rnæ%]-ôìס 3èÅ;æøýŒ[œ¥B$éðæ_¡n™sr`ß‹—·´ø£?ú£5kÖzè¡1Æãp8|ûÛß>õÊæ(ÏôKKj!Jr)k¹àq/>j\”Ä_T:B‘zO¡²ŸOîNÂÝážZÑÏåþ‡ä™î.z"âÞ3‡Ï>ÉwÞÙ|n²™¥§‹H!u*<˜ÌÈrK¹f¼á oX³fÍêÕ«<òÈ£Ž:j~~>Ñ™™¥¿ÿüÏÿ</¿üòø‡hÞxðY-©ô Š,4 %”ôe¤PHqˆ$ÜH:bEpp¨úÎÞâÅ•ºŠJÐdõvþ*A‚;œpZÒk¥@ÝG\)"oÇžMœvÚi«W¯>ꨣ֬Y3;;;77—çy*¤Dg‰×ÞøÆ7¾þõ¯¿ì²Ë>ñ‰OèˆH´¤vЃ0šiL¢Ì…Fˆ¸WS0§æ1B„Pg’¥@«Ã‰ŠžpX\É!Eõ7d€Gx5>u'Ü wsÔ†7@`Y„¶65øøÇ?žXlvv¶y ªõüLú[S[úû†7¼áõ¯ýå—_þ¾÷½ï@'âÀ %µHs âT¸8 Q3²´²E£”îÉ Fsp¸!8BIÅ‚¾@ÜÝÌ pD§Íhâˆæ^ 2 ÒARôBoöÙÝÝ_í{ý¾Ñ‡3Î8ã°Ã«‰¬¦³ÙÙÙn·Û¤3UE5'#"îcì÷û‹‹‹/~ñ‹/»ì²—¼ä%:5-©µ¨æÅi¹€ˆ iʼn˜"NDq!Ý-µ¢dS3ºÏ†Ãû…#M†86ÈÀb‰íÔÝ8\¼ç‹žÔJíôÓO?üð× ´„N§ƒ‹5ÿ©ÈÊmÖ˜Ù¥—^ºuëÖSN9å@&éGKjLõ°‡ÓXв¡#ñ–bNeš ¥$Ÿ V¬D 3þ|w”<´,䈃nEÁ[ßúÖ#Ž8â°#ŸQÙÌÌÌÜÜ\·Ûít:!”³Óe„Ѩ³œ´6Kî‡ÈN¬™ ƒú§zãßx “÷¢%µƒ¬¼ÿE?2wd QQx4’P²H/› <š“B5š»‹ˆ8Ýfˆ‹„@ŒÑàî…Y4"baŒ@]ènf^˜ÌÀÐâ2´ƒpràMozÓÂÂÂêÕ«šÓM.«ÒD‡ªC`XI»<•ÝÆ¢êÖ¹¹Ý³³™ûB¯÷¹Ï}î÷~ï÷l2´nŽ+SÞÌ4éÞêî„Z?z/zÏ}n…›ÁÌ=Â#<:Œ^¸G˜¥¥p*ÛÇÂÜiס˜B¨½ €¡û,ˆ!¬ ‡æ³ù>tïG …ã ›ó<å”SºÝîš5kÖ¬Y377×ét²,[:Ë©ªõº´¨º ¸øôw®û!° @µop">Ù17÷o‡ò?ûY\³f~~~nnîÀ&óCKj= yÌeèÓÀÀ½g>0YˆGØ0z"Ý#†Dm´äNK3XcŒÅÐbô£G‹1Z­ˆˆÀÐãÐ04Xu˜õ}÷žÅžyŸÒïùÁEiÀÌÌÌG±fÍšN§“ø¨‰ ™æ*ƒ,Û ìþçußùùììÀ° *™Û*[»ÝŸ†°ñölévV2?????ÿ÷ÿ÷0™ZR[épY²mUñ£/ß=³c†‹Œ}ó>|ë» Ì#$FD«ôšy„ŽèŒ´$ÜJærDxÃ4É·ôk"2 éCbâCGßÑGù8úà.ê"aÑË?ßð†7,,,¬Y³¦v:KЬ9ˉj'é…êV`pÞ•W¾jý³ ã“È€»ïÎò;BøüÍ7¿øWÿÃa½þ¬h²ÍÍÎΰt>‚hmj= è!ßÑéÏö8π̘‹e…ÑI÷dœ'4­=D¬œ6…›—cOK¾´p3s‹ÑÄ¡±84DÇÐc4 Üz†>|à> ÷œ=è¢þôšŸT»C¦gZ'ÀÆv&5¯¡ñ \tůÁ ¶:îø2TÝ®º¸øºï¿þYÛ™ÂÔeYžçÝn÷À$ò‘E«ÔV8ãÔ7H•ME>~pátQ½oÒðžcè, dˆÍXáÖ>€ˆ!|àV¸ŽhfæÑ£Åh^¢ƒŠÑ†(ÅZßÑ7´¾Û>p !=Éwu0@raóGe­é$¼?pÊ)§~øáõ›H*E9}ø ~8ð{/xÁ‘Àa@nE *Ícïnþûu›þõÏúÀüHâ1ñZ=ÝßI;€h•ÚÁ wH(¢ùÐuW®3‚{p´ é%xF.¤ñM4ªŒT Ž´ÖÉÝÝét‹îðr Ý G Ý gA Ýún}ÇìÃûà¢Ên¿ûŠ»QpôÌ{@Ϲ(a·ê¢ ŠiIóájsKpݪ`Ûæ¤ ÌzàY_ >ÓDÓ>ê•#ônùÞÂ`Ø áîùùîl÷+ßýÞËŸðxÍ‚ªÖ¤†•»1QKj-@Ò££|G·˜-âLa1 {î¡hÒJÏ5ŒªbÒ\F] B¸¸;ÓÊ„ÂaUbýäÆAгÙ.½ Åþz;ÁÔ|Àß.ZV-ÊšžÍŸÒbu1r €°ØÞÉ·[€ ˜#3àwŸ~Ì϶wߺýöõë×áÞ{S°–ÔLÑIåMëiºàö‹~ðØ7i}0z`îÈ\¢;.¥7«Xa.."€iƒ\pq:Üa…{ð!X0&‘>¤ ,™Õ¬ïgO:»:è7ö‘|Ä jD¯5íeõä@š4 ô´"6ÆXR‹Òç§À=³s?èOæ€_žpàÀ‘‹½ÇîÞ½°ØëE«]Þ ißhIí`GÚÀÙî¬Ø=´dðM­Ø€¸Ñ™ö>SOÓ ®Hïcw1.t¡&ÛÛÐ1„EH/ŒC÷H+ÀBЋ>uGÖÝÙ½í+ßÇð@¾ꉱgóL’f ÁX?ÍÊÕc^yåÎÎaÝηnûþa½þãvïzç³ f‡”uH,OܵãÐÅ^ãÀ¢ˆìÚµki4V£¡%µƒÕ¾Þõ‰ˆ]t÷ã_óø~xn<’­ˆÚ¡š€V˜H¢0'iâé%íN#Õà(ÀèîDt°!$І4K0úΞ‡afËìíoG¯¶¦Õ¯2À~jkMaòæ7¿ùÈ#|Üã·jÕªz Ù»îºëœsÎÙ/Ïž™1›š»™Eró'#„"!M»¨ÅCEÿà¸ã@‡È.Ð…Ç+ËZœw}ñ»O;Fvl"½ŒozÓÊß®£%µFn@m˜Ç¡D/€ˆ#†ô.¤CfêâPФMâ.ÉÐ'ÅÜ<–‹¥<±pqzáˆ`„÷\zwÁ·A¶éíçWŒ6.ÓöŸzp÷·½ímkÖ¬yžðÄ'>qff¦(Šz_lw_³fÍç?ÿù;î¸ãÎ;ïܯ^øÕ¶%¥L+Š¢ßï§ÅžI—™Ya‘&1F¨ªÃn&3ÕGN¹ómµŠˆdî‡E§×[,â°ZͶÿÒòèAKj-£ôqûÅ·?á•OÚ0 "1 ð.µKæâ®âÉ–­tÞy ¸[tcQ®¦r¢Çèé«DõE‹;Ì·¹l%~îÔí‘À‡?üáÇ>ö± ‡rÈÌÌL=ÕXíˆ=L‹UÿøÇ?å)Oyò“Ÿü®w½«¾Á‡kÍ}2–¡ÚK£ßïçyž~Öv4’Æh,ÌXΘÕv·tosGM‘)ÌáphfîÞï÷·oßþ°DûQŽ–ÔZ4à@w_|÷ãŽ\Ñ Ö6}¶tÂðéŒ0SS'áRÍLÊÂÝ#,‚æV/5G„EH”8bѱݹ•ÙýÙ=_ýÉþpL›ê«qî¹çÖ\¶P¡¹t¼b·$ÙÜÌ;ì°£Ž:êâ‹/~ÙË^V†Yo˜ôp E2Æ8¨Ðï÷“—l“Ô8¾ ´vdCEÄÍw$¾s÷Z¿ß ;vìØ±cÇ]wÝõpÅüÑŒ–ÔZ,AvãÇÿòcdøß^úÄ݇î*¢ùÐ1C HÇ$S‡Ê˜¶™t‹Ña@4+¼òSsÓW°"ÚnÇ¢ëö ÷ë½—Þ‹^ñù°¾‘`©¯Æþá®Zµj‚Ô’ïëÄBËZ¸-.....0³K.¹dÛ¶m§œrÊÞi´òͪz™%u–¸¬Fò’m2š5ôZ:YE½ÃmÙ§Ä("i$›­ßïïØ±cûöí7Þxã>eç/ZRk±É¡3îºäGGžxdá}|è6´ØAè‚9L*¤^å:ª¤Ë<Œ^DiôhÞúÎ]”šíÌ~òµŸ ûkÜÙ”ioyË[~åW~eÕªUóóó äy>±;¶‰Æ, Ãb)ªƒö²üϾø…wÿÎ†bˆø ‰Ìôž”,ËBMFëõzõ[£jžRÕšÔ’Õ ÕØ³&µ”ð¢(—õz½áp¸k×®íÛ·ïØ±ã³Ÿýì/Û_´¤Öb%8îûÚ}G¼èð¢ˆ64]èЋ¡K—š7wzÚmÍÒÞDI¦¥Y°è:{Æ]Ô¡³3¿û›?ƈ F{¸¹­)ÓV¯^½jÕªæ¨3±ÛÄÆ>úY¶S•À‚ˆZìv»½ú³3[îé÷ï9dþ·7nüi«Å~Û¶#ö§=üÁ™.eòâââÌÌÌ„FK4—6ïNZŒd=´ EQÔãPK jý µLKxxröQ–ÔZL¢¤ƒ´ ÜLJ¯¹}ÇLLL2Ë}B h¹AᢻÁͽ܀("2i=F Cú¢q—b'~vå–äO{„>ßúÖ·þú¯ÿz=öLŒ–¨•?˽de'ðSà¢k¯ùƒgÛtC˜q¿ëæ›·v:ô1y̾ðÂÝy~X¿ÿéãŽÛçX¥´ŸwÞy¿ýÛ¿›É¦Öëõjj«mg‰°†Ãa2´Õ{¥…¢hXÖD¤6Ïõz½ô7É´mÛ¶=L9úhGKj-ö2üÿì½y˜TÕ™?þžsîVkW7 *`\QeÑ@̸¢qAÁ¸`2ß1cæ7¿¯33“d&“IòĘ˜Å—èLŒã†ÑhV3ŽÆ¨(‚‚ ¢(«4½UÕÝÏ9ß?Þ¾‡Ó·º[–¦7êóø”—êª[wýÜÏ»9ÿ ‡¬k½"öbG8”YÜæÄ Ä"’&AJ!¤ Èk$ ‰Fd*!U²ùùÍéµ@ôSÂ祗^zÈ!‡Œ5 Ûd;Žƒ‘Úæ‹1£›¾÷ö[™bÑh` 2\Œ‘üü#hqýæ¶–íÛ·¯mo¿íÿþãÿÿøc}²…¾ïÛ¶¼†Mì € Ñm¸_jQ©ø€ T*•ŽŽŽû·ë“ ü¨“Z½‚Â!󯇹€f‰s'æ 9‘•O­ò‰Ó0LfrNˆ0¨ÊÆŒJ“JJ9a¡¹ñÙ NòDyçZ éËb-”CmĈ‡v˜eY:¤ ÅŽð\¾âÔ¦<óö[Ï@€%Ö(~1€ó±œ8çyå0XkؾÁ€ôMë7Ù¡…:© %H)?ûÙÏ|ðÁGq„ã8*ߨØxçw¶´´´·····ÿô§?ÝÛ `@ìÄ”ÄJ©”vã–€*hìqYà÷´"ØCÙGë»Þ 3—%TovÛ7ù²ÀFåR’Ø mŒq)ßïœÜL)Kè¬ÛgÈ7ç¤ýl¦‹²f:1WÑÏ=°úS_ÁÄàb±xõÕW5ê»ßý®Rj:¯)“SÙ›øyÎù–-[n»í¶>:ŠCuRìøÁ~ÐÔÔÔÐÐP*•òù¼Ö­óšb·¦¦¦r¹ŒÔöo|c¯R“Œ;ç`?çÌdÌ2bI™h5ež’Wx²³(ý#îë´òêÑ÷Ôù‡½âHå~‚„àV$é¹È97˜?WøÉËK¶e2UÓ“ýhÕÊb5Á%³gΜ;ç¾¥K;,$eR8¾sưs’Ón‹3ý+3fÌÐ+R9çÿðÿð½ï}/Žc%ÓЬVf¦®Ô°܃>¸7Çm Njƒßþö·‹Å"Ò.(o±ò©bf\B‹Å¦¦¦ŽŽŽ¶¶¶ýèG/½ôÒ<°'?O€gx”åÌ¡Ììl“/%`-'I8‘.*ªØFëo(Q†º{¥EQ ß!/”A"ÖÎ=iF+$•¯6À DÑÌéÓ6 Qî¨-Íîúõ ú`Ÿ§M›fÛ¶Rj¶m#=ýýßÿý~ðß÷=ϳX–e†Ô Ø- ßýìg=ŠaÖÛ¶wÔIm€ÑËW*•tFËf³Ê™¢²Ô«Â÷ý0ô ‘R:RJj°l>‡ÙO÷ÜsÏ.oQ¢§€!ˆÔ¢Ô \ BJìA()*<ÁʤyIû®žµÓ¡zÎCÙåí·ß~û7¾ñ ô¦»®kš¦ò¯¡XCµ nPòÀª| @l) ,æ¹8šèºM_)»m;v¼ýþú&OͶmË1ÿüÌÓW_uM¡P@»Yøºë®‹¢è¹çž»é¦›æÏŸ¤O—øå/ÙûOìWŒuRp¤.8Åq·ß~{C$5åJ1~‹s„`×f&¥Ä&9cÆŒ™3gŽmÛ»ÑÁ•L懓P“0“rBH }Jɉ!HT¬š¸°bÜu]ÇqÇQt¦”Ÿ!f"|P)\»víØ±csAÀ|_47»ÍÍñÖmwé µ°“N:ɶmÌD{ä‘G®½öZ½oÇï¾ûîM7Ý‹/î«Ã2ìQ'µÁÕÚ°±±Qg´L&£î1Ýá ]Û4S)}´F%܉‹ÅâÌ™3mÛ¾å–[va0;ÿð²UÆ0"… ï”jTHîr^´Bw±Ëcÿ«ÏóÎ\×E™ƒtE’Ê"ƘaÊG‰~7ճ쭷Þ"„|øá‡ëÖ­{õÕWçÌ™ÓÑÑÑÒÒò‘¿Þm€5õÇqlÛ¶MDZ2¦iÞqÇû·‹Œ†9´wß}w_‘ýuRtR>üðÊÎðºæ(èÿ„¤+t`šÛ³Ù8޳vµªZFQdÛö±Ç{Þyç=ñĽÀ‚Ð ÀÔf`*—ƒR ‘Tx<¹mɶEQƒ Èe(…ðU=Tôå>”DBv€·ß~[Y÷‡~x¡PX¾|ùŠ+l{gUO„4úfÍšeY²­mÛx¾î¾ûnÜ€K.¹äæ›oÞ•¶Žû›Ëì#Q'µA‡Å‹ ”iØXBÏ·Òýßz¾•Ùj;¯<÷Ö[×NœØÇÈC*@†á¤I“v‰Ô€<ÃÁ"ÄÌ4bàR¤”\Êiìż*vº Ô·Í=¶mÛ6]©yž‡b é ù+lO†éª)ö;ï¼C»N¦”>öØcQuttŒ7Ný îìîîõ‰'žhk@¹­¢=BˆÛn»íùçŸß•U ’£=x°O¦a×±7À­ŽãèË©ºEý~€ÑvÛÙðÈúwZ[X& jÓ4ÇþùçôP˜pÖxžáÒÄdÀ:3Ôð® ˆô¥,KæÒA+ÓàÁt]×u]lÌíº.R˜Š„º<Ï ‚ç|„ jd‰b)%ÆæææÙ]›©í ³œuÖYjÕ™j:Iï |•RnÚ´©v D+¨£'Ô•Ú €zÎ?õÔS½p!o‚Æhàºàž7^?ã˜cW¼þz†Pà¶Þ`˶í Ž>úèÇü£¶b'æÙ, –I‘B‚’¤§I¤+Œ¶í¯O‹”A%¶oß®”.˜¦‰öfª‡axä•hÚ°aÃØ±c³Ù,!ä®»îRO)娱c‘’žyæ™n÷¸ãŽë´+3N&“ÉØ– /¼P±mÛ6]¦¥èLJ¹qãÆn ÏAul-ê¤6( .VýU¤”R Hkˆ BH+ÀSË^9sÚ‰ì0!®Êqœë¡0~üø .¸à׿þu÷ÛAán fS—˜˜&„” @9ã^Ì*ŽÒÌwÚƒ>ø…/|A7Bñ°Ð¤ËIê ôÃÎ ‚`Æ Q3æá‡VŒä`išmÛgžyæÖ­[u:餓,ËÂò&Çqœl “¯ˆ”rݺ7s¹\gˆ éÙ­œzBˆŽŽŽ¿üå/q´† ê¤6ˆðƒü@OÚÀ¡¶éˆgW¤ ð.ÀcK—-š~bð6tÆ!BJ‰·¨‘€1vä‘Gö¸À0,B,JLFmƒËXJ RvV*BÉ]Á*âATÁÞ~úÓŸþã?þ#c =Œ¾ï Û¶SÍÈtDQôŸÿùŸcÆŒA¤ëºÙl¶vÍ™LfüøñÈM/¿üòœ9sÇÐØÇ A•v£T˜®Ñpž²pñ|ðA¿¤a…:© \}õÕ$)½Fö®O݉†RF„Ü·båiÓ§aZEP5íªa,‹E±Lèµ1Æ,ËêQ¬ GŸyt»Ý&‹%2–D‚DJ Té Y[^Ú:˜j:¾ÿýï_wÝuªÏµïû8¦@'5J)N-ÀÉ&W]uÕm·Ý†•Iíííœó|>_{ ctmÛ Ø·¹L½¦¢ÕK–,ÉårÝž€®´ýdݾCÔ ºu¥¥ÌÏÔWÔ;¿¹&E¾a¼ŸÏ;ûá¥Ë0¥(\¢Ñ¢’!8­·-1 bPbQfR)9@g"$‘„rºBV 6î9˜që­·^uÕU¾ï#©yž—ÏçU‘¢Z­ê2æÏŸEÑ /¼€¤†¼fÝÜ2---¶m§èLu|ÔyMŔᩜ¢\.?÷Üsý~l†ê¤6X@µî¬µ®´ž¾e,š2¹@´lxîÝõ§NŸF„-Û@‘2Z+”‚ªo1S2I C B ©BÄ’ÅDV…ô†£!îºë®E‹¡Xó<õZ.—Ã#¯Ó™ž“Íf©!¯¡Q IxgÕªU¥RI™œ:©é%ˆÙ³g¯]»6%Ó”ºqãÆÚÍ&ƒ&Ef¨ NjƒJša;S=iC•òÔ"—T,J€`ŒëE"æ±¶rH’­Ýo„„§Ÿð@HNTD2"€<)‘.g.¾k¥Q{Õ­Ïqï½÷.\¸•šïû¸Ëå—é]gƒ ؼy3¶˜4i’ÎkÊŶbÅŠÆÆÆ”@C;Tu©¤”bxÏæ±ÇNÞ¼y3$aexnÞ¼yÒ¤I'NLUDÕmwQ'µÁ‚ÚP5€=‘š`%Ë€pP¥£IJ'Ž)bí–ÀuʤÍa÷!ÁÃF{s[ã˜FÏ $!D!`1“ mtû’æAÃT»‡‡~XJyñÅg2Ìmv4G>œïûzÛØÕ«Wyä‘\C>ŸõÕW‹Åb6›­u¥áh( „ÊbF#F#fJF@Òù¼‚Ñ0—RÊJ¥rÔQG…aÈ9?ÿüó?:í¦ŽžQ'µÁ‚”ŒB.Ãôw|íÖ›ƒ@ã%ÏØ¡_˜13Ãc’KÉõõB‚ ˆ¢¨Ö=§`2‹IÊüƆjɯld}âzÄs© \fÂL܇Cðv1î9è˜Yþ‘GQï\tÑEðè£öþŵk×À”)SÔÞxãl6‹^ÝêĦÛ*_bÓ,;N«mlæ,Ï`è¡TÀÛÏ?_^¾¢A„XƒE€àÜŠ“Rùºá¹g¨“Ú`:ÔdÒ(‚$Mr i Ù©áW¤”@#!ƒî²a9çìÅIdzÁt¢ ý€‹”QÂFŽåRWFœµ±ïí0; ˆúnÏIg:V¬X1yòdιišè’C{Sw¨6B\ÓèÈf1céªU‚R $bf™‘9'ŸT*#ʬÍÂd¶8¦ib•nÑö uR,À;¡\.cCªõÉAó³[±†÷ƒJtÒÙJJ"%Ñ?©¦xèkÐåÀ¬Y³˜I-fÙÜ1]3ã:¡,ÆG9Èɘ»ínqGqõª5ûì0 ¬\¹òØc-‹¹\Nå¦;ŠÝ€›vG6zˆç—xDisœw 0 Û0|BH‡†aÐ8Qõ¢ÊëøHÔÝ`¥´££#›Íf³Ùb±˜b4œÑ­_ë*p†2 z¢”bv•â»(аøR¼¦šÊ ƒšqŒÈ0¸auxgñ· ø•`ðÙ”ý ˲0lšâ²T ÍOü'†Á@BÀ0cÇñ˜á˜&~ŒRˆ"޵¥¡>÷ÜsŸ|òÉÞÑ!‰zAû`Á7ÞXN &©¡gjº-~8Õ$Gy¯…ëÖ­[¾|ùï~÷;=wA÷ù¾ÿ«_ýJÿi¥ÔT‚.æß«À¾ªfùý{`Ž=öXÕÞºŽÕ£ŠÚ#ãØ|kcÚѣ׌ýΨQΔ)­ŽÍ-3q;œb¯8Q¥ƒÔ±»¨+µA„r¹œÍf3™L.—+‹èÑW}r”XëvšPJׯ_Oijj ‚àOúÓ|°aÆE‹)™† ÐzÆŒzÍ©€*AImÍšýÚö=O-•K¨’ U €’¥lç­kÖuôѾÁ Ã²Ÿï½)cÇÖR”KŸ+êͺm×Q'µA„ï|ç;ÿñÿ‘ËåÝTèSeuà<4´et™†Þ´·ÞzKOGffJ¦…aøßÿýßÐ]ö“^Ñ­dš‚‚‡9\ý~T)”ŒÒhJêêÙ9B0.p­xÍ$RJé;™K¥ÆÆ&Kì´ý a•‰ «~«Îh»…:© .T*•r¹œËåP¬áÅ!ÌÆ`IK H²79çëÖ­S ò¥y-‚§Ÿ~zòäÉ®ë"¯õôÓ,©{W¤¦›Ÿg¨ÛžÐY*8€½ôè§Jé ‚ÛB'‘)£RJ#ŠKžß’‹a¥¤_{€:© .ÜtÓM_ÿú×s Ñ(¥žç‘¤I² $µ‰'nذC¸ž;âû~{{{[[ÛóÏ?ñÅû¾ë­·öôÓJ©aÃ~HbÈnÈh«W¯î§1¸‘’iú©ÑSsðBD‡i¾WÈ·Ú¶”’ ˜4q‡+Wޱ:eú  å°«cP'µIúÒ¨wÐöD”J%l˜£[4ŠzP²¡mØÞÞ®F £€ã8jÌíƒ>xê©§ö´³fÍR¦“ÔÉÍV·=t¥†Ö¢:)Äpô¿*¶:ì°ÃZ,‹âÄüÕ+K¾orAj:¯è5Uuìê¤6À¨u—|ÿûßÿÚ×¾–Ëå°7v4D9 Zª£¡býúõ“'O&„ÜyçúýÏçÕØ¤?ýéO=m†¾6eu*^ÃZȺí‰Ð‡jíÒ—-Ud ²äe‹Q\(b“ Å©³ú ×udï†ê¤6Q.—Ñðt]·T*¡ª+5d7ECq¯_¿>—Ëýå/Ñ k¹\ƒ§hT¦0{ölÛ¶¥”jÐu\.`u÷o¼¡qÉ)ò§s©ÆèhÃeQŠb¥Ýð¯XÑŽë”]‹@ÚÚÚ`ÿ>È{Œ:© Füð‡?¼êª«Ô@”§‹5ÔÐÀ\¿~}>Ÿ¯T*ù|^­G9°s¹¡3f̨V«ØK[NÛ¶½qãÆ|>¯¸2N&QAÂnÝÚžûí͆قè@¨ì ݳˆJ)–Öé,!µX!åÎ÷'~¶··ÃžŽªÚÏQ'µAŠ»îº ¾øÅ/º®[­V«ÕjCC¶BÓÅê¯8Ž/¿üò'žx¢µµÛ¦ÖfÛv.—{ï½÷Ç) ˜ ‡­"Q£¡=k†îGS¼†×þ>ƒzëEjJ )ã´3ݸ”;ËÕº2š@­ÆygÁ¯jyÞÿ¶Îh»…:© jüä'?ù»¿û;ïæºnCCƒ>4;©Ž†3fÌxã7ÞÿýÑ£G§Öóúë¯g2™qãÆa}˲Tò‡Læ(b4]¦Õj ªáKZKê©¶(Ö,Px`e×dæ¤hWª`NÇØ˜·Z­^rÉ%>øàïêÐDÔ;î¾ûîK/½´š§‚B”í£¨-ŽãÑ£G¯X±Â²¬ÆFlØëÖ­³,«¡¡AŸ)¥R¨ˆVœˆP~7ÝŠ¢hĈtÖ¬Y3uêT¦•y¨üÁÎ YÐt®Êˆ–5PÕoêTbáGkkëèÑ£/»ì²_þò—¹«CuRøÕ¯~uþùç»®[.—[ZZr¹œê¼ª3-P¬¸5.m¿”‰DYºt)v›Pɺˆ#„`e„ N9å”;vÔˤ†aH)­V«(Ù”XƒD¦!£©\6|‘R àRÊ8ÆòÞ•š 3sæÌ0 ÃX´hQ†uɶ[¨“Ú€”25ü颋.†«©OFQ´zõjä/Ã0š››ÇQÝ¥‘ÔT÷ÂS‰o]Í"¶'Þf¶m;?ùúë¯÷ßÎJ¼ñÆ'œpÒV6›µm; C–ÔÌ‚–nF»Ð"©”R€Bà´xõ@Rî2™Œž ]—l»…:© ItÛ×PÅÈV¬XqÒI'¹®ÛÔÔ„½X•^«Ú¦¢˜ïI!†êp^Ü)§œ‚9 #Gޤ”NžŠ£ üÄ'>E‘²LMÓÌféÓ§¾òÊ+½—‰sÎ93cÑlÛF†1bĶmÛ¨Öù$)¥¦ºàaRçÜ÷ý±cÇú¾¯ºã™¦é8z м5 £V²}ýë_GS2-›Íb¾ŽÞ¥*¼qDÓ¸qOœØ2qâÄ믿¾óû˜n2ŒQuR†˜2e Ž§Äœ55·i³u‰BPB9á„Ö­Çc¦G™gHr) }꺳fÍŠW4‡Ž6ÆXmÖÈpE·‰¯guVFC6›UCöâ8.‹­­­ŠÈЖWÿÄÜfÞÙR¸óµ¥¥¥©©Éó<^]²©©.¿ûÝïÎ>ûì¯~õ«8ÎJ™œ¸ †Ï'[¸‚KàœK¥Ri„C{ì± /¼p@é¾FÔ†!Ž:ê(+`I?œ4(Ú¡ÕŽ:Ú-·3vÔÔ©¾Á@ÒÇï¼íÌ#Ž žÇ0EAHI…0 !ÞW'žxâþ ÖjíŒ3ÎHñHÊ5Æ9÷}úÒ¥Kzûçwžnxêuˆ;v”Ëed¥8ޑׂ ¨e´ –,Y¢¯œòâ‹/Nš4iܸq¥R©ÖEÇè×¾öµJ¥¢'2Æ©9Y›1ÆÎs¡iV d¢ÐLf\@«moan‚öbñê'¿óÓŸ† € €¸Nju &œzê©ÝXš„tñ¦iÍ0Z+¢Ûn0§çVJ>‹˜ØhXí¦65Yaèpîû>Kú R*p¹©©i ÷¸_1oÞ<]Y–•b´(ŠV¬X¡fcB~}sŠÚ^~ùåÚõ£©»zõêÕ«WOŸ>ý ƒr'ÅkøCMMMÊgjÛvE*jádmB&™1Zµ¬­Ï¼¼äê“fXa(„umÛX»æŠaR€ÂÈQ_þã¿sÆ ‡b¸:© 7è2 º 4e~!Ó¬ÇÉdlžÍ@>ŸÏ–˹(ö}ßf_W‰W@©A§˶¥Æ±Ç»Ÿäâž}öÙzR®´Ÿýìg}õsK—.]ºté©§ž:räHÔ>ÿùÏ·µµ…a˜ÍfÑmkkËæs™L&c[¶mš¬³b$0Í2cÛnyk]¶XŒ,ËŠãØ§ôJÿ´tÙ9“ŽaåŽJGùí¶öWªå/ÿñßùøÉ}µýˆzôჩS§¦bµ!s;†ã˜q¬»Âb•½¡–y2° NÔ›… ä>÷Î<óLÝi•Édô3Ä«¯¾Úç¿ûÌ3ϼõÖ[år'·~úÓŸn׆a©Tœ=܉'Z2<º|ÅÜÃp Ï¥Ô Ô°Dµ,BHÁ yÓt{Ê3´P'µáÒµ®“t ˜¦i96öeCw52 Œ¸Ãy(x»ixÇ'Ðó\Ä<ψÓýruWM† cF;ï¼óR•©¦O---øÃR´¾7,_ûÅoûÛW\q:Ú°oJÇÛ·oWÝÞk`&ÀEsæ|ÈðXi† 8t IDAT0‹‹F…Bú„Vm˳liÛtû;Nµ |ÈG  Njà µ¢Lç5õ1sA('Tç5x¹r)ÞÏeª ‚`B©©ýµãÛÚŒ0P÷˜>ñ’¾:ýº“ýŽsÏ=7•-¡»ÒÐüÄ.²k—Ú>gùL&³uëÖ>ø`úôé˜àVÃh’™Pê ’ÈbÐõ~@^S즾Î@†!öïöcî'ɵÀ; R2좧Ÿ~zªüHJ™Êáx÷ÝwSÙ³}ˆÔ!?~­KAµ•v£X/¨´„!5Z(€x½´dÎÉ'ûT‚ F»mÏd„mõ´CuR> Iu!VB^6]¬)qÉ]ÀòlÔq ¤öœØF {xˆ˜ÇÉh¥Ùç}½Žëã!›·¶¶þáØw:¤JnC×0·ÎqªùcŒYzËËK¶erU“Å~¼êõb4ÁüÙ³#€ˆÑGV® )5 ‰¦ñïW\ITÃ)ÉÐlÞQ'µá¢‰,LÓ­•žÄOzê«¿ª v‚®£v±6D|úÓŸî½yá G­$9÷Üs•á™ËåRÁ\îç]N9t@ÒbMQt’€sOšÑª­Äh €‹OxñÅ?ñ‰O†¡²1uo.€.Öjý5ÌcÇ×T»|SGÇ™LfÑ¢Eq?ðÀ¹ÿ{ 5–ÿ‰ÁU6ÉdjA<ûì³²‘ú#JµÏUJMÅZŽÀD€ƒÔ€ €Œ*×÷ýÖÖÖj{ðHjŸ¢¨“Ú°j43A·ö”¯ j"¬Ú‚êT*CÇó7ƒÿŒ¢hÑ¢EQ EÕ¦í¬³ÎR\††gmpàµ×^[»vm?o¡z&Ãû¾¯ºq¤j :«ß êY þ ?ÜÀ˜ïû9ß­V«¦WÝÜÚJÄpð#ÔS:†^xá…PƒÞî&¼Wk5ˆ®Åzz_ÿ«ã88æPµ]zé¥}$ögœq†â²ž‚ï½÷ÞK/½ÔÿÛöä“OÆÉ =ÏóÔ+磊µι±”;³¦U ×:…`e>½ÚÛÛÏ>ûìáá­+µá†0 qÒ .èêLG·>\Cï2M¿É/¼ðÂZND Eƒ4•ÀA)MíokkëïÿûÚ¼J¥’Éd°-‡çyx–mO1C±f>´¢(¢”­©wgNbr 3zž×ÑÑÑÜÜ[·:SµP¸G+W®|óÍ7zK¡Z­bsJEjžça_—ÉRJ;¡Ì$„Xf§RC™ŒO¦0 ‘×\×¢É7½£NjC)FC?¾êŒ¦¿º®[.—q¶qÊÅUÕ2šr0W«U×u«ÕjjÁâÅ‹`þüùÈhh~ªåZƒ´[ô µ¥°+ò ƒ;‡0%a\=0ò—¿ü¥·ªqçw~æ3Ÿ 4ø¾ïçó8àŠ&c ãÈ@¥z#²Ûå—_>Ðû±OP'µ!ŒÓO?]  Õ©ß™ø$B¸®»eË–-[¶Œ==2ºLS3(S ÿ‰ŒöÚk¯õDHmpÉ%— 0M3 CóñPÆX­jëÚv…˜zúÌG~1À™zGÇ«V­Z³fMïëéO¤vöž{îY¸p¡Njžçåóùl6‹³&”7MõþVŒvíµ×àŽìkÔIm¨âŒ3ÎЭNÔhxg¢ÁÈ“Ö@®ënݺuóæÍŒ±r¹E‘mÛ™LFw¢áWÔPÅh®ë¦&{öÂ5Øö’K.A^CNÊï†PN«T^›Nm»bWêŸ9æ˜cPšðöB¨›ÿå—_>묳RSTÔS¶çûï¿ÿ /ìÕêkÔ‡z®¼òJß÷Uò 4ιNgX?ðµ¯}m 6¿ÿP'µ!‰3Ï<3åG#„ÄIŒò¦ÅqìyÞ–-[6oÞüÚk¯À1Çãyžã8®ë¢U¨çgÖ2ÚªU«ðI]ªk9©máÂ…µŒ¦ RÅ8:ÁíAzâ‰'ªª¿ª‰”óƒ ˜;wn[[Û¶mÛfΜ‰¼†ù.ú6´··ÿö·¿Ý»SÔøÅ/~±páBåþw]7—Ë¡öLMi‰¢è‡?üá@oï>G“Ú¥—^Z, …B¡PhhhÀ¼ç ˆ”„þÞ÷¾‡ŸìE¨? ¶Œ§}Ú}Ô5šŸ˜Š¡ˆL÷£mݺuË–-Èh°zõêÚ#6iÒ$•­¦ Ò+VèŸéé8÷ô>Šˆ ¤-îšÚ†æ*ýU¤†^mÚz9ѳgÏVº =†8±ÉÚ²,©Áq¼Éƒ X¶lÙ™gž‰²…ûÖÁ×À£Ý.»ì2ÆØ½÷ÞÛoÛ3°èì¸|ùrü÷Ô©S÷Ñ/}á _@.kll,‹I G,¥ä\bDFQ. œÆ'ˆ3Î8CùÑ0% -îˆãýh[·nMÑSÿ© ™ ÙG¹Ø”…Ø“¯ §[–™;w®Ù°¬ì H†þI)ñê ðµµõÌ3ÏLê?ÿüóo¼ñF¿¤:öjâêâÅ‹¿ùÍoîC¥†Ö¿øEe¥R©qD“mÛ $2>K¥”’ ιŸ ÚÔ|ßÏd2¾ï_qÅ÷Ýw_w?C¹íÓîã(«³–ÑÔ‚Š (6€xøá‡`Á‚zl4ŽcÝÑ–kÊ׆¯ŸùÌgâ8¾ÿþûq…„Y³f¡™Y ôBÒX©–ÝÐõ}ßqœÿùŸÿ™5k–úÝ×_½ÎhCûÔ¾ò•¯”J¥R©ÔÔÔÔØØHáRH)AH©MÉÅw„NAà8NJ¯QJ¯¼òÊjµŠ¹Qût³+åGSV§ÎeèPÛEFëgã©íâ‹/®5Hu_›Îe)(j›>}:Öœ×uh=¯‰6çI=J1,hY–ã8/¿üòqÇÇñ|ð׿þµßHÿ`pѤ°OHíÆoÌçó ù|¾X,æóy @òê,YP¯)£( ý /ØiŠ&y7æ%—\ÒÅÝΔržqÆŠËðªžh)WFvE£õõ^{G=úè£RÊ‹/¾8Åh©H–”óšÚx¤6Îykkk·ŒÆr™Þ}„B$”R´ â8upÀo¾ùæ¨Q£žzê©}}@êèô=©Ýxã À{¯¡¡1„Q4qá¥ÍOÚ"' ‚À ƒ0 =Ï ‚Ûí3f½ì²ËªÕòãÿ¦Ï7{B1‚îGC«ZÜ5S#ëļèuíOã;<ò(jë6óCnµ7räÈ8Ž¥”5¶'>˜ ,b4bFH©¤LR" ¥dQÜàyÌóÔö!Z[[¡Ža>&µ›nº é ­X,:ŽCº@Rj@’¿. !”AÊ9LÓ°L3´”)Š!„%…lóçÏW ŸÃxÿŸuÖY:åóyHÆÓé¶'æý£FSŒý"Çö „¤¶‹.º¹ ç›èòMYˆÊ&M 7ÎymˆW˜fÙ¶>õÔËñ 3<Ç.úAÇâÅ£¢F3MSá8ÎÀ}„A{ì;ô1©544(™¦bs ”¢§ƒ)Ó@ £ƒ åÖ}º¨20­TeH£7dáÂ…?üð°?a:£! a´”­R©`¬Sg´Á’ôÚU§L- «ô¢‹.êÖ Åx‚išXƤ ·ööv ¡ª@ª*ù¢”ÆŒ†ñÊ+¯´Ú¶kYcÃh6Œy““IåÚlÎsþùç?þøãý{`êè{ô%©Ýu×]ŠÎøä¬íD¨¿ƒ÷gjUz^aÛv©©‘vÖ±1ƘâSçœû›'3ŒYMg44?¥”)FÃWÔhƒ–Ñ ë½n¡WÈ÷IЩÍu]TgªˆhÅùB8nðÜÃȵŒ;ÛAÃyÓ§¿ùôÓã…Pš’‹ k¹úå`Ô±oÑg¤v÷Ýw£Õ©M/0LÑhávt™¥ “š\Š\.G$ £yž—Édújã!0{Cw¥ ]FÛu Wᢋ.R5¤qMy¼Rm½t…#„P¦DJÂE™H^0;nòk¯¾š“`Šü…¯x`ÑøÔ§>õ›ßìÛaŒ=!µn}Ï¥R© !exvqªè `Kò„¤jº•"5!„iÚœK“KaHápLžÄ<£OwÞO<Ñû† rt»ÍgŸ}vÊêìÑR~´¡•»³páÂn…R[­ð¯¹€oÒlþ€É“·f2cfÏÞ¶l ##Žôë I  Í ©…=!5ý|ãé_¼x±®Ñ°¥Wêòì ”…ÎÁœÐÈ0| ®!qCàY”˜IT”s‰®\”lq2– KùzÚ°¡‚Úmž7ožÊGÃ=Щ¿r?ÚÞ«Út^³,kûöíARzM•yÆhjŽýþæM-§UÒÉÇg—+™8ŠcEQ0 çœsN=·cHcoÍO)å¯ýë”FëšÕÍ(¥D @:ëÌ’ ‘SÚnš;(}bÙrŸ1(â$8Å9§œSàqÌб¢2•s— Í‚ÐÔÖž}öÙ©JõTË£mÙ²EÕœt{îzè¡)S¦qÄŠ×\×U1ñZÃSc¦mY”äý`ck39*!“É8¡çþíŠ~ßï:ú}àS+‹ØcÃODsÖꯄ$#’icŒÅÌh£ô‰eËfL›p€Í-–e×Z棠Âü¨Ô|ßÇͨ « è[«"Ê•¦v¿[6Ì ´£A—«úçæÍ›ñÈd³Y|jê]|1C[g7jÙqBÇì ËØŽeÙ–eš&$#2а‹œú‰:© ì-©ýö·¿UóŠÑþ’„;ßÙ BXÌècË–2mÚX€|ˆXQh‚$¦);«©bÃP#$,ÆÑi:Ž“Íf/¸à‚_ÿú×{¹#Žyóæ¥ühŠÍUZ–ž½1ü A’ZôÚ÷@J™²1S Ê ÓäÌf+Ùœ=qÂ{¾ÙcÔ“ÐÎù(u0S޵¶~ÜÝ:ú{KjŠÈTaýòÒ¨ j ¤”@‹eµŒ ”‚!¸4Ø”P Äà\Åì Ã`Œ+±†J st÷r/Ý2šnoªFiû£uû>àÕ%„@i–2<ÕEˆikc”ÒÛ›‹ãô  €F •·ß.DV#€’Ò¥÷¸Ž¾GßšNm)ë$2JˆL:k€TeÆ"hs²žY³¦`Gñ¼©SK¾ïpN#fcÜ0cŒ1ÂØN3ÉÎ4Íóº†AûµwšþNê¯=Ý–½ 'FÛ¬N…^z"ꙸÃtW*\Fp³qÈ=˜L=!š<Ÿ~·ys]®Ø:†,ö–Ôt~é)Õ›)¤LŒgÞßxùÑGb ð»eËæMjzUK‹jÑž±ïühÝ’”þNê¯{ÃhèJÓYLo3]©T°ããpe´^ðꫯÎ;41%¥T—$IÚúUÇxl…’q΢XµóÅ#Å<êáLB¼¤,´Ž!Š>Pjhöêþ¹GvöذJ¾Þá;`…­Ôx‘²„9°Ó²Ð T-ïëçêÓeïúqÎ9ç¤ê:»¥k´Ô<§ý ¤«+-q¹ Î9!sk?¯Âj¾Œ? ×äá;”Ò:© uô™R«%µôMPJ9ç@VD™dS!Œuù¢NŽ)v#]cdýŒÞ-ÍÞõÔ0Z¡PH€RŒV.—£íy;  û4ôI1Èeê5¤9Ý)©Wª¤Ö q«xzC} ÔtFStó‘_T$E¤”U€w f0…,ÅÜJž¨jå)Õ6°·÷ÞüºÎhµ~4•pÀ9×m/tèB•gªT àk­Reu*E¦8±öHrÎqpI¿ìSû {Nj(ôí%øÈ¯ã« ðé)'<øÚ RBœ˜Ÿ7mZ¶âZ¢ó2Å÷õ•#£)Ù2´nõZFëÖêL1Úþ©ÑÎp&‹*_ïE¦)±¦’Ѫì?Ýp ‹çy>Ò¡Ž½Äž“^ zÑ’†>úë’!,/àp ÿxüo‚“j…„!p'E©W=mž|òÉ=Þ‘Ý…"—£>Ú4ÍÝ-Q:÷Üs•½‰ µö&.Ô5šŽ^xaΜ9úô)E[„ÚF/dn멺RknnB´%8òÈ#Ã0¬Ë´a€>ö©á‰Å¨¤zù.l!íˆ7HÉ¥€äÞŽ"…R¨K•h™JôC¯”òÖ[oÝ´iÓÆñ‹_ìå¥7²FI)?þxÕ—õÔSOÅ¢k¼gâ®xå•Wôï"£)d³ÙÚú'\èèèÀXçþHeš.ÖðÐMQ]ÑCÒ³jHmûöíxÑ–J%üü›o¾9zôèz”` |j¤³ìI`7˜8ŽõX{O Éÿ‘’@%U×¥”ø;¿’(µT‹D8òÈ#?üpß÷gÍšµqãÆM›6ýüç?ß­éɸK½9}útÕ‘ÕLææê· 'ªìÙ³gãÖA0qâĔթïˆnxꌶZ=íòK/½tÊ)§è¼¦žpµV<èÚôeÛ¶mx !׊Å"~eûöí©‡Ðžmg‹>(hWt¦|ù¬kgÑž¿ R û(¥êZì6ÿ‹ÔLíEÝR¶mçóù}ìcaΜ9sÓ¦MO>ù¤iŠØEòªýØìÙ³SÀMÓ„®7 ~ÒL¦Žë#‘c6l˜1c† wöÂhhu⬶ýð¶ée—c­½šò¬é ¿Ë9§Z²:G[·nUñ%’4ãeŒ544à;3fÌX²dÉÞogˆ½%5×uñq‡¼†ÞÃÝñ¼×ˆ¶$¾Né, UÒ® °3Ä©TG†qëª'Š"ÇqŽ8âˆC=týúõtP¹\îèèÀ‰§½_ˆÝFph®eYŠÎÔÜoèÚÏR}K/ØD` ö+¯¼rÞyç)«ó# ºÒk] X ÃP%Hª¸'^xâ3Uy{Õ 1bDKK‹b:Åkh‡â›:¯ÕøPÄÞ’Ú;ï¼sÌ1Çè2 }Èk=Y ZX¿%u?ˆ‚~=I †ø¬ÆjÈ ŸGÄqœÉd,ËjjjâœtÐAåryÙ²e½ï”~)ŸvÚiµŒ¦ožrÖ€Æk¨ép 1?#ŽcÜÇßüæ7 ,èvkËåòæÍ›·nݪÏÓM„];-C½ó!D ÐU6>Pñ:ÔM•`$¥ÄðK¡PHýžä5˜9sæK/½ûÇ~Ø[R[¿~ýÁ\*•Ô•¤|jØ,(¥Ñd2 OK"Škí „Àp{†a"‘áâ®»îBRPé]Š,lÛVë4M³±±Q±[GGG-»¥dÚé§Ÿ®,MÅhzæŠBÊjVþ5Õ©U±ø`d·r¹¼víÚÚÔ¾*ç´J”#ZUƒ"iEÜx@t[IùŸ|òÉÓO?7¸½½}ëÖ­uFëŠM–,Y2uêÔHƒmÛ*»¨§W¼*ÚÚÚp=ÅbQ1”ÕkЃ_¢ŽÁ‰½"5<Á(ÖFE´ö/x1Æ Ó­º%Åk2iE’týJER«:¹/Œ£jµŠ=#!)ˆQÁÇÿøÇŽãè™–©WÛ¶„•JEÉ7Ånçž{®Š (RSièZ»Z#0¤3½ÀPýUMAÅõûßÿþ“Ÿü$2šîGCÔEAO˜9sf.—Û¶m›~©ôÂk2野ÏuâR¼&“$$¥ãêvèPÄ’š~¿}ûÛß>è ƒšššÐG«Ë´8Ž©Á(¡²F£Im<;^d:£©ånIM}à†nرc‡Õ¶mãfè2M)µ”j3 ƒsnšf±X”RV*%ßRt†Yi)«]À•«%„`ÉÈ"Ƙ”Ò0Œ\.‡÷[†mmmŠÑR,¶_ÝH)r€… f2Û¶3™L&“Áž „n¸ÏËÑGÉdV­Z…× ~@o¿Œç…kBvØao¿ý6$'y # µþµZ;?sÁضmYÖ½÷Þ;0Ç«Žž±‡¤–ºß0Èxà¢Ñ©- BuW‹@ÂèÓé ¾êhu† vlo6MÓ¶m¼Ât^ÃAj) ëI²©Ï466 …±cÇâLÉ”í©LNè×R‡)Œs©b¸H£€ÛfÛö«¯¾Jѳ7öO¦v>ÿùÏ+"Ëd2¹\.“ÉHI8ç3gÎDg%Ž ˜:uê’%KÔã8ŽeYªˆ*ÅhœGœóµk×uÔQøs„B¡P«×¾ð…/!Þ{ï½ 6Ìž=ûæ›oV›wå•Wš¶eY–cÙȰxù!ç¢ð¯V«ÕjµR©Ü}÷Ý»xÐG»ßø}€¾™ûù½ï}oܸq£GF­’ih]*áVk*­JÎH‰5Ý–Âé§ŸÞ­LÃ…»ï¾ÛH`YZ²s÷¹Î_OHͶmd^Û¶Õ…Ïç=ÏCj»þúë]×½ýöÛûçØÖ}8ÌøwÞ9øàƒ9äN«3ÉYC7‡7ÐMÝá)WšZî–ÎÂ0lnn^°`Üwß}V lÛ.—ËF ÐÙ—²Ik# œór¹œ²=uòêI¦qJ;L³Ù0ŽúÄ'–þï3‡´´–„àRB }QÒÚ¶EѱÇ»_ÕBuËhx¿õ­o)"Ã×L&£;+žzê)<#H.<‰¡ã_[[[—¯XzO • ò$¢[ñÚ5×\£Î!düøñøú§R?ítcL€B€èÜ’\.W,«Õª[©V*•þç¾é¦›>â°ìù­£ úŒÔ~ò“Ÿ|ðÁãÆãœA€¼VKjõLtâvËhÝ \×-—Ë÷ÝwþîW\ ÷Þ{¯"µG}4Åeú²iš™L)z⸠Ì©¢}åéÇßítÜp)óLó˜|›“iÏd„é’ ÀݵãêȨd‘¾: C_%݉r IDATúÒ—FŒ¡Ó.(?&ž \.§Î²²èÕå´yóæžÖOÔré›o¾yôÑGC³…BásŸûj4Hü¡ÈkË—/9r¤b1Ô’¸Ü¹m]I Ù¶X,º•jµZ­¸Õo~ó›_ýêWau/ô'úŒÔà†n¸ãŽ;Ž9æÖu‹"5lƒ¥º©Óß­7M™Ÿ):úÈÚ__´h.üâ¿èV¦¥hÙ ÙRì¶qãFåo&„Qj@Ò (¥F¡Ð" CŠÉÓ¦ýÏÒ¥üãjÇ%Áy§ Óþ(c ÅÚ1dz?'s\wÝu£FJi4”iÚY wÜqÛ°`Á‚§Ÿ~Ú4Mž4áÀ×íÛ·ŸvÚi‡zh·Ó*z¢‘5kÖ ¯)¹§ ÿÊ9衇pP·Óð:BH‰&H¬L\( Ø£­\.ßrË-Ï>ûì#<²Ïd}Kj„k®¹æK_úÒôéÓGe$´qAq™âô^é¢Lå©á?•OÍó¼öövd´r¹ŒÓ‹{•W^‰ ^xaJ¦uËnÊïh*æRé²=,Ëjll$…—dâ˜1ï¬}³dLîlŸÉÐoC%¿Èh4š3aöá‰Zøìg?[*•r¹œÎhÀÍ, F©T=º¹TÇV+?F ÄllüØŒ“:Š ð‡?@ýÛ°fÍšI“&!£mݺu̘1Š×î»ï¾‘#Gê! ŒÆ¢LÃ$u±B„ˆ©×|>A>Ÿw]÷œsÎqGÙuì ô%©¡¨þîw¿ 7ÞxãñÇß‹Šoò$‡VÕ<©Z|ßu]•‹ >ø`/Û kûÇ{ Î?ÿ| –¡TTË(ÖÁ©?)cSJIþ×ý†\.W*•­l®GÕ¶–cóùV755ÜÀá‘çy„2Î0J¥ìÌÈM³Gyd· Àà ,ÈçócÇŽÅ"eu"©)!Œ‡+—ËE#F¼=aüøk?Z=õ£)MtðᇟpöÙï‡á¨#Ž»éƒ-÷Ý<@ÁUÃn5ªmÍš5è_Û°a ¯ÝsÏ=¸%µ~4Œ¹«Ó—œIKÉ=ý¯+\ɼyólÛÞõ¨h»‹Ý&µ]ôÜpà ×\sÍÔ©S1σ‚d¡dè\–ç¼Z­*u¶+ zpB«o]pÁ)ÿZ­pSÓ¿»^¬D›êŸÅb±1A&“ ÃÐó¼ £F5*ˆLæy^GG‡çyºÝJ´¾äd¿œÉ†R.—;à€t¥¦€”‘"fØÔä±Å±-.¼ ¸âŠ+¢(ò¢xGµ2þø)›9÷¯ÙÉœrñÅ?ð@ò;»¤×¤”¨×Ôî¿ÿþb±X,”LK1šã8Fwó†ô'"ú‹• WüÉO~²Njû»Mj»îã¼ãŽ;àË_þò 'œ€®EjŠÑzA†J£íns´ž r¿è¢‹jc†a¸®« çZvS¼ÖØ8YÙ÷ý |FC.—3MSá‡AÄcÌ~¢À(0UÀ¯£OvpAJ¹`Á‚R©tàê2 ]i¹\NÏ@Õq>ñwwßoÔ4"þ`#‹:+Zùú¢¹Ÿøð½÷r D@ƶO:÷Ü—zxMaõêÕ“&Mzûí·‹Å¢mÛÝ’š’l™L¦':£@(¥’tvaB„t¹üüç?ÿìg?»/l}i~v‹ï|ç;—^zéñÇÙ½0ZJ²!í»Ú£>Š óçÏ×Iu%SK=†a455¥HÍÊæZ=·Zu[Ëå-QØarÙgDæ’\)õ»”RÒ¥E+ÑoÝý ù|þÀ5jTŠÑGR‡Ýdìé%/3cæÿ|¸ÝŒ‰;Sp¶mß~à 7üuåÊ£'ŽßøÌlÛ>·“Ôv<òÈ‚ ,ËÊd2 ¸=z2šZÐkæð Êbƒ…”pfRfxdD1pB}û¦Q±­ªãxŽãSJÿÙÏ~ö¹Ï}®iý@jðÀ<ðÀpûí·c.EO¤¦žwÞyg?l,^¼æÏŸoYæ+ÁN3“¡‘Ífщ†( ˜Z‰£­’¼Ç؆ŒóŽel¤tGà7g3£ò¹1•JF È¥DÐV¾?rbÁ‚£G;v,šrT›ŠBägÌÜÀõÇÍ[æžcÐ$d¡n°ªišÙlS6sÛm·]{íµ}~x÷gô«ù »ÆhýÀz=•ê7$ó½!é"†¡išŠÑ‚ 0 Ã÷ý.A[?1W…2%úç®ÖEẮžL ’+ Õ™’¦izž§ ?ÇqG2i~«.k)Ñ"é¬áWMA⤂B/'öŒÚl²3ö‹LK1ZàïOšá`&k§Ó $ıâŠéÓÚƒ¨=ð[=·½½Ýkmó››´þÕŸ©_×C±Ðœîà#,ÙfÌ­Q˜¾~}Y15!Ä蜇mÕnI{ƒÁKjýd´L&ƒIf¯¥ÄZ˜LÒ­T*Ê›¦L'U„Ï»¦§é7×f) V®\9;< ÐÄ0Ò-DÒ1XÁ°º®A)\<5¦ïg]·P©”+Õv×ý`Lj;Oß.’ѨMšdŠ]œ´í=.L»›}£þÔÖֆ˽ÓD*žB*>@»ÖÉ)D­ÉlÌç7€0ž2äÅÓ¦=²lÙìiÓ"Ë+–.›{Èx¶}{ Ò5h·SÇ£Nj]€bÍqœ\.§.Yå\Óy­R© ÑdR~&Ej©.»ª€?J¦Ã!pÊòþ’ŒD‰¢¥Ñì¾$5õÁêÝ~𯭭­{°I=‘© wjŒŒx2ñë•û/o½ÙĺÕ/œ4Ö0‚ÀEÓ¦=ºl™o0ô´ŽoÚ²•…a»à>¥÷ÜsÏg>ó™ÝÝÚ:zBÔº`É’%sçÎÕËt ëü4™ÌTFK¹„P©EÉÐe¡µW4%Тdó@ïôÀ ìâ¥ì$BLg¶iªå5=Œ“r½ár†------»»IµÊ1ÅhPÃkøE àó³g‡Qâõ³26¼‰Ð,ÈkO˜IGBt”e†É•Sg´¾Åþ˜öÙ;ž}öÙjµêº®röëJä#×u£®@i¦FäêXuFSÕ`øþË/¿ 5™¥ûn¾ùær¹¬ú¯ðšá­* ¬ M÷H ­»”{Uµ¶¶îÁX€£‘î"ÐÝÉbðÿÚ;÷ ¹ªj᯽ϣŸ3ÝóH@>ò*<@ ‘+òUå)J¾€ ‚ò¶HRˆ) P*ª¨eYò• ò®X\©€rp1 $ò”ωLq%ɤgúqú¼¿?ÖôÊžÓ=“IOÏt÷dýþè:Ó³»ûœîé߬½÷Ú{A  à‡ppba¨ƒHønÆu¦ÙåƒËö´R!cYfe»·ð£ŸhXj5(•J¨­@AõÅb—E**Œ ©_W´¾â9˜R(òù|¡P¬~‹ð­‹LO{Ã÷ÝÃP·T!ŸÏ Ô¦Àúõë«{ ø+QÙJ(À÷‡Õuµ–|… ahB@J—޵g¿5–Z ^~ùe Ö‚áxžG¥­T—ѱS©Iªh5Õ†¿Ý¸qc³¯µ™¬Y³¦P(`Õ¥B¡Pó-¢äH(G.ÛÀ-³s¹Üàà`ÝRC"¢žjƘt©¶¤;vìåáLð˜ZmðK‚#k~¥¶þ]ú¾_=”F_Û¶IaÁð Uê×Õqœ—_~¹ÙWÙ„’¸ÏçÕ!Õ5zñ!äôH)mÛ.•J¸“]¹\ÆHmpppõêÕuŸþ÷r§\.〚…+„+%HiàŸ®ö Âÿ…B)õ¡ò,¡ZŒºÜ›Ís ëGjQ°ÇñÊ+¯`U¿RFÅÔþfäÇÈXÚߤ.g±Xhö…6 5ÀY»vm^!¢~¬ž™ÏçK¥’úâ;ŒFÃ5¶jßs<ï­U¡\.ãAÍ>âQ‚5j£®NA‘Qƒ\.·nݺºÏ–© GjQèo^:þøã{zzz{{±<»:ÝY©aç"òG¯® oi¡P8  }ŽN¡PH§Ó4 *¥ÄÑL×u)±ƒJI¨Ž@ï`Œ†¥ynºé¦ñœÌý÷ß¿råJ*‰û ÔöfœP°6´ž†¢­Bše‚ BMR/Áqœ\.GÉt0bEf?a©Æ–-[`áÂ…ÝÝÝ™L&2V-5xidUjØ9Êçó›7onöeµ ¹¬[·÷ÑÃÞYww7² Ô-×±‡ˆÝC’Z¹\¸æškÆV–eaQ< ÿgê­ëº_©Õ½×h0Ô¥ôÃçmƒ CëCCØ»á{¹ŒFûè£ÆÂL–Ú¾yõÕW=öØžžžîînª‘TVíÔ¼µm²Ù,>§à1JPŒûèÝxッƒ|ðôéÓMÓŒHMU[4ކ^+ W\qECÎjõêÕË—/)àB÷¡OD ¤§yB Ö„&uMÇ­8‚0 M ü0‚@‚ D lÛ&©‹Åþ={rƒ·Þz+¾¨" 9Fk ,µ1£¹ŸÿüçÕ¼F} šP³@lÛÎçó«V­Úºuë›o¾‰O8™;‘´ «W¯¾âŠ+s¹ÜA„µW"‘N ˆeË–ó¥#ºôxúèîîîžž %ðïu¤ öä“OÆb±7ß|WË«OÈÊ~úÓŸ^xá…8:6}úôîînUjC› Û6 \±bÅø_7òA¬Y³æÖ[oµ, †ÁÚÞÿd¯ùZà¡Ò$ØŽïzºÔEF•(5MÈõì÷B.f,°Ô†±ÏÐéý÷ßǃ믿þoû[$i#¨ì¤†?º®{çwÚ¶;©ÆÆWdÊ0ú›üøãCU n¹å–éÓ§ã, þ{ˆÄh÷ÜsÏþ>ùØA—Q¼fš&NbàÈ©/};s]§2t©éº Pã5¨ì™lY–Ëe Es¹Ü]wÝÕÀf–Ú0ÆþçeÛöi§6sæÌ3fÄãñ­[·nÛ¶mëÖ­?ü0µA£Ù¶M•"ãñøÄœx;1Æ7ù¾û'ß'>øàw¾óV+—ˉD¯”ÀéWÝÕi~V-CR£Î2EjÔ÷üîw¿ÛØfÎS«“õë×ãߨã8j±[µ EAPÉÈf0³¿Ü{ï½»víÚ½{w?š3ãLÏ®7¤¢)oJyÃÛ|>ŸËån¹å–f_ÜT†#µú¡!µÌ­ÚW¶£Ú¨‚äüùó_{íµf3³_¬^½úßø)¬X,f³YªÉMå (LüG¢¥µóÎ;¯Ù×4õa©Õu(|ß'g-\¸ðÕW_Åd=5š›>}zsO›Ù/~ô£-Y²„¤V,©ÖTM©!êGO·—]vY³¯æ€€¥V?jVÍôööRƒxàP‡Õâñx2™lâ93uððÃ_pÁ$5Œ×’É$IM5Ææ£5$+˜#,µú¡ÿÆêT@d~“tvvFÆÝxÚ«-Àé‰'ž€Å‹«^ëèèšúÔuMÓp—j£­ZµªÙq`ÁR«5½€„ÉD£D„êÉ6ZëùÇóÈ#¨¿]½z5±QÆ ¹ Y³fͤŸ2ÃRëׯ¿÷Þ{ÑYÙl…U3Rs'‚š3¤L+3ú?žo¼QýQ ¯¶Çÿ´š§tŒ‹±du¨“¤È¼yóšuÂÌÄQ]¯ši ,µqAÂò}Ÿ;N:é¤ê¶mãBÂx<þ‰O|¢‰çÌ0S–Ú¸ˆ «abGOO5 ÙOÛ¶)íƒ{  3q°ÔêGÉê©:z†aK­~Â0T±Ñ¥6ʸÃ0 „¥6^T©á˜Zõ(ެ…aÈRc˜‰†¥6^ªÇÔâñ¸P*ÔÖœ;w®à*¶ 3°ÔÆ‹]ÙŠÃ÷}ZÖ¾páBj€iE¤v衇ò¬?ÃL,µñbW¶âP5Ò(«1ÌDÃR«ê<Že”–²Ôf¢a©Õ ukb‘ j÷“w‹d˜ …¥ÖPXår™„Ush¹\æ  3ѰÔ:ËuÝšk°–xõ\Áœ9sšxÎ 3Ua©5 Äp(Fj´4 Cj€{¡û>ùÉO6÷´fJÂRk´½ÚU·À]»v-íUÇie{Ï™a¦*,µ VÖi~“&b±õR›u 3…a©5 ÄÔ!³È\EjʱÔf"`©5uÈlôHÆÝXj 3°ÔÆ¥àR fFMgQPU|Çw\3Κa¦2,µqA)¸4¦æº.9ëä“O¦–Žã”J%lfš&«~øáM:q†™²°ÔêGÝfÃuÝÈ\A,ëîî¦k×®ÅÅRårÙ4M^WÀ0K­~Ôm6DZ,‹±‘†Õ°û9R†aÆK­1` 6’³0¦£a5lP]ù˜a˜ñÃRkÔý¬–Æt´±Zج{gfü°Ô«>J+@©Í¬Y³šu 3%a©5 Ä<Ï£`í”SNQTwQ?ó™Ïàoywo†i,µ†AÂRƒµ®®.j°víZŠæLÓTW€ !xwo†i,µ†¡¦×¢°0oCmCX"Yl4†i,µ† Äjf¢© (šÃ_q÷“aK­‘¨éµ5÷Âa5¬±k ÓXjuR3°¢¹”Z¤û)„p]·:š›9sæ$ž8ÃLqôfŸ@»R3°¢HÍu]ZàyòÉ'çóyMÓ„/¾ø¢çywÞy'‰/yä‘A¼ÿþû“ 3õ`©5œ¾ô<Ïó¼H ÖÝÝíyž”RÓ4]×¥”ëÖ­ó}ß÷}Ïó‚ ð}?•JwÜq¾ï¿õÖ[5Ÿ¹)Å0íK­1К*G «Åãq4š¦i „@©éºNvC'~ö³Ÿu]÷Ýwß…ŠÎð™Ym 3FxL­‘Ð PuXm`` •J¥R©D"aš¦®ëº®ã¯ˆxâ‡Å©¹ C°Ôê§³³“6ÔÉ<ÀA±ˆÔ0þ†9÷ÔnÓfé8Â÷|ß¾Ö¹ç¾þÌ3IÇŽ¹CF#µA`T8ꨣþüç?WŸ a–Z{ì±Ó§O¯Õñ416 })‡â5BJ™Öe—mn•:Keö‚ è—Âr ‘˜V,iŽK aJ R‚a¦izžçºn³¯›aZ–Zôôô$‰ZR3*£iBJ\•ÙÌ´n|¸iÓ!ž×騡ïˆÐÔŒ¸ï§ÂÀ”‚ò×*#nŽ‘šiš<²Æ0£ÃR«‡9sæôööV'¦!RJ¡B’¤&D(„&¥Ô¥¦û¾çûRÈþXüÃtj΂ïÿçsŸ.•Ê€š¦iA€Ô¤nh¡g†ahº.yƒ\†–Z=d2Q&£U~š¦IØ»0@ˆ·@j^8R+èF^“s,xcãÆÃ}¿Ã󞔆!f«¡ÚB)•ça©1Ìh°Ôꤶ˄""” EBµœÔ° ét. è™5û…ÁŽW_9Ò²ŒÀ—º躎›¯éº†¡&d d „BÓ ÌafXjõ°0mb±X6›µ2'ž4z{ÞØµË(Ítê!" ÊšŽô\ŒÎFzæf_:ô:,µzاË`˜øB!Âd2™Íf»2Ù]Ó§ýO"þ¯T:aèz!ŸK'­|!•Ï'ッP(X–¥t7u€@}ž±{Mpòs@ÂR«‡ˆÎªÕFÛ¢¡â:::ººzººº²ÙÝÏç;ìr·ç% ººâén»wÏ{ïù¾ï;½Š”Rˆ@œ’û6†3¬ïÒ-Z4Ò“üæ7¿©ï9f2a©ÕZl”.' ø@èRËteº»©ÿ“J<7Ôt+?˜Ëå÷ôwí6ú÷8%+ ÃPHAqy@â/F911|+ÊýbÑ¢E”膡ã8XþÊqøêW¿Š-ýë_òÒ Ó\Xjõ úkµá Zg6£J-™LværÅR.—Û³g“ë·÷ì±rƒ¢XÔ "ðõUð7/€0 .\hY–eYÕûâÖ­•¥K—Rª ®ÍB»9–-[fÛö#<Ò—f˜ÆÂR«‡‘,¦‚ƒh(²l6ÛÑ‘J¥Rš&ŠÅ|¡P( ù<” …’S¶E8”p+A "")„&q³\8äCPjÙl¶\.[–5žtÜE‹vØaê#”è‹û\bE¬)£Þ.[¶¬P(<þøãxG¦a°ÔêaŸaZGGG6›Íd2Éd“3°vA–e†cÛ6(›GF^*ikžçù¾†a2™ŒÅb¶m£ÝºººJ¥’eY|ð=d,²téRÌ"ޏ BÐö–žçE¤Ç…_ûÚ×~ùË_6øýe˜qÀR«J‚­Ö™¦iÉdÒ4Mp×ضÔ4¡ëz±X´,«T*‘ÑÊå2P»žBÒw=Ü?òä“OÆR¡A躞H$‚ Àx­\.wuuY–õ§?ýi,W±bÅ ÜvÜ0ŒX,1`lH[$ÅãqUj¶m™¦žË—^zi±»4 ðìIDATX|úé§'â­f˜ý…¥V'j˜†÷à—{jº®«·x†!J‚µ!£Uú•dEf¨6¨çy±XŒ¤F·º®§R)ÏóPmÙl_e¤âgŸ}öܹs±_µÎ0´¤zWª×hdͶmÛ6‰„V™¹à‚ žx≠}Ïf,°Ôê¡T*9ŽÇÑ)BõÖ¶íJ€f뺎"Ðu½P(`'ƒ54šºÿmÍ>cX)üîyÞYg…"Ã×UÕî¾›J¥Hj]]]3gÎìïïWG¾®¼òÊÞÞÞD"WH$(8M3|ßÀÍ‚ q#r¬€åÛ¶WT.Ç\×Õ4×?èºÎ]Q¦`©íÔ1üýï¿hÑ¢d2‰‘šj4\ à8Ž»S¤600P.—Ijh"uM ú ŽHj±XŒD†²S¥¦:Î0Œt:íyÞG}´páÂO}êSýýýýýýÉd2™LvuuE¤FàJ¬0ô«¥†ax‰D‚ÆÔÐì¸F• Í0Lsa©íj$•ÏçS©TWWZŒnQm8-€_uôEg–e©ÅVÔnaøtv9U©™¦©ú TUÇnªÚLÓœ9sf©TêW8âˆ#j w!—R a‚?ªÐà¯ab0V,½ä’K}ôÑIÿdf/,µ:AO¥R©ê`¼¦†i£9Ê‚ÕA0¼tΖâ3ÔÎ8ãŒb±ˆOX=²V=ÐF·ñx¼³³ó°ÃËçó»wï9LÛ ŽÚR4Ý‘‚Œ†çZe½Xˆ@*•ÂÆØÅnÎçÁ0Xjõpúé§§ÓéT*eFõ°µC£aÈfYV±XŒ ™Ej³cÆM¸ xO>Ÿl܆ieî$µ+®¸‚Â=×uc±X&“Á'Tu‹Å0‡c˜×@Xñøþý¯{b1¨ªØG>fÚ´CÂ0å€/”Éd¤”ÅbqñâÅ‘¼\†™LXjûÍ—¾ô¥t:RK¥R»wïŽÇãê€V#¦Nh¹\Æ9‚&G’š;ÇqŽ8â Ójb‰LÝpdDI8(¦JmøzU!„!˜¦y 'ä@ `¼óλ^<¡ÅâF¹Ló¦ib¾q.—kÎÃ0ÀRÛ_Î<óL,‹G·tÐ_þòu@nÇAµÑÃÕ…™Ø^u N5šïû/¿ü2\pÁ8qYµàÔH¤¦ŽÍýë_ÿÂh,ÃyOÓ4iA+(ùwMe•]M ! ;5#†»,kz¤uiš&&Ó%d2™l6{饗þâ¿hÒGÄè°Ôöƒ/ùËè2 Óâñ¸çy‡zèŽ;ªç@1-–òÎ"ÝOUgÁ©R{ñű=e¡ÝjBUâqÈ¥†O¨zmppFaš®ï-§@F ^:RH©¹2ÜúúŸ~̱±²•Ö ašÔóÅWÑu½««k``àì³Ïæ]=˜¦ÀR§œrJ*•êèèH&“d4L° %©FÃ;qÛê=¸qÐ=ÒñÄöÔýÄ)‚^x¡údÆb7dÅŠ±X Ôè{ï½éxªS ¥$c'Ô3ŒACøÃƧÎ;1U*¾¯IÍW¤æyXHÁH§ÓÙlöã?Þºƒi,µÑÀïä©§žŠ.#¥Ói¬YGêííݽ{7(å0Ë*E¤HmÔ­î{â-hÏ>ûì>Oo»išvýõ×ïܹ“´•H$pü EÑú\QJ¢\ô6}Cxö¯ÿï R®›S“ž®9R#£!xíl4fòa©MAÃ[]×q´Ëu]ŠSÒét.—“U`Ÿè«N.¨)µýZG)„ »]xá…(µeË–íܹ3¦@‹¢ÔS¢#,eÅû=€Ç·lù÷æut{žRÆÐ ø¾)¬…9ký,fŒ°ÔFã‹_übDg©TJÓ4r*&ß÷‹Åb__߬Y³ªÕ†xž‡“Œ‘¾§:šöä“OFNcôNœº ž–C-Z´HññÇãœ@PB3WˆÀ €B'@g&ƒ Â×4zQÚ— ]tÑEÑ6h4š—ô<ó6jR¦}þâ‹/¾öÚk;ì°OúÓÓ¦M£3!¯©†’•)‚È̆é]§TN€ÎDSÀçÄmlï4Ã4˜©#µýh¥=¦×FÂ4Yu˜ö׿þµ¯¯¯zsí_ýêWpþùç£;Ðb(5š‹ô}óæÍû{ûu¥Ôó¥ËI·rxy—À§¾5ïó $–¶¢SUo)LãÅíLs™ RCŒå{>eœqÆ4Ñ™N§qÞSüRæºîöíÛŸ{î¹Qž°zŒl&bºPí0bäm{Õs0ÌÊÊv¿òªOèW–O¥2%Â0“ÏTÚH"¨V˜úcÍGQz-%Ù& uL5Z¹\Þ¾}ûóÏ?_óµZUg¢R¾ªæhˆMT퀤ÞyJ^ï/‹#= ÃL4SAj#¡N î³ñÊ•+{zz^ýuJ¯M§Ó¸`@MÝð+ ÎËår__%Ƕ¬Ñ ²ù8R½ÀFØÊM¥º1*LÝN½¿X,‹ÅÈ3´ò[ÄL%ÚXjcüžDÚÔ|Ôm·ÝÖÓÓÓÛÛK]ÎŽŽŽX,VÝåÄÛB¡Ð××÷ÒK/5òz&ì›é~F %‡oJ>ú“ÀpÁÁð“ð~ÇqŠÅbd"63i´±Ôöù=ÁbãBubõ£n¿ýöÞ ×^{íSO=…{ E&:©×¹gÏžíÛ·¿òÊ+“Eõé~ÂðÐ ­´¿R£0 †wW±ï™Ïç÷k$‘aHK ùÊW¾‚ûÁ¢qðÎÈWôÜsÏBÔLÓ_µjÆh½½½xpÛm·=ôÐCþðm3Èk»wïÞ¾}ûk¯½Vód„RVZ&<¹ÿþûï¸ãŽîînÇqhwI\Ë…S¢x¼ÏçQƒ;\±¯îˆ‹m‚ Èçóù|~b/‰aF¦½¥¶xñbÌ_Ç[5ªRÃ+ .Î?ÿ|ÇqÔ¨íŽ;îP6mÚ´žž]ׯ»îº{ï½W}¼ýøãûúú6mÚ4ÒùÐw»EtFìÞ½;“Éd2™D"!¥t]7’ç)fû|5^£;éb]×E£ýä'?™  a˜}ÒfR£PhéÒ¥´ÒP­.®ëºšoA›^ÐÞ;矾mÛÏ>ûì]w݉Ñz{{EeÁÀ·¾õ­ûï¿_5ÚG}Ô××÷Æo4û=¨‡xàöÛoïììÌf³x™4š¦iÚ>ƒ5Üu’¤™÷Û¶óùüàà ïèÍ4—6“í›ßü¦j4ºÅ hk¼UÄìÐsÎ9gÚ´i£Ñ‚l|Í5׬^½öá‡nß¾}Û¶mÍ~êDÑßß;8&“IŒÑh¬ W¤Ž¬ÑæBj†õ¯ñ·d4î{2M§Í¤vÝuב¼HdT‹*… à ‹áZëˆÔ4M{þùço¸áìuöööRêàJ¦«¯¾zÍš5ÿûß·oß>RaචÇzhå楯 Íf³j÷£QìÂG& ‚ j’-z¸M9îW>00€:\·n]ó.”aÚJjË—/ÇýmHdt«WŠŠÓNÙžRmD­`‚[¼¢×Ö®]kÛöÓO?­hä5<˜1cƆ ª—@µ#wß}÷=÷Ü“ÉdÒé´T6 Òu¦DÔ•~¥8)ÎCEjš•+àtçàà FjÍ»>†h©ÝvÛmŽEt†š: GçjJÍ0 !„eY²©åHÔƒR©ô /Üxã;úF²gÏžþþþl6ÛÝÝ‘ŽBâ~J´ZX«<%µY–U.—ÇÁµãyÏ=÷4û™6ÚM7݄˕âñxDgꞋ՘¦ñšçyTa„F‘.¿ür۶ׯ_¯z-—Ëmذaùòåê™L´øüàwß}w&“éèè@I¹®KïM†úÃk‰’Ô°b<Åh¯¡Î¾ýío7ûâ õ¥vÑEtÐAh4õ®j‘AeX ‰tBñ€æïð›lÛ6~·©Ë¹sçÎ 6Ü~ûí0\dín4dåÊ•«V­Êd2===ø&`•RªUŠ@¥ûIj•R2*Ø÷¼êª«š}Y 3D«KmÆŒÉd2b´Q¤# ¾pÃLÑ¢´xÜ'n¸á†ïÿûžçíØ±ã…^¸óÎ;ñHdS L#V­Z7nœ¡ý‚p*™ ñ©ÁPtfY …%K–4÷rF¥¥¥¶téÒiÓ¦U-Rý( Ã0DÁùa`¤&0dà )ê(-ê–RÚ¶Ý.Û¶o¾ù櫯¾zÆ ?üá«OfÊX°`üáP7A3 wy¤šÔuGíu"´Å.ô--µ¹sç& tY2™¤:•T¤’P¥†¾‘š#Àx®i•â¶FššoEs±XÌuÝ|ðÙgŸJAÙ>9õÔS¿÷½ïx≠¡Ú(is›]×-•J¸R½P(‹ÅË.»¬ÙçÎ05h]©]}õÕ¸ùOÄhñx\ÝùKÝ©•z–¦•c±Ý†±SÓ »|è®0íù˜ö•Ü+ ÷‹’àÒH˜ŠAÙèÜqÇa>õÔS‘N(kŽã* ÔV¬Xq ½ELѺR›7o^u¯³:L#©¡ž|!)|MwuýO~¯hÄÌ Èöt‡ahZ%½2ÐFCE‰D"’šëº`iq4Ôyç<òz-‹Q\¦ò³Ÿý¬ÙçË0£Ñ¢R[¾|9FgÉd2‘HP˜‹ÅĨ؆aÅbE›ßÜ2Ö11«T‚—wüóß9äÐ]öÊÀ¢ô+ªì‹^ÃÄ·–ŋ׼ÿ€ê’3mM‹gœ3gN"‘H¥R¬%‰d2iŒ v—¤”¯mÞ<ûÄÝXL&æa3fü¿þG¦Ú«2M“ÊÄ9çœÓì7 9ˆ‘wUc£1íB+Fj÷ÝwÍ ¬a U].*q„”aÐãºgÎ;áÿ¾¹í¨9ŸÛ3…çÿuë›ó?<Ù¿‡Õ0L ÃÆÐh˜ËV.—GùnOmØ\̠夶dÉ’£>:2ކP*Ôªí&„‚¤RŠ…s>÷ÜÛoë˜7÷Øcõb£9”Þâ²GL£Ç¾'­:¡ bvÓŽ´œÔŽ:ê(´rÑD†i#­r •…0 `Û_ûÚ ó;l§†¿~÷93gM+–tÛ¡5ì„bÚšaTfœ¿Ìa¥æ@³O„aê¡åÆÔ0C*Rv]CÇÕ ¤”¡¦ÙÏo|õôægÂpºcwÞœã>·é½wµ˜¡+ÐqŽ€*]2 ÓF´\¤†Š¡Õæ‘H‘q´È=A –„@ÒÖ:•g6 #5u[DQk—j†aÚˆ–‹ÔÔ¸‰¼³O©ácÃ0Ô’gÏŸÿ_7ú‰DÉŒýió¦³>{\BHZØXÓh¦±Ë¦­i¹HMí~Ž"µj£€Âðƒn)4!ÎZ°à×|=o˜¦œ÷¹¹™B)€ÔMÚ]§&M¼p†aBËIºŸjgp”Hˆ–17HKiëúY'ÌÛ`t•ÊYÇ ‚À^Sµ'a¦-*5Õk#EgbÄ|iøAWà$ô ^ô€@ˆ`ïžÔ¢²«š¬ll=yÉ0Ì„ÑrRýnª©Ùå ‡W ¡c-„DàÇ‚ #Ä]öE¨”t«n/„À=×x@aÚ–“š:Š?–A4õ±¨$)ñ[bÞYiYô©Õ žyæ™I¹V†aOËIºŸû4ZÒ…otK]K5£'”R’Ñ\×ugb¯a˜‰¤E¥¦g,FC°MµÔ R¸€ZVbº¡''©9Žóè£Nàå1 3Á´Üè8Ž©Eú†t\=æ¹§úølÕÍ豨3Û¶Çá0aÚ–“Ú¢E‹ Rw’vsÄ1þÈ´2Ê`™îáokÖ…RÆ; 2L»ÓrÝOÀüXµ %ÍŒåᢒ«`ø mÜïÛø¾eDDZm۶퉺$†a&‹–‹Ô`Μ9T‚³¾ñûÈH•%Â0t]ײ,˲œ ëׯoô¥0 3Ù´b¤¸S#%©éºŽ«Ð±FgÍ~((VŒéÔ`àmÛ–eaýJòÚÄ_Ã0N+Fj0oÞ<5L£¨ ­4’Ѩò€çyTT<ò[ÏóT‘ÔÖ¬Y3©WÈ0ÌÄТR€-[¶ ÈÔ®¨çyÕ-QXØ’Ê©è/;CPdt?ÞNþ2 3´®Ô®¼òJt™:¸V½’I!EµyžGwZ–E.++¨aZ¹\®Y’a˜v¤EÇÔptÿç?ÿùå—_®N€bÔFUìP^©‘ÈÄPéû>Nk: ‘mùòåͽR†aK‹FjŽ=ôÐCQ†?’ÈèþH)OV£M ÖÔíæ›onö…2 Ó`ZTjļyóÇ¡a5ÌÃÈçó¥RÉŽZwÝ÷}²kØëÄ5¼½îºëš}q Ã4ží~ªà`¿çyŽãD*§`eu*y‡^€0 ©¿‰vS»Ÿ—^zi³¯‰a˜‰¢ ¤6þ|x饗¨øAµÙ5M£$5¾ò)rpñÅW¿DõâP†aÚ”6ò…/|~÷»ß©‘I*ª`ȦŠÌ²¬B¡P*• …ÂUW]UóÉÙh 3eh©!gžy&<óÌ3‘`lÛ.V( t¼jÕªfŸ;Ã0“A›I 9÷Üsà±ÇC—á­ã8ªÈèàÇ?þq³Ï—a˜É£-¥†àèØÃ?ì8Î׿þõÑó¨Ã ´±Ô%K–Œ¥aZ=Om,ˆ‘K±0 s 1¤V]|€a˜–© 5ŽÎ†!¦‚Ô8:c†˜ Rc†!Xj ÃL)Xj ÃL)Xj ÃL)Xj ÃL)Xj ÃL)Xj ÃL)†¤Æë½†i ö™l?$µ‘jž3 ôû ¿$»Œa˜©„$íq÷“a˜)ÀÞ‰Ù†™Hàa˜¶¥:“ê½ã±›)ö'A„Ûs{nÏíÇß¾ÚZöóB¼ñÆõ¥wˆP@(nÏí¹=·Ÿœö5eU£FA}ñÚØO—Ûs{nÏíÒ¾æ®×{ÇÔxda˜ö…†ÑtغuëSO=i¦Ä p¤ûù˜ù˜[áÙ;iP;™CÔÌñPïçc>æc>n…c…ÿ6­’'{EIEND®B`‚ghemical-3.0.0/docs/user-docs/images/add_hydrogens.png0000644000175000017500000003674411563552731017653 00000000000000‰PNG  IHDR*[ÊN¿×bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ ÷´;ì IDATxœíÝoˆ$÷}çño‡6TÃ,tÃ,Löšn„ÞÅïrzà :ˆBœŒx fׂ‹’AÉÁÅJØR‰?HöòN 1RàLÖûÀB£³‚­Áb× Ñµ`Aì@7ì@¨¡ïAõ¯ºº¦þwýùUÕûÃLwWWýºº§êÓ¿Õ‘¿~o)êîW]€s ëX~§êB„!¨mu«.@ìËWª.B¡h¾€µ¦óEÚuÜoEP1ÝÃ:®º…²ÍëU´Ð†c¾H{Žû­*"íyCó›¤A¥éÕ€Y«çÿú²ˆˆô¾ùFàí¦Ñéõ©²x•ù>ä±$ëð¾Î<_OÔþ +[Xyýë {<¨üaÿCQeÓUQŸ»¸ý›tÙ4ëiú1_„¦ŸB¥ù°å¥ Õ€|{vò¨JØItþ¯/—vB+c;EŸø’쿸}4òxêLüŠ(sšýµlÚ÷© Ç|‘bûqÇÍ4Ÿ—,ÿ›^¥•m «–¶®¶žÈ¡÷þ°÷Å»|’uP¢žTVï:üëôo3é²qßvÃÊ÷º²[OÔ>ñ?õ>¤ÙA·ƒÊ“åËEØç+ëgȿޤû/I½ÏUÛOr¬*#'©J»O“,Ÿe½Eʲþ¶óu£>#AǤçÿÒ‚JXÔ‡½ÈzÓ«ꣾ…Dd¼'¼4ßh²>/hÛAËÝNºl˜¨xÔë*C–ý™eŸäùMV {nܺò>ù—q|©RÚ}šôýÌúÿ¾ ﺼ÷ù% GM?æ‹Ä7ýdù‚á÷*é:¼Á$K™bƒJ\Ê>dÙ^ªóüö(³<¯NÂÂJ‘¯+ê·ªýYu¶©a-º¼AµVaËye-W\PM³o¹¼_X²Ê{_§ ]qÛnÃ1_$þ¸W›\–¨š¼$jÝ™6Í?m›«óún³žªÿQŠ–õŸ0ë¤ÌýYæ¶¶=‡-“ÇkˆkV *W”£A}ŽÒ†äR›~¶m§‰>¡F½è6VÆuN kÿN²® ug)CÕ’ìƒmúÄm3hYž[Dy‚Kú¾Yömö_QeòË»ïLX@J[þ¤Ëý^e]6Í~mã1?oy6™{’~¦:Æ7^_n]Í5½°MÿÍBV¨¦óEÚsÜ7¬ãzw¦Mª Õ€|{Ȇ04OŽù"í9î·"¨ˆ´ç E:º7MȆc~s´¢éÔaK· Õc ž:"B ÐÒF•;oÝ©ªrëÅ[·»ËåRß<”[âoÔ’$¡–µD6Ö³­¸š”¼>/iæeaÔIe5*yoôOÞæº$UÌ'àÿ¦ãžh >áUµÝmU]î°í—Yÿv«ØÞ6“4Å,’†ÿ2yõM‰û<øû«ä)l½N¸ê£Ò•<´Þ`±Íz«ž,²ÙÆ|î[ØÞXF'#é}ÔË­)#Év-ËÓ4Ÿ`ˆeéñÍ«ªýåß~ÒûëÎß÷Á;é›%ú}>¼’öQÉ[Ù?É|RÞaÑLò†ºÈ½F…klIí¾ã}Q}-:t"ׯã HDJÝ_A'Õ,´ÂFYˆ¤4j;þm¥½?3Ï~z jº×Æ•¥ªýfâ6 ê"×PéyúîÉe)bŠ)Ö#«°éʽëU}9–_r*„‹ÜÜ_aUSÒ@¶¥ÝêvÚû³òïgõ´=¬$yýQŸ§¢¶Ûö÷õTòîXµml’®ºOŽ{mI^{–¡¡Umw[u-wVA!#,¥½?«$}.FæHæOòíĬ3Õ4–f$–?8 -Îu÷;emh¹\fúIb£ûeÓ=PŠHª¿ýë)›{"é¤;Xõ>ê¹Ãp³PÍ#:©¶k\0ÖÃR+Pöþònïßþu!?õwNi÷³zmU>JÕéˆd.¾ñYY­# ó²éó¨MAS•TÊ4öt$KûwVÏlõMhäÖäXíý±Ïó ÁU5Y¶;Þ»%Év7†,gØn÷—÷3âïŸáíôY {n]x÷sC–+ø|”)ËuÌYOñKRŠ€¤ã(- ‰Ò®ž\d'ÛºOöÛQ· ™JƒínKÇrçݼµÞ²û¨ ,ÇŸ,Ã…“Î…¢ëÿ1T)A¥Œ”:OŽkó|îCp·Ùn•C–«Ú_Yäѹ×_c£öwÚûˤãö¢$»a¸0¦´$—ö@—÷œ*Iér*cMî&²¹üû#® (°}öþ2éP†²ä.ҮÀ¦"¨@MPÐìL šµvôþQÕEP ‚ €ÚJ:×€ú *GïFC‰{ÊPÆ•ÞTë\PI2ßÉ­oR¯sAåÎ[wª(Gã¦n{ïÏãùaåHjl‡Œ°2…=æ/[Ôóƒn'‘¦üA¥ׯ]w«¿ƒóÞµlÜram+nýi¶¤¼i¨oôêÇ"{Ìû¸:g}~’e½Ïñ‡œ¢k!’–-éºÊ.?ø1JE¼M'þf”¤…­/é:ŽïÒ|TV³÷Û|Ü7û4Ëæõ|°©²/GÔöÃîשüÚ‹ R‘¨yÑ'ù²šm¢‚PafÛoûižŸdÙ ¦—¬'{oPˆ[G^µy–²"¨4HÚ¦”8Þ ,òÞvZytôLÓ_$ɶ҄‹<Åm'i™ª*?xTDçεIOEžíƒJ]CŠ']À‹ÿYhTêR:‚/ì¼®m•&„°-ƒ !ˆhTDœPâ¿MH ]´ *Þ>*¬Rh'킊!€öÒjÔ„ €vÓ*¨( ¢QP™# Ø MB ðÓ&¨øT€¶*@[ ­JGý]Y˜Nµ@©|x²?˜0L(Ú5ýŒ­ñFM‹úÛŸúñ/—ô6Ð_å5*IxkYü5.ÔÀÐ\ÚÕ¨ñ‘°P⯉ñ"ÌPOµ¨Qñ£€v¨EŠ—ªQ?QËh¨7í‚Ê6Í4*œ¨çûo€z©¼éÇ_ë*ü5%„š«Ò ’$\-ã¿/ª³-€úÒ®é@!¨mT€¶*@[ -‚ ÐVàðä£wÊ.À9¡ó¨ÜzñV™åh„år)‡?8¬º4Fä„oã™,-©£÷©… oôQÚ"¨mT€¶*@[•^=9«ÑS£Ûtú ™jW£2zj$ËåRDœáÀËåò\pÍP« â)NÇý›°@óÔ&¨xCŠBX ÙjT‚BŠBX ¹´*Q!E!¬ÐLZ•$!EQa¥ÓéVhm‡'§ )"âõ7C–¨?-kT)@DàBHŠVA…¼´ *ãÇîè8„šO« "’,¬Rh킊HtX!¤ÐZ‘ͰòÚ÷^“×¾÷št:yõ»¯Š!€6Ð6¨ˆœ¯YQ!åµï½FH ´ðM!Ð^Zר€v#¨mT€¶*@[ -‚ ÐVeÓGOïg82P*G…P¢hÛô£j\¼5/£§FîOÐòQ÷‡Õà}i=3íè©‘[ëâý;걤Ïú«4¨ÕrxƒDØßQ"4G­ú¨DuÀUù×I“õ¥uÓWP3ŽWXs5,Ô—¶iÓHZkBí õ¢uÿýÞåÕíñÇãЦŸ ç€ú¨,¨Ä…† Çý÷%iâ!œP_húÍDPÚ"¨mT€¶";Ó½TV9Î *Ëå²ÌrœTž;ë‘UvY6ÐGh‹ ´EPÚÒöêÉ#3ÛÇSæÐÚ‘ô#:NA%UÐ:¨ˆ>h3탊Í9´•vA%¨oŠºÀ@»hTD6û¦¨¿i }´ž<¶ÆçBI§Ó¡6€Ò.¨(Zo­ µ)´—–A%‰áîP†»Ãª‹ ¤mPQµ*aµ)½zÒû¨Wr©@™´ *QÓæ{8Ï??§V€ÓjxòØËȹµ(ê·÷>(Óëÿøº\ùüé]X×àÎçs‘…Èü·?¨°d@;hTDÖáļlŠˆˆõÈ:RÆ{cŒ¤÷QOÆ{ÔÇñ/Žÿº…ÈôÉTîÿê¾¼òW¯T],xû·eÿ©}‘®H§/""½žÈBd¾˜‹}fˇ÷?”éã)(vAÅ¥¦R±‚&  .Žï‹Èêd×1 ClÛ–~¿/ËC9øòL§S9zÿHÞø‡7*.-Dœbš¦;†Ó¼¼zߌ®!Ò±Ïl±û¶LgSyïçïV€‚hT¼Ó䛦S›"KSL±YL£Z:¾wìÏÉNDD"¶m‹½pNvF׃/ˆÑ5䵿{­ÚB·œªIQ!ÅØ1ÖïÛŠ±cˆ!ëû®AX ¢MgÚ±5Ž !q‹0dzqCÊÞPú»}é÷ûηrÃcÇpîÛéË ?Ã0dxq(ן½./ÿåËU½µþùÿóFMJPHñ2Œõrƒ‹ùéÏ~ZbivÐ&¨xYÖª½§ãôQIŠ!ËÐ… )æ%Súý~èrÆŽá„•Ýsr\5}ç}§ÄÒBDä…ÿþ‚˜—M1º† vn¨ŒcìNØì2¸0›ß¾YBiöÐ.¨¨&˲ÜÀ5lÙ}C–¡£»:yí$;цsrq¾¥.äÆ×n]Lx / Åèzšs„×b½üþSûEh-­‚в·_J’°èཟ¿Ûdà§F•¨`3Ü:#LPšáp(½ž³Ï#U¾~ÕQzÇá%¾(yÒ*¨ÄõQ‰|îjPLN'¹– H£×ëm|3OÊ0 ‘Åêù†!{»{•AÌKN'~5*+ Û¶¥×u†.ó¾ùÒ*¨ø¥á3Þ3lÕëŠôŒ”µ!«oïÆŽ3¶ßï»ßîQ¼߸!óÅÜz¼ )iÃÊÜ^=aËËN‡h /Z nn~ËéH9=›Š,’?Ïr´Î<+ôS)‡}fËl6“ù“¹Ø Û )Þ¿ÙÙLì…í®grB­.‚ £ùb.óù\Œnºæïò¶m‹,œ“Ÿ>35ÛÝŸÜ•éÔ™¼Mõ>Ä™ÍfÎDp«e''yçßÞ)¦ @ T€½ó£wÜ¡¾aÇR¡Dœ“ãü³¹óí~îüF9ì3[NNOÄ^8µ"Ó³©s;"pÎf3±m[&§gò¾'Óuà ‚ 3ëS˹–ÏlêÌ>S³2;sNvÓ³õ7ú¹í„”ƒgJ(1DD&§™Ûs™?qš}ì3Ûý­~DÄ}Og³ÙÆû<:¿g§„K O•T,û‡'í4›ÇU”¹3Šf}l‰yÉ” d"ÊPlÛÞ¼VŒ½yÒÛ8Ù­¾ÑÛ¶-_>ã{Ç2NågÿïgrûŸnWüêšë½#æ%SzÝžØ [ƒÛWHÎV¤Ïœf:*Ý÷ïñTf³™<üä¡{ýù(=¨ÂšäáoÊÓûO‹tEÝLN'2èܰ" Y‡•źã­}æœô&ŸNœ& ³¹˜—M™œNÄèòü>/F×7¾Ï… ‹b}j‰tEž–§!æ]Cf§3wȲÑ5dºX‡uìÙ™R,Ë¢ 3-ºê—°Ç’.ô˜º`„"ÝýÉ]î åÊï_Yˆ ™Ø“Oý£|T³õÈ’ÙéL,Ë’·ßy[lÛ–¡ Ýš™ƒçÄ^ØÔ¬àå¿|Yžîy9üÑáºCíb.ŸÈÆpñù|î¤Ìçs·&ev:ë·Öz^Õ\$²+«~+„•| ‡Cé]èÉÃ_?tîèŠ Ï†îåfÝ™ôûýsÍu³™,ÓNð ™JjTü5E‚ ªpûM'Hì?³ï\¿§?㉱Y£r¶>é©Þ¯Ýû¿º/Oï?->pþK»«š˜3§Ï„šrùQ3Ó‡CùúW¿.oÿøm999q®zÝ5d0p.Th/ÖgÕûwóÅ›òá~Xñ+š©Ò¦Ÿ¨$¸þtwûÍÛróÛ7eowONz«“žát¨UfÕ$c³ÙLn|í†Ø [®|áŠôw×a¤¿ÓwNІp†C®'“§›ßº)ý~_^ú³—dß –_ÿÚ×Åèrÿ£ûòá~('''NØ™3!ÜÛï¼-""'ŸžÈt6ó÷ÌŠ_ÐLZt¦õKZBM ê@õ[xá«/¬kVV¼MÏœoææ%S^øãœš–Õ4ìÃáP®þþU÷›ºjZP׺ù­›røCúDäA…ÂÁÀ¹‚õáEº"ôÜÉ¿ßýw9þÅqàó¼C–®!/|õ¹ûã»åh -:ÓFIÚ§$j9ú¥@ÞØñ½cÙÛÝó²éþ¾ö½×äÚ—®Éá¥×uˆù»¦<ýÌÓòàþƒuÇNìÜ+-#½+_¸"ûÏì»×dšÍfòÿó/äê•«2_Ì¥gôd¾˜ËÛ?~;zÒ½îê?"N ýT€ÜUÚ™Ö{_Øãa#j¹¸u\P¥¾ú‚ÓÜÓwš{Ô·ù·ÿÏÛr|ïXú»}÷w†a8}&¾ùu示úÛNÜ+_¸"÷u¿ÂWS/W¾xE®>sÕÙ·]Ï(¬U –ÚïsÛiŽ›>žÊëÿºüìÿþLžÿãç7W¦†”«igSgfb¹ª´3mÚÇý÷G­'é:€²Ýýñ]yéÛ/mŒþ1 Cüú\¿vÝmRßì÷v÷äääD®|áŠ;ÿŠšeÐÈþþ¾X–%÷>¸Wñ+ÓÛ•/^‘«W®:ó£ì¬CŠˆÈàs™Î¦ÒëöÜý~òé‰{iõÛKM³¯ÞÇÉc.D)ô <üÍC‘…3m»9"â4 MOÜæ·feÇ9¹]Ãí«n÷vzbš¦\ûÒµ*_’ÖÜšYù^ÊàÂ@†Ã¡3û¬¬›q¦³©ÌŸÌåÊ3Wäð‡‡òà×Dd=þìÔ )³Ó™{›©óbT€ X–åqu¯ ´º¶Ìñ/ŽÝ~ªÅpw(ËC1MSƒ /7B a%œ )†±Þ_ƒÁ@úý¾˜¿gÊpoèô’õþžÍd6›É ït®µYrrâÔ°LN'NH™9žœ<žÈÃOÊä„ Úw¦šèï¿!æS¦ì˾ˆ8£|;ÎIñ•ï¾"Öo-1»¦Èޏ}&Ì˦³\ß™–¿·èÉüÉ|=-ÿŽ3lùʯÈý_ÒoE\pšÑTŸ”Þ…ž;† v°28—7¸ù­›rrâ 5žL&bÁéC4Ø8×[šM7'ë[ˆL&NHyðër÷'ŒöŠ@P*r|ïØ=y.nN³ÿü>/†aˆõ‰%_ùã¯Èp8tç_™N§b†Lº9‘‘'"bˆ;ó­Z'ÆŽ!ƒgH¸Ûì³ë4÷˜¿kJoÇ©E™œLœ+WŸÍ™„W}ì3[ú»}÷jÉjú|u¿~Àõ}€T€Š¨"××Å\˜b†Üþ§Û2Üs&sëõzrðÜ3m¿/ý¡;_Çd1qN°§²žn¿kÈ\æÒ»Ð“ýÿ²ïŽf1ºÆzhóbsyõ¸Èê~Ïã½ÏõdþÙ\zŸë>öüÈíz÷ݯ†{;´¦)oØã“ÓÉúþÅæ|4ÒÙÛÝs&ÞÛ™ËôñÔݯî Â]§Vf2™lL›?ŸÏÅú„‹E#¨Rae6›I§/ƒÝ;,Ùè:5½^Ï™$nÕ¡vn;aDNkçóù:\Îü+_ÿæ×7B@›ON'n(ê]艽X_cIÝXeIDAT"'§'""n(™ÛN3Ñ|1wÃJ·/ÞÿpRÎæ $ b*¬ÜøÆ ÷"†¶m‹\™žM¥ÿY_¦³©{òµδûîr"듳턜ù|U²º¿ìÛZý–U³XßÙ/†aÈôÌi>S×òQœ:Í;Ó'S÷y"N¼û“»òð£‡[½×ÒcÔ  w²°…¸Sì‹8'ÉÙÙL&'™œ:WX¶¶;”Ör¶mÛiÖõýeßÖé·}f»ÍM"N±Ïœš‘ét*ÖoX“ÇëÑ<½Ï­j^ÔzBH*B  ‘élêöEéõzrrâ4KÈÂéªjTÔÕ–Ýoþ«P3?sš3¦§5 ÊFß‘îúäí ©‘}¾mG†„¹íésô{5OLhȰϗ7vû¾òÊ©™ônY59›ªYQûUõ=Q£zlÛ–ùb.Óé4õ{ @#¶íLÉnˆ!Ó'S\85(¶-ÆÌžÑ“éÙÔ9‰ª â­NÚ3{æžÜït?¶9Du” ú-ò—ÉéD†»Î~5 CäLÃÓôÌ©9QSæÏÏæn3€jh×G%.¤$]¨£û¿º/“S§YÂÛü ç„;ÿlî4÷¬š*D<'ÕÕ…ôܶ§}æ4—©ýéî'OÍ”Ú*´Ìí¹Ó7èñD¬O¬*_ÐjZÕ¨$¹j²ZŽ+ £©&'¨ w‡î|#¶l6“ÌÎÖÍ<ª†mÛÎŒª• ã4Í?s‚Üpwè„“®ïWqBßl6“ÉdÂÕ©ŠiS£’4¤x§fMtÿ—÷eúxº®YY]È%_U0·ÎŸÓÇNXatÊyóн€ ºVêxì {óÅÜ騼ªI!¤ÕÓªFE$yÿ“±5¦fuïƒ{rå‹WÜÑ>†½êH;›J¯Û;×—BÕ¤R©šu¥äÞ…ž;­¾ª…º~íº;/Ìô1#}hTTÍHÚÀAXA“Ýÿå}ùÊw¿âÜè:WU6 Cf‹Ùzèìgsw²2BJ<VDDö?¿ïN§ot 7¤¨ya†ÃaE¥à¥EPpÞÁ—Ö×ÚY8'Ö£wœ°²ªI!œdçßwOï?-ÆŽáîïá%‚  mú¨(æe³ê"ZØ»´·1ãël6cÇ{Ü“‡=$¤älr2Ù¸ãðâPž;¨¶Pô *O?õôƵt¦³©ÜûæG)Êt:uF\­ö·ˆseeÕ"¨r¿É« ÚL:V´{ÜsçZQ5YÃKCÙÿü~Å%ÚMË BóÚμdn|³ŸÎÜ+&£8'''Î>_Õd†!æïr<ª¤eP!¬ Ý̧Ìoös{.÷> Ù§hÓ'S99=Ùý³G§Z JZïnÖ£õTÕqa%ë°f@gϸ5)²X<ÕU”Q¨û¿¼/ÓÙtcÿï]Ú“›ß¾YmÁ€Ófx²wN”ã_˵ÿzMD6Ê7Ä0+-šÊ¼d:5)«æ‡Ùél}âDá&“‰ìÿÞ¾|ç»ßqï;üá¡þà°ÂRí¥MPY‡•ëÏ^½Öÿ6µ*hŠ;ÿrÇýû•¿yE¦gSš}J4ž–|õ™«•€M?^Þf °Ÿ Ô°  ^ÿÇ×7nÿé‹*W¯p’,ÓÝß=wµä+_¼"/ÿåË•h7킊H²‹-CXAÝ]¿v}ãöƒÈä·“ŠJÓ^÷}£©ùö›·åùçž—÷ŽÞ“÷~þžÜyëýV€’hÕô㕤)G5yÑ „º¹ó/wļlŠ}fËñ½c¹ö%§–,œá²·ß¼]m[èö?Ývš€žuš€®_»¾qÃÁÅ<ýÌÓró›7åèGòÊ_½Rq‰æÒ6¨$EXAýôg?•Á…;W‡Ñ5ÄØ2 äÞܓ铩X,™2É[^ýÛWåàÙ1v é÷ûÒëöœ z&à›/æ2›ÍäàÙyõ»¯Ê+CXŠPû "V]½wôž /Å0 éí8ó¤†!ö™-²+2=›Š±ã„«kɯÝwþíŠKÝÞ2ÜJ¿ßcÇ8·œ}fKÏèÉôt*_>WÿöUjV€hÙG% jPPïýÜ )ƒþ@†—œ“àÞÞÞÆïá®bb^6åú³×åÆ×nT]ôVxõ»›!ÅØ1CŠˆ8µ-;}ìÄØ1äàÙùÎ_'pYÙ5¢FE!¬@gª&eÐÈÞÞÞùÿ¾®sò“®È°;”ééTDDöe_Œ®s²¤f¥X{—œ‹ªZ”~¿¹¼±cH_ú"»"–m9’«F@gƒ Î7ïþn?ò?Ï0œP2èĶmé]èIo‡©Ü‹vã7dиû_ýŽã]¾¿l¤×˜¦@g¯ÿýë"]‘ÁÎ Ñ PuÜT}Uöv÷B› ÕEº"=£çÖbÅò¼Oƒ yé¼TlA–!¨%ØÿüþzÔHBî‰rõœÁ` /|õ…ü qf¤ñÔ¤¤©o^¬Ÿgš\PÈA(Á`0pçáHÌó;w¡çv´E±lÛÞøk±ù<ùª¬JÔpb:Å¢iÔEí3;UX™Ûs÷ù½n^ešN§NØXˆÌÏæÒßIÖßÄ^ØbÛ¶Ø [¦O¦2yÌLÂ@ž*;ì……æCA#-Dfg3ô‰ŸbÛ¶ôº=™ÙΤoÓÙÔýöŽüœžˆ}f‹=Xר$i®S“¿©39!¨yÒªé'hFÙ¨‹†=¦n{ï'¡J?y(²p&sKÒD`ŸÙîòêöìl&“SN‚E™Î¦Îþ]…ÊéÙTf³Yd8œÎœ÷fµœõ©%ïüˆ!ä@ž´©H )Þû¼·£óÞVEýM³ª`}lÉÕg®:'ÁÓYð<*+n3‚ )¶Ó´02—»?¾[b©ÛåîïÊÕ+Weòx"ÃîÐ +î(¬Õµ~DÖïËtæ„Ïé“éÆsäC‹ RD€ð®p‚ª½ñý7äù?|^NNNœ¹6NÄLÌØ1Üoí³3盹:ùÍf3™Ïç2MÇP¨¸£­†‡2“Uʪc³¢úÍf3'¤<žÊÃß<”¿~PE±F«<¨P˶8zÿH¾| 2s†ÏOçΨÛù¶®¾©Ïí¹Ø‹UHùl.Ö#K¬ßZîLµ(Î;?zGzßZ’aw('ö‰†!3™I§ïÖx©÷k:uBʇ÷?dæ` •B Ú䵿{Mì…-Ï?÷¼œ,NÄØqN~ÞQ@n³Â™-óù:¤XŸXœKrøÃC¹ñ çÚJ¶m»5_ƒ 99;‘é'4Îf3™|:!¤ªtx2!móÆ?¼!F×ë×®‹17¤×ë¹C–Ý•¹S£2ùtBH©ˆªY™<žˆa2¼8”ÉÎDýLO×ÍrÓ'S™|:áý TyJ`¼a½÷Ç=è쵿{M^þó—epqà^}W5)øû¦X)U9üá¡û÷¯­¯dÛ¶LN'tlJ¢Ý<*i– {,¬#-aºxãûoˆÈêBx;·yÁý¦~6åD¨Â"PÊ;ÓmÆœM« ß¼*@[ -‚ ÐAh‹ ´EPÚ"¨mÕ*¨„M¹š©6AE… íQ‹ â½Ò²ÿb„ ¹jTüäâ‚´C-‚ h'‚ ÐAh‹ ´U« B'ZÚE› ’dȱyÙó²¹õz@=hT¼ó¤DêtœŸ̳@st«.@ÜŒ³*À˜êñåRL±Y‘$qøÚª<¨¨,¡"ì9„šA‹¦Ÿ$Í5– ŽX¬Ðå)4Gå5*J’pa%X†@shQ£¤VA…Ñ<´K­‚ h‚ ÐAh«AÅß7…¾*´C-‚ŠwžæI =jTDÖó£RhÚB mS« Ú… ´EPÚŠ *#súS†¤ÛÉZž°çyïO² È_ìÕ“½X›84X }núë Ž¶núñÎoâ½/¨ÖÅ»lPmD’šš u§)CÞy\¼ë'ÌP¬Ø•$¼'í¸Ú‰°e£Ö·.­HÚïó è#—δÞ{ÜI>I[¦ÈR˜€òåR£â—¥¹Å¢B@Qk“Ô¨Pã@¹r*AÍ.Ieiú‰[WÞõFЇ6ó¨9Ô—aÄÔSî5*þ2Ik(’4ýÄ­Ûß¹Ö»\˜ ²Q«€R• w’û®|w;Ís’¬+HÚŽ»„Ê£MÓ€Ah‹ ´EPÚ"¨mT€¶*@[ -‚ ÐAh‹ ´U» Â•hÚ. @{Ô.¨P£@{Ô.¨P£@{Ô.¨xkTFæÈýÍS» â­Q¡v€f«]PñרVh®Zó²)ËåRD6C a€fªUP‘NÇù mP› bª&ŸåRÌËfµ…¥Ð&¨¨¾'a¿óz¨m‚Š¿¿‰ÿ·¥šz:±Y‰žêM› EÕXÖxX@ãiTüCiÖ =´*Aó¤Ð¬@{hT¼bƒB 5*´‡vAE$zÆYjTh-ƒŠHxÍ 5*´G·êøÅÕ˜P£@{h[£†Ú£vA…Ú£vA´Ah‹ ´EPÚÊ4<9jäM]£&„˲\ÐóÂЙ€òd *þ‹6íäöz @¹ iúñ^¯Ç{Ÿú [6(„Ý´Œ{IËDº+lfZï‰Ý’ºäï°íxo­qª2$}- <…u¦õžØó˜¿ª‹R¨Ni×úÉÒÜ¢jEÔßÛ®;m)T«” Ôì’T–¦Ÿ¸u%AH zZÏ£Rä(›¨uRÐC)5*Þ&ïí$}Wâš~âÖíï\ë].JX!ÀPž­ƒJЉ;É}êvØýYÖ•vÝa#èAë¦Ðn -‚ ÐAh‹ ´EPÚ"¨mT€¶*@[ -‚ ÐV)%ÜVš‹ €æÐ>¨ø¯²œäªË ´nú %ck¼QÚKË â"ÚIË â­5¡V€öÒ2¨ˆ¬;ÍÒ€öÒº3-5'´›–A%épdµµ.4“VA%*x˜—M±Y÷{k],4‹6A%v~”NÇù°Œzs¬Ð,Zt¦ ¦j Z.Ýš• ôi Y´*AjT,UÛÒéœë£šK‹ Ôdã¿mYãu` AšE‹ "²+Þ/jù°Ðt?M<ÔS¡%Œ aiÆ6'YoTçÙ,eÕidÐ  -‚ ÐAh‹ ´EPÚ"¨mT€¶*@[ -‚ ÐV¡×úÉKØ•¹NͦuP‰»Šr’«,€úÒ6¨ŒÌQâ«/Xh&-û¨$ )^ck,ckÚDêI» ’6¤€æÒ*¨lR¨U Y´ *^Ú•$µ)æeSÌËfä24ÐÚ•D:ç´Bm‚Š©úž,—±µ* jT’¢3-ÍQ› b©¾'ŽX¬ÀeTH!¬Ð Ú•$C‹-k¼,>Þθj]êMÛ)ôÓòöaôõ§MŠÈö¶1«-Í¢UPavY°¦]PIVTjShmû¨xÃJX‰{Ô›¶AEd@ÂjW(4›ÖAE!ÐNZöQ!¨T€¶*@[ ­ÒGýø‡Ç艚ÈÍûXÜraQ€¾J *Aab›e“>/K€Õ+­é',ø§ËWûC„š&ß_Ôs²”èCË>*þ¡n‡]H-›4xR¨-ƒŠ?Dä*)Ô‡–A¥(„ê¥5A…@ý”TÂú—$ ÛŽÎ!¤PO¥O +I„÷yQËg™K…€¾JŸð-.„u¤ Úœd½„ê©5}T@ýT€¶*@[ -‚ ÐAh‹ ´EPÚ"¨mT€¶*@[ ­Ò/JXïÕ‘¹!ÍP‹ ’&„Rh­ƒŠ (Ëåú¾Nǹ/(Œ­±ŒÌa€†Ð¶ÊÈÉr¹RDĽÏ[Ë"BM M¤ePQ!Eét6ït‚ÊȺVÔŸ–AÅ/¨V4ŸvAÅ_›%¬V4ƒvA%HPÓh>í‚ÊØŸ "Ë¥NÔªqétèD @“i=<Ù+isÓhíjTD‚kUüüµ)ôU y´ *"ë°Ô?%¬É‡ÚšEë¦:Ôl´ÞûÂVh­ƒŠ’$xNhm›~´ªQIs•ämžêAË•4ƒp@siTÔE“ 7VËVh&­š~TàP¿ãŠ7 Vh­‚Šá€vÓ®é@!¨mT€¶*@[¹5LØû“æ¹y.—ôyÞû“,Ê—Û¨ÿ]æ7Qó²xË¢KÙ@´Òš~‚j[Ôßþû².—• 3þòf¨V)AEôÕ A¼m³\ï2ê#·¦XÈŠ AM@afÐC!}T¶iŽ)ªsm’BH@/…L¡Ÿõ„Ôé5jYÖK >1 Èh¦R.Jèïð6”9h9oíGÔra‚jO¨U r *A'ü pä¹a·“®/IÙ²ÜÊ׈¦ÐL -‚ ÐAh‹ ´EPÚ"¨mT€¶*@[ -‚ ÐV)%ÜFØ•‘¹&ͧmPQ%,Ä=êOË 22G±D=N` ¹´ë£’$¤x­±Œ­qh¨/­jTÂBŠ7„Ps@{hT‚BŠ (Ëåú¾N'¸©GÕªdhíš~”‘9’år3¤ˆˆ{M=4ŸAÅ_¢BJ” °Bm Í¢EP‰ÒéDßÍ¥]Pñצ5ýxÿ¦ €æÒ.¨lƒÐ@³hTÆÖx£y'ªé§Ó9?ña€æÐ"¨DMض\:Dýu²õvÆeò7šC‹ âç¯UQC’7çS‘pâ>¨?m‚Š¿&D…• ¦oHQ˜ì €æÑffZ‘ó³Ëªßj6Zï} ù´ *"ÁSáG…®ž @siTD6›Â€æÓ2¨ˆœvö8h.mƒŠB  ½´õàGPÚ"¨mT€¶*@[…ú VœtOÒéð³N›uÑBF B‡'ëz=ž¸Iä€*GÅBï}ÞP³ÍriÊ¢Cˆk•0P·ý×úÙv¹,ez(4¨ø›R²„¢!}•ÖGe›þIŸ›v„ôVZÓ¿©&© &¨md]/ÐOcçQ‰ 4„ꡲ䪆Å{ÛËßiÖÿ<'Ú¸õù… ú(,¨ðý÷……‚¸åÔí¤ëKR6 ŸÆ6ý€ú#¨mT€¶*@[ -‚ ÐAh‹ ´EPÚ"¨mT€¶*@[ -‚ ÐAh‹ ´EPÚ"¨miTLs$¦9Ú¸oä»Ä¿LÐz@=iTÜ`±\ŠyÙ'€Œ­qìsÇÖØ +AëõÕ­ºATðHR£â}⨀JhT,kìÔ†t:bYc·–$IŠÈºöÅÙX¨7-‚Šˆœ IÊ Í¡E•0Iû¨€fÒ:¨€v#¨mT€¶´éLÛTô¡ »sA¥ÓéprÝ­o‰ˆÈá+. õw.¨Üy뎽{TEYáÎ[wª.q.¨¨€2-—Ës9$° M? La­9ŒúÚ"¨me *Þ«§¹Â±îêôZò(kÖuñ¼*_Ošõ$ÝÆ¶ë[¦èÿ½2ÿ·³\%@ûP£"Î’ƒeµêÒ/ªŒr&½rxÑe)ë=Q € ‘AEÀƒ¾eù,a'û uø×“æyaëðß—f™±5Ž<({˶/¶=Ðn³â–Kú>&YGš×U+ö>åùzŠõ¹O²ß²”3j?D­wÛ}˜ô=Éã„ÎLëÿV§n«o?AEýw;Íó‚Ê©‚Qå‹Z&É~;‡•;l¹¤ëHº’îWïmÿ>HóÞDÉúžçýzÊå³Wθמ¦w›å²ÚvýU??ëú¼ßê‹øv¿Ígc›mä±½¼ÿó^7€v‹¼ÖOó¬ëhS5±¿¶Ç+Ms˶tÚçe‰¦ÓåýÔ¥ê)2¨l{pªöMªm'–°ªò2kbtÚçy—%è³§Óë-‚¯o›cˆ¤hú©ò£ËÁ-®Ccžë-j¹m×±íëÍòü<^êƒáýÉSŸÑm¶‘Ç>€*„Ö¨ø‡ 5I$i3÷¯#ëóÒl7OAp£Uî°uĽI–Kú>&]GÐ>HZ–¨×š÷ëÙVÐûUθý´þ$å̺¼÷aÒÏb’r$yít¬ tÆ—GïÉ­?¹%wÞº#·^¼Å"BÒQ>H§ û2ÏT÷}‘V_3€MGïÉÍoß”N§#ËåR¬O,9z÷(ŸQ?MFµ8ÂðÙ€âEv¦Eö*o$W×oÓE}6Ú6§H›^+€ô* 0GD±ê¼‹*{÷IZmz­Òë½{tîΠûÊ¢²H÷ÖŸÜÚx`¹\VQét:ë¿E„d´Ô•¿~¯ê2œÓÿ¶üÅÇšlH_¾²IEND®B`‚ghemical-3.0.0/docs/user-docs/images/cyclohexane_unoptimized.png0000644000175000017500000005165011563552731021763 00000000000000‰PNG  IHDR™ªÙK9ÍbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ+ ^FZÄ IDATxœì½ohgžïûÝ¥ OA ª@‚.°! 6¸… n‘K$/¢q˜…(äBr G“³ž]ØMîÂÙÉî‹YX—¹î®g^Ìú œe8! Ü!˜åÅ) 6$¸ tÀ†j°  Tð<à‚ÜO=OUu·lý+©ÿ|?`Ú­–ZÕR«¾õýýý ߃B©ÿôñi!„Iä_ž‡â»öi !„ Bt7øËÓ>B!“ E†BHe8§}'…zªUéó3äHÈdÀsÅñ25"#¾kCt7+ýª±TéóBª‡çŠãejD˜®_,!äðð\q|LÈŒ£–ÿë-€û_~u¨ûGý>†þç;ì÷9NFá&ãøÒïi¿Ç2ŽçŠQæTDæI'±*˜ |?§a‚#ÿ×[pÿ˯~o§Á(Ã$QüÝîu‘qNZ\ŽãõŒû¹âI¯÷ ¿“âÏñq{'.2ÇqЇý!ž†~œÛØëÿÅÏ3ÿßëó‹ïõ½ ÅÏ9ÌæAþh‡ Ó°ûýÜ'Ã~~¾ûyíOúœýülò:Ÿô<{]Þë ô÷¼×q?é}=ìãÇíÒ÷½ÃeùÏk˜`äœ}¢"³×õ_yTÁ([àâÉÇüÿI'Ã'=¾GRµ;és>éþ~?÷qßxüëö³>Ìë2ß§ÿø÷ØA^瓞§xO:¦Ç½†âÿ«þ<è1湋ÿ?ìsŸö¹â8.ö{qô¤ç(þ,{Lû™ã´_ÇÁa¾ß([àÓŒWJì¸Ùëuí÷g}‡wЯ;ŽâV†…–û<{‰ãaŸ§È~žó¸^0çŠ*B—‡á8òØ'þò¦žF |ÚoÒiä8æ{®½NÆ£Î8ç4ž+ªb_"3 •!ÃØO^ÂpÚø´Õßݤò¤ÄAÙïïï ß÷¸CeE²Ÿc>î÷äq¿žQ8WŒŠ;ŽƒþlOÔÉìeeó†8è‹ |”7Γ¾v¿Wyõ{”äìqó¤œÌ~¿þ¸?÷°ç÷8ÎÐÒQèMÃBf'*Nÿ\1 ?@ùohlÿÀñÄøžt•¶×ó†Þ+f}_û¸Çû¯.ÍÇŽòu£Î~~ÖGÉ û>Å {lØçõ{ìçóZÜpPös‚§÷Ö¸‡ËŽãâqØïô0Bþø§¿ÕPÏq2 ˜œ,ý'\óBÏǃèn"þt}üÿûå´-0© 9x®8^¦Fd€éúÅN#ãŽ!£ ÏÇÇT‰ ™|öŠ !§ƒ^¿\±5$„2ü€ïOû !„L&\¿L!¤2þòûï¿Ç÷ßÿøõœö±Bsú5å/ ûm÷TŠBÈäPÔ†Ë!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHePd!„TE†BHe8§}äxùð·€O6ð«ÿûW§|4„i‡"3æ|¼ñ1Àu]€J)¼¼ò2®ýè ÷ ‡Í­MÜüÍÍS;NBÈtB‘C>þÓÇ€£…E8B°·¨q[Ái\h ~¶Ž•—VÐùºƒö—mÜúí­S|„i"3f|ü§áθð<ÂpEî`ÌoS)·æB*iï{5q£y© ¸þÓët6„ʡȌÿéc¸n&0BÀ÷|Z`„“‰L  V–$†ë¸ˆ’¢&€h^ÔB³öæ !¤R(2cBÑÁø5_ MM ~bö5ÕEqÃw|Dq¤Å £!„œ,aúŒ¹ÝŽáø5ßÞwϸh^l¢Ùlbí͵j_!dj¡ÈŒ®ë›Õ&˜ ´K9€- “ïùö¾ëºhœo ÙlâúO¯W÷!S EfÄùxãã¼z¬&öï`úqòš*UV¨¼Úœ!„ŠÌ8à@‡º²ÿ…þrgƇ+\ø¾ÕWWöä„ÒEf Ž€Lå‘݆Iú»ÂÒìyI~skîq.!„X(2#ŽëºÖÉ‘84J¡7ÛÐyÐbBÙ'™æã?é‘1V\Ž£àJrPdF˜îƒ.DMçJ¤ÒÕe"=X#f?VP}kþ £$‚”Qù¸ Æ[÷hž×#Šë)Š·^̓R ÛŸo#ÚÕïG¥^¼öâ)59*™¦Ûíbáò”R:wrD'£”v02•ÚÉ$ îqi.@„7V`.6ážqmcp)ç]E©”‚L%”Rj~_¦ºæùÒÝŒ™&|"Úˆ@çd…8Ží,²}ÿöÒ,·“–s0€v2J)ÄI¬ó5 …†/EcF8å)â¥Ûš€H„&ŽÅ|ßLJw>¤£3˜øan¿{[Ÿø ( •\ŠÂ"S •([¾lž×<¾þÁúñ½2õ”LqMÅl6CoVO7·ft’7ëÁó<ÔëuˆZöù5`.°¥ýd< ÈŒ8Ýo»$âX;(Ž´óˆ Î#EJËþoÄ©øyF`Tª?.Ië`ä®<žiB2†9 o,6ŽfÏb¶¬¾8ÜÕ82PdFœ0 ïä‚€4w4qëÛ$¶G¥Êưã):sÈÊ¢31R©bÒŸOr0vØë>C¾¥¯§£+˜“q:ßv‚4@½^RýgÊ¥’p…«C`fº2P…9yŸJä#-8q#Ü õc‰Âú{ •‘£³úúªqy¾.›Ÿî`Šçéâ~ÍG¨Bž½ÆþšFœ;¸ƒ`6™dežIÖï¢2ÁI$\ÇÍ…¥àX„#J÷ã$Ö¡·D! Cºrl˜©ÞBˆ¡eÊ*Zéëyè©^þþ'#Ef ¸õ»[X{Co¯,:ã\„VhlƒåFËa& CDq„ÛïÞÆ_Ü@óRÝo»Ønoãö»·O瓱ƫyvžò Øà£zŽ@”FBàÃÿïC¼øW¬6e(2cBQh„#O—»®;àhl¿‹ ™É¼zl˜ƒY{s ?ûÛŸÙ+Ì`.ÀÒâÖÞXCÇØþr¯; §‘'²úêªMÒz_‘p„•gûbKV à×|„I˜ Y(2cDQh<σ[smŒÐΦ((ö6… ‡Åq\r0J)A`¿) „²  îŒ‹ƒ±ÐZ@óbÿú/ÿzÒ/›ŒàθV Œs‘©Ô–Çád„@k'ƒÝã9lR™1ÃM£ÑÐå5/ßœéä#9€LXÒòMùH"Þ‰%Z èv»¶4ÔÌ5+öå Õ°€ŸÿÓÏ)4dOÌ{Éó<]¶, ‹ò€£ïD2ß'Kþ›œ](2cÈ­ßÝÂê««%'ŠþŒÐ m’_¥ºÿ¥XÖl„çµW_Ó¹™‡!–_Xƽ/–uZ{5]Í/š¹ - Ù“‹)õmvöž‘tŠ#Ràýõ÷ñòÊËG{NR™1¥˜”_ye~ÍGÏéé~ãH’ÂXÿxíõ×ìcÂÑW›sr3\öŽ0³Ò<ÏbäBCGCö`å••RNÐ&ýSÀuô4qáÝÉ”ŠZݰLF6cNëï­ãÖïnáÖoo¡óuÝïºè~×EØ që··à K‹Kúr5°ñÉüóÍùÁ'ÎÖ5{žW¸VÀ‚¹óæñóÿþó“|™dÔÉB³¦QÈ‚MNð¨CXûsŒrW¢{Ÿ"3ÊPd&Œ;¸ƒÛïÞÆú{ëù²†¶ú Ðâñûw_Š¡¥ 4æÿàÍzpg\¬¾ÊeSD³þÁziÒR”Ë–Í>££ MZîûºùo7xä¤J.›V^YÁÛÿð6ÚwÛ¶PÀœ¤ÊB»Àüåy››)‘(Ìdó®ñjžMèh‡á=òômê2W¸ˆ“اtA^qVŸ˜îº˜Q‡Nf BàýwßGå]ýF\áÚ¡ƒÅ?úçø<Z ¥çPjøXD¦–âì<÷Œk7±–V~tQŠrŽºÿ«×ëUñÈ1B'3¸g´ ¨D¡·ÓC½^·£gÌ­p„ÎÍ\žÇÒâêõ:gxmõ5(¥ûjâ$Ƈ|hûL¨CÇð=qÃO}Ý0<£ãy5=sÏôËìËѤȋX”ÊËò³œO÷:™Q‡NfÂùù?ý\‹HM`㣠»¤¬èd€BC6ÄŽU÷|øžŸV«…wþù¬ýt ®«G·û¾Ï¼ ±ÜùÃòþ#³F(÷_¡ìxê碫$MßW¼ãÖïnôK$„"3á4 y26ÞÑÿ6äP¸5=VfãÏ¥=Å= p€ ðÖß½¥¿¸5æeHŽTQé>¬^h…Æ®§P 2‘¥}Göv'úñâ%)uEYçëÎi¿T²(2N¯×+šÙno#Š"ÛkП› æíf2Á1{<ÌÌ)¿æÃ¯ùh4¸ñË\tF0«#Lˆ5Ü Ù_$S‰(‰J«¿mh,Îïw0Ýﺸ×R¤BFŠÌ„Óí꘵Y\öòÿñ2â$F¼£ÿ`û àå•—ážqáÏø¥²åÒmæhÞ_?ÿZB K™Ã^¨L>ÖјYzQA*‰p'ÔNÈ8—‚³):˜{_Þã”ð1"3áÜúí-{…øöß¿ `ùÙe›I†äfj¾Ý­îy|_OÓ5ÎÆMÑÑ!#İþÁ:¢hoGSȹØÎló« ìãQÙ™{ÆÁP`ÆV—Ma/„ïûðg3ÁKÏ.¡}·m]‰©2»ö£kvm€[sÅüÑ®žzk7pfà¾ï£õt í/Ú§ûBÉHáÏúú½—½ï)lõ™©63ÓÃ]×E$#¸gÜRˆ×T—Q`ÆŠÌÐív±þ‡uõ ŸÚ<ããÚ ×ìÊ32Æu]ÈGÙx¶Q3DßñED­° -sBJ(Z#$£y©‰úlËÏ.ãýÞ×ï£0ætnEȉJC^•ÊÞoqXæÇÚÑP`ÆŠÌÐëõli²J<¡7z³…™dYC&xŽî_ˆ  |ÏG´iÚ•Ž@¬bÛÉmÆ··®´Ð¾K7C´[‚žçáúO¯ãæonŸõ­6:v]`…ƘM®¦€3žPd¦€[¿»…µ7³­š&§’m,5a«Ê„º9dš'óãXž€‹RèÌ„ÌÌhBš—š6ûpHÅpêŽhÀ!Í=¹Ê©n~íwBêYe] ÓQ’-$a¾ýÆu][eæ ×>þÚë¯A% wþxÇ:™°bù¹e}|BçâÕEl}¶µïc"ãEfJhÑÎGÊô;3‹L¨¨oʲé‡Iû&É÷‚H)íÎõýp_ãüFÒa‚AUtHæÄ7ìq;©Àð%'wÚÉ=ã8¤=sH( Ì^ .HwþxÇŽ’©„/ü’À[ã•gÞY!Ñy¥ÂMÕÔCU…€Šõû)8Ÿíû×O&ŠÌ±õé–Ÿ[€ÜÑ w ¥ª1ä'$sâp0‰²{iª*M=hh¨yIw¤(dWü<1æÉÝŸC BS °jÇb~Å×ëhgã õÙzÞÙï TmEwÂ|¨jM&òkœÖ=mPd¦ˆ•—VмԄ{ÆÅv{[—-+]U¦âÌÙ˜éÊ©˜QäSt0£Ôûpc±‚4,ç<97´‡dmÄ ÷I)ó5 Y?‹ëdŸ/PšÚm„ΊeË*ÍÖ>˜ –$dûþqʃWÉt@‘™–Ÿ[Fã|Ã^é.ü`ÛŸoCÔ¤’p·4"È«ÈÌ㦊ì$ÌIp(A:BÈÎ|¼—öÊB4BIÔÊBj“ûÙq™ý/æ¾ïéOxv¥„J”®êÀ•˜™_ó±üÜ26>ÙØ÷ÏžŒ7™) õt Í‹M}ÅZ8¡,ü`mèYfÙeáèYT¶OÆT5©¼Ã_>=S5¤½r>(„îaCMC?ï„ÒÖg[6üew³¾*)¥íƒñjž½_\``àB©ÎåDIdC®õ³õÿüÉøB‘™šÍ¦N¸éïhœoèÐÙL¡ œþ>™b²xšæ Têö²Ëní‚°þçÛËјçOû„,{¼8dÕ÷uˆL¦2ET¢ ØÜu2}Åd: ÈL8×~| óæ‡&ã8Ö‰^ŸlØ^qŠnÑɰ™îø9ªC*U…ƒÎh t×ÿyiÞ´Û?µ[>’ù…GM'÷}øˆÓX‡Æ ÝKEùvËtpR„™@¦ŠÌ³üܲ^X LE{!T’Ï”*žðš—št+#Æ¡R17ô‡$Ixðrg”æ³ÉìªíšžºíÃ×Bãûyî.>DZ¥òýCȬ׸r4(2JëJËV’ 4øI‰°"Þ‰÷LÀR`Æ›Ã8$Ï+ä`”ÌL!tŠýyQª{Ã0,UU RIÄ;q>Te'ÃqÿÓEfBYøÁ‚¹`hy¯§÷z„9´ä‚Ôz:kÜTÊ–%{ÂËP ;ëΛõîhA’Í,+, S©.1Ïgr2ÌçM™ då••ò†ÊB’·w¿‡(ŽÞùÇNʤºÈ#.[n>ãάØ6Ó»wP ¹ÅißfS9dãi Ä;t1ÓÆ_žöãåÚ®¡y±9´Š( CÈD²œ†Ý(ä`˜Í§&ô%•̫͜B?OæˆíðξuÅYi«’yå™èd&ˆÅ«‹¶á²ßÁD#Dq„îý.’¡t¾î@Ô|ÇG¼“-´K²‰‰*—E+í`"•J#µÇ´îD¢·Óã{o ¡“™š—š˜oÎ#‚#wu²µ×ë±|”<¥²2äTå Ù ŽÆ|Né¶Øÿ’q0‰nÞåâ²é„"3!4›M4.4ÊpYN&Žc„ôŽu†ÉÈãè|ÕJò~—x'Ö¹š$²CQ‘æÉ}³¢ÛÜÆIlr³´¸„åg %õdj ÈL×~t —JÛ&'£=v=Ú¸cì‹Î×=ͰýBÖáô9ã`–Ÿ]Öcþƒ ­3$Ss2cÎâÕE4/5!•gQ™J!Ó³õ)cádÿt¾ê y±‰ºá2Þ‰GÕWOñÎV.JÎÆŒ™•Öh4 •äôˆ)‚NfŒi^jb¡µÆp0ò‘nˆc,œ–¢£‰v#„CÛÛéÙM«6”–…Öz;=„¡vέK­Ùhp€ùæ§Ð¨Ù!c›¹B¯lvgÊ›;}ß×¹™Ü-3áPdÆåç–Ñ<Ÿ%Oû&z!ÚÑÃD?©Š']¼´ï¶ÑºÒ²“žë¨[¡1Ž&˜  Î+´v[|¯N0™1£u¥…ÆùF)Qꇉu\<Ž9¾ƒœ.í»mëh„ȶiöM¢0…HÁòú …‰ÿ1£Ùlê¹dCõvz{!¢‡Ãdd$Øúl ÑÃáƒPdò¾¿0Æ…Æ))© ŠÌqíÇ×0y^ß²€,Ú‰ØpIFŽ­Ï¶ì‚¼h7º‘s¡µ€k?¾vªÇIª"3&,>³¨KB‡l¸4 ȇ!gC‘‘¤{¿›OžØ†N¦h]jaù…åS=Nrü0'3´®´°ÐZ(Å´K Èvô†KŽQ'£J÷Û.„ºÀOeá±¾MëJ RJ6Ot2c@órÓ. “RôÃÄ;1ûaÈÈÓùªcMïA —ì52þÐÉŒ8+¯¬`þÂüÀ ¼"Jt'6ýdè|ÕÉÍ}]]ÖŸ£q ­nÑœèdF˜å²~˜~“5\†;!Âûì‡!ãEû‹6º÷»vC«}öý]¯×ѺL73 PdF”Å«‹h^ltJÃщ~“ƒa¢ŸŒ#í/Úv2Eô0˜½çº.gœM™¥q¡ «pvõàËîƒ.¢(:Õc$ä(l}º…îý®^Eñ0êhš›¸ö#–63™då¥=—lÈ~˜8‰î„»’ý0dìQ‰ÒÅ+q\ºiÍŒ‹æÅ&–Ÿció¸B‘1–_XÖûaú®èl?L¶á’a22 ´ï¶=ŒÐ}ÐEo§¹+?ç£q¾Å«‹§{°äPL¤È¬¾ºzÚ‡p(¯ê†K÷Œ;¸FJ½€,á22Y´ï¶!w³÷wuðFóÍy®oC&¢„yí5ÔÏÖ1ßœGëJó cH%qûÝÛ§}˜¥y±‰ùËó5=µ¶ÔpùH¢û 똾ÏddòØúl ‹Wm³f±/Ìl|m\h J86iÜ[‘ùM2lI IDATùÿ9†ív]ò‘D½^·‹“ŒÀôvzøùùŸ#Žc(¥pë··NùèiµZzðåý0½û=¨Déý0l¸$ÊÖg[:÷âÂð}¿TU‰TÏ8C ¬°~Ú‡KöÉØ‰ÌûëïëémfÌŠHQPJiÁ‘õZ]_=Õ@o§g÷¬¬½¹6RBsíG×Ð8ŸÙØcY÷~—WpdâÙødË/,#ttÿŒ?ã8šæ¥&–nÕÆJd>¼ó!|߇p„ÀÞ”RVp¼š§ ôÇëõzé¹®ÿô:nþæfåÇܼԄþŒ¯WÔ*U‹Åg²~˜¾+6Óc6\²á’L áýЇ́£÷Ðÿ>\¸X|z‘[5Ç„±+0BäNFèä *Up…« ÚÙaWÄÊGõÙ²ÐTåhZO·àÏøð<Ï.mB ½=Qðç|]E`þÂ<|d;zÆ‘i¢óuGÑtè9=ÔÏÖáÂ-9×uѼÔD´ñlÄ ‘1ãÕ<øžŸ‡È;I¥j¨ƒ£kñ}LJJæhV^ZAã|s ¨T!z¨‹ ·ÿs°àÚ¯Áó ˜ænê´Öõq…;¡žß4d?ŒÙ¿ÁùMdÚ(Í8s`õM0pÆÙ0ò"St0¾—9™ìD^BE'Cˆ¡óU'Ï»:@õRÈLJ}a×<߄ܕ 5#+2o|¬kâkî±¥WóÇq.3Ú1ø5qëyˆâ×ÿúº®Vù¦ƒ{_Þ³ßÛŽ{Éî»5W÷ëŒ-J( [í%‘vT»ÑpG“'¨D_óR“ MB2ÚwÛh=ݲ9ÓŒ]t4Á¹ój*U,šFVd€ÁÜÅ¡ŸÇˆUVmK{ß HæD\á¢y¡ XøÁžÿáó¶ŠÅl¦´ÎÔG+¥+9Zˆ\áZ¡±&>¢´ 4}Ž…Üññu2i´¿hC\Í/ø<ϳ“Œ£i4tÅEf4Y‘1SXEMý(Í ?ÑåÃ&„%¥„çyˆ’îŒ  l~¾‰µ7Ö Ö•Öß[· ž*-Bá~û‹6®ýøüšo‹Ì8 @ ‘qëœËN7u!wežó1WdÙñ¹®««â!%¶>ÛÂâ3‹¹£ñÍüåy¬¨Î8F·ºÌ8˜ôøždšOpϸ6Wr+YŽD8B LŸã1yÓÑïÍzØüó¦ý¸ïërë`6€WóìÕV©º °¹"[íæÈTZÃä?!ÃÙút˶D»ÑàY)Ѽĭš£À芌9GštÈóeɹSés(¶qØ×­‰ ‘ ŒçÁŸ-çjŠE¶'-‡ì€¬ÜÙ÷g²aÚÉöQp4î­+-nÕÙÈg¡¥±¬ÏÆDJW‰I•=ß®n¨ wB SJÙµ²æû(¥J´Ùãë?^LþòŠUdÂÎ¥ý3poÖCórq£ûm÷ôv Y‘`«¿L™oñJ_Æë[²fz+-‡Ð:Ý—r¯s¯ähì¤Ó'S¸bZ~vYoäL”£lCeñyå#©ç”9Ó¨Ùÿø_/!SŠq&Ê3ΊŽfþÂ<”R™fäOaÅ]*ýÉóÇaNÔ6d•È’à''1ä#i?þÿó?öu\?ù¯?ÑÕdY%Xo§g‡wzð&¡m´²ÜRˆb½.ÀÄŽûsDRI+|*åsBöËÖ§[À3úÿÂÑ3ûMó¢žqvçwNõX§‰‘ÎÉ<¿ü¼>á& RIrzbŽÆ„œŒ ì!0Q•ú^Þ_Ö¿`LJ›ƒ‘J"Ü ':©…x'Î&+. ûn IÓ'c'„ì›8ŽÑÛÑ‹þ¢(²ývEGÓ¼ØÄò ¬8;)FÞÉüû¯ÿko®éñù^aºqßåbù1›|7¹’þ*²°§Ë£‡z¬~Gû; ÌeÈD5 ôðÌ]= ¦·ÓÓ¡/d£jÒ¨’ëÏÁôç^¢D?n«d!û¦8㬆n+˜qKŽÆ÷³gRj÷C*e¤ Ü~÷6nýîVÉÑD;ÚÄql“ê&ôeC¿À¹ƒ {¡–‡‘­³¿ùë›O^sœåxâ$FûËö cÊMéXo's2Ùñí)0™£1Ugæã •rpÚwÛˆ¢HGâX LŸ£ ΘoΣõ4+Ϊfä ½ê8…u4¥©ÆIy,þ0G³—ƒ1óö?¼h'‚ïùºŠ¬èÒ!‚ï¿÷>~ö·?C½^×eÌÆÑDÙÈš]™ ‡£NÿÌ3  P™ Æ;úÂBNqÆY ¸[Ú¨‰zÆY¢ó±¯yAW#ïd ýŽ&NtìÕäBŠeÂ&ÉnÄãÌúëZ€2%ú1óüöy²Ç¥’¶ìùÆ?ß@¯×p4FØölâ`Œ33Uht1„­Ï¶¬£‰¢(ŸmXG3yÍËͯm]i¡u¥…Åg±xu‘=6G`,œŒÁ8š—_zÙVv+lV,G2²ý'¶/%Š#ÄI< 0€îÉ1«ž…PB‹€Bç^0( *ÑeÉ×߼ޛ¿½i-·ôçaÐÁ‹ Šfñê"ºßuÑ;ÓCBŽÊÖ§[X~n]è²eß÷ÍÂå¨D!|¨w8ù3ù"BáÑÎúï^ê"¤Ór?fM¼JÔX +‘´£4Î6àûzê±™~ {Â6Õc¶ê++SVJ•Æðâµñáu¨l¶Ï¥TTPhä„= o'ÄâÓ‹ØúbK ã–CzfÍ€3äy fù…e+®PJañê"/r „¡nŒ6 Ү떞™\k0”ÊTÚá¹¾ÈúÞf³xn»óÇêK¡W^ZÑx³ÕÂɆð ¡ô~qãÖooU~,‡aìDÈMÆÊ++êzÚq6Ler0&„%Öß{¼ê¿xíEÜøå Ôgëˆgc;5¹˜C1eÊV°†ˆwbl|´¡ñ™7‚Ò»e"Áu ·I!ùŸU-?·lßð¢&àÏúˆ“˜KË9:_wô…)袋ÆÙ†]xfb Xa1#£ŠSÑíÔöpë.V__-öÃÊ++v©á­ß †•—Vòáº5®›ï©ò½üã*Uzítª°üì2ººˆFøÕÿøÕ¡~VUðßÿý÷Ýo»Øøh?ù럜öñ™µ7Öè0ÔíwöË7¬¼” —§…Ë÷|Û§£”²ÕcQ |楦ݘéžÉßÃʘ瘿T ÐzºÅ „í»íRì¦q®a€mŒ6ÁœÀ‹÷‹‹ MHÜË ¬SêßœkŽ£ØÞ`ׄÌùð½l¢Y7ò>*ádßSa¿Þ׿Ÿ7±ôìRU?Î}3q"S‡uD›Üúl þœo¯nŠŽ&tnF êÇËr(¥t#ÑÅ?ý¦(,ìÒwuxË…nì^a–a¢ÃÜE¡Y}uþ¬ PŸ­#8  [TP pã—7"(õz]‡È²M»{ퟂ“­©V¾ˆÐPdN™;¸Ïó0a~ ê¥>[‡L$‚¹€Õf„þŒ_ÊÁìå`\×…|”7rz5¯´*g²þ·>G£”ÒŠ¢À˜•ìÀ€ ùÂÇõ¿½n¦è`Ìq˜Ïޱ™ûÅã-‡Ùo§ñ© Efèt:úM9”ëºÎêbV›rtÌÆY{‚¯•OüÆÁ˜Â€`6(=Þ?ôÖ‡Ÿï…Ê < ˜¬((µÿ¶¶/#¡«ÌŠÇ+ Ž+…nWZ0ã$fu±Òi ÍØ4cN2í/Úè|ÝÑë ‹C7¡ßdÁlß÷ÙFÈh^ÒM—¦ZÌ´÷C(9áèUê®ÐyR¿¦ÿ…ÐÅ=æb(„¾ö˜šÍÙ"O'ÿýšNìïÛÁÔ ›w³íŸìÿM‘@1$„ÀæŸ7Oà§<EfDØøhCï¹(L‹`¯~‚ºBÈáȉ8åЕq0Þ¬gÛ „¨×ëÖixž§/üj>ê³õPؽν¡Æ®-2'þ×V_³ŽÅW±ÆöÅxåÇŸ¸î$s?Vh²×óñÆÇýd{(dTè|Ó[suyeÁѸ®~sz³«Í9$Bè•æ¹áé¿7¡ ú5_ŸØÍmvÂ/ÍLŒ"xž¹£swþx§”S½ñ‹å }eÏÅQ6ý9šÒq¥Œ©&;Èkö<ˆÔôðÞ“†"3B´¿h#˜ÓVÛqsGS¨6Ã9Ø5Ñ„ƒaœ…i¸,à³ö Ë™8(9 Ó%ÙŠõ0„_óñþ'ï£ñTC/4¹ TîlgåÇ+¥¡»ÛímÛWd!µ3yµ›+\ûøAÆ`7e"­ã:I.1îüñºßuó}2GS¯×mì–²š›¥>³VÃü} ¡Žv>vÔLÖé×üR1€²ÀdBP,0!²àl€æù&gØüóf©|Ú.,ì;Žþç=,¦Øàã?lÈŒ"3‚t:|·M!GãžqmÊâ3‹§zŒ„ŒÅþ•ªRII0 j<‡S1#SYþüÂãOº5¡³’ƒÊŠŠýÆÙ«ÐŽôúû‹NŠÌÒ¾ÛF竤”ŽF]íâϰڌýbÂËÅýMòÐVqømáq31ŠõÝp'ÌGD¥ƒÏ÷¸Ûµ××Jû®ú«Ù¬:…FÏ4/N8*ýß鸞Ȍ(Ÿl ómgèŽro–Õf„”b#¥riË—³»ëºCW£+¥¦¸_*Nbl|²`N¦ä`²üŠ©3É}“êw4Çá>ŠÅ ' Ef„é~£‡dûf¬Ðxêõ:¯2lFÈ~1 úÆZXÌÃh7Bô0s2aˆh7BøP Në-,´Ð}ÐÕ«?²ÅˆáN¶ 1Άé&‘&ûýRè•ñ©²{«ì÷ï;.㸎‚J³ã0•n'«ËF˜öݶžmæyÚµ,´?çÛÙf­+-V›òŠ3½PÓ³¡)‘;šh7‚%PŽ*í‡2ÏcChÙTv³y³”ô/Üwϸ¸ùo7õÞ(ä#`–…¥XœÐ_¥v¯(\°ž™g㣠-23ƒý¼YO—S²ÚŒ'ÒùºƒÖ•– ‰¹Â-M-.õÁdBî„¶ü×Ì B“‰Ëò³ËzÊz¢°òÒ DMàæonâÆ/nØŽþ¥Å%üþýÍËM+Q¢ûmâ$֓ו²›~…'ì 2s\‡¥ú;Wt(2c@÷›.|OïÀ(Í6ƒ‹ÆYݸ¹øÌ"wϲÍKM݃V¯£×ëÐÉx·æßo„Æu]ôTO›Lâ|¥;ʤ¸ÆÃ8¦·ÿþmýy©„€Ð=1}Bñ“ÿú“Ò×yžWrV¾ðMd¢Ë¡ŸÿáóÇó„û„9™1 }·{{zçDßl3×uáÏúz¶ÙÓ¬6#¤ŸÖ•–˜³uø³>–_X¶9™È¼J,íË…¤ººLJ©&z®”r7ÿ:ã`ÌJf¥ÔÀó˜Ðš©F3˜‰Jtž¨?gSÊVl²ô¾ÿI@‘¶>ÝÚ×l33´žn!4žj ¨ëbHõªuS%f)‹øÃn¥”VˆŒs):ƒ-[Î>ß GQ EaKóïSE%Qþ<#0…ïsÒPdƈn·‹î7]}§8ÛìŒ^çZŸ­çË–™r¯."˜ œ àÍêâ™b•æcM&ö•1ÇIl‰u&©ÞÈź÷»èõzè~×µEæD/•ÔŽ&ÍË û÷ÚédQ #@æ¾+4Ù×íKlR ·ÓC”DwBÄI|*ãþ)2cDûnÝïºúÛçh̘ðà\À°™zŸY´¦^¯ÛêÌþ¾³¥Å¥AG3$Çò¸ûfåûúëˆâa"Žc„B]P ä¡3ó}Mysø0D”DèíôJÂSš!ß¿®ëÈ¥ÅÓÙ'ÃÄÿ˜±ñ‰®65a«ÌŒ£±+›çÔEõØÕÏ„L*ËÏ-Û9až§W›«2ÍßK¼cûËmûx¤‡GÆIœ/.."é†Êì|.S ×q­0ÜùÃÒ÷^o+/eC0Sk<Õ@”Fð}ñN¬‹ ]\ ‰›ÿÏM\ÿÛëúØ ÿêõº®r+W”èã1_on E!”©´BvZPdÆ’Î7ø³ºÚ¬äh²7¦TZp(2dšh^jÚ}/³ í^úþ>Ìý^¯‡{_Þ³Ûf[WZ“¢¦Çøû3>b'.õ»Xçié|5üïkýƒu¬¼²b»úÃ!‚³¢(²åÓÅ*¶8‰ñÎ?¿ƒ¿Ôëð0;ν‚½(4ů3eÕ*.÷ñ”ʬOY`ŠÌXÒùª¯æÙÅGÅ+48€?«ßÜ=C¦…æ¥&çå}}eæ~÷Û.:N©¹¿™¹y©Y'ñž¢2Œ¢£‘R¢·ÓË7azù~ìêÏWJaíõ5zÛÃÑ ”“;JKÊE§-0EflÙúl þœ¯ßD…+43­Ù\Åp™tL™q0f»e¿ƒ‘»o;è|Ùy¢Ë?ˆ ìÅúëöÿ«¯®æ*EyZ·«GÒÜüÍMÀÊ++ŽÆó¼ÜÁd‹ 2Á‰ UpN^ÕvÒý0{A‘cºÝ.<ÏÃ|s~àŠÍÌ6;鄜$­§[hœkÀ÷|Ôëu+0ýÑÃo;9”“âö»·K÷W_]…Rª$Dã‚LÒ>¬…v^¡qB6§³[(VP áƒáÃÿú/ÿzR/í‰PdƘÎW=rÆómý¿mæf›1lF&SAf¦aê`Â0D÷Û®^‘<"ô‹N?EñYyiņØ<ÏC×é–œPïAáÃ7ÿífÕ‡}((2cÎÖ§[ð}hM0èòEV›‘ ¢y± oÖ³&ýÀÓý¦‹{ßÜë‘KýngõÕUô„îYoÐ ™  ûMÁl€F£1PES?[‡L%Åj32þ´®´àÏéÐØ0_|ÿßëÜC÷›®­ ›žä‚F 6cN¯;ØþráÃpp¶ÙÁl¶²™»gÈc¦q¶`6@0 ¼ßM'üv{/;'0ãÌ„Ðþ¢­GhdxÅ+:›ŸaµS¯.ŸóÔƒ¡û•Ìû]>’hßmŸZ‚Ÿ B'3AÜùãÜëÜÓwú®ðDMèòÉÚÉ®^%ä¨iœm >[×»•†8˜h7ÂÖg[˜ƒNfÂèÞïŸÍcÕæ ϸœp #±`ù¹ex³žu0ý9Gs?|¢óUŸlœö!“>(2ÆÖ§[ðg|xµò¤”RW›)ÎGób“…ddi^ÌFĦ¯sßÜïÞï–FÄтᲠäÎï û [ Ð7­¹^¯ëÑç‚Ó;@BCóR†žžÜxª`.˜žlîßûæ¶?ߦÀŒ0™ ¥ÓéØ-~ò «Íj¬6#£GëŠîà÷fõe;a¸/#¥Äö—ÛhÞf!ˈÃpÙ„Òþ¢ ß÷s!ál32â”FÄœ­ëpXö¾-¾£(B÷ÛîБ,dô “™`6>ÚÐy—þ>‚¾•Í„œ6‹WµÀÌj±ô9˜0Ô ~ Ìø@‘™pÂû!Âûá`L{ƵC46#§Éâ3‹h4êÙÔŠ3îÐŒ˜QšAFž ÃeÎÖg[VPÜ™òl3Nïñç|4/5e¼9!û¥y©‰`.Ð#b²²ûaû_Ü3îÄŽˆ™èd¦€6Ðý®;tÇyã\6¢#`µ99̘ÆSÚÁ”úº€’ƒ¹×¹‡N‡#bÆŠÌ”Ðét†ƒ³ÍÀ›õ8ÛŒœ­§[æ4Îê*2ÎÈJ)!Il¾v»ÍUc ÃeSBûnþ\¾ 4ÛlƇªgÕfÜ=C*dñ™Eø¾cB¸ý³öÌÚáöÝ6ó/EfŠØøh^ÍÃBka æíÕ<³ÝNÈq³øÌ¢âZ×üýûÌû1ŽcŽˆ™ .›2º÷»èÞïtN³ÚŒTEóbËÏ-ç9˜ °Î¥?ïÄØnoS`&:™)Ã4izµò¸t)eie3«ÍÈqм”Í ó<4Î6ô{nÈK)%ºßuÑù²Ãæà ƒ"3…l|´‘ïäè›fzˆfã\HÁ!šäд®´ìËÆÙlkë –RJt¿í¢ýe›6EfJét:z|G½>pEéÍzˆ’Þ¬wÚ‡IÆS¢lŒ˜~Ã1“EfJé|ÕÑ9˜Ù:pƒ³ÍXmFÉâÕEAÖ׎ê`¢‡:ßv¸dlÂaâŠÙút í¯Ú{Ï6›Õ³Íš—š§zœd|X|fÁ¹Aéu»]®Ižèd¦œð~ˆîl i·Þ¬‡zZ/5n2ŒÖ•|ß/ˆ¶ÁÐý¦‹{ßÜÃÖ§ìàŸèd¦œöÝ6î}sÑÃhàŠÓ÷}ø5Á\€Ö•Öé(YZWZðçôôdV¿_&Kd÷ï}yÛím ÌA'C°õé‚9ëï¼Î¶¬Y)Åj3Rbñªîà7 –Ųø’ƒ°ýù6:ßtXA6ePd€¼Ú¬Ñh TÕëuV›‘¯.ŸËÆóàÏ”û®ÌûGJÉ1S E†Ðý0Þ¬§¯FgÊŽÆu]4ÎêœÍâÕENÃ%X~nÙ.¾3#b†9˜(ŠÐþªØÁ?­PdˆeëÓ-ø3>–—®HEMÀŸÕûgÌ4Su&„°!‘8‰Ñý¶{z/‚TJã|sz¸epV;˜aû_ê-–Ûím^”L9R¢{¿ oÖÃ|s¾tEêºùl³(аøŒžoæÏä뛣ÝõZž§ÃjJ)Æß'3"¦>[ÏWw›©É}¦ÛíbûËmöXŠ )cš4}o°JÈŸñÑþ¢mœ ! 8ZP¡‹0{+ž›  y©Yr0Bý@ŸƒáˆÒE† `ªÍ‚¹À^¡¶ï¶!„@ýlàŠ¾¼çB* ßó!•.[UJA(ŠÐºÒâàÃÀ„8½Z^Ä¡”^ï°×ïÇŒˆ fõªäâ ²¢ƒ‘»o;X#bHE† eýƒuˆš@ã©ÚwÛ:öîƲC;•*{ë×ôgW¸©œp'„;ãB¥œì|4Î7¬ ÷aD¢˜KSJañ™E-8)l¹zëéçzÎ]v`ÀÁpD Ù Š Ù“N§ƒ8޵À-0æÄd„Å«yPJÁúVԲǡÃdÁl€(Ž :š“¦y±i7¡BäÀuô@o Ñh ˜ lˆt˜ƒ ï;¬ #CaÇ?ŠÓÞ/0¸5—0¾§Ä‚æ,´êiœo@Ô„-Ø5oVßú5]¬a~¯®Ð¿ßó!jõz]oJÍBdÁ¹òQ¹sßtòw¿éê%c²t2d€æ¥&‚se)†\LˆÌÆâ¥JF(äEG> OïÅMEcÆäЊ¡M¤ÈQ¾ IDATožþ½ù" yÎj÷Óù¶SÚdYt0÷:÷ÐétXAF Àó¼}9w&»vË·Or4B4/ÒÍTÁ€ƒÂæÒêD]¡ŸcãÏf»½v»M!O„N† àÏøCŒéþŽ(”R©¾ug´³±/8š(‰t'QPBÖË›Xöt0èãHKKóœšq6&Gã{>„#°ñç ,?» ¤ÀæÝM&øÉ¾¡Èlò¾Öwe{F‡PL³¥é×\ÈD5 Žcà Ó²ÐÄI ×q©È>_ëJK‡ÞýyýIeP©â}"ÄcLßï³òì/æ0?óû+9€ùr (2¤Dëé–n²ì«F2JžçÁ¯ùù +¯æiñ2¡ÉB+F`„P‰Î„IQyÅRQX²Žp„ æ…æ  ù¼½„J>Êû’×E!3Ïó¤Ç‡}ŸQ(Ë^{c Û_nCÔôïέõ9˜¾ 3ÌRÌ”_·‹Ì‰Ö„u6ÆÑ ×$“C‘!%„£¯€m%Uð]21ys"óg|¨4 ‘íJípbÐÛééþ •NÌRiáY¾² àÉ'ð' ɾ…&•y¹.0 Xûœ=¾_£ÑØ÷ñØÎøß~póóMýó/<¾—#õgòÜxŽW*_¶ÅEG“èòtö:‘ƒB‘!%ü9]Þ: ®iñ©ÏÖmHòþ˜¬Æó<Èi;ýí *»u… ¥¶¾ØÂò³Ë:¤“"¿)W1ÁÇpA8†Ûa'|3å±Â²ÇsàÇ36Bè:z‚ÂA\†ö÷4,DèEtBäeÌFˆTª •D]Ôµ©7NT&Á\€(2dÿPdH +–·Â-<äNÆÓ'*å(Di¤;û•‚븈—NØöÄhŠ C¦÷žè}äeØö~V¼P¬š“RÂw³þ§üùv¶Û¿t¿ÿñÃÜß·ð)•‹ƒƒrÎ¥–;á›Ì\ȳ·Óƒëºˆvµ•ΩñŒA ß2¤LVYdN@¦šÌ¯ù¥ê2Ó¸'„@¼ëÏOr‘òjzª—‡\̼]mfè›ÞËûåûöÖ8<·ïñ‚´¿§ì÷g«ÍãB¯k0¹5; sZÑn:äYŸ­£×ë 8QSôAÈ~aŸ )ѽ¯+¹LŒ^J •*DIdï¿ýoç3®Uú|óñ8‰­`°!"©ôó-?»\ê»(: Þ?Ü}!„Î9õ…èÌ¥¤ÍÁÔ¼Rš0ãÛ¢¢*:(á´žnýB'CJ´¿hcáò‚¾S ™¸ñËz23€µ¿^í_ßÒ'ºDϾ2'<“\—dɹ¨4 ¥©÷¾¹§¯°EžƒŸüD§qùã(—ÙšâóõÅÓ¨8’¹<¾6s˜æ¶òTyÈ3Nb[èº.Ôn!§Vsíûý@‘!ÈTÚJ(Ýsó×7­À˜ÜÚ_¯©Ÿ(Št^ s0%gS¸•J R»=|ßHób_¹2P#,&Qü¸ëf9Œ¾oQ°÷õ{}¿¡BX|ž¾Ç}}?™Ý>B.ˆGÌ1™ä½™†m’ú6·äôMh®u.&4fBžQ¬‹6Š9áDIħä@PdH‰µ7ÖöB¸g]û±ßßþ=‚ (n£‡:”Ç1¤’ù_ ?AeWÂ@.8Ãè|=Ú•KÍKͽ…ƒcÆ™²¿~/¡²Ïû˜ïg«ÑDž£) Œqv:”æÁƒ”2/wÎBžÂˆRý{´Å*.•¡Ç*¦‹!†"C,oýŸoÁ÷}l··uœ>ëø6åÊC&ŠÇ1”R©D¼“ý? Á)öaÈGrl{-Fñ¸W__ÅæŸ7œ %|/w2Å[“++–)K¥*J´•»Úisp@þû39;Bö EfÊY}uÕ6XªD!LB4/7íîö—Û6!Ü/0æÄî„6D¦Re M™­*³¥¶äX¸ýŸ·qã7ðá­C)îû±EJçTâ¤ãÊ&2 ÕÕeJ©rˆ³S“JZ7JÈ~¡ÈL+/­ØÁ‰&ùkÊ_¬Œu6ë—H…Ë ©>¹(¨²ÐdBÇq¹ê ƒF&½ž^p5‚n`܉¢*UZj(;!ô¨G ÚÑN'Nc¨šþÝC™¿÷÷XzvIÿNÉœó1ä Pd¦ˆë?½nC_¾Ÿ7æ™j£8‰¤:äÌ¥+\{¡•*}å›f!–‚³AвƒI$â8¦ÀTHÑÈTæûbœ\p¢Ý>|Dq!¤&â8ÆÆG6·³ñÑZ %B êE§ø ɸB‘™®ÿô:šM]¹e:¾=ÏË“Î굺ÎÁÌêqü~êC&R;›¼ï%Žc»¿öÂ5{mGœ ÐCs"ÜüÍMÜøå ¼ÿ¿ß/•3«DÙõ ¦Ż°Úßûæç›y‘€ÒÃ17>ÙÐS²MTIÇ$‡‚"3i<Õ(kõ…o?O¥*/ÿÉ’¾³°³«lò߇!–—ô×%:v'qIh¤¢ƒ9IÞùÇw´Ð¬¿oß¶œYˆ’£qÏè‘1í»m;øÔ8™êê³O6°´¸©$nÿçíS~ud\¡ÈL8Eñýl(âŒ(9ÛÏ|x£Y@VÊÁÌ"ïâ¿PÑd ™®£«”â$Ö9‚D1†ÂX¡ùßï#8§ûšú äÎ&Ò‹ä̤3”Sß÷%† ŠÌcæ|£42ÐÓ“”û-”´Bc„G¥ H Æ)ÿ {¡£eqÿ(Šðöß¿{{è~×åÉé”xœ£1ÕbÆÙÚ³AÉɘŠÃN‡” ŠÌ„Rr0fH64q`IÖh’Á.ò1óæŠàaÐѤÀ_ܰ½2aŸñÑsz'ÿ¢‰e¨£)4nšZëý1Q¢;üÍï]* ¯æ!r˜ì'Gƒ"3¡ 8˜L`̬ªþ¡‰yãe1†o„†:ó9ÅÆÍâŠfrz¼óïZ ØnoëØœ%ô†ÒHEXZ\½Î=ÝO äfü9Ÿ‹ÊÈ‘àæ dõÕÕ¡Æ­¹ùýLLÍT›Á½6dÑ=ãæ+˜³b€·ÿþíòçÕôÇW^Y9)qëw·Ð¾ÛÆÖg[¸ó‡;ê6?ßDïA÷¾¼—ÏœC–“)Ü GX"ä0Pd&Ö/ ‰Ùÿ"„mÀ,-ÊÎ&3¥×ùXx»èÊ<ßó¹®k/®¿Ç’×Qäæ¿ÝDç«6>ÙÀÖg[Ú©fµ&„jn¯ÿô:ÜWÏl#ä0\64Î5ô²ýÆÁ˜1ïû¥¸°J&z¥²Šu™³ÝpédÕKÙÞ)¥-]&ãAç뎾h¨éœÌk¯¿ ߘ¹úê*nþúæ)%W(2Hp6°,«8¨À°ŽF%ÊvŠ‹š!ôsû3>bçSz³Îã&-“$s2/¿ñ2€ò4é àå¿zFCO€ž*Ç1îüáÎi5(2Æê««¨ÏÖËcã…8ÚoÚ)lXTú$SiŸW·ÿám¼ýoëYfIŒ(fUÒ8Ñ¾ÛÆâÕE„½ÍóM(¥pë?oåN@ãlCOŒ˜ñíFfozôPq" EfÂh<¥Ce¥ïÇ€æ+òFM3å7ÚáH)m¿ ó1ãÇ|s*Ñââ{>‚z`°)"1Eõ³uíXSýû®×ë¸þ7×T¸!Ä@‘™0ü9ߎŒX€uHJ¡°>G'Qè±ÿ •'Qa»½ èª… v5Bc&Cın䌒Aª‡ª^ÿ›ë¸ùo¢¡ÈLæß¿ÛýHú`üš¯7(Šl°Ð«ƒíÊåˆv*GDMX©×ëv„-gï[å,¥Dã\RJÔQד ÝÏ[÷~õ?~uʯˆŒ,až0LžY¡k®8L6¾ßôO1‹b½èêµ×_Cçë6·6qû]Ž“7V_]E0ÀŸñQŸ­Ã¯é[Qðg|¸g\=Ë®Ðgåû:„f>Ìiiœo 8èð™zèd&)õ¸v™êYdGÆì%) Ï´ÝþÙJßî·]l¾MCV__-9ßóõdæ3®Úms{…b[Æžf!4•¯h^lB8‚ކÐÉL*FÌ푟/)<`“üáÃRI:˜1e˜ƒñjA>ÁÁ:˜š×qmƒ¯yÜ.ÄËFÑÑ€"3‘˜RÒþb‡Å6ZfãàÍóE‰Î½¨DQ`Æ” ÀŸóQ?[‡?ëÛõtU-5ä×|;ùÁ÷tA@ÿDˆþÉFhš›h^hbíµÓ~©ä” ÈL 7sSo®D6ƒª'cvÉÄqÌþˆ1ÅÌ–3B2à` Å#v„“7öš‘BÅ‘C®ãZgSt4˜:½0'3©v»ÇI ÏñÕ3£”Ê]¥y¨ `gÿ¸c’÷ÂÚÁœÉLQ0ÌýÒ×feñö¶°Ÿ ù¤Dh4'ùÒÈA'3¡<¿ü¼v;1d"í¾—ƒ`œŠRÊV‘G>†!nýöVE¯€TãÖÜRr¯Û'a¦y÷;÷Œ›¯˜ SEf‚Yzv *Õc^ÌÐÊý d¹—l¶•|$Ñý®‹N§Ãª¡1f奕ҴmÓÿb;üÍÔnï€CU³â#4æùêõ:ÖÞd^fa¸lÂYZ\ÂæŸ7§±Þl‰¾X{ÖµoÅ'ËßÄI¬+“ÜÁHI™ S¹…tÙ»JuÃ-R „Èö‹]Ýíè±3¨×ëÇü"È8@‘™–ž]ÂæÖf¾˜*‘pk…qý¶<¹ØpI3‘øž?ä×tNÆŸÑá¬Òâ¹# jB ›«q]Á\päã&ãEfJ0ަ§zB”b)V™[:˜ÉÄŽÊŠ:ÌTá; õИO’­ €Bp–"3Pd¦ˆ¥g—ðñŸ>†Ü•zñX¢«Ï”RvAPn¸4ÝüÝû]=œ$²‹ 3UÙn6ÍÆúyzwvfqEî˜k"8/(2SÆó?|Þþ啬½±6àdº´k „ì™P¢8B´!Nb4üFiD l.åH¦€ÇŠ›R§ŠÌ³þÞziïËê««ìÜŸÖ?XÇ[O½©$¤”zØ¥iÚMqtÉžÈgÝÝù#·hN#,a& Ìtaú Ìÿ LÙ>*2‘P©Îë1Ü:Pd™RLÿ“©:´ÓµÍbº#bžï8Æ‘ñ…"CÈ”¢½:ÙTš™²õ£ˆƒYͬ”¾í=èÓQ“qƒ"CÈ”²þÁº˜D–Œ¶}ØY:xûáGÇ!“1„"CÈÓý®›Jó¡§¥Yu!Ís=Q!ŽcÈG·ÿ“ù¾i…Õe„L1ë¬Û³@óR¾ãÛÊ(‰òûû™P3+OJ‰ç—Ÿò×’‰…"CÈ”³þÞº m5/5áÏøˆã¢&Åüš¯ûf ³îú1ާä`(0BžìhŠû@yQœÄöó‚CJPd!†;šÞŽžu§-02‘Zp’r_M¤ô*î8¡À2Bˆ¥ßÑ! ¥žu‡¥áª³îvuU†¡ÈBJôZ{s ­Ë-4/6ípÕ(ÒÎE)…¯½xZ‡JÆŠ !ä±pÅ69 ì“!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RB!•A‘!„RBþÿvìØa €¡¨A)(Y˜1Xƒ¡¡g…ŒÀIËÖI§÷&p÷%5"@ÈP#2Ôˆ 5"@ÈP#2Ôˆ 5"@ÈP#2Ôˆ 5"@ÈP#2Ôˆ 5"@Í9IÖç:z“øoÊ)É>n 3s—P³äö½€É\ß÷ü>,IrÙ¾£÷0¡%UB³k½íkIEND®B`‚ghemical-3.0.0/docs/user-docs/images/Makefile.in0000644000175000017500000003071611645347724016376 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = docs/user-docs/images DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(helpimagesdir)" DATA = $(helpimages_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ helpimagesdir = $(datadir)/ghemical/@APPVERSION@/user-docs/images helpimages_DATA = *.png EXTRA_DIST = $(helpimages_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/user-docs/images/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/user-docs/images/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-helpimagesDATA: $(helpimages_DATA) @$(NORMAL_INSTALL) test -z "$(helpimagesdir)" || $(MKDIR_P) "$(DESTDIR)$(helpimagesdir)" @list='$(helpimages_DATA)'; test -n "$(helpimagesdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(helpimagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(helpimagesdir)" || exit $$?; \ done uninstall-helpimagesDATA: @$(NORMAL_UNINSTALL) @list='$(helpimages_DATA)'; test -n "$(helpimagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(helpimagesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(helpimagesdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(helpimagesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-helpimagesDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-helpimagesDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-helpimagesDATA \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-helpimagesDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/docs/user-docs/images/using_mm_04.png0000644000175000017500000002727311563552731017157 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ /Ó±À IDATxÚíÝw|uþÇñïn6Ùô„f$t"!@$‘bƒSô@ÔC÷AŠz¨9ïPlÇÜ!‚ÒÄSðD•PB -x Ž„žÒ6Éöß_ÇMï»Éëùà6“ÙÙ™Ù™÷~ö»ßýŽœŸFa·ÛÙИèäg«wÿ·ÞZºî›$ö#8c¸KF£qïÞ}ÅÅÆRgµÙl!!-ºuëæãã­L\÷MRD¿xö#8o¸’’öüþ÷ãÔo6ÚØsrr=^\lŒŠê­Îw½ûœ7Ü…C‡U'»Ýn·ÙlV«õÂ…óùùùkÖ¬µZ-ññq¿Öû†|ö#ŸV.BÄ?ö¼s.¿®W-ÜbÝn·[­VîîîÁÁA¾¾¾/^TÏIååëå9nÄàØž][5 B\Ë+8wéêŸÞûD=ÖÏÆv}ênj¸ü²î¾mù<åöð?Î+óüws{ô®„;ú÷ðõ¾p5{Õ–ïwùIѵý-#ôŽê`µÚÎ_ÍÞqðø¦{­6[ ··î–ŒJ…»¬Öe¦ÛlVÉÇÇ;&&&--M«ýÍÌTîpE¾>ïÌ|¢Y€ß;+VؽKc³tëÖíÞ{ïu»x²0 m=áñ=ïŸõsÍ—_êÝå¿üòK!„þÜ¡¼æK½ïãG?8|ðŠÕŸnÙ¼éw÷Ü=÷ñGæ,^šüsÆ”±#¿Ýµ÷ó ë².œ ôõ™0á¡Écî¸Å_¿xÕf¡ÑÔdmënɨ8Ü•TW'»R¿ÛívFKåW7ùÁ»niÙüý¿­Øõí×–fíìÞû²lûß[í¦sSÒ·ß~ûix1óڲ϶=ý?!„F£¹oÈ€{â¢C‚®çüûÇë¶ï–ŸNÉ’ùíµ_Ž>¨y Æ•¬•_Ö¯—¿×¹K™Ë>ÛòÓÙ eÎᜧB1"&jL|ÿ°VÍs ÿµeç7{˸oÈ€§ïi·Ûs É©?¸i›¡¨¸2' Ñ§O…óŒ-„ØöÅF“wóMG3þ ÑŒì—ÿï¯÷¸ô_«o3[p‡B~ùW»ï6lèÀþËV¬´4kWê¢äæ¼»~ëƒÃ6 ð9u~©U%£6ÃÝb±¨2ý7án³Ù+S8N.&²³boÒ.£O “p…!„áÓJ¨é=z<3çÕ~Ãæ¾0{ÆïGN˜™hu÷?jÈS÷øz箿ðþØ1÷<>~¼%/{ÍŽý¿6>¹Ož9·O‡Öó^™;ÿ©ñ_íØ5éÏGu }õå¹³ºóáÙ ­:ϱ{îP^óÎ÷ 4mÂè})Ç^yy®ÆbÿЄ¯³Ï›=„:}òÌ—¯ý).>~ÚÔ©:“aÁG…Ö­J'`Yóxèn$€AëéUhBtêÔIsý‚Ѧ1úß"„&³0™{EvBdeei ÙFÏàr¨s ûãÓ_´^¿¤·Y†›TêFUoɨ…p·Z-&“éf¬ÿZ¿ËŸv»Ín§r‡Ë ô÷BäææjÛDêÝÜ…ªZÝHýÉ'ŸX𽋄­Z¶ô.Ì4µ‰üÝ탄›Ö¬*Òz¬?tvüx1fxÂæo¿·ú·”÷Z½zµÕê~ Ë*ýlåßÌV÷½WÌBˆÖ­Zy®˜ÚDªÏ ßLB|ôÁòC±¥Yû¥ÿNò6­ŸbÝŽd]n¦µy§¯O_›&D¿¨^>ÆXš·¯Ò XÖ<ûOœÕ}Ô¨QŽdŒ6Páå女Õó·l8ýѱv»}åÊ•B§/ÿáV¯^m1i¬·Üj×hËÙ¨j,5 w»ÝnµÚ,³ªZ·Ü¬ÚoL¡rG#p-7?$8088øLq±ÅBˆøÇž—]PÔÔÙÙÙ†àp{~žlјFC~ó !ÄŠ+”¥…„„hs¯ºÝè"œ››[!ï%„ÈÉÉ1GØ ꅨϠABˆ+W®ÂìÅEB£g0ä÷êþÄ}£"BÛx{ê5ÂÏÏO[”ãp÷jWî‹ÿ¾ÆôàˆqãÆ=ú¨Ç/åš »M™ÿ®¸þ?ÚÓÃ}éòw÷%'ù·±”ûp×®]+ ·„emTõ–ŒZ©Ü­f³C¸«›el•, g¶ûØÉß% 6lØ¿v:rŽj¿ ‡?e^ÏmÕ,è‘GÉÉÉQ¦kïø›ßþªžSïãwõZnëæA-[¶,òh¦žmÞ³ö÷¿ø/‡÷ïÓjÄÆ5Æfu¸{µ+w³o|¶Ííý¿»å¶ ]¶lYjjªÐêô>~Á~3º·_N§ÿ—±üí7ϤýbmÖÞÍ·™[E¥ì®²6ªÚKFM+w›Íj6›o&¹Õb±¨»ÍA›;ƒ¿¯ÿªw‡¶ãƳ¸ñå¾ÔìÜåsÉ£Úá7ò×óÃÿ=4fâĉomØn±k";µpxܬ7WˆrïUÖ¯FCþºÿ|?íáßMž¦ÿø1÷ètn…ÅÆ3ç/9y¢deípÀ¹çˆÝXxïØÍËâM뉴ôÍÛvø®˜C:–s¯r*÷-ûŽÚM†ÑC®k~NAáÇ_}çcʱ…þù_ŸOùÝÐ×^{-;7ÿ³mIeݽäÖ©û¹Ë‘êÔ½ãÏ^Î^9†¿ŸßÏçο”¸àééöÖÝ^}æù×§{ô©ÇUîXN—ù’ëSêFÕdɨ’£BÊò³¯ýë_?÷Üs99×Ífù™ªÍb1›Í»ýF²÷Ý÷-[¶;ö~yÿ˜‘0¶ \ø°Û=Š®ëŒùZ«I#ìv›ÍMgÓé‹|[ÉB(íçè‹s5“Ðh¬:/“wÅÝ»Â{©uø“‡1ϽèºÖbZ7£Os“Þ_áf*ô2\ÕÚÌ6›Ñ+ØËpµ¬»;U+ë^Æ<}a¶ÆfµêôÅ>-dOž’wW/¤œGt˜¡äFUcɨ…pŸ7o¾——·Éd´X̲T—½"eÁn·ÛFãĉŽ1\ ÷îCîf?€ó6Ë4k¼lÙÛU]mî@Ó![í0ij‡{5<8bкo~`?MÄ-=úF…·v˜è/Äá3—Ø9Nå7Í2€ÆAË.Â@¸B)¨††v`¿@c w!Ÿ¯€K£Ywá Ü„; ~Â=,,¼a·§ÁWO¸©àTª3*¤C”§§ŸIO?S5xÉÅ–:P á.}N«®še¬VëâÅoDEõíܹû”)S µ»Þ.?,,üý÷?ˆŠŠîÒ¥ÇÌ™³M&O6½¦–/ïøñÔ­[¿JI9àééùúë‹ëùÉÉû·oÿÏîÝ?\½š¹dÉÛ<ÙšŽR.ÖÚ¡ü±eJ¶¹+Máʘ˜Á«Wÿ3""B‘••5|ø))ûkøn@y¸r–¯^“ÜÙ¾};!Ä™3gÇŸœ¼‡ç@QWmîW®\2äŽ__C4šZy%ñ+³üÐÐ[nÞ+,33“'á^S!!!›7olÕªU.?#㼬Ü322Z´hÁ“  é¨«6÷‡žð /;—n±XOž<5eÊÔú_~bâ‚ììkÙÙÙ‰‰óÇŒÓ €p¯©gŸ}:::zܸ ;w›:õ¹Q£FÔÿòûõ‹6lDll\³fÍg̘Ɠ  é¨Îª.¯;hÊjçªu”Î¥N'² N½~â•€jk´CþòÚ€pîÂ@¸jª”Þ2«V}È~—Vú—˜Ø/ÐØ*w!D#ø†*î¥X»vM#ؼéÓg_¾|ž§áþ«˜˜Xv¸"zË@“ ÷i‹“\ô'4Yeù»víšFÐ,3`À ÚÜP¹—Y¹»*wÀ©”5‚7êNÅCþ.}aËm•+®³“ŸrÎ<Ê&Cÿ»ÄaÆõsšzå74.n(•{½±W‚‹¾>Q-:É$3==ýLãxF\e+œ«r‹*ƒD7ôÇwP¹×Fãê§Y©%aXX¸«T‹•Ì W¬|ÕëÜ8*wWÙŠŠÃ}Úâ¤úÉJuÁn¯Y¾×Û:—u~ºÜAìŠg]ùÉ®”Š®’ï®$oDœí½ˆ“«¸Y¦Þ’Ýnv»¨•²A’]6_Èv ç?eê•õk£yY’%Ñ+!§hs—É~£f· !jÒ,SÏmîêd—M.‘ïJ{ºó7¬—UÆVæ4#ßQGoeIä´‡V÷¹«“]Q“d¯çÊ]Iv%15ŒKFã´/òéégäzÊ_yU›lvTø'ž²†­Üü#â®ÜK&»FSÓd¯ÏÊÝ!ÙÕùî*õ»«k”#T§§Ÿ)ùÏa:MÎP¹;óv5d›{%{½Uî¥&» å»,Þ)ÛQï9BC;”õ2ìZPhhyÖ«»xR¹×S²×Oå^N²«ó]6}¸\ýîïìïLZ¡JgDy1§Ñˆ2zܺXÿ÷›âüõPô¹×i²×Cå^a²ËrXÎãü-ï%W/05P‘æå¼ ‰xmðš½dFËC+TN·ÛC…ÈÈ8[j”»DÿB‡ qòµm€Ê½®“½®+÷Fìe]7n¤‡ !r"s\¨xçÚ ^%ˆÒ>*(kæR?NpÎת²^·*?›ó†{íVÁõìuZ¹7Žš]ýFXé)èZÍîÊj+TùMº|¨PŸ•ƒ ¹ó5šR«]'<öÔ¯7êŸRÖlM±r¯Ÿd¯»Ê½Ñ´Æüú~ùæÇ\¿ùŽxØÙ2“—wÍ%òý‡~PòÝáƒ;z+Õÿ3RV¾g”]È»ÄÖÉc©œ q6õ׿^oÉ^w•»Cßp×MvÕË +±¥.ÒÚ.«Å„„„²Æ–qæò°üµå¥ÂÙžåøq•·¹õ:¶ŒF#”`¬»du9¶L9ùî*É®4S„†uB»”¹\±u%¿%èÌç¤zÅåи.½Q+ßx†¨•”T“½¡ê4ÙE÷–Qº‡»hÍ^Ö']å|æä=#Ëÿ஬ê¨LTòeÉUŽ¢è-S×É.꾟»’‰‰‰‰fÞ¼yÂÕ¾ ”‘~V!4wê L ”#ü«Ô®ä;j÷ •{)e»âÇwÔu²‹zù†ªº~—Éž˜˜èBÉ~óÓ¡³2âËÏÄ{F–6’ï¨ê™âŠÇOýµ¹×C¦×ú:W¯5Àµêy[¶\7âþ‚®õ5ÈÆôòãŠE–‚»Ê&ÜÿDýÆ\~ßoíÚ511±5€¸š]S©† tùòyªª¾ñ,µxw•.4• Mº½³Ûëô”quÞæÞ ÉÎ5Tk÷ýGzØ™FìBÕ4Ïó^ÿÇX£Ùí´¹7$®¡ ˆMœS\‰‰Ê¨Ü©ÜÀ *÷ú¯£©Ü«ŠÞ<# r§rHyP¹7*wr§ÑpÚ"ͳßXc*w r¯‹Õ¾fËéYKöÌ}'ù»ä êEíÜáÕw<÷ç$!DvNñŠ?Í~sïóÙýþg©ù“bÁ‡/eÊù÷¿*o\Ê2,øð`½UîV«uñâ7¢¢úvîÜ}Ê”©å~ÅŠôïÛ®]„"==}Ò¤ÉݺEvìØõá‡ÿ™™)gÛ¹óûaÃF„‡wމ¼fÍÚò—Ywª·eÍ`±XæÏ_Ø»wŸÈÈÞ+VüC¨†Uª‡ÂG>ŠòON4sæ¼Ø½{ÏîÝ{¾øâ\“ÉTþô°°ð?þdàÀøˆˆ.ÆHNÞ¿q㦄„Û#"ºŒu÷É“§ê$,¹oK­+ÃÂÂßÿƒ¨¨è.]zÌœ9[Ù®¬vÕOG%ÏŽ°°ðÕ«?‰‰ÞyÔ¨{þûß“å®lH5(ÇTî[w+(4¿úLôœÇoû%=Gý§ŒË³'õ~{Î !ÄŠ?%D·}mjÿצhÙÌ{Óö³Bˆn‚Ò2ò„×󌷧™Ì6!DZz^×AõV¹/_þÞñã©[·~•’rÀÓÓóõ×+:vìØ×_o9w.M1iÒä'ž˜tøðÁÇtìØ11q¡œgúôçg̘~òdê† Ÿ=z¬ÂeÖ‘ê­FY3¼ùæÛ'OžÚºõ«Ý»8þ‚øí•Õê¡iBþ[¼xÑí·ßªè/YråÊ•]»vþøãŽôôô%KÞ*º"))iýúOSSŒ}ïĉ“¶oß±fÍêÔÔ##GŽ˜3çņ Ê’û¶,ÉÉû·oÿÏîÝ?\½š¹dÉÛ ÞXäðìWæìB$%íÙ´i}jê‘#î˜=û…rW6¤”ã¿âáª1NË«ïîÿ¿‡nmä%„ȼ^´ðÃCr Ó'-øc?_’w1™móÞ;°hZÿÔ_®<‘9qt—íûÎïÜaôÐöý"[þsóɾ=B";Uvà*e«7ü@LÌàÕ«ÿ!„ÈÊÊ>üΔ”ýòµúàÁ}!!!%ïRTT3èÈ‘CBˆ>õԓÇßѶm› —Ywª´Ê7ªËš¡ÿØ5kVGD„;T=õÙ"œ”´ûµ×¯_ÿ©¯¯"::fݺµ:´B¤¥?þáýû÷”3=,,üèÑCAAAòùêÒ¥‡ú×=zž9sºA‚²ü}«¾ñã;Û·o'„8sæìøñ’“÷4lñî0 }e·gAÙí¥®lH5(Ç\‰)·ÀÔ,ÐKÞnà©þ“:Ùÿw!ÿ‹gÏ_)å¹c±SXÀ†miBˆƒ©™ÝÙiÇþ ý"[ž½˜ÿÐ]ë­r¿råò!w(¿ªGoW?å))‡-Zœšz¢°°P=Û‡¾¿té²¥KßñôôLL|uĈáå/³ŽTo5ÊšáêÕÌvíÚ5`”œ>}úOzyÍše²Ëמ°°Py»]»vYY™åOBÈSQáåååð«Åbm¨M«ü¾ ½åf…)íΣ2gGY»½ÔÕ ©åø¯“Q!|=²sŠdå~-·¸¬ÙVn>9fhûnáÁz7£Ù:çͽB½‡[ó@ÏÃ'³ôÚƒ¿NJ?ñ˵žîÚʯ@ G… Ù¼yc«V­ÊŸí™g¦ÌûRBB¼¯¯¯ÁPؽû­rz¯^=?úh…l}›9sŽ|v+¹ÌZT½Õ(k†éééááädËÎÎ~òÉg–,ùKÛ¶m•‰Í›7ÏÈ8/+ÙôôôæÍ[”?ÝiU~ß*Û•‘‘Ñ¢…SoWYgG•W6¤”ã¿NÚÜûôù|ÇYC‘¹ Ð¼é»2/a2[u:­N§½–[¼vë¯ïˆ»†mþîltdˆ¢O÷¾MëT¥¨aåþðÃ^xá¥sçÒ-ëÉ“§¦L™ZêlÅÅF½^¯×ë322”7!ÄÔ©Ï¥¥1›Ív»ÝjµTi™µ¨z«QÖ cÇÞÿÊ+ó.]ºœŸŸ¿p᢯âiiiõp¼>þø“S¦<Ó·oõÄ{î¹kþü…ÙÙײ³³çÍ›?zô=åOwZ¥îÛR%&.Û•˜8̘1 »Úå?ûeU:\ÙjPŽÿ:é-sç 0O÷Wß=°øï)¡eÍ6á®Î›wœµdÏ»kS;…ýz¡Ÿ®ó ¦Þ]›Ëp¿žgìZÅp¯ao™gŸ}:::zܸ ;w›:õ¹Q£F”:Û’%o,XðZ×®=Æ$&f€2}èС“&=Ñ¥K÷E‹/]úV•–Y‹ª·eÍ0}ú´Ž;Žqgll\ëÖ­n5OÝ}÷èzè-“’rxÆŒY½efÏžÙ¬YðàÁñƒ'´nÝjæÌåOwZ¥îÛRõë=lØˆØØ¸f͚Ϙ1­¡KÚòžý²ÎŽ*®lH5(ÇçÞ°ÏF㾚 jßP€&î|C¨Ü©Ü:A› ¨Ü©ÜîTî@åNåTîTîÐêdl*w Ñ›1c–âÍ7ÿ¢ž¢Ñh–,ycܸ #GŽ˜8ñQ9}åÊmÛöíÚµ«sCÚµ‹Ðý–V«ÍÎÎj¨äjëy¡rP¯½6ÿèÑcë×o¿®[·áرc & !æÌ™õá‡+äXZ‹åoûûœ9³œvCÎKKK;uêÔ‰'Ž=zèàÁ} qýë®þ¼P¹¨//¯>XþÀãzõê%„X´èõõë?•ÃmFEõîÞ½Û_|qÿý÷mÞüEÝ{÷îå*ÛõÊ+óºwïvß}¿sõç…Ê@5uêÔéOzñé§§<ýô”¹s_êÔ©“ò§Ù³g~ðÁ߬VëümÖ¬ç]e‹^ýàààǛ؞z˨¾¸¸Ážžžv»ýž{îVOïÒ¥s÷îÝfÍz!2²G—.]b[–.]V\\<}ú´Æñ¼P¹¨¾_œ;gÎÌÉ“ýuÇFê矟¾aÃÆ3žs‰ ùÇ?>úßÿÎÍ›÷r£y^hsPMŸþ…Ùl޳ÛícÇþ~÷î=þ:”lXX˜òÓÉ­YóéÞ½É|ð^=\"­Þž*wÕ‘••5þ¹s_Bh4šE‹Ξýb^^ž+Fá—_~õî»ïètnéya}6{[¸Óš*ÜW­úý.­”T›¸ÐÐìç´jÕ‡C† g?Õ¬ÜÁK€Fî­ZÝÂ~€FX¹ïÛ×t¿á9x𠮎~î@¸wá Ü„{S°fͧÏ=7CñÎ;Ë.\Tó†……;ùhÈp¯Ÿ«gpŽ”””>}ú!RRßv[”CLËUZ`­_¾Ö×@C†{õ®žQÕ°æ‡ÝHÌ#GŽDEE9Ät­'u£\C€poB,Ëüù {÷îÙ{ÅŠÜ £ôI“&wëÙ±cׇþCff¦R~üñ'ÆGDt6lDròþ7%$ÜÑeÔ¨»Ož<%g³Z­‹¿Õ·sçîS¦L-(0(w_±âýûǶkQΣ¨íÝ»OÖ¼iii£FÝ~íÚõþýc+YçääôîÝ'77W=%**:77WYB©k;xpÂÏ?Ÿ–3lܸIÞ8uêçÁƒjw ÔU¸O[œ´}ßù¹Ë’g-Ù³fëi‹Õ®Lß¹ÿ«ïxîÏIB‹Åöé׿Ìykö~öŸ_Ô³Év»øòûÿýéä™ÝóÏ/N›¬7³Ãþùwg^ZšüÂ[ûvî¿ T×Ìs¨ß E–—–&[ÔSæ.K.,¶”ÿ( >xøðŽ;&&.TæOJJZ¿þÓÔÔ#£Gß;qâ¤íÛw¬Y³:5õÈÈ‘#æÌyQγ|ù{ǧnÝúUJÊOOÏ×__¬Üýرc_½åܹ´òE3 =ýÌ{ï-2$!=ýLbâ«>8¶ò…p``à¨Q£Ö®ýL™òÉ'kÇŒ L)umããã’“÷ !.\¸øòËóŠŠŠ„ûö%'$Ä×î¨ÃÊ=-#wΤÛ^y&:¯Àôõ®sÊôŒË³'õ~{Î !ÄW?žË-0Î}²ïܧúfçoUÍ&mÛ“‘q¹`Öc½Níï¡Ó~ùý!ºþ³;ýRfáìÇz¿òLßëyF¥eé ƒ[|¼t½º4Û{ôŠ2eϑ˷ukáí©+ÿQºuJËÈB\Ï3nÜžf2Û„iéy];U¸í7nZ° ±M›Ö‰‰¯È‰Û·ãéééçç7gÎ̤¤__„/^Ô¦Mk//¯'ž˜d0.Z´@þúä“O?~\Îóé§ëæÏµuëV¾¾>/¾8û믿QîþòË ªðQ$%í4h bÏž½ƒU­…êñÇ'®ZµÚjµ !,ë'Ÿ¬}â‰IêJ]Ûøø¸}û’…_|ño½ÞcË–­2Üãããj} ÔU¸ß?,ÜÏÇÝÏÛý¾aáOüÚ80fh/wy;å§ÌûnÎvÿ‡N\uXȾc—ÇôÓ{z¸Ý3¤ýÑ“ÙJ)}ÿþzoOÝ}Ã*x«žÝ&)å’Ý.„6›}Ï‘ËCúµ­ðQº†ý’‘+„8ôS¦ÎM{äT¦â—ôÜn•÷«W3Ûµkç01%åðØ±¿ïÚ52,,¼K—ׯç( º±L///‡_-–oV®\¹÷¨ úNIDATbHH‹ôôôððß õþÌ3SæÎ})!!Þ×××`(ìÞýÖ*íúÍ›7¶jÕªüÙ*ó(éég²³¯%$Ü~ìXÊ©S??þø“»wÿPÕCáñÇ[¾ü½;ïùÑG+-ZP™µõññ Û²e«¯¯ïí·}óÍ·¿ûnGûöí½½½ëb ÔIåžStãFn±¿G©óøûx(³eåûû¸;Îàë‘8¥ŸllYú ٘#„ðÕgåW~e¢Û|à¢⇃‡öo[™GÑ{¸5ô<|2Kï¡íÑ1Øh²žøåZ‹@O÷ŠwÂØ±÷¿òʼK—.ççç+½³‹‹z½^¯×gddÌžýBUwýÃOxá…—ÎK·X¬'Ožš2ej©³UòQRRRz÷î¥ÑhRRR¢£ûTãPˆ»víúªU«}||zôèQɵMHˆ›?á˜1£…cÆŒž;÷Õ²Údj¾†ê$Ü7}w¶ Ðœo0oÚ~¦o¥ÎÕ­ùç;~í¶n޳ ìÝê³ÿœÎº^l³Ù/eþùÅ®#ýn ÙømZN¾±ØhݼãFC¼·§îêµÂR¨k‡ C‘eWÊ%O·[ZúVòQº†mþîltdˆ¢O÷¾MëT™mŸ>}ZÇŽGŒ¸366®uëÕë’%o,XðZ×®=Æ$&f@Uwý³Ï>=n܄λMúܨQ#J­’rèPŠìbxèÐaÙ‘¼Ô†õ fÒ¤?¼újâÓO?Yùµ‹‹ËÌ̼û£Gßsùòå²Â½æk òJ¹Ì^«V·”Ï}Úâ¤{Úï)«ä¿õÖ[õz½’ïEEEnnnr³Ù¬îç®t$U^ Ôe»Dƒ;@¸Ã)JþÐÐP???eD0å¯2èÕ/..–á.›¼J†{ÉÁ îh999mÚ´‘=ÕÓeÙ®wùU&³Š2h¾2…ý îp–p7›ÍJSŒ$óZéé¨Òü[ê¾IGe„;œÂñãÇÛ¶mÛ¶m[õDõ·Õ_ýUÚ#Æüü|Yѳ3ÂNäâÅ‹Bu¾[,–’_ý-ùñ©Löüüü¼¼¼RŒ@¸£Á(=jäuÃåˆlê7Â]6Ψ“=??Ÿ~2á'ÍwFÓ¶m[‡ÙJ§,ûÕìáWªßýýýå•öJNY~YIŽL@²„;\&ß ƒËÁÃÃCÔAùªî²x'ÙÂ.“ï‘‘‘J²Ëë©*™®D|#± ÜÑ´¨ëqe|³ÙÜtFìw4r:P?´ì Ü„;€pîÂwá Ü„;€pÂ@¸wá Ü„;îÂ@¸wá„;€pîÂ@¸w Ü„;€pîÂwá Ü„;€pî@¸wá Ü„;îÂ@¸wá Ü€pîÂ@¸w Ü„;€pîÂ@¸á Ü„;€pî@¸wá Ü„;€pÂ@¸wá Ü€pîÂ@¸wá„;€pîÂ@¸á Ü„;€pîÂwá Ü„; Rþå5 ;Ь²ÛIEND®B`‚ghemical-3.0.0/docs/user-docs/images/esp-plane_mm.png0000644000175000017500000023546111563552731017413 00000000000000‰PNG  IHDRš¬ä%aÓbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ pP¾ IDATxœì½O¨,Ovç÷!/œ„z¯á´ /háì…zçÙÍÏxa¤Aõ0ZLco${£ÙY³²f§Þµl0Ó Ì0ÖBàYÍ,„z6F^jcü[XðÓpôªàdÀKh/"Nä‰'"#ëVݺ¿ß/.çFfü¨ŒóÉùwü›ÛÜæ6·¹ÍÝÈu€ö—w.Ææ6·¹Ímîéþçÿ"L4èoÿúžEÙÜæ6·¹Í}Ã}ø+œüÝ{ds›ÛÜæ6÷ÍvÛD³¹Ímns›»©ë–ƒ|sœûÞ¯½Z^Û«ÈÍmîëã^óÙ|ûžߪ‰†þö¯AþêÕòsOÿÕòÚÜæ6w¹{ígðíz>|«&àÛÕ¹›ÛÜæÚÝöl¸ûVM4ß„Wgã¿ú@ÿ»?~鼦û:–ùëæ®ÑÆo©ŸZ˲½:»­»ÛDÀÝk ÊíÕÙìÞÂC Õé±²¹—¹ñ_ýúßýq”|íZîµÇÖ5êóM{u¶Tÿ5}$Ûµv­æî2Ñ\£à—6ä[xø—&YKû’×d¼ÚÊŠ_Ë«ôÿRV½t9-ÿÚ°K–º´h¶Ka.mçÖz.¥S«—•Ö·æÝ:N—Æg)\í÷Ðê.™pÞ³á­9n?ëy³æ™ýêM©pZ#¹…{ ¯Î¬Sk½k?b+½µyÉx/Mà kù[Ö\í¡[«×Z÷’vn­gK[kec)¼Uùÿ­s/ï­iËÿ/Mû­½:»†Ѫ0-¥!ÛöÒ25O4×D±k¸Kò{‹¯Îd=–ò—:No)¯Óë4Ë•&›Öz­©¿î·×t/¡ë5Ó¥é¼tœÖ&ÿ–4¯Uàm¾:»ÅkÍKÜ5Èù±`Í@ÿ6á±Ö"åµµîÞƒý­»k¶O-­Òù­»¯C9¿Mφ×vÍÍ[Õv5>×Êù^-9©å±ÿ¥Nãï51|seÛÂ¥®µ­×ä{í×fkÇéµÇϵëóÖ^ogr¶Ê±¶­_hJ˜{É YÛoñÕÙK&”¥(Ó®Ù0.ÉóÛk»%Mkük‡½ÔÝBÙx [hÍé:Y¯Ï^ûµðö^½…ßþ¦¾V‹€ë¼ó[ÒÞJéݵ&È׬0Kñ­Wc2½–¼®QÞ{º’½À Ãÿ¿4yͺg…}i-á_ºàa­kyÈ¿õñ#ݽŸ ×v×P,­>¾drÿ;~‰ö—ߊ D_‡Wgìî©u~~èòÿ›Û\ͽÅWgßGþ §ÿëÿøf,huoñÕ™åÞʻٯƒÛ&“Í]ýµWgß4÷­šh€·ß¹Ûƒsû:½šÙÜÛvoýÙðuvߪWg›ÛÜæ6·¹×sÙ«³×ÆÆÍmns›ÛÜ·Ãy¢ÙÜæ6·¹ÍmîFnû”óæ6·¹Ímî¦îïÀ/ùKüò—¿Ä¿ø_þŽ˳¹Ímns›ûš;=§D¢ùð7îV¨Ímns›ÛÜ7ËÉ9e{u¶¹Ímns›»©Û&šÍmns›ÛÜMÝ6Ñlns›ÛÜæn궉fs›ÛÜæ6wS·M4›ÛÜæ6·¹›ºm¢ÙÜæ6·¹ÍÝÔmÍæ6·¹Ímî¦n›h6·¹Ímns7uÛD³¹Ímns›»©Û&šÍmns›ÛÜMÝ6Ñlns›ÛÜæn궉fs›ÛÜæ6wS·M4›ÛÜæ6·¹›ºm¢ÙÜæ6·¹ÍÝÔmÍæ6·¹Ímî¦n›h6·¹Ímns7uÛD³¹Ímns›»©Û&šÍmns›ÛÜMÝ6Ñlns›ÛÜæn궉fs›ÛÜæ6wS·M4›ÛÜæ6·¹›ºm¢ÙÜæ6·¹ÍÝÔmÍæ6·¹Ímî¦n›h6·¹Ímns7uݽ @?ÜPgHô¸q.éµýxðùH„rz“ð¿4}vŒè˜.”.H.¯ rºD†ô(¤”‹ÓuÊß"ÙÉú½4¼ <ß©ÛGúé%ã`AÂ¥ý=¹ëÕ‹ôxz…ú˜RÕï×EïàîN4õù¸ÏÞùñù2¤í_’«H¦Pÿ$Ý…úGÍÞ`¿"—EB¹¡¼ùp;ÇÍQ˜ã@ô×%d‘Î-ÈFÇk!“ø/¨ßF49±ÜTÞ™l¨G°©„Ê×ÈfRþ$<“ §'H¥•l2[ $chzR³–IÆÒädúæ;väù.i~R“¬å_#™’*¥ë¯l-?دÈe5‰\Ë?Þ–|’öãúrû-D+ټĦqm²Ñá›ÉÆ(ß*¢qѯL4†ðjdãF›J¨¼”5ͤà EÚh€6¢‰áèrM«FWÒàLbi ‰—’Œ$©Ú;û,]ß‚i²Á¬%#ÞMý­RÅk%œ¤¸ í¹D5Ûß×Þf³ô;i•÷uwŸhÌKšûÙ¤ŠÝ­Hx}²™I$ø™`,²a?ÐF67[}&%–59ˆûZ5ÉAi`ÕÕ]ÉXùÕHjÉèú*‚Ñšù%6—KÈåj«Åò«Ú„”ÿ*åáþÔí["‹¥ñ±‚Þ¬Íæ¥ds_÷&&š¸ofœý@ªð½ á¼²Íæê6š5«Ïx²i^}&d³Fi~ÕwÏBZ«»2"²ò¯ ÿ8_B2ѯòÕšyqUÖ•É%#Qí_*W-¿‹V¹•Ò­HI‚I¿êv^ ŒŒx/!à¦d“”W•û&ds_w÷‰F“LÕß_¾‰pîA6À6! ÖÙhôê³[ÙhšVÓØÒ*³šæki„/%™è×õ[A­är`ÎOûqIzò‘“ݪú5æ—”ßèßš¿H"kH@›k“MRÞJ¹¯F6÷uwŸh4ÉTýãåáß,Ùmûj¬p#”m«Ï’Ug˜‰æV6š¥ý­«½&¾’Ÿ¶ÉÔ4Ú쾈¿Dn±~–†®ˆ`-¹H[F\¥¥m…r5Ë…ôkä#_ß]Jl5²IÆY©üdcŽ»Fù±ÙÜ×Ý}¢ÈDÛl^þÎdsѾ+œ$£5«Ï’UgÀMl4¹  Yr¸š¤Î·öΞ÷’S /ÓSõk"¡É7Ù` ’ã'dÁõ5Ú}•\HÿÒÕrzõZ©þ÷XÆñ¾®6Ù柳lîëÞÄD³H&A£l&™¥ðk§´ïæDÓ´¯Fj:µp˜Ók^}&m4ͫτl±Ñ$áÖhd€©AÖ4ÜL³´ò«hz–†ZÓ¤›H¦A£OH@æ?¦ùÝ]å“ÄuÑê5®ÔžkÚ¥•lÖÚl4]›løwd•·å@ë8¿£»ûD³Êæ²Öß·‡/NißÍ­ÉFj:%’‰’Iu’ÑDc­>³l4½Ò¬m45ÍrA«®6CªÉ7i²+HFk–Qó\cÓx¹5÷…ú.iòKáW嫵CͦS"»¦ö½°}^j³Ñá¯M6ü;ª•×ìOã÷´íVÙ\ÖúWØtZ €iùÙ°¬’ “ ê$S:û¬å„€L#DES³4ÊF liµ™Ì§ªÁ^H2º>ZƒÏÈm;û“üJíWKš³®¿E —jÞMåj°é”§iuÒô_J6klEÒ¸°}5I/‘ù;ârlDSt— pÃðÂ`Úp.&`ÙfÄsU²䲯F¤? i¾s^ ™ÖÕfœÏ­H&I¿‘\JûLÉE·_ƒ&Þ, šw“,´ïb7’NÒ^c¡ýäÚ}7/!›IÈEÒ¸´ýTû_D6ÑÝ%äÜ0ük’ ÐN6<_J6ײÑ4kh ¬uµY‘4îI2K¹xÝÓls©ÔGN5öዚùRù•,‘Ž«´ãÚÕiœO5ÿ P§—¶_KyÉf#Ó½ÍRø›’ I\=üZ²¦ÓL6¢¹–ÆÒÐ2M ͑í$Èôq_’Y´Áˆô¬öjÒ\µ&]"Ã+†o!Ÿ¤ýŒqÜ/‘Ñ~—¬N“ûnÌükãi{´¬Bk¯VþV;­-¯9Þ—Ê_w÷‰æ­Øh–Â3ɘò¥ûn˜HJ'\l³)ÍKm45 -Ó´D:WÛ7SÐøšÓW弈dôõàçrét-i’”æüÚr¡<­ãÀ”º¬ö3g;›Z;/›ªCH“­ôŒ|«ícÄ«Íf£Yç®A2Àë„w–¼Ö¾›V²Y²ÙÈ}5·°Ñ´j²%ÍËZÕSZmÃéëðÍûr Â³%ÉÔl0-å­µO ‰¬µ½´å_\ hµ?ŒñQ ¿’‹m8kÈf©ý¥ÿR²1I°–ž‘¿Ù>Føæþ­ü¾6¢ñî$¼NxZ’¥}7ÁU²á‡¦&¹¯æž6šÖwɉ†(óƒ­1[§_ÓÐm>+IFkÔKía®^ZÒ u»õi•-¶šÖrèògDYi¬] 6®Ù”öÝ´Úl&í7Úg-ùUÛ¹¿Ô.¥xkÈf#Ã…‡úMå-m:Z–öÝàB²Úl6 á æž6šEMZh„ÅwÞœžªoÍdiž‹6Ÿ’LÜY¯Ú£Fv™ EkÊV{¼¢Ìúk¡üf:j<ÛÇhïì,5å ÙtÚ¿† Jí±PþÚïG‡1ÙÜ×Ý¢ ï›Ê[Út$ðB².°Ù æž6šV+Ó¬…Ôšq¦Zé Y"™L£´Þù7’Œ®¿UÞ&Ó YîK5äRø% 9¶ï’fOyýôkÊXþ¥òIbQSZå÷²1Û£¡ŸšÉ¦Oë5ýµXþûºûO4¯A4†¼º6áëɆI¦™lŠ6› É¼i'äKöÍXšföŽ|¥Í ¸/D”¯UÓlY½$Ë]ÓŒc}*÷Û¯QÆòHLÞ/ÆçòB•¯dóRd#ûç%dÓ4žŽ«µdÓÒ¥ßÏ%ýeõÏF4À«!¯nãÁJ²Y:1@Ä«’M'ä$üÀÙÐ+Ùh š_Ëj3©‘.j JjÛA¢arº’TX^H21Ÿ¥úR!œ,ßBûåJÍÙ’KšôR½–l:œn5Ñî,¿Ndcã×"›bÿÜ×Ý¢¹јòMáþ"Ù¼ô,4–“ü°júò¦{%MAó«ÙP2ÍwÉX¤ËÃå+Ì›Œ¬oI6ý5ÉåÒú6Ço”×&sµ–ª¿îç$?îçJÿÈþ¸ Ù,I~u{«r½”lJãïŽîþ 5Ž8ñ2yÔük÷Î%6šÂý«‘ÍE'„Š·¬>‹áé:g%!Ú`iõT–~A£kÑ0e¼˜ÞJ’©­*["+“Üty´´4_¥a·’“þR[ִ׬ÖÒåMò/å÷ dc‘ä’í¯™Puûí½zéóS庣{MÐ4âÄË„Qó¯ ÿBâ¹t_ŽÃ+M$}?4@mõY ç®ÖY^i€µÕ::}©Ùeš[…dJšóZ’ѫʖ4ßfrY£©Šú™6žŠ¦½Ö&tÒY“¿J?ާW ³¾µúdKû.ÚØ´,…_ê?£ËHFHi‹±ˆ†¯ßjL§¨ÑªðªÚ4Lqß¹4žNï%$N¿ECáu}Z4äXOÝʯëkiÌѯËÛPM ‹6†B¿ÖTÚêîI6š°Çq­ßt;,õ£.ìp-D“•÷¾îmL4ÖL~m¹‚„.!Uûr.%›‹m4(Ÿy–î6ûhdz­«ÍbzZ“³4s#=’Ó»Ép¹ÖØ–Ê¿H…ôHåþò¸FùšL·Ÿ1^‹läxÓõY$CÖH´Ú?\%›Æ“!7r5¹µ¼é¬Ú—s)Ù\l£Á۲єV›-‘@Õ&Bõòeí$³Hfº=\­m䕯¿­ÉÊi¶{¥Ü𠉔æð¯E6Vy!ÚCŽ?]ÎÅU†jœËtÉPIYž˜~En6åJ3ùkÈ[Nd®M6®k£)‘MUÓLÛór ÇOÛÛNOÉRùXsÍ4Yž\¤æ[È¿ôÎÛ*?`ß×[ê¿Rs]+eú íš¼¥¹·ØpÖM­?Áý'ú3!Ò’Ùþ(ÔχYÿ6¶û“z*)ËÓ_’¢kxkNàtk$£ß¡/jæÉX~¤åÌÊW’{D7èƒÿ¡OýúþZNF~%[êÏÖö+µO­¬ø°ÛWï›’ûkÌöAÚr|/–oAZån&›ÂýhÝ …d~W¸¿®I6¨O«¬ °’lj«Ï"¹‰l.9û¬¤qñõL£*‚Öè$јcAƒNÊ£Þµ/žPÓ˜û=)©‘/¤g¶W(WfS Ý.í¿ª_ô_iHòÉP–O”Û”F»dõíÙjÛªŽq]Ûøtü¢­J‹lõÙXHÏÇ $£WŸeñeºXh«}äÝý'šˆd‘ù©pÿ¥ä#í²1W§Õêcƒ"›–}5šl¤FúW}ŸÈ5­´~‹«,òa4ÓÔj¡¯5ñ)ÄòÊúXš¦Qòo"¥aCkÒAFR!›<›¤[þ²*0“UŽd)°*¿îoÙ_–¦®ÛPýjµWm“ý+ë_#šf²×ä¢ë£ýÑ,»%€%r1ü/ _-—TT¯L6%›M$ ýÄM6%MxÕê3!K¤¥¹Y«Å¬wìZcŒ -5æ’,‰ÆÐX3 U•¯TYþ$׿•d bª&—„,o õxÄ£Ûqiÿ‘lÇR‰íÓ¾‰l°0.­Õgr2]X}f‡$«þµÕgE[¥ÎG”à §Ó1äÝý'š%‚€4û«$s…ðk'!à*dTÈfáÄüWY}–hžº~‰@iz"~‰jš/ ñ2Ôxߪ‰'«äTùMM]kâÚ_±ðìF-ë*Í–ÊÄøñaÎ%«÷ZIåÚdÃåJâ¤[ÛWc}¯F¦W*oëê³Òê<‹l’vÖ÷[ûý~îþ"—‹l.÷/H$!à2²r’« P&üm«Ï´æ‹ùGlâœÔËÒ°Ji°*ÿ¨±r«Š´FÙ\ R15nq_—o’÷“[ )Ú} ׳ô^ %ILºŸ)%¬œº]ùõŸÊ§ÔoKýüR²‘ý—KŽ/ˆ¬e_ͪÕg²¼ɈrÖHD¦+óÑí`å¿MÅ)r¹Èærð5ÒÑš”P$©Â7Ùl üÛh”Õ÷ij^F}Š6šÚ;|N'Ókñ9ÿšæ-4U©yËåÉl2–´4SQ½ïeTí=Zé‡ÕkhÐT£$Þ ¿Ç÷iÈû“¥E:±ÿ+«Ödÿ]B6ÍßÔÜôK«¹ä¸ŒãÓk÷Õ4“VAVm4…ö±ˆ¿˜AÞÙÝ¢Ðà[H¢>ø×Êæô—Ê#'’MÔL¸¢Y!›Ìf,“Í¢FùW­>²ªqÊû!½JÈ"#Ž×?Þ·V›!d²ô)ׄc¿X𩬧¥±ÊøJó7W‰ö•ãaÒù yv~9+RnšÓ9—Ê©Ë+ó7ú½déí¿YK6º½›‹Ñþš„2› U?E*%[^ë©Î&ÙýÖl£qvºVÉßÉF4mî*6˜à_+›Ó_*O‰p€Œ\^L6bpÙh¹ôåMi£lIê£ïKÍNÜÏȨ¤ÉiM·¤+’Éö͈t«š¶ðg„…¹=²zhÍØX=ZÐ<ß¾î0“N7¤~PîŸó”hNß•ò~ël< ·áÐ¥dƒrWW“©ò–H!ŸÖê3¾^X}fæ¯Ê«É¬J6•ö¨ÙhdþÉ8.ôãF4©kµ‰î+Íò¹Jù™p€ŒXª„#âÇxšlä*´!/ÞWã.ü>M¡Ûh ±ôî^æÃ/í›ÈO¦Ç÷e9Ô}KƒÖõçüã>|&AV{‰úC]ôý³ ×*#шôjĤ5gËv¤m8’lŠûnŒqPlwQ¾l5–LûC‡WãD·w$½Š®°úÌÌ?HI ¡[ãžT; ÿÔl4­ùoDc»V›ˆC].Åoò¯MŸ*éY„CB©†ÂR„ƒŒ/Ó—dóYÈ¥Õf–´VŸ-PZÝcjZnÖèm"F|‹„ô;üÅÕfÈÓOÒCž¾´ÍèúhM;Ùw ïçö”á$$±dƒ©‘G«´â×l4Iùß×6œQ×_Ú¤x\ãÁìÿBû[ä[Œo¥ÏñŒñ²fõ™ïÖxÕå¹…f)ÿhl÷ ˘N#!™þKóoÈG’JÙ¨z%éVȦºÚÌ’—¬>+ÙhXcÔe²OEÄ×ïÒµ†V$!‡Tó\Úïö²\²üJ•³´édš¥Z…Åmƒ‰“‡ª—³®ù¼HŠt£g!\29Šö‘ã‚Ç—$J¹"i'ÕŽÒ6–‘­ÑºÑÉa%©DI£¼6ù4•«E•$d AHëÄ ¼/¢¶ú ,©rB4F¡¹Um4_j‚,åCXh|2^¦yŠwë¢sMR”7æOiýt9d=õ½ªL§kj¤¢~²ý䪵³´}ÿ´àï„ßü ©5oÎ ƒËdSZõW³uÅþ5ÆnÿÖqV"‚IŽE6ñ:òñ¥ó7ÉÂj×…ßÁ¢¦PÿZzÑxÇŠ°’,V˵d« ©TþÕdcÕ·Wé3Ù”N ¨Ùh€Êꢠ½èg¥Ñ™6š_jfœ_ÍF5[¹úÉZmf”ÇÒ¤Kä””JRÚ¸ä$VÒ|3MI“Þ§“C·Ÿã—üIxeCÊþ¢úáËGyû/‘e³±4‹lФ"ú«JêzhŽD®ÞWÃåãøXQ-u¸Jý¤?)¿¾_Ho#šehÙ™ÿšríª¸j=8ݵd3ªtZ÷Õè}‰ŽÂê3zÙ)ÎÏ"“’¦¦¡B¤5d¹ÊÌZm&ËKyüÌ#ʕԓËaØdb;Rz:²IBZSÊäÂ~˜V©úgªä''ޝïÒ½Äf“‘ Ä}W¦f_ Ï÷³zBŒ“Ö}5PãŠóG>î—ÈÆ²U-Ùh&•oSþ¢þwtwŸh€šÿ–é N6ÎJGj*@•l^tb@ ‰ qõ™{Ù)Î~µFi€ü£åpÑ´®6t¼/ò«iˆñºÐÔôì¸ Y~§&뇱EIBFN Ùô©_÷o$¿PŸV›Mì·J;g¹Ë¯×4ù Côû%ûjx<ÉtLSõÓD3©q„‡ª åoÈ#šÙ]ÃÆR•jæ/ù_BJ±„ô2ÙB6 šË‹O H4n´­>3m4‚ Œr¦h˜f|ƒ\–l4Qs×gpÉòÈUL–¦žhVx1)$íI³?î{ yË}0¼“¶•sH÷ qŸæ}5gé_!’!QÏnÒo5[N¡½t;6ÙlT¿èvÖ÷3òQã€Ë“iðâ!^$!Q¾â¾¤R–;·0Ê¡Êo­>»ÔFã á6¢1Ük‡šùKþ«Ú~’ ΋ȦDRd“í«áô[WŸe6EQÊû.mà56šÒ;íÒê/¹j¨VSstyú™f¨ÈC“ PÖü'Pß}´¥€°ãCð‡ë¼¾F’*<)€ÒûΨTèö1ÉÆ ²AZ_‹ JdR‹6ݟθ•¾E6«Ï¸\º¼Ùø7df£"Õº} ò5îoDSpÿZI¥jû¨È¦ôKåDJ:„TÊô3Û“Öø ÄP%›Ê©ÎÍ«Ïj'HM)k?}_j– NÔkñ]{Ôð8¼²Ñh͹dƒ™Ä}­¹gäT#Y.A$š`œ$‘o$‘ž ¨H,O¤oú‘¦'ËûK…ONgÖát‹q!ýÕBeé™ÙîTú֪DŽq“¨—&–·°úl¦Sá6¢)¸ ˆgöVR1Ws5ȦôË­÷á$RÞ7ȨôN¶H6=Êß«ì}5«O€Ð4íòešhMs• ²d£‰šç³d£Qš­ÞGS²ÍÄpÊÆÙd ’ &Ú@äê0Â|vYxØw’dB|ⳜzýÌéõóä¥ýØ#?Õ þÂj«.¤U"?y✠cÑOKý“´¿uߥùCŽYž?r¼Z¤rÍÕgVùWŸÒ³l45²ÛˆF8‹ $‘iüoDfå5dq޼®É¦D4F~ Ùˆ}5Ù÷j{_Íê„,”«ÝFSÒh…æ·h£QhRQ­ù%š¥"}¾¯m2üÎPUÙ<ôÙc&Áô³ü$$öáû4äýŸù~Áýß!Íljü²Uf¤úÓZ¦ê‘¡/<ÙÄö•¶_kþ%"Íòá¬q—ô£ ÏãgiõÙâÙgŠ@d98ßÙhÂׄß•_ç¯Óã÷s÷Ÿh,К»P<«¤²D6·ðø¿$E}šö -Õ·Sñó¡iõ™”¯e£)®Bª­²Ñȇ‚x‡®Ë¡É…ë¥óOJh²¥Õe¦ìÅ$D‚\„_MœÌöb2#ÄI'‘n@$•‘óSþd2$äç›-ÒcM_×ÇÒ˜-ÒaeE¶oB…ñb'÷Wi5Y+IkZZ}¶ÚF£ÆEòs©Ül4¯äJ$¬'Œ"º‰¿T(21êY´Ýh²)ÔW†Oâ]²¯X>!àR¥aj N´oõ]» Çuj3ä}¯(§^í$I'æ4Ym“ÑmBýì?‡û Q@­ ¶ŸÏ|róõ’fÍê³O¡ÎŸ¤ˆæú'¤ÅùŠz¥†_¨÷¤ü²õ÷l¬ïØX$2Ò«­>D¼¥ð¡2~ëê3“d°|B@«¦ô^¾“–J49¥ùéö–D#5Ѥ»èK›-¢ÐP!Â-ÚhDüKl45@\’püÐé²›œ^”S“úýo6šW#²ï/ú_[–Ê£Ê_%\H6Öý^¥V•™«Ï˜l’Iˆ^xг¥Éñu‡LóÊÞ™KMLk~â~Ôt•Æ‘þHH÷õ„ø²‘laeÄ&l6&Ù)ZŸ§mj%2ÉHVô›5~L’(Œ7ˆþ*­>+ž’Íåáñ„ùºY~9ž]ZÅúŠtÕï³Ñ´ºF"h&‹üÀá—ÊS’Aq>¨M-}I6-ûj€”l’×jÎÞGcÀõIÊ£4©%~·ŸƒÒHeúQƒU6Yž˜ž¡!Gåô”h’×B.M'ëgy_ÊP^I2qL7A­B£ºÌV­©ø ¹9ßÏ„rq¼H4F¹t»$íÉ~Êë=*™ho¤£û]Þ7ÒÏÈÂwVx9Ž$©dãªaõ™¼ží“å2³!*BÙl4Wr—’L#iÏ~à‚ð21ËËõZ*?çg•'Ä…ö“Ò⾚%MË—6+õk¶Ñ”Þ™—l4%¢±¾„(‰FÇÓšb¶zJh¶Ùj3«< 1YÒ &‡Äæ¡ CÛ`ô>¼o†%·a‘6ž>qNbƒQùKÒÊN±6úUúõ)áÖYhµñÇGé~M³¯¤'Ç‘,Oë—7c:r|”ò7dFÒ…úl6šºš†ÄÎ[M.‚ n& Ò1ËkÕó²±5©<=½¯@yõÙ[°Ñt…øÍ6QQ¹FŽgjÎ2ALxÜþ Á„ëçQhüT8{¬Ÿm1qnt (H¯4ô F´£p?øÃäIáa’(WBÆr$ß·å’åüÄí!IENb¢½b;Û˜Þ—$‰±ÃÂYhºßHÄ7úMÛ‘M‰œ§g®>c‚1VŸe«Ñ´¦åK›I9”&UÒ@K«†¬øR³Õ᥆©Ï:Ó¥¥ÇöÔåãý3ÍY>|òÁ…U^^.Ž $ãB}Ü9<3F€ÂÃ×+Ucxv8%!Q¾Ñ@ø%ñ°äöKöñÛ´1M4oò”ý)ûA_§HD¯¶ÓýÇ·»±O'#Zˆ~ý—(WF$úM”O†¿ö –­²ÕFÓ©t`å‡<ÜF4W"™Š¦,RX´¹Ôˆi)¾ÎWÞ7Ê¿šl¨P^­‘éòi^}V]m†ôzÉF#5¸L³ $ßQ5·Jü„4txcµPr_䯉†óãpIùB:¬yÓ Ê-')€¿/3¿Î $ÓíÏpAP  ¶šý»ýƒ—°ßúÎK°$`¿C¸?€:`Oˆá½ß_`ò¡Í}:ÊþKœ¼: ˆ6ž<ã>²ë¯É/ ;¼¹¯fœãëþIFö¿ê/IÖ™FïDüBxó„.×'˜doÈ—Øh,ÒÛˆ¦àJ$£®KÍžÐ&ä¶ß…’Õø­å¸”l8)) '¶“0]`Ûh,’¹•FÛ@²wÒµøH5MéééòB•»T¾Îgž`j°è£?é·‰à>é DCÑVÒÒñ3 ¯}$ÿ0ò“‰‹“Hü}âú0iö¬ä¨¹ºyµï·á%Ì™í%È8yI"‘Dƒ¹ßØo­>³HTÛ\L?÷1÷§$£æq»Ùh®íî?Ñ´Œø±dßwA…4HåÚ²Z>JÃ7“§S"%¥áÈûµ³Ï^ÝFSÒ,³U@ò¾ÒM’š&”fËãì|Zl4•úÈp‘dhnÿÏžløÌ1ß1žxà'°íz†wÁÚm2q“ [|<¾ïË©NH& BÜwó@s9Kš²|ýhˆPÒ´qš±E··ŒgÙðÍÆø”“Œ?sþ±\›æîþM‰d —‘‹EFPé‰jmx‘µ¼rYdb”;©§›'‘¥øÑFÜÎF“iZJ“25:ßÜߢӗ5¯Ô0{dïÚ¥Æ+5ÎÄvÄår$YNYÌùˆrº?í·`“™úè—6“>&_¿|ƒ² f“ýl{Áì¶^…6ËÞ²ÙÄïÙ„ü²/‚†ûŸÂ˜íû™„ýÃÑÜÿ¦-EŒ£Q/”ý¦ú]ö§eÑDT³Ñ$ãs¾rÜ|l4¥ü6¢1œ¥ÉC‘ ê$ÓDRó€ò[d±6|‰ÄtùU¸–ô2›ß´ùÈüµ&#ºÌF£‰ÆÒä2Ô,É,¦‘–Þ±'šè Ix­Ëò6ÑÈü…†+$B˜É†ýaUØŸîØ'y–‚Í…„fO €ÞyÉ«Õ"ñ(ɫؚm6 $ß»ù‰Hž‰Ê5åÙeýý@Bƽ¶±…q ÉVî¿—Øh úóëb£)ægôÃÝÛ˜h "È€ÃÈ%³e”à…ÒL_‘•Yþ%²át R‚?+×4Kâ¦ÍÒ—7ujóÍl4"~fsAz½¦‘&Ro®Sûi¬wáÚö“hÞÑÈr«¥€@4=\ @W 'm$üZís¸?ù‡Dòc›KO~K¨|FH~È͸ül*Úl4ÙLNkåøä¿kÙßZCÒ/sŠzgD"Æï§i9û,¶£Ê_Ž3kêpÕq»Ùh®íî?Ñ,iî ¡IBý¸2r?Bq•…ô d•Øp–ÈÆH§hƒõ¸¯÷Ñ¿¼©m4ÀëÛh2M¹æZz'Ÿi¢Á/Ë%‰¥TžäþÑDÍv¯úÏß§‚K™ f¢ñ²ï˜ÈÛp˜xÂê/0 L"}"÷Ô{ÒÙõè; §=Âê5û0 ÑÎoþÜïØÒaã]Çg¢‘ð÷ˆ“G<M[Ò¿âËšÜ.Éø@Ún_®>“ýgž}æÒôtÿY„­ÉZÚä’ñ~³Ñ\ÛÝ¢¹ÉdD0Íéøêr”ñº•~+ÝRy 2!q½H6ñeí Ë!Ã/°d£©u&58©if¡59_k˜††¦5A­á±¦)+j}iSkUÿÑDÍVjô¢X£¯2›W¥Qj³ùæœB¿N7†ƒl8œó“W¥Ír~¾ïÄ}?Ùÿ4¢'¹º-HþÞLéÄöóê8ý¥Nç|_%¶š>m«¿2RV!ÇSÒïÆ¸0 [Ãì:T>Æêŵ6šäºñ;Øl4wr­$SÒä-Фf~“Lâë‰Ëe‰|²òTÈ&³¹@Å×d£=T}³üÙ¬²ÑÔÎ:«j†*ü¢Æ ™˜Ž?{'/Þi D:Rõg-Ñ(B´ÅôChÿT³œm7=0õèÃ0‡à'ôÇ>Þ§.GHdd‚à·îÏÙìøuŸ*-È&ñâ‹V{(2¡}¡U¿Ê³Ïbÿ©~Ó$b‘Š´Åëzü‰ë·°ÑhÉò7äf£¹½k&Ž5‘9˜äR"“§—ÉŒt 2ÚnZÈi»Äzs|¤éX$”íâ–l4Öj³×²ÑÔ4B­ÊüÂïØÙäùÕ4@™ÞшòPGp¼³ÿsèX„ðpaÒw~ÏÝ£R¦ÆÙöÒ¿œóãɬ„¥þä~ŒŸÇä5²›F¥$aܱmF¶wŸ¶ÿ¥õæëI»jÛ• Gs<<î$‘jrIÆ‹gfºâ¾‡¯a£1‰æñ»Ùh^ß]c‡½&‡Œ\î!EþH+ÉF¶ð[í£É¢xB@f£¡†ÕfâÇ|KM¢ÉB¥_Ñ9ÿ¨i MtWX}–ø]Zþèï±È’côœ'ˆv'±~ß O.€$_çýžm(Á¿c[Œßïzº¹ø¾Ný|ÒÀÜŒ>|/ÂÇëYÿŒ‚¤ ÷Ëd«¹xõŸjïlõYhg¹Ÿ¦ºZÐÒô™\á¾*çkØhLrõm±Ñ˜é©òfíõ{RéÝÑuËAnï$±$r2ü@¢ñ“Ô|$¹HÒ^ö"ÜèfÿER¤k‘Ž._,¿®Ÿ¨gŸìðh ?Î]N4 ɰágÛ ÿ˜¥$4KÎß Ò¥|8'Ϧ¥ôjñÍS¼cïÚ åHˆ ³ýg?‰úv4ï7 ~wvÁÐ?‚ºÞ·<8’Ë=Îhùz†m&}/'…ù¤ê€F<ýÙaöbœ¹ øëü3ü¿ÎÛ`ÆÉO"îìãŸÎ#ú‡clŸÞ‘ËÇÑ8÷Ó.”wÚ-úUûñ:æI^^—ýEÂ/‰¦tB@:_1^4©&×)GæïS¿&³$`Úhd95IÕÆyvß*_©¼jÒ,å·wÖj2©Ù›$#ÂGr 3üiðä _G$~}¿Áe-Y^(²‘í`Õ·@B:!õ'ûh€âYg” r›Œ&™ìxZ^S“”«„Jï¤ã;ôJzÍ6›ÙèðÁ߉øìïûðÌФ…?/ðN~Ñî;I6#z¹ú @ÿN‘ÌÐ㉀_ÿ³/ð›ÿò |ñ§ÿOžˆ0yp Âú~ÿÿü‡øáŸ}!ÎB›m8Ô$æW©Išm=¢þÜÒ¿¤¹‡I2Ùá/ûmÉF³tVέ¦HâÍšïÑpþY$s‰ÍRç7•ò3úåŽîîVP¡‰³Æ&Yé×ïF-›K$,HŽE<-~#=—”§Pîê÷g8œ¯ÉF†Wþâ>špR@b£á E)~Ùj3¡Áõ2m4Ö»òÚ»é,=®¡j› ?4ÌwÿJr9IúÇ qÊò™mb.J"ß®”Å“¯_F¥<ù×j~ð§_D‚&‡ÇŽ@Îaßö“—ƒsx„¿¿ðëÿò Ó†3~žÓ¯™»ù¾  Y¯òbÿÕO¢¿º -•l4Ö*¿o³FÛ¬J¿ƒZyÍü”¼³»ûD£5y“d¤B$ü‘d*’ÉcD#™,Q…TšÓSåÏÈC“J)<ÙdcÙhí£1W› $ci^¡|™æki’+59ˆôÍ­ !–Èfd#ÓKlŸhâ}Ú.]h&ß4ߞ™âq0ýŽÐ+Mÿ€ÄÿÔ?ø³/0ÀËà&—'"?±t„ÇÉá@„}¸O!üoþëy²áÕiûw\ì”löÒF3ùão"y±æ.û§Wý•Ø\Þ_ÚF÷l4±¿a”·ÁFS_(oi¼jÍ"É,ä·MîB“—$A.Šl2’‘’i “$]é¯Ü·Ò+S‰l¸þ²=œ]ïâ©ÎQÃéuh8ëÌÙûfL’šemL¦iLÍÖ|7­ÓWšÖÔ, ±D6É»vUÞb‰¶«¬~hœ ýáB0Æ¥Cÿd|Øõž$d9B:Œ~’™€= äB“ó¯ã:ÃÞÿ½?ø…DI8&97ºiDÿ0û9¿1*u#ü‚†0îxµ\øÎNlïÑŸÛ†TýÅã D4±Cÿ$ãÊh÷( ý.Ã'ãD–‡ÓÇ\OI*¼&³ÍŒ…ø…qªÇ}"‘·k®6ÛˆÆ;‡ÉÀÐä[H/ ~¢ù–ï×HŠãE ÙDÍX\W¤Â푵T8¾Øß£æIgiߌÖd‹š–ÖÌ4iHÍN„/‘ÎÇÒT—Ș5TmÈʃà—rôõï0O ߇þ ÐÞÿú‹Bsz¹î “F\ÊHæûÿÖü™dxò "?¹|ï x?OOÀã£÷{†É%dóëÿzžl†AåGÞ&”¯> á‰mJa5·7/qŽí&Û‰ûGÚ4D?/Õ?èŸøPE:>–l4ÖxÓä[µÑ —Kgé%¤¢ÆgÓêK•žü•òÛˆÆv–F®I¦d0I¶­¤H.2Ý—JQžENlœ ›©p;q¸xÝJIÉú °p"R²I4ÔR;HJin-µêÆhgÓ¶ÒL6š©.G-}«œl£qBöÑ?òõÏÁf7¯Jëà÷¹å¡ÊˆC/'™Ýxÿì÷À¯„ÉæWÞÿþØùɆ‰Îù/r"ÝG#—Vsùãþ¡ôÌõç‡VýÉÈÕcª’ñ£ˆ¦ö¥Í—ØhJ¶¼d\«eyÖØhô¸±l4E¢‡j7ÌíaåW#™h¼«~_EÏä-$ƒdjä ÓÈ5i,øË'ËÃå÷KùEŒ|HÉ/’¸ž¥'l4‘h?ëÕ¾¬ù’Õf“ˆ¯ßÑkMbÓ‘’ë£ÈÄÊÏJŸ5ÝÍí5Ñð0IÒåò?ËŽë«5x‡y‰r8Û,KzTÿ¾¤É¯¿æ‡ýþ]ºúë‘<‘Ä#ÿ‰üÍ÷ð®÷óx¾û¼?xÿ~ï%‘°ùzØ£ïàW“¦M«ÐVÏu3¡ÅÕhÜ~q<`¡ÿú´ÿ¤M.ŽƒhLRpÈH$É¿t_ÇùgãI“Š\µ(î·Øh²ñoÈ‹W›©üj$#ãßÑÝ}¢1w¶_›d8ü…„R´•Ê©€ )—S”+’Š! ‚h”¦–ØtD;&éu°m4€Ÿõô5ÁRü¬³ÍZ4,ÓFcht‹6¤éÕ4:ÎO’~·_²Õ”4Á(ÕgàŽzo£é>­9óà>ûòÄ“Äj5ê€ý4bÿ§_$€¸üüðÛ þÿ÷ð=p8xÒÙñèOâõ@ÿëß6™8Y(Òñ¿§1>$)LÄDC¡>1·¯'Ùwlyð8°ˆ†û¹C:nd?¶Úh,‚–ãˆóÉHå6cÜ—lŠ­6šŒx~?ñu?w÷‰¸É(r¨‘E‘\^*UºfydyUù4™HŒIVL8”’!Äõù5R h<µ9³ÑH©úGjž¦fVÓì¬ôKù-hv%rb¹ñ“Sž9=š%?T;§Èé곎ãIÿ;ÌDàW=ŽaŸ’›Ã+²v{ ˜m:}x æó!O-D~²é{O4;òyÚé(–Èèû<îâÙfÁÿ.=A€Ož«Gl˜ti½ã~é+ý Ѿ¥û¡=¬³Îb?©þ4ǃPZtêøIþPùÈÕe5 Êãâ~´õª3ý¦@§Çù˜÷+¿yG÷&&šâÙe%’¤PÚÃUˆÃ´ˆü­/vfg³)-ŸŒlT½X3’„GHý~QîØŽ’|D¸x2€&@Ùhh^uÖJ2R£“šæ‹m4 Í"‘*‘qºQhªÇù~œ\‚Ü莎@ïœr@wv€Ã×¹@2§é×Çßq:Â=n:Áu€s#ÆÏ€;pp:;B=lÛ åžðiôò|Æøù:Á9ÜAtäã‡q1ƒ¦î‚Ía}¾Ní‰6¥œÛåá;;íVР­3æ2?åûh$1Èp™Fü L3â‹t²ç€l¶ÍX6¨ø"_ݱœzÜå™T:NÕG=¯ª$žå_wÿ‰FhæQSW3wÑæA $5 #}M$PdA%¿>«æüåÇ«¬QF IDATòZåsPíò}mˬ'ß/}&Jw’‘?¢U6­yº¼Z³•¤bJÎ`Í|&Öðg 6možd‚$çŸÚݼ×Ãd#m/üº‰B¾}ŒŸ]PØùaίg|qN¡~@^³ù‚gçë|:Ç#ð‹gÿ@ráúù˜´¿‹õü¡¡Ç×B³¦—`Çh¢>a\Ð;n/Ìýi‘þúÚšUgÜþ“/¢_ÒqùøÔäÔd£‘6"¹ÿ 0W›%õƒMÍ6¤ígýÞøz)¿LŠßÓÝý'¡¡,’LW%ÌéÕl.%Ra‚X+eù³ýª–í&ÕÔ0“ˆ‘žuŠs$£=å òïÏŒ®L2µötÈI†ãI’q†¿h£¡<¡Êý锸]âw³ía:†ÉwÎ Ò!‡H0“Jvàæ)Ä?z²qèFœ&×9O6#ŽŸ˜|f²8GÁ6àÚÍñ$r:ŸŽÀÇgà«#ðó ¿zö“ÎéL€s®›¿ìùÌ6£`sp’l„.þN˜lˆ‰W\O‰Âjwƒx ý$NÇÖD#LJIþrü ¿Ç¥grÇß\m\åDnË6“…×éˆú”ò["™ÏÝý'¡/’LW%ÌéÕl0Kä’O‹\Š/Êk–ß(¯éA§Oéý̆Úi¾ÜÈ©µÊ¬D2•öl³Ép8åÏÞ™—îk©Ã;•~Is„Jó*¬0I%;úù@ËN¼«—dÓ€ÁÈæÁùÝ•|.¤Ï“› ›` ““ƒ×šü—{|ø¯~æÃÃ÷Ÿã‡Åùäiå«0ÙüÇ~bùøÑO2_…ûòµF§ÿîgøúá¿w>’®còZÈ·glŸŽ¼rlL3±‘ÉFŽIz|„|ØfÅj›™$M"’TH÷/Òñ[ 'ËÓrj³ oý¸ÜÙx+×Jû´Ø$—ˆF¶ãÝý'A7'™rrB0%‡/¤ËéX«êÌÓŸE}’ø"isÉÈL¶c¼Ïšlر2`™î›YA2Z£2I¦ ³û:æû¦G…_\µÆ?j}}&™Dv3i8¶ÙÄ×DòuK@Ønȧg[LHçüÇÏGD²â“:àƒ;z² í~rcGˆÈO,ç#ðó~bù€çgï?{¢qNl[a2:ÀÄäÒãÈD¾¬9F²™ã9P´å¸É%«í› €D#ãCÚ6t¿„ñÃ$ý™ÇSúÏ$&éפâ*áe9å*®˜/QÉ׊Æj³„4\z=ËÇú=í’‘Œ(§,olçÚ¸Wýsgwÿ‰FjâA1Oa¯Þ¹É\B0`M¸!}NÖoiõY¶šLåïtû ÉljD4ä”fkßL‘d šS‰LZÈ£~ÉÆ“‘’Ñ“›¶'Öȹ°æ¯‡h\ôu¿ M“ó6r¹-'IgŒãÛß¿vsŸ]ØûÈqÀua† šl²ùø œ‚<³¿šÂäÀùI‹m3á5YO}PVüõ>Ún(\çqЋñ2OTZ­×ó$¬'e9^‚_’4Mü´€êïIå§ïëòÈzI"_ ]õ&'™ l41?5^­Õo­«Íäs@Ç/J‘ßÝý' ÕœY³WD£Ï^F2€¸.AÆ[\­ÖO”‚< ÊŸœ ó5ˆ%±Ñ¨zXåŠ$ãÄ·ë;&*Œ$ ]O©‰)Y$•‚´l2–M'Ó )¿.5LM\BÓs†ô¯)( 1qˆpQSÄØ ‚‰¶ô#ØVÃ÷˜lFøÕh'¸à8ŽÀƒ‹ùŒ“ÃØxž€¼ÆÁ¯Zc²9u„S¸î˜`œÃ ždÆàw!þ3€/ÑœÎÁóIÚhÄj´³‹ãFÞwŸO ¤ý–ö±­Cõ‹&ŸÑ¥ßAj= éwã³”D›Ùxt¹±¼Ö‰Yx¤åË~×*\ Ñl6á±¶mæÚ6™š ¥ô6·ˆ:ÔÈÇ"¤¤–Ô‡ÒôIû;˜«Ñ,¢aéX“—š þrfòN[Ö_k^š$ šcI³ª­>³Ò£¥üuýÃýwäÛ&k— …&¶g'ÚkGÁÌd#ÊÍ«Ï4Éðj4y§¤¿Ügzç÷×$¯ïàðåóçø0y"9Þ°&›ã4“‹”q2Bˆ7:àÃïü H†:ÿQ´h¯©üø¤dÉüñ¶@:҆ů#™X’þ`2‘ý#û?øã)Y$é¹yéþ-ÝOÈÀÍá׬6³NÈHÆÈ/÷Í7Hý²Þò~ Ñ@È;ºûO4‚$¬ï¸IFjT™æ¼®L2üãj"—ñ8•ßL"ýç û"¼<]ºT™Ÿ^m¦5¹9\Ð@YC•6 I4ñz©ÔdT#`Y³šT<ÓF£â•46£Ÿb<Ö˜U¼y“Ë,Hf¾î2JV±íO.º@2ï³÷w>¾ëÆ`ópq? “Ž›NØwÀÓä€ßøs|H…ÉF’ʈ™tž™hÄý>üÆŸãÙ'¹ºlÜ'Äý3#d³‹qA4j?•Óý‘Ceì·äÔf!Û›LWõoõ>`ŽKs¼\kµ™Q¾5¿“%Í*’õÝl40I¡F2Ò¦Q$& j#™Eri‘:~!\vʲEjVy %ûb*å«Í”M"#ƒ¨‰rÅûH5Â%ÊZM«H:ê¾ÕߦféfRKVÓÍ’z:L “^"w³æîÃf£4õ ¶…H6a5/…î°sHȈm38Œá´fö;ÐoýL‘ fÛ €SGø8¹xÿØ!’Ìóïü ϘW™E͈YCÒv…Xå6Á‡g0Ø»iŒíûiÇýøÕyjÿ ÷ãh#ä~ÓgÏÉxb¼Æß"msIÆ™1>3Y±Ú V|ƒ48?‹hZm4æøVñ¥ÈïŽîþ ÍØrVí첚­¸€dJä“„H/‘úG«Ò5÷½ˆûɾšN­>ã|¹èUoV>¬Ïšº|ˆ(baÒ² †ff‘JIƒ-iZ%Ò1Ó­÷[J2”žá&$'³ÑL³M ÑVcØlàïûüœ'rð'øÉ$®FãI†Æ ŽÁfs:ç÷Ít…Õi¼åÃtÄóoy²ùàÃ<Ãï‹9b&›gçðÀ—ð%€¿&(l3AFÛÌy„ ãÍ“ ÝÀQJ”5 D#?†¨‘¿U£Òï [4/Kf÷­þs)Áðq:<ÉñkÎñK£|zu§ú)¤;ˆvÄ$m\aò'VBûî(hü€;ÁûÏnî·'"òK‹©$åÍ9‡Ý|úóqr8q}ÿñŸãyöáîáϾ…qrœ€Óïü,*_.LFþ£j=NAÝèÏGû¤ î¾ý“íªÛ™üdÊgãu„yÁûæÕZÀL8ò>ÿ€¹Ÿ8}¹̉%’„A*¥ûMãGÚ`F£JêUqš´å¸w ãY–Ë©úèçÛêß“Ïí~G÷6&š0è‹§2óÃ×¥ržé‘“‡”j2Ðñì‡Ç:™’$£Bù¤‚“2]H'!?!/Èr…É%Ë™T;ð$’h ”Kýc‰×Óþ—¯ÏJ‡Dþ%BŠé"-ç§ŸW1DÂ3Â}Âl—îfé\˜TT¿ÂäËáÛqèîÄ“‘‹«²¸Ýìw ÕƒÿVÿo³ÙNÓˆ¿G=ŽaOÁ.C„aryž€/vˆûó·þ_Qy8¹#Ž¢¸ßO“?ŽÆÃ‰a2qçÐ~Q:ÿúË9O`“ó6 ÿ;ˆ‡¬C6É3ôC…ý$Ï6cÛ©øú¡Ûéü e­ÉÇ´?š¤ôÙfÄ÷…Œ$Æ;ûIã’”åÉÆµªoá9µø;²Êqg÷6^ͧåû2‰ #HI.QÓ‡" M2@ì¼d§½Œ/$¦¯óƒÎO¤_¤'m4#©…øQ£âàŽ«ƒÔ;^osàë4Ûh8žÔtdùÌwº´Nsbg¥¿Ê†ãòðÖ;kñp¡Ž@\¿ðerju(o{¡ ÀÙûyKrÀ~ú3°wÀþìÏ„ýW‡‰°?ôAîO>…ƒ1i±ïh<ÿ{8Ðäp €¦8ÐtÂÓà@4;‡cwÂqçð×Ý)øxÿ '8>LÏðåäp$ÀÁ…×qa2‰Dq… ÑpO0pÈöq¼ŽÛÝ¥í8 /l,º([PýþŒ´%¿W7—+#q9ÞÄÿhóЧE·®63Æw6~ 2±9¿G™~V^¬û=n6å„»jµ™ˆ—hüš½Ðôex˦Ózb€Þ‰Ÿ­j“ù)ÍDÛt¤M&±=ér©wÒ‘TÔ»à¸_fšÃq¹eûøú“h‘¾\c½+®I©á±? çÒp¦íf®g¶ÇÊGÖ3Ô_–ŸàSˆÃíö“ çÉ&Jçeïæët†3@_9/?ºÔÿ•¿?|Âõ=È…ÉÅ”ÿ{ŒèÇ#8 îG'œð G#>LÏ@&•Îð ЈSØ—ó¥ûöã.¬6ó«Öøôh‡£óûlŽÓ ='?Ùà¼óç¯Í'8Ì'°&V×Áè'M2€ 1.åïUžDÁ¤!—H6#h¾c¼ˆq0ÆO²oƪGëj3£|—®6Çû¢m&Ég#šÙI’™Ð¶Ú HH!¾[‡M2|F2 µØx²^ià ù@ÔÒúrý¸<©FH›‹ït’t|ù‡=…è¢@’\PÒŒ†¤½ÊšSá¾|½Ð^Ô3ÓèLÍ6Ôkò¯³0¹¹¾‘äŒþ JL/䞥˜”(Èþ F`#¡?:F ~}Ï÷0œýg”‡éˆ¡sœór:b0|>aè`ÄÁ/€çî#>ñ{v#žèÚ9ñØ9|èŽø°áp:Â1,<ˆg›McçâYjc˜$F8ßÝ1¬¢ý)Ì4úͧ¼ß‡Ïj‹§b÷€_M&5íÐ0Â*³Qô‡“šº³÷ÍÄû2¼î9ÞpyÙWwi2HV—V›YDS"u²òײÞ$#¿KHf#šàɰ†´¯6Kö«(ÒÈ5ù9¿"Éä’Ä“ ?§‘¯I9(H[T¬w—ÖGj(Éê1éfIIùĉB¦# ¦Ú)¹Þ@<–F—¼Ë¶û!ÑÔ$ÑèrhÍqÊÛ…ëK±þyÿò$§H愜pXŽÙ(9°ÿûO@ô$Ó»#z8ônöï¨ç»{|ü²fçžñ±óäâÈðûwÎûß8âÏäpœNÉáˆg£7ôw#Žîè÷é¸Av#ÜÄ2Øj:Þ÷#÷û8A6þ5_`”THÊ0A•¾K#¥&™DŠñ“ô3ʤR"Šâx cµ™´ÑÔˆFˆIÞòw¢I†ìðMo*í[#™h¼ËÎ6+hú– CKÑf²‚dŠä"ãKEAæOó$%5y^–/Ú ¤c”'jî&ÉxÞÅû3¹èð¬éφ{Ψ•\”¦T½/4ÏŒlÒö´W ¡ é Í8PÜßÒ…}0²¾²á‹ÕËþuÂf£ä&™=ü„CS çm2¶Ù8Š6 þá<ž t$ÓäN:šF< þ šx~¿Çóäò®;bÿnÄ_sðÜ;|‰g`ð~Ã)|WçÈEÚhñ$^§uþ:é³Ú´Í†ýû0 QôK£„„`˜l䪮øº ’ᇺaÜÄñ-Ç¿WÐñDüšIP$£W›&ÑXdNVþFyƒ½_´g"U}Ì7"}“¬îëÞÄDcžm†Ê)ÍJ#^Ú73kLåð¤Ãk’‘ùZš¹ÎßJÇ âAºªN–7±õðÃIFÚfÜ^“LB:QóGJ 1Q\´fTº¿ [È&{9_y_2WÕM`&çãHMîS"À&žd>c>ÒŒ¯[6›“÷ód³?½ôGÍOxz×c€ó~wô¯Î¾úà7lN'Þ9NptÄÏ8’Ü€ÞE[Î G ;á4}N‡†Ã)Øfœ þÉͶ›pvþ 6ß§ñzç+?n6z¿ÔœaIggèWù½K.Ù4Éd6—K“8¼A2¼&^—å6¤l¼Êë…ß.&¶—Ø4e{˜$#üwtob¢1m4¨œmV# äD’ÅÚð\>(¿H'#+²ïC^õéuy”F“œU& "Ò³NHý³l^íU%›FÉåm!™‡ñ‘íð_|¤¹¾Žë¯#%S1ÎÕïÒFÓ’aâKýÄdsöް?2É8 gÂð•Ãcð…ÕhaÕÙÈ}7â@À0°ïpúšFôÓC7ï þÓƒ7Øï€8âãnô¯½z¿: ;G~SèÂpOð$DÂF39€RÛ %§L‡É…ÆÙ/ïCÈDÓþ¸9U‘Mò½ƒdôj¬H†fnŽŸ9”Vo‘A2µ2²€1Þ]ZÎ*ɨßSÑ&Y˯”¿nqýŽîmL4‚dØVa­6Ó6mCÑd’hð]Þ"™¢MGæ'Ê›­fÓd£HJ—ƒÃ2^—Ç‹¶¥AéUu¶íFœ¥q9‘­IíP´åH M’d–’~´ ©æÚ!=m:ùâã,çUz¢ÝÎó3/ÚfÂuYüh³ùÐç ÙôŠtúŽm2,Ÿ€=Ûh~áÉ&Þ?9O1<î:?cç¿yzö¯ÕàpèÇ€;âïø0=ãËî„#>ÛÌè8ℱ ¶:âˆ#Æ8º#%»`ËÁ,$ž\¢± @'N¥Žûk€|?Ö°OóõŸ $SÒÔ3r‘»Œ'â³í±J2<¾I&®J3ÆgVnãw•z¡žéÕ~KD#I¦DVwtob¢±l4l»ˆ6q?³ÑÅÀú¾ŒÞYá)MOÚL`¤[³á8Ôï³?®¦ƒ$“ù~q>ÊI¡~³äëp&±ÓÿìýÒïlŸ¯{‰x2M0“$ %üœnF*Ö;nC–ÞqÉFÝŸ\ÒßÉ«p sÒQóLû3N&‚T´­%G#¯;Ú p@À±Cê'ƒ÷ƒý»Á+»è(Hv{ÐàýýnÀé8¿8ŽÎOH8Löp??_èOƒèÌ›+Ã>—î4éó] &‘h¸„’‡ Öà ð¯·FTm0¥ë@ùû2Ö>H?R¿ÔÄ/!M"U’1öͨçÌâj3Óö©êkÑKIÆ\mV «;»71ÑXäÂDÓ´F(’TVÙhd<­aÔHÇzÌéʳ \v>¸…É3I4”Ϥâ'EòH¸OÝ ÂS<Û 2~œD&…@'€n¯&¡^ý8÷e Êa™dXSÔ6ÀH×Ðü´Ij“6Ì6‹8ÃÃBÛÀ¾D› ¹`›9ûpŸ¦îp€#B? pD ï€žÐï€ôþ¡¼ÜIÃÞO6ÃÃá€Ã¯Ht|öß9àŸNÀ0  ¡§OÜÿöÃÆÓóp}MpøÎÔNç°ƒÿtÂ~ ÏûŽpüÎr;;ÜwH×¾G£%:åŸæt±óK´5íBÝX# ñÑñl.I6ÒFâ¼&IdB´å!ÉßÏ$R?“’œd‚Ígö[š”ŒoHð}­iU›7à=~û@tpÑ#€!ø÷AùõþÀShϹߓñ"^<~xrÚ‰†»©“ï}ØGÚýýÞ¿ööß{Â9à黾 Ã0€ˆ¼ì(úiç'šá½÷ïw{<>>âŸÕÔ{ýb€O~R¡³_µ–L66›Éƒ:66R£ó‘/¿'Ó¹pÜL’pó¾˜ð¥Òt5YxhÇß³ ñûKï|߉ñ"ïs:Fz:|”–MFË’MFåo‘0—{Íj3Àhq¿åMBRg—#»_wÿ‰˜5Mƒ€«Ï˜4˜TJ„âæpìçð¥ïÒÀòHÇ"³$×ùcex©2€`“éÁßzg’Iˆ‡m3‚dôª´8‰Ob;±l4ÚVÃñ˜”Í+hHY«Éä}½'j’ºðÛt{¸‰@Ýnêƒ@Ýc¸iïel‚ûíŸx²áüù’(GBÄÜߊh¼ Ç…3ÎFe³À«ÊÞð‡ó‡ÇDbv~’¡°·Ÿý"\O=ñ‡?gÂõ Èý1ËI “ú¯‚Í&’Í1¬B6WÓï. IDAT&þ@ŽOm~`¿”ÎËÏB>@¬Ó‹š¸¾.HÀ$WBêðÉøÒåÒû¿Œr_ô½¨q®IBÕ›ÓòßE+Éèü[W›½ÍÛ˜hqd_Ú$›l DKi éðB1q ²ŽËï|ñÿ?üÿþ'ü£¿þ|ñoèûÛð+üÉÿ󜒌œ\ö{ì÷{ ÀÃá€ý;Ã%d󱇃_ @ Ë>‚†9žufÙ|LË,¥&«m.ÚÆOE¦œ`žþâ7ñƒÿìxúÕ'<¾~˧s:Ÿp<ñƒ¿ùŽŸŽøøñ#Æóˆ÷;ÿ;æ×cœO Jm5DX:q]’OH¦ëáÆx0–lº‚Œ÷Cø³±€ Ž’ñ:·£7·/B»Ù×Cy¨~øûŠdüdBì‡0AìB½ß§p<ñd»‡sÏ¡îwÿô¿ý£&¶7¿c6L*q5šÃ|ÖhOpçÑOg‡¾ë½ÜùIwÂÇå(%•ý~a7x[M7÷ó88}NKø:;ôÔc Ý#ž?~ôñó ƒsÀÑ{ÂéLÎ/89?ùž0P8) ôþ}wýÜî<8!‰à÷ÕT¤;†‡´½PJ <Ùh œDx9~¬ðÎoÚ;¿htÀþ {ÿp‹’t/~ã< ˜ä¢~Öê—ì5ˆÔìdü˜¼Í%™dÈO2‡G`¿†aî wžµ8ÙÐnzÑÎ9ìw=ÆsPFD¿Ç=üJ_Iº!¼û$V£uäW“íÃÃzGþõÚàûëÇÿþK<~÷1dºy’Ù¿ß{by·Çøy&¯„ô]篞½Òrt Áö»=‡ýàâŸ8Ÿ0Lj²yO8º0étój4tä? °'àÓ)ÕÄà_ùIÉ|èkÉñw¤ú-ü ôï©(Uüh¯Âñºþ=+Lb“©­.KŸ¦¥V.k’HÚ§PßR~ÉÈßÑR9¬öŠïéîãÞÆ«3©IwÔ¾q]¿ë4¿OÓ¥“EžÉ9¹èþø{‰ýwö ]0ìî‡÷ßûÏ0 ñ5ɰðô½'üèßÿ^H‡¼”Ù¿&sWÇØW£V¡ùWË7:`òÅ¢„ðü.•£OׇŸW¹¥¶Ò‰ëÜÐ$$*÷ùú^Ôoô¯”ºy’y|ïÃwƒ×i&až|ƒf÷üÛ?Bß=bLl;^¢{„ƒßy?u„}°© {/4`?I»åaç÷Ïô]/&‡þ¡÷“Ëà'™Ãw~|~,ˆ…~’£0 ÆiÄÿÖ…UmƇÞÛ‚&ò«Í,›ÍèåàÄ>›On6èó>›xbÀoËq˜m9rrqâ¡(¾WC@\}¥k.×øK¶Œêª*#~Õ&Sº/®«çÆr~z|Ëð”Æ3Ó¿‡–v°Ú«TŽ¢íFÄ»£»?ÑE2‘¯ÉÌ}5ªH($Tòƒ€Ÿ|ï/ãÃ#.aeð0x‚™Fç_·¸óüÅÇïÿ'ßu„ý‡á§ÿà߀(¬ã}1¤ fH–fû×DÁ?ô@á73ƒXɳH„›â> “LGÁð«I‡W‡Aüh1kX2½ø£C™|„æEÿä×AlQ´@èw>Hœds~ü¹Úì„ú.·oŸa7x0­‚ Ø9ß~!ü@ðÏNòÝËíL;xÒ}À¬Ddã‚ @ö›zXÉßeÁ)m¤Ó)<¤åxI^¿ÎÏ…ù@ו6™d•£L·RŽE› •ëÙht~í±¶"~Сórš<´Ì D"†¶I ­Ü@ÇnC"]Ãuô`Žý`d_0Q:9 Ü`¤<ùÚpúáÂñC©!*à†m`oPÁZPæ€Zû0Ƙs̹×ÞUçè§Ôo(FÍõ;×üãs1_ˆûªz¥÷êÿ4#´³mÛ"4jäµIurúk§X.—xåç/L ÌAL ±mÀZ´À ŠJÙScJ0Ú}=€)JH.Ñþü.ÎfTzIŠt ’a@±gR6‰€] s™š%0fflOÚ_)ÞEûŸˆ—ù|¶½P¾€x«¡@¶‡Ê!d¦‚Ç(׈6I{—Û-rŒa;d¦èê/£«¿ÐvÖºï  ‹ rÚ'\y¯¹ä|4¤izІ4¤‘|¾cu#çÚ;ŸJáêêëQ"/©û÷6…CÏ›@2×Ù)³~ÞNý©,SU¿öñÌàP{Øóö´ß!DãÛãºõÙW¾Áß3šäÕåE²²Ù‡p<Å4š:~U.2Ûɲ×AÔbàõº÷+± c:¡ ‰)… Ø;¿¶4v.Î…@c«¹¸”Ù¤ãÆ{wŸ^¯Àú·À0@˜Î¤Ügz¿W&Ãú~c2¬}a´°å»ûÖØ}œï2³ªl:Ì↛wÆ’wF äÿ͇‚f6Ê#úAúj°2G· æwãë@ÙÆ[Œ¦Ó¿^¹z}Ÿ<0Fa*ý¶zÑcØXoÖè‡ëÍ<Š,ŽQ˜|½Eí:ðàÆud¢LGYà‡£þwܺ±Fµ%–åÚ¦²—"_ŸúÙ?t?*ºÏÆaßeHf¡Tq2ØsÝTý|½ëï‡QªèžújÚ–ùX‘¦ës•MæW6šò—…IšŽÙ¤r…h’dI×ȆìIºã½6³ è{Rn2Òë„þøÙŸŠÁ¸íTµq½o³´#Ä!fµš¦%iÛýy-"C¨ä°\e¦kÚ,yE‹N›mC¦6ÛzJå¤"uqÞgS)$/=_Ûp ¯Ú½Þ늓¤5ãâ5Æêuƈ#¡¿ä¹>—±ÑËšŽõ¹0+†L´}GÙ¶˜þò߈ª‹¹D´ÀÑò½íeÔûÍè#@¯ ¿è ƒž÷”ýbRSà-ƒ‰Ñ÷}FDú¾‡y"¦ûZ…·¬no:þ˜Å ð‚K®L2Vj@²÷³´Ÿõ,þIf Ws›ÞÆPP7êï¾r¹ŽMaßs÷å.ÛGwrëUõÛù7n¯Sß)ÛÌ”æPû\…dR½£ý~e£Ùým&F«ÉcÇ Ù$ SË“¶œ¦d:;×ÕLÉS•¢›,…-æq~z}  L@¼‹Â, „YzF8"Ädë¶]Š4FNŽ9s³Í0\p§dvUæ’$ ”t„ºìÓÌfë&ͳ¹`ÇÅŽÜ=¦ÅŒw˺¸òŸ=þèTÃÔ,0 9Ø›L;“Ûx‡€aús9ŸwØ4õÔ4kDf„Æ·ÓFÚŸ7 ð(åußk¤ý›XŒ ŽÃzÐ6¦Î’m«©mñÚ0 k»$<$æq.mLj®í0 CbN<2úsA:†"bs‡‡–¥X½™9m°#hOÙnŒyYÿG'DÔâeêx+'Y¥r›Â¾EoŸ£°íyQ®l1S6²ë¦(òsmÁ9d™´‰LÔ÷*Û̾ïaÞe Ÿ´Mf ÝàïÆM!¡9Zèž÷J8õHg‚:Zc6mgŠ`Fe6왌ªÛÔ†ÁÌhÜoÏ’pì³ü¤ÒóûàAr‡õÊdøB˜y?®ÑQ‹Í(í>\°ØLT]Y˜‰w±GÃ0 mZ¬7kt³ýØkýÍÄS™JÛ.¿úësð0€·QÆã 6¾0WcùŽAçMB4—HÙÃÃŽ°–û˘TÑß)ŽKûkPJúHHí dýq%ï=óyr?™ƒF¥Ÿ½ÈËÆ#í–Éøë dtà{ê÷ïC2‹•Gƒäu–_ÎÇ Û‰µÕTÙ]¿Ï–SëhÓõ¨¯çtþíùOdÃï“þ|¼Æ2Vû÷%hìÐÒ-:ÌÛS´Í§ËÛX¶KÌOžÓ\b“ j³ÚfB²áÚjÚlÓa€ ñÈB¯ÔçHc’ÕËl;~Ö똥íR.4¥‘ÅYÀl)GÓ2ŽÆÊ&iõjSaA"ˆ`Ýó~½ÛÌê—ÀFéêCù“þ–ëxìõþ4xÛ—ý»o‚^,c‡Žu|4$édF‰‹àÔxBcŒˆ1&æS#VæÝ½ØuA6`FР@[úCüZ_Œ»^hm*“Þ¯¹Û¼$èüaódқ˟¢“¹Ï\`~Ö;aÎOZ,¿ø–Ë%Nÿåó˜/æ˜/—yœ’Þ÷Üú{‹²COê]æË“ßS½o ÑLz‹¨Ïã”oøw󌦒,'³'’D§¨2ðž]¹~Ϟ粓dyîÿõ}ѧ1K„ùó:x@$^@f•„;ð@h ‰8fB‘0o ±Å²=•@í±S¯3ç=vtÀE]v²6hfC8;ûÕDzCq^o°ëE4Þ»H«ñˆŒt,Ada8…wö ›çÁãü£û`6dbÈf jµ¥ jcÀ¼Ð;$ÓC¼×Î@?y¼]å×4¡8 €/s9øq¨-„…^Êg÷ÒYk¼ñt‹Õ+0ï"›a’—™õ33ï ™~è±þh¯?míÝëxQ›“ð}Æ‹â; ôÛo~ñ¹d“\—·¹ß­¿ Ñ“†w—®ùÑ1IË#õoB«g·®Þ“Y©’ m4f#ˆ†TØ*$_c:Dô5ÈÇõ{wãTÔ¦Ó i#¸û±ƒ\¬<fŽ®“°€¹¦wj5$ m%M‘!Îù‰0ÓÓçö¼oòøœ ™¦zß'‰d’-éf7Ïhö “"ÞÁ#¼¾Î—+„c÷ûã¨(§úpq]Ñg ôqN­ã-LÂE€­ p ª Í ¡Cà€¶YÜ‚.[qÚ‰³q6†³ÕPŽ¿aý+l2¤ê4CHò1 PÚpŠým€Ä¤€ìþ´wÈŽ™‹~ÍȦWä2¨ gP¤ÃŽ®’ÁOîƒyUö3sZ;‹~¶~¿ÄÞñ€Ái<°GFiœDpCè‡5Þxv™‘ÍÐ'&Â# ²qˆ¦ßöˆ%Ã÷-ÉþÝÍZ±-Á!î¥þqÈLÁ8ÄNÈeWCéyT¶rw^Û–²yìÍ)v-Zß/j²ŽÌa„“ I½mç `ùÅež×û¾«€|Ÿ$3Vï­ëõDHfâù7ø»yFdIÓIR9„p“îxÓø÷5ÃKÂ"yòÃã1›Ä\tr²‰Û(:{“`/ÛWF$OB$ú¿¥4 ´ÔaÑ-Ð’ •Vm!¤ÈAvè$Ý?&y¥¹ýkh$NG&tV‡‘ö§l7QC.ÙR™*›í¦Øas¡í¬íÍЬ€qþì>0žÍÀh¢"—^Ë=0¾¯×¿üäǯa^UÙ¦§ˆÄê1ƒ E¸P›Ë!›Ab*ûb*3h`g¿íqÿ_>õzÍùF‚3™·²ˆFŽˆcLæ¹/>‡ç¿ô<`¹\&ÄP: hùHSóGQä`3¢q6¦”– (l4RÎí“m6²I’¸Oj6THäšôš× ’‘KÛV i¦„N7› 3BÐéùNsε³íL‘Mš¿ÖÿþûÉ£éûQ¶—§‹d¼7ÙT½žÉL¼çÍÕ—|?o[™ÀK-r=·@½>¯—­~t¦‹ü øÃÛâúÍóŸßÖÅP]~y2d×nëûîìÂ>lÕez tA®ku¿›nquÖ²¨ç¤ú3ˆÔ•™ZAÔ‰cVà ÷–  A2äßý§Œ‡ˆo¾ð<Þ4[Ÿ!“ñv³Àv$¶íGÌdë x&£ãÚâÁ˜èNhµßÉ!°Ô_œÆî'~üâÊW•­l65bÙë-–Ëó“Ý,¦beŽcvŒ(6Edmguœˆ<¨pÁX~q‰Õ/Φ¿c’b?’áŠÖˆ©Z·vÚë*º¯^ãžúM• »õþ!šÏ£IÔµ9Q#‘)ZŸOOE9»’É’°ô·ÙÛŠB¼œTýУ;‘ <ËIå[1ÅEl³Î>©ÉFIKb±<2–_z3ÕG$PÝ_ZŸ-ÐuŸAˆ‘ÑžtÀyîXêßuÂdBâT2¶ï‹èT½]„ÛYžÄ3Šxæœu7 tn±ópƒ»Š»¡©IyÞe :>ÕÅ:@"úU ¦‹ÍNY<.Aù>x\¥ëÑlv˜[RŸŒ®ŒÜ߯dãÈ­0šAö­9†ÄÍX¹U&33áD&ª_áëO/ñvŒ’hu”´Dá(àÇ¿hq§Y­w6AÔˆ-åàM›/4gŒhlÜÓLާ²ë€3Ò#7þáú‰ü|áª?§æWDzwÿ—ýçÛ¶EP[Xkj1gaæê3¹^èuÔ"2£µ`P)é_‡î0ÿ|>ðþzý™@SãªúÕç¯[ž¢I¯w3¿›WB$ìÊ@Ù™xd#\¨f¯¢L’Lm&oýÍ[X´–Ý3ÏÅÕâ"†sA(Ãù ÇÏ7IW_èæû^â*~¹Âz½Æz³Ö PµG#“ ’AZö\Ñã`ÝõtÛÝ„Þg‚\O*1æx c®žéÀ9:„2>Æö±¹Êxrñ5쎇<–“ŽY¯·þ»`Ì‹“3YŒ·ÀÞ¾ŸïkNÁ,*1¤3x»ÑëV6Õû²„—ŒÙ$|ÿ§ïÉŸgÀÐH7Çàãl²ŠÖýJ@£g7Œa4/·±zîÁ Òñ{0”6ŒõùÃvƒp¬·¢^«s§-NO/0€ÁDà&ªºŽ‹æ´fŽ~~ì›?0á0„îç¥ù1!É{fSœGQï'³Í”T\¸½P§¾Æô{k[ ÙäÄ¥Nâ߱Ż’™z;Àhp>®MÆ#›ë®ùüÏ¢¹yF3Ú¢˜UŒ“q3 ›Š^—è˜%»o´Âp(6Š¼Èšä½"‘‘ é÷Ÿ~ïüÝ;ˆ113è&&3–†ÞÉ ƒ&Xì%Áâb¾@hl»bFÛ ÍDZ팶R­ö„@t] ¢ˆÓ_[‚È1£Y‘H詌€–‚ìuO„QÏ„ye&‘4=s°öQ¯5±éèyÖóðíò}v~ÌÏ›?³DhäúÅ|¥6³ 9Ò)0.rÿ(b@ÓO>/Û|rÿq£÷)fØùl£QŠ›a¦$“·ZÖvg³íˢ߃îÐÈÊâØk9–tŒà& #€GI?óÒ¬Ï —Ž÷î©?ý°´à†YzÌ(Û–-âĪñŸÊ{ßY¸0›%5¹½Ú«œoåùj>&ÉÞ{“ùþ¹TxÊóÕÆëÕ6äqN<–_õxçïÞÁjµ’ˆïÑ †í\Yû¾GŒ9 ‰G2¯}ó5Ù—æÙSÜÿ«îþÑk Flý°Q£¦¤©AB:ÝŒ€Fl,á`ICgê·V6L êUÕ’x¤Q½жCK­ œ$qUÞdg“â`²ñÈ粡Y—&I ý6‚/X÷Ké,AÍBûO ìjˆ/ú‰wû-çÂÊ’œHöY¢ãDóxx/™S]l‡lù$DÑ0zE6Á0@œl7 ÉÞlˆ' ;bè_=^žo°^¯‹ýnÂQÀêüy„¶fAM›Mª¯C6d™ ²@‰pœd[Î7_j ;©£üœ8_HÎØ¥SH§*ÏŸY¨¤ópVŽÏ+‘Œ—ôÁj;õÈv?R°û&¾7=¿þ®êüu‘E3ÑŽOâ]¶÷}ûêo¿¹_sõ%Ÿî¯ÈÚì%2”åÉø˜½HçÄæ$[óRâœð’t{ÔÞ¬ÇÇVOÓáþà¿>DÛ¶èž’ÍÌ'‹äÆ[ÙÊÙ391™x©;8žh–Àñ¯¾‚7þó=‘ÂFÆ£8.…¡Äȸý¥S [a@à ¤F ª<ª·—Þgà„€˜ìæÙf“ö¸'MEߨWUjÏ &¥ŒGÞa¿»£ IDATÓgy&ÊÞh£Ò-¼Ñ uM›²)ÇóAÞ¡%O«_jý·â}¶ÒÕÒKä”î+;ʼßr}’—C²ÞûÎ ì=gWa¨7Z8Öïå×ÙÖ¼Ú†Ñëx‹##è6ÛÙû ˜Í ¤„õУßöX<µHÈ&, ¼ûÞÝ  YwjEvÍž9!íR“1DãLíuX”S;;j¶o{@uÞ/r;ýcÇc1ë2_2‚9¨8G•Èœ™~m讎'lj­«/Ußq’)ÊõûáÏõ›l禮ßDùJ$³¯þ7hnœÑ$d2:Ú\¯\{}dÉÌIj:È„äA’\'mña•¤·®‚xöÒžáþȹéñÞG˜Ìçs„£€craî‡ôk/ã¹å ¸M?OL&^F¼üR0‡Ä‰¯ýá]¼úú=üà{?ÆVçÆ4=·º´@w¬N}ض¢¶’­5Ðý]*hrÌf4o4€ˆ1Œùþ‚©\²¸Úªëí®· òà§€vFèºÀ1½‡G€?j‘±8‘¸Ÿå³0n°Þ˜WÈÞnöü¶|_š|VÏP]ï*Ã{Ÿy/µ`Ï3—fõ>£É͘HdAžÃh‰Óó#¢l¡^TœRí›—š£M=0ÜžŸá죋§‚l´ýóh¹Àz½‚ E;ÇBc“:¾Ý¼$ï¾ßµÒuU?2œDî'*WyQK„Šyy¥#am«[0hýºY‹,é»ç6Õx+ÆŸ1ó ÑLw}ñœ„ êúúñíÚg Á0ï©ïuê³§\ÓCõ¯Û冽Îþ7ÿüÏÿüÏXýÏþì!þàþà3­@û_2RPrâkÒl阒ѹ šÕF“‘’.R°([ÉvÌ$iXØvÀlÝöÇ‘¨©ºYN‹A £#)wDzÏÌsÏÜÂÝ?º‡·ò2¾öÕ¥Kh4+0¯@Í Àk•cà4ŒWÿøE:ÅM êÏœ˜ €Äœa‹-³|ŽŽè–é3/ògµ€0sÿ™¶µCÞ~çN¿çMùÔÕú¤Ã»ÞÂé¿8”ëÍ»ï½ ºõ-K52“QuY*7H bû)ž& ôÆŒÜb•™.òbzH/¾çŠEЀIÔSÈÄŸ/—Dhg™Ùy\\ 9ŒŒöšÉ&…П÷xë·¸ï{ZÕ÷ºHæ* ß¾ÐçO”kÄò$ôÅÏ–ÑÔ<åæÍä²_²È´ð.³ç_ʾ! Ž«¤”(»rÐÉ&iYŒ)¶xP’ !t²Õ ª™Qza¶òLâZºcÂúƒþâ/ßÄË_y íì«¥„K]þŽ‘A4wí Á)î„#~ðÿ÷^¿#×ññRÛj P0lÅ[-úò±2ÕË2ÎÆÔ¦Fk“ÄÄ»ªqq4†,.Q£•md´'s Ûó§[AÕRŒaÝ'&Ð>µ@ 6?úŒôSœE…l&%GAP¢>ër½ Ñ:„["ÝRMÃÌ C,†`²ôó±U5’“ )\ÜÊX"‰ÞÞ7@#ékžÿ5`µé$CÀˆ„l–Ï.±ÂpÌàÈ’¬A‡eÁd*jñ5ÙA™ÆS»däS"S×Î~Ñš”̱Û?5Ò¹¢ljïv–á8²‹£™z/cù-ɂޞ´_’dœa&±9;çw°ù'±‡½ù›?> ùï[gªú²ÉÀ]¿Á|fHÆ}Ç ÿnÑÐÁcsèIäÒTÌ)¿!K”Žy$Q/•½÷c'³5e=W3¶ºŸ‹2‡\ÍáPF8¡Lž¿õ<¾ö{wAô5ìghgo$¯)@m+,ˆ´xïõ‘läªä½%w ÛŒAâF<Ò¹ó¬ºr¯³²·Ï¼”Ô›h ¹Y€iF8ýàmI髾ï±yñ˺u°îWòN]Dæ‹NUoôÃC?¤çB³&ïlbõ±Àío}Y˜‹×´µ…G8û˜ÏÎüQ5š³ÕÀ_ççgØ}Î^›ÉÐùBÒðt­¨ˆ[/Y½éîkÿ±üÂËg–²åÆŒRµw°ÀÄKÛ½”±þpo|áîþuÆîKíóÉ}çAäR”'êõ¿0¢¹yFóå"r]fc$rºC2’[‹sŽ-`‚É9¡ŸyS)“a’Ä’—­ªÑ:e2”Õh€d¯®pç¢,ŸbÙf³Mÿ­u /刾ìtöF× æ¥Â±!ï<é÷ifóÆ÷Ù0ñŽÙH›%fÃRN×%5š"ŠšÙj4mH]]ÛE‹Ûã;)u{HÞf’Û+4!¥Î†ïþú- ƒ¨ÍÚ“ÝSfsâvÀ¦—´ÿ‰‰Êe˜ÏÕÂÉXÙçЂ{.²ÚLÓ4~ôx°ãÆtÆüØ íG^k¨çIÕã5=¿ñïAÁ,¨%ðð5¼ý·¡ím€lp·¾ýÚ^#‚°"”!?ßéw$õjqœøž’ ]Eµ.;óØ!!m÷åOÕ-Y¼×ÃÚ“ÅŽÍfþ‡â ¾X,°üÂRöt ¥W¥ß?ÊrZÖì÷ñ>þ`~·DOBíw$òq©¾Gòn<í­ç›e47îÞ\4†µEEy‚ŠDÊ.7À)[°£#&Rß냶ŽÉ€Ê%=â)êœhi‹HL3ƒ1TÝÒ$φü÷þû# ù2˜i»e£ ÐL]š§ÞhZð„2É¢;ÎñÚ·ê÷Ï‘3(Äb1‰cF¦.“ë ï•vÉ @mR”¾?«[{¼À‹íC,ž^ PÈ›º©kj7ë’„J3Âüé9nÿ3´³ˆ:tÇmz^ds30c'~Çvî¬÷Ã]ÿY£©Š¯ .û´GÙûpÐv³ÌQŸËŒÝ ”ãmìø ¯íÄ™ØH¢ºJGÊå^‘Hß ÅÃé™ñã¿>°ÉL€¥ß1Þhžm1Õ<° ¶“hb&nž¸‡eqf?ïlñoü¸wL?ì.‚þúj××´>Oè·â8 ’a€ª‹e^õÛ‘öß3O/2“!Bw¬ê³¶-h×vèfâÚÎZÌOæ á¹/>‡¿ØÜ«¾ËÚãP½+Šú{Ýó‡Ë¨ïÇ¢ž®q€Þàïæ uˆ{(9Ê€3¼zï!ÊÞE‡t¨#²;?"IpÔ„2›rC(=—RVd³u„‚)¤IíÿUâzã‡òqD¯ã» •¼—ÏÞÁò /`ù4°8–O‹EtÖ”™ µz¿¨ðî~çy_‚Ý¡(ç=MRöjARr½|ŸÏ‘0Ë¢}±´í/>ýSt³ÔT“Û—u»ê®íš€Å|Ûÿt¦ïɹä0ÃG= Ä9;;w&äYÅéÔ"¾e™†«·?O9cWý+—µª†Ò ÇÂ3ÂÐH9€coi A`6Hq.l™¬:3 '9ß[¹AЇyñßó»y¼›°0»ƒ÷¾}×U?KìŒ<Þì{’Mªø>ëÇœëÌgqÞ±xo¯d{J›@uýA:ñüŠ}¸•ÍÞV®“°b9Ϩ!,ÿ„púì)–Ï,’éºÌdºY‡Å|®í°8Ys™Ï…áœt³Bž;}qþF^o÷}©¾{è5¾§<__¿¯‚Ú¤Ò‰©=Qm) ¤\d=1½–‡tE.µ”Y ÉÇáË€æJÛ8óY÷Ù+ò6s­oÿ2K㎑lnMþc~<Û¸-$ëB"Ïã9Û:§$ì<#›Ã×m>êÑpÉ’ð¼ÇêžaµYcñML"cF¡‘Ò’Ð3“mÒÑ D4ñ²y£ü®ÏÉ\ç};ÈÅÚGoð÷ù`4Æ ($·¤Ê‘ý).pHƒÜ"ª²‡\"™Zr0Ix$Ã#•Ï5¤ãWÞ99*9§E?ë Aè>'’ { ˜Ÿ‹¹0˜ÅB<ÅÚVÌ)W[ãyÔÑ€8ƒyä’¡C2pSÊñ¡6 ÇÔ”¶' ¼xúvB26©»ã!,žZÈÿÇ!‘4é¸ÅÀ ÷ŒaË%²UcWö;wrL )\ÿ¦ûíú.#Cn#)ºïöPzbKè‰À3ÊûDÀ1!1Ðúà˜ÐA2 €•ºò@ÈÛý(¥cÂío¿à¬ô¦làVßúf÷׆ò<_öHÎiœÚøØ#Y{ɼ¬‘ÇÏNû\Ù\M‡^’ëбû>ˆ¶ë±ÔH&hèvÖ¶™â×È_{¢ÈÇ!›ŒÔ€«‘Åßû8HæZï«ÛOFoðwóŒÆëœ _N“Ã"¼9/¨ežŒ+$c’s²Ù00q‰.žÇî¹FC!ÉÐe–…)ùEÚNÌjB4òêp¬ÌæD™Ì\ε-Ô{ åâï‘[RCuÝB¼<…$¨\‚è<.š%xœC2Ìe;\"„Ž`û„°æªŠ !ÂÙh·o–H¬̵´m[,æ ™ð'2á÷hÛ¶Åé{$éô Û ªövýgæBÏ›3ÜEuÿ–3’©©·álÝøk !®»ñE’M¹ÈAæ­l6ZÝHj»9ÖãÇz]ú†iæw!ÈÆæEf6ëo¾ª¹Ö<òâ¢þ5BÙëpP)q§~€æ®Ü¯óü÷‰ã Ž(½×Æ#5êUÖHªO¡ I˜) ô~^Ý _ý›YøïtôºHæ:ˆé“D2FoðwÍnùô~9~¤”´Êô!Î%ÓtÌ dƒéÄõÞ@f ‡‘Lf­>7äóÐë#\œxMo þ£ÖUˆ¤93É$àîë=ˆ–jØ'U;É·˜Šl±€lj6k&4hÄú`q>£Eö‹Íæî· ¢W³¤:ºöm€—Gsöúœn¶BÔ9Ð~±d1¶è£+š÷YÏÆÜ#' ù.U… ªŠ…îéî™3£'I&Ú5â…æÛZIL\M›ˆ›a“üܤµ  å@—‘‘¼ÞoãAßgk…Å3iÆSåHzWnE­L Õª•t?eBiš™¹Ã;•¦F½ß-B/üè>Þû“çtœ›§àñ6ÂìÍ2賑œmÉ&3+‘¨GúÞ ­œ_Õ¼˜”°Q¶_!™O”ŸR'ã,}n}g‰ö×ZjZ‡”ýø»Ö¯Éã´µxå÷_Á[ドï¶zÕå zU{4(ÜøH×k]Ó{ûáqé ÿnœÑLÇÃä¬Â˜¢I‚C>n:k“ìêÅÈ’³ÙlvtËHÏ!Hn3Jr—žc’¾öKA€.gR²àÆÆîÓïtÈ$²Dž×Y¤-¹ob®^"õÔéôëv}ûosùµ?ù.Ì Î$Ã2€þ¢ÏñÖçuið^>'-ÂQ€ÃÆ¥_Z`s¾ÉL_뚀ƒÚºt§Ì­º$eÇ,<Óð‹œ24¤.ívŸKG³­Æƒ•·:™57›ä‚3Š´¾¿È•·ò˜”±ËdñÐ åøÖT¡Ï5u«ôãÀ»`^‚è…²?é6V¿÷*æoý«¯¾jØŒ=æÿÏ;ÉU: çy•Çõ¨ æ¦vqÌpñg?Àú›§àñT½ ­ÿæ b ¿wDs`æ>üûÛ@3@‚~{ðOÞqócbžHí $ãW2§kHþ·^_$dÒËN¥1j¢¿Îˆ&PH6™BÛdúØ?Uµ¶*£É\…ÄžÉøçÂ1ž¹ü Ñìÿ%µD¬L´Ié˹˜­"!TœÜD;äÅ HÈ##ÅW(“±ÅÝ{›%¤“² +3ÚªšÌL”gVŽ,©ý“䢨BlÒƒ„¹hO´'@?h5·ò(Ï|2’a§ŽéóX=„l´œ‹¶ûuÊÆDl±²vÓ—›k)¥m®ãEÌ£&-úÊÜ’pà'#\¿ùl¿Õd¬Ë1<ÂÙÆ<éüdßònY%} ¢E¢»€­ß·>Q¥dQ&o4"a2©lÈgfÈÂÒå÷T}vGúoû Yãm'$Y?Y™q úÊóàŸÜuL e½Í‹œ›7‚©ha£¹­4 ·^#|8  g(9–‚P¢ÚR‡×söóö7DmF3B¼ŒÙ›ñ ‘ŒýrbQŸþã=ÍàÚe/Euݾòí2E á÷“ ¶ðÝÜïÆ ®|éé4²ÙÕ™ÂIÈT«Í¼W’å$KÌy²9ä¢ÌÄß_"8ï³@Ùý­”͵YªW—½Þ©Q¢FýQĵxa”ÈýaqÒNíb÷³¹÷€†­´[¯.Á–*}`yæÿf(Ôe×A6fð÷“ÒhíÊìË! Ãà$Fép"©W7ë„)µ-†aØ• (ã~Êþæ dâOR§A¥„=Ç—Äl:µ ‡lPÙ ‘‘ͤFÚe05œ!¡‘%þÆ!$˜šN…“öûà¯,昗@s @HH¤¤~3¼NóWïߺ›Õdú É_gÓtÇ'mV®ÕFבܕÉ,‹„†ã³ƒ‰/Ã, rÄòéeB’i|êxðY¨Ÿä'ÙËE  ¬ï§dlõý$l0)á¦õg7Îha.8’5 „©`ÙeLî¸çà&Y€½šÜu@>?B"Й±-m0h“×R½_qI或8F„c-72I$5DwäRÅó4˜× ZHšV,ékíK#“ÎhY|{­¾ªÍF rãí#UëµG„þB%W÷é9â¥ßX­^#ÉvÍáŽ?ÿ/ÞL Ì,.½Ê,ÂQmª[Ù¦šf„á\˜J?Hýú ÝÎZ\Ó”žæ|pˆN¨%<¿ïŒµF"©í9&\Œ,þᬾß1“©EÁ?FØe\(Î{Û©M¦0+“³ÙŒf³Ñë`F޳ĻÆS 9…¸æ·™Ù±Õ ɶ” OA_¹§È&_á•–žcíåèU6ƒë"¥·^_ {JP¯ÙZŒÚJdL·¥ì˜.F¤­7 )K"ØlNOúë·2N¿ñôkÓæZÈÅá5ÚãÓ°Áìí7·NÞàïæÝ›Ð$ßrÉ) {h3A½$V,ÀnÜ §×2T†©ÍÜàUɸܰ¸“d³i\y̆Jhve;ÿÆ÷Hê®±5O ¬7@®t[2j–`Ó¶sÆØã½¢õÕ,ÔãÔÈþ.h6`^!4`\¡ßXŸËŽ ›ó< X¯×ÀÈè/|Éúþ ÞùÙËxçï¿&çÝbƒO91‹~D™ëÖrñ¨¨í2Û:ì8¼;¿ƒ” !x›˜¨ƒyv¹?}üLBž6©ÜsFÈó-ãdJgãâi’#Hëî·rý~u%g+“ÔÓI­KæÍÕº2)“’ñ,;vjù˜Àžƒ¾ò*e2p!šxì@´Ð‚š9xlµÜšN®£ÐÜ}õ^5þiwü_§¼Ïvs zëuÉKÖ¶mJœ™¼Å [ ŒåÎó&L(é·}w:Žèc,¦)è5Æ,ù×Ô#àpyòû÷µ¯Vⓦ“ëÛÍþnžÑ’" ‹ÔS¹Ë€ŒH’äæDò‰$䋈ÑàÒÞ’ŠÅ`¶Å±ˆã0èsû­&¦ôY“!)ú¥Z¢s¶8•aqï{Ïy `dÓ° hcBƒz!’ôºæÞøá—Á[9>èû,§³Hß9>ÆÕÁ\ óZÔƒ·=†óÌëó5ú!b½Yãìà ¦ïÐïÄmÄf³AÑ˶ÕÀÕ+ð–…ùl{Ußí"šbD—‹¬ˆðß3Úu¡¢úœâz._@ìEuß!jIÍÒñ åàŽ“;ß~Z}¿º_ ßú:0.3’A ÖÕ-%)·3qÎÁ¼rèds×IºÚÎiÙq>\~LsÉä´8B,‚ßÔbf|ð³xø_Š­æ¢/Ƴî_´²ó?ÞŠd4k@ì»Ý:r¨|e;ìkߪž˜^ÑoŸÍÍ3‡dRðÈÅÔ©Œ¬{ô’ƒ¿¾,,‹/rÑwäüÎó³Î8[êyQ™+ê” ÞJhÄÙ`}lH##æî}ÿ9‡lÖ ¦WÊŠ`E<@¯õ`E`T&ÃÀ ’ºB+¢²ANMœ] ähÂÍ#U¿8R4IÑÔ>Û¡ ¥ºhï²ÈÃù€A‘oY˜ÔVâhÀKvG“Õj]‰D’ZÔEøÛñi²0¡ƒ<Ϙ ;Ä‘žßæóÑcE*[ ‡ì;¦°¯Ìv}ÈL«~ý^ÿþ„¼üuzm³D‰d„yµèZ`ù ì]>+yñ–_€2|}F6˼¸]…TÉ\„º®C;ÛE2)^ס;–]FÛ¶Åò™%ڶŃŸ=ûž[ž©Ï0Ú¸¦4Žm<^÷g[DºÞù»w*$\ÉLµ‹}?¦ÚÇŽRôpû§ò þnžÑ #™äcÆ:ÑDñ„\ìF®$“H´¬‹{‰`Üy† ÿ|³øúŒQ—C8 Ñ(Âqû½ÄQ«5 Òˆ—îüð~…l6BÇ5¨‰`ö†õ:E2ßW$3nré/J¤bõÉL¯B21—ˆ9~Ä·„ÜÌ6EXoDf“¾¿è£ šõù«W‰Àá|@¼ŒÙV£È¦ßöI×.Ÿ&ûæý2…¸¢ƒe ˜@,õý†siƒH§B*\#—a… QFHvŸz¦ïÿ­;YMS×’ÓžH`ïâ`ñ”£s82²qÁÅ¿õò®ÄkãÞ$ùk#'ɨO_× _.<’á‘ÅѤɹÉ,!æòcÂqH&à 6ša+ãÊÊq+{ÍXùªoe,öCa; ¿èñæoÿø1‘ÌÔ·ï'd®‹@}}oø÷9ÐÞAEÌq2%…DýydέÈ"1ß¹ÅyÎ’pÊEù>ÎKÎJ¶³åZôzXdÖ6#I—£¹ÄdmGŠl¾÷î~û$NÃö¥Ñêú-Æ>#™fpLÃ\ˆõ}úì'5¡H¯ŽtgN RLñ#»fWó–ztv/¶Š0 ÙPk:î>&@Ôqö^©tœ=õ ÐoÄ+,Ù^¬‰;|R9‰¼·ÙÈ(âk¶ P§×ùçÇ<Ì`§ >R<ŽDº­îŸt` 7Î\}vž×!;(S‘í¡3s±\lÝ ˜Ï5ñê\Ì Éü­?À¶3+k5—ÀWîVóÇ××Ó|þöo<œ8ï¨ö·Œ§’öMŸæI¾È§ö3ÙyažŽþ=qŒâꬶ›ðTÀ°ÐBã·fÈ‹±{O‡2&Ã, gõË0×~ü$¼Éü¸ðíKŸõëݵÊT6Ì ünžÑAã™Ì¤·GÍ$(KbIíR_«ÅË]ßP>Ÿö—ÑÅ*ݧý‘%K¬ïŒÈ¢+kaôçÐ_êµ}÷¾s ÙDíµo½ 4Käx™5þô‡_ƒe_6›LV׉W]f2>³!.¯ÎÍË/!™ŒäB#Û”ÜpÞãÁÏ¿;_z]ÛIßa.Ì~I;LÆ º›ó ÞÅW1¬Õ¥Ù¼ /m<@˜Ï…RáÊ(¼ÍŒ™4nR{fá™e24FÝsjjϳqY¥È–švÿÀî=¾>Ê ­>C]?FœªßÇÆd8–Éw"Uð‰W€;`½&Ul®î&tH°çלc´â,]èoý«Þ©‘sÐé>æSï$zöOg;‹-‘8”´'mÚv9„rÕL ²ÖÆÖ( 21j:™‘e\Z\“‹oòã0nÅ®Ó÷=V¿\áN¾¡Ïô땃òê…Ý'¢¶Þ]³<ÅoøwóŒÆÅÍ$a^9^lƒ”]91• á¤IP"™š†ŒëZÇ‘ IDAThì=[“@«ë'-%—ZÍö<“O±x‹¶Q/3³]¢‘ûCZ<2²Ù€HršÝûÞó fîÀ¼ѰÙ`¦Lö‚ϵ)dÓ{&ãÕfÚ®‘‘ ’ølJõð½×ðâ—Ù Ûi&³ÙlÎ7xw|E2ô¦EÙ![ÄéX¤ä“&o…PÒ¤«âj|¹F:Å"ï˜Kq}›ŸcL±@<™¤kÈÌÄׯx^½XtÀ–³7eÛYÊyÖèxk$ÛwÛJ"VäÛivè2Íeî4c&³y”e9Ÿ2D¨† —qV;´+Ë)…¿" Ÿ Üe–Y¢›ÉFy÷ÿì>^ù£WvÓÙÙB°Â †Þ²™µèÏAEŽÉõ vY ÉüÁü»‹òUÈÅ‚·ÁÈÅžcåK¯‹\¬Ýi—Þ0¢¹yÍ4n&wbZ¤¬mv¨;Ÿt¢äŽ"‰Õõ¶ø¹ë€¼x¤ó.Ç–•ái%!å㱤Åv’r—IÙ¼Ã̆#Ôvã¼ÅxÞ¾`ƒaØÈýÛ¨^dò¼x±k²óòÞÃ6šrgOÇŒXm4Ú®¶#£µÿp¾ÆƒÿöŠÄËŒHj¯C7µ3£ßö)ð®m[ðELï)ö±÷›÷•yeûÑPÊàPìKc6žkÛpêãÞk‡¼Ç¸-m;£nïÍz¿mÁ™l0Sõ é÷(B÷B…9¤˜6Èh˜IRÖB>_l× dæQ=÷ª²-bæÍø8å‡ÿïC9¦ãɘ_8 ‚²E›fê$0Ë‹'o%;ÀÙ/Îðâo¾"±®V+¬?\c½^#ƈõGkuÙß`ØÉ!e½oÈtü£µlå\#™ÇA0ö€['P®#{ׯ+hýœ+Ë׬ï þ>ˆFvPdµÕÀ!Lpj\œ"I¢p¦‹Ÿ©‘MB>Èï5]»©Í¨ÍeØy‹ÉŒÁhÉžÛYkZŽ-‹°‡zq!K‚ Ù¸ÉBÈZ"“d=ôÞb1—óæX¡¬¡ Î¥“ÈF€Š&*N#kÏaðð¿Žçßõ!I¤ÞZ$Èa;àö ·Ówwm:îÀ­ËþôýìJ2¡Œ|jd‘&amûà9m}Ù‡tÒ8ª‘Gk˜ï»Ðr´ñÄ’Uš+ÄS¤ÓÁäq(ÆGV[A…¡ý¹RC4*d [÷9&4ØöÈ É Ÿe¸ñùDeo–ñ€ZÄËœ ÕïûÄÌ`åOô§X}°Âp>³PuÛÃùM¿íEmÆšè6FÕ°eÊ7çôCo|áµÃˆÅ#—½6W†[¯>.½.rñš«è¯l4(uàS6/9xÛ »ëá®÷ˆ¦ åbOuµò6¨]U¶Ì­"•ôg($5™,Q-:› 5ýVÓm¤EÝ&µª¯.t­ºÐI¢û¥˜ NÝUºPkÙÇí@˜LŽ£q6›8a³ia5nÇFG ¹Ùlr çn¿Œ,HÀíg~ wã×ñÚo¹Óæ'sÜÞÜǃ^*ûoG ãñ”“ åø¸p÷›-Åù#s$pj±-Êëk¾÷6t¿Qc®^ƒ{^ó¤f’§À6§°óÅÙØõgä‘ šl#+¶N’W%Ù5$ñ ááÙ+r"Ú`ýÁ‹géûB6Ûu‡ûJò²œ@û!›ŒÖ†”Í€ŸÆÇÒ)l:pS•Õ†²cÛ)Š>/1¯ª~#3ì\Zœün&!äÉ ”“v¼B@€C @B:ɌȒê‘C4¶H(b9Œp2L·W±’èbŒÇŠ84A š€¸•¾çmF6¶2!zήÎò½ò]ƒIžê=5Ø¢âŒ4W2¹y܇dBzNŠJLˆS;ˆfGà'/’6¢_,0df™žï<óc¼óÞ‹nòT®Ã^­T#OwIÅ$<ò1¦ãß·ã­† Ù8ÊÕñaŠéèä6uEÓV^lPÄã˜ÕO€ò·7 ï1Ì¥]Æ“ñ¢ÅêChÜ”þ7Ú†ý…0˜õF&äÆ$·À¼þR™†ë'qÍGµ˜å~}ß¿5…{Þ.½õ¥¸¼ÏÔûÒí×dê¬5ÖX` Ë–Ty/³²‘ïa<øãGQä~ç÷äö/„!TãÕÑ+‘ŠB>)jóèráCíþ4I7÷»yg“<Á²ú:Xž"_mòNqvøÎ± Φ]tL× »_'Ù%òýéúà®?\NÛIHÌÀ4"×à5¨°F"ÆTö!;?LÝï3X{8¹OýφüT‡"‹®6Ÿ[4WHÒ/ªEÙ$×€‡«¯‰^}téE:Qk´ó€³iIÆ‚2¤Lɵ«Ó÷úTåLË‘ãîx¤ìPÐhDJ4wH©Eð·b¸‡½Ï2ø „"C¤ÍòÆ.ß¿ÕûÍ!Á¿Z?áF@Êmǰœxõ¯+§y°ç|’ÄKæ(ìº_ ZYŸ¯·1«¹6¢æòÁÁ6Ž…ÖïŸ(×¾¯]_mþÏŒN¶×¾rõû辌*FoðwóŒÆl4 ]﯄PÜjZH‰™yŒÎÛ¬ljåýµdƒ^Å ´ó/ÛyKˆ9<0â(°ŸG`Pï©~1H´É{¬ß #ê;.U¶Qè ·fX—óV6o¶¸ú¨ä—½ÞÐ2ŠúÁÈ÷®Íð›ŒdŠMi¶.Wö9ËX”Õ/Wù~E6‹“nwo Sc¨C‚©{2“%õŠK >[ñ(çíýr=M”]=å<óÌ{lìv½Ä¦¼ÉR¤¿2%+³Ý€­2¡Â ¥ Þtk0ŸAâ¥zBñ̆±>gôçÀê—Ò÷ësÖë6 >£Ä£ûêWO1®?AêÛïqÊ×µÕ´Èpâ̯ ²8 í“D¢2“±Üf„RÒ®}Cíº0q¾‰ Í´|leHYãg@Îuˈ ŒLÔ·w®Ä<*Qæbê®8Ú˜pHe‹âz;oc§ßA6úž1¿/4Avø4ä@ª.±ëLðiäûD¿Í٠ɢ5‰Mò=äô£õ×e±ÐûBÝÛ“DmޝÐûZ-gªñ*q·Úom“)$ØFa2–€’”bTäÔ˜5-µ ¤¹×Hs–‘"RjÒ\hA*ö¼ä¢ìˆˆ˜2sA§LG‘NRû*ƒjüPó>0ž)²éwÍ4];$ÃÀ¸š‡à?{p`~™ú,¸2Êùç5†hj[ÀÎ|•ò{ßY¡ïû¤ “qᘠ,=SLè7^ÄɤíÄ7kQ›ÁÆ—õ;¸~à³¥W"•=åÇA.À~$S—oðwóŒ˜È5¦Ç ï%=ï%+À!™X=ÇKbþ=zÝå º›avŒ1²aPËú¢ak„%ÇYB6¸ú^™ÌÖâi”©0‹tjH'Ž¢f‹ ©áwÒaœ,›êÂD3h¼Ùd¢Mvd€Ê;”µ?°‹lüqYì‡ÍëÍz'΢k;Ü^¼ Œ¶©UŽ<¯½—ŠMÇØ3«½Ïâ§BzB8[ÉÙÆŠ¼X‘ÊU¤3Ic'”;p` à! ˆ¿)N[ežÈ6äú'„3ø? Ro~²aMÀʺmóèË9 ¸”‚øÐõ“›©¿¬½bžSóÅÛDáçã ÝÝÿó×ÏRvïšÙXÜ•!–¾×¸¬êøúÃ5ü‡‡×G.;õÁ'GŸ©|ÈØd~e£©~r£¨n@%©xÉN¨QÿœIÇÊz©ÏjÉbDšœ!Ó#(’qȆXΓ.κ¨E¸¸ ÛGuÕ,m,SHGŽ—åô¼}e£f³9B±([³š¼7;š àWK²u»î ™\6ÛÕæÃMîo­‡íO²8™+r*Ó´Zn›áxJð‘í ‰ŒP›ŽÚ|h›®ºçVïÛ‡lDXÊ^g^­¶É`?’ú,l.O‚T>r©m.‡Ë¯l4S?Êñ35¢ñ^D^‚2‰âJ ÊçNÙhd‡®RÚ›„e$`€¢R-'äã‘ O#C4b³‰1*Òa¤ ¼„t ¤U£!!³áôIÍ ê·^m6w`Ù±uÒö̪¦Ëe — ÛÌ$¢©$&³-˜­ÁI¤Ýøhõu±Õ4eywÒa¾›ú9«³rÖhs¸€2˦é;ÛLºŸrL®LP/¿Ñ(·¤û);z¡Ç{¨Í‡„ö@™1@jÛΠÔg&ã)¨y>/^5wÀü.€UF4Ü+]8óÀß{„iNÌ#Ø8÷qg%ò,4 é~?¯l¾ì"™zÜxd³Þˆ€e˜¨^öÛý ùÈüÇ=Hï/÷Ç ƒT>By›Ë!äò9´Ñ4W_òiÿ”óÞ_˜@2¼ÿ¼÷:3ÉLçÄŽ Á'’ÉÔÅÙGûó¦³ÄUõX Çöœ™.î}r»ªif”Àl™ƒõˆr‚Ëxi¹Ïü¢Z¦‡ñq0gãj’n+ ­ŽG¼äu1+ÔS„¬žJÔ¥ QAv'Î¥èßÞH÷c”O‹Ø¶ómÛb>Ÿ£»üj‚lDë͸@¤ÈKÔ{u™È˜Ò÷ˆN\ˆËÜ]æ’®LŠ%;·Ðœ5[âY:í¯n·l NµŸsÜr>Ùu¹-àâg¶QLJ¶ãvfôWsÝ†ìœ WÿÚ^Í\SA0èÁ¯¯Y;!Œ<…ë/SÉxaÍÏ3 zïÎO/é×:ò|}ï{+ð7ÅŹoú¼€X23V½–¾øo_D8 x÷ø} ÃnýýzðIÓÕUå'¤ÅúW­‡¸âüu¯OÜóf~ŸFãMB0Ø•œmÒøóž‰(m4!·­×-'Ã+Üó\n×ïó~kÜó È6õBSÛŒw6¸ÅZ·«0…2¡¥cš¡ŸÉ8›«ÎOÑ‘ÐkâJyÞO'ü3‚ɈL?›ì{\ÿørR/’œt‹kò¾åoýá:3«™Ïç²—üI‡f2BlFÈñ0EößQ ×¹2U^fŒúœô<³íh}ÇÚ”Þit ,.ÌÉ;Mm4”l3l4¶Ã§y¡1@tÀ©óƳþY£ªÃFú}0õX7•Æ»•ý|²EÔúÓ Üs’÷™1IÊý>ºû½pafGr¯îG9Àξ¿Â{ß_aýçêuf ñ_ÝIW¿'¡u}³|™ðdz¡|Ú×ßðïóÁh< öKRWê„§$2Ÿ“¼ì½vŸÛg×{%–ÇÍ í²w‹,€±(*Ez‘·Ù€]üŒÆ×ôµ·˜‹£[LWãËþ¼1¡ìf^kœ™ÍˆCë~ªÍ[Ødà$ʪ?FßT ¨Íä샻X­Ê¸@l5-^-ûÝ«»RYú3QEVAË¡BZ¥ÍÉH{(Û˜”)sávE™ÁŒ­ÒÒ–îÔ&ãâsjM²íô³b›9uíoì!øw‡TÏb‡P‹‚CòÉÖcß'ã @8y˜ºëbEÝ<¬m4¾‹y[SªžS—2XŸKüŒÙòâeÄò™eÞâÝê{­×‰™|Ò”>ž åÓ¾þ†7ÏhŒóºEgÒÛ Vvç©>_yÏ*É‹òq+(âi dU·òŒ¹Q[²IÞh¡D:d‹7É—б?"Å×D÷â½Ïv2Te‹£Éc*e¿È§÷'5 ‚±vbß~‘‡gÍífíÇ•$›™DBFÆ$@èÏÕøkÏSdÓ¶­¤ª¢¤ŒG“3Øy=^•u‚÷R}¨b^ŠT ¹ˆAFÊmÕ+m%/´”AÀ! Å-=¯õFVÏ?ðs½ß‹cVŽÈãRçª 7?ôzª‘¿ŽwûyJ±ÉìÌg.žÏý€Gß9[¢íԩȦ¹ø¸ëÐ'B&{¨¯ï!$!ð3¸ž“ÞìïæMÒ)ÂI$Nr†£^bÞk£±8 ÷¼ûPIdWÄÓ$„ä%@2D¹Ï˜Ùq­€Q²"›´/MB0AãfBŽô¯2ìÄÕ »ç™]œŽ! -ƒ5cAf^™ù1‹$iÛ0§²G8u;\%áªNÊÍ`Í·Z‰›ká}¦iiæí]xï'ŸýÚ¨d·25Ó弨̛+{¥E[ËìÊ»ûÓ  ø ¬™xðȆԻÌÅÕø‡Ð<çÒî É ÿ­17÷^Cd)#í"‡0"Iò.»q5pýJ»ý?5OÉxÊÛ^ö02Ž“/ÿèNUO¤ñó©#_ïCH¸>ÒøX×ÓcÒ›ýÝ<£&*IdŸäå%m '¬%rÔ3Ê÷QÓÌð.“ ÈsugÃt|FR>† ›Ùô9þ†2eµe˜WFQÏ›·ä‹péaR7öqåò¼~^XÜâ•$IvíäÚË·IªÙMéä«ö&(ËYÖÎÀúüM¬>\%IÕús1_(Ñëì~“dÛYéó¨H§œh{Ê‚ WdäÞãêçï§Æ!©å|_È™ ¨Ô&$ç[E^Šž’ͦþéÚfnHF~ï‚ùQnçÚ&SKàiÇØÊÆ²ƒìkª¯³yThP!šÜÏ»6Þ³JR߇C áÁ7&AÇÍr¹DÛµOˆ\øómCÙ{þ“¢7ûû|0š„8¬ŒR"Ú‘0°G’Úã5SHNSÏ‹™úÜg˜ºŽó⿃T}Ù#ã}󨞯J!™)›Nƒéç îŸþÉÃï³4ïìþǵ¡|f6•ϽÙßÍ3o+1Æ{¥®lƒNÂ1Ý,ï»Jòñ›WÕçRi’½î¸-ê=h†|Ü»_‹"œFS‰tm ‰ì);¤’˜ÓèßÏ;ÈG˜¦ÖËÔw‰Æé¥vˆê €dè—xY$’_ʹ= A䄞D«ÕJÐŒö[Œ‹§$- o¿^ a®Le9d$bç}¹ø¾Ýûí»ƒžOÈÇ_ßDa&W•e:ˆÂÄ‚bÝ$¯sõ캋ù¢°Y½ö­ïBrœ=Ê^eÞÛ­¡ŒX*$YÚ,Q"ŠT†C0vÜgp÷ïØ@&æá>$³ï¼=×?'=àÈàmÄ[¿÷Vá}ö¿}sDžÈ†ò™ÙT>EzÉyS?àzåþÝ<£vM­s­ýöM3Dâ‘N’ôœD–$'/Iy ^ÿ™eYm’$ï%9§·ñç w‘M«Ç‹ìϺb“m:4«žgém ‰hn5š‘"U‹éùTní~}" òï'¸œm¦›·vÁä÷SbfÒþ)ò^Û#•g^òn)€(×G?ÀêÃUêï´_ÍI'Ùgf£‘ê´mF‚PÔd‹{§È' D&úÙ¶£Ï³û ÙæÓ”ÈÄ?¿mµe")§ú6¾¾ŠpZA6"™nF8ßÃòé%º®+]Œw~ó.øÙS òÍkMËE–eíc —pˆDýb>!÷sSkCBÏ·2ªûÚdPi"® îú8 ’¹ÿïîãçßyÿ¯GXœ´\>·Hã è‘2û¾ë”oø÷ù`4WÙhj/Wç§·Õx‰ìZˆÆy¡iÅ(ö£i4^¦°ÙÔ×EA6Š<0À̘;¶–¨ˆ!‚)‚Gw|ªŒ^ý\j×b‰é=‚t8#´‚öù;Œ6†·½0†ªý]?6È^bÚ¬”AA˜Úf³I{Á[?µ³íI‹³_¼’GaAL̡݃t‘”eí6[ÑÒ¡ÝûÓ÷y›Ž£+m4³²,¶Ap”Þ#Ì™À’Xô¤-¾?ƈ͇‰7ªãeÌ{.m9à¼ÏjÝyxvIä.~¦Fø“ó¬ž?n¾»×Ûüö´FJîy`qÒâ§ÿçC,Ÿ=Íçz|äòY O•âÉŒ/ßàïæÍDZÑ윷ãNÇì‘N-iÞ3ìÞ¯’\@)x‰­" ™òHH&fo´ÖÎ;¶dcáô<2æ0X%onúlk1&µçyE–ir6œVÊ)ë´Ù ¼ÍœÛ“P “ð D¤xJ‹°xŧ.¢Ø\ÔV³þ`Œ¾ Ù,NX<µP$P!6ˆmÅwE ¹˜MȺÑÙt¤~é`Ùx$ee³ñ$䀮ƒÒ\6’¨Ä2R"èXÞÛw ,º$ôæ¿#°úå gÛ{ÛŒËê|Hš# ïôÊùbó颜¶‘¸ë÷y›íØx0ñ<~2$³ã]šçÛæ£sJ?dç»¶Ãr¹Àò‹§˜/˜/—ø\ OÛÆò$HÆ—oðwóŒ¦F*ÚhüucuþZÞgTét+šîWz_3TFCÚt]y¼ 21w]Á]=2"óíÃéú©ìÎäË Í&ˆ&¦1]Y™ÎééýɬÎíI‹¶mñÞ{¯Øõ3$ö ‹©ŒÂİ,çÒ±ë)_ià ÈÈfIuÉaA¯7‡†`÷ËwsÿZJ(ê‘ œýÏ3<üÇWËø˜Ñƽ2t¶qz|_"ã}󩘵·ï>w Ñ\ÉÈ¥ºŸwØÈø°¾Å!©Å[~9ž$!MæäyTÝÇi¯ õ K˜ë?—í›vÀL3öÙ!™¼ÿ XC£ÓÖ Ë4m?þ)v·ï§°f[Õ™6r¯O~ùç—!q9Ó^–‹ÿáŸ<Õç·Õ“åÛŠ.-ÑqªäR{éyÇé… [-ò±ÁV¸ž¬$k%š8r«9Û P¤T-‹tó›wñøûÅeæž7ƈÝ;<ÿâ'rŸ=À ]Õ™ò–{5^R?‡Ôw¯Æ«qõ}²¾o;^pДӶuE‹Û¬¯_ô;»nÙÒü‘•tß÷$+[ôÁ3ðþ?¾¯í.ƒ'õ„§zÌ&x>ùλ¸þîcÜüæyöH|•ÒV6ñHâ«L¿L=Ïü;?¢)‰{iŽÆ7 Í#û¨ÎGÉÀ•§ƒJºÞ¤h.ÎÆç÷åUógò¼vÇ]4šº]„‹9"‘£È–R ·R:ÆN¡îþpˆÇY†‰£q“u…pÊÁø°67Ÿß¤ýâCxöógxþÏqý­k\÷WWW¸¾¾$p}ív‹~ùçxö‹wÑg¡Jãdls{…°Œ^«9Í–æÑôšVä5h4ÚP!›ëëkl¯,D ÉÝÞJÀГ֋*d㸙™ Ö!#MûïÁ¢ÏÖæÛ$¥sÂ÷â¹’—B2´D.+Ñ`WÛC?$…ž~ñý¦ÇÕ£+ô›ÛG[  ïû|üƒ/ž¢ß?~,ÏA_­üº‘ÊËÔóÌ¿ó+šÚ*¤áä1ަŠzjFŸÕåwîºf òõ÷ÈókìFæÓ¤¨37%YŽŒÌÙ°“zýÆוR”Ù1‰*?F´çá8Ys1`1¿ÆVs`D‡’£!7¯¦àt9…I4X‘Öóïüáûøðï?ÄG„O>ýWoêÖý€Ð (è€í#TÞ¼Âö Y²æÙß¿[DŸ™;ͧœJçÒutŽä·~[sFhÌ£ÑóÆ1Ý|þçz ðœTŒQ¸ªÍOAÐmµUi€ÌÉh™E¡¥5×ì<Ê.Üw°XãÌÉäpòP´hù]¶8™Å÷Eíh0Ç)ô}Ÿ– ê7rÿ§Ÿ½Û-PPq%DDÒO6²áégOŽpýøñWh~䙯‡ëÌ[BÞrò“_@Ó[J XŽì*v ôåûë?†D6@ÎoÜG8›{ Ùç[¸ë4¿wßmÝEŒr'Å™e½ï–ð××!Ó‡¤Õß Túö+Ü`šÅîKðäîïÛ_óÎQV«f[zŸA›>µsÞäLÊ«ÝM@énr3ø;àÿ"kYõ½F©¡\5z7 f¤û‡GAx¡Žðáß¿‹þñû2ö©oØ„”ŽŒÊ]†Ò6çóÊœV îÊú—ök’õšþäãwåü†cn¿ív‹«7¯2’ÑúÜ|v#ÜLáÀö2ÏfÜë¾Aæ>Cý~ì½êûCÌýçÒòRÑta\X?rn3ªÊ¯‘OhȨê?¹Ü–b\ÿÔ÷½*™§ Ž’r±8“û,A($·î8øà‹§xòí'¸þî5n~sS!‚ÿÊdÎó;?¢J$”ƒkG25ÇÒB"^Úýš>åúx%-*É,…t¼ŽÒòÈEï[ìSã¢hˆ*gò¿”LÑn8 -Ÿ»ï¦¾¯å÷å’âRê õ—ÎÇâ¼µ³p;9ýìOpý­Jɨ;ÓÉbpÑt ár†aÀ‡ÿ÷»Ú-bê¢d¬~Èœ‰»¿Ÿ7#õ´z#õ«¯ìü©çMÉÌÏ~þÏ~ñ.žÿú'Þ°ý–„g_½y…«G²¼Ìð†ìÚùìçÏŠöØív¸ùüýt?D§ÔWûgmlxy_ký;æ~êïSWǤ}¿k«8×óBóD(òÝ›’IîÙö‡-Ë‘œ › Qœ[žùw~Ec@ÝTr0¦lPæ?)ú¥Ž¦±û8K U9)çýWRŽÎÇHÑhPp6¶ªsJ£¼ÞfÆûúõ¼=¹ó'I:ž°^n¨üüüiÙÒúvä,|dR(s—߇G }¬Hæ‘(ê²;¤ßôÉ‚µãèĵ’›NfÜ_=ºÂv»ÎÆ#©!eäâû¹ór]y}Š>Ón0TœÏ³_ü}ßãúZ¹¤7¯…?x$n¿¡„Kx$Qt×××øäWŸˆÂ™Ýíáò=„´=´!']ΧŽ&³~H”CÑßœ4·Y½ŸÒB®}Õ÷à¿G !§ö+ó“q/5GÓš'Ar¾k?ëÇü0´‘¾²}´•~³é³Û»à.àêáÎJù _ ô*ä™çW4>l’ ˪^•y5Þ¿F6(¯;Õbó`à>––CRZbÙ/Ü\ áTÈÆ8‘4g,‘Eç®ë\9~í´¦ô+´äØHëõž3Z ­¨Qmœ‘ ÜÊU{±_{®B ¶¶YdLvFÌ™tYŸw2!›ËûTÜ76Ë)ȆÝù ï©æhžýü‰ jol“%]Ôoãd'õ ]H糟?Ãó_=!ï»Â5hLú§íTp–b™ªþ͹_ŠhÇ 8„¤ŠvÓ6ÑïµD`6äb×5‘Ȥl;àgÿùg ŽÔX¡ìJ=áçûÇÏþÓÏœ’³ôQÞßÎJù_¤ò;‚hŽØ_ÓÏ[jÇB(”A˲«9–š«)8Ÿš³!ÇQÔù+Ë­ÎÇÆY ‡_êuD¸PS­WÁ¸ãV •Jqãë^%ô~é<·M’›Æ}¼¥ÚSY¿žCaÝý7!×or.àN9VKÜ—Ù>v[9 ¯Âkƒµ)C2Þ=.‚FIšg–Å6™Á̈wýFÒÆ ›¼güðO~æ§ÔͤÐ×I7w›4m‹z¦í=ãñã§Käƒ éøðïœv%" ÝÑs£õÝôE?¤žà7“ ©ì››'Ø~ë)øNB£'ŽÊÕPgûUÈÀVœ ‚b,ø´õÊØI2ºtÙOd¾T6–ì=d$˜•¶½ï,s~«?ß/ÓÆÑ\}ë*·ï\*gÿNýцdó="\_]ãæ³]©d‚>ï±tP¥øÐü¯7óšp4¯‡¢ñÊ@9O•eEËüu4Œ·ÈL9$ËÍÍ«Y+—WÊóJÁæÍ+ÏÊ£NÈ€SfÕ}ŒÀ5"¾V:DŠ|Òʃ¯¶…)ËBNåýf]£ õq®®³òí¾ ØOõ:/HwC*6¯†€r°!B¼tOOýò Þzë­|?”J†6yð–ò˜‘¶ýI„(§Ž0ò‹D yp²y*Í4à„)d@Õþ5îG0~ÁE¾ÉTˆ¬ßôòÜ›l¬¤öà,‡Íî³ûü úþ)&úŠºCédý«ýƒ8Š›3½·˜ß÷¥OóŠtókj#È#Sí¦Ô3×fFgäååì%Ù¸r-托ra¨‘„2 ä%~&Lê>»)‘MäÓÒµ<5ÿë€d¾A4úóJ#!TéÆ Ì­ü~‡“vÞÍðÇ-¬‰„œ¥×ŒV³¨2µcHçÒé.I•NUÞéè _GŸ%d—¶ûO‚D¼ûbS—_]ï«"]µŸ•×#FûJŽù}Èë‰ 4-ƒ„YÆdE´¥C,ƹ„‹€þQ_øäÃev+MÓ„-¶;Ý4í.+›@¢ä>þ?Æ;ôNv{¹è®fú2²t¯×Ýuóø'Ÿ~R(ÃbõjCÐã—%Ù)2G‘•Èf¼“ÅZ‰d;îУ¶â=«ú…M .8@äh33Ftk‚"Z œÏÆå_)ÞX0ä‚ry8’Y U^¶È¨ï?q›Ù¯v_fä¡Ï×JÃ¥*OAJ8r>q+ü_¢y}8³œÇÑ á3vü\ç¯Ê±óU4Q±_ÍAtuŸbPfw¾Ýfóhlþ‰ÐŽ«Òõù$¹’®>‡¢Ì‘õuŒ2êÌŽÇòþ—Qîí-Õ‚«‘ývŠµÐ´Â…ðÒä=Ù ’̓LÎÛnBHʇ e_^ -å2Þ)´ØÏ[1dó²é¿ûþ®pëÔœ‘lIMº„N–Ù}Xåß  NáӚpr»Ìi±{^5^à.=Ÿ¸›còwS½W½O^ ‚8Äbé*ZŽcF¸ É4Ò·ŸßÊqsoî'}~d|à÷ Ì"w/vyh†V.ýPù`Žg%ÿ7ˆæ+úµ8šU¤Â9k^Í‚û@ù¬ ›¦ûJÏs]~#¿ÁþTž"‚Ko¹ðú|‚ÉØGyä:‹â”‡]ŸVå]‘ãJ&äâõz²dé¸| dœä©ï‡öýÈ?‡IÇmxŽ(Mþ³¼HÊÁÖ¨²Îïå€ûqy½É¤DQ)W ÅkÜ¿.]æÊ¿2gã¸0èöë>)‰›aݶz–ï2Ù³4¨§§Òm2l†„`âmLÇÍ÷.‚p3aâ ¡ ¸åÛıPŒ{y¿¿¯–·­&´BpKRŸqÒ÷ôBÇjÈ–Ï~ñ$)µëëkÄ9b Aˆ«÷†’’±(¸xqµ¹J–ú8³®ÝfJ¶ ˜º ãî/@ôS|EÉLÎvÈ\Ù„d7Ú˜6Ó[ôËB©ÄåñZ‰TúsRlʧZµÛ¥›2:%S¥ ¤³gPßãÉ·ŸàƒÛÄxðöÄï ½ûwfIÆËû•ã¯\ru?~ô;ŒhÎï:3^s4@‰h€ÒâJ$½Ë_̰rÍ2UÓ¦X› nÞLu½ÕÇû´á®ëàò»·˜£÷«¥­5fótl•gŸNÒå_ÌÇQ‚¸Ãr Uéb^MFY>Ùý§jm6E:é<§zZ¶”?:wÐF8[Ó©pЍ,@ˆxsøã6 3ÞÇl1k(,àÜœ«¨¥YWz½pi«y5výÿø)ÞùÃ÷3wT¹ÍB44<R @ß÷¸þÖµ,—£nÀᑺɼ­Cš'dûçäzøy.Œ¼öåï£@øÁõÏJÉøµûß Ü}òý|ô '‰™àPº«Ï£º^o€8;%F¥›Î‚ANù™’I nÝo‘~äƒæñ<0ÿçG46c¸@&X"4Ñgõu-äáeÅÕø¨1„%2ZÜçH=¼eX#CH‚mUgW?ò²^ý™ó¬ Á¹ÿ֢ʼ$äè7‹†k”$¤YS+É ét=l•äÈ,„¸VÊæËJjô¡Í†Œªì6ñÔÏhï70½˜²òÔù!„57MITÚðˆ1Bô0Ü#Åiî¨KÂ0%¨HQÜ‚-Î$$w\3ŠÌæ?u·â8 4HHä¾B&>Ü¢Nâ@~MO»[„è7Þý'ïâýx“-\»zd7eúiÿ0ä3N#Þý'ïb÷Ùtð=–2¨ÛÎ!Ûb£àVºWœ~ñpNÇçÿ†£Á bp%½¬cˆÂÊóù]¾š³)¸`1¦ænõtó`ZÎÂB¬ò›²¨¯Ÿ¹zîzÞË ‚qLNy¤ýcŠÁÃÝ~ô6Xk´Poí§„T©3v詗Ʉʹô‰ïÁqêð< ÙOdCï"†Ë€QŒœö Ú³lÖ¶Ñß €Hï’ˆ0u9ú³Ì£á= º1÷”øeÎód´ýŽ¥qŸ0™w£éç¿~ž™Éi? GÃ2Žû1 òJ¿ØK?á=cz1áÝ+›/v˜TÉ!–Chs8@ÉáÂpÏsrúUˇr6güÑxŽf•sAeéëGþPdS\çMÊwá4wêôå£ÌH値ª<ªó%²4³d´‘EWYÔU'Gé»{èsŽ5.­E…„pDÜb q?ŠÛg" Ĉ{BâÝÔõUÔcÚËþ"#K׸1\ÿ7ÿø×ß¾D@„q÷RÜé²5’°÷šŒÐqޏýâo¿õ3Qj,Ñc<f¸ùÍ“äßOî­Ë¡L»ed9N]ž4jHˆ™Å­fƒô&sL㋬ܒ’0Ž#¦½(ЄhæR¹öƒG„;M=aœ&Ð@à8e$ÒA¸˜GE2¨sûÍ"™cæÈ G¼×ý×g(ŠEé¥ï§þ^"Ýsyä³ÛÝ7Ú“7Ÿ ßPB@?ûõû Qÿù?}6g÷Ù¸X q9wYÙ n¾$Ò9‡ü†£yàÏ:w iœÇaȤʼn,8›ê:l\‰Ö¡™ßs71ï+cƒÿ±ú¸åGÚÏcÏà¼S6‰sñî{¬YÜù£•ùHoÔýRbd0CŒ´|1ÊGUÅ:É ÀowÙ^—SQ7 ö#è2`ÔÁqbH>Uîã~ÄÐÆ9b€ìÇrýëìŽÒy1㸟lRœMÜ«Ðí·xü{ï%¥"ßVæv˜í·ž–ïà –¼9½Ðëï%¢Èùîó<‡g–}e`åçzsÇI™Lû)¹£™GÃ{Nö‹s”ðî~”ìQ•µ~º3ªV`¤ÉÐ%ê©°¾WVäš¶•¶@†Y¢ôÀ†¤'$£ÆL‹£)Œ&×ﺇɵþNÕ÷ç‘Ín¾Åöú · 嚀?ÿ½w¥¼™1}1b÷âvÉÁ´¸™S¥r6žÊõÎ*§ó:Ê3ÿ^EcƒõÙ ²|ZH ¶¼ZˆbåúV~ò×Uç w³&kdã>V ñѹ犑už k=XçK¤yöq&d“'û>zGôs—@ÚŸ@À¸[˜Gô 0ëàŹ|ò¼Dô4€“˜Bœ†0¨²a©7LwŒþR6õÚîžâêñc|ïñ÷777ÅàlDyZX¹þÉ\ç=¿£\‡C2¬óh¢!²¨ïñÐù,!#6mßx'ʆ÷2Ho·ï«Ò‰xþ› ÿHÝhA„ þ6b˜‡¤,™;Ï»íøôbÂv£Ñi0ÙN™ÐAzoœÐ”ãKì}ö $nÆ î£¶WÍѨ´ÍÕÜwÑBD5²Aº?ª~†ò)”õŸ]ss{š2‹+Ò”ˆC:‡Ž!™Zb%ýZË3ÿÎÏÑ€+Ž†Ï«IœŒC€®ùü*ÓȾÀê¼›ƒ’g£÷[Û?¤È_ï,´V-Û.–Ñ™TÎF¯KœÍÌTù Z iÒÀºÈù3J °,L g#uâd0¡ßDált[êá’AŒ>0€1¹}Àö[[\çZÛ¸¾¾Nƒo"ÐÝ`œ&=îǬd¾ýâˆ30êdÑ„d4m^7V¤Ã,}a¼«òûó€^§;sºó?Ån·“¥Mà–Õo1Mnoo1M¦rkJÆ#²8G<þ×ÿÃ$@âýn”»Ù^m³Q¸£’»ÏM2sL¡Ïã^뿟Ä-ºg g ÐxŠ   ÀZû‹)‰¡+9¼AûI07)U²˜–£t8t$3õrÐ~Ð@"E?„;HRF8át¨–òÎó1î¦æp¾*NÇ!Ÿ^Γqi/»•ãßp4ù‚qrnH…ù§s6+åót8¿ÄÖõkåäpN‘ÈiòŠõýÊ Äbƒ ùÁ%[ÞŸ¼“ ß{ßA‹µ?ž'q›8dSÔƒ%Ä•÷œ¸á(XeŽ6ˆ02ƒhó„$ÄÙ¶=6$cJa·%Ãßz7í3Ã{ ï ª˜‹þ3C×®3bùjà7Ž&+E½~oí%nÉÉÒÊÁ%[F9¾“t¼—h8QV‚lnnþ°}´Å8º ¦ã>€$m¡Ç·¿ÿ6ÆqÄn·Kˆ A®=' ô‚þd2ë[9 ÎbÔ5äf=ÇlŒ˜’#Sv"Ó÷ãÞ›}‘%@$&dä¿ÿýég¹wÊ×”Uùœ\p7^’“µ²Y)/è Tzåw±ÆÝx©Jâ$çTNg%šíÁ\‹G6MŸù÷¸ÎÒ(ˆ‚£JD Éix¤Rp6µtå­r08p½“õ¼™/#-:­«îSp:R7sƒÙ<Ú ˜7“ÎWùƒ»Ÿçllž…E… ;.÷%=:ÏÕ(‡3 gMól NçÙt#†Î«Ù0€ ow“¸Ìl ïŠ1âæ³Ü ?Â8 ‡3íUjzŒñ^8—¨‹¹Çx@RÚs. ¤Vgåt:8 ÈÇ#!ªÎ×H‰gA6D?ÁG„››ìnwˆÓZmq±{±ÃÕ›WøÞ÷¿‡·¿ÿ6ÐÉ Õ×××àŸ‚ç€qÏÀ÷®~ÞLBøov‰Ã¡G lF„7"0È|\î[·‘ IDATÐë÷TÌ›J?g…RKsF"ƒ!LM}ß>¤uÓ ©´†Yå<® ‰4”Ìê™"Ðã"Dêëªú,®?†œjwÜŽ!›E«ºÁ×¹öÚ™¯¢AF4­è3KëHÄ#›EþÈÆòuòüýNE:/%‘?6¬\;“À+™|^-T3|4P°4PXz}G úæ>Hº×v ¤i/;YŸ@²ŽWG:3ÐSB>?a˜}Ç yÄô\£Ì¾{] tÀÍç7Øívøô[?6 î&àRæ¤ DÄ‹4Mw²$>w²›.Ǣ鈈°""°‰àê|+V¿& °ë)æ@ Ÿî¼EÎ#¨‹F„ ôúÍ_ËqüTÎ},ž»ÝâêÑ®Ÿb€ˆ ýLÀždE{o¬QsŽì;)"µ0C'媜Ë~@&]Yœ÷ýÑô­á8£­@*ö9µI#âpRwŸ…TÖ¾ßCÑjkÈ(€W­¶‚tKi'“YÖÈ&¥)ç?]VË"?Žçˆ\«OƒsJ>yèù‚,’iHî¸|c´—"ìÅåMcrãÌ=g%ÔõJœ’=2 ЃfQ/ƒõ$ ŸîDö0ì' 3ãÉ÷×ß¾^ì\¹Ûí°ûb‡çoƒ:w;QÝl&pw l±Ë|±.'0LMY9#BÒ&Y8åk¥ëãéü„·9}9qëî;!v·@7aÂ-ˆ4ߢǺ¿uŒ0ßbè&`–¥qn¿¸-ž?ƈíÕÃ0`;h 3!ÜÃ@{`«r`#0&FÏ”Þ'MÀÀLŒ arï}Ö÷ì¥ë¾ÿ´¢¼ÈIØüž4oIùlç¾òße}}3ÚÌçŸ×¯KÈÈþú•úûönF§ùôZ”šG6x d³½Vp:À2šíÔh´cé3þίhÒΨ ·‘G.-dÞÜSéB§"äóóó+Èkaié4SÛ!öˆ%Yd¤E”Lò±›{2ï…fQ:¶V™ÉÙçNûŒl(ôÀL™ô]V"„ÐõrÝf@èÂf `ØlAJôšîi!õß~‚wþøüôþidb”õªnnn°ƒx¤‘BxeÍ/&U4LQÎ$«‡)í—zȨÛCÎ[z#çQ¥©×ãͯ÷Äàˆ4—Œ±Å­ÕªÜYE“r$Š Œè/"hÞ¡×ô@?ÁîÅN”­!0 ®Þ¼ú·Ø¢GÏWèÑ3°EbÂhOØÎ„~ô3öŒíLT Ѱ½'ÐÐß‹²JÜ ¤ µôÈÅ>|}ºq>ÒK;éó7‘Iõ=­q2>J­¸Þ»÷ßãÁòqÙ{ÕópZ8™³¡—E6gü_Ñ\ o7Z :Žl<âœ%s rqHç¤ü^bEžvýb_vóàŽÏ™'@|ô³Ô׎X˜Z³4åY[®apèz˜ {Mk;Ú¤?Z•ƒ šN–j(+'¦”Ù 4à9~ˆwþè¼õOßüå¿øË¤dn¿¸Åóß<Ƕ º±#h?‚ºQ‘!KˆŠ$,ÍÝ ¨ˆGÝlAÜ[´Q7—IZÊ)¹á²²7YÎÇ1bH&ÆTɈ A`¡càþÔMߢ,éÝç;ܾ¸] ;ãj¢™D{$¤ÓÏ´' ö>™@#£¿'y†lf$ÄCwù½{U E|‘e@»ð—ÿâ/ñïÿÏ+ô`² ³F‘qdô¬–M3À%*mÎ"rÿ'i/ÚL„8‰²)]4lð´÷mý%²(B‘èšRZ^ …þ2ȦÊVdãÒ¢ùª‘ÎÚ !×·¹Š´G6gþ_Ñ´—ÀÙœ2輦ï¢÷ZC:/=f¦Tã¼GÅq,¹™.﯑ëë$²{ŒÍM2«›h¯ócöœ‰×YŠég´9M§h3‚Zà¤å8¤4C¸Γó>ê®ñƒ·ÞFÿ¨O Fð[=Cý[®pÛì'ÿò'xï_¿‡ç¿~Žÿ¿ñøïߣóˆÐ ÷b¹wœ‘ v{oèjÄ—AÍãNw]®‡’ÖKÙH;ÃíDižÒj,$$ƒ1¥Í]VJ…†³(±Åí¦3ò£íX9©{m²Õ°3²é;ÂGŸßH´™î‰cÄ{ÿê=ÜÞÞâ­·ÞÂô‹}èd>‘¼GQ&1q*QúƒºI9½if U.jädãÈ!‘4¯H>3[7v¼ƒXæiÎüýólôºz~KrŸ=Ù,”ĩȦBFE9§"+ Ùœ€tÈFÓ_²yÐ*Ògþ_Ñ´Íšlr8XA:Ð G:§H®J+ß%Á‡™Å}Ísƒy1äç17O±«;eÎkSµ¶g6‹’bF6ƒG83WïER" Ù0@$–v hx¶yŒ¼õ6®®®ÄЍ¹Ì¥dBH=í'ÿãOp{{‹w>ý€DYÀÄ#]FeÇÀvCØñ$Ê&B¢½€¬¤í>3é&`”IBŽö¾ ÑeÉ]"˺ø AжÜΔw<í€4úzÿã% „.3@%ýeER„3@Öœ3dóϺqƒ««+¼÷¯3Ú»ººÂãòûü9ïI•h^î‡ M¶p÷È< ²aQöˆŒ«ÐËjÐ$[2$Ž‹ym\H² ²Ö>ÔR.Í$C®ÿÛu‡Í é&R:ÙhŸòótn!`Ï·†lÖÊwÍY‘Í…>§çŒ éëÈæ5@4¯QÔÙ  ŒN3‰Ù¤ô™¢ÌP¦Uœ$[×Õ÷YY•šRñQh‹è4]fit(VãMƒÚŒ¬dXŸ-ŠdU.ÑG1¹(ò‘¨#F?´goc÷‘ðçéo;%CDèû>¹Ï…ìFÓã}ß'—Ðöj+kœ=ºÂ³ïÿh& µÞOègF¿1hÔÙíwØÎò¼´Ÿ@ä£ÍF“;ƒÍñÑc,e£“=7š&7of‘öÇcʬçCÎ7a“„>s1a‡H#¦NCV\!Ñhe^M˜'\]]áXJÀÛo½ëï^KôØøè3¤ÐfÚ=Ëô]Àp`”y6adô 1Ï«Åü›P¼”QŠwHQ‰>*Ís<Ö=S¿k¤ §ù6z¦Dôß7AG8΢3K.hy}  ´D m²’1·Øâg¦®r=tÆ)#º§|=”[ß MFhwY2‹ÒÙÍ0 Ñ|œöíahxR FOB¤_†ÌL'ä;)Ià8G”çùL¢µ9ŠòHDºG¢Æ•% 9A¿!ioµÒ<©@â–ÒPÿìÅGøô? ªùëÿí¯qý­k|ïñ÷Rû¦€‹‹&y¦¨¾iÄßvÀ~ù ¦ö“ Þ=cè"GAˆž ¹=G}ÏS¥-:¬ædUôJ¤°H¯ ›gs²±þõU":Pþï*²9óïü 4±(¼ÂP £ÎJºséù%®÷÷õJ¦Š! ûT5{íc¶h9K›»ðUkº@< /Ÿ\A\_¯Þß3®®®ÒàzPÉT?C<ÃFÝfú±—óþwß*”¥q_4Ë g¹ªTßYe#ÐE`®%-þeJ²R0*q:ê¤L•ð’“´ýcÀQbäõÕÏXw&Ý 9"¹«  J´ëjÒD:H’X¢æÆ „àææF”Ìõ5¶onqõæ•(õaHKÔåôv»MA×××øà÷ßNJ/êý¢íd+G°´=î8õƒ0CÜgzžºÜ}½{Ì÷—Øè·-¥F‘78wßÁIëÏsû~_ gS!™¢\7sŸZ²ÁÙ¼rd¬®(pÎßù!Œ- —¾ ã–VË'JC"@‰Lަ³2¢Zj~Òúe‰diÔXa)Ò@™¯X;Ê_G+ùT†•üyçƒY„š¾þ¶,koódhC–?è"Má2¤A“ˆô8%ŽÇê?(ç5øzª»Ñ&'gŽDBÔýx´a ›Òý%_]ž*£”§ƒZ¢®¨0#m×Ûò<%H!Q®dí·BÙƒ ó•|ü?ÅÕ›W¢d9—¶olÑoz\=ºB¿é%œ|CIoˆÒyë÷ÞÂãï>ƺúBHí­QƽùvLˆWݤr¶ŸG*æö±¥êjd±š®úu+Í¿÷‚2äáûoçîò |Ü °¬ùë –‡SlÐHÛiÖJc?.¼*¹¶VÚçW4’qi¸ôKq8(‘ê´!˜—D>FüwH–¯!VË—c^A2Þs–ZBsYýV”—i™ÍWD÷èñPä³úÇT¹ôv»•™ëÈÊâ¡?êÄÂöè ËȨåÍ Iš%]!™}–Á×v«ç¹ä´E‘q’Ô’3ƒºêx` ç(½;‡´fûXHbí÷úÜ@æˆT)… Ïùñ·ÿWWNÉ\ ÖŠækEõцBÈÈÆ–úÑl'R °vä9 œŽqyÖOÒd^k_/ãYû~ºH»þ]̳1eÃYé¬r5®Ú²Ë_!•uÕõýׂlÎø;¿¢²ÑË&²A™NçWŽ?:}éÈäXÚ!Êi®Bmù$Ù°”P§lñùëÖÍ ‹­e)>Ÿ>…ô|lé™qý¦ sƒQ2ö62ˆwÓ÷²Ÿ)/r¦¨pDâÚ¡Ž)ätFÕó²é²)ŽsžéïÎ×iøt³LŽ ÷¶Óh”Õ²yÑA „™Óþ>²¶DñIû èr@ÿ¨/ mD‰  ‚1d³}´Å°°}$ˆ§ïûÙ€ÑlŒã‘öíbSŸ‚¬ú ¡Y;úþÖ²äµßןx.ûun!àúgt÷k!‰™øþ߯×Më{iÝÏÊóò¡È&4Ò^~ÍÈæDc¿VÜwÙ L/¸/‰|,ÁJ\ªy: ±øh1dK<¥+K§…düqøãöQêù²«Y¢õ} ß·—÷VyNA0¶ð£"šŽpóÅMª×ˆXˆ6”Ú²f^03OBÕ‹÷¹â áÌUŒòI‘‰,ÙÏ5­“+ç,aùòÉ>$M€Ì3šÜeS Ç1åh7BœÉ!›DzÍ#‡dL9l2f¼X}Ü¡!`ûæ}}-ˆFïËÒ¼©?ÚûÅR»Hó­ŒËYí7Ú¿ŠÀ”I¸ô‚«ñHÈ«>»A@Fñ[=êò«üMd3Wõô÷k•÷²È¦žwsfdó ¢±_ Ñ´ä‡ÓâxNåv|y>ZÍҨˌvZ-m±¼ªó-Ë»á+F•^D‡­YŠ–®Ö: z¾‰|Ô½#å ‚ ‘É¢WÏõ˜e âô5>ì—”LR"RÖûé'%Õ™2j´A÷Û!€¹ÜÓž²¢ÅÈ!•:WÈå˜\A6™# ²ò(í÷ƒ( ˜Ò½DÏæ´C©ìX E:½ '‡dìørìäÏ”!+ÇhPä(2Hˆ92‚¡Êy‘"E$¥AÖ¾­þ¦ßcDý«–¾ÿÎHH$}nÒ©‘}lÈ¥™_Ï3Êtñ<ÙÉ|YdÓB:^~ݜͯ‡¢96£µò9.N‹ãù2§B: äÒH{N!s¥)Ø´øôã–KÄâ£qj_ùÂgí,ÎéÌE5Š|Ò¾† b¹â wòÏö²ýðâ¹ò›!¡¶³\Ï{ÆøÛQ}ôn¥ƒŽœÅ˜™£¹ËÜL°ã³¶‹JA*²ËEÈò4ºm³“09G Ëi>tšÖó„ðƒb®—¬’Ëh¹='nÆ#„LÜ g æT÷dâºHˆ.p*DS*ñ믔‘zÕ¯RûÖÇ­E‡D‘G`PöS,jÄdÕŸ›È¦\šù«zE6¾œ/‹lZH§%¿.ÎæŒ¿×CÑœŠh"r:¨M;K²HÌÒF…lPZâÉ7LÕ ‚lùx7BíSÖô`_eIÈ&Yò%‡ãç1ù¾@Åõ@ž›g΃U…fJPeñ?fFèBB6¶_ A4N¦5àrdxN@„YÞên\}QG£¶¦é¤õuðù/8íS3t„ ƒqˆ½Åœ&ÍÄ­Bàˆ~#Ñgdöÿ°D1@•E‡“• €"?má"àúÍkü´ïUáPnG]ÉDˆ ‡©ìgpíhǹDÉ_C>¦ Pö£ä®ûc Ù´ PÌir,_Ù¸ë_ÙÔÍë€lÎü{=Í!$Ó9¿&r:¨L;Í6“?Y$™sIHÎrI„Þ׿y8Ki¡d€’“qò”y3ɲÃù¤è²ê>Å< ½@¢Dtr$Ëef|úŸ?[Iežð›¦ <Ë–˜ñnÄ´Ÿ0¾³…ße}B2÷¹]m0¤Ô\4˜­^lçmÉ|ã`òü,圹ãx/ñó×ÓF&ØJ´›vŸ`+„bOõ»Ga¹{伊¨«©µ!u߯ ÁxdR]·6¯¦…Ì=²YåX `Ù¸ë^ÙÔÍë€lÎü{=Í!d29ÿ*å Ñf‰¤´Y*•Åà eUXb•å×D2îü2 òüÍïgZ£Ê @A9š¼E€Ý‡ðŸ~‚x1M"Gܾ¸=IÙ˜rŠ{q½w²lÊîó~üù(‰N^Bâlмhp^ú\A-qbY‚ŸfY:?è¼be¢™$©£¦p8êf«8îd•ãâü%€ ‰BãŽ5Z‹’’y)1#@—yÂSD¾L4_ Ðëû¾Ç¸•û ù|èÁ]ÄŽ`n5C6©?È)Öçõû¢ºy£J×ȤêßkójZHBúE‰ŒHäÐ÷‡‘ \yE65’9'²9óïõP4ÇÌüŠÓG8 £«§Þ;KÄ,‡,šQ0XZTk¾ìÚg]G—Õ\ Ø~%¾¡Êä™ÿÉBÔÙò&iÐT?åPþ×÷1Ž#noo÷¢l˜y©pf$ä3í'ì^ìÁŒ#¦>úÅGø³_*;bºŠŽ“÷LF2 éÀE£‚I›€i]lž*¹„,ÁŠlJ)¡ÜËy5€Ì«‰.¿Í³Éñ4ïí9­‚-\QdãÕaüí˜ÛH/ûKåì?f. 颿†Ô=á•[n\—= YûãÕ÷³@>¾ßWÞŽ{Y¬àn³ßW2•Û@" å²ñßqý=?ÙÔHæœÈæÌ¿×CÑC2Ý+N¿,²QËÀï 4,!³¨<^XNþ¼—pó *Ë +×›Û)¨eä-±ØeËÏ®·í‡åzNî³pÂ=%Ê)*2Òù#ÿî}Ę‘Íôb…òBB•M¹˜JHf1M>úø#üÙgÏ¥¾—:©Q9E¦Q ¤Ósí;gÎÆ[âi–ÅI+Ç«÷¹†,‡êýדJ¹qLéi/m'I.äCi=f GgNÑ|²³(‚±öÆ¥>õ'M–¶¾ºÿY?»pç«AÖòµGý=,V ðHm$’ûñ²|TïË¿w^)¯Îçïû;lÎü{=ÍËp0_¥<^[ @ÉTˆcaA5,3Ïå¤y•ŵ@Hóò:\decrÔΔå›ôú‰˜ñŽû¾.…÷ßOÀÌÀ¿ù«„lv/v¸ùâã4b÷ÅNäíã IOS‰d~x{# bRÄx/ 0jôÞhˆ¦€v”ŒÉžw¥]Óåö>f×Þnß•Ö{Ã>ç·v­-à4_ɽÈf–­ fè¦n1¹±Ÿ´]¥=w·Ò^ñ.êõ/ha›ÇíEiÝüæFÝ•qãùù"‚50ãÂYà÷HF‹GÆ>ú‘ªþG€|/]æVjî°æd2R.óÂ_WS_ç‘MDº24êëjdãɯ!# IDAT ²üF6gþ_јæöÑ_¯˜{©Ëo®tBz+šä’i®Õä-)—¿àPPE‘hY‚Ré8võ ›œ6;gAÔ-Å2¨w@ ¹Ñ¬·[(rø·…>þ»Ý¼gÜÞÞfd³gì~»Ãx7âæó<ÿõs<ûù3¼Ã;u;©emlpgõ.$²FÜÌ9-­` Ñ´Éb~°›¿r¾(åØ{¹pùáFñE@€6hBŠ1 ò3÷djï‡þº¬¤bŒØÝî¤ÝÒû )Ÿô3çå,gC‹þº†T€%¢i ‰Vy ¤C¹œèÚ3Tç‹ë„Øëï«•¿F*MΦ€Ry‡ä!dãËo ›Ñ|ÈæÌ¿îx–¯øgÛGÅW+W÷k¨Ò .Æq0Mé‘д¸jËVò%¥²èœEXå_p4 „ W?gaW_oQ•åÉ u_æ¢|? 1¯õˆ÷R¯·þÃß „€àéÕÞù£w°}s‹›Ïnpssƒçÿðþ¨qM¶Ï tÿ›R‰I½8s4áŽE4ÉzÛ&Z¶WI–+!-ÉϬr/J¶ØÌ«a§Á zHkƒéû²-öeÿ°td!þy–Õ% ®x„ìCÍ麄#ÆqDr Ùg¦÷£m¡pìÇ̘^(RRwÜoo¥>ºµkû¤ZUù0)JÊú}9€d²÷À ¨}?Rã0VïÃîë•Jq¾uÜúq—íb ´Zé¥÷]!Šƒùëïr‰4Ë[‘ÕúÞêï®N¯Il|úDóÀß!¤áÒõ¼˜ç ,‹†%â-–‡\!™E~`=c–›óQ¢©,±I¥h¸z’ÞK-D»_²À.¾tFVŒF²¼mòæ½Zæ÷ù¸î#~üù ¾÷ý{ ÿËÏðöüöÏñ"@ÝHØOé¶ è¶Ê$óR(”HgŒ`ØêÚž£‘A‡ŠöY¬åd¥1Wó<œR)W(-èàQ]ž7.±²¼mùœà·šˆ£JÍÚ~ðg„çÿð\K¸q]Ç~–Ï¢cŒØþ»÷õ>yò-fÈûtHöñ©ePï±ï—Èíºàh캋ò|R"ÎÒ÷åʹ]=2xÉè³¹<_äwò!+Ôê¢9t¿ƒÈÆyJ¾2dsæßë¡h*.d-]Ï‹ypþ¤Y…¯ÔY@eé(¢bÜñä öPør½ïz1`våteî:®®[ÔÓ,S'¹óóVDg•³n!‚uþ Ç)#²¤ã4̈ãÄ(rψ/ä8ONÎ ž#Ø–¡éHÓHˆÇ8ÖMÊüü˜àÀ_ÕÞðriÑT2Ùçë © Zå¹û¥ò‹÷•×à ðö‰û’öµ¨¸·þöoðéþ4¡›ñ…H[ ®v§ñ^ÞÁôbJÑñ."ü›¿nænTNûú½Aî­¡ìÇÔ@,uÿ*¸—˜3 #‘ÄÑ´¾×^©ˆÆ½×EŸ9%Óü>[ÈÆ—7Wõ®ÍI\Ï·Öžõxâ È/ÃÙœùw~EsŠF~(§ò%dÚ© Ë£eéÙ¢©Ž7-šÚBr–N1#º¶ÌV,µŒDœE]××[š–ß!™éž-¼Dƒ“»¥ â;È×4gÎû Eé„™ÒÁ¨›‚ícVZ€F›©¼Î¤H†HVœ¢äà8šIó±×È…JĪóż§äÍÍ–æ!U–p¶d q`HÐm¢–Û“òüW6Šl,°Â”Ê4MÂ…iȸG2áßþ•”£®Î,È4mµ‘•‘ ¢¤vlI?HûövßgR uÿ®û*GY#zCê-Ïßuù•ç`5ú¬õCõÙG…làÍÞæH:êñ8IÙÀIEbšd¯u r‰÷"ÇT?.êiõ ÂÉQi¹½LIÔ–tñÞ,Ÿ6k —CÈ3 $cù—8¥Â(»¯öÖžaÖ¨´™5ñÖø )›¤T¦)E§y9½óñ."üO†d¢+O9¢„œ|7ê<ŸQ9^öƒÚ÷ýw QDzÿ­õS®Ž7 ªïXDŸׯ ye¹-æ(²éÖË{id³}æÒ¯Ùœùw~Eó!“S‘ €æ¼˜di´ŒY8kH¦òµä¼eÊ'½†€œ%gõ)8šFþà :>Ï«Á%‡ÃVÞ\.ÁÙ&uŽªä,mÔA<¦I‹A9bßMÀ=«I•N‰6ÓåQÒó(’±è8‹FK¸EK]äöò3Ê}»Û<š5Ÿy:Ïíó5’ ³Þ×YºÔe]Ò¾žœ‘˜4ŒÈQÝLy4dóþÿþ>þîÿÃn·ÃøÛ¬txÏrlñɯ>ÁÓÿ㩸ËÇÉhß´¨·4øEP€{F7/©ì?ÞÝ íÆÝøü…§Á!˺ßÖfaé»ã~™çëµÏZóÓÒ÷¬~¯£ÁªëÍ«©¿ÿ—A6kMqÿW‰lÎüëŽgùŠ_™œŒˆºÒ8å1Wi„*d‘,³´œ…V¸qjKŽÛåÖÑfÞB/Ê­,ï ¦ƒ!ß¹ãî>fùÛñÉ•7Øó$ºŠ$ªkèÜe²·¼nŠÏ“H–É‚qždͱiB Ò¨!=ïä¨îÖ=î'Hù“n“m\M'.')C4”߯ߩq u¬÷Êß#–ú}Êsº÷çÚ9µ_¬ÚŸ5ÚŒe«¿‘m÷ ßniUg÷½g`¼û›„Ýøù3 üõÕÞþþÛ¸ùü?úì‘ßð=]É!ÚJФ,µ¢¼×öÞ"ïäAR;ºþW(•ýeƒ§qyuð»GŠ: .?;I.]¸áªï"}Ö_»\^ô ®³s÷™Ëò¼r+î[K_Ï ù4Ë[VëWßïÔñçUD£ù÷_¢©5ƒƒ):Á’©eË2jXÄ­hËï9™bF´æ_Dï´,1³H­üÚ2r×§¨¢ÎÕc£Ç­]6zÜ,ÙNM ¢ðé.§³‰i9:c›¬8åãÀD£ 'C ¹’ÉiÖt„[‹Mßo+JÏ·o!ù´y4>-;iªòn‚:z?”võËÊ”ûæè;±­ Ùì¹D:1âÇ··øÁÏŸáGÿx£HÀ]Lî¸t}‘Žy+‡¨"kôŸF¿™²ñnÕº¿E¾Íþgßל9•&G#ÝèŸþ=~ÑgMODŒVòE6+ßûQ}œÍ™çW4¯¹4}–à`jKâ¤(“H¦y½Ë'ë5ž²û£Ì—®¯î›8³Äe¸û˜åVÝ×s4™×âe4Ë';ÈdHˆŒ„«±ã»NÓ¬ˆ}Î7ùü`ôåR.ßêYÜß·lY×– YÊþy›Aâö–zdW,ßúý5ç'¡qžòóK4É|!EbØPÑž‚² ÒóÛÚré<¢L޽"‘Zú"s:iA‚,‘r`¹}eçX{?­ç:6¯´¿½ïªýýõ)íI£½_j…_nçîçP‹«©£×!›R:&}þÖ8s€£©Ó/lÎü;¿¢yYÎ4ù$°ÖÈš…â-2TËZ~—/Yp•åX¬áU×Ë[B•e”|ÛŠL–ŠC2Ty@Ò‡||rÇ£’‘$JŒI•ŒÊ"­×%e£÷5] §PÕ«’õvÖ°÷ªPÎã8fñƒFÃÒöퟸ ‡ ‹¿ÑÎLŠÌ4°UÙH; b³(»´Ö¢JÆ8O@§Œ1Ž Ñ1Y(¸OÇ"8-E€yÍ;Q~“!È–Å~èùLjôçÁµÎÜ÷T#—Öy{é}"—{ÒΛ÷Xs*_*úÌ÷ÃcãDõ\8ÐŽkH¦N¯! =þ}ƒhì÷Š8—Õ4Ðæ`P¥ŠdV,¡Â’:`y¥òà|ÐTq4ò)Ò]û|Œ<ç⑃Y¶äêC(‰G6äK’š?ª«ë'*¥·ô}ýYïÓ䎜2l"?&à@ô™oÿ†e w¿©Z¾£H±>Þ¹ã w@âÀTJŠ9­›ÀIºŽ¾ºÓç”ö×*{vûî8ŽKûÏÐãE>¾>ÖÏôù}{¦AÙ#<­×Q¢lÿ„8<©¿7ÿ=ØûÆÑK$Òú~jdå÷Y ›ÖøP×gEåˆü¼7ॠÐÿ¾A4ö;•cyÆKo¹´,g)¯ú^€ÂR.,Ÿ–5œô+,fB{ ¾¶èWOBHÎçC–8ä|`\€@l¼dR7™"•¸qéJÆÙÝGï‹‹jÖó¾Y‚~ˆÖª×éýµÊ«-ÏÚBvýÁ#ÅúzžË÷æ‘" y`RdcHd*·3‡¢uâ ¸`p”½odE$D©]}š0Í®|rîÇ´jsVnE¿Eõ\ýÞ”¼õ§ ©{ÐBò¾ßz¤ã‘þKq4+ˆªõ×ß×2j–çëƒ#²q]ÑáêñU ›3ÿίhNåXNE.•X- ÈÛ HÈ–Ú—{ÀòjYFõ¼d™¥åê·°¼\:Y‚2¬q ›<È(‰¦c'×/Máh ¹TéXIãlйçv+x$@>]µŸ=/Üûµç;5ú¬YÞŠ…›ÚÓ#MËgÏÓ9˹?,Úë’ʈ† Il ñ4C6¶Í¸½ÿ™A—²‚_ÜÅTo kÉ!!¨ïS(#éÚùCHÍÉÔþÕóJÝÒÀ¹¬q4Ù¼GCËû7¿ÇZú÷çê{”íNj–l|ï‹ñä$´Ç¹£ÈæÌ¿³+š/…dŽEcœÊÉxKªe¡Ôˆ·tа jDä-7T–“iFtm‰WˆiaV颜Mn;õÙw•Åè“„X€ä6âJâñ‰ó©Ò“Ooa»ûv·ãê·à¨ ÉD”ÏíÚ½F&­÷»@2"J\AÃ/òùrô=±>_TdaÑtÑN'’—âwÜõyÑD½NPDDì2gµ|ãÔÆ„œ¬?0Щ¯î·NƪHÎÍߨûmñ}Áµk…XÎÂÑØùÖs7<_WôÙ© pdÜ;0^žówvEó¥Ì1;f¬X° ˧a9Õ–pPêòêë+DS ™¹òIW×'Dcõë\9•enéä3¯¹…Y‹‚²|ŠDŒ£1Φ–£JP˲"~²¬5MÈÑl—úì.Úmhœ%¾˜nÏaÜŒq¾ýêA¿ñ~[ý€«÷»@š¾ÿUÑ,û‰ÙóuâVä (òdM*Ò Ù$%`2Š›ñ>Jà„nfç( òà# «b§zdÅà ‰6$£\>€G’ÖR;¸ö#]¯àfÜóÖ¼Ù±lod¬½›M]Ÿú>õû­ë×ú^[å¬ôªêñÊ¢Ïãp`Û ¡Ôˆã GãÊó›·à n®üÊ2«Wí3_BSdS[°ž»IÈf“£ÅjiQh@¼Ôh4]Ά/3";9o–6W÷I7\=LùÕíè£V<Ò¬ß+Êv(iõþS¹Ê œ^ã½×HÀ?g¤ÌÍJ—N#v²:vçgÝjÀ$Ï£¼?3G“¢Ü2'Ä`©·"'»Oá¦sÈÒê?ú÷ãŸ7–ϹX‹¬F4â/úu—ÏŸÌѸrSûÚ}÷[ Æw€º¾Uù-dS×ã¢9}Ö¯€ãÙæÕœû÷Z(šW‚dÖKn “&’ÁºeôPKg}³rÿdÁµ,?+ÏŽ{˾¶¬œe˜ÊƒX¢‹è¢®´díùͧßäf*™Ü2¦(HóoRT!#z eÎ&q þ¼ç|´“µ›Gö<+HtaI6Þ—]Ÿ8²Jûиzûö,Xõ|†èø.Ú‹t’ãlü íTÙ¨1¥!ý&+ C‚ Y^’D§…%‚á÷§qíïúmÊ~QD›a¥¿Z:ð½,¸Ç*³ÿ6Í‚³£ª<Ÿ¿ñ½âæêþ°ú½»òŽ!šÝ¿5žùño^Ñ?Ïý;»¢ùÒÑd&+K`á#nX.‘ S É Ëdõz»®F>Îbóׯ"ºÈv²°Í"¯ê›æ³ ”ɲR”˜)•–¬£Ñ¢Têy6‰»©• òýì8[ýtð`³,/Ö‘L¬Úµ…HÓûôï¥:®¢®<¢AùŠvç2]#Þb•jF37—!‘”ît%ãfL‘M§}|Ày%…à ½¦¤;ánRÀù¨7d·Ÿï¨E‡hÑv¨ÚÛ_W!ñ‚sçr4ïæ)ë»l¼¿Cý‚êçrõ8ÊÑTÏÙD6þ>‡Lwx<ð Gã/MvÉ´æÍ4,‡“‘Lmi8dÒBJ ŸlÃâò–Y“£©¯Ïé¸ç©-Çb„·Èõ<im3øúÙõVC$]CözžÜq¸/Ó­h5‹FKÑgfweý<¢1Ž ‰dªö?ÄÉb©íWÍãj½_ Œæóí[sb‰ã÷ßÑã‰ãJå˜™Š…,yž*å0•Ñf2G“Úq9o&ÍS „›úƒÏoˆ†²{3µgõœž“(H$ëï¡~¿Yžò}ù÷Y!¥ƒÈÖ÷‡Fy<—õo•Ùœ‚¬pÌÀÊx‡RËñôœ¿³+`©y¿4’iÍ›y€Ò²x ­C&M_pËbñ×µ,¸®aÁÕ–TeÑÕÜÍBV–`âjVf¸’²Œ34ªIÒµ4Dc+,O—ÏÇJbS–ƒÎÍ£ñÇ Ñ„\ÿ&’±÷Ú•í¶à L6,Ýâý¹÷×/ë÷àûK=ªÅá¥h>Í—ÚÃGõiûۦΓͳ‰œæÕÈ}ÑDVä¢2!QÇÁ”ˆ …’ᔿ|ÿE¿p!Ö-.±hÆsûvªÛíTŽ&Vïëà{õߥ•¿†¸Ž}ç+ß㫌>óˆñ!œÍ1dsîßk¡h^%’)ÒÎr}OõK§e‰¬Xr­h–&Gc¢²ìHeÍ‚«-ËMÎ_D³YûZô׊åZs7Á!+Ï,÷XOíЕçáÎR©ïÓDjp–™³¨’©,Çz^ÅAKU9À"zÏs4¾ÝëÁ;íÿSEÕ%d¶¶ÖœC<éíäBË}ûV×xŸY%#BÛwñóò¹VçÍ´,ußÎUùkœªëWçÑ´Êó÷óõwJìà÷YMÏEÝ_}ÿ‡¤Ïß*gm6}왥vh´§çž¦êºÑ]ŸÚÙ)—X•?º÷×zok²U/{þÇ ´‘dÝÞî;(wë=T߸*¿Føö}yÙú¾ªïaõ»oµ‹ïòêñ`ñ½ùòWäËDŸ­q4E;™WsÎßÙM±?Ì)rvò˜æ¯,…¦eSËÊÒXX2hXf¾|_^m)yKÚš^ÛYð¸GJÞÒ6KÙê›Q!Çi¤ç°ù4 ¤S”¿‚d Τ®¿Ë¿h{>«ŸÍ›q–îbm8W~Í,,ײYëEôžÕ§.Ç+›._ï‘^j/ÿ¼>ú®Ct ©J‡Êò¨FL’¢ªýíúb%ƒªý $âÛ®Œo?ÿÞ|ûû÷S·ÿ¼<ÿàýhN}Ÿ‡¾ÏÖ÷Þ(¯<¾ ªOÝ/[õ9•³92¯æœ¿³+š—E2 íôƒ-g™bá,¿¶Püõ®ü–%8 ÎßÏ_ÏUùkÒ)Èæ"ž‹(¯C–1•òhþټΞO£½ü*Áɬ¶“—kåŸò>k0cuuìú=´V`°ó~M7»~eçÚ·æ²í²œµû4£ÅImÿx_>Ç‚›©úÙ*÷iwU¿?i­³ªüÂãPå{åMuýÉ“V½VÚÿèø”H§%¿áhpÁ¥R)Ò'"™“}¨]ãz_¾·è•oé¹q}UþÂ’£R¶,GoYa¥ü²qH)Bç…‰ó ™¹îˆhoy£âX¼¬ÏC>þüÚ{1N¢X%Ëh§Åu]Ù>Åûi¼¯“Íì8)ëÆ™tËrxF\€%²IÑu›ªýZé%§Ó­´§?õûÕË µÚ!×ö¡Dv«H»n?×>é{¨Ûە翃&Gã¿/wý×ÎÑèOþyzN|{µ¤¿ß!ŽFÓÍqôŽG à4ù\¥Šd*Ë©ÉÍTוMm¹/ö¥á2í-4ªïÛ¹ú5Ž×­¹Ñ|:q0)táèõì%Úå{ËÚfkóÔhw«‡ß)°@|k–mõÞÜK«¾GGœ§ÌKªï7Í(3ßþ+ÈÄ#˜2©ßP̃ñÈ…]{‡³XÓn¥]Š÷²ý=‡ØDŒU?õßEñ~°ü®›M‡Uäúºr4§r5G£ÏÖÆ»CѶhËsÿήhxƃ8˜:ÿA$SYNMDS]¿°dа|]g†Ÿ«òPYŒkõ›DÃòå´,Kvå«K{¸·áym+g)£ÃB™e·rܵ_Q¯®êÈn½z&zË2ìÜûòíàÚÕ’=‚l|ÿˆîýøyIÙ49'ß.žsÑtݾÅ~5ý€ˆ²1‡Á¾Mô#ý¿aÿ¼Òãw3GÅûûR±çõñ¶=@@óW˜9ïâ÷Ôõ#× ,ô´»ÈøÖ—œ?1ßÏÈÑL=}F¤ßß29šŠÑHqwfŽPÈÙñ%‚ÙHEêÙ(@.7"q´vx{€ytÌHڋΪ7ß'Bó2ªRIDATЋ†°”²…TáYºD  Ùï“:qf®úo6‰3o8OÈÜÂßCNMŒïu§1'ææpnö¸;{H±[þ½}ûªÙóqœó)Gîoa×ìßÑ8HÆò+²G2©­+ƒ³Ž­uŸÉѤNT¸šÎähÚ|£!¢ÇλÛ;sWÖv|‰\ZÐG¸ÞD¶²ßÖjÿþ÷qJ{¢kH®c ¬|ÔçöŠv¥=0g#û—ãmõ70¾ÕšÏ¯ìßðWèÌ»_ΗÑïÏbzèÿ§ð/¹þm¹×ò‡ð×|S2ý©}ûJ2™»©ßÛ‘È^úÅs÷»XOC\î,'Éü×1Qß\ŸdÄ ‹«îw¦_ÑzrÆcÞмDâUÑò~HdÜ/‹Ñ<ÄËÁ¨ÌiåÌ3t6Š#G2Dé£þB‘‰#@)·ÍEh‰8¤ç PT/ò†²‰¸xÚ|8×wÌUCŽ 0#˜[SæÏŒ3Ö®5_"ç¹›âÙÒ7`¿¦åÓ~ûhog'š6Þîwo€ !F„žâƒß6õÍܧ/ôhÇŠÃÓ9ÐßÊÍ£&p¬ –g1™·ÎÑÀ3`êÛ !/è³±r^Nžéï¤æd¬ÀÀôXGŽaëÛ·üaùÇE‚J9d¯/|ž‘Aý!gµS÷T×+ј3A9 ´ßÆß~×®oOÿ±G–¡}ÛØþÀd¸ÿe<ñß~·˜›ßòi35§¡­§­¯ß­í>"ìEöWŽ&/ïb£9Íd$Ò "Š¥9†áY2G€J{òzôF7£ž_›aé§òˆèøŠ6ʱ4¦Bz;Öȳm2ZÜ+ós´Ëü00×À¾Ó'¢—ÑÈujÄyãŽÜ‡Œy°˜ ÷såh íÔÆN™ÌN6’ IHä"‘›£AíkHœ·Óê³vä™5z/eŸg¿VÃH‘ˆ9e¼g5ô×F.óÊ2•TŽÅ@ư?ë=$Š¿wtă̱¦¢]¾°ÀÇ‘b¾›˜/Έ†xCíÑŽŸÖër3V<+ó×~·î•£y{yMh§ÖˆDI^’£QÚ×t ¿üºm‡ RÓ«%Ë0•tNEC˜ÉyÈh•¹Zã5üq“í~É0í ð«ÛB›Œ%ø÷!gã]Gb¼,.‡÷fv¦·G9³Ž =è„ËG²Û¯Íœ\¾Ñœa2r™B ½§ähd{d ±†ø$³‘ÈucýÉqÊñð~=±ñd™D»ž#û•9•Á¿F™6ü»Å\3óC =íú×}¼ÎÒÇú=6öÅ‹©óÆþÓ'ŸŒ›ƒÙ¢úÈŸÛã:ä/ÉòÞ ko˜?m~”ùîÖƒr?‰ÌŸÉ<¤½b>â×ÒDõ­³¹‚É\–£ÙA{4"¤†ÛßQNæxJ‡FDh"8îgůC"Õ›„ôü18õÌ›ì~TÆ$ýÍÊ2ç> Ï æ Ý–ß5&¨åì2ýY߆#7Æ®o0ë½÷ÄáÕX—(&æ}hŸD¼~xFކˆê[g³òæL&€$4¤Û٫٣!±ml1¥¶˜!³Ùi|ïàö(óþ´ˆÇÔ¼ësˆ2ƒÆ¤†ú¢ì2fWZ;í»9a¯fO†ÉÊö8DökþÓìí¾ã9õ7\_e2÷úî{3+Öq?ðî'fûÂ߈q¤ïG ÿÊѽf2V4¯€Ù„rµÍŽÌ}H³?ú­3Q¾R.ßhˆF$æiyžDÞ‘ÍkÀ^ I5„30'‰ÐxûÜ>a¿|ïÀúÿ/G}äi‡’Óì[©}aækéLüˆú²žf:@Kd|š©YOÿ±ß—2/>wŸÚ|ë%Vü˜Ì0›£,ãÊèÿŠM«µ¼‹&t¶¬!^ÎhÔ@’a*r> +†œ<„f1›ã)Àlº§Ñ²ÜE½ÄÙu³ï•bˆë³Ðˆ)[ñÂæ5Ìtx;²=âÆaÖÞ¿Ñ>DĨ½]Œg7¾ò ˜ÍðÿlÞüñ#än"½EZE–¼¬Ùʧ˜¯¿æ“ûkã!ÊÔ­úK™–ˆ?5'¢\‰GÎô½ñ ' ·>Þ ÿ´ñhë·¿"~_Åú=“£ÿ~¥\¾Ñ gŽDvŠÉÐuíX‡•]¤j < ±ZÌ&‚´ÑáÝSh A¢ÿÔy0/QV±ì̳ëÚC˜´~?Ã̸ÿùœb ý‰Ó!þ­y3Ú#g2xñ ãO‹;ÒÇbkן×þ«gÞ}ŠKÓ‰8ò˜ ‘þû•rùFC$¨¥O2÷i%‰,摱W"þû®´O9YHwÇ̆Hÿ6üН¡Ñÿ“QýóÕ‡¿¹ß¹ÖüÏ®÷˜Ê[ÇEúYGãQ^O˜9ïyñ82©-0_õa1ms¼œ9Ù÷+äïäý¨r4O’B˜A ‚0”@¢â LÕ^‰$³ˆ4Ál8séžF#¿¾ôo„©„Ç;,þF~·4»Î¯„^ÁÈ`¼¯W*‹‹P®ÐŠ3ËOmÜ4¹.hü{Š Š²ËØÑü[:'•£™¹§˜Œ‚¬Î0™hކoŽšÝÙ8ýŸb6÷²†åÿ´˜¨f:¬¾ÆtÞ{9ÊtŽëå|'ü™­R~mó»1ÿ²ÿ\ ãÁ² Œ×Ÿù^d2‘õ ùħyr¡0·ÐüïcýP«õúoýåkOE÷züSÖRLÇñç»ÔQæ“A´Ñø%åï(΃õþˆýݱïØd@;©·yWâ$’“Q™ `\úãGöqÿd×¹\ßüÝÙeÕö£LFÔ¿R.ßhˆú›vˆ´¿G™Œ†lŒ3Qùr„¡! Ù(ã9u&-Ç»¦²=ÊÖÿ/YÅtR9 ï÷…õ]æ*˦Û×â÷IŽÄã00~×^Oû‚œ ·Ù)íåþ•ãGí#-Æß­oî/ç~aÆŸ§÷#Ú©r4g%Å b j Bf!êIF£^ì2+Ôö"¦·Å˜ŠöÞÍ ¦õ»ÎCö«êg˜O”é̶o!× O1¸(CSâ2d%ŽÒLfëý ™Œ¨ã¡õc¬s¹ÎR9±™ûTf~+G3/mçµÍ4RpCéeÂH0dÉhýE˜Í>ö™Í® Q®·‘Ù o©e:—é@<Ì2ˆŒ­xñ—ŠWÍ^Å®a<ü¦íøk`2Û‚/RûM&#ì5ã_´oúËò7Ú|¡q#ûøõÞüÖ·ÎòÒv^‹ÑhÈîÒü{Æþ³"Ñ?D\D•e&VÇü–šÒ¡rfÞž¥ñb:2.V2¤]š}Vœj~R™Ì~‚ɶ_Æ»Êd"÷…¨¿PFÿ!ÊíÆ¡;¿õ­³9ñ^¹ôÒM»Žÿµ?ÂlˆRÈ4Åüî¿ ‡3ÊåpÜœŽ,#»Þ™¶r&ÓÑâ%£­xH´£Ù7“C@ïa™Lfc׃öRþþO1íþbõÏ×ú_u Üh§ÊÑœ•§œ}½$G׬gƒõ›A4jŽˆ û%Â“È !TEGs8©œŽ§-&t¶Ìý0/Î<Ä´™Ã‘šÕ'«¼òdBgËÈ‹â)ÃtBå ¦b2—Èø½ù"åé2šc2Ýz‹0;ÏÞý̶¾SLpåý ]ohÉé¿_)×o4B<¸'|v+ËQÄD`ƒ=M1IJ„i¾w³aD+¿¥fætdyå+´Ã„²ñÉ¡xˆ:ZžéÇCþ*£åó7Þ/ŠÓèºÒÚMÍ‹ð«É¤xÙó/²'Gšø} ¾u6!Î¾ä ”3výLަµÓ! PßE>Ò>0>Ód‡´wí9Èv`RkL%Êx ¦CÎïÙúCË0§§äx@9ËtV­‡ùö§É\-ÊöÑú°˜›Qÿ“AëÉ럗e{{"þÜ?*GsB²ˆl1ˆ³í0Â2e‡€²ˆóÄYm”Ù œß´y?ÍŽáOhѸïé8¿gë¿ ó™Œ7k~#:Åð‘ýH+þ4Ÿ&³üÆ­2:À(¬ú§˜ ZGVÿ–=Ê8S÷¥L\TŽæ„(ˆcÙ(×Z{H“,]&ƒÄÎ0›iÉ͆õçùë@¼÷²¥5&e«µþfýÞÆ‹þžwøÄàB&ÓÅ?[ps;­ö'ç¹{ŠÐò—´»¾u6!Öî0‘Ër4@bN{\§/[öI{¸æõ92²ú³üy¯ïæt b¼LoË„(R_Ìç[?ífúß³?âÙ®3w}âÕ¿‚ɼEކ·ïÝhÏ1™ÊÑH1vn•œD.âbÚd6‘E Ó!„ÆËû¤]Òî3þ^€¨§5å˜d@é÷€"õOŽç©~óìo~‘ã¶ÚEëN‹g“É0çj®¬cw]{öYZ¹Ÿ¹9šfWåhb Ù¯>5Élƒˆ ¶É $zZI³O³Ë³/âïH{VSŽ ­Î zOè†Ç3ÍWúCÔ‡ýžXOîz!?‰—þÏ0m}„ÖóìýH¹Þ‡•ƒñ˜Í•rýFc!áÏœqg@@²ì!¢Â:“üRˆq…}i ;VæVë³9 ¨£íîà÷•ãBí;eÈè¢ýF7ˆKõ€kv…ë‚—™©§øÈYDpýv'ÖÉ3s4VÆc6WÊõ†@4¤„ÊY­µ@B² ‘Q m}ÿÑ3o•‰EíÓ›å`Ï霂hßúBÁò ý£Lk˜O´?ZYÖ>ÅÃüD×Ï“éÖ ïŸüxË<­•eV0Gã¬ßÊÑèrýFc —ÉÈò™³Ñ$"’eˆÐ®b6ÒÞÝg6&bKÎG˜é$¸ù§5M2¡Í` F™VÖ÷WÒÃüL¬É‰zìú,ƒŽ¬¯¨=D¾}OÍÑXã¨Í É ¯œÑ,¨ŸÂlvQ_kŒwŠÙaïæ J ÉMÎÇ©§ªö‘ùèÿ=ä€dù)9¡¬ÖìóÆ/˜åÔIŒ7¾¢ñd­§½·çèϱ‡"öIõ_ÆŸÖx.úÖÙí‹o§¯½~£±vð(“iÈ"ƒ(ØM,Œ(´3\VîCiãeöFý°ül:cïªùÚFæsÔßñï—0 ¤'˜Ð©òb»»y9g{0΂qe2g]ݤ}–=ZÙëgò>´"G“ÉÙ\)×o4Q¤à•‰Òz@N ùXöd˜M÷»‡XÎ"Kisò|ö|½§Å Î0£T9h—柩§3IAþ4O¾©øWÖÓ°>#öhe­-¾“÷ŸïJŽæ«¯æ¯½~£ÑQ)'õ€œò1……„hÁeRÔ/Â3ŽŠø²ö¯,kú^ï]ç€.ԚŒYYŸVÜwÌÞAêaÆËë9q˜Z—£7ì^’+Fþ×tåhNˆ‚Hˆ(”gt»ž} )É2)ˆŽ_¯!4>Ëþ¨¤ý÷vgŽ:~Íþ•åzw˜O‹ãw­þÓ˜’ÔQû“È:?³ñYߪýõ)™Aè¤Á(v{ö'üÞêgr4DtٷξþbþÚë7kÏ _¢8’àš!¤SˆÉAPÝ"õ‹‚tV2Þ~$‡£!ÔÓ93¿«âas˜ÏÆ®W~×ê¿u.ȵÆ‘¸GñMɸ0ì0íOÄŠkjözë7°>ÏÞ‡fr4DTß:›’2 !_¢y¤+‘TY¤™ G$lÑšÈEÚaf–¿”öÏäp^µñ{ãËÎï[ÆÃY}·'”3JÔ?kOÈ`~2ñ!ëgæûLN¦‹kÃ^jeoýý¤íw˜dåhÞB&ϪDLɺÈBCB95®‹ôƒì²˜™å§ìx" ÇòCp|—2Ÿñ£ÄS(g”¨o2ò3ãwüa¼²Þ̋٨HÕ·Û$å\¯"'€üfއ„‰€?Þ+óyv|>Ë#~‰Xybþ\&C£=K˜Ììß{µõ\ï«™L—£±ÆyqŽæöY>uF”Gn+ h7ƒü³Ì¦«—@žª?´q~‹"8‹‘D™Ž†ˆ‰bý,a>Š~Ì'Q^Åÿ[ó–™—©œÌÄzèìvwö^Åd8ƒ™ïÅ9šÏ“Ñå‘Û ­µ¯Øé!£(³énÚA—FÎQ*HÎb«™N§7ß¿Ò×@¿ æ“(O3mîÏì|ü­ ¤˜LpÞ{»MD˜“64Ggî/p¼}ëìÃgÉh,¡ ¦%O iý8ˆã,³énÚ$×/%£UhÊqžÑ»ÞÏÌg*>ù=ËTTÿ´rÐÿä¯ <ƒÉ ã‹ØŸefÖxø8f˜LÀŸÃxë[gs²äÌ(,ÒÈ?ƒ¬”ò¤h"qJ G‹¹òÌx›=Oe: äJÎï^ýÓñ)[:cÿj¿"ÿÈø;³>yý`ÜG™ ´?¹ÞÒÌ,Ãd€?U]ïÑœ“eÈq•žAœ¤ ,¥¬1›®^é„üan GSRRRRòùJm4%%%%%®|·¿ PRRRRòîåÉŒ~m4%%%%ßCùá¿MÕ/FSRRRR’’_üâ…~í×s›Í¬ÔFSRRRò=•ÿúÏú­ßŒm6õÔYIIIIÉ”|ó³úýß{.³©¦¤¤¤ä{.?ýûúã?²7›3_¨¦¤¤¤¤„~ò7/ôçfl6õÔYIIIIÉYùË¿z¡¿þ1Þl¾ª§ÎJJJJJVÈŸüé ýÝß®ÍÙÔFSRRRRÒÉüá ýÃ?ö›Í×õÔYIIIIÉJùÝßy¡ÿ·5̦6š’’’’(¿ñ£úïŸÚlêË%%%%%O‘_ý•úø¿ç˜Íõÿø¬¤¤¤¤D•ÛßÒmûÄ(>l÷ÿйݟÛˆ>| ã÷ÛFôá‹G™èþþ «»ÝÛqê}Íêß6:µ[ÔFSRRRòŽåõÿ^>ý×Ì_^mɼÔÑYIIIIÉS¥6š’’’’’§Jm4%%%%%O•ÚhJJJJJž*µÑ”””””>AsûŸÿ¸Òž’’’’’ÏTÍÏÿõJ;JJJJJ>S©‡JJJJJž*ÿWMq9×`@IEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_09.png0000644000175000017500000004305411563552731017157 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ («¢Æ> IDATxÚíw|Õú‡ßÙš²éBI„ž¨Dz/R-€Hó^ ÊÄèå*E‘ŸŠŠ Âå*ŠJGŠ,tÄPEHB Ù$Ûfg÷üþ8ä8l6!„”Ýäû|ø,“Ù™Ù™3³Ï¼ûΙwˆ¾DDŒ14Ô$tü¿´´³å›ÿÍ7®ùj7Ú|Qî‡Ã±oß~»ÝáuR·Û]·nV­Z‰‘k¾ÚС'Ú|Wî……–Ý»÷Þwß(õÈ¢¤ ËË3=ú‹ÝîHNn£ö»18í¾+w" ëÓ§ÚìŒ1·Ûír¹.\8_PP°jÕj—KéÙ³Çßñ¾¥íj?,_@D=|Ú7—_Ù«jšÜ=´Îs¹\\îz½!22Âd2]¼xQ=%"w৘F èÞå––1QáD”›_x.ýÒ¿ßýD=MhöŽÆm+onpù%ÍþõâYb¸ÿ¿f•øý×jÿqg¯~Û„™‚.\ÊY±íû]G~%¢–75ЩMr‹øº‘a.—ûü¥œ‡~Ù°sŸËí¾Áí­¼%ƒ2ÉGëÜén·‹Ô¹sçÓ§Ok4WMŒÈø#a¦à·Ÿy(*,äíeËÚ³Kr+­Zµøthö7¾|¯³ó…oÙ²…ˆŒç~ÎnîuÞ‡FÙ¿û²•ŸnÛ´áž»ïš9áþéóø#mÒðßìÚ·qÝšì çÂMÁcÇŽyxh¿F¡Æù+6‘$ÝÈÚVÞ’Áµå.¬®6»ˆßc’¤Aäü‡GÞÙ¨^ô{ÿ]¶ë›/”¨Æ,(|¶ûà»+µ:­ú¾ýöÛGŒ½¿^døÅ¬ÜEŸm;zê/"’$iXïNw÷h_7"ìr~áç?þ´æÛ=üê™ßZ½eTÿnÑá¡i™ÙË·ìLJˆëÛáÖÐàÀséY‹>ÛöëÙ41eÿÍ2Ñ€ÎÉC{vŒ‹‰6Z?ÚöÝWûóÖ»ÓÄ{2Æò -Žÿ±tÃ×›½,_@GpÛkN3¨[{"úzóz9(zÃÑ´JÒè=ýùñ¯ÿÏþ›ËåŽlbÕoÝÓ¯oß>];.Z¶\‰jìuQ|sÞY»}dß®Qa!'ÏñºQåX2¨H¹+Š¢rúUrw»YY|œÎI͉hßî]Žà:2éÉj!""‰‚cHuH'&&>6ýÅÍãfΘöÔ}Ç>3Û¥=¨÷£Ã|ñÝ®ÿ-yoøÐ»'Œ­äç¬ÚyðïäC„þágf¶mRÖ 3ç<:zëÎ]ãÿõtr³Øÿ3sÚ˜;ÆM{É¥ ¸¢Ýs?çG7Ö·Û”±Cö§{á?3%Å1zÌØ/rÎ;ˆH'±‡ŸùOîÙ_{ôì9eòdl™ûÁzÒh¯ë XÒ4ÝX4V 5kÖLº|Áá–¡ˆˆd'ÉÎ[“ZQvv¶Æ’ãˆ,僚‡ë'L}Îu9ÝèVúŽïu£Ê·dPrw¹Y–‹´þwüÎ_s3†Èø=á¡&"2›ÍšIF­žTyju’ú“O>q9¤}mDS¯^5KntÏí݈hê6aíÏgG¦¡ý{múæ{Wh=>×Ê•+].ýOÙ.þçgËÿëté÷e:‰¨~LL%Sn¤þÝ7°}°dqžÅ®DÝ´ðóÝrk‚CˆhÍÎ:s–+ºÙ§r§uH¾5Øñ¾}Óu}Kšæà‰SÝ“[4hÝ‘´á}»Q`` ÎåPO_/*|ê?†3Æ–/_N:cé·råJE–\nf’¦”*Ç’ÁÊ1ær¹Å©ŠÖ•¢¨ýÊDî k.¨yÆn'²QÏŸæ]PÔIꜜKd<+ÈçÙÉépX ¢#B‰hÙ²ebiuëÖÕ˜3­Ú+]„Íf³52ÏEDyyy–Èf)T/Dý ªFD™™™–°8f·‘# ‚,·¶ˆhØ „ØAFI’ˆ($$DcËó˜½Ü‘ûüÿ­’G5jÔ?þaø3í"_sbn1ý=:þkôƒ~áâwö8` m ”úq¹¹¹ÖÈxfµQIU¾%ƒ ‰Ü]N§‡ÜÕiwƒ|™=ÇNÞÓ«Sß¾}?Úu‚t†RŽjCH„Ç[Y—Í1Q÷ß^^ž¯ñœ+üªÈÕª§4‡\Ê5׎¨W¯žÍ¥žlÖãÿŒ 5Í™ÿÚáƒû5­_¿^’$Éíò˜½Ü‘»“èÕϾ־÷?­Í|S\ì¢E‹Ž?N18$2,ä©1ƒ;$6;õWÚâ·Þ8súOWÔMZS”öZŸ%š«¤*÷’ÁFîn·Ëét™Ü¥(ŠºÛ rî &ð¿µ[Û4i8jÔ(E¿yËþã9æ+ásñ£ÚãwX Ö~õÃc†>ðÀo®ûVaRR³›Föïñì˨ԹJúÓa)Xóå÷SÆÝóðÃÏ[±ÑEº†ô_øÉF"’ˆ‘5/Ç;æ¾aeY½Ò#÷â½ãŸ7ìƒ_êõº>4Ú!;׬YãÔtML˜ú{õZíÒå+¶oZïÔì]’®ç³¼nTŸmʽdP1‘»»Ëår¹·Ûåv»yÏwDî à$šòæò[ôìÜqôлu:­Õî8s>ýÌÉÅ#k~ËÞ#Ìaܻ˦E=eÅuâtꦯwš,™ÎºMK™«”È}Ûþ£L¶ éÝuí›sò ­oÝ,ç)±ÿ÷ÑÆI÷ôyùå—sÌŸ}½»¤Ù‹oºŸ;奄 î6#gùœ§BCBþ8wþùÙsÿJMeõ[½øØýüÝGüÇ£þCÌXJ—ùâëãu£ndÉຸR’ËÉÉý裟|òɼ¼ËN'¿¦êV§Ó©0vÅì;v|_¯^áÃïåów8µe€3Ø.ë—,c’Ö­Õ¹uF›)†KˆDþÝãO½=Ïh7KŠL’äÒÊAŠ>èšs©ÿôxËàÈ×Û.k™4ZGp´l %"­l ´\Ò¸nIëŒ ´\*ivø»jJšËàÈ7Zs$·Ë¥3Úƒëðž<ÅgW/¤”Oô˜ øF•cÉ ä>kÖœÀÀ Yv(Š“‡ê¼W$Øc‡ãþ1`@!÷Ö½ïB;€ï¦e¢¢"-zëzœ;µžµ÷%n|]îå`ä€nk¾úí@-¡Qb»äøú#C‰ŸIGãøW¥eÔ 4h€Ü@îª/Tcc› ] ¦Éˆp}ü¤er¹€Ü@îªFîqqñÕ»=Õ¾Ps䥀OQžª*OM=“šz¦2bðâ‹õ:@È m>Ke¥e\.×üù¯&'·kÞ¼õ¤I“ -»Þ×\~\\ü{ï-INnߢEâ3ÏL“e;¹ß(‹¿ûË/Ç·oßš’òS@@À+¯Ì¯úå8pðÛo¿Ü³ç‡K—²,x ;P{ðò°ŽØØ&¥×–)žs©p1йs÷•+?LHH ¢ìììþýïHI9xƒ¿ÄÇ•²|õšüøãw7ÝÔ˜ˆÎœ9;zôØöbj ••sÏÌÌèÝ»ßßçIªOÆ/ËòccÍ—••… €Üo”ºuënÚ´>&&¦—Ÿ–vžGîiiiuêÔÁÎÔ*+ç>nÜØ3ž?w.UQ\'Oþ>iÒäª_þìÙssrrsrrfÏž3tèPìlä~£<þøÄöíÛ5¶yóV“'?9hЀª_~‡íûöÐ¥K¨¨è§žš‚ ¨=”炪_€Ûµ™Š¹Cµ’ììu<” •"÷ªÑ+$妯–üʹ€Ü@î w7Š—Þ2+V,E»€_ãý&&´ ԴȈjÀª¹{aõêU5`ó¦N–‘q»¹ÿMçÎ]Ð@à · ÔJ¹O™¿ÛO_ ÖRbÉßÕ«WÕ€´L§NÝs r/1r÷/¹àS”TÁT×.ù»pF7¿Û*\gÿÊùr•M”þ÷‹Ã ÏÏ©í‘{}zôèƒÈ½Ê`eÀOÏOˆ}dq§§¦ž©{Ä_¶Â·"÷=úp‘H=úüøãNDîUƒ$Iþþ5óÆÅÅûK´XF_øcä«^çš¹ûËV\[îSæï®Wªvvc~¯²u.éûéw±?~ëJ7»ýÅï×\Iüñµß">εÓ2Ufvƈ1ª²ZÌÎÓ<áûßCn½’þ¬1§%þ.´ja$ä9wnö+1;#‰H"º‘´LçÜÕfç)¿ð»È§û~b½¤0¶,_3øTÒOFùì¡Uý9wµÙ7bö*ŽÜ…Ù…1%I⺔$ÉgOò©©gøzò?}yUk­;®ùvYõFî>~‰¸š#÷âf—¤5{UFîfWûÝ_âw§FV¨NM=SüŸÇx¤2|!r÷åíªÎœ{%™½Ê"w¯f÷#¿óàa;¨‚ß±±MJ: ûWÛ„ëÕ]<¹W‘Ù«&r/Åìj¿óÔ‡ßÅï¡¡‘¡¡‘°¸®oDiš“$*¡Ç­Ÿõ/Ú߇ª'ç^©f¯‚Èýšfçá0ŸÆ÷3ïÅW/üx8¥ÆùG8Ï«!A¯Õ³w4?´bùxÆb‰ÒÒÎzU¹_ô/ôØ_ÛjˆÜ+Û앹׳—ôíº2ODyIy~¼ãÙÕ%·K%Mìõr‚ož«J:o•}2ß•{ÅFÁU`öJÜkFÌ®þ!,z úWÚ]¬¶ JOéâ¢BUT¤ñÆ—$¯Ñ®{êóúÕcCJš¬6FîUcöÊ‹ÜkL6æïßËE—¹®ºG<î ÏÌäççú…ßøááw wè­Tõ{¤$¿§•ÈûÅÖñc©” ñ5ª.ç^ef¯¼ÈÝ£o¸ÿš]µÆ|Êm©ŸdÛy´Ø«W¯’jËørxXúÚâTák{G?þò3·JkËH 1VžÙ©2kË”âw1»HSÄÆ5!"bKMÄe.ì@]Æ»}ù;©^±Yׯ7ÊcåkNù ±¤( Æ{CUªÙ©’{ˈîá~³—t¥«”+`>Þ3²ô w%EÇ”% *~Zò—£¨zËT¶Ù©òû¹ ¿Ïž={öìÙ’$Íš5‹üín ´Ô³DDÒµ;u…ç#}üŒåµ«ü*ö"w/a;ýøãÎÊ6;UÉªêø›}öìÙ~dö¢«Cg¹âK«gâ‡=#Kÿ6Âïàz¿)þxüT]ν œ^áë\¾l€Å#|˜g®kpAÿº ²&~üñRdé_pÙ„+õOÔ?Ìùý~«W¯êܹË@{¦Ò Ò©S·ŒŒóˆ>®÷‡§×àÝ_ºÐ”EšèöŽf¯Ô¯Œ/Pé9÷j1;ž¡Z±¿?RãÎÔ³“*5ý^õÇXiväÜ«ý¹Ö­oiÝú–çž›)Ëréããââ?þø“®]{&$´èÛwÀׯßЫ×í - ºëäÉß«ëKX¼m½Æ•qqñï½·$9¹}‹‰Ï<3MlW5F»êÝQÆoG\\üÊ•ŸtîÜ=>¾ù AwÿöÛÉRWlH9Ç¥DîÛw+´:_|¬ýô ·ý™š§~+-£pÚø6oMïFDËÖÿÚ«}×'w|yr§zQA¾=KD­šDœNË'¢ËùŽõßž–n":šß²ID•Eî‹¿ûË/Ç·oßš’òS@@À+¯Ìo;vì‹/¶;wšˆÆø¡‡Æ>|èð៚6m:{öK|š©SŸ~ê©©'O_·î³£G]s™•DùV£¤ Þxã­“'ß¾}ëž=?œ?®~²Z¤&ø¿ùóçÝ~û•RE¯½¶ 33s×®ï~üqgjjê‚o–>žˆvïÞ½ví§Ç2dðŒÿöÛ«V­<~üÈÀ¦O®ºDY¼mKâÀƒß~ûåž=?\º”µ`Á[Õž,òØûeùvÑîÝ{7lX{üø‘úM›6£”ÃRÄñíòå¨Óòâ;ŸsstD e]¶½´ôg¾„)ówÏýW‡P“¡ø,²Ó=ëÝŸæMéxüÏÜC'²ÒâÛýç¿;xaHŸ›:$ÕûpÓÉv‰u“š•µp•Xçò•èܹûÊ•&$$Qvvvÿþw¤¤äçêC‡ö×­[·ø,6›­sçnGŽüLD:u}ôÑGú÷ï×°aƒk.³ò¸®ÕwT—4AÇŽ]V­Z™ïõTeFx÷î=/¿<íÚOM¦`"jß¾óš5«›4¹‰ˆNŸ>3zô¸ƒ÷–2>..þèÑŸ#""øþjÑ"Qýgbâ-gΜªQ–Þ¶êüÑ™3gG{àÀÞê Þ=ÊЗåÛá±D³{=\±!å@ÿ•ò$&s¡ȇ£ÂÔo©Íþ×…‚Íß=ŸYÈÃs^c±Y\غ¯OÑ¡ãYcîh¶óà…IõÎ^,sgó*‹Ü333z÷î'þTWoWïò””ÃóæÍ?~ü„ÕjUO¶té{ .Z¸ð퀀€Ù³_0 éˬ$Ê·%MpéRVãÆ«Q%§Nú÷¿ÿ³jÕÇÜìüܡ7nœUúx"â_E" ôøSQ\ÕµieoÛØØFEŠùß¡,ߎ’šÝëአ)âø¯”ªa&CNžGî¹f{I“-ßtrhŸ›ZÅG Z‡Ó5ý}Dd4h£ÃŸÌ64‰M#¿ØzâÏÜ:ὦì+pƒU!ëÖ­»iÓú˜˜˜Ò'{ì±I3g>ß«WO“Éd±X[·¾™¿õÖ[>ø`Ͼ=óÌt¾wË¸Ì ¤|«QÒuëÖIMMoR-_¶œœœGylÁ‚×6l(FFGG§¥ç‘ljjjttÒÇû,eo[±]iiiuêøôv•ôí¸®ÃRÄñ_)9÷¶‰u7î‹×¶õJ‡íûöÐ¥K¨¨è§žšRÝ!mi{¿¤oÇu®Ør ŽÿJ¯ç^½ ž;¨1Ôì§©€ w¨@­”;îPDîˆÜ¨“ˆÜ¹ wDî€È‘; rGäÕ@¥Ô–Aä@ç©§ž%¢7ÞxM=F’¤ ^5jìÀxà|üòå}ýõ7«W¯ôÍ iÜ8Aw5&''»º ÉUÔ~Aä(/¿<çèÑck×®ã®Y³îرc/½4›ˆ¦OvéÒe¼––¢(ÿýïÿ¦OÖg7äܹӧOÿþûï'Nœ8zôèχíïÕ«Ç믿êïû‘; <.Y²xĈQ·Þz+Í›÷ÊÚµŸòr›ÉÉmZ·nµyóæ{ï¶iÓæÄÄÖmÚÜê/Ûõ ³Z·n5lØ=þ¾_¹ÊI³fÍþýïç&Nœ4q⤙3ŸoÖ¬™xkÚ´g–,ù¯ËåZ²ä¿Ï>û´¿lÑ+¯¼ùàƒÔ€ý‚Þ2€òÓ£G÷€€ÆØÝwߥߢEóÖ­[=û쌤¤Ä-šûŶ,\¸Èn·O:¥fìDî€òóÜs3§Oæá‡'¼òŠg’úé§§®[·þ©§žô‹ yÿýþúëܬYÿ©1û9w@9Ù¸q³ÓéìÙ³cløðûöìÙÛµëߥdãââÄ«³jÕ§ûöX²äÝ*xDZ•íDî€ò=gÎK3g>OD’$Í›÷Ò´iÏåççû£ ·lÙúÎ;oëtÚš´_PÏP&N|<,,ìÿþï1æ•W^½xñ¢E UÁ»Ô oæõ º~Z©Mì—kËýŸGZ]‘;_gÈP;Ao¨•rGι#rDîˆÜ º"wîJ?zEä¨å +$ÔÊÈ€ßQbù©S§¡u ¦ÉÙ ¨Qr_±b)Úü/Tk9±±MоɊK{÷îv œ‘;À©PåÓí50rß¿¿öÞáÙ½{oýÜr¹€Ü@î ÷ÚÀªUŸ>ùäSDôöÛ‹_ziÞ/0..ÞÇ×Pr¯š§gà)))mÛ¶%¢””÷ݖì¡iþïºXုð5T§ÜË÷ôŒë•5žÑñóÏWŒyäÈ‘äädMW¸©kä¹×"E™3ç¥6mÚ&%µY¶ìý"¥Žÿp«VIM›¶7îŸYYY"ýøãOºví™Ð¢oß\¿~C¯^·'$´4讓'瓹\®ùó_MNn×¼yëI“&ZÄìË–½ß±c—ÆJù5ûöíç1ïéÓ§ º+..>7÷rÇŽ]ÊçååµiÓÖl6«Ç$'·7›Íb ^×¶{÷^üqŠO°~ý>ðûïtïÞ«b×PYrŸ2÷·ûÏÏ\tàÙ{Wm?¥¸˜ÿÝÁ /¾óÓ“ÿ·›ˆÅýéNsßô7÷}öåŸêÉøc´åû¿þýög^ßûáæßí²«ÈlãŽ3Ï/<0ãÍýß¼@ªgæyÄï›òüÂV»¢3sÑ«])ýSæ.=”žeåüåH϶Ì]zèš›ÿÆo<ùûöí[÷ìùáüù |äøñ?ôÐøÃ‡>üSÓ¦MgÏ~IL¿{÷îµk?=~üÈ!ƒx`ü·ßî\µjåñãG0}ús|šÅ‹ßýå—ãÛ·oMIù) à•Wæ‹Ù;öÅÛÎ;]ú§:wzæÝwõîÝ+5õÌìÙ/Ž9¼ìpxxø AƒV¯þLŒùä“ÕC‡ c¼®mÏž=8HD.\üÏfÙl6"Ú¿ÿ@¯^=+v •¹ŸN3OÛ µÏ/”¿ØuNŒOË(œ6¾Í[Ó»ÑÖÏ™ 3i7óÑv9yöíªÉ8_ïMKË(|öÁ6/MîhÐi¶|¥D×—{RÓ³¬ÓlóÂcí.ç;DŽeáŒnÉ–à@Ý­-¢öÍcöɸ­U ]éŸÒªIÄé´|"ºœïXÿíiÙé&¢Ó©ù-›D\sÛׯß0wîì ꇅ…Ížýùí·_uéÒ9 $$dúôgvïþû$4þ¼ ê>ôÐx‹Å:oÞ\þç#<ôË/¿ði>ýtÍœ9/Ö¯c2?÷Ü´/¾øJÌþŸÿü;22⚟âÁîÝ{ºuëJD{÷îëÖíú2T&<°bÅJ—ËEDŠâúä“Õ=4^=×µíÙ³ÇþýˆhóæÏFömÛ¹Ü{öìQák¨,¹ßÛ7>$X¤Ö7þЉ¿“Cû4 Ôóá”_³†Mvo¿„ŸO\òXÈþcÃûLJ‡ Ú»{ßtôdŽ¥ïí—j Ð ë{Ÿê½Ú7ؒΑÛÍöÉèÝ¡á5?¥e|ÄŸif"úù×,Vsä÷,"ú3Õܪ r¿t)«qãÆ#SR~_Ë–Iqqñ-Z$^¾œ'ÞŠˆ¸²ÌÀÀ@?åÊ•Ì̌޽ûñdÅm·uÈÉɳ׭[·,Ÿ"à YµêÓ¹s_Ž‹‹ÿꫯ'O~2..~÷î=eܹM›6MHˆÿê«oˆhÛ¶ííÚÝÖ°aõ^×¶K—.)))D´qã¦×_uÍšuDtøðá.]:Wø®‹ë(ùÈ¢Ãò-²j2ˆá|‹]4Yˆ€|‹Óc!yòËÿMJÒ•s¡£ND@פ^TPÝÈÀcdßÚ"úðÉì& C"B×ü”fqaë¾>MD‡Žg¹£Ù΃:$Õ;{±`Ìͯù‰uëÖIMM¿ªÔûcMš9óùäV IDAT^½zšL&‹ÅÚºõÍ×ÕôuëÖÝ´i}LLLé“•åSRSÏäääöêuû±c)¿ÿþÇ„ ìÙóÃõ &<¸xñ»wÜ1ðƒ–Ï›7·,k·mÛv“Étûí}Þxã­;vÞtÓMAAA•±†€J‰ÜsòlWÌöÐ`ƒ×iBƒ b²ì<{h°Þs“aö¤<Ù²pF7žÌ!¢0“1;Ï^ö•éÕ¾Á÷?]$¢]ìÓ±aY>ÅhÐF‡>™m4h›F:d׉?së„ô×n„áÃï}á…Yéé¢w¶Ýî0F£1--mÚ´×ÛôãÆ1ãùsçRÅuòäï“&Mö:Y?%%%¥M›[%IJIIiß¾m9…ž={äæ^^±bepppbbb×¶W¯sæ¼4tè":tÈÌ™/–”“¹ñ5TŠÜ7ì8[huXœ¾=Ó.±Ž×i’[EoÜù÷d·µòœ¬k›˜Ï¾<•}Ùîv³ô,ˇ›¯tépsÝõßœÎ+pØ®M;¯$âƒt—r­^?¨e“‹MÙ•’`Ð6ªg*ã§´ŒØ´ãlû¤ºDÔ¶uußœnQ–mŸ:uJÓ¦M ¸£K—õë_‰^,xuîÜ—[¶L=úþÎ;]oÓ?þøÄöíÛ5¶yóV“'?9hЯ“•ñS~þ9…w1üùçü#¹×ĈzÀI’Æÿç‹/Ξ8ñ‘²¯m=²²²îºëN"2äŒ’ä~ãk(;^³Ó¨x=÷)ówîuÓw?]pÈ®ä–uFHÐé4|¼ú‚§Sq¯ûæô‘ß²‰(¹Uáýâ=&s3Ú±ÿüÞ#éæB¹ndÐÀ®±mZF‘ËÅ6wöЉKŒÑÀnq=Û5 ¢o÷ŸÿzošCvyíÀ¾çpÆÚ¯ÿœ82©e“p±’¥ÊùÌÂû¯¦ }~¡üÂ;Ÿ}0¹aÝ`õb»wï'1ù&ß}÷5³@Å˽ܷ¹=ýêî7§ûGïÈr v¥eÊÍ…ÌÂrôüUîo}|ôöNx.+Teí y#e[<Û 5-r¹€ÜÃKWÈØØ&µ¼QÐÒ7Á‘ @ÙÑÁn']j‹Ü©ž  Ê@Î w;ÈärÈär¹€ÜrGär¹€Ü@î¹€Ü@î w;@î w;ÈärÈär¹€Ür¹€Ü@î w;@î5œ‘#Gb÷j*ºZµµ_|ñ…Á` "§Ó©(ÊÀ/\¸žžžžž¾qãF ÈÝoؾ}»^¯×ëõƒ(EÇÆÆ*Šb·Û{õê•šššššºvíZÈݧùæ›oBCCÕf×h4Bî<~—eY§Ó5nܘÏ2bÄø¹û´Ù#""ÂÃÃ…Ù ƒÛíVËÝápØl6"’$©qãÆ’$ÁïÈÝÌÈcvþcŒËÝn·kµZõ\qqqˆß»˜=<<Üã]I’x ÏãtŸ@î¾ÈöíÛ‹›ÝÃãŒ1" PŸ¸Ýî:uê8EQî½÷Þõë×ã(@îÕÁ`0 !!!%™QûÝív»\.Y–µZ­V«5ªÀ!ðGjàMLƒÁh4òþì^Í.Æó·´Eèt:>`0ŠÀ!€Ü}(rçrW›]ØÜCñ:Nh]€È¹û_~ù¥Zîj‰«¯Fë !÷áÇã(@îÕ¶óœŒèøX¦VÐh<ä G r¯f$Iâ—FEQç—O½Âs¹\n·Ûív3Æc<œGf¹û ²,;N§Ó)˲‡Ó¹¸‹ÏÂÍî*‚;Y–Ýn·V«òW‡Ãá!÷üü|³Ùl³Ù“@î¾Å÷ßß»wo‘açZ篼#¼:~÷0ûå" “@î>ÄâÅ‹‰¨wïÞDäv»Õr™j‡‡Ù96lÀ!€Ü}Îï}úôQE”ã¯Å;¶Ë² ³ wò{‡‚ƒƒ„܉HÄì<-ãp8 `väî7~â‰'êÕ«¬B«Õʲ̮~-,,„Ù»°hÑ¢qãÆ©ýÎãB÷ð»ÅbÙ»°råJ>pï½÷ ¿;ŠàZ_¾|ùÞ½{÷îÝ‹cPC`Œ¥¦žÿøŸ5~«ï¹çî{÷î}ýõׇ †CÂ;v,Dî×fãÆ/^lРÃÂG˜2eJÇŽÃÃõZ­¢(wÞyç… .\¸pþüùuëÖ¡}€Ü½sâÄ µÜ#""ÂÃÃÃÃÃqXT/K–,‰Õëõ:N¯×ëõzI’E1™LõêÕ»ùæ›E¹ë®»ÎŸ?ÿÛo¿}òÉ'h1 wO¹÷ë×O-wDîÕζmÛBBB„Öù)Šât:•"£¢¢4͘1cV­Z…vrÿ›_ýU–eõ£´·oßþ×_µmÛöçŸÆÁQ]f äZ篌1µÙeY¶Z­D”””DDð;ûU¬X±"22²aÆbL``````PPŽŒj4;G-w·Û-äît:-‹˜+11‘1¿¹_EzzºZîAAAÜï82ª×ì!!!êG“k4NGDn·›Ç좞3âw¼¢©åÛŸ‘‘qÕ¹N§ã~¿õÖ[qpøˆÙÕ×h4AÅ0™L­[·NLL3f Ȉè‡~ð(þÎÓ2Þ«ŒÁƒëõúÀÀ@“ɤ6»T„ǰF£ æ·èõzƒÁ‚ör÷¼#í^Å´iÓ†—íÔëõÂì^'®çNתà7£=€Ü¯žž^\îˆÜ«Œ¤¤$Ñë‘'ÖK‡û]­u>#—ûˆ#Ф@îDD™™™‡C=†§eÚµk‡Æ©xÇѱÝ#lW'd<¯+B¹#xr¿BJJJñÌ ÒîUÃ< ¾_‰WÛ/#‘»^¯‡Ü€Ü¯i÷ê"11‘k]£Ñ””g/I’4F£QïƒFù{‘»N§ã~oÓ¦ §R1ÊÕcLL öÀãY‰n·›/Á;ûvïÞ••¥ƒ»™ª†K—.—»Œ±âºgŒ¹Ša³Ùl6›,ËhX wïÁ»H»wìØ‘ß *ƒÌÌL¯r/%`çÙ›âfçN´ÛíëׯGàC¹ß|óÍ|øÔ©SZ­V¯×'$$Ȳl±Xâââ,‹Åb9tèÚªbå~ùòe“É$êÆ8ÞÕ1VRÞív˲ì5lçÅ û7n|úôi~].((H«Õò4®Ñh r»Ý¼ªI½zõòòòöìÙƒ«>ÿüó=zÄÄĨk=‘ð»:Zf·Ûí6›Ín·;N¹Ûl6´*û{ì1£Ñ(:]ðy\è\ñn·[Q¡˜®]»Âïø›)11Ñáp¨ûAJ’¤.Å,¢x·Û͵.üîp8xÔ¹¹{š=000 €k+ž1¦6»ÓéôHÀïEfff~~¾GwI’dYÝØù¾à8N¿Ûív‹ÅÂs2C† iҤɛo¾‰†;Ì~¶k4šRÌ.ß+„?þ¸Y³f-Z´PdŒ ³ós­:½îp8xÎýn6›333óòòl6[ƒ Ün÷”)S.\ˆ¶;ÌÈKV‰ÛÙÕýf¢'5ü^!üñÇDÔ¼ys1FQavNç!wž„Q›=33óÒ¥KO<ñD~~¾Éd2™LƒþüóÏѶr¯u<úè£j³ó›¹Ü5ÇãÜ<`Œʲ,Ër‡<ˆ#éFX¹rå¸qãÔ~WçdxƦxÇG³?÷Üs¼‚XHHˆÉdBÃȽVnyQYav“ÉăwI’¸Ü‹›Ýívó¼ 6P ‚krüøq>ЬY3ÞÈÂì¼ÁEñð»Ú쯽öOÜsxðŽV{mDèƒËÝd2‰à§ìv»˜˜ÛD£B’$QîêÖ[o=zô(¦!!!á‰'žX´hc¬AƒüKƒï#Fó1âf%›ÍVXXÈ;téR«ÕªSÁŸûV{­ãá‡V§t C`` —{@@cL–eFÃãÉîD1Bï7HÏž=ãâ∈û½°°Pÿüó.]ºˆ>‘z½^œ**xWétüöËâoñúæŠïСCqïWMȯ6»ÑhäÝÕ¹Üù¯"Þ€………^2íÚµS—e9555''GìÑçï «Õ*йó"b;µEî\1"ÎÕÍÇ4hÐ@QÑs†»ƒÿÆ÷x)‘Õùõ×_…ÜÕ–÷úZ[§Ñhø­¶^ßu:¥x¿ÂC~³óWÑ’$‰3¥z.«ÕÊÍÎ ëó ž1ÆMÍ垟ŸÏw;ÿ5#Ìn³Ù222ÒÓÓ ÐÃ@î5ŸíÛ·Š ¢ú_ûöí»ýöÛÅ4/^$¢úõëóžŽêôzqÅ =qÅœ:uêĉ·ÜrKéZ¿¦÷+)äçwÒz ùy–¿x¶çFBþöíÛ{˜Ýd2òmä)/þĥƟ;wŽÿòa{óæÍeYþõ×_¸Ù-KZZÚÌ™3 xïUµÜy†û›ýâÅ‹éééønȽVäd ƒÑhEÃ{÷î­6»ˆpOœ8ѬY3Þ£Ã##œÎa^@\–eEQx¨[Šø’’’®iökž*£eD–ß뻼cO¯îò?))IÜô+ÌÎáu{øbN'ÏÉp¿ ³wëÖÍápðý•——ÇmhµZ_yå¶óÈ]\Ê ¸Ù¹ÖÓÓÓ‹w„r¯±r~¼çž{Ú¶më1ÃáÈÏÏ/((×WÝWãavQrÅ_sDU,¯\3ä¿æk%Ý­SŽŽ=™™™â¶/~…€›=$$$((H¯×ó ÑêFkÔ¨Q:ubccùc•4 ß_iii’$=òÈ#51;§¸Ü³²²Ò‹€Ù¨-rçéuÞ}„ 4ˆÈf³q³çççoÛ¶­_¿~<3#njçvav!w«ÕZº¸Ë‚_‡ü{ľÜï¼î&/À˃w~å§OÞßT§Ó9NuÑ‘C;xð௿þj6›EY·   ^Þß©ÄS혀š&÷»ï¾»sç΃Ál6›Íæ¼¼<³ÙÌ»HsDÖøé§ŸŽŒŒô˜w¿Ë/¢GÌûN<þøãï¿ÿþ‡~Èç=z4÷»ËåZç©öÈÈÈ‹/‹à¥„ÖŰÃáð³WHÈ_î€××®]õë×çgMž9ÕxF‹×í=JEÍuÅþ|Z¾g=J8ˆrwß}÷–-[ðí FÉ}ÇŽüÒœúr¢ºD OŽÛíö˜˜® ÆØ¼yóžþyáw«ÕúÁ¹ïß¿_XϨ‚ˆ<ÌÎ{Ôøû^/GÈ_–@»víÒÒÒø=Jê=ÂwÏ­‘ÃáàEîbð{MÕ7£ªÙ¨irß±cGXXXHHˆ:l•Ô%Àøô111Ttúð»ÙlÎÈÈÈËËãr?pà€¸dº{÷nÞcÚn·5Êh4òNš4éâÅ‹/^ÌÌ̬ÙÅ{o0ä ¥c¸£ù%h~Z¯×¿j±XxGR¯r—eY\Ôp¹s³sÔNQk‰bÆ÷;çå—_ž8qbFF†û®]»ÔÕù‰W,yï½÷ø0/?ËûüÕò˜ñš!ÿÍ7ßl4…ßm6›¸·€×í¡¢~î¢#©8¨ÃvŽç¾€Ü+ØìaaaêË}<„çÖðÚë\ägˆhÉ’%mÛ¶ÍÈÈˆŽŽ^±b…ÙlÅD&Aý¸nöœœœÜÜ\‚V xÈÂ}-˲x—‹^ýðq^†WûòÞ¹ÙÕ³j¦ÜK1»º,ïrGEÔDEE‰+Ÿ?>##cÖ¬Yâ¦GõÅ=Wz˜lܸGLéäåå5hЀ÷tTça»Zîü$êT!Šæ‹1hOj¸Ü ƒÉdR›]­oõ0ᩨ×µ,Ëêˤééé“'O6›Í¢+ž˜R}Ó#Ì^>¹;N‘ŠûBܦ¤® )n.+~ÕÚét=zí @ —;ïXÜì^'æÓeYVw»rç·¶‡……ñj'<œT?¸ƒ_S5›Í0ûõòË/¿4lذaÆê‘n·[ÝÝkÑŽÃá(((à=€.÷¯¾úªxMÇÒQ—7).w£ÑøÓO?ñ§vðW“É$ø J Úl6‹Å³_/¼¾¦Ú¨oS*éò)7;ïœêQêPåÎÃv¯÷L–$z­7xaHλï¾KDÆ Š7¶b¨k€2"zÔðç†3ÆÄ3˜¼Ê'gÔf/((@?j¾ÜÕa{YÌND¢pUIr2dÈæÍ›ÕÏs¸ï¾ût:ÕjEœ^Q~—$©aÃ†êœ Ç£œ2ïW³P»ä¾uëV^{äz«ÚJ*D9*žp÷ZÁü³Ï>ÃÑPñ{hh(ov!wR•Sæ7+ñÊ0;µHîwÝu×®]»¼vŒcŒ•d|ñ <øùïv»yh}_5~·X,â:¶8­ŠP…Üyð³P[äNWWwñH»óîÅ/»x¾ö}•ù=))IÓëõ}úôÓœ={ö·ß~ûá‡Ð\Ô.¹‹jìüF˜â{qÅ»¼ÁµÎÍŽžvU‰:ïÖ­[Ïž=Õïr¨Xü ;!~Â;EQ„Í=#y„^\îêg=—TnT6¼»zL)qÔd¹å7 ªs/êÈ?‚SXX(Ò2<öÕ…GZ†ßĹPåþ¯ýkñâÅj¿s­s¿{t|äÕÕfÏ-Âl6[­V<ǧÚ#w›ÍÆëwªƒw´ µNîÜï‹-jÕª¹\.¶óüLñŽ1ÅÍÎk²úé§ØëÕ¹[,ÈÈý O<ñÄÂ… [·n-Šƒ‹Ò`ê‚ì¢o Ìî³rG‡*?»QsÊ”)'NœàEHÄã­ -K¡ ˜ÝgñÚaÆ`0$''£q¨‘;çÉ'Ÿœ?~h<„§¢Ì OÅðç(Ùíöüü|˜ÝA‡ w/̘1ãÁ U¢~ð©àõÙav_Ã#-£×ë!w w"¢åË—ó‘#Gr¿ón¨µ¾~ýzì`Ÿ•»Õj òÞÑ2Ôv¹ Ö¬Y#†GŒ±víZìTßÇb±X,¹/Ù(75ªò-Ìî_‘»z "w wà÷>|Øãš*¿Iõ¶ÛnCã¹ÿÞ‹GîÞ€ÜA’;ï0ƒ´;;ðoø5ÕâÁ;ZÈøwäî5펖rþ¹{M»'%%¡q€Ü¿räÈ\S òС @5ïD4åÅùŸ¢/åKEùMäü—¶6<¡z˜­‘È$I&IBËpã -ª\Ær®~ʼnrrþMc¹r—¤´ ;ðw¹{܇è-r~Ë:E)¹#3äjBð®þ3D’¸ß;ðcrs©þ4 Ã ;¨‘{.:̹ƒš'÷oiwäü˜ì"÷¡è0äü— Šâåš*23@îÀßñÒ™ wàïä\ÝaF3@î ]ìšjÒ2@î È=f€ÜAÍÜ% f€Ü³¹x…ÜÊÀ ƒàøDðÎ^—庒d Ê'JÔhf fÆÌD«œN´;ð†ét·iµ.¢ÍŠ@”¬Ñè%‰ÕaL‘$™È̘™±VFccoË2Z ÈøÙ‡étu$I'Iz"]Ñ?7‘"I."…(D’b³ýåvO6àw wàëf¿W§‹ÑhLÜé’ÄÍ®'âZ¿ò1Y’´Œ5Ñh~r>nöá:]=†_8 ¸ÚïÂì.Æœ’dåó0ÖD£‘àw wà³f¡ÓÕÕhLE½ƒxÌ.I:"ˆÜS$ÉFDŒ‘$IDÄØMˆß€Üo2²È좌ŒI’´z= d0V«‘e½,“,Ën·ÄI÷»ˆß™Û=Q¯_‚.4@îÀG¢Ó…KR0Q°Úì!!J’FÜN’e²Ù yy$ˤò»›ÈÉX$¡<;ðšk4<±Hį5™(<\ŠŒ¤À@¹K²L²ÌÌf"2\¾ÌœNbÌMä,êNLD4R§[£(hR wPý4Õhô’¤“$$ˆtAA!EDPx8…‡“Á@ 9TX(I#"ÆŒÙÙNÆ´’¤cLK¤•¤ ¢à ÞÇŒãr¹>ûì3ì¹P~Jïï¨'ÒK DWþ“FCétD$) ³ÙÈ`Ð9WÌN¤#2•wFŒ™———˜˜˜——g6›óòòÖ¯_Ý w®'LÖë¹ÖÅýJd0HF# d2] á%‰ËEv;ñ· ­Ã¡+ê.©eLK,IÁ’4X§ûüz23Ï>ûltt47»ÑhÔétZ­6&&ÆétÚíö¼¼¼¼¼¼Ö­[gee-Y²û @¦ùÄÃì&“) @ø]-w‡Ã¡Ñüý„ƒfÍšI’ôøã¿ûî»Øwr 4þr»Ã´Z'‘˜“(Àb¡Ë—‘$Iät^é Éö¼<–—Gùù.—‹Gî⟭(rW*I¡’Ô„ˆå0–Ó¯_NNNrrrnnî–-[~øaµß%U²ž+Þív[­‹¤¦M›º\®þóŸ}ôö€Ü(YæÉI²i ÎË#"FD‹¤×“VK²ÌœN²ZÉlvY­VÆì¼ÔLQðncŒGî^?B"Š–¤è-ˆÈápdggçääx5{QÅFD&(èªÞ•n·ÛétšL¦àà`ì8¹pÈ]ÑjD…t¥"¹ÝÁ¼Ì€ÁÀ Òj‰—e—ÍfcÌFdcÌJä(ò;Ûç×ü8£ÑذaÆ ‘ÚìêÈ](^ø1æt:yGI>vð;ð UP¥lR”3n·…1 c…DW^Ýn‡Åâº|™.]¢K—XV–b6Ûm6îtñj#²2–ÇX>cVƾV”C.×·Û\B_\ôÅÍî¡xF£×ëµZ­è+l2™Fމ}¹P?¸\DÔ”_º”$bÌ%I:ÆtD:Æ´n·ºWŒ|µßsKc,± Æ–:ãôúhIŠºúŸ×;W#""xn]*¹k¼$IŒ1îtá÷€€îwì8¹Pk…ˆQ³"¿ËŒéŠJ è$É%ÒëD ‘£Èì9Üìn÷yÆ6+ ­,ªú;X§ûÛï‹EEEE¥§GEE >^¯W÷„Q[ž]ø ­kµZ>Œ´;€Ü¸>¿7×hܪj:IÒ1æ*ºp*ïÕìjÔÛ‡}ùeÔÕÜvÛm¼K{)ûUß "í>xðàÏ?ÿû@î”ÉïñEE€uEɦzÌ÷»¹T³{°aÃ>ðöÛoùå—3fÌPÅétª'cŒ©{˨=ß].—Ëå²Z­v»f;×á÷LÆÂ$)\’‰‚‹ŽH…ÈNTÀX!c…D…Œå1V³«ÉÌÌœ0a7»¢(n·Û#3ü]‰u¹\Âì|Àb±X,ì/¹p}~¢Ó ¿‡KR€$ª´Î_?¿þçrddd³óWƒÁ öâp×{˜]–e‹ÅRXXˆ w®u<~¯N.I2Q!coìAKï¿ÿ~Ÿ>}L&7»,Ëz½žgØ‹û›ß¸ÄÍÎs2–"°›ä@ùY_¡OÎËÈȈ‰‰QÅf³iµZ" WP=.¥ò <Ã.Òî3óÌe“M6=ïWÄÍìì<óÌN>Ï™óœç¬­Ý Ã0K—¾6|ø)â¯cÇŽW{ ’ïM@Á‡´ÞFÏ‹O¦_È?hÿŽÎs" ÀTƒDàÓ*:cĽ=}î@:|hG0s>D‡?O¾ýô\ÅT÷¾†ÉŒý³€€è9tÓ?ž&Ð!å´Èj“\M‹ÍŠ­`È …äÞ„/J/†ŽL ñMÊ0L D]ÂöY”½Eþºˆé÷‘ÄM¾V¸g@Qc…£¸´mÍ%ò×L BÀÌP©s£€.‘c@L›ý$ÛÅÓ É…c'ÛvGçÎl¹3 Ól­Çƒ:lhˆlû“×0÷èxQ2Y&ºÄéÒm h|ìh{#ÙF?úz_¨Yß9Ïž-w†araјæÅœ§ÐñÁvƒK?…^SØéšÆŒ5ì”xË·ŽM„.»ÝmÃ;»+úá)íF"Ù³‰Ä@G<‚¸÷6ÐÇ[ï94²åÎ0LÌ> ž7¤´ô!Dó‹§ qL{å=cÊ.Š"Ÿš«%·y€¶[emØ68¥ú”yÒ@ôñ¦Hü5bK²en" zn`Ëa˜¬$›"ì#3×}?ŠQŒ|ù§Hœ˜$¿ˆŸA#ã˧ ‡KÝaƒ“»!ñYyWlé·âzP~!òõgŸ;Ã0Í‘ ?YA_Óœ² ±Á FHÔ`ý.”™DÚŽG(>AxT>ä©BÔ]rúÍ]ƒ ú_0Ëä'@Ä€kê|ÄqM¿ °åÎ0L¶úž•4S6èÂïdÒHÁãƒðiNôúßÝ1Žó!r÷ÆN’DÚø=TˆaCätí³¸3 Óbÿ ΚŠîméjÖ“|Tú8Öô§ Nb< øDÁˆg㉷’Ì©ŠÚîš³õ9oŒæOIG1bÔÔq \ŸJ–Ý2 Ãd+ëè»x²Ù~w° ‚ۻɭƒä|Žèç"±™ÉpãéI>z©0¯zfšÁoo¶Ü†‰¨Å˜™FÄlåŽôß%c"C”hÊÌä*¨Ô˜6sQ0¸1X¿Ó‡’Ìä\¨*^û@tDÏ%“®rFš´ï³ZˉŽe^é=Ørg&K«Cµ;ÔüŽB>‘òÃcÔR¢'Täíû“ÏǤÑü$ë!ì$‰¢t"ÚŠ&’N1°¸3 Ó,Çf'˜q*$ú¥ûº,(è¨ètŒØNŠžÐ ‘Ðϵ"êµ|Šõ‰²5÷ö”‚—Œ\³ ì–a¦í˜vÄ,c»ÁÏÝà¯|ÑüAâ$n«\Ÿw&±q 3Hþ1òöÄ;ßá¿‘¤ÊÄLL'9Âyä@²•-w†ar¢ó¢²£gyf°áø Ï͘僃k}‘hq£D”Éiû“Oô:9<óà€N§ 8C장a]"ñÿ™ëÎâÎ0L®U ™&<Ê~²Un×Ñœ¿“#/dJGC|6œ)¢ïxàüH<=Ì\rû˜(äá‡W¨2 “ J¸.£C›52HýÏa£Asìw”)4F;.Éâh¢4ê ˆDkÝó¬€ËìÁ>w†a"Q IÐP×b—¿9[ –Õlò:Ð1RÄdÆdFÁÕ≌ôYžjç á鄼ã9:ïH:àð™»²Õx<æî¨ÉŒµoOk ;áY܆‰„ ¤ 1&&Œ¯Ã/í/fŸ´Ü6®.‰þæ®`©Œ‡DÿO¡0\úÅý#HK6{Ê™\¹äCŽÇâÎ0LDÝE!,S0MÀ$(†ËÛ ‰rÁ – ûÝi/c¦r’Ÿ­|p¿*uèhBU§'Éañ v¸mZ“0ùàê¶Õç10½äʹJrrâR² ð$w†a²u˜dlVP€(¦J©IðYá“YàV£CÞ¢+Ž›‹…äk?‹qÛ³Žt4˘|­{$$$r$þµÄSŽÉ:Qr/iWl%¥K­Zå¡Ð5*¸TyÆ žPe&Z˜Å`*Þ]лĔZàž€°’~®P rt¤¤U|8pwϧâG@p{fLeÄøK†cl÷‰Ã*+«jk7‰ÿ¶µƒ§¨Bÿ.¼æB;¸»r£å¢> 9`ŠÀTA52ÑàФ• ^¦d€ÒŠ{¥5IÁ?nEj@£»$GHj˜=u¦$‰‹^rZ ÔFu7ŒòÂyö™að¥E·j ñÞϹ}üíº²Ûç_¸£”õ÷â=y¿íŒ-O*PГ¨4‚b¦t ˆÔ"$HA€’ èÒE£$Ê:Ævš±T^Ú0wë,IÓ+¸>çɃ”Ê,f'£hC‹ZDÉ`·[î¹=ó}– 8gk;K¼Ä u aLÍRÔœ6!š –‚Ž ŒF $(Öj ŒoÂ»à‡²Ò<¡2ÊÒ¥KÄ›Bõß= Šà-¨AB1'Þq%Öݺ*lKÎÑÊíî[(„£eØrÏ«£ ­„(£Qmí&kÜjw_‹—Ù³¬Ñ(E]I[«:(û@3Se@¨ŒNd”€‰Þ´vp$aóÏУÞܾ¸S÷fœ-AS©pQoê1w\QÚ‹ƒéFì…ª”ÉWìj+UŠÅ½P…²²²Êú)ˆÉžÖöïüÌThúN9QyËH/½ˆL…Òñ‘¶Rš 4JL]3¤M̲ öð>1a¢ÅÔíBlºÏƒ@f7!b=Ÿ!Ç\«cÉ«gåHó[jÑÝ/®·øFo]˽°”±Ð'´³=ùv3ë3"¨:R(aªEi³ä+¡†I¸Ï“&]lÏë‰R½/ÈÓÒâa‹"ôž\ªOaç‚>Y$í!Ëü®E|ðwÝ©…õÔÙžþÆì/Â*,}gYk_.š–ÎjZ« f0 T BIqj¥@¨› 4¥Â ÑW¨3?°9Ríëæ“P’¿¨cÆâ“ÆÑSêÝ7@ê@GI¢`ÏA]ÛÛO(d€¡TQqH“–yUQqÕÕ}iŸvAœ|pøcÛŸlÞ­ÕNÍvŸ’¢Í–QÁ;¢¡¡ouíb05ÀFP BBÿc¢32‘¢ôŽïЀâ (F¨Û´ÉÝAÊè·ÓªV ÖëœIpíDÜC4Úò¯Év(°ÇçtG å„¥ÂíDÛ¨/ãPØ}=Gè*BNíÈr÷[ƒj)E…µ¨À²y Ô~wu¤€G\™ y*´o$f/Mnô= ,…Õ€†F)a#¨†Ÿffœ3>ŽsÄá$"Ϫ$ÉØFaŽÛ0'ôIòþ9¤RÌ5¡ÓÙ‚þ×ÉŽ¢!©=DËØ ×ßÎÞÝÚ” ˆcU@»µ5eÏbÅ!~Ríæi˜lˆ ‚C©HC³õ’BHÍt ?+‡ˆû$Äù%/&¿D¾Î±uò?`; … …:Kb Åç.Ž7â¿®ŽøíÆä€[ë¿&£‘˜w¼Å!’®ƒ‰B›’øR0JÐ1©¤hÛIáÝ!àaN' K#á@žc‘TËÝyìíü€v¯H(×sHzkû‰s¶ºÚMu« Å èH;Ä5êdyìá¶PÖ"Äf·LèÁ/.®æ! Ì`!E𓸼6¼DïŠ,ZNÙ8A~‡’y\9è=A~0íso7kÛ%…˜’Å5S-¾ŸÚGlxûËhÔ•ÇÜÆ_¹5 tB%IJ`ñ&Êý‰É–Ù¯PÌþ…Ù†f¦KÚ“Ìè ¤±ì{òubYª®ööw;¶§å3Ô1&JTR[þš²ªú¯\Á„±20lÓSŸÅ` ¢AhøÊš·¤ÐÃÑ—g;(¤Å'ÃK&Ÿ€#—£´.¶3ͯdÚWê×A;Þ]ÉéÚ´Æ«·|LtMŸ|WC^„•½Ksv°pBTJÀ(E…¬+ ñÁ`¬ƒQ°ÓÇ'MÀ0‰ÒÍèóàÐn1µooLA?æ„9–…ñùxr;?#ˆÃ`µ‚ÿ̨ A²):8B½%äÐRGF»qò7¯½«¾Åü‘è³oFÉ‘Æ#ç1¨FË´oû½p-÷ö禘#µ¶×γÂsùÌâØ U0‹0YfÈ#);HÅ6(ü0ÊÁœÇ‘¦§ô¶@NçExÑ¢Jû0~ ÎH,DßE3Œ÷ÂíKûøj Oß1¨(µµ^¨t­ÉÊR#ÉãYŽ„Ù³c¤g ÷ñ}ÎW(Íä—ÌWÈùwøt*µÔš)­}ß ~ÉfÛ™¯¦@Ý…ÞÖÛV“xðÉòB¤0 †ŸÓBŸZÑŠŽÄ»îƒ‹§à›Æ=‘tXÉL™:'x)È÷’.ÍáY ŸåÞÎhgÉW ½#â´$ë#“3/gÐÀ(l4}f&Ýòà‘F=†¬Ü Kó•v¿#˜ôü½>ˆ!î ôEø_2¡Ê"Â_Óž­xðÍ£Y ÔšœÆ=•œ…‚¥YÒRxòõàõè ãQ:~jpÁLéUÑUê ô ¡÷Qo¨ôb¢,C)B{èÛºc)lPz¤ËÞqì€<ß>‹;Ã0íKâV3h@Ũ™FЂ3M–ÃHø¢W:º5ûãr· Wcb…ç·óy†~oµÛ¿qw¬J*ÓV‘b@#(A2ŒÍÍ‹¶˜6èi óYJ»V2~"§OǽÐÖu’+;3&ŸJÄií,¦6 ew[»ˆE`&BCàQ´âåf¶ìa!À¸GßE§®]y|÷F»Âw:Q¤·Ê¶Ò¼;ƒÿx¸#±*Q¡_–6Õ‘ö±Î¹¥BŸ®¾Z f è ¶ôˆ>ÊŸƒœ˜Q£îÑNú.K{Ì>w†ù/5Û¿²dóM¿™*Sƒ¬2úFÛ }üf•r‡ü%13eÀ[œÜ¶½¢ëú¬Y³<ò‡‡~ä#<êgWVVVÍ;oÀ€A½{÷›2ejSSS«[»â*ðÊʪGytðà!=zô€ÚÚÚ‹.º¤OŸÃ=ô°Ñ£ÇnݺÕÞmáÂE55C«ªzýøÇ#>ýtƒµ}éÒ7O:éÔªª^55CŸxâIîH³illœ6mzß¾ýûöí?}úuö}âêHo'Wa©V4{ÛMG\šþßb³cÍ­¨`–˜M‰¸*¬b33”Ù5Eз3ÎLîv&{²³$`ºÎ r×]÷lØðÙË//Y¹rÙ¿þõï€vß}wõoümåÊeÿùÏÖ9sîi ·©x§®_¿þ•W^Ú¼y#\tÑ%_|ÑÚµï¯]ûÞ¡‡zã³íÝÞzkÕ_þòìÇxê©'Ozµqòä«®¼rò† ?÷ÜÓëÖ­çŽ4›;eË–+–._þ÷ÚÚÚ9sî–ö+øv’^îHþ™ÿd!*ˆP ºX“;Bý¦ÐQ%x•¤p…þüñ×±cÇw9l`aK†,î Ãd¥ïè Ä.XAGùàå™_•}P\mŠRDÍæ<3©á9£§`Ÿ Ã0-‘©B‘xk~µ 5úƒ‰¤‡7ìQÐéæN]¤³ƒe>ðdÁ–;Ã0Í“ «"W€£Tz¿P†é5°C/…]´,²Ù¤›Dr =±¸3 ÓR‹7J‰‹‚À)*P)‰æ-L~}óø&F—oLÖ(²¸3 “S·FûñÂ#• ­ïQ”£ùÜÝŽÙé;¸KM‰ëW‰-w†aríÔ t©æÂ·â32ljh`pð{Fs)B r?#´ìaÃ.8åzK+Ћ~å•WÀ]wÝ)nAÄ9sîøÅ/Î?í´S/¼ðkûc=þÚk¯?ùä¶ّ=zjNEÙ¾}›•Œ¿þ^ DÙ« ¼7äÞ ™h5\ŽmE L ™Øttæs×êóI9樋¢Î §]˜Ü|ó¬3Î8ëÙgŸûÙÏ΀gžynýúõ‹?Ó¦]=aÂoG>_ÓT]×~øæÎ} ÍvÄΛøiêÔk¢,Fåï…¿—6lÂÛ eYñTHñ2}/íú«™ú¦¡Ž”€¥MÑp(ûˆ‚÷ÒÒÒyóøÙÏ~qÄGÀ-·Üúì³O•––À€GöíÛç…^8眳Ÿþ…~ýúyä…ү믟ٷoŸ³Ïþ)/ü½´¨ðÖ:9ÍeË]&4Jèu±D˜Ò:‹×7Qøe "Ú‹[ª««÷»éãÇO€ë®»¶ººÚ~kêÔ)¿ùͤ³Î:sÞ¼‡ÿð‡û ¥G·ÞzG—.]~õ« úO™¿&­p(ïñ#DT³6F*ù a(„¡†¹°Cê"P˜p ûHÒ¼c¨Ð».~aO¨6´¤¤„ˆFŒ8CÜÞ»w¯¾}û\}õ5‡Þ¯wï^Ñ—{ソ¡¡aòäËÛÁ_6/LFœÄ(Û¿1|<‡O¹L@%CAÓU#I²6»ÄG°€Gïi}ûLŸ~Ý´iSþýïÿ»õÖ;fÎt¤/¿êªÉÇwÂ[o½YyôÑ?þóŸ›ÅyHþ^ø{iúÞ.z Ö_U Í}¤˜Í>ŽÜyž~‘™_FÇÀzMès¥ Ørÿë__H&“Ç?lÔ¨ŸôÑG+W:ÊþUVVÚÿ¶qžxâ©·ß~÷Î;oGlácü½0á2‡Ñ mòôU¢’ÐäïÞS”.“äu´eÀ䨵ŠDë–Ù¶mÛ¬Y³¯»îZ@Ä[n™=uêôÝ»w¢.^¼ä¸OÓÔvð—Ëß ®tA¬0çíbK?br*SH­õ;¾]‰<ÙÚ1°%ôÔq"רˆ›ß]&ªPÝ2×]wý)§œdûm{÷îuƧÿîw3î¿ÿÞÂêÈUWMÑu£ººk{fjãï… WÊ”+„ÀOT µéXö» †Nj¤p´ƒÒÓý ™bÅÌÌ3@vSж;‡oV†a\øëøa.Û°%¾à% SkQ@MZÁ ãYx˜ eéѼÃ醉ªi9ö”¤ ØB›Ò°|K B)ÅD‚•ѲÊDÜÓ'#[h[€,î ÃDÃôO`ز!£`ë9 €††%WŒ#%pËzMଗ‚Ò}X܆‰DƒRd‚’{û½Às«@%`¨”Í…A—7=t@ð\% ÿ(‹;Ã0‘ÐAkÀ"4Ê¥úÚ8ésÖ€JÁ̲~f3Cêc¿ÂâÎ0Ld}Gu¯RÔZ<žÖäŒÌ[¾*DS"fv¨vpgÉa¥cp ¥ã5‹;Ã0Yª„ب$šP‹ÓSÞZŽøæ·‹¥ eV6aÔ5»Qô³ä‰-w†a²–+4¤‹š ‘;ÿ fbPì%<öªŸ|ÛñYªmú|„R01zÞœ(†»·4«ï³º"2Y܆ÉR…Sö{Q’dÆÔJ¨Bb\½köç¨tÅ™ `ú4õ4”»(ÓïV†ašcÂ#4ª ÅtchÂío{!âZ²'@û$²N¾©¿Ä}C—8…¯VMÙöÚÒ¥¯ñ­Ê0L3ÄÏDÜ«$TRJ¨Iɽ¾;…óï‡Ïjv4¾@C4,¿Eë]ªnE» /ÎçŒilÓËž@(%£0iÏP„ÞeÑ) |Æ@ö¹3 “¥!‹2碮¨ J‘‘ó%N)©òäJÌÓk3›AH–8†ó£kqSh¶L >Sw†a²6¢=*û”bÔØ¬jr´šWã½9%À,r§% hnšˆ2þu  ¾ÌÃ0y–õT:Yô&³B•F%aÆ¥*˜jÕ^Ö“¿IŒ,Íöà ‚†ŠùxRÉß)È6w䟉ØAtH=±åÎ0LöN «.••ð6“8 å®AÕ}X¬ÇâŸqJ<:R¬`›»\P)è~*ìY#ž a3‹;Ã0Ù°³ÓU(R2ƒ&*CŠ1‰§„<[ò0ºe׌ TD†ÏÊŒwQ±©ÙW†Åa˜lDƒìÎ|_€¢(¡ŽÚ^¥ØˆÑë‹)Ã6¯ó«ÍA!(BËùîÊÓ ¹Ë²à©ÌÇâÎ0L¶:B¢Š+«UZm-û]QaœÊ˜eHz‹_²fÐ@W›­ãÐ1tO®‹;Ã0-–·”Ü“Ão›ÖªJ‘K‰pE¢£öt»X*Ó!ïTcɳeqUØçÎ0LKµ¶¢¥ò¢Â¨&•¢æäNÉv”¡ÖZ×É~'„Å!±Áoj´y׆Åa˜¬ öt ǔﮚŒ#uÐtÐbŸªس IDATíLEb~¯fµ«†,ü%Âq%é!Á[lÅí,î Ã4ÓX%e­YqŸZÔ¨$(ÊK­4³ÉxWÐÔÐŒü‰6Ë‹˜†ÉÒXEÉDžâ{™U5ˆ˜H‚ !ò=ßuûB:gK1*˜Í¿ôáýÉÌ÷²¸3 “ë”\Nœ ŠÒ 5a"v¹uyˆbn³°¥€"0ðÔÅsQ„>ø”Ørg&;‰G’­ G·ÄfÞ$k®•FL$QË·ëD­“ËSÈÎùž@3aïò<9’Ì=jì [î Ãde£bÈŠxÑ]#f9D@Å€«ÖfÆ<†´è 'äèŠo꘰¡‚¢œ?Èf&v°W|„²BˆB‚$â>%áI‡Öb4̹ý²úÔJœÃáÇÂæµ´‹;Ã0Y©%ЉÇ)Ð NÇC:2#êJ>—Ù.y–ÈÛ*'—ÓD®ï)Ï»k@ï£ J®OdÏ<‹;Ã0‘• ÄoaÎJË;‘-óˆIEkPŠšQ‚(k¥ :»¸U>Hß È6Þ£õAþˆÄâÎ0LNÔñ¥ƒ2¹ÅìFH¶1j j€–§LŽˆŽ\Áy’u ½ Af©I™§ ÷ª ‘xÄL*w†aZI<nm:Ò!à^%Ñ”×àŠbçÁlO‰/‚ªˆ¦#íeÛ!dËa˜«£½|^ð£ÄZwË”èù&HMËš¨4a‘j+ N”·ÆÄëEý¥˜>³J¾e›üG)w†aš«^VÊ_çt%Éjȱ–5“žP1 aæIˆœ)àóÓbâ$R¥šš{Bäû$ÂâÎ0LZ•©pg¯«ÄýrI¼è“&€FEiÄ„WfàVu>”ÝW»U€R2Ñ•?«3F¶Ü†É­zÙ&»m¿§Ìú„„˜T&…ê`®G¨ü$ŸÁ€øHL黑ˆt¾2Ç új<‹;Ã0Y»rU$?[Þ-?v;Vƒ¢é¨æÏxÏm»æ\K‡?EeÕ”Òû6gbqg&k/ƒWÏ]Û,£ÞQvUØQŒL´Þ2³›\Å÷£­ôŒýâ‚Цbg‹ Y£DþÖ½c>A«¨8„ïZ†aDæÏhøðS|tƒBðHÛM>ïc&ÿ:‚ ji 4E39sgrÏP›¿˜w(³Á•!ËSIu$µ›VW÷%ßÊ ÃDVA’Z¤$¼J‘DiÛœ@¶”Þå† ]I4™TLĨ»]ÏGp$>ù  ¦¦a{S(ÛQÈÚ튃Zeeß³ ÃØÔÖnŠf袯‹@|…–ð“¿Ÿ"•ÐÀÚb( 2 (‰ÙêZ® ê<£ƒ±”ÀÎbdû‡1 “…Ú¹tÑ›# ý1xqÒŽ$@B4÷¢fæ#mdþŸ{‚s“ ¤éΉޜb‡¢Ôt‹;Ã0ͱu/åKƒ¬2bö?ß„èÞ1PM¦ÒŠå­V q­&ñ @zÁjpŒ¼”P„Åa˜¬¥ÝSL$w†IŒ6úÈ^ªM˜ `!Ë9qœ¹mÆï- LURç*`D@NÆ0LLÒ„Á›ìIU;üÐ ’!’&³ÖAa“’0P!¹/"s=O ±´ô8‚@ÎTÀR}÷?-ái‡Åa˜æïQ6É¢Ýå–8IÖî`#™ ÊÜøqšóäô‹äÝÛ¯©‚é)±Šþƒ-I7³¸3 “¥ÑIÁæ#z«e Î+QtÅK†` j¢ÅàÍõÐ%è{ž²À $*òD¼{k®b° ÏâÎ0L–»» ¶kòæ'·¬x²“Û¦“‚ŒRDاhÉŒ¾G7¤17¥XP~¶ˆª©g¬6w†a²#g‚GÊFU-}§Tö¯åéÐRDÔ1‘ï0èÊOœ÷ ­€‚ †_sw†aâü¼™å§Hˆ©ÄîéTb)‰·÷AlB¥)뜑”ÛÎÄy±PªÖ 0wá+á7 ?Ow†ar%Jia–'ýQõIL;@CTXLjI´3”ßîµéM͇Åa˜–É_äÚF¾fªc®Ub*˜DÍt˜±ùYpDò'¼(¿fWàsµêº@\¬ƒa˜xœè6ãž{•¼çL2‰ä#±:ªMJeqV±u7®çoµ R‚£?ƒgX܆ÉÖ`'ð[E)·ªS —|çÑ#e³¬Ö–$h¨‘ÔsÛ_»_ù«…©òÙ†äR»FL’;,î Ã4ÿˆwdMPÀ †I3")h*E„Ëybµ¬!ÿšÃxÏw†ašm`¢LÈ$®„T^®`Ó—„`x,}ÛdmP”$¨âac²Ø»_+䪰ŠÎiUÙ%Dyfw†aZnf¢dÁ~ÆÙâŽD¹ª‘88šrŠ% I®rŒòH‹! ãDÜSΔåa3è?´!çsg&‡&'ºDÞé>E±]Ó#a;š¨8׬ЂH[iQGó;r*@J€­Ž¾çÆâÎ0L®ìw t3€O0¤ÿr'GÈ»½ uÔtT)è1"ÖŽ’ÃjÆX/©å™1|F•ìð Ã0ñ©Sh`º˜n mì»=Ï„‚ (&ò⊉`ÀS¬W@MMDlä$¿‹ÌâÎ0LD© žEIi8ŒXeƒŽì<ðéMIT“rãÝÎzßB't4’åÈÒŒ<9*P‚²CX܆i–ÅšÕ‡‚s’K—縤Ó„c4aÂ%ð˜Ô/ J$LÙr-Ïž`!%ÀD÷ø¡ƒ"Ã0 “3º6P–Û+…Ê>(*]=¸`¶Ø‰R2H¨4@BG œŠvü_#"þ2†aZN]Ý—••U&¼%Ù&Â^Ð:™&¡ªïõ¨–€™ÁRÃÒãŠöý~GñWÂ0 cqÞ©ÇMž|yó>»tékè›1“h 46€Z¦zP„&Ò4Ò@’ên±-÷žGÏ_'Ã0ŒÅ3¯.k¶¸[4`‘åR×Ȫ†š]L‚j€bùÃ“Š¢ª‚¤ë)¹ÆFP44BÇ‚tL*‚VܱŒ¿N†a_S˜Èr_#" Kgý¶7j­°5QMÒ.8ZÙvPG­˜L[?5 MIPU00Í}'[ÞµÆ=õüåË›Çÿê*¾ “OeïÑ£'|òÉGÅÅEš¦Y:.n/))Ö4aÑ,¢ Íè0ÁV¶ØjqÐ̪]ÌtÒ[»ý v6a¹——í÷ÛŸŸþÃÃªŠ‹õ{¶îúfÂm…~êµfÀ)¿™°OQB;{xÍñû}¿{ׄ¦î¬ß³éß[~÷àÂÖêiè9[;¸÷ï´íóÆ?lÅ/+Êeg˜ö$îÖ‹¾}°ví{eee‰D,e€;w”—wÙo?-ôHN-¶r*PULiÑ%«S2°Ž ¥ÇCÁ¶a¹O¾ôçÇôïsãís>\ývÕÁ=~ö³ó´}¼§¼G”Ïoþ`w·^Ò·:––Ü}Å%ôݹzâ­7ÿWoØÓ»ºú¬ŸþTûjÞNµbÎÙbĈŽýÄýÛÂWÚ†i7|òÉG}ûþ ´fÍê²²²êê>Ö[/½ô¢®Á"kYÛäH¬F€@Hh˜ 4IMq1¨ Rüšp½j+–ûûVÀ¦OÖïÛÿû5ì÷ñ£ÏiÅ¥Ö‰!âÙÃ1lP÷òýwîþöÅåï=óÆJ"²-ÜÅ‹û’ŸsZuƒþ8áë/>§—W˜Ý+×ìVÖ<ü´¦%Š;–¹,PñWëõž}ù¼“ŽíºÙi“fy·ø˜ýñß/|~Ô©C¿Û¥óÿmÝqÿÓ/­ûâŸQÎ9£àNó¼X|ݱ,´õ{ž\ü‹SŽëÖ¹SÝ–m-þûá=+O:úˆNK7µõþ§_úä˺€k›«.0L;‹‹‹Ö®}oÀ€A0pàÑö[K–¼PRRÜ©SYqq‘¯Þ’Äc¿aùmQQIQÀ ‹ƒÁÔÊ'ßôhޤmÂr¯ß³¯Ëþe÷ÝwßÊuŸþcSÝ;ë?ݦ›°§Fýxø¸³O}eéŠÿ™7÷ܳFüzÔ(}÷ö'þ¾úø_]eù -#×eÛZwÄa°üïo4vèÖ¨”À¾½©7:t·ND. TüµWçį'O7v~UlêÞ-§'=1ûPG|·ãeÓn8ºWåu×L½òç§?åÆ(çÅ'ÂFЊ!©¸*…g$Û™§É¿¢¥°MXîw.|þ²‘'TVTüdØ1?vŒn÷?ùâ+ffŸþè8øËó÷)EÏ~ðå¨QpÖ)'<ÿú›F§ïºŒÜbÏa»ì_»víÂû« ?ošë Ø¿.\¸PoBãû? tbdqKè‰-Z´ÈhÄ·ÿoðÝïvØ»µé{‡‡ž³hÛ¸ äâŽe¡­/\¸Ð0ïmK=0>ýØÃI#ñö–$xÀöliúÞá±vaÚ“¾'‰²²2ׯ²²2ˈ~&¶c¢3S.–\Æ}•”"OXdèVqß½y7Sÿ¶ Ë}Õû®~{UŽ0èÈþ£G.++»hĉ/¿ürSq§nåà‘G±wîÞ½»òÍ–½j‡P#wÇ7õÝ»tîܹóÎ}û"ÚÈö¯;vìØÛ¥ŠöîÉPØzbÛ·oßÓ¥Šêw[÷&ņ‚/{¨Ï=´õo¾ùfo—žVëÖ·§KOÚó­x2±vaÚ¶Ÿ=ýGzÖ»ï® õ£8LxYT¤½«ŽªF¦h¼§tšdö÷浞“ƒDìôq·^¼ôÒ‹%%ÅÖ *Øó«»w×—ˆâŽiUN‰¯ýÂÏw“2ÀÑ Ewê» Ùä^•Š2Û„Ça^Ù®`‡Ýÿ§è ™D&¡jwlèðRR]J4ì*nøõ&@4´Ò¦åz¢ïÛY´w;’ þaHTÔ°Sk¬Wô&2Q5µâ½ûÔäÞÒoÿ£˜ISÑK»”~»Å>N§mŸ»ŽéÝpb®Å_CÏÙÚÙ…ô¬šÑzNå²3L²qõ²·ÿö¬ý«iš{÷îÛ¹s‡®:•Ù‹˜’Éd}}ýîÝõ𦖗wÙo¿Ž°tékcÇŽ×úG‚Àû” ”»[T0J)© s­ 6bB> æôÅ“'ÞÀ_'Ã0ŒÅ'K—ˆâND†a444€+ý€®ëM`§°Ä½¨ïUAÃ}ívIÌ$Q %‹Óa3ÐZj>žuÂo ÑÇ OÕkjE¥ y±=+a<±åÎ0 Óêö;¡ewShÎG4A!i¡ŽôàZÄʉÆi»TT’Ÿ†æÏhøðSò©ì*„e4Ñ*ÆçÜ1m“ŽŠFF‚Ì$*€âx€Ò O,î ôiêê¾l—f» ¦.ZÞਧDŽwLRL@LÝJ2éø¤÷5»e†aâoÏ+éN™™P$’Štú}Ð@Eï# <[$‹;Ã0L®‰P4IC%“"ÎJ IIP@± <¡Ø–ÄgÏâÎ0 Ó 2î·0pH@@¤taUÏ%Ï,î Ã0­Yk˜2Sª.™F·ýÞjRYÞý…Åa¦Õ”`X!Œ™<3è^° èpਂ‘òÌø»ôY܆aZGÜ}1¢?ÝÜn b(d¦ÞpD²¸3 ô 5z¢vKí P4yÚGØ ‹;Ã0L|ÖyðÛ¤9÷K 4J€h¢¢%\ï¹]4œÏa˜‚¥²²*âÆV"<ÐQ%3Ü9ãDÕ0ÙÂÜÁÄâÎ0 “›½o©`Ú^uö@B{_Wr_0Pш<Æ»‹;Ã0íÃ0n»íŽŽêÕ«ïĉ“¾ývOëÚìD€. Ô´g†ÒÉÜS/(3iêÈ!‰``R:7AÆxO¹ÌÃ0í•xð£>~ùå%kÖ¼WRRrë­·µâÉX©{0Ñ€ 3µâÔ²¯M ôŽ>©Þmã>µ¢ÉJìmŽ8qÃ0…L€‡ý©§žY¸ðOxLŸ>õ”S~róÍ7åë¼Pf¼«&¨:"–RÒrš“sWÇÇ-;Ý+ü*˜ Ó@d>{bqg¦€©­Ýä'÷[¶|=|øÉ¢«"¿–º×Þ6 Pu0µôŒ¨B¦ujž1ä7V@P6nÏ [î ôSºwïþüó>à€ÚÌ‘d˜ ¨u4uËõ¢ D„è–r×l* ï" &(‰@äUÃ>w†aÚ'£GŸÍ5×nÞ\«ëƆ ŸMœ8©uÏ2¬—˜„DZ—Iq,eré®2KÖKдÜíò@JžPe¦2aÂøAƒýâç÷êÕgÒ¤+~üãS[GÒ…×¶ã…uT T¬=42Ñï³~øP#Ó¯avË0 S¨xîâFEQ&N¼lâÄËZõV¸ ¦B¦‰ ˆ è@FÊz§ÐÂŽC"ŠÒH«û|0 ÃäÇŠw$“A4AH   ¦âgŸ#f*¦:H&$+wIX܆ab‘rW&/+¶±(mª[&ø^T“€*˜B؋ĀGôð@€(èã¸aqg†É¹¬ƒí]wyf@µßF0PiÄ"Añ¥«[½°Êe3 ÃÄd¶“Sî-ƒÚTÉÌt4QÑ1¡A`>¹³GZ¿™ˆª¬à‹;Ã0Lì8ŒwLÅaÌc#*IDrî#øÄ<º²A¦[cqg†‰Õ~GÏ&ÁtøSMÌ„>ÊŽ„)Ë]’IP%&=»e†ab¶ÙÝÕN 5µšÉ¹e}hÔds­Àqî ôeæÏ¨0$¡éÚT0“¶Wž¬XGL°§<+èý°}`!Ÿ˜A©øD¤L²dqgZŸŠŠCò¦_½-?mMž<5‘Hä­_\0.?m½ðÂãgž9¶ýõ+§£Hx†²hš¤¤\1‚~“t@€Œ¬ÛYÜS»a*ý Q&/)"½dǵ“¨ßþÂ+Å/9G!S<Ã0 “'0瑊ÉLˆ2)‹Þ9Z÷ÁY܆aò¦é¶aMéW&€a'ŠqÙÝnË<`X܆aò£ìnÙN`ú 6zc(}wÛï,î Ã01AÖ6¨`–’¡ÈëäI|ë~ìÌ^,î Ã0±Úìè´ß!’éšÓXO»ÝíeKÞáà Y܆ab¶Ü]¯]Æ6©fR!r»\ÈÏ¢wi:y5@,î Ã0­aÈg4<z‚ "¢Ì|k@XŒ;»¬7‹;Ã0L î|•Ñ`gNkÚ4I…¬”î„.#µd}Þ×Í0ŒÛn»cÀ€£zõê;qâ¤o¿ÝÓz†|D ìÅ¢F,J*e<1èÊŽÑÚdqg ˜íÛwÜwßˆéøŸ}¹s`ßïä§/eee·Ývóå—_©ëz¬ ­ÛðÕñG,n9þèƒ×møª@ï€ëöÀ~ôÑÇ/¿¼dÍš÷JJJn½õ¶Ö6àQj¶7¡f(*YQ/:¡ëw§ã™¦MÁâΕ•UÖÏ€G-X°èæ›gÅÔО½¬C"oý<øèc2gÎݱ¶²ûÛÆÎe%â–Îe%»¿mÊÏWæò¿ÇzÝžzê™Y³n8ðÀöÛ¯ãôéS_yåÕ¼»b­mÕÀÀ˜PÓß+ù<¡Ê"¶ßv÷îÝ ,š1cæSO-Š£¡Ž%Ú·{“ö+Ê[צL¹ò¬³Î9ñÄთ©Û±xW}C×Îì-»êâîcÜ3œÒë¶eË×ÇŸ,ظØn^×ü¨+AŒ„1 dàĪì¶Ü™¦S§N—\òë>XÓñ{R¾vö|ö(‘HÜsÏœiÓ®ÏAÜÿ°–­þ§¸eÙêþ ×}'H¯[÷îÝW¯^eOänÞ¼1OgƒÁöºèF¡tékÇ&ë5Zo’¿çÅ{HdqgÚõõõ<òhÏžU1ÿ´ã*^û_+×~½gŸ®´ù«oÿø× qwªººz̘_^ý̘Ž?êŒþÏ¿þÉß–±¯!¹¯!ù·å_<ÿú'£Î8¢Ðoïu=úük®¹vóæZ]76lølâÄIy:• r$$…I{ÙQ²{*â=UU58p%Ïì–a ÛoÛ±c‡£Ž:ê¸?¦†¾S^úÛ_¾dÙæÅoþ3©tëxÒ1塃^8ö‚ ~ÓÁún§Y—ÿèñ¿®ýãs@¿êî³.ÿÑ÷¾[Ön ×u›0aüܹýâçoÙ²åÐC{Nšô›¼Zî(ÕwtÔÊG²û%Љ0J8dêÄâÎ.y^ŸòÝ®~}vŸw†a˜BXáT·õÎâÎ0 §åì‚Ìo ßÜ.û̧È1®°¸3 ÃäÚr§t*ß`}'1õ£Ô2·ýé‚á.¯L§cËa×Lc IDAT&vƒÓ "‘BF =ö;¸æT‘Åa&~…ÐlP€ÔLù%æ"@gz mÑÚ­•³Ú3 ÀÒ¥¯å­­Q£.Ê[[O>ùǼµµÿþ%ykë›oÚå}8|ø)-¿“ÇŽß¥ï ‡Ê‚{Ý’KŠ0Ѥ95\â}÷©°šÞÌ‹˜˜Öç‚ Æå§¡ùóJ$yk+Ÿý:ó̱í²_ùl+Ç{*†Å½UjÀ[A3é RBŸÒÚöþþy"ÉXÜ™6A]Ý—Ü·ÕêmåÊh:ºÕ9cŠ#jd&-‰Ï¨6¢4úÝJI©ÉZ’ÖˆB,î Ã01É:ø'³,D*˜ ¤e=“I9àµûEŒÄÙC<¡Ê0 (ßæ˜>EPÉDa* æ>¦MùôR'wük¥T:B‡ d3 Ãä^Ó1c‡xЀT2ls\0úI|M’)Tÿg¯i"Bbqg†‰UâÃÓËh`"ˆ¾ ”¢=Ïx@l¹3 ÃäAè] š„$¤’‘ÝžDE"…HÃ]”/#êþ‹£ˆ£e†aâ‚2Ò :¿Š@Ef‘tÔLÍ$  ò$“‘ÿæ-w¦=`×fbøûjËR/7ê--."½Äl,¥¦$2 Ði¡“ÓèO›óèZØŠÀ>w†aabâŹÕ=@BJåK‚2ç‹7ðQ–ã€}îL¡1oÞÇR=oÞñ¶R__?sæMC† «ªªîßà¸q—­Zõ¶õVL;*+«¬Ÿ~ýޏì²ßlß¾£Uz—[6nÜ4~ü„þýöìÙûŒ3Î|饗 ýÆÈBÖAH–*ŒêcµgÒ=¤W(™ ˜ˆÖ¬* Fº0GœŒÝ2LAašæ‚‹n¸aÆÂ…O˜¦_C&üVדO?½è‹/6,]úÆÈ‘#î¹ç¾¸{W[»©¶vÓòå/-->ýw…޻͛kÏ;oTMMͲeÿûé§ÝtÓ‹/)ô#Ç®’½CD€¢‰ 9W¢Rô–ˆÅ)(Þ|sY—.å^xAçÎû¿ùæòøZµêíéÓ¯©¨¨PUµk×.§Ÿþ“gžy2?n™®]»ÞpÃu+V¬h•Þå»îº{üøKÇŽS^^^TT4`À‘óæ=˜ç£²²ê‘GD ’Lºrœ;S ¼øââ#Žèoÿ@EEEÿþýc À8ï¼QK–¼´mÛ6Ã0¾þúë;ïœ3`À‘íæbæ§wW\qùƒ>´pá¢]»v555}øáºñã'ú‘Í›bÕQ s»®ÿì ǹ3Âã/3f´kã˜1ç?þø‚8š›<ùò_\2|øÉÕÕ‡yöîÝ»çÎ} Ý\ÌüôîC~úéEË—¿uÜq'ôéóƒéÓ¯;ýôŸúÑ"BË`›¨è <ï à†Ý2La°dÉ Þ'ô£“NúQššcjjŽÉ§ó$Ÿ>™€Þå–C=ôá‡çÆÚÙ<ßÍuÛh÷I“.œªƒj¢J²e­}G@²þr“Ð[î Ã0±"ævG÷<ªSå T¬)TrŒ hϯ’ó1RKZ3¡‘öÀÀâÎ0 “/žÈ¯p˜¨¨º†AåQ2dx |`Ëa&¿Æ»±(™45A#OºðÑp s»³¸3 ÃäGßQÈI.¹7›R.²B|Ò­´'T†aòŽ'.ÝÕ@%5#Šä2ÝÓ‰Ü \¾t¬^'TY܆aò(êvm&r¹Y”Œ_Ý’iO‚0o_í¬ì–a†É¿Ý.–Ï!‰*¤C…Z©AŽuGžwOlq Ì5K—¾Æiu†?¥åwòرã»ô"ì¶²g" Õ½J‘i‡ÊXÀóa”{åÝÛ´ŠŠCòpÕæÏè‚ Æåçⶸ-n‹ÛjF[yCP2=ªƒB dTf»àIÇ€|Žá@««û2o#·Åmq[ÜV[n+_úŽ¢{œtT }+y H}ô~&{ ö¹3 ô¢Ðš¨d²9½ç KZ߉Åa&¿Ø%;Ò¾’¾§sФ‚âѡᎥK©#¡{4°vâPH†a˜VRyH¢ê.è®°ÆŒyî[,›éeX܆ar ú§öÅÐ}Q”r§š;ê¦f¦[Èòêîw†a˜¸¬òÐ1m÷¸°€)mÊSH#޽„Ô¿ÄâÎ0 “OÍ7k•*¢åp×Qñä{$+‘œo­Vr{`ˆ$<¡Ê0 “70‰E¦gRÔ“Íך%%²-y°'`ÅEP¢æ§f'›aqoTVVñE`˜vŠªŽ¥¤ÛZ™$fÿ²ƒhÒŠmýŽ‚Ê;yqH€ˆ¹e*+«~ô£SIðÐщ'žŸUVV‰?±^å7?¡ÿ={ö>ãŒ3_zéå¸å{̘ É­j÷1‡I òÓ¯=zöìÙ»wï~ýúqÄ?üáTSUUÓÕÛºuëu×]?dȰªª^ýû¼ðÂ_¿ùæ²vЖżyrHõ¼yÇÚJ}}ýÌ™7 2¬ªªºÿãÆ]¶jÕÛ±ÞðöÏ~0àÒK/«««Ëyôùç_}ô‡þŸ6`¦»7˜b5B±,9¬øtdFü9‚ÝÉÜIÒrˆå^ZZòúëoØ¿¾öÚë:”Æz5jk7Ù?ñµ²ysíy窩©Y¶ì?ýô£›nº1µÒ»t)»hoÞúµyóÆ?ûì³üãëÖ­ûàý÷ß9á„a¿ÿýq´õõ×_Ÿyæ9Ý»wöÙ'?ÿüÓeËþw̘ó}ô±Bo+õ×nš ,ºá† >ašf| M˜ð[]O>ýô¢/¾Ø°té#Gޏçžûòð·¼yóÆ¥K_¯ª:dܸ‰yÓµk?5jôµ×^s饷¾¸“ßf4@Ö˜¢Ï¾è÷»#ŠÆj©ÌÞ„ ãçÎͤ\˜;÷¡ .GË… ÕÔ ­ªêõãøôÓ ¹Š1ŒÛn»cÀ€£zõê;qâ¤o¿Ý““ÃÞu×ÝãÇ_:vì˜òòò¢¢¢Žœ7ïAë­ÆÆÆiÓ¦÷íÛ¿oßþÓ§_×ÔÔ”«¾Ìž=ëñÇlܸ1>·L@¿\MäöÁèúëgöíÛçì³Ç1gÎÝ£GÿrÒ¤ßtÐA𦖗—ÿèG'.Xð§´‚Ô^tÑ%}ú~衇=vëÖ­ñµÇÝøæ›Ëºt)¿ð :wÞÿÍ7—ÛÛ—.}ó¤“N­ªêUS3ô‰'žlyC«V½=}ú5ªªvíÚåôÓòÌ3OÆúW–ÒÄnݺMž|ùçŸnß<òèàÁCzôè™[¹xë­•—\2þÞ{ï:묑q·ÕSÞD%©h”*»§Z‹TE]v8d„)Uò‘|Ì,oBJ\ ÷ÓN;uçÎï¼ó.¼ýö;ß|óÍi§â¼š«þò—g?þøÃSO=yêÔkr~-xàÁ>úøå——¬Yó^IIÉ­·Þ–“îX±räÈ3¤oÝyçœ-[¶¬X±tùò¿×ÖÖΙsw®úRVVvÛm7_~ù•º®Çtëô+>n½õŽ.]ºüêWÆtc,]ºìì³Ïò{÷¢‹.¹øâ‹Ö®}íÚ÷=ôÐoœ_[qÜóç/;v Œ;fþüùööÉ“¯ºòÊÉ6|üÜsO¯[·¾å tÔ´iÓßÿƒ={öæç¯Ìfûö÷Ý÷ÀÀì-ëׯå•—6oÞ˜ÃV^yåÕ«¯žö§?ýÏqÇ+n£­f8d¦<‚Ž©ŠzIE!!»´®ž§D*JK¶ ŸªÓ"ŒwéƒÎ€œ7nܥТ8ÿ°gxà:t7î’üã¹uÕÀSO=3kÖ xÀ~ûuœ>}ê+¯¼š“+¿k×ή]»Ißzá…Å7Üp}×®]»uë6kÖÌ¿þõ…~ãƒ}ì±Cr8`DïWLÜ{ïý “'_îQüœÝ;vlïÖí;Þ;Äúõ7^2¤¦¤¤¤¬¬lÚ´)o½õV|måün¬­­]·nýˆgÀÈ‘#Ö­[o;¦KJJ¶lÙ²u붃úÞí·ßÚòoêá‡çöèQ9cÆ USsܬY³ëëëcê—ëê pÔ‚‹n¾y–ýÖŒ¿ëÒ¥<··âĉ¿¹þú‡~¸k{m…+;…+¿.ÔÂö-ˆŠ)Ç|hÅT{{çðh™sÏ={ÆϞ}ö¹Ï>ûüœs~êz·¼eʕ˗¯xï½÷㸩ú>úÇþsóÌ™3¼oåðÆ(/ï"~ ®ù˜5kÖž{îÏ;ìðÊʪ޽ûíܹ+¾¶r~7.X°hûöÕÕ}*+«ª«ûlß¾cÁ‚EÖ[=4wÅŠ·N?}Ä1Çûê«9Èwß©S§«¯¾ê•W–|öÙ?æÏì›ov?1¦~¹þ–?þøÃqã.™1c¦ýV÷îÝcx‚¼eÚ´éï¾»Úµ=޶B (ïcj(;§‹­¢×¨·4ß]K›2ÿ§(âžH$~ýë_M:ýâ‹/J$y¾JÝ»w_½z•}—äêÙjèÐcýf»uëVW÷/Û°í¸œH$î¹gδi׿ֳÚ/MS÷íÛg½Þ¹sgËÛz≧Þ~ûÝ;ï¼c½Ž?~ØŸÿüW¿w/»lâØ±cÞ{ïíÍ›7~òÉGD_[¹½Ÿ{îÏ+W.³¸rå²gŸ}®±±Ž8¢ÿÿøÈ‡~pë­7_{íŒ\š•ˆÕÕÕ³gßh¹[ãû+Ç•K.ùõ¬‰õ>ùùÏ6gÎ_üpÝøñ¬·FŒ8}Ö¬ÙÛ·ïØ¾}ûÌ™³ÎôÐ#ûöíûú믧O¿®… ýõ¯/,^¼ä¸OÓԸ﫮ºâOš÷Ý÷ÖÕÕ麱gÏÞeË2 ÅÅÅÅÅÅuuu-Ÿõ n+·wã‹/.>âˆþö–ŠŠŠþýû[Ãó¤IWlܸ)™L‘aä`’æ¼óF-YòÒ¶mÛ Ãøúë¯ï¼s΀GÆúWfS__ÿÈ#öìûbŽ“O>éÑGž2eÚ³Ï>×ÊÁà!€$&È?¨l_<ʲ½Û‚N²¶õEL&Œ4hÐ/~q~¯^}&MºâÇ?>5'‡=䃟~zÑòåowÜ }úü`úôëN?ý'Ö[S§NéÚµËСÇzÂ0eÊ•qôë [בm¿n¿ý–W_}½_¿þguNMÍ1-Á)+W®²ü q/M8è ƒžþÏÿþ÷¿Ï>û¼^½2dèc=>~*läȳwïÞ=wî±þ•ÙwÅÑG×¼óλøÃýyPŒ£ôÔS‹î¸cNÜëBd[&·¦Ëƒ‚ ºòúŠÉ€3K™H(¬zsè;PÊGƒv‚É<ÕP]ºôµ .—ŸŠ*Ü·Åmq[Íh+¾ª:*IL˜€*™MJQJ¦ (a&uE“ÀåRI~ræÁ¼íy"NÆ0 #&`ƒRl¢ †âN$“T6ÑÑ?;b&Ø‘dþrzs9· Ã0L`FÜMÔ(öâ(˜DbÀ‹¬9'JÑñƒè\Ü$„B§üe†É‹ÊK!Ÿ½È×2rþßµ§4’Åa&5w[â(픊1/äu¦£™I!æÊ'fçvGb· Ã0LN¡€uLHÿ8!9Ò–:!"Xñ’ärʃN“‰™IÕÕ&`Ëa&/zbqT‡ï $%°E“]°ÔÅbLÞ_Y܆arŠÓƒN[œvyê]”9ÐÑižû¤“®_EÂÇŸÇßÃ0LÎâÜû UWe¯ÖÑcy ít§£Ääÿ´„òH»à‚qy¸jóç?”Ÿ†¸-n‹Ûâ¶š×VÎŽEC^Ì# 3‘c‚=y”Π;ó¯×Œ×ò³úË‚Ûⶸ-n«-·•s(#¼ÍÀ6ÛѵLÕ›÷Ý£î-Ã0 £¸'QKk/ÊËZ£FfŒ[KD«_ȉ©<3äöéð„*Ã0LNh´êÞ¥R<*DD d–—’¥É[\! ûp¾©#¥µ›€Ørg†É¹¹^? €J†J¦ý+frù:R²'ÈPÀ„LU?ï9FM{dqg†‰Aß-ƒ<•@Fžãžt;C ‘AäðÁd†aà°kðeBãÓgˆ}î Ã0ñI¼ªiÙЈˆ¨8’·“Ûø¶ÐA±>%÷Ñ;:‘1Ï>w†a˜œ‚ß7ÙΑP¡t€#Úýà4êѪ×áöи–=‘õ²ÏÝELµ„ÚxÓÜ5¾hL<†;˜¨Š­šº;‡@æ'å]INBabt›õõ—V׳ÿÏâÎ0 ƒñŽ€:ª¹Wý)­Ñ©z×@ ˜:¨vÙët¼#ºRÈÌ;ÃL¸[FjAÄTœÏn«cÇGyä¬Y7TWWtCb[eeeÆ ={V×®]b½¯æÍ{øöÛïœ6íêñã/µ¡7ÝyçïW­zgÏž=}úvÙeãì’­ñ]̸ CÖ××Ï™sÏk¯½þõ×_í·_YMÍà±c/2¤¦ÐÛÊóßrÞ¾»+¯¼îºëNq "ΙsG«Û툊#c#ŽšÄÚF!¾† E$’Ñ¿`Oþ™p˽¶v“õãzÖñW¯~»¦æ˜I“&·ƒ†ì¶–/ÿ{iiéôé¿‹µ-Ó4,Xtà 3.|Â4ÍøÚ¼¹ö¼óFÕÔÔ,[ö¿Ÿ~úÑM7ݸxñ’v`rM˜ð[]O>ýô¢/¾Ø°té#GޏçžûÚA[ùÿ[Î7ßûœõë3Ï<·~ýúÙ³ol Æ{SXœ¤¡€é(‡vu½Ô"'RÀ#cÐQô:㯱}ï$O ß,·Œ®ë³fÍ>òÈ~ø‘<òh—¥¬¬lüøK?ÿü ¯¹‘[_¤ØÅÂ…‹jj†VUõúñG|ú醶յk×n¸nÅŠÖ¯MMMW]5µwï~ÃJío¾¹¬K—ò /¼ sçýß|s¹½½¡¡áŠ+®²›kùe¼ë®»Ç¿tìØ1åååEEE9oÞƒ±vÍuÄôM­Zõöôé×TTT¨ªÚµk—ÓOÿÉ3Ï<S£mÀܹó Ô»w¿)S¦655Åq øí¶; 8ªW¯¾'NúöÛ='¥óæ=póÍ·~þùŸþÅ-·Ü:w¥­Þ;ÐA´ÜS«Iúo¥hÏ,rBSGÍù)«x*¦Ý7n³]‰kÒ)i”fýUß³aÃg/¿¼dåÊeÿú׿cz\;÷¡~ýúÆýxzë­Uù˳üá©§žðÀƒ}ôñË//Y³æ½’’ÿßÞùG5qf}üyÁª€ T‚Æ‚ ´¸X¥€bÕ¢¨UÔ­gWE°¯?è{Ñ(Èt»®J[9íû"?ÔV«¢[_µ[T¤Õö´UW·@¶$z *¶T yÞ?&™Ì¯ B&ÞÏÉ9&3É\æ™ñ;wîÜç^»œœ]ýÑy÷ôôܶM³>&f}JÊV:ÄÚ·{§G’NlÚÅD°ž#¹˜Y Ì!anj<¡ðBqãe€˜t¦'â~âÄ';vdŒéæàà‘±Ýâ™\®ðõP\\zàÀ»¢F åäd¹¹¹2D©\{çÎ ZÔj›32²¦NB}®ß){SSSffVJÊVꙕœ¬zøðaî!H‡l @.·K¸OIyØ"½ Aæôp/ŒšÀB'$lx饗ÂÂæOssñª¸|ùÒ#GŽíÞ}þüE__¿E‹Þ Ï•OÊÄÄx''§ÀÀ)³fÍyíµ€Þo°°°(2rgaddDaaB())qÈ{ÊÜ«¯N´µím剱cÇ;VråÊÕ©S§{{¿¢R¥ÐIîß5k’°¡¬ì쌳<=ÿþ§‡æå½×'¶&‡††O“Je‰‰ÄøÖ­‹™{vèøñ^ÔÇñã½æÏsÛ¶Ô¾Ý;Cž ó©¨!¡‘;Ñ”ùŽ Ò%K0{î*¢±²/ œlޝ­“èZ^~!*JiŽ*`ë‰ÔÖÖFE­ª¬¼ c¶ÀmËR=T|·±×alF†Y’ŽM ˆ­¾!Ô!±åg:ªÔ¾”,ÔתB>_ddd=xð ©©)++gÞ¼90 ØVGùÜœ0¼ˆ:31#dCtÌb˜í•c‚9ÍöŒáÌ^b°âþ1fŒÇôé¡!!Ó†'$l€Qb2[C‚"¯ú—pL†î’‡±žU±€ýSÌ‹ôð¼uzÓJþ>W¬\IÍo@<ôæfÊËÆ m7:é#½c:Ì"XT€UœŽÕ;sTuqbÆm'‚‹%D¯ç–+`þ†tÑg …{@ÜDC8—…£Ã¨‹/av™vÁaDHò!æ`YAg(6ÁtT¾ª3¨bBtXÂîªjŠ­cc,‡Ó s·Ôzw‹ÃîrJ¸zÍŠ¹n îÊÇGˆ0Zb›qÜ B¸°ð Kå¹ÛNxƒÓñ®KõGˆ [}ÁXïú`;ßIDATg,>CØ…|Mß. I¤#Û¨(¥Fíðá|ë[` l­žÙ²èöØ­¬‰ye7¸â˜®HXêopÐ »¤»¡6<&„í³cÓ]»ÜFƒ¸ÀsÝú Òc¤ÝTû`ÎE€°åó½uG¬Ýw¹\A½¼½_^¶lÅ?ü Þ®VW׬\¹ÊÛûeoï—W®\U]]3ü>êåë;!6ö¿µÚfñ¬‘Å¿ýíï=úòË«/ž»~ý«~}»À,¸wýúWŸ}ö••—þ¹qÏž}b˜Ój›ssß›8ÑßjûõÎ;{**ʯ\ù\­VïÙ³WÔSQŒsž/PW¯~ñÉ'ß¾}#,lVrò–> Ï`!e'=õð“0Ûpð¾Š9[#¬ 6ßî£[©ô5öÅ_óÑGG¨ýÊÌL_¶l…Jµ¹ŸžŠ´@Qääd999!„”ʵ¹¹ïöÃÎÔw^ÂŒ BXÂù&ÜùJ˜ïð#FïTd®H÷Ä]­¾KQ«5›6m¾sçߣGnh¨Ÿ1cóv²÷ãáèèØÔÔèêêJ/ijjtrA½ÏÏÏÛ¿ÿÝýûsíìì22ÒÂÂf‹qL\\\Ä;àÔ)8tèÐiÓ¦îÚµS EE%Zm³§§7sÉÖ­¢ø,|Ï‹þ?ÖØØ8jÔ(êýèÑ£û¬›;Rîî£_766Š1˜>,**IMM?z´Ä:ûÕÔÔ$—4×Ãã©©±?žŠ¢–SÊŽ²··ïìÔõÍÉ„yoèš2ÆÀ &f® f.˜QSÆÐë‰ÂVÿ§h1öðçæî7/<88ÈÅÅåÔ©L!î=S§ŸÅOñ°²æ…@ÂbÇ (ÊË/DE)­ÓQl=S¶jkk£¢VUV^†1[ϸ-ËõPÙ•¸bKˆc‚.ÄXñ—ÿ°”Z¹ž;Á‚…l ¶ Z#ëÁƒMMMYY9óæÍž?0ç_Ƽ‚2†Ð 6›!‚ õØó–X€¸¢0fŒÇôé¡!!Ó†'$l€ž3Y7]1zåÌ,£nÓ)/¼ÞÂi4]˜ÁJþâ°re$5žWˆ Û.A:=²á{øÄVÁŒ$f¶;'Û‘]vR ‘Ä@Y7óIl6ûÂJ{Úy‚;O¯€° €e1›ñ‚9í¬¯cNivVMWÍ= ž;€%ŸØ g¥BñXèâ€9ªNË‘a¾ça‘œw£ÇmLsìÀX°¶ñÛDè÷†:ï!Dº˜çÄû Âq%ÏéMcáØ¹±H/1“ÛΨfÞWgmž ŒmT”Ò £vøp¾u l[½?ù°„®œ}LS™ÌÞ3v8½;l­3û‹lðÀNWìR¢™³Q±o?ÀF÷ _CX@Ì@$]0º.Ü^ BEcÈ“ÄÛl1wâ`-‘tÛ«Ð/ÆŒ¸@É_bšèÄ·Àéã ÏÀÒ`Ýeºè á&ìïámßaÂŒÝ`Ƹ ²Aܬì¿sJõJ´ é;ëA,/½°ç>1Se0LbË}ÇÝø ÓGwç…={æ%jˈ,ñĬOØÍšøÍ7LOMéúÁBuk86T‰÷ž{î"5Rx^`¥¼ù7Öéu„mƒ¹âoºÏ@t™i´A­á7eâyñænf?˜¥ HžèžÓ¯W^ñŽŽÕh4" †à­€H÷r¹â7˜u!3gΦÍõÆ®5w€gÒ!H{!üj¾˜óU“Î+4@%KrTŸ›ìŽßÁˆ<9,£VßU«ïÖÕÕ–—_T(Æ*•ëÆðÛÛÛ]¼øýñÂ…‹C†ØÃY @É?&ì{D¨®‘à é~*$ÆX&“%$l¨©©¡—…(^sç.øþû*QÇ¢¼üRhh˜BáRZz¤÷\·.&//Ÿþ˜——¿n],Ó˦îWľAaÞ+Xs<°®„ OLÅalÆÕ7Åb ߬ É}Kž~“VÛœ›ûÞĉþô’«W¿øä“oß¾6+9y‹¨£”°111¡ªêöñãÇnÞ¼Õû ΙÖÒÒríÚu„З_^{ðàÁœ9³é›ú–Åšg‚5Ç€¾Ó±f¬œŸ6Ùê1ÆuuÆpw¨2=MGGÇ'ŽÑsr²œœœBJåÚÜÜw-îÕ2±³³khhhll5jäîÝ9½·%‘H”Êè¾vàÀA¥2Z"é㬋'}¬ä„é£?A©99‘ˆUòWpËÌ"†VÄX ¸»1wµúîíÛ7”ʵ©©éô*J‰BöööºÞm‹~Ñ«òóó**®¾ùæ‚ÀÀ)çÏ_°ÈÈ/Yò§ªªê?>^]]óÖ[‹-u@%‰NÇ N×+‡ÅÇ€g3FÃr¼ ÝcIxæyâmÀô¸?…¯:|øðµkWóÍ·}20&ø}øaÁßääìܺ5Õ"Û4hÐêÕÿ•œ¬Z³fÕ Aƒ,õ§º¹¹VW×0—TUU9’zokkÓÖÖF½oiiS²žwS¨ŸØa‰É(EÀ«܃˜{kkkAÁãÆõMJ_\\|míÝŽŽBˆN×i©Í*•küñ‡èè5œåµµµ=ÛfdäŠM›6ûíwííííííß}w#9yKdärj­O~~A[[[}}½J•ç? Äp ë_‚Ì8åa, Ûì\‚™öÌùÿ\óä)bî/¼0dÒ¤Iï¿ß7±à™3g®ZµF£Ñ(Šýû÷Šm.6V9þÂ_ý­ÏTcc•ööö[¶l½{÷G„B1vÙ²¥o¿E­Ý½;;)iKnî»...±±1Ÿ~zþ+ÀôØI·|vB8^·°¿NÌÌ2³” „°uBÊË/DE)­Ó±hÛ‚6{ð,cè¡ê7SHz‰°&›é½Çn¹j˜†Š ¿0á¡®BUHqÜwnùFöäSN=Þ¬%­:ÃmÏD°€*„Ÿê*Ð-°@Є; 3¼vvTžÑ7•`ªûž±væÝ †rBÿô@\«?ªIEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_03.png0000644000175000017500000002515011563552731017146 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ 0G¢2t IDATxÚíÝy\TõþÇñï 3,²‹[ ‚J))*.€f¢mzÍJÓºæR™÷ç–[e)®Üîµ2m1+ofZné-µÌ´\pîVh‚; l30ûï£ÇiDÖx==læð3g}Ïg¾ó3Bp| !„ÕjeC@m¢’þ—‘q¶|ûíÅk¿Ob;€#†»D¯×ïÛ·¿¨H_lS‹ÅT?<<ÜÓÓCž¸öû¤°Î±lGpÜp/(Ð&%í}ê©!¶ovÚXsrr;QT¤Œì`›ïjÏzlGpÜpBøøøôîÝÛ6Ù­V«Åb1›Í.œÏÏÏ_½zÙlйUïkóÙŽ¨}~^±HûÜËŽ9ÿª^<Ô¶p·‹u«Õj6›¥pwuuó÷÷óòòºxñ¢mK*w8)/wÍøžÝîkÓ0ÀWq-¯àÜ¥«¯½ÿ…mï¬ßôM;VÝ2Tpþ%=|ûÒÙòí¾ÿ˜]âùïâòìÃqvéàãåqájöÊ-?í>ú«¢M³{â»vˆläïc6[Î_ÍÞyèÄÆûÌK×·êæŒ2…»T­K™n±˜%žžÑÑÑiiiJå_S¹Ãùxy¾;et€O½w—¯8¸g·Âb ì±Ç\.žÒù4©†#<ö¹—½³~«øü‹}¸4óo¾ùF¡>w8/°U±=tÀ“}{._õå–Mÿöè#3G=3=qqòoã÷ûa÷¾¯×¯ÍºpÎ×Ësذ§Ç |ðouâÊMB¡¨ÈÒVÝœqçp—SÝ6ÙåúÝjµ*J*w8»1O>|OƒÀ>Z¾û‡m¦€¦VßýY–ï¯rQ¹ØÒ<ðÀÞiàï{1óÚ’¯¶ûýO!„B¡Ô«ë£1QA~>×ó þûËÁµ;öHŸNI%ó;k¾Ò·G ¯wÆ•¬ßìŒ éÓ¹½·§û¹K™K¾ÚòëÙ ¹eßÌV !„ˆŽÛ%¤a`nî³-»¾ßwDZ€A½º¾øx?«ÕšS MNýmÙÆíÚ¢²œ€zÏŽwlÓ¿G”bûæ ÀÇ2þ®P í{üÏÿïß»]úŸÙ+Àâß\§R/ývσ}úôîÞeÉò¦€¦ÅÎJZ÷Öm}²O÷ŸzýÆÏ)v¥Ê1gTf¸›L&›LÿK¸[,Ö²€ƒ‹Žh%„Ø—´[ïYß \…N+„B!< ›Cº]»vc§ÏêÜ*dæŒi“Ÿê7lJ‚ÙÕchÿ^/ Šß¶k÷Ç~0xࣣ†5åe¯ÞyàV烟ë˜)3;6o4û™s^úíÎÝ#ÿñrdËàY¯ÏœöôCçÍ3«47b÷Üá¼ÀVƒúô˜0lÀþ”ão¼>SaÒ}zضìóFB¥°Ž™òúµ³¿ÆÄÆN?^eÐÎýtƒPºÜÕ XR7ÕÐ*5î:­¢eË–Šëô…Þû!„0…ÁØ>¢µ"++K©ÍÖküKy¢V¾®£&½b¾~Im1õ2²Ø•*ßœQ án6› ÃÍX¿U¿KÿZ­«•ÊNÏ×ÛK‘››«l¡vq6ýÔ¶Ô_|ñ…Y¯Øw±PѰA]¦¡qÄßè!„ظze¡ÒmÝá³C‡Š}ã6ýð“Ù»ô¨U«V™Í®³ÌÒݯV|d4»î»bB4jØÐC{ÅÐ8Âö zª_œâÓ—æh‹LÍÿ7ÉMX”žõ„kw&«r3Í-·ý~m‚#Û{ê?16»«°¤6NþÞ3²mÿþý×Íܧ»ÂÝÝ]eÖÛ¶oà;éÙÁV«uÅŠB¥.ýéV­Ze2(Ì÷ÜkU(KY©rÌ w«Õj6[L&£MµnºYµß˜BåŽZàZn~¿¯¿¿ÿ™¢"!Š„±Ï½, A±í¤ÎÎÎÖú‡Zóó¤Þ…Q¯×æúy !–/_.Ï-((H™{Eçrcˆpnn®Î?Lz”"''GëfÕØÎÄö ªïç#„¸råŠÖ'ÄZT(„Ðkü„6¿}ëÐуú‡7öШ …¢^½zÊ»‡—»rOüxµáÉø!C†<û¬Û¥%V‹Üþá˜.ÿ:@ãæºxé{û““ ½›J}ºk×®éüC­:­¢¤•*ßœQ)•»Ùh´ wÛnK‹À‘í9~êoq]ûôéóÙî“BåVÊQíVÏÏîO™×sø=óÌ3999òt¥ý£|ÿÒò×»¶-Õžõ®^Ëmè× AƒB·Ûf³_ú»¿·×œÄ9°_©6lP( ‹Ùîáå®ÜB¼ùÕv—>v)Ìm¼dÉ’ÔÔT¡T©=ëùûÔ›üôcÛµüýÏŒ¥ï¼u&ís@3¯—;=—¼¹JZ©rÏ­Ü-³Ñh¼™äf“Éd;lFúÜQ|¼îÛÍ› 2Ääºù›ý©Ù¹7ÊçÛj»#\¯Í_÷ýÏÿ÷ôÀ#F¼½~‡ÉªˆhÙìɾ1SßZ.J}TIwõÚüµßý4aøßÆŒ³`å×f¡1 ïâ/¾B(„U¡ËÉ6û?ýÔ ²,^é•ûí£ã'ôé×ß¹ºªþ>z¨Þ`\»v­Q¥éÞ.lÒ³»º¸,[±rë¦ F¥[‘_S³ÂMÜÍs»R½;w(÷œQ9•»îf³Ùl6Y,f‹Å"|§rG-`bÂÛ+žèÒ:6ºËЪT.º"ý™ó—Μ:y{emwÀ³÷¨U¯{¬W·MKb &óÉ´ôMÛwzi¯ƒZ”ò¨R*÷-ûY Ú½º¯{{NNîóoô4ä˜ü‚ÿùÙ×ãþÖ{þüùÙ¹ù_mO*éá·¯í8wi@¤í ¶£ãÏ^Î^1g²w½z¿;ÿjÂÜ?ÓÓ­Âg}Fúë Ï=ûÂsÏÊ,eÈüíËSìJUdθ+7® )]8,;ûÚgŸ}>qâÄœœëF£ô™ªÅd2&«õF²ÿøãO Ô<øqéñÑýžàÚ2pâÀju+¼®Òç+Í…°Z.•E¥.ôj(… Bî·»ëZ”£.ÊU˜ B¡0«Ü ~&W;>Êö®ÝŸÜôy®…ו&ƒPºè= jo!„‹A箽ª´- ½»¿»öjI·#ýÕVIrÓç©uÙ ‹Ù¬RyÖ—FòÜþpÛ™”òŒv n_©rÌ•î³gÏqw÷0ô&“Q*Õ¥Q‘RÁnµZõzýˆÏÆÇ÷•ým¯GØŽà¸Ý2þK–¼s·³ Ï¨;¤^{;\âÆÑýžŒï±öûŸÙŽ@qO»N‘¡ì&z qäÌ%6ŽCùK·  vP² €pP̪ÁÁÍÙ.PÛÂ]Áç«àÔè–Â@¸w᨞p ­Ùõ©ñ€ÚîD*8”ò\Ò.ÊÓÓϤ§Ÿ©ŠüöÙ;P á.:ÛVUuË˜ÍæÄÄ7##;µjÕvܸñÚÊ]î;Î?$$ôƒ>ŒŒŒjݺݔ)Ó ;á^QK—¾âDê֭ߦ¤Ôh4 &Vÿü““ìØñÝž=?_½š¹hÑ;ìluG1?ÖܼôkËÜÞç.w…Ë7¢£{®ZõŸ°°0!DVVVß¾¥¤¨à»ùéJ™¿í’üòË®fÍš !Μ9;tè°ää½ìouDUõ¹_¹r¹W¯o½†(•ò,râ—eþÁÁ÷Ü|THff&;á^QAAA›6mhذa Î?#ã¼T¹gddÔ¯_Ÿ  î¨ª>÷áÇ͘ñê¹sé&“ùÔ©ÓãÆ¯þù'$ÌÍξ–0gàÀìl„{E½ôÒ‹QQQC† kÕ*|üø‰ýûÇWÿü;wŽêÓ'¾[·˜€€ÀÉ“'°³Ôåù@Õ)ðu'uYå|CµŠÒ¹ØéD6TI¸WO¼âPnµö’¿¼6 Ü„;€p*f´ÌÊ•ËØ.àÔŠÿÛj[å.„¨ßP½kÖ¬®«7iҴ˗ϳ›î·DGwc€3b´ ÔÉpŸ˜ä¤ÿ@Uâ%׬Y] ºeºvíAŸ;*÷+wçBå8”’®àªsçKþ.žÑÃéÖÊ—ÙÁO9G¾Ê&—þwŠÃŒßÏ©ë•{LLÞTîÕÆZNúúDµè ;HÊôôô3µc8ËZ8VåÓ[ ELï_~ÙIå^= …³ŸfÅ–„!!¡ÎR-–1/œ±òµ]æÚQ¹;ËZÜ9Ü'$&UOVÚìÖŠå{µ-sIç§ÓÄÎxÖ•žìr©è,ù~Dž䈣½qpwî–©¶d·Z…Õ**¥†¬‘d—º/¤~ Ç?¥Ô+én­yY’þJ,¢VBÑç.%ûšÝ*B(„¨H·L5÷¹Û&»ÔÅáù.÷§;~ÇzIelYN3òUô–Q*‰öЪù>wÛd—U$Ù«¹r—“]NL…B!Å¥B¡pØùôô3ÒrJwyQëlvÜñO첚­Üü#â®ÜoOv…¢¢É^•»]²Û滳ÔïήV^¡:=ýÌíÿÙM§+Ã*wG^¯šìs¯¢d¯¶Ê½Ødw¢|—ŠwÊvTÃ{Žààæ%½ ;WÜ\:ëm‡xR¹WS²WOå^J²Ûæ»Ôõátõ»··¿··?i…»:#J‹9…B”0âÖÉÆ¿ß\ǯ‡j¦Ï½J“½*÷;&»TKm¿çýöÅóMõB¤‡8G9/] ‰x­ñšýöŒ–­`iºÕ,DFÆÙb£Ü)ÆÚ­ˆƒ/m TîUìU]¹×‚d/éìºq#=T‘‘ãDÅ;¿ YãU‚(’ûq‚c¾V•ôºUöfŽî•[WC²Wiå^;jvÛ7ÂòHAçêv—[. JïÒåC…ê<¨ìdH_¡(¶ÚuÀcÏöõÆö_»)©Y]¬Ü«'Ù«®r¯5½1·Þ/ßü˜ë/ß9#õÌäå]sŠ|ÿùçŸå|·ûàŽÑJÕ¿GJÊ÷Œ’ y§X;éX*eEMõõ¹W[²W]ån76Üy“Ýf‰¥»mM¤·]ªãââJº¶Œ#—‡¥/-/޶wäãÇYÞæVëµe !cÕ%»¨ÊkË”’ïÎ’ìr7EpHs!„°Š`Ñ\þ˜ËP—ñ[‚Ž|NÚ.X­¼4®S¯”ÝÂמËTJJÊ“FCUi²‹*-#wÒš½¤OºJùÌÁGF–þÁ]IÕ1P–2èö—%g9Šj`´LU'»¨úqîr¾'$$$$$(ŠÙ³g gû6PFúY!„PÜyP—oª¯48ÒÁ_±ŠªA¾£rßpP¹S¶ !~ùegU'»¨–o¨ÚÖïR²'$$8Q²ßütè¬ñ¥]ÏÄ GF–~6’ï¸Û3ÅŸêës¯†L¯ôe._o€sÕ#Òm©çºt®¯AÖ¦—gü(²ôÜYVáÆõOlߘKß÷[³futt·Š?ALÅ~S©‚ºvíqùòyª»}ãYlñî,ChÊš {g³Wé)㪼ϽF’ßP­Ü÷é!gjA² ›®yö{õcµf³Óç^“ø U€@¬ãâ—˜¨Ü€ÊÊ r¯þ:šÊýn1:=*w*w€”•{M r'wj ‡ý(²ÖìýÚzS¹•{Ù˜ÌÖÕ[~ŸºhïÌw“L¾`;«].ÌzïàÄ& !²sŠ–oøuÚ[û^þמ¾JÍׄs—º”©“Ú8qUºq)K;wÙ¡j«ÜÍfsb⛑‘Zµj;nÜø‚­ü ¿|ù']ºtkÚ4L‘žž>rä˜ððˆ-Ú þ÷ÌÌL©Ù®]?õéÚ*:ºçêÕkJŸgÕ)ßb”ÔÀd2Í™3¯C‡Ž–/ÿDØ\V© éYäÿ¤‰z½~úôWÚ¶½¯mÛû^ye¦Á`(}zHHèçŸѽ{lXXë>}â““lذ1.î°°Öýû?rêÔéš: oß¶ÅÖ•!!¡|ðaddTëÖí¦L™&¯W V»¶»£ŒgGHHèªU_DG÷ mÕ¿ÿ£ÿûß©RWV¤äã¿J*÷­»Ï茳ÆFMuÿé9¶ʸ\0md‡w¦÷B,ßðk\T“ùã»ÌßµA€ÇÆg…áÍýÒ2ò„×óôv¤Œ!DZz^›æ~ÕV¹/]úþ‰©[·~›’rP£Ñ,\˜(ÿéøñãÛ¶m9w.M1rä˜Ñ£G9rèÈ‘ƒ-Z´HH˜'µ™4éåÉ“':•º~ýWÇŽ¿ã<«Hù£¤o½õΩS§·nývÏžŸÏŸ¿ þúËjÕÐ5!ý—˜¸àn\ªè_ÿZtåʕݻwýòËÎôôôE‹Þ.}º"))iݺ/SSð؈#wìØ¹zõªÔÔ£ýúÅOŸþJMåíÛ¶$ÉÉvìønÏžŸ¯^Í\´èï,²Ûûe9;„II{7n\—šz4>þÁiÓf”r¸²"å ÿw¾ü@9®Ó2ë½ÿ÷ô½~îBˆÌë…ó––æ0!1iî?:{{¹ÝþƒÑ2ûýƒ &tIýãÚ¡“™#´Þ±ÿü®ônÖ9¢Á6êÔ.(¢eY/\%/sù.?ÝsÕªÿ„…… !²²²úö}(%å€ôZ}èÐþ   ÛRXXÝãèÑÃBˆ®]»¿ðÂó}û>ؤIã;γêÜÕbÈߨ.©A—.ÝV¯^jWõTgpRÒžùó×­ûÒËËS½víšæÍ› !ÒÒÎ :üÀ½¥L =vì°ŸŸŸ´¿Z·ng{·]»ûΜù½F‚²ômk{ã—_v5kÖTqæÌÙ¡C‡%'ï­ÙâÝî2ôe9;ìö‚¼Ù‹=\Y‘rÿ*ù%¦ÜC€¯»t;ÀGcû'ÛdÿóBþæ]gÏ_)Êsé‹-C|ÖoOBJÍ|ú¡–;\èÑàìÅü§nUm•û•+—{õzP¾k{õvÛ]ž’rdÁ‚ÄÔÔ“:ζٲe,^¼dñâw5MB¬øø¾¥Ï³Š”o1JjpõjfÓ¦Mk0J~ÿý÷×^{}õêÏ¥d—^{BB‚¥ÛM›6ÍÊÊ,}ºB:…îîîvwM&sM­ZÙ·mpð=7(Dîpe9;JÚìÅ®¬H9ÈÇ•\ÒÇË-;§PªÜ¯å•ÔlŦS{7 õW»¹èæéoíB¨Ý\}5GNe©Ý”íZøoKJ?ùǵú¾7WeÙ ‚W… Ú´iCÆ Ko6v츙3_‹‹õòòÒjumÛÞ+Moßþ¾O?].õ¾M™2]Ú»eœg%*ßb”Ô (¨~zzzhhó9Ù²³³Ÿ~ì¢EÿjÒ¤‰<1000#ã¼Tɦ§§Ö/}ºÃ*û¶•×+##£~}‡^¯’ÎŽ»:\Y‘rÿ*ésïØ.èëgµ…Æqã%þ„ÁhV©”*•òZnÑš­·Þ· õÛôãÙ¨ˆ !DǶõ×ÿêwW PÁÊ}øða3f¼zî\ºÉd>uêô¸qã‹mVT¤W«Õjµ:##CîqBŒ?1-íŒÑh´Z­f³é®æY‰Ê·%5<øñ7Þ˜}éÒåüüüyóÜx÷ñIKK«†ãuÔ¨çÇÛ©SGÛ‰>úðœ9󲳯eggÏž=gÀ€GKŸî°ŠÝ¶ÅJH˜+­WBœÖìb—¾÷K:;îêpeEÊA>þ«d´ÌC=B<5®³Þ;˜øqJX°OI͆=ÜjÓγSí}oMjË[?ôÓ¦¹ožÖСM î×óômî2Ü+8Z楗^ŒŠŠ2dX«VáãÇOìß?¾Øf‹½9wîü6mÚ úLttWyzïÞ½GŽݺuÛ /~û®æY‰Ê·%5˜4iB‹-âãêÖ-¦Q£†7‹šyd@5Œ–II92yòT»Ñ2Ó¦M ðïÙ3¶gϸFN™2¹ô髨m[¬Î£úô‰ïÖ-& pòä 5]Ò–¶÷K:;îêpeEÊA>þ«üzî5‹ë¹£Ö¨Ý¿¦‚JÇ7T N†;ßP*w*w JÐ'*w*w„;•;P¹S¹•;•;Ô€*¹¶ •;PëMž9ùÀ† ãâ kÝ¿ÿ#§N–š™ÍæÄÄ7##;µjÕvܸñZùáË—Ò¥K·¦MÃJy[ûöí—jÞ´´´þý ½víz—.ÝÊXçäätèÐ177×vJddTnn®<‡b—¶gϸß~û]j°aÃFéÆéÓ¿õìW¹K ªÂ}BbÒŽýçg.Ižºhïê­¿›ÌVyú®f½wpâ?“„&“åËmL{ßô·÷}õݶͤV«øæ§?_{7yÊ¿÷þgóé"ƒùfvX¿þñÌ«‹“g¼½× Âæ7óìêwm¡éÕÅɺ"“í”™K’uE¦ÒŸeî²C—2uRƒ'®J7.eiç.;tÇÕë­wN:½uë·{öü|þüiâÈ‘cFyäÈ¡#G¶hÑ"!ažÜ>))iݺ/SSð؈#wìØ¹zõªÔÔ£ýúÅOŸþŠÔféÒ÷OœHݺõÛ””ƒfáÂDùáÇß¶m˹si¥?‹,:ºkzú™÷ß_Ò«W\zú™„„YO>9¸ì…°¯¯oÿþý׬ùJžòÅkàãã#O)viccc’“!.\¸øúë³ …û÷'ÇÅÅVî¨ÂÊ=-#wúÈûß•W`ضûœ<=ãrÁ´‘Þ™ÞCñí/çr ô3Ÿï4ó…NÙ9E[mšI¶ïÍȸ\0õ¹óÆwqS)¿ùéÆ%º¾Û“~)S7í¹oŒít=O/÷±,žÑî³ÅÓ]Õ¾uÀ¾cWä){^¾?¼¾‡FUú³„7÷KËÈB\ÏÓoØ‘f0Z„iéymšûÝqÝ7lØ8wnBãÆ|||Þ&îØñ}·nѦ^½zÓ§OIJºõ"”˜¸ qãFîîî£GÔju Ì•î>ÿüè'NHm¾üríœ9³5jèååùÊ+Ó¶mû^~øë¯¿æïïwÇg±“”´§GîBˆ½{÷õèqw=T£FX¹r•ÙlB˜Læ/¾X3zôHÛÅ.mllÌþýÉBˆÍ›ÿ«V»mÙ²U ÷ØØ˜J_BUî÷ ­çéZÏÃuPŸÐC'ou ìÝÜÓÝUºòkæ ›Í0ìðÉ«v3Ùüòྡ¾õÔ7—G{5;v*[.¥0Ì×[í¡Q ês‡·êqQ“R.Y­Ba±X÷½Ü«s“;>K›P¿?2r…‡ÍT¹(žÎBü‘ž^†p¿z5³iÓ¦vSRŽ üT›6!!¡­[·»~=Gþ“Ÿßyº»»ÛÝ5™n¼Y¹rår¯^J÷ßß9;;[~xPPPYžE&Ídõê/çÎúý÷ÛÇŸš”´§Œ;·E‹aa¡ßÿƒbË–­:ÝߤIcÛÅ.m·nÝRRR„_½éßÿ~síÚõBˆ#GŽtë]éKà®ÜÅ%|Ý¥¾š<­Ažîíå&ßÎÓo6«ï§ÉÓíf’“o˜ÿQŠ|W¡¸q#·@_ßOSÆ%iàäï~ü·¬ö­œÊjÞ¤žŸ·úŽÏÒ2Ägýö4!Ä¡Ô̧j¹óÀ…Î Î^ÌúáVw|Æ  úééé¡¡¹ÔûرãfÎèW?’ ûIDAT|5..ÖËËK«Õµm{ï]mú   M›64lذôfey–ôô3ÙÙ×ââ8~<åôéßFz~ÏžŸïöP5ê¹¥Kßè¡~Ÿ~ºbÁ‚¹eYZOO-[¶zyy=ð@ï·ÞzçÇw6kÖÌÃã*–@•TîÙ9…7näy{ºÛÆÛÓMn–•SäíéjßÀË-a\g©³eñŒRgŽÂÇK•STö…‰‹jüÓÁ‹BˆŸ]ìÝ¥IYžEíæè«9r*Kí¦l×Â_o0ŸüãZ}_›ë7ÂàÁ¿ñÆìK—.çççË£³‹ŠôjµZ­VgddL›6ãn7ýðáÃfÌxõܹt“É|êÔéqãÆÛ¬ŒÏ’’’Ò¡C{…B‘’’Õ±‡Bll̵k×W®\åééÙ®]»2.m\\Ìœ9ó „8pÀÌ™³Jê“©ø¨’pßøãÙ1_kܸãL§võ‹møõÎ[Íî·oÖ½Cï¾û=ëz‘Åb½”©ýÏæCG:ߴᇴœ|}‘Þ¼içŽxêê5]±OÔ¦¹Ÿ¶Ð´;å’ÆÍåž^e|–6¡~›~<$„èØ¶þúÒÂCýʲî“&MhÑ¢E|üCݺÅ4jt£z]´è͹sç·iÓnèÐg¢£»Þí¦é¥£¢¢† ÖªUøøñû÷/¶YŸåðáiˆááÃG¤äÅvŒØÞ°£P(FŽüû¬Y /¾ø|Ù—6&&&33ó‘GB ðèåË—K ÷Š/!€²+ægö6¼çöë¹OHLz,®Ù®ƒôsd›úOƇ©TJiºížF“eýiGÿ—%„ˆ ¯?øÁP»f«øqÿù½G/å‚ü=úuîÐ&Pa6[7ï:{èäU«UôëÛ©±bÇþóÛ÷fè æb°ï9ryÝö?^|2¢Ms_y!K–óW }vlî?:{y¸æÞxïÀÔç"›yÚζgÏ^ü“cÚµk;?³T~¸—û+B«xùͤ·§;ÇèÂpêV·L¹]¸RP¯„>z€³†û;Ÿ{ +¿Ë Õ§¬C!+rÙ–ES»³¡ ¶UîÂ@¸nSÌPÈààæu|£0Ò1qde§"ÝÀ‹.PWÂ]TÁgª }î@¸wá Ü„;îÂ@¸wá„;›wá Ü„;€pÂ@¸wá Ü€pîÂ@¸wá„;€pîÂ@¸á Ü„;€pîÂwá Ü„;€pÂ@¸wá Ü„;îÂ@¸wá„;€pîÂ@¸w Ü„;€pîÂwá Ü„;€pî@¸wá Ü„;îÂ@¸wá Ü P± Jéçç§ÕjµZmjj*áîÄžxâ ???«Õj6› ƒV« ‘RþСCl"„»Ó3fŒËMJ¥ÒÅÅÅl6[,µZíááa±X,‹N§kРANNΞ={ØbwG7vìXµZ-eºD!ºñ‹Åd2) ©}÷îÝÉw„»£'»»»»F£±-Û­V«m²F9ÙÉw„»s$»Ä¶[¦”dWÜD¾ Ü=Ù5Z­V©T*•ÊÅÅÅt“Á`“]¾áééIý€pwD/¼ð‚m²{zzzzzJá®T*åd×ét·?Öjµº»» ƒÁйsçp$ ÜcÍU*WWWF#'»———T¼+ )ÜoOv‹Å"õÛ(•JÕMFwG!u¯«T*)ܽ¼¼äâ]a2™ŠŠŠäÆf³Ùl6+m( WWWWWW•JÕ¾}ûcÇŽq0 Ük˜4ª]ê^W©TnnnîîîR¸k4«Õj0”J¥Õj•:g¤¾;RÙ.å;GÂÝ!Êv)Ù¥µZ-•ðf³Y§Ó™L&½^/7³­Ùíòpàhêè…Ãì’Ý6¾åÏT%¶ã#åX—oÈáÁÁ€Ê½æI_S2ý•^¯/((ºeÌeµqëµQ©¤gáî(lS[NöÂÂB¥Ri4ÅÍTM&“ÜÌb±H¯R¾K7¤‡KÑÏÁ€pw¬p×ëõZ­V*ç]\\ …ÙlÖëõ………rÄËn±a›þLGísÿè£äP.**ÒétÒ}óòòòóóóóóóòòt:N§+,,,,,4™L¶•»ô¯m•;*w*Þí®STT$CUúkaa¡^¯7RˆÛ•í²“'Or0 Ü"ÜF£Ry뽋Éd’GÎHán2™¤X·ýWí²çH@¸;Ng›ìR¸ËCm»×ox¹—ûÜ9’8”ºûÙ+W®,((ÐÿUQQQQQ‘^¯7 òDÛL—H¿½WXXh0è“@åîXNœ8qï½÷J·­V«í¥ÄÍ_b’É/%»ülaa!‡ÂÝ9rD!å»Åb±».˜ër»œìr¸ëtºÔÔT#„»ƒæ»»»»ÝuÁl“].ÞIv„»3å{hh¨Z­–®çn×3#}p*õ¶ËƒâIv„»sä»···ôc{éR¶¥J·õz=É€pw¦|ˆˆPÛBØ%»Ñhdl ÂÝÉØÖã÷ÝwŸZ­–údNœ8ÁÆ@¸×Çg#pRJ6îÂ@¸wá„;€pîÂ@¸á Ü„;€pîÂwá Ü„;€pÂ@¸wá Ü„;îÂ@¸wá„;€pîÂ@¸w Ü„;€pîÂwá Ü„;€pî@¸wá Ü„;îÂ@¸wá Ü€pîÂ@¸w Ü„;€pîÂ@¸á Ü„;€pî@¸wá Ü„;€pÂ@¸wá Ü€pîÂ@¸wá„;€pîÂ@¸á Ü„;€pîÂwá Ü„;€p€:êÿª7è”þÕ|‘IEND®B`‚ghemical-3.0.0/docs/user-docs/images/modal.png0000644000175000017500000003605711563552731016132 00000000000000‰PNG  IHDRgîCÍbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ /$luE‹ IDATxœíÝmˆç'ðm¨‚Tú@Õ`[Øà6x†õOЂÇäÀ#ð²R ‰œ…œs »vîÃÚÚ…¬Ã}ØõbÏ6¬¢ƒ VàL&FMÀF°˜HÐ ¨5tAú><]555U]UÝõòTõÿBÓÓÕUO¿Ìžy^øáoÇʽ=‘<þKÙ "¢“ÎDDb8Qe8gWàœ])»…h–]"¢¤©Œ5g"" ±æL‘†ÿþ6@ýæK.ÉQYüÜrQÎ,®‘äþç™åó™öúE•-ª¼ÁsEÝVþà}aåŠz,¯IcjÐ¥„sÜ›KåŠú)KTp ÿýíÂ>;E\'¯_2i^¿¸×4,\³x’>¾ˆPŽûü§y®³¼Æ®ÂÃyžÂúŸ&é‡+ê·xð¾¨_&ÓÎVÎyö\‚å »öظZMÜëõ¼fuži¯IðþiïCš×/ìvXyf©|øãÿy˜õ3e¨ò6ëvÖº¢kðE™µ67­ŒY՞㚌ÂÊ5MÚšgÕ% gY_ˆ¨v:ĵQÆ‘é¹ä¡Šm%1ïû^GY½ê7|4Z£ kÎ+ªY,Éç±Ð6ç¨ßœ³ë´¶ÀY?«õ~-¢È6ç฻yL먒½køhXvˆhE†sÔ,Áí¶3-À²±ÐþšYY!®žR½€v¿vkÅÁàŽú¾ÿ>ÿýþsÇÝžvî¼%yÜ÷Ñ=Vö_ºD²‹ ç¬C8­`hO ñ´Ü€ ÑiÖa_O;gÜ5’^³iÞÿ}Y¾_D‹¨šs°mR¦Zm8Iè%=&I›ó,¿$²æ,Ûez_‰ª®šó¬?´ìp¦5¥Ì+ì½ ¾î|ˆŠWz›ó4yÖÄ‚µÖ4µç<ÄÕàËjÖX#&*ƒ´mÎAUjÃL3Œ.É/‰2i%ms&¢ùH[sö÷ü»·elzŽÎ­1빋”æ}àh ¢ìä^sŽû!õß<6ïð`ÐÅuÀÅŸæØyÊ‘•¨×7éûö}†2Q6¤­9-²ÈpÎb§“¸Y†ë×ç¾FZiVpÛxi#Ç’”+É Ð2Þ"r]24n/Â2¶ºJ³¾s—{o€tï›3ˆ²•k8˸Ï`7 ß":Â%C‰ˆ$´;¡p§"ªšÚ‡s£Ñ(»DD©Õ:œ-ÛÂÇ?ý¸ìb&Ë5¸óÆ‘ DÓÕ:œd£¨XÜ)œ(ÞÌ;¡T©–Æ‘ òp?7Uúü•!4œ“´Ó^yóJæ…ÉÚ"5iTM>?De 纅ZT--ØîÉãŠ9¨ßgŒ( þJKc<Í»&v>ÝÁ•ï^ÁÇ?ý8¶¶Ñh`<ç]ιm´=õ¹›;Œ³Ëù¸OwpåÍ+•øüÉm±Ç0ïšé×ÖpkGUjÇMZVWÌqi%ZÁåy9CˆHB g"" 1œ‰ˆ$TûI(T³îžÕD˜²®_ôuË~Mæáœå¾UÚCÊ•vôGÖk®”uý¢¯[öë\Gî(§`'y.5çñxœé‡/鹌I˜› ò…Tv”uý¢¯[öë\;îëÈ­\›5ÒîÄ<ëŸMÀQ0c<†dCµ–å©eóßV¶àc§/͵ҘõquUökQÖõ‹¾nÙ¯s]sË/·pvÿüIû[v<ý&™c¢Â²±œhZT¸ÍÆó^‹â…½ni+U¼~Ñ×-ûu^Tµ­á5e40ï™…|h‚ƒÆ³´l,{ÿ¢îKû¸¬Í{Ow"g&5½Š€ÿ뢔uý¢¯[ÆóÌâó!;¯ê:É-¿™W¥K#õðŒoü,mÍnÀúÃܽuÀ%½VÔ1a_ûM{\žÊjZ90N,%Pär¤e]¿èë–ý:וûsÕÎQkRl´ª\C!?yÖÜÓbÛ7QrI~^"Ã9mW™¿F›wÈä}­2úŒ€ö×êʨ͕uý¢¯[öëœFب­$ŸÍà1yþ ûk9¬l¹×œ‹Ä¡tåvÐÈú«/é€Þa¯ä’Ô› ¯sب­¤•…i–Ñ_I„•%ªlµ©9_ÌF£‘jÍàYj²³Ö³ª5ÇÕ’‹¬É–ýKaZmNýRÇuòm“-«Ö^tm=êzÊ)E|!Ñ‚ƒîÏHš¿(—eäÑÌQ?§µª9û˜™o…|ƒó쀉ú“Ç_ØqQ›Ö©8ïó(#˜“Ž)_î‹×cøÔ@vµº¼Æ­W‘3gÎ#:ôÒjϦ[ëm4`š©+BþN:ÿyæWc»¿Ôšs–3‚oJ’qÎq^C1δcÒ\+͹’>.ê1óHÙµeÿ:Ë_6ó\¿È2¯[Æõdéö †iÒ€“Uóhܵ£:öK¯9gùá2¡ÃMDëÍýìø×&8ñ˪s€åþ2Ô/ÕÌ›5’ü"¬“àþ¿àL˜0 Ê)¦)Q»ÆÄ¼•«YÍó‹:—šsæÞ§ î°=ðH"îÇ-"² å°6Ø„VH(…?ëì:÷:Ák¥ýþÌ|¯sØsp¯±HM:ÓÌû:d^s®Ê›·O¢·T’‹?¼ ¯wÞ½?ëëFý‰lš¢æ˜4Ó¶…ÏíÞNûýY_g÷9DYô€NÓŒ’ºC0ë@š·m*Éf(·ºâ> I>+2 ûJ*,X£~¤ýþ¬’´¡.Ë>ʶ#Vfn³Oš4ÓB¼Ðµ5Ü9ùiÿ%ql(ÝYCÊŽ Êž6t¿pÕ/Uoˆ]Áiö®`ðM[,ÈýºJ5Ë´¯³ûÜ”SÊÑ»ºk4€†6FeUm> ªÒQ­_\Ÿë/˜eï/%óX{gìã|ÃëÜtRQ#]ÜšiØ}q­ ÿëœÄ±áu)_g`þÏG‘‚•Ã$&Cý¼ŽíÀg·Ðmªòì(œe(UWÔ"OYMð™EÖMÓÎ[t›3¥3Ë_îÁ6‚¹ˆ–¨¡tRW?iÆ”Ÿ¸?Çáua²è  ÖÌÝ Mûý"¹eux]–Â&¿¤>øB}!6xM32ƒò•×䦴? ³„rØ„àxðC(®y#¨€Kûý"ÉP†¢d½¦ÏB„sUÚ­ˆˆ\µí$"ª²…¨9ï}¾WvˆˆRYˆp€ÍW7Ë.ÂÂK»Œ+Ñ"›yÁ*Ž€pNÙEXX7sóØí*~~ˆòtåÍ+Çn‡†s’ñÈÁɈµ4yUáóCT¦Ðpf¨QÞ↓%eEÕÁQSñ–ãÆ9×e\pÞ¨§Toaÿ×UWös1ÎüA®¡Ow¸ün …­JGòSO¥_hV¬M·0£5¸5ĸ°?´üÇ…ï~?É9‚eHó¸´Ï#É1Áçv÷¸°óD=‡0·þp+ò¾ÕçWcOTw Î@x°$ ¹àqÁc“œcÞÇ¥yI‰{ܯãî¯KQY~†`XÍ1‹s%ù~V× ž#I9æ¹fØcÆDÙZøšsY´ÅÎzŽ"Û‰H çæ­FµKqm"ª¦™g.ª2ÛSeiËks&¢ùÍR†sƒ9³6wQ>¤ ç°Î("¢E#]8»ÊD´È¤ gYÆú•MªÑ f""Aªp&""áLD$!†3‘„Ît g É¡ôÑaaÀŽÁâ1”‰ä"EÍÙÝÊ¿ET¦íµŸ^–{rA"ŠRzÍ9LpÙMÿþxa{Ýͳ¿]Ò}ýòÚ+{ Q)jÎI„@5íiA’&d¸Ç eIÊšs˜¤$cÍ{ QZ• ç ª÷$¢YT¦YÃ/جuLÒseU¦<ÉòË(ªÍ™ˆ²%eÍyž¦ ÓÆÎ§;‰w¿Nr\رQçáƒD4 )Â9íγÞ´óÍú½$÷sA"J«ôpNòC$D²@'ÉØÉJTw¥‡3É{ o¡Ã9«Y„°âƒDŪäh "¢ºc8Ih!š5’ ©#"’IíùÑh”]"¢ÔjÎë×Ké°ÚùtWÞ¼‚ñx óžÉtD”Ûœ‰ˆ$Äp&"’ÙˆHB g"" 1œ‰ˆ$Äp&"’Pe‡Ò¥]f”ˆ¨J*Ys^6–1ãñãñ˜c‰‰¨V*ÎÁ`vg2 ‰¨N*Îþ`v1 ‰¨Ž*ÎaÁìb@QÝT"œ§³‹MDu"}8' f—ÐFƒMD•&õPº4Á À e÷k¯#¢ª’¶æÌ`&¢E&e83˜‰hÑIÎ f"" ÃùÀ݆¦iÐ;:@Q`8#¶mCi*øäæ' è‚HÕæœ4˜ý÷sf¢Ù]þöe¬¿¸.‚¹¥A_Ò¡(ŠfhŠît:hkm躎Oþó“r ½ ¤ gWÚ]PÐD³é,uD7èJK‰>öLZKC»Ý.°„‹Kšpžu£W4Ñìt]‡ú˜:5”ýÔ– Ø|u3Ïb$ g"*ÖÖk[h/µ½Î¿$­4hš†µçÖ (áb“2œ³FÙE Z #ÀqoTFgäÀØŒ¤ g"Ê×;?|o}÷-ô{^@'1t†€ýýý<‹G`8-$Ã0€&`Y¬G0lÛžÒý~ŽãÀ²,lÿl»ÀÒ.&iÙMDùØzc zG‡ÖÒ`Úpb³5°ÄmÇ9 鑸gÚ†°m؇lÖ(‚t“PüŒ³Ì{fÙÅ ªw,3šÀ?úïþã»X{n ÿ Ó¢éBUT/†ƒ!œ‘ƒ^¯󞉛¿¾YîXÒÔœýCâüWƒžuÑÂjBÔˆ!:ø>øÑØý|ö¡ÞÃú‡}ôú=X¶…ÞƒlÛF¯×CÿA7}7þïR‹¿(¤ª9˜Þ´ìÝÏv±úW«Ž´?¸9¶™(½Þƒìö -š/F¢ýƒ¿ût]4w´—ÄŒA{`£×}ûóÛ æIÎÀQ@¯½°»¶Fð6kÏDñ®ÿâ:Ö^Xƒñ¸˶ (bìò?úðú7_G»%Æ?÷ú=\þÖelÿl›Á\0éÂ8^ƒNƒM”L¯×ƒyß„®‹EŽ0ÐÞý‡waÛ¢Ãoï³=t»]lÿljSÅêó«0΢ù£×ÃÞŸöÊ{ @š6ç $ …æ¢x×Þ»†Û{·a=´à ˜LX‡Þþ»·á Äh ãqÎÀñ–Õ×ÑÖÚ0ž0pá¹ Øzƒ‹ñçIÚpŽ8ìŸÿ˜ 4Q¼kï]Ãîç»Øß߇õЂišè÷ûxçïßmÛЖ4oö ÚT½æ÷UQ¹[Jޤç¤ÐD³¹öÞ5|ò›Opã×7pë·°{k×þåŒ3ÚZ[LP¼€ÖuÆãÆQ@·ÔLjЛ¯p!¥ )Ûœgá¶SQ:×qýØí¯oxɰñÒÚí6Œ3†·Î³mÛ@èÝïAkiÞ”î´.û2 ÀqÆ@§ÓÁÕï]FÀÞ—{Øÿbág!Ö&œ4ѼVžY¦i­¥A}L…¾¤C[Ò`<.†´º†ÎÀAïaíVúõßþþÛÇùGh·Ú°t]ÇÚê4MÃÿç³{rS«p8…hî²¡Š¢À9h+mo³×¶&¶±Úÿó¾7ÃPi*°G6Ö/®c8+ÛÅâ¸ú½«X{a íÓmt–:P[ªÐÚ’gà@(¸ôKpF>ü׋xêÒ©]8ÑF€ÚT‘^w Çq` ,X Îèhí gä@i*XaÝ›yxé—`=´`lX‡.Ì{&î|u×~=þ$’±,Kt D€Z, ÿ2DïaêcªWC¶m[¬V×ïáæon¢ûTW ¯SUoüIµÚLoýþÔÇTg ØZKtÒ¡‰£ÿGó̰ÿeøî(ÎÀ¶¤A×u(MÅ{|³Ó«ƒRÃ9*€9Ždç³¶¤y‹)MXì ¥¥ >6_Ù„3r°ýQµÆì*-3˜÷Ì£õ]“åFÝsÿxå÷ÿé}  ½ï:­NäãÜiäîD˜E#]³FØâEþ°NzŸ{ÿù¸0eÁ æN'|´A§ÕmÛP›*zý¶^ÝÂÐV¦‰cå™tŸèBUUœ?w;Ÿíx»nÛÛÛªjïé>²úF{L¶ÆrÇUû9Žã]kçw;Y<­Ê‘*œ£‚9,tãîóßö/ÈÏ€¦yg hšÌ.MÓ`CõÈ‚q¦:Û®†v»í­T7|4ÄÎvÐ}²‹ý?Ï·±«=°aÞ5½6gmIÃöÜ¿<&Ç8Žh2±, ?þ—Åœˆ"M8çšq $¥µõÚ–®æÑ„(š¦Á²-´Oµ¡?®TÂù¬<»‚îS]q£ ˜_™¸õ‡[0w0ÀöGÛ¸ú«@è>9¹ÎÀ@tþ ¡¨QlX–U¹öú,IάÍRUOˆpÒ)ËíV¶mW¦æÜívÅèˆÉ¸åÛ_ÜÎüþäC\þöe`$^O˲ ž:jÓ>{~ø“z¿ÂÒÙÁLU¢ª“à ÑQ¢;³\î :@Ôºƒ‹ ÉdýÅuœ?wÞ§lÞ3gjWNbû£ml½¶…ýý}±5Ö¤™È¼g¢×ë-tÙUúP:3UIï~ÃGC1*#¢3ËåuzMöá;ÿôyà6%ã¬ql¦ßÞçùît"ó/*HQsã†vp¥¹`;ò´‘DYûð'Šáq“àu;ÍBŽÆéöû}¯IDFë×aœ3¼™}·?¿I3ÍNÊqÎiŽ‹º/ª3Nó2´/nkšvâ'É8Þ®Õ–e¡×ëy³ädÔ}²‹ápõ1ÖC‹›¹J ôš3QÕì|¶UQEMóð¨]Yi)^Ú²-oÄÁÞ÷ðúÖëØùLÎñº_߀~Z÷ÚšYc–Ù(%w2ÉËxYìFmÛÞzÄÀdfÛèh¢Ææ+›bU7Ó,±ÔáVžYmÍ0z“Íú£ü1œ‰fàô…à 0ÎjC¨ªXÈ]s¢ßïc÷ó]¬_\Ç[ûVäÚe2 º®{mç·÷²:G³a8ÍèúϯÃ8k`å©\ÿåut–:bf[¿‡Ëß¾ŒÏv /ébççÖÐív½­ò¢–ÆÊ3+b"È$˜Í¯LÜúý­²‹E g¢9\{ïÔT±ñÒ†X.ó1W¿wÛm‹o£¡X­¥@oépúúi½ôæƒîÓ]oÜ6FÀý;¥–‡Žc8ÍéÝ ˜cç°IDATÿñ.€ÉnÒhŸn£(Ö0V›* ‰Žãˆ½ù" 7^Ú(- WÿjõظfóîÑ4m’Cd8ï|*gÏ2‘¬¶?Úã…Ïؽµ‹N§ƒáhµ©B?­{Ë_*MöÀ.5 ÏŸ;/jÍ#@}LÅÞå7³ÐqSkÎWÞ¼RT9jc<Wní^ÊNgIŒeÞüú&ÐúúØxiJK£:Ìû&´–†¾ÓŸ:Ã0/ë/Š 'î¸æÝÏw¥ì¬\t±Í_qÒFR‹ºî, +ϬÛO×u¬=·æµ9;ŽÓ4ÅhŽû=qÜH¬—WáÊ3+hŸnCQèKºmÛÞL@˲zq!™U®ÍyùÜ2a”Eª¨G“R&S4Mƒ~FGïAš¦¡×šFbË'EQ°ùÊ&lÛÆp8Dÿ°óîüc¢×/®{«á¹ë'ë],0dš0˜Þ¢L$ŸJ…óò¹eï4Ig2êáØæ¥“ajŽãœ¸_i*pF^ÞxùhŽÉP–5™ah[ÞÎ#ÎÀÁÞŸ’Õ°Ý`VÅ[wÚ½ž[‹7Î0ïÉ71†„Ê„³ÈÁÿ‰daÚÀ91CPQD§ŸmÛ0Mv[Lå¶mñ=À·É©»ãȤ €hŠh)0ŸÌޛܿñÒú‡} ¡Øýz0™‰è m¯ÆÜ<ÚaÄ2§BL”Qš ì‘ ã¬õ‹ë ¡Ê„s0ˆÌ$›ý?ï£ûtWŒg8pRœ‘ûÐSºE ØÝÅÚXÀ}Q›ö:'5hw4Eð¶aÇkÚM`㥠±ïžm‹s6Åð=EQÐn·¡/µ{!úĪMö :,šÊ„3Qض-±Õ†eYþeˆÞÃÚ§ÚÞ.ÒÞÚ¶êí_ŠÑ=Ý'»b"‹ªëRJS9¾§Ÿ[ÃößVU¨ªŠöé6†_ ½¶dUU¡/éèœé }JìÞÒëõÄbú÷E›³5ZÌÝ­eÇp¦Â]ýÎUèºî­olŠ%5û‡ýÊCÜùt/mˆÉ'MÀ±h- ½‡=GMÎ@Ô¦ýcœ§­·òÌ Úm1êB[Ò *G~¢†ÝR½ŽF·F®ŸÖ¡ŸÑ½ëÛªªÂ8h·ÚX}~•“P$Ãp¦B}ró/PÜÚó¸ƒáSC8G´±N†£™¦‰ÞaÏ[d¨JŒsîìߪ¨è;}of šbþ`0ljêì>Õ…ÖÒ¼à¶m3h­ÉŒÄI' Ñé»=wV’Tø–Pa>¹ù ôÓº·8}»Õm £!ç¨vï{¸ðÜ\X¹ë‘…õÖ±ó»JlkÔ}ª+Æ;€óÝóÞsVå¨Mø‘•Ù¸æàä‘•gW`4 8ŽMÓÄLÄ‘~Ts9>b8M#îkÎäS¹pfG`5¹!¥wDÇÔ‰õ=ô CžÍ›¯nŠ?Ý› Ö^X ÿ¾sÝn÷è§j25ºÈ]EG´eëÝ«›÷Lè#ö¡_ýúW^Ó†qÖa=V>Jî¿”]?wó4ÆFì^lIÎCÅÙzcË fMÓNlëäMÔ˜Œ(hŸn£Óéàýzm­ ýqÝ'»Xq[¯m•÷Db¬<+–àTU1Î4ÍÂgî¹g$~Ù9#ÇûÅgÞ“NÜqÖJSÁÞŸöDÛ÷À.´Œ”Œ45çÄã– ñÿ”c9Z.k«k^ç”;!â„IV»Õ†mÛh/µÑnµ¡-M†—5ìöR»¸‚§Ô=×=Eàöå,\¿¿¿tm¤y£FÐðÈ·cød¨Ýí½Û‰'¶P±¤gÿÌ¿0nÈîýã1 æ]sj-™-‡î“]/ ¦QZ 0ÃÖdäÉhk`‰ñº§õ‚JÎêó«8ÿôùc;Š”µ ¾yW ‘3ÎP›ª×èŽÑ4±¦G»Õ†qÑÀëß|Ýû«Å¼g¢×ëÁ¼gâÆ/¹Ék™¤çyjºQa0Ë¥ÝJVãõ¦>7Oƒv¿öjÒ’ñ³eY0¿*wZôþŸEó†Õ±¼qÓCgˆî¹.úý>Vž]ÁÚskbXÞcª÷úb<öЗt|ø“K}‹LŠp’´ùÕ¨=70§Ç`–5°ÐA'ö8ÿ”fwÒ†?°e´ñÒ†7#Ñ'CSy×<¶€R÷)1ÉemuM¬–÷¸­¥Ai)P›" ­mIƒmÛØ|uÐ%‘êãž$P§…ršóPqnýá6¿.V]›Vóu0‚·&E¿4Å#`øHŒ–ñÄÑŽ"ÎÀ‘²9`ë-¬¿°Žý¯ö³ÞÑõ¸;¶¨MÑv¾ù º,RÖ zz÷Þ…=°Æ2‡p1ªÀˆÚrï°‡á`(¶€š6o¼®,6¾¾áí^­ªêÔY~eºðôœú¬C æý~æ–mÁ:ë÷î÷p{ï6v?Ûµ¸¦‚×ßxwöï`÷Ö®T“PVVV¼‡d²@~®~ç*´%QvÇ™«Š=¬qBk‰ @î‚IT,†3Æ èý¯öÑЇyoÐædø–ib÷ó]¬¿¸]×±··4Ŭ»›¿¹‰þƒ>VŸ_CóJ¶òìŠØ½€%L8IÊ] éØÂûJ²PTE,¢tõ{Wó,"…ªCêïÊ߈Mƒ/û2ºÝ.E+Ò=µèN§ƒë¿¸î-4¯/éÞâ<í¥¶·hš'ו(R·Û…zªü 'IôûÞºÎÀÓž´ý'•8t†Àøð_Ù!X´Ê„spx‡ËU[ÔÒ ›¯n ÄhMŒ×]yfE,?Ù› ˆçËè€[}~çÏÉ1á$‰í¶±þÂ:®¾y·¿¸v»¡&F–LkÚ°“ ÉÓοH*ӬᎃÌuµñõ ´[m¨MÃÑÐ[³ØÝ²É[ÍNÓº £œ<.¬\_¸NL9ÛšýÜYÜá‰îèo\y€;²Æ8Ò¶¥×]eÂ8¿Ì`®'wX—¶¤y}éÕK0Î^k-ñ·¸ÛÚ}ª˜ög÷:ëE{¸;®Ù¼kJ]kví~¾‹;_Üù•‰;_Ý96:æØðÆÑÑF½~–eá­¿}«¼‚/°Ê4k¸Ìõ¥*ª·%S·Û…qÆíº¬‡âOëþƒ¾·êšÛÑ•—ÕçW½©Ïhнû¼E„F¢vYär ó¸ñËPš Ö/®ãÖ­[P›*ŒsâÞЇbн5°¼á–eákýµ’K¾¸*ÎTO«Ï¯8EÐÖÚhŸnÃ8cxSlÛö>±Š¢`è Ñ>ÕÆæ+›bË# ŽãdR“ÝxiÃÛÊ]fÓqèK:î|qç»ç¥˜¢Æõ_\‡3rÐ}²‹ßí`u´êíÒÝ>Õö6¡>Âظ´y©ì"/4†3IÁíìsFôÖñ‰í¦7¸Ý T›*Ö_\?¶ õðÑë/®Ã¶m1²Ã3-Kw’_ßðVis¯ÀÛ½ZQÜùêÎÑDš ñO-ßþÙ6¶^Û‚qÖðVÜß߇ù€+ÒÉ€áLRØûã.<}JKñÖsvw‰vG ¸r»kp ÉÁ]¨¡Š î.Õ–%¶¼²–7´l8î†öÆKGÁ¬4Æ«©‡¢|[¬²×Ö_\—v|s2Mê¡ã…ó´)ÓE´'1ë(ލÇù¿ŸäšŸã8*Côú=Q“žtV¹S¼½MIGb§Ó4½ŽÄ»Pn·O·ÅR˜MýØ÷‡Â~QÔ°‡ÎЛºÜ>%F…´[m Gb¼o¿ßš¢Õ…ÖÒÐn‹ñÒm­íÝö×°woíB?#Â]}LE{Iì¼âNÓvÛœí¶ ë¡åuJʺU[fmÎÓš¦ÝNòuÔuü·Ã~9¤ Rÿãº%ûw÷E ړοI »mÞK·ŽÅ´NÀ•gWÄÊk§õc3ýîš–m_ø$f2FMä šGfá쳸`K|QÇäšqÁÌÏ_÷©®·>òÎïv¼6ßÞaOŒºxhe:„Í?ìnõùU1£¥ÀzdAé°YÐl °fÕ¹cœÑ†£!Ùr‘ÛhYÖ]žÖÜ1˹Ӗ!Ið2˜óãξsÛ„E)tH×­?ÜÂùîy±æ„¢ ×ï‰ÎÇÉííŸm{ã„£)Îe.ÀDõ•K8‡5)$5K³Fܹ’ðŸ—\ŽÕgW½6àÞý^) ×[ º¢Ã8°`«e­/ ·~Ë h·ó’(kR­­‘ç.'ÜAEn›¯lU&›¤–áÆ/oxM(îæÞýž·Íp4 Ƽ+–8½ü­Ë¥”•ê-—š³¿yÂ;I[t\³Fܹƒ„þ㢄•µçbuŸêz£&Ìûån÷tã—7°ùê&ô%Ý›2n=´ÄZ#±@“»ôæë¯½EQ°þâ:,Û‚yßÄÿåÇ¥•ê#u8‡…U’ïE­(w;Íc’œ+LÚÎGv¶þãúˆe)'Ó¡ïìß)·@½òìŠØ µ¥á|÷¼˜‘8Y²ôÒÓ— iö¾ÜCï~–má­ï¾…î“](M×þùZÙO*ŽÓ·©T[¯maëµ-Àµ¾†;ûwpë÷·J.•°÷Ç=ìáh4Ç?úÆYÃ׬ªbJ7ž»ìün/m`ý¢XïãÚ{ hšÙ ç6ôú½cíµW¿sïÿÓû%–,Ú?ú+Ϭˆ‰+Í£u¥ÝåKÛm1±åWÿù+\ú¯—°þÂ:úßêcûgá;¾Åa8S!¶ÞØÂùîyt–:ÐÏèb̲máÖo‰š&€ÝÏv¥l¯uƒY×Å‚Hí–hoæâèö ë:ÖV×pó77±úW«¥íÔBõÀp¦Üm½±…Ëo\öÖ 4} ãü¹ó¸ñËØÿó¾·®…L.벨1O¶ÊÒ;ú±þEñÚÊ{èA‡û þäC¬¿°^R©©bùÊË!Rù¶ÞØÂåo]ökbû)¥%¦d{›Œ*Š÷IÜ|eSªÝE:ÔS*´–v"˜=Mx»¥ôôÐét wŽÖä šÅÔpÇE•ƒjêò—Ñ>Õ†¾¤m+Õ MöªSlX‡–7e[¶žÝ¦ µ¥zën„òíк®Ã| ß_T‘á¼~q½´‰T›¯nB=¥B?£‡î÷§´hMM„^€Ñá&ýŒJ§4•Ø¿3µ–˶Ð>ÕFg©ãítM4 ©fR½¬=·æ[ÔF¬nMÚ½¿³ÔÁæ«›Es*w›«$œÑÑêy¶m‹­¬ˆfÄp¦Ü¬<³rÔ;…ÖÒ¼€nkmè½ Æs'Ä$ è‘oYÓû&®ÿœ[@ÑìΔÿúÈqÇ©MÕ«yZ¶<íÎæ=Ö# ÃÑ0v‘#{`{íæ½~¯ R]1œ)7»Ÿíz[LÅq7kíö¤ªq^ÿùu؇6úý>œã-üÔï÷1ˆ7ïr÷jš_%ÃyÙà sUpퟯyí¯Ó8ƒ£=e\‚óÒ7.Á4M˜Lô{è?è{ÎÚ¶-jדEv?ßÅ[ûVÙE¦¨ä$”“ U…eYb7릺מ}hÃX^Ç[ワͯo½Ž_ýŸ_#1ÊD±E'§¿)cÿË}üà¿ý ì¢RMT2œ—etE|í¯¿†On~âu–¹AíŒDÁТ؇õÐÂ_ßÀöGò®Eqé—°ùê&.<}Áëì´mÜÙ¿ƒý»ûlÊ LU2œÌÕòòÆËøíÿû­·ïžÖÒD¢Iò,ÜüÍM©ƒÙuã—7ÂTˆJ†³¿æìofhËëký5À;?|kÏ­Á9b= Ó¬D(­’áìáó€„Â5މ’©üh ¶?QU.œ³†· “?˜ÐDT'• g4âÈDT_• gÃmιV.ÕšTáì¶%GýŸÕcˆˆd'U8Ûƒÿ›n3F£á­5÷"¢*’*œ§qk¦ypÒDD5U‰p—c“Õôá6Ž™MDTwR†³¿S/,ˆYs&¢º“2œé3ÿXs&¢º“6œè2kÎDTwR.|W3fÍ™ˆêNêšsÖœ‰¨î*ά9QÝU2œ‰ˆêŽáLD$!†3‘„ÎDDšy(Ý´EtØ%ÝžjÖm¬Ê~~D´ØfçàBDu ¬¨çÃa|DT„Üš5½_6–½Qdž…_Ô÷ÃŽ ^/i’¨ã/!"’S®3ýa¶ìgÔí$_G]ÇûÀyˆ*gÔµ³(ç´×aÚyç} “¾'Yü,/šØ‚þßÐÁßÖIï›vl^ {îï~öøiÇ$}âî+g’k¤}fyAš÷fšYßó¬ŸOfùlÄ•3î¹§)O–¯aÞ?Ëe¼eŠmÖÈjGë¨cÓîÄ=‹$;t'ÝÅ;͵Ҟ/ëãf5ïùË~ü¬çó×Þò¨ÅÍóÙ˜çY\/ëŸÃ¬Ï]GR¬­1ëÁ"ý ¬Õû¥iJ˜—L¯yáYw²¼Ÿ²”C&¥‡sØŸ4I-ÚSÔŸEÖ¸ezͳ.KØgO¦ç›žß<Pg±ÍY½PEw”%®S&Ëóæuܼç˜÷ùÎòø,žÛ¦êÿ—¥">£ó\#‹×²[sžöçtÔqaÇF'ìqIý§]¯èNƒ°ŽÄi÷G™Vî4¯_ÜãÓž#ØwŽ°× iY¦=׬ŸÏ¼ÂÞçiåŒ{]ÂΟ¤œ³^#ë×0ég1I9’<÷ºw6ÆãñؼkbçÓ\ùî|üÓqåÍ+™öŒÖýE J::ƒÒ©ÃkÉŸ©ÙÕù9ï|ºƒËß¾ŒF£ñx ó®߬Añø'EágƒfUz‡`Ìúç%WÕZS^ŸEó»HÏÕ55œ³ü ÕÇpæ«Ê¯c^e¯òk’Ö"=WW_K”;¡•cçÓ4Ɖ;Æãq Å!""7“˜ÄDD’i⇿-» DDÐåÞ^Ùå ""ŸÿÚíU d¡Î^IEND®B`‚ghemical-3.0.0/docs/user-docs/images/2atoms_unbonded.png0000644000175000017500000002715711563552731020122 00000000000000‰PNG  IHDRîv™ÊaåbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ —Y½å IDATxœíÝ_‹äVš'à7–lÈ„2dª *’틺aª™‹±Ù½1ô'iO_ÌÇØ™þ Ýö'1Ô\Ìb÷Å€çÂà…i2 }á‚1d‚ ™Ð±QŠTª$…¡#=•¡N(þüôI‹õz½ g_ý髱Ûtð߯nÐà€ŒnȈà€ŒnÈÈÙØ ˜»?ú8""¾üê˽nºœBu~û.gH)´¡P]_‡¿'û,ÿet™GùuùzÚÖ_SÛšÚ{Ègw×÷ iž):Öçn×úí:mŸùÐÏ(Áí mvŠuQ÷ãõñGÇ—_}ÙøCvJ)´¡¬)TŠuv c|.Ž9ߦõ·k¶}v‘ãoÐ1ÚÜgývùú}ۮߦ>¯oŸÏáäÁ}HcËÓ·9õ‡£­*nú»<]ñwÓôåÇ›–]èR±´ÙU‰T—]mgÝí¾ÓîjC—õ;T5ͧi¾m•cõ¹}×_Ýíºöì³aÜôYkk{µ½]~Üû´©Ë¼Šåwù]9Åa—žƒ¾ë´ËôûÌ÷˜rèc+Þ‡ºïZ—<<é>RéSÝTýªÚõxy>uo~ñØ1×mñºªaÔ¶qÒeÚ¶åE´¿®¶à9¦¦/aDý{T~NŸuÒõ}ï³ê>k]æ5ôúúoAßuÚõýì:ß!¿Õjº|_SÛÆV´µÜ澊u\ý×wÕ6Õ=Ö¤SÅZ…›Â ¯1Û<Õæ×uÌuÝVÍŽõ݆CzËŽÝÞº^¦éÊömWµ`ßÐjªÂY_C¯ëºŠ¿©—#¥ßì16ê›Ú±ïç.ûÁi)~0Nmì`ŽöýÂìû¥?uå*‡RÓ4CU„m»!êÚÕfÈŽ]¯¿ú÷®ª6E¹µ7'‚;Õß´_nnæúº1Õ^¢]û=çh¨uÐgãnWÐî³ÁÓgèØRíT¾M»<º¬³“îãnÚâÝçƒØ¶ŸgL‡´¡ow^ÝãÇ^/‡ìZÛ>î¡ €ÇX)½'Uû®¿¶°kÚÜ6Ÿ$b÷{—Z¥òg­‹CöK©ÚT·{¡ÍÉOÀRÞ­Û'ÒÅ®ú©U ùܶÇÛºÑö}^꺬ëCö-îZfßÏì1Öu×÷ýÐÁHCµýõw¬6U 1h©¬iƒ¡oû»N¬÷ªm>]¦z½¦ úšöymuŸ>™‹õz½vYOrUþÁÈm#`NyJV¦´å°ÁMVrîæ‚®rÈÈYDÄ—ÿ¦b€,"b=v#€nÞ;ËgølŒv >ýݧۿÏÖëMÁýùÿù<>ý§Í¿ýÇß¶Î`±XDñ<àx‹EDÄ6wÏ""V^½7áê»÷xýÅëÖÇ€a™[Xýyåp0ȉà€ŒnȈà€ŒnȈà€Œ=¸¯–WµÿÊ×ý}ì6u½½o›NõZÑÔÆ®mÏá5LÍ{gN+T;Äõêz¯ÇRzû˜—Æàn:{Úçü|Ð\-¯ñ\Ñ åöíª¶©éþòcåÇ«¯½ívÛ¼­Ëû°kÝ0ŒÆà: ûÚj‡(¦)`Û–Säu·Í³ïkiZÎ)ôiû˜í˜‹“TÜÕ Ké½\)viW×iºìÿÝgbèu7ä~ê”ÞW€©:IŽïºÁOÇì‚ÞÕ­_w€ñŒ¾»Í1+¸jµÛ§ê>†]•ÿ˜]Ð*i€t$»»*§}¦}*Ô.)½ö®û¸8Žd+îê~âÔ¡Ú]mû!¯eÌÑÚ}ÚnT9Àñ½âÞõ^~¼:í±ü»,¯Oûö}-}Û1”¦yvmû©Ú Àƒd+nà}Á½únuðÌw}í“ß|rð2úêsF¸1Úw*]ÖÔ_?@®ƒ{MU{aˆƒ¾vµ©lŒöJ—õÐçõë"8£wŠÁ—b›Æ`=äÉe= #‚2"¸ #‚2"¸ #£ÊwçÛçxh`µÁ½X,v>ñÓß}:xc€vµÁýÙ>;u;Hœ³)ާ|±§ÚàÞuV­ÅbëõzØV¬Åbá ‰‰è}®òbß¶3õ1Mi1ª2"¸ #‚2rÔ«ƒ±ŸòèÁ>82Ör5v»çò~½ž9®å‹eD¿”ƒÁƒ»üåò‡in_þ¾£ö»{Ÿòr5v»çò~½ž§(™À,Þ«™ýÖæè(÷z½ô‡©ë¼–ï‚~uào¨ùj¬½\lÇn÷\Þ¯±×óä$˜Åo^¬×±Œ6"huÔ®ò¢bîZ-ïÛ1Ü/µðX= ¹öpŒÝî¹¼_c¯ç©Hí÷†<-¸‹.µ¾[çëõúa ô€“¼ì»0æieêÚÜwã'§åjìvÏåý{=s|«Õõf#b±½§‘Ý&38­úÁÛ÷e±÷øõ¯ã·ÿøÛƒ¶šËû÷ÝøÉe¹9¯¯±—êåæúùHÝ"Þ æ"lˆåb遲õÑ»úݳÒêƒ?ÖèzuýÞédOqšÁ±–{¨±Û=—÷kìõܵXfuYªíü½â>¥©Öäù‡Ï#"âû¾ŸÅr•k»s“Âz®¥Ý5˜ÊÁv¬ÑÞum:4ëŽ oZÆòÅ2Öëõ¤ÇLÑd*îêmß3ÛŽýÏ(ª›¦/ÛÅ7›éž û…ßµÜóÎ7$ök}u]þ±œz¹9~>Šª¶Ï8›«åÕQŽ.i íÁ+Þ–ãÂß[^ÇÓߤ*î²½¿K~ˆ¶/où±«7›öÝýò."¯nº.w¹ÜlÅßÿxÏãùèÕëXë«Ëò»<>%› ÛDÝØŸº£Kú¼åcCµ«ÒêóÒ§§À1äùµâòp’êöó*qÖúª.¿ëý¹«î;-Ÿ„eé}>ʺîãÚ©7€»œÏâX½ œÎQ*nç2>P±ú~ÿ޵¯vñ§EëüSüAŽˆ“®¯ºâb7BÝúiÅÑ?(ŠåT—Õ÷þ½•ÖsÝk(–‘zoÍ©ŒµúœHE`çiðŠÛ¶¿òàöÇv±ŒåvTlñø±–[ì ^ÿæí˜Ë=Ԙ뫩۵è‘è}÷½Vç]Üî{ÿ¾ªë¹x MæÞ}ºæ‡\WÆ^ÌCcp=PáÐ}8]>l¹¶ëµuyíûŠ3Ör•k»÷UºM }ïßW—}¶WË«¸ûqØA)+v%ôéÿÞ±ãGºÄ§Àž–ÿvÊ…­×ë½þuñh„ä‹åö‡#"zý]Ï©mXý¾¼ß\l{ÚGѼøÓ¢×rÏ?88 h§^_å ÐòßÕPl»0GñwN?¤}×sñÚÆþ|œÔb±Çáy>+ïæÑÇòÅrû›§Úž‡“÷)]—fôý{_Ÿü擃¶”¯¶•þêÑþÂÏ+òTT’û,÷úÙõ6À»,÷Ñ!b{,7ÇõUþŒT÷ï–÷)×}–šž›‹òzîâÑ!b#|>NiŸ þâ7çáË=‹† )@'½:Ø1­å~8Xuk¸¸}”4$°ÜC¥Øî¡»£Ûæ{ê}Üô³ÏïÏ>‡gu=;Õï1û9YpŸâƒ“óá`»ö¶>÷€CžYˆµ¾ö1Ä`¹jE_¬ï¾÷ŸRЇË—vx]MæzÜSÓ÷‹?ô1Ý]¥òƒ|ŠõUw²•ˆÇë º>vu™÷Ñ´®ûÞJ)´áT†Û¾ó¨n00‚ c{~&;8 ¦Hp@F7d¤q÷ë/^·>q×ãÀðjƒ»ËñÖŸþîÓÁ´« îÏþðÙ©Û1IŸü擱›­1N7Ëqår4H]mp7]Œîú\h€Ç–/–~ä'èõ¯mÌÂNvu°9)ïÿW90$'`9¢å‹e|õ§¯ÆnFv>ú‡Æn@²ÜÁ Ü‘½ÏœœÞÞgN†sµ¼:è¸ÿCŸ¨±—sRÜëõÚqÜxýÅë“öã>Ž/¿úr”y ±ì¹(‚­pWË«AæìÐ_ C~&ÜW¿x7è(“îýcïn›Ÿeï¶åé«Ï?$¼ËƒËŠÛmõ ¥¶yw™6•ìó:€üL&¸¯~qëw/~q•Ex7*o›®mÚ¶évÍãЈ®m®@­»Ý4°¬iú.ËìûÜ>ínsH[úN[~|¨ö‡™Dp•vay…÷¾÷u߮Ǻ̻K›ú,Û‰[ö“ý X®~qëuÄzáD­L]ÖÁ]„v¡ïE䳟ûN9 0?Ùw5´Ërí!WhÌO–ÁÝÚ‹E¡ ûÊ.¸…6s–Up mæ.›ÃÁr íþᣱ›ׂŸ¦O~óI,_,Çnd§záª,‚;×ÐŽBPæû‡K>¸síÂPWj`^êÎJ˜ô>î)„6 )ÙàÚð¾dƒ;bÒÕÛB€9K2¸Ë )Â[h@¢Á]%´`#¹QåÕKt lx\p6¼/©à¾úÅ•À€IíãÚÐ.©àÚ nȈà€ŒnÈÈè£Ê«ÇmG¤MFîˆ÷ƒÚaaP/É®òëÿ¼~T‰Wï+þU§ëzr“DÅÝE¹ ¯Vä*tæ"ÉŠ»N9˜›BºZ©— w¦ ›Š»J·7s”MÅ]VTÏÅ¿¶i<S’dpÒ­]„uñüêmÈY]å}¯Á]­¤…3s1zpw Ûºiª÷µ ^èLE’]å@=Á ÜÁ Ù98íõ¿¾>E;€Zƒ{½^Ÿª@ÁýÉo>‰Õw«S¶ØÁ>nȈà€ŒnȈà€ŒnȈà€ŒŒ~u°}]-+—]¹Ó—eÅ}µ¼Úžf½^Çz½~/È`в îjh/‹í߀©Ë*¸Ë¡]ÞÌI6Á]Úá À\dÜm¡]ÞÌAòÁÝ%´ Ex/ á À$%}8XŸÐŽˆm`;D €©I¶âÚð¾$ƒ[h@½ä‚[h@³ä‚ûzu½¾‹Ð`n’ îˆná-´˜£$ƒ;¢=¼…6s•lpG<ïßÿóïã÷ÿüûX,ñ/ÿû_"Bh0?IwÄû•wÚ¿ÿçß mf'é°4l$_q7dDp@F7dDp@F7ddÔÃÁ®–Wµ÷;ü ê~·€î’î*/*òre~µ¼Úþ«›¾íþ¦ r1zŽËÕòj[•—ÿn{¬ës 7£w]\Ö¦¿Ûf¦jôàî²mڊǪóÔEÀTŒÜ}Ôu{—5u«À˜Š¤§õѵªV}³Ñ+î]û¸«÷—§/n_¯®»Êëž¹5¸w…hÝãÕûºt‰ k¦b2]å0‚2"¸ #‚2"¸ #‚2"¸ #‚2"¸ #‚22ú¹ÊÛì{A§8`ª’õzÝkúÅbq¤–Àø’îa …,‚;B÷7D$Üuû¶ë®µ s“dpG<Þ·]ü­Ë€¹Kòp°ëÕõ{!½X,TÛÌ^’Á ÔK6¸ËU·j6’ î.žø<žø|ìfÀÉ$ÜEÕÝTm_|sß\œ¸U0žä‚»í4§åÇ®Þlþ¾û媀ÙH.¸¯W׺¨¶¯–Wös0{ÉwÄCX/_,cùbùè¾í4Ï6·/¾¹ˆïøþ´ €‘${–ˆˆ(å^Õ?\„7ÌER÷ÕòjÛM¾\n*íXǶê.?s”TŽkv—}ÜÅ@5ÝçLQRwÙjõ®|±ú®¡¯¼†CƲ$ƒ»è_­VÛïÒEî1¦.¹à®öU¾œ§ýÛÌ]rÁݶ{ç>p‡ˆ0qI N«Ó÷¤+`Ê’«¸€f‚2"¸ #‚22Zp§/í{Ó! sX¹eTyÝ%:]¶vKæp°º oz¬ëtM×õ.þ·¡@nF îòYÐê³îìi}§kz¬X¶Ð G£UÜÕ øØA*¨˜‚Ñ»ÊÛ*ä. 4`N’œVÕµBVI0'YÇ=Dõ­2` FœV¾¯éñ¦ªºmº]ó0@ €>8­ïãÕû÷¹ ¨À WYt•‚2"¸ #‚2"¸ #‚2"¸ #‚2"¸ #‚22úe=›ìº(ˆÓ–0GIVÜ]®äåj_ÌQrw—«‚Ó¹Âs“TÅÝ5´Ë«¼˜“¤‚»ÐµŠÞÌM2Á]„oß®oá Àœ$ÜÀnI÷òÅrì&@’’ n žà€Œ$ܺËà}Éw„ð€ªd‚»|X×ê»Õöþ]á½ïad£d‚;âqxõ¿ÚÞ¿|±Üþ+sì6s“ܹʯW×qµ¼Šÿ×Ç;ÏU^½­ê`ê’ îˆ‡ðî[Q o¦.©®ò².©›F÷9S–dÅ]èR=Õy™Ê€©J¶âîCå À\L"¸#Àî}o¦lR7Là€ŒnȈà€ŒŒ:8­íXkƒÌà}£wS8;y ÔK®«¼ît¥ÅGê½é±âvù~ä.©ã¸›B»|_ùvÛcåÛE`ë† WÉTÜÇÔòü„5SDp«‚ ›Ñƒ[h@w£·Ð€~FœÖ4Ò»ôòà²òý»€)Jò8î>Ó5=Ö40M¸³Ñ+n˜¢þçG±üïËÍ7ìmÄ›ÞÄÍÍM|ýï_Ý´,½úûWñüù󸼼Œ‹³‹øþ‡ïãæ¿nâ«?}5vÓàä7 äÕß¿Š_ÿê×›ï¾Yçgçqÿö>–O–ñìÙ³xùòeÜþp«¿¬âÛo¾¯±xùË—ñêW¯"Î".Î/"ÞFœŸ¿[Ÿ?_ÆóŸÇß¾üÛ¸»¿‹o¿ý6¾þẼà†¼úûWñëW¿Žó³ó8??ˆ‡9󸿿Ë'—qûÓm\<»Ø<~v.l¼üåËxõêU\œ_¹Ü„õå&¬ã,jÃ[åý Ziëõââ".Ÿ\FDijóg›õ777Ûõ{~¦òf7à׿*…öÙy<ýài\>¹Œ§—O·ß®¢;÷Í›7›Û?½ ïÛÛ¸¼¼Œ›››_AZž?·1SíŸ]ijŸmÂü]ÆÓ˧qs»Yo777Ûõyq~Ïÿæy|‚›éÜp "džþÍÓ¸¼¼Œç>§OŸn»Çïîîâö‡M…øæÍ›ˆ'···q~~woïâ⃋‘_A:ÎÏÏ7ÑŠ¿vÏž=‹§—OãòÃ˸¸ØTâ÷?ÝoB|³-7ÿu³Yß·›˜²ÑOy ¹úè>Út¿½ßn?}² ìË7¾üùrS…_^Fœ½Û÷ýöaøÅÙŦ‹÷—/G|%ixùË—›õôv³û âÝz:‹¸¼¼Œ§<åÏ—qyy—nn?}²Ù-Qvw~¶™þÕß½ï…À‘ nØÓr¹ŒˆØî{½|² ç§O7òìçÏ6!þ.´Ÿ>ÙtŸ_\¼«°ß…ýååå6È笨”‹îð‹‹‹Gëíòò2ΟœÇòÅr³T„ú“˸øÙÃèó‹ó‹í8˜¢ì‚»é©prgïŽÓ¾¿‹Ÿ]Äýý}DlöaGĦ{üm<Üÿîÿò¨èm¥þ ¹¸¸ˆ‹³‹íz¹»Û¬§Gëïmlw;T×ëýýýCåýĆÓ•Up¡-¼IÂÛ‡nòrÈÜýõ.¾ó}ÜÜÞÄ÷o¾ûûûm˜!³ íwó(ž?wwooÔ”7†îïï­×»¿Þ=Ú*vCÓÃTe38­¸’XõË›7obù?–›R—çÛgoÞ¼‰xqóãfÔóýO÷qûÓívô{•âO÷› €™»¹¹‰g>{¨œï#.~¶9½iáüÉC8¿ùáMÜýt··› ¼8DìîþΆ“–MpWCZh3¶›obùvqþ®òþë&LžÅ³xóöÍöÌ^7·7qûÓmÜýxçgçq{¿9îøæþq˜ÏÚÛMø^ŸDı õÛÛ‡}×åbß÷O·ÛéœÐ†)Üp€Û6ç¿ýév{¦´ˆMHWOÏYþ;€í]÷.7?n΄Vœ´æþþ>â<"îb3–àæ..~v±­Ä‹ÐÞ®÷û;»˜<Á Xýeµ½ZUÞ···ÛÑæÅ´ˆØÊýO÷q÷vsR–›o¶£¤ÙTË«XÅóçÏãüíy<}òt³‘S ?{·Ñóîÿó³óm¥}óÓMÜÞÞÆ÷ù¾u»¬F•Cj¾ýæÛ¸ù¯Í(çrwíýýý¶[|Û=þ¶Tiß>„ö·ÿO7yáÛo¾Ý æ«JwûÓíf=þô°ñ³]ß±©´‹Ð¶>™ºì*nƒÒHÍ×ÿñõ&TÞÞdzŸÅÝÙÝæxäˆG÷Ýý¦Û\h·ûú?¾Ž—¿|w½ÛTÞ÷›Ó ÞÜÞÄÅùEÜß¾;ïÝú,Fí mæ"©àîrˆ×òÅælU«ïV͆ôí7߯ùÙùvßvùÂ#劻P%´Û}ûÍ·ñêï^Å÷ù~{.÷b Á¶{<Þívøëõɬ$ÜÃv±Øüß2­ã¼Cy$óË_¾Ü\â󃧣ɺ.=T×çÍÙÍö8îbcÈh|æ(‰àÞuF´"€—Åãëu,cSu·EMx32,ë$܇TÈMÏÚLQ2£Ê‹ðn³*‚x±°€YJ¢â.t ÛU‡i„6S•LÅ ì–]p»¤'s–]pÀœ nȈà€ŒdÜÕ}Ûöu0GÙwù8oÇi0WÙwÄÃñÙB€¹Ê*¸#„6ó–]pÀœ nȈà€Œt î«åUã¿S躜}ÛÓô¼òý]¦€cëtu°ò€°)ŠUw=ð)¾Nò7HWyùøêò}uUyyÚºjµK%_7ï>mØGÝõÂ…;§6Øõ¸Ë!¶«zmš¶m»æU­šûVÐåç dR5Øà´rÐí ½.¡Ø4Í1uWh;{c¬â®Ú§{ºŒm¡x¬Áj]*n9c:Jp×uSwµOWù®yuQž¯p UIÇ}ÌC«¶À¥â®ŽÀîZÁvé*ß5ïê`µòtMêÚ¦ê E½ƒ».ȺÜ×te¯]·û<§Ë¼êô'ÌKR]å@;Á ÜÁ ÜÁ ÜÁ ÜÁ Ü‘,ƒÛ•¾˜«,ƒÛE>˜«,ƒ[Å À\eÜ*næ*Ëà.WÜWË«í?˜º,ƒ»\q«¾˜“,ƒ»Zq oæ"»à^¾XÆz½ŽˆÇ¡-¼˜ƒì‚;‹Í¿ÖÌOVÁ½,ºÈ×ëX¾XŽÛARÁ]ì»nú¨ç@®’ îêþêêÿ«¢k|±ˆÕw«NÏ€)I*¸Ûôjuýà03Ywõ/ÝàÌUòÁ]wœ¶npæ*Éà.0« i7s•dpG´ŸMÅ À\%ÜÍ•µŠ€¹:»uvUÔ*næ*銻‰Š€¹Ê2¸UÜÌU–Á s%¸ #‚2"¸ #{Ö6²ûƒÇÚNвÏtuÏkbpcÙ;¸«ý˜Z˜5½‡¢0¦£u•—Ï7^¾¯ø×4m]06Ý_7Muy]ÛÐÅ7PÈËQÏœVººKs6ÝîòwÓrÊ·¯W×½ÚÐõµÀXŽ:8­tCœÆt¬‹ŽmRqÒs•ïÓ=]TÍÅ߇λo„6)9Yp×uSwµOWù®yuz]Qp ðIDAT!´HMòÇqswÛ¼…6):YÅ]îò.ßî²ï{WWù®yW«•§kÓ쀱 ÜuAÖå¾âvÓýû̫;gR”|W9ð@p@F7dDp@F7dDp@F7dDp@F7dDp@F7dä¤×ã>DŸ‹ƒÀTeÜu×ÛÞÌQò]åu!]½<'ÌE²Á] fA w¹ªVuÀF²Áñ0ÍþlØH~pšÊ$Ü]ÿ*¦S•0Éw[/_,#"bõÝêÑýåª\€0eI÷Î㳋Íÿ5ÓÏsŒ7S–Ìà´]»,ºÎ×ëmå]Ç>q¦,™àvË&¸WE5¾X¼·æ"™à®ëâ®Þ^­®¼}ÜLY2ÁñÞåâ}öW m¦.©QåG‡º²Ð`ê’ª¸Ë®W×;OyªÂ`n’ îÁ UIw]·9ÌYÒÁ]hq®`n’œÖ¤ÞB€9Ê&¸#„5dÑUlnȈà€Œ=¸‹S˜–Oeºkú.u®ïóz@ÊŽ:8­î­Cãêú¼bzyz‡0G«¸›‚²zXWñwÝqÚMW kzNŽ  GIìãnªŽ›®¶ëæÅcå€ÈLAÁ] Õ¡B¶®Ë¼îñá@’îc)¸­K}W¸@J&Üå0ÞÞ‹£wSXv©n…,Ô;êá`uáÝ¥Kºü¼¶é›6êî×%Àý"#»‚²i`ZÓ¡d]æÛ6mŸ6@*&»¦Hp@F7dDp@F7dDp@F7dDp@F7dDp@F7däèç*JÓÜg€9I>¸w]%¬ËUÄ`*’î.—á,àÌA²û¸û^;ûzu]{ýo˜’$ƒ»ohÀ\$܇†¶ª€)K.¸€fIw—j{ùbËËÖit³0UIw'‹ÅæÌPVÁ½,ö]¯×;«n˜¢¬‚»+ƒÓ˜ª¬‚{Uì»^,bõݪvš"´…7S”Tpw9”kµº~ðŠòà¶b^€)Iú”§}UG“]ÀÔ$UqG~g]`Ê’ îg?€&IwDÿð.ög«¶˜²¤÷q—ÃÛõ¸ ñàŽxÿzÛMÀ$Ü ïãÞ'¸ #‚2"¸ #‚22ʨòê¡]»FŒ·X¥üخ隱@.NÜuázÈϺ>oŸ@€Ôœ´«¼) «§7mº¦vÝe:«Óö=Mªj€œ$»»ªÅí¦s˜—¯Ã½Ïü É÷1¯­-´ÈU²Á},B€œÍ*¸…6¹;ip7íŸî¨‡ŽþÚLÁÉ« ï.ÚåÚÜûË-ÐÈÅ('`Ù”MÓš%ë2_á ÀÌj7äNp@F7dDp@F7dDp@F7dDp@F7dDp@F7dDp@FF¹Èȱ”¯þå¢"LQ6ÁÝ'”…6S•|p½^?Ü·X4_—»¸n·ð`Š’ÞÇ}µ¼ŠõúqhGÄö¾r¡Ò`ú’ î"´ ‹ÅãÇ‹úðŽx¨º`j’ ªæ&Éà®VÛmšªn˜¢$ƒ»N]W9ÌM’Á}½º~/˜×ëMXÿŠŠ|±0( €ùHþp°²®Ýç`ª’¬¸#ê«îªjµm_7S—lpG<„wÝþí¦.rÕ6S–|WyÂÅÙÒÊ÷5ÞLUòÁ]èÄ€©Kº«x,¹Š{ŸKsºœ's‘lÅÝ'€…5s‘dp érxW1ð`’ë*/¸øWx—[x0uÉw•0€Iv•õ7dDp@F7dd°à.Ë*ÿëóÜ!§ëú¼òý]¦€± :ª¼:<•ã«‹ã«—M¡mÐÇI»Êëªñâïê}ûN·¯"Ü«íî¤ädÁ]„`ñ¯ɺ®2]“ò4€\ ÚU^ Ï}Âñ˜Z×eÞô¸p EGÛÇ}H÷õ±«u e¡ @ÊŽvÊÓ}°nYÛ2ö™¯p W“9ŽÛa[ÌÁÉ.2R@ÖtèXÝtåê¸mº&uÕµª€ ÜuX–]žÛt»ëüº´mŸû`l“é*€9ÜÁ ÜÁ ÜÁ ÜÁ ÜÁ 9ÙEFÑtå/ç`n’î"°›z×ã05Éw—Kn–/õY¾ S•ä>î¾×É®»>7LQrwSh—CYe À\%Üu¡]özýpßbQß5^TÝ‚€©J²«¼pµ¼ŠõúqhGÄö>]ãÌM2Á]­”‹ÐnSÞªm¦,™àn³X´ß€¹H2¸«Õv]Wyùo]æÌE’Á}!À”%Ü׫ëGÝám]å‹Åû'bÞLU2ÁÝv•õzÐÅ¿ºAkåÁmNÆÀT%ÜUÕª»8ìññÜñ(¬«Ï€©I*¸«•rÞu]ååÐ.8ù S—Ô™Ó"Þ?ûYñq¶´ò}07ÉwDý©KÛÂÚÕÁ˜‹$ƒ;âq·¹ëqÀF²Áñþa^MÀ\$Ü I*Ú nȈà€ŒnȈà€ŒuTyÝa\]Gˆw=}é¾§9m»‰Qì¤ê臃¥z>ñ]'u€~wõ¢"åûÊ!Èt}Ú’ÂF45¸«AYÜ®ž«üÐéöi ¤èèÁ]ízÞ'¨B€\œt÷!û»>·ï2„699iWyÝå:»¨ëo[ƾó€ÔMú8î¶€ÚähÔÁiåkn·ËªƒÐªÏ«JÛ5¿*—  7G Þ×’»¦+nw_—¶@ê&ÝUS#¸ #‚2"¸ #‚2"¸ #‚2"¸ #‚2"¸ #‚2"¸ #‚2"¸ #‚2"¸ #‚2"¸ #I÷ryËåÕ£û®*·ëT§©›LA2Á½ Úõ:–/–± äëÕõÎç^¯®·á]7˜Š³±Фâ.wù9ëc5Lp¯V×›jy±ˆÕêz[Ew©¸#ªóUÄ£ùÀ”$Üñ^Ðv ïê4€©Jfw“®û¸`’nàà€ŒnȈà€ŒnȈà€ŒnȈà€ŒnȈà€ŒnȈà€Œ-¸w]G»Ïu¶€£VÜMá,´`?Ét•_-¯¶ÿöy¬z_Óíâïê}M󀔜sæ×«ë¸Z^=º^vq»œuÓôy¬:]›®ó€Ô$Sq7é¢}ÂV0«£VÜ«î¶j¶­›ºé±rå~Hë" Gî®Ú½Ú•]÷¼Cº¸Uàäâ$]å»ªíª®p—éúVÓªoR–DÅ]¬VøºÇŠ€¦®òêýmaܶlHÍÑ‚»€}ow¶éyMÓÔM/¬ÈEò£Ê€‚2"¸ #‚2"¸ #‚2Òx8Øë/^Ÿ²“æp3†RÜ‹ÅâÔ혤ÏÿøùØM`bjƒû³?|vêvÔ÷§¿ûôÔíj¬×ëG¹Ü¸Û~YWÝx3£Ê #‚2r”à._&³Ëßûλ¸]üë2ý±åt=ï!Ú:Ôû8ÄóÆ|=}æ3Äõæ¹ýßîË=ö÷¡˜Nß;8ÔѯÇ}Ì}åÅu¹ën ìùÉe\Æ)ÚYýnŒÕ–S½'׫ëίr×Zq×U·Õ¿«Õnu ¸éÿºe5UÎmu“ëÕu§/q]»š^wÛ4»–W~ ]Öã>v­¿]óïò´½×]çÑçµìú¼TïúõCS;›–=D;ÛÖCÛ|]‡]ß“]߃®Ÿa˜ƒƒ*îj…[„WÝ–oÛñ®ÊùØUt±Œbþumí2Í®ùïz¼iž]k›ß¡ïAùvu õ>îjs—õ5Äë9…}>»Ú¹ëµ÷iÏëpß÷µëgXÕÍ\´ûÔ_c-¯<ߦet™¦ï²úÎoèéöuèüÇ~þ¾ó+W}Ǩþùl²Œ!–7D;»|÷€ìãîJØaª½e}º§•ÒûxŠ`ºTÞÏTÚ)H&¸çø£8´¦®ÅSVê)½C·¥.Ëï§—ìÔ¦Ñ<ïdùî´Åo«d£"@*1qÌ…à‚òd•8Xº†TãØ‹4s—nI4ÇKc¬ü%¶dqUL~9þqì™Ú¤œeÖ){z‰ö=­î};ê`¤[™ÑQ¾= ]Hå÷KÁÝE–é®F*éÀÄ{¥<Øòn¤#\£vM6ʲÐꔣ&ºôɺŠeüVcuojÌU»š8Nw•m¯jQK¼ÎD›™‚¥Z]ùw‘Á•;ÿzçÇ>ªci 0>ýXqûí·Ÿx≥عãŽ;ê*W¨»/Ej#ú³ÎΟ[¿îßyé'Ìž$囕×;A§Ñá„ÔU)€³l¦ôÄñ#n¦7˽ÉÙ&béc]Ü$Imä3ÝSÿl6cÙcOi¾ãøÇIP 2-Ьê„#but¤&—^‡,Ù]HÀÓIçdƒKWÑ€³™·òØ=¦­˜¸±É¿cÉÖ¤IÒ…‹:ùèbº“´fãNãOõ ±¾—“´ìÇæÀ0ª¬T_ÕyžÚOy‹0wébL€V5ƒÅ ¯ãß:)5•ƒå´œ§3‰Ó«ÛÛÒl^‘‘ÁS= 45”õ^Õ© IÖušØx~°ªc):n2)tY_ÛY§g¾:#Ž4À»;©ûîûÆw¸íö¯ÅâG+—`Ë_¹Ì·ÿøÇQ›é¢;w¾ûÒË£÷‰o¹)Ñ–!gÈ-ÀOYÙG$蔤ªš&\É]Õ¸¬whT¡4…Zu ÊØK8à^ B‡¥&Š Ò3Ì-5ÇÔ… â,‡}sÐ!y+ªüd‹î(ÿµZ©³LŒúwõ:It˜ é`ú¯ZšÓ2ëÎò n¬UŒ58{´{2ã¤æeÃu…€c’¸zn²¬ˆŠâée?¬/V2rô‚$#T§éu’öaC›7Ëì¹õSP–ù¨–¤Îð8ªÈºXÖuuš4->ÑË⇋±Ô†âµ´1bJw| RVƒmtž–Š™a‚—e©Ê< À4樵'ëÒ šÆ6÷H¢ñš2…@96n-&åºeVgªzáX:éÖê„Uƒ» µ „8hì@Ê;¯À¨§VޝzÕ«H^qÅè–%({„íÛ·‹Hó–Ã"Ý’ŽCó‹³Ï>û /T4UÏT¥f»wß™n©%+ûQÝTe§-õ…“ Òjs²ë§$T`Ê’_TFÂ=õý12&+»À%50‰C4:Õ´4“$RT<=!QÒ‘t+›IºTl^62¢~nSÎøXj ÊjF%Ò‹Mf*•ØHx–¹’ů H²´ëoCÃ`ÑJ·’‰]«æ[U”Ôq” @H§ÐPŠK™hù:2J§9œVY5îµÜi V¹ª J‰[u]2Gé£zùºÞeT¤#$Ë@Éd舨ê P€†xÉR‘‘Õ]Iø†¨ËÌ2ì–Ò ½Lª"Êò¼TÆ›£¦ÓªÄêal4¾V dÌâfIPe²îIÖÅ>Å2%½a7š•L4ŠìÒ0& µä;;vìÀ °k×®O<ñöÛoD·lÛ¶m…·¤Žvë­·nÛ¶í¶ÛnK'ÇHmçÎÏÞ)+Pj7ÔìN’:æ+±šÂú+•ʯX¨ôƒg†Pµêy -ºÒgˆ„ýYØtNCÔàYèw²‡f³ïîþòyYÖW¥ª«–Yª>2¥S¾‹YÖ¿ñÆß’0l¾]ýÊõq™B *¥|£êÝ¢1ÓCy8”‡C!Ì‹F –e ì¡Ùì{7]ÿúN§ÐL5S "Aʺ®J£¬MAÝPC‘TJVžoVz ut±5)‹Ô5ƒÔ›,aÕ@U©²!TJúWeŒ *©®)W••J’jRV·k€4‹:•^Ê!™¥ÞQ0cú'¹0#\é3h€]P·ÌÔJëö© UHU5U×ÕÑ|ÌR.­e¨j)%[ëßf"K%¾B—Ü‘)µ›ªcÕJe0BæHºwý¤žªÌðè :"ûEe{܇Ï<î ›Èyt;:!s˜‰,†1híEDÑ}÷Š@Â.wß}ɳŸóÛ@×-»ëî÷=ëÙhÞù§º88…¢°ÚÐ¥ ûÂʈp“§&¸w„NÄò‰Éwã™0’ñ+w^”Ò ™»¥{ EVãîhlnø Õ@5rš °¤;¨åD,ÍpWC@اDš8N#”F„î^++óOA,‹‹ÕT€Á Ò2Ñ©m"e¡œËdß×_pê‹Î¿ö‹—œú‚E "v×ÎïˆÆ(¦Ðä© 0¡Ñ3ŠpA0ÿâ¿[t#¡Š!X”.Im€ˆ€ÀAyL I²ºxsøÜçÞ~ú\óÙ‹åô?w(iŸûìÛ:Éù Cñôv©$Yýk6[PœŽÚØžPǪªá(Y‹u3¦Œ³t¶tÀ»£aÁµH]&— ¤4 g„šË–RR§ª“N:iê5·ÞzëD>ÓW]uÕE]´k×®æ´á¶mÛ.¼ðÂíÛ·/NçÈ”ÚñÕ;éRIÍßûÖyÝlj_Bÿ»ß:·Óù^7ÿþw¿ý{Î÷¾ýí7}ûÛoîu~”ç~ó›oWÁ·¾ù×Yvàîo\²÷ÜóöŒ¸çîÿ¡R€"„…Nvÿ=÷¼é›ßxÓ7î>/ÏβYv Ï÷Þu÷¹wßuA–íUBƒIHÚ3<ÅåI Dû.Ýg=ç]ÏþÅsÍ P‡ƒKÆlÏ]_c7¿ïŸ¿þÆ^~_/ûÁ]_c'ÛÂ@u½©—ßu××ÞÔËïëfßÿÚWÏíd…0éþâ‰ïyî‰oŒ„iÄΠ“íýúoüÚWÏëäßÿúçÍdÿÒËïûÚçöÂ}_Û}îWï8·“íÑlJ ⨙…lAüf¦¹¦3Y>Ÿåï¾ýõwÞ~î»ÞÐÉ÷da…A'{ðŽ/Ÿ»{×ëo¿õu!Û×ÉöçÙý»n}CO¸û–7ô²ô²ì¾å¼^ØÛɆ)?·ß|îí7¿~×-¯ËõáNØ× ?ºí¦7t³ûo¹éu¹>œëÞ[nzý—o~í7¾>ׇTûµÍÃ|'ìë†=™b&ûat¾<R³üò{O}ñ5¨ ´d'-ÕåðK×ýN¦{5Y(¾týïtÃÝpàúkß²Päaï×þî×þî ×ý·\÷çºÿK×þ×NöPzÇë¾ð;å±×þw:º7ÓB4桟ëþnØÛ!fž‘ë~Õ¡hçWÏüã—¼ôí‘ ††q0E¥JÍK¹TŠŽ T²ÒPTBT•ª¨‚êS5T)HCy<’™"€–*Á&eTÒPõùJF‘¼)ðÓ1Ô Y©¤D\*±’ ¥MoÒÉ\2_T&Éx*/Ðʉ>E•”1XRÐSAêòAp&îŒdb®¦MšŽ§2ŽX©‘Õ¼š@‚(áDP§ èÁÈcœFA¦û…ÁÝw}à™Ï>èßu÷_÷ÌÏ~ÎÛîþ§w=ûÙÿ^uFⳟó¶{þé]Ïyί©ÎÐàÀàŸ¿~ññÏý xptþéëö‹Ïýï$ï¼ó’çþÛßW™ûú×þÞªLy!äÑfSC°hPJæUt4HBs#±ûŽ÷œxâ›ï¸óýœpÒëî¼óÏŸ{Ÿ£¾rç_âÿ¹{÷_:°í¤·ìÞýîmÛ.-¼GtD»HP7Ð-ˆÝ¾ë‚“O>Ï‘íºí½täáBܺëÝ'ŸüûÂâÖ]Øö¼âRO8ÝrÓ¹Ïþ‡bå=&£ÊÂM7¾íÔSÏO‘k7Ýtéó^ðôxó øÂ¾™(ÀìË7¿ï…/<_ØWà†/yá ßzãM—xыλñ¦?9å ØM_<ÿôÓ^gŽì¦ÞwÚi*QðÅ/]rÚ‹ß!¡sݵo=ýÅ ˜Ø_ü³SNûP©‡aÊá—¾pA&Pâ‹×}$:®»îüýÊÑéDBUl´c§CXˆ sðw …‚ˆˆ:|pígßöò3ßä¤{þ…Ï]væ™;”º¦ …ÈtÈá B‚ˆ;àÂâ³ÿø¶¡Àç®ùp|æÓo=ãåŠ(AÇUš£áËÅÐNjíÚ°¡°¤á,oF.ú”`½r‚«6šª ËZg54WSâ°*GÉOUû Eê~Þxn¥´Æ4VšòZ½Ù„c‹)À …þ¤ÏK€ÍÑZ Õ.Ή»œJK¦|XÁåë­·žtÒI'tR:@%ë¦jÃ#Qjÿöøãë*!Y \LáEš‰*ƒÒ ‘ æxæ³/u›èÀeÖ°>:(ëD³òŒl: ëD3Th€YèkpUEÈÝÂqLÄO=çø7D‡HP""B*ÉEUJ'’ªô¡×à"âÀsOzWÔ'°íy¯K£²8áy¿M Fœð¼w»nBüf…d.iöP©A4W†4qÑ1{ÒÉïq ¡œtêEÝ íP•j$4— '¿ð#f¨Â@ÉDC zˆ€qS!?]èOŸü¢ƒ9$¼à—ÿºNB&!*‘e AÝçŸö¾¨OrÇi§—ܹªLå¦Úb „ꜨGâE§¿wÈ­®Ç¼øô2d!cPª˜ ü•3.xÉK~Àg¼Àgü¡(TUU“sŸ,ýMãŽH ó°gC\z”@ƒ‡Ì”Ȥ¯âA]‰<ôÏzù[®¹æ¢¥1 Y(ººïÓלwæËÿ¤M®™*CЗ½ââW¼â\¯xÅðÊí‹@ÔE„ôä&C–ÕJÊ“ã,µÉ¦c´v–I.ÉWª¤@fÎÌ“ŒªýP¢ufhˆ&ÖÇ"I’ ÉUùOÓ1šÚ-¹ÏÊž">æïK8á˜Î\2×L’?´)E“:Ö@fŽ`¨ädé”l:‚S‚™J¦µ«w\’A$ÓÆÇä#æ„TuR›\cpXܺ+¹•éº £áÈ”Ú ·ÜÄŠJED¤œ‘ .t˜f…UU’3Bg ˆfDs w€Ò!à„heTQ'›j9}Û îH¢Œˆ  3N£„Ä_p¸ƒ ©ÂjD˜²¤É£”QË©4 ¤PYW.ÐêF ˆæi§Î¤7ÍC 8%P¸ž:ºˆrN¨VS—’PQ(9)ž¦ Ë̤ð %‚Xùv˜1/H‚" ‰k¯}G-T¢@€Î¤ÉxU-ã¿Bé÷øü>‘p‡*%gÀŽ`¨âŸþÌ;3 ¤UQZFäJf×|úâáÀ§?ó·CàêϾã%gþi*L3è°Ê3•‚e䬳ÞyÍ5ï|ÙYÿçþàe/ÿu–,@ˆ@(>uõŸH.C@$­²Èd˜N¨ªb „hnè÷©ÿð‰ º@®ú‡¿W\uÁ+^ýiU‰ñ4—ZèXÜŒ¤"J‘ï85ˆzZm ©ì·øÅޤÑ$/Ç&u}z<;xùåo{å9—}⪋_óê Œ`’nFQ°»ý5úɽþœÿ–Ë?þîíç\¸€-QfÓ|‹¤0”ÀÚßlôu»Õ*~0E “e_|Ê( ¢¤§ê~uŒ+1бqw)‡ÅÅA3Ö¬1wItQ¶=T„å)•ÊÅ^-¥*çÒÓŒU¬â[FÓº˜¡ªU ’ŒÖÔ6Åæ$E™Û«(c‹±ª×Dŧ´h½X—-C1ËÛž‡ Ä­¯©5Zm‡.uohÒîå—_þÈf?S?Q¦5 Ju€Å®]Áí¦J IJ§ô(T#³# A)NB$êéÑ8gUƒ™Üôå žÿüË! rpãMne"jƒª D4Б 02·ÔÕK21E `-³×q÷(`Ð4Y(Ò-Ç\UwB‡¦(¹§Ð¬8@ ŠxíçÏOÂ$áúëÞzú¯¼SДºB÷¨nF8$éGB ]r8 ì_ýé7Ÿþ«‘ä»Qºkéo ]:"!AD‚ÒAÒ¼A“éçÌ>õç¾ò¬÷º»UyŠÐAuïE@ÕÂrGgH¸n0G”YG‡ÌXv†ÜÉ>Ù¬…êìm?ç}W]uÑ+_õ.×-yªbÊ32»üão8ûœ øê×¼ïŠ+ÞvÎ9—¸Ìn?ç}W^qñÙç\JÝ*`ŠX#Õ‘G±[®3`W<  î!TѱHyk#?””Ò‰*€Õ+¼Æ–ˆU½ãKÇ/¹&{lŠ®Äš—¢‰UàtJSÊUu”²58ª(0)jiå†|–£õ­#¢i·úM매‡8}pÇy;GÙg ÖM«¢#Aõ­§ÆN­Ã'ÄìJ¦2—ÁJÜmMFÃ8¯M½~Ìü<çœs.ºè¢(µrEÓ”@wº»0œpò¥·Þö8~éy—|ù–ó!›D@Cft]$(Ýqó-öK§¼½ TP¸ù–|êùCB³`Äɧ^vóÍ—¦Ñóäçÿ©Ëæ‚ëO9õý·Üüf§¼èí×_w)%sÈó_xÙ 7\’ò©/ü@”'ràèE‚!$O­Ð®»î·N?í=‚n$H! ×¢ƒ¢ GÀt€‚ Š©;‰d ³ Y¢(ÃigüÑç¾ðN/>ý×îKc–8ýŒK>óùóœþ«ï…n ÊÀN¤}öšÿræ™^ ãP:ÈdËK^úÇŸûÌADàW_öAÕYw9óeï»æš©&^zÖ»>yÍ»^þ²w&²Hucº@@…Ô³^ù¾O]}¡8 8ó¦®Kò *Ü|Öö?½úSç¥Ö´ýUôÉOþÁöW}8º8’¬P\g‡CžUÁúì’M<Ö"“Êpt ¢¨]"­jì¦2tâœ÷'—ïüï Øþïþo„õ3dàa>“^aV¨)_ʵ!®ë ÀµC„Ä˺ÉÞO‘Võ‚É®R™T ëÞ#9 ïfÍ{$,8²!¶Ö%©œWì £wÝ{³óä!åœ!+°Õ¼KÒ16'"½œó‚‚€#DO .$B0„ˆ.Å‚pÀ™EïÎpÌ8Ó³­ëHÙ|Æýä<‚âÓ×ìxÙ™oú'¯~÷K^úGqDÃŒCëâоGH‹ÞÓ‹>LÌ{½ú‰ŠyA€¡ãÌ84¢KR±@áâPc€²¼Þ¡?Æ‚,ˆè¸géu2>,,"z‰RÁ8ãP#CA_0¤Ã‘EôÀPŸÌÐKy@Ù¬Þ @PÔùdŠ˜ƒì¹Ç ƒÀ`è °©ISÒõ} Ï*H~@š¢¯^ÖQÁŽ—îÈ"p`f@7R›»±ÐªÙU&[v½º;íÀQmL°d¤hõyé¥ìcÊ®^Á6}d –B)©¨†û ð&I¡¤®æ,í´¼Õ'›™œXo;vË”tª,±z(èÈ1÷Ï7^yÇ ;¿²û+WíüØ…;vìºmש-¶¯¼òÊ;vìÞ½{çÎ;vìH˦ڪõÉtËí·ß~ÅWÔ·L« ~ê[>þñ_rÉ%cJíÕ¯~õÊ}jéUÅ¡nn„ #‚Ó]JÛ¾<]Ha½DÈ­€92R@t"ža€A\ÙäG&¥sµãÜ2„bÐÊÙ1ãìDY"—rzò=üP‹¨$=W¼‘N弨.+‡á2ik”Uso¯v °jõE3CéFM{1UÅØäîE8÷ÿQÝ-¯.««:ºå¶ÛnKVaã å´n}f‚tê[V29²±k×®O|⇽xâ‚É]:êeñ›ÆM )5'DDÔ¤ÚH*­äØŽ¥P*Qú>Ž»c§ç°ÑÌ!€rH'àe÷¨w88ŒáP†66 *düJ+÷€[Jä×®hyÁM/}Õ_ˆÃE“{ΰù’ IDATþ¬W}š£œÉ*÷Lj Š*˜^¸”§ÆpŠÝ7‘ù”‡\É­IRDÒÖ@+Gºeª-¹”¹üS–º ‹ImçÎâÍÍÿ–ô¯9UþaçÿóÃïÞÙ™úÔEçšéL¿žLkñ'ž[3c=›SÝå Gq@õŒŒÁ+B±I­ µ)Árc˜’-ËæPíFK²¹3mó¸(ÏÓF÷–~¨G†²ƒ±±Á ÊÞ5O4 fÅRuúvYh¢Ü§l‘C¥-€Lœ_t™r˜‡sâÿ-žP„wZ<Æ éîS¾@( p8€ô8`‡0  ¦'Õ¢ÅQŒ–ÔV'–¦š }P`èá©ÿé©ý¬/¤B×0ÌïþÛ»k"Ã8 F‰4ˆÒ&ÎEùñ$ÿmQ¥N¡E‹Ç-©­QpRš¡ƒ“ßxòC½}‡f ò~²+IM:Çÿ ù°<˜)f¯×õ$ùð蕚[ŽO[´8Ð’ÚªÃz§©˜£e@X‡SÞvJ¿Û_è,ìÉ÷ydL; ."0:lÁû…Gº Úþþg¾ïYìÃúæ_ýà˜†ÀÖÌÆ©·”k5Z‹'-©­9€èáä7>ÿбölÚ³Ð[(²¡ ©$ ­€ØPEÄÀ‹hó‚¾Þ9 õ‹p0?î÷žÕÛß‘ƒºë¯oÅ<0€ÇV¯µ8zÑ’ÚªÃzÇAÒáP ¬Çqo~Ö¶üÈ7YÑÄ`Bq§Ò…$¨ áUFWBÉ¡CIqQquÿܺÀCþôß}ú=yó@!¤/7°Ø×֢ł–ÔÖ.ŽtqÂïœ0÷乃OÞ_u=€RJ³’ÑÄE!éT1 DƒBTL]31ƒÂÐ;t=dúŒß~FwOç+ÿïWÑ7¶œÕâhDKjkÐfqÜoýÂC[*¶q“é:²KwŠ‹*Ä&AI¸ÐÅ©¢tV€%ßÁ‡ž¬T£‰ÐU Ñáq`!,<ã·žþ¿¹€þ¢l bº–ïZü˜Ð’ÚªÄd0š=<ûÿxÖ–þÁ-‡ìI1nvÙ ºN=8HÞ4¡ E("ª ‘ZÂB”N¡¸‹³  D„™x€ LÍÔ‡œ·ŸöŸžöÍ¿þ&|ÑVç mh[‹+ZR[•˜tfeøùÿøô‡·î‹››¨ë(ë„3tU„”@NsÐ!pÂÅ] IR]¤€â¤C…!‘4?ªâ|1ÿÔÿø´oýí7q ÑæX†ÑZ'[‹'-©­r¤`´.Žé/7§Q¡Ý aq½íÛràÿáç‘­ Ï+ÞY¤E‹GƒÖü\µ¨ÖBÅ'y±9†u‚.\£+‘±ä5R|g$,ͺ»Kµµ…Jx,½ýL+=A!# æn–â<$ fÎ.‹~õENó¬µhñãBKj«ä@ÎBgÁ¡°: 7Íg²\ÍNŠ ‹ £QHay‘¹ˆ8 "îî’"<Ü„»•æ*4‰>3ufDváC÷Ù˜gm g¾«ÝŒ‹g*Xš´”û“€Öü\}(7nT ‡½åE6c®Ñ!¤ U tš‹;“j#T$*ÉðLK DD(@×°u€ŸøOýgþ¯†<ÖxŒÉ¬h€ˆ“LÒñdŠBI¥KöüÄמˆl4‘ú8¾õ °x¦¢ý‰B«ÔVÊ.€YÜ´¿ÈF'-9¾ETH‡Âi”þ5°”p@°ð 8nŸän)eú¡ {D ¤ÌQaf$]Ñ$ÐÔ(¹ØÐ‘³èÈÊ€5÷Ç%ª£Np"Þ­~ÖòÏ[üm7·VÑ’Úª…bÛ·íë><Ì ª@ÜH§€$„HÚJÅÅH …Eè ÄÝ…ЈnWþuÀVÅ~¢ïpE–Ã,ì…“ ) ˆÓÌCš65(% È‹…õ èóÀã§65å•<« û‰BKj«‚¹l¡ßZ$w #D⢀¸ª¢´ IP"í@@ ÈBñƒïÎø !F 虇 AZ 凸)˜‹ bìŃëýÂ>î®?ùg@ܯ}ÓV¢È–¹qòä£ÎO‹£-©­B¤U†¡?”!¨8=ùÔ p:™\ý."@„J¢7¨¦ÝÔØ çÈÉ @Ú–ÈÝ“jET¥™W"p:£A$Ù¶1së ÂOäN_|1IyûÛß¾øÛVýÄ¢%µUz8῜°‡Ò‡‰Ðƒ¤_ƒrqŠRI:Iš ‘ö‡„»R* !ônÁ-}ïÎÈ °—1wppOðƒ?(2ƒG§ŠG‡Ð’‰ ŠgXº=FŽ«f2ó7CRµÜŽ\DþþÿûŸ$•Bò5¯yMºÅÝ?½õ£ý$ %µU:˜Ë¢» é#î""tIÍ=TP!*(Åš€Jë`ïÆì˜A±¿ÀBô"Ú`SçéæœØŸvð ébN#iâTZ]Ì…ªââÆÈP.}ŒÐ\—_~ùììl!„ UUÕw'"t˜Ùõ×_Ûï÷÷ï?¸ÿþßøÍßxÌòÑbõ %µUŠô æîdúŒNpÐáînNÂ#4hMg &@;¾WðÅŽ×Ç °á‚­wß/ŽQ~Oap¦¨7:QNƒ*EÒŽl ÝBãÓ^õ´oþ¯j?¢„G­’£}ô¯þjÓ¦M7nìv»¨ª™æ:’ƒÁ ˲ùùyÕ,˲¿ýûàƒž{î¹£Ô&Šñ2Ôâ¨GKj« ,í©g?µ/}c„‘f$IŠ0í¯AGŒQHc¹pÀ#(H¶g¢3…$ ÅC °mPD8 ÎY À˜˜îâpdâ1ÝcôóZh0öÛz >ò‘l¬eY"µ Y“ÑD„dqY–eY–çy–eªúÁ~°Ékc…Ù2ÚZDKj« ,§úY¿¯}8Åhfa¹$k&!pqwšDŠì’ŽËPµnß7:A»ß½ïnF0Æèég"h°hˆŽH3ƒQœînæš/úÏÉ_½:yÏ{Þ“Ú† 6lذ~ýzU ATU5 !ˆHÍkf–HMUkj !œÎkí[­Q´¤¶úð /úù}¾Ï`t Ê%Qå®»“–&c åHk>BÒ @P  yÆM£¹±~`ƒ"Îtp øƒDFšÃˆ3ˆhˆ‚háÃB"(¤€&¾ä‘M<Ö´ßÿýßß²eKRg6lHëÖ­K†f"µ$Ð$Û3ùþÁ%vËó<ÏóÑò|àMozÓcW -Ž^´Ë¤Vˆ¸ë w#ªG‡y’H"(y4˜#šGC„Žè+>rh€*D!±ÈôÉ’ïÙiÒ=}ݺçì{øÎu¸;Äý4w÷£—\–þ:"‡æ…³p/“ ¯{Ýë6lذiÓ¦ÚêL“ž‰Å¥¿5\u :Ès×P›¥"’eY¯×Ûø¤-³Ç»î)O¹ðâKÐ.]ëhÍÏU :™¶Ý0ÒH#±pf´h*´è„“ð´ÙyÚ¸–tD7G¦*&6Èð`+¤xA,8zt8Ò¶ÝKJ­0š p°$, ‘Y´H‹ÚÕ¼ç±Ç[[6lÈó<±€’Î8’fé–!ð àä†< UÕ+ˆ{ÝÁÖ-Ãá`vnn#Ò2ÛE«ÔV! Ù0 Àî€1ÍúQœ!.IU• .¢ô|¥/-PÝáÑÝ µùàû:þ£Žÿ°Ç¨ï Öww3c¥Ë<‚]"}èa…#Ò£{á!QµûoþÑ“E¢­ßüÍßü¹Ÿû¹dxv»ÝZ‹Mh"¹@> Ü|ô–›Õ¼Aš1°N~`vvï†õw-ômëÖÎÆ —^zécX-ŽB´¤¶ a¸÷ªïôæ;:š#zqˆ84:­ˆ•7ÍË€ŒÊüLŒFsˆÑ‹¢ðh4÷Hh„•~:H0ÍuÒFÌX¦`HÀÐYÀ ^P‹ qÊV‘+Ü;2 ¨7nÙ²evv6Ù5£¥k&@< |xÿ=ßøÎ† }@U%”εAÞ½÷˜ÍŸøÑ÷ÍÎίßoØ´~ýúǺ>Z]hIm€y‘©î±m¸àƒ4%ÊäVKz FqÀJ>JćEšn…'9†jf3Eí&‚KÓ>šñLÞ4÷/€HXk&‘Ù0$/Þã×ý×ög¶ÓéÈ8X ^KˆÀ<ð÷·ïþ•§?c>„$†Ýî°Û½y×mÏüÅç.õÙ™|¦;;;û˜UD‹£-©­Z$UUC²ïè}ÃÐ%¹™¹; gáV´äÔ‡ ‹8(lã (‡…8Òõî´Â“íéÎÚð”diF BÍ£Y“íéÑÄ(}”k¤Ö¯_ì±Ç&GØ„™YnWÓX?èªë®;ç„ã7›ú9@2Óà|¯÷¹›núߟûÜg:0;†²N§Óë¾ÿýïÒ~èíôçD;Q° á@lØ‘8?DŠA)jT1q’Úa,Œ„P­ÂØH³Â@eÜÌœaNK)Óx N7ÐÀrBÀhDaaÃÈ(+Û³pF à·¿ð­ÒüöóÚ3æ\$è B51¥NsFÀH·. ”$Ð 1"ÖzÍÝc,µÒß!$JŒÆ Aa6„ÏG9²}9ð(W4-‘Z%ÐJBã8Räí8<ô„ yî¦wºí×ð#ú@ä`QÜ/ú!‹-£­a´¤¶j9Ø¿˜äYáêº:T’dsC'Äad­i(îæÕú‚XF˜Yú±âˆh¨¦>‹ÒGfCô8„G²p:"}à6ï6mÎô`øÎÕßFR›Ü±c*šŒVNÝ’îÑ,±›c¯‰È!àOn¹ùþÞÌ|–#ÓåÎ ƒáæ~ÿ§ž àn¸yo·s Ó=”e_ýþ÷gÉcŸ¼uªµŸhÝjk-©­Z0Àw¯þîS~í§4W£¹xˆ8Êßcw¡:ábJD`*Ô¸‰ +RKJ­Œ³-ùË}HÄ4ïé)ÚCĹèóä!ò€„ƒŠAccÈ#Å£0³$Òª‰›0BÓ¬î+žwòÞªHÈMƒžrÊ)ÿ¸(úóóܳgÏ<‡ÃG›×G1ZR[}¨V/Ñ1ÀÂ}ý™™ÎP¼…ˆš¸“íiî>ŒT·€ô{iî@@… '’-"Q›[á:¢[‘âàÜ ‡±ÜcH,¸Ï™"¢³¯ûƒÏü`ŠkúºVöûR8æ˜cªp9ŸŸŸ‘N§W)@¬hÑ NÆØ á©ÀÏTŒf¢…bÀ¢(ò…ùÞp0×,,,ìß¿óì`Ïý ó@«ÑÖ,ZR[}('ïÒ¦ŒþÒÞÐÝšç¢À®®ªæ‘ Í „«Ó”(„dDÄ 7§»ÃÌã0J$†î¬(ÕÍ=1ÚÐmÞ0GÌç4ß–5<>úÑîØ±#éµ………jýfÚèÑšVgŒQ’ùì`ŒëÉ d’u‰Í @¿ßïÍÏsa®³°°°0}ûŠ}û‹ýû¹Ð ²ÛâhEKj«˜ÇžÏ>plïØ ¹ËÐĨ½@F޾K`¡N…dN‘f„»+é1m×íÑ=Í À ·aD!¥:‹ð¡{ á ns1Î99È÷®ýúÓTÏØ™´u‡-:¿è&w3‡‰ÔÒî³³³åOa¥k'‚@´O Ê=2‘­(Ša‰8ÆápØï÷ûýþ`0(ŠGm*·8ŠÑ’Ú*GŠY#î¿úþŸzõOi¦¦ftºó 4…X†æÁUšô`L­°a„…y!(Ã4]P/0ÀæÌæ¡5?cøØÈ´„………Z¦Õ+¢TµÛí¦ È´‹/Kb²èîM¤–¼„É€M¤Ö ¶á`0H¼ö¡}è1Ëq‹£-©­ D`Å÷Š0«ª´ÂðàT·@Éh¡µ ‚ADÄQ0w’±°:€ƒ…!ÂŽZ"5´yüûœ…ƒ¡û`ç×ÿ°œ8ÌLâá5Z½÷Þ»yóæšËêU‘N§SŸik’"YšÈ˜" °ç3{¶žòdýiÑÍÙ ÆŽ#Ð6—\<ˆ« 3*òpj\96øñ|ÖYgéz C¢ØÇ“º¯¯AÔ¥Q yžW.—{zzÖ¯_ÿãÿxŒ AS‘Z‹Bx!l|l#˜°Ûa»‰³ì—ÂTÀ°Ü+«•‡dœ(Æ@µ)à<0,ÇJUÓ¯?ö÷š:«5å"L1 @#y- C$2b4ZÆä5)¥]iJ­§§§§§çöÛoƒÝN0Z‹BѤ!€ÞþýÛ…YçÍzyíË ªŒsÅ$!É8ç ˜éš¶c¯{b¸Ð8£3šd>ê¼öóŸÿüä“Oæœû¾¯³Xl_q"«x­¯¯oÆ wÜqÇhïp‚ñƒ„ÔZ5BÕ–_„Ýs¦qƒqƒ K˜`þõw¥Zµ,äéjñ#FÝ IDATjËo·€I³Á|g:£*ÁÝsÏ=ð©O}ª½½=NëbíðÃÏExì±Ç„4a@'µJ¥²aÆüàCýDâbkI$¤Öº`  ª[}ˆyà>³8˜Š2kï%{A¿ò+¡¬†a%°·¤_÷^‡oc,` áþçN=õTä/d´Y³fé+üñÅbqݺuï¼óκuëÖ­[‡³\×ýÖ·¾5è6‰ËFkI$¤ÖR¨KìnXº‡õ–%’AÈêá(K…^(…”†Ü£ÝÜN0Æîºë.8å”Sòù|*•Š5^A=mذÁó¼[n¹%¶¿.€‹/¾¸­­M/pá…nׯ­ÎMH­õ¡@`@ÈÈÍÆ@2JC…"L*P!Èxyìqƒ»ï¾;ì°Ø¿ô[릛njüîø¼÷ÆD@ŸýìgÛÛÛwÛm·l6Ëê{týèG?ŠêÖcì´ÓN~kãvTRk Ô•m¼Ê€)x÷‡ö ŒÚ´GÆjײT ‹Ý2Å@‹f0ÚƒAêmŒ¡”k¼s0{cÜÞQMÁVä_þå_ …B{{û´iÓvÛm7š³IË”ÀL€Ç{Œ1æºnÿ©§žªomœ~Bj»€ {´oá›bÿÀ|Å©ºšë¾8þ€I¶Ôá´{lÌ‚³ã Ãò'>ñ‰B¡ÐÖÖ¶Ûn»uww§Óét:+‚¢÷Æ>^8°”í|ï½÷–J¥O~ò“ƒþÄxó„Ô&4¶A7aC’)  8Óêó×Ú0©8v]’Àp–šïnC:ƒz!YCãêîj.t:+ é©TjR£O”RÈhÔZðÇ?þñºuë.¸à‚Ø·1OH­ÅQ»àXT£QÃ^&RJ¦¸å›¦oŽÖÚ 8ç·ß~{ZC¹\îííýЇ>Ô¸òxc†Ï~ö³mmm“'ON§Ó™L†è,•J¥ÓéA Kr꤆åRÑBˆn¸áüóÏoöñ ‡„Ô&4tVµ)Å)®8SL‹nu©@"ífÞøåu-ÖÇ%Ü}÷Ý1Пþô§[¶l‰}¸+0Z#q_|ñÅHdHaôJˆ‘Ñ™þ!Ð45ÒkØëþúë¯ÿÊW¾²-{Ò$¤¶k€â"uƆµ³€+¥XÈ…o@0N‰LG̦³EîÆÃ­5fˆìW¿úU]Æ"‹Ù¶ÝHj$Óc†a赞p$õÒO¦ÆØ5×\sÑE ¿'ÍBBj#€Øm6ø:0ºŒ±»Ÿ½’C‡:pÝ ¥¢~æzþþù8¹µš‚/|á ©Äd’ZÌ•&„É9Ç–c(ÀBuß÷ñ[¦ibÕ:üÅqøIHm°-'•S œ6FDÍ÷¯€(€H@0Úx»4‡‰úd¢ìùèNŸiš:—‘XÓy-NsQbcø¶.«K<éÅÈUJÝvÛmŸþô§Çáàó­¯’`$ "ЍîFý‡ë%"c »gr¨åOrœI5Žs)cÀ[n¢ìíØGã¼óÎÓ Ï˜É‰¼fYÖ— ‹qœƒÎhº—M7W-˲m»»»ûÝï~÷ ©ÎMGBjcñcÙE{"€IÀ•‰#ÆÏ`Ž+œsÎ9Bˆ˜"Ó© c—:=1ÈcÈq’ ×4]ÃP‘O-¢hÛ›²ÙMùÜÆ\vc.»9“-¥lß¶Á0»ºº¦L™rÕUW5ûÐãHÌÏƲeËcÕjUŸM=(eŒ‹ÔÿŒŒQ ¦@ÖZ#3%Ùø€Fjº¬ˆõaÙÕpÆg†Ñ¨ËlÛÆ'€h¬x”ÃLâ:ÒŒ@à € !¡%<˶2wÝB¥’W*•Juuu5Fœ›Ž„ÔF ÿùŸÿ©O4¹å–[c}}}½½½ýýýÅbñ‡?üa³÷±É@(Å”’ “ Sp›½_Û„ÆàÀ.Ëe,³-9cƒ t1G<úè£ä¡À¼Ä©I)}×óú(ÎAÉd2Ùl6Nçr¹B¡½½½³£££«««Ëg¢Àz‘Ïeó¹\®pã7b¦Å ½›V1mûR1‰“ ”PÜœPÉ·C½ÝÕ€Œ†ä‚“:õž±b4 pÎÁ{øýï>{ÐA{dýAZú½ïÜü׿ì;~ Ë÷ÓŒ ! Ë´Rv&“ùîw¿;æ‡>$¥¶Ý¸é¦›&Mš4iÒ¤ŽŽjL©7©¤–n¸`h uà;7~»\._òÕe?1‚=Uô6” ƒLgJI Bõê¯×ÔÍ‘÷ˆåvP!Ìñ#ÆxQáƒ;lQ™F^ƒúè 0pâû?Ð ¬pÈî_=³<](üá•—gÏœåYVJIº¶qJÖð6 !µíÀ²eË&MšÔÙÙÙÙÙÙÑÑ‘Éd¹ŒÂ0ÔÉNG”8*9°«¯¾ú’K.½}®õ(ð!¤„ÂË$cRƘâµÞz„ô˜ }² @Éö$FŠ×è+J)ÅjšÝèP€BöšŸ_xp`3ÀOž{î# ì¡TJT .,ô 3›ÎŒÙ!o ©m:5tuu ¥Ñð2 ‚@Ÿ0Lªtú.ÂP}ýë_¿üòËGq¿%Ì™?ÛYçærmÌb> %™â2`–gž`efWRà‡ÂBq £¼t †ÎZ[»!£Y–¥ê zâÊ!‚hY(•B?ÔU¦Æ ðÀ°•jSÊäÜ5¬~iÚtI£ñ;öÇ>RÛV\ýõ]]]]]]1™V—ÍXf‚(vNÔFF((¡‚ a8ˆ#c$¡`Z~š[ñË/å÷Ìõ·÷—¡_f¾šËöf½¿;fѬ]¿ã ÛÎGÃpßÈí胶mÕЦè’¶6˜¸¶L…ÈE³×Ø :l¥@*ÅA)Å„`œs&¸a™Â4 ËlÊኄԶ|¦¡@kooïèèèèèÐcL±Wü²˜RJ“¦ú¾!”Z¨d2Ã0ÔkŒ¼²P ¤‘ö„Y6*oVE¯˜²ÇTÏseEz¯û¬—·•Û™Ã`”©uçABãÅ_4Íš‹Ð÷ýJ¥rØa‡5Z›Î©Tª‘ÑôôÚXˆ¿%¥Äñ €¹€°À,i€àž'ž8vÉ’ÀàœqèÈ…A@ €Õ¦iV*•fŽB=RÛ:”R·ß~; ´®®®\.§{+tŸ….Ó8çRJιR*ä|“!BÓh“Ò ¹a¶m§½”o{AÊ÷}ß󼫮ºjÙ²e0jÊÂP »’*ø(É«ÀõU ªÂ@†*ƒB";‰Ù³g···÷ôôtvvâØc¬³³ó7Þ€þþþÅ‹?õÔSÐê êK­èÀ4Ž£)Ťœÿ ž}?}ê©-¶]´Ì²i޵敬ïO­V?¿ð``é’%?~fyɰ|Á §/XÐ`9Õ0 A*¦ Z­&¤6ñ€ŒÖÞÞŽ)Úº°o¤6zåœû \΋¦¹Î0–?³üä½÷IDVC*•ò<Ïó¼t:íûþ—¾ô¥ï|ç;£±ÿŒ1¦¸w¹Â€=Ïó¤Œo ˜3gN{{û»Þõ®ÆAM€äóù0 ÷ØcÏóÇyä‘Gš¸Ïc4!c†'‘š>\doâ[\RJÎ?´xq/€§m¶ à„…o¨@;@;@›ã8ŽëG(—˧Ÿ~úø0HHmë¸ï¾û:;;³Ù¬î;#±6¨+1ƹPJI!Š\¬eðƒ¿ü9S(Tm»ÝqÐ&Å|]¬yàyžmÛ…Baw{Pû‹ö0vŒ#¦ï9ÒÙäÉ“mÛ6m‹1&×´ÜŽ 0>ƒcûÑÿàƒŽÇðÇÈ!¢'¢-Z RÃu ª&DÔfa;c9!&×笚Y¦ A   À>J¥}¹Ìó@@àO=uìâÅot8.æacÈ ŒfY–eY8y”Ž"F˜FGÿoÔvøá‡#‘áÈàr´ó¢pãçx»ò:x’s8úè£á5ÕÐÔt¢á#ùˆïûC Â0D "ñ«ÇÙu‚#î#eGϼÚ:’1Å%Ô6KŒx~µ\W5H¦ImwÞy'EyböN£MGà€ï­\±hñb@HÁ<Ëòm[ ƒi…’©«…"›ÍwÜq;°Ÿ;0(tò«V_'8ôÐCI!©Qu|}™`ÔCHP}±~ðƒÍ>¬‘G*•B‹{(Fó<YOJI$†!}¢/ÇLWb´Ø¿Èöô}߃R¥Œ¤¶Wà Qjƒ@÷é ¢‰Ùž:© µ‘2ÀMk^YtÀ¼·<€ÍëS™MŒ¥3™¬V'ýðæÛ¶wL¬ ÏJÌs¨ýñÜ%`V]£Ù¶iY”C#b<®0 I„êþºK8âˆßþö·Àk…Ì'8‚ B©ïAàyžnaÐWp¸t›®×p›øä®c7%(P@2-ß÷]×%ósü<Rúé¡ÙN¤6ü£Iؾüí_þÖẾ`oå²)€ß=÷ü'çÈ9ÁÉ­F¯øÅ¶@ z\db4oÓqðÁ[ƒ ÖĈ1F¤&¹ð Âã†ä ¥ôT¤2àP©Xž§?xÂ0ÔÝI­0 ‘etŸšNgDî©T ó©QÄŶS¡g†®ÑpMÒhžçAPuruÜ™Ÿ © ‡‹.ºe|.—kŒµ…a¨?cè¸bö~.€°à€_¿üòé æw¹~€!:&fVÑí‡NÀ Ütàvww7®SjãXŒ O„†Djµ4ÀÀ4‹©Ô{-êM¥ª‚€V`ÛÏë}àÞnBÍΤA†á1Çóë_ÿºeâ¡?üð 'œ€¢‰5D±¶mÊhú2n„ׇ¿ˆ.@‹øžçUJý•RBj ø$Äi´q˜6… †@w$à ÃØ0É©¶d”r9“£1ÆÂ[€ÛŽ ì¹çž¸ì8N£ÀÔyM3Íš‰ùóçg³YtŠÕ"žQú(ÓRIé­bÕªU[l»lšçEÎ7™æ1³öã¦)„À~ÍŠILÁ›¿Ù‡8Â@y…p]—®ÉFRcŒY–…ߊi44`¡žÔtÅZÍVú¬T*7ÜpC3‡  © $¯˜[‚Dä»ô»ºKÂÕ¬£êXAàÕL!‚ ¥”è¡XµjU___[[›RêÄO¼ï¾û¶º{CÙ›óçÏŸ1c×Rç\×…Ÿš.ÓºººŽ?þø ~øáí§‘Á¬Y³,ËÂjÔ–e‰ZÛp`L1Á¹!¯•ÞDý•6) •r·ã–M±%écpì¾óþú»Çß„‚qàJJ œ1Á)€‰µÁƒ>øñÜ÷ýjµÊÐHpX̃BCx+¥t±Fž"­ûT*ÎW¿:Š5fv © |êf&ºf=Ð#Q÷B,„d†²]ˆS=”û~P º;޳ÿþû÷öööööÒã­¢‘ÑæÏŸ¿çž{bë ¦%p°†AlW1a‚s~ÜqÇyž÷«_ýjûGk;@t¬ó²išÙlVWg´2I3`h¬KÊŒÆd•”œ7û€—V®ÌJe²Ú Òåè»$µÒ2@FC·¬Î_C©6ü>žñ¦Ç\çHjžç¹®Ob¦£4ñÀ‡BBjƒ€î´›nºéÛßþ6e÷è‰<änÐ…:®Ö~Ð&¥RŠy¤æûaÈ™3g@±XDFë‹pÔQG9Žãºî³Ï>»ÕýD,]º”¬6œoßÈhô­ØuŒí éèŽ=öØQåµAcHj¬>¬É¹Á˜Œ V7C?¦ 0¬îXŸJO>xáÛÏ,Ÿ\®pîIP cŠ1ŵF¼£w\MçyÕjUh×u.‹1:×­NVïMà Æ8‘1†C{{;ÜrË-Ÿýìg›xøhµ<"ˆE?1V€)¹Õ JéÖï4" â5RRJéù^‰ öØc´aóù|¡PØ}÷Ý{{{¯¹æÇq¦NZ­VÇ9òÈ#]×uçùçŸj?<òHTgäb§ëxPÉCߥ :j°0`M{ì±®ëþîw¿ƒQ«x¡ov¿ýöÃjNJ›´È¢˜€.Öè¡2p ^[½út¦(Ø¡óæÁãÓjÑ)ynñi.zè¡N8Ah€( ™NhLµÕŠ_EV§îPÓ'µa”ÑæÎ[­Vq¦Íw¿ûÝû·kî èhµ<â@Gl©T¾Šxšc™Ùô ¯‚ë` ¤”h̆¡ C…ˬ·Ýv[GGG†Hd(ÖªÕªëºGy$~ò§?ýIßÃ#f,ÓHê²=6òX¯F´7]×=æ˜c<ÏC[ö×_ýW¾ò•&B„„Ô¶TjHjäêÒiHƒú¾Ï²{jw Ý“^www#©Ñ\lé~I!©qĸ°bÅŠ#Ž8"–§jY^¯´Í¶¶6ýˆtâ «™¾õJ󨣎zì±ÇÆf¨ñɯ¢œuÆXGG‡®/hñUráqæqæ2²•AŽ!ºH%Žn.î½÷ÞSN9Eç5]­ãeéû>LhÆ1ÒÔ›Ÿ<šH[”r=cÕ0ÌT*¬\v]·âù'ö‰rTdÖ }Ïó¼BÞn+䥼ôÿ»ú_Aƒ„Ô¶‚0 Ëå2ÍÅ) , A½L£(²C%± ]-q1Ô#ƒÈ4º!U4Y‘Édr¹œïû:¯áÂ>ð$2JÁGR‹¥>@ƒ0æSCóSOÄ××9òÈ#üñÒ9sæ"PJ-Ô[Çø¶T*Mêì2¸ :Ãü\!0D¯euΚµêÿ¨ .¥ô¸Q1jƒœèP‹©51ZÑo7*•J£+-¦Îhb™þ3?q”\×}Ã0ž*À²öééé,]×ýÔ¿ýÛ€õ`ÝÿüóŽ1Κ¾ß¬öþþæzRÛ .½ôÒ›nº‰bgB, QÂDqqhPkAÄbž˜ØÁµPcì†n`šÃˆ^ñNÎårù|=Èk«W¯nkkCFK¥R”° Z¡J&Ƚâ0ØbÛÆ•’†KÊšϘEAF©a‡³ØfÏž](ÐchÛvŒ¿h?‡yKê˜r*P3Æ{íµ×ö™9“oo=÷Ü»ý@i3´É†UJ•Ëå\.wÔQG¡%µ|ùò8®qˆýöÛïwÞ9òÈ#ßzë­˜:kd1zH£®'±Šê2”e¸)ÿ¢ä†LÚ”rc©ß(¿ð…/T\€_=ûÌ¡-¬ø€^€?¯\1wZ÷u×]wá…6uRÛ íI=SйÑdCƘçyz$‘n!º°ðQ©‘š ù÷¿ÿ=•JMš4 m.G:£Aƒwå²Ûî»ï® 43Në„𬗠óµ”Ý„YÁ3RIË´ò‘à'®ën»‚ÛÉ[W¿ùgÍšaY5ÇB6›%fWQG\?›Í®^½û~š¦°,㡇:ñÄ?vÒ œó{ï½Ù0N[†iš¦kX¦i–ˆ1n Ÿµ¾ï—eX|{m‡ilH§aッ¾d´UúfÀª¶UâÜåüÕg–/™9+÷öZ#—Ã䵨PŒqd&!µ­/µþþ~Ô°15ÔÏ7Â{)–…€inx{èºÀó¼R©ôž÷¼ç7¿ù ’ÚÌ™3ÿð‡?àŒS ‡a·=÷ÜS+\1=æÄ ÈlŒÏ>hÁÌC—<»fõ\ YϦùò‹«¦/^ôò3Ïf}Cʶ³ÙìhÏV‘ÚÖgýòË/¿úê«ñɆ¦ëº8§'IÍ­Q"5º[\×íëë+‹Ó§Oß¼yóu×]wâ‰'N›6í•W^ÁG+ª‰t:?§»Ø~õ«_Í;·‘ÑtJŠQ ç8Sš”ù“’ó’aõ¥Ó“JåLÃFtj[¾|ùᇮ ìj#º‰é©A߯_‚ 0 ¿N¡=À&€ÛW½øÁçµ8¦i¶Í-7¸óã°“HHmûpÑE}ë[ßBFÃ, tÕã²Njx+ƬN׊î½÷^Ü>ÁK/½„oçÌ™ƒt¦s\:m"j# ì0ªÅ™Œƒü·n*Ñ"éMä5Œ£Ñ~6ÒALA”ºÜ…$w¤®¤¥6œŸH ·þ‹ÜL1ŸhVp;…B”h¹ Cѱ>†˜-‘‚Ã"?úÙô} ‰Ò˜lã¥uØa‡Õ…)5X›eO IDATˆ†fŒ±Gy$“Éà ˜™¡Æ€SÅb_©T:î¸ãÈOrË-·twwO‰ðÅ/~yÆŒ‹öT)Õðw€7Þx+—{`KäMÛð“U/}`ö`3@?Àz€L>?¹ZµL¡Ï&lRÛn\pÁW\q¾"ÐjÀü \S§°©‘Lûá¨oÓMË¥RÛ\qŰlٲȡ›";”î™Fk…T›ã8Åbñæ›oÞÆŸ{õÕWqaæÌ™8Á€$! &²X½a0ð¸iB!¶Øv¿0ÞxžgÉ ¶$GJfŒ=þøã‡vXŒ˜bBŒ¨„¤ÑÉ1œ-¯kyÃ`f5hIαɺLÓmO]9A°víÚØi¦ @¨Wj i:h 8Î9&LÁ¡cA?õK—.¥å¡nÁ‚:‹éÍ0 Ó†!¨ˆ9¹Œ\iú@€bà~©T,•ŠùË_z{{ñÊq]wÆ Œ±³Î:‹ô±UŠñ@*H ©À?oáÁ>Õ´L¬Ù4à?æ è/Tà—ú¡¯×qœþq0¯ !µÇUW]^x¡~ŸÐ|rY_TƒJHm×^{íŽýâ+¯¼K–,Á»/b=wD¿ÉÝFJ)Kªµ/¯š»ïŒR_Ñ©¢aìó¾}ÿºòÅvDZU]TAjæ-ñç¼R© e*JvÄ/ÖˆÞÞ^ éê³|ô82‹üú:bŒ&£ÂúŒ´jµAOOOŒ×è-jm6JK^¹ÆˆàðyÖÈnDpøá“O>IG-¢N‰fCg,˲LS!ôÎ ¡iø‚ mN&å¤R.ra`Ëç¢T*õ÷÷/X° X,…a¸Ûn»Å8‘¢@===S¦tC6 M*ªùAPQP(¥pŽS)•J•JµT*‹Å»¶G ©í,®»îºÏ}îsh{ÆBï*šHàE¥õn½õVÖ` n/”V?mÈ|RÖ¦IJ¼é€sž ü½Šý›_|¡mî—‰Ýï¯+_ÌU+)Ç~@AÐnW¥‰!w”J¥aˆŒôÑïÿû8´W_}•&Z³à>Ää’ιøëÈb8òHm®ënÞ¼9æËŸ9s¦]Ó Å_úBl¸pä9çèƒÃHQcœÁ÷},Æéû~oo¯Â¬õ_”uaèeW\ÓìO§{S©¿M ¹\Ú¶;=o¯bÊóôÝÀàÀa‡- Ã0do¾ùæ^{íE+ÜqÇŸûÜçH¬‹½…B±AJ6ó¡ÎÆgL(H)É»R,¥Ö"øïÿþo8óÌ3õYd¼ Ýu×]øù¶{އ‚nm±ú)è²¾õYŒïc¶T¶ë2Æþöê«%`mÕj›çf]×ð½xa=UÑÇø‹Djµh’REalûSÉ_zé¥yóæa}º©X…”ìȶ…ú9¶$Öz{{7oÞû!”½ˆY³fÙ ÐAÛNpúŽ?EQéñFÔ¶bÅ ¢3] éñÎ9Í᜻–YÎçß=oÞ9$d ËxÞ/ÿû»œsÒk®ë–J%t(¥èˆb³èn»í¶/|á Äk2 ¼èëàø æ»¬9@t×J±XÄéÍEBj;ý¦ýÁ~°í+7¾Ýv0z=Å£òX¤ð•×Ï@€´çî¹%ðXÏ|ŸûÒøLg1ÝãŽ?Z.—·Â†9ÀaÅŠ ., ´ó˜ž¦×AÔo<Ú·—¡^+•J›7o^½zõ0ûðòË/Ó‡HpÈhÿ!šCë¶FpJk_BÃóÁÝÿý˜.KñhÑ)ŒÕòiLÛbŒq`<“6oÞ«o¼þîrõÙG~Á+›ÖÒÿüOn¿ã½¥>Ëó˜”i˜AÉ97 w^\1Æ8Ôв,ß÷ûúúJ¥Ò^{íjOuF“Z@Y)²V¤òœZ…TjCî±DBj;…íb%Z™ÄÅÿ¨®M 29IÈЕs.%>f벌 l“ž”¹,Tè!‰41S_g:¥Ô0våŽÆ xæ™g=ôP;T"E_Öo<²:cJ­Z­nÞ¼ƒÈÛ¸:Áí·ß~Äk1ãT÷ÐãʺrÔ0ƒJ9ò‘aZFlâ0ß !803m— !l»«\þ—Ãw€Ýµü™>ÓêM¥üj…1¿Ø×‡ Çxàö_ýõ½§ïÅÌ@býúõ¥R©\.Ïž=;&„é |ß'ަËGOwö÷÷'¤Ö"ØÁµ“èSO=uôÑG¯ñ¨khŽ^Zf,2žŠQe!¼BCY—ySj:£ Å£'Ÿ|r¿ýö›£¡„w8I6Õ ð}Ÿæ®ãÛm‰N ]ßÁÅØ ùƒ†PR Otã´*ŒhZR†-cŒ)à@aeÜ6S¦iHŒfà/*Ûê7¬þ韦(Ñpí°!²óHHmg1Jgnøk‚ ./š­ õŒ†_Ìmô—)$,5ÀhºXÓó¼Â¨.æV÷m'¯æsÏ=·»»g›3Æxàß÷ñ&" ‚@—l¨JôÈnO<ñÄð¿µ]»ºzõjZÿý÷Šàl­ë ÔGoè“0 zè!=8s&ÐîÑaFÕ mÚ© ´8/§Sç%ƺ÷Úgc ,˜Ó³‘WËxºéìp¬úûû)õäè£FR;á„t]IìFanVŸŒ Q™{=¶[,1Õ Ñ,Fƒ„ÔÆ-¶zM ùÀ¢ì‡Á4#F“ZHTçµPI ñtÿ©é"n[ömÇ®æã?~òäÉS§N}ï{ßK÷öµ×^‹¹ïœó·ß~åŒÎnø]š#…;Á6æôï°Ä¦)0gÎÝïSpº™¬K9]¦QÌ4VWj†a“[)S0ž3ø–Í›§tv:í>@»ï®yíµì~ûsUÛ¾ˆšªpÎ¥ °ð/ç\f𢝝Ïu]Œ¯]»öÐCÍf³®[eLQ!:Rrtè1±5aqœŠëVÏ>ûì&ª3 ©MH  I7L ]@\Q×+ÝöÔY¬Ñ¡FAoG¯Hì§?ýé©S§NŸ>ÄÐíéc¸¼Ç{pÎ_{í5}†‚ö6Ö’ÆD/I>cÆ ½Y„žâ‹ê‡ì›TDd†Ëäe#½f #+D—ïoèéÙĹ„V¥$”L‡aZJ®ºëòŠâ›†alܸ…ÕÙgŸÉd\×Õ×ÁDt¢ACãѪÕ*–rÃ×|ä#c3ÚÛ‚„Ô&$üñc=6v‘æÇáœës¹é2ÕyM VÐBEÈíÈ<–Ï=÷Ü©S§î½÷Þ…B¡­­MŸ¿-„Àh#hwûôéÓ]×-—Ëårù„NøÊW¾2cÆŒ5kÖ óc&ôÝxßûÞ7¨v#ŽC™¦?NP©Ú<]<­†µTS&š¡~Ðîûf´‡ª(Ã^`¡Rnµß­Zõòœ"eaΞ=»½½=N»®+´ŽS,j?Èë[±èv1]oÄeøú±}l †wÛ‘ÚDÊ4¨ïðÈêÃðœsœ‘— êû¡ jfÆôZ†®ëþáÐ}D˜bÙ²e]]]mmmXG7—ËéEA.¿ürLfæõµ@È}ÖÑѱÕÎlcÃh¿B3Û`ÆŒ±Ô[«X¥´iX ™¨úÄOÔkÑs¥^Y+5s¯÷¾¶ò…ß³U]ñ¥ÁáÛr¹L3Iõ‡"jTšdã.ÅÌO,´K¤ö¯ÿú¯£=¼Û‹„Ô&*üñ£Ž: iK'5¼dÑú FcZ$i %t_5ºÛp!ÇqªÕjì×wž)®¸â ¬“€mÈÚjkk«T*PïfÒó6:::àú믿à+_¼AÔØh´áEWp3gΤú<ºK×Dt‰Î”R¾_›"æ|³e“vÛbY!ãSCÿõ_jwÝ\àaWTY¸ÁJ¥‚M%£½i54Ï=ZbŒöéOz´Æt'ÚÆc=vôÑGó(·–G‰ä—‰%à·t™Æ¢2>1 w`åjµúì³ÏŽìž_pÁùd2®5ßmoo_¼xñ/~ñ ×4ûÒiÎy—ï3×Å}ûîw¿»Å©n±m7eŸã×_t1Ȥ‚P‚’[߃&¦1Ì›7¬Nñ4é@ôÐ(X}Å%76nܸ¾ïçJÅœïåÃÀÆò¿õ*z8¡Á÷ýŸþô§§žzªŠ&ع®ÛHgz]]KêŒV©T¾ô¥/ýn R›ØxôÑG=öXÝš ³SØT}…"¨7?€Ò ¤””熡çyÕø[FÖwÝÝÝÔº…HͶmò¦¡RBœxâ‰=mm—>ùägœñçïܘïë{ÿûß¿nÃú|>ߟÍövumð¦ÀÅøß<æp]p]š@jÛ8´ZU1ÁÏcì†# £Z|õ}@ÎMÆÛÃÐ÷}îyÜó̈Ã0TŠI90¥‰žR8]îºë®ã?¾Z­bßœaH “NÐK[‰€¤öÕ¯~utrÚDÝ%#T)E!B¦% ÐwéñKŒF º‚_xáúÔß½;Æhçw163%‡î'î|[[›oˆR*Õ“Íóés·(µôc'Ú{­§§§èyÕ¶6ŸóMoþ#•Ïöôô¼ÙÓsñ¯ýÍcŽßÛ¹qÝAlãPÐj2ÊÅmÔkèÒ¢ê˜xf)" ü @J‚ïûØ@V)ÖÏÊ$uFSœsŠ[xàओN‡Š]_šMkY–”ëe‘F»òÊ+GvôF ©MTÐ%NÎ5$M¢ÖçH‚ÆktÿèqÝð”RV«UÇqÔ†úÝÃÇ?þñ®®.ÝêD±ÀêÓ 8çÙl¶lZou´—¦v3ÏëeP©*Ç©V«ÿqÕÕΤŸ]µjñn{==ªÞkV¼²æâ_ÿú›‡×@F3IHFHg4ämðU­OH9:J)Å TRÕþTìüâ´s}¨ÞòYg…5ĉÎhªf´ù¾ý³o½õÖ±CBj­t®¦ÚcF¤¨(…ÃÈTÁË]FÈ(ŸÉi_;L&3uêTÎbÑ[z{ÖYgõ qó3Ë·T+ÙL&~µâ;ÎÅ_ü¶eöÛ©²i¶+• ý SUËxEäCã[߉qÊ’QðŒè¨/jÛˆnÉJ) $ë¨h2,E±ÉülÄwÜZ™¢Nd´{î¹gT†`ÔZ‹àÑG=âˆ#t[ЭQ¼tšþHG6Œ† º»»³Ù¬]«%Íõ<»ØÛÀ¿/<¸à;«VI€OvzG¥à&N&C}‘R2 b+??ž°fÍšÙ³gÇ-61‚Ó5] 5Ã3 •–JMñëZï;ϼá4ìVËÌL$¤Ö:øíoË;üðÃi:ÑôéÓÛÚÚ^~ùen,šþ=(a8L/Ê:" 7\&“™6mš^Œ¬fhÈðÀNœ=ûáVrŒÇÑ )!„ap˲l%í EjY ¶mˆþ21FÓ3 *êj¬[ ±ljÝ¡†U3·kw8Ô\$¤Ö"`QöÙO<±hÑ"Ã0öÙg¼%-Z”Íf±>ýo~óÝÛÒ"”Ñvòâ¦ïf³ÙŽŽ©M´¦;ah-)õ-pŽt…PJf­Yˆ`Üà¦a)–JM4R#/~†8K_#w…s6‰Ô°xV0F0mæyä$¥føêÛ÷}ß ü?<µ}«‰ÈhZË@¿þþøÇ?ÀôéÓy=Â0<à€¶lÙ‚UbÖ®]«?χIFÛ±‹›¨EMs'OžŒ÷í’.Ó@˶CxZ÷I{#7 nÐõ}'•ró¹~媛Ck|'©Å°fÍš<ÐqªüAÄh‚ ÌA–¯ëìIÎà5{h…Q²Î£>Ú”Ã{$¤Ö²hTCºy¢”*‹¾ïë'FQ„NÑ]g’šî>ƒÁêG#ÊQ÷É·ÞÊæ©û¤ ð€St÷sÏ¿wÞÜr9[îë37ôlXµ äöYXÍ…ã8º !„CΘd¬fA %r}c4ÐJNÑ8c¼' ý@† ¥”˜Ã±‹ !µ–o@Ì…¼bÅŠmÙÎÎØžúÏ=÷\}ֹͦ, Cè»&~fùÛ™ì;ÝÎdÔ}ÒûÄâCÚRJ½Áü_¾°RAØåûn¥rbXL8ª/¿üòìÙ³cŠ•kSDb>5ý”šRØ?ÛýxAø¡ô}ÿ§wþ¤IGÙ$¤Ö²`õ F‹¥zn#åXùÞ÷¾÷µ¯}Œ# eÐ~ªhÚ:˜ð+Y€Ï/<ØÀœQ@`J¥ŒPfd°—üë»ß]©T6­ïÙ²ic¹ áÄ0?iTW­Z5wî\š†YïY«1æWÓ@Ñc€ž7ºFÀ@-âwß}wó޲9HH­e¡û­x”ž¦ÏZû]Òãq$CTÔlA ¨V¬¨.Ô×Jª­æºÙJ…W«V¥âõõ–‹ý¢Z@>55cŒaÛИ5бQ=)g(¥¦s™ïûRJJ¯Ý¥Zë f'Æ|j*ª¶½Jm#Vˆ¨J'5¦¹Ô¿¨ … Ic7#,è:öµóX³fͬY³ô Lë¸JO&JÊúžMÑpᡇjæQ5 ©µb<¥3ZL©…Zñĵ×^û­o}‹2§Â0dQ^Ó°ã'ä\Ó5ѱÞCI {°ýA°…Õ¼yóèñ#@ô´5 jÞìy^<òH3§©HH­eAJÑ$^€û){E“°Za6›E'QÌ…¨P¢.-uó¹ •ʴƹ(¸V¬X1kÖ¬\.‡Í †}—ÍóøÁÒYÓyE55iýÖíEBj­‰Ø\©U¤iúE÷ÝwOžlÚ^Ž$¤ÖjÀµž•KŒh®OpÅW\uÕUÔÎó¼T¦Mƒ‡ÈEX kÖ¬¹ñÆ›{ c]©Ñd)ДZâJ#$¤ÖjPZûHÝü?>5²eË®¾újì¸NŒ†>½ï$Þ®Žã”ËeÝð|ã7n¼ñÆ]ÄÚ¢È/ÔW‚ú¦ˆ»Èh „ÔZŸüä'c>5l§B>µûï¿¿ÙûXÃ%—\—]vr¾Ò¥˜ê`ðuãÆ˜À±‹ÜÃ!5"ˆ”~NÞFò34u7ÇRkAètF“ÆU4÷sœÈ4W^yå—¿üe¢3Û¶uŽ#:#”ËåoûÛÍÞë1…Rвj)·ý ¼¾|S‚„ÔZ±´ÛXôs’ IwÞyÈe–eÑcb­ã8·ÜrK³w³i 4=Ð’Ô ò3èY‰šZ ‚<Çzæ­ÜþJjc›o¾¹Ù»0NÑø4¢Ðg¬nÇx>¿cƒdFA ‰ {Jñh6»ª¯ù“`bA~’d£9³t¢@Bj- ¦5šcQQÙ ¡Ô ©5?¦hìD7{Ç RkAè¹Kµ„Ô&"bÓ ôy I  †„ÔZ±|¥íŸÑÏ[…žiˆŸèI|‰ù©#ˆ×ês!ˆÅ¨?@sw/Á@÷‡êzMJI©jÍÞÇñ‚d Z XRo@'µv'ã*ó6Á¶cÍš5ºRÓ}‰O-†„ÔZ TÏG7?•V<¶Ù;˜`AJM×k  ó¥K—6sÿÆ Rk5—»éJ-!µ‰ Rj4E„æ·¯5{Ç’äÛVo@’¤ÖR~üãß}÷Ýõ9détº\.¿õÖ[ÿøÇ?Ö®]ûàƒ6{7›„Ú[ Ts‘¦Î$¤ÖX´hQ¬‚&¾ÆNw‚dZ ±ÙQh{&ægk»ƒVtˆ²:ôB ’Qh)`Ù†X”€|1 ©Mh ©5úÔtWC³÷q\ …Vu‡Dè-!µ lë šá ±&ïâø@2 -…³Ï>›.q|ÑYBjd~ÆÜj±:‘ ’Qh`Ò0 j›#µ0 “ÌÛ‰ ì¾.µ ‘d~&JMG’ÒÑ"ÐÚt‰S @kIÁñŒaÎŽ®Ôc×^{m:fŒQƒzÇqN>ùä{î¹gˆm"åµ¾TOH­¥@\Ö(ˆÍL0>1ÌÙQJ=÷Üs«V­²,+—Ëuww£ÐårÙó¼/~ñ‹®ëêU‚wµ3žZ‹€:ãÅI’ÚDÇÇ>ö1[C6›- ù|g( €I“&€ã8Õjõßø†ã8W_}µ¶¥]åì'¤Ö" óSðÇdZBj§vrY*•Êd2Hgù|=§HjŒ1½Ñ³†aµZ½å–[ªÕê—¿üeÚà®à|HH­¥ k4>^Û}&ØFœuÖYDgù|¾­­-—ËåóyÛ¶!ʹ­;^«ƒ1æû>váúþ÷¿Î9çàç-ÏhZ‹A—iQ‚„Ô&>ó™Ïd2Rgétš&{š¦Ù8ÃW'8ÆXžç !°UÅwÜÑÛÛ{þùç'J-Áƒ÷Œås$ÑÏ „SO=uÒ¤IDd1©é‘nι8_ÊPJyžcI _à†n8ÿüó›}p£Ž„ÔZgžy&ךH !<Ï‹M“‚]ÙÐXºté>û죷vÆe\°m[Wjõ¼†RÝ!˜aBøTà}m:¯µêã-!µÖ^ß±Ì[}šT’y;þ±téÒéÓ§Sp€mP¥6¢Ò>’š) S(Öà›ßüæÅ_ ­ûxKH­u ÛžƒšŸÍÞÁ[Ç{ìaY•K# dCŽ#1^GdÂMCqn(Jú¾O!#SÜ´¼”¶¬qß÷¿ño\zé¥Í>ÖÑBBj­Ý›F‚$ImáÌ3ÏB êG³,‹LÑAIͳ¬R:Í2ahû~ìJðRÊc¹0“ÉHÏu]WÿݳC“Éb­^?•=Qj ŸøÄ' Ã@òj$5ݧ¦/ضÍ2ér>¿9þÙ—÷„B†aš¦iš–e©´Êf+…¦ɓŸëÝbwuuttttt\wÝuôÓ­Äh(µV‚Îh1™†žµfï`‚!qÒI'¡G?Æhºg _-ËBÏ)µ&¨˜ÖëœÿìŽ\¶ ;ê/U{° Qb]*uïkK·µ-ikÏ÷õU*•r¹Üìƒ-$J­u³GôÌÛ¤ÔøåÊ"£™¦9T‡eY4‹!„\¸¦éqþŸyæ¨9sC¸*"50Lß¶+–]µì'^xqß}¦;¦ †Èd2¹\.—Ë]ýõÍ=üQBBj­ƒ˜ù©·ÅKÌÏq ä5L%Ó;ªPözÐHšq@`ˆ>ÓüÅïŸ8gáÂé™ÀWÑ6…¡iôÚvѶ~ÿÌòÃç0 ½ê¤7 #•J!¯5óÈG ©µðê×ÍO2<¥6>Aå1LI2 é ?ÔmIVÎ9øèû—tt˜¡d¨ýc.cî\±röâÅ€€y–¤RF*mÛv&“iîáŸÚ^¾øp^¼xñòåË£¬´ C)4Ú¢E‹RWˆI¦e2|,é^3Rs´>~nIÕ%€˜X/°Hý9·®yeî¼Þp6ôd3ó¨V¬JŶít:=ö>HHmc–e–IW'Þ*zÎ-.¬\¹²Z­êßm±(þ„Clð…hxÒ¿HšQÖ! 4ü ç\0°Â1¼&ј¾M€T>ý—?wº^`ˆd³)€çŸþÃïy·iš¡eY–5V‡;¦HHm¼£‘}fÍš…ÑzÓ43™ŒmÛÔ*M­b€® IDAT_-a†2¨±[*•:ðÀ«Õê+¯¼-ÅŸèÐú®“Rt’âʺù Q­!ѰÍ€Ë÷ßßàV<ñÒêž3»cÓ&XhšétúÎ;ï<í´ÓêeÿGBjã1ö™3g:\°„ƒn’heg(& ôƒ0B:®T*sçÎu]wÍš5cx †Ã™gžiY–ª¦ÆwzOO]¦cLrxÀs\0²)€i†¡)Äf€É®ÓÊŒ”Lp×0P6ë¨G ©M$,X°À²,¤3¬OO:N/¤…ñ¥BÆX6¡h‡¢'¥X,Î;×qœW_}µ™Ç“ ŠT—é‰8ö‰qÁØðžzj³eõÛ©²i޵敬N­–?¿ð`²-…i€I®›f ·i†a't´œ/"!µ‰ƒ:ˆÔY:¶,KnÇ.z®”b¬ÖE-\9 C\Á0ŒJ¥bšfSŽ%¥”뺹\N5@Oàˆùt,]¼x €£}ÒQ¿‚”Òæ|À)‹§]W ŒF@+1$¤6!°xñbô‘+"ýxéë–p %!ˆÚðöÈd2–erÈ!O?ýtS*Á÷ýFFÓøš~úPÓ Æ;d¦Ô7 @ó† @‰Pv ˜)µR©4ðħ–`Ìð|s͉шÔèoÌ`€PIPL¢F£~ ¾ïSzG6›=ðÀÿô§?5ñwe Ýçû~†ƒ’Z,â RÊ$€”a ãÃó,¥ä¶ •R~à£/"‚:Rk!4™ÔFʘo1§aÉ’%8ÉÙŒ€Vœ1Æ ¡”b2àÀBQÄ…aH(ø¾Ïó<¯­­m¿ýö[½zust×^´A8ŽC9Ò:¯áÓ‹V¦ÚÅø c, •ƒ[¦J)RI ¬F…J)Ïó<Ïs}¯¿\*•ŠÚÚ‹]´5aFþä)&Âøˆlj\XŒx¦Î[„–Å` Ȇŷ“'OnöîÒøùÏ^­V§µ‘ Ž&ˆ­†ƒÜDõ+„øÖÓÐßߟ(µCŒÈÈG@Ÿ|þ󟂲Žûî»Oÿés\ˆ½@À}nÜó… êtFÐmOqè‚‘R1Å9ga´Þ!är6M“lHœkÍ…ã8(Òohª¢+5¦|&„dB÷¨£)P2J}b4ßõÊý¥R©ƒÝ2ìþi@ó}j8 çœsNww7Ö)ß÷}ß':C‚;묳ŠÅâÿþïÿ‚F‚ñó1Ñ ¢}nÜóööv˲ˆÔb5€˜ñ‰ÖÌ×47¦”²Íu,ÏcµÑ]¡Û8™LfþüùÏ?ÿü˜}ß÷«Õj[[ÏóÇÁ¬\'FjÑÃŒI)A2ý´ÆÔ¹5ÛÓu]×-•Jýýý01o™áÑ|RC:ëêêÒŸHèýñùž{îiÊQŒµ£gÍšÕÙÙ©žèÑÇŠó1Û3Zef*³¶«cÒóÿß‹/¾Ïtn˜4‡bùDdx¹ST¡Ug8C4ž÷;ï¼[²JjÞÍ[ÿøçAàãv°QžEUZt™æ»žç¸¥Ré‚ .П£­¡ÑM µeË–MŸ>½«« ïUÐ ꕚ”2:©z6òšã8•Je¢óZ#pÚ©3šúZ@¨ŸØŒ®1Tv3fÌxò/n"#CnÚ–åâHB&¦o±¨¶ífö® "— 6ضÑjª¡FÔ¦_$ÊcA(jymùØ2 “Ø[Ï›†SR»ä’K&OžŒ}r¹œÞí†N!h O†^!O_8«V«œó Ž?þøx`,eTQ((&qß°`Œã(ýq¥uí ª«WÍLgÿœË+¥LÓ4…áK_0jÛáõ Bœ5kÖË/¿ CÇdŒ8h„~øá“N: ÅZã­oi®R›ëº±@‹Ú¿âWH¦Q†šã¹CíIk`,H oŒË.»¬£££½½½½½½­­-•J5ž6Z‚_™VOJ, Q2K…1„ãŽ;ƒÃ è 2{öl ›@ý¼?V ~QçZa†i˜&ù˜RoóÚdÂåQ¥ú®~«pÎ-­ÆVÂeMÁ½÷Þû‰O|»« j‡¢s1æyhµsÑIŠëàíƒ'Ú÷ýr„R©T.—O9åý[ï¹5¤†CÖ¦¡P( Egtãñ¨)¯ï»è& ÿF›e ™ Â|>icp,£ýa‹•ãë¬î­âœÂµ‚¨BÛ2 a Ó†Áé# œgLp&c Ð7® ˆ¹ÕZìrŸøÉO~ræ™gÚ¶MóØk*•ÂÈÔ“ Ñ™ÅÔ ì…Œvæ™gÆ~®õôø™Ÿ×_=i´¶¶¶t:=(éÏße–v@aÐÓ÷}Ïó<7Õ2ï/¦‹ÊURJ´U[ù–Ïç=Á1¢á ™¦iÜ4L&¸Ç ×2{L»”J-ÛͤTåžÃ\¦‚٤шÔôm š…üàpå•Wê÷yǰ‰ÓRs@K>ç‘£ÆqœþþþaèŒÐJŒcFj…B鬽½½P(èOžµç<¼À´ñç¿n±mP`u0kÏ|¾[©T€Â)í0 s¹ÆõN<ñÄûî»oâ>yæÍ›G—)dœÒd)ιŤ,ÙüõBî|þ­lÆÏeƒI]–™ï/e¡?çûÜ£-Œ)€GárÖÌœ9«ã&h..»ì²+¯¼’2×ô6ÆÔÌ0±/²:u{³T*ýû¿ÿ{³fì0¤vÛm·ÅdÚPÁÎk9„œƒm™ .è*p¥ªªÐ ¿ýí5ÈçÍbŸ]­ÒT8ÌTÀ‚ÈähƒãA Óì%Ýï;P£á3\O˜6mšLgr)\·ý]»wLr;wíóÏc*RyŠiA¦ÍœMÄÚøÁe—]—^ziŒÎ°¦¾ÅóEB .Ã׋.º¨¹G1Æ Rk«1Ý™ y¯ñicV>”Ó+•Ý%„aX¾Ñ0J¥jej!—3 òÂ0DË”’¹ÿüÏÿüóŸÿ| ŽkËZÂHüà ºÌ„œƒR¡Rµ|KôçÊ—VO5ŒÎÀVŽ[q*ž§¤ ¶*1öÉ(ýtrÔ1q•okàßø\tÑE±ní¤×(k: CÎÊåò׿þõ¦î{0ê¤ö³ŸýŒ4Z6›Õç|нs¡dKÕéûžTUÀ¸ÇØ«/­:|ß÷å’-¸‚Ô( b‚BiÅg†±=#uÑ}×Tª=õ ¢aîJF,¦oŠ1F“ ¤”/½ôRã^á$×\sÍyçG,¦3šmÛ–e½óÎ;k×®ýæ7¿‰ëï²¢Q'5ô¦e³YL)dšŸ›iNMÐÊu`¦;ʸÀ`}†QdüÙ•+ì·¾R1}?dÜ‚°LÓ7-Ëò}i¹©‡vXww÷Æ‘že4à,TR…À9—§^(Òw\ë9„1¥˜^Äf`;Zúu0J©%'¸ùæ›·}å]öTŽ.©ýò—¿Ä9Œä;‹q«Ï¨ù‰ÁûÒéß=÷ì’çg«•‚ ™”ƒ°¾L˜eY8÷?Õƒ Ì›7oÚ´iÝÝÝS¦LéééÑc 1‘Ò­3Æ":«s¨i XžK­ñJ,Qu¹&RKбûŸ –€Ns›bŒc7h˜)5@j†õÈŠ œ/—;ƒ¤ £ü5ƒ›¦°ÃÇ·, N ó“1¶ï¾ûvGÀQPßü‘µÍaF]&%p®ô  ¥@)P*”RJPa]ñÁáмñH`0b¤“}>@£LÓM!Ò&x»œ-«$—ª   eV)h“«Hša~ú¹‘:¨‘E£cþüù(Ð:;;)£…Ì@Ýœ¤Ðhå@ëqÛ(Á¨‡®Åˆ¹ô_ýõjµ:uêT¥TRR-ÁDÇ躟\×Õó6t¥¦Óœ.Ó RjUÃ|Cˆ{ž{þ”ƒìã8íµTδ©B0šý ‘™&„øèG?:ªÇµcÐmÖ¬YGyä¾ûî‹sûi48çGq„Îk*ªw²¤éô·´<`u†R…R)ÊXŽ6„ý}Å\.—ÏçÑ—§ï0Óò<$˜(]÷“ã8¤ÔtowÌêlŠ`É`R|_)¨Íg‹H’LCè&ÛøÄÁŒ­­­kÓ #ã`©RªœA¾îV“Q‘nüDÏqÓù.b7LW–RÊl6뺮#«¹\Ž£ÆØ¿ý…^ ­íÀ$H0]R#¥‹xnK€2ÿÿ·wæÁqT׿?÷ö2»¼`$y!†$8ÄïâªTB„%,N ä‡%¯ˆY[ØË„-¬q( R?Iñ3Yˆy1&ðÀ0¶1`ó3UIÌ{ °,y‘¦gzz¹ï£9ºÓ=# ÙÖhFçóÇT{ÔÓên¹¿s¶{À¡_˜7?é• Ã…¾"sF÷@õpÉÁ~½®AsÄGP-’ ¦J´˜|ß§»gÛ6y£qECs[Ê !ÓÕ¼Î@…zdͲ,#gHÓÚÌÓ4yhÓÐ …¨EZ¡ Щ±•:.¡aà3liˆ>•Ĉv=ÔFó]ÇÑG¶ÆŒ…ÝÝÝ]]]¸ÐU×n<‚Ц¬k™PŒ•û8Ǥ‚h ÐRSÉdR•gåb¨sæÌY·nŒàZ'¦q ÷3ò‡a¸G÷P74Ȭ“Rb· ôzŽãÐd–úæïúøgΜÙÖÖÖÞÞÞÖÖFF™~O|ßß¶m[WWŠÚ[o½uì±Çêf)–Œ‹ÊåHb€Ó‘ˆû  Ñ¥‚>í#páYj¸±`ÁÇqÈÝã%ëÿìçGƒ¾‡ 3@†ÈýåJjDoV…Ìz>é<D)¥dAc Ùµk×~½¨Z'\ëG .D:aEb‹;wîܱcÇöíÛ;;;iNݪU«Ž;î8©-õO$¡VÏ¡ÿ Jtêç5JàòÒÈIRi£Üg·É+N?—<ð=±ÃôÏPXjP~qH8Ħ«DГzøEÊô‰yÈ«¯¾ÚÙÙ9{öì L}}OýáŸ={v{{ûøñã)¿ •šëºhuvv¾ôÒK‘C­\¹òøãדŸd"V +W @ea‡Ò†Ú¢ô«js^pRA.—ÓP”¶¹sç®]»vŠSõ° 3ôìwK …Œ"AäAPµôŸj r}5uU#9ëèèèììlkk³,ëÝwß=è ƒÂ0ôì°ÃPÎÚÛÛ±õ•¬,ÓBœuvv¾ùæ›U†‘5Jëæ-ÝÕ‘±F¢7îð³étZ×5üí{tE#¿ŽaêÈ>^Qyó–[n9þøã“ɤ®eúcIºI_DÃÞº§ÙÖÖ¶sçÎÖÖVê&fYÖ'Ÿ|’L&üñ}uE$~áóæÍÃüæ˜1c"i_Ü( $g¯¼òJÕÃΘ1£­­­µµõ“O>!ECwwÐXýŸ^Ķíìì?~|Õ«@¥Ãž«R+oޏ¢{¼¼Q ³?ØÇ+ â|üñljDbôèѺ–AeóUЪPëxGŽ•þLŽ=: ÃQ£F¡œ‘®†ÑÕÕµxñâ'žxb_]Ô@Ð/|Ú´ihµ··cõœ¨\A¡”ÂØ&Ö­[WõQ_¸pakkkkkk.—;è ƒÖ¯_¯;¡‰DB5âGjI›î¶#ÿú׿ …¤I“ú™%¥lii¡Èy£èŠösjñ“Ÿüµ{«àYáöòåË÷øq†8û}í÷ÇŒmRR©D#õ™0Jk¹£{ É P°;è¢öòË/ …™3gnذa_Wœ  ËÙÒҷΤ”X±r¶zõjº:ý ³gÏF­µµ•ÔpÞ¼yë֭â‹j?‡ˆ´ÅÍ÷ýI“&ýóŸÿ,‹“&Mjii©u9J©t:±×¤”—]vYWWדO>YõS‹-¢ÆvØ'“É€6ð¤ìÇþð‡;vìh¸x̰e?ŠÚ ]tÑã?žH$&Ož ÕDMJ‰ 6"ºååÙÔ7M5¬lH$mmm¦i>ùä“…B!›Í¢-3{öì¡\Ã8}út2ÐDeõncÅ)ZUÍ:ujkk+*Z&“‰hâQGµzõj×ui(¶ZêGÚª*’Íf_xá…… Nœ8«LâÖ¾™L&±ÌÐ0Œ³Ï>Ïß¶í .¸à±ÇÓ÷'9C-C9à MmQ”q¦I[KKËÙgŸÝÝÝ=< ™Æb?Š¥ÃÐM$íííRJJP êÑd¹9‡.pô•Á¨Q£ÂŠÞ; „øíoŸ":oÞ¼ZÑ÷bï\b´ñãÇÇ•ˆ*6P ôŠóçÏGE;à€âGÀÛ5eÊ”íÛ·oÛ¶-¢k8N-~L=YŒ:‚ÛŽã¬Y³^}õÕ¹sç‹Å‰'Z–ù8UÆqÛm·‘œ¡f%‰%K–,[¶ wþþ÷¿oYÉY6›EE£;yÅ“)•Jø-åû~KKË'Ÿ|ræ™gþþ÷¿×ÿ.ñíø?Fg¿»ŸJ©n¸áî»ïÆþœcÇŽ…²™éðEmé=œøõny pï½÷ !h<­=2 㨣Ž*‹o¿ývä”D¬¤ •¶£&hx`\‰Àu]’³xÅ2}út2аX *Gs !víÚE‘¸7Þx¾ò•¯à|{]ÚLÓ¤«¨e£•J%V¼ k×®-‹Åbq„ ¹\®Ÿ?â¸qãP³’É$IÛå—_ÞÙÙ‰a>]βÙl:¦¿~W‰XPχ7—Ë}úé§çw^OOÏþð‡ZŠ6¸?3r¢~ŠW]uÕC=„­‡)ȯÛÐ×?áSy&·nÝ:qâDQeÚÿošk!mÚŽ‡Ø"ÄܹsÑÚ^½N•6<ÏÓ,M™2eüøñ¨h˜Û»œ]]]Û·oGE«e3sÌ1¨h¸²=b !P‘—_~™>ˆ!¹ ®¡¨¡ÕëºÝÝÝÝÝÝh”Å¡›°qãÆ7~õ«_8qâ׋+¯¼¿E°ß'i(â8NDÎHÑ”¢!/fý­¡0EJ¥R&“éìììèè8÷ÜsqLÃ|V†®Iì%—\òè£&‰C9DQ*•ô [òU#ºV,]×Ek7:::f̘1µûî»Oÿ7MýP2Öj…ئNJf0€ÖGJðÃ0´mûðÂ`óæÍsæÌ™0aB[[6A‹È8ŽCZ­Š \8…Zd%­³³“ 4\‰¡–3;^~ùe4l'L˜ ;³ª<÷›ª=ÚÛÛ)vöÎ;ï Š‘œe³YÊáâšþŠƒ,©””ò€Èd2Û¶m»ð yä`»ŒùŒ ‘¨¡ôP&ý5(›iY‹<Øžç¡– ×uQÔ\×]¹rå׿þuš&§nBïbhSø"!¶3f œ¡G Z«Es¯úJR,Þµk××¾ö54Ðh‚®GX±AUµU“‡vjY[[[6›Õí;ºÇqHÎV¯^-ú­DÛ›¿ˆþÎo¼qä‘G¢®¡©W\q9û²¼ìtܸq¶m?óÌ3cÆŒA»,•Ja‚;™Lb÷öˆ@WµÚ0W +'ÀâÚÚÚr¹ÜI'ôÜsÏíókgš›!5|~nºé¦;î¸Ãqœ1etaÒ×iã?‹Åb¡P(•Jº¥æºnOOÏ#<òo|#v¡ûbKm¨¨”ò¨£Ž"_ ŸCYmà 0*þ0Ó:~üx¬¹‹¸ŠX±Š¦WlD˜;w.hãÆ«ê´A€AQÀ`?¦J\›jí ªE#{¾ýöÛb;vìå—_®›i %¯}ôQáJc’eÈ÷ØÝt±øë0?àyžÐº½S8Ïpþüù,jÌge¨g”\{íµpÝu×Ñ@‡…Ô Ñ… 7ÈdÛ¹sç½÷Þ{Ï=÷œx≇zhü· ÉJº»»Ñ9BE£õ§Hê ¼ºˆÚ^éK_Šd3ÐSÓ+6^|ñŪ~øá‡“FK,"¢†yRJ Ä@Û£k¦Ëô@ö|ÿý÷ßÿýcŽ9¦X,êku¥6!téÒ¥£GÖµ ÕfëFäÌ(v˜á÷Œd®AËÞÜ|óÍ7ß|óïýF …ÒgÍš5”¿þ¦›n"iËf³PNƒ¢u‰¦!ù|þþûï§#,X°`þüù$ P9. ÃB¡P(6oÞœN§QÎlÛî½øÊ~¹ú¶('gõ^þAqÄ—“R“]]]µ‚\ ,@môèÑqëLQ*•Èo­•'ÕÙ£¶—!fÍš5a„[o½-S:Õ[o½µ½½=“ÉË©ûžº¨é¯ESåi¤”ׯ×R©„zü«9Ž“Ïç·nÝúàƒÙµ3 ­Þ[¾|ùí·ß^çir8>úŠ+®;vìèÑ£QÝ|ßÇÿÖÛ¶mëèèè'öúë¯ïرãøãÿ¡õë×g2™Ñ£GS•Q9Ó òÜË£›Hà„rãÆ÷fΜ!„ Ü¢»½¼&]OMêyä‘d •hè Ç# 2VMÄÙßOµRjýúõ…Bá…^˜7oÞäÉ“ñV†Î{dHx2™Æ¡º¶m C !ô^ž½c% ×¶åQX:º½†²%¨ ‚ ½½ý´ÓN{öÙg‡æÚ™FgXŒÈüå/¹7GiÉ’%ñÅŒ¯¿þz:¶50Àßz4M?lœ½aÆ9sætmïìììÜÞÕ¹}ûöîîîøYM™2¥­ µºZØHJ‰yR”³Za¸:²y󿫝¾úºë®›;wîŒ3„7ÝtSkk«îrê15,V)¤”†è³ÑèP¾i–é„á¹²ä%Ï0¼Hb„‚ A0kÖ,5†éŸa!jû„eË–uÖYãÇ×£HzEs‰²ñ€°A ´¼P“6Ô5cýúõX m3ÈŸ%æÌ™CK8Eeì LaR®££c ]}†¼“K—.]²dÉÎ;W¬X1f̘–––J!K%“©dÒN$¬T*¥/ã—呯táEÓtR©RnðZ|¿Åq²== )ô˜Ý"ª€îÿ%—\òÐC±ïÉ쑺‰šØ _ž~úéo~ó›S§N¥|UºSÉhY_ðI“(jRJ¡ÊK&¥á p”ð! ÃÐðü¤[´<ŸœSß÷±|ß¶m4ë¦M›öÞ{ïÀÔ©SÉ@Ã$lDÔ„»víBMà çÇuÙ²e¸*™Lær¹˜–H&¸Ò@w!õ€Z(À2=Ûöþ×›kzLÛPá×=aæÌD"ajëäÈzÏóÚÛÛë}˜Æ n¢¶¾èrð·¿ý­««ë˜cŽ€M›6á“Föšæ{¢¨õ²ì{ÆnËê²íNËr¤‚`T¡0yÇÎDè„oUSÉî—¿ü¥Q£Fµµomm3f Y("–¨†¶Š†ôôôŒ;6—Ë‘¥VÆN&mT·T"q9¡\ S²íÃ(<÷Úkg}tÀ •Ṧ!Á²¤„ À¥r¦e˜Dèž[J$žçំý]b†Íà~Fþ£¯]»víÚµ—]vY"‘ eˆ&4† ŒØPaú¦±+•šyÜqž4 Bˆt©´î™ÿB$Ý¢ E€ŠÂøÚÓÓ3iÒ¤öööÖÖh]®Ð]]]ذw€ á¶$ˆøžøAè{öFúEEãrÏ;þkͧ}´½YCˆPåöSJ)á ©:Ú |ZÀð½ï}ï©§žª÷`†;ÃKÔö¡ vÿý÷ŸqÆø`ÐIR™r­7 BàÚ ?°G|ó¸V¯>hwOÖ-„aØm˜³}çÅÏMîìj B¥;„è+.5MÓ C?ešIß?@©6ßËzA”g€'¥o'„e†‹A4¬³7T†á¿øEìJ¦g6ey]šfA‹· nÔú ™†¢†V-‡’ZáH BT(Á(f°bÍÚ…@Ž>"IDATË XapÚìÙ)CÚBàrª¹Bè@ñ;‰z1L? /QÛ‡DOm ²bMï¿›N'‰D¦€Ý¯¿qd¨’É„ŸHt˜FÖóÛRB¡–áŠE¬½úâç¿句ۘèèèèêê–AK2™DQC-‹\¯Ôf³ö¾B@¯_)¥D—V¬[ÿ?æÏÍäþÀ³ë×ÿÏé3¤,á÷I*ÝaS#Þôaâ4¼¨Uu—Î<óL´Î°Í·¨\.Þ›ôÔŠo±>>•J…a˜‚ÑaXÕN¥T†9ç°Ã6¾öÆ•¼„êõši†aFdQ:nPB ««k +†9çœs*5ÐSœ‘¸¤JJ!”ÀtÐÊ› gÌ™Ý0ÀЦfº€,·ŠˆÚÅ_üðÃ×ç.0 BËZ­zt÷Gs†*¶°Ž4“ɤÓi*»u-«#›é Ô—ÛÇÿcÃÛcƒ¬6ê—‰Ò&ÊE¡¥ôOáÍÆ(¾‰–š8cî¼ 0 Yní­ÿRúúÔQ¶Ô˜Ðl¢6kÖ,}ñfÜF#2©>9€ÐÊ4„a)¥Â––Îtfwà@*ÆÝ÷^|1—­À/-Ä ø@~úé§Žãø¾ßèOÐÜOÚµI¬‘B(¼‘/ª½à2_p@Ø6€ *§aI­.‰ZXž¼/ži šMÔÞzë­N8Ao6·Ô¤”èrb˜¦×²3@)%T( ãÀ ðóù‚ëîtœ|>¯º»“];ÒµÌ?­/y£+Ôp?uE‹|gT=H­÷m_ùs¥¥@ Ø -m]*•°¥Ý /Œ14ƒ¨‰ÊØväÁƒJM•3B…RÉD±ð¹ h… …B±Çñ{º•ë âb©*чN5 =ôÐ7ÞHÃh Ü«®ª¾ïØ.xßè€Ø“CT†Õ°y$ö•Ü×Ç4Í jã‚žŠª–†fâq7(O}—A+y9€B¡àŠŽSÈÇ-yØÛ«¼?:DfjK­”%ÀÛOz껉j±¶~ ÚQOàoq]—D-5f4ƒ¨Eˆ»HD¤?š,‹åyTºÆáðpzØôÑ¡(‚Þô¢FK÷uÙÒï ÉÓÀ 7: Ò†æ nêSåKe|ßüñLJàb™†¦ùE ¿öéQŒˆ”¸õAôãe} Ú˺†ï ÿ¥ƒFW4½ô¡ZmU~Ô:`@SŸZ@³ J¥Ò~¾J¦ÐXDDMiC<ÑU Ê`6MŸ‚Ù:>úš¡WïëÞ¿,]º”䛪p#Ê¿9µŽFß ‘W¥”®hxó‹Å"‹3pšPÔ^yåší¦*'®ë_]ÑtQCc-~ýÊ61J›Þàº.•ãÖúZZߢ¡×É–³74¡û aâôrˆ rxeX\£ŒAf–ž…1"5ß÷i|³‚Òïºn>ŸÇÕK4>5î{â­…rC!¨áxâ%¢hºœ•J¥;~WÏ4 Mh©€ïûŽã”J¥¸E„ 4t0uÍó<ú))W-]ÃÏÖû¢÷;×^{-–¹ú®ê„Æ}ó¸jIÕ¸û_*•0ûyýõ××ñÚ™¢9-5Çqd¹h(]Úr|%çQOà£w©ô‡V)U*•½]ÚéééAM_½š-,* ¡²¢­–¢¡êÑ ×'£ûy饗⠭W¯;À šÓR[µj•ã8===ù|¾ªÃHò¥é–Bü#hMèGáñõ¾â!â†nÀ»šÏçq£§§§Ÿ;L ª µò—ºïIº ¥‘2L-šSÔ`åÊ•Žã8ŽS(ª:¤Pz‡Lz´âÑ­Œb±ØÓÓ³aÆz_îÐqÍ5× ¨‘+Z(ÈÍŒøžx—P›0‰©wûÐ3U£i¸qá…Öû¢™F¢iE V¬XÏ^­àZäù‰xâĉ¿úÕ¯HÚô4\Ï?ÿ|]O¶a¸çž{pãšk®I§Ó«¦¯£“O 8ŽÃK;™}ÂH5„æãš¦yçw†aøïÿû?ÿùχ~¸uëÖ­[·nܸqÓ¦Mõ>ÍÆã¿ø\zé¥]ËårØPåì?øA½Ï”iNFº¨‘®‹ÅH"V´½áÁ¬÷)0#”f^QÐ?$gˆ_nIëê}‚ à †-j–e‘¨ér†õ>ÁA|ý/‡bö’*j矾n¦†¡;ž¸ê°ÞçØ0ì Eª=`¤VÆ0û*jXO=×âm¾YÔξ’!–3fŸ0BE }OÛ¶Ñ^ ´!,,j ÓÐŒ\Q£DŽ%*)‹õ>G†aÃ5= ¦g tK#Ö ÓˆŒ\QÓu-RÌëºâa˜Fd„Šs®EÊnƒ ؼys½Ï‘a˜Á0BE-²œ@oØÍEj ÓÐŒDQ;ï¼ó"•·(gú¬ÏzŸ#Ã0ƒd$Š%=IÑhŠšëºõ>G†aÉHµÈªÏPO‰Œ„që Ó¬ŒPQ#]³,+RÌáû>©1Lã2rEf éIO4ÙØýd˜ÆeäŠUuT­¼­÷92 3HF¢¨E‘²[^#Å0 ÍH5œSÙÏ©üãõ>G†aɈkçýÒK/e³Ù\.—Ëå²Ù¬eY©Tª­­-‘HŒ7îCÙµk×3Ï4’¨éÚáyž(Z(ZU]Óc¤NZ0õk¯{BìN§ÛÞ¼ní7Ž8" }ÁƒG K0žef8ÐH15òõ.¿ürÏó"åµl4Z¾ŽŸ ’!ŒÊâø£üñÍ5=¦m‡þ)ÓgŒêÙ ƒx†ŒµZ5·ì„2Ìð¡‘Dðúè£>ú(Ð@#™£0™þ)ú'ý”¬¶ˆi·Ú\׽뮻†þJ†8'j”X²dÉ|°cÇŽ¸œ‘¤MC? }}UÕÆå 7ŠÅâ-·Ü9†a†'jºåµxñâ>øÀu݈û™Ñ7Ê"¯aFl4 Ÿ‘® …7V=†a†š( ¶lÙ’N§§L™BL€¶Æ€:VÕ5<Žna¢“âhŽãlذáw¿û]/“a˜Òx–Z„Ÿýìg[¶lùðÃ#ާn¬ák$ã©ëšž \'näóù7ß|óÉ'Ÿ¤ßȾ'à gOÔtMÁíK.¹dË–-Û·o¯ªk¥R©P(8Žãº.. À°š®nñÜÞ½{÷k¯½ö›ßüF?÷2 3ô4žû©Ç³hûüóÏê©§pV•ªá '쮡/ÅWü,5Þ ëÌu]ÇqzzzòùüêÕ«}ôÑú\'Ã0ƒ¢ñD­[¶lI¥RÓ¦MC9C¢ÚZ|±Ö¸RÊ ŠÅ"ª˜ã8ù|·ß}÷Ý_ÿú×U' fØÒ<¢výõ×ÀªU«>ø`4Í@Ë{‚ÖIM×5ŒšéІ|ðÁ?üp}¯ˆa˜AÐ<¢†{챸±iÓ¦ªº¦+Z¤h:]]]<ð@¯‚a˜AÓl¢F~øápÕUW}ç;߉,-ÐMÕméÒ¥õÃ4 {t¡zEi3 ÓìÑþ¬e Ã42Ò³Ÿa¦¡éK°ÉÆ0LÐ;‡¼Þ§Á0 3âÖ˜ÔßÝu Åg)áýyÞŸ÷ßûýãªU±LJñÖ[o ®¼C( JÔ!Ìûóþ¼?ï¿o÷¯*VUÖ~Î^øéòþ¼?ïÏûï“ý«6÷ï‹©qda˜Æ…Âh&¼ýöÛË—/ìJ‰F`­÷y›·y›·‡Ã6Ò—4¨^Ì!ªÖxèïó6oó6o‡mÿ Š¥q•a‹ IEND®B`‚ghemical-3.0.0/docs/user-docs/images/ci_plane.png0000644000175000017500000000603011563552731016574 00000000000000‰PNG  IHDR›b†r~bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ µ2 ¥IDATxœí½j%9€_C:p¸~„m˜dS3ÁÄ ËÀ&Ã>AÇm¼án4Q?À„ÓÁ`&:ip?ÂuèÀ`CØAÃÝ ]í²¬’ŽþJRÕ÷ñ½WÒÑ©£::’JUµ'";(Äv»•ys^YX$ÿ>y6"rxù±š.°<·ïåöáó~UM`l 8þ,Ëáþ/­­Âja™|àŸõ˜Ã?Wl/?Êáö}m5VËýéßj« ƒÖ¥´®*؈Ðá´ þ¹\Vl˜¦×C3M¿{ûúÉ÷Í?ÿSJYŽgê8|é±yç „>øg=½ŒV£caš^רÕì¼îÞ¾–»·¯›é\¡<øg]¦üÓæ‡1¾Y%ØäPÞ V&S²˜¦·‡m”<þ<50Ιqºí{h^_fY[¹PGtÉë2ö“Çy¦ä›i>ù)úàŸ}0´—­Cûì=ÙÉ›óÙv ¹ Q>&Ø0M¯‡ëüru@ÚŽq®¼SÁÊÕQk–Ñ\r}úºdÙð3ohý}ðÏ¶Ðø§‰¦¯>ܾ—Û?~=®FAìL¢1õ1M¯K/£V͹åË£éôc뎑§qMÍRrëcÿ¬Ë”ºf¹!,bƒ@ÈÒE/Ô¥Tg›ͬD‹kf9—>øçrQ›V/ÔN­Û`š^žnêt]3iÒ~™#`iÁ?뺌ÖÅaJ–cwC¨˜¦×Å7Mw]lî’úO÷"þÎ>v‡ŸæºZŒ>cðϺØüsj³Íð?¤}«,£åXt9³ËLÓÛdpÆ¿‰ÈäïsébÓÍW.öšV¶Hœ]4;ÂÌúlòséc‚¶…mr05að1ûn´š0M¯Çί–‰Ý’='øg=JùgÔn´%À4½.ŒZÁþYž–:<€vÁ?—Ëê‚ Àiyù ÖÁãk¡™¾@!¾l(Ääív;·.°@.>\È«o_ÕVfäôôÔúû¾ˆÈn·“Ýn'?ÿïçY•‚x.>\ÔVÀ fØbÊþðáòò2HXjg×{ùTRëljÀ†¦o™£ÿ4cʾ=›ŸÔή÷ò©ÌUí  àcîsté>¡é[jôŸÑÁfíôrÂÖª>RÎÑ?Ä'ê@°‰„všÒùË–B‹~Ø’}jqÿçý³ß6 ôÈùuå÷ö‰ãð›Ãg¿lÀÊ\£³Òމüºò{ûäƒ`Vp2È ÁŠ“ô N.„•çæöFDDŽ_WÖÖLêjLj}瀖þþC’Ð6wŸîäêúJßSDv\§)Ëã×w¿—±Å®Ù@q6P‚ §êk¡7G›Éë=®´X™K@s|!6˜Ê»9Ú|ýl¦»ÒbòùtI­Û–¿„nZ¹.Ý|zÔ õº¾Hå`y±uT1yÍŽuüÝ•¦•«wˆLwgŸ[·¹®àíÒ ¢Ÿz?Íæhóõo*ÍUN#_›JŸ ×1„ä©{*¯Oîݧ;uGåÊ;wg¢÷Ü”Ömé3qX'¶g£©f6!7óhGŶÎÓµ”àª'vtíÒ-dä›*Ó×ᤔMah‡±ü»OwÁKPµèEO“^õp‘}-dd=T\i!õøòÌéÈf]!u§”M!5×ĶTÕšž6zÐ †"×lBÖ¹K«KŽëã I‡k&{°±|k‘¢KÊÌÖÖÓµ']§èõzÕ–MÊ#Íös Å·*¥|nbg9©ÇX¢,´AzÂvÁßEög£ O$c»€<8–¹¬dËgK³¡Y¢r颕í’ïËëÒ1e‰­ôòœö˜Ì´±msm$ˆ•{ )hm+ l1¥È5×EϩϾ4M=>™ãïÚ|4Ëh¡i>½RåúòÆÈOÝÈÓž¡òbä„äÏa ,‘¤ÇÕðŽÐ0lx1ˆdÜ `£åwÐ÷¾Ìлþ°.B7Øà©Ïà$ÇÌ&˘7¹Ár¹¹½éúz^ïúצwûõ® šxêón·SçGÇÓ²ÌȼÔú‡zbå×.ï“;P²ýîÿ¼O’ŸR¾¶ýk—÷ÉÀâäÌÝÿ‰$›Wß¾’ËË˸‰Q2™¥×Ÿ*¿vùÞåS¾,­Ë¯]¾¶| \³€âl 8Õžëa_¤ÎÅ"XŽo"òåIS7xžÿvþøåóHÆg»¬ Bå¥ä¯Q¿—Ÿþ9ÊOå/Ý-äÊ<ä;ûîìYòù»ó²ö¯]~* í3Î3Cû;å•(?§ý4òDäìûç>‚×ä¾' üô¯Ÿ¾~vm¯3·ƒº–î®®¯ääå‰Z–MæTþá³OW“”ú]õº˜’aÓqmgly9í[ºý|òÇeÆ¿_]_‰ˆÈÉË“¯é{{{²ÝnŸÉùñ?>“9µ}uÎö³éR¿ÖÞšöqŸ6¿ÏGÍrZ}´:Ìa¾æoÚüš>nÌæh3éN¬ã™Üþln¯ Øn78}´,W~[Ùyšüš2)2®-é©å]¤Ú·tûiŽÃ‘çêúJäúaöâáɹšÓþ9ÚOkmý¹Z½Cäûò»Òcõ©mÿX]bò;ÒŸ¬`…òùñãþT‚–èûlFðÐOh×p¬È :ÒÁŸê‚ýí$o}6—»bhù¡ŸKg¨Kiûûü‰ö/Ëâì1 ±1ë}6sYS_w Ÿ¹‚;ö·S{pU»þµÓý3Íàg 6sYS_†×v°§§§OþléšßjÑ»ý!?¾szn]–Žë\ŸÛ’ƒ ÷è|!¤á4ìéé©l·Û'>çʬ‘öï%µ¢g¨1çt‹´b ®¾fî«ÉDΆ› .çÌhzr(‘<ö·ÊÈ´^“V–aBôpÓf>Û¬gøîšåǤÅЊý{#9Øð¨›úä 4ãƒC=àY¯Î9³¯àk×oÎ|lÇ–æ*ç“Ù±ö¯ÝnZºŸÙ”4t˜ÓyRL [õ`ÿœƒ­Ú>wý¡íç0iT½.%ÇÚ¿øy1»·ùEÓÁFs²–4tmç×Ðʈ­„­z°ÿ’I ö1íWbó@+Z"¨m#v£ÙfüÁÁÆT²äÒM#g-µNŠ —dÿ%2w°7—¼ranJèÚ÷b• 8ؘJÖºf“£1Z9Oßµ™'ņ­Úòã:§sã’ÙËìFã½ Öšyà†ëéÒ6zï¨|ÇksNͨl(×Ë®¡ç[-ZÕ3F/ß9m¦kÏe[9Mš†Ví/Ò_ØÌ5›Þ —Šæx]Óÿ‹“Žcû½·QPiæ>ßbíŸëž Üík?ß’–™fþçs•Ó¤iO«öO­»†>‹¿©3·Q[é´C½V0_ªýCÉmÿ^Ú©ôd[Ý¥õén7Zrß-ŽÓ†±tû?{ÀÒˆØúœe7Z*­ŒLÙéV—nìïq´O=XÞ`ãsÚÐÝh­LK±–ãl•lö÷¼:·õed€d"¶‘ qáøå±^ŒÆior3ßumy·õ³tß÷ò Ž_ËÍíÍs½MÙfº™¦=žqž©t[Ý.|õøòO•Y²ý]ù5ï˜ÀzþçÒ?–í·ÐówR?S¶™Þ³þJn®ý:Y­ÍÑ&U@·ìííÕV 9¿9|öšé¤`söÝ÷sÀj9ûžóÀ†mmñ»Ñ`^†k™ãe4‚ ‡`Å!Ø@q6P‚ de•ÏF€yq>íüã)˜1å@„»  ¶˜b}‚@/¯N€>ølÞ°„yyñûåö_Dd4³9¼üXM!X6Áfû¾¦°`öDdW[ X.ÛíVzyDúÉËÞ÷Õàü[7´6{ý~ú„Ÿ9’IEND®B`‚ghemical-3.0.0/docs/user-docs/images/clipping2.png0000644000175000017500000025007311563552731016721 00000000000000‰PNG  IHDR›¬ ç íbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ ;(EÄ̯ IDATxœìmhW¾ð}ÐÂ1¨04@fI cˆL ‘i?DK.T!D! qÈBV› ¹J.äÊ]èÊ퇮ÝBk·°wáiµ… và†(pC¸a• R E*$x @#¨a*Ðøù0¶lÙ²-¿Åy9?0¶¬ÑÌ™ÑÌùŸÿû[¶mO£P( Å&0 c«Ç¡P(Š×˜@ó¯ÿ¹…ÃP( ÅkËŸ3OØâie«†¢P(Š×añ€ÿ³ÕQ( Åë6 …B¡Øt+oòz!wD¶z›‚2*^G^×çÞ¼gö6âia·z›‚4ú¶z ņò:?¯ðf=³oœ°7ë V(^uÔóúzðÆ ›×U-_N%¯ÿ#Ýòºëw£«Þÿì>ÖòYÅúÙˆëÿ2}‡Žåu}^A™Ñ^(1 ®–×Y-o·\øP×ÿ‘¦þôª®õÂïI±9Ì~/󿟼ö/ZÈlÄù¼ÎÏ+l®Ö¶Òµ^í°pûÕÎ#[&l6bðk½˜o’Z¾Òõ\IàÏŸ0:ÙÏüm—û{¹Ï,·ïÕžÃRïµ;¯v¯;ÙÏrçÚn_«a5“t»ëÔÉõ_êX¾^ k:oÒóú22û]µ[4¬fÎÞa³Ô®‚6ƒ×U-_I%o7‰n„Ö³p?KM"ó'÷…ÇXÏê}¹sXéüþ½ÔëN®ÓüsXíum÷ÙÍ~6ê»_nßóÿ^ë¾_×çV÷ÌÂú„ûJû^ió¿ÇµŽiUÂf#Õ²`-Ç{ÕòåV€í&•N´žÕ^ã¥ÎJûYîýÕŒaþ¶¯Âý8û¹v&§µîg)!¹Öý̧“}nÔùÀëý¼ÂÊZÛf˜S×ÂFhë¯M€Àj,¥–ϱ’&ò"x+øÍÞ×R“òËΫ0Nõ¼¾¬Jؼ Q,íX¨¶/7Î×U-_KdËJ6üvÑ‹Bëe¥ó[-ž÷jŽ»Ñ&´ùZI'cÞèïr£Ïçu}^¡³göeY lÄ\°%šÍRêõzüîçuVË;‰F딕Ì'Kíw34¥ÕœÃzœ×›1ž•ØH“ÓzXxNíLi/Ú„¯÷ó ™¾·šåü½/}€lŒ p¥ãRû{“Ôò…+ÝÙÿµ{o9[}§ÇXÎg³‚`­ç·QÇèdûµ^×µÒÉD¿ÚsÚJÞ¤çu£ÙͨÝý´–ÅÄ[¶mO†ÿóH2z]Õò—é»[8ÉÎþ­P¬–×õy…—ë™ÝL„]Ä»›{}:åuVË·j¨Šb³xŸWx³´¶7NØÀ›õ¿^%“ŒâÕC=¯¯o¤°Qlcä|‚þ"ÍÿI)ýßÅÛÇÞ51Â:Cg/jˆ ÅŠ¶z …byD@ ½"4å5ÿ§R‚ý´ºh{Ïs±«‚jÕy‘ÃT(–E …â%Ç®:x5‰ýlNxT-2³d¯—ˆì/»Bñ¢QÂF¡xÉ™¸YYöýô…4º®3ðÇæÿdÌa¬6šB±(ŸBñ !‚ámÓQlþ/ôNMÓHžI’þ0 ÌùtŠ—¥Ù(¯"4@?‘:3†óÌÁu]ì§6‘}~ýÜ[~Gëà§ ÀÐ4dMÒåmÞq¯J³Q(^!¼Ú8^­€WDÖ~Íè×£¸žK±T$S¼S$²{sóod@€”(1£X J³Q(^%ÈÚÜˡφüÓ !<ô·¹{›ë§=zŒp8LõËáM=ŽâõB …â s:NÕsÉ^+5ÿ—:Ÿj €ü] €äÑaM0ü}~CÇÙÁó<Üš‹ÖÐȶÉñQ(–B™ÑŠ—œÔ‰=» Œm:ñâ˜{L4Mk»}¸[Ðcš¤NÄÚ¾Ÿ>gäBÿªÇaî2B`ì0ÈßÜXA¦xýQšBñ’ãL¹”- ¯VÀ¶mNöŸd|b¼e»ô‡ih€÷¼Bù…3å.ÚWtAHˆ$EÈÝZ>¬z>¶mcl7ð¦<¬‡ÖúNJñÆ¡„Bñ’“»UÁÜÆz2狱ŸÙôEû8yÈdð›©ã1t]G jŒ^Gˆ.*ìEû*=´é1ÂèZ• (Ý+}/ª´ÅšPÂF¡xÉIˆan ãIÉà79¬G"(8–8†}Ò‡g©4tNþþõÕ©ü¹½?{½ÔöÿPº["v(FáVaÍûP¼™(a£P¼äHé›Ïêµ¹DMûI‹ÕiãD ðj.NÕcìJ®¹MüHœ¾hŽãÙÁ¶mì LÜ\»°ˆì‹(a£X5JØ(/9e«Š[“x¿Ì ÙÀ~rç°ŸU)ýØj6Ë_Ï“¿ž'u6…çy~UÆú+ !ֽś‡6 ÅKNå‘MåÑÂÿ^Åó ¤< ˜x ¹ÛÄz´Øq_,qªÖckCû]¿êZ÷>oJØ(¯ ²v®õµ”ˆ@{£òc…Ê‹ƒâï™ÄÞ5Ñ‚!þðçlGÇMM¡i™2 ®’:£òlŠ×!‘w#Ën“ù8ÓòZJ¿:´ý¼ó¾7³&´®®9íÆÜÆÜÆÜ¡ÚT+–Fi6 Å+άéL×õEïeNÇ i‚¯s„Þµ¼WøÁ¢.%«ñâ!¨T*8S­J6fŠ„*K 4Å’¨ë«EáVäédóuü½zXƒ€ÀÜƶm’§“$ÏÌmSyÚýü'4­¾ì¾£ïEÉ|”AV+DÂu"ón -Ø…€¹}±°S(fQkŲ¨ë«…ýÔ&ýaû©MîJ=䛽¬'UNþNÇýÅ¥wo¯Ÿüùõ(p’n­ýþÌÝ&¦i¢oÓþ|˜ØÏÓ[º†–ÚÍc(K¡¦Ųˆ€šD^%"û"˜»Lt]'w%×’ÀéþâBÃH^Í#q(B¾TÀ™ð" é Eº~ÕE½^'+ ƾ pÏT©ÅêQÂF±$ [ ‘@6$4T¹’—gÊA<xSCŸ1øÉ\UèÂí²&‰Œ‘ý6‹¦MsñÀzœgôÒìwšeøÏþ_ænÙT¬BÑ%l1+hD@ Uiù—½['3Oå‡ ‰CúOõÓ³«‡ÁO1M“³‡ú/uRgS¸Oz±ëXöÒÑhÆvƒÂmU-@±~”°QtÄœ Q½í_VÒÒ3~#¬cîê¶‹DD1vÛ &O¢ukŒý­,­µX¬¶I¢ ÅZPÂFѼÒh^ ƒ‚” ñÖÓÅÕ›¢i.£_·†6ÛÏdCb?s)ݫг·§é³éÙÛ³YCW(Ú¢„Bñjô\ú…`B¶×(…pд0ž·8›?w»UkÉ~›m–´IŠdKKi…b³Qy6 ÅKÈI)Éyù†¤}¿MÔè D¼£ýΚÅÂÛ„Ãa¿áÚ¢}–Ѻ§×2l…bI”f£P¼¤›ÑfRgSÄžXÄÅ)Þ/¢‡u4Mcôë^d-Û0ðj#«Ú·ýÄFÖ$֋Ⱦúvâ,²FP¤ü YûõfœZ !È-¡¹)^”°Q¼´¤OÄAÁð·ov¨õØßÆÈ|œAë; F¿my¿Óyú;!Ho]žhyÏ/Ô9S q«ë{ãZ@Ðåy&!ü “Õ œô©8z·Àzê½¶¾þ<Šƒ2£m!™Óq¾û8IÿËPÜlÒ§büóCdÎtfŠyQèa¾wûHv´}]Ó˜>e2øúõ[±ŸØ”+eì'+ ,…–¨ =)ãMýZÇûþNš† ÆWqý×å( !T»ƒW¥Ùl%з‡éz¸µ“£”`=˜DÎëÙ¡òÃÖ&óÙÏ=¯ˆósg+e¯! ?·é|]ýêÐìj k^ ãR Hœ'vY;Lê| -è ¥Z $Ï$±.cÕü†n'k $àùU|ÎzîPõ\¥Õ¼B(a³É$F—| *–Mµêb;/nzL‹F(”*Œ]ñ“õÆ®ˆ¿g6Í1é iœª³åÂfv|¾F|ŸÅòæc§Ñ|ù8ÓÔ¶–£ÿT?" èô"UÔÛ–¡4›M$w«Bd‡¬Íõ IO=Åzd=¥oW£—^lí©åL7º®sãoàÍL±&‰ƒìçÕgÃ×´ÌáEE?gé?Ñ±Ý ¤…ü‰%Î3§ê`Û6ÎÏWsW7v\À|SÑB¬§U´ …l@åÑò«ùÔÙ"(È_ï,"o ,˜Ìó7WÍçhá À«IBË)ë¡…¹ÇäØûÇü“‹¦¹ÛÇ0v¤Î§Z„TáN Qúq±F=à›}§¿`èÓ!êÿªûÕ§g~OŒ;c²{’ÞH/ú;~ôÜ‚£ñâDöE°ŸÚH)éô’íÀ̧Ø<”°Ùd*['“Ù‡Ïõ\ÃzlÝc4{‚¬Ms‘ÒBʾuuèÓ!øtâž2 ièèÛ kÅ-G©IÎu l¬GÞ”/ E0Jöû4"à‘<=îç½£sî?Ï-ú\òH´©e/Ô‚b?±1w›hA­y½ç›­‡VËB$y:‰eY„‚¡Ž‹‰ !”™mQÂf‹Ðº5F¿ï0)XFÖzÛ¾çÕr”+I¤t€•'¤Èþ±÷cðÛË†ÄØnP,©üXñ£™‚·fmþ?X~xq RÎä]ÌfÏÑ÷n„IËbøû¥ÍAc5¹%šÍltŸÞ­1ø·¹ÛEÌ:Vu, k¿Yö³"(p¬z$Nâh‚Ü•¹+­Á$æ“đĺÆ)Äšïx2ͶÙ.u"†¬Õ™açWÖþàÿd#…ôüè¯þýLÌK$Maî4È„C ›'ûmX~qa=²HŸŠaî0HŸŠÏëÁÓfü3ÚNìýåŠý´¡#_P®”ÛjXе£„ÍÑi(«Ö=ͱ# ‚s+¿ô…4¡PˆÂ"PDëž$}Œ“'BŒýmé}EöE8–8Fñ~áYÜøë £×ŠhAjÕ×2b{"ކO¶¦@ã°T€ú/…†oEÉWÖ)?°¨zþ±íçÎÔÉ3ç Á²ßÐB!Üš‡õÀ"w­}˜´õÐÂÚµ>/åÞ”A‡·Ý"’G£˜;ˆ@WSØÌ×LÚ1öÍ™2!|¿[w¨E{ñ<—±+WAYë° u@Prñjhz (Þ/v¶_ \)û÷>~_ ÅÆ¢„ÍVÑ€ÄñÄ¢UìB¤´Ðº³$ï‡øÊšl›Ü—ùÈ`øó1b‡b~>”~ý¬/GýÈ €ï(ž­ò›<%{i‰NîVMÓùb÷×oü’0z¹@òH»ÃÄÎÍÄõæÎpKël)O¢ëCDöDp=·eE?Ëv²N½&™¸µ¼?w-‡¦Mãy+›ÀÚ!‚ÓÈÚ[—¶Yˆó³G¸ÛCÖüóÌœŽÓcÔ’‰›KH)1vX–Õ\` ‘"{=‰¦ &ÕZgã(Ü)êÍ´§^ë‘EêlŠø!¿2ÆRI©±ƒ1ŒåJ½[gìo/Odãë‚6[@æ£ çþã#é¤x¢…”’Ü•œÞ»ÔCðëŽãàIüHY“m²ìõRÓáïÙß ÙaâòÄKç í4ñq«˜/hfqv)Üñý8CŸÍ„ç6`ð“A2eзëœûs¤Î¦Èv8±ÉFð¶i@R}ÞÞ'TÖ´føñ,ÑQ*—žh;!×™r©<òÏU“íE«ÿT?½{{ýäIÛ›5Z­™ÊcÀBŒ ¥†”/$*OªÐæz/…”Ã0 é3ßÁ,©ó)Ü)—.Ñ…[s¡Í&¡„Í&‘:#y<ÁÕëyô°NþN±™8i=±ùjgÊaèÓ!ìgö¢ ¾(ãg’è;†+Ò\ýŸ«ËÚÛ{võ#7÷`?¶pþî,Ššõ´ÊÈù#S΃IÇQÙÕ2ô,S^¥Eû¼<÷gô@”®·»(Ü*8žX¥ã_"—Ñ~Ò4 -D=]ór»b‡b”îùlü=Ó0–õw´ÃØF6Àئ‘8žD¹ËÙ¦ ¾åð¿Æ~f£i¾Y6ûm–ØÁnÍ¥'(ÖªR åÀªÆ±Zì§6Z·†çy˜»L$’‘/F ‰ã8˜»L*µ ®ç.iÆTl JØl"ÅJ=¬aî2¨<œlþߨf,2…e>ÎÐõ«.Çáä¥,Ñ÷cDnæI”ð°ŸÛœì?IùA™Ü•\G8©1"‘^°&)Ü,qì·I´šê9߆ùƒ„w›ÔŸØ«ªp ~ˆ¯a; LÓÄzܹ/FÖCp6B¤!0DâH’®`Ævƒ‰Ï†ÈÔ\l)IˆA·‰a ü×Ü„1 zvdÎÄWUM[hæE麎Ö±£1âGu¬‡ù›yJwKDßóóeÂÝa · Äö›xbk*fnš÷³¹Ûœ© á/"‘^ÍCÓ4•ƒóPÂf„ÃÓ„ºÁ~’EÊ?,z_ ÷Ê„„ÀzReò™¿tƒ‚PŸËðŸ}3GúÃ4e r§€t5$“šFÏ “Záv!VNþ› Ì™h3ë±C®Q@Ê:•‡6ÇúáÜ7£¬Ïà²vfkW‰€è8\õEàjÚnça½&qí‘ÅÂfÎÄ1¶JÅeý—'HOù“Þ*#çdíä¼W£L\öó£Œå³)ÿ6†<Ãܦ㠡5’§“ÍÉÔó$“mìç«+]3«1kÁ.ìg6ö3›J¥ÂÄÃVTén‰ÒÝRKS¶è^ƒêÔÖûÛÝS¶mSºûr›i_”°Y/"XG uv¨yEÿ8Èà'ƒM æ'MC VÒ¬‡òT’ÁKYd¾Ó4þp䬰ò*ÜZ¼çvI˜f@À»½üó~™Râ$4ð®—È|1‚øù­Aˆ—¯~•ÓhO,ÒGôö•ã^hFkÿ’Àâ¯Ô‰šÍðír¥Œë¹RÈ~fS¯×±ŸÚ˜§b8O¤”8 ×Ï™wïŒ])4“ˆÓ'bŒ^îL‹µŸÏ-vJ?®ìÓýr”ô‡iäó ú6P·/™ïma‚°bsQÂf•dNÇÉ—,Ìí½äJ#HyÇÀðçþ6é i†¾«Í= FCÂqÄ šÇÂÒ"åýÆ?ÉÌtfì¼boúDŒä©~²—'ZÊÌLH‰Y*2ün MƒÜøß¼åyLwkLo óÖ ¨¶È»J¥’_0ñ%¢§&IŸMqò`ŒÜ•ãGm#ÌJ–¯1L´)¬©k‚H$BrÊ%{½DŸÑEïÞEY]q²³þ¾ÌÇr—²‹#_´˜ÒJmÒ§bôî5ÉÌ€K;`5%Ïm)Bo‡(>s·!I©ŠW%lVAúTœÿL‘»¤b׉½;@þöâ‡oôëQbc8Μ©¢ˆ›y*«¼â½‘^&.Mt”Œ7ßi-™\ ´„“³û¹] ¼Í·«Ïš†„ßÅQº VÑ_d½Ì7õ¼¬Xýðݥƹ\8®3%qo—p\b=wñjeìgþ롳 Âzˆ?|²ökPù¡Ò¶*ÃÀ 4ë‡ }6„û~žÉÇ6Õ„@d—NÏ.9ãçŸtâØ÷í—Ê,ªØ”°YΔËÐW£ðmØükém · d>Î4}1 ÃQ;eì›1¢¢”î•ÚlŽ-(ŸJâ\Ê¢×$c— Ę8+L&󳤥$âyÈ€÷ÂÍRÑx/ŠÔ‰®W_¶p&ÐL¢í´ æBö晿H‰îóóUä/u#äÚ,`:!3ßrÏÍÇqœf 3!ùû6á ”~\9úЙªS|`áz.}{ÌUuÇœõõ(Jج‚Ù )ºÏ «;Dþîò“‚ýtcˆK÷üã~2¸dbŸh—Çqæù\òóVÚÉã1² &%»ÄØ ~„ô©±è̶«h°6KæLœX´Ü­ñ÷£X¶½¢°©×ëk4+QúÑFiØgÍ‚foÊcä«hÐÔ†ëõ:¥{%Ì=~ô[]Ö±ŸØtzwοïõn);7±¾Œ>8ÅÖ „Íèd5¾Ö¾^w;ßùxÞ[hšCo$Lñ~¥Y3­ÇóH ÁhaqñÃ~ú¢}Ôk­+øÐÛ¡ ×rü3(жéhBpñ¡å‹Â†_ѸpۯϦiÇþ\V—Àqªk¿{Py0‰[«S¼_Á[A‹ùb„?nn>Èz…Ì,³š„ã:‹4œØÁáp˜Â_ëûÛÞTç J?ÚßûÐ>úKñ梄Í& mü„.uÜë˜&‘µ™°Ö'ÛF­ÙÏ«8×óxn«)ïEU¸Í7 ç¹ƒÛT­É¶µ×„"qD#wÝAÖÚצªk} Çs±¯-ˆ!ßÂе™~CÆ¢6 qÝÍsn›{Ì Š*WÊÔõf?¢ùLZ“8?;ä®ôÐ÷~ì_ÍÉß/§öñ}H:¥ûeÂûbmMs Ū°m{˜žžžžþéñOÓßýõ»i@ýtð“:Ÿš.WÊÓé éEï%D§é¡Ï†¦Çÿ1>?o¾—>›¾ú—ÌtúTlÍÇâê´©i`:~$>8ž˜þéñOÓý'úÛnoî·¼Î|”™.ß/O÷Ÿj¿ýVüˆ`yZÝiügÛ÷'ƒbzz_dº¾ÃØãÅħ/þõâôøÄxÛ÷ÓÒm¿Ûü1vn̹,÷Ê÷Ï?§ÝŸ#Óš6ÝöýÌéøôÈùÄtÿ¡ÈôøÄøtê|jUcHN|Ø?=t>±å÷•úÙšŸ…2Ei6ë@JIòtë‰̙ʆÎ&Hý{~äдÖöÇ"ئ÷G¨<²è]¥C^ÊcÍ¿ó×ó¤/¤Éþ=ÛlÏz'D½î¯pOöŸäF~®û& ¿â@áN®€ïìíÿ J,ÚKŲš>“Ì™™†«È4_INž‘ý~ñ»ã àHœêó* Ï¥7Òˤ5¹d¡Ë&%žçá¶ß˜iǬ‘8¸~Çugؤ/˜œì?‰ë‰E¸;ì'¾ÂâbŒ IDATùÙ!¶·ç‡üͼ_wk&®Â­õºß²»òc…ʭ瘾nfËwJâP„Øþ^d£ÎÀ—+ (c»ýÌ&u6µa ³ß§Xª7Ì1!ó6Ö#‰ûóoµ]oWš!èÆÞ>?Ä{^‰™øqú¢}KFDΧP™$R«SýùÅçk)^N”°Y²vwJGJ-8‚çùÂfôrþSýôíÑè;cä›ì"!0[É8¯iTÖ°úÓ´Ÿ2”~D)e[ÛÿÄ¥ ¢¢- ¦àk-½{#„~ÐÀØ•®¬ã¹þDTøÁÆ4f ‡>[ݪvµ¤?Lãy“ÖEì§¹k~AÑ…Ubc!ð<Œÿ÷8î”ëוëêj¶O蔡φ–ýL(Â}\@ÿ•äâGýxždðoËk¬¹È¾Óþý¸®‹bÙ‚©«A¿[ò½)qíZ=û7ýašÞH/®ç¶Í%ÊßÌ“¿™'y&é÷¨1 \×eøÏÃÄňŠ£iø÷?`=©¶­†­xsQÂf;è· ¿•ÂÜmb=²úlˆÄÑã_ P¸¹¼ ê°ç1­ið§ÁŽVŒ"8Iüƒü­$Rž#ú^tÙ<•ÙÐéùÌ–~ŸÏÄ‚r"k +^ ú;:ñCq²—²¾p|/Ú¶^Õü¢Š³¤0ÔF £ix ‰¶'BþÇÊŠaܶ½Xc1÷øš p¬±h¯VDΡLžI.{­'n–#ÍäÍ¥HOQ,›æ9cç\zòhŒìµµ^ûÃ;ÂØO]dmqpÊèsíÐgÇŽJ w\@2iM"‚ËçÅd¿Í’:›j†5§Î§(ß/ãº.Îω㉶Åfo6Jج“Ä1„Q—}TlÁ4®ëR¸U §Œ¡ë+š Þò<ødØÁXg—Yò7"CŸ¡uûegÚ ð¥Ak_˜ÑK‡\r˔ɜ‰SrÉ^kÝoætÙ-epÖƒõØÂ~fcY~ÛßNö›>ëÕé»U†DCœ›òÐÿ4è›ÆÆß øåîŸ/ï]Μ:ŸB jt½ÝE½îûl\Ï¥üÀBº°žØ¸5Iß¡“K&NŒéŠ B0ÿ¨ñ#qúÞí£p§€¹ÛléX sJ3§ãôF"hAZ®ÃO3‚t9ßž^lì§ åŽ*ÜM\ö˜¸ì Æþ.åûå%ï£ù”+eÊ•2½ïö2öÍé it]o6H›­¦ë~Táür9Š7%lÖIáN x®ÇÉßdè³ £_¾EìP uìëH_H“ü}’±¿Ž-k»ÂEÊRή‡i¡æCÝŽø¡`òYµ%Ob9A“>ãäÑã×r~§OüN‡É£QúÞàLyD÷ØÛÃèÝ¡U÷G™OöÛ,™2 þ.†e­ìIŒÐkšˆ àصaÀ{î ñ Àðç4MÃØž÷Odí7þg&0w›K­í‚õwt¢¢Œ};†çyMž¹Ãi–€IMËç'õ5M ¡Åcî41w›Ëj°^MbY~£²YƃCèÖI?²mc¢Ë|”aôë«HékJk jïôv1+dC2ôé"(°mÏó‡ý2HÖCËýo°¤¶ªxsPÂfŒ^*ÙmÐw0޹Û$uf€Ñ¯}çsòL²ã ÙägZ§/¤!à'Åå¯çý‡YœŸF¿lèŠ÷‹LZ“Ë6~*Þ÷…ÊjÒjœ©:ÙËx5ˆDtÌ&Ö‹ì•Bt!¥_ÐñðÁÉß„†ì¸‚p;ºººÈß.Pï`ŒöÏ“íf2æoæ¯ög¢º’§“Œ_)a=Ò ‘#q4¾M÷MvÄÿïñ–}ïqgQ›îùµÆìg6æsQ Á|F€ÏÃÅ×ffÛB;U‡b©¸Èw¶èܦ\ʖ͹ß%šm &PmHêOmz…€šlvÄÔº5*÷+Ͷ–vàóµ™P(D±TÄ0 2e é÷³y?æÿTù:o2JØl•G6½ï/îM’ý6ÛRA ýašâ"¥{%DÐ¥/ªQ¼“GÊÃ8Ϭ‡Ö"3š¹Ç_ÁkZû¦f”PY‹Ö1[i óqëEîZc›ïW˜_NÆyîpñ¯Yìêúëõú"sÝRTÚ+&búîls…Ÿ»æÿNžIr5wµ¥”PêlŠü­üŠ×²/Ú×v²üIÓÐ’s#ˆm½Œü@q§Hµê «‰ËDö膹ì1ò·+¤OÄ(;4ÍuÃR2¼`¥ kÙTŸW7$Š-²?²&A¿žG jȆ¤7ÒKé^ ëQ‘ÔùA¬‡±ƒ1´ Ö 'ì‹?_¾Å¹âµD › "ûm×s1¶-QNÖ s·Iâh‚Á? 2øé /l‚b©€!¤„Âí<ï׋ök=´(Þ)"‚bQûÍ&óQ«o"þAœô…4²!›>‡±ÄJtuu^Üq­ˆ ƒýôd‹ƒV‹ì?Ñ¿äd;ôéõÕ‘5ÙÖ_cì‹`ܪ0(ç®GúÃtË¡òÐÆzšÄØy§:Ñ6s R…DÔ ¤…ÚVÃNžIP¼Sl÷ñ5ÑémiÙ¼fMo–5§Å~­#C”+pî߇‘R’»–#ö~ ]×UÖHŸˆ!/.(e³IŠÐ·Û¯”=ðuAÒÕêœ7/¶ß$²K_—UàUA › u<ÆØ•¹+9"û#H)›‘i³ —žçqì·ÇÐ4øq ·-’grô½ÛG±”"ûýÒæ¶Üµ‰ã‰%ßÿ)(øõUiÁi  ˜ ‰í71t­%rôuA ›uRrùb´ÙcÝ©:ä®çü‰sÆ&]¼SD6$Þ”ÇÀW }6ÔœT¥”8S²¶rN‚±Óh®xeCb?±)KIß·YÊë,ª™9gà¿R }1ÊØµ"²6Šý´ŸÑ¯Fq§Ü¦ë3É')࿾®CÎ1£=hÁ¨¥ÐYA´&=Î÷$Ž&зëô{˜|çœÎ~ŸmFœ­„çyMÓÌìïÃRò¼–Æô©X³®Y§x5ÉÈWcx^c‡_•`âÒcߌÒæìë¶#¹z=½Am£Ó¦AAáNÜu_{A­{cç4B,m>\ B,mzÊ]ËaY~ÆðŸ‡ šô©8ÉÇè5ºRrão,[9»^¯ãTßäèy ,³mó{ ø¡ÝËŸC©ÿÛG(ÂØiТ¿ù^âP„¡3qúgr«–b°¹šGn&:n¡Éo³p¦$fPÒ£û¹MÜ÷¯Ñ}­}¢&í*Åå'sZuêx ïI !®ëÝg  3 ÖA“8aèl‚‘ ý-ûLmþ‰l0J³Ùúv…HþGŠB>O屃±-„x[~[G׬¶QOƒŸ .›,`î2ýPÒƒ1 ‡®¨±ËÀ~æ0øÍœyÍØaÐ÷n»ê.ª °³ŽÙïþßw¤"½ }6„ÖÉ~ŸDÓ®ÞV§ú¼‹üÝ ù»RÇcŒ\ègà-8ŽçuÞJaHp€B@´œ³ßzÙ„ÆšÎócÀò%bVCòÌ£_.ýþrf<ÙܸUÀ­Õ™ørsIüÐÒB½p§@èíæíÂ\;î%°žTIŸŽ#ð‹`.GѲqe®îlÛFß6—cet‡0v¸(ºÇæiY•Ƈ#x^ )ûVþð ¤OÅéÝepõv±%×lþßéS!DÀ%u<ÊØ•×Ãl”8¡oɱƒ¾öïÛù}€úDéÝ¡ãLy˜; òײxuÉáwM4MãÜ‚zzò_’pwˆêÔœ JŸˆ¡‡Ã ‰3ø ùy”°Ù,ÛaüYI"«åg’±+*lÿ6IñN‘þSýËîÛ™i}àxþŠHï?FÊ d-ÔÖ„”9Çýů™%¥døóaÿanœcìrYëY• ¿…µ˜DÊ!ŒK‡<Ç]]ô¿þ¢œûmŒñ¯ÒdÎÄ)þ÷Åý³H)©V«L>˜\yãU0üça2ešù/³hÝ}Ñ>RgSz?2òIu]‚ürFžçâ¶ÑÀêÒEřӫóý.‡Òl6…æп¥“"ò…[ªÏ«L>ž¤t·DŸ€Ñšçñ7óûbðÔF¡wB””1vÍFhËk~x­ëYäoJfW•í¨N¹„±È]·ÚVI^+Rzé.BÝæîô~ñ°Ÿ9Ô’|É¢:åÒ»Ó€hYýÎg¶$¾ýÔæFþ±ƒ1RçSf …ˆŒáT´ ÆÄå ¬GÕj-¨5äWKY"Ý¥)>)A)H‰v"«½-Ђ¢­y'w»BH@WÓ1?ÁÜi,Úv­L\š ÷«Þ¶f®ÒÝñâ„Þ !Wè M0ùÜÁ¶¼ùaÒ?;Íë‘Õ"l3e^X«óùøÚ‡¦uµOMM4kÎ7ÇÆšíÀÝ_\ºäÊ Íös›r¥Lujcs ÷, óLúB\Dˆž×ÃÄÍ –í‹ôл×dè¬Ø G ›Mb¾¹å×5IR²<]]]-ãó£Ì†¿ÏÝgp¬?ÆÀ 0øé Ùo³Dß‹rãÖ–mK1+hÌaN¤ÿø1¿œdâfûígíæé éŽJãtŠ”½1‘•7žGþ®5c³ö}ñ¨I$Òƒ»LÞ±Ý q<Áè£ä¯ç)Ý+áhCAôl@Îã8XVkðGîJŽþSýD£Qz½ ›Äñ}Ñ>œgΔƒ¸ž‡@a!\Eïö}+ÇãD"БocVˆÈº$}*†¹ËÀzl7'GãÝÃ-½}\×Ã~nwÔ—§c–Ù—ë…‚¾m~w[£;D¾dµ…”-¨á&.M0\mHŽÕ$Ñ}ç8ü®I½NMB¥ÒÖ ²³Ç4t¼_æÌ—©³©E¦ÅùT/¯æaî1‘RR~h#¥$~°—cÑ6CŸ áº.Ù¿/ÝOHJÉÈ#””É];:BôB@›1olÀÉB’g’„ÃaJ÷Jn<âïGq§<‡"DvHY§\)“¿™ojfùkã˜ïö!ýG¢L\/‘8žð«H,èŸÙc káîPÇ-9–¥‘CÊœj)ç~äàÆ(a³I˜;Ã~t×*“ÕD@6‹GŠà$"à;éµîiâ‡N.ëüûfŒØ¡Ø¢— ©KIùG‹:P¸ou4©,,1²ÄÄ9yâ$'Oœ¤X*"fª(H)‘5ÙÌsIžNÞæ—­÷<¯™ÜZ¾_&·Xd>Îpò·~;i-¨1üùð¢.œéÓÍúrùhOmª+TnX-BÄ1÷€õÐ!uö"ßS¸AÓ."‚ƒÈš ‰Ö1¥$u:I±Tlšõêµ:ÆŽ9Ölˆrï.ƒðvY‡ÑobáôšºaîÛ˜»êL\÷£åÌ™v ¶HŸŠaîðÍÄÔ2ËÁa!ˆ‘Ú÷µ©×ëÍU>ø>¦Ê·6'E@´LÐ ‰òµžY-ÉØ‘Ä~’€@ozÜìKÙÁÜå‡0Ëšßi¶ðƒMø0½{ ú‚‚ꔋëy„4‰õÈ"u6…ýÜ&=¶(:±ƒ1.:‰u'·(r|ÞÜÆ™ò6¬–Ül¸{ô½(½{{1 £­ö¸”°ÙÌa¿³ã*®®#Ħ±,Ù\hGö™„B’Âí«xSo1q¹ƒcï4W6Ãß牿g’¿Û¹Cu6ûyCiÌ4 °¨iWô@”®®®E•®#û#ˆ€ßºt¯Dòh£;„3ªíN¹KúbF¿mújk_m¬• õÐC6D3¬[ˆøL„•FUfx«6Ìw è}j3TóÈ-¨~×J¢òئp¯Ì;,Û#w»ÜRts¶©žã8T~¨p#ƒÿ{ƒ²ecOIÌpÈ/ֹʪ íÆÝ×ã[]–àäo}+ƒeY*h@i6›ÂZê<ÉÚ0Ï÷Ÿ4²ˆ ßC^âÐhÞa`M9ô,0qiݾ¹`¶4þè×½Ð0é{ߤXòÚö¦_Šä™¤Ÿ¡ØØn‹NP}?¶æ”±oÆÈ|œaò^ÇËQ¶ld­}õ´¦Áƒ·~¬ kÇдiô0XZÛE§ŽÇ‚5ÙÀûOôcì(3úS‹µ%Ïûͪ÷i?µ¹ø—‹x5¯i,?±q¦<²×J }v˜È¾H³;æðçà AZ Rbï3èÛ×ùϳ”î–š&¦‰Ë¤OÅ5ÊU¿)\ìPŒz½ŽçyØ|¡fîõMBÙï³ô!²»‡‘ _w6 %ÆÈ^+ÐãyĘÄöØÏ«ÈF4ƒÌÇq_À}˜^Vs¶ZTŸW›@Û‘8ž w%·dûéäé!F¿îhØc:áí:Â]œ\9qy‚Äñ¶mÓíkѶzA¬G‰£‰¦V9ûŒõîM‘½4FÿQŠ«­Im5¸5Iå‰Ý4W/dèÓ¡¶¦³ôé8!±þˆ4%l^"¤óÖdûù1 ·XRÐLjì20<—ù¦ Ò½Õjû©ÝâXÔ´IœgÌØ®;#óq†cߌ1Í Õ½‘Þ¹'€Æên@WÓЄXw²£¬I&fœÞ?JbCÍ.òAy€Vu¸®I@"!."广vz·Fìý>쪻ª"ˆ™2Ž&û÷,²ÖÛÑgbcnHŸŽczKdØÐ™8Æ.“«÷}G¹;o2Ëݪ8ž óq†ú/uŠwüN­x“ÍúYâf…˜ç2Tõ ß&ÝoÒ· ôí!ª¶‰ÞF'ÄäÓ2ÇÇ áç Eß‹r8~˜ÂíZ·†ëºM-9{«LüP¼%c)Ò§â˜;tŒp‚L#D8¬#‚u¾ž`èÓ!ÂÛ”J%ßg´Œï,w-·¬7Û–za—UðÍ“Öd³ñßFbÙŽïS]°ÈI_H ùRÓÒ»Z{\µ£]ŽSuüæ…,Æ.¯?ê¬òÈ^””œ:ŸòóíÛ•G÷„‚$EÖUT ›—ˆÌG’¿O’ý{–p8¼¬ï¥Çó(–ŠLÎ3Ã|Xû"ÍÈ(˜+[ïy=ÈÆ8R.Nh,0Ѐ±¸À ” }3ƹšÇЕ«ØRÒ75%‚ÿDÓbôî…Âí,R.îñ²ÀÁùüJ0úõ¨ßàíóaœª*ÜÎt9(%²æ‘mø‘WÙïÇpž‹A`W²W®b„u–ŠÂ) A8ÃRži.7[”³Þð'?Âné0ñÙž@±ƒ1\«ˆ–q×ç™óØâªãÌJR¸oa¿+f¹Rn®†#Ñ™‰ObW,)žWþ¦ôƒEÏvò‡Â= C×°ŸW™¸Y"&ç|cRJœgÑQò×ó¾â‘EY²g’èÛõfîÈrx5—ê”À©:†eW‰3U'y:ÉäãIÊ•2^Í£^«ÒBdNÇé Š–:sûópf Y&Ï$¡“'ýN ÝZKË‹ø-$°DD1¶Í–ëIá‹Â­æèø‘8æ^“±¿ŽÙïkŽãP]¦pmô@´mþ‘¹ÛÄ0 º~ÕÕV®—è(º®£5*·Æ9ŸÀzî´„Ò—Út °l©­NPÂf“ˆì󛨠£pdð¨Üõœÿ`­´rü0ÍÕ†?áºAÖ­ã]ìØe IDATM9„æ šÌ™8ÉO2øÉ7KK†}FNœdàR–p´í—:±‡Î$‘žGÊs[nvYû 2P§xŸ–ºVPÄíõè‡Þ q5w•ñËãØ•"•yÑY³]8ç?ȆaÙ]×ÉÍ4êŠìÿ ŽõТ7 ñbx5IöÚb ˆöÑ»@ß×£ C³D¿ÒÒØOí¦Y§Bøy$õÕ©]”åho$ÆŸÆžëSØw-a_,m²`õx˸«Ö3¸ ÷àV?“ïf0oÛ„wê,Þ±™¿ØýüËPjÂ-Àqì“«]dôÙª„ï)¸ÕaÔêJ‚¦~#@¾§X*Rø¤€½ËÆëõ’»œ#z Š¢¸²—Kø5•áͯZ~ŸŸÊr½®cß·É_ɯП]Ü${)«ÜqËá´T’2Jòh…öøÚ¥Ùc0v(ÄÉ7T0i7º=bx‹¦{툟ˆ·2Åä±(~M¿e‘¹T"{>K¶q,Û¨æ[ÒÆMÖXðˆ…ïvx‡¼j0|—޳\ùBMÛ¾ 6 '¢„Ca²s¤Îæì `š¦λœcôè(Þ!oCVÒæÏΣy:…›AiTÖÈ”éZìH ÿY——`$6‚mÛ,š‹>-mn€«N%½|ÍeU•ßÚýKú9Mêç2ª/ÒëTVŸQú›Å†¼M`«¯•qXËé3s˜Ö£S©~ÿ`k>'s.C0lx#û"˜¦Ùú§‰fé­=ø—®©¤½d¯[“6z>ý`Þ1)/—•ûêÈ]Î1õúÅ%‹'–û•ú†¼†Þ¢Æ–J%"¡húce Éúö²Nô@áQƒÃMöWâHc‹k©Ü±¦Œ­>j(¥ð^J™³’/&WÞ ò.ºœ#{1«,¢ÛBý”Rï¤=6JöbVÝKP÷ÐýÌ_RÍÆ£%Êy¡PR™ác:‘÷EÜ.A?×Z· |›ý”ï© »Ævc›‚À]e0.ѳ5ý³i¦NM Üçt„Àr*ø¡o ‰ì‹´zo_Æï·Áæq¡BÓ Q·ožl›'°öaâU¥á$„è说Cߢ“=ŸUP«Êp³2g I› .ñy;t‘ú¡Iè§ë%\¢µí&_H=%s.ÓšÈL‚º‘ýat]ÖÒi  öy !VëoDc»Rï w|†ÓoL·ô 6þÈþÈcÑJ î ¼!L¾2Ù Õ±#1"Ï(ZöÉŸ$v$F0¤V«a:n„«†×ãEAáJá±ÓReUõÝ2çÔíØèXkÓSe?7ÞUNªæ2Š—»«ñÜ„ÿ)?5MÃ]MþpºC”t­ìo5Ú×_É´‘@©íÀ;¤´Çb‡b8Õ/Ð^¼ …›ެÞ©3q<ÚÑ#(Þ.S“yæ/•ˆŸX 6±ýüC^RåÈ]Éá÷ùûA‚ìoÒÑ,aòµIFŽ ±ïÛ}í’/&ñ¿“"Xí ‚‰#‘–}=¨òñZ—ÇoƒÍcB®¤D!í\«²³JÆänït½”yö­YBO‡¶òŸˆ£oÖ™›Ÿ£tË„;e>8•À©T¦±¶#°ÝGéV™‘ÃÏ’þpåçåå2Bb‡c­ Ã7$=2BåÃ9§ô¨z}sF¡Ì[&µZ ]ïf"µXÛ©2´Kgl¯×ËØ+kobµß÷W±îù÷š†Øn0æ­¨¬ ½ç;SÓÕâ@ úGµd¡ i-Õˆ’©Xqæ=µ¹Ï½™`ì%õ9¬§``¼©˜bqœéDzã„wêäM‹À6½õúÖ’Eô@ë®õØñZ.7ú&?¾§ü]G±¿ÿSWåòJ¥‚¨šè›uâ‡k¤Ï­ü}ó>Í~Òÿ°âòªï¦Çá2°+ l®ä)¬ú}h—ޱUWN°ûè;"_š;kߛDޤ¡aÝ‹U¶ÑPMÍÑ¡V½}ÐÚlá“S§¦ 6>ŸØaÅùofZ©ù,ÑgúoÔí˜?3ß:‘†$ú6ƒÉ·Sø°•õ¦¹K9¬%Kem'ÖØ¾©÷ÓXåG3zZ&£©yâµ=ߎó×K,‹Þ`îl–Ùw¦ ÞmÝn8tЋWÃíØŽƒ#e‹Ý—8éšÂŽì‹lØKÅ®KR†—‘€ŸÜm«¯KûgZº^úB}[ô-&d«YWÍ@³„gŽ9 ²€¦…=0 uˆ>mئ#¥ìYê];B{ óûü_‰qZé–Ep›’ŽY˰NÓ´–ä’u§Ò  ¬"U4JZ3oΨõè¢ë;–UIáJ¡kpµIrñz½­ÊB; ×-tÿ"^Ò¥f¨ú•ÿ¾(|« ðÀ¯ Ò¿˜Äqy™y>šÎos¿eêÔÔ†6É×&Ñ´µ{ J©_¦(ÞP;óBŒô›˜wë›Ä…°nå‘¡¬zPÃîmaÂG˜·L ŸÈœÍ0¼m˜ßæ~Ûš<Ï\.1ûQ®ÃøQ;#z ÊÈá»Ml—€å2šKU[†rõp¥ðmz€+flAŸš1h¡Ñsl×1¶øZSÖñÃ|O 7,5~·LòX„\i±k¢ûaT¾[U:pñצKÅu¥†šH½»¶BÄ£`­áÉA1zlá à÷u‹ph}«Nø™0ºß®ûñ?äë„véLˆ1Õøü§NM}¥éóRåÖì÷™wLJWKo›‚ø µV„gáé Rù«y†áž,VmH ÙjZáù M{Àè±QF¾?Òb#öÃüÅ©sìû6…B¡Ãÿ'q$òX½kzáÛÌæ+Àâ’ÍÔ+“¯ÎCJ óf£ä³UWzaBÖè[`Ý}ê+§áy@ôdÏÏ3ûV'å¹âHÎg’Ó‰í 0zdkI)MçÍ ÿâ GG™?;]¶[´T\pá. ?F”&šjîï¸É]É©ÀY‡‘ïPºVÂï8LÕ%“U g”Cẅð.6 _X¹.KzñÂïgò•IÜOº™xy‚ù3)Õ‹ª«xh‡ŽÛ`ì§JW-¼O —JÈ:Þ0S§¦:Ä37‚ôÅÓÀ`6ȉÃ!ŒíÃXK'IŸ¯á8+Ôó&smqÉVTè‡ÀèÑÑžžøáÐÀ6͉ç†Aæl{)ªì¦ôÅ‹Xrœ¬o¬äØÄðfÚ¨=ýBœP'úe¡B$€ú& k©†¬ªïÒ4M.¸.àT"û#vð>å¥r¿BîR!HYÁï a— dϧ™o¬ƒè¡õFô@´ãzÛuô->´'ÝòHÚ(¾ 6_šQáÌ6ŒÖ2U‡J¥²¡@ y@Ó@ˆ²ª‚ªÝždî£Ó=¿á¦/Îê²_l_¿ÏÛ!‹áÔ$…+9*ueõ Ê50s.CîrŽÀŽóÍ£i@CÖO²pn¡kÆäƒW㸟Ô{©ÿ tâx”á Õ)1~"ÞbõêcŒŽ‘»”£öyƒß?ˆp &^ÀýwǦsð¯â®O*íz‰âU )W2»l“½˜ÅqB{Cø†|”)c-9[|hÂU¶‘Þšßï'º?ÊÌ/l|š…¶=ÄÔ©ö}\ê9×è\ M³Ñ·ø°Ë’ruý¿/Â…šêcûƒ–ìŽæq£oÓ©<¤Xd„ac¸ëç‰#Âß·CÓ«*N§êØ}}ó¢bÐíKbݳV6¹G\´ÊY­Ù?ÒRòþªÑ´oßÈcûP.õ´2…¦Å°–Ü—Ö"Û˜7ÍVVØ 5ÏÁ¿8ˆ³ó–“áÃ^6¤ËÌ›3è[tÒgÒØË3oÎbßïÜp¢¢]5ñ&1aþÌ<ñãqΕȜ›ëXQíć\É)‰ì1ˆîWL°ÕTÑ|Ãðäåó€÷I/s¿™Ã.ÛknP“¯L2óæ ÆVƒ‘Ø ™²ç³-ͬfæÓ,ÃÕj5fßñ?&I½›R3Rƒñ7WÊ¥Û6Ôsø4/™‹Y5lëÑúRÕs—së*m¯†ð<¦‘r)ë94õ­„gêãH¹Ò n§³Ûš†¨K¼=f,š?q£6›&ƒNV%µZwi«×°hl_€ð.ƒ±CN¾ÑV¾¢5ïÒDúý4ñãq*N…̹ 4'6ÒœvWÓuZú\áMbÝY¦A± DËÀnP´Û¾T>¯({F`g€À΀¢°ï ÇDÊõK†©wS„ö†ÔŒ˜ßOújžÑº"l´˜“õyœêðl«’фհŠo_£‘}|›|躎oȇ±Ý º× `è˜K6³g¾¼¬ðÛ`óeãŽ š†” ¤Þ9ˆ”+7L⨚>oNŒŠæ°—Wó¢iZkÆ`âÕ‰ž'm«\aêÔ4ŽSƒÏ+hކp ü>®ëVMÏ«aÕîE?·+‚yÓ$šìø›‰ãQâÇÆp»Tµ9`4ÔD¿ÓØ+ßkÜè§oÙèRÐÚ2µþÈ3‘5ƒÍ¢G`|¼ÀtC ³âT(]/‘½˜Å^î TÂS#PϿڸYë`ZÆ6K±»R•ø}>Â{‚˜U58Ú)Öd¦µ;®‡©SS,|ˆMØu){Ë%…À°Õ`Ô0p‹N«ñÓR,Û VB£ì=%üÌÚRü¡½J¨Ó¶m¤´±Û4±Ã1J7J—Àxjå{L<¯2ÉÖ5¸à3@òS(Û-ͽ~(\·ðzš[¹T"°]§V‡à¤X~4úî‚Ä4u‰UW éÝÔôÜŒC»t"ƒøáùë&™+ D¤™ýy˜ø±,î'ÝÔN¨%ÆÈºdäY*uȉ1{.ƒ¿íóQ"¨ßíùØvÅ&šA*²?¢•ï§IÜiàâ‘„57ŠoƒÍ—Œi`Ôqˆ/‘þÐAÊIo»\!{n{€SŸ­iø4/óË6£oÏ0 }•xWÓtÛOª¡ x½^²ç³Ÿ‹A4÷Ê Û r»;`%E;2ÊBAI¨§ÝùÚÈ^¼ÐµÂRgsD—+Ø÷ŠA`”ÚånÇỎÅ»sÍ›«qB>ùãNÁÌÕÈÖÁÓ„¿PjÅ¿ºþ^P!$‹7”6Ys£W=,£C‹¬tÓ"lèØË9¬&R—„·Š.M·‰ãQPÖRÓ™y{¦Cæ>y,Šp5 ë4Ä7+•u›ÚŸizÃ*à{më¡©~<ûóî z:¤XI@áõ)n–ð†Âö0 ƒô¯Ò˜·L¦¥dÆ#È{á¶Ì'{1KöbvMZu0DÒ°îYL¾¯‚xd„À®Æ;)†40V°ÔT? oÖÑ·èØÇ”ÕõËŸ iP­Ðh:¬ùY@ç cé–…ʹ4¼ÕGðÍ™\%£¢­ÑÔ©)ô×§ tèš]ÖÈù½è›uœûýnÀ©JÜ.Aòù4é÷§“â"òª|èCÄä-“Àd ÷¹ ÑíÉýj&Æý7š¶Ò“=@ßä¨Ö~è´îÙäá±#¬‡oƒÍ—Œ¦Cä\(Lü‡3o¯ˆôe.—> ‰º„=´ó6OTF„ðjnR刎P«ªÓýÄñ(“¯Ok¼Õøí Qø´Ð%‘»j"n˜Øm‹ÐتØZN5ÙQÞsœÙKYÜOYøx)¥Ò¦jœþg?ÌÙmôñË6ÞcQŒKYL”šòä3aÌýQü÷mæv±–Ô0áÔs1Š·¬¾ŸÍ˜Tê’Ê礔X÷e_B‚³ìEz€¬vÎÞ¬½„•vâùÅ«E #Bl_ ã:ÊN… —rXå Ám~Œ­ñãqÒ¦b†Ô¹ˆ’gßgãߪ£iÚ@Š!?zÛàodÿfõæÝ#Ñ}>Š·,æ/Z’(B’; dU¢/Ûø—üØ¶ÍØèoNKÉĈí 7Í®RêÔ±¨©wS­ftóš»wɦã \’y)¡Ñä¶, ëžÕ¡0î8„]‚ñ‡$3®[·éȪÄrºû]ÑQ,ËR}­;ÑCQ"ÏDˆˆròÇ'©ý¾†áRòCS8ä¥d®VkxµF¿ùìÂu · „ÐGG°, ÇÉQt${ ÁÆäiW`Õ¡\¯¡Uu¸^¢t½¤”ÂD[}Ec‹}“Ÿa]gâDtÝ€?Bóx™=“%û‰I–‡'h<,¾ 6_ÍEŠ7ЭųQLÑ‹YšùDp«Ÿø+“À8ÑQ¤”Ìü"ãÑ™zm²U3N¾˜däû#,|¼Ð)l¢R­@ÕÝ¡œl•+L¾2‰}¿óÎKŸ/Ø®=b¨2×ùL×\ÀZj±‘}ÌÝ‚³­Ç%¶ê4|KÕŸk¿¯áõz‰í R9Ó_ ©j;õ¤—Ñ#£L¿1ÍÁP…ÊRŸ¦ìò=Þ ÑCQ à v8FêÝTWÀëè¯ytlÛn•‹d=‡&"H™'WJtC]±µ’Ç£°ÆPã¾k1ÓFOÏ]Rì?ËRžõÉãQ¥ÚۯϞÏ6T¡½-=²ÒõR«Œhì0˜Û¢cÜ2™Ñ4üw,z½ºãÑ4ðá8ÝŸU{»”Ã7ä£Hk„áóYVkÇ53Ìö¬/S‡L›.Ú¢¦a¸”ìÁ}¦^C´©³¹†½y†™UÙuO) ȺDJI­ZSÿÝxîéŸM·Âédãg^ÇáÏÇoïVxb¶œ-±Q|C>jµR~Ç#H®²;Ø(Æ¥d¼‡AîR®AÉW×jÞ-S.WT xy¹Ð.О òó•Cdòh¯G09@Vô¸ðm°ùŠ0ýÆ4/Olˆ&ÛŽÙª¤ýÌn-;̼6‰½\!%‡¬J%Ž8d¹¸@äÀPP'Ke ¥ë%"»uâÅ®HÆßè.Ã5ç5â'âðIçF[ºe‘zkVM:÷ûë‡ÐÞÚêJ]xþ£yRï¦ÔÆ k8U‡Ø¡úÉ÷S°Ü}CÅ+ý°ÊçfßšmÜôê:Öëy5}pÖCö¼R¶n+6({ÝÈmÈËÉŸ­|f«µ¾„Ko¨c çY BöR–€®¡ï6ðoV²+½”'Æû|žÍæïÄË.e°Ë•޲hæl·ÑXâHDÑ«—f?TgÚÌâŸB$ ÿ&òRdâxÉ ý½ÍÌ|âÕµ×óøOÇÑ´=˜¨Kðhø{š£Jtê¹X×÷šýÄÄØaP©Tøà½Hÿ*­Œe›ÒÍ–eQ“‹P”—¿·¦#(À ;‚ö¬?ñ|ÿS~&_›l +KŠY.—W&ÿë,—™Üˆü°ºo:(MÙ©Ö(ŠÊ·"» 5 7iáqâÛ`óbúéu½.Eê£\KJ¥™4%fâ;NîJŽÄs ôÍ:ÅR±EOjÊ ¤Þ›ÊÚD/%Ú„@‚á‡8É9ŽÃÌ›3”®d;2 ŠSÁ¿ÉÏÉTZn¥’Rs&ˆw‹ê4ëוJ¥¥q6zl”acŸÏ§,Öyôz½6×ÊOE—`ü­•4¼áˆïÐU*L@]º›L1YMËcY!4d.=îócÞ)<´ÒnáÓšn0߃8aÝUý’öLSn* ö=I9‹#XwRT‘>ÿºC˜ƒˆ::ÎÏ"Bfª‘eoŽ”5G™Â51ñêÞ'½Œ¿4®ÖƒÛMy¹Œ¾MïèÕ; ìrároˆ–^ù¼ÂÌ›3d/fÑ7«òg`W ¥³—þ0Ýe[‘’Çoq¦Ð¯$=Ì;åŽQƒÜ5ßSÚ—¾û+Wóc#Óö‰#F…úþ¾É¤j¢™)˜·MŒíRJr—s䝿[õýìå¹k&Ù+¥¾FÓlÒg¦H<—hìâB`œˆS Øî#yEíå‰UôöƒT³O$ë²ÑšÇ4Σ  ! é䯗І´ŽÒU`w€R©DÅéfq†Ž¡û™z>ÖÓÖúQ ëáñâ8îõUâÛ`ócòµIb‡c}7ʼ„Ç LÏâTåšr$É’Ê ²®ØaM—M˲ˆˆ"îZëʯ†”Y2gÇðj*mʶ߭JF]’ù‚U®pú—éŽRÈüÅåûµÆûÉò-Ozå÷3uÐ7ƺ›jÖ½^/ö=»ƒÝ¤Ä »É“/$[Ô^c»Áøû)•¥Ý“”ïXd=Jw­Wo¡.\)áÕD‹¢›8"0°+_¬²®ðô-:¦iv ó5‡ƒèþ膕šˆ‰áßìGJIþZ…ü|VÍsµÃåÅq:gE*lD Ý¥æ½ÜOºç „¬®|år¹U¶K¾Ä¼c=0CæÜñÛ@•—jRR¸i¡oÕ‰z:«¥k¥¾”fg¹‚åB5í32—J8ùØì™¿*|ãƒM¢aCœ¿œëÒ&úCÀÄËŠÒºÉßÓðiá¹iÇaj¹BéÃ,Ùu6v»ÑHoNrÛe¯æ% ÞFו´ûF²Y=ØxÎdW©hF÷ðjÞ¾¥¡~–Åí7PáÓ£±,‹Ä‰¡ÝEfßIc—W6ìôûéž©¬zU/LJª< IDATÀ¥wˆS6‘x.¬Ë.»¼€! ¨¨TÇÐ]“hžÁ=»´€”Ýö½°ºiÙ’|©4¨§ÝCúc©&õ*Éù‡ 4]5íÖCæl¯æUY«í0²?€ö”ŸgÛ|€’/, «ÉÖ÷1ýÆ4Â%HW%ã œGÓ4üCP©êx5°ËŸ!«ßí8œ…ö*Ÿ¡è(¥R©CŒ¶’Ç"ø‡|=½œšßcl޾ÉÇÌó1ÆÈT¾HM1X›ÙùuÁ7>Ø k éíζúˆÿ`„üÕâc«].zÙ:šR*ªd]ž¦õsóß¿ë¶E¬aÝ íýù3óÊP¬ÚƒƒöªÆ¢¹ØaÅ»ô’á2ˆìo “eò¥Æcµ÷È3‘V?  Y÷@þªNjÙ†º†”er—ððr(ÙOJd?y臄æŒSѲUâýŽo|°I+`Ýw¨¬RÔ<$¸;ÜáOÿ(°5 ßOÇÑ1³±A5Ì}4‡mÛ}”öß;ŽÓwH;¥tµÈø[ó„véLþtL±ªNuÞ|Ó?›ØÝs5ÖPtª’ñW¦¨8ç(ß|­ö©ïõ ër—´V&6ùÚÊï’/&™›ŸÃ¼mv ÀÂÆv‹È>?¦‡Mç‹uÂ|\Іú+üƇІühëÜᑽ‘€¢q—¢žMŠw?Lâ÷ù[šh‘Ý‘AÅqºÛìEofÚJ<Žuϲ¬¾Zs ˜‰R~!N#eû^ˆp(Œ¦iÔdùæ™xUõ‡õ*Ý)ã2ÑŸÒ:²m!D‹LC=BîFŸõݾ¤™/MŠ=uù¥ÎÃ|QøÆèíé=ûag¹Ââ½ÁûÇ£¸5âu³«©nK‰ïíL)»d@úAxŠä.Å»(”íXï&’ÕÖ »ìØî£pÝ"w)‡¬vÓTW[!ŠÄs‰õ³ßµ¦Âq±VÄõÓeëY ÓïSŸ}K‰Žš7MÆž‰1::Ò (ã÷O=%ý«t‡°å2„§Æì[^65¹R®LŸ+8âÆîÑÌî@„ dµBúà ÑQ*•JCƒ«;SÐ7i¸…j­Ì@÷kh GðsÅž"Žã \‚Äs3xŸ « bõg¯æUjÊ;LRï¨,fØFÁüGó,j¥·fÛ`&–ë1°™=ŸÅëõ6bÏb—Áf”~J ‰£üšÖs.L{R i^œê—++óEá"ØôC¯:ëÜ›Ij@æãlWr AdÿA{Ø¥)™ð¦«²ïÍ 4z )M¬»Y„Çîbælä=Ø)¡tKÎ~e“v]¥Àï÷3zt´5Ú„I„˜AÖ³­lâQѤ³6›ÿ“¯MöÔêJ‰(+„ ”@›d ÛqHÿz{YÍR˜¦©²ž>B›¡]:ACä ¬iŸ!<:²ZnÖ¦ßLåsÙqZ„Z»fª] Ù t­Ø7DöGí u .ZKù&Ú“+™Aú|¸‹ÞÖõ4æÍзÎbÞ4[%Ð=uZvæMXw-Œí†ÒŽÒi+]/‘|!Ùº®¦šú‰Ð.c‹Þ¡=ujªewÞ<Ð>N—Û¯Á&ùb’èþ(™ó™V>y,‚S­uõ,ËR<úøÜU“Å¥Ó˜Vÿl¨9I_,ùà½(•JCfBÌ¡o1ˆìƒô‡&ág|ضFéz|ÍæfâH„JµÖ³ÑÞ+s˜8ÅZ²[4Ý~sý=%°[™7Y÷,4McÂå!’—J]㌅³ý3Š ~<®ôŸ§ƒi&«’™·gÈ_É·ÃÆÁ=A̜Ëtx†÷àóùRx„ èþšG $œØ².ñ hO+Õ‹–ÕÕ—4¶úÌe-bó¤Ÿx>A`g€Üå) @¾aôh¯×ÛaP¿n®C{{]eR Ýßä¤|ófãµ›ùÄ«°Tê²™hbôØ(Ö] kÉêP%È]Î(äñzx¼DË6˺ŸÌLh·ÁÁ=:šGùé<.(5ë<Ú“ê˜x.ÑeÉýM 4ð 6Ç£˜wm2—KH)•·K#€Ä‡ˆÿ(I6“!´«ÌðžHëäváJ ·=Ùa„DöE‚X–Åè±QÊå2 yÄŽÓ¸o˜;ã…z‰ü)íuMòu½¥ÛƒQ—'ŽG9ùÒ$‘ÃqŒíJÛk$6¢ÜA×ðk׆à’ØeAöâ]%¬‰Q&þ6ά'çN³pvl]㯵4Y‡Ü•|—Ù†Ÿ§:Œ½ÔÉ’›¿XèòWZ%²Aì¿*ËÊå2Â¥£oóNÓœÂYvзé­ç ¾í•;fË/'²Û@ßäCßìDz+d?Yg“\*/ÀÄqºN`»N©ë»Î­º¤Xø—í–=E£B oõS«Ê¾¬ì²Ý“t¡ú¥â‘4Ïú¡ý Ø9íWùºãl&ND™|;Íäß*¿Ô;)Š¥bk±¤Ï®Y¤¬ÿñ¥«+7F|4Š“x/Õ•1hÚgHi"åú%£Ù·fq‡Êr…©—â̾9¥Jgn7si4Ò¥\Q]ž8eØ0X8Ÿë8ÑX÷lÒ¿HáH9ðŒLÉ´˜95©æU\‚ù³óŠöÜÖK:ýâ(^]gn>Óz¯RJd]àT{ :Ž$3?×hÞN#åt£ÌÕùw3B‚Ôþ “¯$ÑÄl_ÑÉàÎù닜Œ)šRme@¿æ&~tŒÔûi¬òÊ÷ñ°¦O–e‘x.AúÃPFÖUý¿—MöãD¯’Öĉ(ÃÛt.\Îw ‰®)GžÏzP:uÑCQô-ú …ÞEëûMæ¢ð0ïè@–Ù·f‰Ža£U†µqÇìñÌ]31¶ù±–Êë”x¤\VÙvsƒ5vHÇfd_ߗܵb×çòÄüOô!£,Þ²Ð7mœäØP%ãúhõĔ âwmü_Qà›hàlJ7,&Çj@,|R ô´’zI<Ÿ âT˜?;Ïb"Û¼¶ë˜KS0òÌXW ž ŒÓÉ_ñcÞJ¬ÛHn×ÔòÖm:DJEFú‘ê+óíÈ~j’Ý g{ó1ÆEƒŽï0v¾cXïäÏ>xÍA|ge3.°—Æ¡Þ;ûIÍalõu½éŸM?Ǻc‘»œcFB ~:NâíN{RØ= ¥»6å3s¸ïÙÛæ¡Ýk`-U˜}7íTTéäØ üL˜¹ ¢‡^ù=t_ŒÀž Ó¿œëÙ<~œí2ˆìÑUÉ«5 J,gcH>?ES]±Ø6¶+nMÓ˜þÙô†‡wWi²‰W}Œš¤~áWªà(Yþ^ØH?*s¹DìˆNhº'}C>¥köö4µºÄ©VzÏ(¹@º„îìù‹&ŽGÑuä±è†%²ªÆ†· £oÑ)]/1êÑð y©9ÜßÒ  ßÈ`Óksžxu‚“?:Éä+“Ócû†ñoÖ)™ƒè!H½;|¯óIësgÊHiÄXj—ÚHŸW®´OÇ\£1:ýa–èm«of-̼£ât—Ì›&SÏňañ­Ó¿.Á|6×±ÁÊ:ëZ¯ÞÄF2zdóŽIîrŽˆ L)1Þž¡$;¯)~"uZ¥ŠðV?‰'H¼4ÉÂå|‡%u`§ÎäKIN¾4WˆGšßi–òJ—ç°îYH9†ŸIFG¹p)GáJ~àrÓ£ ¨k ë:µº¤t_ù‡ÜC}ßÓoLclñ!¡ü¥”䝿)—2¡]:C½V’ÚXn?ô2ûv…©S9¼Oõ¾ÎÕ¢Ÿk¡9\KyËqÕ••—ÊèÛd %¤¬õ –ÏV%fÝav šyׯq*¤6°^š’E«‘“’ƒËrk¼Þ§<ûÚ×ƒÅøUâlzÁqNÿâtëtÖDö“"š«HöSá1I¿ï…ºZ¤ÍÙ5±ü]p}†”A’Ç"Œ‹3÷~º«<2ñê²*»Ø6…O $_L"·DW5=;¯§ÿMû@Ó`Oô•<϶-þп_GÒ[;É^v(~’Çë霬—2CîÓοMœ˜döç}/¡'ÊKe × J=š¶“o4z ª¦ÅÁÆ*W˜<5‹i9]=‡òr…©×g±îÙ4A8aìh ŸæeìHŒÔ™y¤œEÖ#äKEœj…Liã2>ƒ¢U—‰¬×¨ytŒ=Q²Ÿ˜„ž {ªHôBüxœüå =™Ô;)»,Ü1´£û} ëãµv8Ë0uÊKþŠ$ù¢ÊÃè>ÖR¯i‰ æ.çÖªŒŠuIv>O@w#ï–HÍ;#õNŠèÓ¥uJVkèlª'Gч4Ì¥rwæåŠ!Dþ0Ü“h𬔶ø :œë}Pü6Ð †?š`Óï&ökáR›°¬·XUÑCQÆŽŽal5Z+«JÏIÖañzïéòám+2÷«gRšŠÅþ¡‡”¶Ý*95Q¸iáÍd‘@Ô¥2o]’®¯¼nðép…´Ö²ë‡Z­Æ…/ $‘’»œëÈ Ö¢.?J&ÓŽJµÆ…†^\æ|¦5ƒ”ú(÷…÷jV£p½Ý¿F½¿ÐÞá=a¢¢-ù–õP©VˆÿhœìoRø¶…0ïª~Ë“Ùãq*¦[Íûµ0± ÖÓÐ0‰ç]óàžÎ Ÿ8: ûeòµI’/$±–¬žâ”«aß³)ÝP÷„ˆ+äñ?å'z(ªuû„wéDCÇÆú’R©ˆWV•q…gÍc(->_¹F…,RjÞÇ£&|‹üÑ›&V³M"û"è;‚Td­C¶FV¥º\td!É£l§Æüo²=OÛÅEœ++åÕ=:гì`—í‡[¨KDÙf¬Ç&’ýÔ$æ¢eù[q hÔµgÏd‘Rb/÷ÖK¾˜TúRçRT¤Ü=÷`ô`‡½ôZÐ7ëùÅ?NÌ_,ðG×4š»c*üË 4É£d½“(0zt}«ŽyËÄ^¶É]É)Öä”wáš×VÞƒã!È÷xLâ¹Bˆ®Åâ}yÆP6u¹f“ºxââ¬PðEÕÂç•ø]j·Ž µþziø•ÇñC!FBŠáæÛ%{>‹ó¹2ü«¬Ãú²=¢§ÉZ/h[B,œŸGߢ܄K"%—…U¶YóS¯7Ê|N¥õþ„Kù¢…ï¾aø£ 6¾M<öü•ūʫ”r—sà‚ÚçµÖ ’8!ñÊ™ù4sç.t=÷j£­Ñc£dΆ‘ò¤zÎK9J×K[ ¬{ß䤫ÛXª™:Dé}#¤ÎæH¾$ñ£šGCx”Yí÷5Üßq+;ã·&9x ŒîDöZ]ÍòV m›õ‰ˆh@iŸM=÷ÙOæã܆‰‹g«’aÆ—“Ö||ˆì5ðû|vcÙv«Tªoщ<£ÌÖšÙLS~e-¬¶@nGÐqˆ\+aŽAÛ¬Rè麮cì0ZÒ,æ˲°m[¹¸ÞY{]nZÁºdR^¶©8’‰ãQJg²Šý6€þžæÊ­!“»f®[.]ô|>?•²=P憫ûšAY_ GÊ4óB°–Íì™lK°Y9xX}Á"ùB’ÒMµg´Ï‡}ñGl¼Oz;þ­)ëÕ2ëæm›ù_Îôçëe3¬çñmz€WƒÒõIÏKfßš%ñ|bà¦jSÏ%}»Ç¢›:5E`W€ô™t_§ê0ÿÑ<ö²Íü*ÅÛ&kÍ{¥D¥Zë4ѧ›½ŒżivÌúlDN w1ÃHÈÀ?äG<ùèì²` ¡/¹OMÛt¬KdkÉ"{)Û"“L=C÷Jbû}‡ùâ'âëf†]‚{‚è[ôVɼibÛ6•J¥g™Î¼i;Û°œQîš ×Ô¼Ô°¡Ãñè@Yqú|8`ÝwˆÆºÍ"{ B;u¼šÖ᜚(Û ø]:k2È"@šÉFà5¶}U$šÁ* ÃuX0 >*„G`l7”&Ü6°Ü"þè‚}ßî˜">mtHo´Cˆd3kõÉ+v8FpÜtîôî/$‡X( ¦Ë]VŽÔ;©®iöµ?—»CâùÄš„‹ÀîÓÊÜ/O ë:Ù‹Ù5×ôI!û<{aúgÓÄŽÄ(^->T?õ _»`ó`Hƒ­™›¥þó*k`äû#,š‹-QÊøâÐ(+tŸ&×>yë[uFŒ’þUš±ű—[ý˜wìÖsé[ü8gqªY=ÉüõØ™b„EÀ¥²ƒ /ôÜ|Z¯¥ëÄOÄ;%òëJ¬På›9 ŸºÉ]Α9›!ôtˆá§`ñv™“¯La„ÂoZ]ÁƼµ2SøTÑ´ÇþjŒì¥,ƃÔÙñÃ!J7,¢ûÃÊòØ¥úZ½¬”{!z(J8¤H ßäÁµõ<AÊÞu®d¢¹™Ë%¦NM1Skuþ£y‚;ƒ;Œ.ÆWh·Ap»N`§ê·d.•H½“j¸m®f_­}ë•ÑV#´ËÀ«i躎U¶ê1óæ é_w¾¯ì'JÍízxÉͳ¶`0d$6Bñj‘Âå ”uŒ¶‡DöEˆì‹ <‚ñŸªlRõŠ$¯Nàõz1o˜}YxÇ£ø‡]â&~,Nþj¯.Ü× _»`#¥D¸Ý51ñòsósH) ø@Û % ¬û'!ŠÄHŸGV½=ŸÏºk1ýæ4µjÙ×’·úI¼všÉ—ž%ñ|Be ·òÄgÉ—,J·Ú[v¨œI£ùê¦h{?¶¦á …)]ɬJ¢¢ä yìû6§Òš Ps96‰Ž‘9·Ðqj úÝ$_› ýö,µjlÁ¤xÇfþRï ¬½¤çþŽ›Ô{)dUâÊåI“>fâD”`(Déæ"³oÍb¶zž5­‚Sú4BäI¾pÇq(–Š-ëâ?FDŸ6Ð}>ŒÃ=%]ÚK—µZȾö}›ÐÞ¹ÓT>ï¶y(\3‰ìÔ)•JÈÚÊá+w)Gôé¶ã´í›oòh¿ÏG~•‚ùüGó=3cP=Kc“«ì´2µÂu}³†U¶š=8þÒ8ñãqb‡cYU?ýv„vè„ÖÒÊ/²?Bhw§êô-I†ö†ZŸ‡ÛãF÷«€é´Ç !Z;dìp ïÚŠ%åäJjõÞÃÊÆŸ²yL¥ÛGõúCÀ×.ظ«’¹Bž˜Äô€_BòÅd«V<aê½&4ÒßXÊ•gá|áªt‰Lž‚“Râò·Ê`Ç£ž‰2ùÒ³X÷lŒMUÿuy™ÿ¨»„ÒäüO¼ºÒgI<Ÿ`îÌ Ô½à”~Wåóp—×MÓh:̾—îjæWª5Ò¿˜Å©JÒ¿JãHÈ pó‚*µè[t&^›`úõi4-@öÒÙBšòrºµ©H)‰ =Áºmµœe]?6ÅÜÙd5Èôê”à xûÐ}Ó‘ýÄÄÐu¬¥Üº’.Ö]‹Ìù Å«Et/DBad­ÌèÑÑ.·Ô^tÜÑ!‚;t´'½<{3Õ2F ‡ÂŒ¿4ŽwHÃï÷â½Û™KE&^Àºcu¼–n ó`ö8Ìu]Gߢ¯k·Á:Æ6?þ!ÑVMÐUàpì[ùŽ’dÓ.£¹èºÎüGóDöa*†š˜CÜáG6îuÃ0.¾Yoˆšëz5Ì»åG\]A+ÈøÚ@ùWH%ãÏûi’/$q§k‘μ=C±TTµë6–Øì™²>Beµ7zç«P^êö àpt k•½°”RÝun?¹K9fÞžQ´VÛî2,›:¥dÏη†U}9…îɳp>BpªO´êÊíÈ]Î1ùÊ$².MÍÎ`ÓëT˜<Á^®0?@©£âTHý"…‚ì%Y¤t“Ö)ùô/Ncl7H½1Ž}¯ŒÝAÙ­ ª1æÞŒP,Eq\zk¥…v‡°–¬5›±ßd *ŸÒ¾Éû÷(Û@¢o ¬ûØØ¾ÎçÊp¯\U}¼ZCƾyB.Þ´°–zg#úVac·Û ­üÅ,ë]:›=5E¥R!¿ª>ûQÛ©P¾/É]3™xy‚ÜåRª2Ð 8ѧ *R’½²Hl_°‡Zï,Ö(>-´ž?{1KòåéÞ$¬ž§Hÿi’ÜÇ™V°‰í  û¼=2e]RºY"yµHªš"y<бM§pµHú\û¾}߯qy™»˜Ãiš 숃˔·L¿“Rò~7™ó*N}›þGlÖBâhMˆ®L%s©„}ßiÌežJßÒ.¨GâH„\Á¤Ò.ógæ‘U‰mÛ­¿é…ؾ¹K9„K`-u®ËÒ-U =Âëõvy= 4*¤ÞUï;´WÑ´ý›üëfÁ½èÒMëéÄ‘¢.±s1³‘01oe ‡¦˜›Ÿ#v$ÆÂÇ ¸ÝnÆFÇ0MSÙZ—º‡»Ï'Î~¿_™Èí4Z½£¯#¾ÖÁ¦‰¹_ÏõÌlœe§ë†ÅÌš|ó4S/l-Ô¦WÞrú.’ÐÞþ!?š¦áõvßì«jWŸÊ¦NMqá.ŽÄ.5Lšêt [J9Í çÅüÕ|«¼Ö¼!ú6Ø¡˜¢876‚¼i!~™ê¸÷y™üåidýdWúR©Pø¤À‚G𙦑‚»Ã®;Þ[t¯¾Ù‡¶5L´¡2ìÊÏ…ì*N¾Ð Ÿ(Æ–EÌ»åV~îž…û!lª¿iíÐÑ}@«\éÊL;‡OžGVWiø5Ћ€°sð3@7m,)ùn³ä¼jvLˆï1)^-âÕ¼ÜKH<Ÿ@,›èÛu†7ù™|7£9w“½”í 9¬¾OÖBh—޾Ňö¤›Ü®Á­Ðã'âhšÆì[9æM{ÀôÏž °;ÐQ6Ó·é-qñ~Š©{.eMgoâå ŸZ™Õ×߈`3ûóÙžµÓô‡iFvýÜZ²I½6ŽÓØxG"$_›!3Ÿbñ^ÖÇÁèAr—sÔd­ïlIòh!¥+Ý¿Ÿ|m’ä‹Ib‡c¤+²†µdcÞ)“8éÚ Ï%ÀÕ[jGÓl ŸtËÞ˜7M¬Û©÷RêFhœ²p©#/À¹'”ßÍÔDZìnMµÈ3ÊG»ZD¸ pâ¼|Zi{µ!º/Lð™§ßI9§\.;¤Ü{ÕÞÍ»êñéÓÄÇsAìz‰LÛÛ ¸]WV׃g_ùz³ ‚ÂM‹ ¡c—s4Æ#ÛÖÝ0²ºþs'‡/³g²Ä…úJ¹]ÏèÑQ:ȶmÛøÉâ þSUråKDGþ†ÿñÏÿí¿Ó¸ñ;u=m~–>³¸}o™ð¾¿äãósã?ß ^¿É[º^Âø÷ágãìü;)äÕ&ý†9Åùç ÞçEþ¿·ÿiyÝçûºãêb÷¤{/¸þÄÃò?{©×¯Pÿ×õçœþ§ýÿ‘Hè?òä¿ÛÿŒÈƒøôF×ß €ÿZå?üKg¶âú7ÿ ü‰árá8ÿ3é­ã½ÚvD IDATù+nܼAáÓS§¦zn†‰£þz_€ÿÞOáw½ß—¹ØXóRçׯÁ'ÿÛ'¹ý_n*£16ûùŽ”Ë÷[÷íz¸ºhQøEd¯µ´þúñûýˆ+UÉ•Oÿ áªS•¿F¸ùçßÅãñPùçÊŠïÏ¿¸ÿÿŸú™ý¤@½^ç/ÿk•¿»ÁÕkWW>‡#¶ý©ÆÏ¾x¡×?$¬Ž)_»Ì&ñ|‚b©ÈÈó®ÅÜ¥ ÆvàÎ$sù‘r¬ë1ëIæ-VZòÅî“ÚŒîX”ëÝCr«‘7mìSI¬{eâ?žhÍ®´#ý~Z±} FÇ‘¤Oc¯3,–Šo±îYDöEÈ_Bˆã?…™7ã8N³FfU0-ÛtfÏd±n[D÷GöJŒÝafÞ˜¼XU/ú.ƒ˜ð·úÜßq“»’Sý ªléÂvZ3A¥ÒJpšþ0K`«Ò2ÙO”ÌÄËëK®4¡oÑ1¶¤µò^ò7,d]õväusCü£BQf¿Îr!Ô¿]vÈ^ÎS©ÖÕ •>tÜi)éõŒ². ë+Å;äåô/Ocݶ˜|m’©SSØ÷íŽ,\±)½}_¯«¿ãöyóN™‚f¡yźs<‹¦iJFbêñ±ýÂ; bϬ/î™»œ£òy}³ÎÌ›a&_Ífü§9òWóhš†¿Í”ͼivŒ ôR£="0°+ƒs¾ÉøÊƒíø¶èÌß±Ël $_Hª…ýã1¢£'©ür Ý·€ykLyœ»"ñR> ÀÔó±ãf}ËìeY]›ÕÑd—,ߥ$N’[ud(LußO“Ò:ñòæm§Q’H‰P©Ö(ß/“»f©ÉàÃ1LSÉ„,Þ±È\Z)½õžä‹Ì¼éÇ©ö.÷y5Áè'±~š$z8†ÙP7HÍ1q°$e"(sePá8Èw ßW’™L2™ŒÚ®Ûíû‰8“É$™s®Ïu}>ï?ùÃÛCVç —UVÎØoÇ6†1ª¹SüHœÊ ækF×sËÚ0ž {ºDúx÷œjñ¡ÃÌGìï«j.òû•“ÞÔ×Ķ0Z@cú£ ö÷6Ù³Øí|ÚŠ×UfÉÚè„Õ(ûÄæ™žÅìÙ©Uï'u&EâXb OUinMR¼QøEàBC†Í`½B3y2Nú„IüP\)뎨Ól >á_"¸õG„ÿŸä¿Êã|ï`ß-5]$KÖR;¸MˆfÔ`îZ™Ô1“äÑÃLžŠ?õ[‹‰ç¹XWfNÅÛ™/ŽX¸¼ÀìÜlI(×«æ ¨ÓÌ…Bß(ÿüËO6/yW¯ÈKIįÜdòƒIÆFÇø¸5—¹ s+­¨ËÊixîZçÎ[Ê c£adSOвÕw=—Ê}ëQ|ƒùƒA¬Ç63*Ø;uFn[$|ã½IRž·®ŸYòdgÙéjµyµ:ÓŽãÕd×înê“)ªËUì‡6Â/H¿—FøÖC $†»Zæ>cw¤g>ÍêÇ–ïÙØßW;N ™÷zù§¡O At§ÁÕÍ^U Xºoµ‹Tò”bªÙíuME[H7IžEó­/Ðý"y*Il §êt‰<{!u:…”²'i#q0Lh‹Fà•8ЉèºnÇ`]Ê*æþq–¬o€!„ßAˆó¯†ˆ¶ã0¥„u¿¾"ñ½Ó”,/!ª}'b6Õ›°Iž 0žíú^oãc¤š·²­~Åàø—XÙ),xüiJTþ5×.4kQ¸Vh§h¶<¢ì5J–M쀺±ŠåÖ=«ixùæÀ¯'Pù2sq–hX§xÛ"p²ys?vÚ³ÅÊ" —8ÿ—ó8O W =wýýl<²g³d>Ì<™$ã´ j崼ƜFžè¾IJ·æ˜~§ÈøŸòL}¢fd‹–M¥ªÚUúv“°®1„À[Všüå2ækÆ3¥­ŒŸPd)„P³²Z¨ËUäWlŒ¢Ø¬Eî‹B\EÊÃë>fäèÉ“IÇÕcŒm:æïRÈÕwä÷#h~ôÛiÊåÍaeCâT„OP]vHŸ0‰E _Ïàú‚];ɶ•DŸOóG¿  ]¡O­Ó‰ð "{#ä¿Ì3ñá®ç2óQ¦ƒ4<•¤.ëÌ]˜ë˜ID ÂÍE„O`îÑ)ö›w¬Ù]¦Ž™,>lF’<Eß!Ts ßZìك׶hL¼;AµZݰØhBÙ§/Þ­tüþ˜ rc¡=4NI±xk‘ÈÞˆ »B;O$w©HêLŠà®0fm¨Û|Ú¡`›5™|ÐzŸæ•‰-IßžçvifFOŒ2¼c¸]tŒ]Ö=‹äÉ$Â/”“†Tqåá=aô:‘ÝìïmŒÝRWn“§âhñ׎¡}òT’¡—‡;V¤ro©ýõ¹ë„Ç\åÇ¶Ï ²]G pkEn¨Çý,…†ŸÖCLÖæ5á×Á7 õ ‹B»!ùÍ¿(ÚâEà Yl„ß!ó~ì¹¥uú‹·;ŒìÇ6ùs¸5‰¨yêûR2l S¾5x±‰î‹²XYÄ[öÚ;ÀÔq³MèÕ²Èÿ=¾õùüßGhw-Ò-fš_ëTJK#k|P¼2>ºl-'Û¶;¼Òr‹¤Ž› н:­Œ¿)ê¼aÚLžŒ3qnšì»ã힟#¥ŒC¸5·g¡IžLbÝ·È|˜épÖ^ÅŠ…W›Ãz°RÒ'âL¼äü—ùöb—ûœP3µ“ñ6ûHßB”_ìS (“˺\yßéwÒ˜LB¯„p”9d2ëØTL}2EôõhÏMÉÓ"¼'¼®Æ,ÿužè¾(ûŸYdt_”X4Öa·4(††z̵°èƒPÕÁyN³PPÙWµ:…kÚ¯à×BÓ²Ø= Àì…²ö÷êÔ“>nR©Jê?ˆŽµ˜úªÀèc˶1_3H¿›¦R. %Æ~7Î’µôÌ‘«²öBÌv K'OÆÉüežÌ[‡É44»ÄÔ9çñÊî]ˆ%À£t«DêT P†‚­b3}&Aøàü×4…§lOo[äϚȔ¸˜‡IM0þ–rbät´©Ó)Jå ÖýR® ñ̓Êuö¡Mè²²6yè'¨mG=œŠ3þ‡ö²Kñ–…ýØù·Óo+ãÈXXgæBû‘M©\Â~d3$]毰¿ì“ܨ}Ù ©c&®¬÷<õ'O%74M]í ¼¾ñ LŸÀB á«£ŒÜCꌺöõ:¡WC›*6­ ©~ú#“•´çV·¡—ã¯èÄOZlê~>ANJ&žbp׋Ѵ–Þêùu&ORþ®ÌÕÿ½ ´úß!Šß–:úÆö;0‚ë¹ØV×óbˆä©$ÓŸN?Å;솾}ûQ´ƒY¾k“yk»ªNcéwÒdßàü_Ï+³¿/&ˆí bìT§}«Ú•/\ZÀÕ4¦Æéù/¦;²ž«?¿ìÙ,Žã<•Ýú½4©·Rh_jóÀ$ÕÇU\ÏeäØõZ7ÿð&Ï+µf½SgK‹ÔjÝX²çfÚ‹fù^çã[ƒóµxœB[4â‡L<¯Nþ²rt„Ö¼Ú–þ •k‘<ªTîؤßIcO]“ ! I¡G›7y4 ÖùµÅưԀ7KhKgy¦],ìG6š¦á-÷Ÿ©$F;˜žB„_tØþ›LŒ]²¦,¢~óœs”Êß–)[&ºÇ }"N@d>ß\Tú ~Òb#v…‘¯ПÒD.ÚX„¹d-a?´qŸ¸íw|5Äê ÏÞ³ð>Ë©£mSzP§rÏV‹îãgß 1¦õh)­éc;U‡ó_žÇkjv’GK¸5ÉìÅy¤œ'÷…Z`ÒB Ec”-Õø]ú¢gA‹œð4ð<¹ sØmbÑÉß%Ûùíö#›úõÄf üÿ„F)GÚ_[e”8F×uœå<֣ꆳëžÕÅNK7‰Eà o µ‡èñ#ñž9D?%ìªCþÂÂ3 ‹×³Àà žãx,Z*8l-Ú. ˜õ f¥²ëŸõÑáø‘8&¼]G¼<´þëoº‚ Ÿ ¿ìEœå ‘µ rŸ¯<4½=¦­_4SÇ¢„w£WþfÅEôGzÛ€6÷y}»N8Æ[ö˜x‚¸O¹„,<'ÖZ+Ì.àW-[ù ¥à?ü¤…;2¸¦ÚƒýA‘:“"ܸØdþ0FîËÅ›E"áˆú½×K¯]íÚ©þÆó(\+`=°(Þ,¶OM¹ÏsÚ¯)'°îU‘²æÄÜÅ9h¨ÖOú¸IòÔ8±×"èÁ7 ±²“‘«\"¼C'ùn–PPkΚú#uÜäê?¦7ý™o„–R”­‡óDõÔíG6ù¿ç©Ü­Pÿ¿ºÚYúx*KtM["~PG!¾!úz”ìÙ,‘Ý‘ž÷ˆì7;ÌûAˆE„“ÿªÀÕÿ8UgÝB:fbÝ-yU°hÙ,ÞZTJé†ìÉ ÚTÅèëQ„˜#e¬ó9mç©5ñ#q W6.°²Sw–]ËEœu.ÒaÏôlf>š@ÊzWÐZÊçýE)ycÕàÕcÛDwéë: gO'p–=r—ŠMËó@’àNç‰Ó¦‡‚!æ.Í!|‚ô»iìï•÷[xO¸-8~˜GÖú'õxµÅ¤t‘ò Êߪhg¹w»¯µ« õwZ¸¼Ðn·ä.‰;vU}fæ§ê0¿0¿¹ç“§âD ƒùë¥ö†(u:…ð‹&dåÞæOU¿„¾ÕÀ~Ü?`­÷ÏþBø‚Ì]<ÜÖ‘¬žÿ¬w"(|gQØ€Dc=ª2ùÇI2¨<¤É¦zyˆÌ‡=ž¯)ܺ\$â¯=gKñCqB¯†m 1z|”ùËYÆŽgY¼»ØÖ㙨‚÷´')%Bd/úù¯–4}ñ“{£M}] w.‹í ¶ø aù„ÐY¸¼€ã(Åþä';¼šÇh~Aâw1Då~•¡—‡Hþ>I4%q´¿¯VùÛ2BdÉ~Eˆo5È?ÿ«;6.Ó=”ø­ò@h–ù¹ëò—®R¸µÔØÙDñ¶EîR±g{"ã×àLŠØª×“»X$ÿ÷Ä[‰ô “™³“¤ŽE»¾—<%¼?†¾]¤¤„ì»°e˜Âµ¡WBX÷-Òï¤I¿›fôø(Ö}‹…+ mjl _s¾s:Œtýž.4r„‚&R®„‚¹O\òÏ?—dÏÄÑ…+*“dõó¾µ°Vɞ͠ùµçÊæZ )iîÈW<}‡ÎÈ8– y2IüHœäɤÊ4Ú„Oâ,ƒð­¿e{ìê…!tÂ{‚HY€Æ`^b›AòT’ÊBûÄV¼Q\7V9q,A,#~°ÓO-y$Š6˜~¯Ó.{6‹¾MµÐ+‹x5±YœªCloŒâõ¢ŠŸ>šàÍZï™ÓzˆîZé&,\¯°p³Bæ+U {YFýŠÞøYØhù+*óBÓuÙ%É“Iê:Õêa2OC£Øf­& ¤ßKÙQªèky¦>LµÛÅëEæ_›GÊ•ø[€Ñƒa¼ºìA©µÈ|Ô׫žËÄãzýû®?îRŠkq£ˆÑ€Â1ÙZ.¯¼¶«g¹á¦N§(Þ,öl‡<¥Ïf°ÖÜ<æ^ƒÑ·'°—SëÏ1šžd½4=­Âf7“6¥¦S~h“:'~(ÎÄû$Ž%¨Ü«ÿ2ýØ&ýNšâÍ"#‰*·+o1v˜ûMŠ7ÆBÌ"Dóà —HIui7bûcÄ¢+4gÙ…n„~lEP  ¥Õ˜ùÇó$¯ÆÌ…á:•û6£ÃÈX–…m¯xÁ¥Î(Š¿»I=ˆçEp5 Í/˜kÆÖÐo—„À†H/; ­úž¬M | *wèëÜñ´HMà>ZÄ ëˆ†Mú½4—L¼ßÝrΞͶ#.ªµj›¡àÞ/O ¥dôÄ(ú6ò·åölPˆB„‘²ÔÞ°„÷„Û§žA;,í×}0Ll—Îáýá•ÙÐwI¸W ç¦INaÝ·ˆî‹âÕ¼œ¸ÿñ“›É?Nb?´ ƒD÷Eò áz®Þû`¨©{Iþ.ÉÒƒ% W ;“ëfgþ<£òR|j‡?r˜ÂÅB뵘Œ‰’<5N¥\Ä­É¡lèÈÚ /ÿj¹Äø[»¼@¿]¸÷ÈFs±HÔZߪ¦ã$ÕP}üŻʙ!ùûdû_­Ú¾®I©3©v^ø…j=Ô%\JX¸¤“y?Cöl¶½¸ÆöÆ¿fä·Âï"|%¤|öyÚÕ‚N©ÜÑÊ/ Ô¨?·ÜøP¹o“8ÆÜŸèJ#•5IþËÍŸæÒ~¡Ä¡[BhËžÚÄÉ:Cþ!Rg•w˜¬#}‚Õ'+¥O{þæ’ßhox·@C"â}øÁÂ/Tö«Áv;qúÜ4®ëbî7™ýŸÙ®k>º/ŠwË®:$Ž'»ŠRƺˆ²¡œ9äSè^ÔÉK |êgU«¼@P))¾?‡â;UûêßÝ£Ûmàxî¯-6žc±™ýtÛ¶(–W˜WÙÕ"’ý8ËÔ¹)’¿OâÖº}‚[‚Ê“lÐäÉ8^M’»Tdê“)Ò酪¹P t×¢|ÇîÊJoaîJ™Ø®aœ<øÄÑ$sVþ/e•ì¹:²Ö¿ÝXÍÓ—¾.`W¶ög#Èšrßuk»ýØæüÉ©:ë.ÆÖÑ ^tÍ9’G‹§ro‰ü•òÀ¹1ù¯óèºÎÔŸ¦È~œ¥^¯÷œ¡H©nlMÓkœó9¯b zì(o-’=—ÅõVÒûÂMfà©Ó¹/bƒƒŸ»‡Žlê?H¦þT%uÔ$w¹Èô¹iææ ÄÆÉ|”Y7êû§‚÷ƒÄþÞ¡ºì*V]0ÐAMi­3÷à˜©I"~Ðî[˜B`‡Ã´W¯_E f€Ó~ÁÄ*2À•çO×]ò -ÀÕ†äp³%©éa Wm ©0¾½ÆÖÿ³×¿Áu3Í9Nocù»2£ÇG1ñÁtq¾4Ö½ ¾Â/6ÕMŸ0 m R,W(Þ™EøSoÄ(ùd¥$#Y)‘5§â€Ž“hd‡Ž±#DÈÕ˜ã×bóüN6>xy¥[¼©’ïìÇ6öC{Ý hÉ/Xxyˆ©§=1Ú¥­I7I¾Ÿeáï9Ì}Åï¬ZsCi$ú-ØãŸä1¶Û^céwÒà£B ­Ý`ÃýÕ¯ÛØ¢XuxãšZL ´*þï,B(O«ô{iò_eð¼Â_‚Æ,BL?”ìz_Ñ×£˜LÊß•>Ahk¨ƒ ݧ¾?û?³Èšlƒô‰8B 0 ìêæ©Þ-gƒÌG&ÿ¨b Öî>+·+DÂt]'óa†àÖ ¡`ˆ…‡Ý‹Y/!`+OHø†É}!€EB¯„úº;¬Eú¸‰õ½K|Ô!üš ¹KÒ'L’'’¿ò—‹ìU1 ¹¿æ~öB-÷n óµa†úÖ (=pÁ³Ç0÷=uÿÔ4ì†ä»õVë숬ÓI3IJ’¿0Ëø[ÆŽÙápõšËPMgöâ¬ò‚óÉ6=»—ÎÏÔqëCµêPì°t×Âz`3ñ~–âõ"Õ'Naã¢_ o  ûôi³KIJˆž×ƒyÐ„ÆŠŽÆ[ö˜ü£Š1o}.Õå꺬ÎA0¢lº¾Þj¡n. †X|¸H@ûQg¡Iù”Þ¬Òh>ß& üç8šæàyj#™ýxpÁkîbc{#kkþJ噚ļV (e›Àa=´Ú"sŸ±UC󩗾ټ?¿ðkaä}KÝ”ÿA–6Ï­ØlDNW•¾U–4 q:…qqމU»ìÌG™ž§ƒµV*ö#%t”žƒçÊs,’§’jîP–ض±Ë à°pge÷˜=À­yä.Ï?¤pmp™÷gp]—ØÞ–e1!%òdó€Ú!¶ŒWßà©c&¥.ñCñö×—î–T´îªá¼”æ/ÈÆ`§Çq˜ùtåä³twI‰[{ xË¢ZÍ>“u‹Ýè¼1œ'oO †d>Ì´‡» «Šo ÂÄØ ®Ãó^¢r4 fo–xÊû¼Œú㛯ó]»úÔqÌ]šoŸÜ¯4Ovï¤[žç!¶éÿÒ!nKXh_*’üÇ,®ç’iZµ²!×¥u— /»8G ñœ IDATªÜ9Ç; ª«ƒA¤”^Q3ªâMõ· ;/úzoÙ#¼7ÌÐËý}Æž3ŸÍ´³¨¢¯G9?Ì’µ„¼gáy6‰£‰Ž6{ʯ¡kôF¯l“GM·Ñ×õ!Bh‹ .W4MRŽ#ü‹ŸŽçõ§†ÛT¡1vmgì…Ë#À\{û"§ÂþŽ$pž¨kÎõ$Ž'q½Þ÷qåv…0ÙPPÿ)øYØhéq&>>Ïù³ãDwy”ïÙ {‹ŸÏ`7”xq5ôWõõ-Tš9É“IŠ7‹ï{ðƒÕ×(sIÓR‘’É‹³í|‰ô;i"{#:‚äÑ(æ‘1J×ç o‹ÿ@Ö³%ó‘zœ³ì¨“Ī“›ð ¬ö÷ö*ƒâågŽE˜¿²¢Û˜úªû$%åÕêX×××CëÆ-•§©×SD‘u#›{9,ou¿è*K))Þ,"¥¤^¯·g9õêm¶]áú`í)¯6EñF¸c^6ñ䛯r¼Q“ŒK‰éýÂ,…7©¾EíIFGG˜:wžìÙ,Wÿ÷*ÃÆ0RJf>›i³ÀþH7‘µ:îõ ²¡’öC»Ã©¸%FìwÚ—¯!Él@ßmí´õm:ÃÆp›ý•=›Åu]„O´¯ßÔ™sæÚ÷BR*ÂÎó@òHWÊ6Y¥Å¸[}Jî³9ü߇ n‰w›’”„<{Õß{ôPc[!†ú›Æ4NU GÛðM¢ù †„@6Ö0ûÃ8Wÿ÷*¢æ0w=‚¦o]Ô÷ãû B¯¨ f‹8Šü1È5öŸThàg*63 üx˲C@¸^+Äu]²g³®:n:áw;döâ•{dMbì4È}ÞßÂÅˆÆ âo« ¨Å:¼'LüÈ —_y-M£o 1ñnŠùË1d­û‚^Ká^½SΞ͢oÕY²–TË Ùšò 1y2ŽõØyn–÷ —þY*wÆ©Ü ’<%©×ê=ûÚ©3)B¡JÝ ny-Ä6ü£w*m›ûµ-c§ÑnÁ! ÖTŒûô 4mo¹³…âº.ÖšÌpE둃ãJ¦>=¾÷0ñƒq–¬%t]W'›š¹?ÆÂµ«}ÓS $™ÄÂø³×Êm%{‹ð±z&µ^¡1š„w…‘R’ 59ô_êdÒÚ´9U‡¿}ù7,Ëê25Í}žëx Bln˜¾Â;u´—}¯y¯æQÿ¡ÎÂÍÎë2"53 ïOE¾×ú·‚6ñ#W™ùójW†)¼ÚRêH™EÓ–HžÊ#|¢M< Ô‰§ÕÚ/Â$f8Fd[|WJŒ­!„ˆÜÅŸæ÷ÍõySJoßÊ¿Ñ}QdCR¹c |uì‡ê[®ë¶-ÈÃ{Âëî講E$ÐërhI­Ž™Î_.3y*ެ¹={Ϋ‘>n"üë¡Ó6ýÌ|˜é2ŠBæÓY2oÑ/ài3HI1{ÁCß>Jàå7ˆR”ãjµŠyФ^¯·P}ëÆ–7k±ðÐÆõÑ7O¥Esn(ºË.ñƒqìè»É“Ìü¹ókžç‘9h€…q5U;ê(ÀÜ…9R§Sd>Î4ŸÓEøž{h#Øl–ü¯%(\Ó+^/v´_×¶bAéEÌý&¥[³óÇ,ÞUÙH…+tŸ‹¹kïnIo"ÌÔŸTÇ T. 4gë _œ'Sí¯%³îYm‚Âä“„B!,Ë"ÒãuôŠ¡HžJ¢i²& …BÌþÏl›D”=+pœ4ÅE*·+ÈÚ0E²Ð)`}!®Ĩ&¡Š X¸(k9d-G@DÑ‚!<ÏEJ‰ýØÙ´[ú*^Ȉêã*³÷f×P¤+xÞ¥[i„oZÝÍW¯ïÐû›vÕ H«wûS_ˆï³7´àзéÄ&È}–íøúZ–UáZ^7Ⱦ;¶nÛÓ@Ó4 Wl̃Y¤,b0qpqp»X7©Ó)¥z~d“:ÂYvCÍ/Ϊ”ºÙÇß'óaFíßKC¶ tk ’'“+ɤì¾ß^(W&ôªZTs_äÅüBøë…oþÈâ»o\wù»2@€äÉ$KÖRǼ¤%6µ¿WŸƒ½ÿVòdûn‰hXçü£Œ2‡D‰–ëRÒ•Ò¶ ­ÐºõܱFÓ |Ï^ש4íð©Å{PAkxOÃ0m 1ežÐ«!ÆFÇ W W9ü߇q;Œ$Fû­bPVnWÔêçˆU¢pc»:¯GŒ(Yê½8®¤ðm¥íöÚ"˜øìW·ç~xáŠÍ~ÁHŒõdmÉ Âï’oz?éÛÖß©ÿè°U'÷Èf¼Ï‚™ù0Ãä“,\Yhßd…מּ1É¥Û‹XíöEØ ‰ƒa";uìÇC;bÌ}=õòŸM š~æÞ²Çù¿ž'y2@î ur‘*î³ÓêݪußÂ<¨¨À4›¦sp´Ú5æi“ìÇÙöκt³Dêt ·ævµGŠ8ññƶ`ÛPÓ©:X-EÕ>`nºØ=-êÿ…fP®HI1þÖ8¥[%²g™_˜ïIÕâ*Bĉlä€4™÷§¨ÿ_]ý|‚ÀËÃä/—‰îÒÞk£Åu_ƒõÀBøÆŽþÅfôø(úvêãîäÔ§…ðÿM50û?³}Ûx)äš3«Ê Ænƒ€¦tek?¯òweGjÞ"e{c3S“Äè4Í}‘#ûqçÆq5¬‡Õ5qí’PPë:©þŠn¼PÅ&ჱŒ\+ô5HÿQÓ`ƒ¿Dæý"ÆN¦iX÷,¯…‰|žcÄó`«ŽÜ¢x¼ñï½"ó~†ü×yŠ7ŠdO'}+C½‘Zw9»Kß ñ» òQÿÕ-»¾?·+ {#Ì•ï8Y$D©Ó4þóÁÈÑJå’¢?ß/’:3AéÛbÏ×–û"GtŽ6pŸ¸Ì^Tl(ÇQ¢QÛ¶•ЭÅðzýŽÕˆ„#$Ÿd±²ÈðŽaêÿ§Z{õÿ«c?´™9›i϶Zz¨ÂµÎsG€™‹Å§Úi—n¥¿Á«YÈÚ¿‡…ˆð ê:B¢û¢,V{ZŸ>mX÷'€‰6y%u4JàÅGCVæƒå{6±°C$AÛ`æëîÆr+vA×õ¾š1}›ÎðŽá “17}›ÎÐP¹o¡9/)Mã<ðR³=ÛcüíõM^./ c»yÀĺo‘“’žïn«bùŽMÀ¯¡½<ö?/L±qü‚àÁ8•k"´l¬†$ S*•¥}s¡ûíÓ§ú¯!r{#¤ƒ0~±Hìq·GT/xËÎ*‹tÇóÈ›ÀûáÙDW3‹xµ4Ž«^ÃÚ–Ýz°î[p§¢ìЛŸItÎèI•œh=¨’û\åóTnWдñ¼—jyª}Z+Ì4µØ» Æ~;>n â-{Œ¿5ŽyÐT7½ê?Ô7]|ÒÇM"{ÃLÏ~¬Éž³€ø¡8–µˆðuê¡Æ¢:É·RÈÖû üZë¾¾ *wTâeòTò™t#Ï K~¤7Af¦©Ùjyƒ­Â‚]-µÄÁ0á]ŠaõæŸòÊØsÕû–5ç‰ÀÛ •[¸V@ˆ4Âï¢ù5Jµ¡gùv¯æáT•Qnµúlš…ìGq¦?M!ü“Œ÷á"hÊ”wôø(ÙË ,ÐÊÅQ?5}nºo¡%`B`ƺÙH-¬gº^äÓò‹„¦ØÐÌ@k<¾za¸&Ñny@oyÙ‹³TîVØßÛm&–qÌÄüršâõÂ@Ùí¥[¥Wç9øþ!RGG0ôî—ésÓ”Ê%./<Eø‡€õ½Ó~¶”ųжª‰ìÐ)^[@JÚôÊ–½”S¤Ž›˜G6‘ÏcݳÈÜS­‡ìÙ,¢ÙÂÍdFó ¹éb#àÖ±¾…kR§S]…È^öÈý%‡ý3®ÔR ‰ ©·Â{ò$Ž&6†qªNÇßøçÆ¤_`á?–K oÁ­¹èÛÔìÑzh©ÍÄÄŠ53QòH¹¹ÓÂÚTØ~ó̵Ȟ ’:À~‘½RŽãy^ Aád‰TsÅhµ×œª£\ÖûäN áWYVÁ`byÏsYz²„y@¹¬>9µ MêLJùðmp²qž8íè÷‰wû‡:Oœg.œ¿¢/L±˜Päoº¬Î|6Câ`˜á€`©¡‘8– ²;‚ã8+ñš’_†»õŸùËe-›Êý*©-*jaìˆ žÍÜ•2é&Ó&Ûq k1zbs¿ÉR0ÈÜõ2ÑעйÓDò$ä¾ 1w½òL.-´n´gÕZ¾µ8ÿ^˜øèŽçöÕZh[´.ÊxŒàTHù¤„©?u?júÓio©Œ“5ÂB ï4¨Þ·Ôɵ©³IM`´ÑüÓÈF!4ÌýQ ×ÈÚÓ[þ¯ÕÓôCâHMÓ1v®lTVç i[&Uô²¾RÀ†w ƒçäÈ`#ad­Hµº"ŒÔ_Õ»tcá=aF~;‚æ×ºâß×Âó¸Lñ†þL…¦…ø¡ø@F£Ã»-Je‰ý ÷÷½eÐ+!ªU•1Ó"–¬vàxÈÚH[?z|˲9§6 î|J•û<×ÖÇ)¯µ44º kêt }‡Nô5õ‰ËUc{s·ŽÛôˆ‹l×¹z׆úÏsÜD1ÃS=ˆ¿bc¼°Å¦®i¿ P“ÄÈvÊí CCCȆì°Ò˜üã$åïÊH)Éÿ]µ’*·+2˜œ†$x.˳ìUfý»™Ne‰c‰öpR—ÁoÒ¹‹s„¶†¨Ü®t½§VNÌ‹ŠA†û§¼ºìÇv;ɱB åÂ'ú2A1¬æ.Α:“âÇ-/õ D÷Bú¸¹irBüuC-JbŠê}­»ÀÆV^…L~0IlŒð®Yò_K¤´Âh›G>+Â{»ZÇ¢ênXºk0¼»ó: ½ª^Í#¶7†³¬¢³Ç~76°“ò  ÉÈoGò,J7KèÛôöImôø(¡`ˆ™Ïfþ%‚[ ¼š:Ò€‰÷§¨×ë+EçD¾«Oz1C'Žàýàb?ª¢ij3W¼Qì* ­ÞЧ¨_±>~òXè§…ð 86†h.ÎF“þiߺÊü¥yb{c€ ¿šx{‚ð®0št°ÊEìïmÂ{ÂŒývLõ{×A¤&yiÙãðS¶Ð–ü‚Ñ# Ò[´¶Àt-Je× 3}.ÈÈÑGëFV;v óZ´ZÏkù¢ÁóBÌ|®ã|ïtᇖ·˜lHÅÖëô;iÅ”ZV ·Üç9^ZöXô &7Øf%D1÷G•ÅÌ&PøÖÂYö˜½´Ð³Ð¬Åü?rxËJ¬ùØÆób‘@ßFøÿ¹©ß½ž†ž<¼Û"y2ÙλÚŸ·¬I–¬%ÓŽlØÆz*¬:Ékš¦ s&ÿ8Iöã,¡­!"áñCqJD°kCÌ"~hŒøUü†††`YéÇZ]ŽÔ™Æö úV Çõ”—áã*¹KE*÷Ux_¯{¬X^dñ¾½9'”_ѶØä=ÊW9Š>xÉó˜k(CÏì§³„¨2óÙ šö#ù¯²„^Í‘ûÊ °#†™#ðr€ÌG™¶}ÊO«<°ž§ìÂ{ úš†¦å+‹”Ê¥ŽÜòì™éqŒ]á½áuo\sÿúEóyÀÜ×{Q-ùéŸi7—8RTbÄ?ϰ¨­ï<•D?•jœ…uN•@€äï’*ò ù–4p4F&ìù3-䯔)Þ,S¼µybÄÌ…ÂÆmÑ&̽ñQêv©M‡Ÿxûl>:MÁØÖùÞ6šS¬‡ü×y4M#y2IêÌÊç­ë:ÖC ç±£X^ïN~/Ýv|è…Ô1“ÑCÑu¿¿^Óé{±²HèÕPûžžúÓ™2í‚»Y$$"Âô bQ)>}nšÌ‡B»Í¶vÌ0 Š×æÛ…Ì~ì2s¡¨¢v8Àº3®ÊýêÓ¿b#¼°m´7{œ6¼šäüÙq¼Z]…‹oŠ7ub;³\ýÿ5är•Ê}uqÑP§…ŸªO?"%É;Ü> ÞØ þ %¹Ï»/d}‡AéZ)%•[•Žžòj´˜ký>WZ•M}NžŠcJ ïpKXò Œ# Â× ]Î܃ ¼=H¥CmÝúvñ·Æq>›!¼%€ƒb)‚:Ù; B¯„жhÄöƘxhQèáz}=йßd±²ˆmÛ$¯,`Cä=—\ÍC¿µHe€÷3Ó‡ ßg iÏlèéÕTÔÅjÝKñFoùéÚRúVU¤õmAìGjF¸x³Ðn ZlôWƒ}]1VcáÒÉ“I@ÙÙmŠ×‹m&házAe4ýy†èëÑžžn»4¯BüPÙÌþcVÅBÈ΂¹šybU‡±æ=Ò¢Ú·Ú{Ö} }«NìÀaJׯ"`7Ý*Œ]J{cl7°¶[maë¯x¾xa‹M/ä/¯¾ùË,\6>‰¬Q¼Ý™’¹piÔÑ(ÖM«ç °Ÿ…†‹”ƒ³wRgR!È÷ÑDv†(>”„äÐIc ¿&ûåš_Ã].áÕRÐP»ÛÔ1c»ŽýØAj:¥››/†¶hŒ½!ónrà÷JÖT}d)߬U(6À¸^è°w©ã&æþ(¥ryà]~áZoÙ# °%ˆ¨:m¢Çê ¾Ô™–e\u:Ñ´%@ùZUnSþvåï=êàW.Ô ˜Ød2âèñQZ c‹… â‡L`hÍuÙü™£è[õ Èr—Š„wêÄŽB3:ØØn?Çz`mZ(Ù8·nÍ%bèDvÔQ׈aè14ø,Êá°r›Î'ÙSY$s*Åðîá6Ñ¡üm™ÄeÏÊ€·êz8žDÊÁ>÷è¾(ùä±îY$šhB2sqýÍS{cz»Ò—dÝ·zή¬{Æ.£)dýu&óSáߪج…¬E:ÌæsŸ« (PŦ%`+|§Ì × ÿæƒÅ[’ê²„ÆÆ4Îô;ieÃ~»ÿNÍ~ì?4†±Ó .ë”ËåŽÞ·ý(MüH’À+’â80Û\(9Ç»2ÏìµyÂÑõýÁÌ}Á—Ö£*Ù÷DZ¿ßÜb:s¡ $Ž%0*©ôWy~#e_?¹~µ:²±¡>·ÖbU¹]!do—¹º/J¥õºÍV6BŒ‡Ù e¤ìüþ5Éô}‹‰ˆk‘>aØ1Lâh¢½Ø8Ë…kÅv`ÖZ„¶„8?Ü'ë‡Ê}³y¢meÍèÛu\×eÑ/p`à¹bb„Ènƒùë%¬‡Uæ.ÌÝ@ÚA}â½)3Xç±Óf†¥Î¤5ÉÕ[‹ ¨.Wz8ÔAØB Ó»ðŽÍð»Ãƒ¬„ÿŸŸÎÈogÚZ˜^…üiÑ$ñL¦£¿b ü[›µHI‘ù0Ãô§Ó]L´™?Ï0ùÁ$žçQº¥ì]¢¯G±îÕÂ/UKcu8R?DöF0 £¯&${Vú9ŽÓn“µwžB4_ß›®è@ÖÞÞD¹K uÜš$~dŒÊ½õwlñh˜Ø¡¦?ɲp£ÂšFÞ/z¶"[XË8š y"‰ýÈfüíñÞžQ›@þJyÃVÍè‘(C€Øi纴ih|~Ô4ðÑd—嘽GÊXÏÇ>M¡ø5œ'J°¸zAÝèT`?¶™_˜Çó<¯…IŒP¯×©>®‚OyÙlò_+K™H8Âè‰Qêõ:¥›%dM*¾m:FMBm°ÖŽlÇiÇs´üã(Ü rÇ!ÞÜ®û%F@®0‘½ìG6™†dæ‘ =N^s×Ê ùMêžzÍy)ÉÑ]:fT—e>ï´Çö¾‰±Ë ÿ÷_& æ?¿¨b“û<‡æ×ð<¯çN%0ò[•Ûk¶ES§xcáóÀwá7ûê²g³”n–X¼µH½^Gø ˆ¾ìGy„H"eŽÌ‡+ªfc—JÕ·ë*ѳùú”jþž'€Ö<À$ÐבÙY®2!×ÎÓyÉSyòÙ¡¡ž”ÔÉ&‰„UrèPï¿þx »¼€µ}ýÓÂ<`v°|Ì× *–”’ðSžž^ò<\¿àÇ=a†N"k/müC›Äü ñc8%b;”¿]ÿ±«E —Xô t P“íÉ&‰î‹R¯× ï £t9Ïá£I–î.µãÒm¾Ël'f.ýåªý1wqŽÀ––¥b† ‹Å[ë³üzÁ~âa=²®(äѨ²‘éq‚" Œv8¿³4–9 m…ü'Ï7zb”@5жŸzÞˆ‰cl7(¬‰Q4ôaCÇ{âÒoû+ž~qÅ`ñ¡ ÉÌé²±bXx9€¬Éž‘É«!å ™ÔÁýÁÅ[ön ¶#s{Áº?‡õPCÖF6|}î.¡`HÞl ¹Ö‰v½=º/ªÔ×­vžË¨ðîò\¶-(4¿3;æ ¹‹Ed­Žíü–. i‚ØÁ8™g(6éGÚ0 ®†–=t6 €<-¢¯G²|©KÐüCÅ:P“”®xCJÒ辰îYȆ$ ¨Ü© 5Û€Žç‘¿°ÀÂõ Ѻ ¶7Æè‰Q.g¬ý!Á§!k¿øµ÷Ú0•Ê›Ki]qïDòH”ðNå.MÏvišÐV§ê"›¹Sú³IÖéü™Ñ£x-ðK ¿À|Í@i³æ±ÓÀØa0ùÇIìï àÌ]+«ëÞvÖe‚þŠçƒ_d±yÉóø1ÄübÙm+*ìÅ»‹„¶ ®ÊvpÉ~”%{.»¡[ÊÁUüåoË ÃÔkõiÙÖ}«moî3=ž¤º\Åq½ŽˆÜʽqÆß5q Á ˆ6$ú_¦±WÍ-Š7ŠMÑàÊâ•oz´%— t³ÜžK¤Ž™„ÕŠ50ƒiµ]÷°„,>Ì· °i£ÃäÑ(Â×É¢J¿“ƹWÄÜgt<÷ó@ê´2y¤Ñ¼ºs×ÊÐTÝÎ+ÖrŒøó ©c&B*lâGâX7æ)ܲ›3¼¡öÉy؆ü9f/¦¾4Â&UAtž×{.µ«õ\-¼ñÿÙí“Ó³À•Ïs¨¯3 ÂÃ]X¡ìž]—:¼c˜’Ýœi"1÷Cͱæú`úÜ4–ea »í¦­kª}÷< Ú³bôH}Kài‰ó‹,6K~'“è_䨬j£ ’!³•Ûå[åyú¬m›¥´šMâ‡âÔe¹ sD¯©0¨µYì4¢„^û‘š“d>ʨrR“¸šÆè±D;-Sø@úRì;)aÑ–Hme,„ ²ÏÄê“FºÆNY“; â{C$ßJ‘û4×±h„›ÔØÖ©3uÔÄvœ¾§c[ˆø¡ÕmꈜûEFŽÄqœ*ÚËÇñ(߳ѷÕû“ûqÿÓÚ¨è ÉÔª…3~(N("yJõAÌA72@ 5âLJçfq]—¥ï«Ä÷+BÈÅ"•O¦Ô@¿éÍe=´0fX¸´€”IJ7u¤´Ñ´‰cî£ÇGC]-®~eêOSD_>“ÉêÂõJ_-×ꂨi.‘½#ä>µ˜»Ðù¸äÉ$º®S*—ÐÃ&ó7 d:ŽÄ>fÍMúóãúÅ IDATà°V@Ðdúï¯8=Gwéĺ:åœL}õâ,ì¡-ô­!Ò'Ì%ÿ.øE›áš¤ôEŽÒªÁ³£i,5dGï|#´<’âG:•Ñ£‡¢x?xÝ ý&Qò „Oé¡ûHŸP"¼Ò]›Ê=ÇqÚ7€©¯ „_ 3}nº­/Þ,R¹ýJå$RæÉžs•6JÀó˜Üª“:R9ë_ˆ:OñFcÛ8•{6RÓI‰ãyKÖåoËÌ\(àÕ\–l,ÐŒî‹2¼[Ú*• 4 ð?óí%ó5ƒÑC1Åœz¤˜z©·SÌþ#ß·Ø8UÙK³‹º'Á²”EÌÈÁ®+)ßË+úø*Ë“~˜v…ÉÞ©€O0rÀdáòÚM@>EžN/,=tp–(WæðîÙ¢Z­'Ê~œm[÷,\nÓü¥c!^Q·æ*æ©$š_Ûðär8~]×;bº•¶K‰Aû Z7 Ï 0û0Ó‰“<i{߭ך~Xº¶ˆÑè°¡÷À¸¦‚DÃC?“" áºnÏç/ß³Ñõ l’þs bÙxžûÌbá¿Èb[µ€;šFðÜ4Ú¹)&Ù;Ø^hE· ­²NI3;‘äêåY쪻&|sˆ6õ6=_ƒ&²?Žóñ•{P¼²€¹×@ߦ“‚ù]ú«º:E4diAÊû„Ïͽ@­³ÕxÞ­à ¿Øb³ç¥$óþÖšVI/dO'¾ªS,—˜»R&q,Áo¨=/qku–î-ª]æSj7VCì 3{»Ò%x³îV¨Ü­`7cªu#Œç Ô4å0½J-ºÒ¹÷âo$Žéض¤r[rZó§ê`ݵÚabö£ á#0üZëºÐ§>™"yjÅ…@ø…Z‘|¿±ý1êµ:RzL4ÎÂ¥«h;cDvG(Þ(’ÿ:OùŽMòh”Å{öºCèÍ@-Îܵ9Š·m’'“¸ž;ðLhÈó Ïâ–ù(Cöl–hÊ•NÛ °°7BìÖâÀ Öô{itŸ·!ó)óU-£x³Èá 1„o}ûy’¿›ÂþÞ&ÿU¯æa~6C:Ïc"RŒË>;öä‘(xc¿ÃyâÝ%ô²DÑwèä/=¿¶RúÝúöRÖ1¶(FèzBØgÁ°”ü H_˜eæøKÞÒ¦Ûæ¿â§ÅD±™’’©µ}§M{}›Næý ÙsJ 9w­üü¸ø> !Ž™Äm»£-·vÙ!q$Aöló Iý‡:@€ìµƾ(é;ògÒLý9€”o²pÙªí¤Ç&˜üržñßþìoˆSgú÷?ûÜ)œÀr@ÁS<ƒ‚ &è Ï2˜Á3¸à .¸YàÆ.¸™ÚLûÂÍXhg¶Ðš-Ôf +3ÂÊDX1Â#_(É‚2”9‚Ò#(œ@r Ü°/oJWo=”Ë’ò‚`„Âä9+êK[o„ ÖÌ@,wìíáõÀE°Ù Æ¿Ê1ò|1U2õÙRJ*ÎÖçvã8JóPãÀk©üV*·gˆŸ‰c½t­EQ€¦á{lv0}dõôÝ:æ÷ÿmG2þëa*UwÀÊßÉ»ŠÍÁiyB´­qçJsm9÷õXy©‹)ì6ñ³ñ¶ÉUþN(º:rKšÐ¡«¬°Eä ãˆAy¡ŒõÌ¢ò}!þNêL{ÁÙ’„ùÄ$EÕ-”~µ™~ n¢8rr„ÂýÓæúªç–íשžCÖAx¾A6;pæÍyw•³,Ø•š+_¥¿³ÐÙ÷e/8Œ}=릛–¤ÌÖ³áÞ,¢G„—˜þ‹FᆔÀ»>õZßáÇ|¾¹ô´Ó$ƒˆÞˆöÚ¢wkº`ùÀ›þ2M`ßú+›E¦ñ€†âõQzºvIÁÄ\¶RÅ©¸®…¸+ˆìõ,³R `Z6æ³ò _œ®ôÑUî~üÝ8ÑãQJJíÕ¬KûT~¨te1é{t¢Ç¢T*•¶½”²C5 Õ)nƒ]ôxgÁeúû4ŒÃjR¾;hääxÜÁ·P, Ä1W¥ÜÆO„ˆž¥x7OîžIîFû…7xÀ©H’¿‹¡©³ëâOxãwˆ‹ÊêŠb“½­¢oS1Ÿšëšúîæ³ÑvÇûR­3pµõ2ßBì´ÊlvË.S¶m*Ëù’ë«b/,2ìi1sÅDÙ”ÚÙêpª£#£XO-»Ü{Ü@Q–÷Ž8˜Ï ÅN\¡ïôo¨/i#˜ººØh›ü ‰¦i”J¥öó;Bó«Ì?·ðy}홿on¹r@¯zÁfƒPVqŽLœŠ9%+û“›¥Ýø~…á +‹¾éky,ÛÆ*o| »ùÿnbo3Wê^?˜øÃß4Õ£3—3Ä=`züRÒçñª$~6ÎøÇãØåµFGR*¨8‹³úÒÃÚ.­ÍôËÞ.‘8¡¼`}è»uW…».Ñ4Àžår¹£î³t·tå;Ã~#w‹uc{lì2oá 1`è—n½,ýU}wZí™Ë‹5ÕîҫݰÚBŸ$O…É\›Å8¨cìÕPü*ÎBåÕ솗ôåî6eW^X”—=²Dx§‘ÕµéÆ?†Æï²;uúZ4^)%NÕ¡R]<.¿Š»J­.™º2Šð&‘ÕŸ“ðŸKýýoG/Øl±Ó1Çéª+¥Äqœ-HtÃ¥/.¦=Ó¤—HW%ÙUÒc›M=ïѶkkv’E!ÈHIºiÇaÖ+n¯7Êü±~ BWè_\‘¨ªJäXÄ¥*_Ë2u%‡^œ#u1²{Î $·£~ôW£dþœéè q‹Â‚y!Ð…ë˜:},‚¶]ÃzfµS}k)6$Î'˜úr–ò]»ð~ñ½Ž½àÀ¶ñ3sø|*¥‡¯>YÌ?·˜¹UÂØïRß[‚鯖ž­T+d¾ÎPüG¥¿¶27VŠÀ ïì†4û~ Ô~…À^·i)›-v&¶B[.t0Dñ‘éH®(ÊB€ÃOœ=üûÐ 6« °GkKÝhšFâ|‚±ÇVl—¾–gδÚêÒñ®ˆùÂ~å­À¾£#£MŸwPŸ~b¢£_μ²¡Y7¬'J*<‚oöèDž˜ 7SEÃUé²Îláë UÆNÇðoó·WPK·O¼— óçL­:zÒí“ÉÝÊu0Õ¤”XÏ]¦Yòƒ$NÕ!2èÚk¿ŽÁ‰a´k³d¯eQý*ú¡_ Q¸[ u1…eYí c1ì `—í®ÇŸ`¶gÙñ³:š¦>¦òC†©ÏÖ<Ý„öi„ŸØ Aì¥ÝþÅå˜(>O^½Çh`×À¢@ÝÄ|Ò=ý•úØbìýWúŠ Ãzic/8í@7޶]k«[´?GÝîv÷$ÎWÈ\vê¯W7[‹^°é‚KÅql|^Aþ&¶m»Š "G#„Cajÿ¬QzX"°'àO¾Ùí­{?µikfpgØÖs‹à •Jó™IöZ–Ä{ ,)Ñ®NcnQ ™‚ŠÇu±ìVy@Âõ?yÛ‡xØù½ãŽséO—0»ÝêùÛùvÇvül{ÁFÛ¦uøÁwCê«4&ÐÚÂ4(=( ]›¦×ýÔçSí@‘üÈ횟»ï/)%sU‡á«Ómr«%¿JS9EH»Í2Œ‹¸/¿Žµéä-¯ðø‘²ˆ!"ÇFI•v•´Ÿš(^…ø»qŒËÂB0Yu˜ZƒˆÔ5ÆžWðïÑ¡ìú÷´ ³ëÐÈ×Bè`¨£‡&VÀ>1ÂÌÕ•Ûn!a=¬¨±Ô!ÿ·i4Õ‡¾ÃO$4@ÁrëWµj‹d‰ºDÖ+ "½:Í8zÁ¦ |ªŠèˆGîà)é€Yróð­^“ØéC‘!¬®’léa‰JÕáÒ…1*Ëz$BûtŠk¤`ï%ûý—þt‰ÂÝBG?ËÔgSˆ’ä¤Dß«3r'ß¡iµYÌ AàDùÈDyžüàQ;RßôûA`ü~ÛyR;5XF:0™XO­öÀ=EÛ¦1ú«Qò·óâ‡ÝP1A/ˆÕ2Ò Z‰÷Š"ƒ®F[úÛ4“Ÿºî«C‘¡vj- ÿmœ©/¦˜¨ÃIJk>-#ý ²XÀüs )]6ZîFŽÐ¡™?gVü„ðcÜ-ÇùY[8rù 0¥((G#ŒÝÊ1µ†ú@¥Z#ºÃÇÐ^•XH£âÑŠ 1Ëìº=Kka8:Ü‚EAÞΡ}ÄziµŸäGÉù¯1JøD”È|'ÃÍ“$seY]T÷Í^Ëb ˆ¬èèCYŽø ƒJµBøV‰¿ßÊ‘m*üšÁ¼ÛJÈþÞF6WWK›Wí{õÀë<}ÓWg:ØhÅ{Åv­*r(€í8®©,“»e­[;0¥D¿•#¿žÚ"Æ~×0NUUf³y÷yYÒß’8e åúVÓííßK`š‹÷¢â‰…2†A†¿œBû IñA‘¾¾>{.%ý'’o‰Ÿ4P…¹'Ù;%$ «5œjyÓÄZ¨0p`ˆÉOã8NgŸMþ&!]Ãza÷Í8zÁ¦ –Sdó·]£%óÅJÆÕÜ£¹ Iµ÷1ÍÕL-úÕj(©‹)*ßW¸ôõ¥µªi©!‡ý ö‚ õq¦>"|xm[¬Íô;1ŠÒ¯ Ô]wQênú©pwÖ-î …ác0}­³¨»Tµ¸â' ¢Ç#”Ë6¥§6?V&Õ¯øpŒØomWì¸Á¼µXÏX-·Öµ­Jll R’}Ö½.;¢Ð¤)»×GtÈã'NEPûùû¹{‹÷/,况ÐòL„äï› EG©ýPcô—£Œ?':@Û¦¡íêÖÓåxÏÄî R«×Ú÷ê\URéWP¶iXÿ껽QùÛy´mÖS‹àÞàOl¯@ߥa½lªç öÓ§ 0u-„ÉÝÕr¶ëßÿ'z·ô°½`³¬%uâó­ÝÝú{Û©aÙÝgû¡ƒ®ëæši•fêh£«ši!Ð=+¥TZì­èÉh1—&LûUŒZÝMs,¥ƒ.é!´?DîF«ÙÎææ-?RvO ŽœéL˦x·@¥ê´©¶VÙaìýñ¶oü¤AdÐ@+Íýh:ùXóüç…` Kp¨5ßk5 ê{"ï-~.<®6\áñ;ŽÜ½#§FPÅUÕ.—IžŽ nS1ŸY”ž¬¯ ¹2zušKÇ£ïW¤DY°)7Õ§SÍ÷—ÞÇÕ´Ò–"êaU¶ãj(–,¬—®Ä“¶Í]!ïæI]œbúZµ_Ã^pòǘ\÷ðÆÃ²¬Ðh4ïž~×øæOß4€Þkƒ/E)üè}„†©‹©5·I]L5çÞgCQ’‚¢4¾óŠFâ½D#q>Ѹ™»ÙˆŸ¯Ø>q>ÑH]H5¢'¢+>3ÆôÌt#ùAr×¥¶ám…·ÖP”FÏHhÄŽ‡ß\ˆ7§Œ-»O© ݯ¯­(È¡@#°[[õúF[v±3±†1èžWòt¤1ûE¢1r4´ÁëTi4ú•FãP¨qÓ+V|>âYÿœW»@ã;¯h4vh¿wÙ÷F_úNCßáoè;ýäGɆÒÿ]Céo4e¾ñÝS}Ë®cïõú¿–Ç”ÿC? Nu}[Eù!þÞõ³‘“# E†˜7WŸÙ¦.¦šz_÷±¤„Ëi,))Ñd$5ShÝ0õùóO»Ë²ço籞Y«ZúvÃF|d„˜DÛ&0ŽH„\5èß|œÞR§ÂñÇIœO0rj¤ã}ÕqÈÝ+aº=?G#+þv5ä‘c!Fކ6u~¿¿f´¤Â䟳S÷\Bñ*î}}b2ÔEüsfÙ5oó¥/.µ gÿ6Käh¤ÃBbñ;ÔklD(fd0ÐõÜÍgehŠbNüa‚á㌟eìä8¾þ­óÉéáÍC/ö# ¼ß5ûqÈê@×mežØü óq );ÓÚØé“_L®ú=µZÄùĦj5ï,¯)4c…baÕSöÚ¢xgâTÄ5Ó*W6m4%Äd30Î!«Á5·•r 빂]X·ÃýÇ þnœÈÑå…2»ïGOãˆÁÜ£õÕ˜Á%„w»µ–Ëm#h‘,B‡BAFOŽ2ô‹¡uÿNñFpªyÈ 6~„¯h+`””0Þ3ãï÷·'ß) ¥ºäeR5ñŠWt˜ÆEénÓ«§¯k 4Ÿ• ìÑõ7SÌué6°úz€ÿfô‚Í€ðô> ¥ÇÝë6ŠÒÀ©ž#sù²n!å8~JKdA&>™h‹YÆß·iÄ© )jÿ¬Ñ÷?}mºèV x¯Ø!Ó>ï<àîàã¿0ÉØoÝðRëŠW ô«dì¶’@<"G!G§\]ÿ˜âgM¦>ÿióùs¥9Eqånº¨ DŽE0MsÃ=w¯Dx¯æÐ}ïtŒ®†È±H[¤´x¯ˆqØ 'Ïä')Ü-¬*`9!gfÅDe#(—ËänåÐv-N$¤”Œ/“v{|†3ñÉ© )ô:•Jý©ÞU@5°?@îÖæ ,Ìg)À f•…Jû{âgã(ý òyɵ’^F†)=µUIúúâûuVud <ÿÙVÇ=l½`ó#Ñ¢ÉN|É’Äþ7FæëŒÛ% í@®½røHëéÊßÄ'DŽEHœOà,8®tüsUöPâ¤Áðé8³WÒ› 6þm~.}x‰s¿;‡á1ÈßžfÈ^·ÅÕËÒ:EüÝxÇ Øç8ܼ2MP~î8mý±š¬Ñ'úÈ\ذ³Hâ|ßÛ>¢'¢LÞÊ¡©:+œU#utMÅ|a¯8ߨ1·v°Ö€ïlÐÓ¾Õ(¹aôët˜ cÅ´ü˜Z5’è‰(ª_mS¹§ÿ:ÍüÓùÎ&Lܾ«p(ŒýÒÞpð[uEi¸Ò>;S$ÞK¸“À¼—ÃØ¯ã{[í6‘C:]{%ûóWñ$êá?½`³…p‡ìµìªÂSßæp‰ewWHÎÝÈ¡ïÖqgMáH Ì?(lz pW¥ù¥ÝÑ#«®…BäP€ð^7å2{·„1Åzi:¢Vqg´ÉÓ »3Ž+9ûuŒ¹Òç~»Ò¦Eñ ~>Í`סïÃqæÍ¡ª*ÑQ×nÀ#àÔ(Á.çØëÊËd¾Î¬6Ú6•‘ÃX¶ÓU5x©pçzÈßÎoju£( únû{›ÈÑ…âMdÝdúN%u1O­æ¦CAû{áXÄO¤¯º²Kyë{ç‡ Ì'&¾z¹‹mÀÆ D†\1†"²*ÛzpÆ *æË2²Ù‹:Â8l`=λÖÍg,t(„qÄ@J¹áëÙC-ô‚ÍBÝ®®+Ñ’¹¾6Ãj£?âôÕ<¼‚oú«4É’«öôˆÿ=DÖk¨%“ØÿÆÈ^Ë2oÎÞ«¡ú‚¡J¿ŠùÌu-Üu™rËWß) E)±„ òù4Ú`ýNžñºdüÓçNŒR¸_À²,Ìg&¿#t1E¸ËSé8’™™i¬…•bÇ!}9C|$‚¾]!Ýtä95€>@Í*z7ÊìR[\u-8 É’ýFßyš¢]p^²êÊÞXœ\(Ê;Mäp€ð s-|ûuô]*•jmU–¢(Œþr”Ì_WX>}õþ\ËoéÊÄq˜üc)3„»µ㈿ßOöF¨)ˆ™aö¾e­ôZ×4u!EáÿÍb•7hÀ¥ ËªÄñÔˆö¡í ¢ïÖW˜åµDTj²FéQ ë¹…ð¨äî¹µž™«3øÇ øF3µ¹Ö½é¡‡6zM[÷R”FCxí-Û_`ÖHœ4±cM#§FV4_Fm¼an3Í™‘c‘ö¿§Œ†ý¢ÐHœŽlh¿¶W4f…h4eÍo$Î'¡C¡Ž÷¾ùó7Ø™Xãæ_Önxm½¢GV6_ŽœiÄŽ…#ÍÆÌøI£Qøë¥Æä{#«î't0Ôˆžˆ6û÷÷›^ш 4RïFÉ.×@Q+Î+z<Úˆ¿oà™lo¥1rr¤ñÍ×ß4&?ÜØ9_Ùdûª¯Ä{‰Æô_¦ɺßÿäÉÆÈÉÎë:jÄÎÄÜcYöÌ%NEÓã]¯EïÕ{õš:"(ÊwȺL¯»íFa4Æ.^BÛ©¡ïônyèè‘£Œ#îJ"y&Bü·qFŽ­l²‹ Aäׯñwãfq…G—>Nµ5°V`Ù÷¨Uɰ”ü<$u1ÕõO¢Ç£¨o«Œ8Žï-É’DODQ…` ˆ¢(L_鮩ÕBìtŒøÙx×™ÿÌ•27ŠÌ4 RÖÈßÎa­A%/þ£Hî–Îô»™2J¿g¨*Q|ÿÛ>öê+þnôTg½ª½z¨õ±¶Ý´ã8H) ì ¬y^ÙëÙ¶÷« vÜ ´Ç­ÁåïäÉßu­0R:ïGähßÛ>†Žvöüï™+Í‘ü(Ù&´ ¥Ü´;lÿ½è¥Ñ¶>E#þ;ÿ0¼þÆDé©ÍäÇçpªµE1Ë¢²PÁþÞ¦öÏEûÕØV-GLênê'~6¸…áµ3ogn~=Ê«|V$y:‚U^TðM~àJÜOÏL“üÝÙP IDAT(‰õÜjûÜXÏ,f®Î¸ƒÖ }ÎÔççÀSÁçbò“ôU-|ÊÚúsÚ.‘“#TªF¯e z`RʶÏLäHEfnÉ\_™:‹’½žEß­·ÓI²:ÁPñBc‡ÆT3pÌÜ(Òç¡ÃÞzäÔ}¢oEj*t(„Su0ï˜ÄNÇÀ!?ÈL,GPzXâ’έCòRºn¢ë˜Ô-Gü¤¾SCßá§øØ¢ô Ôî¯ÊÝÈu¤|s·r¨~•‚S t(ÔÑø+„ ¯¯¡£CB±U©î¡è›WFâTY•äÍc>+Sq,Æ?ög}‡¿Ý™n>õfÌü?V6Õ”°twµ!,b§cL\Î:XYAÛ  ïPqªšƒ¶Kcôä(|á‡' |Š‚U¶;âØéå·\{[ÙP½À§(Ä?gì·n@  1  ô+”–ˆý*ƹÓCL,kœ\JVˆ¿+É\V™{ô š6Œ ¸?D¥Zô%¥‡îq„†\oÀ¶m2Î0se†¾ã!Òß;¤ÛmŸ™ðnH³ž´¼ã]ßã²ÿô=:á] Æ^£cU„MC[°Û~ë:µÎOÛ®¹r0õNáKgÁÁñ¸Ç0÷hŽÔÇ)r·sÇ$}%ÏM¯`¨*ùFðÀoºô+)Ê<ªš%2ÁzimJ¹YÊRÖ¨¬2ÿØ­‘™¦«Jþ*MäX„Ñ_ŽÜl[~ï1Ž\úúÒ†¿»‡–£l^#ÇBDNŒâ”m,§‚ù¬Œã¼³¸ßßVWÞjDˆ‹ X/m2ßfˆ‰Ð4­=óLœŠ` FÈ^ŸÆ8bPx4OéI™¹ûsX–kx:BAüã”ÛÀé TÝY´qÄ p¿@$¤>l ï˜Ä<0‡ëðÙqMNŽ0÷ÄdüwcíÁ¸x¯ÈÀ®jõ¹9¦¼¿!1ÐwiL­"+/<)Ç1G S8X/l|;‚Ä(•J¨ªÊøÇã+‚ëȱÆá0•ï‚÷ýš”Š…®Ž•RJlÛFÖ%úN@ ˆ½Pi׉ª$p¿€}q’á@Û‰™¥ÈÞ)¡ù³H@?;%´íÁ@°M—ð¸’:7oç)=qEó:HÇýwñ^ªÎïÎaÙZÉ*)eûåó¸æp}AÔÊ» ‚_N1¯( ,™1;U‡Èñ¶m“8 ô¸ä x¾´{ê´ýUVƒã8è»uÔícØ/d[Œ3q>¶SÃ|ºz£kÙvÜ4ã²™üZ~)Ö3Ëç\°°ËsWf;VqÖ©Qæe ßS“Ò£R÷þ©%é­äÉÅ«@¢'¢í$}‡¿-ªZ¡iû°j*-ÍôÕøºsC‘!´mn`[Íi5T¾¯Pø¾à* 4Žô@0zâ7(ŠSû롇®è±ÑÞÌWò£dãïù¿7¢'¢ÐÁÐ Ð0öw2ÔBû´ÆôÉÆÍ™KÐ>­ã³›b¥¬¼¾G_±Ÿ9!Ó^Ñø»СË`:5Ò 5’§#è‰hC—½d1“œl\úÓ¥F`ŸËì2®Íš3†¾[oh;µ†¾[_ñÙOu=§"ïòÓ?ÊÖ Þ¼†úCÛá_q¿^u¿ŠRkhMÙ~m›k±ôóè‰hCߣ7.ýéR{pSÇþnÜe.;ÿ‘S#Ô…T×ç«÷ê½ÖzõØho§"ÝeìënýFJÉÐ/†ºÎf—wÓZ2½¢Ð?Ô%ÅÔJ -ÝOPJF«®AWßÿô!ŸÑ<Ú[’Ü#›üí úîoÞ›m«ë¥*ëédùûýöÌ_ß³Èúj±ï~ H)É\™Æqj]?OžŽ?¹ö÷§¥l³ŲœA«Öô*ûýTÛaUÚ¿˜NK~”l3mÛ&°'@â½É’®)ß!<‚ŠS!|`‘!—x/ApoÛ¶ ¯`°õÐÃfÐ 6¯1' â¿g`wg- v&ÆÄ'Œ½?æR“7!Y“¾–ߘ  ï\Iïµu¿òwòø…ñ/&éó 7øÕAÓhSîvŽñGÞ9„wm 3@øp˜ÑS£À|â6Lê»uôÝúº50!¢k~¾Ò×òL|›ëª¯tëaFhýÁ[6m –Ö‡’$;(äKÚ§‘:%yf¥N´éÆY«ÕÚ×SÖá\y1u+›µ3Y•hŸOûrª¨‡~1´á‘¿›§ÏÓÇœ-\æ® ­êW‘u‰¬Êöc=l½`ó£ôÔ&ó§ÖóÅUˆ ¦¯tzö*Zk[ c¿NôøÆQw†o Ø ã¿=‡e;ƒÆáQr·&ráý{{°Z ñ“‘ƒ‹AÍ~a“¿“ïX ˜OLð@æÏô=úªý)Rnœ©µdo—(™&³·Ö§úZÏËD_:XM_ãˆA_ßêvd}t¬V¢Ç£® ç’ÕQôd óyëy™Ì’@6õù¦i¢iSÛ4´}Î}>…ùÌe˜mTZ¦ô „Ò¯<DÓ4Bû4 Å7oß$s9ƒmÛÏa=l½`ó"v<äìGà ˆQ©J„(à6â^îÆ Ñ¦¨n%B‡BàqYf-ä˜äoå)ÜqgÿùÛyÄŽÒ«“ÿ‡;¸ÅNLjÃ4ÕŸ£xdU¥xïgÈêpÇw$NÄw•…›˜ød‚©Ï¦ˆÒÛ+(pea”~Å%.Ô%ÚÎÎÕÞF`ì׉Ÿ00ö¯\±­‡ôÕ¯[ŠÕ­ôÖZ~þÉØçYÎ}²H<Ðvj„Ca¨»÷WUU´]ZwwM\=½›¹›DOD±”P«’ìµ,³ÙY2É´•¤»!銢0'Ö3‹ÂÝóæ<ÆÑý´Õ¨ówóø_{ÕÓC›Eöš!q:Âð‰Qn^›Æ|ba:yôƒ|Û2ø·…H©µ¥¹ï%‡Âh;´uU¢7 ã°AìcÌ\!±-ѦûN]]d‡Éº¤p·€Ï#Ýžž}ìû{»Ý¨ª«Óu§®æBtU$0:Æ`„ZÝíÞÎB !ÑcQ²76¿Š ìR‰Ÿ‰‘þ6ÓUúÇ@x“À9„ÇFÊiçÅE„×uÊÜ ·²P.!düí"~¿Ÿr¹LþvžøÙ8ªª’¿“è»u w ìÀqסµ‰â½¢Û‡µmyÈ« (>ÀäíïT]eƒ` HÅ u!ÌøÇ㺊”~å•L{è¡l^3ȪÄz2S­¾V$ùQˆñÇ›jÒã Ÿ(Sq¢Ø¶ð¸i’VŽ~+a½´˜¹2ƒeYíFE}N`o€½øûý„CaR ) ½‰ û·,Êv½£û|öok×i®æI Á˜— ”VÙaöFvÉj"D¥:ÏðñsH)Ûâ—IŒy*u—ž­®á[Szj“¾œùiäUêÃè{üȪ‚ùdЉOÜ·k?Ô0 b§c Ÿk!¸W#¸W§R‘ÌÜ*v¸‡ÎstŒ= ¡avSšé/ÓÄß“ü(‰ùÄl÷Ûd¾Í8Ÿ@ÑÕ„/ì8ê’KR2Ó¬ •–8 ý2Fí‡Z{ed?³Ü4Û ó™¹jª‡º¡l^3¤¯å;:Øó·ó8ŽƒýÒ&ýešÈA\“ÑU¼W$7³°1c°Í``×ÀŠ~–¶ÂñUwUeš&–YÂÙ@¼%¨I‰XRŸIœO<ìèF_Žp]?õ»Rò³f°Xz „·¬þŒr Å@Gñ=æU˜•’ØN véLßÎ1ÚͪH=±˜|l‘í¼[ Ý¥'ëÔ+<Ó˜O4„§s»–zsEQ¸äô-9¶9¯ àU(U‚Kß7-¯ ÜÅN¡Oú„@ߥ3}=Gé-vse¨¾­b1(—;û»JK‡U}zÂ]®—+M4NôDÔ]=oÓ°žYÌ•æ°_ؽ@ÓÃ¦Ñ 6¯9Zƒ¸ôÛàaõíÙ6kªx¯Hül¼C"~+0oίùùRßð^­"ƽs€ô€ß¿ØÀ˜8i ëäÇ¡p+Ç´”\jj±¥.¤¨T*8UEQ˜úlÑí´¥íµôïç½ó¹/íUͼW ‡Â¤ïh%àâ' TE`-Tºj¦[?Ówj„ÚšRú²:…¢¤pœÎæË‘Á3·KøšÇYó òàŠzzøUä³ÎÉ‚Ðñ) Ù;shÛ”6Ù\ê¸ß§0ÿÄ"{§DðÈ0ÙëYûÌ?Ƕmü~?ýt]gæÊ ŠWAxZÿæë\ÙkY|Šó‘I0DÛ©1^ÿ{èazÁæ5ÇÈÑ%ÓÂ|^vgôRR[FuÞLMQl@AÖs+ ö-lÔ©2´OÃ'SWr®Mõ©QæîÚpê³)¬gŽmÚ¯£ë:á#al§Òa;ÝšY§›«Û¶‰ý:Fá~¡Ãùó¦¨Bª:dënW¾¾[gê¥kI-ë’x¿Úuåx”æ°„hûÑ!ˆ’é¢7Ö ŒBtMkSŒ×‚”Á(vÜ•ÏѶ©L|›CõăàmwUðŽãpó¹ÅPU;s êBa¬²ÍÀÛj»¯FßáïÐØ[JT°m›ø»qdUv¤é’$‘uÙN¡ŠdUòÍ…8¥Gs¤¯mÜþ:s9Côxó©‰õbqåÖR“6žÙ+l¼{èa9zÁæ5FâtãHß­,æó2SWónQÝ;) ”Y¬çÑщ4züŒýR”¦'}ãpŒÜ­±31üýþ Q\C{4†o«Ð'\â€G`;©ÍëþU”Ü­<¦iR2ÍŽ@Ó é¯Òà¡mÒÕBD8aüF–lU¢ïÔ9÷¿ç¸ôõ%Ì'&Â#ˆý:F¥Zi×9Œ#ƃÉGsŒž¥âT}AóÁÔ•NµÂœÙy¾#ÇB÷ê(ý ãÌ`;•UÖZ0ŽäïtÊóW‰õÔr…PÙºÄhá[jØÌå ñwã„„±Ë6£¿;‡¾Ã¬»têÕ ª*¡C¡öùŽ Ñ'\V_`_€áè0Æëk ç‡ ¯Ôm*áP˜ùGîŠ7°GcèH€Ø•<~¿J¸lwm zÁæuF]¶Õ£—BxF=™+}¯ŽmçÛvÔÝŽqÄ R©`>ËA½Hꢂ”?o:¹[î6~¿ŸÔÇ©u­­Š-F®8ä?Ý÷Ô½z¿âª37Ó].‰Á‡}m&ÛF°\® \—øK%¬:L~:IþNžÉ/&±ž»jȉ÷änç(Ý/µgâù;y—¹øÂ#\*q¿{òKÓgÆ ®˜·,ä#IéI¹­+·BCíïiAÝFÑuæšV瘅ú4Ð]»Ì|ìÒÇífÓ¦âí#ÐqöVº6›T*òwòd¾ÍÚ§Ü©ºÊuÈÜ(<dú¯Ó$ƒWBÝmâ+ÍPzl éÍç³æŠñõ‚Í–Â8¨#ú¹Wph}Ñ 6¯1¦®äÛB”Ѝ « ý"å‰ë®_º]m(Û¶ pÕ’#G/¹ƒñƒ•oþNEQ{ÌÏܲ· Ôêy¶»-².qœöþ{4¬r…ñOÓkúà¬wµ'v:†ßïg¼\vRd¾Nc=³ÈÝÊ9aäÔSŸM?'r4Ò•šÛ¢‡'Î'À+ˆd¯»Á¹%Í’¿“'ùkƒñ‹“mOžbgbÌ•æ(=(¹}Hu·¦7Nß[}ÄÎÄ:(èK¦s¨þ•)»ü}ŽZXP×굺Ú]Ùàx”Ì·)‚Bhþ†ð^ ^Øíí·Š¯ô+Lüa!.njsàjž›uøÍO@PùoG`Fäp¤ì›þ}pœ>Ìg7‘U7m3þa'k,%I!(Ö%³gâh;4,Ëjû¿””H~Ä|f"¥l3‹ZoK&e9l¯@ñ†«Ž»BÐTâ¿“ËÎÂ"³ÙÙŽ@9 3|r”ôW—^)Øh;5¸ã’ Îýdú¯ÓmÚ34' ¯‚ÏëCÝ®®¸Ëáóùˆžˆ’ºBQ 8N!„Kfð Ò_gVš–í‚¶]#r4BñV}—Ê€Bñ*‡ f¿ŸmÓ„—×¼„€Zµùoo YíTˆŸ¯™2·`ôÈ\×óÐ÷èä!ÜfË©+¿éºíAâ| 4Þ£#¥lV#côðãQzla4|T€xÐ 6o(ûRïuÿ,*œ%peš¹¯Ò¤Ÿ[¯`ú/Ó¤¿J“x/õÜbôäh»Ys)ôÝÝ;ìýŠ‚ …¹y;uÉDÀ ýEšJµÆÈ©‘©)%…;yj“*Šu‰¯9ˆùýîŠ)7Su°ËvG I]L1›uûxœªCú«ôª]öK1û·YlÛ¦OZDB fn¹ÁÁ:iáë÷u]MʺÄznaÛ6s¥9‚šJäHëE™s˜ Ü\uU*ŒÁNÁN×v “¥9!°/@ñEû+ëdž$B¤^ÈÜø˱è²éµÖ%n‘;6\Ã[‚ØñµªDÛ¡b½\t[m5¥ ¡#«iŒAƒÀ>—‚Þ-ÝÙÃÖ {VãÍE/ؼ ­j 0à8Ì]™fVJ&¤$¾M¥âTˆ]ÉPf¾LS:ì¢k?Ô:ìUŸŠÌ‚ƒz+ÇPkFûá8ñ³q‡uÔ~•R©Ô 6S£P¼4nç>¡\.;Cx„[©»Ì»˜ýÛ,ãºN“c¿wkLB|Cæòú3ûÒƒÚ[` ¢m÷ãü ÉÝ+µ•³ãgãmF[è`ˆà æý<Š´P€½T^ÎSº_¢Ò¬Sd¾Í0ý—iæJsn#å{ „G`½´º6SænäÈÝÈ‘xÏ]1™ÍŽàÐ"úpœ9"GSd¯e‰ ô+Ì?íNMŸøÃñ³qè;uJw³t>`ü«ÕƒOü¤Ax¯ÎÜS‹]:}Aì´«“6÷È]YÉê,BŒà÷Ï£ïÒ»šÑõðêíqSÄÆÑ‘®ÏÌ›Ž^°yÃ;#°7€eYûr—£ô—i’% x¼?FäbŠñÛyò·»ƒòË΂øÈѦeñ›.…òôWéö,WnóÀØ&T¨—"ë8p+GT´¾·|ÄÏÆÿx]wUŸ‡“¹œaøÔ”ÚdáGèCÊÑu¿Ë§§BÉ©»·˜2‹žˆb—] hÇq¨T+n3í!ͯÒçS/ÿãËê!sæ:j@C‘!næn®y¥‡%„G¸µŸ%ANV'@”1»ß‘½F»v5°w`a)*ÕŠkI]u îÚu Ïêb Ö Õ+ÈçUIúZžäI´Z[èUÇy‡™+àóúÖ<†6‡ÀN?CGB$r áÖ7½`ó†AQlÛÆ÷¶oý—`âŒzú')t ¡C!†þï›–ò¸yúÒÃmc0LáNÒ“î]ã-…fãlœÑ«ÓÄT]2±Éœþpk{)yi#Éä“Ì=šÃ|œ!þî4Ös—»µx,Â[Cx$‘AÈÝÒ6DŠÒ·©.‘àò"E:°?u7e6f®4×vuŠç\QT¿ÞÕ?h곩¶n˜ùØd¶>Ûf–­†ü’ Ÿ¿“ïrÔ+d¯/n›ù6ã s.!€tÃÌ•f˜aä乘HV÷Òwú1Ÿ•ÉÝ3ÉÝs· ï u6Šõ8Oy¡Lær†È±¹K¬Ï›öØ=l JÏÊDªBQ\K‰ÿ@ô‚͆©Ï¦ˆ‰aýcó÷ª„ª$ùQ’„”Ï¢^Vñ^‘ð0£¿EJIìTŒÔÅNyY­µ{EÖBú«4—¼NÅØ Øjh æ#§F(=%28NñÞ,µvšx<ެö!ìEÒÄz°ÊÓ׳ÄÞOQa’ìõ,ù;y¢Ç£8U‡Ù¿Íâ8N›+ùQ’è0ÓצÝc;9²2è4Q¹[9´CG‡Ðvjj’×2 ùQ’‘##]%aüýþŽF×åˆ ¼˲˜¹:ã6|J ]‚M«§pZ^¶]¥&%Íþ!DÇñôRh[µìË»!´Çe+B§*Ç늞ÅÀˆÌåÌJaLüaêní!q>Ñ~_x‘Áóæ<™+ì²Mû÷SsìXˆØñîFb?«JrßfÝÂÁhü}Ÿâ£p¿Äð/† ì 0›]¡Ý¶Ñ@îÓ³ExúäI‚~mL}6µ‚6<ñ‡ JK”î—Ü•_©Ôá$ tèÔÉË.}:¾)í:EùŽ©ÏS Gû:êr¡ƒ!"G#]WTK¡ïщŠaqÅ?@wÿ íºùG6ùû&ÆÉ#§FÈßÎc1ˆžˆ.ù»­íasPUãpmÛ›ÁXë­lÞPT¼áô­AX ¶W’²í³’x/AúËa¦>Ï3õ™ÕîI¼ç"çãq*SàĪÆ`!|Øß;íÔËRle'¹ÏëÃtûmd5Hæ/îà¾V½j£h)%Fõ«”îf‰£½­+g™¡}Z;Àµg£¿¥v¬Ö^!Ödø»qÒ_¦ñŸ2н …ÇŒýùë¯FeÝGøîkÌ^¿Dâ=áȺDß媬ՠÙ"SL}îö•J%dU¶%obÇBoé«ù œŽ}ÔP‚dod™¹2Côx”ÂÝÁ½®â³ð×ë¨ ±‡²·Kø¼bÃlÏ7zÁæ …â˜uÉ%¯àÜ&j#Ó^ÿh„Éb¾f1Zxm"ÇüäniŠ6“Ÿºé¡©Ï¦H]H¡_H¡„ÂH¯À¸“g¾äôÝÍV#ýU)u¿ÌÇ&#§F¶$Ø´ÐJ åî™(o Ì+xìxͯbЙ¸œC}[EÝ®b½°È\κ˜¢V«Ñ÷?}DG±_Úôy `íl,/<&…û ²:€¦>sßO~”¤Ïۇϻz­Î8b¸ö×]ÖÚÜ£9W¨õ„Áè±0vÙAõ+„A*ÕÚª<á½:Á]‚ü}—…–½žeÖ+®JŒAƒÈ`Õ¯¢¾­þdÁ&´O§øð_WJ]La¿°ÁãÖÑð¸R@«‘hþ˜üã"Ór5¬& û:¢lÞPȺDñéÆ<æ[­J·ó˜KVÂSÃ~Pcö¯³”-²³Æ?'ñ^ýË4Ž7°m2·¼Dé„u Û©´Å"— LŽ á“åâ”K?i e­ëÑ8¨c4*UÉÔ•<™ËaÒ_.²×†î˜L÷+Èevú. »â¢üÝ<#'Fð)>æÍy,ËBÛî6Ïfþâòó·ód.d°žm¼¾>œj×FjŠB^J†¤ìèqûvVÖ€¦ï(Ô!‹Û+5z9 B0Û¬ÁPë¹MÅ)àÛ$ñ^¸­XÚ§aÐ1¬;X¶M¥*Iz`Ô« { æŒÖ+Ì•æèóö¡(Êš¢­ÑÁú6GÊ5³—ÃØ¯cÐ>`ìó­f¡ƒ!Šÿ(’ºÐœ ôõQ(ˆ‹"›µLY—hšFd0²®|Óäù‘Ÿä8ÿÓêb½`ó†Âö´¯/ñ*®ðËRoŽóæ³²úNÛôk)¬g[øàÇ<®šqºËŠLÛîz²Ì™&°2X ìPùÕ(ÊŸ3P‡Ü}“ÒãÅ«0r4@`¯ÎÀŠ#É.“úÐÞVÐ4]·iγ˜ïŽ1[•Œ<²Á#ˆ PÎ'˜ød¢¸,»lnç íaaa1èëëƒ:ncç´ÚØí©$é{t÷|–áíº$²Cã»—ï4­žC‡BL|2AEQH "¼‚‰Ë9*ý cLJ¡Ñjq9M@Ø©+š8M:3¸+ ÈQÀ¾Žã¸ªáuB`ìÕ°^XÔ„ SÌ!¼ f]‚¢BµBöN‰Ä)µ¨RSL~Àq†b¤†Uš¦âT6¸ª „£"À;¡ÚjDOD î 2bzfšp(Œ›ŸÜÚWS.ýUšÐ¡Š¢¸÷u]ü4AÁ²^å×ýú¢lÞP¼ã8Ð¥\;ÂúÞY•êºÖŠ%æÓ­Mg|ãuWéj—¾«y¤¬auIeØe›sçlj†(=µXNfn•Ðü*¦i®4àŠS Ovµ‚¢ÔPýëå4±ÁKGÂX–ÍÏ–¨R'ê’Ä{ ´íÙYüšFòHÔ=0:2ÊÔ§S+V_Ó/m‚~`×AkFÝ+n¹ôJï™ö *uÉä­9f¤kÉë׈!ëó‘Ép¬:ø—(Ue‡ù[þNžÚ?kT~¨´IsB0}6͉€¬JRgãŒ}•&X•\ªÛœk>$SWrDŽ.SKHxç<ãÈêékybõ•ª$v<´~ÊÇAxýØÎwŒµR5áÇ"r4â^g!\·×'f}»¥†:r•²ŸYë2Æ>ß¼EùFÐzB{44ÿªb¬o zÁæ @Á+¨°þÀåzÊŒ0{ufÓÁfüý Æ?^ù¾Û_±õi³µ¸Lk JʃÄYƒìå Šç‘M&Uäh¤Ý{3v½€¢øHwéGI_Ï#D<Ò•b©×°«ó©EeÙ5žúlªÝÜèï÷w >ÑãQ2ά°{ž¹U$us—*v IDATVÅz¾qòF·T›;¡X¹ët„‘«yØ­£=6AѰ_ØX–…¬K*ÕŠk±½Æ BUÕŽô—"¥Ç%WAûúâàÙRkkšÐ>·)w+×J] Ÿö‚ÚþÿÌõ"É3véíÿ_ ÂFVMg`Õm^±Ó1ì²íR¸oç֬ŠÿÂõyš¸úïíâo âìò·}‘ÖRxÝÑ 6¯9f… tÄ@š&‰—6Sk ²óÍö¼T*+-ˆ ™†m?[eUÖ ‘C: Ú]þŽã`½´°ë ±c…û¡š¦¡íÔH™FØæG)Û4„KÇ^ŠÔ…ã>JÜ÷²·YÕggâ“ ¢O¢ƒ0, —¶9—b«…Ä©ª"û2‹½à«J´‡%×x®y-G× TZéxZ(ºZD·`ì× 4|^…`È@×uû•ªeu»žBÛ1M8äú e¯e)/HæšÆíYúé:ç+N¥mµ±žÌF,6¶‘C:Ê[JÛoääˆÛh¼/€y/Çü#sC½n¯3zÁæ5ǰ”4î\fÒ:u“ôµ<¼Js—'€ðv6EÆßÐwë]Ý/jûu¢ÿ7Œü'í`ÓJuuòw%¶SAÝëpÙt‘ü™ãÀ=÷GÛw!·û‰|oûÖU…î†åf)Ò—S´Ö¯Z_ª"P·7ø®æYïn„öik*mw[I­hju‰O„·!Â+ðÕ}m½ºÚ?k@r9L(ÂYpÈ^˺¤‰UŽÅ4ð÷ûñõoNc³È^Ï®yÿíÓˆ#e­ld]R^(Ó÷?}Ítð›o3Ð 6oòuIöT ~¢_ß™ÇqÂhÛÆ°žÏGGÁÀ®ÌGf»wä_‰ü“P@ë*Í¢oW‰Œ2}-KÙq˜üb²MÃÚ«”V_ŒïmÑãÑW 4ëAVûÀ“„úªâ#| €e¯o¸¶ûu»T¦o(=ÛØ`™8i úýnž ©±Å‡ŽSk³»¥ÑçT*nJOJbÇBè;T{µ®*Æ¡ƒ!´í¹Û?ÃñuGñ¡EX·:ì²×²›Ví~ÝÑ 6o~^•D6bÕ¼ÄÐk³PúÝ]ߣô°ÔÖä*=,µóÛ‰ó |>ÓÆ8l¹2ŽðT~’{ Å’Õõ)m+øu2K‚`òt„½:j¿¯cea¿°Iÿ)ý“Ìn…˜Dˆ²cîéÏœêÖè[t ãp!¥gUÕ‡¹gf³XJ7_hâgãøÞöa—ív=(~Â@OQ:„F[ÒÁ·ÖÄ© ÿãäõ×Ãj éúN?]ê ¥7½`ó`¹6Õr$?H¢íÒPýjG1ºÕORxd„¸©¤®ÁÆ3‰â#ë²Úìò<Ùëï <¢-ªÙÂÒBj«.;#óm cÐm+˜£H¹µƒxäN`—FŸ¿ªQ“²#-¤íÔ°QÈ.[mɺįø@vöé¯Ò$?Hþ¨cJ Áx·T¦Gŧ¸ÿ->´^É(n5š ´SWÖ4¡}Á]ެ‘úÓìª}H?ÝBëÚjÛ\²ÂÈÑšßõÅÉÞµ1~1бSGx]…ƒ–ÉžùÄl+YuÔ~ú¶üg›”„<îr#ïÕÐüꦵÓ^7ô´ÑþíÑH½% Ú§uÝÆ8âÊ¢÷ÛjÌÑ#"G#DOŒ¢oWñy}è»uÔ·Uâgã+ö£x£ è;5ðt:qŽž:‡õÌÚ°ŠoæÛ ãçÈß)c=+'ÈèÎ/3öë$NŒ뮥¶ô]±_þöÎ7´‰|ßÿ¯…\ø²0.d ‚³(8EÁ NÐ¥?0â#þ -^ðæxaOÜ{â^8Ûîy°ÛîÂ9ö,œµwá¸= GZá'V¸b| ¬$‚ÒJGPv… l!ÈN ¿Ó¤M›´iuϺ:/(j2LRûýÌ÷óçýF…°~ðÉÃI’I<Ïchp¨åû&.æýë“íÒG/pkå* #Û52ƒc§“-Úpé“Ü…Iœ'[/pë»uô]ú­µâC§«@ß©‘0tŒÝ}?[ IôBb¿Á|D°¸(Âá0ã_Œ“¿•gòëI´^•¾};4*uûÌ¥P,0ñç J÷J¤Ž¥ùdë…uÈÿ?ž¿cc?õÈÛ;“¾¤Kæºtà¬I(»•Ÿeæè_M°³ù GÆþîB…¡¢!”çP"cäo½KþVžâb3mѰ.ÜÊãI‰èõ¬Æÿ<ιO3L¯0öé®ë6Óž÷.W®þ€”6"” ó†»àU¢›špoà×>F1˜X÷Kða–ô£"±ç-ê;UÒ¿M3ûÿ®lêüßæRâïì×µ_lªü7UÉzÜ¥GNSµ`æÒ #;FÖ ¿¾©t«*ñº›W YU7¥´´ÚÓ¥Åb‘R©´FzCÛ©Q(šÅÚḔ°$Ù/B^Æ\@æý ö»Y·Zl2ƒ–¯cÕå\‘±Ï`xh˜+³W7²ïO´¤ÉÒ§ÓŠì‡6ãßæ0K6‰=~¦±Ã²,fµGeúÒ4—fÈœ°ˆëzS s%Ƀ:ÚöºÞ‡Sv[vPÙ“I<¯Â•ï%~—t¥¥Å»ÑŒ1öéXÛŸ±eÆÑwªÄz¢Œ›kʺlîDä;D(Ž”¹¦UvCƒÐ˱iè–r¹} IßÃ2úõö©“é ”ñª›W¡¯&_š„§;Ê™‹3$&I~’dôˉ5*Ç[¢NWzRÝ ª*sæˆÅbÍÇ2ƒs¶ƒÞ#¾Tïj§¶šB±€‰% "RAVýAÂì‡Y‡(ŠÒ\€µm1â{ -§óò7ó˜üÆ€FÚqîY Y/´](s·m´wì'å–@“>j×5*?©L]ëCQñ¼w™¹´öºGÿ8ÚVYYJ‰ü'Í©rm»†¾Go XBÄÑzì'1†N…ÉŸoÖ†u½¹bŽøNÍ·ø™jÓÛ7À蚊±K[j=ƒMjÀ@ßî«nÛUuÈÂýÑíÚ½u=Î… £(œ¯/ 3¿ÂÁæ#}Ì"9`b?vp=Ù¢hÜŽT¿ýÌ]·uz=® ð} àœœ}Aug¥Ë.›õ0˜„ß“ÏMsÄÐ)Ýœi.øjÂô_ƘüvçÚlW|Ëâí"æ“„YfÞNS®‚ˆŒ ¥Ge¡ÒâŒ9s­ˆ ¯)¶6Nútzù¼wŠX¡ÓBÙ®+nêZ%Æ]ðÓd²¾þÏnü³qF>¡t¯Ô r“—󈈋)@˜©o§¨ÕkD#þðª¾Kgâ+ç¹u™‹3dÞÏ4ž…Äzcˆˆ@Q†è{Û·ø¹²ý|öf -]Wö׎Ô¯Z*xUoM³ÊÖOÞèÔ”d?̮Ѷ{•‚Í+†óÌEÖ¡æyšì …nhJ[6¥ª$Œ=Q(»8G}‰÷9Ç¥¸Ù‚ó þ:jÒg!Ö£tssœòB¥l¦opž»[N¹”îŸ%}:Ò3Œã$ö{L_>Ïôe‰·ÐZ…è4h7uaŠìGÙ¦&Xømá0šoww]+Ï=<8ÊÔ…õÿ"ŒçÂ!}z–© iD(†Ú RŽ ë¥RUUIõ[ÛÝ…Zbêo’ü÷iTUÅ~h7SsÅb‘X¿kœûQ ":éÓiÜçî–F:!ÄuÅ‘UuÍs¯ûçÌÍÎá¨F,{©*g«’³Õ²ï_¢ª*""жkŒ}5 uÉ  þ Ö‹‚9›WŒü=›áßw=ÀÕ·Wo+çÒ-ªŒœJC¯ = "jLaôÓ‘%{äöd­–Y“Ñè‹i\5Ü#£=Qœª`öfžë+Kí'åÊíg>( ¥äø±ã$'™¾4†·ðÞBë€ÎÈé$™Ö†ç9û»åkr‡ìGY†ÿïpsד9aaíÓɼŸY3 ´·¼ñŽB‰¤Ðz5Ô^‹© ¤Œ#åö÷ÐwåH8Ømò7óLþm’3¿;Cr—Næƒî‚KMÖšµŸÆŸš¦‘8äßXD£Q¼ª‡uȯK½lD$AEEáz‡™¬×™â}ó€¹aŠyèäÖ2š¦5ÅtµíápØO«…: ÄTôÕÿb‚ͯ˜‰KyrÅùàS=ï.NµL4§Ÿ»Œýq|Ýü½¡kh» œg^K»­ýÀn‘ûß £ûî /rŽô1÷GÙð̼ŸAéQ(Ý/¡( •… RJ•¦V¯µmiŸþ‡Fò¨`úïoýÛælr7rm_uœïž»¼÷ ç*ƒÍ¯œ—1)ÞN:ÃvÖ_ìdz—g[Ïì‡YÒÿ•ÞòìËJÄ Üýf-†ŽÁØé§lÌ&ªª2ü‡ýÝAJéA©™k0y)O¾X¤pgý v7"øAQ!ÿs+ €?Ó4ua e‡‰SWqŸ»xžGþfÞßé˜:#§’-ç²ú-âûã9|„Ô‰Ôš×jCwÛÞq¯Î³§O§‘R2ÿ`žÉ¯%IŸR›N›æRƒ¯F±8GÙ“Ô"‚ð"ªªR©T¨T+ Æé R¹‘-ÀXb=*gLÄU‡Ê:öó€œóŸ ÅÛE*è½*sß_aöZ‘äá$ΉµÃ_H¬~«)œJ*U¿õ9ûQ–Ò½ù[y¬~ EQжkäo½×ñšÆ¿okr—‰d(ÉcŸmX':9DT‰6çÏ|?C^×^ðºjÙhvA.í wýÏ·q£3ñåÚïz½ì Á& Y‡Â­"²^cô÷g9ÿ×óŒ}:!_9Ùyê „ +³ÔE%€S|_kŸŽ¬kˆ@\œfQQ8¾_ówJõîwbÝy¿·gæF‘ZâKù„#ÈBhYy!‰Rñ:L®Çh¬%¢cš¥'!æ9ûûî‚KîZޏCÛ~Ë4p;Ì\+bì5ü½m3ò‡‘¦ŽØJ¾‚ß,Ý6$‰´mùï»ðíà¦ÚÈå/* g—f‰Âÿn¾v8fä#„ÃáæŽôeÌ]µ£²PAVe‹lÍjŒ]Ö~¨"ýêÕìªÚ Bz°P"Þ«0‡Úñæ­yük¼"¿Æo-`+¬¼³WvœÃy²¶•RD¾CÛnùÚeOÏ0ö©ÍèÇþsº¦òÍ—ÃLýcšñ ’ `?v‘üë~‘²B "Qb;b$€´¦¡öªè»uì‡6“_O’<œÜ𕆟šÛJnBJòÐÂ’â­}zµz­eb>w#×q:¿[r·J¼»T~È~4×ì*“Õ÷ÈÝëÜfvâÏëßÕ†üù)ÔýÀ¹¿œ{aÅß )ùîëI¬€…)!B0ÿxž>½ÏwÒ\ñ9çoå‰2KA»Xv©à¾ûZg7úÜ_‡MƒÒ£2P¤ôÈ!y8éÔ.i„»5ôíJ$Læ„EÞö…qW7‹»´¦ôϯÇqÅÅÅÅÅÿ°øÍÿ|³_oèWú˜¹˜9a-»bë'"‹‹Ù²/ýõ“Å¡Ãæâ\inqä“‘æãÖ>}1{2¹8tØìê<Ù“Öâô_²‹CG—Oõ-ÿ6vw®Í|eÞÏ4ÿ>‹ß ñBçûtlqìó±¾®ëB,.Æb‹µÞåŸkªßX4vÅGþ0Òö{jвx^ˆÅš¢,.FÄââný¥|Fçþr®ëcÏ ±XQ”Åùü_Õ¯Ô€±˜´³ƒÖbêDjqúÓ‹çþ´üù¤š‹ç>H-f­_üZ7ûµ:¦Ýh-èÛU2¿Ëß¹~Çà=*øÂž]""ß¡(óZë·ÓÀ24޶8÷q¦EÎÃÐ5†O$‰ïꮓI„"+Pñ*éGšÞ:ÅÛE2d–gc­%c°­Sñ*û Œ½©ÀÚgðÝ tÖÅþ4†òéØ ]À)÷<ÂKÊË©ƒÄ>áÃV3­7¶êužG4´”þÜ®‘IΟݴ´[þ¬“%JD ÷¼¸2Å«ÈìÍ—òL\ÊãyÎS§E€Uˆ°ïtú¼ÿ Ð$yÐÀyî2ý÷©uÕ„EdŽÌéQ&¿ž&qèLSIy#DÈ"yf¯#«íÛk+R¢üXÆvZÓms~“Âóîf4Æ¿ÍÁªÁØJìóÈ¥„5`¡ëºï€º”Frº<'Çáxê8µZ ÷«I´G6ïI¹ì\Yv7eñû›ªä»ˆàºYQ;Éœ°PÁø…îg‘VºŒº?zH)©­H‹5R[#ŸŒ ª*g~{†áªD*Oœ–×j?Õü™žçN‹lƒÔ‰q#NºX)±ë’¾ªÄØ£´E¥Œ_’Ì µGñ•/Öù½Êß̯ù<&/çI4šób¿f‚`ÀÈé$š¦Q¼;×…zÀ«zÈz)%©)žäÖÚ…ÃØgPºWBQjȺMî†ua‘EF?Çu]”ˆç–»™£t¯ýëO´¹.kŸŽëUÚÖ‚’ ”·Es8uõ÷çoæ1v”Jþ f²ßĶ®õÖÚQ¼Säxê8Ê; ï®ÐZÓb*Ö¡ÅÒ›QÄþ&"°„€•ož:Íb½Ú£`ìÑp™¹Y"5à3׫4UÖ½Îuì«eU62ø W"Ë»³NéÝ7âû ´ç¾ÞÊNºäÑ$jJåÇ |<ÊðRËvú¨‰Ö«b™²kçÒW±´;‘­5z¼‚`Рñ½Å.,y‡'p˨ŸÅê·ðª~ iLé‡ÿ-L­æ7„ßc²˜øÒÿEÓ{5J þ"'«o5»ØÎÿÏyâ{âïm¼PZttM¥²P!¾W§²à1þ¤u2÷j$ Ø;~@l@Vª!𪒑SIJ-«nŸýïµû¥Ç.PÀÞäÎé7UI:$^…3¡ià8׸8õ(3KjÒjO”Ä~ÂÝ_˜ö+9^õU¢ç‹×‰ïP1÷h]K*­Æ]pQÏóšfhpˆ>½J¥‚¾GÇ~`·Î…@Qüæ‰_ÝÇT¿A|‡F¥êuÔäûµ›ÀO;•l‡Ü›ôQ“´½CμŸÁ°pË.Îã)F?^îbZm<öùV¿Å¹?ó¿wÐBëQˆïŒ­I'”J% ÅBÛ´Êj M%}rˆé˳(o‡©,¬•V/Þw8~È ,¼ŸÖ.PÆ.mMGÔø·9Î}"y8‰÷í °ù`Ói€2w»´å;Ôp½€jÓ!}:¢($ö'P" _Nø-ë&F[åZ­FXøwêjdku¨F[õj¼²²\¥ü¼¼ÆÐoêjkŸ÷/q"ý%ˆ*Q”XQý¥¯äç#6M&9`áþX¦ìzÔBJÓ¼ ÿ}]×qž9ȺdèäPGëâÑG1˜Ä _bE‰†‡†9÷?kë5S¦û¼»Bølñ;à=œreÝ»ë³_Í2'çC0ù~ÆoÉ^¨®:ÄbQ{´5ækös—ÊåÙ®MÙV"ÄÈKUôõÏY@VûZ õ¦.L‘>•Æ~b·ìB~Î@P¼WDß§´ 7åº)"þnY„TÆ¿X«ú ~¹‹B½Ìè×íëy¯k ˜ºš']71çÕA° hÁùÑÃuý;K+5ÌèÇ£ï´þoÉ~”åúµëÌ^že†¥`Zš#ËÍÅ;E¦–H+ ñ ¹ŽöÉÀº“åà§½ÆþÎÓ·˜xÚÝû1"ú- w}Ùô¦±¿ŸáH¿E¾4ËV¥E䨿üÅ0ûÑuÆ?[ûøÔ·SkºÇ^É:ê;JËÂgõ[è;tfbS6â"2†1ˆ*`?zkÝc_×ôQ·¼Î‚`°Šü›J]Hâ<îÜêÚølv‡5ͪœú´h»}åcî•ZMò ABW©H?¯ÝN²Q²Ú[À|kÁc($HN"¥Ä~lCÌ`úòò¥—ÓÊ+"ß D’”Ëa·@7šf? CGQéÐrðÕwë¸e—ùÇó›Ò­“ÕQd(…óüõPØ:ÁœMÀÔwTÆ¿ß0U2ñç d]’ù õriò]ˆ¥Fö£,ÓgÍ£KRë«1 uÅ Aö£,©ƒ‘SIR~JÿGš¨²õÅ*ªDIìO ë:…ïýÝÌäÕâKQÌUßtÍ{IÆT©)Æ>Ãq^N0Ü,•ªD„ÂÔV¼¨1ßÚxü‹q’»Wö–²ÐÖ4-à #P¾Vmfbý!§#§»“G“‹Ó3Ó‹…ï ‹©©uÏ548´˜ý(»8trhÑ-^YÌž´˜‹éSé-½kßòÄ{útz1}*½hì3]EY ±¨ïz9ñÀ¢y U`$´õseÞÏ,šÍűO×ÿ9¼ eÍ^°84`,žû µ8r:ÙÕ÷ ú—^gðõj| o(úŽØÆ-Qû©Öõ±ïJ‰Ì+ é6IÙܵswç¸ò¿WPcª/«ßµW%óÛ Z¯Æ¹ÿ™dâbž·î7UŒn=™$yÈ 3è77L]˜ÂyP ¾'ŽÕ«âè|[Aݦ69ç#‚±XŒÂ;¶&¿žDÓ´¶&f™¥s Q©T:¹¾ h7‘Aˆö^:ú.}·Þì6ôj€„Û8?š{52Ç,RýË»Øèk"ªðb5›7}G )%úö؆©£ô©tÛÖÔõ0" ˜ R7sL­J%%ØwóͶßõŒÕÜç.™ð] ¯åI Fëä{÷H¿˜½¤l`íÓ°Lù…©c)¼lìG/§¨7âh½Î3ñÐ%Šây˜»5ÂBlª“*}Ì„PEQB©œ½0 !A, `.棾/=iQzà`è^µ¶…B³‹¬ÇBGÖK-MÚ_¨©º°OGS£îÙmg—ú´†¡£º.³·Jè»td]v­2ðú›7ú’óe›Âî”vøþ3V¿…bÓ¶ÎNÕC½•çȪ@3tÔ$±»Ï«Pñ<Šåå"2yÌ\JpîOç˜üjWQˆDN¹ÌÔ&ÍÔ&.æñ¼å…7Ï!Ùo¢öªX‡,ì'6…°vK­VÃyêP¼]ä]Ï#3ha ATQˆ©JW“ýµ:h½1fY•¢©M¯ü–g¯êÃ¥ôØE×5t]CþØl° %¡R:Kµ·å§ÿoΩ†®¡oWѪ±f°IH!„`æâ Î3˜â4ëW 3á[cK›7œ ؼ´ÛÍüDCQ—ˆç.£dжi$%pž;›:¿/;¿v÷!¥$@ñBæ© IDAT”âÃöçâ;ŒÝ:ž'ñ<š"„ªç±‹!ExÓ¦Áê;üé[6 3JîF·ì®»ø'èhÛT ¥ù õ¸:u5ü{´s›ˆ×öZŒ6Næý ªªëmHßÜ_ÞML]˜òwlû ®_B‰Фú ôí*^ÕÌbˆÔ‰å™«¡“~}I„DÛº_¢*™‹ŒÝ«p¶Ín8àõ%6o(‰E÷ñÏÆût /$¨EàL¦^’´|GVÔ”Úu8mó Iñvó€É‘äFÿ8Jþf¾ë4Îj%ó€I8öG­%ÇÅîUIÅ«ø^7{ ާŽû¿yu?m¨ª*öƒß0}y­ÏÏjyùè’Ú³»BNߥ7â\¹|…äQWQ|¡Ë†vË9'qž9ôíìëòø¨Š@ÓTÊnEùИ½:‹ˆLýà<².‰ï‰3oÏw<‡ .ÎKú9üz‚MÀFÿ8J:"!Áy$š;†¨=*ÎswSÒüB\Èêq ÓÂó"(õh½*‰=1&/¯þü}›‚[.ãÖ–ÓK“—ó›RŸ¶öé˜{4ÒW hBàâ¡¶©»ånä6ÕÚÞ y@'wǦx§ˆˆDɼ_À«®¿“ h›€ŽLNP©ÖàÆòb9úu§Üê¹5çÄQF¡X@íQ›*Š2‡¬WÕ÷ZŽÏßwü“8wKØlÒ§ÒÌ=˜cêjû.-¿M·»«]é ß`ìÓöLJŽE×µ®-qd¤mΑ=’âíåÏvè¨éϨ¬“æ³ö阆†” ÆT_ôTD¡º\×:ì+&̬øYŽ}:ÆÈ_ÏñV? ÕdNXh½ º®1ñmY2ñ¥_k—:»®(Äë’+À™ ë,€@ˆ3 ™éÁZ¬UjÄØg¬)ž·Ø\‰ˆÌû_Â/€›M’ûs 5Ñ4­YC0WIÈŒ~<бÛ`hpˆôé4BŒ!"ú. B­2-îOÐwè8É$„üÎ(c¿ÑâųU†N5;®V"å("²VÚÇ®KÎ]+»Y`ôëîºë*^ÅÜ\1S”0ˆïP±ö®Ÿîн£ * ñ=:…‡óôU%3e·¹«±öéôíP±öõ-u”ÅÈž´àY Ïãú:²:É£I’G“HYCAé¹$}:Ý|¾x»È¼=OúTšäá$àסt Ö«‘ÜâŒTÀëG°³ h‹í¸änæ[”ŒGþ0B4EUÕ¦ïÈ'#€¯ ¶ÒK~%"¤c @îF˜Äê·{6š¦qýVÂ÷¼ª×⛓>f2uIéa©yç,«ìG%2ç-ïXJ÷J¤ÿ#¾[gü‹qt]§T*ëé^®¶å¶ïMx€Û¢jœh ¹v‘žËZD÷XŒ~<ºfÂÞýу:xX!ÏÜ(UÂÈG3׊ 1¿]ƒ¥öãü=k¿Ž'kÌÞ*aîÕP{ò_Ír]Q ßEà½ÕRC‡“~°®ƒmÛ”üÎ7cÑt?à$ö'`ažì©$ö÷9¢€ýÜ¡ïçîd øÕ›€¶¬žˆF£{ w—MÇÂá0V¿…ýÐ&ûa¶­=ØänÒ§¦˜üz„èÛQdYBÝo ^ý=Ù“úN˜â0þç 2d˜‚¸”xž¿Ó>fëIâ¼çöÓ2™A ­GAߦ´H¿o)ÞöS9‰C ܲËäד)b XŒ>޶Mcô£”Ëe*^…‘?Œ´Lœ¯îªT%+ïÕÇWXLüa„#É#\™½BîZ®Ù%V©T°‹9r·m2ƒç?&Wª ïÒÛîVfo•ˆïR©É%uãˆäú¥sD·'Ö\#@æƒ “_%ZÞ»uÈ¢ü( sýVê’1!ÐzUÔç.q`þÃ,å…²¯ö OÜ0Pl{SÁ&Õo ïP)/ø;§äB ë:ÔýöæäQ…ì‡Ùf&‚öõ™F i`îõ5×Â!¸¾ÊÑ´ÜèÇ£m?£ÕT<-£V]Ûpðz›7ŒìÉ$Ö¡…baM°1÷j$ûýÅsþqyx¦‚ᣠæ9(_Ú~Þ¾ÓkæÒ áH˜Zu¹€ž¿™'ûQ–ZÍl¥Oͼ¢ÐçµïŠz·*¡ìJ# 9Ïò·ò8O2d!Aå§ ñwÀû‹ëä¥<ùâ¼/JòS‚ú.}Í Êè×~º(;ha™öc…³_ús,Ù²xžÇüƒy­oßÅräT«?Aîf‰‹9ÎDZÙeNJ†¥$õÈFÛ®¡ïÐÉ—ò¸ÏÊÞæ_5EÛ¦(@]S‰«à¼GÛîïò&¾œhél›½:Û¬±5ðEDãm_#‚˜ªÂ—ì‡Y¤”Íù§ëßþ¡œß®¢m‹QþóÆ­ê›h‘x½‚͆W­ «•¶ÆÅû…b‰©ß e!&€ „–ZëKR'O§¿cöæÜºþ8íROc_O’>š"‚ÜRš,+Z]RQ”euãM0sqcŸA|OUU©üTi;£Ó¸ÖèÛQjÿ\ß nâR–Ôš-u¤}:†ÏóÚZ&ØÏ]äÍ<^È÷‚IT%¬ø¼)ÇÜÆ~%¢¡ìÐè$Ô™=™„ºlY¨'/åI3›;ЉKy2u æß8OÛ×zò·–Ï1tr¨™f\ÍÊzQúTMÓ ä7‰‚B !_ !ÑãKÙ¸=¬“B x³ ‚ÍÆÔÕâºëÉ«&j¯†±r7,Ùè;Îa d¡™?M5ï–72bkÇð@’+å2ňBn)°¨€hL³ßßZÝÂê·ˆï‰3÷`nÙû¥£í8¹’õjjLÅ~hcÐ!Ñ’Sw%Hô[|h˜)h;ûB öªŒ}ê_“û£ËÜÝ9Âo‡1ö¨ÒAÛ©¯Ù¬þ9N^Γ<*š;.kÀBߥ3WškþÌŠ·‹Íš±ÇÀ«nܧ¾b$6‚çyÍÍœ¢ GŒ82JDmÑkk ïˆ¡DÂÍÀ%"Ӏެ¶ßM¼¾Áæ FD¾ºDÊ3ÍǤÇ-ÇqË:R#"ì'éÿʓ؟hY@ÓGM柕[:¦†„… PrÖ£ÌûDD0\v9R\¾Ó?+%…‡%f_`&CJ¹¤µ&™øº]G\+TÞVýãrÍÂÔ5´^åm(×£˜LÆ?G‰(”:cc§JÜÐ)ܽÎÔµ>¤\«ù ã l~›§Ð¥޶]CQ~@Ö£ÔjI ÃoS¶ú-¼?X8OüsɺlZ€7Ô:±ºoì@oåÉDùS:é«VòÖþ>´˜‚¶Ô&BQ%†Ë<²º9!Ѐ_7ÁP犈œGˆ4JO!ÆÐwëMÁF«ª¹ȪßjlÛ6SŸj¦€²'“$ûXFëÀa|‡Fzð8Æ?…”0H4:ì+œýÝYÔµEx¡@“:‘bò«IæÌ£nS[„';!«rÓŸÆnÔÀòàiòhOhLÝœ÷Jw)ÍôWõжi ô‡OÓGMR~WWútY×­P©â;eF®¯y½É¯&™»;ו/Pƒé‹c€†±[¡tï ނߦ<þÙxsWâþè¢m×p;„ÃaÒÇüúTöäÖ`W%“_MråÃìšç”ˆ@‰D‰FÖ 5´ž>²ƒg·üz¿N‚ÍЬžAÛžAJ‰Ç<ΓiÒ§¦HNâ.¸-Çf?˜fær®yG ~í‡kj?NÙ£r3ß”³qžy0P"Qò÷rœû‹lª¯×· ugðSEZ¯FêD 穃S7øn?H¨ÛTô:nÙíÚ®8¹_GÓT¢?…eì5üÏw®ÕN9$0ö8ŽCú¨‰¾Ã¾ú$á cK1}qš™›Š’"—oÕß´¼fû¹¥ö‘BÖ+À¥ûQ¤æì¯=®OïCÛé_ϙߞñÕ¯¨m`3ƒŠŒ»±$ÑÊÿ Æ/´~Ÿ¾{˜XX((±î¼…^‚`ó†bìÒ(=ôÛ]3',*2ƒˆ$ÈüW†©¿/öSý”K$÷kL®XL:Õ~V GUUµåÎÌ …ýØÅÜ£¡½£4%ô7B߃úrÀ1ö$'ÉßÊ7õÔ6"a&¨üX¡ðc¡ë@~ª.T–¬¬JjÕ¯ÂäÅåóq)Îþþ,ö#›äA#žôQ‡NQù©Òl—r”ZH¬ 4+‚™u¦ñEd ÊÏ{—T¿Úca?sɯHeÞÏ ( ®ë"«s¯Îœí eonÙ¬Næi1Åß¡®l8ˆ9si¦©g×NM¢a®æh‘ÜïëºYýRÊuåaf/Ïâ8NË çÏAîV wÁcââõfÇ]@Àj‚M@ žED¾CÖ5ÔÞ4îó80‹±Ë_PKÅI@îFž§ây0¾*eµžÓ¦‰æŽÃÚ«’¿·twò‹ð«edʃÃü&òÒÆ)ɯ'I Á[Ò—¸ÉÝÈaì3èÛã·r6NæýŒ¯½2ýµæ^ ¯ZkvÀQ‡ZµæÏöàë‚%'7å~Ù§÷‹ÅºnP!Ðb*^µ†³à+´óØYM;IŸƒñosd-Ô-]w 65` Å¢xÕںƯA° Xƒ¬¾‡¢TÐu¨,(¤ú ú¶k¸žG鑃¬ªänð¼DÇsŒ6ÎØ§c¸®KåéÞOú~ߨ,Zu¨õèxOŠXÛchÛbþ¢S‡ä€ßY¦(ËçŸ+Í¡ïÑ‘Õί·’Ù¥ `4¡Å;EâÛÊŽéc&ªªR(R2¯(¸u¹ÆË¥ÁÐQ“¾^•š”Œ?ñƒI»väÄ¡ÜÌaÁøŠse>È@Ý 3áÇ¿§V«ùêÐnw»«™%J¶‹ý´ìÏuYûW"ë (Q*xØh=Qôe7ã|“‚MÀ†›”+ *Ï$žçU,L3Žm¯˜³Y'Ð4¸ž»Žö9gþ±Ãøßš$ñ=qì§å¦ެK¬CÓ—BŒaõü…|“CŸæA“#É#Ô~ªQ¼SD„ÂDߎ5Ž´Ê?È ^˜¢¸@ߪ ¶M¥òSçtè°Éü­+8;t®/¸œ ¢ž‡yÐdêB!âH™§xg¹n’»–CDÇÿý8¥{í6ÓGMÜÊòRC‘Aß±ñÐêJ2',¤¬1Õ…™Û‹°ºí½Kˆî!¯A° h!3haèÎ3—Ù›s€_ß‘¦®n.÷_¼S$¼O§ò“lÛ™5q1ÇÄÅænxÝ/šÇwkœ»xžÄ!A¡(Ðvøž4é­yíÛE†‡†™»ë¿ÛƒŠ=ßb‡~šéŠ(Û5DUBµµ`ÞØquZ¨“|Ëå˜EÖç83à¿æÐNÙ«cˆHm»‚óÄbå ¿¬Kä‚dÞž_R^níÜ:jbìÖ¨=‡Œaá1öÝre.”®àyÑBÛn“¿•'U,0¿4sâ6ó~¥G¡t¿„üÉW€f)õ6ñå_Nø]hf‚J¥Ò 6Æ®"~¡y“äÑ$ÅÛÅ5-ÆÍ®;‘BÊYìGþã2Ó7rÐå­¥÷i?´qž;ÄøÒLŒŸVóªÃ€@V‡Ñ¶gÐvj­- àWBl~âºFr ÁÙÏרub¥LømÌ""pŸ»Ì,åøEdµWGJ_DS„jXýgQUuÉØÍaæZ‡Ô]ÈoZ8þïÇeëcê’°¦û:aì5Ú¶y7Ú»¥lmo>[•œE6¥aíÉ#ŸŒ¬¾”Õ0åªÿw»˜÷­ Ê›÷ ø¥ ‚MÀKÁÜ«×4_øñžÍä¥<°öëèZlCÙ“F7ÚjVÏ’Èê{¸Ï]¤œCÊ#H`öª?>ÿx~­îØ æ¾ÏáIÁÔß§Ðvh€ ~Mèqûd!¾Š¬iûüاcuبçZ” ×#u,Õ Xé£&5)× Ýš)¢ÒAÓÂtÂ^ €—‚eèXý&†¾w}áЪD„èºðª›€—FcG±’ô©4•j…ÙËþnfõä¸Ru˜»a3s)OêX -"±%(Ùó€l:†µahpÓôͯÙ-V¿…‚„™`¾ ÇÏÙ˳œ2Áñ.¯Ñ: cìôÓd¾XežŒ—aêÛÎé¸ÒýRKóÄêc@À¯ ؼ²e!ªªMY•Ìûô=:Þ‚‡óØ¡t¿„u@GSæ— Ö«UcäKóxU’ÜÊã”·¦›5sim‡¶¥ö`«ß‚Ÿ"S Ò!6pµ=$øNÀ{] †Æ¢ úN ¹Ây¥¨¦u@§&¡xyǤíÐàÖ¦ßN@À+El6Mú˜‰aß»…äÑ$Ú6‰¿L`¾ŸIêDŠJµBT‰2ù×ɦe€¹G£o§Ž"JL\Ê£ïT©Ü_’ yTfìÓ1EÁ-ÿ>5` B¢+×Èì‡Y¼¯éȹæùA Y‡ÂÇ·KXÁõÜuÎþþ,…ï {5¢Ñ(O®»“PCvéhlè"ØÌÜ(UÂÈjmÍs©~ƒÄ^JÕk 6±žÍ×…^5‚`°)Däôí£þÝyÕW.Ý/148L‘ÙPIDAT„aøR*#ŸŒ ŸÑwj®MµxÓÈ¥šƒ·´Ø¶dŒöD›b“Ö>ÄRYùGoâx»Y–s+ †Ç]¸BéѪçÞ‰råêr7rè=î‚·aÊ*êy|÷°ÔÑ¢ D(½š$шÒò¸¬Š¿~‚9›€M¡öhT<û±Ó”¡IM’0þ¬HhÉc>$P{bkÔš'.å9þû‰Ž6µZá¡áf+´\|ù™õÍXDP‰æ¥ã1®ç‘¿•ïDŽ\›Å’׿Zì²×ce íç…R_IþŽóÜŸ¥ižïäÐºŽ¢Æn cW°ó xõ v6€¿hÅwƘwÊMñÊv¸ 6“WÏãyï6Ë]Ë‘<œD„D3H4ì6C§iü³_n\è×ê ìÐ^VéT¦™Ô¤ŸÂš¼”ÇØk¬ifHŸNû¢˜@l‡Žx¾y­´µ.é‹FWítf»H±%èh½ Ê;:•ªÄ­ úô>EAJ¹¦áÁÚ§cîi8¨b›¯6A° ¹_'¾GG‰”:›äá$„΢ÆT¦.´>wæ·gš7vÅ"¼nÐjÇØç[¿C–’ØSgM:ËÚ§£oWQU_föV‰äá$áp˜ã©ãÔþYÃ~hcî71M“É»Î=±±7éŸs]QP±Û@ë0/´¹;6Æ Yw™]’ª9òŽ@ÝŸµYm—-¨= Ñw¢¤Œæ÷¼ŠÁ&Oú©ªF-EˆÂ’j²¬¾ÅاcT*’‡“Øl²eñ<¿/ÄR.ïH’‡âMgÍnŽY!«emŒ]± }lÚÕMò÷lLCC:v3u}'ŠÖ«qî/ç(Þ)bõ[8Ž!ÈõjLs‘u‰ý’k&•ªG¬'ÚTVX‰ªª¨ï¨¨½*©)¼g6}ÛU”ˆh¦ ^5‚`Ж±S¿ì®ÑQyè°‰;ƒóÔ%q(á{Ï,T6Lw­DVߥP,À:¢ù…‡6¥'å®SE².!¦!ž´ß)E™CÖ]‰ˆÌ!Ä(QU%¼dÁlì3|¥èÛEFþ0Âøã«ÄC×o¹Þ,¾º@{r×rè;t\×m6 X†oMš€W• Ø´Ex;JîvçN0­7Ê‘ÃI®\eζ±¥Ú¬&HK1{µýó376wξªäü#›3:Àr7GQþ{÷ÚÆ™†ü há¨01Ì€™â@&$1T"9D%+ôP™ªâCÐæ°8]ØMO­zÉ*ÙÃÖô°krHµ=„(‡`ÖD9„ª)à`Z4…”C 4  ôA»‡±•È’Û‰¬±ýüŽÒHþbHž|ÿÞW± `¶“µþý°…Üã9Ôï»H]þ©+Þ‰0}D‡úŽºav7<¯Þ)JßÚ^i¢Ýư¡ž®þ£²uë{!ùÅ—U•wJUT$.%ÚÿS÷f €2dcrÛßwUJÄ'â0Æ È•e(¡ ÊN…'6ÐÊÃuë¢Ýl]EõÅ$D ×=™¯¼—3×3Ð5}Ó¾;DÔÆÞÈV/>n&u9åUh¸0F d¿ùtm/G XÚùíù蹨w*®¥Ã:e•%¤®D×põÏ.¤ôN¿mÜ\— ½ã°BꃖçÐlÆ·]Üs"g#¯­”@ä7¬ @Cg3¼ÃÚqé§2ËK€lœØñ÷¦?K£úkŽTQþÁFöAÕZRJÄ'î¶Ÿ;1ªãâù0’¬®ïH}9f zÒDaáõ³½·-vÆDätçá‰Çvþ;!Îlh¨¬Ó^‘Í쿳(}ÿꩯپŸÙªäTæ1BÌ?ðf$ù…<êõzÇÏjJ ç—*r=ö›œ_]Xǽþ1êøqû•v*öž‰ˆi ¸ö·´ôÌAêJ Úa É’ÈÝÛýð#Ú)† O gõkHycCБÓÂÇ ÈÖë[7ÇÏš0 N­Úq@!w'5¤¶Û¤®¤š¦!|*Ü.íã›þK…'¶·Ï³>®³‘®±Lk­B€ªB_;öm1¼–D{ —Ñh×X' ÄÖ—„qˆ€)ÝžõÐN¢– sìõ%lLÃ@tÜ„9ªw½WwëíïÏÞÎBQD#Q(‡7/ØÙ>Òý3¥ðÔFù'KËí­<¯ bWpãï7pí/×¼J€÷û‰]ÑvqfC»&>n"(UAá‡,ÐÒ [½7ܳJ04Í-°œ¹“‡pjõµSl:D ×Äüµý\r* ÷…‹üB³·f‘¹žÁÜæP~Ú½|;c¢Ѿ[ÓŸLâÃýk´‰µ,—ÊÐF ”WD#Qè#:Ì“&–—–»Šl® Ø?×`ŽiˆšÆׂ#:h64To#h€õ‹™›oŽÏÜ+ Úh"·PÂz¤|}ï.Ê—ShþÞDíEï1Ç4DOhJ¯~šý3ƒ†h»6t ll„6H-ð¾®·ªm5 D¬0j¿n­yucØÐæ4$¬ZÕVÿg² %hš ·Á;,D;Ű¡-,%RS#qXƒ³ê w§÷â·ÑJè cØÐe7 ^aN+<ìáík :Ì1 R6áÔšOJþ!Øqm½(½ :dË; -¥Dáq¡ëp@C†èmâ2 ƈˆŽaCDDǰ!"¢cØÑÀ1l|&qÁ‚uÜèz=9ÙR'J""?bØøÈµ©8Âc¢§:Ã&õaáãÌ£:bgÌ®Ï%{\L$"ò†¨ˆ_ˆu½^y^ƒqD‡RPxjw¼·¬(˜ e·†ID´m¼Ôé#éÛyTV«È=*w¼^úÑÁä_gºž¯„Œ–„8ƒ¾Ø»ñ‘0l|f=h’SI¨ŠŠº[ïÛcðj{Õ ³±ù—Ñ|Ê5ŸˆC?¬÷}f¶@Jè "ò9Îl|ÊYq Ž¨p]‰K Ìߟïx?s3HÿÖ^éÃBDäG ¡9äîM"wïåòÙôŸ¦aÿd£ÙlB×u<Ì?ÄÅøÅŽ†_DD~Űñ!Ù˜ìz­Z«"r6´€à;A4›MX73ø<$0 @¢®»ûƒ%"ÚîÙìB¤ „@Ø C?òrG0Ù,M‡%2¼oCD>Å™Ï)JR‘d"šAêþÒãa°¾€ö¿FiɃDäOœÙøœi0O& eÙÛÙžKe‡j5¹„FD>Æ™ÏɆû' !"ˆO$ ¥„ä †ˆö†Ï¹î» @ˆ$ÂVõßê¨×ë(?+oþa""Ÿà2Ú¢**¬ÓôACD{ g6{Èì­Y8«ò ùa…ˆh[8³ÙC2×3 "Ú“6{H±Töˆˆv„aã3æ˜ÖóõÌÍ ò8«!¢½‰{6>2ýQ h†¦"ÿ½×$-r6}DÇÝÜÝ!Žˆhç6>bh CÇÜ£fûµØù‚Á TE…ý£½É§‰ˆü‹Ëh>R}QCqÉFîQ©ýZ0„uÒB³Õ„yTƒq´÷2‘Ÿqfã#3wº[;§?KâŸ CJ‰Ù•Únˆè0l|.9a!X~î 5‡ýÜöˆˆ¶aãsáã&š-`¹l£æ².í= ß“µc‡ˆh¯aØøÜ§_Í{DDoŒ§Ñˆˆhà6DD4p ""8†  ƈˆŽaCDDǰ!"¢cØÑÀ1lˆˆhà6DD4p ""8†  ƈˆ®#l »;EíÄ«™Òn1pèС¡ †ˆˆöŸ™Âe4""¸—ÍÓ¾øvˆÃ "¢ýHùnî÷ó:ÅJyXã!"¢}¬3lœâ°ÆADDûØÿÓë€F±BÃJIEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_11.png0000644000175000017500000003340611563552731017150 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ 0&Msæ IDATxÚíÝ{”Õ™6ð½«NUKŸ¾@ÛÚ DhpDG'\4kf%„1„¬ùfi…“8“1N¼F‰JD‰fÔ˜qÅ˧㈷(1DÍL–wÇq˜PD1 Êâ2äÒ}N÷¹UÕÙß/õ²{×9MƒÐÐÝÏo±Îª¾†ÝÅsÞ~k×ÞB€Nb î¹çÏó„år¹³³3—Ëuvvîڵ뗿ü%áÌí·ßžŽH)¥”BzB(¥(âÙ’%K0hw8B-X° Ý“ã8z¬ë)A>Ÿ×#þÁÄ ÜáÈòÓŸþ4£g:(¥*•J†ar¾ïܹs×®]÷ÝwFàp±1`¸í¶ÛÚÚÚš{J§ÓÉd2™Lzž—Œ$ )¥eY¶mÛ¶Mïá7O>ùäåË—c<îpøÝzë­mmmG}tsssS$›Íê™NoYµà9Í)ßDZm›ÞyÊ)§¼ýöÛU„;N?þñÛ"MMMT°{žç8Žëº”ï©TÊqNv)¥Ý“çy‰D‚óýÏÿüÏßzë-Œ-Âo¼‘býè£nii¡Œfz|Sï…ánYÕïüÑÓO?ýÍ7ßÄ Ü¡¿]ýõëmmmÆ £@w'žìT³S¾=þ(•óB>ž8qâo¼qè7 Ì›7﨣ŽjmmmmmmiiáòÜŽ‘j»'‰0 }ß÷}_)Åqﺮã8ÔÏq]7™Lbœú“…!€T*ÕÔÔÔÚÚ:lØ0î•Çé­Êwºvª'¾þµnOW]u†•;ôk¸§R©L&£ç8ïÜ–á@=§ºÇ“]¡”ÒÃê÷†† 5@¿AÏ}¨»öÚk[#ÔHáL×{îúôýË•RÕjµZ­*¥Œg¦û›üH ~ø!Æ•;ôSÙžJ¥ôÆ‹^¿sã¥æ—ó%Sw*Û…Üpçú½µµ€p‡~ w+†#¾—/çd§@§p§#Ü]×E¸ Üáð‡;éý˹Ûn”ítl„{ss3 `¶Ìvýõ×ë=ã©^†×£z2?^¼cÌîÐe;MTÃPÆôå8Óõ|çƒ0 •RzÊÏž=Àp‡C«Z­†‘ýõx²ó;é ì‰R¾­­ Àp‡CKßýMvÎñx¬sÙñ‰.ó Ü¡Ã]ôÜ\ÉÈëýÍw~r#ß …†á‡ÖücŽ]ß÷kw=ƽKÆ'+¥ø™ƒH©TB¸ Ü¡_‹÷b±X©TèRʾ$;…;G¼þÖR(ŠÅ"Æáýî•J¥T*•J¥xýÞKÍÎkË(¥âÝvzýèîîÆ˜ô\ÝB¸‡ÕjµT*ñ"´Ö#/fĺžéñNy½ÃmŸB¡ðì³ÏbÌP¹Ã!7wîÜr¹\Š)—Ë•J…¦0ÒŒIŠi=¯ãôRA_hôÜQ¶ r‡~U,ëº|9”b«x.ÛõGã R©‹Eêà w„;ÂúÏÖ­[Eô››xr:/HÐK¾û¾_ì‰#¾»»ûW¿úF `=w¿ÿýïO=õÔÆÆF}Hn¯³_¸·Îu=¿Ov–Ëå¶oß¾råJŒ6*wè?|ðA:ækªFj‡aHËŠ‰hQ0ú*½~çd/•JF²wvvnÞ¼yûöígTîЯ֮]ÛÒÒ2|øpZûWÅŽþx7¦P(Ð|v®Ù7oÞ¼eË–çž{ã €p‡ÃP¼755{챎ã¨ZjÞ—D¡ïÃP¾çóùM›6ýéOúÍo~ƒ@¸Ãá±fÍš†††‘#GRñ®·ÝãÅ»ïû41¦P(”Ëåx¾wuumÚ´iÛ¶mK—.ÅØ Üápzï½÷ÊårJ)ZŠ€‹wß÷)Ê Îw½Û^(¶lÙ²}ûögžy£ €p‡ÃoõêÕÇwœBŸÎ½ÇÈtýMºû‰¾dëÖ­Û·o_²d Æà°¨é[ßúV:N¥Rét:Ng2™L&“L&¹Ï®÷Üõ7}ßß¶mÛ¶mÛžzê) #ÂŽ8ó7ÃážJ¥2™L:ö‰Ñ„;ô·9sæpÐ;ކáÅ_L±îyžëºAlÙ²…ó}Þ¼y´^üâ¿ð<ßìîî¦îVgggGGÇÃ?Œ!‚O 71AŸ,^¼˜¿óïüÕ_ý•±öE¼ÁˆÅýä'?ñæ!2’&žú¾oÛö1ÇÃKu~ï{ß»çž{0žÐw˜ bÅŠßøÆ7R©-4Æ›{ðÌȉ'¾üòËC|”-ZÔØØØÐÐÉdè‘Q¾ók!8ŽCËøÐ¨f2+rÊ)§¼ýöÛ8÷•;òâ}ذazgmwÝ-·Ü’Íf³Ùl&“1*wÏóôõ×ø€kv˲xŽ©^¿_}õÕ?ýéOotï½÷ú¾ßéèèø·û7œŸ€p‡´aÆÓO?/¨>ûì³™LfçÎ[#Cypn¾ùæ¬ÆwÇqâÉ^­Vƒ  "ݶmýî£>:ùá¸hÑ"!Ä]wÝ•L&¹Ã3|øp^pÿ _øBggçî&Y"Üö¯r¯V«>ú(õªÕª¾ãÇ™›nº©AÓØØH)œH$xÅ|½%¥¤›¿¸_M¯ßçÏŸ?bÄzµ §5^'š››GŒ!¥ÌçóÛ¶m;vì¶mÛxàœ´C zîp€–/_Ne#%Õ•–eñ¢íííëÖ­jÃrà 74ö”Ífi|lÛæ|gñ4tÔ«±z¢Ï±,+NóñöíÛ?þxúµ€'0,Ë¢úF'tÒòåËqÞ"ÜömüøñMMMë¼ÿª¾0äÚµk‡Ô€ÌŸ??žì”Ýët ï”éœï5“ksj‚ÑoN'Ÿ|r:®î|I6™LÒuoÛ¶'L˜°lÙ2œ·hËìî]»FŒalØ4d;3sçÎmˆ1’šÃÚHv n×u†»ïûBˆjµJï÷zjii¡g0Ú2•JE~Ýuçšk®¹ýöÛqê†>M¸Ç÷f²áNÿät:Í×QõL×›ìzåέ: '¡ê^j詌}Ìyäêéë¿($k¡.üÈ‘#GŽyÝu×áÔE¸ì#܃ 0v[ÕÓgúôéCg4¨:æˆ7Ju½ZדÝÈw*Àwê=zþT¼ó;iå¾Êêy^*•âpO¥RMMM#GŽ1bĈ#n¼ñFœ½w€ºV¯^½k×.c`£º"CqÍ5×ð]H|/RüÒ¨^¿Çc»+:ãê+÷dèÛu]W/Ø|ollloo?öØcGŒ±páBœÀw€}wf¸xO$C0ÜdçÈ®ëÜr1b}ÏÿÉ:ÓfèËkVîúK}HÏtšYϯ ü~¬Ü‰pØG¸÷R¼pçd§ë¢z¾ëIÍšx¬Å»þbÀø6`ÞŸÿüçz‡‡¨KC Oò;yòŒÞºÁ <ˆa¶ œÊ]/Þ9z†N¸ëɯÜdï%Ö9Üi­ïdk¬HcL¹¡#îmÛ¦¯Bp²'“IœÀ¨Üj[µjU¼x×+÷¯}íkƒ~æÍ›§';×ËzÕ¬·Ñ÷ýß²ýš*·Ýéf¥x“Ǹ*«O±çdG¸#Üö¯x×ç …âÿ¥ÔÚ–1zMÝ\¤Jj½íîºn½Þ½Ññ×;ÜœY°`N`„;À>Â]/Þ‡Tg&‘HÐ:켌ÚǺîõ‚ PJÙ¶í8ŽçywÞyg½ÞNÍ®½~#+Š÷Á|ZbàÓ‡»qAu¨]S­FøŸ¯Çú~5dêºþ aA@w(¥xq‚xoGoµë<—×TQ¹ÔµbÅŠŽŽŽ6n»sñ>èÛîÕ˜šndt/áOv~¤•i)âóù|ïO¨O¬äâ×Tî}íÌp²óÆ܉šá^/¸û˜ï5Q²såÁüùóûò€#>¾û Üz„»Ñy§âýwÞq]wâĉ§œrÊ`ýç¯]»ÖwQ¿ÕÞ{¾×+Øù‘c’= ÃÞŸªæ·£'ñ}ŸR'ð „ž;Ìp§düñÇi®·”²½½½\.{챾ﷵµU*•r¹\.—W­Z5hþùO?ýôç?ÿy=ÜËå2í¡±¿“dø’l½|×2tÐ{²DÔ²÷}Ÿžä?øN`„;@mË—/?ãŒ3Þ}÷]Z]6Nóö@„Žö¢|§ /‹ƒcÓg=ÙéßHk¸÷ý(Ù)‚¹ü7±Áúõë÷«±C“m8Ùë½6Â@|õ«_ugóæÍétš·‚ãé"Æ'§Óé0 K¥R±X, –eqÆo½õÖàwÚášÊvÖÇnŒ¾Õ¸~¬—íñ†ûÏþó}–íÆGõdG¸#Üj›1cmãéhô$ôˆ§ÀÒ×W¡É_øÂÞ|óÍ=kÖ¬9ãŒ3‚ ¨T*<}ÉwŽ`=ÐþB£l¯Ùp7^!DÏæ;½B Üîû¨ÙiQY§§øÞ@FèPÄëþò/ÿò7Þ¸CñøãOž<¹f²ÓÝF4eˆ^ÏD­ž¸‘æñ7+•Š~µfÃÝd£½OöüÇÄiŒpèá+_ùJ*ÒKÙ.¢?õ{|âánYÖ¿øÅ×^{màˆÑa–eiÛK¾×Kyß÷ …B±X¤ˆ§hþÃþ §³‘ìÆÓêµ?µÝi?@¸ìuÖYg¥#î¼õ3Ý3ÉÏÉnÄœ¾K™:uê+¯¼2@ÇäOúÓÈ‘#õ×9êV !žè4>zþê®§<%;…;=R@?õÔS"v%6ñú›œìèÉ ÜLÓ¦MKõß”iö•ê}©ß§M›öÒK/ ÄaÙ¾}»”òøã7*÷š­}}‚Þ‹÷   wR©T*•Ê>¿\×ÝÝÝÕÕU©TÐp pÿ쟩S§¦5©TŠ v#â©?£¯|[sƒ!ZuKÿ£Fúè£Üȼûî»cÇŽõ}¿¹¹Yßq©æ|s}×Y#‚õ÷pÍ7{ölþ|ý u X—¦P(”J¥ï~÷»8ŸQ¹ìa${|Óg½rçâT¯ÜŽp¹\ޝ\8à†åä“O=ztWW—"‘Hœp õîzÛ]_9’õê›kv.Øùà¸ãŽ+•Ja;u3åù©ººº¨lïîîæœÌw€=¾ô¥/% Ú3žìFOF-îN“ój&{"‘˜zôh} =ÜÇŒ£¿i|ôÝwß=¤ƒð×ýׯÓ”ìñp痽ݻw ½„ç^|½pß¼ys¹\®T*Ï<óŒâ¾ûî;ÿüóù…!•Jq oÛv/ù^o«&@¸ˆ/ùËüë?¿SÏwj¦Ó}íétš/3êT+•J|ƒPj:—Ëe!¥á‰'ž¨ëzËÖŒø1cÆôòÑ >MêÔ©F¬Ó¬¡zᮿÓqœ :::Â0lhhàˆwGOöÍ›7ÓµÓöövZø~éÒ¥üxòÉ'éà‚ .à”§|gú¢E‹pÞ"Üöáå—_ž5kV½=Bõ¤.—Ë¥RÉu]ýJ£~­•“V:ä;*y^6]!ägæoTsý½õzú×û´÷Þ{¯÷ß]ÇÑ»1Æ \z¸ÿú׿v]WÿÕ„n%UJÑ~âÅbñ‹_üâ–-[„Ô<áá*•JO?ýt½¿Éã?ÎÇ—\r ½HAp×]wá\„;ìýÖùšñª—á”ïétšçAò§AÀ;Æ÷ß+¥Œp¯zÑïy^½Ïï%îûýÜ8¢íaõUéã‹.œ{î¹Ï?ÿ<B|ù;v8ŽsÜqÇÑÎMF«—d7Üÿý89áÎØ¢f²sñîº.å;E<]ô ‚ ~Ǧ±šŠ^¹ëÙ½¿Yo¼I“z_Þ{âÓÁ¶mÛôùšÆÔ~ã6.2kÖ¬^xÞ_^梋.ò}_¿­Ï2Âùwè¿ÊÝØÿ¡f²JvÎwþr#Öù=|Çüøñã »ûøJPïó©'ÞKô‡a¸sçN}²¦1ÍߨÜõß'èµÊXQgæÌ™AðJÈúD#Jù³Ï>ûw¿ûÎ:@¸CTîœM¾ïoܸqܸqõò=Îw)e.—Óû6Æ‘¾”í±Š?°è7&ïÇgÅpý®áôéÓ_y啸øÐÜ!ú~‘Cñw8 ~÷»ßýíßþ-7‹]×ݲeK"‘9rd/Å»”2ŸÏÇ_ô^ÿ`åÊ•íííú]¯Æ°‡ºŠ¯÷ùFO¦Þ4=ñéñì³Ï6Vʤ­V¥õXG¸Âú»3†!Os¤Ù#»ví>|xÍ%Ëiõðø‡„6 2¾gЖ-[ŒL¯_ózô÷åû[õ !^xášNnôdŒ)ÿRJ¾Ã+þH¼ä¯¾€»¾¿„à|„;ô‡ /¼ÐX‹»ººé4Æ>õÄgË”J¥\.OóýÍzãàÓTýú·=_4Ðz®ëÖ‹xžÉ#“H$8ñõ›¿fΜùÜsÏáÄ„;BsæÌ©—ì4÷‘7Û£V²Þšè=Ùi×7ãýù|~Ù²eüݧL™rгÞ8ÐCWñú }ãŒO¦ ¶mÓj ñâÝ÷ýø/1´ã_¬æõypâÂj›7o^%BKPõ}u½‚ß”RV*ß÷éúêˆ#ŒE 9ÑzIvšåMOÂ{ËÑ «LzÃĉ,Ö÷+ýõ‹ÉõÂ*q^Ë"žZXzÃ]ô¼‹þÕ<•Èø%'0 Üa¯ŸýìgÉd’—Ø­hJ¥Ò•W^É É>õÔSû[°ó›ÍœËtÀe»Ð'¨™ï´`¡îüT¹\nåÊ•}üÇ._¾¼—Nš4iKøšéol\¯îõN -ºkÛ6å;E¼q“ªÞ°ª×¹Ú±cNf8`C0hÜvÛm¼­çy{~ÀQµHÝ^Êw^"¼X,ær¹|>ÿÄOÔ,Øk&»eYÄF4ŸtÒIz‹ƒ8î÷™ì•JeçÎÿùŸÿÙ?#6yòä¾Ç}.—Ó÷/ž_~ú#-SÒèo‹Ez¤ƒ%K–à¬TîCׂ ’1Ü®5r–ÊLÎô\.G14{öìG}”ŸóñÇñÅk6ÙÃ0,•Jz¡ÍcÇŽ¥â½æ¾ z¾sÉo<îÚµ«ß’]Ñû6­“'OÖÃ=“ÉÔœð_•÷¹¦Êé6W£6ïåjs†8·á>t-Z´(“Éè»^¶ÇýZ­A ïyÄèÓyäz†óÏ?ßó¼¥K—ê»åúqkk+-úH?ôþ²‘ïÔ&ªY¶ïÞ½»?“}£ÆŒÜ“¡e hQQë.nÎP&‚îînNóÞ3ݸ á>ä,\¸°¹¹Yw¢/¼¥+gM†|Ë%»âŠ+&Ožl´¾ýío?ñÄ´,-ìñ|ojj¢ [ôRuú(ÝÂc${GGÇ믿~$6ÿý9ÙõÁx– ';=RÙÎÉ®Rï“D7n܈3> ̵ÀݘaÆ ><›Í6hhÿ6çy<íš·,‹¯òñ\½?þxüøñúvétzòäÉo¿ý65Rhï>¾ñÆ/^LÑÏÑ&z®IQ¨9­ù®‡{ggçžìBˆuëÖ?žwo.¨ÿ²¢¿‡&ÿj²3zQôkyå•Wp’*÷!ç†nhnnniiÑ+w*·²ÐꃔìúBŒñþÌË/¿|Þyçqå†a.—ãš]/Û-Z”H$–,Y2{öl~á/4f˜…*·¤+•J>Ÿ?ò“ЯñI5t—ÿvÂ…9ϑ߯۸ГTîCÔõ×_?|øp*Û‡ F•{*•¢ù´ê å¬ëº|¯||o :ð<ÏX eÕªUS¦LI&“¥R©»»»««ë³ŸýìªU«ôš’.±žþù<ð—á„æÃP}Ê_eA0kÖ¬‘#G~þóŸÿýïäü˜1cxõý—îÛðk€þb¦ßŒZ3Ù¹OÅ¿Ðtvv®_¿§: rBæÍ›G;=666ê«‘´ibµF¼c/Å»mÛ=ôÐ…^ÈÓ% …wTþéŸþ‰÷ßàÏõÕWmÛ¾á†^{í5nѯ5+÷þçîèèèèèØ½{7¯ |äÛ½{7/ ©µ‘ÝúLî† m&h<ÙõÅjµú /àTTîCÈ5×\£×ì---‰žŒŒæR]_èÊ(Þ…úú2¼o¾ùæñÇO•{ww÷ûï¿_©TæÎ›N§ùï|möµ×^;í´Ó&Mš”Ëå6mÚDµ9—óårù¡‡š>}úôéÓõ‰7ô8räÈwÞyçÿM›6µ¶¶¦Ói½r±e â¥z½â]ÿ]‡ù¾¿víZœí€pB¦M›ÖÖÖFÉ>lذDŒ±÷ÙK©ÆÆ@"ê&Sg€T«Õ£Ž:ª»»›òýsŸûÜÔ©S[ZZj./CßwÚ´iË–-K§ÓãÇ?ýôÓ'L˜p 'Œ3æøãO&“wß}·þo¡¾ ‚ —5ލ|6lX&“‰‡»è¹®@|JŒQ¼×LöJ¥¢ïˆ €¶ÌL&S©õdâ—õôF¾À‹”’vj¦]îx®o$$„pjYºtégœAwK677§R)ýöËø7åå®âó¾oºé&šQÃå-]`ÍÍÍå§ÐÑÑ!¥1b„¾2Q›·qé?‹Þ“ý7¿ù Îs8(, Á’J¥’É$µ¼ëå¬1QOßSÂXìE¿WžÊpªÄ9ÜS©Ô%—\²yófzQ¡ºñ}¹l§ç¼êª«âû…ò+:Êt=âÊOaÍš5[·n¥ßuøB¨þ[HMôQZ¢\ ’P¹E×]w²ñÅ­ô ZÄÖ7’ÝXN¶fåžN§ù×¾=ªæþAú7úæ7¿©?3Å-i«WînÌœ9s/^< ~ï½÷ÞÉ'ŸœH$Ž9æÚ|Õh¯ë?­i\D%XºîCº'CëÆÄ÷íŒoÿ½f¯^«×ìîçw'»Þ²×ÕÛ¶‚Ыˆ~±‘Œp>|øúq¼÷Þ{´ïR:v‡æžrsÆX=-¾¤Œ‘ïÏ?ÿ<Îp@¸éžL¼|6¦ÇÔ‹Z=ÙQ$Å+wjé“åã½}þµ—}óhÚтýµµu`ýDV¯^-„hmmÕÿ|‡×éõîäâ5“ûÛßâô„û5wî\Jv¾ªøš÷¦ùÎWPã‹’×ìÌd2}ëKöøª"šŸCó/é™õõÎP¾Ÿzê©”æñô¦ëº½Ü£Ëþýßÿ§7 ܇zÙžJ¥h•c»>F­Þ‰WÖõÚîÔ1§|7v±Méúîüœ|Ïç⮡<=ÿ´ÓNã«Ä|{ª™IDAT°žãçœs½B—J¥mœÛ€pÒh.£>‹q“݈r=gõÛ)y;‡û²eËfÍšÅáo°ô%Üw !(Ö)Ùé —Ë è‹ŠúîQS¦L¡ˆ—RNš4)•J¥R)®ßù5ÀqœÛpˆ`*äÀjö·7ÏYý@O[ÆxrñÿÖ}ùŽñ~Ө܃ ÈçóƒæçµlÙ²7Þx㥗^²,‹îÓW£X§ˆŸ9s&No@¸]…zÂö½‚Ž7IŒd×Ã]_„ X,Ò5”¿¥R©ïß+¾Ësü{q²ÓæPƒïG·øÆW|Ô§ùãô„;*÷ºåsï½ïxµÿ¨Q¹s¸ ÊßB¡@+ˆõÒr1’]¿–¨·bX>Ÿúé§e¸wuuů£êÅ;No@¸]7ß|³îûû 5ßñRZ/¨}ß/‹K—. ð\.#¾ï÷¥f3®¦êƒ²lB¬\¹2^¹W«U´ÝáfñεsßËvÞü¡fñn”íÜ¢(§,.j¨~§V²‘éa-ñund§«©ƒõ×Ýݽr?çœspzÂ}èÒ3·R©Ð;yg»Þ“½—xüjªÞp/ Bˆ«¯¾º ¡÷óq¥R1VPÑß4:0´õRww7½tî=2­Zµj̘1Xîð©<üðÄ#°x÷}ßXd†Ö¢â}Ö¬YƒxõcèOXò _Ã=Þ™QJqñ>õÅ1J€Ê`@†ûðáÃõpÿ?W_Wjc¥²©RÙd¡Þ„;À@³bÅ j»ÏþÉOÜDµm7‘P‰„+¥ýÁ(ÁAyîýê‚õë¿þ_ÿ•Ò²,Û²l)-Ër,«[©îjµ»Z$åK=÷P8ø _íTj§RŠ6ÌRŠ–ô´„ðP¼Â`àÚ¡Ô-Ö)⇻eyh»Â`ÀYìû;´X¯F%<Å:*w@¸ T;µXWQ ¯·enñ<Œ ܘJíâÊ=:°£žŒ‹Î Üh¸ïÐ{îQ ïIéâš* Ün¸ïŒb½ª•ð|A•; Üžç‚`Gl¶Œ¢kªQå¾mw@¸ Äâ=×s¶LU)‡¯©¢x„;À ÷zå`B$ Üv¸*áqŸ* ܰ_ÁŽž±Þ£rG[îÔN¥ Z¬Çoeº-™Ä(Â`€ù$¾ÈŒ¸ósÎ9§±±1I§Ó™LÆq×um{O_—óJxŽøR©T(PѸ‰  ?¤¤Ì‘"4HéH¹7Ðù@[JK)º‚jiªRî©Ù¥¤ ,+]­–¢®Ž§ÔAOö1cÆP »Jv×u¥”ÚÔ!¥¬V«z ßÙÙÙÑÑqá…>öØc8ú.¨r׸nƒ”Y)µ²’={´(ñéV&)%kWS-)-)…e)ÛVBH­oSb’m¿†å¯=sæÌ &´´´444¤jq{rÇó¼T*•Íf³Ù¬mÛ–eY–eÛö‰'žøÎ;ïàL@å0¨pWÝ‹ÊöDâ{£òÜŽ¦Á!øVUK)[ˆPÊ@J!eUJ*êm¥DÏI“k¡à™3gžtÒIÙl–jv®ÖùØq.Øõâ]¡” ‚ ¡±mûÛßþöƒ>ˆ“á0x8R:œ¿Q…N™nq©Î=™hJ»Œò]aI)¤TQ-/¥´„°ªU%¥’ÒUÊÖ¥qFgfÖ¬Y'žxb6›M¥RétÚó¼xO&‘HÄÃø¾oÛv"gÂ`p…{Ï?–Ö]±9裩2œì{Ã]ʽ¡Îá†vô!*Ø=¥hVå§OöqãÆq²§Ói½ÃánYǺžïAX–†a†F¸_wÝu .ÄùÐ?Ðs8´~Èw-E÷.%,‹:ìt`k wJyko„[¶ùO5ú#„Jíù#„TŠî¾)Ï´í—´í>kÖ¬1cÆÓc¸çžL&k6ÜÄ—RR«Ý²¬D"áy÷ß§L™òúë¯ã¬@¸ xSm[÷$E¹eñET:æ ßsÕ²„þǶ¥m+ÛVœìQ¾+¥„¡R!|))â[-kœe}°Ÿ÷¬~ík_=z4%;ÍañK©žçéxš©½*Yèt¡•ß<óÌ3_}õUœhË ðžŒ”zO†æ½ì™æHë D]››0–Eýã”ÒRÊŽúïÔp§7½¨áî ‘‘r’e•„8ŶKJ•„Øó(DI©¥õW5jT6›¥> 7døÑq»'JpÊtšÉÉNm™jµª÷g¸¿páÂë®»çÂ` ºÖuÊw))Ôu©ñ–2žé=ßc a‡áÞL{zî¢çZc”ìåÅžÉ^bôß(Ež{î9!ì5% Žr+¢OvBèï7½Z­& šES*•<Ï›7oÞ­·ÞŠ3á0 ÝV©ÜêyU!øÏž‹¥JÉhS©T´ñRuO†㛪uÕs*Œ”‚žgF ‘òxËB(!ªZ¦_ºÿ~ý>Ò &üÏÿüµYŒXO¥Rñ(WîBº­IwŠuºyU)åE’ɤçy8=ìUZ7†b=:BHNíjUH)l»f¾S¸ïx¥(Ä•Rôç˶MU”õB4ÐÜsz§|Ÿ8±ÔSGGG"‘p'‘HèmKS³rç>»Âó<úÕì´ '>uêÎ „;À`÷0ªÜET¶‹(â÷âÒ<Ö“1¦¯«(Öé²*%»/„-‡;?êoÚBx›77Ñ×Fårùø%»ã8|¯©åFÄså.¢Ù÷t@×N©T׿J)eÛ6½ßX€C*ŒjöªRU!·b”’CFÖ_¤lÏz–Q²Ó뽩ϙÁ¹pÀÂhC¥Ýʤ”#e¢gC¦F؇¡‘ì*zÜ›ïB(­á¾, ÓîR¦„Ѓ>½ÙK¸ëùÎ{Í|§†L/Œd7:3Ôv÷<ïöÛo¿æškp† ܤ¹åò=ÉdI)GJW)'*Þz±®•»ëJ›OÉïÚ$Hj»/C#ÙkýúõI ·×«£Æ•RãªiïhzŒ^°ëáŽâá0H”•r¥¤šb=!e‚î,¥”RQ/^i—O÷–í|¬(!*JZÄ/ÒöP½Øqjýòåz¸§R©jŒ¬¯/ÿ^U_a*eÞ’w€gEµ:Ù²)]^g†öß"”2Œd·h²#߯$„’²Z'Ö«Bt)Õ¥T^ˆ¢R¾RAϸü¿¾oü5¾é8I)õp§µ)ЕRz¸‹Ø¤Æ¾ÿ{kÆ:}ˆw[¥œw€ìQßwg²mï-Þ¥”îJ…Ñæ¨v´>žìªg7†#¾[©¼Ry!òñJ]¶¯Ý±ÿ•ÂôÎ;õwþýßÿ½çyÙl–“Rþ2½f²ëïÑnÚ”ìW^y%ÎC71ô“õýaX¢¤TYˆ’E¥ŠJµƒr´üKE)?*Æ¥h;ìPëÀä•êTªS©œR9¥:•úξ’½žx`÷îÝ}éÌìW¸×|“cà¬@¸ ÷ûþÿ«VËâë”ìÑAIˆrñe!8Üy&;ä£LÏ AÿÝMvòØcqO†ä§Û޵fÙNÉÎ8%Ж$î©T\÷4˲¤ÜSÓAÔ™16På|UÑeÕn!ò=2—ºd'FÙîû~¥R9€Okf:ëÉ~ùå—ã|@å0xü¤RùcµZ4*÷¨3SŠþ”µƒ²R¾R¡Rù¨TÏ AÅûAIv!DGG'{¥R©T*år9Þ9é}Š‹~IV[¼R[)A«Üq& Ü›U*¬V7U«;9Ù£ /×Ê÷.¥v+õ 7Ù£ˆ¿â %»bûöí´No¹'Þ_iŸù®'»ñ< ’“Ꮆ Àà4¿RùŽã4IÙ$e³-R6K™–2Œæ©ëú4ö@_©¢y¥®:xÉ.„xä‘G&L˜@»ã8üH÷¬7"õ1Ùˆ÷5h¸#Ü­{}_1Çqš„ ”o‘²EJ7ºÝ4žì¼äõ5ÙÉæÍ›Gm¬ I/„p]—ÖœÑ]g̤Œ7ñ‹Å"îw€¡bqÔ ¸Èqš„h–²YJ[ô(âoÑî>=6lØ ¥7nœQ¼Û¶Í»¡†aH)/éN«:ùOö\¤»»»|^™À`cŽ«ªÕ·«Õ×Ãp„e•…È Ñ)Ä-•Ê«aøz¾Á‹¼2~øa{{»Rª¹¹YßQrœJr> ýQ@{â˳=]z饸q#܆œ•Õê[aøV¾}èݰvíÚöövÛ¶)ßi_£6çƒ0 ƒ Ðcô¬'ûe—]†1ÂúÛ|pÌ1Ǹ®ÛÔÔDë¶ë™®·_(Ði!°šõ{<Ù¿÷½ïa„îpx¼ÿþûmmmétº±±QhNˆ§X7"žãÉŽ‹¨w8üùÞÚÚÚÔÔ”L&k^8¥¶;ǺžïJ)NöŽŽ:¸âŠ+0ªw8üÖ¬YsÔQG)¥J¥R†t+“ñFÙ†a©TêîîÎçóù|¾««‹köüàÏ~&1Ћ .¸ ±±1›Í666655577755566º®KsÞƒˆ¾n ?vvv^}õÕF„;¡æÌ™Ó¡ˆO§ÓFšo^ýõ7„; ]tUñ4ÆHö[o½C0°]y啸R ÄÿLÞW½wfäžIEND®B`‚ghemical-3.0.0/docs/user-docs/images/formula.png0000644000175000017500000000713511563552731016476 00000000000000‰PNG  IHDRâ®+ŠÑÀbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ 7)ØMݺ êIDATxœíÝOh›wžÇñ·-ü ^¡ ¤™,ŒMçà@¡ÛÃrˆ—6a­éÆ™ =Œ3“¤—âíe“.tcÙx:d[ì”*‡÷0Å^èb:X… y )HÐÀó@ þÞƒ$G–%ù‘%=ÏÏÒçÆ~ôêvœnÕIpûiû/T]­Ýë7ãJ[J›ÓxBÿ¸}¾¨¸ÐÐyiv—+Ò±6tw{°¦vŸf·µZ+¥Í ¿ª÷3¤®ô4ïÃvkÂlß‘—¦ÝÔÑ5í:¼ÝƒÔÔžÓ~œ[l\wýôèOo™nv¦Wír¹ÿš 2­žf"?}J›axžûÅ…þƒ;¡WJ—_Õ]æJÿ®5íšBpº rÿéýˆ"¨|T†#C¾È°ôáQ"1;²xÿÞý8Ú!2t®üâÊÁ߉ýýÊ€¸rw…+¿¬ÌXøùB, ###Ôò—ðžxGôvŽÞ&"Ý[´~hÚ{â騩ˆ D(ˆ"PE  Š8@Aq€‚(âQÄ ¢ˆD(ˆ"PE  Š8@Aq€‚(âQÄ ¢ˆD(ˆ"PE  Š8@Aq€‚(âQÄN}-[úlºå<}à± 2'‚Ø.€Í–Q(eÐÄÄ0lw?RElAlB»k)|Wx¹Ü¹4Éd²å:F±±1„A°úé*kŸ­±±¹AêLФ1Œð¾/bÌ8™Ù ?[`öÙC­VeDÄÆn~µÉ¿.0÷“ +f1É,&‘,P!ý Ï|¶¿¾Ã{KÌ¿}•¹‹s‡Ö©0ÊiiCøÇ?ü‘Å달}²ÌLºXiMb“0€…²ILÒ0þJû™åŸÞ^`ág¿âÆïn<…QN³ØÎ#n~µÉâõE6¾Ì1õj[¶“ÂŒ¥alÌ $Æ!a0X̘Å$SŒÁãÏ—Ù.l³|wùÐ:OzðG$nñ± 7?¸Éƒ{Ë¤Æ ˜˜±)Ë@"]  IArL¶F0 ‹K‚-pó×Vþ{…üÿåcy"½YëG«Ü£Éd’Ì”¶fcR/.Ûê…DªÆ„Á$`|ÌÀ kï]féÃ¥¨‚HßÄ2"æ¿É3÷“óX[ª¬:Q=`Ã8¶ÖîA¹De´ÕÛì¡–~°v|Š?X.ýó¥(©ÐXzõrƒj êi ®Kåh½Ø®5-•J¤_MBí@ TNð—KP.œº°Öâþó"ö…%ð-Û;–µ‡E®½w cÌÁý»-K[•&õ·ÅÙ‘íÚWŒúŸÚm¬ÿ´„ª×âìÛÈKSoÇ«¼S≇1¦r¬fÌÀ®¶Tm‘_ á®eowà…ÅZ(îÂÖ·–Ûÿñ€Åß,òÎÛïZo/4ÛØë7ÌÆùÝn´®ï¸ö¹¢Û¹~:̼°ÿï¤ëï·Xö½ÿ³ÂÆf¹wK¤§¶¡pùâÙ×SÕ£¢•£¨Þ³ùï|Vÿ”'ÿ]‘ì›Y¾øÓd/dûÖ¾0aèf=ÍŽFv¢“å;},aÚv’e:i[»ûvrŸ^®¿ßb»²fcsƒ[Ý"5‘"3›Áîsû£ãêõn¾w™ó?JâE¬…ÜŸ‹Lÿ8˃OošH*GAŸ]#§_lûˆùo \ûí5V~¿ÌÊï—±eË­îû,ÇFÞgé¿òä °ñ-Ÿܸ~ƒôÙ´B()– Þ¼~“ô™ rŸç˜ÿ—yV×VÉÌfX¾{k!}vŠdr‚¥ÿ\cãk;ß!}îð»*¼O!”Kiºþå:™Ùó$“Ifßx‡¹·.Qø®Àü»óä®3óÚ©‰Êem¹‡¹CŸâ¦ðÉ Š%ˆ¥R‰ÜÃ…¿z\ýås/1óÚ ·>¼Åú—9 O<ì®Oæõ ~àãþñ+9Å"/M3³¾È=féƒ%rŸç˜þñ4ËwoãíxØ2¤Ï¤Ùú¶Ð×#£".‰|D,•J,þæ*£;JæB†¹ sll®³|w™`×2ûÆ,AÁ¡ó„"ƒ,–Òôö¿/“ÿf ÿËÒKdÞÌpóïS¬Ü[aó«M’¯}ä… •ÈKÓÚ Ó­|o§Àµë×ȼ™a+¿ ˜úÑkŸæxüèqÔM‰Mlçƒç•kLí®ÝõY¹· eŽœ'±”¦ÉW’Ø] ƒT.ìN&ÇÙØ\¯Ìoñ¥3"ƒ*– ffÏ“û|3f0l¹r~0¬“0‹ô[,A¼óñ}ø¸òwíj÷mP†X짨P$ƃ5"ò’‚(âQÄ ¢ˆD(ˆ"PE  Š8@Aq€‚(âQÄ ¢ˆD(ˆ"PE  Š8@Aq€‚(âQÄ ¢ˆD(ˆ"PE  Š8@Aq€‚(âQÄ¡¿ûbýÑz?Û!2°²²Ç.:ˆ ?_èª1"ÃÊÛñŽ]&tìLDNFûˆ"PE  Š8@Aq€‚(âQÄ ¢ˆD(ˆ"PE  Š8 ôµ¦2ô.›Þëé»/dx\ùÅ•¸›00ö÷÷{ûî .O½§q7áÔ뤺Ð>¢ˆD¨4•cM¦'ãn©qÒ’^A”Pîß»wœ×ÍA.QBÓçµ622ÒÕýDéˆ>»è¨^œ{UÅ)çg¦[ÎÛÊoGØ’h)ˆâŒÉô$_l®LÛ?ð+[Ëù™é £‚(ÎH& é³)6þ¼…µö`^±TŒ«Y‘ÐyDqŽ·S<Âa  Šs¼¿v~@h2=yè§Ùü0·ÅE¥©Ä¦Ý>Ÿ1&ô¨8™ž©œ¾0f”äx’Ô¹—^ŸæÁ½Õk Ï¥}ÂF ¢D¦BÏó  ©3)RgR•™ [¢l¼‚ÇÚVÙÚÌw}±6º8*ª4•HÔBX¬†ðˆò០°ä7·ÈÿïVOBX¯Ýþc\D黃>+fO/xî³õõÞ­¯Û‡°U¨Žõ\ £JSé»­ü6çg¦É\È2w1 ÓrÙâ÷E ¯ò;n$lª0¥gí~.”© ¢D¢F€¹‹Ù¦[^ñû"…o Ÿ)ü¥ÐQ9z\˜ZÍw!„  J„ÂX¶Ì½•Å–Á^¹¨;ø!Àû¾ˆ_ì<„ƒ@A”HÕÂh ¬?\Ç$Ž.3lD‰\-ŒS¯MaüF:j*±ØÊoe ÚŠ‚(±Q_Ri*Ñwcô‡‚(¡uûIeÒšJS E_LÓ_åX®œôdE  Š8@¥©4¥££ÑRåˆýýý¸›0tD9${!«ï·ˆöE  Š8@Aq€‚(âQÄ ¢ˆD$ ùUº²B$ëÖI4{™Þw&ZÖF]Ï$³ï?Ž» "Cïÿ”™ØK­Të4IEND®B`‚ghemical-3.0.0/docs/user-docs/images/geometry_op_dialog.png0000644000175000017500000000746511563552731020707 00000000000000‰PNG  IHDRPÂ1š%bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ G´£ÂIDATxœíÝ=ˆçÇñÿ…+ö Üí‚Þ%EšQ“ê@…eÜœ!§‘ì"&•B:—é’2ŒÝ(¸ºÎr!|i‚\(Ü6:ƒV`Ã"8»…`S\f=zîyžyžÿ<ó²;ßÒÎë³³7¿{^fg¶äÃ/–ƒ'G7˜=Ÿµ]XW((m·]€¦,^›¶]„äèzAjœ'qz ƒ'G2˜=h»É-Æo´]lΓ8½ PÂÁy®7ÚצÉüö­3Óv~÷×:Š£’—¯®2™ï?f?fÙ´eMñS•¥L_Ï­V´Ê/µV›&¶“l~û–ÌoßêTˆÖÅ:UÞ{Óë5½M‘þ'¶ß‡˜ß‘­¦¯­Zà|yŸ>„C™ÐŠï™k^þyçÛ^‡lÇœ^,wHÙ\ïÏ5ß¶}óÿ¡e =¾÷T¶Ï²„¬k[§ï|ŸUqšË`ö Ù¨+(‹¿u¡ir–¯†VV{3ÿïzíÛŽï¤.û#™R±¬!e3×Ëÿï{sýaѧ²u}ïѦOçIñ¸j[ÅAÚµŸf}kš˜Úè6©ÊÕõº&ÕÆ±0ßCÝeÝ~ßΓ²–N™µDŠ9™ú<ºèj깦¥»uøªÚ¬uûôù<‰ ]ýe6›@¾rö©i«‰Ï·ê>ŠÍÏÛk“ï˜ï]úvž¸>‹¤MøT\}šþÏØ7ÞצI̱m"œBúòR°½_kì`›VÊKšêЧóÄ7ˆzÞ4> /R½?®k}²]æÁ-½õÍsÕ–Ê^Ûöa.¯]w ÉO5j_6ú: _¶Í(¼íußU©Ð fÚ Ð6ô­i²©R^­A˜œÅy±Ý¦/cjSŸš&›ª+ƒ,›Œó$NoT¤_a³i¨-6‡ó$\ošðÒª ¿‰Uv¨Û–ˆ,Û.¬£3} ôqå€Î»ùþÍ—^o/—§ÐOþþ‰ÜüýéÌïÝh¼`Ðe[[[""RÌÌm‘Ùw³3 Ïžœ}tpÿà¥×yfòTNP"@@‰%”PP"@@‰%”zu;;¬Ÿ£‡Ü) Í›^ »±4ŠÎ»úÎÕ¶‹€Y.—ÁßÄ$@±æÏçm=pïó{QËÓ J((  ¤îÝ¿³¼ìÞµ=ëôÉx"gë•Í/Suý.™Œ'""Ö÷“ÏË—Ù¤cÛ9·sfZ±´8ßì;õÍbUDºþîõÒe†Ã¡wDËu‚›¡ Ñ…àÈß_• ó­k›·‰¡ir…ßι3aš¿öÍ4*7áG£‘ŒF£Òi)LÆ“ÕOqšm9sžoZÈëõ«ò½¿˜}åáé*³¹sY×1Mý~u—¬4ÌØàÌkgE¾ZUþSlÒšQV[ËÃÀ¶oŸ˜õ‹‚¾÷Wü×T,m^ñ_×>le°SÛô¶ìœÛYým©|h–eÖð̲¬ê¦_âk’Ú§lš&nÌúfhÕÙ¬6kœÚý„¬Wõ¦`ëפ)Ž6$¹¾¢ùëÅ€)«A® W3¼ÎÐ1C»¬\1Û­ÎÀ&J ¶>ÐÔ5P3\Íö®  „þQ¨*vÛUk§]8¾Ô8ÑI‘rÅÐÔö…Æžœæ:±ýš¾ínº²A´²é@ß%û.|žfs>3S¥kul?tßùkÍz¶u]ƒ@ær®¦ºkz[µÑùó¹ózNí<@#É RÈ4Û \åµ9Ý5àá‰]'dÐ*& c¦Ç”¡ê¶lÓÛlÊûÂO;ˆU)@‡ÃaªrÀÚQèÞµ½à{æÀ&âf".O4PPâŽôX ±w š@€¢ó–ËeÛE¬PtÚôÒ”ÁJt}  D€€ J((  D€€ J((  Ä7‘ÐiGÚ.zhzi´ŠÎ»úÎÕ¶‹€Y.—Á_&@±xš{×/ú@@‰%”Ô} ûwöƒ—Ý»¶ç_ö\s­âsËS<ÃÛ³ëûöL£Ðç»û–+ÛÆÎ¹ú^áUiéú»×K—‡Þ-[p¤;SÓÄ{IýGa™Áæ :ßre󀕛ð£ÑHF£Qé4W§å5¬bÍn2ž¬~lÛtM·-g›nÛŽ­Ú÷âÚfÙ{´•ÍUèÍŸÏ©y"H²>Ð<0C‚3–­Ö•ÿ˜c›îÚžkYÛvòý×Qã3·í*_q9Û:šU9@³,[ý¿žÅé¡\µÂbh…X• [Çfñ:–XwI.¤Ï²¬rxЄצRÔ¶¨±¨*I€Úú@µ!ZÆìkÔ!56U%Dʹšó.®þÇb¶“bŸ®~Wß €õ–ì»ðyxšÍù2fð” ¹–· ¸¸¶cÛF(ߥC¶}šý·¾ò¹ÁBÊ×§KšæÏçÎk8‹—#ù–óÍBUP[S=¶ùnžøeƒF¡Ëû¶ã Á˜²”­ï›_µ|šÁµMá PP"@@‰%uèþýàe÷®íY§ÛžÛ®}F»ö¹è¾gÇǬºï˜rÚž!ß·ÇûŸ_u;9óó&úbQTiéú»×K—‡Þ-3´AXEìþleL]î6•-تlË Íüµ–)÷‹ÍP¹ ?d4•N U¬må&ãÉêÇ&Ÿ^œ_¶Ž–+ÌŠÓlå)gq9Û:}7>÷ÖwÎí¬~RIUÛÅfIÖš¦68]òÀÊ|Í~³Ææ[§ ¡å,.g[nyÐå?ÔQ§Ê×fYf Ï,˪nZMÓ$¯º¦tµ\›ŒÚ'\’\H_ ÑüuJšZWÌ:„Òf±Õ:Íi"RH ¶>Д!Zu‡fo¿ØÂ‘ÀD’ "务©í -qn; ]}ªe\hGÕ>PšïðIö]ø<<Íæ|™²ë)ÍÀ* WÛÀQþÚµnl¨-D‹Ë›B¶QyW9ËpI“Ÿ9pT~±ËEI‘B¦Ù„k93´|ë„l#FÙz®²iÊå[¿Ï\a‚¾å TøT Ðáp˜ª°vÔºwm/øžy°‰¸™(  Äé±bï4Eç-—˶‹X è´é¥)ƒ•è,ú@@‰%”PP"@@‰%”PP"@@‰%”PP ¾™ÈÁýƒ:˱{y7h¹à½ñÞ ua`„Þ,8@¹¥¼Œ>PP"@@‰%”PP"@@‰%”PP"@@‰¥àï¨w=ë†äwcÐŒ›ïßl»½¶\.Óß @sÏ·]„^ŠmÐ J((Ñ„ï1,ê:Q†Ï©^U>'´çxTK=¶¶¶’öcò9Õ£êçD€‚ǵ$VW‘Ï)­Ÿ}  D ­»8½àœwxô¨Á’qP´j2žÈg_Þ]½^<_Èɳ“Óÿ/rqzEgÑ„G«ÎŸˆˆÈøµ‘dßg’ý˜Éb±Åb!ÙYË¥Û,“ñD&ã‰w>â è„Ù“ÓàD=&ã‰<øÃ-ùø7»Ö œŒ'òÙå+„h$šðè„Ù·ñ#ÌæÉn^Ž2O‚¦õÅÉ7Ç2Úœ™>Oä‹ßÞÅÓðÙ±oR›Ÿ)ŠFùú4ƒAp-TŽ}ÏdzǫZf^ ͧåáù Pþ0ý„&<sqzA>øÓÎQ÷*á)òSHĬÓGy-´žÇ''òç¯J‘ïØ›ËÙú\ó×®þX×zeóÚB ¸8½ Ÿ~þ©ìß¾»zíòìé‰Ì¾Éùó¯$Ù7áyªX ýìòY<Í$›/äÿþ2Ù12·ïµëÿ1óÚD€¢vyx.žŸÈðç#Ù}ûÊjÞ@dªƒÁŽœ弌~1’½KäÓî:¶®Kµ•®ºù¯ƒ¤aT¶­Ð}u! Ë ¨Už³ÙLä…ÈèÕ‘Œ^Î4~û"²x!2;žÉþ?îÊá—G•¯uÕ`úÈ6XôÖý{µ—:þpuñ!ŠÚäá™ý?<Ï0¦=ûïBŽ¿z$³ïfrø°zxåÍ×¾†¨f¤½Ê¾Ìæv ]üìDB-Váù}&!CCÏžžÈáÃàðt •¤oi“™ƒEoÝ¿'oÝ¿'""ùÕ¯£Ž‰ïا¶ýSE-ÉÅéyãò®\yó ‘í³×æ²29>žþ{Vó´È!5”¾ÕDó èO¾9–ã““Õ`Ñd<‘l¾×_‰¨+;öæüÐcn[/d^›PÔ&Q‘+oîZÛ²29þêX²ï39þú8ªÙ®¬èÊÉ×3§î!@{nkk«í" ŸS7 =¶{y—QØ5ÀçÔ]ô€ J4ábÀh= @Ç,—˶‹€@(Ð!»—weö$þÏh}  D€€ J((  D€€ JÛ"öo=ðM°ËóqÛv›,nvÅ|ܾ7 Ûòám—ÖÎùþí´tðä¨í²ÀÚù®3³†õIEND®B`‚ghemical-3.0.0/docs/user-docs/images/add_hydrogens_select.png0000644000175000017500000003607011563552731021202 00000000000000‰PNG  IHDR*[ÊN¿×bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ ;Üp Š IDATxœíÝMˆ$Iz§ñׇˆ€*¨„T‚*Ô0õ0 Ó {Ø„:hn; ƒFH—¬êƒ®:ïe¥¹i‹ »ê¢E£Ã‚ö¦=›sYºVP:4Œ ‡Œ:,dA7dB'D@'Ä¢,ÒÃÒÌÜüÓ^s~PTF¸‡»…{„û?ÌÌٟ͋ÿíV”™­¾¤.€A¨u”ºCØ<ý(uz5{û&u@±óE¦uÜŸDP™½}#³Õ©‹Ñ«Íâ“ÔE¦pÌ™ÎqAEd:;À1L&TÆ^ Ø´ pý÷%""ó¿ø¯ÎÇc£éý™²” ¹ºXGÌ2Êï³Ë÷Ú~¾²ùÊk/Ë7ÝU~ßw(T6­úúÜUmߨyë,gìÇ|š~zUçÃÖ•)TòëÁÏwòHÅw]ÿý_ vBb=}Ÿøb¶_Õ6u.öCÁÄÖG™ëlßмu÷ÓŽù"ý÷«Ž›u>/M¾›eƒ•¶…5ó‡ø–5Õ¹/–Ÿ÷í—òü1ËrPB¯s•µ¼ {™ö:cç­úµë+Õûj·œÐ6±§‡öCíçzì*O“¾ÏWÓÏ½ÜØíSÆòkÍúcŽUCà˜š¡ºÛ4fþ&ËíS“åOõ˜¯ùŒ¸Ž±çÿÁ‚Н@æÃÞç}ìÕ€¾*ÀЯÐA¦|«ó‹¦éë\ëvÍëz;¯Oèz_Ch²=›l“.ɾ×V-«ë“ÿÇ—”ênÓØýÙôûÞFyYåçl1áhìÇ|‘ꦟ&?0lU? b—Q&MÊTTª 4ô Éú¦P Øå¯_ lòºœøÂJŸï+ôÅMµ=S—¡M kßåuÕZùæ+kZ®ª Zg9år•°4Õõ¶®ºªÖ=…c¾Hõq¿ª6y(¡š¼Yw¦­ó¥r5`WÒ6ËIýEé[Ó/aÓÉÛsÈuµ=ûæéâ=T5«¹ÊÒeȪzÿößåš‹\~`Ô-ï”ùcST´~ˆíêÌ)WVUv±«Ú¯«hýu%‡šÅ&Úî÷1êjÔ ³UÁ¢IÀ«ÛO ¥Ú!eäÇ|‘¸«~´|_]å¨ó¹¬FÅ×VÜäKR÷MO¡0æ×CèË>ÔºªßBJU}TºÐu_—>¶Ÿ¦}bkºý|UÏ®~Êãš»ßû,{›í×W™l]÷ñ¤ºå¿ï}ÕtÞ:ÛuŠÇü®uÙdê:÷Ä~¦ŠÙŸÿí¶uI”{5à”þé›}B6ÈÇØù"Ó9îÏV_äÝ™6ÖªùõÐ aŸ)óE¦sÜŸDP™ÎE=Ú›¦4Ã1<&Ñôò3[}!GS¨y*D„ ÒA•—Ÿ½LUyþéóƒÇGÛíV^ýÝ+yþ—» g/΂ (ŠB¶[*a@·Š¢ÙçŒW÷JŽV¿[Ý›qõöþs""ç¯ÏƒÓš0Ã0ùä) ƒ Ô"¨µ*@-‚ P‹ Ôê5¨,Kç¿òt×ß}—)öqÓ2 õ^Úð•1¶ì9¼G@þœwO¶¯enãbuÑhšÚËÀØ9ƒŠotÚWŸ¿êtåËÅÒÊ¿ØS†rùÌߦ\v™|Ï—§•§Ûï=ô8´ì¾Å쇪m@SΠÒu ©«ê$Þ†9¡úEh=®àâú;´ÌºïÅ·ž!Ô){ÊrÆ«÷ûÄ­éV® ˆ)Wì<1ý7𦮷]—ýL4íWÀxô^£ÒôFgÍ>›Tªš©\RÒ>*!}þB·k3êÔªô¡ªf'e“ 5%€”TöQ±åÔç¡N DL`ÒôÞcû¨Ð•5*v?í'@»yÆ.{›÷’òjš:eçª@z­Q©:a•§Ûóö}²‹Y_ò5}/uËÑß2cË>T9Ó¦²F@ÄTVoW­\5ºíé³ÓÖ먫Έ»)Ê7”˜í0æ÷ȇ3¨tÁW+ct†êª*SYŠò %f;Ôyÿ4ùúÒ[PÑx¢×X¦Ø€\ôz÷d€6*@-‚ P‹ Ô"¨µœWýT³Qg<€¦î•¢(*_ôüÓç½ ì^PyùÙËå(ÆhÕJùf¸"Ž R5jiQ²Ýn»-@­¢(ÉÔº×é›ÂȦRKÕWnj5 ôIDj½ ¡}º¿Üv»å‡00‚ €¬]|=L“Äù¯©YR` 5*ÊØ½cµíè–j½m¥.÷TöWêíŒ~-ž.D„þ‡Ð©Ó R>˜uy žÚÁ®îUU1cßh^o[©Ë=•ý•z;‘š€`öÕÄŽµÈCç5*Ûí¶Óqì²ïƒÍªå­«å´•ê ŸëÉ%u¹§²¿RoçÑQÌ1O¶[Yˆ‚ÐXzkú15"±µ!M«–Eºû¢iû¦ªIʵ+u¹§²¿Roç±Ðv¼´ê%¨˜*⺿¾¶ÛíÝ/ŒƒÊ5 =)‡±s•¹nØËi½m¥.÷TöWêíŒþ­V»ÐTÉk’—Qt¦µ¿hM +‘Æ_Øó×çröâ¬Õ¯¢r€¦a/—õæ¼½R¯èõæúùЮ÷?Ž„BžÐ«ÑÝ“ë¨]»Ñ°&¥«/zªÆÅêâÞí †¶:ÕzÛJ]î©ì¯ÔÛy¬–‹¥\¬.dˆVua‚)  •3¨øî÷óêóWµÎ=àPª`@A®œA¥n A7Ê¿^SÕäôk9u¹§²¿Roç:¼¿j¯4Zíòƒeåèµö<®åtÁ„”¡‡_0ë´×Em rÐkÊÆvy²ÏÉã¹üörëm+×rçFÃv6ábÍïVQ!Ed7 ¿™×µœ.¸BA×!Á5.‹o‹§ î]„,Œ¢Fž̯iG¿}CUÂËͯWßÁeþÕ|7ß“npUë=œíþPvLKµ½b×ß—¡×›ãçcù>p˜ÿc_ÓGƒµ/¤t^£—åÞúŒáÄMJYã/~‹±\Ú¬ÊÓ–ïvå[ÿh-"í½Æ®w±ØýJÛ|·‘9I^;‘j{Ŭ?fú˜,KÙ¾?µ§þ|¬LmHQÈê닃Z’fÞ•ÈÁrÚªªIéêóRg\ÆpAN’Õ¨tyy£}yr›û’¤OÀþ¥³?Ñö|ÂKµÞ¶R—Û·þ!Ë`¯7ÅúÚ ÒØ;XĆ{ž®ú¦T}ìþ*]ò-w.|$­Qéò@[m–›òòd‘Ã6æ{¿Âž\ÈòÝRæ_Í;kʈYïjµ’Åb!³‡3Y­tüòJµ½ìõÇ>Ÿ;»ïCyз•èû|”ÅöQéÚÐ?f<©òeÑ ò†\t^£Â½@Z2›Ïs¼ï«¯Eñ›"¸|' t{¹N<¦Y̵}|WYˆÔ4f=öºê>ßXi;»ÞƒY‡öÚ¸¡¤Úun#  Ö¨p€ª¯|Ðߟ\¶" YÈêíª·áÊËË5}9¶?ÝU÷¹Þ¶Rn/_çGSãêv¢´—m×}¾){;›÷à3õ°óþCŸ§¾Ö;õý‚|9ƒJ׫ڶÁÆ|¹r½<¹ê½Å¼÷&—†¦Zo[¹–»)WÈð£ºÏ7Óçb¹XÊú»n;1kfšÆê\‰e×¥Å]   w?jEÛí¶Ñ¿=ØŸ.öJ©õ·½œ¡íO$E½ƒÕü«ùþ2Ü&LóHñ›¢Özggw—¥&0ôö*îòßvÝÈÏüÓ‰£îv6ï-õçcPE!ÒàrñƒÏÊûeÔ±xºØó¨MÁX T†tQêHV÷ï¦NŸ¶ú%´Ü×ä¬Úû+_Wº×Ô4YïÅ“‹}`‰YïÁ%Ë Ö›ãö*Fìþå>!®Ï’ïµ¹(oç—,'ø| ©És̹ á¤IãUZ@ŒÁîžÜg'ÛÜ/O¶í˜Ç½ ¥`½mi,w×Í+¡åÝGõ49þ4¹\8v,­ßc Ö Aeˆ/JΗ'Wµù_ÛâÜ6ëMyÉrªíÕD{í³½ë>?$—´÷%æ²àÊe— >ƒÕ¨ ^Ý]×cªÄÒrb{¹w9Üöö¨jªÃ·­ë>?$ eJá¢î2쀌A2E@ÁŒ²3-jTdíü×ç©‹ GÙŠk @¾œAåüuøJÕtÂwzÖ½ 3ÞÉóOŸ÷R€²{Aååg/S”ctNŸ¦.B¶RܾýÊe”YúÜ *¾;'#^“áÐâé‚“Ú¿>'¼hd»'OI¹ÿ5´ÃU?=Y<]È—¿ù2u1²óñO?N]€"¨Æ_óEó'€.T '¼ü0t…!ô€Z V£‘i†ÐhdZÝY.–­úá´}}[©×`Üî•ívË8*-œ¿>ìŸ|ü‰|ñåI–Ñź§ÂœÈízWNû }—B裒±”A!Õº—‹åþ_ì4ó¸ü|¯÷•#ÖÅê":døÊä›f—-ôz×ãuÊMTøäãOöÿ›¿]ÓÊÏ…æ­šÏ7͵®ªå×YwLyë0¿èÍ?ûDì›VžnNàM_3où5vÈé»"¶l±Ëºü`c•DÊM'v3Jì4ßòb—ñÅ—_ôÒ|4T³Pù×|Õ/û:óvõz;ؤìËZ¿ïyMå0]•DB'ò¾OòC5Û„‚Pa¦í¯ý:¯™×ÕôÒôd_ UËèªÖ£Ëò@S•©Û”R¥4ª‚E×뮫‹Žžuú‹Ä¬«N¸èRÕzbË”ªüPFPÍkcO}ž<5ž˜›†òüöë r0š b~ÕærÐí»GhùuÖÝ$\”ç·_ß&¬ØCí~#ö´:'áвcæÕr¯ó> £*ËÅR¶ïÿ.”œ0ª˜¶ù;f¾Ð¼¡ùª–Ñ64Å–± UÂõØ×Ö7Ì:ë¾¶N¹CÚ”¥î¼åé]•êÊ>¨Øý¶’WXiú\ìòª¦Å,;¦LuÖÍ@q€XY£²\,e»ÙnEø€ñÉ6¨˜b˜°RÈ4ª¢Â0Y;¤”åRº„Àd×GÅRŠ"‚ú¶¦+« BH™ö+L[6M?„¦'‹•\CÊÇ?ý8u²³z»J]ôàôÙ©,ž.R€r¯>uï9õA%×"ÂI(ãû  ÕA%çbЀj¾óºÚ>*c) •A…D”‘](±R˜uA¥Ü§Ã„B Ó¤.¨Ø)L—ª«~ì+d(L›ª bP€ˆ¢ ²\, (à€š>*„`STl A¨EPj%½êÇuga:Õ#ùåÉv0á2e`¨kú¹X]Ô´˜¿íçÌ?{¾ØÇ@¿ä5*1ʵ,v 50Œ—º—rñ…»&¦Œ0@ž²¨Q±ÑŒÀ4dQ£RfjGÌ¿Ð<ò¦.¨´i¦1áļÞ~ ò’¼éÇ®õ¨ vM a€ñJTbÂ…kû¹Pg[ ùR×ô`T€Z A¨EPjT€ZÎË“Ï_Ÿ]€{¼ã¨<ÿôùå…ív+¯>•ºŒFpÀ·‹¯,-Öù¯©… kôQjT€Z A¨•ôîÉM-?X<¦Ó/ã”]Êòƒ¥l·[Ù]¼Ýnï0Y;¤E±ÿ›°ÀødTÊ!Å ¬0nYWH1+Œ—ú  )a€qRTbBŠaÂJQ„FBíåÉuBŠˆìŠù›K–ÈŸÊB QT)ÀPT) LUP¹øúbõNB ã§*¨ˆÄ…B Ó .¨ˆ„à !€éPTDÃÊ/ÿú—òË¿þ¥E!ó_þFD)LÚ "r¿fÅ„”_þõ/ )L€Úß  Ó¥ºFLA¨EPjT€Z A¨•ìòäåKçó\Ž Œ¤ã¨J@ˆÚ¦SãR®yY~°ÜÿsÍzÞWƒôR=2íòƒå¾Ö¥üwhZìk€~IƒŠ«–£$|‡D¬ú¨„:àšiö2iò _ª›~Ê\Í8e¾æjXÈ—ÚδuÄÖšP»@^T÷Q±Ÿ/Ïo_|}ámúq½ä#YP© ®éös1M<„ò5Ц0N A¨EPj;Óžÿú|¨rÜã *ÛívÈrÜã *§ÏNeõv5tYÐG¨EPjT€Zjïž¼\4»àÅŠ!ó µAE¤þ•GEQôT‚ê "Bø`ÊÔšs˜*uAÅÕ7ÅhÌ绫|=z$=’“''»“çÑL.o/w'Øoeÿ-žÍd-k™?œË‡ðáÝÕ,GwWµÈíáüfºÈûçKÓç?œËúûµÌ8wN÷½>¸ÞÛëlÊÏÏgsYß®e~ôþÿÙ¼Vy}Ó/¿½¼{þö®­Ù¾O?‘Íf#ëk¹úæj¿]g³™l6›]•‡Ç­÷-€f*€"Çw:Í/ÿãÇ2ŸÏåøÑñ®¶äÁLÖ›]‘ow?×ëR³Æl.³ÙLþì/þì LùÿËo/÷¡hþp.›ÛˆÈn»ÝмûöˆÈ>”¬7ë]è»]ïà 5*@:ôQ4¹Ýý·ÙìN¦W7W²þ~-W×Wr}}-×ß^Ëæv#ëïÖóÙ5ëõúàù¡«ú_vÍb"wáäêæJ67y÷î\}{%—ÿïr¿}åVä껫ƒ×]__ˇ?¢Ÿ 5*€6·ï›16w'Éùü®&`s³Ù…•6²ge>Ÿœ¬‡~¬éÿÍÍFŽŸïšd&Wßíúø\í®–ºúîjÕÏÕÍ.Î8—«ÍÕÝv½ùíW¿mµ[4CP¹º¾Ú÷E™Ïç»KeEváåÁ®ùbs»Ù×°ìù¿5ë›÷5ß\Ô(}GÞÿÀS#á}ýûæ_HXoJ}N\ÿoÖá±¹_ÞÊõ[å55(ÇŽ÷d/¿¹Üm}³Ðæv#××ײ^ïFý•ÛÝú×·k¹ººª½/tƒ (²Ùl~ù?<Þ5÷l62»žÉ|6—«›«ÝIô}³„9i_o®÷'÷7_½©l1e]ÿ‹x^WnNñ…‡ÛûÍQûÐñ¾Ï‡/t”;°š×µ­É8ý§2?zσÙþÿËo.w5Aï­×»÷oBŸ)çÕæê~ 0•Ažað1V———ròäd?øØÕwW2û~&òÜ]}#»a~ñ‹È~¸ÍÍFÖ߯åË_3è›±^¯åòÛK9y¼Û®³ÙLäFœáéêfWsbÑ[ßìnTx}}ðÓ¦®3mUH‰ÈÑ›}#—ßîš%ÊÍr»;ᮿ_ïš{Þ7Uˆ”Nª›µln7wl!"»>>››]s™ÙžûíTª™2ÛÑ„–õf-×7×rùÍ¥¬~·Jù€ISU£s×d3w@ÆX]^î‚ÊÉã“»»úÊa3ÉõÍ]3Ïþ*–ÍF.// *–ßþÛ®éhýý.È<>Ù…“#qoWÙ…¾ëëk¹¼¼äîÔ@bjjTbCJy:5+£7ÿòF®¾¹º«Y¹Ù…sÝÿò7—Ünv?¯¾Ù…®N¹ï·ÿöÛ]_Ÿ›\~{¹»ìûf}Pcuusµë8{}µ¯I!¤é©ªQ‰ïr±º f£õåo¾ÜݳçýÕ>³ÍûŽ´×W2?šßëKajR)~¦fåÑ£Ýàmó‡óý°úûqkJã§RTS3R7pV0foþåÈODfW³ƒ“êõíõÝ¥³ßïjS)qLXùðGî‡Ó7WmnÙŽ€6*‚ ·7ÿr÷«þ£?ÚÝy6»ëKÁIµ9¶uAeñt!«·ô°l4E˜"5il –Ê ²xºH] €Ê "BXJ‚Jy·rGÚª°Òô²fAEä0¬|ùîn¨¶xºØÿ+cTZÆOÕåÉf·OþÃ'•÷ú±S«Àø¨ *"‡£ÍÖAX`|Ô4ý”ÅÜ”Ð5ÍAŒ‹º#¦vÄÔ¾”Q³Àx¨¬Q©ƒšÆ+û "ÂåÉŒÕ(‚Ša€1RÛG¥  ã2š0> A¨EPj%ëLë„N±@$aPñ…k†ª¦×ð÷æ…®ã›f—Ÿ'5ã¨øBJù¹òãдòcPÌß4+5*}ˆòò'ä)yP¡–ø$ *„’,¨R@•¤i}Wâ˜Sî [~¾juã¨Ô™Ï7Íב–0@^’w¦ð!¨µ*@-5#ÓNÉËÏ^¦.0¨çŸ>O]™"¨$röâ,u€AE‘º2FPIhõv•º@¯Î_Ÿ§.€ÌÑG¨EPjT€ZYßû`œ²éLkB 73¬¯êžJåmÊöh’EP1'OûÄkrÏ$RË¢éÇ>‘rbíV¨Im¹XîÿaÚøH!‹ ‚4LÍ•ùÇI "ô0¬,š~О}r¡V mÐü `(•‰hzRá×3|+†@PA'"øðÙ0„¬ú¨p`L‹Ú| EMP‰9 .ž.dñtÑz9ˆc:Кœœ BH0,M?Ñ'As»øŠ1A8©ªÚåé\ > RHTÊ#κ˜ƒãÂLßne!"«·«Êñ?8°·äA¥M ˆï5„”;ç¯ÏƒÓOŸTêKTDâÂÊju±«U) Yæ#¤:{qœ¾z»¨$Ô§"¨ˆÄµ‡JåL A35Wýز *\z À´dTÀ´T€Z VAÅî›B_¦!‹ bÆYaœ¦$‹ "r7> !€éÈ&¨ˆRÚ(ß¹NÓYÍl4ÕšR32-úãj.£ z¾,¹IDAT‚ÊD¹‚‹oZì|®iô-³/Ù†DP™€rgd×IƾPšÏ7­Íݱ¡ûÀ*û¨Ø}šôsh#v=MËã{]ùù˜y´+‡†!Ê͉lÜrúìÈ[eJÌ/휹~ññ}¡œ `Œù{@ÖM?æ`e7®àk†ˆiíÛç"Fîa&¦¬±ï%—÷ŒþñY0„N.OvõU(75¸æµ§ùž÷½ÖxbË`c@¹C]Ô®Pó2nSÿŽN'iË­.~¹ûæéóàXÕé³<=·0ã kö>‹© ÍWµŒÜ¶ü؆ÔËU?M~MW]™RwÙuËBr )FÓi?ZNŠ€‰á°¤ÐyPiÚISÄßѳɲëTËËÍ9Œ06jÆQé3L9xœ¿>N?}v:PI¨¯ó âê«{ÕIUÓOÕ²}r«š’\Íc 7g/΂ÓWoW•€új׉;æ9ßcú?ľ¦N_Š˜ùÆÒß‚ ÈYVwOÓBPjT€Zj®ú™¢ª+r˜:‚JBUWä¹{õù«ÔE9‚JB\‘@}T€Z A¨EPjT€ZÙ•òÍÀ¸eTr») ËÅòà_×Uý @_²Ge¹XVjrm³¶Û‘}5*å .vm‹ù»ü¼ý¿o>ײí×…^}ØWRÈ.¨Ø'HžÕ.VÁídjWÌ?3Ÿ 3æùòs¡eØûÈõ|Õ4èž0¤ì‚JùDIíJ¼r èãD³/Bó°/óBX0”삊ë×:â…j7†®ê38¡ì7CȪ3íâéB¶Û­¬Þ®B a%,&Ð¥Ú†f½„Îü°¿ !¯•¢Øý’}êë—²«yâû`(ÙÔ¨,ÌIm»•…ˆ¬Þ®’–''®¦»¯OyzèRæº5vç\{=vÇÝÐú¨uÑ}`Hj‚Š9 ùþïê5SÕ´éÇ×y9Ô©¹êqÕ´Øõ`Xl)¨iú±û›Øÿ¯ÌA²(öµ)U¯Az4ïÚPS£bjHVÚÎ_Ÿ§Ÿ>;íuýUÍJ„¨*v3Í:õœ½8 N¢¯û Дê â %œôê¡Ó1 gjú¨å{¸B }˜uAE$ܼC Ó¡2¨ˆøkN¨Q`:ÔõQÑ:Ô{ª®È`êÔ•*cºê§êŠ w¯>•º2—]PKHኪ¨í£@PjT€Z V£Î´¡±L†èì{åOÓ+„R¿?°Ó(¨Œý&¾÷Ã`s «—Ë“Mx)‡˜òIÞtÌt;$øžwÍSžÏuÏ _ê¼§¹Vï%çmЩ·qT쀪…ñÍZFÕ²\A©iMÐNÀ®˜û{Œ_oiË'Á.†ÅOu“©œÐ—‹åþŸý|yºïuM—‰|„ö5ôe°‘i›àBMBM–]· S )]Ôx5]&ò¾0¤A‚Šë$«IÓOÕ²bŒí`lo—:ï-¶Æ«É~EžÆöý —ê{ýôy0 -{Œáª0×G•>Íã6Æï } *ö¯m»£kÌëB}TB˶;×–ç ñdÇp`vmÿ>Þ×¶üØ¿†Ð:¨¸V1ϙǾç›,«î²}¦~nòK¹ªö„_ßã¾0ÕM?FÝÚ&×ë|5[u— ýØ—†DP™€&µR±ó…šR]RŽ~°ß¤ÀM €ZÔ¨ŒÜùëóàôÓg§•€ú*#wöâ,8}õv5PI¨ 2r@Îè£Ô"¨µ*@-‚ P‹ ÔÊ⪆b`šÔûfvÜÜ€éPÝôã %öÍîÀx© *v!˜tc¹XüsM½¶‹õP‡Ê¦Ÿr­I¨V…& x®íUg²­)¨¬Q¹;1r‚lÏH|Íh®×ãPÍŒ=­šÝéz[Æ,ý— €¡¨ *¡à±xº‘ûw.׺pàNÛš.ö[þ+† &¨TôŠb÷¿§¯EÔ2Й.¶3û-oì3CPÑ™¶êDµ0¿Þ·Û}ÍŠ }ZÜBf]WÕÕä²föSÞ)†¢¦Fýr…•ª+|'#{YåùBÓDîw® ­:±¿ )‹ ²Z]ìjUŠBV$«:ÁÔ¹$<4O(àÔ)taHAEÓë×¾ýxµº¨ )ôu`\ÔÔ¨ØMuGŸ%¤¸¿>šïôÙ©wÛŠš "rxˆ{’äDêvöâ,j>û²ï2¶- UAň¹l•_ùqBíTôQq!ˆµAÅÕ ¦EmP1|WQÛÀø©ì£b«D,W±Wä0UY‘ñ„“²Ø+r€\½úüUê"È\6AeŒ¸"€0õ}TÀtT€Z½•åbyð/fþ˜i±óÕ}=—B Ko}T\—·¹¬8öu®{q93yê¥FÅ ìËŒÍß®qR|wSö½¦Æf Éû¨øj?\aBä®f%*ʯ%€¯äAÅ]… WkºÈtÂLÝ>CCÐR€N£GÅ„˜°2•ÒeŸ!†¼F¥å°¯ iJB}†ìùbúÙÛóø¦ù–g/WSî°_¤ÐKPñ…ƒ˜_ðÓ(÷ u66'«Ð<±áÐîoTUèÀ~0¤Þš~\'š˜f†òëBóûBëù)5ñô¥¼íBMi˜¾O†Òk•ª™¯#mU3EÕ?]<4øµž €!Œ¶3-òĉ/ì+CegZ õêRÛÛ$´™Ã"¤ 5*QÕgÈžÞäDäë_d?Û —“¡NìC"¨LHÝ>C®ç«ú µ]'A½Ø7R é¨EÊÈ¿>¯œçôÙé% >‚ÊȽ8«œgõvÕz=4 ú@P¹.B©ÐG¨EPjT€ZYôQñPJNÆMuP©º‹rÌ]–@¾Ô•˜;³šéÆIe•º·wÝ'äO]P©RÀx© *mC µ*nUÛ¤<}¹XÞûWõZß¿®Ë9Ô2š®ÃÞŽ€öÔöQA·|!ÐuBµç Èòó]ͱÓ{€”ÔԨĜäO²xºÎà ¢{mjªÌë|µ6®y«æóMk².×k\Ë\ÛÃþüƼ—˜÷_÷}ÀØäU£R»ÿ #µ™“««¤ï“\y½¾2„^» û=V­k¨þPm׫å}@ jjTª,ÌÉt»­¬U.å“h'Ô¦ËL}r…Ä:á#õû€>åU£_—~凔Û)¶'UsFì>u¶eÛ÷BÓ€©Ê&¨¬V»Z•¢UÅHµ„½ªúr” ¹ûo1A&T>ϦJMÓOL_‰Õê"RÌÁÜ,‹_¡÷59!k~¡}™j?7 7åòÚˈY&ŸkS’MJûÀžúÄš3ûDØå¶´©ïÄìš/fšÈýε±ï£¯Z•ºåhóz_gb ašPTÚž(8»U…¸®:»Æ6YĆÊPYb_ÓdÙu´-Gì¼MÖÓw'f‚š¦ƒÑe‘ AôQTDê‡Ó…“L¾Rï¿Ô븩jú)+‡ß ¤j:ò‘z¦^?ÀMmP¹;yøjW8¹0nªƒŠA `š²*cuþú*¾@b—oþ¶C„&ß~.ôš&åz¨ìLk‡óØw 3ol𠤕icn{ßÔCÊüáüÞsëïÖѯ5ó–ÿ͇iú‡ü‡ƒÇ¦ ýTÒóOŸ§.ZRTú2ÅbØ!"6X>PƒB“¢(R˜LP™rH©b‡–:µ("„™©ˆÝß d ¸EÉx ÖGÅ׿$&@´½:‡Ò=`Öß­MK/ö7€! Z£â +1¢üºÐüMÆR™J€±O.]Ö‚V¦'TÓæû%{úì”ù˜/Ù|È×àM?UÁÀבÖwisÌr§FBšöQ||Ÿ!_?»Iˆù˜¯Ïù¸!æxL¦ €nù‚nlæc¾”ó!*ÇQA:Mšphö™jã …•‰õQ)÷1‰íoÒä5‡ªÂÍ6t‰ 2uÇK‰ù»jƧÎ>æf›H‰bŽ A@/¸Ù&Rà†˜ãCP¹ª/íÏþøg•€ú*#WUϯ^€f•‘#ˆ`¬|ã¸4#ˆ±…òÅ 1uêê†@ö¸!¦.]Þ’ ¢¿€~„n¸i‹øGn¶oÐi¸æ7ÏûÖa¿®¼ŽªeN7ÄÌK×·1 ¨$ÆmÈ1¹U³ûBˆozÌÆíåÄ%ßrbî`>5l‹i"¨$ôÑ¿ÿˆûa4RÜ ®«]ƒ69!Öü°îGà†˜9ÍוÑ•òÝ‘9ùÓàëLë’ê×x“0j7ÄÌe¾®dTê„B ÃÕg$EÚ¼.uù5↘yÌ×ÕAÅ”íöî¹¢Ø=ç $« Y.–„µtÕ„TµœØÐA8ñc»LÚ ²\,Šaž+ŠÃ@B8àâ«U©scM{zìM=C¯‹)s×L7Äœ&•AÅ)EaתìÛaE„Z•ršˆ®pÚgm÷gÕû®ZþŸ§.Ö1µÏ½ï¤UçÄ{Ϊå6™ºÉgÕ2§†bæ£Bª *6»fÅUÓ‚0×Il '¶Ø÷íÛvÈéËØ÷CJ}7£ÐL£#r§Ñט`ꂊ¯ÉÇÅW«‚C¾“°ëdíšf^o¦»¦…Ç,ÓWN3½<-¶suè}wÒb¶MLÙc·›ošk;YÌñgü³ABDÓæqÔ_Óº8Ê'Ř“aËtèCËlÊ^\aÊ%¶|±eo²Œ©5yÆTïon6ƒ… ÐuAåbu!EqX«²«99|,²{n*æÔúØÎcÙw¡÷Ñ÷{Ë6¬‹ª}hÑÅ•\4†© *>±5(SúU©Aù—|¨éFƒªÏFÕ{’¦íÀÍuO(tOePqÕªØìÚ”Ô'¸iÚ'H¬ÊX…›mbêB—˜sùy<•AEä.¬ˆÜïŸb¦Ûr9 -TÛÑWÿ—¡÷«\Uemfú~_}^ºÝn¶‰!¥¸!f¹Åw×옛Uv5Øà˜© *"waÄ–òs>ZÜ©¹:…ºNà®i]­³Í¾³;Æ.Ó÷¾»üœø®ú©*KUXrÍWµ Ÿn¶‰¡¥¸!f¡ëÞÈrŠT#æ Ç±ZÌI=æù˜K»Xf“ycË`ŸüÛ®/v›Ä–½I]¾À°ÃÈ"¨ …¯ó,jû¡*¨4iz躹š†æý Õ¼P+Sí© àRç Í)uÕ—À¸˜¾'¡bRG]P1cÆ‘0óq ¦'tŒ°oÍt©Î&ËWÅNÃ!UM?&pØ÷/©šßþÀ´q<—˜«ê0^ª‚ŠmìJí—Ô¹ ’컟“ëRhÞ¾î;?¶ñ4©*cÆ€X›ƒnÅêêÆ‘œ(ÓcLA%çŸ>O]`RbÇ¥i:Ö†UV¸}øT ¤Iç[~å+´­©­‚ ¼çjêñÉé&—cÚÞܾA‡®û_vry²¹L¸ü¯Îk»œ/öu1—/rY#0|—Ç2MÕ¨h¼9šˆûW–²h't£Mûù¦7ŽìúnÛ¨í;mƒ5ý¸.ù3ÏU];_S„ ?u;È6½qdèõú7ÈÈ´æ¤oþÙ¿lìK›ÎçSž‡ +O€þuV£[Òç¾N.U8NL—ëÇ1Ÿ…þôÒG¥Mǵ¾:ׯ„B €X'¦Mk¿Ì1ê¥é'¦9ÆÅnÒ©ZGì¼åPÓ²Ëwl¹‚ý\ׇ×½úV»QŒ£B’h{+†r?Ì:·rhºÞ\ T\—ü••kRB—†æóqí(šxm´é—Yç¶ è(¨Ô¹Ä¯î|¾Kcwnìzë.0]Uý2ûjz©ºðcLM>Æ(š~HÅRýèãíAÆQ`ªº®åˆí¾0–ÚjTèP~”]¾¾ízµ"¨ÈVMæ¤Í@c¡«J|óÁ­«~™¡¦¢˜!:ê<Ÿ3‚ €,ù:Žñ@]Öô=}»`¼è£`4\'qßàWåçCƒoŨU^V¼ª¦Õ*{hÙ¡u׸ è5*²äºqiYhð+ߨ«Ääú»Î´!„¶E÷ ô…  [ö ¶éÍP»ªh;¾SŒ>ûåÔÝ„   {¡Ú‰®¥^æÐýrhÚAjYŠ9A÷qÏe™]Ñ\6ÛùëóÔE@*&Álª:™6YfÓ²´Y¦k9]¿FsŸ”¢(R=QT|_­_Ãpõ§°Ç¥ð ~åºsmÝiö2ë”5¶œ.±ï9¶¿IWï7¶#qNŸÞ[Çùësyþéó^׋a¨ *UãÚtž0mš~b§u}ƒÕºe©;_Ì€b¡²uñ~5Üóã¡2¨Ôi{&°0^ê|«[Mx±ºèôòB ‡ª•˜ÎnÔœèÇ@/5AÅwß‘íöî¹¢p7õÄÞöäC]Ó±\,e»= )"²ަÆOEŠk4I; Ø¶Û]í ½Ë]t @—T•¢°›~îײÐãìÅYê"òêóW©‹€Ž¨ *vmŠ«é§ü·]« ­ÕÛUê"µ}Tš ß ã¢.¨\¬.¤|Ëûö ö4{à7 ã¡"¨„lÛ5ïÜýsõO)wÆeð7ÆCEP±Ùµ*æ’d»Sm9œØ¯ùST\wé4µ(eæ9×àpÆEÕU?öè²æ3mù90~ª‚Šˆ{(üP8áîÉÀ´Ù}Òº8PC è¡.¨ˆ6ù¾{„q\ÆCeP¹Ù±o:€iòßÍMíiæõöžòP®ão“€~¨ *_~M¹î#æ{lþ¶ƒGeèžš«~`h] B Ð/õ5*ÐF@2ˆ$AÀ¨Qkä¦YòÝ.#TûAí jTdËVì1˜|WìT±;×6Y€öz *®_±_ðØ^ôM{Û‡~qòRõõMÝ#,öþa/€þõZ£¢u ¦ªAä€I›~\Õ©±ƒ-Õ”)¶,B¸“,¨øMŠl©î LuÊtè5¨tq³°¾!½ë£Ò¦ÿGìk뮃€nƒ5ý4½q—«I'´Ž¦ËÐó×ç©‹`DF;ŽJ(ˆR€þœ½8K]@^}þ*uБdA¥j¥Ð`K¡;žú–góÕÌ`€vVoW©‹`Dz *®~ÓA”|c—S6 ÷újT€Z A¨EPjvãÖÕàMÖëZ~èÞcš#¨ÈRh@Ǿ˜B†CÓ€Ñpˆåb¹ÿg?_ž@'‚ €Qð…3rµ=zµ=½*¬”—3?€nTdÏ×SÕO]#¤¢ŠO›˜@þT0m A¨¥¦3íXч€æî•¢(8¹¶`®|xõù«Ä% ÷‚ÊËÏ^2`S /?{™ºŒÆ½ ÂX …ív{/‡8û¨Ðô†äkÍ᪠A¨Õ(¨”ïj\çÇÚåô^º(kÓeôñº”ï§Îrb×Ñv¾yúþî ùÝnr—tÓCŠì”,ÓÊ¥_Ô匽sxßejŸ˜€K0¨˜¸ëW–}`ñì]˰—Sçu¾eØÏÕ™çbu<(—ËáÛm´m¶CÕ|±û1fuÞK¨VÀ·Ÿº|?}}îc¶[“r†¶Ch¹m·aì>éâ» >Þ‘ií_uæ±ùõãšú»êq×¹Êi‚¡ò…æ‰Ù¾ƒ°¯Ü¾ùb—»b·kù±½ ê웦û¼ë÷3„&ŸªrV½÷:åéröý]N±ÿä¡“¦ßÁ¥ê ÓÅA©¼Œ˜r´Y§ïÛôµmækªíòS¿¾éòÊ¿êûøußæ³Ñf]¬¯ëïa×Ë0mÁ{ýtq0oºŒ)UÛµ=euš[ÚҴ͇c§ej)€<ƒJÛƒ»«Ú7ÖÔN,¾ªò!kb4mó®Ëâúìiz¿}ÐðþÚ@¤FÓOÊŒ–ƒ[U‡Æ.—Û×|m—Ñöý6y}ïÇôÁ(ÿëÒŸÑ6ëèb@ Þû’AW“DL›¹½Œ¦¯«³Þ.¹:ᆦû„Êí[FÕ>ˆ™/v?Æ.õ bËz¯]¿Ÿ¶\û9TΪíâZ~L9›®£ëmûYŒ)GÌ{§c-£¸øúb{þú\žÿåsyùÙKyþés±Wù ž1lË.CRîÛ¢®)¾g‡Î_ŸËÙ‹3)ŠB¶Û­¬~·’ó×çÝ\õ3fT‹Ã‡Ïô/ؙͫ¼/×_Ó}}6¦6¦È”Þ+€ú*#¢_9oǾʞó6©kJï@}Gç¯Ïï=éz`(&‹=ÿËç¶ÛmŠòˆˆHQw‹É¨t$ÿù§.À=~ýßähööMêr8ý:!åÖ†Ž8IEND®B`‚ghemical-3.0.0/docs/user-docs/images/traj_dialog.png0000644000175000017500000000540511563552731017306 00000000000000‰PNG  IHDR@„ážò¼bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ7±Ò] ’IDATxœíÝOhçÆñg‹+ˆa9H·¬É!ºU,È¡+tˆÁC/öP99$n¡uÒ‹lŒÕCA9$RA¦`p·§®ÆòÁE=Øh)ÝBƒÆƒ -Xƒö`PòºëÑüygwgÞÙù}? Ðììξ3óî3ïûÎìlMWï š’¤ú“Žïr@¡êÁŽ~à»à À¬)ß(Jï­ßE(ÃÕd­KùÖe3XÒQ=Øñ]ŒBõš‹¾‹€1³X¥üê²™”Tõx|Ì µ®C\·áðÖåÄ×Mÿl=Óûô——õuy-gÔ÷ oŸ¢ÊãÊZ=–*ØöQÉ,v¢Z ƒÛz¡S¶€—²®—Åz,Å·zo]Ž<ˆ¹î¿š®Þ?*rÀ|Ô÷ŸŸ¤¬•·l¢pð±¨ÿûú¯ /#éà–¶Œ¬'•+nýÅ•=¼î®eÉ2í²NÔãdƒÛ2jû¦m¿z°Sl 0.èú;=Ïn­ë0êAm°"E}ˆãdqÏKš—8Iï™v ×õÇrÒÖÉZ=–âëò`½¶Wé€ekq ó~»£–ç¹_ǵìpxÄn^úïår@ȲÌ8ë±_—Ózi&þ$H–JÆÙ3wi'’Õ25ܲ~xƵ^IË¡Ë)Ë:î¦%•ÓZ×aœãºiãXa¾êË`k,K9\ƒ-VkVÖê±”\—£ö]–á‰B[€qc}£Œ§¸.Çb×ÁwK!)ˆ\æa˜îrøùQÝ`—eÓE¶X¥èºœtÄ5S ? ,~LY[ “&í,pÔsû󲞹M›õÞ®g^]Ö+‰Ëv¶ì®×ræw8£4¨êÁŽŸôÁZס¨}ZÆnÞWød­KùÕåÂ/ƒñÉb×Áw؇"»Ï>X¬Çß ‹§²µþÊVž¼PÇÇL½ê[lR@M?ŠÀ¤c€[_mù(äîâ‡_›ž:::nÞüò¦.~tþÍÇÚ~˜~f*¯mäÃô©é~øÚüÁé²koiiyI+?_ÑÂ4??ŸyquuÔ:ìë3U_¥áê¬ÏÏqa?‹^Áq¬tÙ¢ó¨£ý§ûjßkkñì¢v;ÿTðß@ë¿Ýtz}ÛÈ—pÀMZèõÕ§êzÿüûjý¸¥/6´þź.¼wAs³sZ8“íGÊ'yF©Âº”¦ |ºyúÕ_ܼþÿƒ‡ÿ[FžºÝ®Ö?[×öß·µÿŸ}Ýþãm]þt¼?зþQë›6]6Ó§¦_ý…Oš.̔Ԩ7ôɯ>ÑÖ­-ßj?lký³uu»]çÅì{©û"jŸfùL”EÚçÑÇç4J)~=|dœÿﺜ¢Ž¶—~yIÍ·›Z8³ Å3‹j¾5§Þ ©×ë©>æ­›´~“Úº· KÙR|!ILjÏÔgtåÚu¿íj÷Ñ®ÚwÛÚürSŸoŒü6qû´œqŸ‰²îw—2ûÁÂ0¼¢Ãì´´#h‘aíúš¶nkõw«j-´4ýÆ´u¨ƒç=ÕëuIRïÅñsg› §e¦m£²Vô(áÖZ\¨•.ìBšÍ¦¤ÿïKéøà6;;«sçÏiñÝEívwµ´¼¤Ö»-­^[M\^8Ì\ Öý²Ôƒ´qk—rº´ŠóTš1@ßG‚amþa]íGV³ÙT½^×ô”¤©ú«ùÏžªû[7)kÅNˆîo__-„,ÁæÒµõÕ2ÜýfG›÷Öuð|àæ /¤Ã=õž÷‚eûzYÒ~™¤ÏAY‚x¥èK“·1W¯­jU«ºôÑ%|ÝÓö?¶Õ|§©¹æœo44]¯§/dD“¶Í¢Duû¿?,]—ø°÷2ø¾ <TWCsSMݹ7zXŠß§“Òí4¥ ÀA“ttÜøý†ºÝ®ÚwÛÚy¼£ÎîÎ^XÐÌ3j4¯uòÞf>[UÓ{Ñ;nñhÿ™::jœšÕâ;-{ïÜP—Ÿž‰ÚUÚ·¾?Ó¥ W†¸y¾Ç âÌÏÏk~~^­G-í?Ý×ϯh¦9£Åóg%)—LÚf“¤ßÊ O÷[}¾[=ß;0øw Îß:ÚžéƯo uLXÔ>fŸ–éZÀ¬ã~¾?Ó… ëFÉ:/iÀÕG…X8³ -¨ùvS;w´~}]Í3Í—g“¥•7jþ0¯)BZX…ç§MûÔ{ÞSû/muºü‹ËZütqèŸËã®û¹ÿ˜¯}œµî%Mû'½«×?Y‚ì|‡Ÿ$Ý¿wßëû#_¥@iòBãá;üP}¥ù*`À¬Ìc€Ö~ØÚú†5­ê¬í_kë›&SÖjµ¼ÊQJ¬oµ±¾pÀÖrËÜÙXÖ·ÚX_0À,€Y ³@f€Ì"˜E0‹`À,€Y ³œ¿ Ì]$LŠÖrËéyθòÁÊÐ…€"O§ç9 ë`R0À,€Y ³@f€Ì"˜E0‹`À,€Y ³œ¿ `tÜU©c¿ €ñ¸øáEßE¨´£££ñß Àøì{¾‹PIY[ØŒ0‹`]`À3NŒŒÆõ„G(~rb8µZm¤ñT( ~v"›q´œ`À,€Y ³@f€@EœnžŽ|,êq—e þ¥½Ï¤"  §¸ÿ]–±ì½öW¥ÐDÑ¿ 8*¬\/î‡_–×ǵçeyM‘¸¨ Á`ÉóÎ3áÀœvù?jºH´ IYn»U–r„Ñ*Ìgëjpì0\ß]ß>¨¸ñ6Ÿ!U†²´é4l‹+îŒï°—ÒŒóyy TD¸»3×–`Tƽ.üÜp+/ª œôš¢€@…D‰‡Ë²œ´÷Ⱥœ²t @ "Ê6eÄ ³@f€Ì"˜E0‹³À@IðûÀÅ#¨Õj¾‹`xÖZnq­ž'Œ0‹`]`ÀNx”ìèèÈwð¨µÜRð$ð] ¼Ä ³@f€Ì"˜E0‹`À¬))úªt®TPUý|›Šº ·æPUƒùV“Ä÷r˜4¥«÷}— ×x°©ÿžèr^]IEND®B`‚ghemical-3.0.0/docs/user-docs/images/geometry_optimization_select.png0000644000175000017500000002756111563552731023036 00000000000000‰PNG  IHDRï¬ôE/bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ+LŒÄ` IDATxœíÝoˆäfbçñß,m JÐ]`ƒ«Yƒ«±Á=¬!c6/Òà™°/v‚bØÀ]ÏλäÍ&yqÙÍ«%/6krë Ø3w°Þ!Ü’Ùö_œql¦Ö¸ 1®ªÁU0¸ ï…JÕ*þ•JUÒ£ú~`è®’Jz$õèWÏ£G.I:0Æ–$éÇ¿­¸ ¯­àëÁI•å9}£ê€ÅÞf+{–æðžÞ¯ºµÁe 8¯ÍÛ”sÛF…·õàDVÿƒª‹Q^÷¥ª‹`Iœ×· ç¶ oi3*€ÍÂymólTxÓ¼taMKî?ýP’dÿù…^/»ž@tyE×S¦:”¡éÊØÇu:NyËÂymÍæ+–uÂ]š—æ­úÛú:Ži\»ÿôCÙþÆccU¨Cš$|l“¾¼-cÝ¡]Æöp^{Ü*ÏmYÇg‘¿¡ðqO{/N%á½LÃó§IZÍKéÒjÇI¿‡ç ~Oš?<=iÝðxù`M% >jÞ‡·S§÷ô×Tê£ÖáM8ð8®y`ÂÃÞ†ðÀ0„7†!¼0 á €aoµtxëP7^¹Qu1€Zªõ -èã<ó>db·»»ô)ÊX€l7^¹¡Þ7{ê<ÕQï›=I’mÛ:ü¯‡=éþÉ}½ñ?ߨ¸”@=Ô>¼ã“@šåg?ý™ö¿µ/û [–eI’¬–ÿ³ÝnkäŒÔ}¦«ëß¹®þg}Ý|íf•Å*WûðŽæIÓòÎ7-x/ æ Ž%DZ~~òw?Ñþ û²m[ív[’ä´I’eYòJ[’ûµ«ÁWÔº±yjÞšgø•Ü£‡#Y–¥³‡gj·Û<Èi;÷qGMäÇ~í}4I¾äc3ÞÖ*|Ú²,Ù[ÞØ“µei8ÊiO¯‡n# šÊƒNj£ñH®ëêäw'ô2ÇF"¼¬Åµo_“ã8ކ²-[§§§ò&ž¼‰§¿ ½Ýž…º$Ù–-×s%Í?œÄu]t¬O~ÿIeÛT©pxgõ€ÀÁËê>ÙõïëžÖ¨-ËR¿ß—µå“jwìYSº7ž>t|Ñ«<øÔ¸?9ý„1ͱ± ‡wVOpÀtwÞ¾Sua.¸­‹à–¤ûÞ÷;¡MüNhs×¼ùc—»¦5oÏo.ï?èë“ßÜØl…ÛN"²„ƒ»Ýjûc™_vä~íʶmY–[}i8ʲ¬Ù¸çNÛxÅõ\F#ycOƒ¯ކ76×¼¬Äµo_K¬qw:þHköe{Öymð¥ËW»ÝžÕÀµå÷Jw=—ÀBo+á8~Í9xô§ãøc™ïlïÈnÙj·CÏïžøó ¾hÿ[ûòÆ~G¶áÃ!½ÉŒm tû/ì_<æs:ðŠûµ«v»-»ekg{G+Ó§M§Æ£Yµàsö–­ýö«Ù Æ¨y˜é=Ûó{{O¼ù¦îÉ´óØôZuøýYí9ô˜Îþöýçmë¢æmÛ¶¬-Ëowuv:úåÿþ¥¼‰§Ã×õ7õ7êÙ×èáHÃÉP²üNjÎ:DÞ€AzÏõ$Íßn%iö?Ù~ÂŽ}?´¶e˸²­ø ޏýÄ4¸§Ë×–äºÉ¯ÏÎÎæÊ9+Ÿ5_¾öv[£‡#ýì§?Óà‹lËÖH#`–‰wÑÑ ÀÂ(É,Xj¤³kBðÎj¸¡€›hF°Î–3)ï§½eÏ¿¶x-ÿóÞÄ“%¿ü’ßs¼­¶F㑜¶£ÑÃÑlĵ`ºä/ÏÚ²äÉã,Ä0â¿ÅnwwîõçýÏs.˜7éw ËïÞx<ˆ­ù ž àÐû³¦æœ5Ö¼¯Ûy|ú¤>¯þð@Ÿœ~"»eÏž溮?´éh$kËš¤<Û;«|øÈ5ôÑhTÊqš¤öá´Ë†/ÁE\}ñêr5ØEj¬5µëº~Óö£é˜äã‹§„Y[–FÞHÞÄ“=±ý‘Ò&žÛ™÷hk4›Wò;« Ç~€ÏùÖ–äŽ]]æÔ>¼ãÄ…ytZð^xZúqµð`¾¤eG?†z[êXÕ¨F›õZ’4ýáM¼‹òǽžd¸I;ü:˜<$$éõ\ ë™LïånùÁÜnµ5|4œ=EÌ›x²FÖÜØågÏüÚyð¼î æýš7UûðN VéñZxð:)¤ãäi^6ÝÓ o¦BǪÌë×Ó€ j¬Þ´Æê]ÔXÃyæùŸ÷\Ù[¡‡tLBšðZÒE0íνN òÓOÛ7)œ+Žß)nkÚtÞòËg?ak0ȹìøÓ4?vy8¸½±§ÓOË+еoéñÚtÙA™gyá/E>úX4Àä¯ ˆƒ`™ã$_0&Öxƒ&èŒn™ÁºÁp§jÉÿ7öûï‡ÃÇ·S~M]i8jðÕ Òmêʈð$Õt“BuÕe¡ÙÜ\‹øéǧsMÂI5\jˆóN>:‘¾%©#ÿLcIòüý§‡ÉÓl€I³/4ñÜÇïWRv îjÞyN²U…'ÍææZäx½Ção‹š¸ä×¾§¯X–åw^ ÿúB4 uõÅ«rŸuÕ¹ÒÑ»ÿöneåêªq㮪wÍfâ‹Öz|t¢Á`à÷( åzîEïô±7k"w=Wƒ‡ƒYï~Û¶Õ{®§ƒ—*Þ ~j_óŽ»Ö>ùF§§ÝV¶h 9Ú4]O\³9÷–×Ç 'È{Öï´fmY²/ûC¥5p÷kWÞØÓÕý«s½èmÛVïÙž†Ã¡_‹ É€ð–²O¸IÓ£!Ÿõ{ž×YÓò®ëÅþ¯^´OÀþ ûò&Þ\G<«eÉjY²¯Ø³N}NGWŸ¿Jx!k6/MãÀêœüîä±ôÇïëôÓS ‡Ã‹ûÖ'R÷™®n|÷F¥ê©Ö5ï£{é…V}-,«I@ùƒÚ­öl¬ø ~õÅ«G™ç`Ô:¼o¦Nï?诼 6°^§Ÿúµ,í=¿7w |ÿ…}®ªyx¯#œÔÏÉG'r.;²[¶ºÝîl€ç²£—^|‰‘×°ñ¸æ  –ŽÞ;ÒàË?Â]hìöN§£ýýýŠKT‹ðP[wsWƒ/‡³ç¡kKÚëíéúw®W[8 B„7€Z;ýÏS ¾<öô´Þ³=]ûöµj T¤ð5oz|X‡ÓOÕnµýëßOugOksG{½=ycO'¿£6KáðÎê ˜îÎÛwª.¦ŽÿãX¶m˲,u®tf5ðîS]¹c—ðÆÆ)Þô°NGïÉjY~-ܶg5ð½ç÷t}|]w}·ê"kÃ5oÆ|1ÐégÓ[ÄB×À÷ŸÛçú76 á À'¿óŸPÖï÷g#¯µð«ûWµÿ·a3ÞŒrüþ±ú_öý—f5ðv»­Þó½Jˬ á À8G÷Ž4|8ÔðÑp®¾÷Ì0ÁF ¼éôôTý}¹.ž>¦-ÿþïƒ?ZíC‹€ªÞŒtúé©úý¾ÎÎÎü7‚øe[½çzºöt`CsÕúÁ$Rü3µWñ¤¯Ýî.O sòÑÉì dííöìécNGÝgº:þ㪋¬„5ïÏûŸÏý‹ t›éøýcõôåyžÿÆ´¾×ãú7šËˆðβÛÝý‹¾žžô¹¢Ë„9ÒŽ5Ì×ÿ¢¯þg}¹_»³±Ï5‘®î_åú7©öÍæY¢ÍÝi¯Ó~/ºL˜…c×L§ŸÎšÏ÷žß›u^ÓDÚÿÖ¾\×¥ bDxGÃu‘“ožymŠçäo6¼™‚ëß¶e«ûLW®ëÊ~–sÙÑÞó{:{x¦þg ëŒf0"¼£µÞ¨U4‡ÒÄÚlx3¿,ç²#«e©ÓéÌjàݧººöâ5ÂaDx‡µäð‰w'aNìÍÆñm®»¿¹«ß½!˲ä8ά¾×ÛÓõ?¾®»¿á&0_#:¬…©1g}†Zx³ÜÍ×ï÷58ÌF^“äàò\˜ Œ«yGE¯Wç=1‡?·Œ"ËDýq,7ÃÉïB׿ŸêΞ>æ\v´×Û“7öx8ŒVûðŽ;ÙFßK:!gÍ—Öôžw™0ÇmóÿDZì˶ڭ¶Ç™=ÿ»ÛíÊ»„7ŒÖ¸fsÝ;Òé§§þLBÏÿ®¦ªuÍûèÞQêôƒ—|@ºÁ` «eÉyÞ¹¸>½ÿ{øh¨ã÷¹ÿæ©uxÞ:LÞÀmÒ׿?±>ÑÞ3¡\¾öG`F:ýø´êb ©uxÎÊ\ÿvZŽ:Ouf5pû [/½øá ãpÍÀF8ºw¤þ—} ¿úoLkà;Oîð§Ö5o(S¿ßW»Õ–Õ²f×¾mÛþ÷Áø@ƒÁ@í¶ÿhQ«eIÉó< ‡Cz§£Vo#x€‰mÙÚyrgöüï` —^¯'kËŸîN\ÿ§çªûtWÝnW£ñ(³#m^7^¹¡ÎvÇÊõJGý/ú>ê_½SÊòÑl„7€<ÀÄjY²¯ØÒ–tÿÃûê>Ý•$Y[ÖüOË’çyêìtäxŽ®çºîþz~ˆÕ¯ÜPg§£v»­Î•Žœ¶#×sÕÿ¢¯³³3ÝyûŽ$éÕï½ê/Çq´³½#»ekg{G’ßûÝ{:xù@g_ži0èÍ|s]»†!¼lœã÷eÛ¶¬-K§Ÿª³Ý‘äµôxp[-KÞÄÿÙž´g~ã•ê}³§î3]9mGíV[’d_ökô{½=  uýåëú×ûWí=³§îÓ]íììH[5þ`½º,9Ž£îÓ]yž'I8bÞ6’ëºê?諳ãw¼ÁµnÛ¶å~íú7ùÚ•%KÞØ“ÓvdoÙºþëê}³§«ûWÕÞn˹ìH[¡/–?»ÝÖO~úíõöfÍïÁ³ÇÃóÛ–-wìJò¯³{oÖ‘ŽGá `ãìk_ÎeGNÛ‘4¸’_ûÕ–Ô¶ÚÒD²&–†Ã¡?ݓԒړ¶ŽÞ;ÒÁËrÇŠYkº¼éµ¤ïÿÅ÷gÁ½ó¤_ã¶ZÖüüÓõ¶[íYpGC9ŽC€#á `ãX[þ5oÉÎàµý„­vÛïî´œÙÒ{²,K£‡#ÿ½±ä´®ŒfÁÝÙîÌÕ¨%éOÿËŸêêóWçkÜÓàæž…ƒà·,KÇCiKºñÝ„7æsŸ÷nwwî_Üô´Ï–±~Í\ïÖ–.F\“fÁÝÙÝV÷©®Úí¶vvvä´µ·ý¦umIGïÍØi;³`‡±Óòßoo·çkÜí郤êÓ´9ÝÙvfÏ%ÿÙO¶ºãQóÞíî>öT¨¸÷’ðD)ýöýÎbÖEg1k˯ukKêlû½ÁÛÛíYðŽŽ$IîW¶mëôÓSíïïk8êGû£Yç2ÏódmYzéÚK³e·Ûm¿f?]Ϭc[ÆÙ7˜_ÛRßëûå¦jÞI!h–ÓOOÕéø÷v{ž¶7ñäØŽÜ-Oƒ¯ꨣ³ñ™$iøh¨Ñx$oì©Ûíêƒ?˜ñ¬&½%¹rýñÐ'~ÐÆþµroâù÷‰O|Y”;ñ¿h|ðá%ì4ÁF†w'íh:ÌÂ1Ûl®ëj4ÉÞ¶g:|4”#Gƒ³ÚÛmÿö°Ö´f=‘òÆž††ê}³§wýîc5j˲ôÿú¡^ú×ÔÙéÈ}ä¯Ç¹ìøËiM;µ-Ðt´  õæÿâv1øjÞiÓ–éžç3IÓl³qìô w'#§Y-K®ë×pÏÎÎüá~ÅyVƒ¦{ž§ƒ?:Ðý“ûºû뻳'•Eýà/~ ×s庮¿|ϽÀe³oÐ4jÞ’b;†¥õ@Oš·¬ð|iÓ¤øŽjY8^è=ÛS·ÛU÷é®úújè_S˯?šû#ÿ¶0×uýNjÓøh<’&Rÿ˾îüã ù£°Óžçi4IOê¢æ=öämy±´Dyc¤5oâ©ÿ ¿¢=ÞRöI7Ú#¼è²ÒB‘ò ^8^¤Þs=õz=uŸîÊq9Ž£û¿¿/ÉïÕŒ¤æMüÛ¾¼GÓoðcZœ tø½C ‡C9W(Ó¶3û¼$iK~ðzžFã‘lÛöƒ¼-i4&%À½±ç7ÕOŸ'~üÿŽW¸g`c– n×ue?aëêóWuÿäþ¬î.|öT±P¯òþ—}Ý;R﹞®êª$,ôád(×sçn{óÞÔþöG³kâNg.ÀÃC´‚õ úÁ?øj “NtçÿÜYãÞBÝÕ:¼ó>ôþàåƒÄi\Ÿ°ÿÂþ,¸ƒÇu§ ‡C 9W¿9»eÉ»~§A:ΚÀÞóÏKoüýúá_ýp.À=Ï“gùŸ ‚ÿû¯_oþbÚÑlKê\¹p×»XO0°>M4 î¿üë¿\óCÝÕ:¼oæš/íZÁ l¶hp5î ?8þ@'ÌæÕ–ä\vfµááÐî“ß<¶ì À»cÿyÞ;Û;’.'*ùÍß×®]Óññ´Ù{Z?;;óv¢Ñ\Í;Ü9ŽàF’Z‡74,cÿ…}õžŸ·=_㎷¤Ø€ÎòÆß¿!ɯl´[mu:µÛmÆ#õû} õίޙÍÜvÖÙîÌTb{þ ,Aoöþ—}éGÿãGËî4T­ÃŠš«qÛ‘÷`ÜÂ:É·³¯Ió¼úg¯ÊnÙÚÙÞ™=eôp¤ÁÀÑ-{ á  qö¿5Üs5î÷¢g,‹ðÐ(Ñà׸û_ôõÁñ:ýø´êbK)Þy{‚Àº\ûƒkÚëí©ÛíΞÔ¸û_ôuÿÃû7¡pxçí ˜*Ï5LÔG4¸çjÜý¾>ø7š£pxÓ@]\ûö4¸ŸŠ©qÜh ®y0Úµ?¸¦½g.‚;\ãþä??Ñɇ':ý”àF³ï“«ë© Rz›àF“-Uó¾ñʲÊÔÊ¥K—tû­ÛU)¢Á=Wã>ý„Û±ÐhK7›cÿMq÷7w«.2üÑzÏöÔét¯qܨߍº°ˆhpCŠj"Ýÿý}‚kŒqðò4¸¯<^ã¾ÿûûz÷_Þ­ºˆÀZÞöe{îµûÈ­¨$ìËv-ÊåýòW¿œ{\ïæº·9®ï\×õ—¯W] ÔØÍ×nV]„ÒÞq!Ip¢l <4×¥K—ª.B©jÞI!æqӂχ—]fxž¤Ï'Í]nRùP­¸c‡Á‡€æiâpÞè°hð/ÚÄÜhøÆ-#:-NÑ/‹,ëÇqе¯y—!\ÛJªyQSÞi—\’¾¡¼|À|ÌÇ|†Î×D—$ŸŸŸ«ÿY_G÷Žtóõô ú·ßº­Ã[‡z÷_ÞÕWn¬ü>ï<×¶“š¶‹ü^tZ\Ž/õ‘u|~ù«_¦^óŽ6§wŸî2ó1Ÿ!óÝyûNc:«y½5ïu!¬Í‘t¬ò^óf>æc>sçk‚Ú_óNº~\öµË<Ë[d\[­/¾d05ï¸^Ç^¶§wRoóèûy;ºõÄqÐF„·”}ÒÍÓ-«ãÚ²Ë ê‹c IjßlæÕºæçéN×ÿ˜á›¥ÖáçyáeܪF“*À$µožŽ&Ûíîνþ¼ÿyîÏå@3Õ:¼¦Š `B@^K‡wžëҲŅytZð^ôÑÀ¿Ï·|æZ*¼›öˆ5l®u?·;+T“B9 *¥òIDAT.°ÓÄ…9óïý÷9 1ªx A´6½ŠÿOüš‰kÞ@Å’jÆÑm ¼ äiÂ¦Ö #¬ÈS ›‡Ú;ÐLÔ¼ „;¬…ßKšžt[Y´ã[Ü2㮩'ud£S`†Ú‡wÖÉ$zâ‰Êúl’EO`eœôÖqâLZ'ðõ+Úl}?úy–“ôŽ;`†Ú‡·”8Q‹ |‘T)¢I'½&m 4Qã¯yÇ5%æ#ü^ð/nÞ¬ù’¦YWÜgâ^‡Åí¬^ÎiåÍó:ïvò1¢æ6’ÔªOüiÍÉyš ó.#ºYëZWÓö²ë­Ëvl"ö+Ð\¯y/kÕ׋.³êsÚ§E¹êíQó–ækßUÖÖòÖô«j Î{ÿð"ûrÙm¡YÊeLx×Á"#`­óËŪ¿Ðä ÷´2˜T»®b˜TX”Qá]$¤êpM5­ U•¯hà‡?]FžeÖáx¤9¼uXu”ìÎÛwª.BéŒ ï<Ò¾XVÜÀqa”6ÀF‘Á7òlǪjß‹–c™Ï×aàþƒþZÖ˨}x§ H}]ö}ÚyÞË;F‘ÏYö"–-GÞy—l¤Î5u¨½Í¢îÍÑ€òÞ%¨:8«^?`½ïTœU¯°^„7†!¼0LáÞæ f—4À—@äQ8¼ÌMRÅ 5€¢ ‡7ƒY«}j^Ü`>¤§í…¹ æ+ò”<õSûAZ€M•wĹ¼ å1@sÞ@Eâ´Œ‘åÒF´#Àf ¼Š,ÓD]vÓd˜…ð TFЮúQ²V‡û¼Ãå­…Ód45o "Y×¼“,ò˜Õhõ¸GæRûÌSûð.z‚ >›ç™Ðœ¼°nyžÏ¾Èë´÷ùÛš§öá-Åßãš·†l²¬ÿ+|qÌdü5ïhÍ<ü:íßnw—k€dSwÐ,ücP Œ¨y—+6×&Ö"MìÌ`DxÇu²) WlžM pÍbDx½æ $áo€ÉŒo lIÁ}òáÉšK‹kTxiþ¦É|ódÕ¸o¼rcM%°j—.]Òí·nW]ŒÒÞi×¼³¡ˆSä3h†¼MåÞØ[qI¬ÚÝßÜ­º+Sûð^ô~î<¿gMCópŒ4‰ñ÷y°ij]ó>ºw”:ýàåƒ5•X û²=÷Ú}äVT’ öe»Ôr,³á²,Z®e·c™u«Vëð>¼u˜:½ÿ ¿¦’å‹ „¦…D™Û¸ègÊÜM:&h†Z‡7ጦJ °¸ [tZ°ì¬šcÜçƒ÷¢Ëˆ[fÚvdmc\Ù‚ug•%ï6F§EËPd?¤}&m[€²Õ:¼M–Fi!"y>¿h@—%®lqe‰ûLÒ6†%ï"û!ë3iÛ”ðj ­†]DxË.oá³l3zÞÏGÃtÛFXco ’šw£¯Ë´ì²M«U¦Õ¤ÓÞ@­2‹ÖvM í4iײ:ã>o ákµ¬à¨s-É[ö"à6-´³¾¨½+¢leÞ–U—cΗF˜È˜ðš¦êÁuÖ­®--u(°¨Ú_óF½ÕåÜty‡ÎJ7nZÖëE–±È¸Ž’Ê^~‘mË»ž´e¥­X7jÞ¬¬¾(&ïà:« g‹ \´ IÛ“·\á¾ËîC¾´¢jÔ¼ T$xŠö;)KÑþi}DVµN`Õ¨y*{p*oý+{=uºåQÊg°…û‰Ãͦ[gÏó²³è˜U—+ŒfsÔE¡ðæÁ hšÛoÝ®lÝ«=/ÏØq﯋ ÈunÔÕÂá}󵛫(€« '®3WÞå/hi-]fåÊZVÜ4:µ¡j—$ŸŸŸ«ÿY_G÷Žtóu›çö[·uxëPýýª‹²ñ=”íèÞQc*žA^ÓÛ@mÜ@>„7€Z ¸üoµ@pùÞ†ðÀ0„7†!¼0 á €ao Cx` T nüðUÜ缎OòŒY¾Ìr×yÿ÷:Ç&ÏZþªök^ šSo„7P‘è‰ÑÄ“e\™Ëz.yÕû¢Êõ¯j¿¢9h6jj·»;û}?<=ésE—}/­|IO[f;’Ê’§Üy·#nyiË(²YŸ[TÞýš·¬yËWFÙQ>jÞ@ Eƒ1íuÚïE–}<è2µ½"Û]ï"ËȳIó§moÇ#îu’¤Ç.ºþU΋jÞ@EÒ®if$ €<YYÊXOtYÛ±ŠmK{Æú²Ë\ôÚÿ2;iûõBx‰Öp¢hª\uîÛ²šËãjÅ«Z'êðj OÓ.ʱÎ}[t]yš¨“¦ó·³è°4ÔªOÚIÍò„Åú•µÏ9væ æ ÔP4óv‹ë¨•¶Ì²Ë]në,»ÜYû6n?-CÇ1niåYdE·+o=¬Î%IççççêÖ×ѽ#Ý|ýfÕeÖîö[·uxëPýýª‹ dG÷Žtóµfd[×4›`ÂÃÞ†ðÀ0„7†áV1 äèÞQÕE€L„7rxë°ê"(Ù·ïT]„ÒÞ@÷y0×¼0 á €ao Cx`ÂÃÞ†[Å€ DŸÕ,Í?K9ïs‘Óæ‹[Gt=› k_&í'©¼}µêç\—½|žË]„7P‘èÉq'ÌM>§…rX‘/M‹ZGp¸›…fsÀ»ÝÝÙ¿ð{áŸE–^vžu&­7<_\“^§M‹{½È¶~Þÿ¼Ôšs‘}o‘å=®‹,/é¸%ÍWF™PjÞ@ÍEkTÁë2j[áÏ'ýžõ:úû*¤•mÕ–Ùqå,º¼¬²%ý=ä)_Vp¯£u‹!¼ŠDO˜«8!f][/ºÎ¤Ï²Ju Ž´}QæòŠÊ³¼u7”‹ð*²ŽZ¶V^¦¬[¸æ7.u ï°*ʹŽÐ%Øë‡ð«Œð)³#UUÍæ‹ZW9ó6Ë—¡Îû{SÑa @¦¼5¯ekhi×mM`J9£)·©ÛØ4Ô¼š‹^\䳬kÞE×™4oܵÓ2jßIÍÑ먅/³/–]Þ*e·¸ù‚×E;ë¡<—$ŸŸŸ«ÿY_G÷Žtóõ›U— X»ÛoÝÖá­Cžç]‚¬Ϩ§&££{GºùZ3²-ÈkšÍ,%«µÉ¡`2š¿ÍF³9€¥ämVE½Ô¥ùÅÞ–Vö½ÎX޹h6À0„7†!¼0 á €ao Cx`ÂÃpŸ7P¬1Çón²è¸æÑõ4]žAHÒF+k_Uõ„±º,å#¼Š¬cüïM>G÷gÒþ]Ljpënw³Ðl`·»;û~/ü³È2ÃËγΤõ†ç‹+cÒë´iq¯ÙÖ²k¢EöEt¾E–WÆØãyq\ó”·Ì²b1Ô¼šKªA–QÛÊûHÇ´×ÑßWaÙÇM.³Ÿ–Ùqë,º¼¬²¥= =«|YÁÍc@ë‡ð*÷ÜëU¯#ºž¢ëÌû¬êUXgpçQö¸îU\:)ã¸ÜëExYÇÉnÙZy™²B4\sŒÎ—E¶iݵÁ¢å\Æ:š¬Ó:?®{{á#¼Ä*ãd\fGªE›g«jÆ]W3rÞfù2d}éZÕz‘Œk2å­Ý•ÑôštÝÖ¦”3j‘r§uHÄúPój.z=r‘[̲®y]gÒ¼q×N˨}'5ÏæéÐ]Î2ëÎZFžfäE–·JYÇ-n¾àuÒ2tj[½K’ÎÏÏÏÕÿ¬¯£{GºùúͪˬÝí·nëðÖ¡úúUÅxY=žQOM>FG÷Žtóµfd[×4›XJVÓi“CÁd4y›fsKIkV%¸ë«.Í÷(†ð°´²ïuÆzp|ÌE³9†!¼0 Íæ@Èѽ£ª‹™o äðÖaÕEP²;oß©º¥#¼îó`®y`ÂÃÞ†ðÀ0„7†!¼0 ·ŠH{vòºñðÀ<„7P@Q4›5µÛÝý‹¾Ÿö3ú{ž×yÖ  >¨y5mÊÎû:Üà÷Ek÷YëP„7P‘hÍv‘ŒÎ~½LØÔ€o "u JšËú#¼ÌÄ5›¨:¬†@ÌGͨ¡pç³àuYË‹.;k½tZê‡ð*' “æÉÛY­Œùò–ÀzÑl€ao 3 ï£{GU–äptïÈ¿æ}éÒ¥ªË2yM³9†ñ{›ÿø·¨Z_—€FkPÖÍn³œTY ZOµ¹|4\“rî’¤sýø·j¿÷fÕe9øá Œñÿí¿Õmw IEND®B`‚ghemical-3.0.0/docs/user-docs/images/aa_builder_ci.png0000644000175000017500000000541511563552731017572 00000000000000‰PNG  IHDR›b†r~bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ 7™(8 šIDATxœíÝ=‹GÀñZ¡`´pÞ|„3\réâ@N ‡ásŸ@±"ÇÞEŽØ©ƒc¹Ä(Y}„Þpƒ lØ {¶G=5õþÒOU÷ÿB;ÓÝÕ5U]õtu×ôœ Ãð¨X]¼¼P·w·ÒÙÀ -éØ{®”R»ÝN:€{~øëÍ•`6‹õýå$Ø(¥67沈X ÍðN}PJ=“Î`ù6€êžûWY–‡?þI: «ÅeZøÐ>åÔnŸ« 6››÷j3¼“ÎÆj=ìþ"4Œö)«fû\]°QŠhís™Vl¦Ë ¦ß¿}}ôzû÷ÖÊÎ,ÆÏcû¾å©ëΡF~hŸr}M¢ca˜.ËuÖªw^÷o_«û·¯›é\QíS–­}šÚalÛ 6%2¯+--†éí1%Oÿ¶˜ŒÇÌt¹éu캾}êÛš¶‹ ’®t§y™¶“˜m“mÆÿCëWì2Z‰k€®Æì*†émšœé{J)ëûsåÅ”7ßv©÷lBÓV*­\Bf„éû3¥_*?:Úg[LƒÛ€ÁEd6š$†érÖp|µ,uJöœhŸrjµÏ¤ÙhKÀ0]g­p¡}ÊâÙh…Ñáí¢}.Ó*ƒ °F-_>Ãòÿ,4ÃW@Ÿ'P‰õ2Ú0 sæÀBí¯÷êË?) ÌÈ4€y6þñøø¨ÕÿþaÖL!Ýþz/À‹@³NzLy6]xss•Xng×ûö¹r÷O#`Ò·ÌÑNcÊ3ûj~¹]ïÛçškÿÒAð™û]z›é[æî?³‚ÍÚõrÀJUÀ'çMi‡´‰ùl2pÀÚÕĤ¿ìôc´Ø[*)¿?½&Ø Š˜ ö™)é˦ß;Ê'ÍæÅæè5ÁVsÕn˜¤/›~ï(Ÿ26°¢‘(…`¨.ûAœ<êÖ!çÉ2‡`£Ïˆñã~LÞоoþúMÔúzL9›Í‹RwéùúÕ×隥Ï, ÞfS¸g¨Ž`«íùV: ‚`¨®J°I=#žnçJc®3îÚû±¥òþö|kügÚÆ¶NÒøŸÖ‰ØôrÖ—ØW:¾ü—ØÞ¶~íúhaýq›§õ.¿ºž¼ãe 4xšå:%kôQ¶´'Y”ÿ©"SŸõË])xÛ¼h ²j—¿¯=Qÿu-®ü!ºÙ¿g3w!‡ì¯»Š/`®àNù›IŸ\µTÿkÔRùÕQüìÁfîF²?‰†Úw»ÝÑ?Óò÷¤ô^þÈcª[ß1='éý×ÖRû+løŽÎ'1XHïv;5 ÃÑ?_ã·Y£åßKê%Ÿº”cºE½–¿$WSPÉ3[Ðp5ÎÒ¦·U¢üi¸^]Úg£¥ëßuLëë™F=ãk×(?eY éË =*lxÔ¼RfÚÁРžx®W—ÙKxéú×G>¦€cZæÚΗfK¤ë¿¦EŒljVP•_²ñät05ʪ‡ò/y²%à¥ëßwÂzBÕë¥ä”òŸ¥$ŒîõvÑè·>s=¹`T³J7þcÃ’¾_S£¬z(|Rª®jŒ¤0ŒÍ©T P¡9M›Šv¼µm›±}»±}›íxK×§Ê6æŠX®wšÓã8"#S#ûUQC(X–étšºCLÌ ´8ñV^ŽFM]ŸÒP&íxàNŸž‹DI™ŽÐ, ðm&Kf\R„‹^Ó4ÙB_a© ‹J݃‚п*‚z2n[œÐQW¨Ï’Ju¸º§dÕ[½ef2Ö«B¨¢Ðg¢»¨B!£m]›Ù¶m÷Ää×c¿‰Dߨ°þÛ^¦i×#Ñ7î¸ýûŒÄ ûKoÁ‰Ÿal.ÄÅB&¢MmÛ¶{çÎá®íŸ™¾ozzxçŽÏmݺ[Óf)Ã@¦ `S‹³xƒláàJªŠ± ¶%^g¡öeÖˆR†õÐÐ0—¾¼½:ØÊíÛ÷N½OÌÊYËêÎçoí]ÿÜ«¯½8Ñ’u h¨Ûƒ à#?ÂkUçš ËR)G ¬vÚ…n0æ"u–}åôi˜ŸŸ‹D³ºV6†2øüuƒŽík¶mlÝzv|<§kw&6“ñ)tl•‚0šz(ÝÄU! !…Ží¨e뀅PN×,¤IÉ#£‘6‹Bgìt4òB™ß¿k`„2:ʼwÙÈf.FtÐõ)ÛîÆ8æx0ØúÊMü4mvÛÖ½ïO<¾‰ŒGô‹wMLÜŸËîXÓ»{||D¤”}g³HFØÓÖH±\nu&«a|£#zS׉¬‚³5½D®wæó+2Ã\¤ãf„+Æ]ͪ›¿(ëá êŒË>¤Ë¦ÙHîz×Ì¢M‹–ß¶<É9÷™*!Èf%x¨^À-cï LLFJóÖÊlvÍGs?üÌgö³Q˦OÑðäT”•Kò¹åׯÿëîÝß¼ÿ~0ÇÇC4ôª100000,¢3Ÿ_;7׿m[ÿ®]ù¼V\\#yâÄÄ l¼Zà8KÁïÕæN1F¡[n1ÁŽÙv¯Wݲ!…ÐGç!œ¬d9‚1F(£ëS‘D¢"Ñ77n|¡9@B™_‰DÞèŒutÒf¥o ‚ÞV¸-IÝYÖѯýõú¹¾ð²;ïÔ1&¶c1G…žhàE–uôk_[ãÃCÏÿ|ù'n׊‹éõ`z„V—Û)Ýßψ»½‹seŒ@LíÜ^ˆ­Ô´ë¶½,—3o¥ÍÚï!Æ8‘HxqÝÑuá Ï•‹³(ùiIÔUÉ’p36÷vï[÷ïÛs½÷ÑýuÍwuäµÐ·„1æÎ©ò¾ FÓp³á]—ÇÆúfgŽ<üð’œõÐK/ÁêÕïÿþ©:Ï%;ÆPª—g2/}å/7cû3§Ç`Ù²÷_»Ð¼ úJ±)Ù[+2™Û¦¦þ㓟|kÉÒ¿øÇ'¦c1+RxR’>"Qw;B9FÛKtîìѾµû&'wÇ¢)@™wß5>ö±ÓØ„àò•[ùùuë¾?>6báîfW¶bpI-š6»uëîÉ÷ÒÑKeß{o1À‚ ¼÷ÞbŒß|iâÊðŠçÇ$ê(DÂLalÝ ²­þ9+˸çžÃ76¦JM±iÓ&Ú  ²äú'ñVnߺwrr¸£#]\7z{ýºe¼•¡*ÌÊà˺H‘›mÙHî©ÿ~ꃥ×ý›GWoX-ú,ƒ¬»Ù i=éZö 2ÕP\3J¥R&ƒ—FÊÄÅs€ð,&R“fˆÐ²ÿr „ÎAKlDÎ÷³È²~õø?¬¿ñá/¼pÛ½÷ê¼ÆFÉdrpp0øÚÉ ¼èäб•cŒÑòl2ÙÙüíØZ‰ ñâ=ßýâÛïþàg^{ÃÖêH¯<7Üw°¹ôô3}Ôtýƒ»o¥euçrFÏšc¯þîEËZÅÕ6¼ðlo%Ù7ËÍýNƒ ªpáÉRx!ÅÙn åMÇ>BQ"‘ ÞJÚƒ¸… ·ý–éªqÓÕ™y”ÃM=:ѽü«Ï<;Õîs8ÏY@Î]‹ƒbÆ¥ `³±iž#Wfb±?zî¹s+Wsxxfl,jqÅÂdC3(íBB¥!¤Ø…øŒˆC¯[DβwI¿©q‰XÖÒ3gFz×ÎÌß›Íß(£G.!ý"Ìgî]Óó³ñs/c$ß“$€PHe-éëû!¶»±ÝÝ·öjfþžÌü=™ì޵k§s¹Û2Ù}kŸ; Ω è)hd®U Úû>Ò´}O{&»=›ÀËèŒ78à#ý2Ñèå®®KK–LÇbó‘I wS³4¿p>¹ÒÕuiI×tgt>RH ‡ºÆYÆãqºêZïÕðÒÖð˜HfË–]““OE"?wÆVþšñV¶Ê&GKÁC2zi€ €é¨¼ìæ²Uï®úå×uiÕ¥ýßþÒìâYKË@×|×­“ðä?ËÅ¢ó6B&‚–4‚`qét:ïÙ³‡ëÛt¾H¯Ð!*$l-„“R±c£a˜‹D'–ucŒ?*î5+-|`Tùµ9åOÃ0.¤ÎM[ð!àø][ÎŽç#â¼?L "zòähÿ§OŽ&£Ââøt,öfOÏîÃÿrw4:­ëÜœd¡™¡bN·ËéÚt,6‹1FÈB× ƒ#˜Ã8Mâ@<—H›]±¢tº#¶»-k1ÇJ11 Èïöb?÷òê5÷M\y$¢_¼rùÓš>8–ÏÅò¹Ûúú¾KvbY`¶:rKhðwñ¬p,ß y8/^’«äÛ˜[:7|dd¤‰ç†oØðØÕ©á@>¿~mßócc¿Îço!·‚«åVÝÛEÓ4V‘…Ä–šý¿ïïËôþÉsŸ‡Õ0wé]œ-Ÿ×óÙŽ,Æ8–‹E¬ˆü¥+–¶m{wfH—†+á\8©›ôfuíö-ÛEúUôc„4Œl¨±ÁœDœJ¥,„H"Ë)ÓœW¿+   ¥XŽ&“äw2™¼‰¸mè888HB3ÃÈe-¾ßÉF±[H#œÅ rçØÒ%TC’3-fY=`õÐä•|®T’p3•Jqo>—éèIô°iš¶Ý}æÌ‹½}{cQ¸|y¿Ž;1^Ü·îÙì/Μ9AwV [Å\gÇ]g ÝvfÀìIñ >Ú€P}7 X ×€D·8Íg6a0â», ²9XÝslnî‹«V=ÏÆVbl5ÙþBš‘CYNÍJAn1úPJ…ÛõL4¹U‹nÔ³‘ sY ld-YÂfÿ÷Y¯išœ²ÈÊKà—òeqxAÔ² ç³tÑ<¦çÚvx™Èòk4™M&ÉÞC€``pÀ-Œ’¤ï@8'Ô a/šÙ Œð—„«k+Ý>åf»4\¶ ±c†;ì|ïøéä+¯[¹ògËW¼¼bűW^=væÌÆËJ1‹â;›™Fµl·|ùK\"¤™V*­Næú6æb§tŒÁÊCCoïcgÏžÊçi`e¸Øqõ\:tzÊ ³½O¡WYù䊥MÌ–vòl"‘8wîۃꧮ´+¨“ºô*ÒKâÅzgï%âò6,([&¼ºPàê †ŠF¨Ò¹á$q§1熳­æåeï$Á¬dÙVQcã²î=ñÁfã ”¡¶­:NI:܈9*‰TÕ¶mbkr\j™±¿Y^ûKµhïJGG)_hvž£M++´e©K§Óñx\¬-ø]/2þ¨5ç6Ñžú‘T «…Y¼Ë¹x¹—ˆý…Œg~õ…“'OÒ ”Ý?ˆý.-ÉEq£££ìÛˆí(¶X”íDÁÕ\²aòncvóN 5 8ùäÏ4M®oRÓŠ–¬ŸÞvOÅÓܠ¨[Ù:K¹Ü€KT€¬;Cñuž)oŽμ׿熗»½=¢—c!Îì‰; ‚AI!EXÐÍÿèŸô„w„Ö`(SŒëüälpVUJQ"‘(‰×VA1¶‰»U'¥‹s³q<%ç]±bа:ÓÏQm%V VÛ+¥â-í°äT¤)g¥µ’Bz0&g£{¡šó6¹é¶€”‰Ò÷Kiû8ý„¢Î†¯»ÍË%ŸÝKh``!Äz4é×É-ö_Ò’ŽŽ’÷Ð×R—gÃ`†+K„¹\—¤òÉ)N?‹„‹ßª78‚ëÂj t»KþônšÐö¤¯õ½ÜÆSï´Ó1¥ ½ÄÁ(ÎQ¥Õ¨Üü¤Îœ¹I®p:JªØ¡H;iX’`Cÿ¤-Vµe%_ o–¥ÂÒ¬ŒŠòŠëvÞ¥_(ëcWÉý@±SFú›õ-Õ“”2 Ê…ãK­3­*e4{Wl q£Äê<ùõÑ솻SDÍeú›´ç´«½neïŠÕ#’FU×Yb aJM¯`Œ !„´T* ‹Åg)(¯«Ÿ¼8ûI²z†%™@Á²ˆ®MÓL¥Râ'ØŽìÆ ÚÇfïNq‘š: ¹µlbŒ²þKÖ©In‰+ã ‡}@P¶·€iš‰D‚ÈȻƛ• ,ÍÓøQsŠªØ£|R¤÷¾Y'žb.ª5ªÖK"!ì«è­:ÑKI`u5k:{eܤœ,.ûžJQZ ?~üøÐÐWš8rÓl$¢âá%œ\JypŒnö@«ÊþàÈdÒêAˆ[{m"¨D‚瀲Õv{OèÅÅmÞ*íxœbÅ€[¨õ¥†êjˆÒÈMTØÑ”ƒH5½¢Ö³êŠ‘>Ω :°Ñá°mNÞì¦g8rXW혢†äЭne«í‹â½eHmYs°Ò8H¢’Éäàà ø¬htÖoÍ´:p¤[1µ¦m°Yi0ÑÃÜáÖ¼Ò!R,Æ-ƒ²ƒ¸Ÿ†Àlk=Àާ¢¨¦½R½ÄýI q®dä™TIm¹•Qe¸´}àÐÐÔa§t6dlP0†õôVdOÁø ðb¦‹dš¦I¼Óœ3L|68”c_²3EyéÝ€ØÊjÐU…í%…‚45”Çb`hñòZÓÅ?M%ŠgݘÈðp¾[q`Çv>&PCÀ$Âv–:©OK¬­X¦ñ~//P/D¢bÖ5Y9_fS†a_TŠÚ¬l¤Öb}“¨ß̺ÐÀÅߦx§zpagÆe|Rô\…YfUA»X¦1,–qj?1§R ¸p„œ‘‘j­%­x¬† ùØ^¬7NzWÑcY1bW~Éì!°Š˜7 äú*»úÅ(²Ê/ZiÒ±œ}[½iqƒ‚j±³I7¥ " n¿Ä¯1´H×%Åuð Sˆ[B±îö)»E³•мí–Àަ•¶'§gÔ…ÝÖ•Üh§5gšÒ±ß÷·FóÞ× &Ÿ€£½ì‚í2µÓΗnÁ”ãd2ÙßßÌqálm¹õnÄì^ L¢ÏÉ“'Å ‹þ$/5¯…vê}ñ2Ü€Œ¿À´a%u[ª•@ãá6@H%í›nòÉ­o6eœ—YÝÂ4ei/«—è{¸+T/Õn­ÊNù8¢P1+C¤”ÕØ\`igUMYyð4‡§Œ9þ<ÛX'Nœx衇|ì'MD›ˆBfhÕ–iUº‚_Z¸1ο ’|ôèÑøµåx@bK¤øÔ§>uáÂ…_âW¯ Hïö.½©pëa¡Y2•‚˜Ž¥Õðãǃ‹CØx¤k ,2«@«¶LEtv8؆òËmYã{É;."È÷÷·¼úÅë€h-ïÒ ·¤Ý0¤-ܘ.ßÐÒÝ8á±÷¶¼¬Áî*¸ævðÝHª^2*B=¸Ã…-ÖÞP¾7µ÷*âG=¾Áßöþu`eÙJ…¤5½W%ì}Õ¾¦:Õ€Z Í*ä³ìçšØÝ¤y ¾|½jÁ¨µ÷V)jŒ’÷ˆ‚eÉ&îÔûÜp Ñö÷­^¸å´<áգČö—SÁ绢†ÜT¾Rw —7׉ûµç:ˆµò‹¡ŠuϪ?Q…M,mõ{Ü´YãÚŽÀС"^T§—šeÚruö¨‡«ûVíïáPZ z®†ƒ7eÍNbv^ýêÖ0°ÔI{OðíQ„P€s»{ƪ›]zH·›´ûÎ,“Šw‘Õªâݲ« ÜãÒ2ôURKT]Ÿ*P‘žá|¥nv­¢V^æÉHy;”S¾hB6…½RoÒ΋›.+ õŠ57ÞÎc¿]©|JÊößáÆ/Pv=ñJ¥zÉíq±|= ý\u&`ÙÀ:ÒüsÃExY šµQØ>SEW¤z!˜ªŸêêVÃÝÔVPµêTÓUb©„pzD1æ´ª÷y3‡² m¬eSõWj´÷y¬‰f¹Í©è¸¨vBÔÛÎS Ã- ©·¢cˆ"!’ˆdV*ŸâŸn¹MáÆ/ñ£½A„z†ßô®á‹×Oh±Sz=¸ÒtNûqü¨Â ¦Fó¥V¢aÔX%nîÈsõ ÔÇ ·º†œ [ÝÄZ]¬ÆŽïˬ@áôbK²C/÷ª²ŸskgrѶíº*ÀJyçVX¼Õ\÷žž/³‘tUÑŒâô²ùäJ6L?—u±‹¨E=*çºJuY…ãåºâåÞ?Z"€zæ™g¤¯kºÿ²6Úh£ ŠîîîgŸ}¶Ùµh£6Úh£6Úh£6Úh£:ãÿ"$;‚ó±EIEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_10.png0000644000175000017500000005353211563552731017151 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ )[=êg IDATxÚíy@UßÇÏa%RÔ䂸å’;*˜ûž¢V>¥¹àƒ (¡âNå’ZŠK™¢<Õ›{¦Y®Kaî[niK˜^LA@Rd»çýc.sçΙ;Á{Áïçõí™9sÎ,g†ïüîoÎùý¨V{“€’¢ÑøóË =™”´?$$ÝÀ‹ŒV{3)i—.=EÊàÐúMý:c”¦´&½fhf¨`‡/­Û†N<#L/ÕÔ¨” …›•›Ôåq@oBÙ6%–;㋨©ñ®¯Ï˾Þô§°Ü¡ì[³Ü!L¯éJOMê‹Ê(¡„q‡²lÆt7_ÉÖg¼—†Ár[Ówjê]—R~c¡7y/@ÜÀf¥žæ¼ú Ö·rÎJðAl Vl†›©øZ€å¶e®KØãj¿ î`ŠN ËÅk”~‘¬NöqëÃŒÝæFf;³pGw°ic^ÿ_jX•r)ãâV—qùîL`ÓK;c¨ÄOŠÑ2`m˜YÏ‹pô#•‘uã=Ârkî %”šzeLä]`Òÿ/,w°=S^¡ˆ-K×§°ÜŸ a ‚f«ÊÖB‚l°M‰—Ì’jô`°Ü \¡Î9£`âCÜÀVlu ·*D¡¸€•ER[]0£‰Q w qkÂc²›Jnï#ÍXÛv7s£)ª”˜M¢mòyÕ!)i?º¶´èÒ¥':ðìboœi‰qe¤Õ]ï°a”ýp1" ]YZ¤¤ü…N<ƒõNM,tÊ0CÔfÒ’“Ì{Ð#°…æS¥£œÇ‚¤Ânujx50øÜÀ`%ªeu. «ÀìÇh°Q¹§ûÜÒt|Œáƒ¬`ÄlªÆP§²¹SE@ÜÀÆLuYá§T6X˜8û|î`;únÆ÷Θù]@ÜÀÖ(´n$Ô*¿· &CQ¸eÀMx±`ó+¢$Ú O a÷gC£ñG'ž—AÏýGÙ7£wí@Ü¡ïÔrÊ_¥Ä’Ü{Å­ îÐw€Â³U¹Áîjÿr{ˆ;ô`m3]d´ëŒ¢¹³â ïæÆBêW îÐw€µísÂ,5XëÌx;/íæ‚¿ë_÷RC«½‰N”ÈxçC?*¦Û£FÞ,w Ëʰº°ëƒ>Òâ©jZ™$Çfú`„BÜ¡ì[™CÄ\¾2ƒ¸CÙåÁÀçÿ+“N[䩸CÙV¶Ö‰¬§JV.ÞDe6· ØŽmN㩉¬S5òËlFÕõòÍd4ßÔN7«ïw°ººë}éÜP¡Sc»8¥Ì8oè#ä/Xf¬ÝLz«T¼0n`¼ÔXî`]³]?À]rQöÈÈïâÖ5Û>–2bˆ×Îÿdß D": ,w°‰ç­tÆ$åÚØŠ§‚hLbWð¹€`p¹3ÙÐ ³R©p#ÄlA×Ó‡˜1¨´pÊ’¸ŒÉZÿw°‹ Ýîúо‚h¿b ­ˆ[ÀçVFìua„2‹Rë1B3( q& Pf»Aâ©Ð†7ªe2OU"R…¸Cß¶e¶SB˜Þó®ŸtÊ…š¡”Ÿ½j2FEÿèhÌ$Äú° ‰gáÖ²ârF(£Â4|Œ¿d€¸Cß¶&ôÅÆºd8c¨áÕ@!îÐw€ÍB%W˜éVj2DF°C!K $î”LËóu0‘Mn\Ií¡xœ ƒ¸CÙ¶d&& gL®=£Fonn(;À&$^ðM•Jè½8Sø‚ýè›CÜ¡ì›RyƤìüVs¿ô îPv€õ‘ʾddÉS9½'â4MÜ:ÄlEÖ‰©˜ý&+íÒ³V!î`[ˆ†¾0®3sgøÍ-¶"èÇ ã¾PC‘Á î`‹&<—O•gä`‚¸LdçSá(ÄlfáQ”EUEcÁŠCRÒ~thiÑ¥KOt ÖºÌñ¸vJc$M}õ¨#F„¡sK‹””¿Ð K­ujnC1S²Î )™(ÿ?"q‡•5>>µGŒÃK€çÃÚµ«CBÂ˾ãØ2FS˜˜„Ñ®hò‚qî°èÖ…š f7|&X&m‡`ø  6!ñ¦ºN ¡‚DªB›ÝÔl§Œ ÷Î}ˆ%>>µÑ­`-˜ô¤$ÊxƒÞ$ò€dFŒõ°ÜÀfŒvñ&Œ<@‘"å› ØŠ¼S&'Ò‚¥Š¯C)£w°$|,űe #%³`ww°®° E[d”3É ¾L*Ö¯¡ˆRB~àÙè:ô t ŒLxFDqÃL,{ÓÆúéM ân5}ÏÎΞ;w^PPGÿzM›¶ wüø å&?:€ ¥”rƒ%Ìvj¤äzNùbÆŒ&¹BÜ­¦ïãÇG|÷݆7®&%ìß?xÙ²ÏÑ™¼p¶ºÁ-ÃxÁ¦&%¦šNeô^/îó¾øoÎÓ|ôïó×÷ãÇODGÏôññ±··÷ô¬Ú·ï›[¶lâ6-\øY‹­ë×o1áñã'¼Ù®Ñøóö»È–¯Z•ТE@ƒ§NžŸû € [îúQ0Fñ¹¯©F—ŒóTJð)ãß ÔÎÙÉaͦãèßç¯ï­g̈>{ö·'OrD›V¬Xùûï—÷ìÙuîÜ— B´Ú›Ü¹eN:}ðàûõþýôøøe¸;Ø®åÎùÈ%·p^Îk# Yì‹7JÝAa†xbÄnÌà #g’Ñ¿ÏÎ/"-ª¿fÍ*__ͬYsZ´høFll\vv6·ióæ-±±sjÔ¨^¹r¥èèé{÷î³ôdæÎãéééåå5wîìüw[¶Ýe|+” &-qòÏa!Å__"3‡wÆE):÷y+;!䥗^š6mÊ´iScþùgBBbxxĆ k !ii©]ºôÜa‹ïO-nA£Ñ¤§§ã`»Ò®4~]?I•­ õ]¢º>¶L T <»²¿i½zõââbš4iΕx{{ÿøã¶êÕ«+7tp°ÏÍÍuuu%„dee 7¥¤Üñóó%„¤¤¤T«V ÷€ò òFÖ¸Ø6—F ¹€Bìn¦dÎûâ¿èÖç¯ìï¾;d×®ÝEEE©©©‹Å·h¡÷aÆΜùáíÛÚ¢«W¯EDLàÊ=<<’“ >´F­^˜›››ššý±pç11ó23dffÆÄÄ8/~ƒ•[eÄZmRÄLìyÆ›ó¢¶Åi˜˜ÜPÈRxóæ_­ZµÍËË•?zô¨gÏ>>ĤÀ‹,íŒòÉ• Ù°E•ÌÆMW}£eüýk´Þ²e«¨|ýú-Z4÷ððÀÝÀv—Pj©U*±C&&½;Ç.66®yóVMš4OLüŠHeaÎËË›1#ºQ£¦5Žþ˜Ï¶¬Ñø'&~Õ¶m¯oAƒÞÛ±c'Œ»wïµnÝŽOGùàƒq‰‰ÿÑét|IAAÁ·ß® +ü­ ™ºC‡Îׯßà*lÛö·píÚõ:Ë5ž€-+»h¤è›*äáøf˜â‚Ù]½zmÏž]ÇŽýzçÎßD* ó¢EñiiiGŽ$>ü‹V«_Ê·¾téÒÞ½»oßNŽŒŒX¾|¯ÝË—>jÔHwww¾f“&M4ÍÞ½†¬ ?ý´£yófþþF|$CwêÔñÔ©Ó„¿ÿ¾;kÖÜÜÜ\BÈÉ“§:wî$×Dtzxx6 I5“qÉ{Ù)‘žÅªMØÍ›S³f ˜˜Ù’‡ýé§sæÌæ²-ÇÆÎݾý'~Ó¬YU­Z…Ó_77×;wBnݺ}èЯ#G†ˆö1.!a ¿ºfÍÆÇ\–L Ý©SÇ“'Oqïgg§Ý»÷pâÞ©SG¢˜Kš?=°am7ˆ4•*Ó„¤†ÌÅ©DXwʸb;___åãfddh4>ܲ¯¯oF†!Û²··7¿±lÙç:nÉ’¥ááa\bO!íìíí?Aùõ×ÃUªTiÞ¼™¨—šs µlÙ&33“tîÜ9BÈöí?.^üç»?þ|PP \ÓÓ[uË0~ŒÐýÂ~á+ˆšQÑPcßV«U>®——WJÊnY«ÕzyIg[îÑ£»££ÃgŸ->{öܰaïKÖá÷Õ«Ç“åííí}úôqÎ)¤ÕÞä<*•*¹i4šÝ»÷T®\¹[·®Ož<ùùç_üüüÜÜÜäš@ù²ÝM öbÅæ…Ê„9T)“Ü ?Zföì¹÷î¥fggÇÅÍçŠDY˜ƒƒûÆÆÆqÙ–çÎ0 Xúä(ŒŒX¹2a„%ëtïÞíÞ½{?ü°ýÁƒœÇ\„\bèÎ;ÆÆÆ 8€2pà€?žÃùdšˆ@bh€­*;ïw1ýNÊDN&,¬ø›,Õk<µ«[·n¯^ou¬Q£:W&ÊÂ<}úTOϪ:têСsÕ§N,wŠöööµkû ôŽì5P:n\øÔ©Ó¹A2¦È%†îرczzz¿~} !§¦¦òâ.×Äöá\IÂxÊx‘3ÊyôLìtfºξ'”Âh)N 3`@9Óþ…Åǧ¶ädT¤± ,( ²Û3Y£ž =@¥”_lÔ¡aœÐ—Î$&N·qã&­VÜÏÖ³[ôë×o ìàï_¿OŸàÿýï*W®rDÿÓ§O'MšÒ Aã–-Û$$¬á~˜ˆ°E‹ž›šDç·Q¨F‰Þ!Ø|øàçWwÅŠUññ‹ìì ¾8zôø?|ùò…^½zLŸ>“+T9¢ñâ%?>qâè{¹ù„³Ö…RS³]:P{ñ&*ÑH¦¯t´X«½yüøáfÍšâYj¤KúÜ,ˆ«Q£º››[Xؘ+W®p…*GôïØ±köìªV­âéé9gÎ,®PÍD€µÌsB$r11a“¨ &iš†!­‰œÏ½J½R»ººqË܈~Á{ÞðÎŽèOOOõÕW¹åZµjñå‘‘ |ÜWn"Àª†;cÁÜÅ!}©`–*“zIp_S Òì•#TŽè÷òòúûå;wîðåj&"¬j¾ Ý*F†8ï¢aú)MŒOÍdâ™aÜLVˆ{¹AåˆþþýûÍ›7ÿÁƒ¬Ì̱±qBKßìD€uÕ]l¹‹=“I•-,§Ìh"ÄÝšX4Î]åˆþ©S'»¹¹¶k×¾GÞ­Zµtp0xÞÌND<2_›~2¥¦Ïíñ¥úýÁçn5äî¢r~ÕÎÎ."b\DÄ8åú®®®Ë—/]¾œB’““7nÜÌoÚºõ‡É“£ìÑùØ”Í.œžj”c2f𢛪:‘)…å^A‰‰‰{øðaFFF\Ü‚7ßìM0›×w&mÓ¶™dÕS²ø©U,÷Òš™‰žrøùùvîÜýéÓÜ^½zFEM$„øùÕ­U«ÖªU+0ÛƒJ¥J%üðHá©~ø 5d^’ò×3›rË@¬K‹á!!Ã…%èXlXÚ1ñ¡“â(¦ßX©È‚¾¨aÀ¼vœò¿k×®‡„„6lؤaÃ&!!¡×®]·ô yB-À‹I±%ΘÈb7®#’ñob±¸+pëÖíÁƒ‡öìÙýÌ™“gΜìÙ³ûàÁCoݺ[*5ÝØrç¢Ê˜Ö4cFC‹­Ÿ<ÉéÑ£û§Ÿ.¨\¹g8ÏŸ?ïË/ÒÒÒ4h°dÉ¢† _ãgKþÆ_ºtÙØ±£‡ÕO:ôýG²—-[¾lÙ®Õ¬Yýç?_¥¦¦qSoV­JX³æ«œœœàà¾óçÇ999‘b·Œé´ZíܹóNœ8QPPØ®]Û¥KW«V­ÜÝ<ŸÚx‚(k$#°– ¨ÀunºA*U“&‚‚aƒd *ÓÀU¦‰³…9rì­·KÞzkÀ‘#ÇøUQ®êS§N<øßcÇ~½?=>~™°¡éBCÇŒzþüÙóçÏÔ­[7&&O0 "™í´X“‹DRQ A¢=£dÙÆž*¬b'ˆJ2p•YYY¢ô{^^Õ²²ð«¢\ÕsçÎá2nÏ;ûÇTÞùÁƒû‚‚]\\ÜÝÝg̘zôèQ< € UãÌaSZ9Cßÿz) D%¸J—_~9##½zõê|IFFz•*UùUQ®j}@+F“žž®¼ósçÎÏŸ¿ðòå+999¢ó€ &ârsP¥Ã„IlÖTµ+•ÔÒo¼´}ûOÂ’íÛjß>P®>Ÿq;%%Ŭ}ܸˆágΜ¸};ù?~gŒáiT0ŒÇÀ0Vì¡‚QŽïjìÓ„+°3ˆŠG”8[ȤI׬IܰaããÇ?~¼aÃÆ5k'Mš(·«˜˜y\Æí˜˜Ø*èéÓs¨xtúE™Ö/»ðìÊn,ò#œ ‰”™Êjx-ðÆ/³SŸZZ”8[H:þ7®ß·ï@ëÖíZ·n·oß×ûûËŽiÓ& {÷^AA==½&Ož¨| øøÏæÍûäµ×2<0°]Eº£þÉYþ‡ÞŸômÏ_KüpñÎÓ­3~ôÙ5î¯;™3?ÛÑwTBßQ 3?Ûñ×LKúˆH‹ŽhiýR9(e©ìF–¹¤»Fz«Ô‡'ŽˆÊäW>~¼lÚÙ† _[»öÉM’;7.L®šè@Ý»wëÞ½¿:|øPÉÝ–;2²OˆÙöfçFK?~Û«J¥'¹ùWn¤nûï…6Í|ËݵüöpÊ'Ûÿ=¨ÝìÈÞ„Ÿ_ŸòÉö/æþëÕW<ð§ €2B‡9åר8ŽŒèM þŒ*(°cÌ©(Q!­Æ7ߟ îÚdHÿVÜêK•][ø¶ðãVu:öÕ÷'öú#÷iAPËÚSÆtusq"„ä}ñí¯I'oBºÕÿ`xGGG{Î ôïÎßí:—žõ¤VuIÿž½þ§3©éÙ~¯V9®‡¿§Ün9c–û/gÉvúŸ¡olÝ{!#ëq“ú5ôx½k`}îÄîg>Ž˜½åÿ «äæÄ_Ë·ÛN½Û·ep·&Üjp·&Oró×þp*z\Onoc}¿ç|îÓ‚.õ¢þÝÅÑÑ^ò ü‚škÖ75ÆïݸbÝ‘ Ü),Ò5{íÕ™á=ª¾ì¦pP…Ž í²qÇÙ̬'µ}uÐå!Œ”Õ8}ñv ä¶nøéìõ¿î¯þdð¶U£œÖl:Ε½åDFÖ“õKF¬‹~÷þÃo¶žä›üv9eé¬wv&ŽíX?zÑÎçÿZýÖÎıêÄÿç…ÝrêöˆH¡âÚ_÷×ÌüóúÈaÖm?ÃÇ^·ýôÛ½› •;t÷öõ…%ÝÛ×ÿír ¿zéêݯ?ºqYȃrþoÛ)¹ƒZt-B5çþMÝ•;~¿ë_}šÿ°jô+Gû¾Zeåú#ÊUèØs—S>Ÿ3hGâØö­ü%þ‚G<ÿLñ÷Q±ó…ÊÿÜÿ3sA®ƒ.—0ÄÝjü“[å%7~µëÐ/¸ÜêžCW"GtªVµ²›‹Ó˜ÁAGÎè¿0ÿ|âzÄð/¿äZÅÃmBH§ƒÇ 1|¦ŒîêíYÙÙÉá_o¶È}ZÚ…[}·o‹ëÝWÞ­)ㆾááîJ hªqqvL:qƒs¿œ¾xûí^ÍD•_ !¤ÊKn³Ÿò«ŒèÈóÃ;TÞ»ÿHd/›En·Êµôÿæû“ÿÙrâÊÔaÝM+´lâsðØõÁýZò%]oѨ¿j8çôGU=ÜJ·'ÿy”;{éžéaÝ_ñrç c–ï úF›¦¾n®N¹yùýF­VÞÉ3v,%7ÕM?¡Šc+Úï„9å;æÚ1£ §pËX‘ƒÚnßéÛNßKTT¤Ë}Zpæ’–ßÜíõøÿ$ÝM{XT¤»™’9ï‹ÿrå]ÚÕ[¹þÈ?rÿy”»bÝá®Aõ-:¨ÜnÝ+9kïfÉ>|” °iÇoÃHfé y»Í–Ýçvþ|9'7?'7çÏ—·ì>òv[¾ÂÊu‡¹sþrÝ‘îí¨9¨z>Žßõþ€VMê׿å:9Ú;9Ú§¦?\,p”Ë´+ü+· €Åæ»`èŒ`ã¤ÔB˜ƒ®À¥ˆSv£ß§°Ü­Æ+^î_Æüëÿ¶š³õŸG¹•\Õ«¾pznëûý[mÚùÛ”ùÛ3³žhjV60€+õnàçÿ÷ë°¨µ„.õBÿeÙÀ¹Ýî×jܬïrŸÈû¶³£µª¿Ü«Ãk’[}jTY=pÍæã«6%„4}­æâèµj¼ÌWxýµWCglÈ}ZÐ¥]½wÚª<¨Jþø3õ?S?M8(tpÍëþåú#s—ïõ®Zù½~-¼¡|ÐgìXžMÔÕnNp²g:·Â<¢Ë3ÌsXÿ9zÊŸÚ))•÷¿ÅïêXßÒ ¼%‹¹Bàù’òWRÒþp<7­öfRÒþ.]zò%Ü©:´ æ›Beº.ξgÇtÎ…Ouù„1ɈÀIIûñ@”ÂÛVqÌ Æv']¹wÿa—Àz¸Å”TÖŠG ³Ó9å8è ‹ñIà0bDú´­†ŠwQ݆­¨^í¥9z#'ekHéÅ[nÆå"»;å;åQVhhÇ$þ6*¤RäÙ=*ðÉ`^Ø #f˜ÉÐ]½¬S¦sÐå;æP±A/±TÀÊp²ì Ó91–gg'™CÞ:äÚ³B*Ñ”˜û ÖµÚaÄ^WèV”_DIÕk¶!icvº"ç‚V@FLòAßÁÞ‹[ÂrNÀýÄŽ1ç¢{VøÔÞ¹ÀÎÞÈgŒPæR”ïP”ggp²K½LŒwˆ;XÇ¢§ÎEE¹Ž®vö¬8$¤~ÊeŽEyN…¹bŸ 奜 o8i î`Uq׿8ºåÛÙ oʈ½®À¥0GTÀÈB§´8Àå¶Ežƒk¡½‘QÎtÎ…y¶z7 IDATº¨–?$3ÚÈÞ–R`ç œ~j_”ï’ÿرHÆf'ü'S3¹; îPFܬ%ÌŽ:æ:æ8è ÌÌd‚2Uá–)Y)Y|Æ¿^½zþ—ŸùÉë֭ןþY^þp’J)­T©’¯¯¦cÇŽcÇŽöô¬úüÏ!’@¹–uB˜SáS‡¢{nH U”uBŒCGòTf1Ár·¦ÙèêêràÀA~uÿþnn®åëÚµÚ›·o'Ÿ={rÑ¢…OŸæöîÝ÷Î;x$PÏKyÙ•ò9>µ—óÃȼåò6Ûï”Ê!îÖÕ÷ñãÃW­2$‘XµjõøñãøÕ¼¼¼3¢5jÚ¨QÓèèóóóEÍ‹ŠŠ.ü¬E‹Öõë7Šˆ˜ðøñ®¼°°066®yóVMš4OLüJò MOX«Õ††ŽiذIݺ¯ ’žžÎ×LLüªmÛ _ß:râææÖ¤I“˜˜9C†¼·xñBÈ AïíØ±“¯p÷î½Ö­Ûeggk4þë×o ìàï_¿OŸàÿýïªÙ£¯[·¡}ûNuê4è޽שS§·mû¡sçnuê4èÓ§ßÕ«×D—#yíII‡ºwïåï_?0°Ãƛ𸛂±;ÆM]bæ]1œQO©‘!OËÅßW!îÖÔ÷Þ½{eeeÓìÑ=úý÷›/_¾0`@ÿ‘#CüeãÆõ—/_èݻ׌Ñ¢¼ö¨¨)“'G]½zyëÖï.^¼„gئÈ[V—™iq/M…¥MìììÂÂÆ®\™@Y¹2!,l¬áŽüôÓÎ9sf{zzzyyÅÆÎݾý'QóÍ›·ÄÆÎ©Q£zåÊ•¢£§ïÝ»+ß¶í‡yóbjÖ¬ááá3[åÉ<¸/((ÐÅÅÅÝÝ}ÆŒ©Gå7ÍšõQÕªUÔìÄÛ»ZVV!¤S§Žnn®;wî&„ܺuûС_GŽ áê,XW£Fu77·°°1W®\1{ô… ç׬YÃÕÕuôèÐ'OræÏŸÇ­Ž;ú÷߀䵻¸¸¤¥¥¥§g¼újÍO?]€g”K¨¼/^Jè!îVSvŽAƒÞ¾zõÚ÷ßo½víú;ï¼%Ü”‘‘¡Ñøp˾¾¾颶ii©]ºôÐhü5ÿ–-Ûdffrå÷ï§ûúúZz&çÎ4è½×^k¢Ñø7hÐ8+ëd{«ÜIZÚý*Uô¯ÈȈeË>×étK–, suÕNà+¸ºº™=º°¾\sÉk_½zÕ‘#Gûö n×®ý¾}H`lP¶‰âWT™D©ÄÝšÊNqtt5êßÓ§Gêèè(Üäåå•’r§øZ/¯j&f²÷éÓǵڛÜ?Þmâí]M«ÕŠ*;8ØçæærËœq-bܸˆágΜ¸};ù?~çÓ®[ÄæÍß½ñF·Ü£GwGG‡Ï>[|öì¹aÃÞWnX*G—»öfÍš~ýuâ… ¿-XðɇΠlÒ!ÃÌ×âg¯r#dørjb×Sˆ»U•#,lÌ_Ý;v´¨<8¸oll\fæƒÌÌ̹sc U6lè̙޾­-,,ºzõZDÄ„â_ïÌž=÷Þ½Ôìì츸ù\a£FV¯NÌÍÍMMMŽþØô4ž>ÍsvvvvvNIIá]á*ÉÍͽ|ùòœ9±7nž2%JÿtQ±re„ ˆÞ[¥{tã_B×>a¤ä䛌±¢"Cô%ág¹eléÀ ¹²™± ‹<3 ânmeW`úô©žžU;tèÔ¡Cç5ªO:YTaüøð€€€Áƒ‡Ö¯ßp„I}úôâÊ£¢&Ö­[·W¯7ƒ‚:Ö¨Q+üôÓùûöhܸéÀïJdŽÿlÞ¼O^{­ñ!Ã%+H¢ÑøûúÖiÙ2`êÔÎÎNûöíÖh4üV{{ûÚµý zÇì~JvtS$¯½k×®¡¡£4h4þÂåË—â¹åÕyCely&á¥A‚ì2‡Kýb^{hè˜ú›þæ ì(w ²«¾¨Êj§B·Œx“‘¸3B0C”:nóæï´Zmpp_ô¥ ïa‚o±L°•Ë넎eŸ_ÝZµj­ZµB8¸PBø¬©” µœ2ãô©ú©Pv…ÔâÊê(:€Ò´Ö þujT,ø_F(£Ž¹ÎEÔâ6bœ3Y7˜è„ –E©]¡s¾½S¥„Pˆ;ØŠqnn“ÀýbüUGž:8Q†ªPÎ,{ÂŒF¸3ÂÑÙ9Ø9Ú9ê¨ðEq›“qƒ]N™„Ï¡„QZ`ç˜o\–>J ?·›AÜÀÆ ts0B‹¨}S½“p–ªÐUqÂÄõN)!ÂhK”RÎî7Ø©dcŠ1È ‹râÄÉvíÚW¤à-¶p-†SÞNñƒctÔ®ÀÞé±C¥'Žn:jO()NÒ'õâŽ?ªçÊüù cbæXq½£¢&º»»B;¬_ÿuêÔ!„dddôìùæ¹s§•÷/ì¶mƒ6n\_§Ž¿èY2{Î/å7ž{µ+´s,´s*²sÐK¶\HÆ”¶b˜Ä$™kXtÛJÖŠ1¦Õ¦L›6ãÊ•?8q?wîüüù /_¾’““C÷cLdnèôôtŸZÅ/¾²B~m‹RNB^~¹Êƒ™’i²UEr· mEÇRs ý&‰¥gnÑþ_zé¥iÓ¦L›6…1öçŸ&$$†‡Glذ–§57˜WÅûQØ¿°7䲟›ím`Ë»ŽÚÚ9Ø;1jψ´ÝHÙùçG¾>¨ZMÙù¿m__ÍçŸ/Žþ8;;›Xž*ºZµj|í;wîðåfók«§C‡ör_PŸå(¥x†%è7K^²Þ”ÒzõêÅÅÅœûQJñ úmܸ°~ý˜j™¥G·è¾DEMܱcW—.=êÕ{­ÿ·=z´jÕ n“\Zs•û—ÌÊ5”R½¹ÍÑ?• #šÊˆÈŽ7LTE‚ì2çEN Àó§Ü}Puèk”ÿš.¸#•t¼0óaß)r¨€­ÀÄJ.í‘–| ‡¸€­¨»hIÊJè¿ÒÎàsë«:USKöS+3U}ˆ;X_àS¢š7£rST‹[PjÜâ6hÊsR-L¾|î`³OÅ^&¶Ø™i)ƒ¸€íÛð„ʤlw¦à®‡[lBÂå7I+»tóâ5‡¤¤ýèÚÒB8=žQñ)äRµð5á0bDz±´ÀLÔ²ãĉ“QQSîÞ½WaæTKÆ ~Ï(É4U#ëTÒ´w€r¡\fí^½z¾PW ^l¤í&z/-ÿð¹[RÉ¡ü|bû=KŽidÖ~þO¨v»>B¤ÙÀóân#¼9”‘YO(±¼sÿåg/™sƒo^ÿân5är(ôÞŽ;ùjwïÞkݺ]vvvRÒ¡îÝ{ùû× ì°qã&"•ýY.ùr嘖KÖ̃ÌÚ™µÅ¢ÎDú.§âRŽÃ4Uˆ»ÕË¡±|ù NÇ­._þù¨Q#ÝÝÝ£¢¦Lžuõêå­[¿»xñ‘Êþ,—|™”MŽi¹dÍ<ȬMYXÅäG<÷ç€\,llÏž=^}µ&¿ÑW>¹äËe”cZ2Y³dÖV¿³O2k«¤üÅsoý¦±0Æ?–aÒ:.Ì`¹[.‡òÞ½»®]»²ví7> à÷eË>×étK–, ã²B¯^½êÈ‘£}û·k×~ß>éÙ \òeΙвe›ÌÌL~“ÊÓƒ½÷ÚkM4ÿ geý£| rÉšy¸ÌÚ’›l*³¶EW]‚ÌÚê÷¯ðTÈÝ\…ý#³v¹õÊ0 âû2ézåOÜ+^îGÓÊ=ztwttøì³ÅgÏž6ì}®°Y³¦_xáÂo |òᇳ$w%—|Y%–æ€6›¬™µ 2ku¢NE¹lž SÁ?‡ån5r(SJ###V®L˜0áGGG®p„IÉÉ7 cEE…\¡(û³\òe•XšcÚl²fdÖ&Ȭ T›ìFâÌÔÙçL´Å°d÷,CÁ³ C™boo_»¶ß Aïð%]»v Ý A£ùó._¾´Øj3Êþ,—|Y%–æ˜6›¬¹62k#³6°DÞe u#ž™ÑŸ~úaõê5üµrá–)_K– ;4tÌ€ýŸÑ&à¤\~PUr°3ÅFáõ–»Ê¡ÇjÆ ?˰b"?L8??Ê”é 4nÙ²MBš ÿhêtº7iµÚàà¾øCàÅóÈ(*;“õЈ |îŠxÍ&Ï0¬¸¸¹ÄÛøø¥™™™Ç9p`ïÉ“'+üöó«»bŪøøEvvø"À‹èQ雈½TK¡‹Cå^¹ñÂÏ>¬X²~›6A[¶lòóó%„üõ×­Nº¾nÀ‹â–iÕǹnWªf¬Cå^"?6Vå°âùó^¾|%''‡B)•lÎ×OOO÷ñ©U,”>xv Ø®gD&0°ÑÿÒ>,‡¥Ã~«U«ÆŸÕ;wp?M¢Õ˜íLvà£d»Òz¬‹†ýBÞzk@ll܃Y™™bbæ 7a(. Üá„RSɧT¨çòñ€±+­¡Çê±hØ/!dòäIUªTi×®}½Û¶mƒ'Pñô]fXŒ‰ÍÎL-yi#ÃÊ|PàyRî>¨:¶êSì8g+]5L ŒêÙTÉ{CAø°¶ÕÎÿÎ=iç‹c½Ëý  wð¬Øòç |zåN᥷(8`Ä•9³žqÒwVÂw€ÁÈ'°Ü­oWvëÖK8”1ÖµkÏÛ›%kXZ ¬Õ€ìÏX¦ÝLu;&tÙÃçnm\]]8ȯîßÀÍÍõyž@)&°V²? oqSegÜRyC]P[°q·&ãLJ¯Zµš_]µjõøñãøÕgI!Mäó) QH`­2í²Ù³‚ìÏ(ÚÞ26;#rNwñ÷U'ânMz÷î•••Å¥Ú9qâäÇ{÷6 “z–ÒD1Y6Bk•i—Õœ-²? Ö7#Ï.e¬ÊŠ ÁFúí· èÌ2eĈ0Éqî\`úM›¾Û»÷¿k×~3|øÈ¾}ß<øÝ'bV™,[ˆBk! i—Íž­dÏr8¬·¬Í.µ.ý06Û !¶Ù Lܶôöҥ˿ÿ~ëµk׿þ:Q¸éYRH“â|Ê‚W»Ä ŸK`-J*Í¡ßM²¾ÂÙòpÙŸ§M›ÂûóÏ?ÃÃ#6lX«p¶*OÙŸAÅÁh¤;Uš¯Ä‡"¨ ²+ŽŽŽ£Fý{úôèÑ£Cùt©ÏÇMM²l…Öeš6ÙŸ5ƙҺI}&·ân}ÂÂÆüõ×±cG‹Ê-ãV‚dÙ ¬-ï¦æl‘ýµoþÀˆ¢Éq·],ãV‚dÙµåX[ßMÍÙ"û3ìT­üK‘e|×Cà0žåòƒªú¨¦dê:àQ+C…J] ÊNà–kÿºWm¯ «™ûÔ Ë¬m¶3¡œÊ+½q,wªðV`w°Ë]•CF¨ûTy´ ÄlDà…–¼\-'ƒ¸€ "ïaÌÒ]áƒ*XÝlçe]…ˆSûc ⶠ¨šºT¸n«‘”´@‰ÎªøÒϨ¥ø îVC9Z$@™hâ·Ò@“(âŽG`ë²®ÒZ—˜³ q[´Õõf83«ìÒàƒ*ؤ¼³µ‚¸€îŠPXîP~t]ègg´$†=%>w°Q›Ê}P5ò—1Xî`#²ÎTÄ`bûÜd‘_‡¸ÛHã ð0Y«\4ü‘Ï®g¢ïw ¦ÀT\˜•Z öz÷;3ZBÅå÷@…±áa¹[­ö¦V{óðá_\]]££?*Å}òÿ*L/™½^ѲuÑétëÖm˜3gÖúõu:u Þ‚·¸‰ÌÀˆ»õñôôœ3çã#GŽˆÊóòòf̈nÔ¨i£FM££?ÎÏÏç UÆß"‚Fã¿~ý†ÀÀþþõûô þßÿ®råEEE ~Ö¢EëúõEDLxüø _?1ñ«¶mƒ|}ëBž>}:iÒ” ·lÙ&!a wèAƒÞÛ±c'ˆ»wïµnÝ.;;›[ý矚7oõðáC¾Â?ÿüÓ¢EÀÇ“’uïÞËß¿~``‡7•zJö›éEIžß« ;‘ìI‡ýZµj•‘#G¼ü²Ç¡C‡ÍÞÉ"w§@EÓt5ŸT™ &5£wýY&dÑ¢ø´´´#G’þE«ÕÆÇ/åý%°O=þÃß_¾|¡W¯Ó§Ïä W¬Xùûï—÷ìÙuîÜ— òõ/]º´wïîÛ·“ !‹/yüøñ‰GØ{êÔi®BddÄòå+x³tùòÏGéîîέ¾üòË}úôÙ´é;~‡6l8p€‡‡GTԔɓ£®^½¼uëw/^*õž”ì7Ó‹R> …Hö¤ˆµk×…„ '„„„ _»v­Ù!ÙÃBîÀ‹ÁDø!î¶Af惘˜¸7Þh/*ÿé§sæÌöôôôòòŠ»}ûO*tá?¾|Á‚¸5ª»¹¹……¹rå W¸yó–ØØ95jT¯\¹Rtôô½{÷ñõgÍú¨jÕ*ÜòŽ»fÏþ¨jÕ*žžžsæÌâ ;uêèææºsçnBÈ­[·úuäÈᙌ5ríÚõEEE„¢ 6JqqqIKKKOÏxõÕšŸ~º ÔûS¡ß„¥| ;‘ìIcO‘öâÅKÁÁý!ýû_¼x)%%E¹¹d Q¸S âÊ63r»0Qm3@Ü­ §¿:tÎÉy²pá'¢­·ìë뛑‘®fŸr>÷*Uô¢æêêZXXÄ-§¥¥véÒƒ;–-Ûdffòõ½½½ùåôôôW_}•[®U«_±lÙç:nÉ’¥ááa®®®Â3©[·n:þûö „ìÞ½§uë–¯¾Z“²zõª#GŽöíÜ®]û}ûJ?¨½B¿ /Jù4v"Ù“BÖ­Û™ù ^½†½z 33¬[·A¹¹\ó(Ü)ð¢è¼¬ßFÚ•ƒÑ2ÖDÙµâåå•’rÇÏÏ—3½¼ª•ú x{{ÿøã¶êÕ«+Wóòòúûï¿5 !äÎ;|yÝ/^òÙg‹Ïž=¿È´á¨Qÿ^±bå›oöþúëoæÏŸÇ6kÖôë¯ !II‡¦NÑ«W)§\PÙoʧQâÎÏËËÛºuÛ±c¿úøèß )))ýû¿5eJ”³³³¥=léÅÏBeó©ʼnd¦Eü&Xî¶KppßØØ¸ÌÌ™™™sçÆÌ•{xx$''—Ê!† :s懷ok ‹®^½1A²ZÿþýæÍ›ÿàAVfæƒØØ8ÃcFiddÄÊ• &|àèèhÚ°S§Žd­]»¾R¥J7æ 'L˜”œ|³  €1VTT(üS¦ý&Bî4,Ú‰);vìlÖ¬)¯ì„Ÿ¦M›îܹK¡•\«¹SÂ~“[åJÙ‰xŒp¼ê5wÛeúô©žžU;tèÔ¡Cç5ªO:™+7.¬_¿rºr>wIÆÌÈȈ‹[ðæ›½ !:nãÆMZ­68¸/ú§,z¼èÆ;Uš£$eHýÃU  ??ßλ?}šÛ«WϨ¨‰„?¿ºµjÕZµj…L„2éað¢ýÈ7ˆ:€H~AUµ7ˆ;PEHÈpnVŽð7&º¥L{¼Ê.˜ÐÈ,Ôs~¶*#n°eg¢ ¢¥ê¢½ׂ¸€­Úñj2âÊúÜ2`㯈h¶…[lJÔÅ‘„§„1^åa¹€-è†á1LEC&W–;Ø åNUÖ“+€¸Û ð0¼xRnl3s3—„dr}@Ü€˜«Â,±Í yd u!îÖÔî_ãÆÍÆû 3óÁ³ (jXªÃ‡ :¢^½†Íšµš4iʃYf/ùY®ºtd×®]/!a u`‰Ì3ãœyr!©ŒîCÜm$È6Ëš5ÿ=:ôâÅß~ù倇ÇK|0Aîz dƒËÎWþÜŠxî6d+°~ý·]ºtvssóô¬:sæôӧϘ½Ø*AvYg¶ê¯1?ân3· ²U¸hZµji¶Ú • »¬³ƒçè)•jÇÄÝú A¶®\ù#.nþ‚Ÿ˜­ùB%È.ëlãÀ†^†ÿ…¸[$ÈV™ ûäÉScÆ„¯\¹Âß¿¶ÙÊ/T‚ì²Î6¬ì„Q3,ÒØ`çÁ Uk‚ÙjdïܹkÞ¼ù_}µæõ×›¨¹¨*AvYg¶$ûT…Êס°Üm$È&„$&~5þÂתTvò‚%ÈVәȚ]þ5Êšöræ?Ü2¶ dBæÍûäï¿ïvíÚ“¿¢'OrJÖo"*F‚lK³ƒr#ëÂ(”IŽk76ØÅËH]ö· ²Á3ô0°”ò— »ywû[}îTÓ–;P d?ÿ/¨©Îz´ ½žq{„üÙÏ¿‡Á oyS&½•)šìb“âTƒÙÏ¿‡Á d·3jªÎ’’-^—­ð`mm/QÕ ö$¾¤ê}4w°.Ôà^GðñáIDAT4W?èÑDÓlÌt—h*gäSƒ}.oÐÃç6c¾›*¹x…É×1*‚å6 ë–}4W ËÝj$%!Ì%G8¨|Ã6P•Q˜ÁYq·6#F„¡(1iâ·yɦޯQjÐ÷bqÇhe<šT0*¬)¥À6‘x#à€…@£BÉ“^.3ÉHñh‘Ä;T¿Bʱ;žI™èÅ2.å~WïÀ¿åL»å¥[°–_Þt@h¢3}|*%ïvü‹Îǧ¶ä å¥X°Š!_t€É03•™Ô:徿 pë×o ìàï_¿OŸàÿýïªäå:ôkÕªUFŽñòˇž˜dsÉÓã4è½;vò«wïÞkݺ]vvvRÒ¡îÝ{ùû× ì°qã&Ñ%Hnrñ⥖-[˜½5ÇŸˆŽžéããcooïéYµoß7·lÙ¤|û!-[6¿pá"l`‘ Ëk9•sf¤èŒûË;r î6s‹oÔ¢EñiiiGŽ$>ü‹V«_Ê×9uêôÁƒÿ=vì×û÷Óãã—©Üshè˜Ñ£CÏŸ?{þü™ºuëÆÄÄñn¡•Ê£pGÿá‡ï/_¾Ð«WéÓgJníÚu\.Ðák×®n’l.yz<‘‘Ë—¯à,_þù¨Q#ÝÝÝ£¢¦Lžuõêå­[¿»xñ’è”·BÒÓÓ_yÅÛl×´ž1#úìÙßž<ÉQyû!5kÖ¼ÿ>éS3Ë"µgzû[ÆD7J°ÇãuÁ-cCdf>ˆ‰‰{ãöÜêO?íœ3g¶§§§——WlìÜíÛâkÎ;‡+Ÿ;wö?þ¨rÿî tqqqwwŸ1cêÑ£G•ë+œÀ‚q5jTwss såÊ)G“öâÅKÁÁý!ýû_¼x)%%E¹¹òéuêÔÑÍÍuçÎÝ„[·n:ôëÈ‘!„—´´´ôôŒW_­ùé§ D§¡¼•B)eŒ‰þ…ÿ¸Â5kVùújfÍšÓ¢EëÀÀ7bcã²³³•o÷§F)Ń e·Hß©QˆGJMMsƒF 3.Iù w+?‡srž,\ø W˜‘‘¡Ñøp˾¾¾7…O­â†‘ûBsçÎôÞk¯5Ñhü4hœ•õr}…¨R¥ ·àêêZXXdÚvݺ ™™êÕk¨Ñø×«×03óÁºu”››=½ÈȈeË>×étK–, suu%„¬^½êÈ‘£}û·k×~ß>q”(å­„jժݿŸnüZ’ð¹¿ôÒKÓ¦MÙ»w×µkWÖ®ýæáÃGááÊ·rïÞ=oïjx¼a³?ƒýΔóqLuÆ«¼ØUƒÑ2ÖDrt‡——WJÊ??_Îöò2È_ž’’R­š¾ÜÁÁ>77—“¼¬¬,ÓŽññÇvîÜ©råÊOžä4jôºòY)œ€2yyy[·n;vìWŸâNéßÿ­)S¢œåZ™=½=º/^¼ä³ÏŸ={.>~WجYÓ¯¿N$„$%š:u†èë¨òVBHÓ¦¯ÿöÛ9~´Œy«ŠÒzõêÅÅÅ4iÒ\ùöBλЬY3<Þø»¶PÍ©BœJDéU™pUrä;,w›#8¸oll\fæƒÌÌ̹sc æ7ÅÄÌãÊcbbÈ6jÔhõêÄÜÜÜÔÔÔèèMwøôiž³³³³³sJJŠÐQîáᑜœlÑ (³cÇÎfÍšòÊNñññiÚ´éλZÉžPX###V®L˜0áGGG®p„IÉÉ7 cEE…¢&Ê[ !=ztÛ¿ÿ€Ù+z÷Ý!»víÎÈÈ(**JMM]´(¾E‹æf[íÙ³·{÷nx’A©™ë&®Se7ânsLŸ>ÕÓ³j‡:tè\£Fõ©S'ó›Ú´ èÞ½WPPGOO¯É“'r…Ÿ~:ß¾78ðÀÀv¦;ŒÿlÞ¼O^{­ñ!Ã…Æ ë×o€éÏF…PæÛo× >LT8|øÐo¿]§ÐJîô„ØÛÛ×®í7hÐ;|I×®]CCG7hÐhþü…Ë—/ÕWÞJéÓ§÷©S§µZ­ÈÇ"ò¹GEMܱcW—.=êÕ{­ÿ·=z´jÕ åN¸uëö™3g{÷FLP`T:ñ3ÖuA5®IMZˆ?+² TbËT€¤%&4tÌ€ýÕÿ†P×_®ºxñÒš5«J÷TÇŒ oÑ¢9ÂX‘¤¤ýÏ-CŽ0üÀôé)ÿ¥'%í2$T~€‹-cß´+5Œt¡TÒá ¡¸IMÔœŸ;°it:ÝæÍßiµÚàྥ»çˆˆqeqÂ¥¬”ÌD0ã‘ñ²P‰-T1e6Ÿ¡ âl?¿ºµjÕZµj…\ˆÀ¦1ûsANýy»\¤ä”ÂQn8»8°Œd`Hμ‡¸—^LŸ BRƒrij8`™ÈïÎä{3;Aà0° øPìÔPRì^g„RF8/»LUbx+èÍ{ qëbp¶Ý Ýú”™Ý‘3âÖVwéD~ZgÇ^ Å>w½yÏƹ€UQ#è¢ú¦ã ù„¹IL¶öhÁ‚o½õ·–;+_iövîÜÉÉâø×¿þµsçN< %Ö&h¶e¸ƒO†[åÅióê¹±³¦Ø¥S¬û”0BìjÖ¬ùðáü¼¼ÿûß•*Uª^½ú¢E‹mè’%K|||¸ùOŸ>3fŒ‡‡‡‡‡Gxxx^^W-77wĈ|sÞe_TTííííææ6xð`>Ñ¥4!!ÁÏÏÏÉÉ©eË–—.ésåìÝ»·I“&NNN~~~kÖ¬á Ïœ9Ó®Q<©víÚ>}º¼Ë®é¿R? ?H´óR™”=wî¼  Žþþõš6m6îøñ½|øð™3g¸ÂÔÔÔš5k OÉÇÇçÞ½{åú¶ “BˆD””“GW¤ƒP¦˜0‰5#o"ç¾áGraí"## !6lX¶lYµjÕ¼½½—-3JÎïååÅ-oÚ´iÙ²eÞÞÞ¯¼òÊ_|±aƒ>ÉÎæÍ›—,Yâåååíí½t©!ÂêW_}õùçŸ×ªUËÝÝ}áÂ…?üð¿)!!¡V­Z•*Uš:uêùóç¹BWW×»w殮¥i4šÄÄDÞÌ…®¬iÌ4ÿÄįڶ òõ­CäÓFË¥™VH]F¹°å’G›Ne†î¢¢¢… ?kÑ¢uýú""&<~üDýAš+ô¤°Ã ccãš7oÕ¤IóÄįø#ªÉ @)ª<{l˜ d˜Lœ_©cvnnnœu\»vmn¿ÀQ£F ~9--Íß_ÿ§X§N´´4Þ¸öõõå–ýüüøúÿýwÆ )¥”ÒêÕ« ³{zzr nnn……út Û¶m;pà@«V­4 Ÿ#´zõê";ýÎ;³ª0\ºtiïÞÝ·o'Å´Ñ’i¦RB—Q.l¹äѦ‡S™¡{ÅŠ•¿ÿ~yÏž]çÎqqqY°`¡úƒ*4WèIa‡/Y²ìêÕk{öì:vì×;wþVß”…Ê‹3LÊQC/÷¼cÆ òv¼€þõ—>äÍ­[·äùÊ+¯ðÕnÞ¼ùÊ+¯ðå·oß6m^£F;wî°bøörìØ±#==}õêÕãÆé#²¶nÝúÄ #¿êÉ“'*Þ5룪UõYFÒFK¦™6›Z’gÉ…­&y´Ùk²yó–ØØ95jT¯\¹Rtôô½{÷YtP¹æ Gvø¶m?Ì›S³f ˜˜Ùêû€ÒBàwá\+”˜D1uÚ0ñ>ŒÅ}èС“'OÎÈÈHOOŠŠ’;ö{ï½7yòäôôôû÷ïOœ8qÈ!\ùàÁƒ§L™Â5Ÿ<Ù¸'<<|ìØ±ÉÉÉ………¿ÿþûàÁƒ•¯mèС׮]ËÏÏ×ét¼9üÓO? «mݺ58Ø·¡Â¸h¼½½ùe…´Ñ’i¦Í¦„–äYra+'¢2CwZZj—.=8GMË–m233-:¨\s…£ ;üþýtþ×§³ý@i)»Ù¡ÖSqE*rÝèÅ=&&ÆÓÓS£Ñ¼þúë;v”;ü'Ÿ|R­Zµ:uêÔ­[·V­ZóæÍãÊçÍ›W©R%®y`` ŸèræÌ™o¼ñF·nÝÜÜ܆úöÛo+_^ß¾}ƒƒƒ+Uª4cÆŒõë×s…ï¼óÎáÇoÞÔÿxÿóÏ?;ÆOX­¨Œ2üÌ™·o'ÿñÇïffq)¡/\ømÁ‚O>üp–Ê£p¹°‹Ý)äÂ6zÚŠ“GŸ=n‰QgF¸Ô&1EEEeee¥¥¥M›6íwÞ)ÝËŽŽŽæGÚlß¾}æÌŠÿ]KMÚh!Ê)¡K=6QL-:œÊ ÝãLJ <´~ý†&LêÓ§—E•k®²'£¢&Ö­[·W¯7ƒ‚:Ö¨QZžÔ0ÃTT ˜ÑÄ„Ce?WIÁ%]j ²¿üòËØØØœœœ&$$TªT ÷Œ§TdÔPþd¿Þ‰Jù©ªÌ ßò :L"29QJX)¦Ù‹ˆˆˆˆˆÀƒ%1Þ™^œ™P® ó• Ü™±ª ó¦ê2BC16!Œ±bY¸ˆ»Õ(õÓ<–¦½V“B:22bùò|ÜåË?5j¤»»{™^RfƒDÙ%lxFaÔD”wÒPS#]Д ýÎe´B¦1²A×›iá£GV¯Nüå—¤ä䛞žUûôé5‘“KÆ_Ξ››øÆ… ¿™VãW·lÙT»¶!$9ùæ!ÃNŸ>ÎU¸xñ7.)hnnnãÆMoÞ¼¡¼ÿ³gOò‰FƒƒŽ=jÀ€à[·n¿÷ÞC‡~æÃ*‹+ ì°~ýÿÕ©S‡’‘‘ѳç›çÎVßjš+\oÛ¶A7®¯SÇè3€š>V÷‡”³xîM:Š,pQÔbPLÖt§†á‘°Ü­F©'˜æ±4íµÊÒ‘‘Ë–}®Óé–,Y&Rv‚”Ù”ƒ;]úc)3ëŒ1Vvˆ»MPZ ¦y,M{­rÿ=ztwttøì³ÅgÏž6ìýçpEH™ ^(v³P¦¶¾‰s†‰6CÜ­F©'˜æ±4íµÊÒ”ÒÈȈ•+&LøÀÑÑñ9\RfƒÇlgŒwÉPÅ K\5þ+«qjUÁÄÝj”z‚iKÓ^«OÆmoo_»¶ß Aï<Ÿ+BÊlð‚˜íÌØÍBeû©MLr( >¨>*L‚ìÐÐ1ô7ûS+Rþ>¨6î yŸOcŠ1‰×¢BUètºÍ›¿ÓjµÁÁ}Ñ”•wÆìVÆ;ç¡!©„[âTáçW·V­Z«V­°³ƒ+€²Â¼»]¼‘ɽ î@V\À‹f½SÑÆ!”ÏÑA‰()Ÿ¨!¬0°m¡gÆÁ!¹|z|,weçÚ@ÜÀ…]&LK?3ªÏ a–;Xj²J_Î ±ÄŠ'±Ræ>ÄlÏpç¼ì2_W™Š7Ĭ.æŒË¬ÄM;•ËÂaªæTœ£ƒw¹SŒ–±òˆèÒ¥g…3Ö²]<픚o¤öÁ îVã¹M¢ BRa&~~ü c¦*͈äŒU&«÷“˜ðhlÂhgRá䔜™}Kp@ÜÀ&4^…Y.ó yè[*ê;âåâ—-—Iÿ‡Æ@H‡~¦IEND®B`‚ghemical-3.0.0/docs/user-docs/images/toplevel.png0000644000175000017500000010045211563552731016657 00000000000000‰PNG  IHDRmßÃo0bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ 1w IDATxœìÝoˆ×/üï,e8 -¨‚1T ªÁ·°!3Ä É Ïâ ‘ñ‚ÇøBdÈŽÈ*ûÀÆ~îµ³/6Ö ìÚ{áÞdë lˆOˆw‰/\³“^¤@Â(ã6Ĩ Tª@ } s_œ>ÕÕ­þSý·NU}? ¤™žé:Ó3óU¿³à ßùwˆOoƒˆhÓDpÉÜÀåçÞ‚ñÐc7~~ ggg¸õ›[µŽˆªèæ7ñÚß¾†Ã_‡cqoðs‡ˆLôgE7€ˆ„ˆ!¤o;V!¢šˆvœ¢AD4;mDd ?ý7o¤ˆhݤlÁÛVƒE(""“±ÓFd yaòÂnÑÍØ¨Ñ&}#ED´.BĈ;68ãFD¦c§È@âÓÛµÛgvœ¡Ž›º‘""Z/Çžq#"2;mDd!bĽRêÑî¨ÐöQ=ĽìŒ‘™¸‚{IÝ}ÐøÚÛcß®“¾>Ý–¬M~VqIÏ¡—FÖm¶Í±\Ä"†ca§UtsÈpû—ö7oÝ,¸%ƒ¶dévm¢«¸†I¯ç¦HéÀ'é~Zîkoôg£ê?+&}}uÉ–ì×iÂën¢Ââiô†Û„NM6®ƒT¤qŠî¿¾º±Ÿ¥u^gµYßÓy¾¾q¯û¼ß )Ä¢ )[ˆEBäþÔ•ýO’ÿ˜eÜML‘ÆÝì_ÚÇþ¥ýýì”ågtÖ÷nž¯cÜë;ïk.DœvØt…¹SÞ1Ù¤›«u~]ÓFš‹z=W݆"nJ'µc‘‘ý¬¸§þ–ÒAŒBĹ?·Š¹³Šk2[Ö£Ù²Ìõó~l™s«[n7Yt¢Èç)úÆ|ݽé_´ã²é?šÎ±7PJqK$WiË7Võ\ËüçUô|ë¶èª‹ÞlzTž²"xM îU#s€ÅsgU?̖ɘ-«QöŽÿ"rwÚLšµ¯lUVñ¼³ö@m¢ &«êlí"ß÷¼Õ#Mé NZ2:Ïkvцc¹;¼fþoSÃ{ÒZ}ÌÚ§0‹I_Ë:Tu–dÙïû¢Ÿ³“–oÍÿZº#Fù˜ú;°Lî¬âkb¶LÇl)†)íY&·6¾§mÒò¹E:\Óö­Ë´ýC›ºmÃ2{šVm¯Íª—®ãõ[ö9ó®½Ì>´UÝÃ6­Ë4¢_ =3iŽå‘«2iÉË"7‚Óö,úù‹ZçV£ëò—Ù3°jÓö¬ÊªoPÖñú­ò9—ÙϱJ£{AF÷Šä¥÷Ïê½lEì¥5)w²Ÿ³‰ßŸyÚÀlYŽéÙ²NUÉ­B×Ö·ìŸUtØò<6¯laZ’<_Ãèsåí|ÌjCÑò¼«¬9zÍy†ÖñzN{ÎE¿ï›0ú{¸Hgsôëœô¾Y¤t ¤o;V1K•ô TöÏ*—åý.{#7íúÙÿØ'}ü¸çý¼¼7y®W¤ÑMõ“>f•m}Mæù™YÇë9í9ý¾¯Òèï×"7~£_Ϥ÷Í¢ˆ¼f¬öµ0XŸ;³~óü^Mz.fËj®Y§l1ñgÁ„ÜÚp†ïü{íñ¥õWMÒ¤NfÔépmÜDò7pøâëéû¤TK%oüü:ÎÎÎpë7· láf­ò?(Sþ³+Rö5àëAÚÍn⵿} G_y½¿4;Á±\\ÿÙµÚåÍÙB›V‰B$T,vÌV¯µIôyIEÍ´Q¹ñæ‰æ÷"¡r'ì´úgµ=ˆÙBE+dy$U‹éË7©²ç%eÿ&š‡‰ËjÈdjp(î¶8)¸-d2f 3m´Óö²å¡:iôMTv[˜x4@ÙLÛoB”%¥ªT÷Ô‘DÓ0[¨Hi§Mü#¢â¨›§Ìa·™¨›0Ÿˆhõ„hÏ–­ÉÜ!"“¨xúîŸ#)¸!DTo^3NÏj“²•žÓ¶µµUpˈ¨ªtÖ¨ª‘ƒóÚ˜;Ddš±Ë#ßùá;›nÕÈËßxù÷é‚€Û/Ã=þs™OD´ˆq¹£Kþ:oã?—¹CDEÈæ–ggg€ëÿr/ÿ•zðè•£©O²µµ•~Q^zûÁÜ^¢¤ož˜OD´¬I¹“.ËNŠ¢±0wˆh³Fs+i >ypÓðéøBÇïO}œˆhZ6w‚tÛèh7ó‰ˆ5-wFgפlý¸ô}Ì"Ú€q¹Å’ÿDd R:™BQ‘Í!¢ÈvØ‚þ!ÛDDæa§ˆŒ¡÷²©Î×&¢õ’Ò bÉ"2;mDd„ì Û šÑús€ˆˆJ6"2‚ªà¦fØÂŽƒla"¢uQy3|F‘iØi#"#8–›–ßæ¾"Úo[™TÈì´‘ô “c¹jÆ­™Û "ª…¸cPûÛXý‘ˆÌ´‘NÛŽ¿3öOöñqÿ^w›ò¾½h›6õµ,cRó¶½ _#•ƒ@)Ľ~A’þÔº1ŸÌÅ|¢Mq,•;›*FÂÜ1s‡L5u÷è˸ÜYè1˜Þ>¢*ðUQ€f‚ðÔO—,MÂ|RLo‘é¤t‹6wæ¾6æŽbzûˆªhj<½r4öý×t}¥Øñw&@vÄ¢¨È¶Oÿ[·k´M“ÞŸ},ûøè×>ííiϽny¾³^¢<âŽk¦ù4hó‰ùD‹q, îWŒ{³÷µ1wm`î0wh³¦vÚVBóšõ‹» ýK4)D¦]g\Xû÷´çœ÷k™tM˜§íE¶“ÊϱT%7o;˜Ùic>ÍnóiòÇ2ŸÐUk[ˆûÅfÍ´1wf·‹¹3ùc™;´ŒÍ´þ²šôC› ÉÓ®¼“g]ó"!¹ê×n•ë¯Mú¾Rùd÷³Í*À|ù4™IßW2…Û?«MuàÂNkêG3wÆcîLfÒ÷•Êmc3m‹þÐrC§²ÎéõYKƽM´z¦-OAæ“9˜OTVR:°Å âžÝ›†¹cæÕ{Ú¦YçÅèhÎ<£Jë0kd«ÈéuŽѺ©b1D¿ À,̧Íb>QÍ[1’¹³YÌ¢£÷´*ÓZàyF`ò„¤I_{ÞµÛDó°ÅIÿæÉí/Ušþņ̃Å1Ÿˆ¤gú§aî,޹C´£gÚF×?›þC?:U?Úöe¾–u.˜çÚ³®_d;©Ü²£Ý³:lói^Ì'æ=HJ^3N+GÎZÉÜ™s‡¹C«³‘™¶Y?¤ÙÇG?vÝ?ày®7OûýZæmǪLzμmßT;©>²$§a>=ø>æÓìÏg>Q–mÄ=WuÞ6Xµ–¹3ù¹mǪ0wÈTFÏ´Q}è%‘j´»ðtsU܈¨ž¤l©™¶gCÌ"*ÎÔN[ðéô‘î<Žß?žúøÁ3K_c^³Ú”UDû6%ÏëP察Ìvœ¡}m^sú2%æSµ?™O´ £3máéô¢$ÌjÿÞ1wÈd3Ž‘\Þ¤Q)m8¯YmÊ*¢}›’çu˜çëçô?-c´Š[ž}mËb>™‹ùD› e BÄj¶­c÷«×®sÇ\Ì2ÙÚ;m&þr›Ø¦"ðu Så©â¶ &þ˜Ø¦"ðu MP…G"Ä=}ÌÈìãF–eâ϶‰m*_2ÙŸÝ""Íé#å©âFD´ Ž¥–Gªü‰ŠnÑXì´‘³k¼i"¢ÍÑÅÔ’ìõÏ´-‚6"2BÜ‹ú³kê¦ÉYûâm"ª;=Ã&åôjµDDEc§ˆ áöož)DBDõ¦gؼf¬:pͤè&űl"2†ÞË–­"ID´>jf_Íô#×YmDDE˜Úi›u^Å<çzM#ÌÕYc>Ñ*Ì“=Ì"*ÊÄNÛÖÖÖÌO~ù/¯´1DT_Ù›&Çš~Nó‰ˆVEÂW˲gT¬eîQ‘&vÚÞùá;›lÕȬ›°ãL=ä–ùDDóš–;^3ž¹–¹CD›–Í­‰¶Y§Âommáììlu­"¢Z˜4Z=˜]‹à5‘9ìöAÌ'"šÇ¬Y²<…˜;D´I£¹5uOÛ¤“áõšmžODóºÜÁŽ¿óÀûõM“”-ÄBUr›†ùDDyMÊ)Øâ$]ž=ë¨æm¸ý±,ùOD†ˆàXªz¤@0s Ѳ†«ÕF;Ó‹ˆˆŠÂNAÊÖ`¶%ÿ‰hÃËå`‹6"2‚í¡¥I³–)-KJ'Íš<ûÚˆˆŠÂÛ"C[{ŸÇàN)¯»¬¢Û]—ï×:¯çXn¦j¤ËeJ«ËÏûªÝîº|¿¹ž×Œ&mÀÚÏUA’ŠS—ŸãU)ºÝuù~mòzké´e¿€U¾øEÿlÚ¼U¨òœ!còu—Ut»ëòýZ×õâ^!@Uô¶×³¡Ÿù´uùy_•¢Û]—ï×´ë{î°ãÀ³[ˆ{1 ÈÓõ,Ífî¬F]~ŽW¥èv×åûµ©ë­m¦íììl¥/~Þçòûa,d«zžeõ‹oJàÌ«èv×åûµžë¹p¬þMT3Fܱ×p …ù´uùy_•¢Û]—ï×<×b0»wìµîicî¬F]~ŽW¥èv×åûµ‰ë­}y¤Ê;´è4#0œÁÇâ¥wWõ<«RÔHZYGðŠnw]¾_«¾ž”b÷o¢"HÙZéóÃ|Z^]~ÞW¥èv×åû5îz“JþozY$sgyuù9^•¢Û]—ï׺¯·ÖN›ž.œ·÷yvvèÏYâ ÊEƒ®È£1ǵyÞ€/Óu—Ut»ëòýÚÄõ†ÏJr¯¹Šói~uùy_•¢Û]—ï×2×Ëm¢óÆÜ™_]~ŽW¥èv×åûUÄ×Y©B$ApGmm!î,ü¢ÀÐóÌãøýc½r´Ô(Tvmì¢_–ë–ùõ*úú›¾îº¯7|V’ºªæÓr˜Oåº~¹òÉ…mÄ=w -+sg9Ìr]¿\¹3¿©¶q§q/jîÑG’VµÖº¨5Ûw‚;ØÚÚúAØÚÚZûèHQ×]VÑí®Ë÷k“×Ó³lq/šúq̧ͫËÏûªÝîº|¿–¹Þ`mÿï˜;›W—ŸãU)ºÝuù~ñuNí´½r4öý×t}®‹Ì[U…ˆêDZÔ9Iªì ]Eræ-+î –H ™˜;DT”©¶yCˆV#Û{/jt¤ £IZÑí®Ë÷kÝ×S3kîÐÞ¶i˜OŨËÏûªÝîº|¿–¹žšmË·§¹SŒºü¯JÑí®Ë÷kÓ×ÛÈLÛ&U­´í$Þ¶OÃZ\wYemwÙ,÷:«™µ<6€ù´ŠçYæÓ|ÊÚîªHgÙz€Àôå‘ÌæŽ)×]VYÛ]6«|+5Ó6Z’vÑ̀颅KÛêÞû¤^{ãÆú8wµá9ëºâœPÿ(¶ÚïŠz½ò^]6}ÝMý|è}&Ó0Ÿ˜O£˜O‹]]L˧q¤t DæíƒFÌæÎ(æÎb×_Órg•?•›iËZø¶Ä™(ËØñw&¶9ûØN¤Ú×}¢ `ùÞ{Þëú¾úÏLÞ—ðà>:SÔë•çúy¯’gýÿÖýùÈž—¤÷™LÃ|Ú,æÓ|˜OæÈæÓ(!ÚÜtOí,ÌÍbî̇¹cŽUÜ*|¦m•¥1GKÛ.zÉ‘çÙ”;ý6ëèô—kÍ?äE]wYE·{Òõ7Ù†Ñëq½e~Íò¶„§~z5 ó‰ùÄ|šÿú›lÃèu‹¸Þ¬ß3ÇrvÄ™ÎÛ4Ìæsgþëo² £×-âz«º/eÄLÛ*_Ül˜,ó¼E–¶ÿ‚½ > ø:î¸w°í ñaceÓÚy®|߇8'f¬(êõ½~Þ÷—]öu†’ °ÜÏGܱá5c„„ˆÙ[Â|`>͇ù´Y³òiÜÊÇÁ¬¾›¾= sgó˜;óaîlÖ:ï‹F­m¦m“‡øU’~ù&|×µyë7[SŸß”PzÀ_¯q£Ez‰Ä¸×gÜÇg©ç¡¯3z­yß¿°Ìë<îkÐ×XtDMÖ»·„ù´$æÓ|˜Os½a3òi wñ#€¹S(æÎ|˜;s½ak¾/ÊZËL[U{Óë”ýF§?Pg€Á§ÁÂ?Ìó\W¯q>û‚Zƒ»Îë.«È×ktú_Ó#nyC`ÒóL2úÜúíyß¿¨Ñ×Y “,Pj´;ÏþæÓæ0ŸæÃ|2?Ÿ4ÝaË¹³9Ìù0wÌÏe;nS;m«®´ìÏ<_hYKÛÎúÚò|í‹”-êºË*k»5.X&…á¼ï_Ô´×Xƒîý¼#HÙê/‘tú{Û&c>1ŸLý=/k»U¶|ÊÒDB´÷fï¥eî0wLýý-k»U¶ÜYì¾hØŸ-Õºœ-ô'¡Ò¶üôÅ0׿GŸgÓÒž­ùþƒh|ØHK¸.BO•oýfk®ëŠsbPÒ´›~½²ÿÉfÿ=ú‹?î?ãÑÏ5m¤nšy_gýµåýùp,B¨‘no;€”­¥Ú»æÓļù0Ÿ6cÑ×9›”-8ÍRN?jd˜;³1wæÃÜÙŒußÚx§m“îw†*ØÌóïE­óiq̧ò×é’R ©÷ÓNÛׯÜY æÎâ˜;Õ£ï‹&ÉÞ/MŒ§£WŽV×¢šÚÚÚ*äôù*ð/ø3©|Žß?žø¶”bц”-Ä¢ !&?óiy̧Å1ŸªCd΄Ô4 sgyÌÅ1wªiÚ}Ѩ©{ÚøÃ±¸ìºvŽŒÍ&DœÎ´îÌg>-ŽùD4̱+{˜;‹cî-‡n×Ì¿àãÖon݌ҹô…KE7 ÷‰Üƒ×Œ‹nNå1ŸÃ|ªÇR¹÷§™ 3‡ˆÌÅNAlÁ±Ô¨÷´*nDD«ã¦3nDD¦b§ˆŒ úEÒ3“¸<’ˆÖLIé˜^òŸˆ¨HSã)[釈hѨºæSÜ‹ ÄpçmæÎr˜;4ª®¹³(îi«€"á¨kïø;韼鷳ï_ÅçOjG^w‚;¹ƒeR›&=6Ú¶iŸ?îí<æiÿ4z/‰.ÀÂÕÀ|Ê÷ó©¨|RƒCq°ÅÉÜÏOfbîä{Œ¹cö}Ñ(vÚ ´i?ý[ÿ{ÜcÙ÷MûØY7é±qךõüó\;O{ç¡G4ôŸÑ_¾Ie׿´‹~~žÍ~Îh°­kf´³Ú–÷¹6Ñ~ÕIàˆv‘˜Oãßž…ù4›Iù”­T«—gSq˜;ãßž…¹3›I¹³(ÖI*Xv}tJ=ïc“ž/ïsܼus-K 6µD ;š1kdcž]Õç†Y6à6mÚõ'½Sí—Ò×Ìv˨Â1Ÿ–Ç|ʯˆ|¢¸7XŠÍê‘Åcî,¹“ŸÉ÷E£O›öË»î_ìMMáO ¿uز£ó|~ž7 ¿è/x6f=ǪF}VÙþi¼fŒ°ã@ˆ6¤lõ»¥"1Ÿ˜Oó(c>é¬QGŒð¼60w˜;ó(cî,ж šwZ}–l¸Ì “U_{^£¿4‹®E^嵿 ”Ušu¼mÚTûuAÀí—á^Ëe¨`Ì'擾î4›Ê']òÐy›ëÓ©$˜;Ì}ÝiL»/ÅN[™¼7oÈÍc¿0ENÙO²HHd?~ôó‹^š00¼D‰7OÕÄ|Z3~o‡•-ŸÒeÙé@Q4ëS¨„˜;«ÃÜ)Nå:mºWoÚ =ɺ×7O{þy®½H d?~ôó— ¨Ñ ¤£ë©G›çoÚsçùXS~Éçù:L!¤ûتÚac>å~æÓ|Ïçc™O]“²UX[Ö…¹“ÿù™;ó=wžeî¬N¥:m;þÎúÿÞ2ä‡dýKªÿçã¦}ì´›õËeÞ6®Â¬Ð÷öhˆÍúø<ל÷sçi÷4Ë´eÞÍ>¾ªö#á÷G½«9âÍ|b>{Œù4ûóW•Oã–je;l ¦^ªt˜;Ìq1wf¾ ÷E£*Ói ã3”+ }_Þç›õXžçÎÓ¦y®]är2“Þ˦—,Uó)ßÇ1ŸhÓ¤TÅ·rk™;ù>޹CeQ‰sÚvüœggÀVÑ!¢… JmG™jnåÇ|"2—1Ëý%ÃÜ!ªžÒwÚt0i: ¶PÎõªóÚÔ™Dë¦*¸9p,aÇA¶0IY1Ÿ˜Od>•7Õ9£¹ÃÜ¡j*u§m4˜²ÊL«U…c¹iùm!ÊFó‰ùDåàmªQ‰¹ÃÜ¡ê*m§mR0mm•#˜ˆh˜¾ar,W͸5“b´æQyÄ@‚‚[³8æQµ•²ÓÆ`"ªR:ˆ{ý‚$ý©²a>•c©Ü)k1æQõ•®ÓÆ`"ª& _h&¥ic>•,R…ʸ¯¹CT¥Š§²Ó¥/\*º ¥|ZÞ%*4ÙÁ3ð/LÉŽ;v)gÚ˜OõÁ|*Ÿã÷Ǿ߱€¸_A2î•o_s§>˜;Õ4í¾èú®½]šN[Yƒ à/QÖ´ßÇR•ܼí T6æQ9©ªµ-ÄýâGešicîUCÞ߇RÄS™ƒI=ä’¨Žîw&ŽxÚÏV–‚Ì'"³Mÿ=tûgµ©\Øim¬]Ë`îUÛ¸ßcã÷´U!˜ˆ(ÇRûK”¢ ó‰¨ÜtÅHµ,Ò-Åq#Ì¢z2ºÓÆ`"ªAåÈvÑMÉ…ùDT~e«ÉÜ!ª/£;m€ ¢Ñ·LDÕc‹“þ¿ÜÒì+a>UGv¦ßdÌ¢z2¶Ó–]묊ÁDT]ÙÑnÓ+¸1ŸˆªAJ'$Ò{jMÅÜ!ª7c;m£LDõ G»ËtN󉨜„h#î•/sæQݹi´¢C‰¨úTõ6¤ûÚÂS3«¸1ŸˆªCʼfŒØð³!™;Ddd§Mc(ÕGØq`‹“þ2I^ÓÜeJó‰¨ ÔL› )Õùá©ÙEI˜;Dõe\§mÇßa(ÕÐh7÷µ1ŸˆªEÊ„ˆÕl[Ç6²z-s‡ˆ÷´1˜ˆÈÔ*nÌ'¢jQ…G¢Ì ‘[`kÆcî``§ˆê«,U܈¨:†äËñ IDATËÍT‘ŒŠnÑXì´‘KíkãMm’.~¤fÛÌ›i#"Øi#"CĽ¨?»¦nšÊrÀ6•—ža“ÒÌjµDD;mDd7ÝË&Yˆ„ˆªEϰy͸”gµQ}1–=zþÀ·Du¤÷²e«HùDTejf_Íôسژ;D4ʈNð`±Ä-Q½FuÖ²˜ODÕejö0wˆ(ËØå‘w‚;C#MúߣïÓF?.ïÛDd†ìM“éûÙ˜ODÕ!áyÄÈ(æQ½~k4,;Ê4:âÄ(¢ê;Ž‘‡ÜNÃ|"*/¯—r-s‡¨>Œi'>“‚ht$*‹Fd®ÁìZ¯9¨"YÌ'¢ò*c‡ `îÕI©fÚFqJŸ¨:ôM“”-Ä".År¥i˜ODæ“Ò-NÒåÙ¦/Íž…¹CT]¥šiËÒ£CúÏ´aˆ•AÇRÕ#‚þ™måÄ|"*‡ájµÂNy‹˜;DÕfl§m™){HúóGß&"óHÙ̶XÉ-‹ùDT=Žå=XÄÜ!ª7cŒŽúÌ ’Ñ‘"Q¹ цc¹iÇͤeJÌ'¢j’ÒI‹˜¶¯¹CDYFÜå ”q3ú¾irZDfs,7S5Ò5f™󉨺¼fŒ0iÖ¾Q$™;D4ÊØå‘DT/q/ê/MRU#½í ØQå…žÝRÙ#’Ò@"¢êb§ˆ á±Ôr%ÇâŽ]tƒˆ¨â„Ì®ÅÛè=mDToì´‘¤t÷ôMTÄo"Z;=HDDd:vڈȶ8Iÿmz7"ª†ì ;oDd2vڈȣg%ñŠˆ6Ã…mcŠÃNEϲލè¦QÅ öѺêïfRt“ˆˆÆb§ˆŒ gÖ¥þÝÂÚBDõÝG+DÌHDd,vÚˆÈzf-»·ˆhÝÔl[‹K²‰ÈhŒ("2„šYìm#"Z?5ËÖŸuχ$"3q¦ˆŒ£÷™­“Ê™ÁRl‘©Øi#"#dKnë}&DDë$D¸4’ˆŒÇNÁÛúEHX5’ˆ6CWÔ{jÙy#"S±ÓFDFˆ;6¼f )[¸·„ˆÖo0«ï¦o™¨ÔcJ;þÎÐÛw‚;µ„ˆVAÊ¿·„ùDd> ôY“ÅÜ!ª®Òδíø;8;;œáììì°"¢²Q£Ýe_¢Ä|"*ÝaËî©-+æQµ•²Ó6L[[[é¿PDe¥7NeÞÛÆ|"*ÝQ¢]ꥑÌ¢ê+]§-LЍüË…1âž*J¢÷¶• ó‰¨\â^æpífRÊ£F˜;DõPªNÛ¸`ÒPDå÷¢ô†)îØ¥+ùÏ|"*£(-FÂÜ!"“•¦Ó6-˜4Qyé™6 *ÝÞæQY¹ªI ÷´1wˆê¥¶<Á¤é€ÚÚÚb@•ˆÚÇ.ÂŽSš’ÿÌ'¢r“ðÓ¥ÙeÁÜ!ªã;mó€4”tH±Ü-Q9dgÙ„ˆKQ†›ùDT-e,bîՓѶEƒIÿ›ÁDTj?›[šÑnæQ5d—Eš>XÄÜ!ª/c;m &¢z"å6y ó‰¨*¢ÌÒl³1wˆêÍÈNƒ‰¨ž²£Ü¦ÞH1ŸˆªCʼm5XÄ""2™‘¶;Á´ÚÑ, &¢j½aÒ7R¦a>U‡.õoúŒs‡ˆŒì´ùŠÁDTag¸ä¶º‘2ó‰¨:ôáÚ¦iÌ¢z3¶ÓL(Qµ¨’Ûƒ¶¨ÐöÌÂ|"ª†ìáÚ¦cîÕ—Ñ6`8 ®}÷®}÷¶¶¶ðæß¿ €ÁDT%ú€m=òm:æQ¹I锦’ÆÜ!ª'ã;mÀƒ#K:˜®}÷ƒ‰¨"¤tÒ™¶¸õÏm3󉨼²gBêì)æQý”`LIaU›šas‹€[tsæÂ|"*7ÇB鲇¹CT/¥˜i#¢zˆ{€@)R,S"¢rÓ9÷§™döÔ™…6"2Š„Ÿ%!"Z§¸§þ–ÒAÜ‘¥Y–MDõÃNáÁ™µò,S"¢2‹à5˵4’ˆê‡6"2‚:Ø6êWŽäòH"Ú7q#"2;mDdÑ/ž™Äå‘D´fz€Hïeã`™Š6"2ƒç%q©­— òšq©JþQý>¦´ãïŒ}?KÙÕËç%‰vÁ-b>Uca§…XÄ¢mÄ`s‡ˆÆ)¼Ó0ˆˆh@Ÿ—dÂÍÀ|"ª²¸AˆáΛ ˜;D4Êøå‘zÄ);ò´ãï¤Æ}ü´÷OÁ"¢beÏKÊþm2æQÙ©Á¡¸Øâ¤à¶äÃÜ!ª'#fÚfÙñwÒQ§ì¿§=–÷sˆÈ ª“AßDe÷·™ŒùDT^R:ðš1âÒåÙeÀÜ!ª#:mãFy²á1éßÓ0|ˆÊEÝ~kkkM-!¢u‘ÒA,bÑF™Öf>•WYˆF1wˆê§6€CTu¶8éß<¹p¬r`>•Ÿžé/ æQ½”¦ÓpjŸ¨Ê²£Ýeê°iÌ'¢ò‘Ò׌÷{jË„¹CTÆvÚÆ­ÙÖïcHU—íö¶Í-DÂ|"ª!Úˆ{®ê¼mF5ÂÜ!ª7£«Gž¥ë¶³ÿ&¢êÑ¥¶Õhwá©ÙûL˜ODå'e+=«Í䛯Ü!ª/c;mw‚;¬×ÞÚÚâhQE…'Sæß…×4w™ó‰¨ÔLÛà|H)ÍÝÓÆÜ!ª7c;mDT/£UÜʸ¯ˆÊEʨ}m»_½–ˆÈÑå¨QÉŽ¨?»¦nšC$a>U‡žaÓ{ÛLÅÜ!"#;mw‚;C!¤G“vü®ß&ª,7ÝË&[ˆ„ùDTz†ÍkÆiI1wˆÈÈN0$ÿ‚ÿ‚?ô¾ôc\õvãÃÂÓp³ $¢•Ó{Ù²U$MÄ|"ª 5³¯gúM>«¹CTo†.@ÊÐG’ãÖEDå&ßY{ó‰¨ôJ—=Ì¢Z2n¦mÇßI—ø~?DÏŽ*e'¢êÈÞ4™¼ŸùDT-¾ÑGŒ0wˆ0p¦mÖÚìÚe˜;DU`ÜL[Vôçþ·€àÓ ëÆ`¹[¢òÌ®Eðšƒ*’¦b>U‡©¶QÌ¢ú2¶Ó¦§úƒ HC*Ïô?ËÝ•“¾i’²…¸ã—+Ì'¢²ÓÕj5S—fÌ¢º3²Ó6ZÂV‡ÒhÉ["ª’Ž¥ªG ý3ÛÌÃ|"ªŽájµÂŽ™ƒEÌ"2²Ó6m}ö̵Ý,wKTJz† €Ñ•ܘODÕäX®±ƒEÌ"2x!ÀÀ¼G²Ü-Qùцc¹iÇÍäeJYÌ'¢ò’ÒI‹”e_ÀÜ!ª##gÚˆ¨~Ëí/MŠÀØeJDT^3F˜´!¥Sš""ª'vÚˆÈq/ê/MRU#½íü•шˆvxvKeHŒ.€DDõÆNÂ…c!ñŽ;vÑ "¢Šbp>[ܱÝÓFDÄNAJqOßDEñ&¢µã²H"*‹B;m;þÎПy>o×&"sØâ$ý· UܘODÕ—$2¡óÆÜ!¢I ‹¨Ñ3G&½ˆêaø¬¤¼fq6æQ¸¢¸çÚ æMcÀ¸ÒÀ¸°šôXÞ÷˜~ÃÈ<Žå"î~›„ùDT=ŽÕ/FÒìÿmX$æi…uÚîwÒ£Á1)H¦}ܤÇôµLDæp,uNRØq†ªHùDTÙ}´B[‰¹CDÓ:Ó6:³î°`™Kͬ¹°ÅIf©dq˜ODõ fÛZé!ÛEbîÑ$F,œ6”7ÏUšY3¡Ã–Å|"ª¶t–­˜±<’¹CD£Œ*D2*ïGŠˆªEï3) 󉨤t Dæí˜;D4MiÎi[ÅèGžˆÌ•-¹­÷™”󉨜„h€åþçÅÜ!ª# ‘dß7éñI£FÓ>nÖspÓ-‘9¼íá©ß¿‰*¶ô6ó‰¨ËEØq÷s§ÈÎs‡ˆ¦1¢ɼ¾Úóä}"*Vܱá5c„„ˆ ß[Â|"ª¾Á¬¾›¾]$æMRšå‘DT}ª €ZiZA"ªž¢‡ˆˆòb§ˆ ¢F»Ë¸¿„ˆÊGe÷Ô™ˆ6"2D”Þ8©Ê‘QÑ "¢ŠÓ5!Ú…/$"š†6"2‚c¹Bnëm²Ut“ˆ¨ââžê¸IÙ‚ÓL eqGMÃÅDd„¸AJU„$îØ¥*ùOTW¾r{»{€›·nâÆ/oÜ¢Mˆ÷\æ6"2‚c¹ˆE RÿæR%¢xç‡ïÀ¿à£q®a !°ÿ¥}¼öí×ßñìåg‹nâ¹È=x͘¹CDÆb§ˆŒvœ´ôvØq`‹“¢›DTyßÿçïÃÔ‡çyBÀi:€x=qC4~õÞ¯*Ýq“ðÓ¥ÙDD¦b§ˆŒ ²³l"fÉ¢5{ç‡ïàbë"\×…c;°·í¡ÇímQAXÕï¸i<€ˆLÅB$DdU€Ë"‰6áê__…wÞƒ½m£Ñl<ÐaÓt‡Î{ØÃ•¯\Ùp+7#[ꟃEDd*vÚˆÈBÄC£Ü<3‰h}<σsΰl{|‡M³mB<}°¡ÖmRÔ?b„ˆÈlFßíø;S¿ÜÙPKˆh²£Ü¦ßH1Ÿ¨Ì\×, !³?Ø„ðÎ{ëo؆IÙ‚· îØp,?ÓÏÜ!ª/cgÚfSÞ!¢rYó¶ÍÝ[Â|¢2;úú¢!@XbêÇëÇsf¤,B—ú/ÃŒs‡¨ÞŒœiˆδQ£;þG–ˆ* ì8C%·Õ”y˜OTfW¾z—Ÿ»Œ0 !;]»‹¤“L]"™$ ¤”ï…léæ8v3n&bî‘q3myƒ)û8G–ˆÊO•ÜŽúI *´=ã0Ÿ¨ìöžÜƒÿˆ0 ÑýS²#Õ–J)Ó¿ƒOÌý^FÜË虇¹CD€6-ï(Ѝ:Ë…1Kí51ó‰ÊJïKK’²#‘t„Q˜Î¦eI)‘$ ‚»¤”8ùCõÎN”Ò)M$æQ½ÕiÓ3ï´>Ѝü¤tÒ™¶¸õÏm3ó‰Êîè•#¸Û.DS ¼âö‡·Ç1dG"/ÉÄ›'€ùDÕd7mõ = §éÀi:ðñ`Û6Üž‹ ÐítÇ1„ðâ{1ÞþïoÝœ¹I©fÕ¢$I`Û¶: “¨j’=©*Jv»HÕ©ºyë&lÛFC4ÒÙ³F£‘ÎÄi¶m«•Ù;7hŠÞ™è¬QU#Ës^[Ìr;|ñûOíÃÔOg¢_úÊKhÒFøYXÊœ¡åT¦ÓÌ^6@DæÒ·_†»è­ó©z_<Ä Ï½÷¼‹ÆC ˆ¦ZRxù¹ËH’7oÝT³L%Ðþ¸ ÏóÐít!l¤“ÀnÚˆïÅC±¤“@ö$»!ÞûߙꓷÒΙmÛxïßÞƒ÷ˆ§ªOn;iÑÙ“Öø™6ÍnÚ¸úÍ«øÁ¿ü`­_30(ù?è¼­ý’ÅÜ)§Ãqõ›W‡ŠöÀdGÂ{ÄC|/†ã8xãïÞ(º©´A•ê´ (¢ò^¢Tµ›'€ùT%‡/âè«Gð<¢)à4ÕáÌØ†ª†ø°—.,KÇíø×ǸôÅKªz¤í ’„P8@ÍÆª¼üñûÇCŸÛþxøˆŽ¿¼@½NOÀó<ÄI•ß዇8úºê°Ù¶H­÷vÙ=;Ýûuùµ·« ·Ö-ìíîÁó¼técWvÑ teè©óÙF;lÓÜøù ì?µîý.ÜmRÊ´jäúÅPºêŽ| FgפlmìÚ›ÄÜ)«ß¼ ïaOUYµíôN=­¶*œ_:@ò× ~ð?73È1׿ó:.>v1]‰ 8úê‘Ê_ãú®ÝÄÒ©d§ˆÊGªäVÅoª†ýKûðÎtØF*! KÀu7VûOíãm˜ßió}_-‘ìv±ÿÔ>~úÿÿtPÕQʹÒÖÂ0D뉢Sõ;-{rèõÔó‡Qˆ$I|²¹Ê±Ù›@L_¹I´V‡/Ûê° ±×uÕ€J9²i^ÿÎë8ø’ša‡8MÝ^Øœ‡õûß®ÿ˜·y°ÓFDÆÐ{Ùô’%"µo©Ã¥·½‰•uû¸ÃÞ¶qôõ#£oPv?·‹Ý'vÓ*ýá#´?lÏþÄ‚»nÿî6v?¿ p-ÑÝHÍès;±:^ ÝÆËßxy%×ÍCJUüpKQ±–ª­õx Î9GÝO»C·€F³¡ÎQôÍú¹M;lxplî¶›~-RJ8Ríq=úË#ÀgÜæÀNa°-ê—þçL™çðÅCuðô¤ÎZ–UQñ¡†q7V£Z­VzGÐívqû‹Íªsãç7ÒÎÙîçUÇP‘ÎJê=sAà¥+/­ìºyñªU5’ÊëbëbšyèÁ£ÃÕï™öžTK¬¦óÀŒºÃÙyøü!;ms`§ˆŒ0¨à†~éÿ¢[Dô ÿ‚Æ9µ?câÞ¬>!– ··Í[¤]úâ%øúé9kíÛ+›eÓnüò`ñý8Ý èŸ÷Óe‘AàÚ÷Š)¨ ò&®l$*ðnˆV«•ý™EJ‰¤“Óa;zåHe…©™g7mÄÍ8wç””Â;mÓ*qã,Q}8–Û¯àÓac>Ѩðnˆ8ŽaÛvzžÙ$²#Ñíu߆á[9ß÷U¡€žše[× `öyŸ?„³í1Êîmˆ;¶16æN}µÿØÆîçwám{ªhÏ„ÿ ¥”èvºR"øts{@gñQY’VÓÄVFG¯‘ePx§mR±<-Q½è&ÇrvxÛÅÿGÄ|¢Qïþì]¼ðâ ùGÂ;êã¢(«óªqâ^úâ%µ$«ÀnýîÖF®«0AÜQo)Øâ¤àÖ0wêìú®ãÊW® NÔ,TZ•6«$§ê¼Än·‹8Ž ië8zÙs·×ªr9ñc–PÒdVtÆÙñw­'ý3îãÇ=¦ßξŸ¡Gd&R:ˆ{ý‚$3—“1Ÿ(ø$ªv8Žì¨Ç¥”ˆ¢G_;2`˜ôAÙ[øY8W9ÿ*q,•;¦#aîÔÇñ¯Þ Ü $‰ê I ÙQgFQ„8Q³÷íOÚ­¶:Kx/D÷¾:DXM'±ZŽ½â¥ØUfÜ!“‚)û¾ìÛÓ˾­CIÿ›K ˆÌ"á«}%Íá©oÄLÛ(æÀÉNà¹Z­âÓ8íôØM[Õè©’¤“ ¼âäö ÜmadÖÉËÏ]†ÿˆŸž/7z@v]Hé îWtŒ»+bîÔ͵ï^C㡞>@p7PÒ'¬AG(¼¢ýqÇ¿>6jÖ:¼Bö¤êdêåc~§ô`W|?6ªý¦3*žÖÙçc Ñ"®þõU#®¬ª¸c9ÓÆ|"íÝŸ¼›VCôó‘$ DS ¶buâo¬ÂÇã¥ÿü‚ PŸgˆÖã-øT‡­Ûí"ŠÔ·uãX@œ© iʾ6¹SOoüÝxý;¯cïÉ=ˆ¦€sÎQ‡Î÷T‡'—íävñ{¹Š «ÖÆBí 2i¦¹So×¾«ª©½rwÛEã\ág!ÂÓ×ÿù:Z¶Œ¼9þ@ þ´oÁ;ï!ŒÂ´ŠnÜQ+¢(BûÃ6^ûök·¶\Œˆ'™âòs—qù¹Ë¸øØEˆ¦HÏc’RÂ{؃ïûðU{L ˲Ëîg0¸_.g IDATcy$ó‰&y÷'ï¿à£õ¸ºy²·ít/ÛÑ+G8þàžçáûÿü}ÀRù";R-m*pGë‰Z·ÐívÑxH¤}ûw«;—­\ÜL¹ÿa§Utƒ0wh [YñÍ¿oþý›€ìíîáÒ.áÖo6S<(¯?¿ÿ¼—¾¢Î\tš‚OÈžTKÇïÇhÌÛ" ï´1˜È‡Ïâ…ç_€ï«¶F³¡Ö’÷KdG‘„%pôõ#츭šži3¥ ó‰f¹öÝkhü}ÏÀ¶m4jàêß\Åõ_GÃjˆîFh=Þ‚c;R¦3sEu”vŸÜUË—ô^¶¶Y³€›¤+FÆ=ºW4æMòÆß½+_¹gÛÁ[ÿô–š-7Pp7À[ÿô^ûökhÒÆÉoÕL~OC£–Š—Iá6`rå"ZÙ ³Ù÷ÏzŒhO uØFËÐ !Òs—dOâ…_`§m…T1€¢_ÀÌ'šå¿{pôõ#5ÿˆÚç[EdÛ6lÛ†ì©ùI’ ÕR3:›î¸]úÂ%µ— zª¨Êíß×u–ÍÜŠ‘Ìšä[ßþvŸØ…ìIxç=´oµüz÷s»ð/ø=‰·þé-À,õ¤åÞiË&Ó>nÒc“6Û2ÀhÔëÿåux®Ñc;lšh xPû@º÷»neµÙâ¤óäö—*Ý"æÍçú¯ãðùCx®‡›¿½ oÛC·×…c;ð¼ó¼‡½4gº½.l{ýwZ«Y½K_¼„‹mþ m“Ié¤ÅGôžZ"“Ýþýíô H°·Í)ÚÕz¢¥À-U øÔŒ½éUQøL‘ |_•¾ÍÙ6X€c;CKœhu²$‰ÊäÒ.¥UÒ¨ ´ç]ø¨¥Búl¢¤£ËušgüáÜËÚýü®ê 6œ¦ƒÝ§v‡ÝZýãjzv–mÄ=RšWµ–(ëÊW®À¿àÃyØÁ/nüþy•+þ—¾p ÎÃâ8†ìÈ–<ûøªÙx}ï¿WH;ªŠ6ª½+_½‚ðž:ôVJ™†Í4qGÇßã¨ìªè%‘j´»ð”b*—FcÐak<Ô8ç8¶Ñh܆ÝÌè'¶mãè•#teI’¬¤ºd:£†ÁÊa H!| >ÓdÝIق׌x6$ Jþ>a©cE`ÿ©}\ÿ×ëp·]H)±·»§ö¸¹º² ß÷qû·|²ÞÁÏÖ-ØMŽã¨{¢8V‡j[*ï®|õ ¼mUy[4¢(BðÇ×|}ö“ÓØi£Ú{÷'ïâÊW¯¤6)eºÄi=ZÝívÜålЪ„gh_›×d‡˜Ê¥û§nšÝ?©=¯RJu6Qê`ÙŽê,Éžº± ;!.>9X²¨ÿîv»5;ו]D§º÷UÇnÚþÝaB¤9&„PÏÛDzCÅÿý•Ñ™¶ðÔ¼¢$T_W¿y‡/Â{؃c;éïíÑ_Á;ï!é$éïºmÙRÂnÚH¬»Ou8|þPÕª#©—D&§ Â(Äåç.£õh F° ÚÕI€/‡/â½{ûÝæÄØ&°÷äÂ(„ã8uC3n¯‰”I'Q#âR²lí Vqã¾6*›ä4S;B„§¡Ú»Öí–z€·¼¦vÚ¸I™Štå«Wà¹Z©jDáiˆ E®ÿh¹õлŸSa(š*øÚ·ÕÍ€ËϨÑшOc4š te7]ÚÇ1Ž}ÌsGÖ`x_Ûôå‘̧ê8|ñþaTþCWÃÏB5Ãe«¢¢+ÔÞ×þ ‹ìÉt(ø4Àñ¯ü9n=Þ‚½­nÈt‡ÎÛö „ÚÓ’‘ËÎÐ !†ªÛЦH K ø,€×óÒ: iÜOEp,W?jƈ{ÑÔeîЦèÙ4a ¶kì=µ‡½'÷Ò÷ùçÕï·>R$ÝÚÑÂ{!BåÂå/_NвK·õÇfßž–»ŸÛU³øýë8çT§Ì±tàhÿÒþp‡-[ÜÍRË(]×UÇ¡<ì õ$÷¯ç5s¦íåo¼¼‰vTÊÙÙÙÒŠº{ý¿¼Žƒ§Ð8×P›ö›jÔøbë"º÷»h=ÖÂkûÚBÏ}ðÌAz¸¬>§©FŠ’Óï½ÿž>€¸/ÔOÒÁê/iºõ›[ì°­ž]›çpmæÓüLɧÃçÕïâyŽã¨‰ž:ä>9Mpò‡¼û“wqøâa©Î»õ›[êV p਩þM‹ìÉôÆ(¸;¾Ã̸iú¼p²›êFI¸ã¡Á’n!Dº$Iÿ¼Ê;½ßÄq„R-Ý4©\xQtñ#5Û6;{˜;ó3%wÊÄqœ¡½©Ù÷é.!ÔÀŒž5oÒN‹ ÙM‘Œà=ìaowohÏìÔ¿tI·Î+½öæoo¦{ØGuÊü ~Ú®Ú©™7 vز,ÀÛV+Z²Ó–W®å‘wþÈCóšôŸ0å÷êÿû*ž>€çyé&Wa `[Mý˦ ‘·þá­¹;nú&QwõìãŽáû>º²‹nÔÅõ]OÏTÒ3a¢ýIïý[½÷€¬KÜ‹ ò]Ý499o3Ÿò3%ŸŸ?ÄÕ¿¾ªf’ú{2\ËEÒQŠ8ŽÓ•£¯áò—/—ªêØÞî<ÏÃÍ[7UGª4DÝNW•þ?Mþ^LZæ´û¹]xxhˆ¤”joK'†×óFjÄ=I’´ÂÐïÄռФ”j†-ì´æ:£¹“Ÿ)¹S6Ýî`F,ÛùÑ3jÙUöï®Ì|ž%†gÔFöÎN|»¿§¶ÑP3ûz ¤^º-„*¶ä7}8çÔN½$ÀäÎZVï-,”np®(¥ÜӶ󨳢®~ó*.ù²Ú‹a;pÝáQO{ÛFõ—¯XÀ›ÿíM¼ñ_ßÈõÜz†-»yW]|ì"º½.¢ð4„·íáæ7 ;뤞Üt¶Í'ˆ{å¬âÆ|šNwØÇQ3@Ö`óº³í¤E<ô2šë?¹Ž×¾ýšÚu!,=bù9•_èû—öñ«÷~5´üh]™rû÷·ÓëƒJ–ág¡ºùë×rÉi‚ýKûigm™£ª@ϰ©Ž[yχdîT>$+¾«•Býßó¸ÃŽí¡Çá%RªcDôÊ"!Ô^7Xþ4yï줷uÑݱKéÏ Š¦:¯r’ìRno›ûkó(]§mç±ôoTõxxê\£æƒ6ÍÝvÓüîvþMãzéî°éŽ¡Ý´qòÛµy·#xÛžQ¢Ò{Ù²U$Ë„ù4›î°e«¡ƒÿÀ¥j¯CÏ.{Éž:{¨£nBž>PgÜüG}ì>±›Ž\ô‡pë?nmìú὞«Ê€Û–= OCÜüà&5ðõ‹ÿõ ì?µ¯ŠÔžú?DÏô—ñ¬6æN5Ü>ï«•>ž«ö´žÜ>ÁK_{ Bµe#ТÓè©Y¶à³`¨ØQÇøÁÿœ\è£õxk8‡{™™²þûu-=Itïwѕݴ@ˆÉ©êhvmudÉÌã“z@÷~—…Hr*U§MÒèßT­Ç[ƒ=“èrÖBÀ;ïá£öGj @Oâú¯§çþ­ËoªÃæ¹ý-×¾ý‚ @p7€ÁWgLk­œ@PÚÎÀ|Ê«ñPžëM”B¨ýý›Û¶ñê·_ÅþÇà?õݧvoªÅùíîî¦gu»]´ÿ¸ÙY¬Û¿»V›Ó#ôa¢ÑPK#ímè­ÇZˆ;ñÆÛgª2gs§º®}ï.¶.¢ÕR{¾¼m/=:¤a©m#Ýû]D½Áê#=«žtÔRèð4œ9»?O!¢ÝÏí¦÷HB¨Ã²a!=/. C5Ëß‘ÀöìçÓÇ(Q>¥ê´ƒ©zì¦.šFX"­ªÔz|°‰U4œ‡†ËÏê·Ó`è?·mÛ°mžë!ø4PUÚ"õ¼²#U5$Ú˜ìM“®"Y&َ̧^9JÏ›%Ýì¾í ÑlÀÞ¶Ó§éàÊW®àÝŸ™Sir÷ó»ƒ,ê©¡"Ž9~ÿ8Ý»+{êõJ:‰Z•}íûE_޾v¤nî> k;Ú-áCJg®=m¦`îTÛK_{ ?ýןÂÌW/MoýÓ[xíÛ¯©{•žL;LÙeز'Þ W~ãíß߆÷ˆôÖK¬ƒ H—P†§!’$sÎÌŽ™mK’ñiŒ¤“Ô¾zíyŽt&nbÕ›W¥”ˆOãÜeÿ/?wNÓTSŠBte‘¡Ûë"9MÐív‡6ïÒæÄéÒŽbCJ³fRhy×¾w Ïþųð0»R˜žé£q§ÿ»Ø,ýI«È`ÿ©}õKí![×÷"Ú¶ñæ{µ?J;lžçÁi:i!˜tIxO-iÚ¿´ïÿó÷k1ã&¥ªV«—gç=j„¨(I’¤•°ÑS÷M›,x¨åßíÛh=Ñ‚÷°—άÅ÷Ô’Gïuä‰÷ˆ:6)¶b4Î5T§²“ ø$Xø¬Ý:c<‘Q®}÷öžÜøð!zƒòüzsmœÄˆ¢ñ½·oçß3†az mLjïÅé9$°ú%vûÁ[¿ÙlRÇr‹ã˜*Ÿn·›»L2S -¾¯fÀ_xî|믾…WÿöUµoânhLõȃgÔ™’iñÃög¼ú7¯b÷sª¢¥Á‡÷p¿Ã6rð­h ˆþ/]…ØÛÝ«ÅÙIÃÕj#„ôKfÓg¢éÁçMwزڶцʼÖã-\þòåô¸–ãŽÓ¶]ýæU!Ü *Ÿ)ëTÊN7ÚVÛ ÿùüâÆ/¨òþq§Óý ¬÷bÜøå¹nÜnÿî¶ÚËöàÀPLŸªç¦ÍÒ3lJ[É `>Írüþ1žý‹gZ!¼óžúÔK™¡~¿».¢(B’$‚@•¾>¯*"ê¥Ì¦HËe÷TU·ã÷Í:HØyØã¨?sêì¤Ñ[–m« “²#±·»W«,=hTFÌz8xú@íñí©ŽQðGsÎlÜFëÉ–ÊÄž:ÿVwÚêZähÕŒë´å)Wë?ªnè‚O&ÿ°²ìm¹½pøÞùá;ˆÏÇéØéÈûi‚ã_/4Ò~ë7· {ž§ÎˆjÈÆPÑ}“H›'D[Ý4õoÞM\¦Ä|Z޵墳ÏþųéÀIÃR•"»²›îa ÃÇãæ7á?æãöïoãÆ/o९½dÌÆõË_ViësÙNnŸݤøç}¼õoá…_0¨Ê9UÉdëÑêÏ:Ié¤EHLÝׯÜ!í­z þy°€«uÕ¸Aa¦3ö¶Ö-µŽV¨ۢܲµ¥þžò±<¯¤ü^þ†Ú zôõ#øù++I}ûw·qjYå¥/\B£ÑÀ¥/^Bã¡FÚ9dÈlžc¹™ª‘êß&a>­Žî¸<}X€sÎQUcû•“N‚ãŽU5ÃÛiçnww7?¸‰ƒgÇq!%õ³v?·›V©ý¨ý‘q7PG_?‚½m§™ë¥æS‹À@y‰E¬Îu«8¯#LÚ€µodIæ}ýÝ^[á_è¯BéaðoƒÜú[j‹KSåŒÿˆÏû©2¦Ó¶óØÎÐߣtÈøúñ³3øP£J“>G?ªÜÖ¹wEßd¹®‹‹O^D·Û…w~v‘Z½¸AÝKªª‘Þ¶93žÌ§Õ»ö½k¸ö½k¸òÕ+j¯•ç!$§ ‚OÕ!÷×|þyýñ#ì=¹Ù“h4èÊ.ÜmÂ…u”_øùºþÕë2ƨQoØ j-{ƒ½ë†[¶‘v¶/[üëxï£~ÓÄŸÆv¦B'Që ­| êÌ Î‡U:?:ýhwº'A0]K{ §6Ø&wªéÕ¿|UÇÏçKCõ†Œ±Ë:LϨõ›-Ýý±»kM[O¶F•!v¤ðÅ?xQI'QÇg¶/Àr~cßP”Ô,q6çÎ1wsïý{J?Oóè(b´m׌ •²›¨Žs%ÿɧݹñ{76lƒí f§-¿øû/êààÀn]³Õ‚µZ¶“e—Ú_hÛéÔÃéœËT±Ýµô³TýÏûJ>KÔÿÜniÒ}ØÍ /ëv»J&2ÆTâæÊ˜ÐÉõ³r§Z^ý‹Wuü̱¢ ‘‡ µ.¶†ùçf³©èB¤ãgõò¿¼ï˨QoØõ½ÙýÔ…H­VK—Û—õµë_Ó[ÿüÖ¾/Ñ[ÎEÕ"/p Á„eÅÇ ìÔ¡lQ7vçì^InVq#Ÿv#< Õ¨Û”øãXÏ?÷|¾Þ4y˜Øý€†û(ö}ÛÛ²lAýÕß¾ªËO6Òþåþ7Òžå¿CaêúW¯Ûë¬i´AùØ>mf`Kˆw»Ý|sî²uµ\Ó&‘;Uqóë7í""…PÍ‹Í3ßo6Ô}8¬œ[³Û$Ä©jׯþ¥mt†çm…nÕìÈ›E‡‘Ònªà©@oýó[l¬½çmÀ¾$I¢þm¸èB¤£/9;婌Æ÷JŠêî5Ú°#ÃÑÁÁžîù¼Úk·×•jvê^Ø}в‘¸m8úò‘Â0Ì÷wl¡moD†×—$‰Þý±;iOó¿úŽ^ûë×tõ·¯ÚißÉ\0ö*Û+o¸¦éÝ{ÿž¾óWnTèܦ‚àTé 9ÿP`KZ[ χ¶ÁÖœü·Ø8lÈ ŒÆ ri þͯߴ ¶p42˜åK¶dVérû²^ûï¯9S Ø^6ÚâÇ6|ø³uíékzíï^“d{‡^üÃ÷|UÕ“²¥?‹ Oë9~ö8ÿ}ö?ýæÅ¦¢ÃÈîáÖï«Ñh(MÓ¼áÖh4ôò¿,clCÄ»Ÿ›1f嵩ÇÏç#îÙú¯èb$cŒâOb%Ÿ&›yÂ;ò¿úŽn}ã–š›:ù剢f¤f³©ƒîpÛ“ÏmÕÎÓ_žVªÁ6ZG;ü¯C–AîøïòS—ó©ß³îΆú½¾Âó¡¢ î4Ú²­‡3 ¶¢ ä9zô¥ÝNk//mÀ¶´ŸíKtõ™«{¼’ê kvŸ$[ö?UVEÕ’5¶²Å÷’Y3“ï§Xüºd7‚Žž²7/­Z+ß7­ßïëøÙcÛØ3}u»Ý¼A7«1wõ¿\Í÷ êÝÈvØ@ v*aÔŒ”t¯ö!¯Ä{ã…vêRÏTvóÛâ:Ú SP-†Ýô~f‘ ¡l¿Åi#rû^mq&ibƒ­(¨s·Áãh´'??‘¾a?n=ÙÒkýšÝлÛÕ7··õ4YkžYÛ†ê9ù÷]yúŠm¨ ‹ftÏwó5W݇];=q`GÀÌÀèÚ3×Feì‡û¦i œ?°ÅK.„g¾Ÿ­)ŽÌe£x¦gt¹}Ùn;\ó•Uq3ƨßï+¨êv»¶Çx`¼i´»ûŽ;kaöÉŽ¶¹»¦ ÕÔ‚¹ÛqdÇõ}©f ¹¢u±¥ Ög¯1‚@5[TêÖ7nmu[§²¡ÑÜþþmµZ­|êP¶évúyªãgõÑ|äìÞ(þ³=†4ØÐ7}A`§@ÖõM_a#ÌXI’Ø\¯«þ ¯Ýý‘¢ ‘½a1 /„ùˆ[v#Tü< í÷óéEÃïgÛdS”¢ÈȶH»©’Ïõ@¦k§fÂoù(Û@ äçôHøïäßO^ÕívgŽ u{¶ãªÿy_IâÎ4íøãXÑ‘Ò^ªÆáô\4ƨ?è+MSlKòªÑ6>g›9ÜØ´ïþÝwuô[¶ø@qjTã°!Ó36HkªD)ì}ÊÖ™ø„|Úœ““]{úš‚ZO—Ì6zî÷í>c¦g§Fv:üâD'z|ºãÑ—žóõÑa$Õ #qÐeS”$[ª:jFj=ÑʧGÆql«,&‰Ê-ò˜1¡Š³´|ë4"wÊãôW§ºvÕÎ0=3qŠaV)›2žtÜi´%I¢~4…}ÖôGÓ³nXŽW¶â~%6í»ÿã»:úÒ‘í±¯ ¶á¦š Ó0RÇ(Ð@Œ¸m˜1a>=)[gâòisNyª ¨ýT[a#T·×ÍMÒèÆ%þ4Ö½÷¦—¦ŸÖj±­Æa#oÐÔÔ+þ8Χ´Ô&#1Æ(ù4Q·×µ{¹a)^5Ú¤Q@Lؤ[߸¥ö—ÚùT¨lD-ùæCÇÏÓhÛ°è0Vò°•ßDùˆ|Úœ+GWÔúBK÷~_a#Ìl}Ó—Rçagfƒm–YûªÝüúM5‚ÆhÍÜp¯!c̙ϳ遼Tf0y£j¸/¬5•ôB¥…Æ›oÈòxñ_Ôþ÷ì'ÃYa=̧šžeðáÏ>t®Êëݽ«ð0ÔÍnÚ/Ô¤ÀŒf,™]CÜívõÁ‡0ciÆDbó²^÷¬\íÄwư׽oì\lÐnVÚk(ª§JzmAêíÚòi}G_>Rë ¶ ä•£+úàÃìÚaãi›…?º»:Ô šêv»:¨(ŽcuÏw•¦©º½n¾ø?[[ÂÔHFõ›ùç>"wÊ#k¸¥iªð|¨Nm85üs;5üä'Î5Ø2YÁ¶›/Ü´]õQ5ÌlJç~ oÿù·÷y™Þò²ÑlZë »¿H>%rмêÑùP­–_k|ü[[‚͹öôµ|YòI¢wº» ¬“ÏE£|#ou$ ¤Û?¾¸w:ýÖ‘‚Z ¤ëΚ,/PLÖÀ9Ù±7ÿà¦.?uYýÏûŠ?õö¿¸3rš;oÞÑ7ïè•ÿúŠZ­–Ú¿ÙV·ÛÕé¯OõÑ|äÔ”NßÐh¤¼ €¤ùåvƒÑÆ¿Ø4ÛÛíëú¬ïøÙãQå±]'±K'¿8±H.FùˆZú™ÒÓ<´Ó¦ƒ P·7¬$éPõ6,/k°×Ô®xû‡oK?Ü÷U¬æ¿}cß—P:4ÚÙõ1Yqƒyû¤dkkNOýÜ›É]VhÛ IDATÓN‘ ‡kÛP5í/µóªŽñ'ñNGÙ2ïþô]]îºZ[ê>´EP’$±k]‡ÕdïŸÜ—Ò­oÞRX+ý,UÒIèIöHÖA§J~®¥P ¿±è—¾piê¿]Xôç¬z=ÓWüú"ÇÀOñ¯bõû}¥½ÙELÏäkÚnÿö¯°üÂZSA`{º£ÃXÆ´~,ùTŽ|:þê±Ý7mØqòÑéG{»–wü®NÿóÔŽ¦=Ltíêµ|äÍ£ãgŽõüçÿ*ÖO~ú?{¬ë¿{]_{îkºõ[{»n,'؆›1m…õ®ŒY|«r§¹øbá‘¶²ï2©úRŸ'&»ó¿îèús׆¡’N¢¨=¶Çˆ1&/BÀþ"›—ìH[¤J{¥Jþ—ý}[•|úÉÝŸ(¨zýo^×G§éß}¸×ë¹÷þ¨:åÑ—tíê5µÛmEÍHzCê÷ûêv»ºÿóûŠãXÏÿþó:þê±$Q¨È ¥ƒ&¹3AUrðÅÂ#mó÷ )~mR¯SñØI½1‹ôTM:÷2×°Šâ~(Åó`åðƒþÀV‰ëÚ}Pºm-ÛØ·û°«äÓDñ'±ž¿ñü¾/·t²‘6©³ñ²Ûä“»n~Ý–‡~ëŸßÊ÷ôyåÏ^±a;äÚÓ×tüÌ±ÝŠà‰–¢(Rã°¡(Š=éÊÓWtåé+úÁÛ?Pë‰VÞpƒë𶉠ɸš;€6QÅ7ê¼Þ™iÇÎ:Ǽs÷ -ÛCT|<¡S=wß¹« èùžWEêÖºgö1=£ä³„Û–Øul¶ôvÒ Õ6»ñ&ùäŽW¾õŠÂ ¡ZmÕÖkW¯)ŽGGî½Ooü½;‹Ø_þ³—uüì±ZO´Ôh46ìºlƒíp*í¦yEÙÝý‘®ÿîu¶ñ„Q+Ÿš½iä€MÙh£­øfž÷Æ^ä?í˜m†Æ¼`"ÀÊíí¾­·ø¶nýÑ-=u¤Ö“ö&ìä—'Šs¶E£Q¶¦Ò ÝxnòÉ ßûÇï©ý›mœ?4ÚÀºÿžî¾sW÷Oî«ó°³ç«<ëèèH­'Z êÂÃPúh/Ç äok µZ-õ{}ØÂ%ðʦ÷‡$wlÊV«G®2ô^jŸõÆßÖÜE‚‡`*¿lƒHìŽ1¡‚`w¥þɧÝ{ëŸÞÒå§.ç¥óÃzhlƒ¾Œ1:88Ð]ÑýÿØì(ëºZ[ ‚Àþ·þø>ŽAPØ@öS£èb¤ïýã÷tü,S$}PÜbdÛ{¶‘;VµµFÛ¤!øE­2 `Þ¹QKXë¬Ôÿ.FÜÈëX©Ñ6éͺÈ׊Cì‹·Ì1‹ž{še÷XÀf%½PQ}TÁÍÞH-|r/Ÿ^þã—Ô‚¼êâ4FC¦gž6BEÍý—ý¿ý·uã÷n(í¥jj~acŒ4â™é‹°&%=;âFîÌ?ΗÜÊÆ¹é‘ªÉ–ÜîÈ˜ìÆž©eeqûû·ísŠÌd#Uf`Ô7}¥·¿Îh݇v½Ý̪–Ù}Fñ§±î¾swwˆµ¤ƒâˆ¸‰Fgdl‡5»ÖåaŒ‘˜¹ÇõM_’m(ÝýW7>÷Þ¿§ä³Di7U§3¡á6:ŽÒnªô³T'''»¿H¬Ä˜ðL™W×µñÀ Æ„JƒSÓVœj^±>ø¥ßï+í¦j4S+1f#UýÏûJS7FÙ$;RhF7_¸) d÷a«Ø=æFýžÝ² þ$Ö»?}W·ÿáö¾/ {Bf.¢ÑÀ v„Ín¬­ÖÁ/_ù¯èƒ?Pòi¢èbôXíÓé¨ßë«û°«øãX¯ÿÍë{ºÒÉî¼yGA-Ðõç®+<J5[-2Ûª ý<¥Áæ±°&²€Ój´Ý{ÿÞ¶¯ìÚÅêš+Šê‹´Oþ¸võš>ø¿Èc‹’ ÿÔïõeFI’èô?Oõ§ò§û½Ð)nÿv¾>ï•o½¢v»­ÓÓS'ö“Ãj²ªµé@ ë]%Û\›Ü°ksm=ÚÅu€$»W[V”dòÉ?מ¹¦û?ÿ¦ä³DáùЮsŽTÅÇÎ6ØÆÑP+‡¬Z­1¡Ru*ùOîØ‡™¶ã¯S¶ÀNŒïÓ6ošù䯯üÎWò_ý‹WuúŸ§ÎAuÕ¥t0j$¹`_XÓÀ I/Tœ*¬5ó=ÛP~®­]C5Ç:ŒÀ=”üà„`X ß3ié‘°cÂá#vHJþp6Nx|¿$ª¸Ø®¬ƒ(ª§v]EE£ €Û/‰›'[fGÙÚÃþS:‹8ËÛFÛ¥Ö¥}_€-k£=Û|E>~HaÞŒo¾"w€ró¶Ñö ~°ïK°AÙZ’ì¦Éç›'ò ð…íJR#¸¿çkY¹”›·6z”€r±´Ñ”Èâú6ßO€²B$’òéÙ¾"w€ró¶ÑFP.öæi4%Òç(ò ðCœžÕ÷¹z$¹”›·¶bÒ¥Ö¥ü?EõTI/”Ô9Óûí#ò ðƒ1íaÖØQ~Ÿ§e“;@¹yÛh+ö(Ñ»ø/+ 5‡e¸÷}E«#Ÿ?d%ÿG7‘;@¹yÛhïQ" ß¦Fú~óD>~Ȧe:ŠüÝj„ÜÊÍËF[ëÉ–=z$él0P€¿Š…G|e#ŸDõ³£úÆ´÷w1k w€òó²Ñ¦sçì?H@YµÆÖ²yÚãM>Þ(6ØÅÃ)Ú"w€Òó®ÑÖʆÿ=RëI«Ëx\6Ei¼’¤/È'À/ÆØâG’¿kÉ œk´es²§ýwSà–⛲äÞHù”K¤Îw‘;$mãó°ÇÿgÃþçÎ)þ8^è1Üg+¸Ù6[úß½)ò (›7î@"wH6ÚfÉzˆâøÁ(¤”¨‚[ÇËu%äà§èÐ6t|,€DîÕáM£m¼|-Cü@¹d7La­iGÜêÝý^ÐÈ'À_i¯!É®o+V±u¹T‹¶Iû0Ä”K XÆ„JÂ$Ã)בO€ÿšÍ_Š‘;@õ8Ûh+.šDô(åbÔ²Eê]çGÚÈ' eÑŽ´Ù\Òkïû‚¦"w€js~¤mz”€òÉFÚ$yS`ò ðCV1ÒŽ´5½Ün$Cîåæm£% \F•#O÷})k#Ÿ?øT1rr(7omÊ¥Ü~Ôôb] €r)Žô€kh´pB±·Ûõ nÊÁ˜0ï$ÊÖÔ€‹h´pŠo$ø+N•Èî£ÑÀ g{»O•<,Ç:î2¦ïÕæúÞªm­•#³*íbAì¬M&W9nÒã¦aÁ/°YI/T#¸?œ&ÙTT_ošÒ¾ß¿äà>;ÒÖ”1¡¢Ãxí΢}¿/É ¼Öj´ß «€Ë¦=Êê›7^ÅmÝumä€yŒi+REõáþkV¯%wlËV§Gfoââ›ùRëRþoÚ±“ÞüÓ¾>é˜ñŸ·è5,¢Œ! ¸fUÜÈ'¶ðH§ÐIÔÜêÏ#w¬jë…µ‹oæñ7ö¬ÏùxÚÏ)~þ ~°Ô5,ú\l^X³#l»ªâF>kM%½Ð޶ :[ÿyä€Ul½IñÍ<ï½ÈÚ1Û ‚ Ø®°f×µIÛ¿iÊO²âGv´m»#m¹`5;ßÂv•¡÷¬W(ûxÝs/{ °}é £ ²›¦}l°M>ÕbŒaKzí½íÑFîXÄNo‹& Á/j•ióε‚ Ø•f>ÚÖî+ì¶ä?ùTOV=Ò6ÜlÉ]"w,Ê‹}ÚVé…ÚĹ &`·²µlÅ*’®#ŸŸÙ‘};ÒïÏ^mäP=;i+ç?_dN÷¼ióÎ=¾·xÜ,Ó‹Ð6+P¼×ÆùTÓ>³‡Ü°¨5Ú&½YùZöù´¯¯r®eÏ= ìNñ¦)«"¹)ä€iŒZ2&Üøš6rÀ&y1=@µìºŠ$€j‹êû)B‹¢ÑÀ £j‘á ÔöKo€´Ù‘}ØmœÝ4ÓV:°¥¸`›Œ hT1r[À"h´pDGaÍV ïmÏ$Õq¶Zmg85ÜC£ €²6I^•üPa­IggÑhà„ 8=35‰iJ¶Í˜0ÏÖµp6NkÍ3U#™¦`Û¢zª¤{z¦ñ.¢ÑÀ é 3œšd«FF‡ñìÀš’^¨¨Ñ¶Ùt)€ÀY4Ú8¢©°6š®”öû¾ %i>-2í5XÓÀY4Ú8Á˜Pé »‰êÐã `ë˜ À4Ú8¡ÜÏ?¦Š€](vÑxà2¯"êRëRþñƒøÁ¯À¦Ý+©­¨îW£||ÕTœ*4÷}!K#w€êð¦Ñv©uéL  ÂZSé°÷Ûäà§°6,FRþ×£HäP-^LœDâgz˜ø-›š4*õïG¯7ùø«¸Ž6Ro ‘;@õ8ÝhÂ(¯ld­¸¶ÍeäP¶jmÛ‹5mäP]N7ÚŠ½Fô*egGÖFkÛÜF>å² ¤@nO$w€êrºÑ&Ö2O¨Žl¿6בO€ßlÎŒ¦bûÐiDîÕäÁdzŽ€*0&TT·½ÝÙ:O€¿‚àTRSaMù&Û> w€êqºÑ¶h)Ûì8zE‡±’‡­ü&Êuäà¿°ÖTÒ •o.#w€êr2žf…MëI;u!þøì¼ób¯!ø'í5ÕS%½¶‚ uvm ù”ÇhT¿™î"r€s¶¹ûŒœ;gÿ;á˜ìqìUøÉ°»¸¶„|Ê%PìdÖ‘;$Ç ‘Ì •V6-àÑ£¼giæz¾²½Ý.NQ"Ÿ€òÉlÆ„ä§9ÕhPeüÆÉn°ÝÙ÷(¹¬¡§ÎNɳF[œõ6;÷ØÜm~ kÍ|¯¤è0–1í}_ÒRÈ'À?é °¹v½ëÅV#EäPN5Ú& ßÇF!5s·ÿ¤ƒN~ÔöΕü'Ÿ€2êäÅHÈ.sªÑ&ªXñh™yØà§l¤Mê8¹¶D"Ÿ€òiÚb$Ž®i“È–“U¬v”Y4t&ÀOI/ÌKo'½Pàþ¾/i"ò (£V>5ÛUäçFÚŠÄò°™:ô åPe ‚Ôù2ÜäP>®î™!w€êrºÑ&>@UØõlM§{»Ç‘O€ÿŠÓ"]ï,’È ªœo´Mš |‚ =ÓËíêú’"ò ð]g¸Åˆ?È šœo´e¦UP¢· (b/·O7Räà'cÚŠmg‘EEäP-^EÔx@L@y„5™™ÝHù‚|ü“•ú·#nmçJþÏCîÕáU£M"€²Jz¡¢ú¨‚›½‘ò ùø'¬IIÏŽ¸‘;\åÍôHåfKn6Ø–:{½ÕPÜ\\E£ €3² ¶Ãš]kÛdLè]$ÕD£ €Œ ó‘¶tÐñnm ÿ÷„̲\´“FÛ¥Ö¥3ÿ9~‘ï-zܲ§Œ.°{v„­9l¬5wösÉ'aM;ÍrÀ²¶>`RùÙuJÒ.ú¸¬¢RñxJánKR X]sEQ}û#mäPmYÕÚt …õ®’‡Ûß\›Ü°Š­Ž´M ƒñµÙÇ“ö™ôµYY{œî1jåEI¶‰|U«5&TÚ3[Ÿ–MîX•3kÚ¦õþL iÔ³4+HŠ%t·=^`wS$ç!Ÿ€2ë GöÝɉÜp–3¶ñàØTLš0éûìSÒ %u†•#C§ª¸‘O@™5ó7—;Šœi´mK8³¦ Ì 0Û—È÷Lª@7ò د¬ƒ(Ûҥ΢m!w?•ºÑV œy`¿ß/É­©J›F>û—uEõ´%ÿÉÀ_[m´M „Ezo Zv½_ùÀ޲µ‡#ü§[ï,"w¬jë&Ô"ÃíÅÇÍ:~ZÐMú:Ãý€ûš”÷lÛ6ò ¨¶tÐQØÜIzm¥[®)‘;V³“ÙÛóÂ`ÚbÛieq9זּ«\#€í*î—$ig…È' ÊlçP:Áý|´ÛÈË*õš6þ°´Ñ”Èâú6؆b¥Ú]5Ø`4Ú8ÁÞ<¦Dr`Û‚àǫ̂~ªGð6Nˆêi¾W›kû´('cÚì±£ü.î×6ްì^m¶ ÷¾¯@Ùe%ÿG7p6ŽMäæ À.dÓ²GEåÞ§ €¿h´pB±ð£lv!ªŸÕ7¦½¿‹€h´p‚Qkl-=Þ¶«Ø` §h€{h´pF6Ei¼’$lƒ1¶ø‘DÅZn£ÑÀ Å6;e‰‘6Û)D¼@£ €l7;ÂfKÿs#`ûlÞP €Ûh´p¨‚[‡u%v&:´E(€Àe^õ+]j]šøõñƒ_ €MËn˜²‘¶ìFÊäà§´×d×·5‚û{¾šå;@uxÑhËBiZÍû>÷ŠÕ5W”©qÞH¹Ž|üÖ¤4H½)FBîÕã|£íRëÒÜÐɾOHþ2jÙ¢õ®’‡-/FÚÈ'ÀÆ„JƒSIM/Öµ‘;@59½¦m‘`*z?ЃøÁÔéÜ—ö^Œ´‘O€ÿÂÚÙ ’®¯k#w€êr¶Ñ¶l0ð_XîÑVïîûRf"Ÿ€rȪ֎ÖÔî÷zf!w€js²Ñ¶n0Ñ«ø)(e äæôHò (“æp¤M’:yù×;œl´¨¦l¤M’7øË˜PâáH[“íF8˹FÛ"½I­'[j=9û†Ž)€_²)JApºïK™Š|Ê%ð b$¹@r°Ñ¶sçì?¥1ÚÉ nS‘O€—Š#ýÞ!w€Òó®ÑÖÊæd?z4·W €?Š½Ý®Wp›†|übL˜wekj}CîÕà]£mQ,¸üäKÉuO€‚àTé ü™#‘;€ï¼k´ÅÙœìsç<¹º\L೽ݧJú×cL>~1¦ïÕæúÞÓ;@58×h[¤,m?…Ô˜â‚Ýì\„ྤÊü7ÕÝ›¦D>å2>Òæâš6r€$ù¼Ü¢ñêHTKü0^ÅÍ×um³O€[Œi+REõáþW¯]¹”ƒs#mÒú›@®» %€ýr¹Šù”‡-<Ò)t5÷x5Ó‘;œl´IëÿøRÅ|Ê#¬5 U$;û¾œ©È Úœm´IËT6O›Þ$À?aÍ®ksù¦©ˆ|Ê!+~dGÛÜiË;@u9¿¦­PÓBgÞ÷¸/tRvÓäÃÛäà7cBEõTI¯íôè~¹T“·E£Ð™Ö»D(eÐÌGÛÁ}¥?Jþ“O€¿ì[sØp N.™ïr¨/mB(·l-[±Š¤/È'ÀGvd?é÷m¯6r¨§×´¨ŽÑm°;6{Ü^Ë4Ú8¡8ºæÃz6å`Ôrv‹ÈÐhàŸªHð_T÷£ €ê¢ÑÀ £ÑµÎðŠéJvc´¹6¸‰F'd7MÆ´•Ät%[gLxf=-S³¸joñ4^¦v^¤Y›C¿7ï¸i¨Àì[Ga­©4HíMT°¿+!Ÿ€j8[­¶£¤×ÞÛµ;fÙK£mR€Ì •y}Ü*¡`7Œi+nn»Ï’ÿäPMY§Ñ>;æÙùôÈi!ô ~p&$²ÇƒãRëÒįÍzÌ*×`·‚àôÌÔ¤}LS"Ÿ€j1&̳f_ëÚÈ‹pzMÛxpdŸY&;vѰ!˜w„µæ™ª‘öcw‘O€ÿ¢zª¤{z¦ñæ2r¨.§mãÁ±É !˜·¤ƒŽ‚`T52:t{³mò ð_Ò 5Ú6{‚®óÈ º<èWÚ¼}AÌÓTXÞDÕS¥½Æ¾/h/È'`w‚ ͧE¦½Æ°ã¨zÈÀ}SmçÎ+åjWÁôÒ7_’$ÝyóÎÖPÆ„¶rd*tdÌô*nÛʧYç,~o^o÷´c¹fò Øc†D ¬gã¾h=ä°žs’=zôHñ¯cÝ{ïž^ú“—ôÖ?½µïëPb/}ó%çÎÍnæU#Ú- p÷×;Ž|°ŠI¹sã…W%ÙN¢¬ñFîpE1·¦Ž´e="°I=š˜/ã{%EõéÓ”È'˘–;VSApªtМyrÀ.çÖÌ5meœ`î½woî1Ù^Ié 3ó8ò À"fåÎhíð¿s ‘;vaRn9]=@udå¶G¥þg÷zÀºÒòu´APÝHÜG£ €²‘µFpÏW JšdLÛ‹}ÚT×ÖmÅÍ'müè+ŸžË&®uÕslãqû|>ËœgÑŸ±î9¦³í÷ÞæÏoGÖFkÛ¶|Ú?òi;ç˜wž*åÓ<ù(Û@ ´ýý!Éý#w¶sŽyç©Rîlãüô+-ɧP*+_Öìâ:-Õ¼íkÙôù³u&Xù´äÓˆ+ù4‹1¡‚ ðù;Ê‚ÜÙ?rgÄ•ÜÙÆù玴eoÆy­ÇK­Kù¿Y-»È9ÆÏ³Ìã–}‹ó ~0óQ¼Ži¯Åº·Îë0ï¸E‹œc™ç2«WdÚïi“ÏgfýÝ/òº­r³^‡Yç]÷5\æw21a>=)[g2ùD>‘O«©R>ͧ’´ÔÔHr‡Ü!wVS¥ÜYôw²Ìû`¡˜ºÔ²­ÖìdÙÇÙ›´øqñóñãÆ]äë>n™ç±è1ó^§ìãyߟw‹üŒe_‡E_×âç‹þ¾y ½–y×¶Éç³ «ümÌ»ÎyÏ}™ëÙäk¸Ì{²(:Œ•‘OäÓzª”OãÂZSI/T:ÌEoä¹CJ¹³‰ß«´àš¶âƒ×ý…N{ü¼ónâi‘籩ç:鱋žoÓÇ­j[¿ë]=~Õó]j]zìß¶¯c×ÏuÕŸ·Í¿¹´×PTOeL[ÒâkKȧõ~Ö²ç#Ÿ6óøUÏG>möq£Qýfþù²?‹ÜYþg-{>rg3_õ|äÎæ·Ê96¶¦m¿ÀUϱé?—÷v-ú:ìówµ »²så÷i Ø7¹¶„|Ú òéqäÓú¶ùû om¹³äÎãÈõ¹ôûÌl¬Ñ¶î/tÒPá®~¶o¦ ¡î²'Ê¥×|Ó×2éoÏ¥ç» îßU¿‰ç“ÍM.þÛ¤]ü®ó36ñ®¦“#±•#;[ù)äù´Ìã×ýù‹>†|Zÿ±«œ7[çm°#wÈe¿îÏ_ô1äÎúÝåûk##mÅ¡éìó¢E7N:Ǫ[æçnÒøýø/rÖ~ѬëžvŽy¿ƒEŽ[ô÷¸è9&½‹^ˬçºéç³®I¿çY×9ïu™tþE®sÕŸ±é×pÑ¿Åqa­©t¸W’-JÒ^èqóO_ ùD>M»Î²çÓ¸tm1Ò΋!m¹óøµ;äδë,{î¬z_4G=RüëX÷Þ»§—þä%½õOoé¥o¾´Ó7vq»Ê2+Ãk¹É`ô鵸÷Þ=Ýú£[:wîœÆsçÆ ·dLûL©ÿ»ï¼þØqäÓfOÛQ†×²lù4/wƫՒ;ÛCîlG^˲åκ&åÖV¦GVÕ.‡Háþ6æ kÍaƒ­³ÔžIX ƒ˜¦ÚM[Œ¤°O$6§Ú[˜…¿åQ´©áOLçkʶþ6.ヤ楷“^¨Fpß—T*äÓöùú^¬z>µ›-B‹ÜÙ>Þc“T=wVA£mÃfÍ1Æú|~·uí>¿&E£Q6»¶m[e¸«Œ|Ú.Ÿ_GòÉZtH,ŽÜÙ.Ÿ_Grg9y£íÞ{÷û椯À¦3ƘPA0¹Ô?ù`SƳ£¸ÅH±³ˆÜàŠ{ïݳ¶sçÎ=öÍGíü‚TÇxîAzf£Ûl} ù`SÏ“Ž’ÞÙH“#wìG–Gç$‘BöîÆéYµÆ‡IDAT ¯žùܘPïþøÛ{ºUpý¹ï*:Œ•öùˆÛÝw^ß÷eÀcl_ö_þÛž/@U5Þ¿­îÏîž™¢$Ù½Ú$z·lÞû†¾ýß¾m ôq#w¸&_Ó||²ÏëPqI/TTUp³7RÖ‡ÿïÃ=]€²+n®MîpÕÿÁ–¹ -³IEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_05.png0000644000175000017500000006722711563552731017163 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ –i?q IDATxÚì½{œU•/¾¾U§_/WM$ÐqÀàDÒh„p! C"8‚C.4òˆDb •HÜa@"èu„ ÂEAÑk;€¼IxdfP ¦›qˆIä7*IºûT­ûGªÚ»jïª:~¤NÖ÷“œSµk?ª»¿{íµ×þ.two"@P*tu=>}ú õë¹ç^¸ßÄ£‰˜ˆˆ\gb&ò >¡ŸÀÊÝýz \ /jÄ_Ú-$ZI4—U1!.>‚DÔÃ\ÿáp` æÚÓˆËAy n‡Õ·Å^êPî$:´V°àÛK^‡ÈÉwk®Iï¨"'AAe9ˆb"n"ß#§Ýþd©èшBa ëüYg&ÖhœM@6m!bH•ÞY}41Q¨3ÌêC@8ÝQÕECal;+»µ€±9ƒaurCÆA) k6Éw\<¹Ì.ü.ŒœŸ†šÉk!Ï!_uP÷“ÓǗЯU—Ì…X}æ0øN¸ûÝìtR¾— åNûˆ”>qM–l2Õ¡— ÷8#ŽžÌ»É(°xÑÊŒp´L{ûøîîMêËþ§RöQD³lÙisAP“ÁšL3ù.q/¹^ N½ÄÄ•VT›É¯{äì"'¹ ],æ-®Ç€FÞÉ®{¤ºl$\ôÂEM2ݘg½÷qè gz¦È$Li~WÖÈxË!^F˜ÜÕ¿·ÆøÛ+;³Gý/ï,Ðzºó¶ë‚ˆ%\â}¨Ú§—œZ”$ÐKÄì6ƒb÷“S5e•Ö1dÝ,@ôŠÿ&“oTë5F²kdÉ5e±ˆ¹ØÔRïˆ2ejRM˜Oé2Kœ»Xî¶ž—t-•ÑçàºP¼Á Õ‰°‰|þ.v½šÛ}€OnUAÔD\!¯—¸ŸfhÆ%R4Éuqbj2ÄÏÀDޜ˖°ÛÀ*³PбaBÐÎÝj³ñì@LŠx|Ž[&Gþ†Sr˜œó:Y¢eÄr×<¥Þü(2uwo æ­FüíÛíãEÑ.+ӻൡê„Öj•œTñ @|+yÿ½Vò‘v&DÁ‘Œ÷0£>б$¥{cšem ÔÂEÓ‹)o8‡¥k ’¯‰õŠmÁ22˜TQ}X=YlZn$¶„܇Š(ÛÛÇÿJ1!EÛÚiã]ÖLeãw–Œô6ª6³ï0S1%Ão‚×êWòsÚDCˆ¦‡üÙ­P¥Û•ØtËB .¦Dl"õ k{­¬=Îé~¡À V÷@ô=ÜÔG¤GŸ¨WÈ}¨,÷rMÐÛò’c½ÌÞ¸Æû`Î rAmäµÁs‰™©\Õ½á59ܯÒá$ºq Ž¡yÇu|ø(pæŠUG tO½/Ù“¸XŒ'ò§Cdí*{³4ŒåùvËÅ Âwè¢Ù]F Û%ò=¸ÇæÌ ¢2UŸœ¾šíi÷&@U©yauóHÊyY’¾jX73µž,Éb¤Åƒ“£ÎñIÃd¸.]¶ÔЇÜ3l«±c&"£øp¹ÖÚcÇÌÌ==oDÝ.Eç³Ã÷üÈýj5¨Ç’RtÀ4ª¬þö*0ÛŠ j!¿Bè%Çcp†e =2‘‹Œ…4Ç eHjqá”ÖKÉrÌߺU_,lÚ9““Ó 0 Ï 'QSê… ›[&‡£a]*•Ìœ Râv‚=ƨÏcÇpbâ§PJ»¨_ù¤ìÌN)2Võ™§rØ%¿¼VòÁlo”}ð²0+ª j HyF»Þ@~R(#7vsü•áa²*\gKؼ%µß)‘Éd:é·T_SiReû‰ ±—f0&9d¥¥¨Àkcô’ëÙè;6]-ŽŽ”sDsqêT’anã<ÇNd˜3ŒI’5‰Þ¡;[22žFQ4lö#%_§›åÄ)]QÌžk8,÷ÈA‘øg+œ.¶GŠ:Weh',¶§1{Lˆºñ^Ê…T1g”` &®ÙQ ”¬ÀoCµ ìp ¹ ™ÎuÞÈj–•€bÛš„mAÌVçŒÚ:çUhŽ‘7>Ð}D.·L)ô”Åç®Î7ê± 2~µöE#5Fe·ý3‰Ê ÞˆšQP|y­ðˆL.(¢ðÉð<§òd T”ªË¼ã™Ô±`s…ѨX×èåô;LuÒ×[åŒÔ¸†ñ:Ã̉¶?žÌS…e13Ò„¸Ç"Ûtè1éDÓmY÷Íß=¢'›vUÀq\!òšÁü$ ¯ò¦—âC1…`Bwš Ã`NU«Ô—êSAºƒ¬üƒæ~ɨ-+Ú1yj껓8÷Avq”…)„¨~Θ¢ã Pâ Ö^¼¢â!®DT!n¡jüØ‘‘_Ë`mŸš“€p"’©þ ‰Ðë’ÚV}seŒ¡„P²õ½@ÉÖ‘ûêcKÑsLf/—ïEµ[‹8Ó÷df¯w3`¯<ΊÁóÊ {©¥Ï n!¯ìfU•ˆkâBÃA˜VÊ:8Î ùטFͶ-y€´T°É¯gfÒ|QJ`•þU.½/0®7x¸Ý2g­9¢\U$´RĽ‡³¡ªŸå1h•噂CÔJ^ªPTWL“ŽýÔpÌrF1šÂs²n9Ìde:uššår2ežUÈA³ÙKg¹'úlN¹,Ü"J–¢ 9|3“"x"rÈ߇È#wWmª:s²²Æ¥ M…1j<€˜ddMª~$,ec&gÌGz¦P†Ò>‡yX|X fPFrÛxŒb¹²C©¤Æcø)2öHÕ[ò«;$þ™´Ûp^ÊF'VPYeO#”Æ0ËîÖ~ ²—&UDòZ»¾eg2IßYÑ’¦H›œ“[y2_¡ûLñ’œU¦;(ò§ÃÔ—´†€Mz^±âÙÑuO°Ü…Dd~4¾OVõ˜ ùmÄ»¨âe8X8gálj6´d›flò5ÚÙb2±ºrGL¬VÝOªcÅ"f^ÿäÏV²¡*†…è-ìí·Pµ…¹ÎÐG.О]±Q; ›©`É–½Vw†“Á·x`Tw ¤3ÉR÷Ñ¿ ¹ ‚á¥x$ÎQ…¸ÕfßËZh䇺§‘|YL‹GIÏO%¥œÇŠŒ²-€Hi>˜ ,/ƒ±ýt¶WHœ»ÀÙß6|aÕS¶[7]ñÑÆüõJŸ5¥­fÇ'¢^r²hÕ&@ÆþjÞj ~–C×Jì'JãYÒ¨Eáç®;Ô Tc`'ÛÖ!;ÄrÔÇ•2Á…ÁŸÙ“Ö.@ÔL~Sn¼æÂ0›ÙVÿŒÙ¸G!…0ÎT 4¢ ߪDBj{)µáˆ¦YSI3'ÑE+“"ÃŽ°À^2AAéôÑJ147,³g}Hfmä·RÕ!ÆîÖháÂAÐÄ,uH+Í({ßI^åd”gálQ²¡*ìQPÙ¼Á™YúXÁÍ&â6ò+T—¢o±b° üÖ%¹Ã„Ê"³=p¼'Pë™Öµž!Ï)c[8ˆ!!÷è\Rdµ·¿óλŽ9æØqã!¢îîî¹sÏ?âˆzèás朻uëÖ¨Ø=÷|§³sÚøñN9eÖ¿ÿûëÁõ®®_œxâÉãÇOèìœvï½÷ ³ÙÞ‰ÐÛÛ{ùåK::Žìè8rÉ’¥}}}ÆqÑm·Ý>yò”‰'-Z´X-f|-2Áâ÷½Åfϯuˆ\ò[ý¾¦¢66×ßü€Ê¢œ"ö4º’{ÑJÂ<ƒéýU¤voãÿ¥4†9튜32Ë]Í«]|õÕW{ìG›7o$¢¹sÏ?ï¼¹ë׿¸~ý ‡zè²e×DÅžzêéïí† /Ÿ|òI‹_\\°à²… ¼þú†¼ÿ•W^æÅ{ $ 7¬Þ²eË“Ov=ñÄÏ»»»W¯^c=÷Üó?ûÙùËùýï·®^ý¹¯E2þ™½¦€Z¨ê‚3ŸÊÍß”;«dŸrB†Ü@"ô'c™¡†³ej8uY$aJæ 4Úƒ‰eˆ~­Q ííã_|ñÙ8 ]rçÎ}ùå—‚b¯¼òÒ{Þóžàú¤IGnÚô"š:õ#\ð¹3Nzßûþr˜ëf ¦Lé|àû>ø "Ú¸qÓìÙsžþéô¸ÚÛÇ?ñD×A#¢M›Þ˜=ûìçž{Z}#…RºÜwß½Çî~=S§~ô­·Þìêz|úôÑÅ®®ÇÏ=÷Âý?ºÜφ Q/¹UrÍ…Të—ëµâ9YCÇa=lªbëšDÓœ$4©ÃSlñ¸è_ 'ÏNvgø|î*!®[·þŒ3þþðÃ?ÐÞ>~âÄIo¿ýÿG·B$¢¶¶¶jµ÷zÇ·=ùäS§ž:kêÔüä'ìo`©²mÛ¶öö±ÁçqãÆmÛ¶Õ8.";öý!?¶Gî¦= 3A¶ýî·’ç’o6d \ê¡asv;Ê5ëQs#GÀQ#mf×ù>Œaö‰-í02ª]4ïÜs?ý ÏlÞ¼ñßþí5ÎKè}ÔQGÞ}÷/¿üÒÊ•×^yå—÷œßÆÒ d̘1==o†N‰î1cö·•ŒŠõôôì¿ÿþ{4Ì@ÙĆZ¢ªKùIëÈ ¾^„<‘W”aÙ[rõAÏ“š8,›È ©¥ˆÍ«Ïº7Þ+ 5ÇüP‘û¾ûî»qãFÛÝ]»z[ZZZZZzzz"tæÏ¿tãÆMýýýÌìyÕáük˜˜5ëÔå˯پýÛ·o¿êªå§6ËVrÙ²«ƒbË–-?ýôÓëz-2Á ºh@äµQÕ͇1f@þ «'d7ÇNœ¥ “V׸è0†ŠÜ/ºè‚™3O³!¬^}ýÕW_{øá“fÏþtgçÔÜÚN8ᄹsÏ›8±cÅŠU7Ý´fxmóH€Å‹½ß´iÇM›vü{ß{à¢E m%?üá)'žxò±Ç~lôè1 ~¡®×"Iƒ#މ݈$‡õÔ‘CÔB¾“•Šé³d{‚²’¶'w5U»<ÚÔË*kƒÏ”xPk‡’™Õú* €Á0`86T8Ú&¾XjË]…ÚEn5Þ,Læ×üæËœWàzºeðq:Tz:bU2ÀšRH9`Ër€ÕœÃ`¹ ‚°ÛQˆ"Ë·‰‹©•=Wsus¡… n_)ÝÊÉ™g]!hŽXÏ„ ¹  Æïi‰Àr:Ì“WjÕâ'¥ä¾ÔÝO}÷“ ¬CômT­³W˜äödk¨†b¤—BîACS}éûoޤVòÜâ C6ŽtØ#TŸöÀ^]xI£gÎë'bm8)%@¡^+f(¯5%ä.4(­yYäJ8K…'ø+D­äUòã#Ó&oîK༗V‡šMØ$'N#¡&ƒB4ÉpJ¿Ë3jyž’s”»@ИÔnõT”:AºÄmä5 ì`j.—\Ë;y ߘ©Qè>qYꊼû¬¿$!w`o!ùÒïUvnEÄïE˜Å|îÉÇúø’©¦Ôó«z¶ m[•UCI™ù´Ã(J“­ ¹ {LJl.áKoÅÇ”çWà!;ø]µró-}®CB½ˆ• kNë° $š*ß]QÃ"™£=X­àP¥Ù[¸ð‹Dtã7¨W¬^}ýYgý7sòg>sNpý›ßüß?þÓûî»gÏüí7îŠÇq¶oß•òsÙ[™]±QòѤ’[TÈo"ê#7ŸŽ#žgŠAÆf±–?É«Ï"9¦åņÊóé6Ò~šHU,™qÖÖi®©Ç«Ó×P‘ûµ×.Ÿ9óôµk<óÌ3ˆè|õÕWyä!"ºüò/^|ñ%sæœ]©¸Õjõë_ÿÆm·Ý²Çþ.EʱáŒÊ‹_Qä0êž ù¹Ñë|îÛq©‘"Òòå_ó›æ:RP ˜¥ 7 fÇ:lÓ†¡dViV#€òU/?TäÞÖÖvûí·œyæYGu­X±ríÚï¶µµÑäÉìè8âá‡þä'ÿž4©ãƒ<ª,¿W_ùÊUGüÝß}¢¤Üòs¬¾ÒuÒÍåÀ¼m&ŸˆúÈeÎôº€”Èp.pˆ·PFë‰÷`í‹­&Nî _\÷3aÈɈ;ì°/}iÉ…Î#¢¥K¯<ì°Ã¢[‹/úüççŸ~úi·ßþõ¯}íæ²üF­\yý~ûí÷ÙÏ~¦ÔÊòs„¼Åx§ØPÍö0ÔÄg»ÈQõpþ{°è¢§èš#<ùr‰>ùòõCL%WCÍ¥ ùÔÚÏ/cfÚ Õ}lZkk+3Ïš5S½>qℎŽ#¾øÅ+>ðI'N(ůÎM7ݼk×® ¾ÐÙòsÄŒ¡Åd„þå‚áヸzŒÉD.{|ƒ³:QNñ‘MàÅ’Ë›ãàh‰­V-†R_&T†ô'¶dÉÒË/_ôÿñ»•+¯¿ê*M¾ü²Ë|ô£Ç?õÔ/Jñwp×]wÿö·›Õ}ÈRC~.‚ádî!šÕ¡Vø;Ùñ\ÙyùE¢ýUevÌÌ×Û›fʶü¨é¢Ò{ .» i 6U‡Üðƒ‡ûûû;îcÌ|ÆÿË_>ý‘ĪxíííÑ÷pÜ{ïwŸyæ¹Ûo¿h„ð1ù¹êðpùºï2·Rµ—¯g"pâ,P¾¹m+o¦ù8†ã%Œœžh€m•²©`üøP¹e¶mÛ¶|ù5K—^Ì?+V\³xñ’?þñe¤ÂGùá×¾öO•ŠÛ¹òsä[°(`ßcÐÛÅî> Uœ€[ɯFm†Â{”‰S*Èl ¶¨FëSXÒæYŒýðq†ºÐU]Ÿ òßã*Ë}éү̘qbä·8qÂÌ™§~éK_¾ùæ›ÊõË~Ùe‹ªUï°ÃŽH\/©¾ü\ùLÉ¡…–¤¢JxA`¿»äUÙ-î‚”pzÎ+”„wTß´#¯šå±w…ã ŽŽEÁ30ÌÆ±}*r¿ýö[W–,Y\Æ¿Ã;#?AAó=–®b.™&dÃfò}BüžOÀ¨àe*fSćSG‡£ù$aÿG¶;” ûñ§è"D~@ h 2ýÆDR¶-p“ѵ‘לåGÿO¶¼É„lÉxä·“éRX[‰›d³og˜r¨ ‚a†o0ܽ)£´ùœ˜@TçÑŠABX—wë!]¯é½Æ[õ5gº×öX…Ü‚Á.§Ù'gðí÷’k»Ä­ä¹\Ï‹² jǦ­èÜG Lªj »ÙÕCë„»@Ð ¨Reš}ªð`’q¦ÿaGØç qùuæÏC=;¤z.ü\ö«Mdù((0/ä.4¿ÃÝá4÷Qeh<)PÎ䔆æ_àWȧ‚ÊÀvsØnag—…=*2±DR2,¥ï…i@²3ÅJ&& ±d¯z¦>T†ÒS>RŽø· ¦6ªâbuð;vCØ6Kž3{f³µÎæ—²¡*44»äèEs5 žq Š–óg·ÒIŇýu@m䣸nNÃ=šÕº6@úð©é¤ÔÅ'ƒµ ~löí×f¤ŠüAÀ ¿˜ ½N3<4qœ¡h…óC`ÝT¯2>(¸¾f×Â.+£%ݨoªkÐÉ™óÂ$U~CØ;ˆr¢O Œ{°¼„ãÛß¾cÁʯï¾Åp`?¹;É-ÊÇÑ¡Q-Ÿç0z¾@]i,: Š íI­&fÃÔQéêz\~u‚¡Æ9ç\ÐÓ󆼇AE]»£qª —<—P“+Ó%Èã‚BídNΗ;—¨Þd,Sb“jE9½^ªLŸ>C~GÁ^‚ Œ¤½^B?aC'| õ8f²}VÅVE|AÈš2dCU ”—¨1°Çâ yÐ,qäóƒRщÙt[$Ž™™øæípUÙWM ¹ ‚²c ;·Mä7'c¹¾£G3õµƒlÇŠ‘¹ãd£ /ä.À„§ºB$ƒ€Ã <¨z<5¥Î2¶5ý™‚+]ø‹í3“®JOz;l¦>ŽHÉ!&@°÷Nâ6òR¶qæT–3AVÈ#¬ôäá¬* }ºgL‘ôEú3Á]!w@Ð0t]wp½KÜ̞Ŧ¶i/Ö»N°Zê©J“±Ì{¦s°˜ˆ–âs{3¦fÎ÷„MMƒ§²ÊÌG…ø]לŒ¯¥sü…ô¢ÛBîA㣽}ü Ûãí÷úLkU¨ê˜Ç‘aU§6N¹žj éÄàš´1ˆª@ Ø«Qq3ùó"+ÇRªon :<†Å+ñ‘úTÙPJo’ßyç]Çsì¸q‡Qooïå—/éè8²£ãÈ%K–öõõEöx{ûøÈ0ïîîž;÷ü#ŽøÀ¡‡>gι[·n5óöØ6oÞHD7ܰzË–-O>ÙõÄ?ïîî^½z …Ï»»7EBRsçžÞysׯqýú=ôÐeË®1»å–[_{mãþpݺZ[[W®\U2›¼0ƒ¢æœñLá/ê òdŒ1û[ÌÁ3µ¥ˆ¡j¼Ûº¨ˆJŠp˜@0 ;öà¡Ð–ioÿâ‹ÏpÀÁ×)S:xྃ>ˆˆ6nÜ4{öœçŸ:(fûKß¹sggçG_~ù¥t±ÎÎi÷Üó­C9„ˆ¶mÛ6cÆß®[÷üˆ¼½®®Ç*VTà70w‘ÛÏn^U79ÏKú]´¡H"LÕ ³kë°Hþ ¥GÄì·· >7nÛ¶­ÆGÖ­[¿bŪ þuÇŽD‹=¸eË[Ó§Ÿ¤˜§eN¥š§2Üh!Ï4Åàfa(—ò“³­L²û (ÇQ³Â쉅Ü‚˜1czzÞ<è qDÔÝÝ=fÌþÆb]4oéÒ+?þ¸Q£F½óÎŽŽŽ¿²M=ô½<°Ì¯$A”œÍïQ3ù½äøÐg¦Tì\¢ÏîR¶Ÿ]Ât‡°è‹âs ³fº|ù5 e9 IDATÛ·ÿaûöíW]µü´Óf×÷Ýwß7FÅvíêmiiiiiéééY¼øŠèz¢Øœ9g_qÅ•›7wW«Þë¯ÿjÞ¼ù¥å÷:œïMð›‚l|fÁ€Ì Î:bgLªv猚=5buæ`ÕÐ  ¹ ƒÅ‹½ß´iÇM›vü{ß{à¢E CSý‚™3O‹Â`V¯¾þꫯ=üðI³gº³sªbÑkÅ.¾øÂ)S¦œuÖÙ&1þ¥§œrrC¼¤üð“ <Ç*“7Up¾eŸÌÉÇõÅÄ´Žd]©‚²¡* †hCu/Ánl¨¦©¹»¬>Q9½ìjÑ)l5«-wÑv.jݧªÅÄ0'6¢¯b¹ ‚½i¼çÝI2¤5…a†@® Xñe@Zh€(¯ ‡ÔD$Ö¿»@ Ø;Y>‹ßAÔLÞnÉ»sánäƒÍK¥ï©F´/ä.öNZGo‚¨‰ý6?ÌzD¡GF6*¿GgŽP¨S9ÝA’ÐÈ™Èýž($ä.Äl7À¹ŽøšìW]òb\„ÙM“D‘‡Â‰Šr™JôBî`ï§,á$s;ÄMä#ŠœA†ô:¨€ÁÃïœ1éänáÏA¼Xî@Lø,mª¥jèé\.nŠ©³Hñ>CávEÓ@È] ³[ÙÔ%jcÌy>®cÉ(™·{j”ü¥ð@“zKÈ] (1.üâÂ…_L\¹ì²ÅDtÖYgë[ߎ®ó›ÿ{öì9òÆ,„jŽDß½¦"ŒltÜ 8Ç#sþ€9òÒ¾FrJŒk¯]þÊ+¯®]û`ðõ|õÕW¯¹f]~ùï¸ãÎjÕ#¢jµúõ¯ãòË¿(o¬8Á•ªÂ–M©–êƒÔn¶áÛ´‚8¬R’uåG[[Ûí·ßríµ+ýëßüú׿Y±båm·ÝÒÖÖFD“'°£ãˆ‡~˜ˆzèáI“:>øÁ£ÓòªZ8ºéÂwÁÊ=£Äv£<72Ò¤_PÙ&RŸ!¶U+cÇ,!AyqØa‡}éKK.¼p-]zåa‡ÝZ¼xÑç??ÿôÓO»ýö¯ík77¬‘=˜³Ûn4“¿‹Þ®€,"ŽC2®Šè]À!µ¢>ö±ißüæ·wîÜ9kÖLõúĉ::Žøâ¯øÀ&Mœ8A~ õ³iäœK¾C~,õÎVòÎäwäéÉ„sŒUê=—øk13©@0ÌÁQÀ÷R<ájÓªBî Ô¼žÈQ1,Í¡–>Û£ôÕD¶<ΜvÔ*‹þDÐç!w@Ð0žÈ™˜M+šñ><䂃r fÊýÎ méÛª&Ç ÒÆµ­ó¥¿2— „Ü‚½ííã±ØžÌë±—f› Õ“ÒDÌa3©Èô"_hÀyÕ@È] 4†÷HjÛªv[ê[¾ýž_…»@Pn“üÎ;ï:æ˜cÇ;„ˆz{{/¿|IGÇ‘G.Y²´¯¯/²ÇÛÛÇG†yww÷ܹçqÄ=ôð9sÎݺu«±˜çy«V]?yò_O˜Ð1oÞü?ÿùr˜ïA@a]‘ˆm‰jžÏÂÜ(v|)cma›ç LÈ] (7^}õÕÇûÑæÍ‰è†VoÙ²åÉ'»žxâçÝÝÝ«W¯!¢îîMÁƒD4wîùç7wýúׯáÐC]¶ìc±[n¹õµ×6<úè×­{¡µµuåÊU¥4à‡Ð–¯9øÝšR%§úÀIJ28’³FªGx æ½@ Øm²=÷ööñ/¾øì|2¥óî;øàƒˆhãÆM³gÏyþù§ƒbe'°sçÎÎξüòKébÓî¹ç[‡rmÛ¶mÆŒ¿]·îùy{ºž{¡×Ó¥Su.¨‡Ù'ôr¥N!/ ›Ê(ÌùsXZT‘¿: Ôˆ˜= àöö±ÁçqãÆmÛ¶ÕøÈºuëW¬XµaÃ¿îØ±ƒˆ` /Ù²å­éÓOЉå· XÁ>9Ur›¨ bä”$f8D7‘ßOkóGñL"lŸò½:–5 ¹  „1cÆôô¼yÐA㈨»»{̘ýÅ.ºhÞÒ¥Wüq£Fzçe›6zè{x`ù^;ÖȱȲ•ûÈuˆ+TÍæcŸÐ‹¦6öîØ%ªfI†±šæ4wQ¯Ï'R7Åç.4fÍ:uùòk¶oÿÃöíÛ¯ºjùi§Í ®ï»ï¾7nŒŠíÚÕÛÒÒÒÒÒÒÓÓ³xñÑõD±9sξâŠ+7oî®V½×_ÿÕ¼yóËj­§%[ìÌî|ÐT 9L…ÿ·.ˆA~¡4xH›çœur5>‹üÉ BîA#bñâE£Gï7mÚqÓ¦ÿÞ÷¸hÑÂÐT¿`æÌÓ¢0˜Õ«¯¿úêk?|ÒìÙŸî윪XôZ±‹/¾pÊ”)guö„ GÌŸé)§œ\Ê—‚x+“óþù„~¸Ác»È-¤úê£ ³ÓÄÅN«æ ¸Û¦¨ú*— U`XÌGI½7T;ÂQVmÜ~¸>‰*dC¬hô“[ ÷EA~ W[ȳ±h•œÔÄ 0UØ«Àë¥&ßLªSn°GŠôÎ*YXÄ-£ 3è‚øÜA‰<,»gÄ“³ Í^èÇðáRÄújxUTZØ··[£Rõ“ë’ïï“›3„¬}V{^§ü=ƒdW!w@ÐðÎ4q/¹žâ¹ŽéFn…GØEn U‘5ßÔnV¹âDÜm g wƒÂ¨ΛԊ,\ É:Á^hùs¡=Ϙì¹®gáI=<À+îç΢)"<À¶ÎÇk!w@°·™ðI¶T%ákÔŸà›<H©=2È< ÀÎښƬgRóÓmd „ÜÁ^ÃìéOl±žã³¡è…ã‘ÃEêGvZ(Ó£ú4¸˜g†HÜ2`¯cwdd:5z©ØXWÙuëåêD×ó6µm^!w@Ð öxèéùRš4îûáTM¦p³y¯öÞ©ünš2F„ú-Ñ2A‰1nÜ!Žãlß¾mÓ¦ßì5ï ŽøH‡z.%ædMl®U¸öEp¦ÆÓlÒ 1j]3˜Î`- "b!w Ä”~cvb^¼ø õЩ@7f={ƒÀ‰sDn­’S…Ó̉3M°:BlÉ$Í&¢¶F¢õ‡ˆ[F h|å+Wutñw÷ yVã9­»®Ê8rÚñúnúÉMg§¶JÊ Y£Õˆn{¾_FÈ] h¬\yý~ûí÷ÙÏ~F^EšÈCL¼ÐX8›FœªÎïN2A¶>¤' JÙý0&DlvËÂ@$ÙA㦛nÞµkׂ_W‘gñšò_ ™:DD„>¸~:ìÜ¿ÎÑÊ| âsJ»îºû·¿Ý|ã7È«Ècv `¼@&8úÏl;8”Øp%ÇN•WQã8&Ð˵sæ²ÀâÖE 2Ñi|\6T‚’ãÞ{¿ûÌ3ÏÝ~û­)©?óî=ϳN;”Ϥò…>TšÙÓÜ.œíçÌÞë¼H¬ì쪖‘qnË] (5~ðƒ‡yä‡ßúÖ]•Š»wŒx÷…!É%¿Ÿ]%âDĬ1<ÛfϹL^†¬€b}gÅWšõ×a9Ôj¶ß­e„Ü‚ã²ËU«Þa‡‘¸nK‡-‘C¾f³’çˆó—v²ÓJUÉMhüÂ01P^Ldîú¤Ø“z)!w ÄØ›+ \â yÕ˜ý8¹ŸÊ&‹=¼ÁDU8Uv*äûDý@¾my‡y>á"þúÔä¡”h@P"³»Ÿ?ÄM\%ŽC+ìµq¯^‰OyjMÅÜé5‚ ùˆ“ô¡[•'¶T®m@È] ”‘Ùy°Â ]ò›ÈCx ©B^…üfª&%­­¡G“t¯7j¡Å -‡&ä.JÄïÙ¯éè©CÔÂýMT%b‡|—|UÈkæjfØ"b㟼‡YXQGßëZ” óùÚsœžùÄç.JÄ©"ý«±b+÷»ÄM~M­DMäõ“ëóüô‘[!¿‰½*Uª(Ø&Ó Ì·Xî ,f; »Ý¹`uÍT…È-znâìdyñMŽGŽCÔT ¿Éì#ß Ï±÷í•ÃpKÈ] ”΄ç<Šà¦k`¼;¹˜TÁÀ3Ã.|p1ŽDÂ7'Á¸ ›ö®µ+ä.r âJR××:sô9ð.ù|Ýq”shuHtfô•ƒ»@ (k#'@p7ly5±Õx‡*ã‹ &²BÄ.û9üÌLÙÑrÀ¢9–¿&H ¹ ‚aÀAîõ$lWØ7Ê=¦(>9H ÿæ:í¹Ž.¢ð@ôÎ ¹ ‚òò;YÁ™Oä2u?P%'ˆ§¬c(:YWÒT„/¤¶¤‘Ù ¬àa©óŒpTá‘ˬåîôõŒ¬Ÿš¸67 ¹ ‚ò2;¬im‘Çjš"“³J¢F|rb‡}Ýv/`¿3ç/BضVÉ rJŒööñÿüÏßùÈGŽ;ä‰'žxòsÏ=ÿ½ï}ÿøãÿÇ!‡L<å”™¯¿þ« ˜çy«V]?yò_O˜Ð1oÞü?ÿùàzww÷ܹçqÄ=ôð9sÎݺukp½«ë'žxòøñ:;§Ý{ï}Q[‰¦£wÞy×1Ç;nÜ!m ¢£d¨ 61!¡–®DðU:3é¤zš®©G2çM=¹ü¦xÿ°5!w Üxê©§Ö®ýî† /ŸvÚÇ?ó™¹?ûÙÏï½÷ž ^þ›¿9ùòË—en¹åÖ×^Ûðè£?\·î…ÖÖÖ•+W×çÎ=ÿ¼óæ®_ÿâúõ/zè¡Ë–]\_°à²… ¼þú†¼ÿ•W^Íí믾úØc?Ú¼ycF[CoÔÛ÷ä­ÑäÃû±#&P9UrZÈ3Í%ù_ “Š8[€Ìc¹Å¢lÁP€™{zÞ Ëý•W^zÏ{ÞCD;wîœ8q’úuÒ¤#Á÷ÎÎi÷Üó­C9„ˆ¶mÛ6cÆß®[÷|¢ª;wvv~ôå—_"¢©S?rÁŸ›1ã¤÷½ï/Õ¶Ô Ñ×ööñ/¾øì\/ÒV½èêz|Áªo mŸ†OôZ}ÎLUý¿•û›ÈûZTw¼1·úkAjQýsÞø¬•‹p˜@PnTNDmmm‰¯Õjí¤å–-oMŸ~’bÖØgݺõ+V¬Ú°á_wìØ¡^¿ãŽÛnºéæ›nú§ÖÖÖe˾zòÉ3²û1{F[ƒa›ç²wTh÷S­’Ë£ç1% HÆ—4ªkQ“U8öšØï‡C€uk†'Dúç½HŠΜã ä.ì8à€zè{x`âúEÍ[ºôÊã?nÔ¨Qï¼³££ã¯‚ëGuäÝwßID]]¿X´èò€Ü+wçÎÁòöÛo×ÛÖð,Ë„ÜîÕ¤gÅ@­5Vùìø—üj 2iè %kN;WôDNœGö )ì ˜3çì+®¸róæîjÕ{ýõ_Í›7?¸¾kWoKKKKKKOOÏâÅWDåçÏ¿tãÆMýýýÌìy5Šëèè¸ãŽ;wîÜùÖ[o-Y²´Þ¶· ‘_äÔ¥8òAΘ:@ä<8òô¬%‹Z‚qØœ÷‰*¤@°7ââ‹/œ2eÊYg=aÂóç_zÊ)'×W¯¾þꫯ=üðI³gº³sjTþ„N˜;÷¼‰;V¬XuÓMk‚‹×]·â'?ùé¤IGž~ú'ÕÂÛ=¹ZQ…<—ý‚úëýÞO.ˆœ Á“fs[šíX¡!r†º½l¨ Ãâ/š Õ½]]/¸î–ÔÒ%ï<øD;©¥ê¸êO1û‡ ¦Q¼«ŸÜ]hª³KÙças'}›År%òø5ä­ rÃo©fY‚‰úÈm¢šÊ{}í3eªÀ׳X„ÜA9ÙÝp§±Å"5‘˜ë±IŒTž h|ƒ¼š1]×ÌÂÙÝ Å†9#&R’u‚ò 'Ú‡3"mȌꙈµBŸÈa¿vC ˆÌlÍzNªà,•œß„ÜAÉÞ`º@¤Cìj:ÂðÈ©˜e ÌK0(Òy@ (r<Ú\Œ4sív’¾ð a¬øpâ&J " @Ó (¹ ‚1:’’Y\ä©»ã]öó3:ªäúDD¾¦Æõ¤ºFá÷!–»@ h°™aœ`7ža'Kí–K~äUWÏ cö„jyp*ÌIQ°"”ÐÕc÷XëGr¶`!w@Prf¯±™î¦@®]Ι÷˜ Ž‘zfX‰'gªå¤8Èc‡ÈçH1&ÉÅÈ”ÜábÓ@âtjr¯YÈ] ” H*®2ä)Û H÷îBÓ.4ùµ§Eúy0©¹p–Ô]Øœ.•s4Õ¥ãk*,ä.JÄé Mæ* Úå(À’®On*½h¸š7$ù™–šàÁa ‰}²ÆS²½0åÞË|1$ä.Ê 6EA²v´§¾ÚÒS‡¶Gn•ÜØxgßìå6‰7F7ú ¬:lê;Д;äEι ‚rs>'mXÔiâ*uyò|Ð.§Â¡'»B~BÈ]‘Š$¤T @D€×%{¤aIP°³v hd/ä.J˜Ù &­sÔ[5;¤7ú©)ÜÙdG;Ê”\;°>Å}‚¸W8—ÙÓ…v31 »@ (¡­ž¥’ˆlß2ïq¨ U¸jž÷ û°-l!*ìgNTÙs ìË‘L—=Bî \ÌžÉÕ\øY“î’_“…!ò€]hЏ™s•]ôEˆ˜\kLM]slaY}reôHNV#MLðÉ!jÁ%ß±Ùç@œ1Uì9`íHRÛªaÌ gÿdË ¹ ‚’ºý¸i!u­´Â$ƒ¨™=5Š~Ü~‚K¾öb ~„¡'LðÈA~(vc®Ë] 4¿³ÁE£z,ÌŽJÞOÆV‚Ènƒ<8½höÉQ6ºHÅÞD—à)ç¡ÒF¹MI`wi_È] ” l±»‘UV£•â 5ù.ûŠ™NMÊR ¨Q~*ŠÇÜTz@Š<øÅ]4Ù‹ÓZBÈ] ”‘ÙÙ>ˆÝ®™ˆ¸Â¾£óè…Ódr†b@J Òp’…»W´]!w@P" ËÿÖ•s‡QgTùš?ð‘) ³fúɵæçèFyKÓˆRk!w@P"Zô$L‘Ô£ê™a·všI/ÅuWM„ rmó°j@N:—XÈ] ” * ³%ÄêÿCq€"® Ö]$µ€Èèh™°ÁÉͶö¡Î;+ãÈ8¿™ôOµY™HÈ] QœsÎò"ôô¼QŒÂ²,A99d`·¹DÔty>‘GìL·©ÎŠŽ‰s:X˜å…Ü‚=œÎ!gºm›éÑ`‹} Ûá&CMìõÃev,ò‹PåÄ’©ÿ`ãûšçAs€ålrdâs¥¡w‹M› MN¤¬¶úœ]¯K~{ŽM’“u¨›­n™‚šì»Ä‰ËBî  4ÇÔ;éôÈ Ði¦I¢ÖV…«C/`kƒÓì ó²Âvô$-m¸e‚aÄØ±ËK¨5ÏUÑ£KÊA§ÈmÂ)-C-¶ìÚìúýŽÓäqê %s¶Ä»ê–AÂYÃöTÞ`¢¢¹ù2!ä.JfÃ댜yŠ¡Ëƒ Öœfbn¢ªÏN\VOÆ:aœÅÁæ":Csqâf»Ùž|RÜ2 ä oåA&ÍnO?k ©D"6@ÔDýa†&Í£’é"ÑÓ2·ñ‹óØ/þmç®þc>ø²óOاµ¹HξùÒÏÿ×m}û÷¸ï¥Ÿ=þ­­ºçáÞÚú§ƒÞ·ß4~ìèìÇÌ~ïÿyqûÛï­ÍçŸuì“/l,^à²óN8`ô¨–æÊ™;yç®þs§_?uêä_¿ñûÜÇüÃôý÷ÕÚÒô÷3þÿ6o1ç SÊŸ T׌}¶ŸEÕ&Ž%áa(^‹x¯FfÎÀ°ÈvíäGádÇÖ@Ü2A¹±ííw>óÅ{â¿iÔQà¿j >´4W_=ϯëñ¨ü‹l$rµÝSê‘És¦E­«AæûÓkOÔçx/¨4`)&ä.Œž}öÙ5kÖL:uÁ‚ÅÖ¬Yóì³Ï.X°`êÔ©‰[£ÿû>·,;sÌ{FÙžÍ-Ý||h½1ÖluÚþöJ¢¸6šØŠÿ„³ëå¢CÌŽ4Tjþ·Œ@0bxóÍ7?ùÉO®]»öÁ4Þ}ðÁ|ðÁµkמqÆ===é2³þÇ_­þF×ï¶ü—çù›z¶_}óë-z÷»Zº÷ö09d`;O¦cMaD SžÏ=Ç[¯`Ÿ+ò3 ‚´L­JØÎ9F%–»@0¸ôÒKW¯^}Æg¤íú§Ÿ~ú´5k®¸ä’^˳ÿóãºï‘—.[ñƒío¿Óþ—ï™sú”z d£ÞÇÏšù¡‹¾|ÿÎ]ýƒ¿§ÊyD_H ¶p®÷ƒ-aì‰Rl¶ÄëtàÔaéI(†ÌÜÓóFBò÷Áô}ÿS!<óÌ3Çş¾õ-Z²dí[oÑ™gž¹¾ºžž7ºº_pÝ]IÆâlÆ´%ä«ÉõZ>ú9;ÝVPÙ j‰ŠÃ§Ô#0Ôm1ï°h·Œ@0òèììììì”÷Ù\œÍÙÂýA@bùž}Î3éè1{t |°DÄ0!3í«ÞU¶í%°Él·B,w@P6›=Çb&ëdŠrsÕfÀì°W‡¤­7– Y5†¾H§Sf{PÆPJ,w`ÃÚµkWžyæ1ísL^.^´èœ"‡ØOû8 IDATe®švEañ·ç웲õ›±Þüa±¹”XîÁ‡5kÖ$®ˆßÆlÄfù:T‘0(BH[Í‹Œää6)Ì] ísNE/rþ˜L‹Î5Ý)Œ•4Ô(–»@0bxÿûßã7¦ƒÜÏ<ó̽30&ÆÝTpUŠÿ={oµðøp…À°¤ÖŽÊÛO£²-ª®Ø^ëZ§ZS{ ) /™B!U§U3j0žPÝP …¼þ®$¹[¿fËÿ*ì ½8§fbªäîDK 4S»–Ž|Œ)La KÖ‰UΞ» lŸw6yK,w`@pZ5í`íÚµ==={'¹‡äeµxb·§#P,ñ‘`vÉ''äòX¬1|OÛýÌÖih`gXbcDÏ] Øó±fÍ£õôô,\¸p¯~;à„`WÊÊVÅY8u#]ÚL¼éî rÙ÷àF¬­¶Vû/Z$éÚš"–qGR †(WJû½&UÏHOÈ] Ø#pÆg¤º‰šçNŽI7"Òt¾:h{ƒÕm¨×eσúâºÂ©¡ŸÅ¢1™Ô#®1r:U ëü^¤o*éƒ8^àH´Œ@ (‘ý®s gxTŒ±5q±¼ÍÇ ùe½8Vq·ž"J(ÀV RáS]ªÇq£{†"ƒ_È] ”Ë~·X뻂d,¢""b—½&ª"š7˜æ yÉmݘԑYO?9>ìªB5Ò¡Îö¶aX1$@ºŽÌ½@…¸eA YÞ˜A”¡Þäµ´„™ à‡iJ¹ÎöYÍÔu0+^ÉŇ –»@ (­'”qws/;œ6ãhŸŽ94 [âŽìÕCvì&„ÜAÙ€:ü±ÙâúNZ£]?ÙÊùÌŸa3Ê¡N95Š[F ”é™Dî¦|¤µk\ )+BrwŽÑ¼g3áæï›Zý3É2™ÃV‚oÄre€-ßu¶_h¦°¨¨§O³†W<4<Ê©SŃ‚p5 Q²ö6³¶ŒMaÙ¼xáøŸXî „L£BoÁ|Ld¢N]–+aÅÇŠ0äÁí³»ý9é£A v–Ú@Õ„#ÁlÝ•EötgY%@È] Fôô¼!/a€Pc…ÒX àhú‘”O¥ Î¬Š˜]~†­y¼)‹·³Rf+µ‰[F ”ÖxÏØVÄ@ªÌ{ñáTÉÍXp®Ámz(GÌÌä™ó ¹ ‚’y2•)gjËpÁ¤”UT¿ÃDUr}¸l‰¢Œ³µÖçZÀ#ÒmDÇŽ NEZ«ÙÏ@È] ”H¥ßPd&6Z¡³|! šku"Ë ÷à´Š’xÂîW‰•}UƒX{Nú<­™ÃÑ£áYÈ] (1ÚÛÇ—¨ÚÁ7æÁ9ò¨ÃKB@»=<чäcJ/(­7¹é~*ì?‚1`Æ´ÌBî lö;R¶1Û©°°.˜>Î4ùTá”Ü Y8¼mÃø˜¼íªmIvCÜ2 ÔLÏ&Z-¶yÚùÒèYè«& •)¿]»º¾F¨m(¨Ñ‰þ¤ ’m¹ ‚²•c¥F“–sy·p‘·\Ní8:¢”NÖ§®+mµaÙ:M冭c öLÕ–BîA¹qÛm·Ožiñâ+‚‹«W¯Ù¾}ûÓO?ùÓŸ>öì³Ïî¹nã%èD7²¬$š|2Ô—jÇX¡äJÍ4ª£v‚XJ 4Âa o˜V!œÝ6äoC £“y(ާ¶·≮ƒGD›6½1{öÙÏ=÷4M™ÒùÀ÷|ðAD´qã¦Ù³ç<ÿüÓAùW^yé=ïyíܹsÒ¤#7mú }øÃÇ>ðÀ}A=o¼ñÛãŽ;¡»{Óžóöºº_pýÝ™\3&ºÞÝÝ=fÌþÙ•ì¿ÿþQù7ß|³4ƒ‡Ù²»,ˆT…˰N1ˆYÝÚ#wGdŠÝ$+ß§5BÈ] 1¸ÿùÖ_|⌿¸÷~×­ ¸Ì²eWoßþ‡íÛ·/[¶üôÓO.Κuêòå×ׯºjùi§ÍÊîÉ'>qÚòå×üáooßþ‡eË®ÞÓ­õtäcdEsÊEƒÝ5䙂Œz`Ý÷¢õ‹³æä-´¡p±ù,nÝü€¨B #†–õë›_ZG/¾ôÏ×­zê©§Œe>úŸÿyùKëèÅ—Z¶ÿ~ÇŽjºÀ‡?<åÄOÞ±cÇÌ™§.\ø…àââÅ‹¾üå¯N›vÍš5sÑ¢…Ù=Y¸ðÒ+¯üòÔ©5jÔç>wÞÿý¿?ߣítJó»rJ”“1ãd,›1…æåöÉ ²bëwj{ ŠNp2’1ÊéÍz.Ö”ãGñÔ#‘¸µ>¹Hõšl¨ ÃbtZ6Tßý»‰èOçÍÍx¶H™Æ†¶¡ÊFÓ7ÚE¬öŽF¸S¼`Ð.4÷;ÍÊ&"f$¶O3<µAjÚ5¥ô &.æ)VL,w`$Q„²÷fZ/dŃb±„yŒœœEü©²0YßZÈN‚îP" ùt“é Uªšb!w`$Ѽn=õ=y7Ëì}K¡}æšÀù±‘èAˆö&Õ€D¬I¦â`}QîzžÖ!w`$™}ÌÅŸ§ûï_õíïØŽM%ºbÝ:ºÿþmÍ-}}½ÂéuÝõZ½Läœà8)8Ü«pR!8µüܵ FÝÐfÅ×çöé{ë09{%!w`äqôѓnjÙÏx«ýwÿIëÖÉ+ÒxÍŒÂqÑ<6´6Ðæ&îsUá€yFû¶fÔE‰ó¢Nq¯íˆ †ë³‘°Mg›2ç.!w`ÄÐwôäm·ÞBÛ·ö±%..3îýòÆì&7¥‚ÜsŽpà‘ãÁU¿‘ ¤äÉøÖÓk[$d hÒhâœõFvè dCU ØùˆŽ&"²ºÔûä5å:S4Š·Ó9r’_û `ª4¡ªÈ-²zôµäJá|¦YbÝÄ&]†,‹ ¤,uËþ­¬H̾*9Ä$Œ$Þý»ƒHÇÝ,#þš´Ž£–ÕÔH²V¹xäèÞÛ\aþΩ'Ñ)J* G£ÈèX†Z0§o‹å.Œöyô±ÿ¾üb¾ãºU;v¼c.ó£G/i1{ÛŸ.ÓÞ>~Rø1›jÌ Âý΄…[Ôöáô;•Šï1“K5 'PÓþ…ÎÔHmv*¾rpìÈ!CÌ +R\†l«ˆJÕNR±»@°‡ wòä¾M×­êíݵnÝzc™)GOî#¢ëVõ~úlyc½3Š+ÅBëÈ<ªR…©DýŽÃê~¨)7jj=ÃŽgL¾Ì™s ›×HGÁs4!YV‚!!ž!üUÓXwwo:㌿?çœ9ÿxMFæw¿ûÏü]]?4é¨%KýëwíØ±cÖ¬SW¬¸¦¹¹™ˆ<Ï»á†Õ÷ßÿÀ;ïì8餯»nå¨QïÚ3ß^W×ã ®»;3ch¦ežbe[Ù>¸»œÖ@1 ÕïmâêN§¥FrÒ÷‰–¹ˆÇÇêŠWªOí®'Õ…YÏ!‘ü C¦»{Sðá’KæÝtÓ-¾ïwoºéŸþá>óîw¿›, =n¹åÖ×^Ûðè£?\·î…ÖÖÖ•+W•Â,7¨Éd¢0Ó:›ýÜ–¶Ð‡ŠGNFáPôÑ üäàKæÒæøÿœAÿÅä8™ÈCÈ] hPwÜÇöÙ§í‘G~DD¿ýíæ_üâ_>ó™sƒ[W]õÕÑ£G3檫¾òÐC¿ûÝ–/ÿê{ß{à¨QïZ²dñcýdO'‹ŒÓÿH§õüY"~ &g—&®B9Z ­p"R1ê9 „gMA˜í.“lÍ_]ÜšÿÉ(})>w qpÉ%óV®¼~Ö¬So¼qÍ…^ÐÖÖ\7&ôزå­éÓOŠé¥uÒ&9«@a±&êGS3÷e¦µ®ùâƒönØ,³!yÞ œ¬Aðb¹ ƒ“N:±©©rýõÿëÅ×Í™ó?£ëÆ„pÀóÏ?xuº»7mÞ¼±|f‹t»ê1ò&m?áAˆò¹ˆÏ1ň̵`š(%Sâ,-×|4¦MµnU«Þ2GˆÏ] h,ì»ï¾7nT­ïK.™wë­·ÏŸÿù¦¦¦èº1¡Çœ9g_qÅ•›7wW«Þë¯ÿjÞ¼ù%~PqÝ‘"U8»œ–N‹OŽêA©UrsÖ êRZ(£æ‚Q§™üER²„ABR˜4 XÈ] (1.ºè‚™3OSÃf\×=øàƒÎ8ã“j± ¡Ç±Ç~lôè1QB‹/¾pÊ”)guö„ GÌŸé)§œ\VZ·òiÒ3¹C|Â.§¥ßiòPés›;=z®ßi Ôzæù$"c¶ejí…² Û,fd¬Vô±pþ‹Cæ?‚PH#æÎ=ÿ´Ó>®æÕk€ƒN]]Ï¿þ[.ùI–3F7Ã"Ó’.á‡*9;*ïbÓ!Oø¶»Þ„íÇ®Š†ÅšÙúl¿â«²øÜeCU hø¾ÿÝïÞßÝÝ=kÖ©{ó4j&ý§§ ÛÆw6–TÓFÕ=´¬OÉÀ !w ApÐA‡¾ÿýï¿í¶[gïp·š…S²[i“,*éá¡#$’(© þˆe÷¤ÃDSŠ ý0̱åmYKh4g Lw6•>VÈ] hØ|/!>ã„’I5mûæÈÿjPº%™}F¡rÙú‰êx÷ S ^ý¨D¦6›¢‚ÌYM£69Øh§þzæÜpû´anÑQ@:„”’§d!w`$qÎ9ÈKˆ0˜‡xÙàÃHS/¡–;`S‡ƒmT'œ¢CQš£Äa\S!Öócg[Ù…(>'çG!¹wñ¹ Cg‚ˆé¦=ôë q¯8¦\öˆ¨ 'ŽA*Z©‰=ŽGN˜EÕFÙIc>2¯¡§îK-8uÆ*•d/y/éÕŸ»@ h,dÄ'¤€¸Â#=IÃ4¡,"çföXK—]Ó S)ÌǤ:l±ò{®ÊY\»1‘Ù„Ç„ÜA#S<òÜLÜZŽ'€€ƒD–>Sd•œà)6šÝ¦Ù$Óƒ’E׌ìµÖ;Bî á ÇP"q4‡†¢ÀU ßqP­f²XôºQÏP¤Â|¸5ÎáJvŠðæŒQÈ£÷¸-!w@ÐøLO&¶f"®r“]¿šÔˆÿÕØ»‰«¬ä$„‰cÙšîÉ`½[#‹%>4%råBÊç×"B®É† 2tއù®AÄùUr£´×J7²áh‘U>НWÓm''óQ&dÏ_„ÜAi-ñÜ"°ÏLP“ê3S5}ôGI®"0ˆáÁ ´"£›œ2ÛaÓ$Ö*†y\<oFÈ] 4žq_ĺ§~8¾R²BžC¾–‘Òn-’Äyjd Ԥ׈ý5ªmnÕ€årwQ3"kjÑ;Bî 1 ^ùg¶r«šånÐqD ßrȯ¢’p¡p @PsßÄ48±¥&5ç*ٿù ô<Ü,–»@°÷@Í£ÝÈH(£3[òb;U¸š*;ÃOP" G„¡¤wgaÝEŽÜ7a§ ©øk ë’òz±—IÈ] 4œÉ^€÷=¸ ‡/LEr„ÑÒäûP-dÅ̶¸Ï¡m×jsB(€J÷ÕWƒãrJŒ®®_œxâÉãÇOèìœvï½÷ÕhËóV­º~ò俞0¡cÞ¼ùþó;‘ÙÞÞ>>²ß†¼zý¶ÛnŸŽ dÒœ?7™ƒXoGÈ] (1,¸l᯿¾áÁïå•Wƒ‹·Ürëk¯mxôÑ®[÷BkkëÊ•«(̤Úݽ©HJÕçž{þg?ûñ/ù/¿ÿýÖÕ«ÿ±q x¨>™Šnç²5ž´TÙY™îP06=võز2A±õ3 H±?ýé¿úúz·Ž:êȻモˆºº~±hÑå'Ÿ<ƒˆ8à€‡úÞ˜]m¥âîܹ³­­ˆÞ~ûmõVOÏ›4Žˆzzzößÿ²;³1ß…—Ý&Ã(2\(DÄ`¦TÜ:´%AžXìto þŸf·Œ@0¢ØgŸwùwÉ%—67·k˜?ÿÒ7õ÷÷3³çUƒ‹sæœ}ÅWnÞÜ]­z¯¿þ«yóæ×÷Ýwß7FÏvttÜqÇ;wî|ë­·–,YªV»lÙÕÛ·ÿaûöíË–-?ýôÓKk¸ƒ4†ƒÔK^` sJØ$Ó8uÙSÅ u1^ ‘°š»&é=ÛAWiœQlç˜rîâsʃßüfãºuëÓ×O8ᄹsÏ›8±cÅŠU7Ý´&¸xñÅN™2嬳Ξ0áˆùó/=唓ƒë]tÁÌ™§EQ1×]·â'?ùé¤IGž~ú';;§ªÕ~øÃSN<ñäcýØèÑc.üB™ß\h*£f {äVJ˜/ËÃI;š ðᤣ$U^…%`º“G}Ši$ží™ÉôI ‚A3§“.=û싟úÔ§‚ôšk×® >ÿ]»v-Ÿœyæ™ÌÜÙ9eºÚÞ>¾HDÍp¢«ëñ×ß]ï+O“*1õQÓ®JkÔ‰RЧEó±€É!Ïe¯•Ä™Pý3GÜ͉‹VÞ6§fÍÊÜgLÝ—ú.–»@0ÂøÓŸþ+q¥¿¿Ïæd ˆâcGMÕiNÞ²ìh&ϱï'å Tsæ “ö æ|1Š!ßö‘&`r ¹ #Šûï¿îÜóˆè8óÌ3ƒ‹gŸ=硇^»vígœ!¯Èæ}(P8éé‡[uƒÌ¹µp>1¥ñVÛš 3„©<ì7aΔÍBîÁžþþ¾íÛþùÿ ^üóŸÿ8aÂ!úÐÑÃߟ=Í'c¡ìºáú¨)°ß*´þ×ÍbƒÙƒÃ&9aŽ9ÈZd¨(ë †º”CTñRCþ´‚‘ÅÙgÏ3æ/fÌø›èÊ™gžùã?~Í5+9äPy?VÓ´hÉZy*¾ãÆÞvµ§§E‹“!09Ò.ÉS§œÓ3}‘,ŠïÁtâIâÜ‚ÃÔ©µ•û￟ˆ,Xø/-\¸pÍš5ò®dãÇ»¥Lèw* ðÉ@õ±W\¿Aª‡NÓþt˜jqÉÀKƒyÏÛíöÚ쓃»@0b;v¬ú¡³³3ñßàƒ»Ý‡‘ôP(ªäê:ìÐR!åH0¾¢åJ>æòˆòm«67’,Ίp¸È†I†9Õ!C§91KÕ*reqÈä^1`BÕiÊ;€j½¬1¿bÉÙZƒE&™›/õ`Öäe´ùµÒBîÁˆáᇿÿíoßã8®¼Š!EnœÛà~ÉX^x‡9̇¤ÜÄù!Ø×êÌÀqK°Ï[(ºÁ ²‚= G=ùÖ[oAÜxãòºŸÐ&“/›ãYXW`gs5T`¤]ŸȰ_ŠT{Y@¡5EvÄrF}}½7ßüï~÷¾E oßþ{ycõDäÁõRšžG’£ OïÃe5¿F*:¡ÝκýÎ&/ b— Œ:âp³ $[¿räÓrFžß…µ‡Ìl§>§i`Úæ!ïú‘E k´Š!ªÑuÃIF¶DÓ¤êƒ~–(Ǽ—Ù ‘á¡â!oKéh“.Ã%b„áñ0¼!i*‡LJ‘´dFdŽžÀUËȆkÊA,w@ИàÀÛnvÈv,M:0ì“Lœå ¼2 ÓÛÐ* ‡ÉØ6M‘i™'ž4h¿³Xî \($?ÀDU¸ž5)*n!nGcŽ몤{MœPgG¼*ÐÃ5CÛɘŸN³Ë ¹ ‚²Yäø=0Ûy÷TÍò9ô´ÇÇŸâ˜Æ¸Cœð©¤º›N–——iIßbEbÝw ÖÎ Aùø=>œj–ÛÙ`%#þl©ûµÜª­øÂÙæ2AÊ?Ωi ØXRŽy¶>kËÍ!ä.J:ô ™©M™v­¢ `Ùá“K§HRQ‚L~Žx60´Ó,5èr»g+bò)¥Ö3Bî ,ÖzvkÅlg0\ÓÁ%‹lÑóÈMÉD‚-ù:ÔZM†6⌭<Ø9ð䄪@ h–ÏáÆ~§É+ÛÎF=Æ@¶×6?Í™™Œ«‰8à1ígç:‡©¤ð†¥“‰Nè«!w@PF~·›íäôWš3K¥ÄÐ ™öÈ%bu†âÛkI4ˆMf;tÅw«ÞȾÿjYXpÁ5IU@И¬ß_“ @s&x6Α·qòBÁ-Qùš= åd‘U®ÌÖ9Û%R2‘Xî ô°%(B¿£\âÌBœÚôäÚC-ìyaœŒâí€Õòx¢n„JíZ¯EưEñIc^ ܾW+'TAImt¼ÀlGæ9Ñɧ¶iAì©™ò Ã[{ƒ t2½çk fIÆÒ @¬>ï ±ÜAãX£<×¶ø¬#³’[£Èï’5Ÿ¥~Iã\Á³á“XîÁpàÛß¾C^ :Û(Ñ'øNE‹€äÂV¿rШÂd¶aÍOXèQÚ<$ã ¹H¶&óX¹à«¨gö{,º»7uu=>}úŒèJW×ÿkïJÒ\gr#"I õ/|ßÂgèmŸÑײ»J3à ‰bÈõúßÐÀê•H‘Iê{dü÷?þñÏù?ÿ+ëœÌ”¾! 3ÙÌK%ôøÐeù¾„{ 5 I­VíGÿ(BÌÿ;}¥àÞèÿĶþ”"A\û¸6¤‚,¿‘߉ÊCÔß3›HÎÕ5ŒQ6©<Œ–13;R`Ëæ~?›üÏ Òª¨Ç2| ²G“ˆ0>BmQÒÓ¡SÐððþÒ`¥Pqˆ¬Y©ú,&i†­+¤.³ã6à Ïò‹1{ïG0p73;i|KöGA<+ Ô¼G{2ù•°½‰¡OwN!ŽÕË)uÜúuL7wÉTÚùâd^—0HOP=êÄWÞ+Tn(jOÏfå6ú-»â…FŒs73;ž±:qà^à ô„\ûß%$ÔêQj_GçÊ·¸«wÓM&çÿå$|’–á=NiyàÕ“þdj¸V‚nõ²h—Óõ†¾­Üe&¹›™*vW Ʋ‚ŒåQ°B[ ;ø–]hÅvíîôtNDè°¸Q,ÈßF'Ê–”4UÖx}¶ @2;©šØÕ:T¡ŸüòÕÚ°3³ã û‡w)A2ÏÝu:ã“:ÀÚýЭ2©ùšq•2âœø¾/îÓåá.ÑC‚çÄÎȹVŠC‰/@Ágã¡NÅu?µŽ‰iIDATäCµgåý¥ŽKû± ÜÍÌEÌt«£©ÂGÁîð ðlÅØl£³œÃc7¤Wr‰ó5¬„'NÄü êÌ) ±9CIPPä ÔBý¬è%u¢Û8&þâW«õ‰•5«¥¬ë¿­»™Ùq°½Å£èa8Xa+> Y»È“Ôeä×3®1?æK³®çÕí°2ƒ©¹“Œp·+SÕk/ý¤<*;6Lw3³ÃîTa)1hà­ Ÿ=ö!?‡<ùÇÄ¥º¨Ö›ÚÚUpwçn¬»”UÝ`嫹Ö$qúŽA1š©;,ëê³BöB!™$DÅ?´u ô­ÎÝÌì€á»‚¦LI¾õ­¶r3óUiñ Q;þ†uäÅß.þ”¢®£¡EÄǼ£'NO7G·‹K\êÈ ö5µªÝ²ÌºOãs:8"½áäyD­ eåR¯ñÐýS›òÙö`îffDw%€T’‘ É-[#ÔW«xPÎþqbú'ºmQ)“DbùäQ?eäˆ4G/¸/~Ïøìwÿ—†ï[<®•·SS,x?Á;;›„íLùòë·„ª™Ùñ™NÇ‘þåÕ{Œcä¡AŸQ¨È“¿_ü¸C÷*oîéÝ졈¤b.ƒ×ý þ'/$ícja,ª6SQšÏï©ôŒu‰Rómƹ›™'f;kU’õ$(³nÁí‰ákù!äAm‡pgãn<Ä©ºÄ2C8]‰úJõ‚DûžÆbsßDÅC4æb÷>³ÈÝÌìhø^I·åú„ ÑU|ÙÄå¼|KxB¡‘1°j¥¾ÜÃ=œk~{÷Œ¥ß¼PÉI*­ÅwÓlËžÅ&B­p¬»g—ûQw3³#3jØÇ2§‰ˆ G‘ôëy‹ÿ¦°\—oÇåfÿYÆ×co€*fNÿ[ßUãY?¨^K„¢~Áå߯—±+(ÝO} 1æÏh‘»™Ùa¡PÂæµäESú-¿Q¬î ¢ÆIGñ?þdáj98òÂúGÙ‘í µÐ%º—2ÚÖGÖbÉŒ»aét×: †VWç µÌÛUÌ8w3³cò3+IçHh‹áB G:úËò]´¡f ÆÑåFÿò2-î¤û˜­ŒŸ÷ DŽþINµ0©”s襰Ï>¶»™ÙÑ0='g4Œ¥´QŸ÷¾ä%<'ƒ‚ì²›:I:|^Q;™ák·%tô0T^¤ÚÑ´*í´V½6ù²s?›Kïù¼dþ3¸›™Œœ©7¾ã ³.h¥opY~fÿhêr±;­o­7u ¾ÓeÙº=~Gý‹Ùk@å‘F܉6„»SöŸG£\‰µkçnfvœ°1›_!«ŽlŠGJ6ëí˜$Îþvòwü{Y‘$¸…“0‰oú€´^<¹Îž©ÜIŒ4‘é{–¦-ý¢±V.õÕ=¬w²Æ¦,$2ÇÀÝÌìø±|W•qé¤%ò5:âìïg¨àÈ«_öÐ5 —dóPWYiõ7q÷!®b=5†áÖÛÍoBZrÉycSüâˆê7óU-cfvL¯õ ¶†÷¤]N™ÐØìý§p‡±mðŒ<Ž…ÎôO/n«,Áð½óŽ^j7ÃŒtZ5cNF*DÍA)ÙÔ"ã€ZÛ‚»™ÙaÉ™8¾eÜ䞤J¡Ïø\9çXXȉË×r‹T|÷rE5 ¢`[€'N“ˆ O–«m|§ö,RÏabóJÞ¹eLoò¡ÀJ—SŇ6ü¶šÌL•¦U#¤i]w3³C";kqgK W Û)”9<¯ËÐÿ½‹–€Çô€k¸õ¼«!4ÙÛ0¨ï 6ÆT:ñ‘û`3šÏ>íneP/hBc©ñ!ãÜÍ̳«ñkü§~TË N\.þÇ {5±X§ˆ±5=Üévþ+8wâs‹wS>0!›Q_úoŠîÒ¨çJQ,ÕÅuõ/õ÷íMõzÙ‰\ìêÕGJžÊ"w3³ƒ’¶øû¢Ë6f¡yöÙßÜ`ÌÎÇVP$ñœN÷é*".øSxBèebV É Ê{SPT)ÂälgfÌPÒMU8Ï\Žì&\[YY àñšù”ÞUbÃbƒ5Ú·:w3³#FîKPVµL'ÚPèºÜæp†Q—²×­èÝõ1½tÛé$€¤ ô‹Ü)u–døîñËa(3íïEzï˜~N@é/jÃ6Z-J¯;Õ8ùèÓú|U-cfvx~ja£|ñK‡Ëóg?do2’šy¸.?Ó)¬—8‡‡ ¦ *¹·/˵H¼½PŒî-²7Ô$Ã+šâ;ª G•ù—ÛÓ¼“ǰÈÝÌì , “áJ­òÅ-䣈8†óòs Á–Ò_Ÿ´`ºOW/S\Íó¢°Ÿ˜Ãß=”:n*ù€°mCÞ£I8¨Ó{qXÇ3±žk›|+cànfv°˜}ݵGÙÅÏ074ÊÞ)"röËìï3ÃC޺̌~8ˆ»OW9;÷éNŽ|¸9ÊŽ²«Ç’¢m£Î}ôâޝ­G/²›¹Þ:äÇøÄ“¾¯×í}å÷_îffG ÕËj¯—'C¡Ù?ÎËÛ[ò¸_Æë³cÖð æ€i/Kü•÷(‘ß+]]‘ç,‹Ñ›wªËÆ vÏlÖCO\ÞÔ8w3³ƒ†ïÚD‰uRP©7Î9<¯ï’Ç=šŽØ-ànÓW Ù)ÓâÎÕvÛíÙjí÷(æÅvP¼?¿ºýW ûò{¤ÁJƒÙKBϵ0}(Ä *;K¶ß"w3³#úè´û4üµÜ%Ü£êí=e…{8™ÅÍ7w ˜²Š¾yQöå5Ù£Tên/>­¢l1ïJDží Héʨ‘-!I¤² MŽþ¦¹›™”žyußt{y(BÇp^nw꜡?@ö$Ò¥ˆ·!»H%ÄN§Ë¿@¢ÙvC«%ó uæ2¿ÌÕ;B¸&SõѱÈ¥´­”ž…%öèl›,r73; ºwå^§¹à/þ{ËGùðï¸ë‹`x±1sÄj³ÃOü®Š¾ª”TákØOaÏ=ù–ÕLbü¨KJ— ÓÏÐ\±»™ÙAùÔ:–ÞÝ‘gÿ8û;¸Dˆ„ýÀÝ€F®ë`Àt›¾ü«t}Týwx Ò0a£}#$Cr2äÕR¥¢|k° JYšž#ù@î­óѳ®îffÇö-öcÁ{¼a sxœ—ï"ÅW ùG ˜~æ¯ð©zDWâR-¬x†]rñc±9_ÐOÀ• ¢Ø„dÉ„-Ñ+ñðÀƒ˜ú§i;w3³£2sgòîœZÒ8q¹<&.¨ÁÉ¿gÂÒ:êó}º™^:²ÿñ1Ô&Ú]ì[®@+l‡¬+Š0Å.‚˜Êh½Táí)ôÔ´%TÍ̵S(SXþòñˆcÌÔÐy~Ï|"©˜\Gò}"}$Ñ鯂_ˆHw›×zö{ÖU=HÔƒðò4ônÏÏÓ#«¯É†"½£òtn«ŠÂÈæ0!‘¬ÁÞûx0åy,r73;ˆ9ò⟗Ûtyº)ݶSÀ«Ìþî6’]spì ’ã“=¦wUy¹ûŠíåŒçFë„N—ŽÊêA•aÒ‹WÌF¬û«H.“ƒïâó2£é¹›™ÎNþvñçtyº‰[ÌI<ûûyùΑ=“GG'òÝj%{‘oÜæ/ùO‰ðAú$ƒJì½.“òB~2­ñ¨ƒÊ:К° ©½ !uÕz(.©º ‹ÜÍÌŽîaù>ýõp“¤¡åž×å[ØHÛ\2¸ÁWll¥»>`þž.kÌ·{Ùe«¥û5³ÁEæûüœ—{ádFž´(­¾¶D¹+r|E9gä;T¾eKy²6%%¢9'î$Ë ÜÍÌbOÿwæäŸ§å6ó‰ÑñÇ•'V>§ëâ΋s üŽú{šÁü8ÛÞÜä‡ #“¨¨¤A4ãB¤ÐÏØoâ÷CMJâ‰P¤&Ë븛™Ê ýÉ?fÿpÁcˆªîaãÀ(ò˜®w^gãµ³‚5…€vy{ÏÉìl{jÌÉêæµøþúYp>CšÜ»_Ò?7p73;¬‹ð¼Üfÿœ^‰StA"•C4úsóß³æäá.éÌNƧjdÀ“ ¼=j“çz m6ëÖ:]eyÍ âßœ;+;D:ù¿Áz9Õ'pîff±ÿ¸ÿ—†}å)(ƒUVûp4T‚¸Ÿéòt§“k€?Aá2ØÝ Œ½Ö¤"[ßZOcžˆ>ÀΕý¢ŸõÿÍIÇC^$åxIEND®B`‚ghemical-3.0.0/docs/user-docs/images/aa_builder_wo_h.png0000644000175000017500000011741111563552731020133 00000000000000‰PNG  IHDRòyU²VbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ 86ËÐH IDATxœì½_ˆäfšîùä ‚OdAÊPJlp$688“ö…sñ.3S¦:ú¤=ЧÎÜl{oÆž¾˜±ÏÂÙî›Ý13®˜Á^˜¥«a‡®5N_tSihã,è¢Â`S2¸@• Aè…ä^|’Bÿ%E>?H2"¤>)"ôèýû­yžw B!„T\×-z„B™#{ô7Ÿ8 B!„LÌßý/9! ¾;*j(„B™åÝAàOŠ!„B¦‡BN!„TãìUV ¹Òœy ABÈü™Çõ8×ès'äê»#(ïÎÌÛwg£!„’2¯ë3p¾®ÑçNÈóõBH•àõyrΗյýëÏæ_üjªç³î'%¿½Q˖ɴǺúÏ 0ûg2ÍþgÙÇ8ÛÈçæùù¬úÅ"¥ ^¤i8+nz™×9˜äfï,áæhšjUXfÖzY~ÃB$ s­Ï‹ôËxVRÊ8Lz–åZŸåK2©ûoØòAçw^”Ièlj‘ÏʨdªiXÄù+ÓgÒÏ´ço˜Û±[ã$o•YøÎì»hZÔwmY®õ²|Åħ¹Q+̵>¸À¨/󨓰(×Ͱ¸Ø<Þ;jyÿúÚ,ïKYv,s\Æ9׳Ä&ÏÚç }LóÞEŒgвAëÎc?óØN‘cêgÞß÷a7“ŽÜõu^F1É÷pœñTŵ>ϰOeÒ›Î5ÏóN]×þæ³ÒºŒçÉ*»ÖÏ3ý‚•>&„T6„™ åÝAøû[«“ì6.Eg­“ù@±&dõ¨JC˜²qî„8_ðªR„ ‘²xx}žœs)äd5•ØD!ç…!Ÿ—KƒB!Ë¡›ìF!„Ê1ÔµþÑ?~´ÌqB!ä ÞúË·žx-òÓÓSÀ͸‰·þ›^qÿíý‘\[[ËÞG!„ű¶¶àI½î±È½o½'Þè}÷äkpðéÁÈå„B™©æ¦äõºiL !„2(ä„BH…¡B!†BN!„T 9!„Ra(ä„BH…Yšo¸ÿòË=^ô˜Æ}>혖u,³0lŒã޽ ÇH!«Ê™“¦ô×®ÍÂïÁTËÊ@ÙÇG!ä|r¦ëîvóŸnÎu îÆP±Ì[|E j~|éãt\ýcöz~Y~yÿ±z>jÛ‹fœÏá¬sC!d¾œ)äóìI9Käf!œa‚;j?ƒ„}ÐãQÛœôX†ígL2ö"ÇI!ç¥ZäýÂV¦ |Þ’g\ã®3NüxšŠyŸ»yƹËô¹BȪ³T‹|Ú <“©4‹tYŸôœBHñ”&F>ŠEZxýÖð$Vù"8Ë3P¤Ëš–6!„”ÒÇÈû©RÌu vœŠ2û¸1rB!‹¥ôyœ¹ìÑïþîû,ÇRd6ø$cgÖ:!„,¥Yäg]ÐóËû×]´Œ³¿IÆ7í±L:Žy1l›ãŽ}Yã$„ò$¥·È !„2œ3…ÜûΛy'gu‡Û}uwæ}LÊ$ëŠß²ç<¬òñBHÕ9SÈçÁ0«>e7 “rÖ˜ò1¾e1Îy˜äøéR'„å²!/£–qLEÀó@!Õ†Ó˜B!†BN!„T 9!„Ra(ä„BH…¡B!æÌ¬õ³êŒ'©Ç&„BÈ|)äkkkgnà­¿|knƒ!„BÈdŒòþñ£eƒBHE`·Çâ4«æH!?«ë×ÚÚNOOg!„ʰ¶¶ÆŽ%cê^ëilœÁ!ä|Àœ¨r¬uB!¤ÂPÈ !„ C!'„B*ÌRf?#Ó1(;qfMD)j¿³Rô¸ÏËçUôy&‹Å½â`þS•X˜çìó¼P·‹Á¤UãÔþ—y¿³Rô¸ÏËçUôy^EJ# éguήµUf¡ùééé\/TãnËM„ß›ñ‹8¯íÌJQÁª^|‹÷yù¼Š>Ï+G 4½æáô.JpSAÆb)®õÔ¢ךžÖuÌï‹X¶/tQžˆªz@Š÷yù¼Š>Ï«BÙ®7¤Z,\ÈSܤwï§§§Ý;ÔšÎL{SPd››Acžôf¨Jû•¢Ç}^>¯¢Ï3Y<ž÷@ßT¬­î‰$ã³rÉný_Äi/00õúàÓ쿽?Ó]u>9íÍPUö[åóUôþ—½ßª~?ÊÎ㡺ޘU™g?›„‰­ã)-ñyýŠúA=ð<Ñþvm‹Úï¬=îóòy}žW• w¼XÆmÊY‰ÃéXHµ8Sȇõ[¿ùO7'Ú{²BH/E 'Åzµ8SÈ'l2òÖOQÖe•¬­¢Ç}^>¯¢Ïó$ ª:G8û×YTõJºŸe—צûìß­ñê²4‹|™¬ZùÙ0œuàûçb¿³RÕqW2œçAYàã U^è•M>h,óÑAuéÃöá^qqzzºÒy«ÌÊYäý?¼iq²@@å ©õ3ìÇgÞ3õzõù^ÎÚ¯º¨ôƒ’ýæ‹:_ãîQ,{¿Uü~¤Vï$y:îÆBªW†‰øÜ-âuéOì¯5ìdzVÒ"Ï3õc†ZöYõcÎ/ÛhëñEÏEf·~ÆÝ¯ëê»|98p ·n‹:_ãìœå«„>-}E?U¯LòYäÐæYŽu–%>¯ïË$žÖ°WŸRXäó,_éÿÏÒºˆzÊþ N&D „¢ö;+E{Øþ—9†þý±¿Yš8-Šþßí¸b޿μ~ÿgí»?^>O†mwQ^²\Jc‘ÏóB”ÿáͲÝ"ËÏ€Þ×wñõØhoÀ¼gÎÍU<Î~=σëºP<¯wîE¯þýûzÕ齿›Âx(ß÷#ϸ1òy³ìâqúi,Êë@–ÏB-röbž‘ôô ¹.*Ö»öÅÚÈí—ñ `©çkÐ…9 ; :?ò„É…#ÝOÿ¾&}}jrçyÐ1¤û(»7gYu&iìB¯6 ³ÈùžœüE1»øž.Ü,ë6]¾¨ý¦±äÓ—´Ãm‘û•"Ï×07mê±W0'Ýöo;}>éëÓÒžÓcÆyóI\ùóMéOQû•ªŽ{Z‰ð°‡I_Ÿ–qb¾î¢“ù&–™4ô0I%Áµë šÒ”¾šüI;===êoz20¯¸Ù…ÀDû·³l² íÚd?f󞙕YMCê~^ûbm¢ýª‹ª[vTË>_ùÒüã~‘5ÑHú¸JÖIÏszlE?–ÊÚ0E9`Ïw%ÙÆ$¸WÜìšGkü|Qˆ/“¹DIOËî«»3ÝIodž¯'Þxæûr%V©¥9Í~Ôd‚>Î~{JÒ¦ØoÏWþ;ÒÎǤ}—†½·*äÏó8ô”¤ðýX&Óé5§[â9¥1Á D« Èô2ûÙ"“àª^~Ö·œ>_HÈìwVÊ8îy»¯GmwÙ1r2Ó\¦)·¼¬¿c2Kòe|‘ª\~vVÌqä{g(±še¿E–¤u¾¦aÉwýz¾'}}™”±dqQÌce–ƒ‘IY¹ùÈWI/ó®)—²\ —q¾5zÏAÿù8ËÅ> ÃÎõ¤¯/“2ŒaYÌC|'ÝFÿ 9_PÈ !d €Ÿ_V>ÙBYe(ä„BH…¡B!æÌùÁ§3-'„BÈâ)äãÔ{¿õ—oÍm0„B™Œ‘BþÑ?~´¬q¬4»¯î=„ÊRD{\²XªÒ¥ª0RȇÍ|FÆg’‰H/î—ýäàÓÞÜ2G–>ûÙy"Ÿ?@Ë’BÈ"`C˜%à^qqøÅaÑèÛ/m=B)=,?#„B* …œB©0rB!¤ÂPÈ !„ 3sg7B!„ÇÌÝ!ócÃݘ©ïÀ¬ïŸ•¢÷OÈyd¤Ÿžž²Ž|>=XZ ÛíÜ9¼SÈ6æ±ïóB*tý‚·ánÌeû‹ÑEŸ29Œ‘¯E iQûÞp7²¿q—¥Ïó¯ÏãýÃÆ1.¼c‹ð°1 [Ö?¶Qïô|&?!d¾0F^0©5»³½ WóËÒ×Óõ†­›>h½aËÒ׆Y׃¶ŸïYûõþQûÆ ‹0}>jYþy*Xýæ¸ïgÝüëýí†wlãn«ÿ1Ýè„”ƒ±:»q†³É9==Åͺ9Öºg‰â¸b8ìõq¶ÑÃ0-³ ô´äå,q™dÝy½¿_ø‹ÁQûöz™ÆOéeì­¾áv\>ŸÌ‹1Jè-‚Ër‹ºQX„ØÏ³äýã¬;O‹6/¤gmc^±kZä„”öZ_QòîíyⳄwÞûž”y$bM¯g_“ˆï<9k?㎩¨ñBΆB¾¢”9ùmÜ‚IX¤¸”Q¸¦Ôüúýï§@R]VRÈ7žI’˜*XtyÔö'Ù÷4â›_¿ÿý³ˆy>Y-}>jÙ$"5jÛã¬[Aœä8!Õeå„|ã™ œ&מ٨„˜ËZµÞ¨uG­wÖ6f½©wŒóà,ô|X¢Ú°õÇÙç¤ïdÜ£˜e,“®›_>¯ñBæÃJ yj‰§œ¢Zb>íkãnï¬eãl{œ1M²o6’!„ÙX™†0Ïlàô8=ØX–BÈya%„<ñ”TÌ×P8ù,°E*!„œ_*/äý"ž§ ">¦ˆBÈù¥ÒB>LÄ×Öª!â„BȬTVÈ)â„BHE…œ"N!„h*W~VUß~i»è!Tï;¯è!°ûê.Ü+nÑà ¤r ›ˆ«RB^U(J„äáïùQ!¯²ˆ§Ìk&*B!ç‹Q]+#_'„BAé…œ"N!„ §ôBhÑîN'„BJ.äùIPR1§ˆB!]J-äýPÄ !„^J›µÞ?%)œBy’Ò y œBN)…|ã™ 8!„2¥Œ‘SÄ !„ñ(¥B!d<(ä„BH…¡B!†BN!„T˜Òd­÷×Lz#„B΢4B<)Ü,C#„BFSj×úƒoôXêéãþ×Ò¿þõÆ}N!„T•RYäã·Òû-vZð„BÎ¥¶È‘êa¢ÝoÉç¡ØBY%*g‘÷C79©"û?ÝGGøäß>)z(„ŠSi!äZ¶-qR4ûoïC J)À,X¸ñW7€Üü—›E‘RAJíZŸE|ûÅ›b^n>«)ÜQ ŸÕTÑCYû?݇R ŽãÀ¶m8—ØõUSP5…½7÷Š&!¤‚”Ê"ŸtòþX8źz|US° 3(¥Ä‚–…0€ßÆÀ"Es&ößÞ‡U³`Û6TMÁ²¬lY†° AÀ¶lìÿtŸ–9!d"J#äãˆï uú_• G/_)…†¡ b”bÀ2$˜†‚/‚]€|=ÚéQ†¶¸•Ò"n×´ KGß „aû¢ _|À®ÿùuÜúÍ­‚GM© ¥v­“Õå~M¡¡”À²´[6 Á‹ŽRp¼¦ÞUÕt¹ï½¹§câTMÁT&¬um[–S™Ùr«fA ¶e£ùB³ÈaB*…œ,;JÁ1Ôl@™™ˆ£f†ÒVl,P†¶Ô· àç¥ñ©Lýÿ‚ $^Ñ nq2ˆÉsˆâjEs!ó‡BN–Ž¥rît¨YÉŸ ¥…Ý@;·”‚À®¢Užˆtô8DADD‘D:À#»i1• û¢]è° !ÕBN–OfiK"b½–)âH zn=€%‚½ йt´†!¤#Ž„aˆàX‹y†z½$©/-úîÓnac&„T‡±•Ÿ,räœðYM»Í%(eeîftÂD¼&  $F&ê¶R°+–ôt85G‹´ Ô±ò°êó¸Ùƒ“ ë^‡~î}ë;xBH%KÈOOO=rNðØ¢EYeâiw:Ë<±H%)Ç‚@Ö€m–™0 a×l   D"˜¦‰àqó‚©E<îZäavop!ä ÎòÝWwá}Gˀ̇·:‚¯,+IìR@Gtl\¢Ä²uÅ"‘Ì"+VS< P¯×3—P×ËˉÄÑ7,ä&¦bÇI)Ž æ“ªˆ3ÄËPPa˜Ô‘Kâ^Ö"ˆ@7¼@‹¸¤±õŠpt÷ª¦à>¥ãÝJ)„a¨Å<9ŽÌ:†ÝŒvB9 9Y:ba.‘M HÄ]’„· D)„"ˆ ýJi ½b„aˆö…6ê—ëˆ:LÃÔ pI¶: céi6{Ø Ñº×*tÌ„ê@!'Kç@»J‹·•üW€Ä.ÉÿPtl¼-] ½J9-ÊÏê4û¢¡®OD<ìè¬õè$¢ˆB&†BN–ίb@ÅÀŽDI6º$–y;—X[âmàÇ€o(ܪ E­¯[h<×€t’°Â‰n³ûÊ.‚“Ÿ@b¡ˆB&†BN áüܶ÷¹•YäIâW#ø"ð …°b–x?y‘¾ö§×zÚ°*¥pôÅQÃ"„T 9)Œ_ÅÀÏcÀ6´…n%1cCG+ÿeÍÂk·W¨$K:ÓÔm[mÛæ/‘25•¿|l¸}SŸzœá¬JüJ× À6>ðºÙé‘>®Y½àV„(Šºí[#]WN!ÓPé­îFÖ¬æôô§§§O;)?·bàf’àö¾\«Yðã\b[C¿^Áö¬Ã;a–µnšÝÐ!dR*+äý"¾¶¶–=¦˜W/óF,¸Î––¦j¥j«[÷ZÚ*ô„)rBÈ”TRÈó"žB1¯>I Ç5ö =ØZ¨{°ÿ:y¾’¬ò±BNå„|ˆ§PÌ«Í[t4ÁVRjv=ëø¶‚îõã°#¯1FN™ŽJ%»ñ”TÌÓ˜ùÚÚàªDw¥Û¾ôƒ_¼Ä€Õº££#àëÕ¨µ–Xº1rZä„)©Œ#â)ý–9ż:„†‚%‚¦¡¼§hýóMxßz¸f­*A Â@÷`ObäçlC™˜Jù$" ³ÈÓÇñê°ÿÊ.¶®n1мõkÝí6IÙùÛ÷qû¯ß+pts&½)1ôŸU«Ú$­„2Pú9Eü|Ñú¦›ÍmÛ6À}ÚÅû«ÝëgpŸv‹âÜÃnŒÜ¾h=BHE)µSÄÏ­{­¬9J½^+ÍJüG«Rª=޲9нq!„I(­SÄÏ/ÑI€mia“¤{j©KE'Né' õ¬gi‡7B™†Ò ùïA–°vñÕ¢õm ˆÇqÐx®¡-ð¸õ›[xcȳĶ¤Ã›ª­ÆqB–Ki…OÌ)â«GëÝÌmç’ƒÖ½>þäc¼ñã7²ÙÑV…(Š2OKÐ!ÓPj!F‹9E|5i}ݵT­uÉݼڄçyxï¯ß[‹Ð=×Ó9›ÂB¦¡‘¹TÌOOOñÁß}xïïéLfPÄW‘èqïκƒ?»¥D7~v"‚«;¸ßºÃ/‹êLˆcä„™(½EžÒo™§"þÁß}@_AÚÛpê,Ë‚ã8P5ÇÑÏ­u 0€ÍÆ&¶°]ôPg"êDYŒÜ²,4žk=$BHŨ”@Á>ìÿtÖºû¢%€Y†•̆àD7O ;!6ŸÙþ¾š–¹ˆè^ë´[}•„åP)!'«ÏÞ›{™ˆ[–US°kvÖ—<(C!X†…0 ẺALÅ<‹‘ÇÐ7.Lx#„L…œ” Su-S¥lˆR*mUSY]9DgzG¨fg´½ŸìÁ¬™ðù·OŠ!¤"PÈI©P†p:‹[)ç’ÄSLˆàD‹½ÄS™Í›8úòè씀½7÷à¬;z.òœ;]D`ÁÂþÛûˆ:>ù¿)è„ÑT&Ùœ’Ä/ˆD·0 ‚Qeõã Ì &$튎«[Þ{s/ó48Žç’÷)Î%ýX VÍ‚Y3qýG׋.!¤äÐ"'¥a÷ÕÝLÄÓ²¬ÔŽX x$‘Ž‘?Ö±ò°fß⪸×mˆU³`_Òyκ@_p< `ÁbàÚŸ^Ãíÿ¸]ð¨ !e…BNJÃÁ§p¯¸˜¦‰öq['¼‰Ê:º‰¤“X扅žZîÛ?ØFã¹¼o=xß{¥œÛ{ïÍ=z¢e(8ël[gçAÙñ§7)Êà\å„á”BÈ7ܯ³Üì’XäÁIû¢­-ò¤×z¾=kšð&±À4L„¢³¿Í &ÇÁN¼ü¸ÿÍ}´¶qðùAqÇ”Ã4Ì, `[¶î^—dç€tD?“»8ÌÜð„2ˆR9@Ñ&š(Ž€PO  €R ÑIÓ4uOr#çvïèÙÂN•§¥³¤¥uÙ›M¸W\ì¾² ÿ‘ÿ¡Ö7­©¬Û½7÷z²ê³›ŽŽ¶¤ÇÊ4Ïå–•dãÇÚ"—8çqHêæ£¸šYù„åP!ņ»ÞƒìúZJÿM@ºlØëƒ–‘rà}ãa³± È&Äò>I&JôXæQG»Õ£(‚÷½—Åž³¶§é|ßÉljÎ%[W·€ð¾÷à}ëe­ï¿½ËÒ}ßû³Ìå ì„Ø{so¤˜7_lfqÿ؇éu­sœ «“’¹Ê“훆¾y`¬œ2ˆJ9€'D(NžÚaGA¡.?gxã/ÞÀÇÿúq6ëÙᇀ¸O¹ˆâ¦af–yêÆNÝ멈‹Z_·ÐB+Û®µ®E¼¾^‡©Lýü‚ù„¥Cg¼ïlïW×ü:¼oº{´¶«G_áz»çZ/ÚÚý®´;Þ{èé±™¥ h±U†Ên*òç²ð5…ƒß ^¯ga€ôf†˜6Ä IDAT¢ñ\á±vS™ÚWÝí§qôv»è$Bû¸ýÄÍJóÅff¡+¥ëчY쩸×/×áº.^û/¯àyž^n gÊX‰*Pˆ$‚ÙéŽ%p„”“ÒùY1òþ×û3ÐSaæZô²|®ÀolöYâ­{-4_hâõë¯g–`ë^ Ÿ.¾þ»?Ylû¥mx¦÷Š›Å¬ÃŽ®çÎDz{Üü£n"^ò«²,k [;ÝŸ ¡¡-߬éMÎ2¢aødØÀ77癇Á²¬,'@)•YèyËý~ë¾ÿ¤, À¾dé;Ùq¥Ç›Þd˜5³Rýì 9/”BÈÏÕAËû_Ç…Nñ.–kðÛš…×:!î9K<q€ïû8ºw´Dš9í‡×z:ÍùÇ>8:Æmè¬nÉĽ¿Ó\ú|­{-mé'`Ò:ñèqÔ#æã„ Òí¥‰~@âeHÜæÙ,rI6¿ íöO{Õç›ì ó dãO=±h‹ŸR*J!ää|p;^ë„øíz¯·Ñìn‰ ùb¯ÿYÎÿz9–øYA§®ËÙR7ºûݬutcõ=îuŒñ”þ„¼y¶aíßNãY>0/šº“œRPHDü¢öAYìé㬎?ñ4p¾tBÊ…œÌß*…Û> f·càµã6”¡pKûJᣯ[øàzñ–x?‡_b³±‰0 ³lnõX'€yaH§¹Dü¢ÇÑÄ¢¼È^êý7 {?ÙËbßÁIuˇü¶ßã!H=„rA!'sá3¥`+ `(ìÇ‚}ËB Ú~-‚[‰{; nÔþÞбá½ÿùK¼uu«4"žâ·}8uݹͲ,Ý ])t;ϡ׭ž—•0Ô1ÿ´ä-µÀC#çaȹ׳æ4IÖ=!¤J'â€öH,p/»:ñ+)97zZwÝÑÍiüG~·¡KI NX]Æ–Në‹ßÓC>=®ÔÓ†a¶ŒR(äd&¾ª)¸†‚Iy’ÒÕ° …v,€R0cÁ5¥_¯+…÷KÜ‹O¼WRá;º{¤›ÉºLÝ¡-´HºM_²v±I—¹2†¡.ƒ®¢·}ò<›˜&Ô7)ýõø„â¡“©¹£r"n%ÙÌJ±Ê–‘<7"l+…} k‰ÇÀ{%wC§â•M­j$1ó¤[[ÚzyÒ.¶ì"ô–ÀI={ÚÓ>îMÜóµ‡Á÷ýbK …œL¥r"®tC,@Gˆ u,YÅ[)„"xÏöSK¼ä"ž’oæbÕ,4žmdÍW|ßÇÁïtX  "žÒº×ʲÐÓ›“|[Ù4ÖŸŠx•Žó…œLÅgµnbâPº©.Ú@†è× "0 -â–˜"¸iTDÄó¤–ìÎöNoW¥*Ù(åèîQf‰Fó¢ž256íùN'¤¼PÈÉT˜ì´¦X%ÿ & ˜&Ð õë"°”B;)uJŸ{Oš ;a6﹪©J×WçËÞÏ6ôM cá„T 9™š et"íZý?µ´%™à$ËöF X…z>DugMVæ—DË›êQ‰ËÏ´Ó²%ëâðc ž$F©@5;'â¹ù´ ½žv +èVÏ#Éz—Ûí® BÈ’©„ÀéééD믭­-h$^ÁWL¥`‰@€ø]‹<©—¤”IÒy¶ÒlöŠ’6LIççÌ`„¢ø“¢0 kkkcÿ‘Å#J7}IE1€Ü"yÑ–¤ž<ˆ(WâTUòaÓ4+tKLY5*wù¡»¼<Ü鄨I,p;©ïv>Óuã’ˆx -‚‰[½âyåbä1h‘B £ÔB>(6>h®qR ïÄÀßÇÀV+7rbž”¦Ib±‡" [’ SªLØ {æ÷&„¢(ý%(OÓu^þ»~ JA‰ÀLêÆ³7C[â>_¾¡ðIÅEèÎ'Î9!¤hJ-ä¼X[[ëóµµ5Zã%ãx7F2qŠþÆ@”üb¬Œˆ÷ÄÈMƒYë„b(µ“êð®ºIŒ•N¸‘Äȃ$&^uwz?ïÿÏ}(£‰ Rô°!çŒÒ yÞ*§5^nn%óŒ#þ¯ʈ’ÿ€Ä JÙNÁƒ"„œ;*U~6 gݳî= rÎdÖ3‰e˜X1‡!¤"TBÈS«|˜5nÞ3aÞcŒ’,#Ð"®R‹¼êg !U¤´®õ wc¨pç—m´u9ZôœvsúÇœ3™,‰ØÏÙ)ÃBØáÍdUØ}eõËu˜É„?ÊP:à“cž©¥µÈxzêÈ3á!ð„,CûÒuŒ´È+ÂÞ›{pŸvá¬;°jêëu¨š‚Sw`[6ößÞ/zˆ„LDi…芷{Å…{Åíy-[§®Ÿ›÷LZãd©ˆè‘ˆYK^vöÞ܃©LX5 J)Ø—lض ÷)öE–¥_§˜“*QZ×ziÿoðâTÌ Y&ʳ¹nc=$2‚ë~]‹x"ÖÎ%öºoĺ¾÷ЃyÁDØ{7ÿéfÑÃ&äLJi‘o¸™[Ýuµ%ŽSdVy~9!E!±¯Ýêi¶z\èpæÎGJ᳚ÂgÉÿëÕ¸íHã¹”Rº0tÛ²Q¯×á>åÂ}Æ…µnÁ½ìjó&9Öíl7hBƤ”?ͳbàãÄÈÓr4ºÛÉ¢°j7 ñaÖ[^)0>pé¼Sôð¦æŽeAÅ+Ø&é¥ÿ~ÍÂ;±ž¾ö¿wªUk§”‚YÓ³Ô)¥ ”‚eYÚ­ž€žgÞªYˆNtÛ]ÇaY+)?¥´Èóx^âO_¼ï†øÖÀ’4²HTí+Hì@.$v¸¸e8@¼Uû-`T/Îz§¦;󹆂?ù¿n(lÅÀßW¬·¼mÛz–:CežI\)aêiw“çÙ»1`×.!å§”yJš¡ž‰9ÆËZgIY$–uÛPF]?¯uÝë‡PJ%±óëúõ¸qÖ;–+¸JA@Ý ¥ù:™…¾ þ¾¦ªe™Z´ëõºîX<Ò%gˆà$@†:^'ÿÄQ±c&d J+äý‚>OËÒX‚FŠ@[âZÄU °sgA ceYì"ÕóÏjzö:'/âë`Ûú@"-hV"æb(4DpC)|X–vþ÷>êõ:ìš­Ú 3‹—‡aÚ­îûN´¸KG UºQ!ç–Ò ù(¡>3†^€öÌ{&3ÚÉܰ¬;Ø‚2ê°- ^Ì‹Ig·Žþï·‘ˆ¹@) GPÊ-ö°”‚ŠXODÜu𭝝–DP¨X`*§"~í‡×àÔÜùÃì\ݳîàöÞ†ëºð¾ó`Õôç•Zåi{jÁRvJ+äýLjSÀɼѶ©-îšq÷²^Õ€è1`×/D’&DÊO¾a@Ï#ëYë`¸hÊÔb€%@5è„0@õ]A®ÿùuØVÓ6€H"´¶a­[¸ù/7±÷æîÞÄ‚k?¼†_ÿ¿¿ÆÖó[ˆâî·#ïh·{Ô‰2ëœ2S¢Ÿ!!åF[Ø –¥­o«Àêë€÷°/j­³j@ØQ™˜+åñ>DÊé^o&ît3ÍROÿÀ£ÄOcÅY˜è¬nì©bç™ßûÉÌš •$à)¥Ú¬š»fCbAó…&Âcm]ï¾¼‹Ö½¶š[:ñ-FæBOÅ<êDh·Û8úò¨c"d(䄌ª}ÉÜè"@˜¸Ó=Ñσqòº!™{Vw|+oûÖ0Ä"ˆRP8±´;]"}pÑ–¹DcAd(ˆB0 ñë?º³¦;µ¥¥eæ]f––…[W·pçð,Ë‚÷Ѓ{ÅE$D­?¶`¿bwE\´ˆ{ß{h<Û@ëëVaÇGÈ8PÈ ‘#Xµ-û6´˜G'@;ýLºú¹dÙë0º¥MebO)|¬Þ‰QŒ¬^\u´õ­H]Ëĵ.Úb—${=A·à—9þÄÏÚ­ÚºK›Y3Xgœ·Ûí,Ö½³½ƒ¯þð6ŸßìZáмÚÌ*[¤£?+ß÷á}ëéV­кG1'å…BNÈ8ÄBäzâ^„ÚÂVµt9tk=“‰TBD|¨dÊÓ²p¿¦ÐHÿÀmE'°…±èìôN “ÝâH» ;!BC‹7 >p«€›”æ Í̇˜uëU粓YåA oBÚÛ@ hKF‘DCxß{™%tcã­{-4žm`ÿí}ÜùÝì¼¼C!'¥¦p!ïoµ:nRÛ€wõûã&”zJ}¥Þ]êØ›/6ñîß¼‹ý4à¶Þ‰·:‚€û1 üÄ]î'w[¡¡à‰dË}-•ÓNt’Ö‚[µÔC’´_]·  ÕµØM LeÂ÷Ÿlut÷­¯[P†¾!’›0CáÃø»¯ìÂ}Ú}â}„”Òµhí·Ó RÎøQë Z–>æ›ø >Œ ±ÌƒÄò“ T¢ä¹q!{¹ùÊõf”jÆû°¬åúÏÿ·Ÿãõ?{¦©-Ø–¡ðž^ÁÍDÔ€ýš‚—$¾µcA¨@‹zj‰  ^‘Ùê©[=¡§t¬#ðÛ¾¶ÆEׇGQ”­?¬úÁçÂÊÐÓ˜zßz8øü7~vŸàÚ«×\„LA¡®õ¼>ÈÅ=¬»Û$ë±C™'"ïÆ/¡TS¶†™üWY–ºH>D<(Ãȇ€±‘fWÔÔBoâ7Û™hÌ“ë?ºŽ­æ¢( ¼öòŽvçˆjɬ`I)Ù‡"p @‰ mŽ"‚ÀÐú}Cá“»ž¥½ÑS·¿ˆîÊC7uIcäÒ„]v&¤éK0ÜàyÌçu×·í—¶qøÅ¡®;õZ·;!%£ðy^póϽ?B¦&~ˆß ˆí$@f‰ û‰ˆà(µ»xK[䉘¿ó¿~.ܧ\4žmà«?~…Ãßž9„´ù‰÷Ý“7»¯ìb÷•ݤôM»•ïÿñ>Z­Žîvë¢ïX¶“ìsÄ€g(ÜA˼$f®’q†1%b.ªXQ^ׂnY–nÜ’\ÍìšvÜÎâáý½ÓGU~qû’ §î`«¹…Ã/“êáÜ䤴.ä)£,èq ‹œ,‘÷ã:”á$Í_ìÌ­.ñ'}ë§‚¾é4cHóÆc`­[xí¿¼†ÍÆæ@ }ïͽž/Ä@ãÙF6 §÷ÐÃö‹ÛÚ…žˆ¸÷½‡û¼Ã/º7»¯îâ³?|•5ÜðÆqÞKbêb(ÜJ—— ÿxEˆD{ÂN«f!x¤-ð¶Ñ†2ToÏô$éM:Òs33ˆV«¥cðJŸóOþí“,k½ñl v_ÞÅýVïy%¤( òq\ÛãZд´ÉÒ‰oe%eýÿ‡‘uw3ö Ô.|߇ó”“YΈ×}ÒBß{s¶ew¸€Ä/:;»#p¯¸8º{„—w< Ðú¶ÕãFo¾ØÄëö:`¼¼‹wÿÏ_â@·b ø$‹—Ì­vÂ,”¡ Õó“J©lÖ²ÔžŸ²ô,¼o=Ô×ëºó›Òíª¦²Zô´íÖÕ-]“ÐZ'…R‹|ÆiZqqR âO Opç° ç;îW'aÚÚ4/˜p¯=õ\×…]Ó"nÛz“t¢At5À¹ìààóø¾ßSû|ã¯nÀ¹äd–ºÿÈÇ{Á%lT3­{-]r–$®™ÊD‡Ý››|ÎBGts˜‡møÆ›Ò8u±»—]l]Õ­\~w o¤’ÌxÄjú¦bÿí}Š9)ŒÒ$»å_¶|˜Zï¬mPØI‘Ý=ÂÑÝ#4_hÂu]] Xè0€;¿»÷iWw.»hw›žä¦à  +PÀ½ìê7èXz*DiÛÒÖ×-ÜúÍ­bxŽ}y¼Ø-AK¯fJ)„¢-ï¨Á4ÌLÄ'iìâïÃY× f¼¶‡½íÁ4M]Ú¦ºçß4ubÅœEáù´®õþ×§™ö”NÊB^ÐS ÝZ·tMsœ4=©)8—uÓ˲²¬m@[¡¾øÝ„¯‹6Þý›wußñDÄ%¼UtRÛÖ³že=×w;bÀ;ñ†áÄÝÙŽîÁ¶m¸O»p/»z‚œzöº ç’ƒ(ŠÖBx=¨Ç JTS'd™.ä„.ýºmÙPµ¤é‰eÁªY™˜dÝÙ:Ú¥l_´Ä ’ÉC’˜»ÿÈÇWGãeÃW‘£/ðþß¾_ßú5v_ÞÅÁ爢›ÏoÂ}J{'>øß'醴ýÒ6ê—ëÂî¶mölí9Y×.}ï;"‚  j ¦˜ó>n¨Ì½®j*»‰J?B– …œ’bÛv–°=N²°“Ù¹¼ï<a ››Äݬìî|áÀ?Üy¢ùËJ“ˆhÚÁNbéVLA*ÎéùÌJØDà?ô»çÈMY«ëø Y&¼$¤¤ø|¸W\HG[àíãvׯõv4K3Ø{þ— Þ{™¤ ~iÈ!;þ)'v ‚@[Þ¢³Ôƒ Ð1øï+°²sì·}D£lƒz¹²H(ä„””Ö½šÍ¦.¥êÌ fÖ©,›zSaê4 ë~Oš œ'2Ë»ÿª6ÃUND€Z·^¿ÝnCbA`hK<ì„™•®§v8KY:rBJL†0 ¨!K¨J{‰Gu½yE]·o,ˆ:º é¹›C;±¼SË‚iš½áŽäü§}Ý Y&Œ‘Rb|ßG$QX ND*™$›å Ú" ;aÖžô<ññ¿ ½5òIŒ¼ñlcâíµ¾nÁ÷ý®Å'x,N‚Ì’~.AÀó¼y!cC‹œ“ÖI»® 6 º‰UYûÑäÔÑ"îû~ö¾óBÞz"ò1ò´„oR¿8DóÅ&½ S™OtŽKo´Z­Ýê¤h‘RrŽ¾Ô¥h‘D:ÚÌ,ôÄR ÂàÜŠxÊûÿãýžÿF®ûÛ}yß÷‡:±­£?‡H"ømív­o(â¤8h‘R޾<Ê,Kó‚™Õ3§nÝ4kz•º¶MBãÙkOcâGwðú_×½ë§,AK9üâ0›ßÝÿÞÇWü*»™:w¹¤t”^ÈÏšž”mVÉy!ék?¼†«;YÝò?ÜÁÁŒ~ó9àãÿ­{-4žËÅÓy6cÜ,Äúϲ,þþçxãÇoàc|Œ7~üÞûÅ{³ïƒ)(µ3Ç8'=!ç,6›Ì’6mô*1(Fž‘ôªŸ•,#=Wú—ý/õ•”¬:¥‘÷ÏX6ì¯]BVžÄZ7}N#¢Û´ =ïéÍA6¥)!QJ!gêÒþåsrnˆsÿ PDБ½uã ¢(‚]³gÞGtõÔ¥gÕÓ¬¥ò”q]æsržÈÜÄ©ˆÓ"×ôõZ´ÈÎ+FÞß»=µÄç'dJ'ä©O÷¦˜“óB>F€yÂÀó‘$¨ÍEÈûz·3FNÊ¿~„T|ŒœyÆ œLdçp޲„ºd[Þ·^–©þÞ_3cG©/îÞwlyHHŒ‘f@Œ<Š##¿8{Œ@'Ä}ÚÅþÝϪX~FŠ¢ÔBNyÆÈŸ¤õu ÿûÇh¾ÐÄÑÝ#ì½¹S™ˆ$‚÷7¿èiïöçhÝkÑ'¥ t1rBÈh#Œû”‹­«[pêlˆR ¶eÃ®ÙØz~ {oîaû¥í™ö=ŽtS˜š÷iïÿíûú[XB–Héïåé^'¤ÆÈŸàÚŸ^ƒSw ”‚U³ wªQ8ÊÑSÂÀáï§ÚOšŸÏ„g9)šJXäî·è!R#ïáÚ77û’ ˲à8ì‹¶Ž‘ºW½ëºÓ[æ±ö„¨šb9) ¥ò|YÞ?Ķ-[#¤j0FÞ¥ùB³+â–qÇqà^vá>í½ì¢ñlÖºûb×ÝîºÓa'̬qÖ‘“²P:!zÅ<ïs¯¸Ù_ÖŽ“ócä]l[g£+¥g‚³m¶eÃq-èϸ°m;s»+C‹¯©¦œ -©K·k6ëÈIi(í×ï÷îv^Þie÷‹8'Q!+c䪦2‹Ø¾hg–¹ª)4žÖ³ yðœ°, ÁI E_Û/mãð‹Ébå‘t{·3FNÊB©/©˜OjqSÌÉJÃ9Ý_ݪYX  E¬u+³”ÃN˜‰6 [¬šL„q¨ãèöäµåiïö¯Ž¾‚û”‹ûß܇eY¬!'…Rj!ºb>j9@Ëœœ#×´¾ni×¹ek17TÖF5ý<ˆˆ~=MT˽>)a¢Ýnc«¹¥Ýôì¦ÍÆ&àÎïîôL©JÈ2¨Ä%`A$øs²Šp>ò."‚ h1\ø} Ö¢« m‘ûÇ>üG~öÙóqÙ}eîeÊPPµÄ­žÜ(¥o"v¶w€bN–J%„|\(æä\ÀyFtÁ¼lBD‹i~ŠQ˲²ËÂ0Ì^€  uo|±Ý}uî·';Þ¶íÌ*;!"! Cì¼L1'Ëeå.g¹â ©<Œ‘g¤Ö¶³î ÃnÌü±BpÀ¼`fâvB Ö"žÍd6g¨¯×è亴ÄÍYw²zr»cÃ{è集8Dãù…œ,•r€bNVÆÈ»Ý=ÊÊÊìua'óNÒ¬¥“kÚ’ˆxxNÔ{ÝZ·z²ÔmÛ†³îÀyÊÑò†Ê¶wÿ›ûºV½6§IZƒ•½ÐNVÁÁï ”ÂÎÕsm‘Àá‡Ø~iKf™§uåiŒ†.KE¼õu îÓÚU~–ål^0³ºóô¦AÕt9÷Š éB['Á™¦™Ý<²,øu#¤"ìýDÏè•þj•¡à}ïÁ¹ì`ïÍ=„Ç!nÿçíbY™˜‹tÛ´Öld1r‰þ÷>Z_·Ðx¶ÀÎöΙB®jI7£[/ž•¸…Ú]Ÿ5…É…;¶°=uOwB&BNHØûÉÌÚ“u(h‹3Í¢Þ}uŸ9ÔÂH›»4žmÀ²,ø†ÎJOÅvçåžs³³½e(¸O»ð¾îj‚κÿ؇iè Slˆ÷½§“Ü"äˆG™ÈSÄɲ RrÒ¹µÓx¬i&íEÜ ¨ëIDΫe<™-¾ûÊnæF¿þç×që7·h ûÃø7~vÆÁpË<Öny³Ö-õóÛ>¢X»êaAh«?ñH¢…!ýPÈ )1×~xM‹xM‹¸mÛP5LI‰E‹‰Ò]ÇÒ$«ÝWvqðùù´Ìû9øü×jz†4§î ùbG_AbÁŸÝÈÄ|˜;ŽS™ˆ$B«Õ‚eYÃõËu=UjRÏn4Ó‘¬ÜeP !§s!çkÝÊfÚ²/éléz½: ËäC ív0´9G'šÛÿq{oî عºƒ£/à}ëáÀ8ÈÄ|×~x öº Ä@ûa[Ïoáö§·³$CïõzA' ³äƒ08ײ|Jñs&Ö,!#çl–®¤üÉZ·`Ûv·§xRZ¥j Ñ£nûQ«f¡ñ,k™ó´þØÂÎö$ìÿt7ÿå&Z_·²s”ºß­u]¾¦j NÝA$Úí6¢(ÂÃ;h^mà=ôpô‡£¬ bíbO]÷„,‹RNc îÈ–N 2Hà‡-KŸç_ç ©Û/mÐn^0a×ô|ÚN]Ï·NÍÙ;O-x˲Š~é8º{„Ö×-}nhkš/6Ñx¶Ý—w±óòÂ0ÄÖÕ-l>³©EüaŸàð‹Cìlïàè舣£#4¯6I¿íÃ{èQÄI!”Â"ïg˜ˆç_Ë?µ,ÿ<ðô1Ýö¤Ô¤¿Î$Á*è¨Çu¡žŠ3èèÒª´KYÖž4fó0>?€ª)}#tÙAó…&\×Eë-À¬š…íÝÞµ£Û¾šÊÄö¶Ñn·3‹üÎá(¥Á„a8Q»WBæMé~î‹Øüö(Þ¤*¤3vZ¤-è$+Ó4{&þÝ~ÔHDš/6{ç+7<6ŸÙÄæ3›h>ׄ÷ï{G_v|E‘fþa §'U fÍ„ãèò>Ó0á=ôtØ"™×<ŒC]úGHÉ(…Ã3ÉSïŸÑ¬?î=l!U&m; °-;KÀê™Õ ]‹Ü?ö< pð½ŽåÚë6ܧÜ'æ/·mö%[Í-xßÞ„È€;9;ëZ©\(Õ€Ä @ˆïFÒ¹¹¨S1WÒÊÔºêÉò·jœu0€ºÔnèD¸ó>A )'¥òq…wÔzÖ Kt£Ø“ªsS™:A·¾Ýv a"xdëÝÕ–ööKÛÚ½^×.ö~K]â&”jBâ7 jûZÔã_=9cJí'ï³!ÀP@l† ÄTmÒykgc~¤¹"’YÞrIà·ý¬¹Žˆô†/)!¥rBÈh¿8ÔIWJ·iC?NÝéÁ‰Žáf¢ß÷^|4_h¾dý⢾^‡yÑÄûÿã](…dv¯:$¾˺‘}h ýˆ?R{€±À†R$6“©B¥H@)ѯ×>*½˜'œº£gK³tsH"=›œtcäÁqÒv5© à‘ò$rB*B>–Ýx®‘Y“ãf¢§: ­tû’  ‘”-Ê (£‰°jo@äÄò¶ÂÄ6”¡Kµ”J×· ’&ع¥sAÐ à('+Ýó<xJ‹µihÏG†ˆN¢,‘=ÔI¡RAf-#Ë,wCA©-ˆ4¡Ô€zWÔ€XF ‘XÞ¬š‚Sl=? ¢ð@={Ÿ jïB:Ì4ÎE‘Öèg¥|IKVï{¯›Kde}aG ¸ÿÈ/pÔ„ †BNÈy&¾éè7‰÷¡Ô6oB©íÄÒ[€¡ ±ÊDÜ}°-½Ü?†¶h¿ DÀ0µ_RZ_·tæ¿ ¨X'¾¥¡‹4‘0ó°j·û7¬Ã'å„BNÑÄ7sYçïÆV’gCb¥û¹+Ày p/k1G Xôÿ0¼ï¬/:®Ä¤¡×u!Fn¥€$¯-MpóT¤ XëVÁ#'¤K%…`³BÊ@ó…&Ï7`*SÇ’cé&ŠAe±e1F@ÉÄÜÌšÙmdcè°€}Ɇ{Ù…R*;®¨!(¥` ËÒHy¨\ŒœRRKÜ4´ˆgîi¥cÌÊP]‹·¦ ”Bã™Ï5Šz†išºƒ[’Ø–ÿŸOþuÈþ—é8Èù¦²9!¤Xœ§˜µ®ˆÛ¶­“ÅÒŒõà£-]1Žã”Æ*O›Øˆˆm|z€úzª¦utX ì„ú ‰è”æ¡B¦B)•µ3µ/jwêŽ~]i·º©LmÁP[²ešˆD:‚  õ‡Ç{ÙE$ÚÇí,,vBÇÂc-æa'ìÎYNH ˜HÈG•z-#f=n‚Û´‰pÃÞ—}œuYuš/4a×tV·ªi7´Sw`­[pŸÒMUR+¶.uxß{™¸[ëÏ5JaÑÝ=‚ÄÒñ8‚©Lüö?‹íl½ðX·  ;!”¡2Q'¤ L$äy¡ZEá” ¿ŠÇIȬ¤Û”ÒÙÞVÍÊ^7k¦vS'™È›¦ éh 7’([¿ 8—º–8 Š#xßxYm9b½^†X8øü Ð1’g®®õTôú-Ø”A™.ïËa¯Z'¿Þ óac˜Š=!Èf;ëOKE/넦afS‚J(0 ›ÏoÂu]´ÛmA€£»ÅÔd§Í`RK<Š#xž‡­«[ú˜¤{<€î)ë7· +!Ø{Œ|”zÔóqÛOþù ‰ID7ÿ~ 4!ƒ ;!"‰2w¹ˆèxs k®•RÃPÇ—ÃÑã¨+†a€­æ`óùMôs¿í#‚¥õ2ß}e÷ K¼ý° ÷)Ò‘¬ö=’$!®#qRJæ.äyá;KÇÉaë,R`ÏqŠ=9ï4›M N²½k¢(‚ìèZ¯iG´lB•dYšü–Zðö%¶mÃ}ÆEEغªE= Cø¾?U,½ùBª¦`šfÖ;]D< ±À¾hýÒk‰·Ûm|~€æ‹M]BgÛÙ\ëáq9;Ó,!k}š^è£\îÓl{Ò1Œ#Òqr^Ù{s›M|z÷Š‹0 »ÐbÀ?öµ¥ÞÑ–zp¢_O“ß‚@[èx ˜ÌžYÓÌ &ÌK&ÇAi+¾Ùlf¢>Î4¢Û?؆ëê„;SéÆ-é,fκ“e¥÷Xâí6>ÕqoNUJªÆB…|[{\¦q­Ÿµ­qÈo—bMH/ûoïk‘ŒµÕÛú¶§î@Yª; ZBj§"î=ôpøûCHGgŠ[ëœuÝ5mÎ’ŸEͼ`êĺĢ߹ºƒ †ÆÖS7•Ùí0—ÄêU-é4—$àµÛmÔëu„Ça&â„T‘RÖ‘/R<)Ì„LG*â©«ùÃøpí‡×àÔ´Û½óx§õã"@¬E<³zïõˆðö¶aÛ¶.a³,Øí',u@7¡±Ö-l66vÃ?ô³×uafVËž%Ü]4ETM×…Û5¨£Ç'¤ª,TÈó.òüóqbçg¹ÖÏÚvò[~½a ­rB€uŽãhyNÄÀ}Ú…÷gÝAº L’î&Š%˜ùù½›/6aÛ6êu=Yºß¼¥Þ[O<÷[÷³žï0t“¥TÖiΊÿöÞ/Ä;ÍûýöR†§  UÐØ XÆË8nf.ÒC.¦‡X‡}áu˜…}{æÀ!sÎMòîŌً%³KÂs&,lÒ;°C¼ð.ë…3¤sa¶çbBw ƒ;0ƒ;Á $ ªÀ‚zÀ>¿?*ÉúSRëO•úù@£–ªTú•Ô­o=ÿ}åpTâZ਺ƵÆÒ²æaL-䃄­Ècy·u‘ý&٧豇1ibˆ»p0"ž¦*–¼ûánï¶ !Â0Dóë&š_7ážWbš$º‰Ê„#LûcÔ¯l C¾w×u{-u#ò@O§9"RætŸwî0¨Ch·Û`KáŒAªJ)]ë‚ ”ƒ–GØÕqû»6vÝñ·ÿçÛÊîͯ›=ÛfI¾­q­¡bë¾jëJÔ÷ïí#z!êN1^ ÕHÒPVefPK¹Úóæ‚ Á\Ö-‹B„\„ÄÁw¿ø‡wñæ_ÞÄßܱÛò"þàpçßîŒ8Òì[?¯æ†ç§˜™ö±A ðø¾V»fFë¤÷œî4çP©ºÌ Â4ˆ ‚ÐÃ-"ìšá&cÏ!+âõËuÜü«›Ê¥½`„‰­o¿¾m;Ía&¢î|tG•¢¥OÒnIš¶Èå[P¨:ò',‚¥_Äïx#Q¥c7 žñûG÷q÷ßËÑéŒ;üL§¹8‰á{>šß5á{¾h'ªû\ÒQ½ÓMÌ\ªŠ¹ œQv<‚¯ë³›# ÂGfÄhƸàÍŽÊ>¿åû>ðÿ~€_þí;¸ÿÅýRµ+LjœÈº×ÓTÍoŸ´U‡9¨®s­vK‰~šZ7¼™I.UE„\Î;Dˆ2Fap$DheÀíŒñ®ìø‰ñøÈófÀ!Ôþþ]Ü-Ùzíb­§^VrAXqêD  +â#àRÔjj‡ À·MeÀž´hw{è?ë$ø B"žçèË#4®5°ý½m[2×üº¹ìe ÂÌù‹e/à4L3ë\Îa¦½ÌÆmîûÀs‘úyé:p1.E€¶\‘1e€ïT»9g î°íÍ.}Õ…U¤ÒB.CKa4· Ð~7ß!%äA \êQ\®a \§+Þ.Â%®}ÿéXSÕSÓDÈ…U¤ÒB.¹ ŒæNÄÚ5n惃YYç’D݀DZSš™¤Œd kž5¬ëá‘A„\XI*-äb‘ ÂxZÔtp‡”p§)Ðnß6?ÞZ-थbå™*5Sû­¬|5ãS㨟ƵƲW"3¥ÒÉnÏGÏ[1Ï[ç"ð‚Ðå˜Wt³"ýYÏO›µŽ8þ| v©ïv´t̼ÊÄÕ¾ÕÎ/¯ô·ž à¨[Î|%êìk˼¢·—½ô‘„ŽŠ…@#p”;Ýwð¨…ÀzZAff„޲ä…ÕD>ZAV ¢[ ÷uouBX| ~¬ÊК߈B[_Î\î>ì%â@Fĉ/.Ö×U'Òaà¾k! B’1¶Hb嫊¹ +gˆ|•¥î¸à k@­D——€Z´Ûjÿæ7r\0'€-uíãÎN«78¤N.”Ex’´à;„šÄÈW–S ù¨îj‹HF+š¹>m†û²ÏO„É Œ@ÔMló= Š” ‡!ÇJÐÓTYéIÇìïƒè˜ïŒ¡sKǼIkDª?ç*K|=T‚~>¾m*—ÃI¢á2'b¾’œZÈû‡˜¬š¸ ;i+å„ ru'7ÕŠ•<Àu€ð]TÞç$‚ó@ÓQûq.8+ŸØýŠo8Àn¦êÄá@­Ó!€SµSfnMSyukÎ'_Yæžì–ï—žÌü ÛwP{|Ð>ý¯Wt EXÅ AXˆb©nŽ’(Ñc ÍTlÚ¼ð E:ì~‘߇½NþþÃæÃ‰ÖPô\A(ÌM%`v'3ƒ;„öwÊ*ONÔ~Ío” '¨yåœhxäm‚yÈ–ÓõíÞ°« GÆøIldŒÀ:/"P’Ž«ÖÞIÔÒT‰z‡‘d ð†$º­, ò¼ðÍ¢í겆¨ˆˆ BÈîÙˆ"p–‚Bó;¥o½YëZijTºo8‹à{[`Þpæ¶ü›y»÷öT"›nb³ËŒŸh×xÝ#¤@DˆµÈû'-åZ?QtR S"ëæ0Âê²gË4îlcU›ßO{ìI× ".UâÌ‘v«3ˆ€æ7>ˆºýÈ™%Þô-ÑFwJZVÓ‰o ±Ð·^ÝBýj¾ïãýÆuüâßÅ€ë9Kú& 8TûU}~&èOƒµÛ=v-fü@„|¥Y¸rke×ú¸cAD\ªó®²°³›ºN<Ö¢ ÀñuLÜXâ æcÀ¹æÈÛÊMIÈ‹€,yØz5F«ÕÂáç‡3[ëÆ+¸R¿‚èÅH[à@š¦øIÖ;ðä=O¹ÛÍ”³÷3e*{½išÂh µ˜Ç"âg‚ʤ?ÌSLG[D\ª‰sæ›Ú↹Xo7‰pM0¿©Ÿõ>8{ D7lÙùåäoýŸ»pÏ]Gëb á¥ͯ›8úòhäêWëj˜ ’$ÁñŸŽ{¶ßü«›¨_®Ãu]¤i ÷œ‹ýßícÿÞ¾Ýçmx“ @g©3‡ðN‡ñ6"fD3ÃutvºìwüRF™ž .äyyþ~‘Øù8×ú¸c÷'¿å÷Å0Ë^^ÊQº«{¯×¨þêÈÚ€óÜùå³OÊ>w>yoƒ³m³Î×u Ãá…Ñs¢(BóÛ&ŽþÐôúÕ:|ÏG€+äÈ€(ŠÀ̈ã[¯n!8¯öA´Ûmì~ØuÝ7®5P¯×ñÞ§{ÊÒÖǸ à—‰Jj{?gmïx„”wD¼Ï3òAÂVä1sØãÓkÒcCÄZV€lW•œMwÞð>Øy ;?f=E ÖrÎ^^ ]ŠÐl6ÁÃ÷}„a"‚KJüIu=)§¨­×¬ˆÇqŒ½O÷z¬õí×·Q¿\W¿½ 8„;Æ›#ÜäÒ~õìR׺ ÂRÈ>Àî¯ïm Š"\©_±±ì~ ýà‹D—"¸ä‚I•EÞaÀТ‹º§·03޾<²]Û|ßWïoÄ'Ê7Mdâ8w”˜j–F.Â)!V#â¡PÆpõ@ Ò%\Gµ³ôºWµY˼~¹nÝåFă P¿kKÜÏ|´µTV€ÄIl뜅Ùa-ðNßñ•hg ÎtB[–ªV¬'m¤Se™gŒãc©*N‡¹°’Ô3 $B §BQ®Wµ™e,rhK=Ò–yl¦H•œ0ì&P‘C*ÙÍ÷»º£Ü»p€ä$<€†K.˜Xbå3fÿwûØzm ÑŨëy Óï¿nò@Yäpÿè¾” §¦rB>ɰálò®Ú÷Àº=”ÐIà;„4cøPS£\m¡W"Bó›&üu×_º"BX JÐM"g¬b²Rë‘0âÿöÿ|Íošj4çgÒAì´ìßÛÇÖ«[ˆž‹ìûœt›€¨x:gŒûG÷åBJ˜ •òAóÆEÌ…~6<”1B#âµð8ORÀ÷==Š˜8„VÆtvwXXùƪ¸4 IDAT+ª%h-´ÿŧÜêµZMe°3ÛlìÄ6KšI­õ$‰oÓÑ-ïfTŒöøOÇvtæÖk[ظ±œÃ@K}Q¯_­@ÏxÎ3‰£ÞÃòÛ U¥ôZÆêÄ*Š3#4±n‡”;jêwÊÒ6YêÈY®Zìfü‚ǰ厙Ñrw–;ßzu µ‹5{?åÜaÜýÏ»Øù›[·Ün·­XûžŠ‘33šß5íïöù̈^ˆ@áø«cìßÛ·V¤u×u­¥~ý¥ëJÔ_Ήú€©\k {!`žkúŽsGņϚ°›Ò3)ùæEé…±&D[ÖpTbÖµ;Ýq]íf†!›úrf0"‡iQly>š+QÏ€0Qo\kŒ¶­W·à¯ûªÙ‹v—§Ç_wgX7¿i¢~¹®²  Ýn«æ$Ž.}ê(ï±Ìl} xøø_?V–sn¸J^Ô·¸Æ†Z£û‡_PëÙÜØD󻮥¾ñ½ •hgÚÄ:.Ò,E¸"îÄÖ«gÇJçŒí@”¼GDfI%„èµÌa?H<ðTi™ÏÚmµ¡£-ñ4UžĀ£öc‡3#q€_˜éØy”1"íÝr€ã ࿼‰V«e]ÔE¨_®«vDÊbÕ˜"&›™ˆE‘€â¨žé®ã>“å½aÿwûj(¹H’íïÚ¨ÕÔϺ1ñ”SýñG_3ÆÎ_糖9Àî¿ìZ ݰ÷éö>Uã4¨»pmëÑ~KÝt˜#Ýt' @ÝúRNQ#íY8#bnz¯›Ò3r¤~_˜=¥ò¢åff?±ÚH ¾D‰ÔI•˜{¾r«gP"ž1’Œ‘š&1¤ÅœÔ`•|Ý9ŒÀf@äW눞‹Ð:i¡þb­G-p‡‡&25®5E‘u7ÝÁ&þºo»{µµTc/°îÿv»m-dÖ‚Þüþ&ð}`÷×»¨_®cëÕ-`û‡Û¶äÉXàÌŒ4Kq|¬ââïþý»Ýð‚Üþùm¼ûïâöÏo«×ÐcPóbÛ#ê¯ocóåMµÁQž`=°S×À'_]˜ ;($ß&ö¬ˆ¹ÍiÐ÷aÖ”VÈG sôœØü¦ÙóxÞjA?Ûlv€A'Ï œÄê/^ÇΓL5I˜;@“G~–$Ø!ÂV‡±mDÝ¡nÌ=c¸ç\¸‹àB€ôqŠðbˆø$Fx)Dü(î±ÔM¢y—\;õ €íÀæúÚ •wðÅ¢K‘NCýrF®ãbÿwûhþ¹‰[?¾…;¿¹ƒã¯Ž±ýÃm´NZp×^ÄIŒÖ£ÞDµÛ×lÎX {.†ûæ­7Õ~êݯùgõ?·÷Û=ìývõ«uÔ_¬#ðs"ž»X Ü@Y¢ú<á©ã×j5åî?HŒ\˜7¥ò±ñðµ5u;`ó<‰© ›Ì8p`;¹QNŒã¬+æLdE|W[°»ÌØfìx„-îŠú/~ÛZ²fd¥ëºÃP Âèp¥†¡ªñÖsªmsý|;Ú„±êØöh~Û½P­_®+ <÷¼­W·€ï+Ñ7ä…¿~µ>Öâ5nôï|üì·Aîþ›·ÞSÏ[òD¤D\·…%GÏC'êNaó}Ûaδ‰T¼}Õ‘¹°J'äã82®ö§OáY«Ü r ,óÿ"ÀuTórºÙé±¾m2ã]ïg·“u"Ä_Ü·®gki9]Ë+o©èq3 „ž/w3Ì%å~ ¡ºÔ/×ÑxYYà»*úñWÇØù›k‘c·u›Ðï|Üû˜Ž¡çcêišv­|ýMâº.|Ï·jÈ!›ˆ—¶r\ô¶UGbäÂ"( ¬ùè[áM¨Q¦ÇÐt€÷'¬ßeþó.€îÑú u¸®ÛcyK=ðk©’GpϹÝúv¨‹ 7Ó‰iz:y„8SZZîüæê—ë¨_­cóåMl~»îÎìýD^ÄëWëøø_?ÆÎÿرç÷ñ¿*¡ß~}»ëF?¯Î5¼ªžïÔ|ô XAk=jY„ïûgcœªÄÈ…9S9!o6*«|m M±¶… ¸ÓaÜ™áñ??>W¿7n4]ŠZê@7fì¯ûÊí6­Õnøq·7·ýÏtTvúæÆ&Ò,ÅÁáÁ‡lËÞdµç³Ý|ýÀÖ­§ORÔ¼È!„B›üÖü®©<ú}Ꭰs¤ÎÙ˜Ã-1raÞ”NȹÄûïpq« ‹äèG¶4ÌXêȠČԌðZ­†ÀìÔ2ˆc•ðÕ:i!@€8Žml™<Å–"àýäÝø&Ynû‡ÛžSuåî9eqƒ)«ó=-(K<}’vcÅVÞ—¹°þbÙ „ó|ú$5ä"âÂ29üüwÿý®0@]2;Ú"÷µ‹5ÕìåB`kËÈÙD2~ü§ã¥‹ø0â8îvŒKUǸ¤“€;¬:Àµ[hŸ´»Í`нmŸ´—¶îE!1ra”Î"7ä³Ï EZD\(.u[œ’£²»]×E¸ªÚqÝ6Õl·–©¹ápºØÊÊá燸R¿b§ª%IÒMìË5ºiµ[êÜ´…ž$‰mX³òHŒ\˜3¥rC‘r2±À…2Òü®‰ú uÕ&ÕUíR‘©^çÄdë¼MG·4Míìp#Ì”‰V»…ðb¨,mh§ÛÄêº}î(+=Ž»mZÓ,=3SÕ$F.Ì›RºÖû¡ªÈþ½}ÕYš¥ˆãI’ õ] ­“âGÝè=¥lYZ™xêÞ§{ÖâN: Ò')Z-5×¼Ùl*á~œv·g)\rít´UÆÆÈ‰‘ s£B>ÈÍ.•@‹tú$E»ÝF뤅f³‰æ·M4›M´OÚhµU{WÓéÌÌ 7‰pU`ï·{h~£¦¬%'*Fþàø’“Íf{ŸîÙ^ï.©šøÍM•å¿ÂHŒ\X•rà¤7±Ö…2³ûëÝ®;9ÕbÞn¡ùMñIŒV[õVÏ‹89„£££ž)U`ïÓ= u¢¼ Ç_Û!0aâÁ×pç7wppx€ŸîœQ“¹0gJ#ï§_ÌEÄ…²óÁ?}€Ÿî¨råfÎe§›XyÒIzjÏ«ÈñŸŽ{:Ê]é:Œðbˆæ¡*_3+üÓxëÿx«§‡û*"1raÞTÊ"7´?‚Pv?ìZæÌŒv»mÇŽ¨ie¡ùMS¹¿¿¹1äûG÷­åEzØÑŸ›Øÿݾñz½úç9 ‰‘ ‹ ’B.Uäƒú÷ÿx­“îÝ·ng×uÑü¦‰½{{¨_®#z!RÔJ^zV„£/wbÕím=DãZÃn㌱ûá.ÂZ¸²±r‰‘ ‹@„\Èág‡¸ó›;8úÑmwZ«ÕÐú¶…柛VÜ?ø§°ýÚö²—;Ž{cå€êåN¡~¹¾²âf=*¹¹XäÂ<¨p4NªM뤅p=<Ý<ÀÁï°ùýMl}K¹õ´³*sô‡£žX¹¯ºwoÛ¯m¯\¬¼~¹݇{ÎE’$88é P±òÍ—7Á#Š"ÿé¾§,Öïm¨Æ)P«Õloö|ƒ™²bÜçìùØ9ôë5ûMËÌ ©ö»žšrW«Õ–¸ra(•Ï‹""-".,‹ƒ/¬¸…BAµf5¥J«T²d2؉T¬|ã{p]׎rµ^‰LM‹ ‚¾¯Æž–YÐåmš¾øžÊZ¯­×¬ð=_}Ž™šÇƒcfHùŒŒsæF©\ëó /ΧM²„ypô‡#ë^÷ýnÒ›Éò6·«+püœ1|ýá…ÑEU’¬p= ð„U–·‰=—ùüÝsÝÄ6s1bÎ) C„aˆú‹u•½îùv?—ÜžF9‚0)sòaâYÄúÑÎ iG- üÀºh÷îíaëÕ-ìÿ~_Y|+Ò«ûðóC<8~€ TLèÉn Ù lr\™Å<}’"ͺ=ôMˆ€H {x1T–¹ï÷ÆÐI}®á%Iz¦g!®õAb^Ä…Þ¨ý‡] z\\èB¹óowlS”¤“ q­ò÷ÿxÑ%•üÅ*S3£Q¾¬Öt4ÃÆ÷6^mb˜¹p!"ë–6 ~Ìêâ†; „Ë\õhÌàfÆÁÑ‚ @­VCt1²mZh›œ³?`óåMÄqŒ(ŠÔ¼úV«Ô¡¡\,,F>N8‡%º +]+rÜQñðiÖ(ó„3ÆÁá ªè&NêK?/rpP¹Q§€vCkK¼'»;ƒÍàvϹHÓ Fʨ´ÞG_!¼âøÛc%âëÝd½V«Õî£}Ò3Û¹ó­v Q<Âõ—®#~#z.BEˆÅÒNË™Hv„*`D¼vQe1»¤¦f Î¥î(̸#tBÐ+T¹/zÓŽ6ïfvϹðCU_mF»’§²»É!$€™Ñ¸Ö(¥7¢õmËZâp×qñɧŸà×ß°Óí’N‚8‰UÖ:ÔÅÛæÆfw^yr8X!^ŒÐn·Çq%/Ü„ù#B.% ~µnEÜuÜn»Rýj§hi 5ðĈ-Y«ÁÙݵ?°–9ûŒø$2(1'B’$ê})á·Výj]5{Y÷íci–âÊ‹Wpüç㞬õ8ŽUE÷aðǸR¿¢Z×:½ó˃ ê=‰žSb~üÕ;`¾dï_”säàŒ@ŽÀƒ³ä¤`¾3·÷CX,%ü—„³GˆëD/+â”k “)7tÒIøJÌC'nTÃÍnØÌpð×}¾Êî6ÉaI’t=™ÛSª•ïK_êW몣›^¿ë¸H³ÉI‚x]]„¤U"œù“$Áý/îÛ8¸ñªlÿpõËu¸Û35 ™éQ ¾· ζƒùÈžíÉOôàD@F €ŒÇ²D d-;¿\л$ÌrA(ý"nK“\é“Áù@ÅŒn¬Ü¸›ã,®ÌÀÎû¿ßÇö·UkÚs:|à©ngaMe´Ò4EàHN’žðBš¦Øþá6ZZ¥¸xñ=_å5è2Á4KL] $èô^Œ¥œâèèh`2ÛÞ§{Øût DQ¤Dnnž9À™r¶ÀÙˆŽl @œÝ²»€³£E<œšž‡®Ã2Nd±~œAô6˜ X÷B©!„%cÊŽ¬ˆëD· P%Y5ª©«G*;Zǘ“Gp׎-+õ«u\麺£= @7áÍ÷|[_Ýì4•%ª·ÇÕÅ 'ŒmÿéãQ'BýźŠ;/))lã• ;(ÅXâ®ãb÷7]+¹q£ú‹uÜù·â®ì£?Ù‹”­×¶=á?þó#ÐbÈê€Sg |:shEœ(Rnu"½¿¹õ•{ .<˼∠’!¢nb›5“¹xºÎÚwb$HÆ©r?목}^ýrÝ6—)KKWÓ3¾Ñh`÷×»Ø~}ÛPÙùëuq’í“¶u''ñãi–"~¬Ã’N‚4KU ÙuáºjÐLÇà‹ŒðRîðÂ,õƆŠaS×w»¿îuuçEyöïí«_œDoØ950çDÝñÁÙàXKœ™´h»Ú£a'.8‹„@¶ ¢›`¾;õ…å"B.KÆLË‹xàðוuœ¬Ej0 `ÜQîf&e¡ÿhûG€ÜþùmÕ<%ÃR½~¹Ž(ŠÖB+pa-D¸®¼¤i ò­“V7ÑËu‘>N‘$ ’${ÎUYìŽÚÏ­71l–7Ϋ¦*ý–z«5½¨›nk6O·=þê „T‡6—Ü¡">S²»àŽ[zDo€³ m™kQgÊYâZÄ©f·°÷g-…`¾@„¼ªˆ Â’1}Æ‘îye™û¾à|`jGhµZ8è78¸ÛLåã;ƒ3Æ»ÿð®»Û?¿  k/BØg`scSÅŒÜúñ-%vîbçovt<øâÂ0T½æu6>€n²ØãÜapƈ;ªlëþÑ}5·ü lvwþ" o©GU=ö$–zãFÃÖ«›,ysÑdšò0³í¯¾ïƒùýnl;ûˆ¶ÁY8˜Óœ%îƒסÏ`R’œÌMÀ‘®rUF„\–® ï}éû¾-Éjµ[Î+÷=íNÛŠ‹I€{ãæVÔ>þ×­ÅjØù;=–:Ì%¦nŽ¿õêv?ÜEýj›/oö$x Š"\yñŠZÇñ±íjFŽŠ‰»ç\Õ8E[Âw~£cÌŸ«›W6E¢"¸pmv÷XK=I†Šº±´‰º¹ ¶~ßë&²%I‚Ö·-D/Fp_,o–:óÏ”›Ý{@DµÈ‘Âu€<À7•q$B’è˜9ÇK[¿pzDÈaÉaóûÊ"u]ׯŒˆ¡£ö³¥Ké“´' š™­å ïþý»€Û×}l÷_vŸ±Ôë—ëSYèÃÜöõË*ánçov¬åf)ì¾k „—BÛ&åíïÚ*Ùº=å“,ÄIÜñ‡ŸÚ·W6^ ‹[êg-u+â¹Üãé Oe¤šÒ¸5å99>VÃmJ‘d˜Ð8‘«o¡/ à¼ôD½­`Ø!0Ceµ •E„\–ÌñWǪ»”èø¾rÝÆc Ýuë¦ij{z°Ùë®ã¢ù¸Ùs̼€Zص¥þæ_¿‰ÿõc+êfßQ–zýrݺ™m›T=½ß9ã‹{ç§;8øý:žqcE»Ô­“n6›JTuÛR[ª¥Û—î}º7ö=<üüp&–ºïûp=×–š¦5@·„Ì÷Uµ€)•3]Ú–Ž“ê’²nb9€ï® øë€K*VÞΔ¨#¶àÛË^½p *'äÃ&¢IŸt¡êk=jÙÎgùF0I’kï™u-ô¸ƒ™që¿ß²7ú[˜±~÷ï•x¿ù×ob÷_vÑüs÷àÍÿöf¥n²ß\B^®Î½ÀIü8FãZI'ÁñWÇàŒíñMçºè¹ÈÆÌÓNjK²?›]騴–úý£ûÏTw]×&æÙ‹#¬…ÝÏhÉ0·AÄ`Nôç“™²Ð‘Ü\GÇÈŸ¨ûtöºÌD¯2•òqSЊLI„²²ûë]ìüT%€ùžäDù?ÓN —\Ĩй)ÏB¦ÜÒ­V oüooX‹3~£þRÝÆq󢞷Ôßý‡w­;¾~¹Žÿ×Ç@†÷;2`ÿ÷ûð=¯O³ÔÆŒ]Ódjä‘Z·ƒ—}ãFCÍä®…êyä¢ùM³[V5Gz,õïm º4ØRßÿÝ>¢ç¢n3žœçÁ&¼åêøÁ°½ÓómY— 9©êØF¡¾ƒÎ¶â:—BÝ·îõŒA#I~°Ì¥ §¤B^dì¨Ù.‚.T•ݵ˜ëØpúmj›¢Ê‚º"wb4›Íž&+F€‚ Pû\ŽQ¯×Zêù˜ú›·ÞT¿8*–ž·ÄMҠ憛˜±y=ήç¬\íé“Ô |~diÊ*»ûà÷K)‰;üì‡l©ûžo{Ù]‹Ü @1[R/E»­ÜЦ$Ž*E3æ; ºæpœ©3ñ éí*fžttÖz“€9Y꺅ÓSz!Ÿtvx^ÐEÌ…ªaÅ\鉣×Þl6•8}Ö§ëë/…½¢þRð¬¥ÞW_Ýo©÷XâëJÄÍàãnЯÍJÔbÄÃÉI‚úÕz7®-ñÝW¢5Š~KÝôI”åä⯫Á.é“ÔzÚí¶ o¸žÛûž,æÛ:{}C7iœP‰yþÛ>Èiƒ³&˜7—µ\aF”ZÈEŒ…³ˆ»[?¾¥DPÇ2SVyóëæÀv¤ùØpãF›/oªØö Ký±¶ÔO[êkª×·±ÄPõÇŒEžoN(Ë<ŽcÕ¶”Us—½ßŽOZ[ Y×Óà“²Ìé¼ê¶ç¯û‚@% vX•Ä}«Î×6åI¸Çs²l¸sDïêNoڃ⺜±ÔUL]D|5(­ŸVÄ6Ê…€Pi•\%ßÔŠz¿¥®E=MÓg,u"R"îhñÎÍ Ï[®Üa¸Ð¢îÁÆŽã,¶SÊŽK1Üdœ±šª¦=®ëÚ˜¸ëº¶ {lÖÄN¬:îű±— fåa!úp"=ºÔd³3˜c0ÿhÉ«fEi…\„ÙÐ/ê××]Ь¨»®‹+õ+=–z»ÝFš¥=õÔî9e¡’Cp=eiÇMÌãÇlGË|‘ÝΦåèGˆ.©šrò©';Ý$RFª: c$D‰šÚ‹€²ÂüÑ/À¸mÅNI½#ÂT”RÈ‹XÒÑs ùMsè>b B/=¢~­ë/_Ws®û,õ¼›˜±™^[¯Ùã%®ãªÎszzÀ“WŽ$°"$Áz`KÛóÑuò¦f<_˜ïžW^Ú §Î"ݦµ¾ì 3¤”B^ˆµ5u+b-Sqôå‘7®iK]‹ºÉâ6=àé¼*˪­×àžwmÓ×uÑB ¾ï£ùmÓÆŒáÀf¾W8ŽQ«Õ”ˆë¦;Íe5ÛW;ʵÞj·¦©µÌ'OºÜú爵¿ ø£`n(sM·o–½¤D/DJÄ]-âD6ñ2 ]E¡« Üš‹í׷ϼ˜—RÈOK¿`‹€ ÂäÜù·;ØùéŽ*½z¬ê¥q‚®+ª|ÒIžÉæ>>>^JÖyPd¶ñhœ8nÿ|·ÿnÙ«z“PY[¯Á%·Ûë^{lÇC-æa-<ób^Z!?mCq© Âé13ÅÉ#;u-91ÓµØ6”áŒUVwƸt¿Ô `Î*ÌwpëǪt×=§,ÜÆµF©Çê—•»?ß„P·äÜóªUn¶Þ?ɺ#eÏ*±ìŒ"ïa9ìþz·;ü‘*½ŠãécuË,"^¸“k'ëÀvß+îyU9`fÖ[÷úye‡BG.=Û·_ß^öÒ—Fi-rä–¹ÄÃaöì~¸kcÅmn÷ r1SͪC> ˜ò9“ãP–¬†¼ ''ƒ‚ï+K=pÄÕ8Žãî¶3Jé…@¡„5pA˜/«+>ˤSÛÎu];§Lô‹¹ñu_ ²ÑSøB '*ÜÓâ–í{p©„Ïζ]A 3£}Ò¶½öóívËgª{žë¸v>¼‰…›D7"Bàh=jÁ% Ô@˜$«f•Ä,¨ŒD°A¦ãèË#\o\WwôÀœ2õÃ?þÓ1 ¡T£³ÔÝó®`o¡D=Nb;J÷,Sêd7Aa¶ñ3 {ÌŒù²?Ž­eŸì}‚ƒ/ö¢ŸÈfIDAT°oÌŒä$AëQ ÉIb-«Ô.wˆ ‚ œ!L‚É^Ãr•nýáH5r€½{{*[]wvûäÞ'ˆ;1â“)§H’İ9ËTε.‚ LGýrÍo›h\kØa8I’`ëÕ-Õô(Eùàþ½}l½¶Õ”¢Ûþ^yñ Úßµ»… hŸ´Ï´5ˆ ‚ œ êWë¶ûèË#Û1­v±¦á¬ûà#x-Àþ½ýe/­V ¾çÛ²2×q{æÃªœî¬‹8 B.‚°òÔ/×A!•õíH³T5]ÑÙá` ðÔ@’­W·°ÿ»%‹yÖzæ:®”’ó Kß‚.KòþR²qé£Ãä·Ûo’/Â*Bžîˆ¦ElÝ59ªÝ®j,õ­×¶–j™›©g×½èñÌÒ„|Øž¦?zÑçM#ð‚ U¥~¹Þc‰ÝÞåF|ò»ƒH: —ÔÐ’ÆÆRbæ¦ç:y¤,qG,ðQ,%k}˜`÷÷VÏÏïþ ÇF=gšõ‚ Tò”hKÜô&'O7W Õå-l«S#úá…%e´;èÉVFSúò³~‘5÷‡ T1ûNÒ›]D\„U†ˆfé3íO¥î¯ûVÔóSÇ–Õ‹½?[ÝuDÌGQúd·yÎaÕ Î÷Åĉàžs»SÅ<-’¾j @ ÕÃÜåÅ hýj½gŠ äOé…|^ˆˆ ‚pV0óã}RG\G õÔhP“èqÃe àæ_Ýwq#é$óoçškVc³Õ…‘œI!á¬>QSÌHм{œn6;gj¦8aUЦ-sÓÊ5o!_ ®PýГ$AýÅ:’D‰zr’àø«âÖzôBÔÅë~ï®ë"}’"~£Õj3.Í@—2³4‹|P²Z-2›˜®–\^„Uaã{¸þÒu„—B´~ß|tÝëÌJ¼Y 'iµZ`{–›*i–Ú©c®ÛBœTb\¦^«õ¨fVÖz'A¶Öë—ëv$©ÉN·æ¨¦¡\Pë!¢R´-3Ku­Îa‰nÃJ׊WÄZ„U'/âÈ€8ŽUfºCJ¬Õ£ÜÏ|¤¬Ü×)§vº2%¢w~s Ô_¬#z.‚{ÞEš¦pÏuE=MS[¦EâGÊú¢ÌŒøQol=z!²™ñ&kžÁ•ú•n\§›à6IÍv¿µ¾õÚê/(o@¿¥nîGQ„V»eÅÙ¸ÎmÝø9•ðŠÕ;:è±Ì…^DÈA*λDˆs"¾ÿ»};½ÌŠøy%„û÷öqøÙ!?;œù:öïíÛA+k D/Fˆ.FÝÄ8m©ËÛÄÆÉSMjliœ¶ÄÝó.ð€ ³üA.eE„\¡Â¼çv‚ÿë]üòÿzŸì}bcâ[¯maãÆ†úÉÿ×Ý6o޾<ÂÑ—½ÖztQY㦫qÝž<%ò𔇀BüXuš«Õj Y{Õ!A¨(ïy„>0ãÁ?¼‹C÷¶"®kÀ?¾óñRk²÷ïí£q­¡ÜîäÚR8dtÏòÔ[Ï9÷œ‹$K¤9ÌDÈA*ȯ´%Nf¬å2Ñ·¸Æ†ñÛ?¿½¤Uöb’ëÒ,µ‰nùŽn®ãª˜¹£Ýî hwÚð=mn/gá%G„\¡„l;º$+c2;„8cláM<#â¿"ÂÎáÞߨP€ã¯Žáû¾mFcÝèP"ïzÊRƒñãX¹Õ9V–¹é4'<ƒ¹ Bɸé¡C )É"gáØ$Šõ‰øGDØÑâø‹ÿç=¬$Ë;‰äE[]¬¨ÇSV‰pqÛýLÖ;™‚6rA„±­E<Ì5"¸@@ú6Év€’MÝDèq¥ñÃϱýú¶mî°ÍJ÷ñIÜí4—©f2é“Ô¶žE„\¡$K<¡À%å^'}r¯×<ÄŒ·=Âu·('âI¹Eoï·{Ø~}[SÕ"îžs‘$I·9 Ðí4w2ºIÍYG„\¡$K<"B-Ónufm‘3 ³¹C§×í|À­Šˆ¸Áˆ¹ŸùüÀ¶nM§j ZÚµÈEÄG³’BžŸn&CRA¨ „®%Jp ´»œ c@ÏOµ…îj±ª#âÓyîÖo©Ò²ŽÊ^O:jpˤæÎ*•òIDZD\„ªpÓ~Ú1Ã7b­³Øá’L‰wŒȩžˆç¹ó›;ªîý• Õ¯ÝÑÝ餋[!þbÙ (ÊóÑóx>zOŸÂþ˜Ç1hÞ¹ BY ˆàC%´P"•­X?|Ugí)á×ÛßòhÐa+ƒÍ^×á‚Úºtq+J%„ŠaV¹ BUhkã̈9ÇU¢®“À`êÅÍ­C¨nš[{Þ2ØÙéÂxJ-äƒäZAXb±é=®³ÒÁ©ì8V?ZJØ;ªiÌŒt)«-Æ"·1òŠÇüI©…üaóá3Býô©oóc,öµ5Ir¡Ú¼ÏŒ–£†~¥¦Ä̈63p’V?ÌH2áw«j JÊ©‘K²[q*ùVu·?=/â.B¥øI‡ñ+pÝtnc†Ÿè´lLdŒ€+®ˆ/XË\K©-r`°UÞO¿5.±rAªÌÏ:ŒÐ;„fÆHp'A’ÍŒÑrWVÀÏ“o;ëº.×Ë^R%¨„E®Ä\‰ó R´AV·Xã‚ T™ŸX‘fü—Ghëžë13~À `µD€­#wϹ@µ àhÙË*=•r +ÖFÐó CÄ\„U`bàEØ¿·…ƒß¿{䃥­¥JTFÈ E„YÄ[¡Š08K@ŽÎ8á²T J#AÎ )ÈapfzÞˆ¡´ù4£He|© B•a0Ç ª §¶‚™³§ôù$‚,â-‚P]8KºÝg€3éîV„R ¹zR¤œÌì'b.‚PMÈIÁ¬êâ9ÈñLjjú6p}©ë.sq­÷g˜—¥¾ÛÔ¥÷<-ÃÚAÎÎ6H»Ñ¡-o¢ 'm±C÷^O¸zÔi8o™¸Ø%¹ÖYëæ÷þǦÝoZŒØ÷¯WÄ^avCp|-âÊò†@Yæ>à¨X9@9‹\íç{ÛË\~©X¸Q4?F45€9Í~ÃÈï#-‚°82p\pÆ\e¡ÃtSrkÛªJÔKvË\\ëýb:XÎS`¹Ø‡m±A˜=ªÙ‹ "¿§+‘ºuÉì \qG»Ù™Aˆ˜kæ#?»{^ÉoEDZD\a~0ßQ]‰±Cª=«£Ä™H3 ÐÍaàÀ>Îm™‹ˆ[æ^G>­ JJõÓWÄZa™$€ÃX'´u;º'2Þ€4Q÷“Ù6®Â Ö‘K™˜ BUˆÁÜ ¦8&v¤Z¤­¸›û £æ– Š…wvëOHVª6h¿¼õéœðþYåeb˜KDANCi…|˜çãäeëa~€ÿø_ÿ±ìe‚  ¢ñrÃþ~÷ßïÎì¸ïüí;Ïí>¶¶6Ø•þ°ù°tVùÿíe/AAXOŸ>}&'jOsÜÊy?ÏGÏ÷¸Á<¶¶V.ÑFú8]öA„9²÷éÞÐmýóGS7I’¡ÛJ'äý–ô0Ïóôé³b^Va'–½AapgüÌÕiJ‘×ÖÖðÞ?¾7t{é„|kký®uŒyAA(“”"©v*ug·~k¼_´û· kSfV9›}ç¶ì÷gÚ×_Öºñº³zy¯uÙ;E˜ÇOsÌ*¼g³”ZÈOCD}mm OŸ>]Ùž§â.Ykkk qù\ËÍi>ŸUþ>ZeJ-䛑ÿ›êÿûêßÖߦ b^óÏ5ì Û<žßֿ߸ûE^+¿mÔk{½iÖ?ê‹eÜkYç$¯_ä“0ì5&ÝçéÓ§#¿ÀókvŽóX{þØãŽ?éç3èõfõ·2nû¤ç9î=˜ö¼gõ',ŸÓèUé„Ü”Ž B%µu}oå“åFkÙä-›¢WÁæ9ýûçŸÕõ°×ê_{Ñ׵߰mù÷gÒcN²Î¢¯_ô“ˆKþ¹æKuÔ¹ŒÚgÜñ‡=gÜöþý&Y×<ÿ>&a’¿•QÏŸæ<‹¾ö¬žWô¼‡=_¬òÅsZã³tBÞO¿Uþôi÷ǰ–³ÆÕ”¯ “ºÌŠüƒOóZóv­N{üþç=άÏgÒuä·Û·È>Ó¬m–Ç[”Ë}š×™ä3·ý´çYôïã´kžä9.Yýâ=˜—RÈû-i#æýšdÔ<¦ ^Ôå¸ècÍ‹e¯ñ4®ÏI÷&gÞïm?Ï5ç= Âr&Ú“ŠyiËÏú»³™[ÓÍ-ÿXÕf ³’G1îyywಮ¾—}Õ?ÎEŸ¿?é1„Ó3Ï÷v’ÏxZf½þE®y™ß Âé)­ƒ[­Žï²O?[ƒâïÃî9Ƽ×8«×žäy³8¿QdeeTŒ¼LLó÷Q¦÷}ß³`PÞˆ°þÂÙdÖcLEÈ—Ä /2ÌSÄ«ö^”…²½G‹ñE4M÷˜ ”…ù ²±¢èEÛ­NÛ–uT+¼eeÉúÒWg}šmEdýyþ4–bÑsö>MºOÑ×w®§eÜûÞÜ{;ͺfñ^÷ï?h³ì{0èïlR.ò·8‹×„y°0‹¼¬ýÐÇ5™Y“~ažf[‘ß‹®¯ˆ;sÆ}qŒI÷)ú§9×q_øEß÷"LûÌâ½µŽ¢ï÷¨ãHÖ¼ ãÎeç:‹×˜†I>ƒIÖXô=YyËîÎ0fé1„yS !ïNs¿¿×úi÷›f-óbQ_£’|¹=G¹CW™y_pT…²¾EÖ5ÎZŸäïy˜G£Èƒ ,š… y¿«z±œ·À–ÅÝ?KŠXÕý_H³rñV…A®Þ³HßÉ„ñ,%F~šøsÑçNú«"âÓÄ,‹>šµŒb˜USÅ/éÓŠ^‘sžæ5Ê ÆU`XnEÑ}aV¢Eë ñ¤Eä2õÓ·lôÇ9‡¹Â§Ý6K×ú d¨¢ûOz³bÐkù¢žä\ǯèç1‰‹y’ç Úw^‚µˆÏt†¿ ÌšIšÂì~¸;vŸRÄÈçÍ(¡^†ˆO“ø4mâÙ4ÛÆ½þ¸Ä¼I¿˜§M¶¦Iu’s=íç0«óœd]ãÖ9hm³|']Ϭ·ß,âí‚ÐOqž„Ry~渹Ÿ§?©­ÿyýInãŽ×ϪŒG-âr,/§ÉªavTÒ"$ˆý Íqû™ûEWdmÂô”Õm*Èg!ea%-raµÁAN%-rAAb‘¯ÓÆ‘§i¥*œŽIËôŠ´GTn7l»ÔQ Âê!ùF¾¸Ë,:x© _…:zAŠ#ù 1¨nx’!(ùcŒkc(Útd”Õ8l[¿èÂ1蘃†sLº–AÛfÉ ŸT€‡í?¨Žü4¯#B¹‹|E˜•k|œÅ8‰L3­jÞ“¶¦]Ë$ç:nû¼£‚p6i~ÓœéñDÈ—Ä¢Da^.áaÏ™U'¬Ó6 ™×óú!·AX6"äg€iZtŽKÈZ亖uL™¸%B!_q&h5ÌM=ñ(ë1%S\„*ñË^ÀY¥ˆµ·è E_oØ~ㆆÌâµgùšËfP(B&n ‚0)b‘/‰anìþÇ'×aÐE'ZYÓ$ë-º­ÿ˜£(º–qÇ,‹(Ž{_AÆ!B¾òÙУ¶Oóû¸ãÛšXoÑmE×1n¿i×rÚcÌêñqûÍ"Þ.ÂÙA\ë‚ ‚PaÄ"A„²o¦Ç!fЏA†3rAAXýóGS=/I’¡ÛDÈAaALÒgݰ¶¶†÷þñ½¡ÛEÈAaLÒk½H<½”YëQô<¢èùžÇžï»?ˆþ}GAV‰Ò ¹Þ§O=Pý°ùpìs6Z1tAAX5JïZ7Â\Ä"Ï?Gr§A„23J׊¯†Ò y³ùPYÓkkh6Z+»èI™}›@ÏqAa)kPbžß¼Ë|ý‚ßAA( à ÔI¬q ¤B>ˆ¢1rAA¨ ýº5ŽUFÈAa1â=­1*B.‚ Kæ4erAA¨0"ä‚ ‚0È£¥¼néÊÏAa•‘1¦‡;¼ì%‚ KBƘ®{Ÿî-{ ‚ ÂH’dä³i!_OŸª¦±7ÿêæ’W"‚ ,£ó@„|4^nL4¶NAXnþÕ͹j€d­ ‚ B…!A„ #®õp÷ßï.{ ‚ ÂYd>ÔÜ…|ÜÒIF”V™wþöe/AAXOŸ>]h^ÔB,òab]d4é*ñÑ?´ì%‚ s$I’…¿fé\ëyqïÿ"Ûò÷_@äï›ßûvüY±óÓ‰Ÿ³¶¶†þù£©ž+‚ ç4ß·kkks©ÇB„¼_0^!ílÐý¢Û&qÕ=þ¬™ÄåÒßÊOÊØ„²²o;?ÝÁ#oåoX(+§ù¾uÛÕI¨LÖzQQD|ÏBl^AXmæZÏ[壬ÝQqóaÛò–ýiÄyÙ1ûYœƒ ‚0{Êüý\ºù(ïw}zÞi\âËü€–}!‚ Œ§Œ•V u­³Æû)*nEö›T()¬"â‚ Õ¡lßÙ¥²Èû“ßò‚?h›¹(æZï|Ô›?êµçIÙþ A„ñ”É2Ÿ»÷Ÿè¤÷‹î;ìyÃö´ÿ2>”q‚ Bù(‹ˆÊZ_eÊô!‚ Œ¦lßÙ"ä%¡l‚ ³”ñ»ºT1ò³Nÿ@A„r?‹E.‚ F,ò%pšV~Ël(ãØýp·Ð­ Tª|ߊ/˜µµµ¥Œ:îißâŸÉ¸ÿƒexסìÌÄ"d»2uÅ\Ô²>;vœÈšõ [k‘}мþ°/©až„¢ç1ê=+♘ƻÑÿÌês·æ"ï×,ÎgLó·1nãÎ}’õÌò=œös-ú7,V¹pÖ˜IŒ|Ñÿ0Ó¼^‘ìüöaûÙçÿoïn’„¡Ž';—^¡g+ºðÃÓ3xޏqÜzgðÞ ®hxäòÿ͸ƒäåšòH Ûë¹>ǹòmëó]ÛëÞƸ;ô™>}„è/Dœ’kÀUr/M‰Q2+éÛù°Zе¤œí+¥Òç íÞ¥òÿL% %É-ä¡?$KZÄ[¶Räšwò)å<ÆœŠÝGjRßXi€Ci}Í‹gjƒSîæ6…l7Öq¾møŽ×åüãiŸwÿBZc~ûô"‡ÂÝ‘mî’’nxk{x7i‹aê¼¶¯a?S±Å2—Ç©²x×Tܶ6ær$9N’çîF§¹6ææÒ\’|…/Ûü³Åê ÕGèJç¢$ÉØK¬Ê¡,ºis8”1F5?ªÏµªž*uz=©ê±âˆHºKËì!—!¿Däž‹¥J3ö¯>×êøpTZë›õ:È®uÈPv„ s€«ä6»í™kIr¹ÞÅš¥ý¦º¤±-ò•ñÙ¸rÎc¬ØsÎÉR%hõò±÷N½¬¯»6_r­õÍÆ˜u""Ãõú²käçZZ~ß0 °ÄýÇ‹úû|ë?#¿ûýÞ*à ¿7_[ÅðŒ€ŒýúNqõmIEND®B`‚ghemical-3.0.0/docs/user-docs/images/cyclohexane2.png0000644000175000017500000002673611563552731017425 00000000000000‰PNG  IHDR ÙâÖþ‰üPLTEÿÿÿ{u{sqskikcacc]c¥¦¥¥¢¥¥ž¥„‚„½º½Æ¾ÆÆÃƽ¾½½¶½µ®µ­¦­œšœŒ†ŒZUZœžœ­ª­ÎÏÎÖ×ÖÖÓÖÖÏÖÎËε¶µ”’”{y{µ²µÎÇÎÞÛÞÞßÞïçïçßçÞ×ÞŒŽŒ”–”çãçïëï÷ï÷ïïïÆÇÆ„}„ççç÷ó÷”Ž”÷÷÷­®­ÿ÷ÿÿûÿsusZYZÿÿÿŒŠŒRUR{}{„†„JMJkmkRQRœ–œsmscecRMRBABJIJB·É‹éTDIŠš+ñîá(ý08o5’*K•r¥TL)ª ç¯Géê`H²;œJgJå¡R&½¡kßÅqº6º,*é"bñи¿hTêÅ´"únCq\Œ‚@$¤qÿøøøðøðP)Õ3U¸ Ö¸2¼SL,~÷ '¥zZuËëÞÇqº2qMIeJÇ”J¥© #ûuoä(]ŒžäñÆ{D#“ 2Õ9N×C—ÕX’‡ï²Ò¨•dl4¼ê¥«‚a/hQàŒòý}4Š9ÕÃõ®y'Çéº`pb8—Þ‘’T–RQ·ÏvÍ;9NWƒñW£¹bi‡1MΨ þö5ïä8] WRÉÖ¤äážè ÿøšwrœ® + j.S~|ÜÕ÷ú_S Ž¸WTŠ»œñÐ(×Sª»%1×¼“ãtU0:MÙ£¦ê¦üŒr ¥DŽÿ¯ìûcI¥Xi4LIA´T‚HÍëŒ/¯y'ÇéÊhÈ'kÔK{‚E1¥zZœî¸ê¥ë‚Ñ–œ 5 n…¾Œžx¹”)#I¯,ÝBºëÊZÞÕò¨J$…q<Ä«™b6•B!å§×½‘£tí|F´†ª(¹T¶XÏ‘\±h²W¾£tm0ly¿ VÕ°¢¤R9E ‡«Õ˜\ÐoAHþ@Ô–—cnQU£‰¤è¾Ðk߯Qº:›îrj1àŽjÕí¼šøâÌ*ÒõK{?.q²W¼‚¦Éþ‘ž¸°„Ш›t‡m^/H®K I "Ì x”þDEMf[ ø>_:nC]ú`haàŠâ\\Èøßÿ%ý 0xYón(¦µüù›‘’?†#ÔŠUÃJ8ª‚!z4Yêߊ¤\¿ÖÊiž°’Ji^Mz4çè6|®«WÔB2Dj‘tºž)—*™L:¥DE¡åú_¬µ8Ÿ[Í‘(­Qn”i>§Š1üª÷ñ] Ý©‰a”À¤r½žM…«^6j©J6›ÉT*û|5° _ÏæTwëXãš`ôC‚’-fê•ÊýýãÃãý£™éª§¢¢WºÖ¸&yYLeIŸÊ#©a‹F£\*Õ³7ÒËtE0z’NëÄ⇉Æ}£RÞªÝ@âïŠ`èœ[Aθ߭! mTJ)¥*8õ?^,¸‰x »üêåݺ3hÑûr£TTTO¬ðÇYãz`ð®X4‚=L;``}´h=N Îþïf c-µúO€aïëý@ï c3i:Å0rFc·îl¢QJGªžVü÷f…ûNΤs?ñ6;Ã^MÊ1oÌ«i-YÚk¹(hÉ(XÖÊ®”˜uø‡J=öxõß F-$ÇD·èvcl|&ÇÁ01uq¼åû i¢Br½¢ qÍÒz\P±v_JÞ9Cά¬~Ù—ds>!ÍE"Š¢ª¢ K“3>u §à=€¨×ëóK&há&òNcL¦˜Í)Uw+Ôÿ'Ý­‚”dûXn•L6š|üïÊl0—ÓëV16®—ŠÅT.œŒùÏðc>ƒ’ÝaÀ3D=1_(ž8_¯½÷BÓ¾ðpõ=›v±dx¯Óï‹J=öÄüµß•׈s² F16&wR©g#Qvzšãœ–D3™L6›‹¨IWvåϵy "YìyÅ^hˆÁŠU ØÌè°¼ •’r¼.·æÿ]Õ“¦_{ÍuRÝ>™'8£ áéí®€Ÿ\L+ѪGsjçݧ‚µ(AäQDçÅlXÄlìL˜š_•téþÇe½‡oÊ* %\Š@~MI&±1©õc:y.YÅã<õÉ}0$MÌ¥èUH|]ʤ×ó,iÖµ\1C#ˆÃ0êÀεPmÐq0C{âwë@L0:É@¤&È®öïáŒ¦Ë«ÒØøãÁä½R=“S½§z²÷ÁUD´‚ˆÂ üäz1…zPâÏyh’'…:ÁŒÂð‰c·VKï²€…},µbÕh¶ôÞ©‚XΕÉö[R嵸,(alL‚AÚ¡ž »OµëïѲtúDØ$¾¹‡§Æ5ÏhLäýÑTý£û—|;”æÆn³%˜‘SóDs ÓÊx—ä=æw@Ôªq¿§}<Øwù¨æ2µÓ#‰€*àRï‰ÆÛ=0Ba°øäAÔPÁžð”}þ4 ç½ð@*[ÿ?~¶ú4`AFz=>ï’QkÔë%-Þõ”"ze®ù[Z4MŽZ÷ƶ‘î‘`Ñ`X8aPvÁàAæÁ[~ü°yeàá,æ(9ÝÖ=q WUR™Ên÷¯Ÿã¦ÓEpb·'z¾.¡–Ç>•L†ZìÜÁLWJuûü…ß™ û£–[Ég”w;Ôá»ÊÀ¥Ú÷vqŒ‚˜CñÝ w‹ÏM ½“•ò– }G?>úäV7¸)¶m5^ÇÁC®†#¤oà@ŠÅt:Z¶ÅÅÏĉ]wij8‡Êk×»CI©§ªÂ÷ÉÅ0N%²ç!š|Œñµ7¤Ÿ”hMÍe+»QDŽÎ̘0Àµ€>rÅAk`ŸJ.•ÍÖë@»˜”¤°ÐOqÞy4n:ÁõŒdëå½vSÂç`]¿G| Ý Ö¹ÔØ¿ˆ ñ$åøÉFwg2Uß•Qt³+v.ÆØ–àûÍ—ˆ;1Y î =Là骔/~SƒðX—EôÃK•‡,J)Uøþ‰î€׳X:¸Æ‰¯“nmd?F¹<Êž¡iŠe7†±·k5=îrj€†Û]¥]L9‚D2 2X$~Sš0@Jên?ÊI)’Œ}¯—vÀ`ÑÃYä.°'UÁ—·Ÿ²'yo5Uú±ãC„Bœ|a'Ã!p†^ɲ¯ÝäZ1·˜TÃûT«"ă²+Þoÿ®€•éC¨¨H ÕEÅ£}ÿöÀ8˜1s Ô?lOÝo@vG‹÷ØãþèóùÓj –µÆ7 .—Óɶõç×¼ØÅ”I®°´[ý$ÀyÅh*S>ø` Àë’¿ÿð.ÉÈÞ,ˆ©3*éø‡²>>Å ˆñ"è§<ÅJ½nYwVÌ,+Iâ¸ÕÌŠä”c1d€ZöÛ–­ªÝ>9ži™Ô\-O5²,J5æÿþª»¦d¾|“Ck’%þái0î$ŽãÕÉÔ*ú|™LQ×]ÇÄÖj@³9…â:cëòéTÁN¦xÍn9‘àüNòj~ú'¶6’c§¡¿´#±à#Ôsà.F¬šË<î²±¬u"%?>žä¹Xìø˜èC€ÝŒ€”>]£‹zƒ©iæ†Å A…ô}ìc²³–£³aÁé“`«Ü1ëüãªç4!©d©—ûŽEcùDp² †ì‡ÜUL©¢&‡øáé»Öe·%Ý¿àKµˆz4W|ì°ËñIð|~?ã)WìØnÚ‡ãIвaû\ ³è¡D1†<ˆšÚàõ£Ö@¯¿aFÐ÷eŒŒUpÏe³2R¡µ?“øñàô‚]Uì (áh5éñ…šFg^³t¬Ÿôj| "Áûû’§Ð 3«P€›ì§•ü öà§¢IïA>¯«8ÐJ*›¦xPŸó­S¹®]0@æ!ĦµP곕Aî±ÚÕâ R;#ßÅÀÇL&£ápmÁ±D,V®ÍÖëõ.Ê¿i-ðd³Ù»?­báTŒIi«’I+¢¶_²71/Ι^?fŠÙlJqûNæývÁˆƒÌçH÷Fñ$JŸ¥Ä/5'õjü´3°âã.9æ=žXÌ×’¦ÝË€4°Ž1Úí6»C#1ڽ£´mvöÅ}N›ù≮”1¨F{o™&š!ŸžLõWç"% 2r¨_¾ƒäsiÜP&H`eba‡ÿŸnfŽ oŽ8ŽÔ FÐÁ2cÄ"h ˜1 a‰¢$ß7DiدÕ‰¶ÝøËq9I²OdÇöº(ÉÖ~šb hx·~.ñùÁ¿,NG‚û™.N«ªxà/OBErPÍ^‡d’ñç“Wœ€­ 4èvЊ0¬£ÓÌØå„a˜ÉÜ^Æ)¤¬WgyŠF{u>sð’7Šu¨Zà;cÑI;òÅDðs£a¢»@båøý a—Íå²4žŒF“„/j íÈd»OçÜ4 d`xŒXƒƒ5èQ–e&?» [~KNæY{/ÀƒFÍaü}&ºß½—e@ÿ|yߢ –6]âd°°I•è.A,ÎprÀ`¤˜Hæh< ±CËYÈ÷ìZߨ´Ûìü<·µ" 9ùÏõb15:Õ+Û¶Ù‰;}w˜6¢‘4ë³®™(œÉ{ÜAíx–¢k7ý\/ñseg¼vŽ“{X7!™J´fìàóš=ûJL=Œ%Üù0x[]ÓŠ8:1 oO³ù|:Ø 3àtÎ_ï6;·«G4Çü0!! œñwªK1ê>ð,ƒúŠø¹#É%!5Ïtr?‘X=ÎÉ^Ö1và zÏ>©´p ¾ï,Àü”æ0¨Y¢™¾Ò¿½¾>½< lmà‹Ä¸‹½Ì;“D¿OÐhwÎ`^£‘â^6 ШGăŒá"÷ ðsѯéÕί@|./®|\òûeôý9® 3þU÷‹Ù{"ãø÷4Çb¶™Ížž^?þ>çdl§Vdº+UÏ‚EmiП¾è²öš)+ÃÓÌÁ·Ôè§,C8Ãuð>/î7j”—Dw ÅñÂ3cïõu]è:L¶Ù¸ž¤1í>ÜwÑøÐƒ®4ºàMóeô¿©é‚Ù»òÓ9£Šçþáe°ÕÀqS דEe?›X”SjlßÓpÄäꓵÚwüEÆx<Ž™ew7vhv'v!²2 ’g;y äp€DÌ_ž©æ\Ú‰1¼?GíYKØ;›÷?m ¸*O¯:\|³ έ¦2ûRÒ(¥ªÚ¾µËÅôO=V3V:wž+f+ã 9­ ˆÏfþÃr‚ݘÎÖ±X‘êï ±%=fW?YI˜ò×î~Ëm—&*®òc€…Ë(nyß·ÜxËû®¬µ1m‚¦Œãç à`¢— (ð,0Ç k‰Ô¢~ ÃÖ,åŒå>Ç,àª<\5šƒÙ~h‡ì#Ÿ€1ë;k<ÜWJYð´÷\зés ÅrÜŞ®—©)ã¨9¨Weo'ÚÈ) ¨1çëm,òúéÓ³1¾¤äÀ¡æHô ¸N÷k÷œ‰s‘ª©”YéºÇ¨:U=ÈÙ¼tPKW-+~>!Ë n2Þ!õd¢áiÃ/±#GtÑXäˆofP[2ì|â™Mw‰WE޳3_öºÑaÕT:êkñ@òW™º"î‡æ?ç“ÜQâ<×e¬wû‡ÇX£X@ð ¶œÏçuž·'lpð‚±ÈUø÷óŠ"·œ~ö)ž¼*µÜÆã¬_ÞÞž·ÏØ‚Í†Äæ¤J›Nƒ“±š¯ ;Bž`?sæ)º¤õqA5C¸¢°ôQÈ5õc°!Ææ9xhEîf‹Íbó4$Ãæ˜S“ l¼ie'[昡݆ÿ¨]œ™}̾P*Á¼b.åÑ~+ÍŒ…ﺠsQ(ñ¨-H€ªÇCNŸì—ôÊIpþô÷´‚Õ!¾H›pÆ)¡Wv† ŠF›Æn멱Z±ðB»½yÅ(x<\®ZR8š#Ù4µê– ûüó”é!“ ²h6ÅnŒ ø˜àïòÈþ–à|\³fGܘíóÅz¿‚ø"TJã«Èwš£ojöåmC-÷-7z-³gð_ÀNMÝ¢F$DpˆÅÝSÐF¤¤cY}^ ÆëGm=ÄùbpsU/çmÄï$¾×–~.ˆGй üM(̃ח/"ßhŽÞÖçŸÄ“µÛÛ¦¥êÎíÌdŒ\-ˆ­EˆÌ5gü`Žþçb‚PØ.PŸƒ1›²fm]òcÇesÏ#Ýfoc5Ø|€ñ‘ûjI³\cûp¸\b®gþ¥«¹éLPs¶ ~ÎN#;ÀpîÌA §ãD )AÜää8Wí0ùÖЖ°ç%öéR0‚Ôa b:Ù›TŠ¥¬ê‘C 4ÐÇèÎÞÁØP,†Äƒ/Ö—x#ƒ/ÜËt5¦>|nk¹ÁbµÛCfÕ} bŽ~b§ñèêsìC°³ÿ½àW] Æ kë‰^ ŽaªˆÛ^} %ƒƒÙë_Æ$ jz#ô ·ÇcôO_ë·yp‰~]ØŒd­Æ×ø¾è÷lð¹ù{½ÂÑ9f.žç ±%ã Ôçå:ô:v]FΘ'ª½9N°ƒVÀÅÔ ó.•zbƒÑ7#^æ$ßø&&Í1ìñ,±Vð ë´q½ß®ûR÷§f‹Ùb´[r2>J—‚A:;k|¤u;îÍq ¤ˆtƒÓÍú4‹c úSž/VŸu½_#²4ý.™:ïL:Ø PM¬XK£|Žu|…áË¿µd‰ÆhŸQð:B‚ñ÷ xqÎÙÒ¼‚¨ù `;W&xWÀ!Æ¢ë,°–þH^’Fñf­Í o¶øîáÍŒÕIº/„B~'fbQNŒcŠñïõskè‘°D'—¨Ïˇo‚à &jýøÈÅùe wÅ€/1a·ˆ¬‘ÎÓ´³·±ëìC_8°®xÀFr£óoÄ\“ è¤X«‚Äù}ð¡&~Ží‰j_g`½A7a.ô3zŸ?¯)&wD¬íüÄæHrq\)ä—c-^;‘cööåÕÁÅ¥ý>ý|Á~Œ;Ö ú=û]}6C/sÓ“ô3ðÝ%nÆÅ``?8êz¢Ý¤8zÑóùÔv±>BrˆèXÔ²ä=À>Mp»5Yjölðà›}yõµaê$,—Ü÷ÊÏPöÁO5–)É'‰í!öŠd¢/黌 ¸‡C³‚.ÐчN$ž^‹ùÀØrH ƒžð8I2é]9”çÛvj]¿äåõ¬òT?^­ÔÒœ®ø‡.ìz¸àÊ,ˆí!±;É%L¾€¾¥KÁ˜]ôA1sÅóÛÜW{øô4[@6»2‘œË¯ Ép½‘ô«¿V¡¯SÇÖÛ—BœS,ÞuµV̃âÉØˆ–FS ‘ÈáåâéEˆ¾ÞŸ‡™…ŸÈ‚º_Ïf›Å``,Hö<3b9YsW•4N8 z†±Fwöe,õ:'Öª×'`..×Q;›ÚèƒGæëçÙ4Ld'Ö›Ç~½ß¯%Ðw·Vßÿ%0ˆÖ 1p‡ ‘‡ ¹¦ø¼×OO›Í†ÄÈ9Í™“ŠæHP¼_³‘Xÿk1yž£µj£¶iÆGÀ¢FeïÃ^9(¼Ì ðeÚTK:ñÏ=D·ÖYãæZáéMP‡©g–¨¶³§ÿÐ^?†'œÈKœ†ÝŸUæ—âÈÆCä¡Ù—UÛ¿fõƒ‚Òãy°U‰mÄníUçç `Û¨¥‰f³Pâ€vÛœwVü7ñ6w>ƒ1Eb‚XLOï¿ð©ƒ‘V‚öÃúb1Áãñ!˜­ ñÜË×)‡Ù;&m¶ɘŒÏË «µSÃètÂ! 5O ¿¥]«!¸ -žçÑ ;¾K´¥_™x~^`ÖfIòø´/výºCµ`O/ gækÅZÎB“'¹ ПÁWY ¤±Ö0=y³V?^?½ý<0º€òH ÚôHô|aämëòTN,[×_ÿ~^ HßÅ„¥™¹él·â ÎÚG’xØÙ?j’*úŽ ±þ&µ ¹_â;¼ëç%ñ¥P"±X³jià ê~Ÿì”â:Ÿ@oÕêïùµYøŸëàz"‘Æf;ôŒýŸF·Wë÷óùâzäj©” ^¾ëQ™Kd°Mìæþ>üÊõL8"ò‚ž0ÕÒÀÀ€xÁè]Œæyý²YlfˆžŸ¸Lª‹ù â—U€{43z¤oãHÁ`—AEM¶‰Åžµ™™=¡w6nSÎ@¼9¿KQCΰ<úk`Ì1góúöüöüü÷çÇ<7º]ŒŸì(÷X×7+qm”pØo×7œ 6;Á@'9VÆæ³ç°¬LÎ@î¡þD¾ÄAgXçù%0þ Ö0¯4 ¯×L!~¢•W¢´ÖŽ> xËé“}ü­õ{›‘œ!ÑÎàW€‡õù=ë9vر>x$’„|A|PöÊ ô•dlËÃj;¥Å³|$ÓÕ«Ñ8ÊNsÜsDÅñ]‡ØóË s¨˜ è‹c_ò6'=BDgèù|œÈ"•D6h9rý%06còûVGc"øhHÆÓ y?ê³ÓÚǼgöy|é5ÿmØ^ŽÍ|3_l¾¨7´îK£[#91äSÇÌÊz¨öK`LiŒ\ß/c- C¬ÈÿLI”zªC›¾w¢C앟4Òëó—fçy6þ4P3 ÷ôØ+‡õÎô_rº$bfx=€=O¾6~IÿöuM ³nÑ úª«àtþ·†¾vˆ¿ëÍ} û÷£¿³éß‹ñ®^jÛ˜eÇ`­úã¿Æƒ: ÂÖh'ùOÒ´î!ôÅp®‚v'›@û{À?ë _ü5±ñý^ ûDZ·ôsüMe‹ý¾µé¯ÿR,†ìªMê Ô^Ù™UwnZŒÕ~Œ¹-ÑœšWˆ ^²gGæ ö²‹½“1Œ)Ó‰a–ÔB:kˆ¯ì‰mÄ6î|~ˆDJj‰S-‘&_Lݽ„õ¦y-a³;,õ%üw˾ ~·ªªÕ$Ý"Þ‚H¬ggáoJvˆ}MÝDÄ®˜>{°;ß¼¼“ió[4ì“ùám/¬ Ÿšr1;N ã]/vŒÕßt¾|¦_cÍÖ$Ë]U"©\Žöî‹î˜d¥¶ŠFŠ)…HÄÛÝÛËf’f¨ºÁ¹¬¾Ì»“q5 õJ;³ÿì^¤»9&߇ž[¾`ƒÕKCR³íiÛ—hajáÀèÇ%YÃYë4Ù›N岃ÉéÊ÷#ÅHX„§EŸ+õÙÉëéç‡cQÖ¤1)Í[NözX^$§Ùù–Ï/VKÊ$·‚Þ*j%cñÂØ¶¹Èóõè/€!q>ogðÍ­4x>G.¬z„–3n,„ ñÁãokx½=ÿÜ3’O› ;þÐÀÿ¼a‹ïmÉ_tÑW%Z dÑX<¡NªõÍnÛÝ‹29¶\ƄӲý ç‚*ø"[i”¨èÑ\ýŽÇ+s§]ÀÙ´ÃØ?4Çr°­¥œcK¦È Áb¶™#—Ðê©ãΌնÈf_™í±ãÚH ÑWïƒaÄ}b4‡»m膲燜c<áŒ÷‚2wÎò×õ¼Ëýmv»³¡ÌÁ°¶S¶„ò…ló·5êéé_¦°a¯Õ{ïqD¿» 2<Îà~¹˜æ;vÖÎe``:SR¸÷•ì<"X=iÜYè“ÌôÌ#óPsØ{Äç@4&t ¡Aýù-1»`°6G8ðmô¶Ó—±1Ø¡ÙT¯;;í<è{A £í÷˺ 6ïäü\ÓY%“så2vd~ìèɤȶèfïìÔÊ˦»"šÃŒi˜(vÆ %_Û’©nƒ|ñu@†]Q6œþBž­Ž89&ân4nh‹žÖáª^Ë`tùO„^ASÓæœ#=¡7nU¶‹d‰·°NèeÚ]Úk™®'^¹¬}9KEùÂN:½¾¾ð»4{ýGº'Ëç­ât0è{²ãŸÙþÜU0ì’ß+*ÑhŸóäRt[ÑǸ8ó˜VT·—kZ:Á8šI¼Wæl«Íß8ýšýrÕä =™o/ŒzÔF;îcsÛ_wž—qÇÝÁÚ‹`49Y/+ÝŽËÉHz»ÿÉDÃÜ(„[Õ…Vᜠ¹›žwÀ?×£Œñ 8‹»Ó»©´óø‚Ðz.WÓp{÷šˆ§Ôß7²UêÅœêÝc k`ÐÙëT±Ž3•påÒΦSº¡‡L+U·Æé`]+Ú£Oeűø ¤d»au†ôô´¦ýQSsŽú$_Ò9A)ÿø7œ¥ç·‘m{÷•¨¸×ƒo 9†[뙲îw+„3ö¦‚ÈdC§çAkXÞA†þùVû£æ0Öš?Ž­ÐÏëùÀ˜Ã0¦ÓÙÛL¾8‹»;ÐoÕâQÉ~è8º{°žªzwu¨%0F&ºÆÈ‡<··)ÚÜíõШ༾à[_ȶ1 9Þee5ÿK Ýý…=JúS¬8ÏgÏ”/&gbCˆ~ΛL¥?tÜ#Õ©é¨gw¼Í ÞgŒ€SÍÍÙÁ±ÿûPJÞ·#ç’nMî­Õ-#-J<ð—¶wŸ£³Â¹ ÚBj.´§~Ö±°Ñ÷açî‘Mf¥”zñnx£öƒÕ<ÊáµM,ÊuܧêãxÆxÆEš<»ì55‡Ù¯µÓo ÜhÌ­¤7‡M¹ŠKÈöwžÓiiOëã}ÀàD%·]ˆÜ‘ñÚÃât¿g1Å–5k`Øš­*ú´Ä‹ûˆìÑn˜ ø"™ Pžìñ:@÷¸ë-1z¸ïì ­G=;s Àqöz»Éï+[Ùßlî:¥{½$~b‹»¡¤…qG;½þšúç|šXð¤ÇXÇ]÷8_Ðùœè 5»vûóv5Fw ÕÜáÎsܯ”Rc;;,×3/‡»or¥ûÇëWÊÜŽ¬qRÍš”Œ9ÐÉéû„‘½ÇÞsR‚]ä£x<ß'a-õË„.$J#ý`õÓÇg—Î4öï§¥wõ§0 *pÚöz:§¹•tåcwÓûö&ŒZAJ¬î:eC¸aÇ>¯µÂ®Æ6­õuÒó*ıSxÂv7;ÙÑe[/8eŸìkÁK–?Þ5e,/ù¬Dð¤',¸U¡L-/q-Í]*æ¹}»²w2m¶8ת‘,õß±€ØDÛ˜·Û•ÒÇÍJ-AÝîÂ"'yãy>Åt–œ_ý)£v’‚:È]q7ÖYìök8ËçÅí9R¼O§$Íà}©ÈIÜ•–Φ²¸9.‰Y½ÑN )Éøį̀õÚ½r9“QÜG­NxvÛ i²ó5MOò&{¬"¹°ˆgy÷¬÷±ó ñS¥>žíôkÅ¥¿…û^¼²+>]¼<ÿdWÔž âd×PU`ý¦Ž÷‘MEÂ*¼3ô‘2ÍP ´†ùìðÉáû"no_•0$Ÿ;—dMÁHp d“U7Y¥ÈîW±°ý „Ë'‚Ž{÷‹îg™ý"œQÀ_쥠É.2]0_¬i£_@”Ôíï¬Ðs²Ì©ììi7^1Œ{ÝP²Éì9ÅãÚßÝe ôðÍ-íÄcYÜžj2ÆsÞS‘Hë‹¢æå{­Sûcj®Ž›äѱ½¿1X³«¶ß$ß+¡Q—NƒùËú'£»0ãmÖopæô*õb:WõìÛ×µç97wáÆtwºU…ÐÁN7KùŒh퉨-—qÎMw(ˆDU$ó$bçĸ3_]zšÒ©@œ:…P{z‹¾q#ÈüˆóV¬ßPËF^ô\°ð;•› ¡yÄj4ªDrÑh2éB‡{̬eºF1ù€pîÉ^én߬†Õ¤(z„XŒœå}éùÕ=ø]øäàãþƒõ´Ãn9£"]µ€™D[ѹ¯®<Ö hâ³EjÕÌS I­|?n§PöÉž©¤JæÆcšôéX‹ áá4OºïSU¸‹l²Âí`>Ù_ü±æ NÄ)÷\šì?XÏ;«%:ÁžZ‰ãü¡‘îpÐ9'œ,Ð:µ<çÃ|^¦„ç9>>ªÅýøÁdCcko•ì’ì™ja/ žØôùû­– š¹_”9O¸÷OÚ½|ì+H…üT¿#›¤yªÄ_€§÷¼éÒ¾Fžø\#ð? :ߣ“_$ëkó§·š{?³‚fTзÂMú5Äå¸×oêáýzËE¤z¶*AGǰSgH'®ö‹ÃöÈŽ³õ¢ÉÇ ƒìû"»MìkÔùZm>b×8ËNDŸ'JϬxØž±`ÆH$ÇäûĨãWßn½¼hçqK/• gܶe…îï9¶f‰—w:9.Äé3²7rLçbq‡n^™mÈ$\§ãaø&D`¨e>ÎíC4ðü ð$RàóHVŽûº¤ðÌôôx³©7õßtnÏI¾/= õ‘vÛfÆj¤ß8çœ'Ó—@}’3+*»¾«YÁÉæªn¿•ÕÕ¶$þ˜Ë>jXEÜî¨õ¶yQˆLºkœ<™B4Ÿw$·ûr=õĬ|ߟ8þ|"S'Œ™ëê‘|9b±ì`?ÊúeÉshësxîé§<ýýCi?Ý{šn ræö’|—¹mÉv§4beù§jV³>Ÿèx_J…=>+ßvã`¼Í œ ^2Ãñ'p°³– šXܱ=—`žìr,OŸI%…§ìÓƒq÷<Ãn¥Éû" î`»áhU“¼˜é-V>W³Àó**UíäÙi»të`Ü=¿ÌIi¹\²¤—øbÛèåHŒð,½léðÜ>’§/§•½Àõ4Ý<w2×é°ænކŒn;Þ"§4”Ïí#[¸q)’¥ìã̓a¬†ØSKúø€öguÆM§ÃØkæÜõå§àÞ4²9eKv‰ìñú•ï»]0 Z×Ôâýc)ý­-ùt£`´±s‹)õz$y­o½E0X[_IIseˆÄ¯õÅ7Æ€µ÷ N¹%ûd*%)Õs­ï¾90ƽxHÖÝLœ· œñÑyBz³™l¸*ø'ÿøÜ£X'q÷F‡éth1§Šò促ƒ-`ORº~°mÑÈäT;}*ý¯Ò-Ñ?Oâ’Γûb®ê•~)£wÝ=†` Ø“½ ۨþù¾Ó#Èk¢òi'D+©¨àËÿOqWùäâaÑŸàgø­tK`´9MŒf+R‚ÓõJUó_!8¹%0î$9–Œdö-+vg¥¢Ÿå›/ ›cDfÊˇý¹dÒÃh­;ë2º)0î$?jRÉÄã‘bRòåú²ßI·Û Ì<×ý£¹i “Nú·ðý3t[`Üõ䘎䲸 ŒLëâuµ%ÕNô7Ðq—ð¹éu‘t©áÙÅÉkaqs`ܵý± Ü!½YØ}"®T6¹=0è^I2EMûp®‡Å ‚q·¬å]-OU%³¢šÕÆÖ_¡ã \È%¹¤«XÔwºI0€Èþðké­‚ñGè_0vè_0vè_0vèÿN‚Éâþ“ÆöIEND®B`‚ghemical-3.0.0/docs/user-docs/images/mainmenu.png0000644000175000017500000000130311563552731016631 00000000000000‰PNG  IHDRˆ!Ã'<´bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ  ƒpŽŽPIDATxœíÝQ®ª0€ábÜ ®Âõ¸JVQ–Óó§’)mé ü_rå6q¦`Fôv!„à2º®sÃÑu{:çÜ8ŽÙÁ%c×ñ˜ô}/†á¬X Lëþ\ Æqœ7¦Šà>ñ“÷ûíœû.€{J¶˜¦b¸'ZL-&€ˆ@tx‹éõz%ÿ–ã¤ÇgH½^Éö£b=;ç£åâß’Ÿõ9®æ?Y¶˜¶^Exï÷Æh¬Y‹Éj±7ÔjvSI‹BjMÁ{/¶¼Ö¶ÇÏ—×ZiñØ\>%í¸šm%q­4inœë'-¦½¤EYë™»[.þÔâ~dÎ%q­6GKÇpEsèûþëùö‡ÔÙ^É›[Z¦3{‹C.¦µ|JÆxï‹òo1?5gõ[ö«¥ã¸¢¹@ÄW ËbQËÂ8^lâE'µ]“¸ýRS4ŽÎ%÷ÚlSÛbÂ:éó’å¿;÷?— û°å'-¦½4,fÚ¬]Ñ”´i4 ö+`‹™ßbúåÝLWìu/çKk.\Uz©û-¦’[M-IåS2&W¸,²-ûõJÇ`‘ÚS¼8X_¤|rEboΩ×h©6Ç«€5]!L…Aº‹i÷ù|xsâT\-íL뾺@‡C[L%8¶>+Üó¡hëØµ¨™Cæ °ëÐ/ÊYX ,ĨsÜ-&¨DÚ㔈Ì|Qp.ZL-&€ˆ@D‹ š¿!„xîåp´ÞÚ{!JIEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_08.png0000644000175000017500000005423411563552731017160 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ  Žº® IDATxÚíy|EÚÇ«&C †ˆI ‡"A®D9"7¬® ˹(È rˆ"€€º*rEÜw¹A¹AÜ—r†5 D3aåáB’™©÷žéé{z&“0“ü¾Ÿ| §ºº»ººú×O?]U5™2 (-¤¥í6,õ€¯`2e¦¥ííÔ©›ä.6¶îͧPBa„Ù–ylI¶ ¢„#*¼J#„q’n—pŽSiš`ļSÙmòíÐmJ˜HÁ“HºÀ†7 À a’eF(“ø_´€¸€wší‰§B^”‹ÿ“n · x¯ÙNN¹6G;µ{Û¯òŒvî?ˆ;x¹ÄÛ„ÛæagŽÕ”PáU&0õá–ŸzJ…þMç;…Ï|ªøƒÉ×R›ÇnðF-g"Ùɸ¬ï£‚q¯ƒÉÍuEgLm{¸eÀ{%ÞÞµÝÞß‘ÊM|Je©ø ê3„‡G¢(Ã*Ϙ’ƒ_+ßÄ5q‡Ä@ß%†px’cY`ÉS5½Goè;ÀËeÈŜغÄ05i'Ä`±XæÍû :ºeƒÆýùçn…ÙlNI™Ý¼ùsM›6OM]É+Kxx$$ú(a˜è?û—T[ç%·ÌâÅKΟOßµkç©S'+T¨0wîóØ9¨b(;à1"ŸR¢ìÄÍÃá§áŒ!!!Û¶m •ì1$¤†ÉdŠŒ¬‹Ê…²—¬3ƒ]2]«º ÃàÁƒ¦N};+Ëd6[22.&$ŒãV¼òÊËӧϼzõÚýû÷gÏžÃ%^¾|•e”°Ð;3QF˜,Úžì©`;6¾U«V jРѸqovïÇ­ž0a|½zõââzÄÆ¶¯YÓf×3ºW¯¾ø e<žû¢J©hÌKà˜ªQšà⦣ð!»--mo§NÝ$w±±uoE· åg“‘~f•N&†ALà¥Öºê&O’e…¸€×Á”Už)ŽWO:ø°MwðR}gjæ9U6څ˘Ï¼*ëÌ.øEíV¥v½0?,wð^‰—ë:%„ © 8Âü°ÜÀë`²AIœ€3Þ —Í< Ù–;x·Ñ.]Á„3ÁL‘Â|wðNy§²Nîbß‹cЪÂãÀ˜–¶•ès‡<J)Ê㔨Pö©jˆlãС£Q…>Gvöo¨Jµ°3ñTíB g¢Á«”wΈ’ ð!žéËŸ;x”RJ(•ÇR%Œò305±ÇôයÃ-ãð¾PYŠ\Óù©gÐϼÏr—Åêà?¡r!©d@ªc&[,wð>Ë0¢ÜÆZ•q^AoHfû³õ„¸€7Úî*N) Zâ䟉¦…„å^+íbì®8-0¿¬*^ òrífj¿f…ô9𬠬©:çQgü˜%Âë8•Ì-#éEq‡¾|Ù4TÁ¦çUŸBÜ¡ï¯5܉Úð$ævÆu™”ÌÉý4üüs—ZPP0iRbÆMZ´h½lÙ ~_‹eÞ¼¢£[6hÐ8!aÜŸ>à…&5ue›6±Q¸Ðw€'u¦f_¤’Ù~å§rKóç/ÌÍÍ=räà·ßî>vìŸcñâ%çϧïÚµóÔ©“*T˜;w¿êܹs»w•uWú(F#^q‰ |íL*úv·Ì… ¸¥­[·Ïœ9=8¸ZppðŒÓùì6lJI™Q³fhåÊ•’’wïÞïz÷ÝwªU BÕ—0&S&*€2¢é’e&ù†*uAB1šÍn)''',¬6·Æg¼~ýZ§N]{¡Ž„„„à@ÙÅ€h⪾–H§¶á˜[¦FÙÙWêÔ‰ „\¹rE¨àÛ¶m EeCÙ%jºËèI#«R‘1ÏiŽÞ2ýû÷MI™}ëÖíÜÜ[ÉɳøôÁƒMúvV–Él¶dd\LH‡:‡²Š]Ú™š=Ï-xqŸ¸OœøfPPPÛ¶ÏwíúR›6­ùô±cã[µj5`À  ÷f÷îq¨u(; ¤¬vYèT>)õuçs@5Jii{‡ ‹G=àCv[ZÚ^aTdî..׺7ïc!jnÆd9£Y1Ÿ;x©ñ®hÈÛµœÚF01QNþ‘€ªà…Ò.ŸZ@ôÉÔ>å»HÖ= îà0$yœ=Æ›óöGÜ2à•ÒNµfàmwµG,wð Ûªÿ¤²õwðFe—ô€¤ÒyĨÔK#öÁCÜÀ ¡’Y!™TüEŽwaUȯÕv‡ÑN•Òl!©#r‡}¥Í¢ÇUð>“ìÒ~D>>•ñÞˆ;x©í®8H•‰ˆûCR†Þ2¾tPÆ”÷»HC2 ñkå}"]w¨ ôPÈ#í)ä‘>Ð[úðnmW7êzµsk˜ÄrW m6›SRf7oþ\Ó¦ÍSSWòâÉ«LZÚ]ºÄEF6ˆ‰i·nÝz\è; ¸UŸQB(ãü6jˆzì ed\ܵkçáÃû¯\ù±Ï*n2eòO˜0iâÄ é_~¹ñìÙs¨wè;ÀSÈf“MàN%«(¿‘¨‡ÀÞ¼yˬYɵjÕ LNž®xì *\¿~='çæSOÕzÿý¹¸%¦à ,˜çÄÑR˜Î˜ò^â™#›s¶´hÑ:77—ËtãFNDD„v –/_zð࡞={·mûüž={qI ìÏîÊÎu&ÊÇÛø|²‘¨‡À ©a2™"#ëjüÙg›}þy*!$-í‡É“§ÄÅuòmËk<¸¾5Æ´4Ìöå{‡<J½ˆ+A•ùå…?C‡ŽF=úÙÙ¿¡(õˆ¥œq]Ü…@RE %„#d¼[ÙÅ}Ú¥+”òÁç^m³õn3T}-ļ*Z¦ŠÒ.wÄ‹|î¨DðBË] ÝÌ&åL²CÍ'˼]å…¦:% ²ûGÂro‡ lvÊ´z@òEBÜÀkmvqtTÎ7ÃãQU»½3ˆ;x¡©.ïÀ.XñaàøŸ»oÀ­”Eó T߱ζ‚ ÕB˜ÑZèaq‡Aßu½+ÞægµT)Ì (|ËúðZ(!ÜÔ¾Îf cŒf`Vó#jͧŒ¢¢véwüø‰Í›·tìøbTTÃîÝ{ed\äÕdéÒeÑÑ­6l2yrbAA¢Êp?ùùµ‹eÞ¼¢£[6hÐ8!aÜŸ>Àµ‚¾\RwæÌ^ç²ùY-ÌÊYó ³B éégúöí3|øˆ}û¾_·nMzú™—^Š›2%‰ßæøñûö}søðþ7ræÏ_¤Q“)“û—[ „,^¼äüùô]»vž:u²B… sçÎÃ¥‚¾ôcïÃTlw.x*ó·T4?4ZÍüv†€€€×_ñàÁÃ9sfÕªU3 `Ô¨×ÏŸ?Ïo:sæŒàààêÕ«Ïœ9}Û¶m.kÆM))3jÖ ­\¹RRRâîÝ{p©Šÿì”ragŒ0B™x¶0±¬S«µœ%ßßü€2³Ð 7B!AAA\R@@€ÙláwVÛn0†çää¸T´ëׯuêÔÕQJq¹ ì=p£ÕêÏX¾Á`QÊãÇÌå óü˜Y6ë sÞÏ=;ûJ:„ììì5jØž F¿¼¼<î©pûömµmCBB¶mÛŠëe¸bµ3BˆŸÕ\ÑbÎ÷+g¡¼­nïɈYÊ>423oè;þ£:æ–INž•›{+77799¥_¿~\bãÆ—/OÍËË»víZRÒ4>s``àåË—ùŸƒš:õí¬,“ÙlÉȸ˜0— Êpб æ‚KÁ#¿r?áÔ\ǘ –üŠ…Ê.߃Óc´nݪK—¸ØØöÁÁÕ'NÏ%¾ÿþœ={¾mÒ¤Y¿~/ÇÄ´å33ºW¯¾ü¿±cã[µj5`À  ÷f÷îq¸fPv€SÊY•·ú•/4øq3DR{tTJ™¿%ßßüÐ QvÊg¢„ª­áá‘"-mï°añ¨|ÈnKKÛ+ŒŠÌÝÅUŸíP`¬X`ð©7c~֠懦äçG¨2¢Ëç „É7˜ÊN !ÌZÞœo´æ;QvÂ8}‡¸€×QhŠ3ó³–3?2²BÕ‡¢ùeq:Ÿ;|2𸠄Qf)g)0Z V‹“Îäâùa¹€7Ê:!ÌßüÈh)ôã>œR§².œ:>wð>žÈ¿o!Vʬ®üä3ð¹€Â7!;ÕÐ!ê!C©0|ļWäÝÎ qŸEÝkƒ`൲M]Þ¾ q/„ þÕÌes»3Ûð%{ºgÄÝWÂG Ì Ô=˜#V6sÌ0chŸüOÏîÝëäq©ÍÌüí¹çÚäççKÒïÝ»×­[÷»wïbL TAež¦Ô[†×>/,2²n«V-7múrÈAÂô5kÖEG7 DK”*«R[F4ŒÉàÔ¸NM]Ù¦MlDD!Äd21²Q£¦õê==xð0>0“ÓˆØf³9%evóæÏ5mÚ<5u%QЦŸŸ?eJRãÆÍ7n–”4MŒ›/Ã+¯üí«¯vðÅûã«-[¶½ÿ>ŸòÏŽIMýÌjµò)………ÿùϪѣG9-g»v/]ú…˰yónáâÅKíÚuÔ85IÀãz"ú ëÜç~îܹݻ¿ÎʺL1bäë¯8}úÇÓ§OÖ«W/9y¶$³ZDì ed\ܵkçáÃû¯\ùQЦýá‡ó¯_¿~ð`Úß›L¦ùóÊËðÆ }´˜×î>úøµ×†W©R…ÏÙ´iÓðððÝ»¿áS¶oÿªyóg##ë:-g‡í?Aùßÿþx÷Ý™yyy„cÇŽwìØhûV”œO†ÓuÊ`²'3}Tß}÷jÕláU÷íÛS¡B…*UªL™2ùСC’Ìj±7oÞ2kVr­Z5““§+hûö3fLç‚q§¤Ìܺu»¼ :´¯X1`ÇŽ¯ !¿ÿžõÃû‡&ÙOB˜eËVð?W¬øl̘x=åìСý±cǹçAùòþ_½‹÷ÚÍ`ßÂ*€’³Ö™B§î‡óAL!!!üò©S§çÌ™—ž~ááÇD)àµZDì7r"""´tóæÍðð0n9""âæÍÅ2¼ñFÂܹôîÝsÁ‚…ññ£¹8®BbbÚúùù9r466fÿþAAAÍ›?«§œ±±±Ó§Ï$„lݺí_ÿú`ùòÔW^yùôéÓóç@4ƒ} ‹5Ιº†9:LòËv\ë 9fL°aCNž<š•uù¿ÿ=Ï“? Nœ8Â9[L¦LÞSRÃd2iï¼zõêÙÙW¸e“ÉT½z Ål]»v)WÎøÁÿúñÇSƒÿ]1o¼/_ž:fÌhÅ'–¼œ•*U ÿúë]•+W~ñÅÎ<øî»ïëÔ©S±bES€â4ή¢’ÿÝ÷GòË—/_¾|ùìììÄÄ©ò j±_yååéÓg^½zíþýû³gÏá%Ñ´{÷î™’2› Æ=sfJß¾½•d”¾ñFÂ’%ËÆûg¹råótéòâÕ«W·lÙzëÖ-Îc®³œ;¶OI™Ý¯__BH¿~}§M›Áùdˆî`ßÂþjËà1Ë^ØO†Ú-£kâ>þ³f½÷ôÓM"Œ‹Í£{„ñõêÕ‹‹ëÛ¾fÍPû{€(švbâäààjíÚuh×®cÍš¡“'OT+†ŸŸ_ݺu^yåeÕó¥t̘øÉ“¹N2úËÙ¾}ûœœœ^½zBúöí}íÚ5^Üìðxe\ðC4U¸À(-ôóÏ3V¤EïÏnµZ##üþû¯%v’#FŒìÛ·ši_–A€l| µÙÕž‰‘+;St×0þj1øü ýü ¡˜òÂ…ÿÖ¨Q£d*ÂjµnذÑd2õîÝÍPF`r÷!¯ž”R+õd,o¥~ÜÓÀâÞ¿ÿ+II‰%s†uêÔ«]»öÒ¥‹ Ly({OmK¼®[©Áb0ü­†rŒËÀ(až³÷ë¯%ù ƒK (‹HzE2Â(5ÊÒrC9F©Ý oˇ`à;únvʨ¡€–+0BCU‰}X…¸€Oa¥~fC¹Bƒ¿ÕàG˜J4È_€ó³ûú•+ð+ψ§êܤv‡ µÏF@ awðnQ'ÄJVj´ü F¡±®® >wðn¬Ô`6”3ü-£Ý(W{0áZˆ;x£Án¥³Á¿ÐÏŸQ?&±Õ•ݧ𥹷¸§¦sÁ´0€¦À¯ü#c¥c€•™B0=%e§"ý/‹C Ö/'ßXÑÑ{ò¡¯U‹?Õ÷Ë—3ããÇ6kÖ"*ªa¯^}¹°^"¾/^6lD£FM5j:l؈‹/¹ºa¨X´!€B)µÅºfÄÞß‘ µ[l¹ þ4,÷¬,Ó«¯Œ‰‰Ù¿ÿ»Ÿ>?kVòŽ;½ä„ÿ=kÀ€Aݺu9yòØÉ“Ǻuë2`À ßÏBS”&˜Ô §TMÙUP÷ ÆÇ6lHPP¿¿ttóeË–(šºüOIhÉOÐÒkÖ¬‰iÙ {÷Þ?ÿœA”g Y¸pѨQ¯ô÷Ê•+W®\yР¿õú¢E)ƒ²té²èèV 6™<9Qq[ñ@já¿àñi¼À&Wûžªä“W÷ƒ÷éÓËÕ2H‚D j„–>tèÈ–-_¤§Ÿ‰‹ëÊEÿΖ”­ÿ¾Â”þýûUH BY·ý†¸—þ›MqCܺ ¸õ}ãÎS]†,Þ¸ójÒm}gʆºÌfgrKâc €bhrŒ±¯öÿçö_}—ÎCMº UtJäÞJå&c’•ŽÞ2……–…Ÿ§¥û¥b€ÿ«=¢Q¹^{³}¿ö Oím|Êæ¾]ŸéÓ€ûy#÷Ï„é›þïÃÁþåüCçAŸŒô—»ÏܼýçwkÞ((´|òŸýiÇ~!„¼ÛàŸCÚ—+çGÉ/0/X™vàĝܿË׿Êlµ²•_ÝýÃóƶ¨;idçŠü¹ÝNÑiÝW?æÞ~P7,xÊè.‘áÕ !'Îf-[wèÊÕ;ÁA•õmÙ«sS4_irÇÏd=Q% _·f{þ|âlV›æu´uú#7ÑíÿQ¡Ä3¹ü3å‘MËýß_»s?oýGÃWÎûû™Ÿÿ‡Ê- öûà~­Vo=ÉV«·žøËKÏVªè¯Ñ.þvcŜ߭yƒòù¦£7o?X³`èêùCþ¸q÷ß_³µ¥/Ž=Ì+Øðñð•óþ~.ñùÚí?^úíÆò÷l^úZyãŠõGøU§Ò³?žñÊW©£ž.òÃÔï¹Ä¹K¿þrÛ¯WÆ4ýå‹™7pé}¨Émßw¾_·g!}»6Ûöíy§:ýÑPxå5L6UŒCÜ÷¾”0¤}Õ'ª>0¤êÕkqÃŒê<èÉ—ÞªYx…òåÒŽþBùßõ»'Îfý%îYíÆ0fÐ U¸åïŽ^JÒ®êAÇ ë°ïð%[ þ2vð Uª>0vH{~Û]?\xch‡Õ*W¬à?r@ìÁ“—ùU^ëT£Zå åËý­W‹_³r¸Äòþ~¹·ÿ¼}ïaHp•I¯wÆ¥÷•&wõÆÝ‹™×;µm@éÓàbæõ«9÷´uú£©ïÌg€Ã-së5žà–ùP ”]q+^ß÷k™ºáH§˜úÿ÷å±½Z”÷7j7†àª•øåÛwÖ ä–k…Þ¾÷oKOV·mZ½ ŸÿæíÃßZãx­xŸ¨\Á.èF‹ÅÊ-'¿ÙcÕÖ“«¶ž,ïï÷Ï¡^h‰àMnû¾ô;÷ò^¾„OùjßùÑŸ×hZд[ß' ‡¸W ¬t5çÞSOB®Ý¼-5Ê®Ml‹Èqì³MG/ürmÊè..5† ÀŠ|¶«7î=Q‘O¿~ó^ÍéæÁU+.Nþkõ Ê:ËÖ0òÉ÷&õ"„œ8›õÁŠ}wŸhr…–½^»h¯ÑWsî%LßôWÚú—óSkZÐ%¨‚–óÎxÊÍ,¦¼ºeº<ß`Éšƒwïçݹ—·dõÔkYPvÎ|Ô¯Õú¯~ܯ•ÑèçRcèÔ¶þ’5ïÜË»s/oñêcmf;Ç4Xºömó5ùü½_|fþgi\¿k±X3³sg}òvÙÞûtOöÕÛf³Åje z\øÈkâÑK #ŸZß5k<Ñ nHÚ±KM ú£b³3U›5§;—ä÷᯴ ¬\aÀ¸ÿ{mêºfO?…z- ÊÎa0ÐÚ¡UãÚ=íjcxíÕ˜ªUOX5xªÕ*øk[.}Ä_ÛV(_ŽÛ¼IýP£Ÿ­™ý½ÏsÏ4¬9iÎÖîÿX:çÓ=íZEi¬mtÝwþµ³ûˆe+6~{," úF“Ûþí¹>]ž‘$öíò̶½ç5šôG—o† þU°ñÅIè‚ZšÈÎþÍùWß™¿óŘ¼ÝíYLÜNú૵‹†áê Éy[ÉÓÒö>öHL&SfZÚ^aTd®TÆç^RµÙ•~˘²ô£Öíûµo0ƾN»põÆÝN1õ={ÐOWú—Öf³eùºCíZ×ÃU H8ÜïÌ>ÁÓʉ)Ëøûõ‹ƒ‡ÖxbƸ—(¥ž=èS¡Ã&¯Î/0¿Ð2røË­qpqäkçÝe#³Ý/¦=÷ëtSBM IDATÚ¬_×f¨a<,ñN282anðV5gŠ¿©ù‡å¾e°k{ÛmYŒÞ%è†ë´€ ÐäJ T(溜2ÂE¸eÀ‹ væJ~'nðJ³]4C;UWzæÈ/°÷!´´½¨PD„£l@ÉYîº2BݧÄ>.â^ú:t4*8ÖŸÀ -yµ\ Nœb÷ððH“)×ç±W&nK|u‡Œæä1º>¨†‡»3Õ*”ÝãúŽJ¾ÒV¹¿Fš8ø—_~A¸e¶‹ìéz¸*îú€«¶É”yâÄј˜¶ãÆM@…¸«ïš«¨V^CddƒîÝ{ÿüs÷;-í‡.]â"#ÄÄ´[·n=/(Üs˜—˜ÔÔ•mÚÄFDDBL&Óˆ#5jZ¯ÞÓƒËÉÉ‘(Qxxäš5kcbÚIŽ ï tS¥J•øøQ—.ýB±X,óæ}ݲAƒÆ ãþüóߤW¯^ûüó¢¢véwüø‰Í›·tìøbTTÃîÝ{ed\ä²åççO™’Ô¸q³Æ›%%M+((¸sçNóæÏݽ{—?Ü;w¢£[ݽ{WíX¥Mú™Ö”P†ôô3qq]§r¿'L˜4qℌŒô/¿Üxöì9b÷®pÏa~³sçÎíÞýuVÖeBȈ#_}ÄéÓ?ž>}²^½zÉɳå‡9tèÈ–-_HŽ ï tsÿþý¥K—7iÒ˜²xñ’óçÓwíÚyêÔÉ *Ì;O ‡¾øbCzú™¾}û >bß¾ï×­[“ž~楗â¦LIâò|øáüëׯ<˜vàÀ÷&“iþü…U«VíÞ½ûúõùý¬]»¾_¿¾Ç*]f=S_Ǩɔ™——פI³ÌÌ_!mÛ>?zô¨nݺ>õT-¡š•=<<òÇ…„„Èw™——ó™3? · <{ö§   .,àž «}Ì «‹o§ $QkrÂæúä“OnÝúEíÚµcbÚ­YóQQQ„›7ovëÖãÔ©r}hذ‰¢\´j³iÓúºuëB._Î8pð‰G~ýõסCG<˜æççg6[Ú·ïôÅžzª–Ú±$xõ|î-âÔe]W¼l#!$ Àl¶p¿—/_úÑGŸ|ôÑÇ*THNž§Ü¹U¨ì§Nž3g^zú…‡B'å.•äXÀ½¦€J>ÑPc&Sö[oM¹p῵k×¾~ýZ§N]ù B¡ꃚ\ܼy3<<Œ[Žˆˆ¸y3‡R¯^½¨¨È={¾íÑ㥯¿ÞÕ²e Î*Õ8–¯Ûê„hõŠÔê ùì³Í>ÿ<•’–öÃäÉSÔÄ]Ș1 Ó¦½Ý±c‡Ê•+?xð°qãgв}]ÙÑJiDDøÇ/ìÑ£OllLHHȶm›CCCÝÛ[õêÕ³³¯Ô©A1™LÕ«×àÒ_{í‹/éÑã¥Ï?ÿ÷œ9³xë³(Çòvy×÷¨’ö–7îÍË—3 c‹™K ¼|ù²Ú.=Ê/_¾|ùòå³³³áO‡Í€ÐÐÐÖ­[mÛöÕàÁƒ¦N};+Ëd6[22.&$Œsi?½{÷LI™›{+77wæÌ”¾}{sé:´¿uëöªUk*UªÔ¤I.±ˆÇòrÃ]û‘ª*î;w1âõ† Ï™3ï£ÚmóѽzõUûŽ7þ³f½÷ôÓMÓ­ÙÛ”ýþýû3gΊmY¿Y³£G9räh1ÙûnlÂÿ=óLô¨Qc²³³q¹Kÿû€õë7ŽߪU«5hÐhܸ7»wsi'‰‰“ƒƒ«µkס]»Ž5k†Nž<‘?1bØŒÉññ£øÌE<–7êºÐÏÎ4æswd£°K j_·† >zôÈZµjݹs÷رcÿùÏêM›Ö{Ü-ãÆVü&Œ±ÜÜÜÏ>ûüÀC»v}…«éÓMÎWð™ªBeWu¸cÊ߲Ǒ#G“’¦†……ùùùWëÙ³¯ìò¾ÃüVˆG6ÈÇC¸ÔטRZ½zõ Æ_ºtI£lï¼óîÆ_ð[mذéwÞÅ%¥Æœõ!²)hTÜ2 ôѪUË)S’~üñ§JVÉûó«4:+Žl‡pµ¯qnî­?^Ü¢E´FÙ’“gl޼嫯vB¶oß±eËÖää¸Ä ,ɽvª}ä*…[¦ ¼#ß»woùòÔï¿O»|938¸Z÷î/M˜0¾J•*D¥ï0ï-QëD,ܹâÈ=}%núªU«nÞ¼±~ýúeËÍÍíÛ÷å=^Úµë›íÛ7ãÒÃ-SÝ2Ý.¦áQ*–{éç‰'žxë­I»wï¼xñªUÿ¾{÷^||·J±ï0߉˜"ìD|êÔéW^ùÛÓO7 lذÉíÛwËõ5æ5-Z´ÎÍÍUkÜÜ_zú™Ñ£G¾ûîLí²ÿõ¯//[¶bĈaPvPÚ}2_‹SegDø$€¸—!(¥õëן=;ùرã\ ×wØ.²Ž¾Ã<¯½öÏ?ÿ7!äóÏÿ=zôH.q̘„aÆœwÌʺÏœ+;aø  >©ñš÷”¿—/gÆÇmÖ¬ETTÃ^½ú~ýõ.\™’Ç›d—XÙðy(±}YÕ¥þÅÙÏ=+Ëôê«cbböïÿîçŸÏÏš•¼cÇN\ ’gìØ7ÌæÂ×þòKFZÚ¾>}z/Zô1Ê€·è’î1LŸåÎl__ D=qxxdjêÊ6mb#"¢$›+†H–°`ÁÂøøQÆ ò÷÷Žn¾lÙn•Z\æððÈÕ«×>ÿ|‡¨¨†]ºÄ?~bóæ-;¾Õ°{÷^]ʦVÈððÈ5kÖÆÄ´‹Œlн{ïŸÎàÒ &MJlذI‹­—-[Qj‰7ÈÖ([xxäҥˢ£[5lØdòäDaÙ/ŸÎfìRØn¼Ìr§:óÙÄ]#ñ¹sçvïþZCG1D²„ƒ÷éÓKñàq™:ôÅÒÓÏôíÛgøðûö}¿nÝšôô3/½7eJ’KÙ4 yèБ-[¾HO?ו71þÂÜÜÜ#G~ûíîcÇŽ•š&áͲ5ÊF9~üľ}ß>¼ÿÆœùói_>ÍØÕ°Ý<>)—Ûãšf»0#ÔdÊT dùãÇBBB´Ë ‘,$2²þ¥KF£ŸÒ-­—ùìÙŸ‚‚‚¸Ý6lØDø³I“f™™¿èϦVHÉæ|þÖ­c7mZ_§N!ä·ß~ïС³oMv5Êyà@w9238pÐñãG4.ŸÎf¬§T@?˜ò·ˆ¨ÎçÞ¼«’ÃEê£q¬¡L’f$ö@ÆŽu<2Ô”ýÔ©ÓsæÌKO¿ððáCÉ&Ó/èÖ­\Å=hÄeænZBH@@€ä§Ùlq)›F!óçää„…Õ¶ eX©i=\€ì·ÞšÄûõ×_—-KOX»vÑ »G—$²^}ív¥§l„þr„‡‡ ]Š—Og3ÖS*¼ &3éÕ¦üMl ®2&úB$·k÷¼ÚT§q™=‚Î8Î<5jÔàKuåÊ•RøžçŲåe#„ðeËÎήQÃI#Ñy87Z;¾ópÜŒâz c¢"YÈ›oŽ_²dùš5kïܹSPPpæÌÙøø±Ü*§q™=‚žB éß¿oJÊì[·nçæÞJNž%\åÓÁ—½9@¶FÙ!Éɳ¸²%'§ôë×Oû4u6cl± |ÐW]e º Q ‘,¤nÝ:7®=pàÐ /tlÔ虤¤i={öàV9ËìôRÈĉoµmû|×®/µiÓºÔ´o­Q6BHëÖ­ºt‰‹m\}âÄñÚ§©³»ÑÚxL"Ί’ ²K¥,@¶äó,ðNðAµˆ¨PíÂI´S]}%¦o¶ßÓ˜Ó.ï˜8 |Sö=d îÀ§^WQ ¨˜òTÒñQÜ2àC²Îi;SN‡¸€k¼ó~4 nðVÆå Dïdî„øÜÀK¡|OH¦¼Vݲ'„ÓÒö¢KC‡ŽF%PzìvF%z­(â ¿!„1¡Ô‹;žß èGÙ€’Ñvéeº¼2öN4ø  ‹甦ÁÏ>‚`l*Õ=`kˆ;nK€Wšî¼¼3e͘öv÷zôȬxÜn¤»l®Sf›õW¡Ï»-ÉÀ=xÃÂê*>‘îCéjÜ¿æÌY±±í##ë7kÖbôè1GŽõ]¥æÿžy&zÔ¨1ÙÙÙÚ›«Gx÷îoÚ´i¹]Ô:u"Z¶|î›o¼âûÑ£÷/SM`N2S“)“;’|#Ò}.]q0ê!Ã#"ÂGY«V­;wî;vì?ÿY½iÓzŸv­0Ærss?ûìóíÚõÕãrËŒóÏnݺöïß÷±×̶m_íÛ÷ÝâÅ•¼©.qËà~t/]X¥Ã†ÅŸí¬Sí%+ï–á£x$¤ûVºGŽMJšæçç\­gϼ²[,–yó>ˆŽnÙ Aã„„qþù€K/((˜4)±aÃ&-Z´^¶lï.ø øŸjû \³fmLL»ÈÈÝ»÷þùç .Ýl6§¤ÌnÞü¹¦M›§¦®ÔÞ‰"”ÒêÕ«O˜0þÒ¥KÚe“û:$gǧkœEjêÊ6mb#"¢$»:{ö\‹ÑÓÛ4bÄÈFšÖ«÷ôàÁÃrrrø=¬^½öùç;DE5ìÒ%îøñ›7oéØñŨ¨†Ý»÷Êȸ(/³b½åççO™’Ô¸q³Æ›%%M+((àÝ¢Eó3gÎzÃ÷£Gï_jû×înaÔù6\^£K/øÀiÕªå”)IÇmÔ¨Q¥J…«/^rþ|ú®];«T©2cFòܹóÞ{o!dþü…¹¹¹GŽ$„Mšô–ÓC¨í‡rèБ-[¾ |bŊϧîر²`Á¢ŒŒ‹»ví¬T©â‚9݉"¹¹·>ÿüßBmÕ‰ÚÙiàܹs»w]­ZdW999O>Âÿ1bdJÊÌ%K>),,œ?QròlÞ”>tèÐ_l ªúÙgŸ>¢cÇŽëÖ­ ªºbÅgS¦$mß¾E²gÅzûðÃùׯ_?x016~üÄùó&%MáòתUëÆ¥ACäòÍ-¬_¿NOþ ¯]»¢b‹sŸLŸByÛÜ‘.ZâÅŸ2Æp1J_«rïÞ½åËS¿ÿ>íòåÌààjÝ»¿4aÂø*UªBbbÚ­YóQQQ„›7ovëÖãÔ©„Ö­c7mZ_§N!ä·ß~ïС3ç¸x0øŸjû <{ö§   BH^^^“&Í23!„´i»nÝš¨(‘M­¶E{œ£jÕª›7o¬_¿¾FÙä jg§q?þx,$$D^· 4>{ö§€€ùª¼¼¼˜˜ΜùI^ 6Q¬aQ3´j³iÓúºuëB._Î8pð‰G¸Ã6mÚüâÅ %ï–A\ qOL|G;óªUË!w‡[†)Á¦J³+ª¥Ÿ'žxâ­·&½õÖ$ÆØ¯¿þºlYj||ÂÚµ«!ׯ_ëÔ©«Ð×Á¤aaµívY˜ÓC¨í‡Â)!$ Àl¶pË7näDDDè߉^ÁïÝ»·zõÚwß¹aÃZ—*Díì4  ¨ì„5jܸ‘ÃP=uêôœ9óÒÓ/<|øP£ÔªEˆb†›7o†‡Û qófŸÿêÕ«!!5ÐÚ}ÅäÒ “ :ÛðêAÜË”ÒúõëϞܴis^³¶mÛ*׬ìì+œm{åŠÃ¦0ýòòò8yº}û¶Pû÷£FHH “ÉYWœèÚNžx≑#_[´ècí²)*²âÙ¹ZBH³fÏüôÓ)^ÜÇŒI˜6ííŽ;T®\ùÁƒ‡?ãÙ+X½zu¾ä&“©zu‡šŸ:uæÙgŸE#/0‰N•­váä˜8¬,ðê«wîüúæÍ›‹åÚµk~8?:Ú&:õí¬,“ÙlÉȸ˜0ŽKïß¿oJÊì[·nçæÞJNv8¾7n¼|yj^^Þµk×’’¦ñéjûQã•W^ž>}æÕ«×îß¿?{ö÷vrÿþýÔÔ•¼oG­lrÔÎÎÕBºv}qïÞoùŸå—/_¾|ùòÙÙÙ‰‰S=~){÷î™’2;7÷VnnîÌ™)}ûöæWíÚµ»K—ýWjËÀû]0=˜DË)Q™<ŒO¸—~&LÿÕW;;uêZ¿þÓ}úüåÞ½{K—.æVߪU«5hÐhܸ7»wãÒ'N|3((¨mÛç»v}©M›Öü®ÞΞ=ß6iÒ¬_¿—cbÚòéjûÑ(R½zõââzÄÆ¶¯Y3Ô¥ðýÜ[·Ž9vìø§Ÿ~¢]69jgçêYBºwéøñ&“‰û9þ³f½÷ôÓM¢]÷HLœ\­]»íÚu¬Y3tòä‰\úï¿g<ùãK/a¤¨·S”‡+³ùbÔÃ2 ?§†ª¥Šb ºTÄú¥›O?]zöì¹+–>Æ2ŒÝü±L?€ª·!÷A•ÿÉ+»ðnJKÛ«üAµYgm<•Šm~øÜ( c{ïÌ6ÀU›Ý]kÉÙïÌî¯!„àƒ*”îª9Õ˜g€JŸ2áOøÜA1µK€Ð¹$è=Ã();ƒ¸€·B¥ÝåzoŸ˜ÀžÂr¯6Ø5œì\¿Êx³H³RøÜ øXµjy‘ä]aYlÇ3¡/âÅ…Ó~¢jêÏO&QrJÝ)!Œ1YUL?ÅNQFŸ0‰ß©÷2 îàP»‚;fñågf„RF¸éÝÕb¨¢AAmäw§[ùôÓ¥#GÆ—@9uòú룗,Á˜&Ÿ‡ ¤šQÑ÷UÊ©<÷5•µèwPF5Ý#x6@¶GÎÈ{‚eƒ¢ª;#ŒÆä ÎÔ²sÃTú¹— »øÊãÙÙ:Ñ>#¯ – ܆ª›òjù©Û–»Zð„ÇÅܹsû÷ïÏ-÷ë×oÞ¼yhŠŒû†Ù\¸qãÚ_~ÉHKÛ×§Oo~t_ÄdÊ4™2³².§¥}Ywôè„ÇX˜o¿ý..ÎëæbìٳǾ}ß¡å—u§Tyîv&í)É™ø„B™í—¯Zî>\´hÑ¿þõ/îç¿þõ¯… æåå¡IÈA€lɶÅ [í|ÕʦXzÊ£½¹÷ËEqË0{?Gf®D´%^báûª¸oÞ¼¹}ûö\¸KBH½zõbcc·nÝŠ&!‡ ýã?=xðP²Š }êÔÉ *Ìk{ûáCHûíîcÇŽ9=„Ú~ˆ=Ðszú™¸¸®|ü >@öáÃû¯\ùŸÓ(’›{ëã%@¶äì4 ÀÈÎʺ,Ù•$@¶Úùª¡XzÊ£½ùc – <®ñŒ9ñÉpŸVn_Ä´cÇŽ~ýú Sþú×¿îØ±mAΊK#"Âß}wFtt˘˜RRfß¿Ÿ[µaæ””5k†V®\)))q÷î=\úÖ­ÛgΜ\-88xÆŒéN¡¶BÈܹ³kÖ ­X±âèÑ#/\¸`6o™5+¹V­šÉÉÓîDbörÑÑ-W¯^ûÞ{)®VˆÚÙiàÝwß©V-HñBAñ|Õm…zÐSíÍcÞæDîî‚xz’@ÙÔÞg† õ\lÉ!íÛ·ß°aŸ”]«V­»wïæççÿãÿ¨T©Rhhè‡~(lÐ , 3 „G92000000>>>??ŸË–——7tèP~s¾µY,–¤¤¤Š+0€Jé²eËêÔ©ãïïߢE‹sçÎqé»wïnÚ´©¿¿:uV¬°½DŸw“)3=ýÌèÑ#ß}w¦«¢ [±Ú²…)N#_ Q¬ý¢¶9‚e—jÑWH`ÂUL îï¼óάY³¬V+—”’’2~üøÀÀÀéÓ§çääüþûïçÎûᇄûûñÇOŸ>Ím2mÚ´?þøã—_~¹téRffæôéÓíÆÎ»÷îÝËÊÊ:wîÜømçÌ™óÓO?:uêúõëS¦LáW}÷Ýw‡º}ûv¿~ý^ýu.qèСÉÉÉ÷ïß?pàÀÉ“'¹Äk×®ÕªUKX¤°°°«W¯âÚkÀÈ>vì8¯Y'Náå’w;p!¤¹ey€lnY [q?jp²e‰®í„ ýÓO§´Ë¦¨ÈŠgçjˆ=@¶Ólêõ¦PúË£¶9‚e—†»U6ñ€l®æ˜’)Ì4f „ÄÅÅUªTiãÆ„_ýõ›o¾yã7!k×®]´hQ5BBB-Z$öZί^½:·¼~ýúE‹…„„<ù䓟|òÉÚµkí/•,XP½zõ… òÛ®\¹òã?®]»v•*UæÍ›·eË~Õ²eËj×®]©R¥É“'Ÿ>}š·€þøãëׯ‡‡‡§¦¦ª½ãUT È–P|²ÕP+›b=è/Úæ–]úTžJ=6L0e˜¸¤ÄçþÎ;襤¤X­Ö3f$&&V¬X‘³ŽëÖ­Ëeà8jÖ¬)xy¼ik%QQQׯ_çkþ±N:|þÿýï5¢”RJCCC…_~‚ƒƒ¹…Š+šÍf»cqó·ß~ûÜsÏ…‡‡oÛ¶K •ØéW®\– ð @¶„â ­†ZÙëAy7G°ìR¬òÇ SrÔPÆOÌ}‹eìÙgŸíÙ³ç† .^¼èïïO©]»ö?üP¯^=΢¯_¿>—Yb5?õÔSû÷ïç²]ºt©sçÎÜ«îSO=uðàAN÷…›‡‡‡=zô©§ž’; „»•Ûæ»wï1b§é¯¾újŸ>}̯]·nÝŽ;Ö¯__–/?d—<Þ [H ËF€lÛP [­•d?ÓQªåöyÛ·À”ûÐð“Íx%}çwæÍ›7mÚ4NÙ !ƒ š8qâÍ›7srr&L˜ V¸¿ýío'NÌÉɹqãÆøñãÈ¥0`Ò¤IÜæ'NäóÇÇÇ5êòåËf³ùüùó Ю©Aƒ]¼x±  Àjµòæ|ïÞ½·oß.Ìöå—_öîÝ[øl@#%@BÂïQvBHjê²SvPÜ0)£^èŸ bòóó«_¿þ°aÃø”äääàààðððgžy¦}ûöj‡ï½÷jÔ¨U¯^½ÚµkÏšesbΚ5«R¥JÜæ111åÊ•ãÒ§Nú /¼øâ‹+V4hÐ_þòíÓëÙ³gïÞ½+Uª4eÊ”5kÖp‰/¿üò23mæä¯¿þzøða~À*øº¬3Ã:Bè1ùˆ&fï ÉXu¸e!}úô8p ow{–ŒŒŒ=zðZìæÎ{òäIî{lÿþýÛ´i3uêT¼â®% Ü2Åä–ñ³»e(?¯€°Û#‘u}·ýp¤ !V«õ³Ï>ËÌÌüÛßþæÙ“œ0aÂôéÓ Þzë­—_~Ù³;OJJâ—16Pš°k:e’^æ™DámÊnŸó !~~~uêÔÙ´i7(ɃԫWïé§Ÿ~øða¿~ýfΜ‰ zà¤Û†‰1¡°‹³qéRËÞHì“ ¸Nà†ñÎ…aŽ`bvcž÷­3¢Ðw†b>wðRã©NÆ”¬xIŸÄP/”v©®8÷€#ºªdRÛ2Ľô“–† < ¨tê„!¯ªÜ± -u‡À3âÞà îeôTE½l=)u¿#IDAThiéR2J(“8a?|úÆÞˆ;nK@‰¾……ÕÕsW ¾“Ú& „P~úå dÓ(ew};Þõâp¯ËêÚzÑØ×Áro|“fâ§|¢Š#^è½a°Ü äHKÛ«³ƒƒp 0&AdŽïw(9t{fT4f÷Àc0ɸ€·)»tTªÃœ·Ç̦Òì\F1ˆ J{¯IÍrÊ›ôÌÑ9’÷à sCÜ „pµŸ;UT{êèïhŸ+RÁ5· ”.õ†”t~´ýdŒÙ:Ľô“•ezõÕ111û÷÷óÏçgÍJÞ±c'ª€ÇBvöo®gö¡I6…g|l&&°ém9!îeˆ ÆÇ6lHPP¿¿ttóeË–p«,˼yDG·lРqB¸?ÿ|À[èkÖ¬‰iÙ {÷Þ?ÿœÁ›íáᑼý®±yjêÊ6mb#"¢Pÿ¸‰cî^Þ•#u(> ƒ÷éÓKqÕâÅKΟOßµkç©S'+T¨0wî<~Õ¡CG¶lù"=ýL\\×ÄÄ©„“)“û—[ÐÞüܹs»w•uõ€{ð)Ó›_¸q/ýܹs;8¸ºâª 6¥¤Ì¨Y3´råJII‰»wïáWÍ;»fÍЊ+Ž=òÂ… ®nþî»ïT«„Ê (f»½+ %ÒˆLŠ[ð_Y)!]!K?U«ݺ•"_uýúµNº:žüŽÙ IPMšÌf‹âž56W<@¿ÙÎÄJ/eFf³‹W1ˆ{é§]»çwìØùÚk#ä«BBB¶mÛêÞž‹¸9@Ó —мvÔ=AnLV6xóÍñK–,_³fí;w Μ9?–[5xð ©SßÎÊ2™Í–ŒŒ‹ ã´wxù²Ãîêæ—EÞÉZAxFí_])a÷2@ݺu6n\{àÀ¡^èØ¨Ñ3IIÓzöìÁ­;6¾U«V jРѸqovï§½«1cF÷êÕ—ï-ãêæ7 ÎežÉg£¡Œ1Ô]©A—@ “–¶qÕnÃõë×%&¾£}W¦¥í8pĵkW„)ÆÅû5i§&ô"ÉfŒBí³ç%€å>“ëâþ|§I · øŽ°Ëcb‹„~ˆ;x#Tö“3Ì©C虣s “æGWHðÛã—i¬‡¸€·‹9³9Ò¹y~Åæ<ÕÐq/7ÖErΘHÁÕ7ÁUðJìf;“+=S6ÝE¿!îà…F»Ôµ.ëá®úƒ½eÀ{5^K¿mÉLjîCÜAñÁOQ€È|<à–¶èÕÒ!ˆˆ(£ƒÁ›{33óìÙ²ï¿ÿá”)oÅÇBmàYÔg £„0éŒÀÔ± q/ýHbÝ1ƧÆÄ´õÈέVëêÕkgÌx÷³Ï>5êuƒŽ>ŠÛJW•®¡°ÜË*Ó§ÏlܸÑ_þÒŸûi2™fΜuôèÑÂBsÛ¶m.üW5!áá‘II‰+V¬|øðaïÞ=çÌ™íïï/ßÛ?ì¯V-høð¡_~¹ù‡tîÜ5 ϪUË=¤ìLyÜS5ò!îe‹¹s?¨V­Ú?þ1œO1bdJÊÌ%K>),,œ?QròìÅ‹?âV?~bß¾oc'¾5þ¢¤¤D¥¶»zذ!„aƬZµ ‧ó!;S¦eÁkZø÷2ÄG}òèÑ#‰FïÛg‹j]¡B…)S&ÇļÀ¯š9sFpp0!dæÌé’‹»Éd:{öÜòåK !}úôž3g^vvvXXªw£,Hlr¦°’j¸ä1BµÌ°råç¿ÿžµ`Á‡’ôS§NÏ™3/=ýÂlj8ÈuXXmn!<<<''G¾Ïի׿æÞª_¿‘0åí·§¢¶ð”ïÉîlDªt>• Ö­Ûpôèñ?|_¨ÝcÆ$ 6ääÉ£YY—ÿûßóÂaqÙÙWì Ùœ#^H~~þ—_n>|x¿É”Éý>¼ÿ‹/¾ÌÏÏG…à!e 6#”)Ûé’{÷2ÁÖ­ÛwìØùé§~òµå—/_¾|ùòÙÙÙ‰‰"£;9yVnî­ÜÜÜää”~ýúI6üê«Ï>ÛLè„ kÖ¬ÙŽ;QçHþéÛHAȹ‰" %T.ÿâü÷ÒϤI“>R¿~#Åæ5þ³f½÷ôÓM"éÙºu«.]âbcÛWŸ8q¼d·ÿùÏê!CK‡ ôŸÿ¬F ÁdÊT\Ö«ðLúmU“IÙ;Ÿ{éG{°R—./véò¢Pùå1cF£ú­çÎí{㛯kí€R­ïáá‘.ßÔ‰o])ÅUx<ö»^³]Aè™’¤K;MÂ-Þ •k½¸¤zßwXîÀC&À³HGŸ2çCÜÀg”]$ëz¸@qQ¤¹e¨N]ùáq€ba„DOï̽mîÎ{¼Ž°°º¨Pò@CÔ¸víJ‘¥ÊûBªödŒPÇzXîxx-LÖcFQÙ™Hâ ¸—*:uê†J 4ê»î\‚¼ÆõëסòÀ#L˜X4oŒ‹½F?÷ÄÄwp=@›U«–9ò†gõ݉Eª —Ç-˜.ôœÏ¼¾ãŒ+½"1· ¸Œî9Ù="íbQ§wðm}gv5H¼>ûâ¥íMKÛ«½ (µúΘ4p£.íâî½têÔtª¶ xŒ”Ää©®Ì)|@Ü¡ì¯TvÊôù×™b zËx/ÂNWjË€Rm³3=™#6ÁrE4UÆf|XÓµ0¢ëèÁ›&^eÊ?lŒŽÀ51Ø©©·d5–Äf¢íT[ö…Ý"Aoðk]j—k¬`Z6=€ÇˆßÓm,r5ͧLžN M5A•‚Gµí˜J²‰Ÿ.Tû„QB¡TøBí‘•öcÏGE§L¥/'TR'TòŠc_Ç(!„R•G'_ñ\Tóü¨Ò•QÊ¢\¹ºŸ»Tiº8÷áÈJe¯LÏ>©.ÃB­QÁeaòc1BH9f-O¬*»Hž†RéefŒš 5ƒ™P«Òe3@Ì”GÄϬÔIÊÕp"R'¦¸Æé1UŠê£šjyzä¥/¢/žŠ÷âŽv0å;K§ ÍÃ’bëš`!ÔB¨•rŠŸxJ ÎZ§âŸ~6û]ß't¦nD(wHÑ]•ÌMsÓåwEù3Ì}Ÿbw¡ç¼øZLtÏ2ϸ—Uïlª/OùsÄ—Ìàùheö±gÎ ³™=TývŒa„2›k†I®ŽPÓ•ƒ2åpUŒÙBÕ2ÎWWŸ2¥™€ûOÒb°º˜«W•‰ê‰ÅKÈ\nÚTåiÊaÌJH3üÉüò‰ÁÊŠÞÂcjâGXµ‰ÅùC™©h¢b=Û£10=I6¤nÞÐLGµ1i[VzÉˤÑ"™»&×/¯ b‹ Ášç冠»Ñ‡ÖÞ–ühÕ.7k-£AÜS]Ë~wzDA»o†ª›¶²W6ÞoîðzQªh h~OÙ¬ 9™´ T¡2d¦¼§Œ8Óp\¸Ô®©ÒóÇíÛÇYç}]7¦gn]Fˆ…P3¡„P?igÅdž?Æ(1Xi«Z¥(ÞmLûk¨ú-ÈÔ_ØÄï³Ê-SA›¨VOñÃD´Šè8Ò)ÞzM(ݽE0˜\œ ¸™E«?U\ÒÇšÆ{ XâšOy[w`ñØÇ‚Rx×1S{ˤLRl¦æ°`Âÿµ/sÑü×JgžPE¦û¢SiÍ _‘ä%*&yUß­•ò™á‘•šUlZôVîªýn Äì¯=c+%Î]ûJÍŽ•×?¦,TûáêS«1fÏÿ’0JXñW¶ÓÆÎ´ˆÊ>¢27îæþKOÑ6P¹^L­· Õje”ºåsú¢í¬aSAwE'‡¡Ò!¬Ta5Õ|­`ŠŸR4½ÿTì÷±——*vѬæ¤Ò¨¤£&s¯¦øKsQ´Vðf¤ýòA‹AQe›Z¨ÁL©•8ß÷c7á)%~„hõÜ`êoÇ.~`u㋟Ç÷Ðâì›è’À º(+tõÀ4o¾H1\xlƒ {¦v;šÌfzÛuþ¼bjoŠ”ëAe^s¥7Ta÷J…þh æ(å·Ê-Ç”^@$½•˜XÃ)cº_ú˜ê7 áG*LÁßéFb®Ú âr0ÁÔ½v«æÕý.+|…$´ò™¡˜Åêü»Iqê#„P«?µÈv/½Ö‚ÚdL4©Ö uVN/cŽ[[R‹òWm^¾)S¸dÌ©[§Øž ¶ÛOða =éÂ×Z”+é²T¹‘37î¹±½$) õ£!² \µ©Ë~UªçÅ_dø††I;=ª¿hRÑä%º|˜T­ï–¨S"6Buž†Ë6²+Ãä“´¸Ñd„]Üô¤b™º`¿{Xd­„ZH |oÚÇØÆ0J˜Åµž×z:ñ«ÍÀDíXgo:W̳WÊs;_À’rë3¥·jíJõÌè4'ggw]%â{™jx¨Ó_¢þuTmŽ2ª2–Iç°ié‡{¦<Ý–$?•Ê¢þò⩨ŠÔ….z¢¾ðLo]3wž»n ´Ï!IŸM§¥xN*ÝþŠv÷Q 1X(%|‡ÅÇ¡E”?J(!æ"}T-¢'…zèTJÞÉ"iLÁb`ÅZ•4ªæ:(šûEa#×>G4úëx¥DüY§x#NÞPeG’}ÑeöŽÇTqræRÛ¦Òn±Zï‹¶PÁYP—ª›J?ØRõ7`wª–)8U˜N_†Z6ær£ ÚÊîæË,#ÄÂè#fxÈüò‰ÁÂO_ Jˆ?µV JÜ+Ä%R¢êL•§*î;_85Óúòì±+ÊÄ>J¦ÿÖqz"ÔÕ*¾qm´­ØrwÛú£Ši¼ÍQgÎ)-7ª÷ÀŠ/Tõ|T5Ôqºv•Ÿ“º¯QT_ÔåË®gP ¼/¸î¨‘ èb.Í‹DÕ_Du Ú’¯“~´P0£ëÄ!B+žÐ’6â9ûÝ@˜PKÉÞ ‘ØãÊæ7EZÌ¥!úÂ_”w Á¶ÔÛÍèFõkYÔ:¦ÎrãD‹2½›J'Kå'˜`Èš3å÷Ec„¦0ŽÚë%³ ¨Ÿ-Õ:Uêd€¨ô0LÏYëjäj]o™Û¯ŸLkŽSêtoEÕB)cĨ•øæÏMàÚT ž°ß £Ô˜¡°8az³Ž«MPÀdÆ„MñÕÍu'Ó.¦y†¬hïÚ]¥uë¼ ¬¡0‡¹:àÈ…×Q'æÕýÕ‰êÒ]BµCÅOLi5SY%SÛôÃÂÙ¨ºûD²ŠIüÀÔ…ÂkmâÆ”úZf¸ÌÇé©¡O#n¨ÎÞ“Ô­[Ù…Cr½´1:äÜ•w#aV{7ÒRl‹©ú lJÔ–p™=iHÙpû3#öÏKsá!%­}F å\ÚŒ:{xS᫾¬ÿ‘aT‡ì0G'¦­ Ti’7¦4A%ä ³÷¹’}wˆ¿Â³‘*> ©’“Ši[š#ž¨Þ¦«·Å«f.v¤Õ6¾ÔÞOÚ1R¼ˆ_¨•GÌÇ \ %§ƒ¦ÕÆÂ¹Ž%ˆÕȘá1ŽÖô *J†0òuÆ_,*¸­¥Ã©£»ªÚL/n*¾âà+&]`*%G‡ZIq¨ÒüTÔåÓúÜõôwÑoóø&ª1=&¥šr§ðr¡eJ:éõE%¶¼ ë¥+}M(uÇu±óŒ y]Õéúu×íÑ5É4Ó[„×fFˆ™P ¡ŒéîQC]T¥üJŒ„3S‘µR²F«+o"Lq ßûêÎCªÃP¼3|Ò"µw'ÕE]k¢F*©vV´©*Ó(Mè*ê⣯+»P¥ô}>Vªðx”Žò »@ä ‘ž„ø%PxPǸÊÿIKÄÔ:t ËÏWF(7"• ?D8³º•OW2öÂ}k\a$:-šÍë‘ÐeÔÍ{“hLCÁT¦…Ö9ñµúˆ1¿Fͪ¨³þeŠÖ½šoˆ£•çºÐˆÚ‹âmLó…‰ ªBw«ÑnjŒI+YØ‡Š»mDñÌøáÊTé†á»)P]jéþ󉹿âÐ6ª˜Ž·gWg`²N¨âÐ0Wo(Û™r>wëIÁúÑ=3¥N®Ÿ¢éçd¦wóš9'~¸PþkŽdÄUy~1¢üTNî/üºÏT‚~±âX€”)z4½ÏLkô?Q9°Œ%ªü¨fj–šK敎® ZÍFáü©ªMÄ¿Ûⵚ‰Ą́Á>tYÕÍÇ”Ÿê{•|¼ð£¤œM5eí* ËV|gb*÷/U #OÄq$ø¨CJ÷¯|ö ¦$EœšÄÃÓ(i¶Ëå6uÑJËÃ,êÔí*gʈDÜU|Òø¡®^:æ²—F_|'gúÎD¦º[['Ñ—”g$vH…ô ›ÊC¥êsC0Ç„–ºÞõ©~5.òýDÞ%ù÷)J‹¼CWíz @íPRŽD+¡fb`„aÂiötv2Ð~¤ËL).´“‘³K^=Êû¦™ÊK¦fQ©3ëÍ3í¤¸HÅà¿ñ¬g‹y°ÀJ»d{ý¦‰RÏ0H*IEND®B`‚ghemical-3.0.0/docs/user-docs/images/esp-plane_select.png0000644000175000017500000002377211563552731020261 00000000000000‰PNG  IHDR™«êhbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒܦˆ[ IDATxœíÝ_¨$×açñß -8=Ð 3pFà1dL2ƒ2B/¾A“ÀŽñ‹†e$î’‡D ;Ò‹w”@V±²`iXÈb-lðìÂü |ý²H]=ˆÜÀõ€÷‚º`.TfNWß¾¥úÛU§ëO?0Ìí®êªÓÿê×çOÕÙ“ôD80$½öˆ‹è£Aô‡yxÔd9=cfè÷š. ¿€3ƒüUú#üÚõ­í‹æG ;¶ylvëø°S!cÉÌ>ØÚþÂé³[Û€ÍmûØ íÎña§BFÚ7@9ÜØ©éCsYðO/K’¼¼ÙŠílSËÜ5u¼ÆmzŸŠ–…æ2w ™èÍlãIsÙ¹6ŠŠVPMðO/ËûÁ›«ÿ£ûê²íÏVϧoÍeyÏ¿Ì{´þºfÝ—¦‘©Zèhý,iÛjÃ?-`“~u­ß·þ¸¬/TÒã³ö•öwÞ6’žW¼œI·Ë®›wà(ò\Šü¢Í[gÓ×¹èóÌÛNÖóJÚVeÎE?§yŸÏ´õ²¾Em6m86´Môú%oг·2i‹ÿq¡ ÍeI_¤¢Ï;ë œ´½²ûZ\Õm$­›t»èºi²¸YÏ«¬*¯sÑçY䵎ÿÐÈ[?é9¬ÿíú;Wåó^tÛëoºí¶5—Õñã¡è¥¼m¬¿¶›”©pÈÔYýªÃ&ûkcsÙúóÈ;Ào*Ú^ÞvºÔ„–$-hŠ>¯2Ï?þ¾mS•ÚJRÓÒ¦Û©ú9Í þ"Û¬ëùHíl.sÑ”¹‰ª5æ^tü—ùïR•8þëqý¾²šþ ·]¯OÖ¶ÒÆm×…rîÒ±a› ‡L[寫ÌYålCsYžõ_wÑíªâUÞ:«ÞHïKØTÑ׺Ì~ën*+û9­ûóS÷ói[s™Ôž`N*G™×zë5™´ªí&²O¾ÍeUÂ$ïC¸¾í¬>‹MöYGçlÝòúdŠ>¾îu7åâ‡Æ6ú>³ÄŸSR“Ù¶›Ê¤ö5—µáû$]üNu¦ã_ªgTLÞ¯¶´í5]%ŽÿŒîKZ'ïñIÍaëÛ+²¯:ÊÛ¤´þ¤u¢¿«îgý¾¤eIëVÝG‘õ«n(«È¾íŸŸuMêVÇʤ÷¸l°ïIz¢×~¹'u¡¹,Òä¯Í.‹p£¿,ml.ë3û ÿEµ±¹,I[Úb»€ AÚÖ\Ö';2RûßXšåt©9íÖöcCWíTs`{.4—m»ªè?[“À¦_8ó{’ôäÉ=yòDïüã;M—Ðq뙲ªÉÌ~7k²L€‰2…æ2€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ 6yÐ;?}§îr­öÂ_hº@'m2’tçÅ;u–h­½½½¦‹tÖÆ!#I³‡³ºÊ´Òáû‡Mè4údÎ2g€3„ À™JÿÛòÌô™Äû?}ºZžô7 YI™ÁA¨@;õ¢¹,­¦-‹þa·ñ9¶¯!“&j:‹þq€”ý£@½:Ó\?0ÐD†*è»¶£3!³é_­HCÐîu&d6ÅAiølîõºO&ŽZ " °½®ÉÄ;û9°@âslS'B&ï °¾<¾.Dø,Û·SÍe€íj}M&o>ƒç¶T@Y­™¼8™8 Ú«õ!Cˆ@wÑ'p†8CÈœ!dÎ2g€3„ ÀBàLgB&šŸ½ì<íu\ÞŸ)`3­?ã_JžÁY ±Kî£ñ@2 i´AgšËʨ£VC§ßÚ0/¤ock0Æ6‘yËÿͲóßcŽF’1öÙY„»ÞØÝlð¹ë:Q“Yïø_¿/myÚ$k½¼m´±i›iãûhk*’hUƒYÌ"´¡bŒ4Û,דñ$.£å €Q†òÒKé­E“Ï èHÈHù†¬`)º¢Û@7µù}ô$–ßF³ÖD¶ ˜áØÖ\’.-ƒæË@:[6ùs™P6˜–¿fŒ]4¨3!ô™HZHhÕÇF}1ÆHÃeSÙ•‰ýßéÌHO…Ò|. ½U_M¸°Á2¡ƒh}Ⱦ˜¹üàùƒ-•pã%c쉖æbgþþr™Œgk+W&˾˜eMf(éщ¤ñ²éÌÈœù«AÆÝ^„z@Ø A­™;/ÞÉ\>{8ÛRIG¢&®0¼ÐTF·%.’­ÑD5ß·ÏççË—£Ï¢¾é2p€¦´>dôYÕX·#¯†-K68$ûm]®·º!Éólà,›Ú¢íh 0Œ ëåf Kü0T8æË@˜/B…{©-d›Â¡íÄ_„¶‰Ì÷%.-B…i!…gç}2$!½KSFÈ »¿° cJÒÀ^›lUƒ‘lÐ|Øp9 ¥Gs) ž…2‹Pahk.Q@… )h};vC æ²M[Q_ÊhÙôFÓ5V¸ðeF²5Ï“Ï%Iþ#_æl.?]¶¬ÓT†¨2y#¿ãK R¸¼eŸJ°v)™ÐŸËŒÆ .‡/û¶‰, eÂ@~h×?]„ Œ š:ýÑ•B&oäÐu÷ß¾¿•ý²5™‰±× Îûj‚è¼™G'2Ë&5cŒíƒ‘ä/é4  ¤Ó0Ô| ½Ë‰˜hJ!ÃÈ/ ^/¤ki¾vÞŒö*ËÑ%cÌÀÈ÷ýUßM4H 0Fþ2`i*CKÐ'´À=ctGÒ¾1zýÌ·’-ûf¼e_¿ü?\û?HÁòÿõ€áL´£Ë€¸9Ðò ÿP/Gš-l¿æÆèDÒ| H ×o/$¹^@À …¨É {Ã=»:úhµìæs75¾<¶“•$éè訑ruêDÈHù†´åñ0Êû»Èí¼eE÷ƒíjòõ¿õ§·4ýúTZHÞSžf³™>ü¿®–OŸžj:*<³}5}t¡) èª^6—Õ‰&1Ôazuºú;ýËñ¿¬nß|_›®fºœÏçzð¿l½Œ€ ­¯É¾˜¹üàù§ûÏkŠòÜþÞmMžžH²}-§§§úð×絘o|ý—MeÿŽ ú£õ!sçÅ;™Ë·14Á‚²n>wS’4¾4–ÿÈžç´¸ØsëÛ·´¿¿¿ê‹ñÏü Cš®k}Èl#D€:|ë@Ø«*›‘Ú³ö½ícÑÂN™<¾2ÖÍ?¾©ý¡&W'¶³ÌÙ Ð-­  n}û– —e°Œ‡c»`9£ådhÏ‘¤à,P8 uý›×5}Úž˜5£þ*»yèB¨èÖ·oÉ &—'¶&3ˆ®ž,;eòÐNHf†vâ1cÌ*pVßÀ@}Áè2 ‚ƒçdŒÑxdk.fyyþ"ÿGc}ô›ì™ý§§†4}Q©&“7ò 賃ç4Ž4¾<¶Me˾-+2cï¼É,ÇcA°ªÙh(5Öñ'Çš}Fß#ú©RÈäüºîþÛ÷ï¿ùÜM[¹<¶üëMd’½>™lÓY¸W×+ó<ÏŽ2‹šÒ–ý8“ÉDGâ ôO¥aäv•÷”§ÑhtaYÔ6¾t±él4­N´ ÃÐ~ëK2ËÑfÃñy Ð3ôÉ0&Ö¹¿¬ÉD5˜Ñh$3´5ÏxçMjËëE5ñp¬ët}ëÏpÑe@·¿w{f`äûþÅaʲÁÕl,yU£160ÆcÛD¶yߎB[ÞŽ–¯šÌ¢¾›ÑH×þðÚÖŸà5 ˆ…4æòžò4æ«&°õ-µÐ…QcZØNoèÙK^…|¬¶-Iá"Ôñ'\S’î¾vWžçi4­j{'_œèÍÿÊL¡]CÈA`‡/ƒ!< å]ö.4•ÉÓ*hÂ0”wɳ×ÞjôX¸8eæ=å­F‹`çG˜ÝûÛ{2ÆØ`^öicV×v›?žëÆ¿¹¡ùÙ\'''zý¿¼Þt‘Q@'B&iNWFfæJ¤ñ}_§NmçÚë…k'VI­Ágýÿq 30:9;‘dç‰ ÃPÁ™½s4Cf†ööóŸa³îýèžö/ïkru² 30«#Ôh4²)žÖ*p´^ÿ;‚¦í:2Rö”Ê€k|øÁ…&¯¨CÿBS™l '4¡æþ2@Ö¯U¶æþ\á"<¯Ù,Ï›Y¿o×ÜûÑ=.4¹:ÑäÊd5*Ï3ž‚E ÏØ¾+oè­‚Ý£ïÞþ®$‚¦í:2yÒ&‹Â(ZžVI÷Ý&A×Yïuž£/žóoÊ÷}y—½ó¾™3{©=²¿¼ç‹ùê)IAh›ÄN¾8±—ý? í<2ËšM|»àîkw54½:µµ—è<¢¡}ÝÆæüÄÖõ>0oäiîÏõ?ûŽÂ0Ô›?¦¯¦­z2ñƒ}Öí¬¿7Ý&º¥Ž÷Î?ó5¾2¶¿´žü3ÿüÌþ¡$ßgöÏü 5™èÿl9‘Yhûx¢ógvÉÝ×îjrebçÔ¹2^]AÁžŸo´D¡ØÕ¬ÏB/Ûúîíï2-Ö™‰‡@™ƒD‘uãÓ,×±M´WÕ 9þäø|èòÐ6í¬Å·Mfz|>ÊLZk[«Á„‹Pþ#'ç‘ñžò4Ù_6‘ ϛȤ‹Á²nuÿò„X342¡Ñ/©?9ø“-–Eu&dⵈ¸2Q”‹m¢=ªÍÑo¤oJšØÛž±£Å¢_ÚÆ,„kóÇ„g¶O'w;`^ú/­NX]¸:´çE5šÌ£Ór½pJ£óAhŸÎ„̺¤þ5 j+ýVÇû{ôÛ#é$M¤ÐØ€ |Û„6?³}2«1—McóÐýG¾¦¿?ÕõÇ×ívvÈ…Y×®ýÕh ™–Aœòžòò×G#zyÆÿ&5¼ÇP«é—:@}|¤““;´ùÌŽ›ŸÙ Îa`G›-;ûµ°sðüö÷÷5Nk+KgÄj,«QxËÿËX\öédM&.ÞŸRôu߯&ÛDû¹x/>>ÒÑÇGöJÊk—ž G«0Oæ'ºqý†F£‘ý彜_fry¢›ÏÝÜ©™1£ ‰æÙ‰Î?]•ÞN°°ç%ýüÁÏWÚÑ™¤ƒBü¾´GÞzYMnE·‰nØÆû†|í¯É Ìêþõó@¢KÐLžžhêOõ¡v#dîüû;òžòVW±þÊ5àÊXؾÿ‘ÏF[ª—Íe@[r|!xNNNtúù©${©I6h®Ntð­ƒ&Џu÷ÿû}mB ¾ ¾rÉ\k£õÂ…=ñ5 C}çϾã¨Ä¨¢õ5™Ã÷³GÞ<¿_LôÇ¿þpuNÈøÊxu­³ñ¥±0¿¾'eú¾¿ºÊAèÙÿ½áòÄÖ¬ÍÚµáÌÀž‡.BF—µXëCæÎ‹w2—34ºf6›­fÎôžòìÅ7Ÿòìµ»žžìDÈÌÏæòù /‡ Ájâ¶ÉåÉjxÑx4¶W¶œ_)Á?óσf!Í>Ÿi>ŸëôôTþƒ?oò© ÿ@Ž?9–ïûš}6[HÍ”9ýÚt'Üû¾N>;ÑÉé‰|ß×Ïÿ×ÏutttaÎè<ú`ÎBÍ>Ÿ)< mÀ|Ÿ€i3BhÈá¯54_uZA`ŒÇÚ¿º¯kÐÿ©˜ßüñ›:>>ÖÉç'v²åDe’í·™ûs|~¢ù£¹fg:9=ÑìáLó/æš}6#`: RsÙÑoúßA ¸4ûl¦ñh¬ñ¥ñªoFi²?уÏoHz¥é":÷Ö?¼¥—þò%M§S™¡ÑäòDþ™o/ÍÎWW¨¾ Îk6g!MdQ¹Oæö÷n×Q uöööôÎOßqº£ßi<_mvïoïÊ $-eÌ…á}§ehƒ·þá-ÝúÓ[šý¿™ÞûÅ{zå¯^±= 5ûl&30öR= éèèHoý··š.2 ª¥ãŸ‘è›÷~ñÞÖö5ÿb®Ùç3ݸ~Coü½ ˜p!s 0œIêÈÜ|î¦FCÛTfFoüý’¤ñ; ó¿ù@þùAÃ¥Ä&]4ìèã#ÿë-½÷‹[ç³ü_ƒg¥ÁËҢߓryžg/û¿>-BêÕÿüj©íÜý›»«Ç2‘Y;2@ „áë2Ão(\\[»ü½–·ŸUxÖï¦1FãáøüjÌÑù09^þO/ÛfFϳÓ ¤ñh¬ ô“ü‰|ßWòù4±5¤S!ã]ºxIïàqð•åñûŠ,+³ÿªÛ@{ýìþìÂí¨?Æu¿Ì¹@ÒÏR–m« í²ÉkœÙï¨í_Þ·w>½Í÷±ÿ^øá …×íLÈ$àËô ‘w#`×ííí•Z¿!“&Áã 5|¢åiÛX¯¥=~}Ytßúv’öƒö*ú~q)# YÞ‹“ôîdÌ(¢Ê['¾^Ú²èÀ´0yûA;ñ~ÛÓ‰šLu×*ŠlšL÷d5µ¦ýZ‹O+Áz¬·‹ë•µ'éÉ“'O4ûÝL‡ïê…ÿ˜ß¡óÎOßÑïèÁ??ÐíïÝv~žLÑý¤&±¤eI¿dÓ¶‘UšËº%ë}—lÇVŸL¼múµ)ë±ÞN­wøþa¡NÿõLé]M¦¨:‚¡H0¡½ÒÞ³¢}2¬Çz»¸^Yè“Ië÷Èêô/#ë1Yý:è.~ÛÑ™šLRÐd8K[ž´­õõ²–IÉþ°º…÷ ؞΄Œ”pˆÛt[YáT¦ßHVóYÚ²¬õòÖêP)dæþ¼õ_L Íâý2YùM—e!TàZ¥a‚'ôÉý·ïo}ŸñZÐ7•B†É€úDý#Ô.Ð'œñtDVM‡ZÚŠ!Ì@GdK[¶~Òã× !Iüx@ÄÿÎzLZ€½Ÿ‚ 4—œ!dÎ2g:Õ'SæÄµmaÈ)¤ëLȤ]lj<´W'B&-L6¹`Þ5’†æ­ßnZùЬ¢‚<úÍÑ6Šì„N„LE/¸~ ©z±À¢Á…v)ò¾,Ø{{{]«²7!“'íüƒ´uÐoE‚† ó«Êt.;2ÛÂå=ºƒš&à!S3ZÝÁ{¸×‰ódâ×_ŠÔ]k(²½2û¤VÓ^mï’—ø/k¼ÇW-P·ÎÔd’‚¦î ¹È`R9¢f.FØ mz_‚ÇAê2ï’÷•åñûò–MëLÈHù‡"úyªn£M0\Ô‡÷¦j€D!ÕZòB.i¿yÛH{vS§BØ%Eà¬õÚNZÍ'~Öí¬íQ³BëCæðýÃÜuž?ØBI€ú%õƒ$5‡©5$-ORÇ:Šj}ÈÜyñNî:uL݇¦tOуuZM!íñ›„OÞ6\?ýÔú©#@€.ªÒÔTWßÍúímíýÒ‰!Ìê³Íšµ´¾&ôYVŸÌzÇ|YEÄ÷Ý.ÒWÃè2¬#d€†T퀯rOzlü¾´ÛE×$šË2g`‡Ð”…m£OHQe !$ØÛÛkº@/t"dò&—ŠO—÷Ø4e¯PÇ$XÛ˜H+me§Ÿî«ëÿöúÎ>w K‘Ë|Åu"d¤ìc\|½¬æúýU¬}:0õé¹hÎNtü§MzVDô¸õÇ?3}fõ/iݼõÒ–m²¯¤Ç$Ý^—5'N™çRäù—}ú¥35™èÀ˜Tóp}€ÊjF*ÒôTtñ瘷¯m5iUÝo[ž€íÛ‰šLUyÕ¹ým<®.Y_&8š~ÜéLMFºX›iò×oÑšSSM@E^›²¯eÕçBsX}úXókrÀK´,IVrÖ²øò]Ö©iƒ¼¾‹uÛü¹Þ"!”U¾ph»¢#XÓî+3àh—t®¹l“ƒiÞì¬0jêWþ¦Á´^Þø6Šl“ZUeàH‘m¤ $IÚFÞ~ò¶™7¨#k¿iû):P¤Èš>¦tE/k2YÕÚªâýiÕ¤õŠ,“¾: èópU›)[Ž*OøÐ† ÛT×àˆøà˜²ƒKòÊVfPGÖßiÛ/³Í2û(+þ¢¸N„LÒ<ívÝç¹¹¯È98E—Õ±í2ª–£èº›ìÇõ€‹]àâ5,³"ëf ©ºÿ2ûÈëW‰VÒêåì£N„ ŠÙµ_û]׿,e˜.š£Êl³®ý— ™×'‹©IÓø¦÷îª:PÃÅç®éýÇñýÚ\ç:þÛªé`ÓûÇfê¬ÅÔñ‹¾‰¡ê›4c•]—Á&Í¡&´PÑÁIú.öS÷ã³Ê]f›EØTí“Izdî¼x's9S@@{µ>dè®ÎŒ.t!p†8CÈœ!dÎ2g€3­?Oè«´ëƒe]Õ8ïŠÇ®.ÕÒ¥iËL޶­ ä¶qêïméTȸœ³ª¬kÕrÞóÎÛ~W»xEì²ï[Þ|2»ø¶Ý®¿' ™"_¸>*ú¼Ó^‹m]B½ïïC[ÔõK?m{E¯Œœ¶^ô9Œ×&òö—÷¼ŠÔHŠlgIÛ.2µôúó.ûz”]Öf™´hÑ7!þ¦—©>ÝfZ9£åE?dñǦ=ﺛ²^›"e/úº¥-Kzv«Y,óŽiëÙF™m¦}®ª<§¤ZÑçQdÛE߇¬çYõµ*[–¦u"dЍòÁw¹Í¤ƒ´‹KÒ—))“ÔýAßdug—äõ«ÄžY´<‹×{“mùœVÝNÒ¦²Û®ºnÛèšÞ„Lž¶|™Ú(ëy¸~Ž}y 7Uôù§…tÚãÛÔYgx¸ú1’öz¹ªMnóqMÛ™I“÷ámÓ›÷årýE,£M¯[WUyÛÞM—%þ}Hú~ù¡UÇw*«Y9OÓ¯ã¦8O&GÔ”ýkº,]9x·éuCºmž²š²òùñT÷ó)²=W¯aÖv»r:R“ɪe¸êÏH²íÚAÚ/®¬rlR‹qý¼²¶ßt«iY}2I?*ª¾Vñm&}¶òöUt½2û«òª®íÙvÕ}&½ñ~ÉõeYëŠN„Œ”ÿ…sñ&”Ýf‘ƒiÙm¦=ï:ÎEÛë8åmc—B§ÈótÑ_¶É6ã÷—éØ.º¿*¯GÞvŠ–¿Ž}æí+ë¶‹÷»i ©Ø¹Èýe¾U¿te×-Z†*êMöQf[yë•}­t}2gT¶KM\Ê!dv\]}W„8Ó©Ž`ß?lº@oT ¾Œè£;/Þiº@+Ýû~éÇl2{{{›>h¥w~úŽ$iöpÖpI€þبOæ…¾Pw9=DÇ?ÀBà !p†8CÈœádL !YsÉ}|‘õ«^[®MS9KÅžO^™]ÏqÄõüÎ2@ƒÚ>ŸŽËÉ]©Zæ6?·.¢¹ h‘¤Iêž™>³ú—%i½èïø}E·—7§PRYÓö]¦,ëëæ=Ÿ¢eNzLÖ¾óʘ¶,¯Œ»†š ÐbñƒfÚA4m½ø,ªE··òç•%iÝ:g…Í*K•ò×=sm×Q“àŒ‹iëR÷ö •dÔd€–+ÚìR÷zÛЦ²¤éBÛŒZ®îë6ýânSYÒt¡ŒmFsÐ"ymùÛ¬Õdu–WÙç&e)*«ÌI#ÎÊÊz 5ždÔd€åÏ?h¦PÞzñNé¼í¥m7þ˜õåiø¢Û®ë¡¼2'­·ÉëZô5ßu„ ЪÍ[E;Õ«t¾Y?~à-³ßMÊ\¤üEË\u[EË¿Ëh.8CÈÀM\õ#d`‰€©!p†8Ãè2 æðýæ‹ô!¬ÙÛÛkº@¯Ð\,½ðÚ.Ð;„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dÎ2g€3„ ÀBà !p†8CÈœ!dάBæðýÃ&Ëè‘(Sö$=i¶(€¾¢¹ àÌ@’ôÚ/. oF¿zk2’Ìã&Ëè¡ó™}Ðd9=ôÿ¸#Q{ t„EIEND®B`‚ghemical-3.0.0/docs/user-docs/images/energy_vs_torsion2.png0000644000175000017500000013314711563552731020674 00000000000000‰PNG  IHDRóxþòšbKGDÿÿÿ ½§“ pHYs''* ‘OtIMEÒ  tì}¢ IDATxœì½y˜]U•7ü[kís‡ªLE‚ˆb-­˜TÒ€„ Èd†¿û{´»E@Ã&a”A €ÚÝ ¾ŸíÛ¯"C‹Ì 2BH*a´AE" IUªî½çìõþ±Ï9wß±nU*!‘û{êÉsrîÖžÖ^{­µ×!Äÿ:(‡2 @È€iœ”¼B-€›>×-!ÍÞRÀP"²G°µ6íl OhB37Y9m×,—ê6’%H<šé¿¸œ¦I9I«Ó~K¤Ï1»QÀ§Ó=“²K¬R®HSo+«CR)j9{-‘•YØ-@n i“äjNDª–(no+åUFI¨–w©¸7“Téê‰WYò<ñ^“.*Óæ÷[ƒg·PWÅZ¨IÜD|a¬6]k~JAéž_þôî;o–¦u€PØÅKOýì®NÖ¶K—.MÙ¥@TÉY(ï6ç=Ž5yîe÷X;žÔ‚‰”•@šÌø¸k,"ªâøÄ p\/)MÖ<'é’b%«µ+ë– Q2_ýÑ•šQŒóZг³²·É•w2VQÀêX^šÉb«Þíãf–w1Kô¹ÌÑ*w xÝz˜Ï\©ÁœVןJ€ª7û]íšK "²ˆ\Ÿxcí—\Íc‰SUu¬LàOo›fOy|ºòý6&]]ÑW®±DÄÉj×äG@Ò›žì@`…­ØÿÀ Kà´ßë1t­icm{Éëv±„õƒÒÝ*™óÕ}˜Žií®Ðˆ%)3<®Gµ),ÑPškÂ켟Ҷ$ý£u“!î² ømdHúË_‰ Pn£›•m%˜ô=PÙÿŽÛ¤ÏË)S餪±¾Ô‚X¬–Kü,¶"%p¹AªZ>O0B¦þß½ú–*/Y:‚2û éT¬wÞy'R-Š+÷®»îºò²+9Jž~î™xCSVtM¶UÔ‚1G³êI´±Œé¶gr¯õV>ÔH˜¾B’^XËD®³«eJ))òþMÒ¤+¹‚¯K.¯NMä2ÇVڈȣÓ*ØM¢ 曬•ZyJšA±L¤is“÷>;§:…“ÖRLåÞKêU¸‚­Ëé½I‹ªùoµ,¯.…ÅÙã¬äZÙ«ê¸KÃõ¤Y²j‰šì0”&(í.õ%E˜cÀ½Œ¼~Öä_"w¨°¤Õ²›õw\Žåß„TË pücÕ¹3¥Gýþ¡ ®”Žù§¢r'«‚Ý6™þ˜žá"oòTÉÈN˜ð÷!o?ñZçý¿æ4ƒ˜ÃzZ$E²åû­LÎU¨˜}L4– °~ÿP½ÝˆH+v¾žÐµÊS´zE‘õæƒã'M×´QÉšª0bzœôÁçK^!T Êy×­wß}wú«0cÆ fn”¥îÒe¹çž{Zgú3fÌ ¤±úñ£Ž:jΜ9R¡÷¬¯™yaé—…ò!ÞÑ ÀuxòœNý2õ©¼—èFHüÌi›!Òx­‚ªP(sºù+jÇ |²®‚õ¦lUÇdŽÿ릕“!+ÃÛÌJÉœŽÅô”øê‰îÖ¶›`ʉkc<‘7I︓•IIàvRJØY¹-)Éð˜E-ܹ¤6®2•ñ…,@)â>÷ÇŽHã=T)¡ÜQEÞœ©žÉú7aÀÂåJZãäò¤¯\Jë1Žr+Sy¿ª9ÉCÉc(Ž~o×I[ wç mCÒ¨äüa• VJ´jþtRµ§xŸ¤XHð‰LúSýÉ)^?€l²Í“ŒÉºqbIYˆ7waU®˜?ñ9¦J‘j-j8äÅ*Iå:Šéôž=§M[îæ°¿FPSx"÷`ï ZÖîÕ%‰“Iž¶¥BþÓxÄ+O® ñ8²Pa¯o½s§2bQw~K¸è¢‹jz¦-Z4uêÔÅ‹)Ë.»ìâT)­dQÕ^xaêÔ©/,YäÚXÁÙïºë®=vÛ}PóϳÏ=“¶ˆLÀ‘/5U°eÀ;aYUb%e PX‚±0PEB%P `¬æÔ ˜KªJ± (ng&€J‚‚@9„#t›¼…‰à1 – Ú›­ËÄ–¥ŽdùW*|ÊìÖBPA¸p¤Š ^9é´ãŠù]YŒ¦µ%¿øbK]Ú"BÈdU#âÈm4Î4B•X5«X¾WwËØß“kdº€ ÀN‹!qš2aLP&B¦«Yr‡3µ[Ñ"(Rˆ…Q”T!cy‚”Ôp-`•­³•¸áDP±Ä C°Œ€H H!‘2"'ÇY0Àj0ELëXíˆ;Š”"F1]ðž,Jnú)1”•I<}nÊU•IÅ™âÌnò;íVº`H(9·ÖÚx<DJ#nB,Hj¥$›œ'ü ²,#+¡P‰)J6À R€””)d” 3)!ˆÔi{,ÃÊ …DP¬€­œɱҗý©bzļڱºr¯’rņlu«ÄmÇž¶6m`…ìâN8~9̬5PIUl5Í©h‹7 âG7ÿ)%RA9•B ÉÖPQõ¢E‹êVçãÞ{ï:uê YREU]–tPÒ,u¥ûºµTËì]tQs ªSC/Y²n´˜˜Y•ËÛ\|©ÙJÜ‹$TøÝïNû»íÏRõêë}rû›¥7ß<íSŸ: Àk¯}ÿ“Ÿ¼Áj‡zFTMz?î.fèϯ¼véßþÝ÷üîk¯]êkŸþÔw-„zYµâåüí§¾gmÞïAÇ©cís²ê(µºV)¦P¨Oxáw—-¿uû‰×Xt%öæb=õ`¥RÖ¬ëœYÖ’Z@8"]/²~ÙÒóS&9eç¹D$Ú»xñeÝ;Í‹´€"ò•*¾ÞÙ”Ïò±Ó­%0Ù%/|}êÔëBÛÒX9·WËVVŠÏª¯^¸ð‚Ïî:/ÒŽT•#R hÕs /Œ»îv½ÕNM7×Ò¥RdêgZ¿ð™ópBéçv¿€ ÿ©g¾û¹Ý¯´š·”'”2ôÞSO¿ë7+p‰°þé§ÎNyÅî{^i‘” ÷/|òÔ½ö:§ Ÿ(éÀñ¾~FßÓOœ·ï>ßðøãsÓ~¶ŠØkŸ#ä­Š/–%[Jå;p ¼½!í¯øUùœWæw ÀULŠ yä”ý¾ðïɆ]³»{$!YüåiCa@«yð\G̺&Ôœ+„Ãa€5=x. tе¢LŒÒƒ÷Ïv4pÈU%l¥dª{Â+ÎÜ5ô$ݲéµêÈ]V€x:eM”‚”ØÆâ3/kWéÍd-EéûAO¢•Ôúº„ ¤r”ey¬I†Ã­Z‰ I«îLU\¸ÞÞY1𱂱žî¥îÁ´¶ÿýÐevÂÓÏ=“üÇ2C„Ô1Š  ¢#¤*;;š1ÒËŒLæ/Ö–&î0ÇÈX¢d3«Tb°DÐT²Di"«* EŠem†ßc†˜à×^½tò¤#›!ξúÚ5'o5ÿòʹ@#QHž4D!£„¦º§Œj–H…ú@‘…@™ˆ¬È[z–_0cUÝJŽˆú™¢TîH•z¾†R@ Q,DW‰É²ª¥x† È ÀZ¿dÉù»ìr.È’B‘Y²dî.S¿+`F&XÚˆˆb‘À("‚U°cÁÚ²vÅÉ}l5 wŸvyÆ(C¬ZQµC*„,¢P$ªDT ¨Wb"¨³"Æf¥E /Ü}YV»Ó© ·GX°jž`…û V5k!VÅiuˆlÀO=yÞž{^àjQ˜§Ÿ¾dŸ½æ2ú…ðÜ3çî¾×U¡f*4@ŒÀØÖPߟ³Ï¾B#ל§Ÿ¾tϽ¯‚æ˜"f<óÔUÓö¾Úa!ŒHÐÿÔãç `¤×õ÷~Ó¿ŠL¤9æ¼Â× Ti–¹<ñ’‰È"À(6yŽÈÍy"¨ˆâÎWK`„j‰H@¡ÁúC¾FÌ…‰ ìÈEŽ«$õ‹¥lÊn `D?pîá‡}Ëj y肃¹¶ˆ¬Â‘}ø¾sg~Ž™¼ôî±0÷ß7ûð#æ ŒÒC\~Àa?>[yˆP»ÍXÏúJÉY³~b;+Q­OZì"{,± €:KišÆ&òBªJWMí«û µîüäŽGJ\Å+ýVÄô¨F áxí¸³Oý]¶^½Ôä¿»îºkÝ\Ï?ÿ|íK'Å_|ñÅ‹-ò+:uêœ9sf̘Q›¾bÿ9ꨣú‹…b±P,Š…zÏýÅwÞ9¦ VKbI Rxów³2Ù?‰D ¿ûí©™Ìï3™ÿyóÍÙÙìÿ¼ùæ™o¾9;—y'›}ïõ׿̈́߾~[¬{õõ‹M°îõ׿-„×^ýÿ±È˜b.Xõúë§¿öÚi¿}ý´ŒùK&XdÖI°úõ×NíÕ ƒ`3ÄXRqŽd[åñ SdÎMš|E÷”YVAbŒab2¦˜ V½öò¹à­W^>=¼• Þzuåé¹`•1Eý/¯<£#xùÕgä3og3o½²òÔlðžH8;y§«þ~§S#€M Â"lL1¼·bù+—Ÿ– ÞêYvj.óv>óöŠe§æ‚·V,;uå²S³Á{FB2»¿€Ä FEˆ ‰ˆ²Q˜áš¶déù»M;×JWˆ—ð‰Û~v×[!£È dÌ_–-=õ¥%³²ÁªÀ²Áª—–ÌzqÉiK—Ì 2k‚ÌšlæÏKŸÚ‘ýÓ‹‹OÍgþ˜ þ°ô…YÙà/)Æ>¿è[ôé͘÷_XtÊ’Eß\úü7³™Ul l A°jñÂY‹ÎZôÜ)Að¾1F€“!6dk‚þçÎÂÂgnd‰ >{ú¢§g=ÿì¬l°&JAпè™Y9óÆsÏœ“‰ €€%zêÉsöÝçBå®¶ i»ˆ>úù}nU3Šƒ Ó÷;çé'ÎC˜!=ñÄ9ûM¿ÐÒ¸?ZÄG"·ï¾<ùø9n&¸™È@ÀýbB16™‘ÀX†å !,ä…ü•qÖt$HÿØPüÀ`ŠÿDÊRʙտyôD#…ÀóÁšßwù{œýÜsW°ç^³>{ã®{Ü€Æ ýO_ düüÇ¿³ï¾°†D…§Ÿ¼v÷½of²Lxê©ë?¿÷w™Ç¥r“¹á˪æ%â°‚"³:6d )€âýÞ£‘Í):€z ½‚°ubáœü›ù·ìsÀÕ¤ }øü<ïᇮ¡Ø[™u`² ÑØ(dI•zò²DÈÉq˜„ ‚ FB h=c'#Ÿ©`Pæá/;ì°K„ú™ðÀƒrø\#Á}¿>gæ¡ç+óý|÷ð@àÁûΞyÄ·#æ×÷_0sÆ¥¬B¸ï×̘q£ðëû/?äð„±>!ÖZǯmޱ uÍÐÌ™—Þ{ïÁGͼ2¬"P†µ{îšsÄÑßã Ë“—ã³£ª²“† D`%KN×L`Åü4fp”x ÕsônƉ¨Ê‡Çé÷e‡Š_&2EúFºuÿlºòx •p.a‰`ÎD`h|{aCPöfnÙéÅ‘ñüóÏïºë®Ó¦MsªDx¤gwU’!bgORˆPb…ƒv>ƒ»ç‚?Jôg%0l¤  %(wFñ›QqGAÄŒÀôGè U"YK$ Xo1vÊŽß\²ä&–¬;J² öç&ˆ!¶n  •=7܈1«b§]®°fk LÝõ$2¤ ˜€’b—]ÿ…D,°ÓÔË!]Ĭ·v4(>²XwsÉ0ÀÒQÔñ;O»rñóç:b]v» ´áUĤ®r €¹˜Á{ÄëYa¨æ#í5Ç,±¯H|ô‡ˆˆ2¡øüÓ§¸e³ç^ç2‡ LÛóJÈø Þƒ“£©HŒŒˆ· ‘P¨ŠÏíyxköÞ÷4§ ‰÷†‘H0@€ÊØY…ì±ï­,Y¢âžû]id£ Á˜~·±¤F3‰(Ïm$9Ã!–Æ)Ù€VC€‰_Øÿ[*Û(fe×n’ˆ(1Âß<úu׺ü#´@Dã÷?àúóO?øÀ …®ª 3Ü“éܯ D€J„@ú¤ÄA9¯®É &,xøL·¸Ý=ƒ½%Ò¼Ó Y£A¿áçN"[Ä8‹ÄN£`b¢ŽLHˆ˜œ#&j)†”UµB¤ŸHCà°#®¸‹¸èúDI?r¤ƒi½%IÎõœQêŠù²œ­ðð™ßw½@ ¬ÚÔþ!`ׇ6q["Ce½Ò]¿<ÿÈ/^\¢.Ýs÷¹GñJÑHÉféý_üböÌcnޤ 0>L|rb^-ñ2gAÙÉs2Kcæ"Ž6¶T£ž?Xü ¨^Êךœ6ÄVZ’R <½¼²°sĦ8oJƒŸ¾†Îj;&Û« ³(m(gOá+^…U*𔿔};žî’=ÿüóMö†áëÙ]¡ÌÄ HãÓ Œó„#ˆ$îíÒ €Ä ÉP€%ëŠt g‹«±zlñ‹? -œÍE 1J €ó¤V$  ,ˆ¢Äý‹$ÑY ) iâÎGDBñáT9ON©gâñCΜI’‹ÓÒáÚˆµ¬ ÅË ªñ\&3iÔ‘Dˆ3€eذ¤þL}êéócGŸÿüMPçË®"CÁн÷šcdÝ¿¹V¸ßMM¥N""^gdˆ‰<öÄm  ¥¸9QÒ K`fr>&™èBJh§"$Ǿˆ¼`ÁÅ”lïFb[—;ê¨eA9 gbwÊqŸ˜¡ÄJ  KQŽ`è­Ý6̆YÐCžËX÷ЃW\@lJëÓÁ‡Ì}ô‘K=èL8ìf‚(»»° ÇX2‡ú‡œ{ðá—þêWçzØu$âÙà°Ã/p,ÕµC0ƒîûï39QàFÀÁGüˆ¼ÕÎ3Žüþ}÷>óÈËuÏw?ò 2[‘FîýÕME@ÖÕH‘"É+2†tæÑß»çÞK”0cæ€Æ”»ÎÄ%Í;ó¢a("Î+!Ü5B¶‰Ã†£0±[%ˆ°$Šxwq”$pþc2Rü‹ÿ3û˜¸Ò¥š¡Ø³Õ_ãŽÝ:.í»ª€y¹ë¿É­ºJù·Ú|šÜ‡¨° úIê3ýD¸N[ ¤$΀Êq‡ Â–‹x%>Zå3™»HådiuÕh",»ó‰1ˆ[¸~: EMÝôƒ^ej¢ë7þ¸ IfwÃF¤"¤1³c„#p?œ…ÇÙA`03 ¹ggnvÌE ©zÔ=( Ž€]§žÙm#Í0õ u‚ú°X&pŸØDª¬1ÄÎVD„ˆ(áÂF­r:Aˆ¬Ç œ'A|ºdŽ…çFïV]*]ÆÂ¦%qζäÖ˜ÈèÃ!vîq³ÞœÁQ¼µ(A¡Á{ÝDŽLµ¬ÒÁ H5u'"ËŽ‹Tyeë6ª¸»ýŽr‘±À¾ûŸUÔ¨Œ‚‘QLýäwuÛ]WÛxÛs-…" Ê3ô7œ}ÀEv H<2;&f²Ö]e¥Øí'ý•Œ$Î8“¸AX”a5™ÄK¦ÂJ¢È»ëŽ’´Îˆ`ˆrVH$1V! 0;þÅ€3sÃñ}¸º$ˆFŠD€ÉÆZw‚"3>BŽ–XÁPãd1@ ä›ùï D¬d‰!™tD@–”¬fÝð&Œ6¬HH8òè ˜  ,yA¿[6æU™Ã¹…aï½{Ö?3—¦ãhÉdœñ4îO"ˆ!"v·LDD“›éâtÜ<&‚0«*C“™œ¬vc ë~úŸßþâq·¨t)Dœ'm]©9æ­Žq¨&[“yÅ÷[ó|~åŒÏ—«ÄrBF–¾Oor9¾\¾œ…ÄSÅ*ÈÆëDAˆ˜ÞaAëm ‹'AùÚG3Mà¸WêÉåôÍ. V\4ñ0$õKUF_¨O%÷ºæÖ˜_Bÿå/™Ïä²™L6“ÉfrÙzÏùL.UÅÎdAbT ±SoKÀ.^r$gc ƒ3îÙÍZf&Î8ÑÆMn2“MÞd"€yI†Å<ûü…ÖŒQg#aFž]x«˜Y 9/›‚pɘ€„U IL”FJF,‰‰k±K’·›ôMŽ8È„- LF`2 0 ˜-qJáÀ„O>õÄÕ1O<ùí@,KÀ,FÅ( Ĥ2Zy”¥¼J"6±¨û#á}÷¿üÑÇ. $ LQŒyô±K"@L^ŒS/‹°dÕY„#ÀR‡˜b™žåNPV]W»VPV99u±s…—™Îˆ`¤”1ýA0ðÈüo8,A„L "¢€J–8÷g"±2sD€É©)¦ÈÆu£c"Ã"",†YH “‘Cޏò¿ï»Ð˜ÐH„õë ,É3çmJ!ç=òÊ{ý}؉6ãêÿ¾oŽ˜Þ¬¬7&¼çW6ó*’€ŒD˜ ɨ#ºöžÿþsÁÆC@r®7˜‰Œ8Ï.HbCbH„I$’Œ•œ•N+à<1`Qf‚0K@|ñKWýüÎ ŽþÒu!gHX–€Lðó»Î é€äà€Dˆ$øù§Šˆc¨×.6ä3R2)`MG2ÓÜŸ¸Q–øOÅ(q&ŸÀ„ - X”9d±n|I‘Ðkå¬;92¢S ¸ \¶zΆO12œ>‹€YEXŒ³¥3 ‘¨³…Š0³2klmæ´rαTlÕ_²:,‹%Ž—I…Ó{#`±n9ÃÆ° wKbb€•ÙQëšãt êètŽì4 °AšÞ½!1L:¯Š=;†ëcêÔ©©Î¤*e‹Ì½®‹dÊÖ‘x¸7r°A•6æè£¾øâ‹‡âÏ®JÄÆÝ$¡ÌÔiW,\tµÓv»tásçƒÇˆc àQ@,îÍs oþÜç¾­ **áÙçæMÛýÛÎóÄvÛãòçž½ŒØm•Ç[wûü5‹ž;‹ {ìù­ßâ­AP:"€ÉÄ©dŸzâkûî}5Q&Àd#@e4€˜¡BeTJ¹û ¦CÔ( ”cŒ;dï}¯zì7—A1}ÿK~3ÿ‚T¦š¾ÿ%ó»„}÷¿Z‚q¨¼Yƒêû „L„­ö?àú NgÀ*8ðª‡:'âÑ1m±þ«#„_8蚇ý®ë±ý¼‡‘º8cÞ €âÞ %²|ù~@™ÁÔ;4ø §‰ï£:¹^|ÿTª–¦Ñzg÷–,Òœ:%ï¾wÜ^Iî$°²%G겎hH!_üå¿ë®»¶Îëï½÷^xªùÔ zï½÷Θ1£Ž6 „BqÀE h=n Õì/~ùÈv»×·<ê„¢ÐzâRšVU™ÙÚ@‘W‚;é[͇ú ¡¡Sµ3´YïM^i”µJZÏèô+2EjÎ÷eè/„R„\dsÊ£ú‰ú„¬¡Ž·èP²D¥@ûUÉR‡…`D‚>P –ˆƒy—,(mžˆ„Ö!T-–:Ö3iÎ „šeIÁT0´†¨Ÿ•ðÑGçø…s˜ìC}oŸ®TdX‹…8µ•»+O n”{“Zoè=Bh‘·X¡N S¦°” (0õ3õ©fJ4^5ê#¢PsX×söFÒô"d Q†Þ#„àŽÐfCÊ`¬P`ô‘E>‚²BBÍÞŒˆ„ú- Ô-åh5!²ÈFȺ‹TBý"ÍÃÝŸðîd2ú3¼ŽPŠœ¶‹Ó P˜ùˆÜ¨•„ŠDÚ@)`c  5â.Ä"WÄXK„J¤,²À:ã§PÑ9¡CK†â¶d”󖲑–£d F¤LåV–H´Üd0B¢×ó±õ%AÁýYHH]‘Š¡"`#dAFU…¬®%¢"TÊýOäç-aŒ…14à~À:@D®—œ’X@„©À(Z°Œ±³6GÜø Š–Lã$(°«H#Œ‹M\õËe“­®rõ×Ú=UŒÿcjT¢šè]•yk/¸V#t*.ÄDúÈâÔõ#"x|?eÊub×ÔÜR´œ¨nQÆ–^zæÁž§þ³gñâ»ï¾û¢‹.jñêE]´¸å,DtÏ=÷ )‹«eΜ9‹—¾pçwνä²jߘ‹/¾8±.¸Öùý¸+!LD"x¾1p¶~K–,C õ¯$XÄQ@‘'"†ÓHnXh dDˆÆÇ~S0‹%ŠLˆ13– 18‚Äìn0)òJu×…4ËpW—è pì8ãè¡@EØR¼n- `jÛG"䉕IüA€:,àBœ8õ®‹xÇ ¡hÁƒgzð·¶à°¦CtÀˆó!òDäÊ! âÄ_H×BÝ9Ml ä’ž1 ² uF&v×mâø Îc!gXê€2!X‘–Ðé"–(QiÄæ(~æ]ª!P6BƲ%tDšƒº +Å­–4Nr|©D”r(˜”0ŽTÝ6–ô°ã³’8$8™Ë tÙûb9{Ô•ÆÅB ;oEB6¢q‘‹Hã,¤N_Ÿ%"Šg”ÔK³Œ ˆ¢3‰*ÁêD1MÍ(“XŽšâäPK±Ú7ö\Ï Ê`´C‘ ©Ã‚ €äÈ0ˆ €ÙPÇPÎ0 ®]nì4ka,å•8ÝŸÈm¢Î\ÌÖÓ³+±"ÁXä ‡|(ßÝ! i6¢`rAˆAˆ›6ÊüÈÌiœe—õæU/+;­âE<® gx\^]®.*šÄÍSg㬎/DÞsUÌ¥”Îê¶Ô¡0¾_VÞ3˜T"J ª´u8­z+ɪhðÿ[ÁÙï¾ûî=vÛ=±4(ºâ*œÆ*bwf×Q=8Ÿ²„&u¤[±{êô9NÑ€xZ#íc"2)1 –4P Ò~ÎUÙY×â¢ÈD)¦Ð;1ZŠ«°¹²ª,NBNÈOb=I2]Õ…&8ðЫzðr8ð°k!£ dr‚\Òätâ™—Æ|wGÞ¤ê*9B&êH;±`密 òLg(æõñ¯É3 ²JÎȉ›ÝÒîàÄÀ8¶©É%òæ'®G¿AìÈ(@ìjâ5#@D&¦Óo q&]Ta8Ko2Gãó¶3+Æ[uçE‡“ý©ò½ïrG¤ë™È$ËEÜér2$í«€/±&±àãžqw#Ù:û|oÄLÊ™4†¦Æ|–…È&KÀj.©ØÆ÷TÝ3‰-cþÁˆ‹•Š35)™DS; ÆqóÖÁX”"º-A4V«–9 'ó‰RiÃçÉ8ÔÄ_l‰º–ÃÚ$®=ʾŒ±»K]ÙÙ&‘· ˆcƒL°Éwï¡”8Å¥Q Há?Á ¢×oŽOÏTŽW“®Ó21ìæ­H}cTuÑ¢ENIҵʖ^x¡6Kmÿ¿i-Cr¹©àì3gΜ3gŽ#ˆ¬SÔÏ–ÊìÌL’„C‹#Å£•Š£^C›(šÝøU8Zù?×—jNÃc´åzA±k–Ï‘„|óõ}5'8âX²õŽg^\b_¯—‰ÐuÀá·Àݧ§±Äê˜ø¡J@eâëî®) /æUúçV1ƒÈ­—ÄœdÈ“ßÈQá;¾qkñ>–ÜîrQUý ‡NÍ P… D¨¡'ÙÈë½'[¹ðRļˆŽIüÅŠx#^'Ûtû-3´¢zCÐ@ð)ïµñ¯Dî¬$^â´è8>1•=[\W¸Ä‰ˆ“aËô§ãîbT6¼J®ªs§†ì´ûY5Šû-¹¸±"€±·¦ýœU4Ôéc;‘óM¡2ýÉzõß—ËwjnÕÈK_Ý–Úæ1¡:N'”,•ýܪ¾~C ñ¶îWYÊðiHûÇÙt­•;„aLÍŒ3¦Nêá3fÌØe—]vÙe—!eqµ Õ“²ú+we–íñ”PBÈÔŸ5ëRO튰p5÷Ñʲ|õ­³FÕÔW™¥¹l²pX)ý—§du_Ô6§þ†¯mvÞ²^uƒê-¨×v²@¨l¯²¯ªÒøÛ=ˆÏÑ57AügOÆ÷I-G(õæyYúð#S7A³¢þMJ57DX¶DÄ–AÉ·¢¼çzí¥ºô$Œ)ÖŸz ê[ò=_½ˆÓœ|ƒÄ:_½Dwï¾æ•>'G·ô_NÂÖCuÒÄzŠÆßQJ;³ŠN'2$Í;عµPÑÞ„czy½h¢ÄÞtq2lªô•õêÅvwöbc=¡Uª’dÏ®ù†Z¥¨”¶½îÚçºÖo{ìÁ+œÜÉXÝ6ªù‰$°vJ5ÊòMC¸Ú™P=¢DÂ!# 4Œ)fvy[ÇFÍ/ö¤•¶Ý»îºË÷©üæNú1¬$LæWwÝþ§ßý>¢ló-¥±œ^»bý,ÍVu¹=Õ±¡«gOiúJ¿¶j®´·TÔ[G—çô‰ž&Ê?&_*(¿wzÃæÜÜå­Ÿ†âO_¸gxª-.×>£öW·?”u¬ƒ£J£ê¾® €ÓŠÄ%“-ëÊëuý1¬ºæÉÊßó¢ò÷—lòÌ`õÞ×ù×Û †ðo£&4”K¼ýU\¸~—´Á´«YésY¦õßëON¾±”)™wIüÅÊÞý·ÁÑXNJžý ý÷KùÉ'œD•äm‰'Ô4¨Oh²'€¨ªPÔÁá‹K—ß}çI‚AÖoú\QoòžˆG‰m ªª•¤ª¶Rþ¿øEÿ äbXS5MqåÜ+š7Õk4ÇêVd›~áºP+iš‹H­¤9TèŸX¤+°âi€Ö8]ËÏñ—É¥¶&M£7­ÿëgLi¨ÚLZ*­òë¦Ãü×/³Ñû ùwƒËôk²|%W#¨ÓdT§ê³+ǧ¤‘€3Âh°~˽Z™¦<-g£ñ„Š9œ” vÚÎ÷•‹jE˜ªØá¥g8ÓMÝô_üâýŠŒÉ’‰wtmæžYkØØÓa E:ƒê*7^ƒVW«Ïnô¦õëÒPEÏPËlþoÈH—¹ÉþõQ_’¬‡F% #UÎH¡yÏl>t¦[!×c¼ s 7äk*åý²¬íïÙ+V¬hDÖÊ•+ÓllŠ7Ôsà-?»sœµõ¿ÝƇ›HDÞ˜H´‹Éa`ÃøWªëH^Ô®”M¹v‘‘Zd}ô0/}U 0iÒ¤ªÑš?~š_Õ…Éóÿœk@”ÚbïÛl×Q*ÿùHÛîMzÛúÔÜû|†².†0g6%TÕoÅN×÷íÚVoÊ~àæGßÄî8=J¶u6½!é,XP7AÃ6¬X±Âå™4iRœ”ýÄõ3nT–4ÔpÆ›¬ºG‹÷6%m´ÑÆ–ˆf»Ó~ûí`åÊ•¾´^™×ÿs¾è’~îy¨»Ð HOm-†jM-ÇâiÍS°9¢œfdO0éQ Íßÿª1ˆüØÆˆ£öü][À¸4ÓÆ¸U>}z½ŒÕy7ò½*¾O“dðXs‹>ÝÉÅŠA2£›Öؼꪶ´õ6m´ÑF-† ©D‰µ'>–O7ÝÎæ3¸VXÿ¦\«‹÷Ÿkyt%ñ[€t°Y¢ù‰ªÝ«›Z“”7Ÿ­}?¯-ƒkcR¿9 Ëöåܺ¡Gª"#ÃüϦ´’~³Ù´ÚhãC…-ƒ¡§\CDŽÅ7È^§„ÍgnŽ £³™TؼdRKÚðă öýAyGl¦^-£ù¾»±Z·ñüÁ>@O³M€Í­uMéÙXvÄ‘ÅàÚ˜‰'¶Xu×ÀýTû0"ðK«ûÜzu#KØàWíxz Xôm´ÑÆ&Á&ë4Œ ŠêŽÅ7Û+šê¤ÎžžžÚt+V¬žCˆ$K‰it“¢‰˜V1¤[åˆW^Éõji¸¡n6¾.m5ôp°ñŽª[Ä!ø¯õz»ÆaD7ë5Ò¸TToªiu…P_®’_ÝdUž0iHiµ4Ô6iÒ¤ª¼U¢òdàž+]þG“'O®K¤«7='x½m´ÑÆ–‹†2{*ªOœ8ÑYtww÷ôô8ÑØ=£žžžîîîåË—ûRüäÉ“ý#BúSZK݇*ÂjŸ}TmU¥ µtúÿ”˜I“&mHím´ÑÆ_%šÅh¬ÕÆ´¢—ð¹ä ¼fʇºŸJp|-ånU®2.}b\Þæ¿VewoüІÇX«ÄŸìV²ûí­ê™vlŸ6ÚøÐ¢!gŸ4iR*ª§Ú˜V8EWÅ‘‡§CªÛßHq7Ÿoúé®°!"sí¶á5ÍNõ>gÑfëm´ñ¡E3mÌüùó§OŸ>qâÄ•+WnHµwA«l­"]úu]áºá§<ªZÙ-ü“ÛóR²:hõ!¾…˜ê¬jÓ·N|m´ñ¡B3‹Ÿ *°råÊ ¹©ÔJüg_‡j´%4¯×ÿ•™•‹«ö§ÝNeêá­UŠŸàºÂ»K3yòä ¯º6Úø+CKÚ˜éÓ§O¦n"ŒûªíZåøŠª‹ºêxÿWŸ†*bªkŽÑÆT!€?(1µµ»¦1s[ÓFZIJaúÕ]vÙEUOw†Ó”Å/X°à”SNi5âÅ”aKW\ÔÒßö‡i£9[ð /P²wÞyçÜK.$n  /nL›­,¶túÛh£M‰A´1Ž;·rS‰ˆ݉÷åÊdO­(Ç7F½#‹æÞ–és-ýmeKm´Ñ 9»3œúÚ˜æpJá¥müu("†Ý wœjó÷6Úh£Í˜8Q½§§gHÚ˜FáÑ[üÒЊ$¾1êÝ”ØÒéo£66=‰âëÔ»CŠÓˆmŒb´>l³UÅ´‚&ôé[Qm´ÑƇƒDñm¢=oŽV>‘±)±¥‹½M>'Ò6®¶ÑFUØXßTjrh¨E5ŠÚÒy_“{LØò÷­6Úhcd1x_$—Q?X”?š0± ÖÖàFK[T¼üVÐæãm|¨_¾mVß]ÚÌQæìURmT`Ò¤ImVÒFm| HíLm.4(|^öz¬ «2þ| ,˜?¾ŸáƒûÚµ½ÿ´…Þ+·wöJh£6†ƒz+kc£½r‡UEª«ýÙõ$q7YÛh£chsö-Õœ½¹÷ôú1‡Veö 8b·lëimlFØøKªÎJoßËkŽÚ«ìudv+W®lÔ‰ãËy­¡UÎîN‹þÉQiX»Bm´Qƒ¯“©¿ZÛl}H¨ÞÓï9Ôº±OÃÞÈke°”\3´µo¡œ2)³õ¼m´ÑF3V³õäÍðV™M•-Vë‚náN˵ÁÉ*zÐÿÁ÷©-¢6ÚhcSÛòz#Ty¾¤ÏC¸©4ÌoTîðv˜š”¶ÆlRû¦>”l¢~iHóPÛÒ|Wkb~ØÜŽ›€ž]ÅÆTØ|„•ÍmžÔE­´î¬¸VWh%Êz½òÛGíabð›JÍãÆ uFÖî0u¿Î\õ¦ÅØä þð ¬*¹êóuiQéýþapŠ;p¤‚Ýo< ‡]ÅðÊo1W]bÒÁjRÈæ?. F–Zׇ¢6E¥Rg©” CÑt“h3÷á Ù®]߉'6±š6ù~t]>«ª•;û_jVU©*˜à­Um4ÀöÒ¦nÃaš2ýúè ÎBîûÔjGÍgíš÷«kôå뺯I)i¥u)ü Ê^ÉUØlÇe“£lÏLÍ`5§íŠ_‡ ×AdÇ ]ŸÞÀšW^YÍF¦ÍÓ‡†œ•Ú÷\wúê¬äÅ1Ò‰n­õ%Üîî)iF¤ÌÝÆŒ>†]…‚¨öA¿HI8¢f#í²×ÍÕdý i]©jºà[ 3‰ÁVom9-–<¼=iHh½>U›CùC-¹•6ŸqÙÄÈEQ×@ÿ¸‰o¼òÊ +qx–ºÖ®½vŸ}Vutœsà #^þ‡ ƒDñuHµ1ƒj“ëj<¬µþ"I•kUªjê!ÓU(Œ{÷Ý_œpÂ-_?©«P¢ú*¼4½+¼«P·jÕÇW䶪 ¶¨ô¿ÀÌM, ƒ¢IÉiša´hÄ)I1 eñ†—ß$ö\ë% µ›f\6!¸k 8îÝwoßm·9ûìëÖTõ²mÙÿ­ Æ |å«;¾÷—Ëî½wÜÎ;—$½£Ô¾¦44ÓÆÌŸ?úôé'N\¹reÝ4TÉéœðžJîuÙýÎÝÝ@èÙÚ¢Üs>Šîþæ7¶+•¾òÀƒ;fí›o¶Òž|ÝsÊ)Û•J'¹ÅªROÏÊ*ÅQOOOóÈ-ÞÆîéé!ÕÈ+yYúkƒþtT#cI9šRëmDw‘ôô¬Šº“QŽ.RΕöCMù”ŠÕ­ß\÷ãF¨rJ93ûvO!S#Ò¸"¥Ç…¬µ@L¾Á¿.=®AQ@i\j±Q]kR¯³m§MûãÂ…Î+!YS¶¥8 ˜@Ê"–/_ž¼³%ám§M{yéÒw€ˆ(d.‰6m²¿ âCD¾oÌ Áͼ$¼:›•!çÚ8F—VVQ­AGbZn²3{+zí–¼Dš–0höaó¬AÏ‚ÃQ5wÙ4ºæ|hä!Öˆ†¡ú•¥¥U9XhwwwOOÏ+’)FÂCÉcë}A°Eh¨6 þ…k ýÀ8"D¶«Pئ¿›þþ&¾1•Ös"Û5PLsk•@jI-CH‡á­å—o›º¨ûÂ&ß óÛk¢ÜÜóáÒôô,KK^±bE“ï¢¤í­‰ÓˆòVáè¯lã2À&M­|¥ÏzÕmtë6Û=ØOãêmÞoɽGØOÙxt8ýÚïs5‚+jÅŠDª¦¶’žê˜'#ã1200îÝwï<þ„[N:±«8àVAwww•0½wíÄáýʪ›ß‰éOÙz÷”ÉÝÝÝ©½A•êòAÛëÏ–+VÔEÒÃP+Ô¶Ñ 9]mܘÖ1"ą̂°4níÚ[¾~ÒÅgœ1„\¥¨Q®á͘êK üðŠ¦´fÔšÜgrc·[4¥4¼Á°‘ªt³¥ìÖïo=1?q⸉ÙRVl³cÖÆ@jÖ.šÂûml2Ð o¢6 n;Ü0’G¾1¿¾^±˜™°f¤ŽIɸl”k5ù(ºçߨ®wÝÅ?ÿù¸OZ4æ¶Ü zzzº»»co—k‡†zðuˆ+"@µj›l¹0ܶ¯oÒ'>1iûíóQän–¦¢Ö/&}âÚÛ› ÃaTÑF]4dªêDõžžžÇ{lSÚyÜ”í*øêW§¨=àÑ%;v‚ ¢ò~ ¸éoþf²Nd)ÆŽýó+/»(tN0T1–Hüÿºé„8o®s_®ÿÍm~{öœ³ÍšmÎZLÇe8½1(*=Äæ½ô⋟ÜqÇxVrÿô¹{r÷ Ï/ìúó»©_Y”Ë´^c:Üé›ÔG •1ªšê¹0¼ë§l†_yð~Œ³öÍßû ÈGÑõ§6¥wÝ÷ßí>ñ§?üas8±ý`ä}cjÑ¢r¦jN¬ÉfcÿÖ#fœsà ;M›6ÐB!€wy$õŠ *¢O Ÿ!¦Úátr÷ô,Sº»§T(Ýž”ØÚ|ïOŸ†Z_Ë{º»»—Ç%÷ = 'åx´$²'YÝÁ’V¬X‘ÊkN îîîN?g«°î‘ÍzØIë~®XÞã¼GÊ[f¡Z° 6’‹ãZk„Éõsê “æ­÷…–ú5)AU—'à»»{;l0ê[n6tëMO`kr¹*±åIÆF7"Iz÷Óš0$?ûÏ«ãÀ¤æo_æÉøå3V½à9ƒŸ~D (C©{§ú¼Ÿ:îÝwŸµÓÎÜé£ì`Ú–Ö7 C‹3lÄ'»îíTmÃ=÷š 3æäÜ  èyñÅ3¸Š9Eï i.¿º ±¹§__úúصcÇï0Y¼ñúë//[ÁÈF™ÙÇξõÇ·^{õµg7»S;QsìhŽ_yqMfõgþŸ‰9d_}õõå+–AAD… ð…ó§ßyÍ]7]2ï¸ó:,àîŒl¨êëK_óþ˜ Ÿ™€,~ûÚo_^¶2R gþÙ·Ü~Ë5W_“¶q¨ ¢W^zµc}ÞD+Ц4鯕«¦D˜(è(äMPŠŠ¦äH%JJ€‰Lò&*š0”R(¥ˆ›u£# [ÊŽY_îPJŸ™2Àâ§OøŸ ¿¼öîŠqiô‹ôwV÷sºšjÓ»ŸŒùc ‹¥ •»øÈ4§_äÈyó~|fùVŠ¿Šwéî^ä´1'Ÿt˱_þòm·¡¦±m -ÝTrl½ Ÿj]*¯›¸®•²$ü~6Û«jˆ(‰#1ŠLïe2p^±Âþ†Ñˆ¤f4WxXÛ±£Çÿnü]§ßýV¥v5_èüä;Û_vØÙR6ÈQY;_+&¥UhŠ{³½o|ôó~xîGÖl3û¸Ù(tfBV’"<ø IDATÕµku;Ý÷º}2ýkƒµ¡”è¬[Á CS;(N³×q×u®‹x mãå‡_™-æƒ ˆZñß/§™Üݽ¢g…Zí,v|lÕÇ~|ÅDtüyÿôöø·‹¦äXÉäISü€ å+¾"B-ÎóOGG!ÿñU¿ãÊŸ(…Î=@f}æŽk«ßüäºÿe­-fŠ'œ{üšŽ÷{;Ö¥šñ:7àP€0fý˜ ÿ3á.gçøÎ±ÿüvޤµ¥µøö¹vïBv`»©Û½´üÅæý\]þÈÝk"<‡+¯"§[_imDTíýRq,6W¹QpòÊ{p•üän¥œ¿rÅÂÅ‹ã[)Þ†]Vg³Æóã;"ÂêÁî¶Ñ:† a®?Øé˳Ad» ¬Ú› úEš¤ô'“ó•L=y­¥õæ¸ÌÚÇßtîümŠÛuûLLÀº·zSî“ ÇùéC A@®˜5Q3Ê•°à]û³kFn>ñ–m°Í[¯½–\Wð›é¤Të³ýŽÑ7AÝ¡©uº÷)yÿ±÷ç_¶`›Â6GÝ6[£ïz»w¬j# ÒЄ…  ªÙRý6¦Ë¸»»{eÏŠIÝ“z–÷%ƒõß;áˆY‡ÝqÅO¾âà&ô;%Àò=ª1KI vý0fý˜[¯¿õ¤Y'9º~tå¿}íÔ½íúuÖ øÑ•ÿöµYÿúãëo;á›_MÓÞñÙL¡‰åÙùefKÙG.¿Mq›£n›‰ñ°Û{ Aáݱﺔv˜ü™W^zuÇecCÔ‘un3ѧwÜÑ9˜IºkúV÷oF6Ð/AQâ£p“Z AеãŽ===«“7±ÝWuòäÉ===À€1«³yíà_#ˆÁµ1+W®t¡Áªæ\y¯™‹ÍƒY×¢®Y¦«P³êÝŸ9ûÍ1cÎ¸é¦¿äœÆ¼Ž^ÏùŒPr±ß¹ýÌÙoŒwƼ›F ʳMþ1‘«ª×^YÏΔ†¹PB!(Ÿ…ßRWźú\WÂ;úç8M"K•ofzÖˆ¨£ÿxæãÞ.¼½®3/ðÇÎ_™ñ1©%_ƒ\3@îæ'Ì@ð·B Â…”³7ú„–…“î`볂fÃä—™ž œ´~ëõ?üò·ÿñìŸtt~íÿú×ýÇ—/<îÜŸŒîïüÚ)ÿzÛõ?>ö‚x'_NóÃËtÄeG4õ—¯Kz÷ôÓ@²ËÄœÈ'výû©ï¿ô>oß^×V]nhõÙ}SÀ°}H‚ÈŽ- lõé@ô±±c_{é¥~¢ª­%}N !£¢ð£û8€?ýáí¢Ô±U‰ˆÓ«Ôn?¦Ê»¸Í-±ÿ Ú ÅWU]h°Z4™¸Ú2•zòÎùùÏÇì°Ãß︣Û0º»§$ñí‰É“'wOŽßL6íîo|s»Þ¾=yO>ùäæ (ûo!(|áüýÿ4öO7ž5ïÝ×V)ÙZmF(áúlߺÎugÝtÖy7~+2-I"™(sæq³»z·ºðê9¯ÿþµøk•…63ºoôVë&üô›?»ã´Ÿ˜(h…w4jc#Ev!(ìþ¾ïtýñ¦³æ­zuUªŒö—}d¢¾\ߺÎugÏ;ûÜÏ‹¸Ú%µ¶äôNy÷çº(G¿¼õÇŸñO™ÐdKÙ¿ïž’šCà M¸€Xƒ& Bc{ó½«G­^ŸïƒEeŠ¦Ô—ë}¿sõº|,2aP4‘{Ó—ë…"eZô@wvŽ?{禳æ­zmUHQmŸKhÞzþ­­0á§ßøÙ§ý$ešÏm‡AçÞFŨ°´Õºu×í·ß·9¤gáBmì¹ï°swwW¡ð‘õý7pÀõÔäöS¶TJ}Øwéî~yÙ²Ú4[–+Ô–ˆMá3l”=y =K—ö<ù1}p§HzzzþnݺûŽ;¶Åò“«ž-P’øto·ÇÇÞzúû]»Ïúlÿº`í;}æ¥Ø‘ Q(`2…wǾ{Ý^WÌ/>ñ»Û–¶íM=/oÇVØ•ì¹ýçŸüíSWzE¶” ™?³SÏòž*×Éü@îã«>þÓË~ÖQÌuýqøV÷¾7(iÔÆF÷Z·ÛãoÞzú÷û^³÷úlÿÚ`í;}ú¥že¤±<æ ˜ׯBP¸üÄ‹?VúXo¥¤O•ËåNôªQϳËñ6B >~0ï_Îúç1ëí«K^-ØBšÑåeU¾Ø©4W4Åb¾8YßQÈ[³¶c­µŠLdF÷.qimÇçqØ`Ìú1¡×v¬0¤pk;b}zlç`§f©ðw§‡¹ûÌí(æúþqØY·jPiºÉÜkÅcÇOÙuËqñЧØèÀ%ñÍ×–ŠŒDªêÔ­]…ÂG×®7ë£JÑ)>ˆñãÿü»7Z ’í*ô[µêöÝv{cô˜?.\¸ÚÚÐp­¢©’¹—ëmKë#‚ òivqƒ DU±?Óš×ã¶ÀìÉÛØ&3 fw÷”žžeïâ]“»»{–÷¼ßàXæìH~â*ÖÖ¨.÷>žå½HŸ{–÷t׸–×´aC¯b׊í®R×F÷œ´±‡ˆPyõ¤¼Ú»‘Õz<²0X—ë-u†_9ç+7_wó‰gžØ—²Ò,”ÒÚŽµÿ|öWn¾þ¦SN;…-QpËn9ùì“oúþ¼9ëŸ9¢@ƒþà‡'ž}¢{CÊÙ(sën=霯¿-h¥–BPX5nÕúy‹bLéèwOžÒü&`ð·À¿ì8¥ê}­’6ý_öÞ=J’ë®óüÞˆÈ̪,«Û¶ºõ4ƒ»²lË2xµ¤a€9Gƒ0a‡3¨ª¡[n—ªZÃòš]ìá1/3î®êRKݸª4 3Ç ‹Åxvþà,Rkðž5XÏÊó´¬–ºeÙ-*³23"îþq#nÞŒWFfe<ó÷9:­¬ÈÈÈÈ̈oüâw÷û³~uÅÓYA]Í“f<Ø' ‚^3ÆL¥‰Ügy¼Ÿj>o3-ðz®jÍŒi~­ÓQëö/qNZYÏ®.â €-EµcŒs?€_øÑ_ø·Ÿùõ_9ó+ýâ‡B*FúÅÂþ7õ/lÕÚ_¹þ…ùèýý½í_|ôûþÍ÷±C±öŸ‡”~úÏ«ÝçÁíÀ‘ñB1ÃP|ÆŸû‘ŸëF’U­‘û¢u ³;×ýêu_ýêu_µ4K6Š7uÇŸ—·5aÊnê½~xù‘ÿpqf¿föâ¿Z|Uûê~æÄÿ8Ó1õÞÿÒ¿ªõäÏœxäg;3¦Þûñ_üñê_iÕÚQWÜaÙ^Î9skO[µö G^ø¡ýÐïÿòïmýÂö?ý·ÿ×ÅŠ¦C—‰^‚ödÀýgÿãü‹çžÝ7 16 ù_Uµì9³wC«½±¼ü›÷Þ»xáê³53œ«yK÷½áÿtòŽgDY^;OHœðê©§ž¿ç=ï÷_<Ù˜?ú£?ZYY¯Æ/(#. ;ÓâoÓT&ÁÞÌÞ•Ã/qÎo¸vÓÜþ\Äþî,èö.縮}èÖ«·xáÈ ×ê×F |¢¿(Ña\=«Ýܱñýúõv]Ý ù¡Ô±_ñ@TˆC$:4vè®E)€‘Îa±µC­CÕV¼pä…N¥ã,iWQÁ ׿°oìnV×qÒ2áŒ1Žw¨uèÖWnµ}?iÆ0¦×z7t:³– ­ë_© eGdè ÎM_¿àòáCaEŠ7ïí½þʕ͟þÈ_>üÓgμ2SóÍDM£…ò¸¦Ö¤ì4/~ñ‹8³÷w÷×~å×cecDmŒX8ÞÁç¿eu CϱøÛLçü©õjG¿~£x€aÑ_ØBÿSœ9"€V­a‰/¿^D|Þ6lp–£ºõ3zvC å<D¬-Ø ò±òêÎ^±µV­]½Î°4»Uksf‰%Æ!ƒ³%r¡›#jnÕÚ/\ßÿ]F%5YÀ¹%ü®¯¹U?ô0öŒÊåÇă°uÄÝöomîU*¯ß7¦Îî¡%jáGzéô2$#t!¬6†ˆÀ°Œè2ö±1õÞµúriI¢z1Þg´4[1Ï‚ªƒØZ§ÒÙXØñlÖ¿ÎÄéwÉ‹icwu-°ØQe¼°~dP"aJÊÇgˆ‹/ç|~~ž¾P¢L¤cC?ÓAVvqµT³1©î‘tžHÒÌhD&ß4qÎEÛ cLþ©./þá>¢”P½] _j ¼Ê®Ö-ªÛÊÊJûEAŒ‹WÙãÌŠ.%r>ê”|ü1š š¬æQ„î´â³ø³?û³)8•éÉÃdè‘dTRHÖãc h"¸(‰‘sPň%’ˆ%yÛŽºd}}]<~ÛÛÞ†´¦2eÈHµÿÑ…ø–Ê=8D~ ] Å4T1õío»Âˆ%¢¿šHhxf®æv;êñ ¼ímoûã?þcñ E³ÆãŽ;ft”4’±ÁÐ…cl‡ ˆ@B«18U,W=Â<ë<þøãþu«¶àˆ¹©ñžoM‚ †'ò…[ò˜ä›:Ý#}Ëý~üç\G¼~c#¬ýn•®ö‘ˆ³ÁcÇŽ]ºtIöŠó*ñ’¡«qÎï¼óΰ5c^ðב¨=+¨ª*Dvè'© ÊÐ5=²ñªŸ!A®”hþýÉCšÕ[3¡¼#¥¶ãïLÄÀ¿{aw`þÇ»»»Bµ#Þ]t©Ö4ïÏ$® FC<ðo¤áâYßó©·ž•åãùùù°§¤7†çVƒ´ž˜6RPv¯^3n3îØCá œ°þd9vì˜ø÷رcÒ.M<OÉgåŸòUaÏúÊw |wÏãˆû×¢æß²dhöÉûïó s7›R¯%ò)ñ,‘ðÙÙÙ+ض÷÷ ¼ ‰íìììÈíÄ$ñA¤I"M¢ Ï«di8·2?-ežDM˜ÜqÇþ…êc‘²|öرcO>ù¤ÔÜK—.]ºtI&pÞ*/pÇ8皦Éýƒñ*ÊåÀ¬XAÍ™ŒZ?Xä>ôUpï!<éÊËDâ1;gv̈;hM›9Ýõv-.ªbJY‘ ÃT,¦ÝŠgãR(£·±µÀÀ_¼Ëdg*…éò…•ò%2Sg5«C9‚#³˜}¤Âù9‡Ç˜­ê—Z5ÄJýä“OzBrùÂÀ4KX o‰^ôxŒ˶m‘éò§e<[“ã·j &Ü+z=P/x™ßöDÊ$®ìŒûr,þ%ΚIïËøøë1â—D$IÆÖJÿ­ƒú”ÌÖÛÄW^µz]PÏÛÉAËÝÝÝñ®Áž¬ŽG ý+¦ovvväúêkÃbÈ fc¬bZsfï=·ß^žþÂ^­Õö'Ñ} T}Œ?åÇ/ý:;´ØQèˆ8T®óÄOÈÇâî&¸â^™Tï†Dn¤ÙlŠ5ý¢¬xúk(Õ+‡ÿs©„m‡ )h¥/6¨d8±¼‹9³wÏí·ÿ¯ïxÇõûÅ÷¾wû _xÑp<‡SÁdòZ W†=‹ÁZ¬ølØK¢UÞóÁ9çaÛ \ßCØSÅI@=+ËÒ—ÀíÈ%þùÏû¸?CW ˆi#1»Gƒ4­¥ëWnkÜóÍ@]ûÒ{õÅ·~ë»ßûÞÿæÞeÇÏùN nFÿöZÏP§§š0b#ju¼üS¼<ðUêúžZˆý$¢4¤¤ìÑ£¦®f9±¼®_ùöÛïyùk?Yëu¿ãèZ}'kñZ4_Mdªj%ëü†¾iô¦§f(ž$ÌÐtPàúé|Qtý ˆ<‹˜]ÂØž®_y÷»ïyåå{µÊŸôfjÿÏ•ßÑÿÔÅó_üâ3¯öWËÆ­[f¨åŸþL‚§†Ý¿î2FQ#ÆÊï§€;%Y'ˆ<’²Fëjø)Aׯ|Û{î¹zå^£ÒÔ´=Ë:Ú©Tÿ xæ©§ö ]ìcÔMŽ´ ÜyÏS5Bãš4ªLû/6#½œ ˆeÌ®f d´~õʽ•JSÓ¾nÛ‡Mó›n|Óoýé_|îU³ÆCF"(Žq*düšv…ˆ³0Ïø/rAdHªŽ`œy­wBo]¿òmßvÏÕ+ÿ¬Ri2ö5Û>Üë5Ž}ìO¿ø9Ë:* fÜWæ<3Æ­83e".ÅB^À(!C™“}ž]Óö˜­ÿ³Jµ©±×lûõ¦¹pãŸ}úéÿË4ßø¢´÷ò`dÿxfœ·‹sC0t}u5é …í‘’Ÿƒêœí Í˜~åÛow’0ºö–}]¯÷ö#G?ûôÓŸãÖõŒ„ù‰fØ…¯V"›Î ùïçVÖï¾ûn9‘Š JF`Й¸²Gçíéú•Ûo»ç•«?P©ì0íë–u¸×{û7ý×§Ÿþœi~“«à~7‚°ÞEL‰œøf‰<0%­Ì‰i`èýqjµ16|þ½¢æÊÕ{+•M¿f[‡{½ÆÑ#=õŒÈ­Ëõme;Þ%ÞOÆF2þ&‚ÈõõõÀåéåÙd™ w¾óžW^ùç•ÊSLûºmîv7ÝøØSÏ|Î4¿ J)$eo ‚ F"¥¡HÎÜ2A@cè½óïýÊW>a_ÖØ×,ûp§×8rô±?yʉÖ1Øá!`k”2Ê2Iè« JCØÁœ^‘‰€+*ý ßðnßг¾µÓ½ýF7Zç|.µ]šè¾G…,ˆÒ6A=›×óóßfYèöpý‘Ïîíýèõׯ­[‡ì›Õ“ˆçÚÌ=‡¬{ /„(ã¤\Ï®qÎEB†sÛ2Ñå¸ñÆ<÷ÜLÓªÓ¹G¿Z&_õ¨T Ûà`h4Þî<<ûüŸ༢¼"¸î…‹@>±ª‚ ˆÒ–‹¯ÏPTŽÛ¶Qå¡AL†ú Šÿ9š.ÛT2'_®ÞI„Î2e6ÄY“ bºI×Ì×ñ¸ùt5%‚ˆIz#¨ýút¿Ý£³\xˈÅÃóéŒ'å1@QhRœƒ›3Æâ䨅â^HÓ ‚ ÈÞÅAþ0áë¼ Q ‚ I63•Â}f é;A„—”bv¢gU{v’ô|]™‚ ò@zÙUÍEíã¨öþõÉ„ ÂO61o³Ùl4¦J„ó2¨o¸Ï äcñr’u‚ ?  i–Ó—ÆÎÎŽ¦iBÓÃ’6$èA$³ÇIK–êKDtïÙÎüü¼HæLzg ‚ Ê@â1»ÀŸâœkš¦þѬNÆéjÀNyv‚ ?Ùv¸ö¶ƒP30‰‰u’u‚ ˆ@²É³/,,øsèa2-2b}õ1É:AD é)»ƒ‡ ʬº|¼»»Kùt‚ ˆ‘HIÙ#ª×=*¯þ)‡I= ÛM‚ ˆ2v‡k‚ "i²™©˜`5ëBY‚ ˆ@rê»BªM16Ù({`‘»,‚ ´ ˆXŸ ‚PÉ&Ï.GS=Ò¸0â)ÊÝAøIOÙ#ô:ΡOA‚<æÙ)ÇB Є-'¦©úõó¨ì‘5Ó@.ú Ää°.ßýåŒ4~êòƒ³8+ŠÙ‰éczîɉi…bvbú(K\FŒ…gmïâr³A”\Çì4‰H5CÇ×T Æéýh½\©õr§ìqÌ~ ‚ ˆò•i4"H看&×YïQ0Ä\¶!•Ë\ù˜ lª»Ç†h%>r¤ìª¬K/hq§)©„Jߣ¡u èYïÉDÉ‹²KYضí÷‰ÿSB‰c1b$Ô],ǃÍD_ŽàôYE-»½L€\(»GÖᎪâNá9A“ÇfqõºWq]©"÷ì•Ý/ë’°´ ©TÖ¡ôè²Ê­‘0€W#@h¹ÿ (»FJO@ ¸Ëç—77 c®[/ÓàLfÊGÖc¶mC‘u‚è£: F¿È‘¨aù¡S]ݪwgΞXƒ€"w‡Ì¡UÛC 3ûÔôÉFÙcʺ'Z'rLˆG4ÊÀ8I6ïŒAY¯V*XZ_®Ítg77`UüÌùŸùø©CW#w;r£ñßž(›«ÛKç·Þ¿¹–zœu̧EÊ.såcóóób"Rtï$qžkšF²^N  èŽVrpX@Nˆg€áÆé ŠÓ¯¶ªû¦ÑÝZÙBh= ŽŸúøGúÈ'>ø äN6Ó‹æB'>uòâ.ˆ*È’‘†²{: FŒ‚ ¹§h½€G.?´Œ|«Àõ@ýóª\ZÁ«;ÿý8ýĹ“õNýìÉ3è¦òq…à@ °ð‰~Â÷Èݰ‰¯ít(¿zöäö`@ õÎjˆsï˜ÒSvOî%PÜý².–¬çœá?O 8‚ã›KÜfœÙŒku‘ ï*/®áG?¸Wm1Æ6ØL7¯ Ôñ“'뙳'×ÐzJ]cÖÈ}¹Î¥#âþŽ0‹Vu ˜€ \ÅÆâÆ©íåó˸â½wt(Ž%®ì¢¾%0¥.Åýcû€~ô£ýèG1­{œdˆâ¡9û‰GN^|ð,w–HÛ-I”X8wê!Ô`q}‘qͰŒ¹Þì™Sg¬>´ÚªíÿÖò´€}7NWδà;›"w ˜FXn``¿ÚÆlªÚWvι¨I<ñ„¸ Aÿ~ìcÛÝÝõÇòIï'1þ<Œ»DÀç:G¨¢ÞÁ×”\Üóªt€«ÎIµýƒÛàÎ(ë‡ú0cì“'çMQ7vãGî¤ýeCäù–Öo­lÂ…÷¥¦àrSª‰xÖ?FJ¹—bñkqÎÅhÕé‡Ýœf+$'WU*€ß<ùIèE¾6Æ·y?r_þÄé‹«g?°†Î8[#Š^c§³ÎØé ›+Ÿ^\_ÜþÁèÚÇ^q>éu)ñ†<ƒN €Ž|úþ³ZCçRBë_^íµª?{ÿÀ[ëâì‡Ö>ðéûݨFóœC¼Ý‰ÂÂT#XÞ^ÞXÜÀUß]£JÁå*ƒ™JTèRBo]E|4 ÝÖÐÅ81²×Çé`ˆ­u€.˜m`FüiÃ*ÕäCÂO_s  îÎ;õ‘Ú@³ ¨{$&ƒcšd½„pÏÿ5à(xôÅóQñQŒ yÔ8šCãaÇv¸Šó‹ËÛË®·_  QœB N†}:¤L …zwUÅÑ·˜7qÙD+4"ZrÜyÿË-Ÿ;uΩÉI°ÈÉtЪ–ÊÛ‚T†e8UUþ ¸´pöäÚé «Š²R¬è>”˜ýà¦Á©8ÙLxÎ1oÖ;`•X¨yœàmn­l:V3D™q}ϼS3h] Ø:دî£îæªm^Ä›¸l”2e…3 Ô€lÍtŠa, o7j°ïÎ9¤È}5Z¬ž½M({Àáhƒ™€…®n¢°œ´£Æª¿K5¹Á”’¾¯K «Ÿ\]û‰552Šw9±ŠôY {Ò]´ÍpÅsøÁ ¿_ͨû@äeÞi]™wjÿ’ž…aqòOJµ1ª”ô›"b¡u<øÈé3'Ï¢›ÜºuÎ!ÅìÓ€†¥óÇ/®^€9¼FkkeS:úT¬RÍÆˆïHš ˆX^Fô ueuIàjĤ ÎJû .0€:ö*m {A<"íaOÆÉÎo­l.*Ùö¨»o*š!ŠCªõìâ´QcöF£!Âyù@4³®þgåÏc"{„?L'μøÀôŠ0ÃÓÚ˜Uþ¸Eâ]RF²k6a˜U§@1«ÚÓpƒ/Õ.Ùó@FL 0Rð‰{{ÏQ{P ¯=È¡f*µí"ÛÞŽJØe4OUûΠ9" G0ÄfÑkIýS¼J\TË_±¤¸cÖ¥ÅêX•þ0¹Í°«ˆl»ŽvmŸ²í¥e˜WŒ¥ª½¸þB™u¸öàI³H÷'a(~O'bæT®‹yÛûŽ?Œé ”rùöGÉ¢ &È«½˜Ô€#X~hycqCLR‚´ íZuàµ4öqâ¤4‚:4Äö¤_Ôð< DM—p1»¯‚ŸÜ8ù[ËN†4XJxdžcëÔæ‰Otòª4{¯dèÀ¬â34f3Œ• IDAT·ž¨jö"’RÌ®fZTÙl6å:" Ól6ÕlŒxjgggaa!f†‡ƒÀ:f”-3ì™a×Ô*r7x×À‘ǘ7n^5{N$€í•ÍÅõÅí÷ÒÑ7 e÷H°'Ó¸šPÝÙÙQcy±$ÙÝ%FÅãÀåºA)òªÄäá×ÞÜD)XZ?¾õÀˆ¡X›×ÇŸ”8:PG{¦£dØ#ލ|g«²íromÀ.P¼FDûw T‡¡ò}<äøL#òŒ[Ã~â¡û/~ð7Ã^äÃÉzL\ü© K/æù¤%ˆ¡ùT$ n âfØg÷g• »·“ÑàÖòZÓdz{öÀþ“×c9àN9£÷89ôzo1·Œ7ÇÇ);1‡ýÂO­<ƒ½‚gØU8ÐëûüqŠÜ ÚûÔøè~S…=Wöq Òâ;e#ý\-gtâMžÁ@$<3.|Ø«{è"¤Ã† Øùk‚0æz³N…ŒQ´ý/?#ô€ÌUÌŠÚ-«Ÿ:82Ö±ÿ³&qeÙ‘ÄwÐÍïçNd̰Ÿ+r {Йg©B¦ èÀ,N_<½vr í±ªr=^íÅÉqdéõ(-½†j·4àÌ·©Ï)b v™jØýˆ Í­¹–o_„id”þ¢÷i¥.ÆÌÊY5À.’W{Æ× Î9çܶmN¶{Hxö‹§ËPÃîÇõù3E÷úâÄhD` gtÞ§cˆ²˜åpÿÚƒNë.½˜=Ìf¤D¼§‹$;Eî èõ(;vãy¢®ÜSRb0Äìø¢¡ËÝ{¸½JÛëÕžã~HSÙ#¼Ùl’ùWa`ƒqPIÙZí;¸ö‡ÝHÖóK2YQÉ!ïáD4Y„ |6yvOÓ {L(ZOœ€oXì¥õã[+›Å-Ày•ãs•”1úªp؋∊³Á|ëOªyDO×$ñQ2½0gGQ\¦z?6ÐC¥€„–`Ïä<§Ò8fåç— .:V«+x–Öç‘RVÅøk“¹“]íWµë¹>‡§ŠQû,®ß^‰é6²¯Qže*™J1?¿\1¦i&å Æ˜Ó;©ΎјƒUíF®Ïa"+ò|½O5fW‘mðDÀ®>%ó3a_Í>MÎ9*@ÝÓ;©¤¸¾N÷z’ïùd² Á(_£­•ÍE{Ì”Çìaiô@Õî½W_÷µÙ·Ï¾þ-‡»FÏ.³x“ ¬JoüêࢠªÚMôôåÙ Zg‘ç{âdsÌŠ¯XäÖÕ€}ofïonü«ã/þÔ§~ª]Ûëé‚~Æ©0&9¢²Kë‹›l¥¹7é`ù'’»ùöã&†â1YÀ£’†²{ʆ¬Š‘ëˆÂÇžÑûÄoü•ë¾úÓÿËOý†£ÂK Ï·<Ó‚ôÌ3«èå½Þkb0l=°íup% 8buTìʱ ©æÙe¨.t\ìFCFîýB LÆæ”[O‹ lc)«bT”x¼_}ᯙ™>È#÷èÔ¼Gìào ÐÜ)¬å!½Ï£&U¾ôÌ—Ž~ýèüÍóóß8_ëÕþbçÏE`^ëU~úÇ>òú×Þð‰ÿðWÿî ³IËóZìÙ[6cÅõù#&ìndfÁæ7¤7Õ¶m)î‡Z‡Žüý‘ßûðï¿pý—ì_ý‹kõkfÅÒÀæöç¾ùò7ÿ»{þÝŒ9ct*º­Ë8Ý Þ5ôGsŠ ÆÇPªbÊÔgCÐð’‹ ™ÙîŒSÕÞã˜V^nâ~ûîF›ðjˆwr«t|t„ü«NzÙño£Ñh4µ^íõÿ¾ék7žþøê‘·Ñm­ÑhÌ7æ+fåðÞëßøÚëízÕ¬0®õ´ÞÞÌÞÞÌž©›þm)¡•¾W ãý´ÌX@k'×V]¯v’õÂÀæ\~iáøxr­@®ýiÄìr¼”1Þl>h¸ 6X$ÊÛÅurS·Ú­¼¥ ó×û†U 8e=“Äçȱ¸~|{eS;É­ xµ'é@Bäùk»óTÇÇœ“xÌ.f*¹á¸&N7½ïM_þü—ïüøí™ýk•ko»í=Û|ÎY™‰xûÆþ•Ã/âw>Ù©vþýþý­æ­¯ý¯ADôäÌž4ò»­G±¼±¼±¸ÐQW)÷8G@^Š*òÂ@hm{€ÒüÀ¸ 4§šO]9|å¥7¾ü¦oS§Òy¶ùœÇ×—16`æ|áE“.:0‹Vm²: ÷Ú|àÓþ™å‘gRÓÊþùãq‰‘EîΟÜɳ×zµ£_¿ñäg»³¿zæW_xáF‰9¨Táž<ÎO’…ˆòÙ(ÞOASM €o”Í?ì¶´~|+®ËcIU,òX^Ú7„jË1RÑMI} î=¯nsû€ý؇cƵ,›qO3~GBô”™žZf«—3"Š2üÀéecú-«ì K¡+6Я|¯õj7\»áè×V»UïfÉ=&qlìå–uo æ©e.BÅÛ4âÞjp”›ÃŽ8¸·V6¥ÛDÎïíRòa.ñ_"–1·?7·?gXÞ˜ ’ETÅÔ0»?SÒ {< XË<Í”;ìˆO²ÊXTÀ¸&¦öó0"oî¤bXØ^y“6÷Çìô»NŒp§¶—7Ïãê@UŒ ç1ËÄp½ÚZfJ æ_Nü@‘ŸspG®ç< Ÿìq­³ž¯^-ia¾kš¦´Mb|t`mY3µØNª½@µÌS‰[ƒ«:PnêÓéò(H<QËÝï…(q t|ô`ƒƒ9éuÎ^ÒßZÐUmàg šlZ’S&¬zRÒÄ„ ›Eá.YÄÊÁ|I•Jù‚2±lŒÇ„] ”Wâ)Zi³®O²>)Ïß^Ù¦(U Žžù%¹n½…òþœXÌ®§6 :ç\¯¥Ê‹…þÙLʳÎUÚóñ§'l'YO„‡®!Í ïí ‘) 6¢GcÝzU)¨ããä¯;j L³Ùl4ÞÑh¼ÃÓD©Ñhìîîzyù*5Ò—Ïú A—²Öp•¨Û}¯˜òõÙˆ<”œÃ²PñÚT3èK:žøëH¡ª¤ɳ« +”wÞÕb™-ñ§YÂuÙûãøsëˆz%F£\åó^1*åHDýœ[€¯Íõf ¯•˜ÔŽ·€7*”ãc²#¨ê\S fN¢sîφM€ IÖ'€Ô¯ÎY}æÄÙÕ «kXCèe½KD—ÿÀ ¾Z%eä½JjÂÊî‘ÝùùùÀøƒq·|•çJHXhOšž2EÖq?…¯µg:¨×Ë…ˆ²÷§ÍïÌ„ó…cdº†¿®FÍȾdÜ$b1ž›R™ÝzZò칆ciýøv2G/c `vÎvL6f ½ƒêÙ–ûÃóÀgÃ^XÒNHú¡%™…ç8^›B40áõ=‘c\Mƨy@‚&§LRÙ=7c̶muÔTÅ/Ç»»»n›(Ö×€ÀÝ Ì̘è@ ¨¡Þ¾Jñ º|âÓÜDß«$xW)v$³À°—ćd]…< §ï³«@7j˜¨Œ¾1ÃO‡­•ÍÅõã;N×"øD\ÔM¹5@óZÓLèí’ ‘ãrh¶]ÓÞWµÕ-DlÍÿ•´˜ÅþL«¼”&B@#="/$ßgûíüÏFN¤êqèᦿË#¶æŠÎ´ƒÓÿ"¯’帄”·1[ù#¶rÀ–»+ì”Põ8ðË:S/ÓÛ¡‘¡{Ib€ãç~"¡º‚Há&çN'zÇ™û’ܦ§Èi—Ó–Îâþ?Æš\;ÜÏ„˜8n¹—ó1JôÐòùȹӱsb,͡ڃ@ÊNp«bª˜é΢MvgWL ÙÎj€tè‹Êž~ð¬³Ø¯í¡ÖJD€ ÷P6¦äT°ÖÔ€£XÞ>u~qWïçû±’æà*Î/n,o/ã(Pó½ˆH“ðoœ~ ŠÙ N¼ÓªµÉ+& ¬®£Umc6ïnD"ä¾bö’3R,é«,š†zí¸Ÿ‘…Lã ­ë/cÁ^Pú”*õæ‰â'î}Û©íe¸oË¥?o‰ah@0pâS'7ïߢûX‚ˆBxÃu°_ÛËsÇóÄ÷+Ìt7ÌÕ+Ì€H ˜ª}#§¡:;îg »ä…Ï£}_ˆáhÀů¦þv‰«N­”Í @ »•C–Ç@â1ûH².ž lÍA$…Ì&Ó7²¼l­l?·”õ^^õ(•ŠTˆ¸3¥{ 5 pyÏ ûÆB|}e`}#§Æt yd†76 Ž‹š~ú°¬¬ŽÄcvéð%¾ŽhYÇ`÷j" 4À8hßÈé=Ÿ8 £Ã×!½lŒƒG42‰{r„Tk£À(8Ú|OIõ0©ã¸\¥z§ŽУ‹èph¡ÞA¨ÎW¢©¨™ ä~}WRiçñÙ·aºÁ}6ñÆüü¼g‰Ô—ôÐ:N?òàÙûψ±SºˆÆÂZ8{ríô…U¯²™`u¬¦Rß5ö9’òE?Ë;IÒ‘ŒU1µºp\Àèª: w®J­ê~žçªLº8’÷o sø+âäÌÓïY*{Xx®.§~B͡צZC—Ú8Ø@°`ê&*YŸÁœ<»©wa¥“gƒtÅ>3e— änÛTº4i˜PÆ“Ù1…°€GDªäDÕr/é¦cÒSv¿‚ qîxçt¥¢¼Íd‘µ–¡ÖE%e…°€êYÔ|£èù =e×4MÖ2îîaC©¢ÞQÖGRNæ „TÅÌõúŠÑõs$¶V6ëÞxÀ#¢PÄÌ™t€«ØX<êÑSùt|LIÙÅTι÷Ç\<5ï"þäœÓ¥ÄU1VÏœ8;Ñ'‚˜ÜQôýj;Ÿ1{z¾1pCïf³Ùh4î¾ûî0ßõqØ´&â@xÅhd,@—¥õã[+›ž…aF³QŒ°ºæZN†Òw ôƒL’´+¶„5˜÷8±9‰{"hXzxñâʧ*†¦QŽ ˜¨˜Ug&ªEWÆì ví>Ò>¥eÆ\¦Ú=ìììx¤<ì0Í?Ûèh€žB¿nwz‰˜‰J$Œz$Ò)Õ†œ2¬ÿ_†ã.™Í²9÷@vwwÕÁÕÀȆUGÄf`¶ÎQª˜éÌ‘gïPf¢žýÀ:â&Àsz¿›»Ý’m7vvv È·'r'Y€ Žp§¶—Ï/nà*ÐÉz¿Š cløLÔ̧!–µÔ+ N±rÜ_ÅD¬ÎµlE?/ÊXÕ.:ç®L©˜1Ñ:ök{ÎÊÎU}Tö1»˜Á„a©s’õƒàaMŒMÃ1m8y¬ÊÑÑéÑn’ò ãÎ;MÁÃzªØZÙÌso"AL …µ\:õçHÙ=D;…#0@ÄpêÏ®>*eWƒñ¡ùH+ÁgÇ Nœ;yñ è¹nìQXrçå¸>*ÔÀI¤r\T.‘c¤ê`©ç÷£qÔq0€Yʰ§‰˜è♚°÷Î\LCý`ÄŽe§Ui(»¬\¦1Ñúˆ&×þuˆЀ:N?¼zöäö)3Q, ™Îj€tèëMìF¤çâ+ÿõX4\ Ôɨ åjP. äô;vš'yŸîó‹§¶—Ÿn°é»M’¼ŒsˆH3`=ëÙ ©ºø"HÖwww¥šK÷v™«™ŸŸ—ë‹•…ŸŒp‹$ÈX0 ¢ô;%&³À[€‘_Ÿnb:Io¦’G¦%ñs/Òl€}T–Öƒç*_0ƒ€ç#*ÃFÿÓÙ‹é…1Æé[!½Ú˜@Y•\ ˆéªÃÙ1ëÛG‚ˆ…'òó·nOô`H§þ|HTJÊîÏœ„U¿¨xBA‚ï×ÎŽžŠçª‘—ÜeI <{2‹@†ß¶pêïÔåLT¥à¯ÔõìjKk¿ ÇÉÆP¨>&PG»ÚŽåìHJt8}u)ãÞÖ;³×ò §þûϬ^xÐ;_©ÄUB”Õ6‹PuIØBBV&ËãÜŽSIZhK·C±ð}à ¶W6×·ß¿-—0ÐÜ‹$÷£-o,n tüpZ³ ,  èhÕZ¨¯«uî‰+»ì$‹Ù=j·¡,¡Q/Þ×"&"êØ)ÍóJ˜;`úª“ÅfÑÎÊåQEd1-ïLÔÔ›ZjmŒx&ñrÀS‚ΉDE(Ü™·G1^§~‰þ/”¾â\å Qæ‡@zµ1Œ1!Üšú¦r¦qP\ÏÞÌzÍLŽO·áTGä×g¯$äsàåIºÒ;¥j«ÿÆ­çÁ\Áâþ”½fî;¯VÅDU"Ñj‹CsìÓ]Jò£êY³µ²¹tn)˽QÈ,ºéª+ãý|^«s…óyz͸1{~N‰RáñéξSÙ´·ã™ç¦Fª0÷yû ó† %é‹ÊO·N·?i°´~üÑÕG³Ý‡ù}Ùëjö{0’ªñX:â(@Lœût)a&*¦áôDÍZY³~ÿpböG6&‘ îáIî“„¾Ê ÉdÈHÌDíæe¬%{e¨€¤úëqðÌÍ£ª‚H157=Q3VvÒîQY»^1‹çC¼bDuMpäNêvƒGr&·Ÿb¬¥ÔÕ¹‡HõŒË¸6FµØLƒR1##½bº`mF1;Q6D__†e +D<Nvb¬¥˰BÆZRuÜËLÙ=%êž–IÄx²ŠÎ÷ªûŸÖôgTÏNä@æ€*f»3h箯o@"‹{ˆ\ÜK_Õ ŒË8ñ©û·ïߤA<¢œèÀ,V/¬®\ËÏHRÞ² ));gýÿœ< ëŸÊfIÒ>¬´0å¿1ñeëdD ÇN»µàX&2v Ú¢è"ß8¤¯o:÷ ~7òœŒµ¤ê#D ™ŽtÝ£¡WƘȰŸ~dõìý9Še¦ hc®û:ÔrQ÷VZ4ÀPúú†ä®Ó‰Tr«B));ã€Í50išÃ¸ÆxÿÝ=šÝŽ£Àuî\ùoLÔüx?~çàBÙ[ÕýX}6ˆñˆ;ÀUœ»ïÜ©íej4n1y†÷žÍHió&G©æÙÃôÚÿ¥D·Ð£ZÉ``Àªô¢c")\ýj›bö4 –‹tKE
ôDÍn3­<û sÎÕØÓÓ¯üª=±cN‰ß9,­ß|`k"›&‚%*,ûqœ‚#“øÝZ˜ëÍfä2˜;’V6Æ5k”zV¨Zö‹O=õúýýªeÇ Éóvï“1j…o…(9KëÇsê‰d-œ9yöô#ÏDMCÙc"ÏŽ Šu¡ãsfï¦[n½é–[çÌ|Â]¸RÈ!AùÄ£ ·ÏF½;#»ýR}:1ø"â }‘‘ëxf¢¦:GI†²Ë\Ö­«TLëÝî ­öú÷|Ï'¿÷{+V?E#_X¸:÷´ou ŽÓVÏž\CÛ;¥*ƬØZÝ\ÌAÝ‘b&ªÓèfëú™xQ Ùw/,,x2-—Ÿ~úÆk×ÖO¯Îõ¬•ÿþßqäÈËû7:xa(⇞¼àʪ…/‘ÑÝh‰ô`Ì×b3«ˆ&©Ó{Òëþ"âîÏrÞQ<«Ü$Œ_Á &ëIþÆã` '*|»iìAd€è€áŽ'‰fãù,¸àOïOüí9´¾^ûƒñ=£rùС彊þÉïÿþWvwÕgE½`²ŽÐTÈD2$‡òÒúñmϘ¥cDɜҀFjxÆ“¬œ}ñÊ·µâÍÈ¥|˜¤³«Jäè®®uõ€•3k.ëšÿµ“õht èL"m"¢ªŠÉ&ÐÆlw5ÀšÐ¯LÄxÒëgï_Ë¡XhãPëP†?}ò1»âÓQª¸gT.>ôâ¡ëöŒŠ\XÎÒÆNÿ—U1Gqß»f•ªA9¿½âDjn…F¸‚ó÷_vg¢ÃæfYs ºÀ+Xûk"5êLÓI7îJüQ“ªÊ{èêÚÍ·ßþµ™™®³ç4ƒv@ \«_›X­«Ìbõ‘Õ5ŸWL9¿½üÓ¯{£™¨“FOÊóª ´ #­LÎÄ´¯uʇ ½Ò–3ØTÒl[+Û nŸSúÞ‘WL:¨éÒH¿{"-rùÍs-ÛAÔœÝÅŒØ?¯×ha¦;‹øAb:1ï´‚çN^|à‚èç’Ã#¼Ìä6f,/‹ë‹ÞJ"ˆ •=øJ«¦n†J|޾/–Œ1áxþ¾ó§Âò°1уæ‰Ã5p­ÿûô3ì  Xh€¤Rh€ç¤`²"ã;‰ìcvιZ ){¬f HÀwË9—y؃:ê@^<}6Oe¦‡ÀC3Ç¡1]d¯ìŒ1Yçî¯[/ì©r€+vÈ º7”7€:ö*mšwš.¶°@’?ƒÍœŸ{àß\Ù\:·(Wò^ ¨ ~lÀŽsÄM)Ù+»@öAõ,/»÷þƒcëÔæ‰OÇÇ™2ì…ÃÓ<²‘0œÜãlw–â˜8äEÙ>©à9É`ÖZ¨wgPU|œº¤ªµC õ¥À—a/ÇTPâJ4 ÓóW‹CPŽ`yûÔùûÎã*Ðþ¢)'Ë£*Žd—#`‡ûAúÇZ8{ríô…Ñ}œUgG;Í'0Q³jÐèùGɘàÎ1ߪµ©º7&™)»H³ ÷²ìðæaÝÎj>ξ.©îù?øZ9¯›ï™xÓŒ ´PëÔœÞ:@ ˜pB¯sré°/.` Ó}ñÌL <1l‰<®sÏ0Göqf€®ônïô”kÏ î=ÙƒOÓLÔl˜î épeo!ŸVä8­«ÅּɊÁgŸò¯Ö‰)â©4Pb‡0‚À¶ÏÎÅ[ƒ¡"»…±õCß—H÷žl¯ÒVzëôqÙþÝØ4ÿ\¡"¬,]Z_Œè7Ý2@¨×£,J‘›²$Q­W±m;P¾¥RË”‹X&ÐC“3CƒúÝÝÝùùyÿÞ Ô÷•û&JæãL‰J è¡";[ÃÂnáYC]TP†=·Å6Ñ˺·Nyq²þ”·''#tPöH ýá¼\AFåò…F#PLåF¤-»| Ƙú~¡Pg/üÂÂB³Ùt Ø8ÜÚ$áýºˆÈ‚;‘·Bðî’ çjÀœÚ^ÞXÜÀU «lÍòQ“)Ae0á«2ú¹bïdòï3ôh‹c¥F‹¸Xc*»PF©žò']îï'ñ+¯\-»ÑI!™8çòz Dß¶“l Ë–G2‘/uDšò%-âgÃů±½²íŽ£„rôÛEPŽâÔ£§œûÔ}W±ˆÊ³}±šÊˆ9&)Ãj²‹|wôFŸUÓåp£u5áå:¤ÄÙÛÄq³±¼°ôðâÖûÃMìD†]ÌÁËs7B%GY±1€Y´«n%;¸ÝòÍá!UþhWµ[ñ¬&ð$µ#ÖŒfh0®ÖÔý.¹ÂùÆBBR„@?â@} u ˆO¬o*ŽoLâØÑŒñ1W.¨âEgkes)Ø«™‡†Ò‡À&Y´¿¬hÆÀØ‚PÄD¤MˆÑÌ4»±Ç"à ²i5>y¹ R4M1)²WöÀD9…yE$dØ„CãîÙçi³5½¨G8x¿w1*Ù+;A”œA_ ê‰:t[?ùRöiüñÔ8%:*çÚ¨ È\ }=…#@- ù`š_ ÐÔûÍw&ÐmýHäèHbŒyL ¢ ¸ýUö•™¨D:ì:G 3ÔGi\rä#æ 'Ñ{Ø;* (óÎ8ôkNãïë~?ƒŸ]ôû}hùü"u#“ÅìˆÝ˜‰ ˆ2#ú(Q7‚a=»æwOÿÒibãµi`X‹Ó€³`ªˆÙvGàFÚGUô0ˆÌ³7\ÆÞAä :^džNöQÉ0^˜Q&óìjËSÏ:cXBDÆ0Ø^Ù^:·4øͫ죖†-­§n!qekRêÑåªe¿¡Óù®F£fôªö¿Võ^'ˆbAÇm\]ðDâÊÎ\<Ë=‡øœÙ»é–[¿úÒËõ^WÈ:clgg'éÝ#ˆ4 =AÌœ;‡4²1!¶Ôz­ßÐÚ[ÿžïþÍïû¾ŠeËh=¦“;Aä:PGC*¢R =RúñI>fç€àæ(µþu–yÓµkËËs=ëC=v½o²Dq¡ôËhˆ>JUÌvjhQ·ñIuUÎ2E/âßùw¿Ûß@laa¡¿‚ò‚(*&ÐÂ,¹ÇD£uC$FzŽ`?á‚H³tu­«×þG³ÙMm‡‚ÈKç·V¶éºw@RŠÙ=õ-Fƒ1½Ñx‡§ÀQ œÄ4@ÁjTÜ~0RRvÀ.g™BɵÑÔ$‚˜RD%»ìR†ýथì¬ÿŸ³VcáížÕ¨´‘(þÙ[+›Kë‹™ìL®q+Ùëݪd?8ÙtÞØÝÝuÚLpïrQ!ÊÏqÑ:N?¼zöäö©Þñ Œ³‹äxÌ ¢Œ÷ÿs^ë>V ë–皘J‰è·œJöVu]¥Û}oã2¾²‹äødC’°éHþwã}éb@dLfP™ò®ƒh@=YÉNVã GVno6=;6ñ‹AŒ€¬ô0êÝTÉc â{£È}tªì „“S[ÏŽQÀNä háìɵ/ž&e÷°HÝ6&G®ï£u?úY”S&"KdÔ)<ºØ«´QϪ‚!GÄ:%©¶}tÆQö ÚÑÉúè_=úYÏ6ÅÊ”!2Æz€Óè¢âÈý4ê)é/© Æfä˜!°ä|¼jÅÀêuSà»Ç4}œà~ÄЀG Ò1ILœ‘•]Š£Ù±»’ Éãî˜ø/FƒN!"'8âà=¥ ~u T1Ó%OöI1r6&¬Qm¦!äjrO4í_"7ëÙˆ§‡ÿ-"ˆìÄD±ãWðM£¬¨G°¼½|~qWNÖûS ÆA Ÿ¥zŠÕäK.WÕٳĿ²|VmÁ!žÝÝÝ |­gWÆîîîxŸ” ’`{e{‘<:0‹Vmøbv-çU¹eäo-p(R,”A±|à•Ùÿfýuœ;NŒ3??ßl6§4"òˆF•±ᎇP9Ïî—H59(k]"üx=Z¯Æã¢ƒñF£¡6d‰¾ ˆ|Á” bÒL¸žVè¬ì§AËõÀAQ5»¢>«Šr ÄGߊ« É:‘?l0w•‚wÀÒúñ­•ͬ÷¢TL ‡>‘MØHì2/äÑ}ÙÄ#"ùCYb=VºãCG)1Y™'s,"$l²!×\XXàœ{‚k±DJ¶º‘………f³)¯ êk=Q¿Ç&õ bD妌- …zÇui÷(z'&ÉøÊî™õãMõO‘fQã©ÏÊ>JBôÕ@[½ÈÂù¦2­išXDœÈ/&ÐÂÚɵÓVÏ~`  —õ.e‚¨d¯¡N•ì“&4ã“ô»'ÆuSa/ŒØàÀäQL" Öx¸î1­ê¾p)q6&ʨ±Á©íå %;ù;ŒÐ˜ý€S@‹BXQ A$ˆÐy³ï3¥‰Ì¢-+Ù‰É1í^sBÖI܉ìÇ`é~ÌTºï!ebÕÆ”^ø¦4b"¢¤ÄRö’ _É>Q ´²¸æ°DÝ6’a=ä-HéïEˆœ³µ²½4Ýî1œNÁdͳö³Ÿõ/,«Ëè¡C‡²Þbªa°Kx^ÙUós?÷siîJÊÈ«”eY=ôPÖ»CL¬é—±p=Ùg;TÉž¡Ê.TïÒ¥K)îL(e½W JOÌ‚—Ü!ÖŒÊÁã5Ž#8õÐòùÅ ´bz²Îã%"É,Ï>’E É:QBlÀ„aVa8î1Sç\x²ï{² §GI9Q¢ ^L …z×uÑÓܯÔ)IåOaÈLÙUí>æ’ÕÎDÊ0Æ„ÇÀÙ“k§/¬–_Ù‰tÉ~êwÞ)³ùÇŽódöiö?QJ8ç°€=€¹î1¯e½Oy‡2ì#q6Æ#å—.]òDî$ëDi±ÁLÀ‚©›Â=fªXZ?¾Es”#3e?vì˜HÈØ¶}çw"\Ä)çN—- s:îu ȵ1 2;’.]º$ýÎ;ï|â‰' ÔYа]í­šÕNA‘4”=0èÖÀž|â|%óž©ÿ°…&º$„`ê û2¦’C¾ŠØ%Tõ'ôÌ9ò'Ö#^K%„c{esqýøöû§£Å³è€ÝÔÑ£RȤH©6F–¸ˆœóï:v‡xêÒ¥KŒƒÞ@Bîs2– ˆ‰¡u Šzw-ÀÌzJJJÊ®†ÞwÜqÕž1Í7v»ßü߉JåO>ÿù®ÆlM‡Γ¾SÂT¸h@§9}öÄYìÓìÓ¤H»žÝ_±þ†N盯\Ù|ïÿôW‡-ýë½Z«íkÀk;vìÉ'Ÿ,ÿOL'NÌcà¼\&a¦9:PÇ^µíø PÌž ©ÖÆøeÀ¬eýþ/ÿo·î½ö±Ï|æ[Þ÷>ÝUpι¬–a>A”èÁ°„{Œ]ʺÇ4 Sï£<{b¤tE „2Æ8·À•Óð)Q~, …z§,î1jõú0¯RõäHIÙ#r)-MûÁý«_~Ýu¿ü£?ú¥ÏÞ"5'¦ haÜcˆ‰’꽟§ÆQ<~µVûÒÑ£wÿÆ'ÿç_ÿµWkµžîÝ¥ÀA'ªÕÓ'fG×uÉÞÉé`p \S÷)¨ eïSŠâ#í¬žwYôrìØ±}Ãxqîº/¿îºWkµ}ðØÀ. Y§´ Q>œYÌd0§Ô=†Hˆ "§âåN'x?vìØ¥KÿC<ö8;2ÆDU ÆåÁ9–•馥;¼yÈcof½lŸ;G¤³«ýÄ¥KO\ê» ˆ§„¬Ëô wIs' ‚HVJ…œ‘¸²«º¬ZÁ0Ž;ï nE8fP*†(7åŠ\ìrºßĕݯËr‰œˆÄ# _bªaØZÙ\Z_Ìz?’Äõ˜éÎRïÓ¤I!3äî/˜Q+a(`'J sÿÓĘé405àNm/Ÿ¿ï<®¬÷§ÔdScå)UÅŒˆ©‚O…¨pböýÚžã+@$I Êp[ ÊºPy§KÑ·m;"`§þ¨D¡™€œº²ä qîSÚ=2s©ˆè°!êa¢…›òòD©à€ Ãî1åìšG¤É$ ªýÓSº±rL"Fb "7hç ´PïŽâ3Ì•%D±Q{ÔD™¤²{T5ðOõ_UÜ=R>T ¥Ÿv¢¨X@ gO®=xñt‰Ýc–ÖŽo _"a&|×wL!pιú”ÔbÑí®™Œ³ž%êúAn¿GYc6ƒÆÔ³ÏuÙ«´½î1% n pËQd&9‚ê)XÉÉ+pMÔ‹â¹UFÅÇöþek0mÓèJ÷˜©h±D$ÃÄbv¿Ž«µŒâøW¯ž¸^]A.#ÙÑåð‘-,ààF¬ P"wÑ¥ J:²î·AÙy‚!½cEuƒ=¢ à‰'ž@Hü.W&í&ŠÅHw”-ü'Ê=Vv®ôºó<%Íxeõº¿”%ú÷öäd<ËA¢Oä™ ´ x?-£!ä(vN†õgŸn,nˆÙ§ÅþDE`ÂÊî©R÷ ~N‘=W}‡þÌÒòÉ'Ÿ ÌÕqòÉ''ñ!"3¶øôbùÜct Ž¶œ}JŽ1É“^Õ£º$º˜]¢Þˆxœs.#tù¬Œý) òÆ( £ÍÕ,LÉ ”Y01e¿téÒwÜ¡.¹ãŽ;<¹©¼1 ã'ãê,'‚È?ÊQ]p÷•°Ó±¾7f’Ê®{Á­n”érù%¥•’g¡yØÂ8K‚ ¦“”|c"rîKÔMQŽ…(&®Cg6Xav8Qùâúñm¯+ÈHAI©ž]íÄ`8ï_ÇO Õe]ˆ²amÌvfQî V‚Ùù®%ÇhÊ~ð_B-s<àÖÆöƒ<àbFé Ú®âüâÆòö2Ž50Æ„„¦F¡ˆû\†+»ß£±ÐøsD%øPDI¾`´ªmÌzdðQáä ¨: Ë@¯øwÅa¸²O$¾ÎþÁ€Ò|4¢œ0€å^rŸŽáp}ª¨wfÐ̬÷ijˆª±¬òÏ#;=‚H¨ãÁGNŸ9qû4û4=B•ý~àþüÏÿ\þI H)Àóö¼.ôiguìUÚèb fgÿ\¹'î*É:A¤@ÿDË}=gøŠ˜F&Ð#I‹(e'5'ˆLØZÙ\*¸/Xp?ËGä8Ÿ Qß,1$9a’îAL9Ñ7úƒV1EžX›{ÒPvÏè«0¶Ñhx^Òl6SØ1‚ ’fi}qËã+@$OÊá'#4ݯãry U$ADã§§EâÊQ.Ùh4Âbs±Þ3*—zàÜù½Jå7ï½÷•Ý]ÍSÿÊV×ÅSE@V:׉j*}ɘ´ÁšÍçÕATÆXW׺z ÀÊ™3.ëÇ„XYþ M%JÍ@ýX~…;ä“!)ùÆ0&P4ÏSâÁžQ¹|øx ® êøÎÎ…êDÉá<°ÝÐÀæ_”7hÀ4cÒ¸iòȱj ŸêêÚ«µÚ«µZW÷îR˜Aà‚( 6ЃaUa•¦7xñvºLÁ <¾DAô+F, …zgUx= TVB¡WFdvQˆÜCÓF£!vRpbê0ÖN®¾°Z0÷á£Ã° t‹s*™ôT—»Ùl.4h6›BÜåð –Ó càÐ4´ªû¨¯e½Oñ‘Ž1¿c ‘wËkî4ÌSO%‚Pà"ßb&LÝD¥Pi ¨ã49ÆdJ&ÊnàÊ‘¨ãöa1-°ÁNçÞ7å=І1Æ Ž:ZÕ@Ç"%ò2x-çIA'Y'ˆÁ΀s0.LrŒÉŒÌ”ñSÛ¶pÎeãSRv‚À{BعTÍ’’ëÙ³%!_1»ú§4 ˆifkesi}1ë½ F^”]àé™èÿÑ7• ŠÎ(Çs>;Ÿ(P=~a™ä‘3Êù–ÀdKX;lu³žu(iC”‰rÏKëÇÉ1&[&Yã?(Õþ¥ª ˜L¦Ã5ðh½œ ´°°à¯œ l‹J…’D™ˆQ–Ã${0¹)#IU=2ÆæççwwwåÑÖ'Oà9ˆÃŒbÒÌ3³‰ JƒsFpÀ„aºî1VQôœÈ˜¤òtóóóWÕN@Z®«‘»ê$£z²ûUÛ“Ž° #ˆbc-ÌõfÜcŠ€ˆ¿|{>GJEf̷߯0ÆDÊewwWÕz¸‘»éËg=Éñ¸9J‚èc-œ9q¶xî1.tVfBRÊî Ÿý¿®*Ç;;;ëø7è©–‰ÎðDáî1]×=&c7‘QjÚÔö|Vâ—Š‰)»gÀG•àÀš™°æy*ÑZßh4vwwÃv&Î>DÞ±`Ä=FxÕ0Ó%_l™X  –»¨Ä)pô¬àO¹ÀWÒîÏã‡mœ EÝ`âRŽàÔCËç7Ð:ÊStF¦KRÙu¼TàÏœ¨¹ruáP]²>¡=%ˆ‚‘ß[R˜E»¶‡yeÌ„óvjäîw¿KW»WûcÿÀdºkU¯"3CÑ:Qp"£uÐANÄ`ÂÊîoy¸šº\LSR—pÎåŸ[\(wòþ%JÉÖÊæâ¹Åí÷ç~bg^o'¦IŽ .£³jœf#…;úVT®c— ‚ ÊÉĔݓE‘Sd×÷«¼°ùx9(l'bê™ðj`YKÌ—D0T©)H'¦„œê‹ëÇ·}^`9ßçR2IeWûfŒôªˆgÕ^KÙ A0Q1«0À .ÎÚ<Ê% ¦S2}&_õò+ŽéhÑNÓ… ´PïΨî1ù;#†Ÿà,à‘äËC¹ÇZ8{r­¸î1Dʤ¤ìŒÛŒÛƒKœœ®ÞM†î1#ô,µ‡®É‰P4‡!‚˜Bl'Õž_÷¨UrŒÉ ))»˜‹h3Âk~óæÜ×NnÏ‚ˆ æéYŽ`ù¡S÷÷:ÆY@1;AFêhÕÚŽc ‘5(»qûSüÁ.wb}5Z•Uœ† ¢ tC¥©IRq)]CD1à$ë ’¸²ΧðöRa\)’Q~h™IýQæ 94 ؉)dkesi}1»÷¿)ÉxÊ$ž‰œO±¯ë¯iÚµ…wÜ ÎñüóÀùuœÏÙ¼*ö<Ü3’ ˆL8¸;%c%yeW²äž ¾®¿ö®ÛîªVñê«÷2ֲ죷ÜòýÝ.ž}ös°o°¹Áã®{û ¸¹ï A„3‚Þe*~Y_Z_ÜZÙvêßcìiz¢dSÃXGÓ®½ë]w½üÒ‡«ÕgʳÛ³íÃ/]þ'îí7ÝtÏ3Ï<ÔU£v‚ "&ÉçÙÝLºr‘×4ö·Ýv×K/¸6óy£ò—oþ†¿µùušöu£ò—ßúÖ_¾üó ︫¿Æ”öL¶òALa³72H]ÛÎDÓˆ %”PÏéCªC©LûzµŠZõ‹ã/uí«ûwoç¼ÆXG×¾úÂW†þ÷º~…±òè|D)"á Ö™C äCD“A… gö;Þùý/~åû«•¦]sw£¿'švíÅþ¶ÛîÒØ?ˆIªnšÞ>Èèýø7|²³ÿ>³÷V ŠþeÍø2€N÷;o¼á??÷ÜŠ¸%1Òá]nŠv‚È‘Œ îÕG²žR­gïwIå5Ë:úì³ßxÓ]Õ*.¿x/°gón¹åwÄL%Ë:$_åNS²ƒ7EDêôïÅIÍsI Ên>î˱e]÷Ì33íÚëßx¯È¥?¿ó·ÙöGUÝ„o*àÝJ¥ÃÌé™Ô¹µ²¹xnqûýÛí– wå”Tcv_”=cY3°Ž>õtã0{Þ—:çbS$éÄÔ’·ÛUºÎ‰çÙ9sþ“•‹þƒ@c<ôààNaŒ¤3æ¬isRw¢Ì Kx¤®¦þÙ$6€¥õã[l¥½/D$éÅìœ;Ö¼óóób‰ŒÇí¬¢‘c§aÖ1&SJÎ|ê^™CÒòñÅ×áV_6ç–XA¶¦:¹Ä>{3õÂ×_!à‘ RŠÙ=ñµtø ÔwƘxvw§ÙXhøW ˆéÅZ˜é΢X@'»iŸ¸¨˜ºT$“/RPö¾—º¸kj.þ•)‰¸ˆg9°C.¾Ä”£*&sÜcÎßw~yûÔÆòy\É®£´ð¨¢ÞA 0‡¿‚H4æ F$Äý1»“r9pÇ‚('Ðt´jmÌfêø¨uœ~xõìÉ5ì“cL¾H>f×8‡ÍY¼BEg4&RÖ©’˜RrsÌ3ƸÁQG«º.È ,o¤äõ(ÃvŠÄ b2ð,í¬9ç`€ÓèÂz4c)_$ïõ8¨äCKõ_u9EëDÉ¡ÆÏÄ$H¾êQN,R– }ç\Î5MjÏ¢¸0€QL„r eo ¢>¥¦_„FË2òY\øÐ÷vwç 6 ÜË׆=E—¢0Äì#ʱµ²½´¾ˆLKÉ—Öo­äÁ¾†ð2N6Fm¦¡·¨¾]Ñùôˆ‚™¡*¼»»;??/ßÈcæ_u 9D1 Œ£ìfe7€øSªð‚xvww—s.ž]XXØÙÙaŒ©öÌWþqÍ ÂD¼¹gŒ4;ωá"ä‰ñGPý*)5×/¯ªæÊœs}‹gwvvDÄã¹µ°¢äX@ õŽ˜‰j§=UtÀ€aè‘šç‘ƒŽ ªyvV$0F–«EGÐC§85ÝÝ]ÏKÄrqÐl6©È’(iö@ߘp‹çO=z G€ZðÖÂ-g†ÌUÌõfû³O¹–m!&¡rЪG‘NÏ'@ˆ²¿·µÀo*0ôY!ô29#„[ ð囪±¼¿,‡´ž(b&ªýjõÔg¢À,V^=sâ,Í>Í'Uv)”;;;þ܈|V ½pûRó-þmªA½º¬CqñÔÐR’u¢xà˜Mêp×:ÚÞÙ§9Èõ.¸{b(©•ìq3åPª@Pú‘}œ&ˆòID ˜•Í>Í-˜ƒ:0S”1ι(LKdºƒ£©b‰gduwwW}m€_Ø`ȯn¡ßEs‚HåDëû¹9á@ÊîQ^)¯b$S, ¬|÷?–Õ2þÍF¿©g‰Ø‚z9!ˆ³µº¹´¾¸•‹n×DŽ(ÏX¶šŠ!Y' ÊØ]ŠJD†e8—Öo‹Ù§”Í%ã({|ÝôL…{ +I͉©ÃL–¼’ˆÈŸVtªåžIÆì#iëH+G\ü…•$ñDqáÂ1=Ô;uÌu'·šT »‹o‚"üýQ‰ÌYÙ+ Ãæ%E¸¸È•‡Èpÿ žÁÛè DÙ°€Ξ\;ýÈjJUí:ø,PC½;KÝ6òÌÈÊîÑMUÓcË[ðã¹¾‰81ÕXÀÐÁ~u_Æì1Í"Ç5à(–·—77pè>K§cn8h6fÔuLc®LŠOL6`ºº 7ÏžÐÁïlÖfѪí¡êjg2©ÑÔ÷M"-N©vbJ`Œy­ª“x#ÎùÛoˆ‘ɺ•b½Î¸IDATtD8Rj=F§d±HUÙݾHÎHzDÂÝñd »—§úž &ÇÖʦè¯ä ž»äñpNO’÷‚ ­ +­¡0 ¢I;ñÈ©C^1˜€oL|˜rЦ¦bI ‚sÎ5M¸«@Ë·Î$`Œñ'ÉY‘™²»f¼ –æN“3'–o6›œÓQDa˜€ hÕö’˜‰êÜ=ëà5N³O‹Bª#¨îlRѤôy!ëœs Ls“…nýŒæqrb#þQ>¼W«q EjÀœ’³O;ÙS")2ˆÙççšÍç0ÖÑ´kL»öÎ…{ÁÀ9žßyŒÛ‡l»Îù¬< Õ±V‚ †2ñ*Î9  Ž¶œ}Jä›T•sÞh4š¶Ë9gšví¶ÛîªVñê«÷2ֲ죷Üro·‹gŸýœeå|€h±¤ämÔ ƒJe‡¿ÐÌÑy:_¦ˆ ²œs†Ž®_y×»îºüâ/]¾|O­ö…Zíÿ­VŸ½|ùž—^zðÝ·Ý£i×äÊéï!A‘­¶×iLŠ@ ÊÎ9“ï"FM‡®]»í¶».¿ô FåKšö2˜“´Ó´—ggþèå+?öÎwþ¹·H†²ê1"“ò_¤)ƒE#q­ œ…Ä´kÕ*jÕ§ ã/ßò–?a¬f1¶÷–·ü‰Qù’QùsÀ®_aŒ†i"6`¢jÕ`•DÎìÅõÅmš}ZRˆ‚mÎ*¤cï\¸÷ò‹÷ÖªOW*_zá…:CGägÄc]{ñòÊm·Ý¥ë¯¡_-3°MJÄ&ÐÂl§†*úµ“ò_ ÝÝIç”4~•èVœ×lû¨ißlÙoäv+å¸bÍ…€ÂG:ž¢cLöWzðâé„ú+QJ¦@d£ÏídñC7ß´þÌ3Ûö¡F£Ž…ù†ô‰ ìœGÓ ç\(;ºØ«´e¥IE1ØŒîžsIªÊ.gqûP·‡ýîm¦ùÖ¿ù›{Þô ŸûÆoüÌ›ßô™¿ýëÞ3ßj™o7MXÖÑùùÛÅði³Ù”‘»°”¡˜ °ž¦Ò_i2è6ê@39š}ZÒÓG5жíCÏ<óøM7þšÙûðÊK/¾ëò‹ÿè+/~€ÎþûŽùíçžûC(Ö1š;Ï3n÷§/q:¾ÂCá³-fŸ~ðÑÎûfŸR¥Ü’ÞL%á>!Âöf³iYGŸ}öñ›n¾«ZÅåïe¬û†›nùm1Sɶ‹W¹ö2Á[#w‚H˜E»ú4û´@¤¡ìR‚Å¿;»ÍF£ÑÜiÚö¡gŸ~\Ó®½á ÷2 °ñìÎcà‡-k–£ ïX«ïöBcœ\pÏÀÖÊæÒ¹Å­÷§Rž("+:óGÊ®FÖÂt§ÙlÌ7šÍ¦eµ¬£O=íDåf¯ÿ*éõhÔÎ9ì‘0ç^¢(¤”‘a;çNmz³Ù\XXàœ5›MÆÊ]„¦‹þ=Q}Áct¼„Kœ {?®8û–Öo­l==ÒÆˆôHIÙ{$íììNÿ uy`b ˆáX@õÎj€uàþJ`tSGt¼HLRÙ#ûÛÙœ#¨Ç޾Ê,À©Q»)Q> †Ó®bcqãÔöòù~% «ªÌUÌõfÑÌv˜H†ÔªcÍ ΧÌÓ‹;_i¿ÚžÀLT¨ãô…Õ³'ר’½XL2f÷«pŒ.ÕÞÜãܬºÏ.&øMU)§é©ácÜ:w¨£UÝGØ,0ôSUL¾I$f—òªèlRN/žv‚˜`À4º°ÀÌÁŒ(iz¾IDm5- Ÿ8ØÂ ®§£ßÙ1 E£¬h7FúNL#ŠûÖÊæÒ¹¥g6a”»ÿ1uQÈ»™31eWõwÔ”H´G?ëy/µP’ ¦0aô*÷j_Z?¾åód'Ï?˳3ƃv»»»»^Ù倛=o4ÍæóêA'žÿÎ/xMÔתw…߀·&ˆò#yh¡Þq¼Ú[“t”áÿ{çó#GqÅñW=»ž]ƒ[Á7.ä6= $NüQ ¾®Dâ,»p€ü¢äšì‰}Æ ·„“H(XÚ™+â’ƒ‘’x×ëÝÊ¡fžßÔ¯®îéééù~vouÕ«šþñúõ«ê÷Æ_“8÷n¸E¢NÍNÓKÑ'™©‹zíîDÜ.ò<‡Z+Í$VûÛŸì~øë=:&:)n4E‡¨Kt6žlòª¾Uq->µiv9kêªf¶¬"6æù‹òO³W+êå=±À¬¶qBÄh'Þ5*fícF‡ÓE¢ÿÚ5ÝFvI—è9ÚþÓö­­[t8Žï…¾DÔ?ƒêUëƒ  †ÿ5¦}h¯i;yo¤ß<χÃaí¿€%cDtBtJŸ¾óÉõ?oUñ‹wˆ6é°ûhß+Ù—š£ ä"?F¢íœR-ÅX0O˜`µH¿ÞMMó¥œäm§fÍÎjZªx«ŽëXãyžKŸ× ' 6%cÈX7f0 XæŒ3lÄ(¥äDk¿ß÷Š¢ðç¬Zë~¿µ€7†ÌøòÄ}œe!X4Î!›h$€÷;#^¢n™ö¦œÕ:.D¦˜Ä9ê–‰!Ó!ºHÔ¥Íã xØ——šW=2ReËÉOiÅó̪ÜË~•~¿pp0 z½ïõÊw90áÁJ’Ñ84ê„€µ£hD!ßz—è9º9½*,u®z”úÔšAåmv”sb ²2YOưîöªé,ËL(qž¢3÷«¤»;··ö·î&æÏ[#ºH7‘õt©i.õµy¡ó¤TPV”©…èR§gDDÚÿíiá̓ûkÙ9?; 9N‰iÓ¬Ió¶_ßߺëÄŠË4;ËL0‚ãˆh¤”2+d>Þºµ}w›ž#ê6<>p>4í4†ÖZ”>ÔÔ¡Ã G´µÙ3¢Q‡ÖN/ ëé²›€ÌlãÉtºë'ëŸ9Ù¤#d=]n ÙX4ݹyûW¼IÒë#ÿjH“õô/»¼ù¡É–hv–5ÎY¦B©N‰iãÉÆxÕã…Íhhs’õß(-9Ð쬓ˆíï|ú¶g…L‡è∞!Ú Óµ'tJtRg²Ð<˜A`ùÑÖÿ“ˆíÖžFlgºD?%ºD¯}òú7°Þ± @³°oÍ­ÑÑ3Ó.›.Ýüxûq÷=Êà‡i ªÙÝ|§€Ù¹ýÖg¿øìµ¿½ùWºB×÷n‘Î.>Ù¼µuk"æ ±bÚÀ‚jv@ýœÑ¥£g¯pƒÔèÎ[·Ii¢#¢CD‰is×ìÆîÖ¡˜s½ÒZK¤rLôÝ1¡Á”ðÊÃNo°ÙXÎHù3ØBùmÀÒ1wÍ·µS,qXëÔŔ➊éìË Ö³@ÛXÍ7`JP?Á8‘`éiÎϾqzzåø¸£õ£õõ£N礓©§Ï¥ûø8ï’Rª{riÀ¥9-yåøøòǟ߸ñÑo¶¯¯ÎˆF2…©TèZQÞϵÖWŽ/ÿðÃç7n|´}óÊ“Çݳ/›Ñ .xðМ;yvöÅۻϟœ¼ñ/é'Ïþç»ïó—^´²˜J¯ËÁ`÷òÇ_}õÅîÎó''o|ùwºtéß}ߨ€`Ii@³›ÀB)ýt¡zþòËDÄ6{h¹Uþê«|án5Keð…*31YÒ.–¶›—x[zš³Ù:ŸïíÝ~ï·ï_»öîÞ‡ß~û¯Ÿ½ô²e³Œ–WJõz½~ýõå‡?{÷½÷¯]{woïìÂFc`E€Ô>ÐìcWþÝ.]½úúÛÖ×ìtN²l0äyî*wc¼÷z½Á`ðãé)]½úË»wÆ­:˜> &,®ˆ4¬õ–МÍþxmíßkvw^›]îò¶Ô #´ (M<2mÎ hÐìÐ6 Ù m@³@Û€f€¶ÍmšÚFsšÝÄq¬¶—ëÈØ2‘&)Ò ­ÌQ³[ê5®”Srkp˜ßHŽð^j¨Ð&æ¨Ù#ê5´«°I¡ákš³Ù㸊Ûjnþ ©~Þ›ò€vS›f7‘Ö]o‰Ìš²î.åQáÊ2ë¬&uÚì®—‰5¬ ƒ«‚Cžôˆ9oµXqjöÆHÛY²ýÞëõä@)•OrL §EÍóœ%ó¶©À Y¼í€§Î(¾2“†ÖÚl³‚–I6x;^h6"6¸ÉÎ!›˜LL‘°ïÐzÎùK¥ƒƒƒÊ{É—¸®¨9ó›íÞ4x®#^ºShò-Òp8ìõz͸d+ܧj õ4šSÉ«ë¥7†¿3‡ìÏIüÖ0Ôé1z9d°K"öµ5_JD£Ñˆå»k+K €U N›=®pÆçm·Ð8a†Ã!ò¤¨,±ô¾”ÃΜÑh„å1€•¥6ÍÎZXk- öж,4îrÓ ÿ|ùTp+^Vš½1–¦XËÏ]¥Ì«Ú)yé 4;`•©S³‡ô©·<EÀÕݦ„½í…T{À@khb=»WÏ–5«ÓëÃ`¬8«˜S©–' ,,c;Rw–©Ù2·À"ã{(ÍÓ5«6oß¿ž[Pîß¿¿¿¿Þ£€rXy)<ëÙWÊ~—‡c¥~8 MXþä5wßþþ>>öÁ,2Ò*ÝÙÙ!£À'JË£Ù‰hww·¹.$H¹X ´ÖF³+¥4µVÐÏÞXèÄQ·¦4Ÿ‡úžkŠmp¯…¢L§z”‡7ÞÜ=Õº“ñ‚Ò%Ì~0+\H0À\™u=ûìWgHBYÉÖG­¡ª²p·V(W_½}Í[/HᕟU…§À[3^?"‡£¥ô˜(Óí¢°<´Íá1øIY¶wÒ)Ðìqõ‘žq´Âå[V»¹³¥ùæÖ¯ËìMѰ•ûŠ$wS{OGa¿2,ÏŒ£-Õo5!ñ§Å¼Sত ÇÓ{Žäáõ^Ϧ‚+€tbš=tŸ¸/¼2Í´w#Eýq^¹°­ôz½Äk=˲BKPfÊ–%VåBgEáÞ¸*Ê[¦\(Žƒ>RÙd§*„cßÓô÷»ŸM>ã¥ìtoG¡ÁÉî^ù+dÍPý~ß³·a!yž›¸FÜEâ‹NÈÙëõÌoÁL>¨F•(¾Þ`^ʉßK«Ê«p¥ûX&î9¬‡ÇjÎí"¤M¼¯Æ¡˜eÜû0ÞÖ­ož¦r¨Y–Õn>]S˜jÞé–ȃJn›Ý_šìIúÆÕò<‡Ö¨x›cD»»ñ®ÈûeŠü”$6x‰ÙìÒ&²lð<ÏÙÔ5%¦2ï%‘ýN 1–¸[X8ÐÁ`¹md¿¼á„…®”²dJ-àÈå¡a¸*Ïm’Op›“ïi­ûý¾lb,M9¶P/äÀ¿ÝÛJ6t_hdoáh4²Æ–â¾aàÖI± 뇌~x—܈[÷ÐY×¼5`ë`’ï‚ *S`³{‹|bG˜ ײ888è÷ûœFƒ&êI¦<5{¹o×t3‡Í[ÖàVê%«;Þe27¹/R9 ÂúÕ²­[h¿Îmë6ñîu ÍOˆ ý†››¯„ƒƒSÈZ)qln[ >•Þsê}J<)¦wëäF/û É´ ÝÃer…N¥ž¤óõ •W8…T™A-¼Î\µ÷=Wº2­Û>4 êJåc¢é¼K!9¡!¹b­Þ½SaîÞYü*¬,JÕ÷:ˆ¼>+㯨6N÷iÇÛÒΕk䈥ôâþiHt^y_×¼2½Ó0ì{,\e°mºÓ ‹~ö²sb.…ï›Ö“¨\æqõ§xBY9z§IÕtúVžŽv]OñY>&t@RŽªk ­a鬔©ÑÂŽ¸)“5Z¢‹™¢–øµ‘ÞE!–çÇzbUè[Ä)ßz1• Ò)¡Ù Õzá•g™u³ß~5ÞÃ’R2ã*F¾z±®¯ n0²¨C?åU=äIù¡ŽâÓãÖƒÄR^•Çœ>ÚB™‰s˜éÂSFñm’ïÙé}¨PHÒ—J)s;…Wže™†–©”’9§wU9õ*§UKGkíµÅ¤Àˆ(k¯Ö:Ë2.ôþpÞ+g©ÌaL<ÑÖ‘ õ%_ÓvÚU8B¯ç„ɲ§ã$fJ"§CÎRįaöSY7—;_êNíÂx)Œ­ª˜¿_yå•ýýýƦã+{Tð<ºË$¼)œ—Ÿ´”_›çõä3Hï óQÙx )ñÉsQ8¹äÉ]Ï>;j:XÍìÒ,Ǻw©óýæ7ß|CDZîÝ»÷ûßý¡¡<¨‘K³Ô;ììSX…„ì¸øk¾[ÓPµª5p».®°Ö,Y^ÝPÛ§7"bCM¼'%e Ö¬}Øõ>°½S)Pë U¾A-Ľó]5—¨ë­;g~W9Éz;¶¦ãc‹UªË ——(±â>e‘/ÅI?Ô.^g—rV£†ãZ ‘¾"¸.‹ —/´OFdÖÚ[AVs'ÉKÝ÷ø§_`ÅIÒìe/£”wäDá]¾Þ*\èõMY÷˜×Èò.¡¢ß¥}ëS–IXþ·š•í.†qÍ^ë-Ê=³<€²½K9ä;)¡Ê¡¾BZ2Þ¯Eè„’8>Þg€W8Ÿ/o_ÖŠ{~Z{ IòÆÌõ2Zök´‚v˜Qf…îjy×)õÀ®±ßR”2É+ÈOyJÿÕî‹`ˆe¿M@ÃØ6{åB ‚­ÙµÖ;;;&÷€$4Ç£'v¹­ÙÍÒ ‹W³k­Iý.S~v­FZÈ!5)·¶S@}ÔG}ÔGýzë.ǰgPÓ§tœ;^u½FD<¸wï#¥”ï:ãrlcÛØÆöâo;(aÄ+"…mlcÛØ^¾íÿ©wäDË"IEND®B`‚ghemical-3.0.0/docs/user-docs/images/notebook.png0000644000175000017500000002500311563552731016643 00000000000000‰PNG  IHDR¡Í·žÄãbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ 2?¥Ð× IDATxœíÝOˆ$é}æñ_,%ȄȄè‚T$pp/Lè°eÚ 6¨ÔÆ Þ®Æ—EbA;#l {0ƒOÂ0Ó½ ŒÇ7ùШtÐÒ-X¡^ð0e˜!£AU †L˜‚ Ø‚ÜCvdGEÅñ¾ñï}߈ïŠÊ̈Œx#22ž|ßx#"‘•`Á–ˆˆüðç–‹¢­äÁèÉc›å Ì(z(ÿÁv!ÃE¬Ù*¥?â¶‹p Í €]ììTž<–QôÐv1.‰Ã=ÛE‹ý‚]ƒ !‘á|°ô±_°gP!äkµûì¾wéµñ~ï°äyš˜‡Î4ÒËÙäò­?UÙTåÍNK5<¯üÙayåR½×5mmweëWw\“éøº_è k!d²‘4ÅÇj·jyößëlgÕÅ|Úީ鬿²uš"M|>„NVe6Y¿Eãš~N>îêRýJ˜|¾U¾KiVB¨n¡“ñ‹¨¦åSµ[µcV-[Ñ/úì{³_ØdX^m¤ì|Õ_ yïIoEeÏ–WgGeR&i%ó×ٞ˶×&èÔèL×©ÎøU¦Û¦*Ó÷i¿à’ä3ÍûÞêîÓ;!UÁ’´Í ´ÏÕît¨èþ"Ì>.zžžjšUk ª÷–M«é{Û M¦ëT÷óÔnQh›JO+ýZ–Nðù¸_h¢%©ìǬî4Ò¡S¥LÚ!Ôdõ­ Uæç{µ»èC¶µã´]†:µç¶Ë›WÛT—Vµ\e?BL¦“.W2½:ë«ífÖ¢@-›·¯û…²c‹])ª1ëèEÇ“/›ÏÕîª]—i—óª»sUÓÄ2”5uæ•«H“Z¶üÙÇé‡/µDÓòú¼_ðv¹ºñ©Ž'äñ±ÚÝ„®>»²ãCÔÔ:Ðý ³ÍTª¦oÓy›¶óÛd@žî\ù~å•ÃéŽ ªv÷*·éÂûVín² ]¤h.ÿB®ºþTÍ yÇÍ’aEÓqq݈”—?=¼©bmmk¾íDÜù¾å“s¾c‚Hý6D‘â_E ï[µ[uVg‡ {ð¶‰òä Ë·‰ù41›eÊjúX•*üL˯;~ÛŸUÕqMÖ«oû…&4ÙìœmÆ5ùñˆÈJ~øóAœåkµ@{Ø/Ø3Šö£c‚.«ÝÚÅ~Á®A…Èp>XúØ/ØÃý„Ö<¿½·ƒÕQ@¿­;&`Aî1¡{ïß뺀8xóàÂó-‘Õj]ºÿ÷÷åà»ëî¾q·pBAlÞ@™ DäbæljBÑgÑ¥7DO.¿&"røà°p8iIn$’Ì¡wÀB` !°†XC¬!„ÖtB³p–û—ž÷¸í2é>¯Z¦®–¥UuËîÃ2pWáU´³ýºë˜GóJÃ\àzùÀW…!¤ºjÂýî7ZˆY8SîèÓ¿´m…Aº|Éã¤\Ù2©^OKÏ.{Ñó¢i·Mçs([7UBM‡©²tÉÎREóÉ ¥¼ÇEÓ4]Õ|º`Rv›åàŸÎjBÙ²K;§ô/xr鎣s¼¤J6½îš<®ãÒç À}Õ„ªîœ8ð½Öf3WYÓaÞsh‚Ç„Š´ùË:[ 1© µ¡¬Ff³™‹€68}L(˧c &50tiÙu @§kBÙã*®ïܲMfÙ²×Y›½ÎLÊNï8&:© •íŒÒó㶽#Ó™ŸIùª.‹i9š¢š¦nÙ»*'€~rº&è·ÂjâΩeW]Ø¿¹_{¦L®a£|]ÑY}^~ö†PTµ©„[„—•)­Ï·0×Y&ËO3S­‡‹;qËdë€mÜÊ` !°†XC¬!„ÖÔº³j“w^ 2„‚ (}óÁ›0,ʺ÷þ½.Ëð@Ý«¨dï0  ¡²³éƒ ÕjU«0AÐø•Q*];.9Ä÷0 mõ wÀB` !°¦õ«h£šl]uÚšo]¶Ë=”ÏËözF»ÂPDº=ÞßJ¥7Ô&¿dCÛM{êœÛåò|ë²]î¡|^¶×sÙØùçJ>«÷µ­Õ„V«U£_2Ýi…ÏB+ª¹›šN]¶¾À¾î8l—{(Ÿ—íõÜ;vþYÉ>OV+ ¥»@l½9.©ÉèÖbªV÷Eš[‰¶> [5@_kž¶Ë=”ÏËözî ×ö7]k5„’j»é¯¦Õjõü—Ab«šÍSpóÊlä>Í·.ÛåÊçe{=£}Q4_btÚÔ«Ž Ù•XõˉTþ0ÊÝ7îÖú5“ns¯ä¾Ì×çõe{þ]Ï××íÃu<ûáÛñÎ_U–®TÔºŠ¶ ãZIÅPS¢­aÍ/]©Ke¸2ߺl—{(Ÿ—íõÜW³p&óh.]DlY'¯¤,]+ !Õõãîpßh&\c.²µÓwí‡Ca™† š‘þÕiëW½O¿rm—{(Ÿ—íõl"¯w«ÎN?;N[½d“ùt} J2Ïì¼l¢HG5¡.õ­‹¶ÊöÕm9~z<ˆùÖåk¹}ãÂzÎëm¦»“Mï¤Ûêµ–W–¦ ï¼#Õ<ÂPV«•µãn½ª e7šªM7‡»L&¿:UÎøãñz¼kÍn¼eó½0Z?pì8±­õ¥;ÿ¶t=_·¤¶ar\zÎZé%«  Æk"ç]šŸås”zWJ«ü¡Ö8W©Ž¢ 1=lv².ßÙWÏD¤þ¯NÝù†áú×UüE,Û²m½Vak}éÌ_gxŸ¬wÚëݶíí#¯—¬Ég‘î,Ðd—å²PSÛ‹I Î…s”¬×„šìâ™Ýøê\çÊFùì—e³mygfk¾uÙ.·jþ]–!;_ó«s‚y[²ß[Ý ÊŽÓÔ÷¿lÞÙãCMRM·­Úž)'jBM~‰ÒMéÚì¢-r±M÷Ò¯§ks™Ìdüñ¸±æ%ùFQ$aÊè…‘D‘í-¶ÖWvþº¯û.{¬!}Âj$îmiºÇ„šÖõ9ó%ÛªíUÑZMˆkKÕ”¬>Åw¹­cÁ¯‚Â黸s‘N×WÞN%iªÌ[?ªÞH"æ;½d>Ùy™¾^Yj=ç-C2×kÑ]±µLN:µÝùª•šŸ¹ôz³ãX‰„nz÷$ÃÛšorìdõÚº’Þæ|ë²¹¾TM;IMQwgoz¬";íä¹éëUe×s² *C"“æ¿&וoÇ* C¨éƒTuÛ—nŽÊ£_=²Tí¾¶k»è!BÈW/©ÞG„>à6®˜°¦Ö¨£Ö`OúΡ.ßýÔTŸ–@9eq’e=‡¹¬‘ŽÝÃÄ1!K’nzç›·#ž…³Í_Ñ{ÓãêL#;“÷™.‡Î8ó’Û!§Ë¡ZšVw›²½MÚž¿BÈ¢¤é)Ù&³Ã“¿dXÞ-¦ÓãêL£îûL–Cwœ²é«ÞS6܆½Ý=kÓhbÞCaúƒÎTÛMËm—¿ „Eé ´îÆªzÙt›ø’è,GSËš÷^!=|ôppó.ª9ëÔÆ³¯ÕyÝpYÍ<¯ yÏUá Ór z®Ã¤ü¶BŽkâ UuMÌÛ7I-bowïR"=,ýZѸe㩆åÍ«lú&óÖ)¯‰¢š³nmÜ´E ;\gÜô{²ÖövnÒº 3­®ËßNVu\Ý_3ÙÞf&ª/¿¤š¶·»·©M¤› SMOw=TN¯ê²•±i&5ߺµä*ïφVö{Ò¥¢ù«^w©üuB±¹¡¹²‘jJÑNºíxWMiE!×FPuy€_g\Uç–ª!¨MÕVš,¿m½ ¡ìÁ{Ÿe«ìÙeÒÙèò¦Qõ}&ómR¶SFö‹œ×iÃ5MwH‡HYhØî¨P§6ž09>£3/“àhRÙ|tËd«ümèUÍ™¬ž=ÿ`TMÙ2W9ЯûÜô}&e7}l2Ï*Ãms¹£‚n˜™hsÇèâN·J¤ÇϾ¿᢫7²¿xV9¯ÁO]Žm×Цo2ï*Á‘ž~öýu‚(ݱ »óÌfzlR5mq]Ù˜,Çô¢&4 g²zV ÙÔ†ÐeÍ’MKvÆÉcñŠÆ-¯luk'ºelBY8ä=o²E ê{MÊ]¤NYLÇMoªü¶xBéY­ÖA$âÇ=U›éªÊÛY뾦;½²a:ÓÖ)“ɼm6b˜¼¡l¥¹@®4€mÞ†*€‚Àír¹lhFWçâ}àeÇ_îk"< @Ÿw!D@xBô‹7Ç„|  èIÄmÒ±sßvdxB¾ˆH¸ÊþÍ} wByô«G¶‹3háN¸¹[ðîk»–Kãî´ÜOÉþ©M÷?¸¯üè|ù@p;Tà9›ß§CˆB›8_ h_Ù¾ÚùŽ ÉÕÒÏ ègC(ý+5 "úÅÙÊ"€ œ<&”wÓ2@ÿ8]šGóAPúü¶ïŽÙ¤>- €zœ« q³§þ"|d9WbííîmþÒ¯¥ÿgÇÕ™Fv:&ïSM#ûšÉ8=,¼¸gºªuAýâ\Mhh²—ýOžçÝj9ý\õ¸ì¹ÉûòÊ™¾ã¨êýEãè¬UXªÊ À_ÎÕ„ VõœMßž@§uoI­óÿQr@MLU§Aó›!Ôý•Ÿ×,ÖÕ¼ 'šãfáìÒßPÙ¬™¸R+RÐ?ÎÔ„²½â†ÒU;} ?yž¦s>oUßg2ß&åuh( œ ¡¬y4¿DÉãìkéñÓã%Êž» Ê~Ýç¦ï+›wÇ&ó¬2€œhŽÓ•JÉß›ðú€æ6`˜œ­ åI×`Tµ™lm)ÍÅZÖÊš%ô“W!”Eí§_ª6Óð—WÍqiÙæ¸¢q+p“³!T§é,Û$WÔD°Ç™æ8Ó{ek8 øÇ‰Ò ޼q²¯u\ œÀ=Î6ÇõEô$’p'´] p’5¡> wB‰žD""òð—ôò²i÷µ]ÛEAu$Ü eïkœ i4Ǭ!„ÖBk!€5„ÀB` !çpo!`88OÎ |€á¡&dY²ãÝÛÝ»´NK¿V6nÞμé÷é”Ótœ‡Þ;(]޼锕€{¨ 9`owo³óM?6V4n[ïË[†$’Çyï/Gw• çFx€¼!ÓÛ?¸ªh‡i²3­zgÒ&vØéi蔣Î<³·¯;=öxB³p&«ÕJ‚ Õj%""AxDm«ÚLEó€6yBI‰È… JDå5‹é¢† MÞuLHP" Ÿäq¶™ÎuMÕ6Ú®µ¸R+Rà¯jBy”ð¹F”=X¯3^Þ¸ªéä½Oçà}Ñüº>øŸ×¡¡h8?xBE”ð=ˆª¾¦3¥ÇŒè¶ Þp®cBÓTé¶ ~p²&B` !°†Xc5„’Kð˜^Ч‰nÚtõû¬õŽË»-·j€aqª‹v^(©†éާº/QòŸÐ{¬…PúêyAwÕÓñTÃ’y@`—ÕšP¶fÒv(:à'šãŠj.:èd~rªcB–nÍ…øÉ›ó„š¨Qc·8Ñ1!ýšj¸ª¶S4^Ù4èœv9Ñ1Átxöõ*·~ |À>ošãýC¬!„ÖBk!€5„ÀB` !°†XC¬qâV*eåÒ;à7gkB:W¼æªØà7'kB:WÏNÆãJØà/çjBº”Nüä\%LïªJ€œ ¡$HL›×"ð“S!gC(Ü mÐ2gCЄÀ§Cˆ&9è7§CH„ €>s*„Ò]­£'Ñæõ² ªÚµ`—S!$r1ˆýïG›×Ãp󗯹Aà/'¯7æ2 g²÷µ½ÒkÇeŸS8B"σȴ¦C€?œkŽKÓ¹€iÞ84Ñ€œ­ %tj5I­)¸Ïéš jDàŸÞ„]´À7½ !‚|âü1¡*"ðC/C¾÷_¿'Û_Þ–ë_¹.Ñç‘DQ$ïýí{¶‹… B@¯¼õ·äö7o‹l‰L_˜Šl‰ly[þàÕ?[_¿%?ûןF!„ôÆ[ßyKnë¶L§SÙ¾º-²%2¹2‘8Ž%>eñt!¯ÿéë""‘#!½pçÏïÈíoÞ–é ëšL&2º2yþkýÿõ?}]–Ë¥ÜÿྵòbÍzËCºÂPÆã±l_Û–ÉÕ‰ŒF£KãL®ND¶Dâ8–¯Þ°PJdY!UÐp¢)]wþüŽlooo‚'/€ÒFWFÜ«ÌNž'”wÉäb¦yᤖ‘ƒ7šZ<Ôd=„DÔ=Ö’pÊÞ´.{œG5 €]oÿàmùÆ­oÈèÊH&WÖçèȹÈòt)aʵ«×Œa÷µ] _e:Y÷nmÖ!sËäêDŽŽŽdñÅB^yù™\l‚ïäé‰DO¢ÊÁ‡vX!ÝÐ(O5LÕ) Ú—Ðd2‘í—¶e´5’Ñ•‘ħ±LÏ×½Ù^yõ¹÷þ=í Ú}mWÂ0”é•éfzr¾¢¤köY|&‡¿8”þé#ÙûÚžŒ¶Fr|r,ýËGm..*²Búiÿ?íËäêD—ÂÍesDÖ'ŠŽd´‡­c‘W×W¼~ïïÊÑL_œÊôêtsžÏd2‘éd*gçgròù‰œŸÉr¹”W®¿"ÇŸsYBwçÛwÖW±¾2½@i£+#_‹<]_åúÞÿ¼'ã­±üó¿üóæÒ:ɵޒç“Éd]ó™¬k>áN¸>éôÙ¼þñ§ÿ(7~ÿ†,O—ÊùÂ-„€Æ…_Y‡CéåsFëcEáK¡ÜþÖm‰>Ö ž?Jÿ>6Óœ^ÊôÅ©\ÿÊu‰Ï×uëOnÉÉç'²<]nŽÁmΜ' _â8ÖïüâxgggëÏ‚çÂógã¿4–³ølÓ)a´5’8Že¼5–³³õëgñYCK‚6Qи£?’oüñ7dqºØt£ÎŸ®¯p}ÉýîK|ËÑÇGσ%óte$“­É:˜ÎEŽ×Ó9e±XÈb¹Ø4Ý]5î „4î£úHîþÅ]™ÄY>]æÑr¹”³øL_,äø·Çòý¿û~étoó¶,GK™lM$úm$ñy,ÇOe¼5–År!Ç¿;Þ\îää¤ñåBó CèðÁaWåÐ3ùPF£u/¸äÊéó„ËÅæÜžq""Ño#™N¦Ÿ®kFÇ¿=–ñx,gÿoÝôŸÆÇñ&à¾Òšg›[­Vt Åà½û?Þ‘ý›ûDZoËôÊT§‹u-—òɧŸÈÁÑßÇ<þõc‘s‘ë¯>ëŒ0­{Â=;&$"²X.äñãÇrôïG­,š¥Õ7ÿ”“;uþ‚Ú#H‚(|9”ð¥p}^¬›ÊŽ??–ïÿ·ò&¸¬Çÿ÷±È–Èöö¶L®Ld|e,ñy¼>WèäDF£ä/ Í^žŒ€'’ ¹ûwåþÿªßJðø×å±<‘ë_½.á—C¹ñ‡7ä•—_ÙtV€¼ë¢={yvá?4@YGÉÏþõg2þÒúêÙÛ_Þ–¿£ñù ^…Pº4ÿtNØøäÓO6ç…ah»8ÐäUe›àh’8999ÇîB¾ð*„@åðÁáæ$Öé‹Sšäð²wäÙ~i[ÞþÁÛ"Â|AM@o¼÷·ïmÂçÚµkr÷»r÷»–K…"^Ö„è@åGý#¹~ýºL¯Nåηȭ¯ß’èI$GGG\ÍÄ1΅Ή¨áWÖ=_¢Ï¢ZÓÐ/o}ç-¹õõ[2}qº¹VÝhk}iŸ0 åúï]!ˆâTiG¬ÿŒ›œGDàk×®=¿«ë¹Èô|º¾ÍƒˆÜþ“õÍó"78BeWBHÂ$L†¯Vʺ6TtÒ*A ÃõW¯ËôÅ©„/…2™L.ÜÞ{$ë;¸žl­Ýx•îÛ®p&„êÔ\Tï!€€áؾº¾ éh4º@["“«Y,›&}ØçTï8KñDI¨Ç„ˆÈú¨“«ôLrwÖÑh$w¾}§ÃBÅ™šPB'8"q `8ÎÎ×WJ(Ý£=>þÒX>üé‡m œª @þäC‰ãxsko•8ŽEÎE_,:*ÊxB\=@ÖÑgGDZ,Ÿ.•ãħ±,O—ëËûÀ ^†dýæñoäøwDzX.ääóõµ7žÝNüøäX‹…üåwÿÒZ9q‘sÇ„ Š²>Æógßþ3‰ÏcYœ.dzeº9^´<]Êâw ù£?þ#Ë%E! 7’ Úû{rý÷®ËñÖ±ŒÇ¯6¢ä „IDATc9ûâLŽ>;¢ä ¯B(Ûíšnز>üɇ›0‚û¼:&”>ˆÿyB"ÏÏÿ!€ÀÞ…}áeúXC¬Ñ¡ÙË3å_tçSµ<ª÷¥_× Oû<¡¾ŸŸ“w?£>.'¸¤±æ¸¼;£ªjKéqój:5¬¼i›”¡Š¼ûTP]£WLHïËjªq‹¦Q6­lmÆ´f“~?áík´cBz§]¶×ÙÁ«Æi3ʈ«6@sZ½v\•&°ôN¾hßVGš5%hFk!”צ«Js\Ù´t¤§KÐ@ûœ;O¨ÍîÎt¥·´VÊö$Ó­Yè4Ç•M;ÛQ!=žJ^Ù¨ @»*…PÞNYç5Õ°Ëž›¼GgZyL;ALPŸsÍq€á „ÖBk!€5ZqØv9TB«Õª‹r¨0„öoîKô$êª,€á˜ÀB` !°†XãmÍB®ˆ ¾ó6„æßyBÔ„ÀÞ†5!ðŸ·!”® ÍÂÙæàoC(]¢V~ò6„²5!‚üãe…;áæÂªé"ˆÀ/^†ÁúOð™w!&Íp«•„;¡ÝÂjq.„’c=ªÿM½`Ÿs!”=¾“ý%ÍoA°¹×QÙ{nr.„Š$5›(š?#€·¼ ¡l7lšÚÀ^„PÞy@4µ€ÿœ ¡t炼À¡&þs6„DН„@Müçt‰¨k<Ô„À[¶  RVÓ¡&þs¾&¤BMüçmQÿyBÿBk!€5„ÀšZ]´‹z¨uÑq@÷¶ÞUoÿm{ù ïj…Pö‚¢}Û1«–‡îáÐŒV›ãòn.7 g›?Õ¸y;yÕëyãdç§[} [°¥õ+&¤wÚy·cP=×y¬šOúù<š•AwYõµÞ1!½ÓnâR<¶.hJ@ó:¿v\•&°¤6“<®;mÓ2@ÐŽNC¨ÎÝQ«4Ç•MKíñâ<¡6{£M›€vuZJ7«¥Ÿë+*kŽ+›v¶£Bz¼"ª"œ ¾ÆB(o§¬óZò\õz•i™N[… €vyÑè'B` !°†XC¬!„ÖBk!€5„ÀB` !°¦óû ÕaráQ€û¼ ¡:·å¸É‹æ¸¼ÀÉÞ’à§C(2„ô‹Ó!”®íP€þq:„DÔ7¦øÏ‹Ž Ôx Ÿœ!Ý.ÙÉxÔ–À/N†PQ¨„;¡ˆˆDO¢ ¯§kK„øÁ¹*=ÿ'ÖÿsÆIÞÇ9Dà§:&”…G˜4Ï­V›QŽ!€œ !À°xBQRK ‚KÇ„þq*„òšÑ²Ï£hþ<Œ8&~p*„DžQº§›Éñüá\ï8‘‹½ÜºáB€?œ« ¥Í£yée{¨ù€¿œ!BúÌùÊkšôƒó!”Põœ£–þr²c‚J6ˆ ð›W!$Bð@ŸxÓèB` !°¦“J.Ó¾OÙø:ÃtÇ3}?ÝÁ ­wLÈëF]§kµîû’žtéñéÒ niµ&¤Úég»Z'óÎR]U[õœ{v9sLHUkQ]E»ìšrɰtX.àgB(MF^³\Þp‚ ºæLµ% –¢f»² ´£×!”Ó›ãÚ×j©vü:µú¯õ.ÚyA¤{‡Ôô-¾UT–÷:Ínà–N.`Z¶ÓWuJPuïÖ™nQG„*e4¯×Ç„n#„ÖBk!€5„ÀB` !°†XC¬!„ÖBk:¹v\STWÖæºoà'/B¨ìjÚ:WÛ¸ÇùÒ¹õB2œ0¿8}LÈôÞ?óhÎTÀ#Ά7Ÿ€þs2„êµ!ðƒ“!çBH§î„î„…ãДîs.„´Áúà5ç»hg…ɱžÕJB‰žDVËQ[ìó.„tÑ»*÷?¸o»žñ.„¢h¾® D%WP ˆgÿæ¾í"xFBAXÙ'Ý«‹æ­ ‘çÁ“þŸL·Kot:?”£¸'‘Õjµ’è³HÊÁwäÞû÷l— ÐCoH:s”5!~Éš´Z­.eKá1!ާšpøà0÷u?Ïô!°¦õJ_H´OõiYš(kÕi´ñ>›Ëc2ÝyÔ†jœ¶¿{]~·Ó§] _¨ š…3¾–ùr¬²‹rêž ×vYºúL¸B~ÿ”†PÞ/¼ Ù9ç—_µ#Ï›Fv:&ï3]q’çͧh:M„XõP6žîç¨3 “e)ú5¯úœš\ž6m÷:ë­J9‹ÖCÑtë®CÝϤ‰ï2úEëŠ y'~¦e%ÏóN8”»oÜ• .\E›“UDSTØ6€|ÞÝYÕeU›! Ï×_ÁmmC;gfHË:„PÃ8¢]>¯Ç¶Êîó:15¤eŠMåÝëAuÿêHòeKD$‚K#¬V«nK„tæ"BÚ¬X7Çýðç–‹šÉ/~,ÿ hȽJ~øIEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_07.png0000644000175000017500000003221011563552731017145 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ ð × IDATxÚíÝy|eþðï$“£Mo °Zn*´Brµ rxÁ"*ˆºˆâÅþ@K…"늊൬²"‚r « "‚H¹¡\ű -wz%i&3™ß†4½¯$ý¼_¼J:Lf&“O¾yæÉ3Dàþ8"’e;À›ð쿌ŒóU»ÿ»ï.Yûc2ö#€;†;c³ÙöíÛ_Tds9«Ãá mÒ±cG“ÉW™¸öÇä¨ Øîî……æää½>:Z=±¸ÑFÎÍÍ;~üdQ‘-66Fï“?ö#€û†;8Pì²,;I’.]ºXPP°zõIúߪ÷ÍØà}v­XLD O½ìžË¯íÕo w§X—eY’$î:>$$ØÏÏïòåËê9Q¹ƒ‡òó1ŽÒ¯w—a‚ˆ('¿ð•ëÿðKõ<Y¿ÛZv«½u¨æòK»û¶es•Ûƒÿ6·Ô׿Vûä}‰÷ôŒ ôó½t={å–_vûˆ:´ºcH¯˜Øö‘¡!’ä¸x={Çá“w쓎jnoí-*î¬Zg™îpHŒÉ䟖–¦ÑÜ63*wðD~¦÷§=Ó(Ðÿýå+íÙÍ9ÄŽ;>øàƒÚ˧--êàOxê倬߫¿|—wg ÿöÛo‰ÈpáH~ãv.ïû̘á î·|ÕW[6müË÷Ï~ú‰™‹–ø=c⨡?íÞ÷ÍúµY—.ù™ÆŽ}lˆ{î0,Z¹‰8®:k[{K†òÃ]Iuu²+õ»,˧AåžnÂ#÷ÝÑ´ñGÿZ¾û§ïÅF-eß ýYŽƒ®ÒòZõ!}÷Ýw?<ö‰¦!A—3s–~½åøÙ?‰ˆã¸‘z=Ð?.48ðF~á=´vûvvŠ•Ìï­ùvôྃ2®e­øvGtTÄ ]L>®d.ýzËoç3”9ÿm®ˆˆ†ÄÇŽHèÖ8¯Ðòù–?î;ÊV`ä€^Ï?4T–åÜBóÔß?Ù¸Íl-ªÈ ÐfêVî<ÃúÆѶÍ߯gü•ãÆ M8ñÇÿ÷ö¿õWþ'ù5r„´¶ð†eßí¹gР}z.]¾BlÔÒ墨æ|°në#ƒú4 ô:ižËªÂ’¡&Ã]EU¦ßî‡\‘ÂÀÍÅG·#¢}É»m¦&éÈb&""ŽLa¤:¤;wîüÂÌ9=ÚEÌž5cê£CÇNK’t¾c† xnäïwîþ÷ÇñÀÓcƈùÙ«w¼Õø¬›0mv·ÖÍæ¾>{Þsc¾Û±{üß^Žm>çµÙ3»÷ñ $Þx3v/ÉoÜnä ¾“Çߟrâõ×fs¢mÌcc¿Ï¾h7Ïɦ½–sþ·þ “'MâóüÏ6F[©`ióèù› `Ö},f"jÛ¶-wã’ÍÁÙî "ì$Ø»F·'¢¬¬,9Ûf )ãÚéžžòŠtãŠÁ!=ÞåFUmÉPá.I¢ ű~«~g?eÙ!˨ÜÁãøQ^^ž¦y´A«#U;µº‘úË/¿”lܾËV" kÚÔ×’)4þËÝ}‰hãê•V~Ý‘ócÆÐˆÁ‰›~úE hÊîµjÕ*IÒʒد_¯ø—]Òí»f'¢faa¾ækBóhõ+èÑ¡‰DôÙÇËrÍEb£VKþ›¬'‡ÆäODkwàó2¥Æm¿?›3™¨GlW“íS±q«J½K›çੳýb; 6lý±ŒQƒú‘/ÙÔó7m4åÉQ²,¯X±‚xCÙ·jÕ*Qà¤;î”9MU…%CuÃ]–eIrˆ¢]U­‹ÅUûÍ)¨ÜÁ ä䄆…„„œ+*"*"¢„§^f]PÔÔÙÙÙæH¹ ŸµÆpv›Í\Ð88€ˆ–/_®,-44T“wÍ¢½ÙE8//ÏÅîED¹¹¹æ(Ù\¨^ˆúÔ$8ˆ®]»fŒ‹¬Dd3“¹ kûÈgF‹ oîk4pGDþþþk®ÓÝ«\¹/ú÷já‘!£G~òIý—Ùš“ìP濯Ï¿nÔë–,û`ÿÖ€æb™—““c ‰”-f"*m£ª¶d¨‘Ê]²ÛÂ]Ý,ã¨`QàÎöœ8ý—Ä^ƒ ú|÷)âõeÕzÿ`§?eÞÈ küÄOäææ*Ó5Î÷ º­äö_ÕsLþ×sòš5nÚ´©UßH=ÛÜÿà7oÑ?ܯáhÆ ÇqÉéîU®ÜíDo}½MûÑ¿µÖ¼VáK—.MMM% o0ù‡úO}ìÁÛžý3cÙ{ïœKûCjÔJë×H[Þc)»«´ªò’¡º•»Ã!Ùíöâ$—DQTw›!B›;xƒ¯û.¦u‹Ñ£G‹ºÍßîOÍλY>—<ªŽp›¹`Ý»þï±ãÆ{wývQæ¢Û¶zdpÿéï,§2ïUÚ¯6sÁÚ~™üø_&L˜°på7ñã†^òå7DÄ‘LD–Ül)8ü±GGVdõÊ®ÜKöŽéñ‘Ÿ}óƒNÇÿõ™16Á¾víZ;oìÓ9jÊ“é´ÚOV¬Üºiƒ]£/ n)qzªÌc¹Ü¨=bª¼d¨™Ê] wI’$It8$‡ÃÁz¾£r/`'šü{¶Oˆï9fÄ<¯µÙÎ]¼rîô©’•µÓÿíÞc²Íòà€Þ›–&¢t*-}Ó¶~æköÐ6eÜ«ŒÊ}Ëþã²`> ÏºwçåZ¾øîg“+‡ÿãóo&þeào¼‘Wðõ¶äÒî^rëÔýÜY‡Hõ‰uïøóW³WÌ›àïÿû…‹¯&Íÿ3=]nÖqÎ O°¿>÷Ô“Ï=õ¤rÇ2ºÌ—\—U%C¥Ü’ –óùç_¼ôÒK¹¹7ìvvNÕ!Šv»]”å›ÉþóÏ¿4mÚdÔ¨‡Øýã‡>Œ±eÀƒ_²¬·ÞàmIàH–9­CË;xƒÕ/Œ… )íïN¿êŠr Eyœ(ÇI¼à,ê|˽—úW§?émù:ë (Fk35 D¤,>æë‡ÝÁim>!>æë¥ÝÝ û«Zi÷ÒÛò –lÎ!I¼¡ÈÔ„õä)ywõBÊxD§JnT– 5îsçÎóññ›(ÚY©ÎzE²‚]–e›Í6nÜ“C† V½Ӏû±Ü·Y¦Q£¥Kß«ì"ÐæÐp°V{'âÆÝý Òwí»°ˆ;:wlæ41€èè¹+Ø9nå¶fðì„; Ü >¸8¡ÞûÀÛˆp~À£¡Yáw@¸Âê&Ü#""ëw{ê}¼'Ü©n¥*£B:Eyzú¹ôôsµQƒ—\¬Ë‰PáÎûÀmÕV³Œ$I‹½Û½]»N'N*,4×ìz—»üˆˆÈ>ú866®}ûÎÓ¦ÍO6 Ü«kÙ²OžLݺõ»””CF£ñÍ7Õýò8¸}û{öìº~=sñâ÷ðd@Ãáâbáá­Ë[¦d›»Ò®Üˆï·jÕ¢¢¢ˆ(++kðà{SRVóÓ€òpe,_½&¿þº³U«–DtîÜù1cÆ8°Ï74µÕæ~íÚÕî¹õÂq5ò(JâWdùááwß+"33O6 Ü«+44tÓ¦ aaaõ¸üŒŒ‹¬rÏÈÈhÒ¤ žlh8j«ÍýñÇÇΚõê… é¢(>}fâÄIu¿ü¤¤ùÙÙ9ÙÙÙIIóFŒ'îÕõâ‹ÏÇÅÅ=¶]»Ž“&½4lغ_~qƒ éÝ»£F§NŒ'ŽªœPõøº4d5ó ÕZJg—ÓÙµîu¯q€*óÚ!ñÞw@¸ÂîP].zˬ\ù ö €Gsý%&ìo«Ü‰È ¾¡ €pwaÍšÕ^°yS¦Ì¸zõ"žf@¸ßß;À¡· @ƒ ÷É‹’=ô'@ƒUê¿kÖ¬ö‚f™^½ú¢ÍP¹—Z¹{Tîn¥´¼¡ö”?äï’Y}=n«Ç¹¬vÝðØS¿ß¨:mHi³5Äʽn’½ö*w¯i¹õy¹ø4×mß8ÇZfòós<"ßwíÚ¥ä»Ó‰;ôVªûg¤´|Ï(½÷ˆ­cÇRânê®Í½Î’½ö*w§¾áž›ìª5fVbK=¤µU‹‰‰‰¥-ãÎåaÙk‹· w{v”ãÇS>æÖéØ2GJ0Ö^²SmŽ-SF¾{J²+Íá­‰ˆd §ÖÊi.Oì@]Áo ºókR½b^94®Go”ÓÊ{Ïð5’’Ê `¬7T­&;Õro¥{¸‡Öì¥é*ã ˜›÷Œ,ûÄ]iÕ1@EÊ ’oKžrÕCo™ÚNvªý~îJ¾'%%%%%q7wî\ò´oe¤Ÿ'"âÊïÔ”Ä:Gºù;–Ë®Èw¨Ù¨Ü]”íDôë¯;j;Ù©N¾¡ª®ßY²'%%yP²Ÿ:Ï"¾¬ñL<°gdÙ¯Fä;Tö•â‰ÇOݵ¹×A¦×ø:W­5À³êv›µ\{qAÏú¤7½ýxâ©È²_àž² 7Ç?Q0gß÷[³fu||ïê?@ÿê]S©šzõê{õêET•ýàé²x÷”.4 Mt{Çn¯Õ—Œ;¨õ6÷zIv\Cµf?¤Gœó‚d'UÓ<ž÷º?Ƽf·£Í½>áªÄÎ-®Ä„Ê•;*w7¨Ü뾎Få^YèˆgP¹£r@Ê*÷ú€Ê¹ã5ÜöT¤×<ûÞz£r@å^1¢$¯Þrvúâ½³ß?ðóKêEízôP›6m’’°y¦LyyêÔ)§O§®_ÿõñã'Ê]f-©Új”6Ã;ï¼wúô™­[¿Û³g×Å‹—èö+«ÕAÓû·hÑ»ï¾9TÑ?ÿ¹øÚµk»wïüõ×ééé‹¿[öt"JNN^·î«ÔÔcÇ?8nÜøíÛw¬^½*5õØÐ¡CfÎ|¥¾‚²ä¾-Í·oÿaÏž]ׯg.^ü^½79=ûyuQròÞ×¥¦2äž3f•q¸bCª@9þË~  ã´Ìùààÿ=vgã`"ʼa]ðɶ„É‹’çÿ­G€Ÿ¾ä]»cNî™úGÎáS™ã†·ß¾ÿâ΃—†lÕ#ºé6îÞ94ºmE®RÖ¹jÃÄÇ÷[µê?QQQD”••5xð½))Ù{õáÃûCCCKÞÅjµÆÇ÷=vìõêÕç¹çž<øž-š—»ÌÚS©ÕP¾Q]Ú ={ö^½zUTT¤SÕS—-ÂÉÉ{ÞxcѺu_ùù™ˆ(..~íÚ5­[·"¢´´scÆ<~ðàÞ2¦GDD?~$88˜=_íÛwVÿÚ¹s—sçÎÖKP–½oÕ7~ýug«V-‰èܹócÆŒ=p`oýïNÃÐWäÕáô,(»Ýåአ©åø¯•+1å ‚|ØíFFõŸÔÉþ祂Í;Ï_¼VÈÊs6ÆbÛˆÀõÛÒˆèpjæc÷¶ÝqðRè¦ç/ùä£%K–.Yò¾ÑhLJš3dÈಗYKª¶¥ÍpýzfË–-ë1JΞ=û÷¿¿¶zõ,ÙÙ{ODD8»Ý²eˬ¬Ì²§{)‘Ó¯¢(ÕצU|߆‡ßQ@Jû€û¨È«£´ÝîòpņTrü×ʨ~úì\+«ÜsòŠJ›mŦÓ#¶êbÐkmviæ;ûˆÈ ×62=eÐk:· ù>9ýÔ9M‚Œz¦â+PÍQ!CCC7mÚVöl/¼0qöìWüüüÌfK§Nw²é]»vùì³å¬õmÚ´™ìÙ­à2kPÕV£´BC›¤§§GF¶®—[vvö³Ï¾°xñ?[´h¡LlܸqFÆEVɦ§§7nܤìén«âûVÙ®ŒŒŒ&MÜz»J{uTêpņTrü×J›{·Î¡ßì8o¶Ú -ö?—z!Á.ñ¼†ç59yEk¶ÞúDÜ!2xÓÏçã¢C‰¨[§&ëJë\©¨fåþøãcgÍzõÂ…tQ”NŸ>3qâ$—³Ù ƒÁ`ÈÈÈPZ܈hÒ¤—ÒÒÎÙívY–%I¬Ô2kPÕV£´Fzèõ×ç^¹rµ  `Á‚…7ßÅÓÒÒêàx}úég'N|¡{÷nꉾ—2}àÀãÇ?Ó¾}§… -Yòn¥–Yƒª¶¥Í0eÊä6mÚ roïÞý›5 +.jž»ÿþáuÐ[&%åèÔ©ÓzË̘1­Q£~ýúõKlÖ,lÚ´©eOw[.÷­K=zÄ 4¤wïþ5ž:ur}—´e=û¥½:*u¸bCª@9þk}<÷ú…ñÜÁkx÷ÕT Æáª 2Üñ UTî¨ÜjÚd•;*w@¸£r@åŽÊ•;*w€zP+cË rðzS§N'¢wÞù§z Çq‹¿5zôØ¡C‡Œ÷$›¾bÅçÛ¶ý´fÍ*÷Ü–-£øÛi4šìì¬úH®¦žTîPo¼1ïøñëÖ­g¿®]»þĉ $ÑÌ™Ó?ùd9KKÅýëß3gNwÛ ¹p!--íÌ™3§N:~üø‘Ç÷'&öûí·<ýyAåUáããóñÇË~xt×®]‰háÂ7×­ûŠ ·Ó©SÇÍ›7?ôÐÈM›6wîÜ)&¦«§l×ë¯ÏíÔ©ãÈ‘ñôç•;TQÛ¶mÿþ÷Wž~âóÏOœ=ûÕ¶mÛ*š1cÚÇÿK’¤?þ×ôé/{ʽùæ[!!!O=5Î žô–€ªëß¿ŸÑh”eùîWOoß¾]§N§OŸݹ}ûv±-K–,-**š2e²wxŸçµÞô¼`~ü„Ž£Û´éðøãÍÌÌT*Ð/¾ø²OŸ„¨¨öƒ 9pàà† j?lØý§OŸa³I’´hÑ[±±ÝÛµë4qâ¤ÂB³r÷åË?íÙ³wË–Qe<ŠÚ¾}ûYÍ›––6lØý‘997zöì]Á*8777&¦[^^žzJll\^^ž²—kÛ¯_â￟e3lذ‘Ý8sæ÷~ýkv  ¶Â}ò¢äíû/Î^z`ú⽫·ž%Y™¾óà¥9zéÉD$ŠŽ¯¾ÿcæ»ûf¾»ïëþPÏÆnÈ2}ûËŸÿÀ´·÷þgó™"A*Îù›ŸÏ½ºäÀ¬w÷ïû¹îÙ¹E[U³1Ûöfd\-œþTÌ‚I=õ¼æÛ_nÑõÞô+™–OżþB÷ù6¥eɬ¾N-&¾kûFûŽ_S¦ì=võ®ŽM||ÙÒ±upZF>ÝÈ·mØž&ØD”–žß¡up¹Û¾aÃÆùó“š7o˜”ô:›¸}û½{ÇFÿ™3§%'ßzZ´haóæÍ|||žyf¼ÙlY¸p>ûõÙgŸ9yò$›ç«¯ÖΛ7§Y³0??Ó+¯Ìøþû•»¿öÚßCB‚Ë}'ÉÉ{úöíCD{÷îëÛ·r-TO?=nåÊU’$‘(J_~¹æ™gÆ«gp¹¶ ý÷ï?@D›7ÿ×`ÐoÙ²•…{BBÿ_C¨­phP¤¿Içï«9(òð©[#¶6ùèØí”ß2GÏöÐ=QGN]wZÈþWG Ž ò7õÚ´:~:[)¥º'*(ÀàkäG*ç£zb\óä”+²LDäpÈ{]УE¹Ò!2øŒ<":ò[&¯Õ;“ID¤çu¬@¸_¿žÙ²eK§‰))GGz´C‡èˆˆÈöí;߸‘«ü)8øæ2}||œ~Å›V®]»:`À=¬±â®»zdgg+w ­È£(ØBV¯þjþü7"""üqÛ¤I/EDD&'ï©à“Û¦M›¨¨Èü‰ˆ¶lÙÚ½û]-Z4WÏàrm{÷î’’BDß|³éí·ßZ»v==z´wïø_C¨”J ùÛ(ȇÝhdÌ7 Êô?½r;ß,4.ž­I°1ßlwZHnðÆ¿R”_9îæ¼B[“`cפi#ßП¿gumßøèé¬Ö-üƒ å>JÛˆÀõÛÒˆèpjæc÷¶ÝqðRè¦ç/÷Ê•«Jïì¢"›Á`0 3f̪ì®üñ±³f½záBº(J§OŸ™8q’ËÙ*ø()))11]9ŽKII‰‹ëV…C!!¡NΕ+W™L¦Î;WpmûÏ›·`ĈáD4bÄðÙ³ç”Ö&Sý5€Z ÷?Ÿ/´Ø ÌöÛÏuïÜÄå<±³ãÖlwutž­OLØ×?œÍºQäpÈW2ÍÿÙ|³ëH;C7ü”–[`+²I›vÜlˆ÷5ò×s,.¨Cë`³UÜrŨ×ÞÑÔ¯‚Ò!2xÓÏçã¢C‰¨[§&ëJë\‘mŸ2er›6m† ¹·wïþ͚ݬ^/~kþü7:tèÊ‘#)¬‹á‘#GYGr— #êN8Ž?þ¯sæ$=ÿü³_ÛþýûgffÞÿ}D4|øW¯^--Ü«¿†Pq..³vGÉñÜ'/J~0±ÕÎC—l‚Û¡É#C¢x^æ«OxÚEÇúŸÒŽý/‹ˆb;6uO¤Ól™~Þqï±+y…BhˆïÐ>á1‘$É›wž?|êº,Óо Ý›Ñöý·íͰ ’Ëì{Ž^]·íç‰îÐ:HYɲåâµÂÅŸŸÿ·~¾ºüBáõN*¶E¨I½Ø~ýàJLîiçÎm¸Ì@͇{•¿"äéå·’ßé½#îw€†Õ,Se—®ú—ÒFžîï}qüî^¸.+@Ý©hWÈê Û²xzìho«Üáw(ÁEWÈððÖ |§ +¤{‘ Pq<Ò ð¦ ÐPÂjáâ™PgÐæ€p„; Üáw„; Üáw@¸ ܱ î€p„; Üá€p„; Üáw„; Üáw@¸Âáw@¸Âîw@¸Âî€p„;Âî€p„; Üî€p„; Üáw„; Üáw@¸ Üáw@¸Âîw@¸Âî€p@¸Âî€p„; Üî€p„; Üá€p„; Üáw@¸4|»îc„ ÚbF«ÕJ’äp8 ƒ¯¯¯Ãáp8‹¥iÓ¦¹¹¹{öìÁ„»»{á… Ët†ˆX ³ˆw8¢(rÇæïÓ§òîîžì>>>F£Q]¶Ë²¬Nv»Ý®$;ò쌺Y¦ŒdçŠ!ßáîîÉn4 Ïó<ÏkµZ±˜ J²+7L&êw@¸»£çž{Nì&“Éd2±p×h4J²[,–’÷•eÙÇÇGAzôèqðàAI€pw-çyNg4•d÷óócÅ;Çq,ÜK&»Ãá`í6†/†Ãîî‚5¯ó<ÏÂÝÏÏO)Þ‰HÅ¢¢"efI’$IÒ¨p§Óét:Ïó]»v=~ü8&@¸×3Ö«5¯ó<¯×ë}||X¸FY–AÐh4²,³ÆÖVã„•í,ßq$€[i cË(ÉÎn0ƒÁd2úûûûøøèõzåüªÒÃjv§|çy¾K—.8˜•{}oöíÉ®ŽoÖæ®Ä·º¤2]¹ÁîÞ§O›ÍÖ³gOAl6›ÓOvãÔ©S8Úˆ¨K—.aaa±á^óØ×”ÄÛÙl¶ÂÂBÖ,#ÝNV¹õÁG£áyþŽ;îpZ¸S² ‚гgÏ’‰Ï~ž8qÂë÷vBBBÓ¦M•/ˆ™ÍæÖ­[:t/E„{ P§¶’ìV«U£ÑØív*>¡*Š¢2›Ãá`©ÄòÝ`w/¹|½^¯×ë]>4kÄW§¼’ûÞWòÇÆÆvëÖMùÞ/»Áö›^¯ d;°U«V™™™¿üò ^÷š w›Íf6›Y9¯Õj9Ž“$Éf³Y­V%â•@w¨°?U¶Eˆçy___—&œrßf³õèÑ£d½ï%lllÏž=õz½:ÙµZ­òí_å'k 0`ÀÎ;ñš¨Ë”ŒŒóʤððÖç#""½{Ë'Mš¤tñõõõõõ5™Lì$*ëç.I w«Õj³Ùìv»SemµZóóóûöí[7+ÌÞ„œ"¾´Ü¡~K~–ìƒÁiÐF£ŒëÀn(’›››™™‰|@å^ŻӸ1EEEÊ7TÙ_•dgM7Ne»(Šÿýï{÷î­ô‰ÔétM­ôAb%¿2òš:"•ˆïÑ£Gioµ]ò«“Ý`0èõz%ÜÙ§"%ÜAPîDD¨ßîÕ w»Ý®bQ•ž3,ÜEQd±®þ©4Ñ(­:¿ýö›îê”wù³6¶E£Ñ°¯Úºü+ûÌQZî×xÉï”ìì§²8ŽSÞ)ÕÉŽ|@¸× ‹ÅâTb‹¢¨tyT7¯—Œx%žXÖŸ={öÔ©S]ºt);ÖËÍýZ*ùÙ7i]–ü¬•ß)Ü«YòÇÅÅ9%»ŸŸŸÛFÖäe·ÛYǤ’w ¡wïÞ{÷îÅëá^i+W®|òÉ'Õ1§þ¦RɧJ¦³BØl6[­VADQd¥nÁ]n²—ûÆP;ã8ƒÁ`0\þ•×<»ËJþèèhåK¿J²3lܶX»Ý^2Ù•Êèk÷òYSžçÙɧpGñ€p¯|÷ññqLìJñ^ãÉ^K%£¿Æ[ù.2®<¿¿¿Éd’e¹°°P‰ue}5ö®€p@¸×@¾GFF²RTÉ¥e†8emîEEEu–ìuSò×lÇ­ŠzùÊI]Ö[Ÿ¿Óg&¥xŽŽÆø3÷êæ{@@;Ȱ¡”XWnÛl6wHö)ù«üà²äß½{w³f͈ˆÐ t'UÎU°q{”¥Êèê{ØõiÙ›Šw„{Íä{tt´A…ˆœ’Ýn·{ÁøŽU(ù+òн{÷ŒŒ eP¥·(ûÄÃÚÖ‰Èf³±AŽìv; }™÷.x»téb0XúœˆãLD&u²ûûS@éõd0pl·“ ÕªÏÍ%A U¾;ˆì²ìËq¾è€p÷ÑN£a ë>D,âµ~~Ä…„«Ü9A AóòˆHã†l·“,;ˆìÅÝiLD¾DðüZQÄ.@¸Cýk£Ñè8Žç8žãôD¼¯/sÁÁDAA¤×“FCv;r'‘,²²ì²¬å8^–µDZŽó%2¡x@¸ƒûhÁq¬¿£ŽHÇq¤×“¯/ßüg2‘FC6ñ<q¢([­¤×ó6ÛÍd'≠D¾D¾Ø›¥ÃØ2PwÓéX¬+ßW"½ž3H¯'?? æš6åBC)(ˆÈh$ö'½^«Ü…ãXÄ›8ÎÄqbp1TîPïÚ°™âÊSzȰS©F#Ïs¢(OçôzY¯ç‰XƒŒV–YгÊÝ„–„;Ô;È!ËŽ“ˆ$"²ÛIÉngÿd»3›o6˨&’(²ù²ì ’‰D‘L$cŸ Ü¡Þ]e‘ÈN¤üäØ?‹…rse»4**"³™”? ‚TüÍ&å§…ý“ïw¨okìöGy^T 0ÀÛl²ÍÆåç“VKDÄ*wA ÂBÊË#‹……»(Ë7“]–Y¾[dÙ"ËÿEWH„;¸ƒ?Ž@­ÖN$ʲÈh6Ó2Çqd·ßì É öÜ\97—òó%Ib•»òÏZ\¹ÂÜ#Üe¹kœá8 ‘F–M¹¹ÄZÏÍfN§#­–A¶ÛÉb¡¼<Éb±Èrj¦¸x·Ê2«Ü±?îà.•»¨ÕÚˆ éæˆ`äp˜Ø0z½¬×“VKløA¬V«,[‰¬²l!²ç;+ÛñõT„;¸‹M¢8H«m«ÑÑ­ÁÞlæÍf-Ç‘V+‹¢20¤¥8ÙYÊ[d9W–óQ¶ ÜÁÝì’$"j£Êw‰ãxYæ‰xYÖ:ê^1Âíùž#˲œ!ËWîwp+ëD‘ˆd"¥~d™/Z€ç8Ii^'‰lÅɞ͒Ýá¸(Ë›Ñ&€p·Í÷vC5Ïq¼,KÅ'N•ˆG² ÜÁÃò=²x`¾¸qFV]få{’áž•ï×d9ã‚8.ˆÈT|DŠDED²\(Ë…D…²œ+ËHv„;xR¾çy%߃8ÎÈq…ªXg?ñeT„;xu=þÏqœ@T(Ëß Ðîà6 Ðj.Ö€p„; Üáw„; Üáw@¸ ܱ î€p„; Üá€p„; Üáw„; Üáw@¸Âáw@¸Âî ÜÿêumõG÷áÜIEND®B`‚ghemical-3.0.0/docs/user-docs/images/setup1.png0000644000175000017500000003063211563552731016250 00000000000000‰PNG  IHDRú'À| pHYs u u-x”utIMEÖ 25%l… IDATxÚíÝwXS×Ãð& €ÈA† ¨TTDPÁ=~µV\X Vuöµ*îÚ¢µÖ‰£EÅ­uaU¥ Ae€‹¡²WÆûÇÕ4†ä’0ðûy||’“{oÎ9÷ÞoNÎ !ð`B„B!: ¥ÊÎÎäpŒ™¢;uÛÊŽ;O_Co4ª‰n/^X·uCBnB˜âE•••‘•RWzzº­[«‰ O_3é7{ Q¾~·ÎqOù(îKJJÃÂîûí$ñÂS=Âwï +**­­{‰'>«µ:öÀ'& ©|f0 £Ör¦ÄúšššÎÎΫ >ŸÿüyNqqq`à >Ÿ7xð ÿÞ”£ß>qÖšBž÷**­ÚµÓjӦ͋/Ä—Äèš -õ6 ¾Ù§›1«•JqYEÞ»Ây[÷׺Ö?ÖB\¿_‡„¦÷Ô KËžqq1êêê***„*ë !oß¾ÑÒjצMmqOè©”ø”Ö­ÕìììÒÓÓ•”>Z£{h‚Ïù¶¿•…ïÏ~ñÑÆ] ¿ùf"3'©TËPžuYY‹tÌЇÐÄ=y’hiÙ“bmm­®®Þµ«õÐÕ«—x<¾ÄòRâ^”óâY/ã …BC £{hâúXv%„dzšÏÒbBˆûp'¯ÿ¹] =¸oï„q£gº»óŠ oGþGü!£G&„°¡ÆøB¡Pb¼/~w€Iû%k7«”½õ™ë5wÂ0^QþÙÐ8ô?|‚¸g2™êêê±±ÑâYéÒ6›­¥¥¥®®.>q/=îù|^UUÕ‡ ÿoŒOý/ „BŒî¡©ûåØßsÇ8r F ê?bPŸ¿ëÄ¥k‘ „ñCBΔ+µ:ó0ÓÝŒsuüûæ¾Fûÿ1†}¨Ä'&I%ŽsÑÝÇWW•hsüaoo7aø »|u]ìø‰¯¢¢¢®®.Q¨®®NMå‹,GJÜ …B>_ÀãU‹èyFöïK0º‡¦ïþƒøèˆû†­‰M/«©S§ª««{Žv ªbièhiBüýýE ëéé)¾.SV£9ª%JDwóòòÊÚ Ê˹Ï_Btuu• _•)±± àÓÍ×SFu_ê’RG÷üêj‰¸ŸÌ‘Œ{Œî¡©RÏ!äyBv\ÖŽ[רªª²Jóí:å½-Ô×Öš6mÚ»wïD‹*}|$‹ßVRRb0¬Öê:m5j. ««[ÎnGé £E¥?CP“>Ñg.©9ƒ1zô8Bˆ­­}ll´†††Ä_Êè^ àWWWÈv>Çÿˆ!˜»‡f`çÊyß¾Ÿœ^RÉÓ70$„ÄÇÇ3„‚ÊÒâ3×ï.˜CeæhgBÈÅ‹…J*8)àSfý•+Ùl¶ººzTÔ}[[{BHïÞýââb¨Ä¯}t/Š{>ŸÏçó¾@ ý±F÷ÐÄUVóç~=LK«­ “YXR}dÏN[ÕZýòýxaeÙ'û¿w ®âñ§sÿ¾q»Méëj=ÓÀîMv@ÍóP¿ÙqâŠÏÿ†¬\¹ÒóÍ»Àë¡£jöÑÑÑüè£ß^ïMaÉ¿Ž_½z•ߎƒ“>AÜS7®^½Äf³¨k³„ѕۢ¢b‹M÷|>¿¸¸¸¨¨¨ºšºZ+àñª««yBáû¬/**VUectMÜr¿ýjE/”xJBP(2”ù¬Öj:ÂÒbBȹ{/ݸŪ(dðªƒÁgªV©iñJ‹]º~æÔÉVe ¡€údNtÜ#èHÕ’\%Aµ@‰yíêÕ’×â‡ý­[·®D=nU^ ,à ÊU­u«”Ø'4¾'Oß¾}Ããñ54ÔEf¥¡¡STTÌd*K,/÷™™™+W®ªªªäñª©á<õ™Lê•D(VVVΘ1£{húø­Í%þÎä£!·V¯&¢{Ê„((¯"œ÷ÇöûÕ«Û¾ÿÐŽ!•ÚÅ"„%íN<Ò‰G!„ññC„Á`°Ù,-­v„ñ/QPQQÑÐÐ`±Ø„6›%3îµµÛíÚõ›Âïš1/Nø,qÏd2Å¿#AT®¢¢">‡#st¯¨‰nO_¿‹®‡/Pçî}­;BÒ£q @£›è6°¾¯„¡PXçŸ7€&.$䆇‡·:àK€¸@Ü@KÁlµ400jš ØïääŠÃ÷ “8îõõ;£_ä÷Ù»kÇŽm‹/o}Õ”«ºcÇ6w÷É8žá‹ÝGF†5©Z:885Ùl }ÕÔöW˨*@ Óü.Õr8ÆŸýÄ}£ãr3>ïÿH|@ܺÑýg½@Ü·ð´Åè÷M"mE 4R.ct_bÜ/Ü&q£û&ÒQ-|t_ëêC†¸‰ÿ£P(tvvO@¿F÷Ð5ú_Õ¾Ì/½ò,=»ˆbb 1Æ©KÖ¢q®¾ŽÚÊ™½E?•.’-c_”í\9°ñF÷ªªì›7ƒ]]‡Rwoܸ©¦¦*ÿŽqƒ'~E%?(4+1íÍ»âJU–²‰æ ¾»r4k¾ é™ìö—yeþ瞬ñî[ëÂuÛ‰âozê¿}Qm¼÷òÊ[¾ûDÒC1Ý!±OóvŸHZ4ÕJGë}z¶RQJú· gWmênbZ«•R­ÃóŸ‰ä®[·!""¢ºš×¿¿íŽ¿êêêÊS«yó¼÷îÝ/Jó½{÷Ï›7×Û{žœ 4ÆèþÈßɺZìï'÷h§Á.-¯NãþÆí:¹gݲ©þÝžšõ®›Q[9®ÃNThuùkÛ°Ýð…N漫ð?÷dùöˆ~ ß{*©¸´Jžµ®…e;Ùt²ï¥Ïf)³YÊö½ôl:] Ë-0ĶspDŽèî­¨—þµ|'(m==gÏšå÷ ..ÆÔÔÔ×w£œm6ÌííÛ·‘‘Q„ˆˆÈÂÂÂaÃ\å_€~6©nõ/÷ÝhÇ.Úšlƒ´QS±î¦³àCHÕAý»=9óm7#-9®ÃNThuùkÛ°Ýð…Æ½ÿ¹'Ž66ùØnòéß^[í|°\_X–’ù¶Ow=ñ’>ÝõRž½ݵ2×)«àýË-$„¤q Ë+x=ÍtjÝS7‚ƒ¯ÛÛÛ±Ùluuõ+–†…É{ TIIÉËkΞ=û!{öìóò𣤤$ÿô£ûºu”Q'“×þÍÈ)ª¬â×§Ö³Ûy|aFNQWCM9÷Qv¢B«Ë_Û†íF€/t2gåÌÞÔ &5¸Ëº=1ò¬UR^­Ñú£_ÈÕh­RZ^ý_°2ˆ³m§àÈSŽfpD޳m'%‘st·yóÖ¤¤Çeee„ƒ!³'LøßŽ;Ïœ9›’’zø°¿B ÐÏÝ×­£f~mq;êù¹›¯ ÊÚ¨©|e®=| !›¥L=*>ï,ÏŒD=»ýÙó¢öÚjª,¦œû¨;Q¡Õå¯mÃv#À÷Ïž_ ÉÌy]RU- „È­mÔTŠJ«Ûª·••V·VýèImz´ÿ'Œ•øúU~ißî–µnS”¶sçÎ_½úGGÇÁmÚ´)--³´Tàm»ŠŠÊÌ™ß-_¾jÕªR²fúÑ}Ý:J•Å9Èpä C¡¼.(»õüð…§ó&õ¨[6Õ³ÛSž½3ïÒV¡}¤èNTtu9kÛ°Ýð…Næù;yPŸ¾·ýmÅÀŸ—؉}L‘Ž™aÛ‡sÅK>Î5å|%LeÆ`›N'‚Òm:1•kOGQÚVTT²X,‹•½|ùJE[îå5;33mΜYŠ.@?w_·Ža0ˆ¾ŽÚW“ôìÂ:ïÔzv{ШĽœûHѨèê Õ¶¡ºà ÝWUó™L%&SéMaÅ¥;Ïä\Ëmç÷ãTÙÌÞº„اyÁ‘9>S%‡áÎý:9÷ë$ç6E£{?¿m¾¾¼½çuèÐÑÛ{Ε+W?M—ÑîëÖQ»zw0áh¶QU),© ‰ÎátP¯s ëÓíe¼×oÊ»tTWt)´ë°º<µmØnøBã~ÊH³ ·3_HÖRg9ÛvŽOΗg­öÚªó'õ¸|÷Ùß·3+«ø¬VÊß»÷}¼žiëâ2ÄÅeˆ¨|Ú´) HÍeYaM¿–x9ýÜ}Ý:jØ@ν/NýóoE_£µŠ¹‘–çønuî¢út{ZÖ;“ΚʊÐ? ‰Ú6l7´0 BˆP(ÿi@}ýÎñ<¾ð×?ãÜì ¬-t]×ÁÁITÃÆø+§: ¹addöyëqßÎξ¡ºýÔ?ÿêë¨ îÛñÓWµ°¶÷ñkVÐR…„Üðððþt_¢ÀTfLav.8³¸´ºñæR>æõ˜Šv{Íë´MYóª-ÀgNƒO”Úl\Яþiûy¿Ù}gŽBݾƻo3jZóª-Àç…ï»oá£{€æ÷Ÿý·jñ˜€¸ÿt£ûÏû?âš")Ä400j‚¯aÓÑ4û ¾pûœþû_ꃘÌf”­x¨3Læ îqˆûÿp8ÆŸøï’>ý36ÍŠ5Ù~€ÏB/QÈÏÏÿ¿ÿû)44¬¼¼BSS£C‡Ž×®]þ™Eh?í^ëõy^ MðC÷•••¾råjFFfUU•ŽŽŽ…E·€€#8² îq¿téòÛ·ï:t`ðàAOž<ݽ{o‹ï†Í÷µ(..ž8qrZZÚºu?3ºU«V 8ˆÃjR`2',ì>!䫯¬ZµjÕ«×WþþûD …BÿCŽÆÆfýûØ»wŸPÚÏ8Ñ/vêÔ™áÃG™šv³µµ?uêŒø[Ö¼ÍgΜ<ØÙØØÌÙÙ5""R¡zÊ3I"uû„#Gþ´³s0662Äíܹóâ«y»ž•ܾ}çãÇ—.]2uê 6›mkÛïСR>tè0‡cÜ¥‹iïÞý–/_Y\\L•GFF÷µ¹yw33Ë©S=îÞ½G_Ž9"€–÷ššš„7·Ë–­ <ùêÕ+ÑCû÷ûoذÉήÿãÇ ß~;qË–mþþ‡jnf±#GþZ¶l…¾¾~ddXPЕÄÄDòñOŽÐÿVIÍ¢£c‚‚®ìÙ³ëßÿý´¡œõ”‡ÔíÿùgÀÚµë»w·Œ‰‰<}úÄÕ«×ê°ù+yíÚ5Bȸqcä©pYYypðõ””Ç+V,;yòôš5¾Tù‚‹bcãvìð{ô(váÂÇèË ™’þWµRÿzèÞ½P_ßiii律ÌÍ›7Nš4‘bo?(''',ì‡Ã)**êÑ£—Axø]òñÜ:Íb ÎÎÎ ½chÈ©9~Whîž*‰Ž¾¯¯¯ÏãñŒÍ FVV:}d½o¨ùêB³ý¹\.µ}BHV×ÁÁQbÅZ7"%Íx<^FF“©,OÏPø|¾‘Q×ví´âãB,-{VVV;wÚÒÒ¢U«ÿ~Í\V94}!!7jþU­£ûAƒnݺ~wÓ¦ mÛ¶åñx?ÿü õЫW/©°ãpŒ{ôèEyþüyÍ-Ð,öòå BHçΪµúúúÔkõz¦P=Åó]ü_­Ûñâ9!¤S§÷­Ýh¤JêééBòóójí¨¨è ¾µ´´24412êJyûöõÐÒ¥K”••ÇŒonÞ}Ô¨±¡¡aôåÐò's>Œý ¦M›ráÂBHII UØ¡CGBHll´(Ÿ=û·æº4‹uìØ‰’“ó¼Q[+g=ëŒÊ÷—/_Rwé_Kê_ÉaÆB.^¬ýóQóæ-ˆŽŽÙµë·ôô”ÔÔ'â¯.žžß=z{éÒ…eË~xô(ÑÇg}9´ü¸Ÿ8ÑýÊ•«ùùùÕÕÕ))i„‡ÔC3gÎ „lÞüsQQQiiÙ½{¡Ó§Ws 4‹ÍšåIY·n}~~þ›7o×®}?³Ü¦MB—Ë•U«Z³ bæLOBÈÆ[Þ¾}ûæÍÛ 6Õi#òVrÉ’…Ý~ýu{`à‰’’’ŠŠŠè蘙3çÔ\’ wuuõŠŠÊŸþUü!/¯¹ÉÉ)Ý»[ÚÛÛBØl6}9.Õ4S |SMMmóæŸóòòª««µ´´&LøzõêE#A6›ýçŸÖÖ6,ËÆ¦/ßh›1c:›ÍþóÏ¿lmhkk/Yò~,¹pá‚]»vèHdÌà׺€œJ"×jÝþŒÓ¾¿ÿá>}úz{{ݸqSYYY¡]"%544þþûÜÁƒ‡Ž­[·¡ºººmÛ¶––5—üý÷kÖøNš4¹}ûöóæÍýøUü›7'$*99…¾ò"|>ëÖmÖÖ}ÍÌ,çÏ÷)))Uhû4«;vÜÎÎÁØØløðÑOŸ&Kís.—ëé9Û¢‡©i·©S=òòòdíú>—út5»N¡ý(~<Ô¬’¬†WUUýðÃrsóî½{÷Û·ï@­žÄQGSyv‡¸ŠŠŠE‹~ÕDüý¥Ô¾ªç‘ Ú>Ç[¿~c¯^}zôèåïˆfG×ÓÙ³ç—-ûAOO¯}ûöË—/=sæ,}94q÷ÔÀAbñèÑ£k×®fe¥K,üOxøÝÜÜŸO_½{÷BûôéM¿LXXØ™3'“’âÇŽ3c†gpðíÀÀcIIñƹ­X±Š¾ò"ü±'11)(èJll ›ÍÞ²e«BÛ§]ýþùóg’’âÝ܆._¾RjŸ{zΞ5Ë3.îA\\Œ©©©¯ïFY»†¾Ï¥>]M íGñã¡f•d5ÜÏoGAAÁýû¡7o^‹ŒŒ”çÀ?êh(×îùõ×í%%%a7o^‹ŠŠþøÈ‘ÒWõ<D¶oÿ-99%(èJxøÝœœç4;ºžRRR­¬zR·{ö쑚šF_4ÀØo``$šÞ©ÛОò~&N|e#…¶E³¼Äl,‡cüàA¤žžžÄ£Žñ½{!]ºB222ÝݧDEÝ'„ØØØ>}ÂȨ !$==ÃÝ}jtô}BHÿþ¼¼æ¸ºíÔ©cÍ¡tjjš¯ï ‹µkW˪óãÇO¼½çýõ×cc#YuæpŒjiiBÊËËÍÍ»‹ßíÞÝ*##¦ò¢íØÙ9;ö§‰‰ !$??ßÕuDll´üÛ—suñúÈz‡^^^ng70>þ¡Ô]CÝ•Õ粞N¢ëÚ²ŽЬ†÷ëgúô êY23Ÿ ì\³½â›’x9(kwˆë×ÏþìÙ“‡òìYÖ ANREw%Í‘FmßÖÖ>0𘉉Ì+·4;ºÖ“T\—.¦©JJJ„@`bbž™™FS7ƒ/Šxš¸ ¹AMõHܦîzxxêùMÑYWã5£ó‡ƒ#zšŸŸÏáP· óóß—ïß¿wçÎ];wþÎf³}}׺¹ý×*eee ‹n»výæä4TVÜGFF-Y²lÿþ=5³^uÊBTUU%îòx|úÊ‹¼~ýÊÉiè/°bµäÙ¾œ«‹×G\llÜæÍ[“’—••I¬.•¬>—óéÚ4ÇMÃóòòDÏb`` èQ'gåio^^^§N¨Û;w–uä(º+k}êÜÜwî|i11YYéOž$ …BúåeõycìǺ5\WWW´µœœEwV=(±©çÏŸË_“zîJ±íèr¹\Ew4ý§¤277{ô(‘º˜˜dfÖ•¾¾Ü¹{Bˆ¦¦fzº\Ç´¯ï†‚‚7¾¾ëÇGŽ=rýúTùºuëÇŽM•ûø,JOϨ®® …|>*üþû…))©<ŸËå.]ºbäÈá5Ç5þþ‡6oÞЀY/«ò"S§NY¹òǬ,.ÇONN™?_±)ººDŸWTT²X,‹•->á.k×Èêóút…œÛ”¨’¬†?výúoÞ¼-(xãë»AÑUÏŠ3fÔ† ›©š¬_¿±Áw¥,&|½fͺ—/_oܸ™~G×è|ùúëñ¿üâ—››ûúõëmÛ~ýæ› ôåð øuÚ7zÜÏë5jÔXyþ<¤_?7{ûAÚÚ:K–,¤ —/_ª­ÝÎÁa°ƒƒc‡úK—.¡Ê==g™›[nÞ¼uçÎ÷—Ú†wóñYdfÖm„IFF]6lð­ù,6lzþü…³³+õ± Ǹ´´¬þÍ”Zy‘yó¼mll&Mšbffáã³høp7…6®èê}îç·mÆMݺuwwŸfg׿Ö]#«ÏëÓrnS¢J²¾dÉ"--­þý :ÌÖ¶Ÿ¢;«ž ·té55Uª&}úô®õ£Ÿõ<D/^hjjêæ6ÂÞ~P‡úô;š>Ök~ JÜ”)“mlú:;»âfkk;iÒDúrhâ÷R­ü£‰æûÇMͺò芆’žž>}ºgxø]ð¹Ôz©ß™Pw¾¾ óóó7nÜ2bÄ0t4eˆ{€ºëÒÅÐÑÑÅÁÁQSScñâ…èhʚĚ7ëÌä|É]áá1ÍÃcv=`tˆ{@Üâ÷€¸@Üâ÷€¸Ä= îqˆ{@Ü îqˆ{@Üâ÷€¸0뿉€€ýèG€–÷NN®èG€&“9ˆ{@Üâ÷€¸Ä= îq€¸Ä= îqˆ{@Üâ÷€¸@Ü@ 'ó·jCBn wš—éÓ½²³3‹ûéÓ½Ðq-t/ëõš#ÌÝ îqˆ{@Üâ÷€¸Ä=â÷€¸Ä= îqˆ{@Üâqˆ{@Ü@³À¤y,$äF­ëOŸî•‰~hÆqO9zô4Í£‡lìúq8Æ\n†üåMÊîÝ{ããüý÷5÷†ÌšåÕ»·õ¼yÞØ§-6î !7oÞ’õÆõÐ4ÞС¼¼üàÁÃÿ}®ôÒêÕ?Ž?ÁÓs›ÍÆ1ÓL)5Þ)$ñ¯ižçMvk"©©i:6å¬lŽù.~·ñÞ&^»ö­m?CCŽxá¾}ŒŒºîÛw@¢JC†¸ …BQ‰P(tvvUUüTêÙÓzΜ¹ÙÙÙôçšè®…Ew÷©iiiµž§4…]ºöíÛçŸnhÁ£û:ÃdKƒ 4ÈýÐݼyËÍÍU¼D =z|íÚŸ<zôø€ƒMLÌ]\Ü¢¢¢Ï;ïè8ÄÄÄ|øðQÉÉ)5·6a·—.]UàÅ‹—}ûö/..æpŒ¥6‡¦¡¡a©K]WV×q8Æþþ‡lmí M諵u²jX³e5D¢2µîÁÿû¿ŸN:#ZæäÉÓÿ÷?Bx<Þúõ{õêÓ£G/ÿCµ>iÍ«Ygy©mHÈ7cc3;;‡ÀÀ5¼„„G½{[‹—ܹs·];­3¦·m«yçÎ=ñ‡æÍóÞ»w¿Øa¿Þ¼¹5·É`0ttt/^˜šš*çI§®®îí='55­ž'oïÞ½â㚈{„…Ý?þLRR¼›ÛÐåËWR…žž³gÍòŒ‹{cjjêë»Q´|TTtpð?ááwssóüü~“ØÚìILL ºÃf³·lÙZó¥nœ¿p¹¢Ì/¿ø½~ý:44äÞ½Û\.×Ïo‡XÃΜ9™”?vì˜3<ƒƒoKJŠ6ÌmÅŠU5·¶`Áü;ÿÔê;wþ>sæ uuuY͑ՊêêêèèØÑtM×=zôèÚµ«YYéô‹ÕÚ:Y5¬Ù‡4»C¼2µîA_ßµçΧ^2/^¼|þü_ßµ„íÛKNN º~7'çy­OZ³ÇjÖY„örÐ.^üÃ’%‹“““Ξ=•ð¨æ———×¾½žxI@ÀQi„iâ æööíÛÈÈ(BHDDdaaá°a®RÏ ‚‚7¿ÿþ‡Ä âââ½{÷wïnYÏ3·cÇŽ¹¹¹Íæ‹A½=¿èj``DÝ ¹qôèiúKµ¢…kÒ¥Î.Ç8!á¡––!¤¼¼¼{w«Œ ÉAGyy¹ÝÀøø‡Ôò÷î…tébHÉÈÈtwŸuŸˆ]^³³s8vìOBH~~¾«ëˆØØhšKl\üœ·±±;}ú„‘QBHzz†»ûÔèèû5ëlnÞ]j$¶6zô¸Y³fŽ;úÙ³¬o¿u¿sç–ªªª¬æÈjEddÔ–-?_¼xž¦+hZ÷àA¤žž^­ OëdÕP¢Õ4‹ÉªŒ¬U ÆŽýzĈaAAÿ\¼xN[[›bkkxÌÄÄXž-ÔzðˆŽUꮜ€¨Oú÷àå5ÇÕuh§N¥lff– UUUEïÃÆŽý_dd8‹Åª¬¬ìßÀ¥K Du8qâÔµkÿ™6mÆÈ‘#&Mš(ª›Ä Õ¶mÛsçNuíÚ•þ\•´oßþÂ…3;w–ç2†¬kÕÕÕ=zôJIyŒÜlúBBn89¹Šßõððþ s÷ÔiCQUUåñøÔíØØ¸Í›·&%=.++£Þ±Š½ütþphrÄ'y(¯_¿rr*þV·æ3Òl\\~~>‡c@Ý644ÌÏÏ“ZgYM°`Áü-[¶=rûöÞÞ^¢s^jsdµB4“C³.MëÄã•f1yZ'O?Ó/&5ëiVÑÖÖþ曯ýüv¬[÷•õ„Üܽé×¥é:9{X²úY¢Õòìy¶\VV¶páâß~Û>bÄðM›ÖÏû=‹&|½fͺ—/_oܸ¹Ö'•Úcu®óàã³(==£ººZ(òùÜMþÏë5jÔXQÝ–/_ª­ÝÎÁa°ƒƒc‡úK—.Qð ÊG[#„(++u™0áëZ›#µáá66}™L&ýº4]'gËCV?K´ZžÝ!Ï–W¯^ëáñ¾žC‡ºŒ?nõê5„Å‹šššº¹°·Ô¡ƒ~­O*µÇjÎÎΞž³ÌÍ-7oÞºs玚 >,**šz;ò×_G§M›*±À´iSþú먜»@t*õëgµ{÷.…εɓ'8qªÎIñìYVLÌYW¡Y »Tk``$Ï&ð·µ²xzÎ;vŒø Q¡?à\µju×®&žžßÕa]h"=¶{÷Þ„„Gìmî9{¶·µu/|‰Bs¡ð¥Zäx ‚“'Oq¹ÜÑ£GÖy#¡¡ažžèÌfmþü¹-£!-àk€‰.h ]º˜vîÜyïÞ?ÄÿlRQaawГ€¸oÒèÿ¨½a· è1yàçM÷€¸€fDÊÜ}@À~ô @Ë{ñOk@Ë€ÉÄ= îqˆ{@ÜâêHÊçîCBn _š¯éÓ½j~ƒ=Sêrè,€–?ºÇ¯š´<˜»@Üâ÷€¸Ä= îqˆ{Ä= îqÍ]ÐŒ}±mØïääŠÎ©[ç îš|g-:§n0™€¸Ä= îqŸ>™±êe]³ðQ|zq-‡ctÿ4u»¼´¼ð]!¤¼¼Âª—5¿¹Ãdü§m;MBˆ¡‘Á‹ìW¯^æ–—W”—W¼~‘ÛR_Û8c©åˆ{ø"defWVV¶ø÷1a –è"îŽñU—1M-ñ¤>ˆ{”ùo!D(¶ìf>MÕc«I¤ê­Éž-µ½ˆ{€/Ôk³ªªl†ƒf­””TO ‹=<<jÔØ«Wƒ÷Ð<²~þ3k&~yyÍZÏžeMš4ÅÕÕ%&&2&&ÒÕÕeÒ¤)ÏžeI,ïî>õÇWΙ3«Éö5ÀeýÓwo6%>àr3¤.œ•Å8ÑÝÎÎîîÝ[OŸ&nØà{ùòÄ=4ƒ¬¼âÿêE.u»fè¿Éû 2¾¨¨D¢|ÇŽßæÌ™5eÊä6mÚ´iÓfÊ”ÉsæÌúí·âË„……Ïží½sçöqãÆ4Íæ‹øW]Æ\uS‘›Ÿ[Q¶ôA˜¬¬'„lß¾ÃÛ{އÇ4--­V­ZY[÷Ú·oχ­q==g[Xô05í6uªG^^žè½Î±cÇíìŒÍ†ýôi2UÎãñ֝ߨ«WŸ=zùû¢ ù|þÖ­Û¬­ûš™YΟïSRRЏ€†Éú’¢ýŽzn£œ©ÃF9sìblTBbÜ“œ¬:zÚã¿ùêùk‰uCCÃÇ+^2~üØÐÐpÑÝk×®/[¶âÏ?8 õÉwaÁ4YO5|̘QRòôœ=k–g\܃¸¸SSS_ßb¯|÷ÏŸ?“”ïæ6tùò•^9~KNN º~7'ç9UøÇ{“‚‚®ÄÆÆ°Ùì-[¶6`ë„¡Pˆo h Œäl¥²>+#[ ü7úSR»Íàñøé©™ñ’b£$>todÔ5--™ÉT•ðx|3³niÔx–ÉTÞ½ûáÃݰí!!7jý¾{…:G4CÝ|‰>ë !ÆÆ]SS?j¸TåååvvããRÏ’ðPKK‹*ïÞÝŠê%[[ûÀÀc&&}äÆÎÎáØ±?MLL!ùùù®®#bc£©Ð×¾sBBnxxxãϬ¾Ðq}ö³ñ¬'„ˆß-.,}’˜’•™ó¨æXµmÛ6??O___T’ŸŸ§¥ÕNtwË–Í+V¬j×NËÖ¶_Ó쉬—SÛ¶ZoÞèééÕ|(66nóæ­IIËÊÊ! ƺ©¬'„¨ªªòx|êvnnž¡¡¡ÄF^¿~åä4ô¿ñ8ƒÉ¨WÖ¿È~%ý9ËüÜ7 ?KÏ–šõ„í/\¸(^ráÂÅìDw¿ýö?¿m³fyݼÜ”³þé»7#ƒ/Q3ø¿öXëÇÛȺ6;wî|i11YYéOž$ …µ|ŒUOO—ËåÖ(Ô‹Ž¾ÏåfPÿ²²Ò÷PGâã&š}éìµÊŠ*© ¼|þ:)áivVNüÃDY_œ°hÑÂü,)))))9~<ðÀÿE‹Š/3t¨Ë¡C–.]qæÌÙ¦–õa –RY/º0›[QfѶ]­ë.Z´pÏžýÇŽ÷î]UUU||‚·÷<ꡊŠJ‹Åb±²³³Eô4&LøzÍšu/_¾*..Þ¸q3U8uꔕ+ÌÊâòxüää”ùó}÷P¯Ä¿wëþíë÷ø&(Bðåó×O%çd=÷„æKrLLŒ]¿~³oßþ}ûö¿~ýf`à1ccÉŸŠí×ÏæäÉãÛ¶ùíÛw Iõ@áÓTñ¬çr3¾ &bŸÁ—ÅȨ˩SÇïÝ 8ÐÑ¢çªU«GŽA=äç·mÆMݺuwwŸfg׿Ö:,^¼ÐÔÔÔÍm„½ý ÞO‹Í›çmcc3iÒ33 ŸE {ñ—jš“†ºTKÍê tìï2ÂQ(ä¿ oß>Ï~™û*ïiRjüB´¼TKeºøÅOÇøÈ@=¶š<l› \ªº1¾U/k¦@( ¹ª¤¬$þ÷áœq"2²*³*+³J:Ÿ¦9ЬÌȈȈó=¿?çw½^oD  â[ö@àýB¸t»ÝeG Þqz½à úù2Ž%ï:ÿùdþOQý›üúåB%ï6²÷œÔÛ1ž@ ,” <@ X(c®¶÷õñÚ²a*‚Û3˜Ãò|ÃûûŒ¿—Â#¿~‰ì=_öaL…ê®/ûCÅaz¾áý|ÆßKá÷óÇÞÂó}°y/…ç°˜âÛ™áÙ__)m7÷öÌûwûØÍg÷Ê2¿û}a×ø ýNÓËay¾!¸Ú–Æ<:ÐY9L¦xÝÈ­úf}…쯯Ìtíª×}Q,ë{ßUÜïîÿþ󼯋œyœÏaz¾a­³®Ý¬}Fõý³ö;Ž¥ ÏŸÃò|ÃtÏøAúyöK³x&™Ô»9‘Y/Èa2ŧÉj›–\ { Ï›½Zm³œË"Î{žß1O·Ô^¨žS»mÑn68\Ï7LçN_6ÛÅ“UrÌÇg¸ÓÈpÒþ³)^¡º×êþ¶×@ü"™o¨{û÷^¿Ç­îouïÝëwLóþEÿnÓtú³žÓ29ÌÏ÷¼™‡ÅTwìe ÐpK_w»]øÓÏß‹ M‡Å~‹í¨vÂîßÀv–çÞŸg\öž“þËã Á½'&Sü}¹q ̃Ãô|ÃûõŒ;ÞKá÷óÇ>è&WNà`žïƒÍ{+<ƒÉ$¡ ¼;Œ/}}ˆLÔ@ >ÊÂóŸO–ÖÅ@`Þ„¥¯@ °PJÂ3FÜûo÷–u<@ xG˜¤)cOï«ÞÂ*ï6uš\m@ X(Ax@ °P‚ð@`¡á ÀB Â…„' %O Jž@ ,” <@ X(Ax@ °P‚ð@`¡á ÀB Â…„' %O Jž@ ,” <@ X(Ax@ °P‚ð@`¡á ÀB Â…„' %O Jž@ ,” <@ X(Ax@ °P‚ð@`¡á ÀB Â…„' %O Jž@ ,” <@ X(Ax@ °P‚ð@`¡á ÀB Â…„' %O Jž@ ,” <@ X(Ax@ °P‚ð@`¡á ÀB Â…„' %O Jž@ ,” <@ X(Ax@ °P‚ð@`¡á ÀB Â…„' %O Jž@ ,” <@ X(Ax@ °P‚ð@`¡á ÀB Â…„' %O Jž@ ,” <@ X(Ax@ °P‚ð@`¡á  !—}@`Ná xžÐEŠˆHn‰eM Ø+á1Xžˆã "ÑDê„[BqU«e^ Ø%Áâ H‰S(Ý!QZ‚ˆ@ƒ1]-¹'‚ë-8¬‹'p xÀ¤(Ú¤h‚άø(¤èë„{BqQ§Ë>ä@ 0#Áâ îpLÄ$Qné(-Q¢9fùÄZò@DË>ì@ 0#Áâ  2Ñ1JgH‰ÒŠ®xaÅ ú® ØÔðxÙ'¦"X<Á-qTK/¦“i@4I´D‰ˆTKÖÄ3¤†X€ÔÐÐѰ*àܲO"LE°xKç–¸a-gñËÛJ!É´â¬xˆ²–V|ð¶›n;h‚ÅX:Æm“è&J4I5(+BØö¬¸_鉳|¢ :À¡ O`©\ለLCSH2ëf3©Ô1JK.ˆ»¹ØHϲqÛ¾ÛíβOh dk„”#¢Èüï¶¥ˆ>ð ÄÆ²5Ø‚«-°\„$µî4—Xxâvþºª¸Õü×]Pw›-³Ûd<) Iͱ§)H JñE' žƒîƒH@_\ÒÑó%O`i\¬è4Q:ÛJ/¶£´ô¶U­ØD^¬'=H¢#¬ØØ§LJóï82h^ïvasÓü}0H)Q*µâ£@tìùÝ1"ÄÍ¥œN 0/‚«-°4/†£Dl-㉹©/ç/ZJ1žj{öÈ™åPÎȈŽÁü¸-N€¢h(‚î§V¤{ù¼%ׯF„¸â œg °;‚Ř’'¶fš²ÿù½ïRDd6{ ãI´¢iEæµX%Ó‰ÝVȼrÊÝjIÕÍ&NÀwcøêþÞoæó•²ìœˆ8QD’?qͦš(*¬ 4(ɤCòɲx]¹=úá¢Ï2Ø3AxÛ#^ƒNmg—€ؘà Ðpy×»v–ŒëL¸˜ë´ãŠø¸TkòXOf;÷£Ñ˜ýýäüÝŧ":#"®•-ÛJ#*d V?2ïétìõ²!6Š}k¯Olù NŸÀ¡%O`2"ób D׈ŸØNïèÀõ]í^ÙFÃ1n6ÓfÞ<žP šVü ËÇuòŸˆÌ¼GIˆš°òþà¼Éà÷³cN¬xª’ˆV-ŸÜRƺQ š®þÇÆ¶{CŸ¶-EÄ'pȨGŒlgêÜ=¶S%.Þ£oZñ¹ÆnÞ.–QLÅZ>pC\'ՒȳpšZyÙ^îýŠ®!±F«?¹ HøFA$¡}Þ(øé¼‹ê¼Ê—lØN|œ¥ã,ŸÍ_4Øø§9†~âsЛìÅ ÅÒ“ ÎÑå”Xe.kbuÙ‡#ü–DQ‡šÑ¹NA*h]šý{dD†´±žºÖÍç‘€¡0¯Ç:¡#3:b„R ”jÀ° ƒb2…æß«À$üÉ…=]–2Ï­¸džÈÔ[ âð`öÌ‘¥ ÏÑå ];£˜ÇÑkË:¤€E è´¡{ÖǾ'>›ðf¡0n°ÙfKTh’Ø,6S¹ ¶Û2oSÝD“)I‡çÄúµµ$¬àŒïdô¡•‚H¡£à£þëœ*ºånH¼ÅêT­è æÿýFKãåÉþW °&¬¼‚ツïÍP%@ÜÛFl¼íŽsî3 ¢|âÑ¿;˜ž}ñŒ~| ¾· /žÃW›(e,iSf›:³‹|á=´™Îh‹S ôÓý<¼@.&!ÌLz¥ ÷Õ§ÎLªðŒä1”!e²ÚR{ô\ä1è'ÀÉé+èÄ&"¸˜KßsƒILl¦‰±Œ¬x´2øÁ#øø§³;ìßMîÌì~«î¶EŠM…ü<; ›Ë;Ž@`öÍâ}· ß$°Õ7¹¢€”Ftb!‘"+:þz+&EÖ¼ÞóôɦÂMz´ž³t8ÅgZ˜Ñÿ÷fœÔØ’¦Ã–Fµd$M(§%ɰ¢Ãàôlû•xbà,‹úw÷hˆÌ7VtÀ‡ D~ûü›[“÷/”7¼A“û¾%wö¶Æq»µPï-pð˜»ðŒŒZvø«TQ€j¥([K+µb“å­›ÇviË¡\™÷!&RJ)b7:-ÜN3 #mÛ®`ELª±aFÑP©'¨ Èà÷xŠ2–L€È>|ûÊ=ã¢û+ð×jÎ׉NZˆšÀº—Lnñ8OB¼ZòAeæêj¹ÑkdSp¥„·‰(B$ Edg¨ÇBÒ×±hÒ×Åâ_~™”]øp»#ïLñbSt¦-i:àÖô_u†+¨#^Í5ûz¦Œa’t»=Là/ñŽ_ZKG°ø†˜ÿ·*ŸÿÉöœ¥üÑøóÛÅ{r±qî¶ô'»8Ø} ”]çR¼›Ó»)°ÉnâÀ ™‡Ù%Ä¥6ã6õfžzZˆOØÆí˜ºb)èdÊÏ9‘šîý'¸bÖÛù—«¬®AçShä‡ÐŒÍ\—hºßíî<”Í´Ói±ýïS+;ÄÇ)D}ˆcý´ _NÅÖýŠ8ÝÝqî%ÑñÚ@à17áÉÀn(6Â#¤‰ï$¶CjwL]*ûÐF6ÖsŸA¾7oCé˜RDîÍëP—Lf3ÀlÇÆk̺+ŸƒXæŒ×…ظ=Sv¨.ÆÓjÂoßö­Ç¹Ff-ÞL@ç;fžP§ ÝïB»m^‹cè~gÆSøKÊ©ÌÒ×˜Òøp º t|dS°[©™ TÊÚ{ì‰ÎÉrŸ©Ì-û¨ó³xfd)¤±p\àØ¡1¯¶&Wy?Ö½&"”ŽQùÌù&‡wrœ­V̈ɓ ›Vd—´”™HI7ÎcSâ:a2ø`rp}k(©V¼à6/ôm®ÿ_ ⸨e¦ôûî˜f8þÿAùzÂTá©+}h+cñ´3cí¸É¨¦ðg^ò„ÈŒ›í Qr3RˆP p€˜‹ð¼*-Òeëƒ4›ð‘­ñÕíÂÛ~nE-IÓV¾¨¥}¥ú)ˆ®µxlJ¨èØNYrxÄÇ*"Su‡TKß×´÷™˜ì.‘@dç½LK 3a³Ù„oë;ãU®åËZoâÅK8Åæðò_¡ÿÔ:AÔ2¡Â3?™ÁÝ&+­þÝôç#Œ‹í¥F„ZD˜9@-¯×3^£EáDzÁâ Hæ"ÊÖ®JlæO+ÙÌSf‰bP¦Àã1]ÿà*}SR2V+ì ‹ÏD±ñ[DÚ¬¥,2•ab<+6ÕnÅ{ož-¦@ܘñ‹ö‘Úû+d†sž³á-;¼50웾]éJÂÇ]òÉ‚¦šf§×õBl\ÁH׉³¤xÈ£D¯Sp–O8 ú˜Ýv“ÿ4‡IǰuÞœ/,ŸYPª°x¼¶ä© |Ñg¨ŠŽÙEÃTJšR=Éô¾†ÁÚG&¸Ûža'‹Rüþ˜’/!ÁºÐœ¥ó¡µtZ×Znñ`Sªˆøä÷Þý,žÀÁbnóxüe‰óy‰]«ä£ØtJÝ.|±Ic8ëƒpÌv&eJÜCu ¸:ÝnÄÛYôAÏkÝúÜjÕÖ–Sq"]µü\–T~¾@)&2ož”Ý™__1™ðÓ®±óƒµÂÚ´Ã );(.—ÏOœ±ÛJ!éé0AJ‰šòJéP滣‰I§laÜkvÚM¾=-îsþç]çRL øÖ;|ɈÌZ¨Öò³ìH¾”…¬i—wX‡ƒsÖ½ Äf^Ö;ÊÜ„§' cc=R+&0”ÆúY]õVÁšq4í£Ù+"aF¥z›Z<­ãbÜv—ìç3v¿ˆÖ ¢Ccö‡_ì³’û´š¦ˆ+n·~Œ±2ê«?ûŸ·ŸkÚXÕ?Ÿ³#ìʺ0⌱äØáZë5|…YÁü¾j(‘rT>–/0@? ¸ÎÊkª³‡o+Ÿs-€PÆý6TÖ¢ò\y§s`,‹:KgÙµã:â f^Vlc«.¡Éx0d Ô0\¿y37á9«áµ€Èui Gº°•#ân—ÆŸÏiô®ÏÛ–rË5ûðU,}vüý⦚ï•íE«–iEg7­î€8z„G<±n=¿ fñs™Ö õçó³”ÊÆüÖóÁ¿÷¿çœ{îNy`GAN‘Íçs‘èaD§eÛ:ËgZª¢UýýPf€Jᇪò9çõc*7ØíЬ{Å-,·(ÍWMûœumåÏÐùîhçB¹™˜kå‚´ÃØê›4ê~¢˜ÆXÄêˆ7§w£é»öæÛEðu¢ÞHl’)ƲUnñ@¥ÍÏË®s#^åög÷‹íüø/#É™8 ú)ˆMЛÆ=ŠÍ4p1?¶#¼vÚÎö[Æ7jZlrA‰»KqyüDDâ5ãåŽóZ¾ Üq‡RáX‘ÇTóÄòëæ–-ï~<ʽ½3WáéWçó U^(´qîü<¿j~8ña†àðN‰ó\‡%(º îÍgŸ€‰íTÝle‹Q‰ÝÕujø­»ðÙݲ©ô“3˜e±ûb7VÀUЧA<ýD³¸›ý³ß~@!BÓ®õ6é÷«³ZnÚÏÅ”«B/.þm®‹GH[xWæx!¹¦\zßÅG<î•ÜÉFt2c‰‹®mýù‚v:¢4m2´Ÿ#ˆÏ<˜«ðœÖÞ|€a CÅË¿¸Ëkým?½DômJs4¶cÑ™'"²Zd:ñ¹qšñšcª¼94c¢ã²×ŽÁg7™8òÏSà÷8Q_΃~Džpá[<Õ¬¶iQÄrª¿£{Ýÿû§“vtôyŠTÿt{ʃØWèr_\Ò´Õ¶¥È(ª¿ƒƒ ï«øˆÞàŠlD·‚¬³t¼©ÚN ±×,±©ýjX¼Øs/š¸Ív>Ï~Yþ”Â8KFÂ<÷£‰éJK@߆i–`˜¸¼1ûwSæ ºÀçóÙçggìHrL€"VàÜ ã“?¡TSÚÏ—ƒCvÙ.Î瘹 oOCצѷì19˧Éô¿AÕ²™dùLë¶Ó§½Îkž„zVYå¹8)?¥@gÄÂ+C¥Sîˆ&M-OeÄçÔŽ{~‡*îd_|bjîÝÄ Nbîk›E) ŽÈïåno­¬›9°æ.<}QÄz*o-Œ(•Ü7J1’Òüß’ù¿—Æ4 ¹oXÕˆÐü…ˆÏ¹S“Ào]õÜCQÞÉÖÆvhË‹Ê÷Ûßq|þäÚyñ=îþed÷ íï|Ή¾æó¿Î¸ö¯8süçþ÷)æv¹ØŽoÙÔ‰OÕòÙ }8k ûënÛd¥ká$H‘‚NhÚý-Ñ)¹IKËÌ¿ˆ{KÆen÷œ7PªAä&Ec&3+í?½}?üw¹ ÏI{³ß®ŠLuÆGÊöõ‘”Æ*²–QvPÜt¢_Ó¹ª}°™5-iü÷ÒUpØãˆë·Oî¸Ë>m)̜ߨeªFwÀ¶îCMQÖ¹Ùòß3f~Õ›ŸH ÔÛÇ Þžd#}ÆÕ¿xIgUÒùnE— ­œ78'.pŠ«•cŽ@çMe‡·ýýYõ<èµ]žçô8wš´³tâŠØ4½m©áÌ».>â–çžv±77ù|:ë{0hÐûºAæ—lÊcC°Fß!c_ÖãéÛX³p2?öãÇ€ÜHÙ ±KîÆ:ƒçûq°³à¯SS²xöoþF¼â fJ@Ó^ð¯ëMš¹ ;7ƒl™K¶`íÛTk-ÈËÍ‹‘]‰Ô í_äåëÜþ»—)äJL2Œˆ[k4ÅqœŽ^ã”8Áql¢;Ç #@C{œuÙm»î¤/—vûáéðî?iïG) §r™Â½í‹¥;ï²øhï9ÉSÊ×;tFƒF‘ʯ±Ïÿæöýd_n¿ÔŠN[ÔßüyÌgRl@R”añ:ƒû~§° r±q3ÖÝñìߒǽ¯ÿшÁ $i è¨<¯e~|jìºæõ[m¬¤Ù²£cÛ6?Üf?}f,(÷; éY ùü^â pz<öâæñ´ ÷åYî'~ø„(’ôSE·} T©cÔ°G$Úĺ͉ï(®~Ù7ÇêÆî~s©Ó~%ƒ]w´¯÷kÓ³¸3‰ˆz=ÿûU(‹¨m/ˆ5Üp]Ã=ë6…™w¸¹A‘1—EútƒÒ¼½%ÍÓz—Ø‹gÝZ8~Õj·í»ÛT>R¶,˜‹ÔÇÇ,[tÀ³t+uîÿlõfÚ+Û¥ö4WÄu²­:~ÒˆŽ¨ãþï•o¿7§´4/Èkk²Ùžmæqz’Çœfs€ìÉ5Ú­5bÝ¥+ŽqB§|þĩï4¹Ó9×ÁX>) "HíÄPå}ß®ŽÛVÈØ'2ÏâyÁE^L9¢¿oÚž Sq¤kÅçµ€'ûvÄûÍÊÙ…ó\¶A>ÿ'°göÍàvb“Ù›ÜY<™gîç)Ÿ­hÜòQŠMaÜveö~ñ6ˆ3 ß®N+ÊýÏ`Êl0\¶ ©R=Ú¹œM•ß>UÄ`\kÅ¿)Íþ\„bkéDœû·#þÍ„ïûǧðoο_˺ç2™òÑØ~¤(TQ©Àµ•»ù)§y:¨ìNÃ-Ù%Õ ]Ñ$Õ ÇD“óŸf(³©3®ov@ežHoãÓÿ5øÛ—œÁ|ÿ1ϽŒ¸Š²úø|¨â¹hÚ÷»XÌ´3Þšžéi«AŒ_‡XÀ††uû|µíàp]À+m<7ôÄÊz±jÄžÓûÔO4AoìÇŽß;öMxaÊçDö¡ËìCå»ßr7œËUÔ †)©}¿²£_ጵ€Š~lÛ$aæåRÀæ/ Ò\—(2•›g¢Ãðb3½OO²Úÿ¼°|\½Oç~ÛéTÿþ±™4*¥é´es>±/|[É+çÿòÏg·˜<Ñ&"UЉRÐE’(Å*MN}?CëÿÜ4±ª Âs àï^æÇéßç§sñ©g%à_÷÷çÖÙ™gúÙt'\ásïxcÏ4¬UÜâ+Fwô4 œ_¶Ça'tÌô²½K‚çå`߄籆+¾[ÍÞäNL”†ÈÅx|÷…e$+C^‹ji\}˺٠Ÿ°Ï¤iĈ¨e¯£›¿2+¹…ØŃRƇçnƒBt®üшÛ¾••[¬^•ê?¼±ËQ¹xdæ ǵù×9ËÇOkâžÊüø¤©©+8L@ú&¥­A¥¦„Š*²ßÊhþÃxüî'*Õ”e·½¡áTÍ «îýuík ûQyóý‰¦Vdêb°îy=jÝqÖ1{ˆ~\aê*õ»E<ýh¿ã=aß„LJõ-{“w¼‡*e'»µ"SåÀÅ*#ÀÚ…e‘ÇvšÆí¶0éÐt¶ý¡éÓ£•éÖ î6剼ŸMhÛz>/®»2n·L™ØÏŽ #:¹ÅC!F»ÁU§¦^||ši$ú›ë¶”Sbî»· R)Øê#‡ÞöÍa§£ÿ£_J&âM5î3¿³–^Z·•oáT-êëþßûzlÖÔžp¢ãÎ žNxÞü6öžÛƒ9âßÏ¥C,~ :°'ö%¹Àçª6óÖ}Ë'ŸWð§×Ll Ý1¡,ÊU4+#Ã!:úº'> ‹[¬­ ôPj€¡©–…öñc;PÄNfR¥n’eäÃ)ª“HáÒn“ZýwWM¶Ÿ³xœ[òwsänÀcŠI›A0©zõÕ&|±››ðr£Øvëmk{Ü­&´$£¶)³!L6XÇk;9²näH›˜Ž{ý•.*즲ӎ¼¢ˆ•ºýûó{ÖpŸbeÓÄ àÖþšÿú"ˆg _aÖ©™ÿùÔX7ãÇQVtTÑi§[ÆÊI#@IbŒÁ– S¿=e%ƒj,iñ± έ±“{mfÑô‹L›c™ûð£|›í–„•ޱÊÛÚx%亂v0äÚ¸Ò‰ûí'ú‰‰ÕtîÓ¶£î{)ÎñD?ã±Øà‘¾Ïkï8³J«jž¯±Ê"‚ñ„ˆÇö½ «Èìïàæµ÷÷ûÞv; •Áz=ˆãâ(Z²èl¤ÌÒš‘×Á㡽9/YrUŸ]u\ÉnÊul‹¾jDn7>çŸ>…ß88Q%Úæ/t¿;ʓޢdßPî ëø½ å’³xZ6×yÇœl*ƒóþ˜˜Œ,· &Á "ªO8˜ø˜l6ójaÜm­È¨ì‡M[¹@š÷µbûwJn°º¬¶jëÓ‰ Þ¶o)úï«á &¦ë‡cÇá[:ª²íR¯¼íj‚Aã >w¢Ë¾Ni#Ê•JbгÎaÔ±‹Çˆ&ƒàmozæ57BŽã|[yëÂTææyYr÷ÛeÛº²: Söås]IT_±É®–JÐÒt¦ÎÍVy€3IZ¶tÒÔôËÉ[8þ£«Ç?_ BËNÀüãü¯ÛÅÊ„³Ÿ³4i’‘Ñĸ8ªÛ±uÅÄÓ[=ʦÃ+eŽyhÅÊÝŸ™]«e˜š÷¥‰ÉÔôK¢ãàëÜgRcGÌvбøø«]ÈD±OE‘•V­ â§|Wcžèu6Ä1^cªâÏ•|Ý-w?Ú*îû=Oè=a1®6wÓ»‡]Jcñ$ÖE%¥yØW:ö¡-²Ûü‘Û púèÛ6àÙÃÌû©¬¥q'1Eùþ©¾ï¹ŸùÙCó0)¨Z<ƒ7 ò˜Ž.D(µ i]&y« 2ƒ‰ 43ӊļ.'ŤQMHèŽLQÏ:‘Ù®Ý÷{@!>[‰ Á¶RøUß z=úrÓ¸‰t¼66ãg¹ífÅ"ÍÓ²ÇjNÑêšõ«Äm&­&5bã?7u1%óÉ„$Ñ’³bƒú9‰¤Z¢ìïp¢·0)í]]dºópí÷ÌØb®RÉþW)y_ØwáI|w„Rfäè:¹¯zÆ ãDIÊÜâñ¸‡`1+}ÓþoØïÙŠø`:}îØ˜Ð^xlÄg7 šµqQÖòqâã,¡¤.É@$vq¶ÄZ8ÞvKí_Ÿ©|ðw}lËÙ±Ý×ÍçÙUvÛÐZ<î·\Û7®µAßX9ƒ¾yíMß¼ç랦Š%R—ib:ɸ¥â/º7mëÏ¿òÑÅ=^ŒÆÕø“°'Í‹;/‘jek)*” ´$’DCz@²¸®¸‡©°[‘wÙ„¹ûÓbG¿q|o_Vk™ÚÅsaß…§tÓK [³Ýlš‡X)àu¨—ÝæOªóGj‡¢v”¾k:Z GŸÅ,vÚ³|bÌbi·ØË| H4w÷ù¯î[‹§~ ¥LIøjjµù›™ÀšóǧŒEÓL…#S#:2µ–Ž‘¥µáT:[p?µz× ¹;WÚBµºïvs¦¶“M•2–‘‹ U,Šú˜ÍåñïŸdÙLŸêûòóè‚îæO¶ƒÈTS·¥€ú,ˆe—È4œ¤RÑ9óVn SÀÔUPh[ÑÉ-M)M|®%á×Öàø:£?º¶ËoÕˆ…;40ö=b’ù¢áÜlƒ~ÓyÓ7.šš0˜@nÚ3AÍÒ ˜Ÿuó‡ê²Ô”hÚë =‹)A¹ù+Kà°Z±lª+«Jëšg¥cÒßsݸD[üô9j¨xÅ*}!éi¸ÈËm¾1ˆÎ"ÙáE­¶RÖÎVj¬žVdc=‘éd5Å\ö&;e:¦æ>è+ÖGÜ·–͆ÝÞ® äUÐlç²^yÊ™5R7‰E„ÒýÙ×-Kïb&¿2¡“i ”y(•[4-·ÀbÖÒ±n(’Âò‘•¶iÿÎű-3ɲ٭¥ãèW:ãj–WÞªÂâ),Ÿòëµ±ðÝ{¥²ã¾EUßfÂXl}q™cúRFD+ðð \Ñå”ètÂyUS£S½bÃÑ„¹N‹æ–0‰®:vd-³"K²è´;¦ïøá±â:½x‰úz@_›l7S][rA§/à©~QùV·Î…»7ˆÎ¾²ï1ž~ÅŒÏGnn_¾†‹4£¥ò¬¶ðÉ¡K^^Ê)Ö¯1sË'qêÚn›"+Τe_â!‰´$» ~ú[íßÁÙç¡_¬Z)¬x­TEl'šªˆýDÕ/¨g’e3i{Z1:†¹/SA˜¯f‡Õ¥+¿÷Ï¿Vt¶YÎû¼*UxØ!Æ#@ I$ £¯Ä1ž¨˜»ƒ7h“ŠöÄ”êR,ªŽ’ÛÐÉB .aR¤×´±tÚº¨‰Wͬ(‚4ƒ/{ðËWö÷•¹è¼ÒŠž¡Uá§'õ½û?ˆÎ¢Øw‹ÇÍ3ð«ö2´#à_õ`e­<Ú@š¨Î=£ïbR¬¥½¹ëvsË+{³×­˜x“2 ym8oÙíŽuK*Ñ$ÕŠ¶¸À@ßßÅñ]¨I˜¿70±*§Ò9Ž õ eˆòvµÝ#Õ*Õ³Ölëy#é¤âÆ©›´ì—•QÛ¼/ÇM"®aPuçT-+/–TŠ1y+öF2Ò±¿ÃªH }ÑfC+΋4õøÏÄçªt_™û¬· Aß ŠÔhg¡ùK5ø–N.ÂmSf‹µcð.ü¯ç(øÙ+¹Ø˜vC§<Ë'u»ûö•}©{¢³¿ì»Ås¾Îâq?öVbâ=-“QCÓØJæ,é½¢oVÄ#ñ¶ÝʦÏÏ1“M}Ö1Ëm'Ö]—‚¾Àj»“WEîI¼Û™Ü:cÛˆ:¦T5·àìYfðQfgf{Ŷ‘i¥›ÇSkñd 2LAÆ àѶ±'6~í¶ÍÆôä‹íŒ'Â,ºÖ¦Š´'ÖÍä/ßî¶Ý}\µ,J÷¬¸zòÚ0‰gaU×õÉD”*‹™ªˆ‘v  +$‘†5!YÕ°.$Ït›»¢]ªu¸í`®":èW$ ²x| Ç_Jò°U¸=Ï ãÒüŽgѸ%ª©É¥Úgq…ª%÷uyŠÀ¤ïK…öbJîï‘PdZÑ’¡6îêHÃ}ÑEé6PkTÈE'Á$´Ü¤§»œ«<Õ»˜ <~ÖZ5`,E½mEçûÇL×ÍMã^ûz@:HHDLÏ"žkÅSܱ?Fé3Þýåjœç! ¢³@"›+¬Lv˜«ÉUL&WFg&†X ´ÅȈâ°Á9O|\€Û‰RÛ­ä ÕÝmÝlP¸Ÿ}±ñ÷׈O]Ù·Ý’ÔZ@}­hZщE“óºô¸Ä9”Héëž×ûÇí?à&/é¡tw¶ëº :•ëPÊÆƒbã–UJu¯âAI›= ®ÿcsç޳x‚è,š…ÏymÑËn*ÃÁ"á`¡Ï[ñÉ<·•i>Þ¶ÓòI¶zÈ/$|Ú¥û½ÉÏS³bånÅGßqn‡ÏŸµ¿Ÿ]%ŸÃêsØ\·1< ßÉLáñŽ®Bï¦3ét ÷º]èK“-§Þ¸¬9×)Äù}ò²q•ã£;%KgRͶéÏ•bþLÞšÑÊØ_ªˆÐÀvòã±;Vt¶·xz«ŠóøÕX,Ék¥V6›MщV¬“–~Ç»<ä’¾DWt¸ WÉDÊCý¬xƒHíýw½t¬›ôX¥ËqŽ£GŽrüûÇyùÅK6ßlr]—ß»[&ŠŽs¯ L˜ÉæR2úÑ:Ÿ=ó,pì`m‡²6ù`¯íY>ApÍB„jDG›‘_¶“ïù]Å¥DocÑlÇŽ·@ SØì!£˜ÎJÄÍ7{ì ô +†“¬÷¾›¶S•ÛŽôWŸ€8š»•6ÕW_º›ÏtØ7‚þóï$µK5ՈϋÆNŒœ+ÖˆOL»M­®ºq4LºïÚ÷W-!)àtþ»ÝÃÍ«Ÿ§U¦Ÿ»ÉŠÄ_lbQT‹®Ÿºù&fýIc›åØïr—+ú RDH­¸$ºÜu‰(ºOUt›ô¸©oråÍ¢•ˆ¨!’;ÑR•’¨ecJ÷8%úœaYøReduë~Œ°þ¨)„¨G(²aŸv$gkL¨Ü9ë~›˜Åµf@ß®Â?\ñ“…׳#è¥RÒ-Øx ½¯¡?0µÞúXýÔˆÑÚ÷MExˆô,ª£•> Øß+°·ôµ':RÀËŠøùÍ3’Ò‘mã$Z ¥âH²z$æòp®|±«]ÔºR1<¾Ï®[·Ý¦‘ ô¥àù è¿…Í/ Ó6Ÿ×ÖÌ¿W¿q«è"$Ç¿½À‰Ñ N|{Ä*èS<ý`ILL‡&1mkýlÏ5a&'ŽwÚ³'d\/‰Î+ŠJÓu¸w=Ñq1P%ŠyEÕ% ²E§oŸ£íæ…Áu}XÆ4iæ"Ôžaq³»ú.Ï¿~NØ7i‘¬oIÄñØû}3S‹OŒ93?Gzsû¢Bt†‰)Øš&æoJ1Ê Å‰ÐŒ‹#ÎBW u#·Ç¶-¥’‚çv*çÕÏ­Üù;D*”JP逸ä_ç´Nˆ«Â+vTNÁðô9<½ â)èM A  ›¿€þ–!â[ý><ýŸ z_7HÓèÇ¿=O“ãTëpæÛ»V|Nððƒ.XKGÚ¿ïÄzîîUPÓn³®êdD¿°t´dÇñ}]xœežU-ŸöN¢ãR¢yeÄ ¯Ýžc–M·Y€š6À~Cܘú¸ïê»\M¯ryhJ=­vW¹ÌMó¿éÁW=d»Ã©Ƀ)S²ó¬=GË­µp”Íü´…[‹)Uw[†™œ8¨,¶;·bSu·å‹kUgpû5«†ÆB©{ôtÊš”íÐç…ÆŠq‡ÚêÊ“øýMøË㦠EªLçñ@>²%ó”ê€A÷%›¿€‡[¿»ØŠ‰¿ò¨Ihh‚޹ÿÁ&×¾…æ1žGóDÆ& ºv%b4¶fpYê¨âî™þ£`ÄL¹—`3ïÆ´×-½P|_Çn¿®yT*!\kÜ⥭Egª!(­¸%nqu›ùGuœþê4|¯ðÜe[f€µbNiòàMÂùb>î9w®50Ç\IüÈËÙ~ÄLn•û¼àk¶/KX µx65ܵâ“UÄgüæòDÇÿ»€`H›ÎBÚJ½_\§/L´=[†¥Ó],|¥šÆâQ±±€†¶ýF¢ÞC ©4íŽH¤µxL ǹS¤uk­róƒ6ØXÏ$P$ÄùÙL«"x-cFŸM·â“£Ò¢…{Y¤ð6…Û-­±|ê'aW€õ'Û¸ã*±0KB€­Â=în|ܦ²ÀÕU”|Æb¸i [}¢a‰;Z>ùy¸ nY (¬»dEêYˆæ¼ãƒÑ$¯P8p,Tx.3 ÍÝmPØ_ÕõGZ¶õF€ï;wujJà«Çy À8GR2ú¸Ëèßî0!´Ž< ñáÑlŸO¥ùìPñb·•BÒ´¯ïì’2‰mb:ÄÖ&ÈVDÖíÖåúä„ÏŠr,¦öWVkñŒ~´n‚KGºp¤ËèÏîm{lkè¶¡#¡ÛÂÎ0Ú›-~“pP·¨[·F|j¿MÅÎÖtÆK€Ó$$yͳ(ŠR"ísöZÀ†½n]m* ÓpB+€V×Ïu¢S;+m­81M9£|péžwYˆOåüç¤8ïFíïjÚ¿;°P*<@^]w,» *1¿¥ôð(mnþ÷]¸š¥NIåõïF0ú㌬)±ÊDJm“™—ûýOO!±M mÌÇÅ~”4¦Ù7ÓX<111’Iˆˆ"k]H‰”ÐÝÜ-çs‡òòÈåì§J*9¶Ú #ÐMF?ž\è3"Òn¥Db@,æQÜÇ”ïq#zã¡ò¼L%qúŒ¹öp…2âÓ’Æzn™´än>wÝÜâkN„úÖ|<feО=ÎÒŠÃs‡Š©Ò*C»ŸRùuð2ƪg—ćJÿÄç ±ðî»:’+üv[ØYð~uda²‚Þw6Ä&«ÞÐUM–®Øª”0ÌŒÛCØ™œiJ$àsmR‚/=¼x1Yt³ ¬x}(ÅãÇ|ÜäÒ)öÛÁ$8H$MŒCíj¿ÇÝn—L-H‡¦Ó<[é‰ï0¾ˆXK¬³z}SlRÒMÔÃG0T¼’ÇQŽy¥ôË×$o6óÅâ@±©×g¿Nxˆ9Îkž{ÐÍ÷iÎ龿­osE\¡Ÿö‰[1‘ˆè´xG[æ{ã»ÅSïxºv»+ŠÚs.[ՉõR,j{J1rÞ U¸~ÃY:.!cl¿º‰_ж,BÏaŽ¿S`÷,\xcFNîæñ –Ö)‰l é %ä5˜6=·Ò{ME¼‹ò**£”É jÅø&ÇjŒ9Æ:åÙSù/á.laýû06åNZ±ÃÖÎ$ʤý—D’Xã¢X7'7ðãZõ:íqÑQeÑÑ@+F}Ù'mwÈþþ)’$U([Žæž8ÒðX\#S/Í¢k*±×{>ÖN•›ÚÄVVíóÏù~ï«>±ˆQ©BIEš¦t¢N^˜ÓŸ¦íôÛ¢˜ÜšZ÷¥›îW`èØ÷?õDãs]6ЊhÔÍ=zý€ç!ÉtKØþ c² åÁmÄ瀰‡UužBÉ ¦ùƒ ðOáë^í2¾{ªIöŽPÍv*f~{1±¾)­åa®÷Àv´qïäèæ¸%º†2ÏFDJø³\ªÌñüîÎ+¥‹gBeQ˾/÷ãŒXýeìù5íÈÛüŒÅ¨&æ£_[Gýb@*#úo6I„d ™ã>ÊHE“H_'Múº "áÅNöÈmm,·“ûp¿+¡HtB,b•˘ÞV¯$:Ò{Þò¥¼ûCz¢S"y¯»ÖVbFŸ0Kôûf®Îæ&üb³$:n¿ÕÔóÞv÷§î`²ÚRï~nñ9 ,Exœ›ìÉØHäŸ\ƒmàÙM ªüf+ò“Vz‘2 ä3½s·y5dçÃ_­^ÇI–Á¬ü÷»ð{W¬)bH)?™Î}'s;‡’ô¤Ch¯ØJ+hc>Ö¿*b¾¥SZç¦b)6~aÝhî°ìù^ÐfÙä¾V¼dÓ‹AVÚ}æü>}OªûD"¶n¼˜¾ê¹‚™‹§¨†=î&Ÿ$NYÍë=knÔnÃw»ð¶oî7ƒòýªTþûõ*¢#E‘Š>ý å•U³ >„¥ã4°ánÞVwak¢m\3|ÝËoÂêÚñï;Õë[щrK£if{»RƒAþ~7RM5\ðâ|¸¢¨Ú»K´u«IŠXÏ"[q.6<°Q¾¼}ò-œmdƒÂÕÖù¨7²ÎçÃ@­èlw~÷}±yÉÄÀ¤ä rñQ÷Ti¹éŠø¸e´G5¯WkË•,¢(‚•ŽYÚ̸Շ$1kt¹×¼Ï»å°{vûì´¿‹>æ‰O³,>¥±ð¬¶*Çðfd§©¹ñsúq€ÒÈ5¤T5±ó²›MäÕoûùËRgëWî–,žš”ÔÝò7×MêtÚÕôÚéwáÄlaÌ<.W|T M‘Ñþ6¾€ßåbÓôï—VT/:ïñ}ôB÷HD¥{(1 Ñ}R‘rY_ª¿N•ç/_ü®ú\êñõ·Ü`'0x3€O»ðNñÌ'‰©zEŒÇ~¯¿_2‹è8j-ž&ð|W0°[–.<@!0-i|½Ršr¥cV'ÍgXû“—zăªè:Ñ–—Xð61>sïýQ¥sh Ègüän6×î±NÄP‚Žì¼›býÿÝœi¾ôåãTmd(šÒ)é–¹ez_›óibÏOJä‘64)®—Û¡`ïçwÈy¡(QT—ÎÜzP0Q|”W\mÀDqªŠs¦÷ØÜ›ib`Å=ëMw÷µ›'ôrWÏýú¸èäÏKH³^Kž‘»©Ýÿ[3&&ߺ‰êÌö÷Ëun 0¯ÎÌ(ò—›c± ¿L‘›§qT$^'³ËTê**6“JUT´3pºÑ ‡±rúÝ×FJ™WÔ0Ei…²"ô‰™¬>)í$Ér„ªÄrÞwžYñIuDŸ[ùR ÔŠN-SXHU1Êk°õûæ™wµØ*eq\l畞´pÃ4œ¤XÞ;+gŸ…³táÉ~Pl·ÍÐu¨LúíGò:¾ï8PvŸù±¥ KÇ_ŽšrLÈD# ç¼õoJó©öB&¾±• ¦*•S¦¿½kýbðµâ¯:`;KÓ*\SÈ•Ž±šW¢’¥SmN|ú(Ò·Ù|¥rUÛ‰æïùÞö6"„Rfp”¦ELÇ~¾jéô5\ÜóYžôŽ'c.îäÀ®X¾Ý (æí(e ~Õ3µò·ÒâïBš2ìö¦Ýß$ÖÃÃi๳xÜõÚë9,_¿¼F—.²Û¤(7ëVEgn(J½ØÑì om¾T&Û.§­2ß*ÌrÜnåO[æG'4TŸ‘Z…­>a6ž=)@©÷ÛÍVå™N9aÝYk¢œU6éJ¦œŽ?ï†IÛÕöm߈ÎÀV_ª’èø±y 6óïoRö„‚¢‹d©ÂóÚu~5Z­à£Ž¹i¿I Ù„výÒÊŒÁâ)XÐfq±|dïÒRK#OÓùKYqe-ž£Îé&EÂÜVf6MvNÈ«PÌÀ`ã—)Š )š@†”Mÿç1ˆ"éåâ~Ð×@¬ƒîÀñus¾?5÷Ùñ˜Ë’¤0ØSÕ8ˆÏ3Òm¤V¬ ˆ·q·^³nÚŽëE|˺®õïG¥àg/Ì”‰‘Rº(¯Õf2í\Ð'A|n-žØ{.ÀT<‹Ã-‚¥ ›ÄˆR¦GMsDÒX;4ͬwi¦&v¤z1ˆN-w]¼%$Jópܯò»„ÔÅzæÛq(kÉÊØ<ì3z5N xôEß°Li¶$| Ì~Ž˜/£»ðÙ ~¸Éè¯@šÒø«³ Ö@²MïkˆW Ù‚ÈÞr¦³éc­;;¿ó>ÄÜ×3©x›çìŽ':QÕ™ÔÖYB.®%ÑqµÙ’ýxÞõIÌ<¿¬Îœbš©XjŒg2š2ÙXß$¦<}–åµÅPŠXÊm†€aTr—y¾óÒÔf|ébÍûŽ0©íf- ºÊËj#6Ë$LÉÛ¹©-Hß(T É@‘¼U¼~x>]5c £?»e… ¬ IDAT>øu¾|Åè{7bÄ3”Ú4p ²!Ä‘ '‚´#߈jÍåÀ$Vµ™|ÜvƒÇI1ž¶_*Š੆ÇÂL.¿+Ì ¯‰ØmÛT òXO˜ß³–ž\ /³“ãï­Ç!mŒçزô0ág·ù¥å½mYy:·[ë™n]ž<«m:“ç‘=µ¨·FtÒiÕ@Ág'Ìñ¯­¡Ñ ~ú”Q»mJ-ýìꗛƢç@ÜG ûôæ~k·±‚,1“f#Ð]Wæxò{@ÜXöl‹«¹æTR©R(ŠØLÉâ. †Šm—jW?«žY7Ûþàg¹)¯ VÏ"Xºð8÷`‚á`nˆ#]cýx£¤0itJ¼ì Zw‚—ÝæOòs@wž×y(51tëðì,ˆ6è{Ì#ywVnüß#žÿ/xùs Ý·Öá ®› o/ü˜&SÔb{¬‹r9‘€D©RAß1 Û˲”¥û´¨nyÛ«ö~xnh¦­\p£âÖ φ]ý<φ ‰‹a鳩Mõ]éFJib\J™‚i QLãëÞ²õ€óÜÎ{8e-/›È!Ë–ô²”†£ûqXÕÚÖ‘·ÄÐ5Þ4~÷|és#Q”Óq“ oüÖˆ()ܸij?n·•jðìŸàøoŒ¬(¹X²©Ùs½ Û"åˆNz¿2XÔ‚4°UWº :ðæàש·=±ñ«Î»ÎßÝoÒ äûµà\aQ%`=Oˆ1¿oÛŠZÛZ@›Î`/þ< ?aÁ­_uL“S•XÏç ÝÖ¯Èçùö¥ Ïeà”Ù:kçëùN—Æ?¬‡í`±QñQC*$M­ˆ„DNÊ&ªÉ6Ú·±ÝX—ÚNýŽ7²=ñA`—R(» }\ù– ̈Ø_§EJ“L ¥±|ªsw^ü‹·­ÁLFXLõb3‰QiÓá¾Ú„£ŸšÌ»4ReK1’ðfŸgV4\¶jµ “[,N ¯PkÅò›Wec:µK@Øý»û#²P"à´÷þŠØ8K¬ºK_À O]åSâèØRn!›v~,]x€òZívv†ŠÆ¼ºä#; ”Ö)û¨û"ioÒæó*æ4c§MŇ>^!´*:‘?¸‡]aŽû—“í²cÀ ·1ŠûþfËdÆMu·ë²5B » îÞ/—[áÖ‘v]¡f2½Õ‡•ëv0S}ÀHH.£J *mQ¬˜ê,™Ôºò9þz=c´Œå'¡/»ß¶†WŽÚÏEºX¤n¬œ”·­´Y÷Äï[µí†µ”{géÉP¬-ï:™ÆÏ_Òø«ûÛ~æ½E¼žÅZ¯¥‡+y?¾~Ž=þabÝm;w¾·µ_™J,CóZ64ûQÃéζû1DQd Ä…©>35ò9ðªô»ùµã”dfkþ$fÂQ+…•ƒ'<HIb-ˆ6±™gI8w5bP*§cËEbB"A¥¼M$ežˆk3=¡XÜ%*8 ¬c_EQ©Ãÿ»o©ÅÞ~;•÷÷ÄPýðs „ç$榼+L ò¹€W3:ÃøxGá·Ïfe$ &@º¬ÛÒñMû°KÌ<ûy릪VÞÿãÆŸqßy×{¸K¢ã²ï°Vð”³OÓ¡þ¥=­N¸ëÇ¡û±¤ÝîâÕíÞ;íG¦­t¢~í¸4ňL+6e°’™íƒˆ”<8Ò.UÈD‘ 0É’(Y´x ¾·Šl™,·±¬JWѤeïå–-Ü2Ë#)«xqUØØ¬i8±Ò†ß¾U™×Rü.NŸþcƒg¿vDj,‘B”‚´í¤1€RÜ;ÒÎçï(¯õ-÷\û |vÂI›‚®Rk¸åß'C;·/MÉ«xý‚Ôʈ¾U#BM{\¥Ä• ‹V?ï·.á!°{ŒðøbÓ¬vB²âVÊ'gÈBÞñA–ROcÐõ£ÿ»ºG"bÝ$sâ#¤q«-Ë?-$å™âãyTý½…ôæ¥HÖ&TIÝòÞÃ";7<ÿgsÜ#Q´Ç$ƒï]ªÜÇÍrg§ ÞXal%ðÆÍ+hª¢ýnìí8ö ›«~'Šò¬4׺ƒjÀÞ\z=ø×Ðî £ÈTJ—ÒdŸùû¯ÆºüÖÝ'¶‡ŸéÄ"ÖE¡Ñ8÷Øèæï\©O€™Ð†êø{çÀï ³xüøue`,#Œ{î]$ R'DB™Ti&WÒíkef’碳äøÀؼ"ˆÄ£ò{ªƒ )k¥%Qº 5¥Š¤C³¯\|¦ŒíøôÞÀæ/¡ÿF"e„Ü‹«Ë¬•vƒR”íO®™ú„ßfE ¦|”ß0o6)(ePcñøYf.庤HS­äËž©>Ñé W:4µ* b'¡ºù_ÕJZ±¿ Õ°Ú$°ø©Þù`H2¶âé´íhŸ®çûÀžÇ5¢3fñø3 …,*Ûº›Ô~îówP|šz@,”Ÿí; žv^B“Xt„ÛáWnæîŠ®x¿£¡1B#¥©ZÑ’¦f_+63ã9O§uSĨp_¹ûg—8ki°å„l¶ìr~íT!6¥ü5¹„Úתâã·zmwÇ±ßØß÷żžIÙa `ƒ®±üZH3øâ•ÉX“ÒX>¾EÑŠPQTx9V"ó컕‹« ,UDçRŽ–ß²òLZ°Éï‡*û¿Üf²êaêLÜp¸ðöCóâ@]š›îUnV³nŠ›ìˆ¡¸jÇ*+"²¶–n¿ƒf° h³4€ÚáüêMމU^éMî“5Øðp™×źIe©ÍXwZñ‚«v©sû;·"S¡|Ë,ò¶)$ë;Yn•©ï6oO¡†Òô5n¿»YF!·t°VÁ6%y² b“Y7¥kÀg¬X”RÜ¥ ðéš"¾³lõV’—¼º¥MÌÖä•6 ¾«W HI"i—¤~¹+1r¨JËÛ÷Ó”¸ÝF­ÄDQ„*dšÒdÿ¹³„<ÑòB¸c1DŸ-kÍV«·O±¾P×믜{ kÂ$0œªºk×J›ùŒïJxÀLÒzRõ©Vª*ç–N«YˆRÜfòà»èƒÝÔ§Y@K¤ˆ¶=¿'ÂX|$N€Ž8+ÛDƒ%¢?AŠ ¤ÎBÒÔii>Æ)}³oŒñÁ6àëžYÒzhDjGÑÉn‘]oD‚Ò2ôD­¢Xúôû‘f4”°µÃ² Mûq­Ÿ¦mt_Ÿ³¢ã² ÇDÇ ÀÎ¹ËÆ:ýž.&‘v„#DZF¦H®-Sàåå׽㩫E@ÕÔÈZÕ×P¢I¦%JH”– š(=©òÕüP¬é'öwÍ*“E ÷›3Ùô¾Þ6§û‚\¼\ªò^§Ç®ƒ~‚©Z™–Ñôûý(ží sƒ)ßòɲ¢Í;©éæ3ÍÊ%afòûÄ=\nûpÄ­¹ó¼Ôs '*Y<)UãâÌt;¥vsã"¦tþ&èW ^ïü‘¬ú´ü§ë¦ubÕôbçïWì„E ß»›ªŸuìd+­yà±}(ÿi8o±í•ºóÝ>ëo_°×A]{Ô1°±´ °>+HÍ|™˜d!"ƒ¹¤zܵSúKý««èÿxK~϶vnfq“ê(Âä9ùËkð_n6ïcF\ ,"¦e‡ÐÚÝúX'ã5ÀÚ¨{aо-BDV“¸ÅÀE^ìë¼oç¬Ê3wþøž$”&Ùœ©Ø…{mVÕð&ûÝNC©ö, ÝëdÖ禶¿}Ÿ×Œ‡ZŒ°Ö‘,¿úhkI™V¥OxeñTê¦Tòdn©›•ì˜óÈço¨ K¦ØÞ [ÄÂ:2Îlñ|ê‰;߃$gmÚk NÙ.qà>ÊlF¬4Æ¥Ž¡ULns.¨ç¼Úá¼Ì_ä£=ùhÈA[-Ùuû4zn)iEÆtŠÂìµdjî¸OU;‹xh˶×}Õ\Gçݹ×ÙÆÚÛ>2pБÚqÏQºz;‘LÖïxE_‡5òu>Yu» ¦ÅJö3¹Ùþ{·ØñzkhŠEíÕ"Û Kã+äGôd“¥®^GYl>¥:ŒY4þ¨Âë7.©—èpMuxÍd¶Š_†yl±­ 3pìeà*E hØ•Ýt–ÏaˆjÞ{Ô&ÆfeHÅ%‹Äe Æ`5‘JèZú‚t¶Ý³ù««ÄZ,¤X÷ÀÆhº`Êí^áûªà^ë,Ž%Mym¶F¡rî,¡‚« Ï߆:޶pwN¤â®5ûÓ ÇõΉÀ=´Œ»ã²æŒÎñ¯§f»MA>m~ÚͶ†HÇowK:­}žß¬X8ñŒ•¿™¾bØùæ}€—µÐ:ˆAPL²„&”l^¦ŒÖ%Ñ €Ïþ™Žë`ïn÷ÁIu’§ÛÅD&pÕ‘ÏàÀÎiö&-ò$tË^w©·†ž‚K;Oö//¢•L’ÎH£mŸ?ØöûÓ’Ž,B z­CQ j¡õëÙ3 »V²£ÎO?‰x¥nìé\gÁ´º=mádmüoG>g¹eF U3ëˆÇDz¦ôµš†zÑè~-žœÙ¿·Ñä]‘ϱPâ 5ªý64¤©SµKátn ¸èúú¾×ñLCýúO©!·í›d>`O>+"KE˜± ëê1Wæ"¦@7ôïÙWaZ å `/ÃßvõG¾ Ÿ%<à,±–I¾« g  NíD>ušì_Ÿ†ß%Ž„4Ø“i4øÑø½¯vuªžt:Ú©2¬¹sÐnÑ7œiwØ` .‘Úí¯ó p¾6î·›”Ÿ ÛÐJ€>µb±øÔp߬rh)xÍ6óMJó¢xÛm, +:¬ÌLûßGvåBíƒÆ•€q}g>Š`kXV#«MUí6Ìæúêxšð…- êä[Ïv›Xá:>Îrß\6ÜaÞß§{D/ mºÖ˜¿xÈÐýcàïîKa"ò:V0´†ŽË*<¥4Og¸ŸÃ/­â?‰É Ø“æ`‘¬Yû ¶¾˜é4 (ÝEíDÜÛA¶Ú<¨³cv[ÿ4L¤×ÉÇ–1Šçn1ÖQeêuø}ß¾;\ÄEµç¨UU_×ßoŒÑÖö›ºÅ‚P;þÔÔì=¢E™¸UµÜʬØýŒ“…Y<Ï¡™I³LH§Sè°%;Çx>TÒ)P»¾é€O­ ¢¸vŸ¦¹ßBlpåÐIgßP3Zgê ð¦¶H¬ˆÔXþm‡~Fb#Š é²xÒºˆYv´&ÁÐS†uk¸£f·²ŸCÛr $b‘€@ÏfùH·N]ºÖÚ‰ƒŽù¢9Áعꑬi.üχ×Hà3Ôɨ²µÁM ×¥€gJ´7•Ôßô•dëù­·x¼%Ô„zKˆi QÛ’Nð;„ÖsUMèH ,\dî·GYô­Æ¨˜ÌÅ*%á%\ìrXœÅ£J-¶©f\–IJµƒ ŠÕš,š|¶Ì“1 rßqG¢š´ZŒ…á"µÞv‹YêŽÔ7îÂæl"×#¯]Ó=ãÚ8 rzb?N5løoB:ãÏzòùv$Eñ»ˆÀ¤¨ïnåh¾< ðÚ…/¬öÙŸ÷˜Iq"|ò½kÍ=_s”U=ŒMHÖàå?Îq¿; [·H¶ÙÖe`|½V´ëBáÌ8°X*U yÃóèK>šbÔ¡%DÃ~SUÊèxÕoÿÜÖ;¯úýÍ£ñc¦b2kÐ*F»’í³,÷QO¶0‹'¯ý†÷ °âXb=N~ÝÇxšb;~ûÞ „î€Óµ‡ÌXx¤$Å´néÈ ×Ü Šia€“êXx5'Ò¹¢D÷Úâ–=õF,…\\L¦—GBYéÒvç­õ!£1 ±‰J¾oãÆ²Í]!é#£ÝÖô0Uðœ]úËq¾>&çëÛ›«„YSÞ[>U¸ÖDͯœç…ÔöИn3ÔÝÎ ±tüóÓÜDò¾…»ˆET·|JÜÜMhtÿ«2vT·€¦.¢¾p–Mßý>>æä‹vm »9``#R•YÈ\gcã^Gì=staÄcn~ÑatËe³©¯@M;)þ>Mbü}ìóœnXI=hÌ™…\iz6æ*py[Ò96åûÏh»€Ô]„nƒkJsm›I÷ä.ÜPÓÑ m§Þ Å P­PÁv£`Ç ò1&L±Ò3¾¾Ã"m†H™ú—r¯ÆkÎ1JËø¥ŸLÚ¥|Œ¶âvÛÞ­£€«[RiK¶3ŠÖ5Ò™æ>ÚT<ËJ}9ÇOÇQØÑÍ.Òüx|£\ ÷­¯^·¥nBrð2B¾È6s¯½›l`ËD£jn³ÝùÖI'Î?HlÈ”vnÅÄO»óÝ_MßÂÖœ™¥Ys J.vÒ¾á”3ïꊾr&Ük¹ŸõI7)yÒºí-ÛÁ¨ˆ…»”™`'Ùà¯xfŸÎå´ÎQþ^¢<¡] g¶7/‡ŸÍ£ƒªì à:è+2éo=uQŸ>ëÆÏ4™cn|äþêxb%Ë–†ßfðó; îȶ]±(tà–0”¯ÊsìKösÔkg±å‰íÑS9‰5t4k8~~¸ßïÁ ››ÒrÚŤü$é%ðçÌFôÔ˜äl!nÌC¬¤¾öü¯¹L[”ÝßáþœpOMn´P¥¾Ímssû-›ÏÕÛ‹‡‚¨ó²xd¿1^$µ†DÅ©ËZí #žóÀë†k¤# Éeõ雾Å1|í&Fw³­Èfg yO:~p>P’MuFÅnŤÝ6b`sŒŠØ°^INÏØßÀªã¤7èSp“Zi9\²®¨·k)Зˆ¹»s¾@[ƒÎ+°uB”+\rß¶ *u±ÆZáwüòV¢"+Si"æßÈF´óÌ®$çoQ®x3µAמ¥£|P@:m-Tq"¤óåSè÷ákW«L¾z‡•ü^PdGy÷Þ!=·‘ݾßXÐ?< _?GcŠ„¡•Ôêí<³à¬ ?¶U͸R^©œ÷’òiºO¹ ¿oáxm6o 5‘Önq W&dc¬!võiûň§8zx“‹>.±à÷ÂosÉr‹¢â¡M`eáloÞ cfá>pßWôûûW߬Äv®[)6 q—!lKj»v“GJ>ô}×ï.'kà›³¥;ª ˜]µ·ò1”PËîG×éøý˜¨|í³ÜU ¨ÖfYûÏÍ¿òßþ+Œ‚§n¨žN[ þ³²ß xñ!àø™ÛO“ªô~1|Û"RcÄ8¿Tí™0Íâù“+èN?½OѽT•ÙjÛÅŸ_‚<L,¿~ÜmÄRid`ö¹oßµ Y@B6\aOU=ÈJ²Ú¯ëî˜Úýô1ï’‘ýì)×þüœÿ0[Ô×{ÜÿÉÃbE+H$ðnØ¡2ÛoLc&¨.Ø8}éÅN’¸¬A¹?9qKAú7}É6 b;;ÙGè0±Òñè«2f´{nV\PðªêbéÄäE/¸Ì|Ú¢,–xšHèCô›ÍâáòŠãNÚ­¯Y‡k…}aZ/÷:ùÖ BJ{Xdüñ)q_}OÃßײñÚ7Î\qwÕJ2 IDATè7¨žX@u¨{¥»Ì[&–ÒMä_o£U5!Ó-Ÿ0¶¹Ãâ* îS¢ýŠ´*o×î§/zì*¸o ™’vÉ·U™Åvq“ÖŽPc°CwßöP§8ôIò‰×t;Ozðÿ‰¶‡'ßmî#´ì(êçB:× psk•8K'¢Þÿq`ÁÄú¨ýE½ Ü?DÕ•aÂøS™0Zo±"m… |EÐ|/XAŸ­ Îæž÷TH‡`?Øjˆ™ðùI‰ ~/š$-«[´“ºi¿$î±’ ë|ü6‚Ñ6ëãšeWÄ0ý6ŒùS;f„MÅ"·Oæ‰j"ïª;Óg9FN+É~\oø½j\½ˆu6 ÒKGîS¢µûÛ> ‡0ÊŠæu}%E¢*Ψ¤ÎÒÉ-$&›oyÝÞßyG3b¡Äã¢Øù6;Jòè'Ü2a/t÷=ˆ¤@/Ëæ" ±Âîpq2:u·Ù%ÏËî³uY&7Q89îÔ#~x\HçÛ¤€ëaiñ¼ -—MP·Üë@«¬²‹ñè?â.šŽz݆¡ž½Ùó™¾?/‰o,eÝO`Ii× ´‰lšb@i` 4Ö8fó7d~° =Õ%±Ú;‰Uh ñZ" ƒM|{w¯$p(ߒ⌺‡tÊ•ñ©cÓ½+ÍÍ9·½_(ñøâªÛ¶L ­¬èŠ×¦p·0n'⣧lŽ´" ÃÁIb†ÊÚUue¿â¾e%5÷¬•,¬íbM14cK­¯Î»—îücü_ÎÀ+bj»”ÚÖÕFMUZ~çc<ƒ_–ÙXc§A–)xñÎÇyD¤ ™ÍÑ*ÆTÈ')Ük7íþZ¬7a¡Ä“*¸N>œÁ Pû¬¹É£l“Y!¾ÂâëVÓQµJéÚJ;v¿ïu‚l›)Ûž=Çp·çmÀ/g ªv&‹ üü&¨U÷Y‡SÏo·“³·xJ¥††ñ*L‰i…'ë1œÒò©Ö Õ?ç¿ï-|æUáÞ„ÿnÌ`½@ÿ'côºÛº6!QšÛÖÁ§§åWÙÃËb[&lð•[$fDJclJ\(h÷¾Äv mw±¶Rž â¡÷—» Êý˲ÊÊÔX \áÀ‘ªxBн)v«•Ãzܘ} ôããB8°1ûÉBŸòšÒR8 £ÔèòZ\áý2Îr)ΧžtšÜ’…åB6PIˆ¨ÇÒâ€|"[­9¬ÿpÌË_¹Ž&îúJm»£r̤ê÷íì™WgäL–=^qµsÇ&n\j÷<ÇäVsŸù[;°èÓ'+ï®(ê¼Pè'jöOíû+<Ú!¨u†6æµJzM·)–Â%4w $bxI¬R—å4 ¿S]Çç'åwÎs™Íò~1c“¸ÈÀï üÜG‹ñr°î,ˆ©x²ñ‰3‰Â6ÇõÅØ„*»·œ>é¹a`dИâïÞ=×TG5_ŒÑZ,œÞ÷!ý²$k²5£y¯D¬.`ìÞ{Ä|èð†PÖÉk%Š…“¸l6‰ñ<>ÀfŠ 'žúŠ®.ÿPú°ƒb¿ïE€©NnªšµÂÁã¡ ´¾*¸jìUPÀÆÜ­§"“_¾åñ§g¨TöG®Xóç3’Îçgàw©¤X{çq°uag­ô;òZZuy”¦’ƒÚs0Í‚i¬jkhwåu›* ²=õ˜ÓÀîJ4hH¿"Ÿ´÷òÄkpòs¸»éIg7jt³cC]ÁØsÈÊï ´ÊñÙš¹ó ùTiŠl¶òýgEjÐÁ`¡®6p*¯uÒ¨[Y&Øi ý¯[”¦çc×AuÈWÏ$ÔØ¯ªž¸qæûOEîyŒEÍ~÷Å »?¥? ¸nEÐ2|ˆªu<”+»nW÷(/¹•ÞÍ)n‹Œ‚„®:Qd‰«É¦%OÿÅIÕýö§3úðÿð8`àwÀ?¸Œ¦brÔBЇ€ÛPc.Ø=%jÅ]Uf½y‹È'$„Òø¡Šq¨BÜHB®(Pg)˜Df|Ïþùñ÷±èÄšö ß±ÕÇ\3ù}fó×ðêG8ë\è.y‘­x ‡{‡vÌÕ ĺ…£UÄ«J扥 (óèë’çÃVNÚ=0Cߘb帊ñ¼ ¸É)Ûá)C°Ð8ÝýÅ%É>³FÚE›¼üÍÛþë.3ß~—‹{\6u9‡ ÷լᜊèYÉæZIiöZ[õìºÅS'§ ùdε'î¾¹~Vw¥ÎiäHHç2ÚßbÍ'nøóðZu9pd7º§{‡:æH'&³Z1ö`Én顯nQáÖŽ|&ûþH˃ÍJø˜zz‡z´péÓS ¤:¶Ö˜ÿþ´¨³áüëù´-[á  U´¦o‚¸ŒYøÔyWì·ëYÌ£/Ÿ¤ãWÄ».SÝ'Z`Ç 4ýõØŒkª+1g ™`Rˆ&&‰mú¶(àÕ«Ò éëÞ<éF®›oKýÛZ$D¥ÙQ¦g:ހʫ±X¿åØÞoÕ.‘Ú¸ £‚Xð‡¯A™EXíå/ºˆílÚytïÙåiúg€o[›û³kÇðv€ô¦1&TÉþYa)qNÄl×ò/nFšön—PðßvaíüÁF9ºÕ£“ŽG Éúrî sÓ¦@Âgù”g]ßÞí<­.¨eaì•§}ûxƒ‚Œ¢à¾šÒ-×fOä£ å ]¬¨›tP]2gñHÌ!ùŒ)-ƵùÐ㬺( p¯Ž,l¾\Jâÿó3ðí@\[NàqTM$¨[<ó茷ÂÂJrÀ)»ÎS6«û³{Î/€ó¯â^ÇB>·¨¢¿SP´8‡&VûO˜ñ)Ð2içÜvý}®ø,3Umgœ8·œ'êX·µ#‘Z"Æ'òàÆ¹ÄFÞÍ–;? Lq|ðI€H­$FÜ´«¯À !ÉØ‘áp]6™ Œ7ªÝÈkîNK‡ ¦Ï,wKG<ã—: ï&ØV˦ì á+ÃÄ„g°½ƒpn ËôŸ?*Ýj& ´Ë"‰üŸ{'ÔþáFI6Jƒ=ÜÕø wY|—É0¦E§3Æ0è`XË Ý÷ùbKeï^ó‰6;|€'ïÎ’AÞÿ^$Ï•Òåç\¬kÄÙ€—”Ùuþw»¡ µ_ðX=!·)‰Š¤ýöa[:²r¯¯øqn§÷ØêQiÍÍ©›I¦bñ,–p<–‚xÆ q§­%Õì›Üg5‰{Æ3x“6X¾²x–•”N?þªÓ)1˜ ~²GqÂBõ9¬:ÜÕø#|ÌFúßܰ‰q O U—Ë8iþ¢¢?Ç׹܆‚œo¸„³ö Ò©u²Æâ&ë\³}¹o:’XŽÒN:€jìÄ;n ž¥â‚—Ûé“Ù{šêÆuª.òù› ÞãEè›rQ¦"˜p§5Y8Ý¥º %žqèË!_ è‹‹§ðOhé¬b<Ë ­º;(²Êôç¯1E '-ÝbÚÈëŸ\ßÛ~´Q’˜ÝþçS"9+¾¢žcÈ]“O˜¹£.J¥½ê’ZQ ™}@®4C«É|É}9Ézƒi €NX—äÝŠ¹Ä‚¶«}ŠÙ~””ïCc]T¡œ‹<_tÚS1Úžåz$¿×"ÑD:ï[¬G½®+¯m qBR:Üq?+FûNOÙrbûÚ£®ÍÔcEÊ6“¹&_Þ Sͪî5 p»ï©ß1ÕÔBWŸÄi"†ÕôTÄ#›²© × ˆ³£Î9!P_7”oÇl¡ì$KƒE\×Rf»yò 5ïbšÞ= §Ž…Y<>UT+$v÷Ê••(þ¦º¢8ïf û¿ÔÝm+,Ž«—ä6å…:'î'´!Öš(v;ÖÐÿ¯»LóTc ¬‹Iœv¬öõ? FLÒ¹­¦Fw-tÕ&»‰VWÈ*OR±xúœžy\’‹e§Ò`ëëáÄ’n=&WÖA‡ÔD½Ç¢o LUÇ‘kBÏæÜRWçD>1ÇѪçŠDµ‹uÝŸ¼/E"IN³¥@…|äž,’€ÆLZ0ž\üuÔÉóð³3 !Tu%ˆÖÕ3étáÛ~ù^ÕæÝ KgE:K‹Ìjúú$ åå:i"Wì£w×ðÚ‘”*0¹‘ñðê­Ý5‰; t­h†u8áä×±°¡àˆïeo_×&™Ý˘U-2 …Fýk]'™Z즢lÐ`ùçm9Y‘GZ“Û”È OÆJs~[Y¤ÙÑá$¨ž+c·I¯/RçãÚ$~¦ê>Ôåï¯eÑ¢`ó7‡CBñšÔqaKËTRê§Än< -Pi`ÞXñ„‰…9´p@ê¾K+¤âåšb<{,1\áÑc*w—4ëÆ²ëv+bã·ÿj¼×¢ReLÇ{6ߺý,ØÍVÀV‹>«–Õñ>áF™ ¯ ÷ÊSU*„‹³&µkÿ÷ºð¨®ÇzjÅÛ•&r…'"!µ©Ó+ÏÏ×í%©·Ã)†<-÷·Ó¤[(T„nªxÂâ)5Ì\¹ +¶í}6.ŽÓÿf¾$të?Žéÿ“4Èë i†ô'2õEIù,GÑç<±♨»ÑZä;Öâòuh)À8ßwí¡8ûž¬Þ7Äj ʰi;ÅïÇÈÐòyhÎõHºH„ðnˆq[Ä^½›ïµ¹/f¸®ž:ÎqÛã!»T"/,ž¨º’j­ÛåëÜ@¤)î{§#=lüëÝŽ¯+ÿ˘î÷!nCÔ–ý÷zîØ ô@ž4,Ȱ €ÅÊ;$B<©•,˜ªÅc‚•‘b·~ß½–·xr[ ‰®°¤PÐ7º$]]ibàî¿ßé”+Ø`?Ÿ„¯Ë*üTuHíÃ×ßuÂÕó÷¨L–ù¶û½¸é*‰î9ºâ÷ÛÖ\ºªšÚíµß¼ Žwú– ·\Ø2!ŒAC®"r›ý\Êú™O6†ƒÊùEV:²^Þæ¹=£ÎX¸¿kÒy¾ÅB>LXÌ^°°|üû8‹È[FíqÅM§=hgE¶…d’ÄÒÉdáÕuûÖZò§PB>(!¢ÅÇ !ž‰º›°~ÀÛ¿íX~ÅÁßqT#ƒw…åF¼6&Û¢]MYŒO6ÒÁ¶H|ýq‚^Ó´¾¼ËøókÐßÄlõ1£‰Šyb§¶œ;PÔI§² Q¨*v2í8ò³å€jLÔ¸l1qÝU6¡Ó¶ªr] m´Ô¼äbº ŸÄ%FÈß¿ín½8°°&4æ\Pgˆ-PÜ?‚@|C‹Û*Æ“öNàv«M¸hòŸGÆXH\VfÜvô‘¼Nb÷yÜÖUå¬þàgåûÃ-èo½ÿ„ã±âiZ© ¹øÙ&®âZiZÃù*W8xt>3|K£;Ì?„¯~¹ÒI©VjWW²OÖn0ØÊ¤HSE2IÑäV­"ŒÍŠ–‡ˆjLÓ8Ë¢j…)´ÛÇx.¹I’ÏÄÎÚñÙ–Æ@FIVÞJê~,Üÿ»‡p<þ‡E4T¨<,Pú”Ûþñ%XÃøOÏ,â4WØ%šHª+ç]g:Û~@>Æmk¸£o’™œÌÒ­ 3ÊÉ7Nе¬5:9­b´Uåýà‚7×% ÏgÝ_tLå{ã©Âv¡ønÝÒ©[$3ÁkŠßå¼’„„‹ÀK ›JbÆžÕ­L*WÔC2“‹¯|+E«3Èè}¬¥€uføŽ”!Í=âŠòõ7å¤[h¶†‰é4ÁOâ~R/UÔÃ:ŽzL¢ÙT¶Eîu@B¡¶¡ÿ}nBq<ߌÎ'&„–Ï‘às©‹éäÖ¸:%SÄzüù%SÎç,*?_d_Žàên’iÞc,„x&²Ú¼²ÐÑo‡ÄÎÅV4³ >7þ“Sðí€Ö/—$evPã@Úr[ÔMì¡ZÜØ»À]°7@qN=#³9Z‰Ö[ÔÖ¤£œ/ÌKR}B*í¿‰@æh€Ö Ú H”L®»m´pC•±O:ÚB×e^ÆŽ,ÆY~’ÖOJwQxO¦ šeUs#NÁç¶òǯÍâÙ·@ãu·¿ômJWi°¹È·ŒÊŒÈ´¢U„N4ät„É$ö ­ÙU¬çbø˜E…tœ;8†2+SÇðI>é1þËKð›MøÕKZ[YÑÁs¨àüTeƒïÇÓ„ÄNZ•Ó@:þü¦X<»Á9(Z=Ï©#ŸëêîD}Pq]ðhÑäÏù›Î}:àé¯ãÒÂØ lÕ²ÛOn–1Uÿ]ÇÂ,cá¾s_„ò"@¹BŠ_·”y.K “K»_c¦º8V8`¨¯¾½©¤S¤²Î ömß¾¡žÍ61ÉOµx˜ ƒ‹»|f.!îñçÎÒ)Ýkò:®“ µóQ¤ƒ$¬ÅðQ©?ѼøÙ Þꊻ/Â]áð±ä‚ónƒ_åVÆäD`päï–«¶²¶37c…†:vÓ‘Ž9ÒqèÛ‡¼¨;ÌÔ•m¿cT†¶2yߨæsç\C&ÙÄ}~‚tâ˜XG“t©þh-ROí¾Þ„ÁóÔ¡eVŠ'±p}Zjø÷éš;?97¹«+ÙlJÓr‹²–JK¬Ô¿ÍRÄéqCÁ=à”‚§öŠK$0E¬*WpÇÞnÐz›B:m-=€>éTb¸Çÿl}odÑhéÖ K‰Åý<ÁCZ<\Œ”y.½C´ëÍóq"ï s ½GZ‡ßîë†Í6ÌÛ¸Ù³ÿÉv^”î±Ì ©4­¬ÃlÃ:ÇèOz¥NÏVVgü`Þ Ï1_o‚mÁTÁ¦…³{$(³Ù<ùy·Vaí[SÝî÷Ò™d¶”ÍAÁc{›u‹Ëw6m»ûâ‘q$ïù(Oì?m²ñ™i´V§B½Ù&¶³ˆ’áfÅB, âs®®ÜtÙO%̽5¹”·ƒ ¬`¥mV+œÃ…꽬4©ü‡Ûtk;ÆÁMÖ«¹V/×”Ô™ôTµÈ²âfÓýi¯œÔGA å³uÌÖ°°tŒ¥ ¾…Óû K”–Nx^Úºæm€G '®¨+¤6#W’ÕfD4>ì‡I:¯]Œ)›íãÁ¤í³ÃBK[+M¼æÜCŸö Iнžd¦|Ü¥6¹,Š|pÜI4PÒÆÛǾ‚«Œ+ý_v[Ët‹* 8ÒÑ’¶•Á(e¬%© Ž3À G²³ñÙq>ñ¡+wµ"sS¸±­•óÆ> ȳ­·CÆÞ%9JÅò1¹|g«_É:óŠ¡bB¾Ãþ¥=ô47ÛÊÚy°‘‘cÞ¸OQ ÚÊà‡ëòa·ªÂ×n¸ÉãÆNƒu…9b0eÅy‡V9ØÒö85˜í¸5‹ÁOæ>6{÷P§+Ÿûv$ $á't_àìb‘fk€QštkXX:CWëSöP@Û­‘@qmÈOœ XZ\gNu pŽÒX'PaÀ×Ñ…‚¡ëê‚»ß0°w$Ö7})wPîþ™àyu¡q¤ç‹jÃí¶(´ûÂŧ۠˶ÂRb)ˆàˆly1ˆ\OÛ¥©~Ü•@äwn¢ Šâ®‡÷ Œ7µ‡÷ú¬5¦ÔjK íìfËU“¦‹1þñ)øò™‹ÕDbÉlm ¾”©Àn\¶7[>Ê„tLV¬Ø/~:&9ñMÞÇ#¬©tì…²d>KKWÖH²Ê#S‚nîÄP;­©)TeyŒMIÕã)±”íÑƪt§áH-uä¼éÜ㊠Sñ|2‘ŇÞ, ñxD EwNùÀÇ.s8‡?ƒî†[©íEái…=@!nP–ÎàŽëIÇT·;à+7ÉյÊIËǬ_Þš¹}·uÏ©eK=x8æ~ƒo%ì8Jâ%[Î7bß½UByœ" .H•¶¤®Èd’}vw·¤ãï‹»îht’|¤ãѲ"–åkG6—g&™¨|Êù|±‡­°(,.z´†Ci°–À÷»…TŽÐZ)B5áòÂÁB½¡Z¼‹›ŒÒ¯>v¤cÒó1‚«Û~óV£ð1„0…ß´5üÓkøññÒ½ë'ò0~¤,{åƒ'ÿOÙ&9rêÄ:èÏ2|Ûš‹ÔÊ [Ë®óÚ…^âx+…Ïœ:(EIǧD{ò 뀴u±U(I×YRù'/%“ïONMLö»)ÚNóøIY³‹çõNøB}ÕÛY‘Î;‡¥%€ÖÏžÒúÏw¥Ò9Má»”_oòÔ¥ªúÀä¬2(+ì•Éßo_àóÉIFá,³;~ûª•ßÅù ˜‘ÁleŸ¨â GQ¾Ëô IDAT¾†B‹-sn¢sþìŒ|.Ï)?Q´Ë~C³ p{ï)ÄBóA|c$åÙnS(/4Á†1®J¬ ­im]r’6])aètá/.Tbª{]ìùçu `€ÜÏq‡†ÛT‰bÊUi©'›5Ø.¤½ß ûÅ;a+˜sg«Ù.Áà7+7Û!¡®‰•GÀÞ›ÿ¡ §IÅ“Ñl»ºèܱÆJŒoÿì·Æ:oû2¹Ž‚ØNØœ™,‹QS"q9áŒ(*óž}9ÿ¦..ð_(Äeœó×N¥ÝJŸcŽªjlMÅ­}j-¤óö*ãÏîŠÕÓë•1¤‘?: _>Û— gjE9b¢É\mû8p/^W¦,>Vy¬ï*–Òâ·µüSeÏúlÂþ&ù;Aï*“¿ –,ç|œ¼ÙRl Ø»Úåu+öÑKgé üŠÛMžÃ,ÃG:áñ\ü' êrrç¾êÿ-™ÌÛ“åß\ál„(!’å¹5,-²€têÊ SI'ü=µ¦5ºOëí yß“ŽEu0÷ø¤S<{·8£†çº¾¨Ì‹óMÝïîÿ”é¼ÛXŠi{ìe5BaÁ‘)|Ö¾ˆŒu‹g…F¡‰E@> …UN“"Âþë4."EËëÎrñ“]WkɈcðí8Fe‰_äôU™’Œ…ÁÿÔ¢û·c®ÿÛƒUjx¸Åš²óî*8kKeÃ1Šæ‚0¦£5­­Î}1þñ}øþºŽ1R0 EYF¬K ºd—Ïße+×Ódéøëy¼¾hïÕÜ»0÷ÅÎ ‡Ž…Ï8<²÷-ךV…E¢!É„íƒ3 q&RWë¤s…Ý·W«¡èëCÙø•îô–гâ2pÉ–ýŸŒ¢oq– í¸1éëM<é<µ"$J|_©@Nªf`¥µH¯fáø˜NÙ7§™tZÙ3w_%acüã[’Ðóm¿´vÀ¹Ú²²hÛbµw¥ðy®Ÿßí€,/Û;îü‚ë–²óÞqš«í â6«ŽÏÌ)´âꊷè!ÏÄCW4³Zá€ñºü=¦‰*û=B¥Õý׋R‹Ig>¸‹¸ßúÎ}–:r‰l ölJæ¡uéÁ¤9òéZ—=7gÜ \ù‡­CÂûñPU…M}³º¦~=-K ­ie/AÅH;q—¥EâVËœ+ÏI`ðÖ®þ=%J»FÅVÝúë¼loM¸Y¯¨ËEbÇ ï6/ÆS÷åê&r VºPø°ëôîXá¼Â>&ÀÔÔé"æso÷‡(H¶í°kž€zMŠ,‚nX¸ÐÖœlǬÿáqÆ.ÓZ+½ñêÒWº´oáqÐäÓÔ2¤î–ªk®…º›ÖÈв)­­MÂ~VXÿøF©Ö¥’hñM¿,a€JѶ»{¸îc ¸Õ‚纨×lÆ=uµ¸ÎSû¸¯+,xê¤C°“òu˜Ú½9.‚.î¦:Ù„¤â;¤Ö[%èúó寯hÍZ:šñ.IŒkäDZx`â÷¨/S»»º#Mn@·¸©nÇMy©®WêöBv+,Õâ)S¨ÅÖvR+:p㪵õ,—pÐ?^Y<‡‰&[lØW”`žÌ°ÿ²×˜#é\⑺XNæ&XÜøqg‘FžÃÈ`(ëMÎ7@Ýò™çd ˜ÖÉÆ¿¯ªškzÚó¥5­QNÕm:þì §:k' ZPyÞ²`ëÝ“™r‰{@œ÷y÷|GêšG9Ø”ºY\_Ų[áÆá[åz µ—?™gÀy…¶>YÍ(‹csãGBÏiV SÖeаMæw-êGíÃb2/ú=ùvÕ^\Ó"¤3J¥·Ž›T/RZ<õ,,_2÷ÛÓ ÝRqý¸þþ䓨´ÐŒ›F>­‘aÌ$Ù4e‘ÖŸ?o^ÝçuG…§Ã«NgŒÕÝâz}"‚¶«œ¶÷‡G<;¬Ì «ï›òaˆTY4Zöz?´3ÿÀðÆùþú‰Ykg΃}2i)©×SàB:T'ËÊëùX9—ìÃJçNS±x‚Ø¢)Ýl(Mn ËÃÔ^g!ùÌã|™¬è¦¿xzÛµç 8öiJ²i´ÝZ®rŸË4ð0®=_a‘¶–OßÂuæsÝ×Ü,šÍàn™]Xß®ð^àЈ'ª<4†¢P/|xB¡F&Ýk~Ðß^ ÂBH:uò™§Á~JLvo‚÷C‹Ço¾¤—8¡îjÌ„ã/¬ópn¶Ì‘ÎëÀÍÖ”…ÕT̹_4}6ÉËL$PžÇéã)‰©Z:Z…ä3Y{Ô¢´dB 'Xزyãæ2Ä^© ÖÐSYãÔ¥ûU’këêsä®ëìúkb Cñš‹UmyKmÛ4$ÙzÒñ±œy¸Ó¦cE:"-¹ â 75÷ ”‡ ±p‘YဠÞPUÞ¯r¢ÁÖ©Y<é¨|Û½íêë ¤QÉfóJÔ£LÎik€±2Ùž¥´°›êbên¯\‰ÚòµcZÅT¬Óc 6ˆ ²1. žcTccˆ;Ÿúl]\…×,±­9ª^KbÚÈq«-9ß®ay©£ˆ­¯à¹E´ƒ#sò»Ûœé|X8ÔO¥Ž'tıø×b<óZI®°&,yÁ1°¡òAMþ¤ ŸÍ–7ÕÞ nÙË…¥3!ŒwäÛ¶‚Ô}D&çð!“ÜYLÓ:˜†Û8øü+Y_çw1~7TL×BOiG:šØ¦rôš#ÊÏÖáG¡Óµ¿½O´õ†nǵh@©$!‚ÄÅxÌh6yŸ³Áý8P¸ûö•zÈ«çüƒÂbêxBuãï97AïK…uí²ÂãuÍÒq-æ‚£`4Ävr!• ÉÔ·€J¨ƒrÛmp  ë>*O‘M‰³x¤¦¨•etå¹i}|&³ÃªÛ¤¶UÑàŒÚ(,œÄ—*ÊùcÐk‰¸Ô>ë éèÒ3ÀÄ¥–ä­ÌÅwÇÛ›shJ7W¨s` wÔC2 ϼDDßPöëYáýÄ¡OUkªV ¯5¼xX?ÉX÷ë´V¨h±¹ÌÜH'@A>äRÓb›ˆ M‹ETHH (ÉI:o†ý•€¼B\T ‰-"Ýn[¾½5"wzÞ–Zna€=Û†têEŽ%1›pJm–NבNb =IP§+¹8?p¤c]ñ-À¯^Òú»{Eâ€9ç{¶tÛ9–i§Î€5ÜR‹Î¨Ó²ø|³¸Þ/ÞOZñhÍ«_oÒU›øõ’ô®Óã ‡„ äùÌû8/‘¾*Þ× Ž['¡&ujê[@½!±G*õ•lJƒÍiýº¿ÞÜö”/Z¸çöÛ ,™ÌN«£i.2½fáæ”cxÒ‘XNI:]•£Ýq$ùýž0ÈÖ tI݇ïÅñÍr Ã-q è¶œÇýŸ·Èüy.ꌳO4Ííd¿žM¼ÞºrÁ] O¼È²j1œÒ¢Ùö[™ž³qh§öÁB=¯Mú‘ÒìP4óòä–É.-‚ódbÒ÷$uV½lH¡vç‘e´Þg>í‹¶l—©²®ÅOŠ-+©ÈáÖWÚ{˧7eywR]{T]çº}EOmÒµ›t5Ä:Bêz]¹¶,“ë0~µé”¤ÓrùèÈG+H+o]ÿi«°Ø¾Z´åàHç†#Ì›,ž:™ïEn…åÄ¡Ïu%RôaŠt±R™Lº=È éȇõ+ KÁ[D:@Um8{-¦<ïHë¸}ªÄ Ivp]Ž!d¡Ã®¼¾Ý4îœ]*¸ š²5ÕG=ÝjÑwîµç.¶zèp1×ê)G§,^Ûæ¬¶<ØzM¼\­”KÞºñ}&ߨ"n¶|-&µ…\é•Y}`¸ã&©/÷°{Ò~›Çq™°°ÓÝeóÂWJꂌZ£Û]К¨MA<àA#-â­‹_¹ó,²¼*¤ØAàvŒ1FÈæj}²?L¤ó¸$$ªÔ†óTë1ýÕ|ðÞàð²Ú¶A+ÒúÏ×iýü!¹…\E¥Å³Âü¡4س 8î¼v‡4’ÏaÂ7‹3ôÐk=ˆ5IGôÔšÐ2Žpœå6aóYj¹ŸŒUVMÄ µ0ËàTHg'rï¿Gü>ÔH'µ>r·Âû€¥ žG싊*î s†º¶8÷¥=/ä³´¨¨3Ðþ'p«sâNLÔÞï튱3–1RØÚéTš° , l1~@>‹‹‹Þ®ªs.õùqÙat„õ:}¯j¤ãÉv…÷KG<§yæ&‰•Å3w؈…®- ,äÐ>íûÊÜ9„Éì5eìbãŸiއN†ßIÚó`†’¢ÖÛ¡(´u!àùÄ©ÏzœÓš\]¥l½8â¹èHg m¹gÍþ«×í¼°Õë•›íýÂÒ®#V1žƒÂõžhk½7Üq©É{q¶¬ƒfnò¾¼Ÿñ¥ÎHª·ê‘Ž«ç+yeÖ¦‚þw0Ü„æZ=gh°itA:«2E3¢ÞO-œp±žUçÑ÷ KK<7ícWd·è3Ya®°gA=ûÝŸ·E7voŠr©#Ÿ=­ Õ9—Ý ÈF»-ˆ,æ::±‚76¿ ²£kÙuÆ@ï³qÑ;ǧ@`ZíáÛ±üÁ"Õ¡í¶R7É÷ ú“õý´kߣ§N¢í6y¼‡‹ßî¾\›“ª‡J$µëÛ G-¼T“2GO­hï­æ÷ KK<©]¹ÚÞKøÄ‘]'߯:Ùåd4v©Å¾¹ÙÌvŸºã,›8 ™4 É¢Ö#6å#£JJðÕ”n/ìéò-ê–Pß´µ ‹Î½þµƒXw^ÜþÓâ|ËvK­æ”JèÙs.f”ñЧ³ßÄ^Çé ¢†»Ûß1+ÙuËg°"÷KM<²²\ôI¼/8û˜d拳`Ÿ¸Iû;9Îî–ŽW3ÖVÈdšlÍø‡ëðÖUýu » ;K= ÈÆoÜM™8•­ÖpÄŽ¨V…|Êz›ºö\™eçWú/M«œÄÛáþ]öÚ(‹ùû›Ñmލ“Hÿ£#Ÿcà¡…+êÆPÇì9Ppß>œõ®¢ÝUÜy%äö.wE¢»AÑ—ÇÅàÒÝ,Vxg°´Ä³¡.aVÏü°lŸÅä8ý¼ÎGÒ‰ë+j`ÜéHŸšß_õæ8Õé~_&gUf³ ­h®ÍtœÛ¬t£Å.1Ã#;.Rþµ.ÛKƒœJÏŒÅj)&ᬑ¬¼…c\/GÎÒ)TµC‹Gié¤ä»hÉŒ+ÆÎ¸ nr?˜¼+[æÖ·•/ëªn¨s\Ÿ™|.Ÿ(Í•éx²õž‘-å±v“Ó¸¯Ü K¥%ã—j²|W¡Î€³_¿°'Üän•ì•?ûfn][ÕöŠ=éøêþµDfy­ÅÝ5HCšÌiþSÑ*›i2S®Õ€v…ÖÐØ½³EI\ké¸Ò„í‚óàË–›¤sª–‹lstÑOSÓ.ƒ’¤ÚŽÕ¼Ë ùŽVß¿oŸ#â§ã:÷¹gÏ–˜ìóž:ÃÅÇÉ…Êùß°w‹ì5ÛñäÓÔò`ìŽ7ÍR]áÃÀROKÀ]aÿXfÍ»¶ïúF2a^Ab9]Ó %+jÕŸôàãÄÙ5±•¹öcL¥þåÕ,“];­Lòº-úgÞ©#ÛjqòŸ Hb×G»nýhÌÍ¿yá,ã,©2&f³ÝªMÖ…jØ.>Ë ÖeKcÜçS—`ð—¤<]e4Sf•m‹tà–½+×Z4µó÷Ÿ^‹Í[ro”Ô!Þé+¼—XJâAmYC‹>™÷Ëæfó°ÇÄêñäÓ~à Ü6M*Æ……Ósj?íÁ?>×Ú@T›Ã"dïf›)VÐvdC¹Í~¹}ÛèÇ?mqòÆ`¡ÿ-$ÉûÞý&ׯ\â©ø°e@Ùg§´näËÇ:5kã• r·ÿ7l—÷wÚ>æ¥>#¤¸ Ÿ›“œàYó—Ò¹cï7’Žžò:Ìîó1·¥iN·Â¡c鈧£n‘Ú­º«ϼ°ÌOv :ù|úœóßœ`à&­‰Ô\ß¾úÓž|GGb@A: „t¼›m&UãOSgát»‰r;mϾl¯Ã”`™ÔOaÌã€tâ"ðïÏë ÕVU‹Ç}OSdÃaœ»Î‰\Â@™e7À©¿5"VA‡W¤×ixc68«ê‡ÕGžpÏ>,HÅÿ>Û5s ïChž_‘΋¥S.ð±Ìj‰ñ¬°,»DìÈ$Ö2þðy¥-r5Ù@;ïwÅÕÇâr2Æý“Üdoxò¹>Ã$×Ûˆéþ¾¦ûއD!Ùß'³_‡mÉ?ÄÍWn} æŒs·å45ÅëÖ&s­\$Ç[>sAë’tB7\añø­¦«=%ÁèœÄ¦$ÚØŒDR%Öä9€"eÚðÀ>,,Ñ®Kð¤ã³ ë$TO±^õÕYa©,ÍŒêblŒöä³Âþ±ÌÀoŽÂ¼,-›ýø+Æ?ÿb"åX+ȾéÃÛ>ñ¿»D0x.VÏ–L²™#¯ñ5ËÊúÔÿ6F·¡Û1ôß|kØüz6kg6BŠdã2A¦ÈŽóR]ðÝš;ª’Õ{ )x&©µ ‹çªKÔÀY<Þ­—35ŸÌŠ•¨Ñâv09wÕGÀYu ß¶|`; ²©¯Vhéè†ß-ÔÊ[€Dí K„¥"TãVç­°?¨“`—¥†g >òÿñÖ}ÅøË’||_oɤÿö:™…ß[Ò1FÚ¨kMj ©’&l³àÌŸÁfß°ù›ŒÁÈ0 @í‘x€Bý»ˆñÜs$´îÈÁ¥–_éO%¦åS©‹,;!•‚p*Ç¥’ª]’ϧÓ]Ab6ÉUlîŽgx¦26,|Nj±›¬F*(è4NÝÝXün«ØÎ¥"&¬çü°ìÀ߃?y¬ #°)­?}Âø§§1µÉ —0pà7›ÍûÜÅøyՇͯôûCoSÀ`ì`Ÿâb@Bw@½òq¸ÐÛñ[!ÖpEQÿùJ{pï–k&c3G†—ª´¼„tŽ‘Ú«é‚ ¿‡±åuL#£$›m…KDñ®XŽ?;þ‹ç€7j%îŸÖŸ?!ýÉéÊä•Íqqròo<úÙ 'eåbF?;(iÊËçݱ"ˆÙsYj??\‡»ðô üf“±ÖÍVN{Ô›Ëw¿Æn[P‚)Üg]£éÚ  Ž“Û‹1šØÝÿ—5 ô1eó¹´fù„Ÿ»ºÿ¸Â;Žå!žÊÃ!îéÌ VÓT¤¹Œèþ CžK¤1sÈFÉ_>âÍ9[Žom0<ÿÕKqÓq+Içá¾EÖÓ1~õ¾ÞÄw#ÝN&¨@å9ª+%ø¿ù uáU!ç úäöüéÜ 5ê[ V÷ÈìEॕ"`O:™•>BïÄ"h…Åòdµƒ[kÉÕ«Ü‚ùઇê|šÐ[OH¾¯éöbt7¢Ó‹Ñkpä¯TúéÌ%@ý/†´3 ƒ¶==ì øl0€c¥{ô_• Zcuííqd‹§¶eìÒÀSލ]ûT:I:Èv§ì@¸uÏœÅãÛ[¯R¨W€e"žb…&©°:аZaŸð“Ï;€çhçè5 Å€6èA'pìßÝch]]Î< S!)èÜmwðùÊ~ÝŽ¥åÀækIeB:Vš#æžïxýÝâyª´ÅnÜú,»¨”±=ݬ2½#i<ŸgFÁ}G:+•é<–‡x¬·prWI½²x憢hñpWñ{…Q† b@çDkÎû´&‰]þã"–°/ü›[’¹¦ÜíZG{鿼4‡ƒÌm!ÖZDNF¦LšÐ^ˆ´T0Ègºþdg‹§ %_ÿÓ/ÿ/<©hˆ%žuǹkg±ÔVøP°<Ä£Âb» èn…ýÞ&ŸñŽ_4ú× ²× †¯IMŸAÖÇ’ÙTæ¾¹-HR¤˜ÓrQCõõ! ·±¹wà2ê‚Úãâ<>KìÊL{Ž,Ÿ¦­Ûg¬.–¤T»Û&6¨7rnj²àöª³xVjÓ+x,ñ¸zje÷Šyæ†w .굂çÈÂøšœÂíŠÓ$t;!þÛ{û;Ø¿¹&ÛB ù™pR>DhKÇxÛwò@N òÊfæó‹¨&}}Šçm@©ÊX:îµÙ‰íwÈ2¼¿Äãn…ÃÇò>æ ù¬0¨`åËrY=)RT˜X)¢4#çêr¤ Ýä·#©)i't>Øß‹F8S¶‡áœ’þª»Bhé¸ãUÔ -ðw÷÷{y»FkdÊsˆ|Ÿ!C©Ý¦•h¤íéù°BBQÛᘸcÛÞÂò‰ 1šŠy½|•J«ãk…vÀrMí¶_[‘-ú„Þ#ÔÌ+cœ 4gˆ•&²“XÍeÑUšÞ'1= ¿ßóÚ3ÊÐícrG>†È¹Ÿb§R­£ˆcîº6œûéö¬ã&´p|L#T{^ZYÆøÓ^ù†ÉÑ–¢® —Ržî÷ù°µxLánK'µƒ¦oaà•÷cªÏê¹]a,ñ¨~sêç û‡MŠ¢AߥC´6¦ÿÍÁ‘O‡{Dj6'vl]¡-B8qÌúFý]ÆF·C†áÍÿ GÎ9‹Ç˜¢/NäÜ8±·„¾'î·§¯^riã=7ßSpq»qó¿^«µ !öq0÷cV´¾é3þÑFѾ+nÇÌÜóÑ2†\ÇÒºÀÀP%¤.í¢íOùVN!xº÷m…wËãj°ùlº˜Ï´Á¾Âžà&+c‚6Ím8þ‡çv몈ØvˆUÄjzªKl5]¥é¶cÖ?íÒû½.=­Ùü§W¤ßö~#JÕfd0ÖeÆää#qéd#‰ý™\b¹­v,íZx´Ý’j§ØŽÉ'¿³´~ùŠÖ×ýâ¼|«ŸÕ¦`’7†**úm«­6Q'4E{…,ñØÇÎgÜ— ö™½´B±l¼Å“´]¼ ‚3z0䓨”D¿b·FHGÇl|Ò娹c$[)ŒR eðËg¤&ãÞ¿½/½É\¢eâb‰ŽZ–eBJ¿Í1ƻĄ®•>1ÛÞÿÓíí-- ùÒòad¨÷·‰À_‘Ø!F% ,¤J3°šÁv M +¬°–xÀY>gù̠Ȼ®Pôyгõ È'V†ØfÄ*CÛŒŽ2ôí€×fȉ_Ÿ&þW]èéóŠõ¯orÂ>æ¤}ÆyÕ/,c„|²,#[)é(%ÝÊ0£Œì»§ÿߝЦdž„êxC™²ív\n-%Ù˜þëùߋ½`4y3µí¾cÀBþ77!ÏÅòq©ÆÆ»ÙFcrÒ­”ÜÒ,«tÀŒj•ò9¥%´Z:&˜,½¥³$“g‘`Ð@>„‹‡9Ã(MßžA:¦nð”mz9MX<Ë/D»Ââ±$ØØÇnðŸAD×W˜Œi¡Û’h|Ù:ñèh Ç<ÆxõËù$h×ï¥t‰Û(uî"¿­w¬ô©Õ&Ï!ŠÊí(åÔ«µëœéâàûÆÂ¸ˆ/úÃÈð­{ÿÒOJ€Ý}ïñÜGã?>%ÊÔ )*­Y<ól}Žs$NH6V1¯Ýq†vÈCv°üB÷ä»Ð÷i…¥ÀòZ<ö1¨ó‹>‹÷ñ  ³†L:®Á¥_ެÿÞ|¬ŸX¥h›’¨´ˆùD6­Lî¹KÎÝ뢞ç?Ü”óÉsø^ÒëÚ4‡n8hšiÊì·z˜V0þ/wË:–¢išìwCÁº•Vë®(¸0—;±3Æÿû-Æ}ÅY¤.Pïêjê1žxËÆSçœ:S!ßÿH,ÑŒ¾šÁÛP·xVXa,?ñس öY¥¾BÙ–¸Üâ6DZþÕUˆ…Þ§û'Ÿ›ö¡K©¢U†¶beÈ‚•{æ¶…ðî0ó!Ï%áÀg{… ß&ºøÞ6™ÞÒ9­¶‘᫟>®dÇUÒœm]Á àÆúÆyIÎ9ËÜyçB:fÒâÁ‘î'USl ÙF*‹1¸O™ÍHUÊ3ûlç.Q ú ïÞ â°çA=ž,úLÞ¼øy‹$–”jOô‘üÝ÷Qé|2&Ž÷G@û­R°´Óä{­N1pdºŽÖ¿ü7·K²ø³| (ú,&Ív\6QÓZ*ñ¡Q{¬@롚×SÒ´Oç&×ñg=ÆŸŸ„,•–þN&¨®J=Ñ'gFœT=´ÕÄ*AÛ˜(p¯•nN!‘‡vöäŠòüV©Ô+̆w‡xÀY>†ùÌ÷ÿN,­!7nû[ù[¥¼Enï€î2äª}ÅU^‘Ù×hW§•)ŸE%–N¾mýÛ†–¥åCœÈ?'û‚ ÈGäSÏfs)ÛéO¤ÓqÙq! Ån;Ñ7V"4Žc¹ë¥`4Keë/Û[v5‹g§¦l!NªŽ#ØY:ºp¯ÕI箽»«k‘ÓsÚ +Ì€åN.h‚= ê Ø'ÀéEŸÍ{Ûÿ©Å¥1&ÒâåiÊž2Ž”$4&Ëöžxpq»ÝP1©›Üs—`0µCå¸ }Fˆ`™K4J2ùA¯´f¼Êó?¾ò åpœ;nü³ÿ¿½ó q#ËïøWðO …ôB <06°mXˆû7{²É!6¹¸É!c„™œÆ9Ù§ŒsÊø”ø”™SÕÞý¶µ¦N×ÿ}h‘X>6’c«÷xß/nƒãEÇ}ž4æ£SÑùî9puø° \ËI»X‘Ž"h¥5$[®µÈhÜ|VŠP#JÝ‚'±ìy`$ùÁºJ >k¥Ì#ásãÍ*³Íl]Üß®.‹Y¨À¯ÊM÷ òÛÀ"‹òò7bÁìüt„a.ÆãE)¬“ñn¸hkäÒšWÜíÚxwYä,é¦ à»C q l·€v0Û"8ƒÀÒQéZó1žØY^Q$Â3èfGDà}_ÖAßµ­ Dlê×-cÔÓÔiıˆŽß—«ãiÎa±Öó® ¼í—Úˆ}Le`2±žZhýàÒ†Sw[½lERYûKq“`†Åq:;gtAA*²‚ܼPû¡ ~fñxìDgÛ½OÓ¹LJR/‹]À¾\–!§QáIxà†ûÆngÁKð™l‰èx TÖ2‚J_Ø%ŠÐ®½ $å8ª‰žíë~Þu`’Ç}£ÍDt€ìò]G¬%?jŠ¥ˆÕ£œýåŽþ£øÃñÌ[S Ñ6"†µïÏxARž*–•öA^t -¬e£b'¢/{}…oDª@…žI¯)Z@g#Žkˆ¢Qjéè·0^¤‰ÐRrq ø.Ù c£ÔR qót‚hoat½èLºùr"Ôë¦Ç­–¸ß¶¯¸d ç¶Ûn‰+,'<£  ˆÌ×¹÷× Ø·À3kÒXÔ’h[Iˆ¨ïç#†j±¢Ó™°ìüp9B ¨¨ðÀ3À~ìnJ·’v(¡Åð±Ýe,$ö£s–ŠÏ9Q¹uAúõMàç/äçYðgÔ#ìYà±›¶J…ú”mØ‚âÔðFì,Äi'´Zòøv øq øÙvúüožH#Ï^Wöˆ\˜çE0Éj‹"܈c\sÇw¦ˆÁЉÙPi'jÚ‰šO]‡±â^ûÂŽ‹l.¶´:îösv0 3Qaá€'€ý,…@„è†[„$}Z2b’w³eR¯uîñd-.>HŒçýÐe§‰Úù: §N|ŽèLLAî_D¼ûËtK-çfƒË23çiµ€¨‰Ñ¿||,± Ÿ€à;­št~޽¶Ö’¡Öhb÷$NDá@{ÁÍ:ߨt;ùý•^j&驦ѷC\v©ÒE–U¾GÝЊV¯Õ“,7BNá‚§SÏÂW’n«"·¶Ä >ðqÙ›»°SƒÔd-È`[3â®#H ÿœØ&Cntƒ:`šÀ_½HþyÀs+ódŽ&‰ÎÖÝÌaͺæ~ãïº",ÿ{t]»p| üë]à7/Å÷AÛ¹äZ’§u’²]ƒXhI{c䱟ì?v]ý¾ˆÐÀ öý1>°«$£,é–m$1"úë«IkœÑÀÈ5©ë18ëðº!y<µò–NѺòDÛ=ý9dãÙá€î?íçÁÍÁ滀}Xî«@ BÀÅ–râã×.€ÖlïóvØ>B¦Û¼u$Oï(ifƒéÀ}–ˆ þàÒ°·ZIÊví{I<ð)ÍIÏ8oZ û»Úÿ|-û{ø«oÑñûÌ_· é;Ô­±‹}M¾0çcr+9ßl€«-‡}ànr:·BD wO;™™š‹áÔÅ%–ˆOPénû€¦Çx3Çù›RPjuÚÑ`{Æ×ëÇRw’cÏÇJ—f&¢z÷Û@Ò†ýãÅh`Ä ÷¶ƒZí¶g¥ÓAäÏÖ÷|ÓÀ/¿_?tœÅgjz’@ÀøšÿH3ÄxÂX!e±yÂ8ñAÆm‘qûP|Vƒmh¶à#±p܈YÝ1Žutúùz-q[Åõì:ºÐ‛xªÒ®Ù='2©ø˜d„ƒK¡¶´TPW4€:Œú,µç'm˜ß¯€oœµà;ÙßO÷þ™:¤œ;-ïîôÇ]+ó^Ÿe ^äî©Ñ¤Ñâp)9 0‡åÃØÏZ±·!"ÔÔcÆ_ØV.qÁˆåT„zu«ÎÁ¾•ÎGV²ß| ¨k :"L iXIñ§XJCtQ ÝoòùгØnàFÒ-[ cOj¡ulÚþHê©–„8ª„LƒÂã™ÉòÑhý¬Ÿ;©M \'_‚/…Ï’.Ê Î©¹‰ÝôÜÍ{Þa{8t7û:†ª:ö˜u˜%YsDçªéÉæ-ÔÂIMr •N0í[àËm›¨áNº,ñáˆr ž{Rï3Éòq+ŧD>•Eåè£ E{895;Sĺø.n¸o; ¾~¯2âˆEõZI›ßc®Èiµƒ«hf,ãæý¤Ž.°x†Îâé[à‹K£LGm±$±°+HY bs³Ú¦òÀeµÕ§ˆ³ÞJÅ: H$ à2`]Q©í»ÓÔ›ñXP™p·®ºX™ ô©>QÀ×öÕÆUDª XíÄxˆçAv ,C ¼T;ÎÑñ½Þb÷¿>ÛØÕ@k cû8s‡é²¯+9÷Px&ò™n»×Ï)>¥ânºêcHû£g€½X6G€u˜±Î åíîÙçøLÝ€±qæñI¢‘jâ•uM§<Ï(`×'1(/:}ܳÒ;.™0kÀ5…0G‰<ê±s‹2ºÚ¦ò ûÁdñ¡û­\ì—ŠŒaNŽ E©aJϾÚQ8°·ÒyF§pE=Å¡m¬G3—uwìÜl='V·µä÷WÞ?uÛ-û BNÂ3 IÖ ²Ý‚cf½•‹}éFþUîçc\BAxì“úîØËÌê:.¶ÕL’ÕvzGçõ±Ý™ë}>râã³åúÖ5NuôÞIÚ‚$Ïé\ñyZ…|zúSÈÆCá™ûi£Qä¾9Çøœu?¥ó`ws?ß¡Áã.–‘Ä®—k[4 ê8\‘Ì “ âaXŸï®îßÁq ¥a?rkw‚ø¤E”IƒM©1=ÝŠÕ´E–r=y~}b¢ÀÐ^Cs[†ËéFñsfaZ‚\Ÿšˆd²?ïžìczϼ ‘ƒ¡Ås’.×§X@¸ (ÆÊ£›­ïÉÅæ’”b›6Ú,œg“o¡–›|w› 1Aãnî}÷ø±ýºp×Û8B=jÃ@CG@§D[+ŒEÙZ ʲnÉd:G¨[ÈŠÎlI„´xÎŽgïÎzÍas¥|ƒ-©ÿé@ëv¡¥“¶“IókF´tñšµt|= M±tzC ÔÝyš  s²âke]Ÿ Èœ$@Úå,ïVc½Y ÏÒðî·Ïf€£¶×FÆÂ Å'TcdøšZG~Aå•]Ó¢ËlL(YMú¼q‹ÇO\zvoú¾@kh·nè¼ÅzÿÇZ—ô@q!K†®¶e“¤òbÂêÝoŸ•¶Åc,ûÐ×eÉôR­#‘ˆNx“ãñƒ@C÷‚UOz½wK5a|ìi 7ÿؽăô™2‹…gد )½§Å~ÈÊQýÀÒ@F|´‚ìEéïJ3ƒšd|…¯CºÎã©!3|Ft螈µÓ}çEÇ`¾ñà„œ?xû[)_ݬÆV²Zr±•p5¶†ŸŽÒX ÄÝ6Ô2}ZëŒ1Iºqy7Û2ÎÝÐù?Ÿx`’žjsYü¼„” -Rm2±•Ü àøû_CÔ«Ek H 8m¢éŠxö‹šˆŽK(XÔPRà ¹ÀPxHµÉ¤çÖ€W¿«ÁX cÜ­¦€²Ü[by!pÓÆbñà‹RöCÈ2 ðj3)Ñã­ÿÿ âcÎÚ9'19q¯Ásö!Y;åmˆ3Bá!Õ%©C)°x&Ÿ„u,ù.×3¶Y&¶ˆŽqO L(:%ä"@á!ÕeZ;£)SC66~»ž½‡x÷Zbñ­„, ©.“b;³Ì›ñ©ÏIǃ0%ûñJ·=N+è ÐðdÍïOÈr¡ðê2­ƒÄÌ4ƒ×™^¿$T,Ùlj»„7'd¹PxHuq ²x2´‚×»óáË¥ow*ɯ]lǸ3×+¯þ|„ú_HP?–<ýt¹ŽciíÓáŸåqÀwÕ¹¶? ²(<¤º,%Æ“ç:`Ÿº„ƒØ‰Ù¸wæífPo ²Ùf{iû'bÝÄ1`4€÷@³ `€äq¿‡²ÂÕ/%=çë'§R€ÈraŒ‡T?±sl¢è™ÙGvX}±lœhwT@°î]vá둱P’ãp ·J7™¹H†ØÕÕì >_ü|„€ÂC*NÇèv+W€+?Ú—VõN÷³1™¤¡çЉOäÜU(è„í´ÈôÑÒc¯ËO<õ–Ž$ 8 f™Ø:¤ž©ØõGȬPxHµ±MtÞôz@û'À¿]å›Ýωˆv"²=!µ;´x  ÚÀ/ì1ŠTÖBÊŽßö#¶WÉ域T ©<Æàà•Aç­T쯖;N®9·¦Ô…b²=Ad€LÇ…KÉ‹Íú; ×ü~¤*PxÈpÆtðü—ÀÑñŠßJõñôâÕÐâN겓FMÅ“s·¡^rqgÑÖÆ|ÈÜPxȆpÆôðì«8·K@Ú|ªè ­'rÇR?3ɽc©§ë9 ýaÛ[Ÿ@ë57M% ÙÔAˆ_¾ŽF7²uBãu0+&=?½Ðl3XχßÕPo´ÑÚ¾ Ý8({;ä‚ÀÎds°û€:€thvo¾×«QRŒŠHÒnf=.¶pji±gnM÷¹È‡+Î[@ëÆ\‘,¼s*’äü@á!›…ÝÔ®òHn’™9;A–˜³D"WûS÷½ßTÚ†Æw}6·ºv5áZùF›¶­F€Ö0FC7FËOå&•‚ÂC6{P0>$Nø^4`hKÖæ–<Öüд#©›iFÀpÀ‹MhùÑÌ‚Y„xlo­ŸJ'l­GxþKŠ)†ÂC6{ì*ñcȈ_ä™vðCÓš[@ëÇbÑhŠþ„±˜QjélØM×ÖÇ#¹Ð™?„L‚ÂC6”‡A±¦†Œ•Že,_ ©ârkzÑqƒLÌfã'À˜ †0'€h7Pns¯™ …‡l0÷\¢A3è4àÜmACÑfSþÞº”u·éÐ}'Ï9üo°à‡ã%©ájTíøY ÙpnöÛ±"M­%a ¹-S:#ãñ.·(’®Ïÿƒ7Õ,-À¾qîKWKH !¸é dò§Ö:ÉjºTh­z]’ nÿ#Åf:öÈY’=×(õ|¼’󅇛°™Žz ÷xõÛ÷uQq&aƒv. „,»Œ†èxSöŽÈ9‚ÂCY vÏu2ˆÅ"ÄAá!„¬Žd^P¯ËÞ 9'Px!+déDÖ~Ù›!ç !dÅì»DàEÙ›!ç !dõ$‰KœKA.,BÈê±·]qn ¨§e …‡²‰ªd£¡ðBÖÄí`îÑã²7CJ„ÂCYáü#²±Px!ëÃÞ Ä‡±žM…ÂCY/ÉÄWP|6 !dÍÜLG&XºÜ6 !dý¨º³xš`QéæAá!„¬»çæõÀ‰ÏAÙ;"k„ÂC)‡`â+³Ü6 !¤BѱPœÙ³)Px!å`wÓNÉJñÙ(<„òȈØNgC ðBÊCõݸ°{5ÆUUö!LÆâÑ€ºã²7FV -BH‰ì¶ ¨°½t%•†ÂC)?[õ <*{Wd…ÐÕF)§îµdÕt·U !¤\Ô0WL ‰õÊBá!„”‹í9Ñ1¹µì‘UAá!„”ËX©f=OÅar!¤\lß¹Û†Y"•…ÂC)—ŒÅˆ©,BHy¨[ABAN|He¡ðBÊ#Ymu&T !¤<2£hñl BHydÜl´x6 !¤$nLp³Ñâ©:üñBJâyjÙXê':´xª…‡r>°_»µÜmÕCW!„µBá!„²VÆ„çå¯_–±B!¤HS21žZ­¶¶ÍB©6“4…®6B!k%›Õöo/JÚ!„ªýæ+Ä¿}–¥Së·‡kÝ!„Íb\x:eìƒBȆž¿Ž¸¤BÙ áét:eîƒBȆðÿÍÔÕIµDñ IEND®B`‚ghemical-3.0.0/docs/user-docs/images/enlevdiag.png0000644000175000017500000005550311563552731016771 00000000000000‰PNG  IHDRÏ{;A—bKGDÿÿÿ ½§“ pHYs''* ‘OtIMEÒ  &£C!^ IDATxœì½}˜%U}ïû]«ªöîit00»»F ‰N1¸99G0œxï¹'ž ÊñzŸsÜ_pxQAQ4¾ Ì+ óx||™Ä{òäšð¢Ñst^ì<áe _vÂ=½÷®Zëþ±ö^½v­ªÚU»÷®]»û÷yæé©]µÞjUÕ·~õ[oÀŽæ`lÇýãË!S[:µx̸±é¤°šˆ;Yµ?}U¬‚JËt“ÄJèË ÖRB@­^LèC\r€Ú½-YòЇ¦Š²ÿÀÕÑ6µ½÷Þ{ÿíïÿAÛÆ»%åãѱZCŸ“qv‡mö³v§„2½+0e°„oÞ•d‘)ö1µýå/Yog:‘.n¶„ýÝù1º–×ätÎ8ãŒÈ`?þñ¥!÷Ýwßg>óuT?MgœqƧ>õ©­[·Ú¹tiÛ†TOKÀwÜ¡ßÚÌT·ÝvÛm·Ý¦^S·ß~»”RYêïm·Ýà¶ÛncF£‡Šõ•¯|Eí×y©¤Ì=0H}zïÿûßÿþ÷P6³Þ½·Þz«²UµÅªªS0-Ê~ðƒüàÍŒÊðÔ9ç7ß|3cìæ›oV‘˜vD¤u°wïÞ}èCæþmÛ¶©£ª~L‹RíßÓB'®¶wïޭѬe êý»wïÞ³gi™îj¡KeŸ»êv£“Ú¹sç®]»L›Q™ŸÚÕÛ±cLJ?üafh·RIµçâ‹/¾é¦›˜ñ6U¸ñÆU,ñ#ùÈ7ÞÈŒg d …n÷„k¡†‚Ù†Õ 7Ü +jûöízÿöæõWeqýõ×ë£L3drªÀŒ±k¯½öºë®cŒÙ 棧OÜ  µU»üòËí×fo2][¾É±B7¿Âü´M“‹q¡FJgè–Hà9眃vVÛ¦ÔštiÛ2ëö]>µ}Ûm·}àR*Ãó}ï{ß­·Þª¤P{ÿûßÚÀÜsë­·~àpË-·è ´?Hf¾f©X»ÇCí¼ùæ›Ï?ÿ|)¥ùM­’=ÿüó÷îÝ @m˜f(ÇÝ»woÛ¶ €þÊV‡”VªýjÃ,˜}ÙtÙBýQB÷„Ž»{÷î .¸-ÓÒÜÃÛ¹sç…^¨¶wíÚuá…îܹ€ÚP‡t¦;wî¼è¢‹T¾ÚÀÔz;²•,*ëRÙ•j¿iršöf¨ìs7O“]Pí«ª%ι”ò’K.Ù¾}ûG?úQuHm+Kãn2}evøP®½öÚË.»Lå¢-M×_ýe—]@07t"zcÌ49¯½öÚË/¿-;Ô.ƒù‰ÃZnnUæù†k®¹†1vÅWØç’\!)éIø4¨ë·>ñÇ?þñgœqÆg¨ û÷ïK<Ü'áꫯNÝ ÆA˜}Bß‘j«D“ÖŠ©;öƒ§÷Ø÷“Þøà?¨ŒG;ß„"Áêa·mÛ6eª=ZõF²R¨ímÛ¶)ËQíWl‡LÐ>¤ªE¿´wìØ¡Ž^xá…jVL35»®„Zõ´zÚáu u`óó<. »Ì¡K¯~~ä#±£˜B¶}ûvµç’K.ѹhÝ é…¹¡™ êÔ‡T^¥‰É–#/7Z–"ox]QZ:õQ{”ÒqÝò©QRÊÑ,j䙪¿_úÒ—´ž†îÀO|⮹æš+®¸B‡ïwCYÖŽ==éÔÊ-`¢44RgH)µàªè :¾"¿­½ÖÐÐÝ‚Ð3ù,©í›o¾9´ÇÎ12‹¸ÚQÌÕ.ŒÙuN²…Rcñ¯ ;<õe­¢H)µÆš¶7í²™é+Q=uöy™Ïm(ŒÉ7Þ¨·yŒ?=²ÆÐ^¥q‰Þ¯$UY æ¡K.¹ÄvGê*5ï1³x—^z©Še˜º0Ú¨´K¢Â|ùË_6™žMý}ìcSÆæ—¾ô%-ˆŒ±k¯½62M3, ýŒ: ´_åP}¸æšk>þñÇݱ¡ÜCÑ{®³hïЙ2JÜ©e-CÖÁY³È”¸kNeÐmkªR¨Ý,ò)Mx8uxÛÒTØ¢–œEÜ¡ÐͲvC!“-eóÙˆŒb_S^íLCF3ú{ÙkîŒl²£„Ô6²WÐ 7Ü`~G>ŠÌzÇè·WBwi3:3^Ìq—À¬XDÝQ‘ŸÌ!ÁJ( k7ëô»©æqý ͲI)ÍosE¨£ž ðÅ/~ñãÿ¸Yž¸Þ£æÎŽÊ*Þ¾ð½çóŸÿü•W^©6þò/ÿÒL3±xßWJÌ+Ø1å„ô™ÕN÷¯áºlƈl♑ª=í@8ýôÓ•K!./nZ²÷ÜsϺÒH¹T*—JåÒH9j{]iDK­..3R”ßZÙ¤¦…°šJmGTßéúyæœïÙ³'$î‘Ùéð‘'Œ±]»vÙéèÑÑgŒíܹS]u…tKZ;_»Tf‚þð‡uûc즛n )¡®t— 3ŠÙ˜Ѝ  Û:fWQ,ñZè³¾ì²ËT+ÊZõR²£\vÙe×]w®Ø}ìcª‘]£‚x{#ž vùå—‡ö'߇¡kwÅW\q…ÍÈ`_üâ#wÚ—ÏÖ|,†/3Jä lŸÅUW]uÕUW]yå•W^y¥”òª«®JÈÈ>»„â1«Q±# áãn”áíŸ&êë^) I(d‚ÜG2£³–Ô*‚ÒÙ¸Ž yÎ=÷ÜOúÓÝÙ¶j{Û¶mª…ÚôcšïO!„޵gÏÕ°Ã[MíªIG§yÁ()äœëf³ÍG\ë¡s…i¨6L}z_tÑEºœCãX»¦°ö[\] ÕLÀGý-{3”o÷ÁÙWEíÿèG?zà 7¨=ºµ'T6½m6]rÉ%¡q cì’K.¹þúëUÝV£¾ÄU°K/½ÔlÆÑÅ eqÙe—}ùË_ÖÛêP¤Åª¸üòË¿ô¥/©ê«ÜÉSÁôõÓLÄLÓqœdwªÎQýÔŽËô„r½ÿŸøÄ¾ð½mö«QÁþò/ÿòóŸÿ¼ÚЕ£’Ò‡ÔÑ„«¬·cW^yåç>÷9µçª«®RŸýìgÕ¶¾KÍr^uÕUŸýìgÕþ¿ú«¿Ò ¦´pSWR—QVr-ÒÇJ¶¦´ÒFú5YåÃÝ·o_d·†Z}éáGA–yš™ÝsïŸýÙŸ=òð£IÁ»ú aÖ'ƒÚÐwvzÆ%eÞ²Ûoºé&ó3œµÖŠ+^è¸þúëÕ×÷ 7Ü`6 ±˜OÑ4$œ]Çoʈ]_ ;LÜwrjq·‡YÃÉrõaËú|¢ýv²ï ó•–²Tq­@™üŒq!C/¹È7Ð ³èUøždñõ¯ýë_ÿú¾ýío_}õÕ)†]}õÕv”¹°£tÔåáGöß}÷ÝŸûëχû$|úÓŸfj:Å$ÛV<òÈcÉçy4SµF>¡¤¤,^\ÙâBáÍþFºÀq­ó)I8YÔ:F\ùµè¦ã‹Ðþ™f;9ñŽ…\yÈ”÷FÊô»¸ŽYíи¯$‹<Ãww­»#Sϰ¬ÝȺé“ðÃýX¾W:^Ë^wY£„wý%¥>ÃUt݉µH_ž„,z>ÿ,ôG@Â}Ù Ø«ðÝ•jåáó‰’ósÔ§X?Ìû÷ïß·o_¦ô³F‘Rîß¿ÿïþîïRªíò·…éI æ@À%К5ÜŽü裸ïžûÞõ®w=öÈ£‘jÕÛËÖ×§(AÒ|¬E†ïø•‘EVyJ“× ¬Ž•)—ôµÚEø.JU´ðùd‘C.™ÂÿÍßüÍ]wÝuàÀ 29^8 „0§§‰C߯é£h OBûI鿝µ5±í¸>UëJ²H%ëÛ"Mø¬)¤9ÚÅçy&zxù"=¤+¿vY/eBx¶ŸfÑÂç¥ gºp:Šã8jFÄôpλˆòÈ#tüh[.-oÏ ù î½÷^.U/‘Ã…È'ª¨âdÑ¿\Ì~Í+IáÀj}„ÚW™ VóJÞ6‰ ÃSægÊðþôÜwžŒKØ?wMöÓ̓ ˆU@VGMÿ¸ë®»ìŒ1©äI•Q)pܶIÇð¬]÷bÂ+µEKp]H”ܲË=—3&‰éééô'™Lq.FˆLýlÒ$e“vwâ…­±îؼyó ‹@ôƒbp·n䨿äþì=Ì4Ƙyó«À-Û6ã’éËÔó4{Bèò¬<©Ðx¾®SKåZšçÉæÍ›ÕsH¬n&''§§§uCÚª9Ê6+Ƈ2|w¶ZSmC¶_÷º×u‘Ö0ò³ŸýlíœlžäãL$Îý÷ß?è"4ÉÖU6µÎv>ª0Mµ5Ÿ×¿þõßÿþ÷3%=¼œuÖY=ôРK± ‘RžuÖYƒ.E½rõÐ UVß“ˆ ÅÿDík祒?|zµf…wx¯Ò¡b“ÔæFæ!}‘•â¨Rw“$ô/òûéY #kNméÞ"b dXºuuP;k G¡æ{u‡¯‚'eœÂÐÑ6!ü\"O:ÎI«ÉDr×…¦Ú¦é¡¶š 'Ÿ099™O::@¯rìE+Ïê&Õê~‘¤écßE ôQâB&ϓڈ<GA4:S­&÷ÄêÉõ°§W¦ù½âö¯pú‹4SÎgGO¨™uÂdÌ»=®ÀÝ ]#6YV˜äL&µ„%‹›Tß<š<£Ä÷¾÷½”Í„Ê²Gpé+ò†HžŠ7tv É“ówñH'_+3µì-oy‹ú™>/ÆXB‡âLMOÊ`²…ލ¶'''·lÙRßf:¤*¹NGÛh›7oÖ'¥w¦9Í-[¶èÔtôPRº´*°H(£Í›7‡‚©ŸfáÍRJûŒÌŸRJ»œªÒt õ!ó¢¨ýú鈴µCå±/Þ_³cèèÐ'Aß=ê¡:óÌ3͇M?~*ØY-t€3Ï<Ó :jï´ŸgŒ±P¦:;}ÕÏ:ë,õä«=jCokQ3ˇÊN%hï´ÏNï %n‡ÊBÅJyû>øàƒJ:ãäÃÎÎÞiWxòvBW§Žå±Q£<!9Ó;íjȹV 5NÔŽÒ… h5™šš ¥f'¨3=xð`(d™Úò¤´Ï¬‡ÐN[£•ªË955e¾KT€ÉÉÉÍ›7›‡Bg‘Ð\i—«nÖŽã&6çO8묳¾÷½ï©/Sm.éíÈšŽQÞò–·¨G÷¬³ÎzðÁ͸ ×[ɨJGÝfšÝÍ]pæ™gÚEÜ©³VÚ¤6’k#}u™)¼uGÜ•ÓYm5 _âzgšyrMå²w*ìÛH?ê àf:¦4¤\;åô2lÛç—»Y†”¤!Ì“ _‘¥zðÁ“+ÊôåuQž¦G2îÑÕ&¤©"ôí¬è 3¢jI U©]NíE,•}Êiʯˬ^!'¬*O(ÝHµeË–PyrO)ºXk§P DžWMŽD2Ôö¡‡Rf]¤}¤‹"DUϹ%Yã"…XÛ›+ñ#³VÇ2»T¡êÅ“PªÈDlϲ¹m+rò‹-”{—¯Ž˜|"¿‹‘hµe*ÆsOä¶lõê Å ™iv1¨æØq²•\Ú„¸fi#[±´Él†4?ç•J†>ðí’s‰+R\j §F†í i zÕÉÓN;-‚ù—1I)ßò–·„žÏdSaöè\”Në'¦$.;;åïÿûÿøÇ³ ´¶°â2Jy¾‘Ä~Oª½kèHSž3Ï<³k7(‚éÄŒÜ.†ñ,î¿ÿþmÛ¶ EQsfrròᇠ™h­pž‚ÈçÊn¢mŒ°iu|8Ó8³ÒÐÑÒY9útâÎk%ïŒ4m’Õ<ÒJM®™H«6e9Wòv隸ÏÿH­ü-ÕWBÅKï¦ †‘ ž„ö‡j¨ÛŠigò÷K)»^'-!£L"¥KbZ²v.ö+'ÙÅ™\†”Ær¤ç1eଉw‘E>â«r±= !‘"©UÈ®bRÍo+Ž¥æÎ¸Àj#Ôºm+TGÍJÉ ›•ÌLí’tL9ÎÓ7¹ «4ÍѬJ—&|¦,ò´só·©{H‘ßD?謶qßb‘¶ž¹'´3¡Õ%²…'²0É–œN-îâéí(‘ i&|çíQ,Zy4‘·Ù°¨p›²+1DtVÛ8Ó,ùós…·ûJ$,.•?=¿ï¬ø¢éEaË£¼äz¨BÁ¥*Òé¯7zÛ°I œl+å$Ü»É\šOì®ïª^¥Ó1—äsŒ+CœŸBšý¡Ä3yÆ»Ÿµ<ùj*°!©"ŠCD+™š²$ÿ¢äÏ™gžyÅW º«–þuÿÒ˜])úÉÙgŸ=Ýš¤m-×nÝ'!‡ç„ ˆU)†IÜ•w¬ãDMAkœH/ÖîÝ»#sÐWADWdjˆn%£¶‚  ­ Âkî*¨* ‚H€ ².HZs— ‚èœt– ˆ¬ntA—“¿±–!Ýè‚lcÉ‚ ˆî µ%‚ÈR[‚ ˆ< µ%‚ÈR[‚ ˆ< µ%‚ȃî×%#V ppÕÌ1l@ ]ŒNKms^½u ‹Åmýó 0úK‡êïQ`Xô£Ô‰.ÕÖž:7R¶ì…•ÌÕ–Ò¬¯¹rW(ÙÈ)¥C Ø (Ô6ဇÜ~þ/_½°TZ ¸Ú¦í¡Ø>îå_ûÚÛïBáéÒo›fÜžR4SÔÌí4+?Æ)x(Y7n]HÆXh½ôµ.² ÚcÀÐ2b8€hû= éÎÌnÛ-%‚ §÷Õé‚ÂëF IDATóÁ÷¯P($h¦Ÿ Ú®zâæÊ*>vÉÛÎB››ÛêyÓŽSe¨uHŽ¿Xv§J%)ÅVÉš´¶‚ã :ÿ¯4íð*㯠ªŒ±Fã䣋go<áü P2¨{lÈîmRÛµÀÐÜŽia`€ã`fö^éGŽS »k##ñEÏ}jvfkeÃ>ÉàûÃ7‹ÂI'}rnn«ë>å¸3 5° íU °÷ô)Gƒ ÂÙ†“O9¿/¬jÈo»ê)ºÔ2p}ЏÂ+©u]¸î¡¦U©›íjÌ­ª¸#ep·³$™^ãr>Ž.aCe_£1‰rt¸~vt ‚ÊÒÒÙ*ûê øBWHì•ê3ƒÊ·KHm‰¡¢Õ»¶TÂììyŽ3ÃØ"R:Z=p½Òc3sçz.X| é‘¾z÷ùþ)RŒæ›{IüÆ©ãwÖëðƒ¼† R[bÀH™ÚBQV­ê];Znõ®ÍbÍ1Ô§Zö~17{QÙ¶'@ Ôë¨7¶q,dfK6B!Ó‰¦ëë-ãßõBRKÃFÒ1l÷±¶á%³³ï){q×ê]›0¶Èùó¥ÒcÍaà zæ!àûØ8±»Ñ˜þÉRößÂ•Ž”£A°±^c½ŽÀ‡”œ¬Ú. µ]Ó Jg2äÛÔq0_}÷ºu0·º’¢3~¤äMÍ;Õõà8µÎZ…â×kÿH Po`Ceßbíì ¨t•fò®6$ÊAPñ§ŽOìh4 $ÂÞÒ¦›fEäQÈëÕê“°Ö‘PÊ@)¿ÛAvÛn^÷ð³cž+áe`°n9AÈô+JHÆÙX÷Â?¾üÑ7Ÿ²A]-@[]IÀgð¼úMw>üÄé^îk1 Ü §½áŒ~|8.g~Ô€—Щàà)–ÚÆ-•Jô   lÀ9ß|û¡ Ï}‘ ú—¥W([.¾ ŒyOõ¡^9[…<,‚'^÷ƒMR®ƒtÀ†§› 5ΜWÝÏÚ?ë“ë0®×0cR†› äaÈg',ùbLÈQÞõ«²_ÈM ›þéþ5^ð. ]ª­”’—%vAi)a¸œÌ‘QRJ­™»Eh¿Î(TfýÓÌÔN‡È i?ëÆgžñ:ïõÅá ŽwDÊ#BBŠ‘ ؇´'HGb4Fƒ`BÕXÝá`,é]•”ž¬‘xBÂÖK±²,—=¿kŒ.Õ6*™rGD kJÃÖ ™EäþPÊ¡Ÿ‘aV;­q85`÷ýñ·óô$dÃÊxøgg8˜ãXd`²µöMœu4v,˜Àh€±Ó^¿K‡à·Ö„()Hÿã©÷¸˜rQeXc&Ò¹QÍz‘`RÇjà”£xKa=-šŸ×žÀË(¸a‹î/¥JœóéŒÛ‰Dk´£àš¶j\‘o+Ò²ŽÔë5D,ÙÛöó€¥~WÙÿ‘ãÖ’…(êh¬ÚJy4øâÃ[+öÕZ©7åXa×Å[_ýµ¹ù·•KÏqçp³[ôÿ0*Koª1cú *ÛÝzêd¨éÆR%ÙŽ£ä8Îꌌtš,Dû"Kb†IˆNô8œÄöëV‹³1fìÇ™3gB``¬.êå±W¶ôÇn“¯¹¼Zö¦ª[GËZå!®#lû9p5ƬRùN³[k Ú”þò˜±ÖdÄJé¾¹ÁtŒšè£JXmsÕöùjx{ó‡-â:Jäv\˜„`‘EZ›­"ÆŒ±þÌÜŰEîÌ”ËÏνsXzàj¤ä¾FõÆå=p¥9Ú'&îlõ®-´aˆXiã®´è%i¬C* N‚dEÇ` [íp˜’Âr6üÖu›¾É¦U[¶VdPíæÍ@ú_„Äè¥ßè%ÊÀ^‡3ÏÝC®;Ð9pS}ûé6k20VùÆÒ’P¬‚J”}QñýM¾_`«v¨^‡št¥Ñ‚hÚ¶hùFCf£v/˜ÁlÓØ$R7M÷«Ý ·?äðíB‘‰|஋™ç?èyÓ®1fŒ±žÏl /ºÏØ¢ëÎÎΞW*Áq‡ÆÂU7¹¨70>~g£þFß?YŠc2'¤ÆŒùõ7nœøVÓWKÏDïèRmmû4.˜2NUÓgm¦`K|Ü~;–ù³ëò -棔óCe Yè¹fjE†ÒOþbç²EÈbŒN˜!›ÊÝfs>?2rÿBukÉÓn¾ã-³ S¥ocöÊÑ/ä•PzB¢,ƒã×W*ûŽ.%L¸žã˜±8†ó50èZ#Ö& ãôŠ Ž÷Tš™zøM¢VyðJÍξ§4\sÖHH‰ÀG­Ž6~Õ÷'¤•‚§7$¤X_¯o™ÿûZ}('ÿ->Ct7«Ó9‰Z‘a¡Ú\‘¬ÖÁ–±%Ín$Ún;Nuݺæ«ïv½g{ÍH@|øþ¦ ¨0¾.>f3|óä%‚ 26öß“¬ZÅÍ*[ŠÙXÍt=ðÌ3ŸrÚ÷O Dš)W|ÎjŒIXÁAÊ’ë…86ë¥(¥q1Ƥ¾ÏU bãÄ·ææ¶BN/¯ò htÇ•â_ol©5÷fB V©-‘+¶|…úð*cŸL¿Ö!ãÍewççOvݧÍ4õ–š›ubãz†õ¥øAc°‹E¦ÞFèUªoŽ3Ǭá+f'ø@¿T;{|ìθÊé² D;¤¶D±P+°ÐZå¦ËKÍÓ:ê8à%<óÌyÀý’†ê—ºÜ…¬àt[BU‡`˜˜øöÜü¿çì%æÄ¸¿eIˆõÍä!è'ä·%L¤KÖj¢1|…íÔŒ·fŸ\5›íìLs6[5\*ê;H®m½¤@½zc³Ç¢Y¥áŽ R¬oÔ—Wdˆ«•ØqxDȶ%Š…=ø0>$ž‡’7¥}1!ëÌYp½'çfÏ»³&3ø‹éãVç›èci0Âápœròîùù“‘ØÍÑåpÝή›¦?A 4üÖÌ@DjHm‰Óš Ôì©qjÛö|«Þ sóosœ‡“’oMµâ8Õ‘‘ûç«ï>î¸o"6“6¥´wåAdVŽƒêüg¼Ò´Ã«Œ¿Òœ«+iNÞåöÃèTcìå’wpnþT)^-bñµßúäñÇß^h¿vDHm‰¢‘âÑep8\s³çzÞÃŒI“®êK y¬ç!A´uVdwîI'}rnn«ë>å¸3 u°Ï„ÈkŒU]TÁR¥£æóù)äSèòÛÁô0šý7Ãú9gãpK˜¹Ðõžtœ*K^#¥}´/çóÕêÛFËpÒßûË3* òyÑ= É ¨H”RHmœ¯•µ¼L¦”ZAPY¬½aì-W õ½Í©-1,ûÀà9({(—ïbn0ÆxÞÔÜÜÖR)ÆYYÔÆ )¬^Çøø¾Fc‹ëóÍ}Ô÷O®5Þ8>~gƒz/t©-1ÒÚDÍi¾ôŒÆªIÇÃÜì[KÞT:‚lojª;NÕó¦ª[×DÍf+›“Y’;x;NJX¬³ÙvŠaº eÔþ¨Ðg•¥¥³Ç6ìS}–‹ìo),¤¶ÄÀ–g¼›=ÏõžäÎcõìéŒ-:îŒWzlfv˜f³möIp‰@"륅Ìiòs)Ë'žxg ÀМÈÈ ©-1¨oKzÆ[~XîÏdeÉÖ‚ 5Ç©ºz6Û˜•ŠcŒsxFÊ)¡äâ¤Mß‚ŠŒéH`Ÿ€^—!iƉÖà;;c5ÇAÉE¹„òpÍ×S¨OšÇÊ@Å] |>uÉOñ@ ¯HŒ#Œ%õ³aŒIý­ 4Ê|ù£ÿîäíˆïV$dÀñà3ÅQ8Ç+³cÁàˆ˜z†µT3åþŽîºøåÿ` €@åÍ'ýõ Ý*5à%$·•Þ¬pFo¯pBÛ„µvôôᑹ'3÷Ä%²&(ðŽÿúöC=RÜj0Ôþbî+Ü9Zi»ëî°BÁ¯ûá&‰rä'¹PÜDˆYí/fw0^ÀàƒÕCÖEÇ»¯+–â `DÁ0òÛÿýdȳ:w6-¼öŸÞúÝU«¶)…ÉÔ²4#C&¬° Ó­pnþ´×¦ŒK„(Œ-:Î<ãõ¬ÊÒÎÀÝ#À!!Oˆñ•.êÕWdYÈ1È€¡ÆùÞ‡ I€‚R4¤E®¥Óý ç…)NÂ’­ÑŽ0kqòLèuztÁìDÒ^–ϱ,àÞ·}» ž ¸À:<üÓÓÌó>,Å.0`ì´×ïÇÒ!$Ì7hŽ+ësa€ƒyê’uxÐÅ¿ZÇÕrmŽáël4ÀX“ÿæ”»’jiü¼ös¼4èB¤ ›Ç+$F âÚ±´±™5zémÒLGZ¸¡`«Uv—/D,B‰XÞçÛIÔ—²WÂáê;JþÇ9œf)‡¬Hy4øÑç¿á¾ºêÞ]¤>>v—»š·;z³ dÜ2Ž‘2*“£§_Ê7eQ3X­R«üÙujøç^ ssy¥_¨uâç6XAÃ@³ÂTlÜ&yô·•à2ôTêN°MA€ €œÇ·÷I°*4®†ýiêNJA¥RùNâzeDzðé˜Õ8 éoBô4«)è]›f¦ëv%é Œ1É$À\H.Ù4o-ê¸Êxaý¯àG”ÁÀå¿&æþÔ™„ô^¼'éÿ<¥ò_Q`…XA7¯Í’‡Wz÷3ÏŸå"p–£„ÏŽ1ˆvùX–¸d#µÒø+#´ËhԀ¿z ¶ ~O[³ô¡®×»5½®q«‡r‰ûÉ9G»ègjÖ â¾-™£åë€Q`(¢u¬¯MÌ=¡.þþ'ïú)žàð8Æ&#Êׄ€]•I€3÷U·ó;»´ë^uºHÉ!€ã¤7=ôÎpZ&Xª—©óhþ•X`ü?žöÿaÐÓà„’Ì§~âþЗ~é^m„IïTt`3âJò5}ÉÚìÒ]­ › xøÀíçÿòÕ ‹å%µO=¾fÿ§oCàqa8[âìˆçúÚÁo†>í¥L»ˆNzZ¥‚?Áƒú·Ç7üMB¹ÒLö«V¶Íù[~ò×]d`©{ªÙÊW-€ à€xáÜÛ§lò»ÞÝl)£ŒÙðE2@½qBl”² õ/*eEQz%˜~õ³;ZeŠž€é@ˆK$9@dyV±àv@ ÜòÞ½8ƸòÿÔùªy =üÃßwð|odâ×tš¸ªJFÆþãé¡n|;ü{9®Þ\Ü÷øŸ—ðs‡^fà!K\ͨÓjÕ}è(—Xçã7þø ßAð|!Î4áïÑ!pÚ¢ß=Àâ:ZõªXœÊÎt8è(f°UoáFÌ«¯‚ê¦Æ>ðìYKÔ\`Ï<–‹_8ø¥j“Æ_«•¬·/H~fÿ¿;iâ_Ð@³{©4 ™CU$çe†qpNåŽ'çÎ_ÇtPepRŸ¯IÛQ‰uÇÔäk04bòMSÎ|†`Ø.úÔJ–LÈëÚѯšKJg«í1è(¯«¾[ÂòÙ‰¦y›?ªêCµìº¨þÏO{¯L¹N™ó9—W?V Úm±¾ Ö&b½ÄH£qÒÂOÞ3±ñüø¸}#²jb¨¸o\¿÷põ­¥Ò<ãGº™M#‰rà¿Æ¯ÿæøøßº5«wmš²Q¬ª`É;3±º¥Öb0«KEVq Rù”ZëÐuqÌ:Ì<2s« ‹}ÔÙ–Aelìéz€~ß"_aI¯erùÿ €ßÀøÄwçæþ°äM1g!k¶r9çrTÉJe_­Ñ©wm[ii²dn‰lŒŠžù™o~È'GÃÔhý×:¡7BF´iá&tŽk‰Á¯J€öjw3‚…êV·4ÍÜN+­Þô?º¼¹.oB‘¼Ùa#5êÖÆÆoj4~]†Ç˜ÅFÕŽ½%ÄXÔ˜1cM6óõ#[V1CAî¢"Ó÷iHÒ+W\È µWÕ¸ñÄ`a œÃõ03{®çíçîB?æFˆÏ~ÑuŸ–b½çAˆ„98knEØ´é¾¹ÙÓ]ö2œŒõ&‰²/^- C«d¶É¨„(RÍ œô)LHI»Âð© ¸•#Ù»Ç9ž‡¹Ù‹\ï~î-t°jWÒpfÇmm;NµZ}ÛøØwŽ`–åš ](8‹19ƒ8ñÄý³sV­˜;d{ÚêG9*'mú¾ëŦ¯‚–«ÇL,'†Ø;<jK¬-8Žû+7Ç©}¡¬ÆX­}¬tHG¢ Q–(Cº°†-H)!áìÅCÏoÛ°;`(„ë–s¸.ff>å:Ï‚½˜àysœ*0Õ].Ï:Cˆ1!–g°mozq¥,û߬Œ}²»ô×2¤¶k ˜½$óî/iØ×FyÌ£ÏÎØ>ϳ÷ñê •—<ôŠSaìÕ>ÜCϾ÷øãoï}V;¤¶k„°l Nc[suÅ ÚÖýÄÑå2ž™{³ã袯CÍåÕCÏü^e쑺@Ä”E™‚BFù8˜˜¸fn~›ë²ÔÖ´¼“¬ð,o¦åt˜ÑpéØÒ Aa‡_sºJ"'X·-LýCuõ[ÿZ3g·~Šf¡9?ÂØbf§-€-ºÎ¯ž{þÏB%ÎÃyDúÛ ßÇÆ‰ÝƤ÷jÒ‘r4ÆÿÔN¸=ᛀˆƒÔvM3%ÉÖ+³½„Üq°nÕêÛ§šTtú¿æVGFþi¡ºµäÁqÔ¼b"ª6øŸfù·ƒõ6Tö--•öƒúœ¥Ñ9ËH#óÅ–€\ŽÅFÔ³ •}­Þ¸E4l1˜»:äIXópèµ gè†`Â/á±ùw¿Àqà3ŒHpÖœãª= ÓŸÿ˳شB¶Ökp«¾û?yáÒßÞxü8éhíÄÜ+v†ð|¯þ­;ŸyS séÖk@ûþäYiTFjÎ0¦æ<À±ûë¯=iÊÀ †~ıvÖn肸 ™ fÕO@³L¤CËi-Ü0 xƬNùk:ÊŽû~rÁÏ0íB¯Fbb&¤Òö7@©áÍãÀ7†EÉ(-*B 0£0¦ð*Ç3ðnÓ wyHŽ`üÓý8ƒYÕ"ùïê^»!å´/æÌßvt[ã²Îé¥B„†‡F'ü\+R‡Œâ?ÿíÿ=ÿšÙ—Ö½ÜÚÛ×Y [V˜² $$C”™pÆ^rœÃ×=µ×Aà8½™Û[Êgÿ'gÞ3ãR®‹*!„dyÔF|„ÜáÕkž~(ÏáÅAð웿ù[8Þr­tž¿±ß'~5~ïÛîYµj›~¢Â¸¶Æ¥´1Óhtòb kaɆhÌzÒv® Œbö×fŸÿ×_½ê…VH&úý—«ï| ÁZ9Æ–œ3Ô÷L>îXʨ„”ìEÔ0G•·žd<ê¡C´p°ãËËX˜+Çd«¸:´­\ )æ~î­KØ:×zóJÝŸonôxí{šp;p\ô8ƒ7³&#Oc&wœ*—È߯WêÐf¥šO‘1fŒ³þޱ8ÊÜ£\BJGÂCÓÈ B«|Ôðʲ dA¥ùn`GÁ^îñpÖt­4ëD¬Œ/«ª©wDjú¸vCäwzòÚ RJ{ΰ¥VOëe6FN¹Z‰tÕ¶íòEl|a#—xéH®ž„öEeì5`ÌáAòÈý”$Ø€R"ðy ^çU(Â_&¹4îY)0‡»se÷å~xâêD}êRIp0ÑnMçíIøqýG½?ÿ^Ó½m«IÐ,¥ž¢½ûx¦èv°8±6ýÉI­uGmˆXÄßü_w ¸•L¡¯ŒÚïþßGþƒ‹ç^´WÜJ÷W§¨LÖæ*è¡ÕºšëxŸþê³E_‹,Toî{ly]²¥ËU…Ôñ†sÞ¸ þ¬2u3·Ãåó÷èê])§£m›l<¦4CÛ …!µ&¦ak·’­Ã‘V­ Ëw]2[“ñ€¼‡=fx¡ißi{*›­mcÃ"S‹©7•—Küry-2%¸9¿—³ÖÂÁ9•;ž˜ýà1ÎC.²ÔLl}J¬xÕÆ£² õNå‰ý€Ê‹µ¹.YȺ´ O$ÊkˆHÛV»ƒ[“( 3 i-û¨£pÎMÏC¦iÑW3‚3)e#¯g¥ó“É¡ÖÚ*Xxv«ç?æ8G[j—F:+ *™—}ÿ˜—žŸy–/iüëµvú0§-™ün!³üi®‘„ à×1±q§ß8UȲN!*»‚š{„8¶ÞØR¯«é‚¸ÜvãÄ"Œ¥÷VwÖf®ôÁBPׂՄ¾Ô ž÷ Ç©r~´›Y¾V^~Äó¦ffßÙœ°¦u{ú–“zó{jþ!×gŠÍÈQß?¹Ñ˜Ü8±Û÷c'¢$º¦÷j›g_+ÛWkî':30'\ØYöªÏºˆóy°e«6¢˜f–m &š^2b«í0CÍuçÙ矿ÎqmÈe¹FA€ÅÆÆ¾•¬e‚ÊÒÒÙ*ûê ¨å*Ræ^<;· b°®EÙôÏ&'¸ß‘z⮓NÚ1;÷fT„<¦9†µæVæ3ÔÀk,ËPR–¹rÄé‘8Œœtò¥œ5—V8j5âd]“ ¹Þ•£i×m“dYÇxâÀÛË0Ógé°1äBmûÙ2f÷v Úᚃ2WOÍK$ñÔ¿~Æoü"`¯ü¶1gÍ6?ÈÚV'‹jIks¹êb}Ãß5öI Í2ÇAé1öôSvÂÆ 2¡8çð<¤3æ:8ùµßîù“›ë¶uê3'Qöƒ '¾ö€ÃPr!«[˜ÉÀ¡×Üåd]¥…bÕª­Ýç—(>êÕ¸ñ„OvÔÎÀ]”<<÷ÜIRÊô®#!ÙxÂ~£©©¶ÚjÔºd‘sŒçc ‡žÝëzO:N•±WâBrÆg¨fJÿÙgÏh­Œ©ÞgB÷üÑo ´æn·¬Zµ%×AjZÒ€jËì-/¥Të’5Z=ê#us0eŽg½ÉuÆÝ™?R¥,K~£¹"Y’Ú0Ö%,RJHœ¸éüÙ¹+]ïI×}:.$—!K¯ªÀjŽSuØé ­ú®ž#í] äh *B¬oM‚“·U›alEñ†a¬Zµ%©Â‘d«G}üÓ➃gmsØ?díËXí¹çο³®–‹É¢€‰ À‰'~îpõ­j s–iÌXc‹pYËçn=—‰2óË2xͦM;ŠàÈ:Š;î‚ȰÂ:ÝšŸð=sG©„’7Åù‹Ñ‘âQ£Å–W$3“5­Àâ5´Kè>^ß­«1cvˆì"Ø:Q°ÖÈºå ¨øþ– •¿?z4bŒY>d8Åb¸€LVª¶¡aYc­$Ç—æªîIV˜1ŽYt1¸.Jfg¶ºîSŒgf¦F‹yÞôÌì6×E§ >‹„lþõ:êõ7ÁF)G!s[¿áß?e|â¾z¾Ñ]èÈJïµî£Vò™7ý¨Š„ÙÂRî_´Z€lÆe±AškîÎÿIÄü B–Z<Œ½Pò¦J%˜Ó涤x–‘BùµÇ'vøS¥_‘(/[Ñ…4OØ:y?XŸt=ĸIDATßcVÔo¡â³zü¶éGU¬j MËr+"‡ä€ 8E1vÛi=Ü ð=<¶ðŸ_`û¼È €rÔ,‚¡èG¥Ë|wþÑßõë•ovžQ0gXëÓv‹ÑߺçÙçÏò°¾ÏØÍ%FêÞøI¯ÝÑÖŠ™µj„ÖÜÍ“ôÖ|w@6MG4Ü=p缯M"•ÅÜcÆõðSö‚ ÁÂkîJ.X <áYÃ[û] `îÛÕmoÿÝË³Ùæpî]üµë¯}ÓCÿpà÷ð±ÿ]žg½‚‚γÞZsw¹¶bÞUƒ%5w{îýŒœ-7”‹=¿­¦;„YÕ^Úx8àâ·Ÿÿ«KKªë9Î*ßm@-º²¼Ÿù5Æj`5×™ùêÁ¿×½qÕ…M¾n:)Ã!…ü©øÓ¿=>ð7â8)ËîàÎ}yÛÄ#9“R2!·zËO¦]çeæôç³DBB ðŸsÛô辞Ÿï ëêø—~í®·ßÕãsï=^s×Dögi[s„X\aì¬MÙ•´oq‰0H8jÜ©:ÎU\³Ó¹Š•Jå;‹GዬÕ]´Ñ1…¿FE.A œáî¯8ÆLŠc|ÿäzcK£ßZŽa¨Ï»°Ú®z L¶Àæl(§•e«¿¶0þ’˜ÊbŒé1f~}ÒXÇLâø¥¥³Ç*߈œ aÛÊ Hm b£&ÿð}øuLlÜ×ðO‘bTÊ’6øSÇ'î¬7hÌX~ÚēһH4êh4¶q¬ëkõÉñ‰ïúqcƈþ@jK«!P01±»Ñ˜¬×·Ñø7zÌ֎é-A¬~TÜš •}¯ÝZ©|YÍ;9?Ñ'¨¿-A¬Z=pëã1ÆŒ‘Ôæ©-A 1qbi­jaÕ$v ÚÄ*$Î?@nƒBjKk’ÙC­dAy@jK„¦Ðó ;T³Ay@~[‚X¤›Ê˜†ñö²m ‚ ò€l[‚~lÃÕÚC}Ù¶Ay@¶-A ?¶áÚgS֜Ɇ¬æ”mK¬Z†{å…bC Û¤¶ÄÐ7ÇkììVXò¬; ýxÊáY¤ 'XU0Æé8ƒ’$¡¤ëPF˜úåI fü³1åTJé8X7‚…êÇ=ƒmhô·À½_‡¦ ©-±z` ®‹R ss[Ë¥ÍÍ\æºàtÅ€< ÄÒŠRVíììŸxÞ4˜ T‚A3À°}þª…aáRW€a†ÞûĪ€18ffßY*?î¸3ŽSu½'gg¶–<¸.¨{1pHm‰¡¡å·˜§ŠŽ×…ërœ*C¬îðÃnéàBuë1#ð8Øð9Ųa«N^¶+@ò a4X¨vˆ!GYµ.J%ÌΞç83Œ-‚ ø+.Ÿ-{Í̾“»0W—¥®¸Dþß–Zöœ€±î–²jKª[ËÞýÌ©ê° ; ·ÊÅ!Ç… š©w¡Ù8ײµgËå&÷‘(pŠb@¶-1”h¡á®‹™Ùmž7Íݧ[l ÇÆgfvö¼R Žrà§]²Ç‹û b µ%†ÆQ*¡äMqþbœŒ:Nudäþ…êÖ’Ç)¶ØÚ>Y]\’×!‡< İ¢:!”<ÌÎluÝÇ_Œ¹èºO˜›ûóñ±;j­…¾‡Hpæ€óÁ÷¯’<!µ%†Õ»vnn«çM;N•¡¡lA¦ÃWGFþi¾úîãŽûÆ©-€9X˜ÿ´[šrøa°—ØÐרOüíuRÛŒÚÃcஇ¹Ùs½ÒÃŽS »k£c-ºîÓR¬÷< ¾Oó“NúÔìÜrݧw†¡&ä,¹RŽAÅç§ÛSPVƒß–zót‡Ù\T¼*LhÍ➇¹Ù‹\ïImÕ6¥Óô{šI´ö;NµZ}Ûº8N ß#8ÀuɃ‹KØPùûFc2*ef]6²Ç ‚ÊÒÒUBà¹Î¬6œM=PÛ‹”Ò.ƒÞ3ð⽤5f¬TB©ô˜î] tòf¶d…ñ#ž757{®«Z̆çî¾z÷ùþ)"X—oî%lð§NLÜQo@!;=PÛ"ôD±Ë ÷4{eÑS•¦e#ó­¢¶I¤áÕ3æanö­%oŠñ#‰)s‡ñæ~†ZkPï…žWð9kD¸+C P¯£ÞØ"åkH0©†mtQŸY,D)Ö×[Æ'¾Ûh BI @ä:ÂmØ* }¯¥§£Rá•PpŠ^EƘ±¹Ùó\ïIî,0VÏžN³n¹üx©Ô2o‡ç]¬,Ü»Iß?YÊcúŸ¥#åhl¬×ßX¯·üÝžYŠÉ0©m‚» ¤dɦ` £Ú³?®æ˜±‘‘û昱4ÙDYuüHÉ›š›}«[ü¸&ÔØPÙ·X;[dztUõNaëx)$ÊAp|àÿÖøÄŽF|ݳÒ> yŒtD èfZ¡p€2PJ…î¢"|>uÉOñ€‡—uÀ: LfTn&™„#ë^øÇ—?úæS¶#&cM>ƒïàØ7ÝùðÏO÷ðr·)14]I/^ÁFwÃio¸c@£ß5à%Ø=‹F——n˜JÖµ~øLCi !"³Ð3˲…ã~® Z&JØ€s¾ùöCž?2ú"/è´w—eCí/æ¾Â#\y`Y–.\Öü â°/žxÝ6I”¥àQ7€QÉ€´c\@.q~ä¿,ìçQ·­P³¥ÅÔOòQ‹ÃB>;ù`)ƤÅ`¦hH@nZØôOôϨñ‚ÏÕÐ¥Ú¦&S‘{%d¡4“³0Å4!V?ÊIôÆgžñzHVVþ¼3—Ž )–Õ¤à0ÆDÀ ‚Ñ ˜ˆ«Ÿ•#$D°^ÊcÕÛHï/’ÔݨmJK0.ÀJ É”±Tqê™&­Â«ûÆb€¬ ¸ï¿]\O‚ ”ñÈÏNg˜Ó8›3­Ñ 0`ì´×ïÇÒ!øÝ³ï˜ýˆM\ü÷§þ‹‡ióGy,ד² yÛ1VÇÉGñ–â{Z~^{/£à†-º{¼B”ÜB’<[Â:6pÙ’×ѵ­Ú_ëuB.«@."ÛCÚãˆy˜P*áW‡ßYnüˆ¹‡ÁÓ½o”;†•Gƒ€/>¼uCe_£ß±š °ÌNd\ÿë«ïš›Ûêy/8îa†šê€œ5=Ù6ÎhTõ6T¶»õâ»+Àµè‚ÞŒn0é>¤€ Ñ¥”RJ!DzÕ‹,ƒÒk3LknèèÚ¡=yâ ¡Wdàî!æVji?ˆ;uÉö-Õ×ó¦ª[GÊñcÌ PY‘„ÉG—°¡²O1KŠŸžYaAP©=»²a_=¢wm(Àµè‚ÞŒn0 ²µ·w(7ãŠöÞ%‘*œlØF-36.bòQbĬÈП¼ÆwÆ+=6ŒcÌDû3)VäzÖcÆÆ'î¬5øÔ»¶gôѶÕãf÷ÆXÈV5ã:Æ®‡ÒÔfi¨w£›¿Ô¶ùÓ>ºòª zEW½k-bd"rvˆ¦…[úÅÜ쇛cÌŠ¿Ö–>EÙc&ıˇ³ÜX3æG[µíIòîrY›ty'¥lh I°’BÎ#»Ú¤êVb§’xm¥F†ÑQ8GÉÃìì{¼Òc®½"CzÒ_X0¶Èùó¥ÒcjŒY³7jQˆÖ}}ç c–ÝÂírÌ'Ë7%xoǵPõÄsJºiQLÓ¬C©óÕw3ò€Ã¬Ëµf[÷B(RB2Œ)y«1fnsÞî ®©°Öœ ŒnpËcÌ––΂Jsoê“(AÅoœ:>±£Ñ>ïŒi¼šI2]ªÁnÑ¿qßÈÐ ¬›ôôìnJ#sÃVöh›hÐ,)äôsŒ®Cµú6Ç©‚¡iK±V¸ì7¬íTŒs3êw½ãT×­{`¾úîf;ÂÀü’i®]›}§,\߇ïojöO0R½i?gAP©T¾st ~+ÏH{¶=Ò`½ż·c)fwvbMóôÓŸbº^ßÂø),†£Ãç‘”MÁÝ8ñ­¹¹­ð¦Õ*Íî­.µ¡oH)G¥_©7¶4û~¬†X!¤¶Ä€ =ÒA€ÊØ'‹±Öá›V^¡UGÀêì´zà.T·‚ùŽSeX”–È6‘~å•¥?œÿZsE†BŸïCjKÝ#EÍßJ¬]‡ããûææßÆÙÃÌYŒ”ZeÕÖoœ˜øZxE†á¯Ud†¨€XÍ„º`°$C[î²BY¸cc߉èŸÐÚ‚Êbíì •æ˜1å!…!z©-Q8¨±´'H‰ `ê-¾2Â=p›½k'&î¬×[cƈ~BjKäJ§æýåö|:¤*O‘ÇJ%Z RJßÇXåKKgû¢²|¬Õ»ÖßäcÆÈœí+¤¶±šõÆ'îô§Š`ƒ”¥æ˜1c£þÆߢuÆrƒÔ–È•ö‘H¶É¨zPrµ°@® `Ø}F±–W“eàlŸ—fÜÆ'¾[«OJ±^YµÆä†Ê¾£Kb§ú²‘ZŇú$kÙöߪ£Õ·^G£ñ»®ó+&Éññ}õz³ëBš)Jˆ•Óö`"OâíÜüÆEhLŒQ-!äP\2Æ'vøSm«6Fj‡l¤Vñ O5;¨rÄ)r3XORûî©ÕþeÕÒãž3äI Õs>rÕÈýý`ÈŽê[ûd»¯V™\a3–7ôR[‚X+è1fŒ1Òü‰V[r)ý%Åý•Ï-¸Z,¸hû4Žö¼m>6`¹ï-Ñ[¢Õöؽ{wÎE!ˆüaä{m%8šs{#jµòNÑ[+E­ŽÚ(,jK=ˆµ u‡"úD›Úª›l÷îÝÅ¿áº^·‘|,,ê®+þ½Giضm[hϲښ2ô¡}(¿BA¬.¤”JmcÚvpõ1s ZÓÓÓYS×ëÚöÉx´S^¡Dvî@P«Ü›÷[òE èÇU£;èR.ÏbÙšo©ÓúŒ!BÒ¬7ìÈ“ÃÇ%ÀÌ"}Q#sÑIu}%$ŸþJÒéXŸv]¤LéH)CÒ–uµº~\5’Z"º¹kÚ¡'!Í~mÛù†L˜ÈÜÕ㚦œq!ô*ëy>f õ–•.ê3!‘PÙ‚­$PÙºÐ'Hp‰~c¬Ö™ZÅì`“““憔2´'9ºÚ£ãªm…Ñ Ÿ Ó°Ú¼yóJ’ê"ëÐû;’µ>S¦™P¶ô™NšXæOBhÿ¤AÖ,:@•œZ爾²ÜJÖ…ŠÙ†ÌÁƒã\`‘V½“1699©½Æz[?c+l¶Ve3S‹+[ÿèIv)ë3kôåKé¸Ïz.fx½­®²þÉÓ/BU˜Í›7›å1R:$¸DÿHêm¦­ªQ2êú»yófý¨Ø6KÈ6QÖDJkezzZ?`­åÛ ޶#Ú©¡Ýž2OÇLÄ4½Ó`Ÿ—>ýÈD" ·ÐN³lYëS¿UÛ®WûÍ`É%¥ªí¸$8‹âÔ?$µ¦§§ãî™ÐéÇÝð®µÊÈ®½-[¶t¼.‘†næIؼy³²a'''<¨n}e›Rê=*¼2—ôQ…W)˜ž‡ZKBé˜êyðàA¥¡RéDÌÀ!;ÚÞo›TÉ;Í©©)­û¡(“1æ|h§y öÑäú4­HW!2ÓªÚÁ¶lÙW¶¬þ_ÆØÔÔ”™ËæÍ›§¦¦¶lÙ>ÈÚ†eP›w£½¡Ì½SÕ'Úï1»B¢#ÝÌÍn>Q¶©ùy›ðS…OsËvlìpðàA3¼.ªN?2÷P_Û’J(FrÉÍ£™|5¡¦§ôt\}&·ìk ŽÙÈBšE5Ýܺœ‘Ín¡óŒÌJ¦®+.‹Ðm@RKØ4óÀê÷i§¶{÷îmÛ¶%˜!i—Ù Ÿš©­)s´ïûމ'$²òFçPƒx¦z³-zEò[¤'W'îÄãÜ”½ºº;å¬å ÝW ‰g=µ¸o>bM¡úÂ>üðÃ$wß}÷çþúó±ž&9“Gí¯•“ZG?¢ãWpšCéI2‘ÉákÇMél˱ç$øj{•~§œµ<¡ûª»û'’ÈÖbµ§“!sõV_Ñ~Ós;îË=¹1dUb¶Ã~oÄ õÏqcMH6dKÉkÁ]ɇ¿ís´»ë¯õÑ#°×Úk† zHèˉcÈ}L‘-]œ‘-©‘?ׂԢýC{¨o‚8Z4ÜÈgi- ADh“ŵ…uÛ¶möŠ:ÄZcXñ‘áþ¶ªË±f1]$¸ÑCº™•†XŘ˜Hj ¢‡¸`hv?PýT÷±•o›Pø! /†•‡ÂSø¡@0ÀGÜs÷ÿ¿ M-mGÕªU?ªžxõL ÌÿÿÿÿÏø™‘™+]ñ3 FÁ(T®È–ö{YØIEND®B`‚ghemical-3.0.0/docs/user-docs/images/aa_builder_menu.png0000644000175000017500000001166611563552731020150 00000000000000‰PNG  IHDR‘;¦¼ßbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ 7§ýŠCIDATxœíÝAnä6º`ù!›,r‡gß ‹¹€^¼Y68CuÛË`d™Y¨ Ì"7hç ÐÙå­ÈŒ(Q,Фäï WI,Š’ªøI•x3 ßdøj†áñãcër@Ußÿð}ë"À)|5>xøðвPÍÍÍMë"Ài|5}òòëK«r@—çKë"À©üOëp\‚Ù² "dûj=Iyw·w³Ë?¿|þkýÜcúÒ$ˆ ð €cè²;+ÖR×¼mÞÐ^—A$fìÚÿT Ãò—`_ͺ³Â¾.,®aì ÚèrLd‰oÄ$P_³ ’K%AŒ÷Ôw¨1‘V #Ú8TK$LWq0 ÞÐR“ ²ö¡Ÿ®Óª0y/@{‡îΠ­ê-‘µùîßÝW* תDÖfP41ÀqT"‚Ày › @6A€l‚Ù² "dDÈ&ˆ­Y™Î•¾å–î%nÿîòe4¹‹ïÜ tf¥8žnæ™ *±u©éæÖË­ãÏ¥óí4›Od©+øX…¿”.¶nܶŠç<œOh§Ù˜È´B¯1F¡’97ã\ÐFó–C •#-¨¯›õPje Ò`ä½õâw"%Z%Z,ç&€@ÍÖ§ËbëcÄRºµ=µ.œÊ« âÊ)¶0&@6A€l‚Ù² "dDÈÖ,ˆÜÝÞ½úÛòºµÇÔÑdfù©i¯®Ö,wõuÓ5TÂVÊøxº<üK7—wøº¥×Ðç ÚkD>¿|^¬ÆVÉø7¦͸|ºl)0ÀÌ-_[G¿œ+h§YKdZYïQ ¤to-¥Ñ=v, ´ÑdLdj¬¬Ã1‘•Â\«‡ã¸v\ Ø®›õP«Ê ÔèŸóõu3°¾d¯VÉܘÇ$€@MZ"s×ÓJ \¿t9ðÖCØeng®;+¶=­•>8ÐN³1‘Üî¬0ج=Ny¾¶.u;ÔåøC{‡èÎ*I—@9Õ["kó¸ß¿»ßuûk]e¤«DÖæq¯1E¯ÀPFõ bw€óxsc"”#ˆM Û«1‘µ+§`êUY»r ŽîéÓSë"À©¼ "®œ` c"dDÈ&ˆM › @6A€lÍæXíqg]3ì«›™ UøÇÓmwÖÝíÝ_áòéúØëróä8–Î5PG³–È’°U²ô|éqnž‹sí4 "a%¿¥HINƒ["Oú%@]Œ‰Äº¥JÓõqn Ô×EwÖØj˜V{T*˜ss~¡¾nÖ§rZk¯Ñ*9Úè¢% Ç3R+ˆéëæòÈÉ“þ9—ÐN“ 2÷¡—Å*†µtK]b©yr δwˆî,úT½%²6ûý»ûJ%àZÕƒÈÚ<î¦è8ŽêAD8c"dDÈ&ˆM › @6A€l‚Ù²5 "Ó9Ï·NLUâVînp¦Óã†waÝ23;¸´×¤% ±yÑçZ*sÏ—Z4áºñq¸Lëä8œ/h¯û1‘1àÄL˜&L[7±ñÊvè“óítDJw[¥ä§«ìxh£Ëéqs\[‰ÌµR8–-cj@§ "%*°k‹cqΠ¾&ÝYKèsWlm•si°îc@ f-‘¹@²vÅV¬¢óš¦[Z7 óê*¤cq¾ ¦ÝYkþð ªÜ¼–‚Ï–òÐç Úëþê,úU½%ry¾$¥»w]gà ÕƒÈLJ¤t/¿¾D× }¨D–‚ÇbL€l‚Ù²½I½r †!"©WNÁQ=}zj]8•WAÄ•SlaL€l‚Ù² "dDÈ&ˆ­é¤T)3Öæ6óéš‘Ø|ê*p€ãhÒ sAeü —Oÿ‡Ã4±u±üÂ|çò =çÚëvLd 4ãß\Å?.Ÿ>Žå‘RÙ„sº¯•>8/ÐN·AdÍ´ÕëÓ5öv$ÐFÓõ#P9‡15¨OY¡R:ç êkÒ_(ý­?%¿-ÛÔ*é—m4k‰Ì’pœcº>§’˜æË{Ë€¼ŠªOÎ ´Ó´;kíß2`¾6À~m*¨~97ÐÞa¯Î ½ê-‘”yÜïßÝW( תDRæq/1M¯®€ýU"æq8c"dDÈ&ˆM › @6A€l‚Ù²5¹ãÚäAÓõs·__{mÌÖ_±—˜ä¨ÆDI±m„ÇѯøÒšÝÅw©â …é–*Äéòk+Î3UºgÚ ‡ìΊMj•b|Ýôõw·wýÍ¥]K[—³­¹×Ì=ŸZše˾¤ìÿÖýέù¤Ts-‡½+ ¥nž”®¡Ô<Â}\ÛV­.§k·ÛË~í²%r­µ‰¬Jæ_ãu¥,ð-¡õ~õ4ŸÙpÚúhUù¤¶|ZuѤ›­ÇòÚ}Ñ] Cã Òƒµ±ƒ©šAnïÀšd–Ê µ CÝY9•e}îKÁ¦Õ·ôÜÀ3-o˜GJžZ%ðv¢%VR%H8«4çÒ¥¬†¿´§îÇ^­‘­å¸æõ± zø"\ïf†??>Ì:è¡¢ë¡ gry¾ ßÿð}ëbÀi4ïÎ"Nz'ˆD´®À[o … Ѻo½}€‚Ù²½ºÄ÷ò|iUèUyøðЪPÅÓ§§ÖE€SyDüN€-Œ‰íUKä—ÿþÒªÐßîõþ»÷-Ê»»¹¹?>¶.œÊì ÿøýÚå€]ýüŸŸ[NɘÙ²5™Oäëo¾þÛ²/¿}I~í˜vúx)oÓÿúñÕóq<ĸ”ÓlRª°‚O­ô¶ðZØW—3†eKëcš·"õ|û-ìãò|9ϘÈ\¾üöe¶»Œór¾¡f-‘ðƒ_²õ ¼=K-ÔØEïßÝK'tW¦{5ÇúOÿþixÿÝûÝ'2÷_겊­K} ç´vÆÿúqqL$ìæºýß[餓nCº§OO}މ@ŽØ—†Ô1餓n{ºîÇDrº¥te½=ZÐF—c"Ó1Ôñœ×p´Ó$ˆlý=HÊãµuœs íuß@¿ª·DÖî¦úÏÿûg¥’p­êAdm¾·¡8ŽêÝYüþÇâÕÝíݦå¹ùAOŒ‰m¶;Ë,p°»Û»áóËçÅçÃ0¼Z6M7M?m©Ì¥—Ƕ¾nºµ<9ŸÜóû· rssS¦DÐØÑæ ‰ˆØúX0ZÊ'%ˆÅò‰m›sÙz~_‘oÿñ­7§»aÜžJcL[Óe%òYK_" Ƕ%¸w4÷Á[poQ!纥n.Î)õý)ˆ@Esc-ÊpÍëZ—Ÿ:Rϱ«³ C¥ºÅÖòIÝŽËß–ì1`±ÖHØe´Tq‡ë§y-å³ôº”2oy ÇtõÕY5Ä>)…oÙ”.1ÐÙÝûˆÓ-Ç: Ky,図n.¨¥æÉñåžßf-‘£½!ç*^•19ö~ßx_RS—ÝY±=ÏS~p5÷㬹í̽6VžPìÇX)e‰]Ÿ¿v=¾Šõ)årâûw÷U*øÜ.+ÈÑe†ù7¥Vıç±ü×Òn-ïÒóµ_/¥)õC1Ê[šË}ôòëKµ ]à –fAd®2[ëÞ*·Ïx)ûvMxÊú1@R^ê<Õp6‡¹¦Bœ™9ÖO¦ô¥ÂG6αþÓ¿Þ÷¾uqàTnnn†ÇooL„·ëßÿh]8…Ÿÿóó_{‰/û9C+¨C9™RcG)(èëo¾~õwváþnÙçiڥו>Ž¥ò»6Ÿ³¼?Œ‰@!_óõðå·/«ËÎ&wŸ[—’çãÚ|¾üöåïWAäò|iU8¥¹ vm]X¹„ÍÜó¹<ÇtÓ|·–enÝKe_ª@ce^*ÛtS˼%¯”}É9ÖG÷W¹¹¹iY(îñãcÕí-U"Ã^¡níZ 0±m¤V-/‹-û»”ï–ç±à¾Vî”ãy†ÖÈWÃ0 ßÿð}ërÀ)„•_Nå0­¸J•§Tº9aYKVˆ[Å–m¯¥®ïµ{®ÆD`KßBKkgíq ’û{–Áí–($¥òÜ£r=Jž¥”*[ÿ¸Ä‰UZ×\îš[Ö¸Ä6'Ÿ½ö—r´D ¹þû°_=v•ÎÜîÖuaž[ÊšZÎ9©ûœ:¾±Çþ®mgú¼t+lK™Sç{"ˆ@A×tg¥® ÓÅ^·–.·,[ÓÅÊžºO¹û;·>¬Œcyo-sî±^*ÏÖýVtgMÞŒ’—O_«ç.ª-èÐ*—^õrl{)ǵŒ‰ðfLç@ÊDxÜÖö!ˆpzßþã[s¤À.Ïc"äDÈ&ˆM › ÝÝÞ½ú;»p·ìó4íÒëJÇ=ÏKjÞ)éŽòþqurw{÷·«Àæ–Mî>·8.½œÔãÓKy—h‰ÀŽæ*ØØ7öéò¥oésÏçòœæµ´½­ë¶X*ûZë#¶>e·”m)¯¥ç)Çg­¬[óë‘–2~s‡Âo•ÓçáãTKy®m#%ÝÜó½-‹-û»”ol[)û™ºÍéŽÐD  °òËùðOƒQ©ò”J7',kÉ oë±Øºíe-]Á÷0æ"°ƒ¥oõ¥µÎ³ö8Бº|ŽTÖ\‚’RyîQ¹%ÏRz.[èHeÍe`Y8ÞúšÔõ9¯+õm:'Ÿ½ö·EJ§ë…–2×?ý&®­›K—².ÌsKYSË9'uŸSÇ7öØß­J”¡tºaH¿P¢¦›aþl²eØÙãÇÇááÃÃðòëKë¢lÖû9Gu´ãÚ{yÝÅ€«"À›Qòòé½õÞ  "С#TGu”c{”r "dDÈæ_Nïò|i]8-A„Ó{øðкpJOŸžÎ£0&@6A€l‚Ù² "dDÈæ_(l9Çr3>ÞA š«ìÎLw sAeü —O×Ï-ß’Ô %…féùøxœ#6êÚsØ“–t¤Då/€P“–TV¢«Iw½D 2­ ÎDw›¿{©Õ UÂÑi‰@AsdÚj×oiQ„í9y@i‚¶V©ÇÖ‡ËÃà““ìMwÙ² "dDÈ&ˆÍÕYœÞåùÒºpZ‚§÷ðá¡uà”ž>= "œß˯/­‹§eL€l‚Ù² "dDÈ&ˆÍ%¾PÈÒäP{Þ¢}œgdiy, \KBb•ôž3ŽÁA ÝY°£¹Êýîöpùt= ;‰qŠÛ¹©tcSà®åŸ’ö ˆÀbÝK¹SçB¯Œ‰@akã%[ Z´&ˆ@A)dº>7¤\‘5è΂BJTàZ– ±ððòÜéz- Ž@BR+ý0ÝÚó-Ûš.=†’tgM › ÐåÄ "dDÈæê,Nïò|i]8­ÿ Ü‘Q$µIEND®B`‚ghemical-3.0.0/docs/user-docs/images/esp-plane_qm.png0000644000175000017500000030720211563552731017410 00000000000000‰PNG  IHDR™ªÙK9ÍbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ :»¦ßF IDATxœì½¿«-»¶ßùµ©*˜ æ„Û°7tƒOÐà÷è¤oø²68h_¸ 8ð?áØ‚ÓŽùO0C›¾/{©³×A7œö7Ì {A VÁu é;††T5מkŸ½Ï©‚…–¦TúU’j|4†TÿÀ_ðoþo×q×q×q=úšäŸðçÿòK–㸎븎ë¸~eWøùïðéB×q×qׯ÷:^2Çu\Çu\Çõn×´å×sÅô¿~“|Ž¥Çã:®ó:æˆÇ_¿©—LøóAøùï¾I^ñ§¿ù&ù×q×ã®cŽxüõ›zÉ¿{\Çu\o»Ž9â±×oê%ó#£ðòïÿ5`þWÿöMþ¯ÍG.Noöž×[ëv\û¯G´ñ÷ôœö–åGž#¾×ë{ÉüÔ¯ …¿E{y/œåßÿkÌÿêßÃÞ»<Çõ˜‹ŸeO¨øšë[¿\QŸ_˱Uï{ž7®ïë¿ÈKæk -ñGW/­_…G´ÑûŸãÉÿ½øÞË[.Hîiÿ·’Ük'/Üæµ5qìiÏ=u݊󺻧ž[éŒêå¥uÏuÏäìµÓÞ~ìýþh*å=ºŽå²zI»y/î½sö7Éô f%÷¸~æÉHþßš·Â÷É[¥Ø½“2׈÷ˆh/!í©‡×¶÷^_Cw{빇­`±ß«ÿÿ­(ô=È÷‘õù^æˆG {…¤­4¸MßR¦Ý/™Gâ×#®·ä÷# ð/¹~ý–ͽRæ×¼Ìö^½<î)ã=y½å¾G\_C+ÞÒÒ[Óé½ßš_{Ò|T}€ïkŽx%Ì·\_KÊ¿ Åÿ=û·ŒÂî¬_³Œñk½ÙÆ£´z“ñ÷~ýåü-Ïïqí~É|¯É}„\ß ÿR×#Ÿáñ‚i¯-Ľ×Þ¶½'ßG/•Ù%ЭtÝ_]ŸïiŽø^^È^9îiãoN2=¤}KǸ·òß MÚºwoø{JÃß"­¼½ß÷ô±{^ ßâeûÈ<¹´ô5—­“·dö­—Ê€ïgŽø^„7K?ŒâxŒ5Ì–´ÖKï—DáÞö#î…{ ÷ÞàÞ{Ÿ\{žã×Ô{ïµ'¯Ñxùðo^XÏÐákòØÿkî½öLð÷Öé—¼~-ËegÞ³½÷…þ¿'ó½.ñ<òúžPø·|}kéÿXÚ;®½×1G<ö ?ÿݯCñ¿÷ú^Pø¸/’ãzÄuÌ¿~S/à·ó`k×´s\ß÷u̽~SËeÇu\Çu\Çõí.µ\ö­ñ¸Žë¸Žë¸~;W"™ã:®ã:®ã:®w¸ŽÏ/×q×q×»]ÿþò—¿à/ù þÝÿùï~éò×q×q×~ñ;¥ÌÏÿßÏ¿d™Žë¸Žë¸ŽëWtÉ;åX.;®ã:®ã:®w»Ž—Ìq×q×q½Ûu¼dŽë¸Žë¸ŽëÝ®ã%s\Çu\Çu\ïv/™ã:®ã:®ãz·ëxÉ×q×q×»]ÇK渎븎ë¸Þí:^2Çu\Çu\Çõn×ñ’9®ã:®ã:®w»Ž—Ìq×q×q½Ûu¼dŽë¸Žë¸ŽëÝ®ã%s\Çu\Çu\ïv=þóËÿWÖœò=n)Qb¤ð¬qìÆìʵ•_Ävúµ…â(½ˆKrWëÊÓÔ×ÉßÍo¿WÿèÔ³›~§>˜WO0n–Îópëí=¿Aû¸ñGé{Ï!—Ô?Êïwæçõ£{ûï7q©¿­±_€TþःÞ}¹aüëyÎ}ðÒ÷Ê畔ߞòçøÜGå…“~ñ;í¼úe·×žª^ƒû·žgìäß<ŸÞ<å„ÿËÏxÔõ>$:néù‡ W&tjx ùUô½ú¨zä „_,ÅÀlÒ¦<“S~U>ó|lû4Ïû’Ãç¶üå9ØßóÕ”Gò þï›õ¡r"Є2Hï—pKýœöÜÛÐI¿<êO€ßÖüû®ç-ÙÞÙŸíx‘þ)ýv6õµý¿¼0¥¼hŸ¿ä¯?Ú“ÆopêÛËOÕÓ™?¼ñT\[öÓüeëÿ ë}^2±ãJCÆüC‘ø¢þ%B˜ßAñ­[â›üФÊñ%ý`òÝ“ÞR] Iþ° ¿{÷oåOí&å(å¡ûJ{H¼Q|®—I_:–WÁ®LNwa·Ó^å÷P‰ :åP÷›ø\¿ÒÞÒþ¦Ü˜©Lú2m;Ú~æöß`Êé¤#Ïõ¥W¿_ÈõžCÓrýÖQ:{ÛÍÅåðNù˜pÝz9ýÚ¦WÆé§O¨ýu1ñWÓÿãÒéGœ/÷Ó­ycǸWù9ó’ü>tçC·ß£—¼q/¿?ðú¶$cßÐV"ñÞÐßc¿'qŽòëI^úMz ™I.þž„剕àšòD-uë“>åãÖÇ)ÿˆ`“D¸GÂì‰wðÛ#Ú¿!šÿ^‰Ø¿â |Ž·Òûn!ö`sŸîlç9ú—%Púž„¾ÙßÐö/é¯Ü=¢ô3&âZ,7ÿ†HlyMý˜€Üú ¦ëÕ¯ÿNýUy1~ÞüõÀëñ/ïMÞ{³ºÌïaðæ·n'%Ù@KždÖ•,ˆ`zTI`H$RŽÐÖÓdly] ¿S?êyl”ߌ"—ìºí½7ÿÁóUñ¤žòZÉXâ÷úÏ&±lô­þÍõ[íý¿„ ÓOl»zíDîËídŸs‘œâ\Ísã‡Ýä;è7L¶ßºDcÌêVí8³õ÷Æq3ÞMýÚôlûy$£ˆÏ„{ã\ê×Ì[^}¿w’EãÒ¼‘¬ßº@+A9ù³$b% ›®·&ìJ$;t2 |G˜»¦»£¼nù¬DãÔx;ÁÌ$¾‰`$ÿÑóæûíÍ¿{kü…(bûû½:£†PÎýüAØú#—ó£ú Ö§[_¯öÆŸÓÞýþµKgfòÏÕRýëSDƒÜ¯%=¯|žŽÕë¿Þs†ß^Þ|æµo™¿lýÍ|5ºNûÿ*t2„Ýsé Þ}cËïÁ—\¼ûIÀ”ËM'„ŽdQî«N&öóWõvÊ;’|8ýÒn^}¤]¸|†`¸½F:˜{òwŸ»ó<»:GÛv º?X·'Á3Q«øH:—» ¥“ÿ#]Oâ.º$¯\è×Sî¿‹;ýº[NK6Ïö{Iwµéu曟%š²ô‹J2‹7®ÑŽ .ßp^âv1®ÛO㪻gœwúm4óÒ­“±v×In$†@~ï¾Þšä½„Ô¬‘v$°=:Nw$uÛc£|¶Ý†kÚ\>ÇúgB%—Gè`<‰l$õÖÈ+¥ÞóH”6¿·˨ÿ©xs¿§«x k'êÆê«SnùÂééÌšöÜù|‹kˆ¡GTÜžj\9á½ñ4‡$8ñ‹æÀÜ#d;Þ½öä?\±‰ú9py½yCüÍ|`îÝ/åí­`üÐ:™M¢1ñ"1eo­v¯U˜G@»t2’ÞhmsC'ãÕ§YË5åIJèÄwײ­dã­ÅRz êšµìƒÙ".§G0#‚s%co ß´ç=’vW÷°ÿ­ºÕÎìwêõ(·ôG)—£«jÜQýœqTÚ‹û™×;Ú™WÔJ€yÝ~ÃñãÄæ§t3A÷qÝ”¿S¾Qmk«Ó±ó¢GÜ]ŒÓÞ¿Ì× àKCŠ‘˜l>CBˆŽdשÏWéd¨>^~ª=ŒÄ£$™­ú8íQêÓ#´3Üc$³½Ó•ø„Åí¹›ˆB›¿«£éXœô¥ý< #J}æq¼¯u” 1ÌÀšóÆ÷ž|ÂéÅߣ³Ù´Ê»ƒh'?Žçôo¼šh€ô¢Qù‰¿!“ïn‚£z쯽ù­SßÍùïG×ÉxDÑ{³²D*ñÜû­$d$摵çÓKkm´!†¯ÐɈ; òsë $–tÔý¡ßî¥ò*‚ÁŽ}0½çAùz’›§#²íèY©|†’­W¾®ŽÆIOÜ5ô‰¥¤3 –qñxwÿLåÛ"ÛTO+i¯vÛK†åw~^¯!§|îó´åwÊãPû÷kx¥ö­T¸ûßÂþqíÍ;#+³á¼“/üögLYiqê÷C à¿‘1Ñt% ˜7¿¸‰E¹6GB¥×+ÿ[÷ÉŒm¯Ä£ ûú{Œ•pÝÑq»| ¡Àyž„ד‚Ù•žÓ< ƒô`ïM¼ÌýölÚ÷¢Û÷Ñîp'»qc§¼ÍÄé=_iï:›îós\Ö(’Ýûüцóó´ýWú·Úÿ•iûœ½ñ ž§#éô¸F§?wÛÏÖo0?”ùÕ[1õû!H¨oÜ{ˆ¦§3)’‰õÛß=WÒ•| ì±quoÐÉxõéY£ŒÊ×Ó‰ŒÒ+ùSyÁˆ„É Õí­-ßK0äéIØ€/)¤|Iyd½Rü=ºn?¯¼KöHãÕiׇº”þɯWž òº‡ôFíZˆÓ¤gI”û—G4åwºدvŽÛŽB4ÒN¼r±ç$ENí<ˆZOç·e%æÎ‹£y˶;Õg²óÕD2kX!å8¡ãºkÑc[  „³+éíI߸«‰/ål$ÃÁšæ.ŒWÞQýM{nàK0JÂÎåíÌP"mùíšýHb½wß‹×^›ù9:—^úÀtqžó@Ç1_¶IùoÙS¯·¸”þLù¹Ä38ûÍ%k%×i?˜ça÷>MÿPgÑuúßh½pèr4D#á rH¹Ly`Ó£y¤7~zó·zéSz£ùï³ó_O'óÃ̪ҽDÃksxÑÀäkÓ—û¼µQÏZc¤“Q§šzõsòÛ-ép½L{)É)8íë­½ÂÑÉ®·–½E0žŽkOy\É0˜ü(üʼnçÖ?¢¿¯ÅËב¤Wød°E(k¨:“&Ÿwr¿˜z÷Ê'ñT½dÉŒu#ÝXÓžÎýrÔÞw‘.ô8±:-¢itÙo‰ÐÓÍpy†'tæ%À·{â«úR¸‡vÞ²ÏcNþ ëýt2À·%š‘PC"ÐáK41v%н:S/¿‘„åID»$:)ïƒ&„¶ü#‚éí¿Ø$˜^qžk íïè´Ïbq­ÀÂ6¡¸D” Ê-Ï®LàL,[÷ET‚³ñ™x¼z•òŽt:ç¡êßëŸN|ÛφýéÃIo£_Ë  ÇƒêŸ‹`òÛ²úé\½øhŸ³3_õæ¹ÿW³O¨oÒoA4j~#¿"À ­dÐ]Ý©“±õé­%7ÄàI*Ü.Nz®$'„ðF‚QäbËÆ’«K8kí] Œkýx6¯¼= ´ûÅ´Oqm¹Œ[N•'´ñº÷Qý‡éÆ6¤ôëÅ:/žî¦WïÎssŸ«gÆ…êÇD3êwžÕ—Þ=ÛÌG@œG'?5ðüeë=šw¼yÐ̇veÄ+ß¿O&š}ñ}‰¦G ^~&Ø/QìÔÉX Ç%2©Õדp˜v¯9{ˆ`°_ÃÏ“óC§½FVCѫϖÿ܆»í»CDzÀ·Úr ¾D?¸„5"E,{ýƒü÷”g«ü¬Ã±ýêŸ×_œçe˳ٟD³«ÿu½þ‹èœmÖ!€Ñ¾H½œòŒæ»‚¢Æ³íÏùªäínéd~œ}2¡J,!| ¢±2²î@/=›.—#»wëd’ÌHÇÒµŽa¿.ù:媄ZÖž©ýìóðt>±¾‡`¼µì†HMx×ZˆÂݵ¯=˜X:äÒœÕfË(á|W¯üû_¢v{DÒu÷äCn“Ï þŠäfž+Û‘.F² =gC4[ýtnÊÃáÝ“(eef‰†û_Ðã\Í#hÇ1ßoã7ºb;.M¸§¿LÌ’_ÔD|#¢¡ô¢Ù“^Ü!QÜ«“1õõ$œòû >½}>ÝpS)/Ÿ®lÛ‹ï¿GŒw²ÀÖý¶\ü+л?‡[K£“r¬Â< œòÚòpûÂÈé÷î¿Û•ôЖ»iÁiË®KÅo g ³n]ý f<Ûçkž_oMÉÆoðÂÙ5áÝ“¶tŠÐù÷¬ÌJy8ßÁx—ø[VioÑÉXë2Hû>îz‡—Lî–h€÷'šÞÚdš7?KP¡-_)Ͻ:#yŒÖj=ÉÆ“-‘ÙðR"+ùÝ~f‹`Fkݶ>*ܬåß“þº#ÿæyÙô uQöl6nG冚_!‚^<ŸÉaµñzùÝëJý½|r”v $Eé«4ÏÜžÎ8(ùŒò·á vâçËéuÈØRo\X°ὓʋaÏÊEhËï•g×Ê…¿·òr¯NF‘¡!]ïG2=¢ùZ Ð'š=ûflzJÂàûc[¾‘D0ÒÉxk¨½úÿ þÝ•ØÌš+K|®îÚéHðÛ‡÷ í" zð=‰Ó»Tÿ"QêÿÚ}+þóùKþæ…ׄ›ò=Ú-Jñ‹Ÿ{„ÃíoŸ»{Ò€CŒÑ¦ÛyÞ=¢Ù££aÉ»W^î½ñeÉbë šv|•nÛ?£ü çno¾Ïðîéd Ûó×ûX—ñš¶%ñ¿•h€V2Øýf¿G2tŽW$¯;u2»­Ê¨<õ\J¯Gj C¬ÊÐ~†<§_Ú98í¶‘ÿHãHóœ;’¦+ù´ýƒuP³³¿…êÏùŠ»Gwáõ—¡®c&׳j¹ù¾—å¾t^r›¨rr·ÊMá®)´í¨t6;ˆfÔ/Ty͸)éuHY­LMÿé:Ëý\/S?÷½}q½qêÍs{t8nçM5Ž:óJoÞê阾’þþÈ{êh쬧SñÒèKL°éP~=‰`—N†Òí­Ñz:•¿#!ÁI§!ÑAZžK'}lø·fÏÙS¼v|7Áðóç|çV"³:—ž„ëIÀŠ@ÄÏ×ß;)¨„±“@?tú€å‡ü§Âöt lôÅLò[k<5>èy&,OÀé=_¯ÿ™þ¦ˆ¹Óo7 É„»gùQ;Z]ãÖY…½ynk~pWp€f¾ûš}2VÇôÀëñ/¶/ ðõ:š&~Gr¸ÇÊÌ“œ¬Î¢äÿF̨<ñX*'‡K:f•Ï&³§+oé„FkÍMùwê`Jùíóåpó¼‡á#«±à‹#éuuN¸WþÕ©WGaÓ5õ“ßÕ>—°cÿLÏuÈháx±×>¼è)´' ¸í`ÊߌK“ÿÊícú}þjÜõƉ7ΠÇá½ûfzVf ™Ó|²¥c‘xM|øñ1IûÛûyÞ¢rÿ0:~ãï!š¯ÕÑŒˆ¤+q;÷[‚°÷«òxÁ#t2‰¦·fÜ ·Dåîì7ùwËcýòï$8íÙ#ˆ]áFòr­ÆÌ󀻯f$Á»ûûy w$QIÈ‘àA¿¿E¢á5Ö‘Äc%O¢¿HbÝïÃì”ø ÙYIÞ.‘Êo‹ HaO Vgo ò_)?Oç`u6D Š¿>ŸËò}!·gñçú—x%¾t»säÚür}T>”Bb§~‘úM£Câçèùoì»±g£u­ãìóöú»íŸÜ;ý_æuúò»M¦ß1ÉÈü4›üìþ’2?™tz:5uÆ¿MÏ‹ï_)%½^'#$Ã.ÄZI‡u4âïÍp­Ñ{£‡Žл_ò³é˜ü™d¬å‘ —Ç–£+ÉØüŒäeI¤·/Æ~oddmSü’nÀ¦äØX‘ÅNº½ü¼ßƒóœÄ-×@‘‹M·»¯ÅäÇÖXE2ŸK¾ÑÜŸü’n@ÌùÄØ]#BŽ_Ü )| ˆ«üNñ'ríï6ý\°®›?M¹S=m;{íÃdÿÔëßynJ'"MÓoJržS°Ë8@íw–ä‹kç¸2Ìø¡z¬&ŸÑ™…Þ<ÄõÛšwlz]ŒIß-ϯA'ãžV‹ºF>"šFgM4ö wÞè‘4k–6}¾/öóW“HlmŸ'ÑHþ®ÄCåa¢Pû‚¨£}1@Õ}mŒÓžJ²ä犓~—Xè èüìš~ïl±ž„]Ò ðO3vt,…dÒý-A¤ú…,á·ä‘ ELÈá1»Ö? "ñ‡ü‚ ¡¾°B@È÷G‡€j{8þÈ~§Ýã(þ ½ü³Ð‘ÚþÆ÷ú%þFGbãyãݤÏá{¬Ì\¿I¿÷pÊçÌWwédLúìzíãYÅþ°$Ó¸Áœ…:ÁôˆÆêT”Djã…V2ïÒk?çëíü·:™Qz,ù[ÉÄ[‹íÀ=ûbÔ}6=Þ³¾íäWéô$]+iE.åƒÎgÓj,ßgu.V2•TÄut<ªÜHn_mµCñƒã78M¨ÑóCû©ßT""¿)§% ª{ÈíÒ´CÐ.k%ç<7•Åw÷ÕX]P/=@÷ò7:&%n·^|oœ‘¿gefW2š³Ìz󌇦|÷êdÔ ‡“>[.cž7¾{’ôÙX]7vt5¨obK4¼„øDÓ•ø£/AËý= ÞÓaH|+Ñßme"᜿“Ÿ]ƒmÖt5U‘Àx_Œ• < Ñú%^têËϦÄÛôvYmq}f¸Vc# :¿[BŠÆïÄ/DñŸ?…(bñK=Æ^‰ÅúõýBNgOçc‰KÂchr#t{F WÏFC”öyÛçLúv…ƒ¤’÷ê_kçWú ‡0›p¯¿wæ&¶2kú)¿8J²r›ïÅ€Ú;’Τ7™ô”D(ßÁŒÖÌm½{¤á ç'/–rÖ¥¯>€²‹^ü,‘[C™ uzE§’'Z&—ÈáùLz¾ÕYhýŽŽ¥G4ý–tØ Œu<ðãû“ýÜž°¿çö³ÍdŸMß63^¼þÖô?£spu†¦¿2±ôò³Vfvü{ûäÔ<ãÔ§üNùÛx{u2ÁÄçy±”ÏiŸR'ÃßʶûeFdc­ ¶t4 ’E$ž$Ñ#Š=Vf*~ÇÞœ%-ORb°¤ÒÓé°„)ï{1½ýÍZ.µ(^q­Î‡ê_â™r!t~wÚµüÞ#®‡-o öóÒ·ñ{’mÈ;tü5ÃÊÁÄ’ dµÖ^5Ï, “Å'=ÝüÒÎQÕƒî§t@é(]=ï^9u{…Rõ»ø›³ÌZ]– î^^42î†hT?2÷¹ÏýëGkíÅãL­xèöw­Ìö®dpùFóŽ%™·èd¼védìþ¾ïžd€*I‰>áx_ |¢Z¢é¾±áH,Q“‚’:÷o®‘îÕÉ “'¿R?ªGc5çä_¬®¸½#º[0ùt׌­Î‡Û×H¬¶½=bi¬}‚é}ï¦!;´r<‹*?[¥…z!€º¥Zm…¼”Õ’E!!^ÈfÎ.\ÿ™­”ÀþÙÄÏn˜3áÌ™ˆ.¹¹/9ÞÅäŸêçZÙöŒ&\ÅG%9«LâKû–ûCûœ<¢Q„`ú1¨¿6Ï›ÒW:«óáû¹?{ý3‡7Vf òîÕÉšü9}xèùߥ“çÓžF'ÓX‰~ï$´§Þ6Dƒ}D#VQ[:šî››ßøâ†öþ‘µ‡G@JÂG+4ûdĵù›ü<ÉßJ8°ù³¤¶Ôö-íå¤×Ó‘t­o:Ö:E2Åýô»Ä°A0»u,^|Z{ö$áÞý+šSŒY’È%ÿ¾2Ìú¼¿†Ã£èhšCLµ?šø1.äi×ÖgÄuI/š?¹0é9©çgÝàè\:~õ<³…ó¼¼þ4ÑôÎ:S/6ïy£%ï$Ö•¸d<ÿ²2ƒ~޽• «óiˆÃËÆá=+-j…D\CX?¼NhI†Ý{ˆÆZŸÉDÿ5D£t,V–û9\âG?¿Fòb«'=&O'ãé\¬$×%Œ¹%B%ÙûÉÍ“àÜ5wvAéG?½F£ô¶&ï„oÖèÁíÃlgÇÞg£÷±$"HÃ[^ Lò<æâ—…’ IDATH<L(-Á¤äoî§ü•_§ß%¾Æ ºý±èúu ˆŸïÑ”øþ,ãÍ%K½ôèþîx‰Úʬ)çÀʬÿ4þìøqǻӽù¬™=‚‘ßD P´%š÷ Ÿðûæ‡óæ¿C²°ÖÍZ'K2K½¿±1ù¹ÄDå·ºpúdUÖœ²ÌòHòãrÂɬK<ƒô‡:˜ìïL„« èÉÈ ÎÔÓ%8~Aí¤@%™°²@Ö•QHþ5\üJ§²ÓN¸:éÁñ—ò¨øõÅ£êÓ# "»>¡tž¯ qžó^¢?I¯¿ÉÞêN6úñÐÊ,t¬ÌL»«p;Ä6|‹x¾Z'3›v˜¡æ‡!yƒ÷ˆ†›c¿=ëˆO `¢qOsFŸh«‹À0¾„ÃøySü>’P:åa‰«‘ØŒâàJù÷$@õ‚3õñ†%R/½­pkEZ ·GD ‘X \Ÿ~Ì;å•¢ßKx¬V\òû)µM8¥dϧô¼…$Š›Ãëïù>òã/ñ§ê¿œ’ÿrÒþ9§'~¾?°ÿ¤Ó?Ûø'[nòOB\µ]Šζ§&>~.æôçÞ>Û?\ p¢‰äoöÐxD'˜ô¼ñ3mÛ¤¿sü[‚RdcÊ/¿ÛùàŒK4vÉ–â=èú6:™žŽæÕø‹ºãBü¡sš3¹½5Z%)P¼æ~„´’‘‘”$Ã’ ·’ ‡;åâü-ixkÍÖ:OÖŒ¹>M»˜L©×^‚aÉ‹ïm»ENw6ýBž+åǧüÊýJ·J—ÚƒëGÖQi *™¬|FŠr¾ž)f%GT’™ ¬‰B€<ÐÓ¼• „ü’Þ¬K]áœRø€eMþe]²kýÉõFÊQÊÙ!OO¾šÁdS£ü£ýɸ¡>?~î¢Y_¹ÿhÉʦ_ºdîèæº+qZÊÇîÒŽÇ=+Šœ¤»õˆ§”›âËx)õtt2ÖªŒã=èz§}2ùÿÁlúI"ß:ûìn C#1Èý߯c‰IÒçµÌ{Öd9Ü#œžßJv³n¯á¾Têê8¬„ãH ÝoÊ«$ZJ×;{,Â)ï¹Îé::¡jÝÅg‰EC4áÄþO‚"—¥¹ ÚøHU6cf&oüÿRâÏåþy擟^C<]ÂÉÖi–p¬'Mÿ4hèþb¿gSüþs*ý‡Oo6Ÿ¯ß¿)=î×€ßÐýœwžo¼ï˨•  4ôæø—ü,¡Øü©|{WdÊ}Ž.¦1>‘ðÇ]ï´O&ÿßµ2Ûò3¹ôÜp?ÑŒ$#±vã+ Ij¼–ùVLCHÙ”ô‰4¬.ÃÁHÒc‰²H@ÖêÄ#’Þý6¥')“ K¬=2R[hÓ-„“ï÷!Yuq{7K„ü{ò Ô% -‘Z—AD ñD2„&N‡‰‚ã—ôe¾ |£_ò›óÄ’HHͯO8‹I?Ç‹â"ë¦HW5%¿&Ûozº~.Ôoì©ÇêDßï¶ßòWé8ãÏ]YZ'S”ÿ@³’áÍ;÷Ч+î_Òwæ§žUÙA2@y×bÇ߸ ‰Æ=)à-Dc$KÓFü®Äà­yÂHL= %¢+±4ñ)ý†Mú–X`üž¤S$#qzéõ&R:ìºgÑý±4¯M7?FK.¾¯"ÄRN_&bÉϯù΋ì/)áˆîbrˆådˆÅÞ/:”SMo¤Sit8ñ­NÇTŸpf“>ýž­äbi'¶ºË§?C·—hŠÍ>_r k3øãź"¡[‰Ý0ã­<iH:{‘ó·$³¥“¹ŸóñVLÌø³:™r?´k˳eU&÷=èz׳ËÊ ±ão܆€Þ‹h8<´„b­¸¬]úÐÊlÖ.(ÞH’ZɬgUf‰I`h%«sázp»4’æ=t;O”?W>{¬äK÷ON>*Ýíº?šçlÏøŠ6þ ´$κš$ýúƒ²îRÏ[†XԘ‡ij?:„ƒ6>“g•fILÎHG£ÊK~Þo³R˜ª?É;?_E–žŽ…úè>µÃž%p@õ£¡õ$L¿D?{¬ÌJ~0ûø¤\¹½<ëRìxü[]oweµ¼SÉJ`Š@L}ÔZ5¥×•ðÈß#Oâd«Á…ã9åa‚)åç}/œ¾#ù¢ ‰Ïž–ÜêhRù«FvÈW‰>…W]È Ñ‰,äOÍÐq4V^;Åêxë6/ý¡ŽèÔ#JÏɧîóÑÏ¿içöybn¦ÿH™u¸7ž½ñ;ÑýTþ–xPý–(¤<€oçéd'“ÞpüK¸Y‘àü™x\«TI—Ë%õ•ùÉÑÅØœ]‰¯¾‹þm«´·MNÇ®mzöëÅÛ²)ÞJ0ÎÚïL7>´ÄÄVe|šµ•Ä+ëwÖÊ™€É5ÞH³Pùà•Oî‡ù½“^ïL«;‰ž_‘l%Ñ Ï“Èt)K• æ2±Uò'b)=…Š!šb…f⻄c š@ŠŽ:Üæo‰¨Ñá°®)T¿êç¼ï‡û‡%𿹉ßÓ/\ݽh¸Ÿ* ß)Ðö'K–Œ,!ð)Òvç¿wóê¤gW2F++C ПçÌ"‡pª1€`+1Š_&ÌŸï/ûeŒU H&¢– “ AÇ<*¢Y©?¢‘çîÍ"v‰ï‘-åÏ+ ÍJÁˆÜ¹Ÿþ¸ ædÔñhO°+!Í~Sîf>Bu½y¨!ŸÇ9œ!K”ºþ’‰bEö5DÃ: J –lî&h‰D®’\<¢Ý/á‘”ôÌš'K@¼fì®ÉR:Fé‹Rö™ò°h×|­DçíhƒÒ›L~–8†Ã]NNONóu‰É¶—o¿™%muÆXv£ KäÉ?çv.ûQHGœø.±LѰ;—çLù1ÌùŸ®ÿYûåþ†`NTÞa9Vs­Uš¤{¶ù•v5'-XMWgHDC:5õÜåEŽ?ëxÍIhǃ•à»ãÇ«éö¬Å®N¶7nPÃAá[+*žN†ë©æ+˜ò˜ò1•yQþyÌõx’Az!¢A~ñÜC8¬ƒZÝÌJáo% O4ÍZ'åË’ÌÈÊ̵—§ô›µV+i9¿—rçt—…ND&}“žúÒéN<™ûl¹”ÄåÌHG䌊gȪ³ï¥¤Çû_ÈŠ,f ™O#Þô¯UÒk­Äê>–eßJK,æ$"’ô‚X0?Ë+²ëûŠ?×ûmü.ñ aµ'´ûpšøTŸ…öáH}%~j;€î'©Ý¢)ÏÕ#WŠ—ï×ûgˆè9¿ÉÜïê6¬doÇ41xVfbÕi‰W,mÍ+½•^a÷;̸õtÄšÐk;Ð}R®]'¤e$" Oo$C4Å/À^¢‘Æ;áçÏ"æq(‰CîI´æYòa Ĥ·¥“ápu,y™üžË¢$8 Åã5òh~_æl*.ÏbÒãûAõßC0ÖÍõ«gI³’¿ Iº…⟌D.æ¬+oßJ!„µCäß"K4]B ~|xæ'“—oT´õ©' øñ]¢aÂÌÏO‘& Ÿ¿" –УîÞÙfnÿšñ­úÛÒ¿¿Œgo<ÅÖêwÔß­“¥p«“áùƒ‰¨G<_é\H'£–‚9ɽÞdöº†xFDSüÖõˆÐ¾H@J×êîZë$ɡ緒%/ÝFƒŸ¯µab‰¼Ä7/”Æï”ÏÛ_ ~E0ÞÑÁ|±¨½Ï $ªÕÄSåÈ/˜Éž9Ç/ÇÚ“ÃHèvÿKÙ)_^T©bvŒÝçÂ:–!±d¿Ö­ø÷ï=ÙÛ7£ü€ÎŸ Ä!–Hå±D&~>¹ ¹Ÿ‘ÇUù"h&Ѩúw¨ýÀ=€úÜ·P|¯¯f4º3NËøèŒC»RPÎZ¥Gå/þ¨ÇϽ֫jþàzuˆ§Äg –gUfÝ^'™•fêû{ÄsáXW PuÝ/læûø ÎvêžDÑ#ÐïÍÎ_IŸÓ…–œº:•hÒ%—‰MI$Æß¬M“„#·²ê"×%#qΗj| ˆi+=‘xgÔï­T ×uó &5wvOÆP…­Ä†VW“¼`*Á”‰ÞÛé/ý…ü{‰¥=µy_ùF:ÿl5TwBW§cãoêl é%ÿ¥[~M4å‹¢Ÿ' KØ–ÐQû«èü,‘wufhtÐå°ãW"¤†:ÔøL ^ú¬ëíêXh~àK<%¾!˜-«2#˜<êz<ÉL$ˆ¬}À}„±nC4öTâ•ü®¤Ÿh¬dÓ“<”ŽZRç×!OgãêPrúBjJWÅåIÒÙ$˜€m‚nßá~ˆ`Ò™K:J‡2úô¹ßÉ7è/9ª¥”XÚ›¿—Âg‹•ûWÔú¡ÞÏ;ßÝÿá`Ò:’RžP㳎fH ¦¼Šp‚ŸO{öˆ‡ë+:µÝÆ/º&Kl9ÙWcÛ#ÀM~Àå”ëÒíèdeÕ5;ýÈôâó#Ðýn2ãÊZWª³Ì,YPz[: ô·vÜÍxçôy¾ñt½j^¢ò¼ÅªÌêb9b{Ðõø}2¥ƒjw/áèët6öՈΧúIâ°DÃVg-Y°äQÂa$&IÏ‘hÄmìà‰­‘hˆ˜ØXãû›ôˆ„¶¦!ª|Ÿv\>Ü$ñ­Djήât" &!˜ŽÄ™` ±…Ü~ÍiɧH¦HèùyXÃÜ%ˆÙø)}È.‚‚)¯-ÿˆP¼ðøìw‰Ë!¶†¼L~ÃöR€°E4Aõ½†Ù7C:ßögNããߌW«“‘tTz³ŽßäoÒßÒÙ(®!pzÐù[’é틱Äö ëñ/™ü°î^„óZýÞ¾ù½ž$µŽ†‰ÆÓÑôˆÆZul„»öò&¾¤'ŸFGC’×˳Vƒ¤ãHn…dl½-‘xƒD0¯ÔžÞûÒa¹5ÿâÏák¨³VIWˆ¦LLTlðï,éYIŽ­Àˆ`øû,=ÂéùYçR¬À(_–øc‡8bC l=ú~Wgc'"ª6ÜX©™úööɰ¿.5êöá}4òÜ™TPt3B6šÜM?Z©Ø}3{¬Ì$=& &{¢ôîÑÉðøï®ŒÐxï…ÃÄýÞµ–µ„bWVl¸”:Ÿ]ߌd6]L4uÀ@ зR3¿×³ÑЍ…†hÊï 7zvH„âIÁ®Ñºé™û»V.Fb+kÒ·‘ÀH‚ñÈ¥K$f ÷)¤¸=š:÷{;÷#I´Æ9oôKåo¬’BÊ_N€ú‚%Dònu2…` ÑH?´:‰žÕØ6¤çÖ·:#ÂȆûäTÿJáÅŸÆDf K§_‰pY;:!šá’ó—ç]Ÿ§ü®ú7^¤ÿ($õkw<ÁŒèñ`òcÔùK…{:& K ^=l¸"” ëÕÍKЉ`Jù8õ>®ïwO2€‘\Q޴Ѽ1˼„Ñ(Él@8´®Æ=-¾QGc ÆHžµ‡Ü/’ÛËó}ì6V/†tšô ËíJ`$Y)£!K ²¡ìƒ¡|¹zÖc*ß¹ú;ùÎKŒ@Xµ¤[Ò™×îk9ñ’„}ë2>{‹ F$tk¥e‰§9͸Hþáâ(DcEÊ3²³ûZ˜@¶t.œ¿G`= ßÏõƒ©¿%4©Ÿ¼h`òKû‹XGÀÏ9çXŸc•´©ß4:¾ì*Ý ªÀ4²2›j¿rIf2ñÕxÉ¿ïÖÉì ëßšg\â!R‘òŒN[.és½©<ºÞç%Œ[$&ò—¸dcÜ¡g·UI {u4V‚Ø#a‰ˆt(ª=,a@ßߥ'ùó©ËJâ2é[‰Í ‰ÈHY#Ïù–5p æþÆ%Éɯ¿x™$ÛP'#±õÎk¿Ð(gFùÞ œëVYG¬²²Ûì;éX¡íÕ‘ØûíiÎV‡ÔÖgÃjÍÓÙøD3¿NT>î ÑóùômÕo û/AskïEí‘ø/|›ì$—3²èì±ì_Ö3f,1ï…u †`DgÂkÕ–pìNù–xô—#>Ñ0¡ð¾WÒì›±áå¤C<öþ‘&zícüb…¦‰ˆÚA^Ü#¢%äçc]˜û…GâM¿ Ug(ý­Õx6éHúeÜÚñDñy«iÏ=:›Þ œ,î²*«„ØîìwtO*=“σ®ok]¦Þ¸­ÿnâqˆ@ÝgÓ;)`H4p$)_@l¸”×H¥ü$¹”û~™ÐDBóe.ïhŸMYs6’_£³a‰ UÂãÓ”•ëX‘5CDÒóC$ÖJ2QI°"ñj÷LSâùX~”S”¥{vÖ[‚): K<Ê?wÓôA£òôöÍLÕÏñ›ïÁ‡î wßÍäYÕÍþý÷M0ý 8Dô‰D…îgõ§ôÕxB+Ý_¾‰š¯Ê¿§“4¹^8|’éÕdz*Sã­¨Øô’ D2¼&¬§ãÙätî¶BYaɤ±Þ€~Ó«7?•ßÛ—"›Úx¸!Ùx’§W¾Cñ,)”r³dCñV@KvAç³ÁØïÁ¼Ä6={T¯}ì¼A¿»#é3Á˜ŠÏõ…É×Õ¯÷ùžL|¼ lýnɦ¤3ÒÙÁ KN…h Ih ÆJ8ÄàHž$µ—dÊN#Ѩôˆ0X‚ƒuå~O£ FY}­æôdYC_µ`Äf©u5g‘¡ ­d=#æõö•Xb(r‘{ºö»û`B?>‰µs !¶÷[+¯{u2©;´£ü¾¶þay;åãöoˆfÄêŒãsû/NzŠ”¢=»Nú—ô{«›¡ñX$ê/Š ’qu2Öåñ˜Ó)VªhÓ±ÄÀémZ•™ù%Úû‘ý þ4×ü­Ž¦‰? &¸]ﮓÙE Ôa{Ä6½ôêš³) ä/áŽEé¹Vb„k|&‘pŠ$MzÆe I$&,{¤x=‰×\]‚Ññû*Á°jýÅJHž‡ø‰’ß—â2!ÌS]ã?‚ñã{S6FbÃjluê;Б u2R~‡`Jzò|ðM¢1RÊg¿§CD“^4NýL{©“ÌYoåû@$¤üìx0ýY&þì[™ÑxU:^i°ãÝ’Hö‹ÒŸIFà¯xp¹9:|ê…£ú‚"P/¾%4«óùîIÆK€C¤‚ â±é•,ÙôˆFÊ“I!æÍ›?§×X‰±BÕÉ(IŠ_P‰§Œ!K(…ŒÓ芘Ì<‚É~9[Ì!>[Œý¡èˆÌ¾~ñ7kÓ¾5“KZúi¿_R$âÀ÷·éö¤K0H· ãG~ž2q3ñ”þØÖ£I>1¤ß·t2:~%]ÞîMw‰&úD#¿{DÃûhÔþõ\SøÂº›òBCéÿVG£¬©0ë~Äãm¡ú«ûr(ícH†—’ë¯ì—3›qgW ™ðJÌïå>þ=ªç¨÷Åp~º_ê¥p8åàöpÊù ëû9…ù-®%šÉñwâ»å¬×oÊ·ºOâð$Z#U–õ‰«ìôwH†ócɵ„_âk†_xâf+2‡`äø}M0úû1e'¿ø Ñd×[“G-“ËÒÙ¹ß<jï!‘`@0ù~{v™Õ5ì'€zçß;=yÑX«²z œ~@~щ׶/™ÊßèháLžuÆÏc>Ñï+ï{Ò­ý«µÔki43Ðì{ar°:Ì"°Œ"3>„dJ{Á”~è‘ •·ÿtŸÍŸÃËüÁý‹ËouB0ù‚±:éGºÞõ{2U"ÊaYØð¿! & ÇB]+4"šä—ýY2÷¬È&ÇßHâ'«ï>»vlï Míô—zd¢ñÖ–»DCdĺšÐ:>=מ¢[Óñüõx~€÷¿X«˜´UwìÏEù/÷ÑsjÖÀï#˜e1„á ‡w †î—‰´)Úø#MêŸ}¢"(„ç~uö—£ÃéìëY¤Y²ã·ß×Ñ+:¿š¾Ä«ã ՛Ȧô§¹öWë²N@—x”ŽÇ7=¢ ’)íÍ: øé4º!3?Øfc… 3ôÆ™gl=F#ýèA×»’ /e -ûƒ>ð?BÇã¦oãÏ2 ø{±ºÖ „Ei%qˆ„ ñd͔­u‰’¸ø>@YÉJÊCº^B³ñE"ôÒ3§1W‚ÉÅ¥vQ:&–ÿ’×Üål±$1/ÅoÝršrgç~o§ù^‚)gqY‚°ÄäIüë ¾W‰Ï= IDAT“^ôîïè<Üò1ñqùH «;åÛø=¢aë¼F:×êlõŸ—Õi)¢;µû¬ü~<›þœÝ' çøPÄ£t/‘8vÊÃü·kõ&åôâ+¢©c­£´©þÆß¬Z‰Š%6–¸„dœøÊ/éÃWàREù&œ%Áe'ÿ–-Æ:ƒô‚¨áêl1TIúÂk÷B ⇿ӟ%âvg:ÞL0žUW÷‹šVç`ÒkˆdcÉ]$úÚZ•±1DC +‹G4=B²íÝ©´¯ýç&¯LƘþ<¼æp+ÁR€‘à‰D\ˆñ#’nÔ’Ì|@$Ã÷ï±*c‚+$$+"† ì¾E~†`lþÜ~™oøeÌÉ!¯ôoI²²¦­$l¸Xd¢À_`dW‘ƒ•”¬•Y³VÌÄbHˆ÷ÉL@9+ɳs/ÌLõ‰­+ñ¦¹Z•1ሤ³Jz(á1¿hê>†J0¡œb[OEb*þ¾ÄtJò~"é„C‡Ã„÷öÁ‚‰5¾EÜ^?#>E,ë5·ÃRvÌ‹{É¿‡ž{šÈc‰ÒïY¸äöŽ+_R™o/Kzñ¼ ÿžÂ¯9|yÙA4“Otìb…9Û m<Ìõ”æl½ˆµîüçñ“CkÌ/€…~b1ñ&'=\ØÏ_Ä´ãèŒg*‡·ba G ÷çÁÀÄß"‡ì¸üº¾Ù>¥Y\¾åÝ?"‘D¼òEç~ñ‹nÆžÐ#–|ŠŸ&jkeæ®3áNæ•:ßÏ$S¬Ê‚®oÑ‘„tvÛ€5(ÝJ 7:˜‹$-$s>’h’P“k¿obw»§)¿ÅÏÄZߪƒ™ÕNtn¸¶þ‘×bÛSÒC•È1ÄL4W\qͳàŠeޏ¾^óû>"†ˆˆk&”ü☖¤3zZé ùçiIº«iÉßgI¤¦%Ý–l½µ”ôÎçÿ|–þADó F‡pŠNË#~•´"šÕÆ£Ÿôÿ:uö÷Ád¿«“ A¨ø@%ÕÁœô#ê1‘ãÉ} ûì ýîêhFá茴lü¯ )σ®wÛñ7‰XÒaÿHHîSG‘¨Úr—pñK_v•\$c¶NY™ ‡H†u2E"q…T©0ÕC$Í…Ê[ÜP&–˜Ó­n-5çNd0®¼p0ñAMÖß~“¾%îù‚LþFý²èðfgÔù[ ½èd¼“ ¹´ÿŒÛzMä"îrÍ“ÜëzÅ2-¸­W,ˆ¸Åk™p+±dRÉdæÑ’™l>^Èk@0Šˆ(½· —çA×»]¦HÃI4,AlÅÛáv­ÊJ‡ðï ðËSˆhˆFH$°D"¿{Vfe-×HÊNP:%™ K,D0üB³K~i"c7Làúeç~ÀÔêdê>—œ ³~J/ ¢Sqü²óýL:n–=§§öƒ&ù°Vïû0†€”ŽemýNF^4|5"fêqÀ“2{ޏ½Vœ"n¸!ép" Ds ‘MvZp¾dMÖᜟs{^€ð”t:ó \žÓK@ˆRé|ªÄ’¬Øi£í‹ñgÆ%nÛ^öùLU'æê¼èD‡²âdã®ou¼8ä!ÄoËÄoV4:R%Ñ󊑌¤¯ö©ØûQËUÊgÂÂñ¨£ƒq †Òk¦½Lù¬NëA×7;…Ð/‘|ǯ;HoD8UG¢ÓSJQþ]$Û…¬ÍˆhÀ~e=BÐ’ ê}ÄT$ ÒɈ$¦¬ÁxmÚU$KÚéd»ßeÖþ• ‡Ü<Ðæ\Î9 ùbu.0߀/.ðfB©ÇÊK;êpŸ`Œ•WtÒ`Oo¶þ½:™¢4ÏÏïº\±<¥%²åéŠk&›ëzq7DÔßãzm‰Äq`ü±.]æfOW\²Ž&½øÑ,K"˜åKj³åKÖ)}A&› ¢áïÓý<™XJ»NLO=e{Á/÷Û²rgÜ¿5ëL¤¿ÓsкJö›ñãGqËL ’2ºŸ®•hlËãÝmù“ΪÑÁ¸#÷{~p¾{’!‡0êšv¾©ã·g1Í6œ_¸B$Nz.áÀ)Ÿ&|…ÖÑ JXú´fão$–€˜8è Xt;¤“)DDá=+#¡„¼Ã¿Ý±??Öü¢ñt5ÙI}Î:™ÝÓ‡™LÞB(èÅ2 ”a¸HÚ±¨þÒê ¸÷¾(YüÊJj©:„yF|½" ÑL±êj¦+bˆXCÒÙÄ)⊈ËiÆÄj Yƒ¬ÔÂÕ?!Y"³øÂSŽPu9Q*È‹t®ûs-á8DÓûh»„ZŸƒ»o&¿`E”áô¿j…ÕÑÉ”Ãíh¥€%t!k½©Vè>ñ—/a¢ŽK@Ç÷t*»t4&¨ÄÂûa8ÜŒ²N{ÁX]Ôƒ®÷!™È‹D˜Ë›4û7ȤZ±d¿ ·é®&ñŒˆ‹ã{¿+ ÑEhíú­$ãX³0ÁØýNÆHTVBQº›™¿XÜT¿Åè®b}ÏwIêF'S—&šxAVg2ÁW¿"8~&’¼¦Ï~>ÔÁ‚)::ÒÑ ·GYÊ™ªß~ÅÓÉ„)`Y#’nK$ë%}‰5[™ÝÖ"ª[Éæs!qÕ¼9ñ’$»1ÿžÝ)f«´¨g2áT"šgŒµ2[6ˆ†ÛO°:bä“jü¹½/“…´cmoê×ӬǀfÇ¿Or_Ðã« G;nË—0NÄk—z:[þæ{0Ö/é™rò Ð/Ç^̓®oc]Ö!YZ‘%ˆ÷vKù‚SÄÅõ©L@–h`u4­_¯)/íLÞI–`ž:Š=s©YcN+¦‰ô‚ÆÊ,ß_‰'SÈÊÞ ”x²Oæ|’ìÓ†©X²Ó~~ÎýÀì oüF§ryîN'þÖ>šÞNz«³Q;ã¥?Ès2fÌ E2¥=ißLš'#bÚ_3·5ùS¼ˆ¸Æ¼&•7L‰lÂ\Bê2—¼)¹1¹!¹óq9ç}N¢Ã9§±'ÖhB4ž•Ù¢©;÷µ“ÓÞô|ôý²dÆVk4~x\*«É¥/É@Âiœ vÂ)=!ƒbU&ñ…€PǵZAÈùìÕÑ ôÙêÍÞ¯åQC÷?èz—}2L ¢à_EBdIq+ž*9¿Õå|,épù<²Q/´õ©gñ‰ü?C8¼æ  êf€áZpÑÉ0™@4OaɈ¾ÕÅT²è|Ö$ñeˆó¨½¤~´O¦L¼€HÌ–p„4z:•‘¿¤7Õô¶îçoÉ»Sž§¿o¦L¸«ÑÉÐÚxÑ=¡ö·Ò^…t"€9[•E|ŠWÄéš6hf+´eºâ¶Þ°LÉÚlÉäˆLŠ;W…õû|Bz=§gg‰&½pµ•Ù‰¢¡öÖgù:~þ¬“á³Ìʸ™ª.°>7zA€ÆÕÉXM×ÊÌêFaüy\X«²ž.&šûz:«±ÄÒäã2lŒ-׈`¾w 7„K0[Äheâ×ø§ô²éåw1åkt6[D#®ÒÑäeu"¼  Z vTŠ_% "@ÇgRñ¬D$¼ì‹‘ 1¢ž5¦ G`"T sºäÆÈF„daˆÄ-:•KC,u­ž‰'œúþ¤sh%`¿»¯f Å·ûf¸Ìƪ‡O7¶ÄSt2ðDí/Ƹ!é^0!„lu€ÛzN±œ q>‡D"§ô9Ÿ"Îü&<dM,Ä3Oj×ó)í¿9ËÉpˆæ‹ösx¢iÂí¾¥?±­Ú¯ŽK4­õ$4I4VcLòüÌŠ‚¾ÛªÌŽkhÂèéh8>—׳Zãtå±E0ö>Õ~£û’ñt˜ ¹`±Øxwù9›.ÅW¤5¢±/8D³ÑÄbu6Jra‰fH2RΠÃAS’Ì 9£,æHŠªîA­ñ )¥3ÇØ]ÊÙhr6¹“¯“):’²t••‚ª£éùGÄÂ5²RóƆ‰^$p ÑÉðÙ]ÊNFžgÖÉÈþy·ž.&~¦%YÉï¸á¶ÞH×’&†KÁÙÆ_ÍÅó†ZÄò‚™óQ4á™Û]ëhn™X–/špâKjK4 ·ŸLî_B.¬ccë2mDã†ÆUÓÏsV(€fßKceF+ 6ܺ@kU;ãÖê\zäÐX» ¶]„\cIÆZ³uïÿH¦!˜±€ Í!ßG7³™~™hP'û¢¡ ­! –ÀJ<’0’¬P_@K0£}2« çøvÍz6å ò½ŽYIŒÒÁ”UÐZݲ#ÛX ykî¬S)§³„»‹@Æ~—8L|! mŒR׸Óó„«'^Ê©þH~!¾K8ç}V©çça:§öÈ9ç%F„P&f 3æ5ÉEÜ)ç¤ó™!ûq"æSÈg•%’)~y!‘Ì93n8?çMˆÙÍþ¢[S/âJxË‚RO ¯;õÓóhNÈÄiŸ|جn@­÷Í@™ Õ‰½ñ3ÐVc¨ãFé(ˆšx9¿ÒÐãÍ–ÇL£ƒ5þB0Ùí~F±`¼òì%¾ÿA×ûžÂ\$›±8"Dá’ÆWº3¹.9M:~!©Ov]¢)/Ͼ¾„Ä’‘·¦Ë’»ì“éé\Š_âÀ\¬bê>¥\¡bÅÅÊÕ–.D”2J»…8¬„Z–’(¾z!{ıßÚËsÚpyq¸~ ]$ñ¥Jê+ŸåEánñš•âWD×xÅ`Éî5ÿ~‹W„iFXËVàütFX.SúlÁ‡üûÇ~ÿ ÄÃ:ÑE¬étâDšs#‰.J° ™À™' ÄO8#b^o8O7 ÞpFDX?ã2E„×.Ó !ÿލÛ;Æô|#µw˜Z«²…Ú_ÆKy^ò|¦ÚO1sZùfý{Kú†d\X‚Pã«C$6ëbx<6V æE·5î™`Ô<`W8 ÓíY¡ÉÅÜ?Ñ<Ò#­]ïò’¶‰¢ CDLor„%å™ââ‰ÎM@hxg<”D&»Ò¹­$¥t.B$±‘«“ íïO! H¹<ùË”Uç‘ÒM§þŠ2™$N#‘ži-Ÿu"ó¬u0[Vf5Ÿ_‡wü¥þ³ê/• V`~Jº€s2£•Cyip"[Såw[#âÈ1ô·¨ý‹2‚¸àŒ€ÏqÁœ^(ø.˜§ä¤MòŸsýøù'ÙR~§}79Þ¬$Шýžï›ÃŒ€+ÎÓ‚y½âCXpÁ§a½âò“;E„õ†!BtH^û+ üþ’ÊS‰²<ϵC2"˜BˆŽï—ç.9 tš¥#ò¸’x8qÇËájxî%ü9·æ ˜Ù’ñÈézƒÖÔüF0”®Zépîk‹Û½Þå%3"nÉÁuÕÒIªDÖ-á?æ´^Ú|fòÛò6Dc Æñk’ÉåïZ}X±F^’‘}2åE—%\E.œŽ±*·HˆFÒË$ÃK‚ü¢Œ¼'e¢ê}Ê*ŒˆHâßmeF¤•ªkÆèTÄÊëˬ3®Ë¼&ÂY^Ó‹gYåË’u )ÏëKqɤø“?Ƥ¨¿e÷ZüWÌO™dB ² 8O—L6—>“+:³ Õš*±J++Z\K4áäöš„ø9M¼á "š×Oé?á‚+æL>v‡y4þeÕí¿Á(+3C8Šd¨_a˜!/Zoüˆ$Þ!•W7bÝ _Íøð¬¿&”2[“uÉFòar™÷ŒGl$hùÄDåâÕ#˜Ç‚Ìûèd˜ ,Á¸äb‰eàÊD•ev%©²øDñ™ò7. É}‘ò+áué E ’ ¬ß!€$¶®Î.Ë᥂ì’. Ve"i•ˆH–ò½˜¼±Ï~ÿ%4DÒŒ*¾Ñ¹líì·Ve»u4ÕÕKoÆ/:¥'1“Íä²ã†uN/ ú4õ5¿À«™}W!!$¿„/¯—)`^¹œ§€K¸ àã)‘Î%\2é\p™f\Â¥öŸ\ß…üÒoʉ –h6 g.á‰h"f\ñ!D\pÃǧD0IGsÃyЏ¬·ôâaÁÀèÀ¬f6Sö™ç§H†Æ![aê³yütÆÍ*ãBñ¸ý˜XÌý…‹5ÙÖiËÖoóc’`k2K0åECéyÓ#¢>Y5Ä…>Áü0$G粇X  d©é”t¦NüNz¡Xݧ«)$Æùç6Og.Ž% Gb´N¦¤3·’ZDú}‘øÉ-å“}=Åš(êWvp·Ä"DR$c9ô%0ÈsiÏcAÁJ`wéd”ä[éùÂY–j ÌY÷’\¬sÖÉÌÙzjÆíKDÒÑĬ»‰E'TÝÌUél„h€ë’Žr9¯ç‰ÈH~¤ßÏ™lŠUU?Q=×PÚk1í·Dêð‡IkÖÑÄ+θKrÉ,ë aº"¬ŸpAÄl¬òÊYqeÜéïÙþåyHy̞ͩÓ.A7F-e™~ìŽGÍxÌîSèëb¼øågãår滓`Ø6>壈%øåñæGÑɸ:ó¦¬ ´$ãÖëý@òŸù½EHÑÉÊ//L­hó‚’ Ð’)-ÑÉiAW"É|yÓ7$ÃÈ|ùR¾Ô3Ë‘|Ó‘$óËsºlÆüLÄ2µDÂûf4D3÷bãßce†ZŸú|ªÉ;µ#€r„I¨$sËǨË´bV&LjU`X³1@™—L6 –âÏKjsšÏ!$r9]pAÀ9œqκšËp g\p9U¿MÑÉ¢©¥ý>N—h‚įáaMÄ2¯7|˜#.ˆø8EœqÃeZpÉá7œçˆ –>µ†OA4—·(³"81§WtœTÿfŸŠŒ§n'3ž8¾ õŒ2 ’†¿Ñ¤»A0ŠPD·C:Ep8Æc‰Ã­oÔõPã>eþ’ifêLc$eÉCÁ¾±½ô”„‚–lœü{Vd¶»ˆ†ëUò‹€š -Iôüô{)&“§Póg’™j~5¾nàrV™„Ë‹‘& à†`zAÈR‡•XI"랦Œ…>|…î÷IF:-(ˆ„¬­s˜`f9sJâÉ’ò>Õ™Lü×P7º­£‘}%·/·ü˜[@Îá‚y ¸Lg„uÎ:;çßó5ŸÝ%D’Û!×çlÈÆ%@’tç)Í´`^>%¢Y¯¸æЂ9ÞpÁaù„óÁD $Œ6ŠYÔ FsºµÐk …s¿¯CD§t•?O¤Í1=× ÚxœŽý^ŒGÃül¾=2âô;3ʯ«Óí%KBºþ’qu0æÛ³ú²V\®Î„^ÈÝôîu{Ä¿žs<ËK"êtf"°D†ìçÆ„Sü™d^ÅM2*’ð É‚Q“VÚ'PÛÅZ…Í3†„b‰Æ~!Ó®á7áü=Šß»?2Ö9$ñ§¥™zã_ÖÕLÉÊlYeb”oÞ‡,(,KÔ¿çço­Ï®ùy]‹¹wÖݬÈ/àC¸ d«²dŒX|ÌDó1œN&=Ç¿~žqýã€þàþüñ˜ÿùðWNy±‡ô¿ÏM4SÄe¸L×le¶àœu3ózÃÇ)‚­Î¼}1ü¼š“¤ÝŸzáµ¼•`*ÑU‰|Öã…÷Ç”úóxC@hÇ›ÝÙbb¶D`üL *}JÏÓí4éuFê_Ƶ‰ß çÓs ñ¨ãí¿þz<ÉÓŒF‘Pr°ÿ>Ñ}ö~‡ˆz$²åòýö ïélöM%ñ‡F Ub ëŸVBrÉÊè²M2œNÌV5B6yb¬å«§.Ï9\Ž)KÆ*Lt0åŪwæóéÊRŸbü1¡ùÞŒÝ'c‰ÅŽúÆýñXþé?Iõ²DCG ¯’mzÑdc€õÎy¿L²2»!LKÞ?#:›D4rê~¤›ª•ï«a!™¢KËã†tUP«/t=^ìxhûQ»RÐ!o¯f<6_Ø4£cµáD.Ãòåñz)…êv ¹¡QŸ×(½2q?æzß}2üÆ4!KÀÂØ Wá>‚‰&} Î¡-oS?"›V§Dw¬D£%k¤H&@"™™€„’‘t^#×ö+ÉTI_N&‰'é¤dŸL€C0¬ƒ&˜0éHŠŸÂÓ'€êï$ Ýû0ø4æW ·ß/™²®&Ì`£¼˜Wäs ñ%Mi_M}áÝr·õ–ÊõºT+´Hç’²¿ËDþé’Ÿñ1|D˜’õVà§ç€Ÿÿ÷?àc¸øéðaοûˆó”ü| Ë?ûC%šü=—h¤ÁÖh^4W| Y3]“•YX Vg…l«³ÒþFÓèdĸËèd”tQ˜dŸŒ¶2+’|!˜”^%ü»ŠOãÈ<ÞŠušÐÆwü ûG#ýŒžCC"žÕ׈\ø÷‰Óí¸M{‚ùÞIèè`˜`,I°ÄE÷t6;Q>^þ€"!éŸ{HÇÆó¬Ïl<)p(:™ü¢¡ö®».²N†%"™B4Km°©(æ³Æd-ãIt5¹¼Š87†—.ëRiï ™5=u¿Ý¹o¬Ê‰Îi¿$fYó/$#’2¹SUúc]òsÉJýò]•Xu0+ªNæKÒ½Ôp9 ¥‹ €[Ì –¬»IáÕêlFÀ\öÍÈIb}&KlÎøôOÿ>¸¬¦œ.À?þ+à§Ÿ’û»ÉTzø8?½.ÀÓL_Mù/+Ò¡¹°Î& ÷ÍÄ+.ˆD07\°`&«³tb€¶B¬§)kû|r7eZ&–ùù¢®T+Iè<>XSñ¼ñåëb°5;÷ï!˜lè[yå6ùެÆ@õïÎ3Ù]L:ÍÔc®÷Ù'³E0B)K6ÜK‡Pìý°ñ°ÕY>"&~AšüÑDÔ¥§Œ¾ü}¥›Q „‘UÌ«•Àˆd쾚RÎJ2‘ÊÇK(Zb4û`„`ä{1Ž•ëPî>‹Ì¤×œ à(¿Î>œú¥Ì¹’éd0Íå,2têR.zHûjR•h€´D\ËÆBÑÅä 2-œ¥ïÅäßCHVgÃgˆÕYÀÇð!™4‡3Î>>Ÿñ—,¡ž§v›ÿôð?ýü/üÏü¿»¤£küýÿ¼.¤£ ¹Ýt¿*þ9 ,sdMX¯¸„ˆ7|œ®¯É ìŸYo8‡lufˆe6þº†(„]Úß#øTs JðK•ð%³?λ IDATþSe|Ûq4S|–4¿÷l2K"– ‚¡ø—ƒdåx6&²1÷ñý=b+¹Ùsw½ïÙe{Æ‹¿Ae‚î “KÎGå»uŸÄ{É÷½øäSNx!¢ÉHYCÎʸ!¢"‘ ’‰’LH2zªõRøe_ènr¸ÖYÄB~3ä…Hå¦Ó¡­¿È­Ä C ÑŸ^¬öµ¼HñiMßø…Òý ,¸aA´îtN –éZâÍó‚j%·ä%Á+.˜³ Ð÷XJ;É :Pûeÿ+µ«"À¥€eɯ˜BÒ’õ/¹ÎùyÍ™|ç) p‘¥<ïÓ%=„ÓËåü^<§´ÏFÒMŸX°L×X¦9»ÈnÀÙ¥x"q§æH¤·¬é@M¬µ?ÏÓÄ›&ˆßîcZ”µŸ¼£³O&æþ&¿_}É\Œbº„aÌ–½ûâ!wÓŠLÆ[ÇŠŒï‡ãç/ß-«1ž÷ö‹è€–˜žÊ¿ËiïºÞç%C’ÿ&Á.QlÆæwëæð¨‰¯ìc‰Æï¤sæòp~^üèì£QV_d%cêçžÅd% ¡4V$ô¢zÕ÷ë} $Á–[¡žifH€ !d‰ËÛ'Qˆ‚%ÖBl}‰¶ND3½Pª«¶úZ,áü."žnÀ9"rO7ÌçXâ!Üðñ¸Ló÷UÎÆýxªáçé†ó)õsÉ=]²pp~>ãy'à|NQ 7âü$/’,Oi>Ч_³Î„ž´ßk:»l–çÇMŒUÀ þt à)ŸÉv:ã6ÄpC@<]’.¸M@|¾¤ðÓ7̈§ ä…KùÓ%Ÿšf]A±Z„lc¨þ4~ª«æ’»µ>ëoA:]:H+»ü…Y!ƒÔËxÉgæ‰?Ÿ`‘\ó‚áŽ=åßgÏÊ)8÷S»‡œÖˆ`”ÔóoýŸ‰ÅŽK0eLñg÷•Âå»UºÞdî!'Þ&yl“‘ˆÜÏ$czÙtÉÉq9.[ÅÕL,’(ïh%£SéélbDÚï"~ÔxÜp¥Yb¬;ÂË’Nq³.ƒwdËs#b©¸±2¢‰dD0uJ~9+lyÉgˆñ÷JÖ_ò¼Š+pºfrÉîùŠ%\±œ®¸NWÄÓ7\±œ"âôç¸ácÈóq÷gåÞ2áÄì‚üsòÏÙ?…>—xu¢MÏ{y•ö K–¹?(Ì/ŠÅHºçL$1F,SHKnqþÛøü øþ>¹Ÿ?1‘Àà*$õZŸûu ¸bNî \Cv§ ®kÀ5Ìå÷O+ź •Ì䨘²CŸŸ«=™ fyEý´³œŽÚ“Ubú"hù=À yÃ+²q…Ò¥LH¿ Ñ´ãƺ°÷wây÷yãÓîäWã˜Ôß=++¹áì}–`"Úü@ùºDC¿ËYmß½NÐ:Œ‘8ñ\‹wÿW&Þ­ïÇÈZ·G(Jã„7DDùÕz Á¤ Ýî›Ñ!ª]¾z³¡v0‘@ÊÚ4I¼+ÐZ©ÉýyÉå$’2 aewžúL9‹¬<ÖÊK§<*os:²÷ý—ܾWÑqÈø1þ›+1#N7à"$sÃ2%¢A¸!œoÉý]D W༠žn¸\€0Gœ/™`ÎÀ%D|<ÅD2gà">dÂùpJz§€ð|xžqÙ?N‰t>ävøuH…dØêi­_Ì]ƒ&àX‰!‡ßæñ•„¼Dàÿÿ üü3ð_?ÿïÏÀûüןQulÀç×…tR)Ýx ¸M·g!–D87K8§3®ˆEÇÌøLÖ‰¬ã«xósŠô¼³¿èˆŽ)$ë?!"’(K˜}×'Ù³œªü€‰D¶œŸˆ„HÊ€Íé)BB7{†Ï ³:’Ÿ! /ã—Ã;Sò£d˜dd¾aœ¹¼Æ_Â9«-ü:™˜wë`VC ô‚àøÞ¾š&=vó„Ä'ð>å®ù¾ì ‘lLfO$@óåL±êòHFIHÐî+K8B2¡¾yŸŒ¼!Ênd]Ô ®¬}?!)‹h„Lu"YÂÑå­kòr!¸œ~r)>ò‹dn·úF±îšÃ#ªµ×ô x¾&ÌéŠ8}J#$3}N7\§Ï@¸b™>U]Ì3’’;aZp>-Xp æéЧˆyºeåwÚ·RÉ&™ 'ÀŒ Ñä 䜹ž´¯I‘ôåÍL UôžaD$3èèåÏ?'’ùóÏÀŸÆm ø´&ÐïÿÃL÷¿.µß¸Eà.•X€J8O‰`®!à¶·0ãº,™°‚t/P?–µ}!`K0B ²/ia? _2ѼF`Ž®(ÖŒ]]L„ÒÑ("°ñom¼ÞÙdo!˜^:e|n¤+Ĉ`röÜêJJg8½XNoÏáìŸPNg/§µÿ:™½ú=¢}Áì"ÔtRÉËž/gΫ(_IÂDͯœ¶Ìåƒ_>uz3²UDÒ¨Vgz#$´DUê'o0Qþ[’!ÉŠ¿/“ɦ|á‘%Ð ’MÎî9Nþ.Œ÷…I.ÖÜ!ÏŠŒÏJ«¤£uL¼¯"-%Ò5!eÿeÁüñ9“Íœ\œnçD2s&™D:×L(KÒÕ<]‹ÎæL¦žð“¹Ì•dBvÏ—B6É=ëdòó“þ>Òɬ|z2p}]ð7û'\ܦ^4SHGÛĈÛËMýþi¢ÃÓlˆ:õŸxÊ:ÑÉ„ t2Ëé‚+n§€€.©Ü3À!å´ñrÊ3õ‡j¶œžgÝ€™Ÿ/ S@ÌD³ä~3¡DÄDàVóDãÅÊÉŒ#þÌãm©:œ"Yr~p¾“Ÿ§Õ½Lt¿" ·ÄâÄ×ߟ2Ä¢tTÚ ÁC,¾¿Løt2V—Ò#«‹Q#/*CDÕ¼Ô¤ŸP`ù’ã-w¸kM‡ 'I`Á¬m½åþJ^V‚­~Wß¹·H&3}ß‘„¤ü,A•}!H9&©\–^b>m6æo˜[B‰†häl*p±¬úyUufÒ° ÖúEËk~ŽZW¿,ˆk@Ä'àÙd7>G\Ÿ2É„[ÑÝÄÓ qºárÊ’;#{²Îef,‰\¦èèjùcö§%Øt(vëdX’Íá7×eÁïÿóŸð)&’ù9&˧ñ)ûo>ňßÿç?áç/B¢I—ÚùIt/|ÊKcŸÖôÂùœÝD<ÜV$Í’êÁºÆ¨ú}ÕÁ0¹–}1JG3ç­µ|×%¯<`Axª’y‘ÐåEP¬Á®ht4Š(zcãí! ï>¯<ïNO»Ñ¤§ýU—šÒêVƒú~˦ÿ»×É0ÁÈ¡!WgcÈF½€:Dä “ Ì?e 8€(ìt™h8ýB.@%*ß9¼è.¶^!ŸÎ,…­_s¶K¸ êé°Æòš¥=…pÈÊ+KH‹ä’hæ ‰‚‰d2“óó§% ª¸~RÎY?ZÃå°,±È‹&YÍOWÍ5[™%w Ÿ’¾Ï×b…† F7|<sˆ¸œÁœ/@˜o8?Gœ§>œsX²µYLÖepɪìÃùœöµÌç'àÃsþÿ9Y¡%ò eBru2Ò`L0&üóSúÐÚßüíŸòðyY—’ü?ý‡ÿˆßÿíŸðóëR”jl%X>X—8 é^²ÕÙ'ÄçD0ËéœüYG³†YrG^P¿h‡$È'RÈé-û]Ì5½z†V-G¯Üu ¤q”ßy-{ …ˆj}sÆJ¢e7/Uä£MxI€/”Î(#Ò€ŽIâŽ1wP/2Áñ!’²ÄP–Üêgt¸úðR®GÝ*„Ã/”¿´K&®—ÿš? _tz·/9½—¼”ò’wü¿dÉ2Ü€S–¨ÃŒ¯˜ÏÄ[Äò¾,XN3ÂK@·ð!̸E¤#oâ’_¤2!ÜÊçÊåI–$g×b$QÍóóÈ÷sä0—‰+Æd¦[t2EWV‰¦ìw™‘|žg`Yðûÿô',¯KÚ?“wö_—×§Ÿ¿,%þ<XYÞ^ÒDr]Ý‹kDœ̘§ˆëZË{3>­—9àsV —¥·˜&ÔÔÏ¥ß.ùy§Ó¨çj¶ 0Nê²kž—k:ég½!<ÜçS^Ù=E”ý0kLK`>#‘OùP…³®Å¦ËýµùL,Bwå¾`\NÚÍã[¾ŒZt*æþ¨~ïù ¡løƒ àõ>$3•ùL‘‡G0ÿº· ±%Éο87À^B\¨„ @/ÑÀ¼ “ ³ÐƒZT‰é…½hA/FM/fÄ,4I/šB ‘ôBdkѨW35‚iªZ‹Z³¼Úe5dhÈ7P‚TBäwˆ v 4‹ócÇÌíވȌW#],Ž›¹»¹»™ó?cD ~[_KH¨‘JCb©‰Ò§2œ*) C$¦BKÇÎCÓïXÄf‡\t`º±sã5f.TæEÓJDÉhû¢“HÆ®§ïÇ$èvçɱÜioýÝì's‚i÷I©,PÂxJÜÌbåAMÖúL³ÄÑ¢®=^F¼ÑñxœÍ¬ñ1Ùm5¹h©^g£ÕG“Bü …8CaÖø™Å>”3v¤/:î- vk£aÓQ¯â½æÙ­sÄÄîuÖ0Cƒ2  ŒÖÆm0ƈ¢Í¥ò* ó«B.¹žoŽ ¤³Æã¡ôë‡óñxÿÊ<Â:¡š†GÛXl½9As¤‹"áI~OÎd6^e&Ù7´#”ztê¹ ï%†nKqÄÒ–·eá÷û<¢Œ×‘ŽÔ¶ŸùÇýÙÚ$ — ü¸º9#¹Î>ªºŠeÈÆè¶>¼X× òq›ŒéÔït!pÝoíEv2.f¨ÛS¸åEÖ“Ü*D—€mÿ‘|g@½ÎÔ¶µÉH\ !{–dm‡PÛ FµÑì²z£18]kf±ÙäáÓŽÅ–²cfL»,¥ÇÏ0H½ÍS‚z£i®1"Úf„NM)߉ìý‚‰^Fõêe–ïôýßeܸ2c‡åj ÈGˆIÊ6.ÎPÙèµ½,‰°Üsq½Šs€ÙhÜf ÑË) †Pâ|/™#ü¸—©dFh¼¥ÜF  ;9@ ØhÂñ3=nˆ;ž·9¿-OxŸAïƒö<î_/Ì›ú<’ Ú?‘ A$]÷Òi³M?ÑïÉ™L׫Ì8w 7æm’Á±7)Á‘‹y§D$ñ˜2M½ÈbäDH­ZÙp@4¨éR‚Š.µIj¥Ê9F£HšUÜŒ\?Æ7P‘‘Œ^¦É†¼‹ ^akçü Ê!Ùù¼Šê³«©½-“¤Ý÷L­÷©&äb™v³8¤›ÙÚ`Bf€½Údö!3À80öç  û0–½fØk¼ŒÓê…¶Wï³MÆLc‹+õÀ‡$îð”1›ýcÌÓÐ&п"·ÑÉøÊ»I\šÓ(^e»ä6š?“)á„’íêµXŒy šWY÷ò¡rA0ƒfqc|ÆiDŽ\Z‰®c£9æE戄PÙl* ÝT^jáx…\®Ë qvs†5q+•Í÷–ÜÒë‰ú¡ÔÛzëŸê÷n½ËZä$êÔÇ8˜Xšjê$‚9«LD@=ätªìgý UïsWî‘MÕÿC}^Ñ@'> ²(’L’‰Çs˜Yû€l@Eq±fvÝ-ÊŽ‹€æ*¢°G¼1¸€X€bŒí œèUÔôQ¯³¸#"‚W’«Xê¸Û÷Å‘Š"—%îlyG:‹eIn©`7;r™IŒy¡ñp É}&q44,ž`"A,{èŒ%¾&0"©‡Ô#;ršáìâiãrüþ-Å‹³„Ÿåì6˜|Áôh—X«qVn²q¦ãwÔ™@ãdõ6³¸š…&ܬæ,±étLd(mî2¬ÙTœ@ãeRfù¾6ïÑÄ¿DCáøº‰kÓž×Es¹ÞÊ2¡¦ì"—xœd¾áhÉGh¾C]Úúgv¤ÚÆŒN¹6õk©Êß;‹“éÛ ´žÊvëDÓE0¦" /ø‚èÒÄáˆJ£ÐÎ÷ã@ÊàÕm•IÛ›—Y‹ *D‘$YË(Õ¹¾ÂçQ2r K%;“ðθòª‰Þ;4[òª³KAwŽ ²,dŒ¦ÐV¿¸Ž¾sæ¤Ù›'íïÔAH4ã(Ǧg Ó.ÐSBJ…Þ?KH;U=1izü#&ÐJº…1Ɇ_,å¸N1‚$[ÁNö¡8RsN±KÈC±‰$}¿éÛþ'ÖO‹o$S"¹ÕÂÙ£žÝÓ~ˆ;AJŸ™` @œ‰¤,sÀdõ¾:RªÔØž†ŒiÉñ”²¤‚Ñz¢,{1a„Ê} ¥~Æs6 ð¤ä ]JÛ°Ì$¡BUÔ¨ž‰5› Ó¶°Œ ºÇ(¸ÍÅm'6_¢m"ÚdÌöJ`ù c€¥tº9Î ,Øön£óú¾…ÄÝʜ̋ŒŸEmaó"í-gËÀ ä•İÜc¬ã6›íD ì2€YÛ«€„Y×,ã}3Î[ˢוÁÉý<— ÙÙ²‘ëüp‚!ö\êÕ–éëŒÎ'»ž#ÄFƒRþ ‘÷má}ÃÞkÓ~Eð3º¬_„×»ÖærJSóØò ïÉ8§—c=¯²ª¾e06PMò3†oÐ?Ú^PÚw½Õ´Œº}?Šå.KˆòHƒ M±lŽ!S•3 bÂ=ˆA2äaÞg–Фëõ%»@G O³Ò 2â‚\t¯z+mçÆ¬‘â³å~;0òÀ˜yCvzì•óªe^Àƒ¼Š¥©,\uË$¶Œó„DYÜ})cÒ1î„QMç ”2¦s)c:#eèŠ`† SVU“¨ÒA ,›„É@µ4ò¥lg+Wˆ ¤aÌN5"Õshß ”ÁlèùoÞ‡Žh!Ùxn–nÓ9ˆ]É¿7XƒDÍ©E8w±žEmvËà dG8r<"‰ILdÆ"H|QwyÛÆŽÛ~@…ဠò±ñÍXDjƒìÄj›á¦žïfˆJ·DDì‚’k ɯJ²÷éóMÛWHæªÖ¹âíUÑ^Ú:ÆÕúW! ºYYãÅЫï­wºîž¬åýÞ ’©$se¿¾x%Éqhi^5•÷ :G»Ž•\Î?…`üzŒ’«¬’ëúê8Pr›)â‰Ù—GC6@A4¡ýØëOUO@˜h&¹ùB%?·½ A0hêÃõHê‰l‚¯žµHj¶ š³…é♀yͺáU±É˜jÁTG|dSÕ êÝ7@@;hé,4eŒSÙ{ ã.c|–0í2¦gJ ´.žÉ¹$*± E0ã™0˜ý°Ç´&ì1­“0 -¤¹°HË$%¡óÔ“|gÐ "ñÈnÑÝ'½^7ÎÍùkçzѰœÿâ<á‹ÛŒÊ†cé¢iÆ­ x&IÃŽŠpRMTÕ;mˆ@¾Õ…×Î-`^~€ (•ñ«ÈƒÎŒ@Àg¥v,e,㘇EMvD;Âññ­&…zC,>Ÿt~T^v:¿L@ q¸MÆ *ç‡÷½A(nmŒ–]·b}g=­m@zý|^öÚ+Ÿè÷nm2-çåPÉÎ˺»ÄÖè*«ë(6EÕuõxßÒC<@‰w e¼®!G<±}D8ÚÏ ÑôÚÛ{80h%Q•Ÿ<•…¼ •PntÕEb+’ L^Ñqýw²ëœµ–ó*ôËJ6 ¢mf)LJŒùÎ鯣´ >XçfB™j°Øh¦IŒÿ3¦HVPš1 #Òª¶˜,¶A0Æ•0®ê €RZ@¤#]À@RÕ™#š ±0ŠD˜ñ8bii¿ "1¤R¼újDó" ƒéÚh¼}s>¶ˆÆJæ%|OÂwOÎ JÎ+Ï(aÇ«ìØ„Ù¼÷f)ómFæ²ïÏlÈ ÑY$‹óH2ã¿"˜ñ°ß)2ÙÉqSË8_Êx&«äCƒ\C0uY!·©öL°.éÞs9›ãþ½] m½—øûY>Ñï"ãœÇ¼Ê6¶“Àt>·Ñ«¢åȽû¡¦c èý ‰‰£²áÄz½î¤tÄ“b{x-¢9‚°Ò L•ÄÓH`a¡®üúÝö‚rCßo#Ö‰oWâ Ø$Õ8î‡Tº#•ÀŒÂ Løyed£Ï ±=íÓP¾ë¤ ”Ò_÷BÛ%ã3A6û÷Ò9ÄF³“ã#ã3hIwŒ‘FŒjƒ!&C2Ä „½2"C8ûa/Èn7éûRÉÒi³É¨{›"ÙQ”úå}Êˬmïãšk RÍP]¯°E4Ñ&ã*ž jvï21š€ÎFQ§ äõf»‘ñ¢6™µ¶ÉðšjÕÎJXÌ­9ĵ$CäIÇ÷9|<³Ú9"‘QÆqß&à ೬ñµ€Ñ8CPÑꎙ4$µ(¢'€Ù×¹À╊ËJ'R¿µÅ<Áüÿ]>áïÝ#™¡F.öAÚúˆpbdå¥r‘m¼8ú>ãõI ÐŽ`šzg4+Ü-FüW^cVfé{¾…#¡Ñ` UŽDcÆÉˆhÉ8¢‰~üŒm¼@ö ]!¢`ÌÏ(ÈÆ#¶³ôËÞÓ V[N±Å Ï˪t^¼>ƒ±¬Œ ‘ Ýød™5é© Òä””Ôël°ã%©å4’”)‚1VÈeq¢­†0®SA2ÄûŒ ‚ Ç2 ŽÊË,Ä3uiÀĦ>H¸/ö{¼¾žË€Žõñ~U}íž”Y¾ýAãd4^JŠ!(’!ÿîÂÆ@dd¸q%,8 ó.›¡6Ö$%Š@’£&±ÁD‘‰y[î±Á(Ò±ñŸ|6;"ªK˜/nÓ$Àö—ñöF{ü—ÙTšóc©óÄÖkOÍùu;›ÎÆ&Ó¬W•Ó #‹íÔ?–®e¨Êß»G2F£F.-òˆ§‹Á€:YÃqѶnÁ¸ŠÍÚëŒ6– ‘´gUKD:Jo¼ÆôºÓYmŠ×£˜*m”|´ŸU.%ÖŠÀxŽÅ˜D¨£è â1‰¹x™Ù¶À/Øs :s¯2ÌàXtÂÎë $A66¡9x¥Ñ`Þ<Ò#áõíäÿIm/㳄ñ˜Þ(û‰@çŒé=It¹OÚM4bâ„i1­S@0ZŽ¡±Ç(‹ýN½ÏHÜÝÆb;‰*ÂI»IéàE†Ç Ô¦µá´'¶ÎžÀÏOEõù±ÉdE*Ù‡T…C€¦ô™à6†ßÇwTµÒU«¶53U;š2 îü¡Úh²#–őЍÆråmÆ©«í†&ˆñÙƒv\l6á˜÷™ÏªN ±²ØW`T$é™BlžöèÞ|=FW§ Ì«9Ü êÉ覥+$Ö¬×Oõû•ØdZ›KåÕ|C2ÑÀ ½ÙõÛëvèv™éDDC¡¿½Ò‡#˜5\'z™iû.¢¹¨ƒh|çÀ#j$cÏC*ñ \Kd0 ¹0ª¸0@êm£Þ=æí÷ºQ]ÿŠ´dú IDAT¢â0/¡lñ5ìˆËT& `^q`‘Pç\l2b»Qš}¥ÑXʵs\ŸsÚ‰-†,¿"™QÌ8É$mkeAœÉ$G2›r0º0 †2–?ææ¨èèe¦ã¾ œ4Šm¥E4ÏϾ˜gWm¼È"¢AD4§Û›Mó¬¥GÂiÉ×V"íg4Hš­ÙöÁ©%ræ:N&3|¿Ÿ|ËÈYN^ÍV¸W˜ÆÑ°ÆËD£ÞaÐã`ÇÙhÍ.ÆÑã0Žfð$šK)AÉkqdzÜL,í=åýohµmum.›v±¬É"F‚ “"ú¶åSþ~e6Fàü:»^Øz•U‘ý b9š+- †j‡ÊÁDWIq}î!˜UãezHË¢AÑxfµy˜Ît¢»WŠ­á†Xn›¢!¨í"¹S@8å¸ÛBÄ?žÛ 0•O‘`K ™ÈË*îˆ`fE03Ìû¬ñ:ƒd)ï3À"Iê¾-vœH"ÿ'öÏH"ÿŸq¡GA¿B3ö4"­ ûáBm3#¦uÄ^Ëi11aO…ÆÐH"½kÎ*C0P[LA8j³y(‚iè¶^LÞ¨ãEeñïÛo ™Êë,¨ôäî²E€ÊÉ@†‘Gº£Ž|'˜mnk\Ûì@›;n%EPf³±…;îx™ÝËŒv†0’Њh(Al5Š\ŠwdN¡K»ÜÌÚË hlCOÀ±óPº3 b¡†‚F,m v÷Òyêòâyªß¯Ì&‘ŒÛXçJÙz•U¹ÉÂùT×ç`Ó*‰¡m'3êHþˆ`€çÒp~„óbýÑX;E4¸-Þi‚lØ3Èy*ù¹DÓ •Æ{¬k‹ñ¸.ºgW°ë˜D˜ÍkGs„¹êÃUõÊ`\—_nƒáU¼ÎÜVÃÅFÃÈâu¦/ý8‚ WצCÇr§åÆFCn“£m&ÐXNÙdœ^¹:þ ›Lkƒ‰žã÷íÙ`l\røˆ&÷ëÕÖÇyÑq\O8挄 ö­+¨j­0r$[ÙVµÑ­!Nf‘g’Üq ËÌ’SN3°íc†#iC4” ÂÁœdbí1´Þe%#€1¦â…fe™?å~ì×qšÖÛ|#Äç=RÆø˜¡y?ØÒq}Ÿ¡0žfÝztÙ¬«=”õù>„ôT¿_™M&"“È6ºMm/[¯Ö^e|Ê«,rà ’è"˜ÈÁ{ÞîËÛ¸™v?™ÍŽ—±ô šú³r}Z5NÆŒ ª“.Pv&bºdcŽõúÉïÑmÃö²1·\ û„Lœã*xÍÁ@"ÿ`ñ8 ÌÓãúiÒNc(”ƒlè•a%(MÀ4&bLÏ“"˜‰h-¦i'3­„‰ö˜½ÐöŽx f«Q36™´ÞTké< ž‡Ò(ó!ዯglm2 âQF´E4–k+" ""U·[ŒŠd΀hÓ±ÜfÅËl ¹ÏdA5 œ1Ùe9͸Sr؈ÎÇi,müž|çÊF€gj$ãriE.è±õB«¼8ñð²]ÇN!lÃ7F"†8ZZ_ߨ«èõŸð÷Ä—3‰Õµñ.ãò¢»6C"¶ÀÇø˜y¾pGÚÜ…«v±šó"Éœ[¬ªWa5¥· ó*ÞMù ÚvžŒe"¬F@¾U¨}+{¾eŒI$M?oÐÈ|¿ŽI`fÀ‹¼ùu–T *±DfF_rºHìŒtF@^dá &¿/V LdÈÅȘ,}—× ÚwÒ%ûƒŒçb«I$l¢Iä^%K1ëBéß¹°÷]ÑAâ©TòªHP‘Áf‡Ibý‰ûéw«ÚS§>çúú¥¢é?Ÿ!„þ‰­Cž'—þÙø×ó‰|;# Ä‹r†d‘¾¾5Æ±Èø¹‚g` N!º`± Dí`Á8ˆ 2‚ A)AiUı ìˆÖ½(WE&Y"¯×WYTÉà²0º “° ÛúdëF ƒ@ Aw³o¯¤`C>V¶ë]»>¢¬l7 Ri‘ËÑþéŸkšžè÷_ø»¿û»¿ÃÕß\áõ_½Æ?ÿïÿù·ºàåÿADá…ØExÑQ…fª²Wb*3scÞ ƒµ¯s7…ºÖtT­9m÷É(T&|[Zî£1_üéE•¢  ¦âg?z> ä•€sÂÎ3c´ÍgÖ¤ª¼I¸%Qa°0°2 Òjºõ~Á,ç;RbBÒôëi7"!UÚ ªŒÁŒ©s œ#ƒìu?‘$qÙï„‘€q7!¸Ø¢.lEö=G›D;b;©oŸøž~?>rߨ¿ÆVâ÷Ñ,ï¥Ï’0š”ð|ñæëëíý¸Ó¿j¼m’W“cÄá¬KfIÝæURÀðšp­Û'Ì·À¢– ÂâªK/^²ÓÎxŸ—Ê$w™:£8g`UÈ“\. BŸ Â970A4»û{ù>6ƤÝ.FyÏ•`\;¯w'JóŠ[µwKúÞëRøÞÚŸ6×½eŸ& lèpßåøV¿ÈSÚéý$¿–¡ô8oñx’Ƶ–ؼˢMÆÎçÙqwe®Û9c:èõµÄ­0Ïd{Èߊ‘¼ „…E'X X³R%<>ˆÊ"3±hÉ,û‰°J¤yeL00‹dÉ·*é߲쭮gÑúlé0‰Œ7CŽz­©ñ—XgVœH¸8èBÆ\Ü©¡©G±¤!!+¢Éª¢“¸e˜ƒ2D}.R¤R$TC2“#»#˜ˆHPÚÝ‹h¾%‚iˆú~ÛþgMÃ/‚ÑvÆ`ŽhâóÛ2ç ‚I1ñÊ 3 ©sFb€E¶pÈgœ$>i:ÞA F4¯ ŠS@ÔWAP¶ïß©—˜Ù0,ãƒ!¯ÂP5âs®é™Eò47l kˆŒX'ºÛV”!ѱ©3Zßçh_—m?”ö•àÜ¡éºB'ÏZÖc˜÷!ž“ë牲eHFUžðÂr ý}Æqá4·ç‡zlãPNÞϯ׻ߑöVoû½˜—V»ƒe‡~þþ%>»º*çeüúó÷¼ÒG(ÕtCÌmý ï}ñ,N13e`½Æ4Hü w×2^°`€Ò´€ÆL7ÀnÓ"t šf ]ƒ¦ ×Hã zÞºhÉ AÆcÚ—ñI`Ð!KÁ˜´:;=éüœH KZ§·ÀtÐùÁ¾fLÀ×ÐyO(Þ ,sÈèÄ(YÙí¸i‚mÞÆý¨”öù¼êú§õ@¿Œq{›x>×ÇÏó¡B.ëï‰è¬ÇñºOø{g6™®Ž¨9o¤¹iÏ5ÄtÝé]\ Ëqûp•-õuÇÕÚèVH‘ÌŠ$f*¬4ò */RJBGÉc=®ƒu‰T%&4¶3•™C ’ˆ6#äâ×a༤:a³É’–•×HÊà ±‘v ©¦v€ì·BšFX–bHã‚Fm6ò2¥ú½8c› Éd6‰Ý~QBì!Ç³ÆÆQI”aAnë€d:ô±ûÝg#Š6–G”Ï//ñæêjû< ¢éÚ 6¶˜ð¼*ÛÌ€b“±$™YSþ¼®µœj“¹epRãÿ®ØG4‘«µÙ€$SÍÚøº-6JJ9Äè­f-h•EÞæµ¯ìÑël˜blLøKJ->o¤ûízd[ÛÄŒóô!6Š $Ò÷!‡ˆhެ'Ýõåžþíß=Èææã[ý"Oy7H¦‡X€ò .É¢F:‘!ãÈÄr—µ(~ »jã÷³ ¨$­´!YðY÷áz_™œ ín£äŒ+7eu|-ˆÅ÷7a`ZEE0­„tvFÓŒŽdDb›½e9þ–1 ÂÁÌŠhX$S×y/*9ÎU’$È3&0ˆoÉð  ¬ ÆAëŒ3ˆo@à âY à ˆ*‘V„½ë“–Âì Ñø¾(CX5biÌ.¢Ðï íëñÒÉ·‘öQâ‡Ç¹EHÍž$±Ù±²E,ZÒŒïíEì$ZL…ˆîE4á}9r±þæð¼6Bàä]øÄ®1j< ѨÔpƒQGPšé0]kZþ3@×À˜‘éZö{®)ƒÏ®arYôûÏŽd9sA6+ƒfvDC+@‡Ùé‘hYŽ ¼U$£ó%-ÁŒÚn<ô5<e·Rýx¶€hä»lËÉÄÌ U9À3}´§E6›rÝ:7Ue\W#½vúq¤|ÊßÓ#™ÿMÿé —4NxQö2C¹NT=9ƒYK{{ñ1‚?­Ý‘ËdéõM·…Hú<üY*Û;| ½A0z·^fð:¹ÈVDsÐ…@G–üE/µ(a-q(>("QDƒƒH|¤Ï•%0:9Cl‘ ˆ€óI^žÅŒ’ã çŠhvYú±ã²ài?ü=é‚>iBd˜T ûIì%p4_G èœw Ñ܇”ì÷/·ø ý¢á“?þ´#Í)wKÏkÆÍÍ >ù£Oþ<-¢1u$áÄ- a*Ç ;gI[ü€‘5m?aa`fÝxl—$SÃNœ;¬Ì$ûd;¨Âæ9•yæ›-¸ ¹Ë4HXøx íÉ®s71^FŸËçÂw“*Dƒ¡E& 5¨E6íw¡ `£œé>Rޞ׎¯*—#Py§µ^keüÞ3ލÐïɼ&sCñ…  jÛk;W™jÔC±%Z»`Ì‹¼RÉi»  EéQË’Æ&ª0˜j¿‘ð=á“0žèµñÈzT‘2á•ÕkŒÁT×3¡}`€D„Oÿí§H”ܨonîþ=Ìog|ü‡#ßeËœ&Ÿý¾ç1¯9Ï Øh‚— ƒaËÀp»È’kN3³º1‹;s\Ü~ØÒt¦6Koa>m¶Ç0IŒ´“Ì܉ Y¢U• €Yl—î3ÃVâòœVË*Ü\/äœôNµÞ #jËt„Ñ´Œ¥ÃxŽ2¦îl@=¿¥êÌäçƒ åòOð­~ïžÉô ‡ãa€´Œ j¯Ç{~íÁiÅKoßoãd&ÓƒÄx¨¥{ǘdäÞO¶¼.–<±Š£Áý¸Ãhªôâ+|AÌyV(­ˆ¦c£A’xÒx´gP›Ì:êï£q0çB ŒÆ2 $L'ƒ€I‘LÅh˜’”»"¡Ö™’O8@`< Tl2!ŽäÕD{ðª‘åkBtwe¾Æg?ýœ¿|<¢ù¦å}ß7ÕæßýÛ À¨™,wU Fÿå°+pýöÿ?Ѩl1‚1I?Wõb“)HÆl2†dXëgÎXÖ„Y݉ïYx£Y9Æ<˜`¦ýÊjóÔþŽ3SE»w|HƼ?ežö„²Ó«­8³…ÁÕܘ+ÆL¤Ã‚U˜RT€cc áz-ã°ðºæùQM‡¡ôϦ¾ˆ: 锸Ôõ¬¼ù|«ß¯ÉØ0–£H‡ëö>L²°•K}ORŠª44õӊ Å Çhd@‘ºë”…NZ?$x$òCKíÇ·âˆh¢ÊÃt6I켑´v6°ÅíY&~D.öRuÜ‘Î@ÄØ¤ˆ†(0* HäŽJõDrÕU fÃQF}–ðê{30쌠a_ÎwF|-ê’õ¯ú š0ž„zˆÀÞ×nÍÝö¸C2Áƒ™Î'éÏ«,zó,IJ,B·ˆæ!σ@¯8YÈÍ_MˆÅvÈœo¯µZŽg„ss`dE2¼Sc*^e0|^#c4•€wÛ™Ÿ:߯0£¼ vÌb“ ôx'Ï›Vcør¡ÊY§U•UÇõû¶¦e8¶°ï‚ÜÔŸD6ÆèÎŽ0»Ëh:ç¾úc*·o¬:Óz³`nžÉ ÷7ÿ?íèQ?sý‚±\wZ9uf±* èfZ» É -W¸÷Èhñƒ¤©Ÿ¾Ûjv÷1ˆñ~Ú¥@ký0©ÛèD“V>´&Iù$FP2]è‘D‚Gb¦Š·Y5ne†HV+$G˜’ùP†މ€, /­Â À!žF³4Ë(™Eu¥iѱf±Õ`H M`È}x•ìɼJÚ}¡µ¿ÑÉ—ʈö á´.ŸÙ·%Ìoà¼Þ€xõ[_DÓÆ¡ 6n”!lâlô»7^fiw¤>žoïcÅ&æ‡ÿúì/öw£Ä"'ŒãˆýÅ^žu@ ¨}+ ýrX0“£n\Mïy˜·´#/e0^ê÷$q6 "Ì·pÉš¹A¯7³¤‚‹·àÜäöš5+2`^b¬¹æªñc¥ØäãÊRÛ xƒ mYŽ…ñ.2n‚Í´ä^ Ç¥¾fÀðxÖõa$åé м„õ*®_ÙÁu6„tÐñ¬ô¢ëß¡¤¤RFãôdü‡õ[†B@´×¦>–q¹Æ'2z€—š­Ù•âþ%þ1¿wâ]æÞ`ŠD\ 7†C,Ñ×ë´ïêz4/:·÷iUñR+ª3‡ødª3".m@êU¦)^F ¶ÈõŽáySªéJâæAèÂ`ÄTÛÔ.Ü€† ¼./€Ë÷Ë_¦s`žáÂÇ›¿!‘ÈWRQm”Ï%þc‘ó-¢y,Ý ëR3’UyÜrl'Lg¿ßcÿl ÀõW׸Ș—)dññ¿ú?ü—?ì#˜Þó¸íeÙoÞl†dbR×yÍÁ[) –uaÄl’6/.±ïfÓœÉâÊ;E»€ `ã§ ™ÉŽ";îÈFOtÕ™Ò–hœêúi4Ug)K.5=?¨ÌŠjMžC/çi3‚3#ÛsÕÖ1s¨•¶ÿUöe¢FT(cÚÖ§¡l"ù Ù´õQFY_ªLáyïC8ÿ L+mÌ©’¶Ç³ô¼BwxìŸ×G2'° ¶¢k®i„ãeGÄf?‘”j:–‰±TˇÑ#ò@’”r0Mà39j@¤ÛF©J”(j«!í&°]g€ö’›l à|¬û§ÛãCT¢¬¿/—ïn’vlott'† @œ)"1I›dÒL£˜{žÿÎ…‘b „W¿õ™¦9gÒ³iuèñü%Æ÷^bLHyþ×_ì?À8}€‹÷_jù.ÆK¡ÇK¡/DÕ—Ã^ñöœe íˆ-©j¾+íÇqxØó qGN{ÿ-©ãe$Ó…:}h¶îâm˜*dm—#t ŒÇ5­º%Œw÷%ñ]$Ç-l¦aTä:êøÓxgB§A€µ^¼ÕH·QÐq;P—Dà3B:%0šF ”®·_ö@qÖݦ „ï¡*pøó«€ª¾[ùoH#Е *Fþn3dSEð¯™Ü‡X*„1lë{á ±ŒÈ%zëVˆfhÖë'ü=9’9¦l½ZŽí’ùnF9Óu‚Ql3*AŒZ*ˆ¦Ø„Ä6W`Úi.²s½žIbc’­fw ù ‘ëÿñ¿ý^ýÖ+®ß.¸úê W¿¸Âï݈áÔÌ.ùó@4ҺĒVÉsw¬:êb³É tΚÖß$»µx—Mš½Ù’UŽ–¦ŸŒ±ê{t‘st‰R$ÑT¾·<gˆ¤‡pÜ–ÑæöªÝ~+DÉÈq^ùìÀ›¿ná üj óW¢J NËü™dHyûÑ¡ÞçBßÇ2^×­céÿÍõ—• Ç9·eßÏp†![3®¾º „e¯2>0ÒYòÜtóaVDHÇl2ŽLPè Ñ@ÆQD2V`¤aœgŒ4yvA€I¾JC¼2¦aT¢æÌÛI!—t& 5›æAç•;Ð$ªZ‚xѤˆFçín*t[hÈûc6Áà 9ü°²¼ŸU$ß4©Û³BA¼ÆX³Œ{M+ˆFrò¹ ™F·Ê:4Šê|±p±÷êxr_³)› ì뛎CCLGK[oã±A4mû²¹Ñ<åïé™Ì°åŒ›ýaŒ#Û áæEŽ=ÈH±Þ÷mÈMûæz­3ë~(:9ƒH³ CËv²¡Ò¤†þýñ{D‡¾¼gìßßãÅo¾Àëÿü3¼zó¥º9ÄÓ+7Ãc´!‚8¤J®j$5c)Ës ƒ"àŽ1&ñv“8 ÷~£Âh\¢^庢šœÔ©Átöl²#U".h®¢Î,ý“«ÄªlÆíóE/.·Aè^ók Œå-áæ+(ãòXÞꎋ`°Jèù˜1ϯå;ëx›W“0¼~†Ùœ;f¹¿Ñ˜;ýíÑÜ϶liú³&¹œ—û SmnÞÞ é¾9>~˜q}s fvÛ 3‹Ks°Él²7…™W\¤Ä™t+fC@â¬õ·Á™¢²[cöã†p¦4»° `$û¸%ð­:}Эš-Ù%©ø~7J‡- É00Œr`7Êþ8*ÑNΧŽ3Uiƒä¼J eHkî0•8í}ð*È’s "ÉÎJcÍiít1Ó}²[QeÏx[°RA4\­NÏ+Ë%®¹MÒïA¶nžÀ/eo›4Ë[`^ ÁH)˜ÿz+ñ;2ïsíô/Ø*b\LE#ž-S› ßÎàUPË8Š/%\ß\c|6Š fH˜3øÀ˜C{ ÀŸýɧXÜG0IùøàPO‰UˆF‘Œ"‡E®+gfˆ&ù¿p¹ßHæÌ È„U¢npwfÛ6Lå½t^•QØ«@TKz›…e]™Ò«ÍŠâ}w!H© IDAT–êuq£±à¶!4ô±ú“6mïëQÑlè'ü½›Œ«Ät]µÈØl’1E5o1Öö^®ý2¯FsgH›z§cî,»¯HD]›Ìÿü#ì/ö¸¸( D3Ž#öÏö˜¦ Ïó9~<ÀmEu¦6œàà6£­Þl vÿ‚Hã„LbCÛŒ&©G-IŽï&½¬z£Q‡^ÍVÉVºÅ&#×[M•á€b»'d"_¸Óõ—ûXvâÛåü\TC¯ÿê%$~có æ·À›ÿ·ü ƒ¹ñz ŸöÂB±axyÌ‹, ° ”ö¶°ÉUöÉ}‚¼f,‡Ì3ßθººÂÍÍ ¾üÅ—XÞ.˜çYÔhÙ[e^fp¼Þƒ½ätP®±áùÂN™ÑVV®‡à.OÕ$û¡,ôF#ÚbZ t ±ÑÜ*m¶ÝPOWÖ&`MêÝVh¢Z,Ë9Hl‡6Žɸ¤0>Ð$¥ÿݤ6Ûêz*ÎgÎ5®M•Ù¢H5#ÉlS€{ã‰ÀEZ/ˆ+|çYfËT ˆ3duŽÞbž+ØhÜûL¯C(ë“ÛVLÃp¢ÞìØ®.¥½­ËQ¡ æHƪKè8Šlzõö"‰ ‚ˆêÝ’ Ñ´ˆÇ“J¾#å>.iA¼ËÅ» gçpñ‹îãÑŽ@,vãnÄþ½=U CÇuÆñwTbŠ„¼êùwiÒë‹×™ÙhÀªE¡¿è°G—àÐý[TMá`Ò€±IL¥hÞe&‰V:ÿ!ÚdÂé ·Ñ³Éœ% _㳟>ÇGß{£:ñ+ñ6c“È4â]€!ãõÿuYT§$þ éŸD,Çh„ç1«Þ^­—í777¸üÎeQqj\Ì<‹·à|«ªÁƒ2‚CÆ'ô –¯;ˆì¾ýeâ÷im2«ª¸Ö‚dªúŒ`£Ñø˜a *À —¸‹ —˜‹9×ñ“³‰È=U¬ŸqÕÔ9¹Š‹ïÊõ*£%/2 Ò…azªë¯ï·£ñh£ÆëØjÁvrÁ‚ˆÒ¨*4îÚbưîÌŠxæaDD3%/µµìs,óX\­GMƒlŽz¡Eú Odpy´ãXÙõ2ë •êzêmÆ'î'9½„–vF낸äcq Ç~ž*$‰«ê§óÆUHD£Þ1zâÆ+­ò2³óÏU›¦âuF$)]q@“U¦Rî&´A0i‰OaR:x¥ï2VdVy™Mz¿óIú—RA,:qѼïQÔ7dõ8“œ¯ñú¯žƒù Àæ+ÐphA2ÿé'—œ¯äz÷Jü B‰ý¹Fs½AGÑ,óŒOÿäS\ýí2g‰èg.åÛ@¯Œë·×øá¿ú!®¿Vuk‹`ŽyÉm¼È8ûéKð ¼úþçA·½àõO_Á¶/à|ý/¬æ}Ó7¡íýE“=FA4<Ïø³?ýð/?ÆÅ³ Øþ:¶äƒûŒOþXŒ=‹Úç1›‹?¶æ˜M†Ãó8B Ïdžhã 6šèå$ ­Øö\€Ñ…,©FÁÁ‘¦î޲£å²³ø¬¤Þ`ICK3¾k9Ml¥\L@(²¾˜3ÏÛ±kÖqA¹F@çÙ4‰³™“Líe–Ì&ª‚)²è‹×Øyƒh›Lj{‘A4¿3 Zÿ*DÓ"«çø½B‰mû67ZWóT¿'Ï]6þEeaлó`Ñ+¢R™þ •W½@»Þ ×…Š„ô’fZi’Ù8È>'iМ]Ã(›%a’(_Õ=ïÿøS\þÚ¥#–ö·, ®þö ó×3~öŸ†Wãèª'®Óßdëõú$ #Jàþ¼\ÎÏo™<‰¦¿_É8=I Ü73‡œfÑk:1s™ T&®ek>ÝÿP¯ˆ*TÝå3ï»êzg ^ëº`ï‘ï€tF%'ÔÝ‚tÆ[/¬Sïo(ýp/+ëÿ)&ølû¿y+`^fÆ0h* ñüáÇî ðéŸ|êFg¢=nÞ^=úy"ÂÚä.«è\e¬ˆû$á.×ô* ÌƇåÜ+*šjû Ím6Õì¦LÉß§iÔ|~Þî-YL0@·çˆë—~˜ÊÌÖÀûç XüÆXaå­:2_TÓÓx¨7àd?ž3H8©¬’"€]8“~Kª·NOHö‚Àí˜-£éšè :믞Û{ àêŸá[ýÞi‚Ìñ'úOx£¹wFT¹ÓÅ ¬×«MÜ«[¡¨-Èt‡-£Y%0¬3&e8ÉLÃäõé_|ŒË_»¬<ËìÇQu,Ë‚««+|þóÏñÛïïÕk˼°Ô½³ó»Ù~+•àI}çÁ â@|OìP»Ð¶ ÁŽ1€Ñõh›˜IDʇ? ª¼ö¹Ð´eŒ3^€Á¤Ç•è\Ÿ¹ÿž¿MéiÛÿûJs•Ç//_âêêóo·ŸLK»ªÏæMXXCAÎ5íõÂhfÍVí‡dÊ€ÍxñýŒì8T¼žRíÉh^ßÖ‰Âè<ÙØ* Ù¶fÇKÜNßKßCj4¢·dÞ2âÁlóÙUê $“‘ £¹S† 閨•‘4 Éš@aá×ùÁ€dPÚÍkwŠ¡´ 'œ×Ž££ŒGë¯þ)¾ÕïïŒé¢ ¤kKÁö¸{ŸEº-©¼`/ Cù íñr>B‡R¯ûãÿãǸú[ñ ŠºôeYp}# æúú×_]ãææÅÆb™T…m0ª+÷{¸Ùnì{™yDþ¤t‚Ù\ÄFC!C!b³Û ÊñF\› iÝõ1z"³ñ¤rÿÁúCG2ÀUc/-D›Lý=Ý&cª›˜»+,¼ù®C[†Ž«Ü0˜Û`¸íoó<±~÷owÄììŒ=ÏÕÕç¸xÿåã½Ê†ÒÍ8ƒÙx¡¥KûjŸ!~m^en«I•—Ù¸Žš)`o4Í @ƒ!>õ2s/´pjêÕË Rf$¤sµ1&£µ>ÉxMçT2Är§íu|'µ…:ÂÖñœq›í&£ØpVµÑT6™@G› ­¨¼Ï\pD9/ÚX\S„ú¸×kÿíúNG¤g ^¥ýýÞ ’9%uMÉ-TAe¥]Å‚€pZ¤ÊžêŒXö0¡uÀÊF]¤Ù‰“'w!ÆÈ¿|¶Çïþ“ß-û‚ $Asæ¯g¼ù›7øâç_à÷ë•ôÕMGÒþë—ÅÍXŸýDn®¯Ãû¹ál%µ ù8â9r=“È¡ú‘دý® ã1wãô ËüúiÌ·A28ñ<§žëˆ¦-/ž]•Âõ‚WÙÑï‰ðœ‘ñ†èHfÕsá¼»\Ó+×*¥S¼}½ñœ[ü|èóÙñBl4'¿[4~Ü7OîòvEõRŸ[w¤•÷"»˜ŠÀ¬‚hfàŒÁžú§¨ öO"š]½ñà£M°{äAõ@4oþ¾#G íw<†hT9È«ÿâs|ñ/~þþ§?ü_Pí©Ô;€çÏŸc÷¢‡÷KŠžíqñÞ¾œßJà­Dƒö_ê“OˆrÿZ¯ãZ¬}* Ö£ãÖ{¾¡©ï!³D)éü#,_¿V²‘èï£{¾©~ŽÕŸ¢ãÕ>¿½¿ÞùíoC#gÜ\‰‹g—õýOy•Åñ2¿‘ß×þ)/G Fàk¨Úö b·ñÔžïãMÏ?Á`ªäŒ>¾K» H{=*ÁÇßòüÉŸ7–iM%»ò­}o€üû؆ƒ.èæ€@°]s›ãl-õ„ÂïÄ}»A4ÃÑôø&a{ü$¢éµ¢ß“#úI@&ÒüÚ·’‰^À'zÍaU‰ë/Z†ÂSýÀæ`/l 42a‰o‘!I‘ aÔ¬IÝ)G°¦:7€³EçeÆÇ~$ÞdèÅïƒñÊ€µß@§ Ïã¹ô¹•؉—X%ÕÈÍ<Ÿ–ÈN!›VG¿±å„ûR8£ä^yQ… ô%ÎVâ§øH¨ é–ÛÏ䜡¤{ècˆGî÷MËcÈæ”FSÎ<äy.Þ‰›_~~¡U{gß>ÛoT??õMÍ€òZ3®!šÁB[C@íùÇL pì"Žv|ûõêñ6Žž¿x‰qš0ª6àâ½=öï_âÅ?ú¨F8q~ÝåUýOu{"ñr…>ÆI„¬ ‰™A«qlâ^bi—©Ms|G³Ö×kM9=ÑdôT¿'g2‘kFRR™/Äã´qÜ )]ÚÚU^;B&ã„–²¡Ï¡Fliì×Ý‘.zšTr—AµÄèŽØ œD éí_`ÞýN]o§ÙoůgHh§®¿5ç£{½ÍmÔöc CjŠ*®¥w¿]óÜÇî§û>îéïŒÓKðíçB§ZBÞDî·´.ž]¸‘ø7q.÷ [ä¸v®ßy¾G=O>ö>Ãýªl×ñ}[.¹0>1$G"ÉN´Þwáü!|÷(¼©Ä Åë­' ׯLÚǯÔ×C|_\ì±"=%ûÀ³ `Wè~T®Ï?Ÿd.Ÿ«sÀ¦?æô"ýJçêt`ëÑ`N Âhʶò=h Ð]°ô¼R&Ô {UoíuKgÏuÿú8¡lÎoë±­G{ߦýSýÞMÄéÝßœ[äbõºÉñ@ÒoÙlô8¹0x'ˆF #“"œ$t®I‘‹ºYj<€ø©³/¼¾L%Ñ×:ñ_TÀÏï,TÕû1 µ«sG}¿×›DXl/ýFF#·×Gxž}D4‘Žˆå=>vÿ—úþv½'F0F·ï£½ÿC®b [ñ8}Ðoß"ĵsÿ.‚±ö(ˆ¦E¶¢töGzbAC†ë&"nÿzÞ®×"r»þŠ€0Ô}yA‘DDdŒ£÷¼Ñ„þX½Ùšª÷’‡ïºà$*¹àBßg›A@vœ¬ý€m®³µxAÛµ‘ý-¢ÙÔÇûŸ@4Où{'LFb0­DLµD?díÜë †€Âyn‘¸˜PÜ€Gª 9¢!ð•°HÛM¾Á‘¸9ê@MãaªéðœéèóÖ ˜† Ÿ§{?§y+¡õî?$“Ì-º×þTÿ»íO ˜{èqÿËןÊ1D6Ôïk#ÑW u”‡6-Ðaáî"¦^ÿ6ß¿}4÷_æ/1¾÷A§=aƒ°Úû­=Ó~ß#ˆÆÉùTÓ;RD2nJ¬×óÒù$ßô<géB"Gððû‡ñ‰@[w 'A£_OÏkÆ7£¨Ív÷aÏÛA4Ž=Œ A4jS¦!‰çê`µQA:Ì’' ±p½lÊŽ,i||„vÇM¡<Ñ<åïx—56˜!ØVtAˆ)äªöÎÉW»^î#4X‰B3)¡„ìt’G`dÿ°eÿ“­ÄSJé~Ž´J¼ŸõY8lÆÅÆ8mIÅø-ˆëQP‘¨»6“² µ¡Àúê$öVbî¿qÄæb4j‰||ï%®¯?/ B¨®÷„ÞW›uùAc}$¢ Ïù.l@ÔCH§Œ÷/”›ñÐŽ×è òDc(ŒÑ„³´µ¹lÎGu~}½ˆ°ÄííQ!’ñÙ…äÚc0zuÿ è„tÑTÏ?8HÕˆfMòtþäB@–L™QvÖD]¦æxø¬édxÊ%ùÞu¹A4ÍúÚE4ÃÑ´ëôSýžÞ&ÓÚ`9$Õˆ¥+á·´ H*’¿_·S®(ˆ†$À cA8<ä`³I’ã\û›Xm51ÉeRI§²¥ $®­Ë¡¯~ñÆßKd$Ìä©1YbeŽ!€b9†HNÕ÷l$éú>‚hm5]›„ÑMÿ–¯?˜ ¢kót`Œ†`Š„×œÌæ4×ç·t£ŠÜ؈bÿz÷;ñ>#}óËÏpùþGç=‚`ÂûMmŽ"ÔÖFÆË@ªŠ‚Hø€Ðg¡xòVC0!X®×³Ù„ûGÄ2DÄ0Õô‘ñM) ’ Æâíõ¹,pÙÆG·óPD³±ùó D“‹FUÀ)ÒwꨶÑ4@ÏW:ÁS+YûT}ïr÷îÓÖS§ÿÐŒNÄ×X´Íll,m»€T"§ÈÅo a±(ÂÛLr ##¹­ÆÓŒë@):åFÂqF# ü£ÿê5þÓO_á‹/>‡í~È+{@ç²,˜W¿¸ÚJl-"ø6“{ˆ«nÏ>1û÷«%ú£‘üÇèžM¢Wÿ›‡Kîþü*é¢é!@`óþZ7c«gî´wD[äÑ8Ÿ‚Ù|ÿ6®ª±Y¤ ”oJ÷€ÛñD<n®¯ÁƒÚj‡ä﨟ŸY× ½_eSmM s5߯¸³Tõ7¹—ŠwY@4ÙV ªýgb™Mz^¬÷Àr‹ŸYëóºˆ&hªøš‡"š'ü½›LI¨’‡¥R"±ó3ÂÛqÕM:„Nê†\$@ÖÒiS* ”.HÅ íœÉœòÊþ0G†JdQbÐoï5þã_½ˆð毿ě7_âú«kð!ƒWàÍß^áæ—WÅæÓÚ(Rr´QÝÿ˜N¾¢[/¤ŽÎ¾EHq‡ËÞóÞ‡`zýWzœ>èÛ$N!‚BjÛ‡…³–ø`“±ë÷ ý{Pÿû§-­~™¿ÄxþÁéìѽ÷ß{>A4f›8åUæíÔG£ó$…ÔHÞ¿_8ßB{¿È°ØråŠ1yÔjþæoÊýO!£Ý–Ÿ?Õý‰ˆf…ot6‚qä"åxV¾/u†}7ß±WC•–?"”ó"¢A8Ÿy{ŸG!š'ü½›ˆÿÖc3"— ±U‘ÿ~œêóðšÁtÞv}n÷z›EÛ ˜‡ &¸Æm8+# Q‚A-Q­€mÔUéªM 6”ßýþküèåôÍ××øòWxóׯqùÝë\\–ÛÊŠc¹¬z:úSEû½•c{Ôõh¯wœöò®é¯öœ>À2y?ÂéÙ¤zÏß“àï#³ÅÕ˜PCæ¦þ›!÷|´M¨ƒx”^æÏ1žp´~óüïSÛh¬¾ƒhª€ÝÇ#”¶¬@'—_5oN æçæú׋Ú:õgÍ|FECž7ö§ƒ*Å}®Z²Ûh†'ÿ\ß¡£¶™Ü ­ÆM`4@dìü ¢±úG š§ú==“©FC7’fw nnèU) ÝÞ(Àî3 rÉ;1Rå}ÆŽpêµÕ)w"—½ÿð$}ÖŸßÿg?Ãþý« b!p7bJ°÷G‘†U{—Pσ$hý‹ôCH+!F‰Ôê[DÒö§-Ïúõîf¯×C†Àâ÷³þt IÐÚ„á;C6‘ëͺßËQÄÓìßÒ¹Úþõ°}ÞØhNÓ'î·"¼‡#ãÁr7U!÷*‹¶Jn Ic8î×£±œBHãöþ„ss}ë;¢‚³h ®¾ºÑÐ‡ÞøNýñßx—Õó?Õ^jŽØŠF#ÆÑ˜mÆîô8s@:(%¢P#žˆ@÷6êñ•zí#"z$¢yªß»qan9¢"“R†úůü€R¿&m—äøÛÚ¿&`IOÀBrü@Z’†üý¼,×ó ÀöϨiñG¿!šÔÐm=¶^Sw¿ÿßý Ÿþé‡ÊH.€ôû÷ÿ¯þñ5>ú­/€ôòÝpv¹Íæû#q 'È€è›çée>•-9g\ì_âF#Ú7ý7º²q ¶gƒAÓ¾GBñd÷ £¶,Bé¼oy^à(¢¹¾þ ã{õëqß÷í|ïÑ Ö§#í Cªs‹µ^aGq…˜\occ<ŽðZ›ãÍ/¯fÌo\}u…/þú ÞüõX湃ðÎáyÛþ¡ &ÄçEí%—š8šAr™EäaÈ…í¸ïìÆÝ¸ËQfûDÅúˆ|8׌¦?˜‰¢ W½=Ñ<ÑïÝ ™AÅ@ÀJáCŽ¥~ õ˜„qhzoxòŸ î(ÐCKe ë°ŒÀ: ƒY'`™”á(ã9Lï…jë¢,$JÙ@*J°'‘:Ô§F"Œþ]ÆÇø3|ò'⿳àÕ÷®@ôÀD—xõ½+üîïÜȳ§Ë‡!šcÀ$°#ne³iuüa!9zÿvGJ£›,×—/qsýùñþ·ýéÚ šçÝØ\”æÇbˆ%<¬GÖöñ¤èë’iç~@ýþŸѬGêÓ¥½ÿ}íÑA4íõB2LØŽŸ6^–mõï› ¸f||øáGøÙÏ?ÃÍõ5–y.÷[›8²j¾XØhl‡Û”j´kh2ÄeYÖ »×éyFG$³ÉßE$M{¾SFÚWç[?€ Ré"šØîï?’ybaæâõ±Ðé~ a$o 8ŒR2i©ôAÛé¬fÐÊ%>å ‰)•æyzžµE4­TMnLÜ/À«ïÍxýÓ7xþ›/@Ã%x@üî\€™ðêûW@NB4µî½ƒªú†j‰3¶ýÇiCÓ"’ 7iøù4"»¯ÿ=ê·q1Gˆ%;TýÃm.@4k¡Ñ¾ï‡ š#6ˆåösPú [Ÿ7ß»Eû?ÑÄó›8–v¼lœšï»AØÛç} O>/•ñ²±IÅç‰6N”÷Y!T*Q·ÉÜå¦B[ä|­ÁQ²›cƒPl=¬¼Í­ŠmÅ#óÍÛ,Û{>‚h ©4ãОç]ç.{ò,Ìø‰êOÉØC5«,¯m^~ûÀ€xT•ŠJ-k=XüÈõ2ⶨç@+c$Æ´Î H \¬“”ÃˆÄ ã݈‰“ì?³E 7t# ³Éôöyõý¬ eÑ…7烼æ40x½ Œ¿ü?/dàîêáû©õDoëäp̦pßþ(ã{{üÁþïšHŒÇ¶±ÛŸýéŸhÂÍÍÕöü^vâ^ÿ›…º[”v§öÓ9öI¿^ ‹*"§ÛóâñÖ¦xìý#œßûÚÿqÿJ2$Øó4õ2Ú¾SöÞ·¿¿æ½÷²0÷žÿ¾ñtìýœxÞÍx,²(ª¤úh›LD˜¹\`Ú—ßöRN;€†¼€ÌÀ«ïŽlƽ»æz-br ¹•øpD"m$ÄJ¢>Òµ¹ŒÓ„Oþä\~÷i—0h L» ÓnÂåw.ñÉ¿þÌsí5g׋×ïIô@-ñ"Ô÷ú Äq˜K{C,ë‘ë·ô ùÞ'ÛgYlƒpzïߟǾߑï¡ôrýãôÑÑúZbo$þêúíxh%üH‰ÄGçyŽÚ`ÂóÅ÷Ñö÷ÞïÛ§_¼¨L÷}#ÞøñO_ãõÿóW+0#>[üÙO_×ïá}œÆ* ã%WÅÍ– Ñ¿DüÇ~ËñTã¨m¦Äß„úÀ`“b±Í¬ð䜽ëWÞfö=Ñ ž'ü½$ƒ2ð™(C¡Ô gåvž!_Àœ«7DÚC2˜$ÊÉ Œ 3ÆHXpq–‘rÂÂÄ„“–¤Hf’Ár®åh^0GÌùT$t A2#h¸Ä4.¾ìßh'ÛUÌ3pó0æÐ0ƒùŸýôpž³åñ{À÷$ØV‚l%L›`þ‚ù7úoÜ[fÕ}< IDATlÜõvƒJpÌȇŒþѱ\_ŸF`ö;…Ï©ç«4(òŸþùðê¿y…ç¿ñépÙQ3"˜ˆhr;iÊyl;j®’¼7²- ÛŽ̓ô¿]þ2ÄÆbˆÄëãûMpÛ ß mÈÅM¥ ¥€dÖ€:õÏ‘ŒMü†Á˜Í(ˆæƒ!U‰Ý‘Р‚`Zd³@l/o“Ú`´4ÛÌÌa­‹E´Í˜­†!Ç™‘oå¸ °ÇÚd^}o@à•@;`:öß$³¿í‘iøõ0> £Ù ³I»„ÿÕÇØ¿7=¨ÿ6q7^UD\{õ/' i6~ý®'s™qÏ ½Ú÷·úwã÷£j|´’÷Æ«ëèówÚŸ ï‹ ×oÏȑŃϯâLZšÊ:pìyÛûÅþÄçïd’xñâåæzmi÷}ùâ%^üæ ì÷{ŒãˆýÅã³ã(ûÎ\|ç—ß¹Äåå%òw/·qq›ýpšÜjM–ö’éD!RÁɳ3DE±<éeÞG/·½7á÷ßÜ/|ž@ûÉsNG0Œ"¹ôl4Æ0<±Ò·¶ð£ƒ\‚áæ¸ÅËT^f#ømx¿%Oj£Ì%bx™Õ&c÷oÍ|Ñ`cÓøË¿¸T£>ƒYTd×o/̪.c6$Ã`Ö-_ó œ4¼¿ % /0žä÷£ôãô‘”ï}:×2}€ñ½—'C-ñUýo¼ÈÌ×ÈþbýÅ———"~çR6_3U„¾ߦá>/3 ÓŸÁToˆ[rDÑ‘à^áUvÊ ­‹xNØhlü Hèa¶ß#Jø ž¦NKø'éo‚hÊ‚½‰s‰ˆÃŸ/|¯"²çÅ#ú,N¬m¿—¾ÏOÿüGw£§hÚ?Û!.ühG˜ÆIŠ/{ž¶ M¶ê½š­Ô䙾_Õ ˆ.KÃ$ 9<$§Ù´^fU&€‡ÄÍØùvßx¡®Êßp“Gþ‰4†ã ’dD$Cˆ‹É†ˆ\bûÆmm®cª¶3f zÉ R$30˜gŒÃÀ¢g‘ñÂÅX—v„¢ëWIÅû‘‹ß¾!³É˜$á^ZW¢*„©Éálô÷5—wÆ" )X3‡ÓC9š1´á3Ù PÚ÷´æf†5ÖY>dH[q0üA©e“„“‰1âñß^!tc^h0b ÃŒ#!/0c^`¦!$<þÛ/ävWÏnƦ(ã?ãl–öÀ/Ц¨/ /òá%H¡ (¢ìùÏíK¼ePE°ýiiô•Fz伉MæƒMÓ<A´Vn)µŽ|Ø4ß ‘aÊ›y-1Ó ÂªÛ·ÌÑ,ô×?郼}êÇÓÉ>mΗc㫈…ßEÏáµ8Vý.¶žÝbªÚ×’]d‰ÿäžüèI»¼k ã§£Z<дù7ã~œÅ&\Ž K~JLÂË\ähî §Ã.ù!fE,\äÏÌZƒ —F+Ã¥07b¹.™ëÅ_Æ^o# ÀÝç¾þž’q¦âh ‚霬Öd,O0Å #ÍuþNZs44F„½õ›‘ßY"¡¶*£T8šÛŒl’E™ÒŽç«_|_øgß>K®¥ñC4@­ÑÃåÏБþøò¾?ö>ü͇xí÷ßÀëð:^ÿÆ#|ù7¾œ/<ç}àû û»›Àÿ?¶ÈÜ|z“ó!åd¬•™ÍÕÖu`dcˆ( ¸ Ã2wbS¿±S:n ”T#šÄHÉûÍèõ‚h&SÉ¿¯¿{^³à ×‚±,0 F¶å¹|0©LÈV·Væt‹<ýjš„®Ç`"ôÝš÷R4!`˜¬AyAé°óƒÚèz`ò‰{ÊíÛˆûù=eÕ Ç{…Wÿù a]¶>¦è(#öôŸiÜ3:ÁUƒ3ŽzÏ}á„E`?!Ð{>?cGìºh" /jÜù%–#¥™ûh(œŒGwådÌLÞ3gÒßr$ž³ñãÓ” ÂkÕ¨¢ÑWÌp8ªÑ[ ûBk Ì áåÄ>º}Œ/ý‹ïÓè®|ý*àÕ_Ùݘ¶xüwÿêøxŸâhZo6~þy5ÆïŒþØùöú7!ƈ?ÿ [)²䋟ç!hOxôµ×Ïàø€7~ó5<þÏïa¸V烚ÚÛ¯ßøéˆa0|2`ÍóªâdˆÛ{+ß­1?ß}=žò)ßY^ph– âüyói•oI@Í©t|ûÍDA4¡æffŒA4džÏ}ýÝÿ"Ô ‚ /[?A  Ü‹,4ê_Ã2— ü/@U‚À#09x«-tÀ8k`pÕõA¸êÖ‘CÍÀ'iŽØ„5Ê M†lu2Ž@¤‘IÐaÖk¤Owˆ}Ÿï{~ ¡p&²å’Ðmñ¿ãéY#‹ñ*«,‡‹æa¬h"`46þ „2—Q>¸ sV>¸öš@:dM~ÜèÑëÂ8ŽcqhCvh“rVs¤ý8C0Uÿ¨þÀ'»%iûc f©åÁìÇÒ?”ëÇË-0Õø„PÆÃ »`ÍÊk¾hÄ(ÏÃäë‹o·àlûŒ†ÂüÒ¿àU Ûh¿i È[Ç {¯þÊûxüw/#¹-Âj ÅÎ'ƒ킲(„RÉÕ‚¿Ü×ä˜õzÍsåCx¼7aZ¾ý—ïà+¿ñ°9Ÿó…ãntÀ»ß·|éžÏ КÍC0Œyžn·[¬÷#’˜¥ïXn#×ÈÌ/ɇp]aˆƒ2é{.€11¢áÔgn¦êiG™n5rbD“”Sñ·Iözn§Z“Ùz–ÁÞSýÝ¿Çÿÿyí ÷@Õ´ŠcGK²i›ƒ)æ±üdd Y“­`òÉœ„€~ò¹ ±é)§Óˆ>ëi@èDðÓTÏN%¦ÙZd¶Ÿïù¼ §ùiêcw±õÏby›Ê̲²ÓÀíÓìz .‡#í3 CoÿùÛ@‡L¦Jÿ}€übÑ”ÍÁ‡ý€G_”ÑÍ©ØkÔh7PÚiJ-×[Ró½†Â­ÌÆqiÜüøXY4s;nžTVÙìí„3+ïïë—¯þ‹ïøY ݺœ(;k¦Cæ)/4ÍrÇÆc¦ ¸þÚçNŒßóK˜Íó¬Ÿ+޽yø¸”÷8fEæá¯ÿZ]ÜÃͯ·þìm¼üK/ã¥_x kŽžÜ¯ú¢ ÖDu¿ÅQ¨c•jæÙÕ-s”ôiêÌï²Ð0«?óìwir2ÌÂcHÞ¢3ˆ„Ë5#Hy[—ÿàwð™þ~±Ëì‹.#ãåˆÊš¬ó#ÛX@˜kÉvåQƒK¢éP6[žᘭ9ÒYöž)¬ó13]è"Pè3¢‰kÐ@Ý:çSF4 Æœ¦ÑDkÞÒ8ä>ñï‹{þçZ‰yyfÅ$/zÑ«üJƒ7²Ý3÷ùÒÔœáµßzˆD ã8bÜ™ƒÙç-3 ŽIDyÛa?àÑï? ÃñØkæ7·ªrís L““1[²'ãÇ×r~üT£§ÒnË!U÷3ågÏ/Õ÷óå[Ï£ÅaÈx^ýâ÷€é 6 tµG讀.§YÞ€¨WD3ã0ZãAíùàÓgäçë9óËq0‚`Ö=;.ËÃŽ‘ñ2"ƨ¿=‡×ÿö_¾ƒa&~Nò϶oÞøí×ðÊ/¼„ïþõwñ¿ùÞÿþûx÷½wñï~Øí°&ªýzìó•ñ9¤ö󩞟 ‚@SñA¢¼¥•dÜ`®›§²õ§à kŠÛ$ðŠbVëz‹h,ҹǿgƒdt+Ì.æ L˽ԣj#»ÅdËÌì-V×Wˆ&èÞ$PVþŒXFô]ʈæ°îýDXw¤Œh:䇰Îg€ŸD4r¢ß’†º„TNiØÀ²ÙÒ@åÏk¢Kš¦hØ(Ì‚hÒ”°f?õ»Aþ°Ñùf É´G2ÔÓ~ ÉHÿ‘ÁIãǨ‘Œ¶} L3ò€—íy9v‡±B“zHÏ•á'#7pŒ1ÒfáB› %á©–gQ™§’/îÄ ™ÅèÌú¼  ”ÖkïO^Wúìö׎‹lÌ„MYOØZÞˆiÓ¼0ÝË¿ËV™‹ëËlU¶F&¥×¡7ä!¡@Ž!D ÄËžC?DŒ»5„Ð%$.× .6HiDä˜fèìsy“ý·Æêl`ľÖXãBªVSNƒ¼³ì¬†êôˆ_Š\¿äy­Öf4 Ù´ùÐ?¿ò–Ù';\þElø¡ Icf›iou=±æK5i<³*›l¾±2[•,çטÎq+¼+)€òZVd52)VUùª¤¾-òªûÙëÝø¿úÅÿÀ™ çð=¸¾®^Èé8æë†™µåõÓ[™“áǃÎîýÂñEö¯ÓÈ}Ž,!1ÇÐåȰýÑ–ûEؼ°á†äçìû?Ζó÷K­ÌÄoJäòûϲZuÑ„”áïÌ/€t@¶*;ð€ñü¯8#Çp<fuÆHöäLÔ~3¢ßÛ Yl´{ú»ÿE0[”ôÇÁˆQÐõ¼ey)õÁ0Ëu”˜äLlHTŒ$ÆV—íиõ(T~B ¼ˆÙaŸ­Êº5 ØtÀ8åP4y!Ik(À:¥l³^gDÓ¯‘¦1;f p™Í¢ã ÙOgº†NK6æi+²#òd¬´‚µ¢BãþæzkÕf4ÂÊŠ'«žñ“A÷ØãEÄö‡âúó/âÃ'·Rj¶ß·ÇŒ‡íÀV@V6õïç8™Åñ±í³ÏÃZ‘qÿÔ:ÌÖg­ÊTNúᬭΊæ[Y•M®>;þ1fdú²pÈy«ló\yÅÚºDõ¾Æ¿üÕÑë‡)›Û¾óÇï]Àï^s}b<Àï ò…ƒò{ÆÇj<úÍ<^oý;Yxˆ?\£ÊÒï|ßÄùR?4¦ÁÍ?šY¡‚d²Ò@·ÆR"F²`“r(‘­Àœ¾¥©1#  äg(E2jF‚fjû*$E.3+³{ü{ÆHÆ#šcÆäw¬)hì2»0qJ@}öpÕŒjeƒ è#/HÊ݈.#³'NÂêŠ=ïóB³î6Y^Á š„pAìè”J,£q@ì×¥?·CŽe&{¹@^p¬×´ŸkôNÃ>W¶HOžú’Æ~¢ixbWžô˜Îôë9¦Qz„Ò™ñ’82vÑ,ÅîêÜøÛë[ˆE<Ì;4ÆËû½ í'#ùR0¹Ÿäk4ï˜nØ¿jÈ Î>7y·Ë ±EI·ùRYHˆžà»ÿa³ÀÉä~¿ó'Û2¨Ì-²?W=o$}ã·Ýï³`UöÁ?ļãð\æøzsšËïÇêü"°‘yÐFhÁžzÞö}!7id?™"$ÊD1'i…˜âÒ¡p˜jŒtÁ ÚÊ!–UA,šßB.ÑTþ2Õûn̉ëïóïþ9³—^HX Z(’ý] 阅G÷BM9â\¢àÀ[i# k üb‡2ð2à0ªM(ÜŒXŸS±qønŠ=†)Oj±2K-«³ 92¥Œx¦ÂÑ49Î`)ÿ޲O9…JF{ Ž¥;k»ÝâúꪾÞhŒÍþ SÛ×™ö)gÁ[®â'£ OAõü©·NcwU÷3õµÆ£z^Xx^Â9+¸©¾î\ãñß<º!“ʈF #°Ýf¢ÿÝïçÈÞÛ7Ÿ‚~âòžïùoûoŸß©ùfÙÑùä8ñ¯²¡_Ò!ö9Ìî“v7;<ùÑŒŸŽjŘR6 ÖÈ çp2†;™qJž£3; p_Ë›þI9â ­••o•e.*¤ƒøå;(~#k¾ün‘ÈTu'¯{`$ Še†RÏQ+³{ü{vçÉTHF €C+ß”£Fþ…C0²5v´”“3![d=ÀÑ!FëQ4ÌÀi"B—e€UêØ|yÕƒº„ Xmrþe„ˆxÈMœXŸLy¡‰ŠýÈŽ“ôE¯ÉSp2NÖôDƒ…=t4d;ÊÇÒ í«¸ ; ¨åâB ¢ÚñCÑHM;ýýgœË a¡F‚à,ÑçhÛgëKÑÈó¬¯kŽk¼/"0íxÞBG÷„Ý ðä9àêÛ$ª÷¨Hæñ÷Οϩñ®=§d;}~c>YQ²v.7îGìnv9ÂÄG;ìvùß0U̼íGÛê9ûþÁ>/™öù›6_bíyDê¸9ù®è=[å˜~fk_vXì90¢ø6R¾ ¬ £0‹,áÿc¹>¶¼E4?õHff-h8öƒÍ‡Ó°£»NÊEƒ|òïD¦ Is HL³0lÜ‚'oåHv$ÝS|,M³ #š1LÙ Ba¨c?š‹2,WÓB4V–üs‰Õ¨Î)ߺ¾s'0×Xíõææ\DÃé‡O¶M3CPÓBû­ÆYiØÉÌý€lFºˆ@ŽÜov”X[.ö™Z‰-Öç×äò-Ðö»ñ¿lAô!r ¼r°Õ»àƒÿš#zïnÀ çï0î¿g®?c<–žÇ‚œìói]¬?oÿÉ[‘PRG^šé6›+o¼Åîf‡í¶Ø~¼Åö£-RJ+ï[ïTl¿ÙøúùÞ˜ÿ¶?ÖOªù¼ɰU¡·!×òNG2t€"| b1òì|ƒ`‚”ƒù=Õ‰™´2»Ç¿g…¹âõ‡Dâ‘ Œ ¨=;Q“÷j!ä¾ ™r½@Tk…&±BȈ¦·H¦+ˆf½Šˆ]Ö” ‘L¬Ñ„>ÿz¤.«uF4‘ Û=![L"p›Œlò-ékIfÑ\øÏ‡>¹'ÃÏå¤U™ç Z F¶#ˆgÁTˆª‰Œ¦ßj¯D_–|m¯ETk ¶>Ѱ[w•oïï8)‹È,¢ªú'÷‹¥}qùþµÆ×Xc=þÞCïÓ‡ ½{«Q¾C·cΆ€é1ÞýûU83ÿ|Zãá5üfŽHÏïlá Ÿ 9¤ —n†aÀö£möùÄ„.°ýñv¡ùùÙBðÇdÿ|ªó†ýãúƒ|oTæqŠæwA2p[ø0ÆÉ•†A‹Ñ”#0;1sª¹™\Aã~÷ø÷l<þuOÐÌØ>\59Í—…5²éÊ‘¶ŒlT´»h  l­!×çùZ<µ‹†*(*Ö EsM$‚‚=³» „9›À~4±G¦€aOHS@¢\ç°Ïiº%“µÜn?‚&`·1LÀŽ5¹Ýž0pJüû0å˜`²PaÒY2€|dæ5æqCƒ¼þüõ"‚©Ï½Á\Ãt¢<õc€Íç6XNFÊ DÃI«;«ÕkæÌû§aÛS>8uäÈ’)ï¶„9™Îë?~ï×?š$ËEcÎÑWåû’Í¥|À@„uˆ 軾XyL” ÅnÝhØSACõê9ŸÍ“™˜å:©G~góQ°é¸=¦íŠ IDAT¼îµ¶äö)ÈdöÐk¿ëGõS‘ßÏöÓQÉÈÀByTô¢_CUŸý #€êúÅþ™ú&T[6I#E@Md$/L4eƒxì–‰È2Ëý3¸ècûãéý” _þ­—ñüù»ˆÝ¯åû«ŸÈ+NF}YÞO;þ†ƒ˜çÏ£F϶t\Ê7žwh÷€"š‡¿ùP/×ëµúÊŒŸŽùÜ¢OG¼óï,ûÅ,ùEUý=íÛœ¸ªùö†¼àtñWù‚LtÉõ–&ñ92É„²œŒÆ,²îÀÈ÷\ þ2òYí [fê—L…›©ük¤ÞŸz$ó'Œdd‘ éo‘Lj†eE4¡ü~¨‘Œp2ê¹ïŒD[îcÈHFCW ™ÊRkÕô÷© ›žM4ÈÓˆ5òï=ˆ‰±@Ø:-ôÔñ‰y]Dè{P—×PbǵÑl­G:#OÙ<»Ÿò‰za"¬[ˆÀ§@FNÀqDã5Pÿ{«^à$â¹þÜu¶jiÐ>…¹¾¥aúëÓˆæ.¡X±˜•_'€¾Põ¼4ÕW8œ‘9š°¿LûË„€8Š3ø`4€9dnSù‘eÊ–l{Mã>1‡CÊÉ ÊÕŒÌÉFÃÕ å%ÜxSæeÂòôfgùæù´­ÔB»|Kv×Íý,`>†Q¹^ 2ä7ˆ¦ú@9ñœ_Éœo¶ÆRõálp0ÆxöÅUD–ª÷ÂÇV›õ¿5ž¢¡yù÷Î9Žc²YpgV„g>¯ó8™âóe|Îô»zëßRù‹ÿü‹Ç­Èž¦?N®¹`ÇɈÜ?¨º‰ñ‚"»À ^`ºò™ÓØgÔN—8™ìÖzГ2•ügdcc™ÕŠE©ÿ>ÿžuµ‹ŒÉ¼Fh­…€Zƒ“ë¨5>@·¸ªP1ÈHF·Ð^àÄ|†ì72²5™]у¶§–óm²ÕYb«3B@XõH]Ìþ3ìG“­Ïد¦[ëD(÷‹XeɃS°96Æ)?ì‘„S‘;d3ê nsþ`f¤…ð•Ìä–Ë‹4³ºqIËiÁŠÈ|ø['Ln·[\?xPÝï,«$)gæKÓOeÅÕº”ÊõKVR«¾È]˜ŸéÎÜY%Û|EŠbÕ«÷¢ li<µ|‡¿÷bF0öy³ª²[Zv¼ýótÏ« öól?¯Pîgó+ÄgòÅJï\¿«‹ˆ'?x_ø¥—Ûý[Ïj~Ÿ’/^oŸ_¬ú#[ÃÕ÷¥ú>åâ7£VfÒ}ýÞ´ÓV_áXtÆìÄXÏÿ\\{¥?ò¼êëïëïÙøÉx$¢›‰ò»_ªb±Åf×Í÷<ù6Æš#ES$#†A(õÞr*·±²j©uYäùDÌ"kÆëHR<'`ä­ÀqŸrzK,g$1ìya¹Íòî–Àîvä4‡³ÙÝÆa¸%Œ°»@`¸MYûã4YyÊ{ÈÑÂ1[8C\Hgåjä¡Î?v?hÜÖŽ÷ÜW……ý¡¡øò@AHf««º#V»5–P·#¹û&cœ‘ýxlº€[CÏ||B—æ¼hö!xDÕBKô"(þAîzg¤±8_$_Ö]`v.PÍÿ]i"^+Ïú_o¹EdR¾1>’©Ú›ò # E2â'sW$c‘‹A2šJ9ëùrŸŠ›«çÿž ³¾¨¢}qs¾—½ÕŽÑ ({ŒFc2Þ®à–“‘  õÄE‘'«AÄâËWùÙ&?êг8bÀÊÊù´Ì¼`ÄB¦€A6cykQdA27D .`œd‹,1¢IE–MJµ¼ ¢V?بÆÅk¬>Šò¬<ÐD87ípý¹Í\^BÑXÑÐXíüÈ××\H+¿‘I…`¤~x¬Ì×Ëu1ÂY@0|®ɬý*ü”¤?pˆÀßx€·ÿx[·ÿÐúçaúñØu®<-·¯=¼‰ˆQÆÉ#Ôj~áéxÔïy“3«®÷œŒá\`L2ù€C9O@‰]Æýœ!}ÎE®bŒRE°Hæˆçòõˆ|OÏ&v™îñ1‘%X_l™Ë $æXgÊÝr©5Õlœ ^ Š„&B‰ÁÐsŒ£QDƒÈ'cƹÖ™»Aà SRšB‘»‚tr~ÄȈe¤ŒX„£öŽ£y ÑÜ œMyÁ*3arœŒ×[¯×¨†¹ýá¼øà»G$¾¼“[œˆÏ¯’A¹¾Uß ÁÉWÎg 15ê³ùª96êñjr§Æ§%/iôÀ±žƒP޵wñyA4v¾œòÜwæxì?;?ýý¥¼ô?Vý:…è="îmι”òÙšŒ9cMQžƒA(3NF¾?6P!Y$ p2çzþÿÔ#™N ›MЧ? šCqÔ´° T[<¨b ÕÈ¥Úó4rŽ> ˆÕ…x<“A,VNFžEÌ„N•a9o]F­ËG02ÕðBAŒ@Ò^äš‚‘s›¶6Ùó_#ŒÉdDS" ÊÁP`nó©•sD3TãßÔh'—ßHï¤[ Ókô-YçAÑ(‚¥ ‰(GfKë¤Õ™E,RÞs>ªZ„dÇL.{â‘5úàõolžj|ë÷æÄíY²"[²{ÊçßähìxC4ÈòK/½|ÁXEI¯/oûo¶Ž›ãsªÉ!—‚OÄŸˆY~GÕßYì22ù°ß‡@lªHPχ®ÞŸ!$(ùÉ8M¬h V¶þ]5˜ùõÊɺ*†è$Ü}j‰E,2Áå ª4ÑdcDBD¸,\LB@\õH!Ëb…¦\ 2r¡)/8‰bOBä lòùC60ÀYÁ"A8`ކgðžŒE(œÊ‘× ¢qœÊRì§8Ë?¡±[#ÿ˜,óhXŽÅΧEÎ$2Âläw IJD$å3b‘vTœ°ˆ0ê˜_ ý³XDÑœ¶òóiS£÷µõ¼€2?6úöŸ@4ñÔü8Cþàƒ÷ñ…W¾PG«ßû+"rŠˆ0wb¾çü4oÿE,ç[È¥ ñ"°9q¨9™˜×™%+/E2"ë÷ 5’1ùZ…“ 1éíˆè>ÿž‘Ÿ [i$0é_kré=xJ5 .Çß»úú¼€$ÃõUœ ™dD/ŠF ˆÄÈÑÉr»Ò»ZïÝŠ3"Jl¬˜ýg82BÄØ’§ˆÄ í ˜[}µFˈ#²œ˜¼ÐŒìx¡QN†F¤b  ¡/'#ˆFšcˆÆ<‡Ó{þ $ãÕåèÌÿëFÃD™w‘uOÝk¬¨>4µ•X«¾¶UX…€´|8³Yâ€N!7¾¾¹Á¿ù_¶óñ_âL Z´âóã5«O8ºTä–†ÿ´ÿ±öûúº†¬š¼«o±¿X¨ßôW†·§F('Ú"’븂h$?ˆ'~ù¹R¤-¢ñQ˜«Xeþw®'Y)ráf¨p3U=?3HÈ#w ³ËÖC*¿™˜eYÉCYáóïvIO¡ ˜4kþi2{¡-­ˆzžD9£™¸Ü~YPŒ,ùÒÆ÷7^È,œM®>+‡,GD…|Lkг¹#|äîÄå@!­€±€0v ´JœÔhE@À HàšêP.EC´r@eeó´{î^£_ÒPÏá¼<9ùbÛçó'¨Ø"âYâ|D#^ŸSí¹ãx´82÷*„¡²E$“ Õ£ù¡(€”C+Ù˜yÑrÇL¾o¯í¯GȧƧ5^(;G矟Ÿ³ò(Ve6Z¶­ïÌów"¯”“ÑT¾‡…‹‘|:äëĸ”dQ„â#’Tœ 朌*ÆÅ!SÚÉã(Vf¾žûü{FQ˜Í’9‹¾ Õ¸ '“L>Õ¿_zV¸+¯'cÊÖË[Aeó`€öÞΞ×°âYNV†É§3ä n![.¯ –´kJÀA{ L‰Ó™, øÛL ©n0 `a„#–)v1`˜êà~ª‘Ý+™‰t ­²:³¸G .ÿäžû¼ú‹/ÕXÖÀ›r´Ú'õ.! ùàáLÄäˆmŸïÿ´Üÿ“ À£ÿ-âͯíêþ›úSq çOdlžåyó|PD›€)1ÂN5Âñ÷›æ'¿Þ‰£;Wv Ž·G4ŠÔZÏÃÔ3‹–mž·¾¬ó!Îç¯ù$ÌPÌ¡| [hrb&&£OKw ")V°îw‹@åÙ0’™Ecæû–~™ü{ü{v~2H…S‰ò d©DÑd€‚‚É™MDF>¢°™è¬ŠdÈœýÝ…q˜4±ãSý{‘““O!oNhå™ QŸÉx B‹Œ`ÖŒd#˜Þô7×7vy\FŒHŒ`’‘Ç.#ÂȈÆùÅÈ +Áÿ¬Æ+ ºÝóІ(Ë÷ÜÃYº——8‡fyÔr…pí9áxù‚iôûlÄÒÈô¿¯ñæ¤yÿ͇­òKòˆÆ ž’bŽ8dkR¡˜zˆá”…©p3¡FP]Ýžúþ¦-É÷_ŸðÁÞÇK¿ô²C¸óëckþUˆEž§±´÷“ÈÕ|oøÍˆk y!Q?þî’±œŒ8bŠd”“Ħí+òYœŒÈŒd¤{eþAc˜YŽv^ÝÃß3âdøÿŠhŒ ˜“J9Õ¿WHˆ´^šˆ·´2’YC$Cݙس]JbxUŒöµœ\ù"!)?!{ð»üü{}}Y°Z'Ÿô˜£)H&"ÝBOü S$Ý@À#(ã4‚:ÂYh2¹™’"›1†Éi 6øœÆ £ÑΜ|Á"0åÿÃwà0Œ,÷ë~.¶<ÎAçÞß\_Ýÿ)ËbûQÎEòãk4ôYþ¾F5°2#AÒ6\ýDÙ¯ÊÏA¸U}Ñx´tÿ‘´ûæ¥q}ð̱ùјšèwevÿT¿¿Kó]Ï‹‘á80RGèCmU&ùÖº+È}T15ß%éf¥¸'ÔŠ°<–%NFêíjÎç>ÿž '£VYÞO@‹{q~â‘Íö~À¥+¿Ð¥Ìi€xE/Q‹ƒ™8ÄšZõÀÑ ÈMަ[F0À±XèÝB4¹=uùTÉy¡‰Xî%Ä‹5»Ër¸Èù¢ú„®ÇÐh Êɤ¼ð`ú,§@ åhäÅ1çEƒ³¡bÿAœâlfˆ 8¾¡±m¹ §ïw.'r.'tÁ,"”S‹+ÿö_®ñè·‡ãã+ÈßÊKˆÉj¦Êó戅â°ˆ˜#’Y~ªë?ÅÉ´ê÷ˆÄ#ÙРá,X9úñBCnÕ?¯»p2*Ÿ3E,l<â¬Ê[›Y?’ÛŠ¢aJ´¿c“Žs2Çɘze¾Y@|ÏÈãßXç°ÜD²š˜ m¢ù¶œÕüÌï%š2kŠ`²æ”iäP#ˆŠ£iå7ŠE0§Ãå4¿QŸž˜§š‰iWWҔŠ\2’aΆäwáf G3`ÈÜ †ŒXáì¦7HÊÙ(G#æDH· Veû¡–iô^ãïŠf8³š¯þò+xüŸÞËõÑX›ò q š/ɵ«éù¾„8ä~>ß÷×G¡TýoŽW)ÿÖ_¼ñC}?ÛË9µäÆxyôYl. SoODPåðZˆd–_#œ§âh–8¹ ¡>øþûxéç_®ÇÇscÇÆ«âð–‹{¾D8ÊɈ™rÏþlݪPŒp2•B+Ã!H±œÃÉX$“dÔœÌEÝádê…÷ú÷ c—%Õ p!K­äÍ€XuÀiˆ¨4H~]y°•ç?¬¬µ "áXaA=éó˜fXC( ªëå/p,]y úgó!·F0!ðV™È‚„<'ák&> =ÀViyxÖH.ÁiÀÐp µ2ˈ ŽŠÕ·7v¡œÏ¡-?JÅÏæ„FçócKƒÄ„p QœB²ç®{òœ/žøç `ÛLÔ9Çj¸Mwšs˜ù‰†oûgå–Æ?¤RÇæba>´mÄ‚ÓÇçw€Z©I?üõ¶qHù&‚›÷/œßèæÃâø¹ÈÇùNFücÔ¥p2ò÷Ð ëéO¦>XNr2ÉœädÉÈ÷(˜ü{üû s2Ð ^§iáw“j‚!dd çʘòju¶Ï\‡hTž#ntÈÈAM™c±ˆ¥hdùúaï̂՚"“ßÍë““A•›Iáxk³˜æfÀ¿—#Æ F2‘°ÃŠÙÜ`ÀÀÜ͆)#Õ`eZ5Üú€¦Jã…C 3ïˆU—{å^Âãÿò^Q,É­û{ÎÂ!še´„ˆùÒþYûŽÕ· »ö¼õïoü¶«ß޹þÓøíøØƒV}–ƒ™ŒÕ™Èöb}KÞ›ûM©m…Ö’[±ñŽÉÜ_UxÎ|˜=?;ž©R,ÛFÊÇÙ|HËÉ3¬p298¦IQÏï`î{gNÆ!™Š“1éì\W¿ræ÷ô÷“çd%„jž`>ˆ…%>Šx–J%[u„“Q„忇ïëï¼W~éåÓQê_’éUˆf†`d¼Ò EE0À$¿ãdrD“¢æD¨8A8¶ÜSq2Àì„L`ªf÷ø÷“ãdÕt55ÐÚjŽpš†æ»zô<†)1²)¿‡® AOœä “ü» –âß²ÀÑXÄ2å…"„ã­ç’dωªAŽ+J„ÊoƦs$“­Ñ€LúS ì&…„A bÂúÓ ;vÜêHÒ©µç¾ A‹¸_Åðj!–3bWUùö~3ÄpÆýZˆçÇTkÀáŒþ×rñÛ(õ}ûÿ"<üu´ëkr(œ—U¡is#‹Ážß2¡pt2Þ· ~Vá"®òk?œä9¾V{&šŸE³ñXˆl0›w‘ZÙ|·ŽÝo"܉“9pÄ‘%$C¨KåyoËgád‚åd,’q©½ÿ}ýýä8™ ¡˜TÊ#•TI•¦¼‹;.FýQVE#,Vg™XD#D_Èw¸|XTÚCkXZœNÙs+µÈ eF~rŸàO¶ž €ñ›[aº`ä“—c¤2B¬Ï(#æjè‚.ê’‰ `IQj«³TkÄG8™Ù¹G(1âÕ_~ïý—÷TÎIƒÜj¿o/y…4rÝšöœÊx¶k…hbòóàrZ¿E@ÓÂ1íóˆÆs2–Ãi!f³@÷Ïoðâç¯q}}«Ï]ÏëóÏ Ðÿ!-Ïg™7MN†2'# Ž÷“A¡è{*HÆ•ÓÔ|oÆ.ê2§NÆ~¿ïé¯;]ä)j$I³fž¹”z¢ä XA¹C2jBöPŽQ‘‘X•dD fÀDcÉ%äÌ¸Ï QB9D6îC>,„ÜæßÀ[´Ïí¤=׿/ý !b”u°ŠæZÌ’Gi×ÄãQíýF]XÒ>OPbMƒx {^X÷#/œÉÐa@X• –˜œO ®J¹D”:§<Ïd\4$O"6“&¬¹|¼\ëø'» „ïbÉ—Þhx1”稲=Û2E(ðÚニ° ˆ! |¢ç8Žxç/Þ©ÊG”z’ûà$þàij¶PÐ’ÝÏL–ò¾¿r!ÉÏ”‘Þùë<üŸ¯æíGiÕO·)?‘»>Íë*¿¿V¾¼Ï! ј۳—ûó–†Ü>ð‚iç‹”ÙŠ-†".@ˆíñ·ý]ÿ ¸úÜ1ô«577 aóÜ»›n>æýã÷À"Ä~ìøLÉ$¸?c=~•‚©Py«*#™ÁùǨÇ?Én}uå³'¿Ûr¼7Èó)ÈÆZ¥É0Ë–™r2Ñp1”¿3³f÷ô÷l8¨{ ¨,™Œ"þž×ÁåW¡È+3˜ëyËLÜ0MŽV‚(ijÞhü”tËŽ£6_”È–³)[] DD¥>˜…e”­°Én‰•­1€WÈýÈHm¤ŽV¤²p,@R„¢9?9MÍ }„¢«F@¢¡‰?“j8K Ó˜×2³º²ÀnE9Äòèëðî{ïâÁƒ¸¾¾ÆõÿxÍÕ/~þEl>·Áƒðèðð÷¾r'D3ãdÜžýi«¤ ÖhŒÕýÏD0õÿÞàá¯^ÕùÆûbäòpVRvü‚(ek¨æØê¯â`ìõfkª]5ê7õXDÓìo«uû®®7ˆ«€þ¹ úU@耾ï°ù¹k\=¿>Ž,H¦jÏ!Õónü ¢­8™ 'ã<ý•“±E B(çr2Z NFNÈôœLøYãdó"ÕGcª [•gk±b&Ë Ê4ïç 7À[H` ?1GC iti¾>Ç*‹ju–ö 4Ålmã'ÃœÄ Ü„øÕèïPΆå¼®8Ìý0E · ɤiO¹r0ËFÞB“ß !€û͈-Iÿ#8Ñì Ò³{ÓEÓ!^³*”Ôz•†f·>J½ÀÜÊ ª—òG<ã "yýë°ùÜ›« bˆX¯Ö]ÈŠB¬û5ÖýWWWèûç+åzÏ)؅̶O5ØQŸâl*«G©ÏÖo¶ŽšœRCþ«¿ÞâËÿÓÕ¼ý©o±½u¿šœŒ ^Ùä4ä½\Ê7²p3ʱ,EXoS]ß¾®g9À•¯v2ý›J¹«Í±Ë“l-‡ü…íŠ"µyáºB|¹¾yɯÇÏg7žUì² ÃÉ(WÃïŸE4]͵(Q,r2„ yœäd$ ³L7WïÏ'#ÖI@žè³hÌÁH¹#Y`±ÈH»=ó*:óTžˆr4ŠˆXsX™ Ê[fQ˜ƒª<)ˆ£F0ú]¸Í²å``H|Ù’ËNÕJ‡/;ŽªŒÀí¹DA2Èýaý»Í ›KAlÐþÉðh8{o²Ãrôgþá"¨†”€²ÌLýε*›qÁ\__cÝç…¥®G}_Ò~Õç-´q}}ÍfSM˯¦…Žq4GŸ‹~=±üÚï¿×¿öO Œ™ IDAT:þ蛄Gÿëáõ¯?ÂÃß~Xü|\ùŠc8Õ^Íþ,NFòmû/„1ªëToYÁ-¨ŠHÌ4C8`ÎöyEá@Ä9Óàlܸô|‚i «º¿¡ï:àúó×Õ¸-r2¡ŸÃáM¨c— 'E8Ü{ÞŒC(‚HÉ,q2ú?-'ƒŸ'ó ™`&”±réÀ1Ì,. vâ púY$ƒ‚X¦!#ù÷Ñä£Xo1Â(Ñ—³,H„(#]Y #𔲗Œ|‘Ó,22„$ˆ 0Þ×›Sš©$Ę2gÓ%Cq<d“Žcq­9ŠäÇG¿‚lD•!Õ¢ š™³Íó‚Ñøx‹eÑÓAƒÆ!ááï}›ÏmWQ‘KèÖëldD# Cˆ]̈fÕ«3ãÁbì¬êCz†g¾Glö~€ZÁ½þµ×ñæ7¿…ÍfƒëÏ_ãêê ×?w·ü>ÿþðÞÿþ;ÅJηß#Âf{4ò Á¥Zö¸=i:†hR©¨cÙy„3Q9aÕûÙHy‡„Yá°\ïžG #Ô —-'Ï3„u‘B2ãfû/œÌ±ù Ý4~2rô2;¸Š_Lur¦™§Ö="0B±Vd’‘Ç$H¦zÿË0Z?Zò“¡²àüŒp2ÉÈŠ(Ö]ÖÊ ¨ËU7€™µ™OpiÔÓ†ÏjW¤l»r=‡ëL£7Ï vМ#_Ÿ/O^°ä>¹AºåÅ¿ ¡g$£ û½–/sj­í2‚n†ÉXÖ ƒéʇ» À2‡c> ÅªF†9è‚RkÌ(0ß÷˜Æ§Ïÿ"¢_õÁ0rY?¿Fß÷¸¾¾Fÿ\Ífƒ£æëÚz]¬ÎÐàd’9ËŠ Ò¿3üT<çrñú¼ž‘ÖÕ×/\ç­¿~6Ïm°~nœÍ¾þHÇ¡ÙþæøQᄞ†“‘ú.rCÅx‘·ÞôÄLسхY*«2+3r÷Vf^,çÛˆÜ@È ÄTU7±æ‚€Þ!œ´HÆ#@ÏÉx?T8Ù2cÿù‰™õ}™È‚áNÉÿr2•FèÞ}‡¼d ——VŽë:ÑPþØ"§ÊÁð]•ßL ¹p1ŒT*,—Bû‚h$rQA4ÂÉãd4 R’­7F6{ñy1!b@ÅÑä‰#²áfBÞ*É\@­ïjn¦hFÕ8\„|¹Lh wî"ÖŸJ5bqÈ¡p ‡„õó‡ßˆõš˜ŸãõÏåm´¾Ï ج@¼öÕ7Žs2-DÐä(Œ†zÁhªg·sý¹kUtÐ!oón©ç-u¿Æf³Áë_t·öëxÙ!•£œŒE¨þyB0Ž«¨<ù§”åÉxêC4ö~ÞKNè´óÇ"hû|dç¨>§âÔŒÒÞsà1N¦‹³üêdL@‘ŒF{·FR‹P"™q2©¸rA.ú¾rösœŒÑ´šVf6–™"ŠZƒDR3Ó¡”c΢ äÅKë ü¢6¶Yü€Ù:°#ÁX™¡p*ŒhÝl#>òY /4š?ƒÖkÓ²5 ~:šÊ ZG¼°Pæ`º”9i¿œ¯ÓNFúÙó{cÒˆŽ“±¯>SAˆðc¾'#\ : ^fùú…¬é ÷rõÂÖÏ­3rÔj°_e'Æ;GxZY>DXj¯-#‹\™­kY./4o|ýÒþéDû-âp¬D88ÂÉ´ÔÔˆÀìÄ̆1Dm…–Š‚Âi%[¿ÉÅÅÊTš¦•ß ‘9VšÏOg=øäÉ“jœžš“a$3çÈr{­Êó\D2vºÉV0çd¡’‘q7×ý÷Áɨ†…‚d,7ãÏ—±å­¦ ¤¿< ãDS~/Ve‚hF2Âͪ˜gb¦Lî‚"* X¥eÄ“¯ÆP€l¹Äå$ÕëX“ÓT¬×DS£ŒÀBˆµ.›ÄÚ,ކV‹XIddø™M°!~à~‹Ÿ@ÎÏIÓsÛ"÷!:êéàáo>Ô­ 1>ˆl´Ñ?×csÅÖf1–­>ž7R~}¹ž[q9D Ö?ç š–lXçêò‡ó2*‚±’lým6¬/×¹/‚lÝ*Ôö·ê·ãov æVXþyàdZgBA0f!hŽÏ~ÌåõDMw½E(“‘ÝsZËѸöðü?°ûtLj†9!‡Li?‚ˆ9˜Ê*¯JÉå[DÓàhä½JPë1ád€9‚‘÷Ñž'£ ?ÿ[àdºÓEîø'šDcó-j#[ž`~çëXcÆÊ•«4°uÔ´{²’PÊ~2*3ÇAµYe˜Øf0P”9ãp©1Æ ¨p:‰= hJ:!ff‡"Ë< fK+eÄ"¥`D3î W%F£R³õ™x—Hlµú<<2ÍxÓD±¯'`õa§r¾ŠhÄ«h+çû=sո͞/{ú¿óïàÛÿþÛÙg"¬»5ggU«_õ¸¡›Šô—öä#†Ûÿs9&@ÒWñÄñøï× M#}õŸ¾R4|Û^«AÛö[DÆ \ëU6VGÒ««+ÄUFgb\±»Ù#€ÛÜ¿q?æ-C±2;¤ºþddË™_‘UanÁ]/Ž·ƒ)ï¯Á{žfëªâ(´="3'$ ÌıÞd¾¤¤ÈmÖ?»%Úš?2ßXѸÙíl®Öü>â!-~ðÁû5'4þOïÍž_~ Âãøàè…øÎÿóŸ¯ß¼…Ìx”ïL"ÂÍGÛü¡ï{ŽÄAŸö„íGÛyd/Wã™Üx3íN"ÄÌA‰læ"ædë'cÓ’ ¹ÀÊÁ”›P!-Ge¡Qކ_ÓÜ$sQ#™ ©ÿÔ# þð·LäF—f·ÐèJLSo…|,²áéÒ j  •Yqɇ¼ 9Í@R‡hJ(‹€jÄSÊËB#ˆÉ"(¹á`&J§p@4(‚Q?™€ÌÁ¬€áRd~ÂÙè,²ƒûé‚{PJaÍ:_§/´×ð-’ІiÇ D`Àn·Ãæj“¿ˆÇQ÷ć"ÂîÓh¢²PòÿßùÓoWÁ3›ˆÀ- ¾=‚df Hxõ_©ß’ ŠÄä~ÿ.£%gñƒéûëõ×/\óÖfyÞqŒüa ¬û5^ûÝ×ðöŸ½Ýnÿ ÊøÂ!qTy±˜úáìçÉê\8 ªÇËÖ_½ouè¡êþÒA4-©ˆÈ?¿9b¾ùdìvåyUŠéï)YwPò¸T±Ë$´‡Ò•P9ŠH¢˜/g$Ùá8\ðŽB¬¤«Ï A46sÉXÄã¿S¶>‹db—UáþïÉÞa÷ñÛoõÿã§cF0²ŸÅ0 utæs­´¼¼È ˜òpíÔªl¸càñu‡„j‹•E’¹Þ„·ÿìí;´ß´¯ÅÉhû•Ô9œLuÀÞ™ããå*¡p4”3Š_÷£™Õ¿`•ֺߩöùúEžx¼$:ôd8§»ôWŒp2@‰Î,~2æ;g¹Ýa°Hå÷™uÿþ™9»À<$ó c—±¦Ò¡|ø›VfT4æýf4€)§±¼¨xúäEä’¿4ùR¾# çr*»ü*ÕÃÞ¦¶\‘©’sù|=‚)×S)a~ßµiêvú)"ì~ÂXOñ–Ó}âX# ìzÕ¸IÇ1vV‹Æ¿FÆßXÑ,úÉTùfKÊï©óV™DWÞþpËfÜ ·¶mqssƒ››ŒãXÌ@ùƒ°ýñßúæ·æFÛ³€`Ð,Éé|,ˆŒˆ0ìvUåÊž0Œv7;Eeº]ÆŠ ß~³C0ó›iYI B€ËoE×3Çr.ÑA°í-âÚŠ¬œ#S_ÏrjXÁÖ—j„eÛÓ¡noo׸Ÿ—'Mzrý³[„­û? Œdĺ˜[—e….§É†)¹>Vi©WÊ gbËqþŠr;íB‚0VdÀÈåFÞãöÒ€H@ q0a „ÐSÐß³}µ3÷´š”Ä>KÌÉL¨‚Õàx+£È¡¼€S6 ˆæÍ?|ïÿà}åXÆOÇüqþdÀp;`÷Éã~Ä8f+¡í·xóß,Æ]c—=lŒkÿ·ÿôÛeáöv7;ì>Ùa»Ýâæãìv‘ãÈÕçò»Ýn¹ýquÅO&Y¹oA˜©¾^òù¹6ǧ‹s¿{>Œ/?¹ñÍ¿…Xö0¥‚h$š±Ôßò£™,b¨ó“G0ö„N ¶zóíŸ`"ÔíV+8F2‰£€WÑÖ›ªû¨U™œ|) ’Û±©üs<±;T#bQäcòåùk7þÝ ™ÜNuƽþ=£ód¬FEfIEÑPÑ(",#®_b{I¹%?‹l:^,ròM$CB!PQå{„&8•û$FTRÿÈí[@X ]ŽÚ& Ÿ#“§·„ Ëë ˆû²•#Kí99 ÔA¹‡Zö~ Æ£za¢YB¦þ·ÿø-l¸Í ÍDÙìtó‹NüâW ŒlíC¦§‹k¯Í·ˆÂ·ÿ"æ­;³6ÜÇ»w¸¹¹Áv»Í‹ŽE4È,ùU…jüýÉÂ4he•¨ÑE᥺¼}¾ÀÑØó~P×[Ê»úô„ØPòe l¬³ÎÞOÊ‚8bgë'4ŒŠU™(NØj@©ÏzúKyØúJýÒžÐA‘Lž&ŒdÁøyňe†@dÁXF<¶|0 —W?Ù*šœ ðìÌÿàÿñÿÛmñøïã_ÿοþl5þùKæeÏ0¨&–¿ˆ<jV­¨"˃n\/ùdî‹à®wƯè¾<ÌýL¿”Ä7òd̘æAàßÕºKòI?UdY('^ÙŒeK0º¥6e„ö„õÄÜKgò»q$ ˆ²0^aµºì§) Ç:/@è9]£§€5[ý”-—43æÀ[j²à¯ú,[ Üm¹èy 0ù\~{s“-±x|_ÿÆ#lžß2s;à­?~«:À,™- ­˜ßï>äPŸ_RµȈìß¾‰ÍÕú&t¡|`Ÿ‹èÖà0¸¹¹Á›ðoòtôõÓ‘öÆê‰§ó$[:‰Iª¶œÒ¾ÞòI·C‘1Ä)UU>¥åñ—ûËOÎû‘9¸-X•c~|>‡b™—wóǸ9TãÏSÇ« "»E6ÏÛ!ïÂy¼ BЇTd"`Å ®FP¶âr‘GFÔHFý ™…G?øÔ¼XŒ"¥'HÿQ}—à3å½µú½¯ã3ýÙ5å,2 h€§”…æ`˹GMz¶µÊÍÛY}é}ÒÂýŒ${ßrÿ¹õ™Lx¨5‘,$³…HApI ª˜Ä[fyA #a=å…¦'û„u`„èø 3ÒÂe^ ¢.4k^P/8‘€ž=!°âVxºP©"OóÜå:» :D åvŸŽØ<×Ã[‰óz%%š·ã.)ê0³2Ó…æ…Mq¸œòSÖcîiOØ~¼Í Ì9ýñýp[ZU>PÏs¸r†l/A*ÇrÝäÊký(×Uï7æãhL¶JÕ¶ù!ä6Ú|»#—®wõte¡©ÚZãeÆÃoñúqœž [gyËÏŒo•åq$$PN¢½ÈíÌwÁ.8 f¡i,0ÉèÁb…fqá”ôÑäËŠ¹•:཯â3ýÙ5åÙEaöPRª6=ަºž?¶n/S?̾ž‰ ×D¶åÅúL¸Ž‰nœ9±>3שµ™—k+±Ðs%,ÀÆ 8,?î¦cîåÂpB+³À(74Tý"F>I¬Öº”!¯,8#!PFÇÉ „8EÃÑ$ÕhÊÄÏD»¥‘ªñ·Vfr½<_”ú€ö‡†ãàr% ôDzt>‹ãHšÑ–=gÑ’§#ù¶>Û?óÁµí{ôõGØ}¼+Ün>½ís:îG ãP-0³þ49¡0oŸË/ý/[Ay|\y˱u¶~”òæ}Sùœóg&s^ŒÜçÖp0¹ò©¶:›P8>—fÛÌr>òõ€Æ<ÓØg¼ H¾çtæÍX߯²z3ã)×[.f¢r_¶R#JÀ!!±Ÿ\Q8ëqmh©ÍëòOÔŸe¶þ‹âÊù彂zXN&NFë5éO?'#Œ]Q­&¢p@=ú5–__Å6ƒÑpLýšÏL—æå…L¯Õ'nJ9k¶–òüaïCþ¿’õ`9—=Ø¡µõYè‚ýW.á2/ a¼¸Xî%áf$M@7”üK}9ñIšƒZ­‰C§p3ë){*Vf†„ÂÝdë´ÂÉ”4™çÖ<@9£½Öø«2ÈÀr»qÌA%íõ­óa€“ç¯ÈÖÜO¼\ä¼\ßO9Ÿ…>?üá‡Ø~¼&`Øg ³÷?x_ú•/Uæd¬²cý±ý®f;Ô²Þ/Ô÷ÓþÉó õóµçÏ,q46_&cdжòòù¨®oÆ63 lÔv…c‘ ±jKŠPj«2j×( ±Ýb›[Í•öÈýÕ: ÈŸ3ðw»+ȶ<·ò9SäÁ~n6ú²p2dËSü»ÉW+4·U-'ƒò¹-ßkÜë_wºÈSüUÐÝAPû{…D"ĵB4ŠlB}}`9(W¢[`r?Ô8Ï…Lpõñ‚7‰ê3SB^êõdkµ‘IÌgz#Ða,Ð44 |ô³@f¤êMN»@‚i™­¸˜5¡h?²íD®/ÞòIaÍ÷ +~¹ŠrýCB¼äþ¯rHŽÈ[Œâ'c‹œï“lèÙó¶VkÕÃì‘s;wãˆMßÞÿRyº{Y>86ßÌ·‡!÷7»Ê!ÌÛ·$ÏêǼ}Ñp2Ge æ0l?6”ï¯Af‹ýá`q*‡Rž%Õu¼¬§?L}U(Ãá¢;ÔfijHT;zj¾Ÿ3bŽ+„Œ8B@Ú§¼•ÛŠ c©oŸ_yŸ³·m„ÎI¥=@¾ÅÑpÄŒZ4ýý8| ò!™ú‘ñ¼¢}~/GÊïob=xÔïAýx$c¾v+«Ú£r]°×™ëÕA‚c^`6Fýdò•AÓÂï€A4,[D#ˆC>È3?óá_ñÊ 2Ps¡ ¹…pÀˆˆ­5r›" µ|QϼŒPøœB*Ñ‘Ùì¸øÍPiGËÙ ùÞÑ\àNÄDGy`¿›¤~?Ü®”*+3ìͰÞ'6{ÖSD¸-ViAÏ㘓®*Ò¿Ö˜—4b˜ü¹ßŒ„`i"„%DÓ*_i† ?´ÚwÂ9…hVræ¥%wîzß?;þ­ûÃ#H›9¿1>ö~³ë—ž'Ë‚Hlþ a°ì XÀi)«½ ª>YŒÂÚôÓ1ЍUfVn­ú/â¼¼oϬ}¨ïÏõÑĎвu• 2 ²åØ_Í" ,ò¸d0 ‡û€A,Áü>™ßyQ?‡¼•ÙÏŽŸŒåVt¾…$€9Gƒhø:»°xŽf‰ë~årFS#‡¨ƒþž,æJ‚Ôk¯Óâño<ý»–? µ¹—N¸y@] §“”x‚$„UÊ\Í%€[BHk‚r5b,ö)§œÇüÜhJÕ ÙädÌ8Ïü*çâ9)­FgË{ÎÃÊVãòõϸ ×£ÑÛvå¤>Ï)Á´o‰3ZqH¸¾ºÂö£m¹Þöo‰“ñíŸòw0ëÝôãÑà,l{†ƒóÏ»5~Þo%eŽ¢ò§‘ü‰ê7sb¦ï}£~áhõÔ—ß›å¥~˜çgë¯Ú—ÚåÕª,Õ÷áûŠã­ä(ÌÄ;yümäÊÓßÈv¾7ƒìòÖ\…p€eNFwj®§:׿ÿž¡ŸŒ,"£Ll»Pe‰=†hf[L0ˆE’Ôþ03²QDÃåÔ¯†ד3Qò+Æ  S)Žäñ£‘…†ýgªò‘jë§cüdpQ“Ä*‹‚x.H”­Çn%2@A8kŠÌÕäü0òy4'c£/CÌN£>·Ú¯ÂúÑ ¡S™ax„r®Œe?>M}¶½×A¦ÿ ˆícNò¬bÙúZýÑ÷Æ#D‹àd<ìs¡:_8û¼´¾Øè¿‘+NÆÜßwØ-G¯ác2ãD£ÃGã¶ôj?{?”ú¤_ðÏ×·s„5ãhœ_Œ3›·çíH;Á„ª>–ùˆóÄÏsv&À;v>Èó1ˆ(ˆ% øÙ´Nõ=­ß ådÌû¤õßÓß³A2‡‚ò@'—¯‘çTˆf†\袑Ô#›aáz‹p€ÙÞóÿxÊ Se•&¿‹U›X“¥LîûHÖÚ,/L¤ ñuI¬Ù:{¿rêX–ØfØêŒ)ž}ÒH9R²ÿÍX8Ë¥ ùX¬Ê Þ¢á:ßk¼—ëÓ°jZN¶fIã·òRù¥úÌVIÝîÿÔ¸ŸETKVq r¿êóB>’€á\fVeKÎ^ß<3Ôˆ@d02ÕõùúÕ|™jD#ˆH¬¸XƒoÆ ³ãqkÍD%2€ETñÈõʉ›Çb—Éý¥~[ÞZ¿»Ÿ\_!,‹Lþå÷Ìua¢jè–8¸:“æóËå<ò±È(åDLN“«×ï hzOφ“±ˆE8³ÂªHe%éA4¶¼Ö/×£F,ÕcÊõ[+´cç"9š¢ $%õÁH#d"÷©ycÖdý‡$VnŽ”ËŽž@,þ.1äÔõ°=pÁhMÐØIå$¾Ì øóZD³™{¾[Äé4z,p"!t˜!Žz½¼ØÑªTG4ÖY¾G(g×wäzÛ¾¥þ-YÅ‘×béhÊ)ŽI‰"z° ’é‘ƥçê“ËgãMpˆñ%÷¼¼ÐXGQÞ:+²Ï”£¹- E}½+Oݦâh û1oßÚû¨ûœhüéÂÈ+ŽŒ±R'㕟—~žåò~!BI|5§‚9"±1˪Ô^?•ßuk-¢ÉÉ(’ mY¿§÷ô÷ ‘ ªdqÀÊ N墱œÊ1M“IS©K‡ ÂéºpëOe%fýqÜ})‚R’5 ¤Tä*Mu:@KZ xà°à@9©Q¬U²?ŒMaì÷¡[%€E4i–MygeÔD4—†Óä˜<Ñéòûò¡±št¥qž{?£ñ,ßâŽÈÉç·šE B+ l5ÞA$æƒ_ÕWí(Øú€r⣻Ÿô¯B„r½™@ö±Å|¸s~í’n‡¼Øˆ¬±Ã\¬³qˆ •盆!Ëä”åCÊò„ŒTRÊ ’äeކi4õQöìÏ÷Í é”´32÷{˜äwâ÷aPy¯PÒfÔe8Ù"Ö$ƒ…ßµž„*ú²œ+Sq2ÝÏ4'ƒ»!šŠ£‘”‘MÑZu©¿‹E$Z×ß¡ü“ò lægÓäXL}G9¹>•ú}9µËí ¢É'[†É"œ€¼Tä…¤WM†]­±¬ѯÖ@#Ë\ÈÁO3¿˜U,ˆ-#ÏM4ä+¤#xØlô¥_ŠÅµˆ@”¿SôÝFzá¯ï,?šÖýœ¼ÔΣ±ÔZˆgÉêÏU?C(žs »¬U~†€<¢‰|=ïDÈóª….Úq52É!Dâ8œ³‹ nÉ G»<+ÂÁìI‘r’^Ô±Ü!»ð÷‡ ç;e9#yßòõѯA4ðrg8¤bò­Ú£/³Âé­Ê~†8Ÿž@4M«1™¨‚h’‰ÞŒ¼ôVõŽGîOȘÿ "©èÝ-` IDAT[‹y$%fÑ•u™“¥|°2ÕÈFŒÜ×Fwä¨fÜ–RL~!ä(çò¢ä‰ø(W(2Ñ­6u˜”ØNâh ‚ÉíÍ×GÕl•üÍÇjÈÞê –0x—úhw1Üáøèº>Z°C4Ÿ A‰Ü}ÆërœòvËÌjî'#ãU!›oç,Ÿ²Õ›"V3þHj¥ÖŒƒh$_Í ±Hfö¼Àʈáh8HjF¨9›¿÷ˆDdÉÏ¿çò”ÛG ‡:_"°Lûü~ŽüÞ<þ#8ä™—‚lc™*ÄÒò{ÉÏ¿¶þ:êc®S„S?Þû3\ Õ²úLj|OÏÆã_˹ˆ¦‘„ˆæR6‘·Ð.û©ðu—æ:‹`ìJ]!AR@1'†A á$‡hœÜy™\tg*ù6ôEv¬ /!qÊ)ðÑËa"¬Ù §,$¹ÞuN†ÈZõ@2¢AÀšå5Ÿ“5®¹°ÆÕMÕkÄÑjÆžSÁ²UV˜•G­‘[ Þ" Ï,!  F *£F@»¾“×A\Àr{!+‹fiÛ ã·„HôúÉÌž—‹ UUyMmy}^Ò¾ÎN?|i¡ºñVÒàL€‚8ö©F8ûœŒå\€|}³~)O†£É MXÅ“ àÈÈVJ$‘•=¯ E4œ§QæJ0ó¡Û,#ž"’Èîɉ˜R¯A0%BG¹þ>ÿž’9Xšù8Rsd!F2AÙÜÙ ÍX•uÀ áxk4ëGãŠÞ‡Œu}6öÙ!ÇJƒ"BFh%šœ¯!/ ¼H¤¡ œ²5P#h&xþ™ÉÇ.rZÌ'ipaRÒþ3c£WwVÃ6å+¶Ìƒ«Ÿ »<á~°Æêöúï ÈÂÇî²[!Ycί˜[%)'Ñh‹CYm'¨i󜃑û™qóˆÊ,ˆµ“5WF©Ovªç…‚HªúLùªÿT#ËÙùþNȱæTüx”ƒqã+æÖp,‚`È"˜Ê¡ÈÌ¥L¡@Ë>Ï-o9™ …óaN'Ý&½.L 4 â' Dc9M ™«I9øeÇ6DÅy†ê:.—ú¨ÜŠTÉ0;D#'bõô§²à´Ô}ý=N†ˆå.ˆ%_4[Í7ÖgR(œp418dbêk¥-Îe1 DIJµV³F þ;æÄKÁ±Éò}#€˜±‹ˆ¼Õ'`Ý!#yË,0ÂÉVga•‘K`ë"A4=#˜>ˆÌ Ð¥,D¬Á®ú<˜*¯¹¿¬‰)Ò<Žh®^z 7?øà´‹E0À4ej#« ( Í,ÿTýRÞ#¹ëéˆÕœ“«@ÓÊŽo×_³ÕÕ´ò Všî}™ù½C@¶þ‹áÔ~:@ÅÉøöëB öì/þ0sÏz'%Èf¥X™|‹*ÄbͪiŽXlýì(Zq2·„*ˆ†(#Þ‘   ™ÔêLÞ—œŠ¿ #ˆ¬è¡|ÿ:TÜ`A*ñÈB"å§Æï¼ã3óôï ×3;ÓÞçžþž­ŸÌÍ©r ÖgÍ7m=‚X Âh!û»E ¶œFàÔ#›Ž¯“ —ãübªH|}´Hеª4Uˆ†’±: ˜¢~PõÜE4’®³õIÊÍè^|…0CA0üœ+?‹Îù‘ÈDõœ‚iÿ"¸3 Û"—…ò“ä·u}%ûëYžõ{„Ñì_C0|²CxÞù-_çòÑàÄ̇ŽXB>{¾‰@Qúæåg‘ôz3~¶}ÕøQ}"%P{úóB ‰ ˜ Œ,¨ A ‹Vb¡Øú„“±Vg’ï9™‰@eµÿvD Ê'ÌrS(ï‰ —aÊÜŒœ£œÌÕ{ÕD2ÿ{ïzK’‰} ùƒ¼ð Þƒ¨‚ènaª‘Áx#˜…j˜…GÌÂ3xeaðŸÕà1^offa$ìiÆ´7BÒbpka\Z¤µ`L—@%Á+Á½ðdÀK'â;'ΉŒ¼¿{_W57áGüâfddĉȈï‹sNýÞ0Œ$íë?':•]Oÿ•t=Üoèù[^wò“2ÈhfN2£6ÖgÌ$ B3á„Êl2#P:› u¢áü$œL¹Xgó¤ÿšÑȉ›'Ž/šé0S“Ÿç6ÙƒìI&Ž|ŽÌš0ƒ˜‹0šxù´ý¿!Í|žÉ´Ymñ—9>Óiû}æ“èp¶xaùyeÅČƴ'#ð׿ø=|õŪ? í fC¤3) "/ ¥¥e CÏKzÞ­—­¤L~Rßd `Ê?Àp<ÆÓ‹G:™žN @ãÉ/òõt,·ù¡êd¬®¦Z™cb†*ù³¼‹¦NLMûåtŠÁCke8Ð gMU'ó®NDŠá¼]Lú P¶†YRÚt¶O(~2E#ºÕÙ0žÉ4Ü ó(À ʪL–´ =Ï+B§¿õ1ù+&Ãå¸ÑuŸIæc™ Ò+¿§^z¾¿Çl²îƒu6O[')ÍÉÉ_ƒšžÓ’ÎOÞ³} (~8„\+3¶.£=ÎÈJ­L@ØêÍŒ& “YR å)þ1f)f38Õߟò3Êy2í=úŒÆ ä׿ø øòßü)=ï#òæŒv‹àKœï:È8$NÌ£AÔÃÁÁü£üä¾B¤ú¾ÇÒ¿?ol&Ç#?p{ Þç÷Ùï‰Ï[²íõtj­ÄRBceÔôü”öÊï‘ò•òUœ‘·jÿZg#í¶¦–aˆŸKž`#]J6‡ÆŠØOÆ2¢'?™´ïÎE'3§¥øãà¼h¦²¦2!$ù®³1NÓY,ƒqÂÂ4ˆ©Ç“~ŽÎ TOÿˆÉð÷ TÆô`2¡b4Åê Ä0Q%} §“ŽÎ̆wàð ub` [«±Ž‡ïÄùåü'Š{Ì…Oa,Û{ÊÉ•3P¬Ìòó)ßßÎ&¿yNkö—YœN3ð~›XNë²éZÔZÿKÂhN•ლYNÎi3dz|gI˜Í[Ãpʇq)ŒåÄf¥˜·û}UòÊ@u"&£­ÈAøþïÿ~÷~ˆ?þó/ðù¿úüîü¿õ¿}Ÿ˜¦ã×aù¨Ž¡±Z2VNÆ“¼av÷ÝHÇ2’F#Œb—‘Qzáä|¾úâ |üóßu8=yY†Sä0–§Ó†Ê¥Ý9ÿuQ UçG~4¥=µ‘E—a±¼Í®É24'ZŠçÑÙÏÏoFŠ0§¼t¶¥'«3¹/Œ)‘Næ’¿l{á’pJ )3Ÿôö‚$JžÒÓ¶3@ñš‰±Hº„–ÁP¿°»2‹\U7›œpòô‡Í?ÕÚünx} ÀßðyÌ¿ù_ÿæórü¯ÕÀ² †Øš'CñÊ”®¨þ\(\7?ùç(½Ä5">D¶üeí9)¤R&Åè€mbÚW™8r=$~šæMÑ8aÛY1ò91ÓK`^á„9Íx5͘ӌÙÄ_ ”„,Hõ#m5¶"›f]? Èûÿ¿/ðÝÿà»xõêUIs~{ÆårÁŸþë?ÅoüÝÏHîÔ>Ãृh·ßIþpžW™÷¼é' v›M?2:͸e­eŸ—t|MAþå¾×¶ðãŸÿ.¾úò˶Ÿ_+O3Aâ]N'Èœ-i¢E9ʘ&ð•Òóc·¼ö0¤È A¼02éðŸÛ3;É”Óç R^ú6k±íû.ÌÄ O†‘Èc ÿ.ãÅ¢ê#+&]çw›²?[•Ù¥4É·L80÷sø'ÿϺxN¹“u™4`þm”ÑX“l:/¿àyû\Äd® yâ0¡W†É‡Xw‘1+j~ââÝö(ª>iI8=*¬^+V»ë2‚µˆÛîÞk×lóóé/Š×¯_ãå·_âõwrø3¯ñúg^ã{ÿÑ÷ðƒßÿ½Zï’?†ãÆŸÁú9T¿†m\Œ5Qæ5÷…÷²Zò}ÚC¼t_t–Ñðò^}Ì€Õ0#o7è¯þâ |üó¯M{lù(†(ùÑÀÝX¥€ý¼¤¯ܺÝbòËïãôªq<ð9]}?é`K\äÚs<@ñÜÏÌ„ü\ÄsK' ,3‹gûΦ¼p²¢ìÔQÎk9i£¬ÈÊ Êøpâ|×·»3K=†¬Êd©,—Gú™È ~§äIï»Ñu&s*h—Ñ(Äeî{é#Ô8 %¿¹—O/Lƒqüh&l‚|YŸ,:ÌKce—ÖT¸93™9¼ƒ™sÈ`Ùã(AW!këíy%Ÿfè½®È ,§ûô?Å'Ÿ|‚Wß~…—/³9sþ{ùí—8½8áå·_âåË—xõíW-ƒa† Gç!kìÂ(ØbEeÂPd"ær¹àd˜—çWlVI+B«$Y£o¬ÀDg0j…Võ{ušÑdùÿø_ÿ)^ú½öùÂm/W6åòÑw×ì®l¾·…™ —×î@ýì$é&ÄŒÅ0®Âòïgaê9ýY¾óýd¾«4)·CJK¹ŸÓÍ@’=ÈŠŸj\¾ßyóèO3¿O·Ó…Ã'`±~0‰&–(¤ïË2šh'€fÏ3ŠÏ@ÕÅ8çLjUYãéÏùÊx}£ëŠÒ]”ó)ò-5cFPB´Œ¥›>Õ~„ádÓËÏÉßæ[¬à(]¶zÛö†’o¯Ä`òû-Bz%LD&a,Y%Êú9/ ÏOÑ¢0@yÿfåx拜 âÕºë™ÿúç^cžçm‚q®¿ý1æiÆ«^á“¿õIË`B+¨S½ï2 TÆAºƒSžNy íŽçûéŒÓºmB*Gáö’zMü­UÅ[¡Í¦~T‡Ñ4ò ùù£?uäGÌÅi/ߪ¯2£†ñœÆl;=Èïœ?ï@åÆ,çªÄ~T\ßMrþŠ ÿÍØ%ÿ^½Äçr_V8’ùþe"):œ¦<>%€vOÒ”ônÊ™Ñ`Ba4˜óù1Ì`&k®Y‘‰˜µ¯Ëh&bz<¾0£0ùÍ&¿’¿±*óÎY@VffœµçÕÜêº#“9„§”å€a4°a0Ï»LísÌ<ÊÕÙ½Ù2‡¹ÔðR‘PîøsFVsFTÂ\ ƒ!'/¥ÈDKÖÑ+2¼ÍbŽª=«(ÿb%T%!^0ÃÐÈUë¶e’Wyà‰®Ó‹<‘¾˜ü5"®¡arHa™qcÙt+—<¡œqÊ{RÕðœCf4g ÿ^u2¤ƒygt4y«µw–”ÛÆE~€¶‚âû†‘(¦è2’šþû¿“­ùþìGø¿ÿðsüà_þÿøŸý¶fœ/}o•¡8í+Œ†Ž Ö'¢žˆmï);x:™’?1”üü¹Ä·úžóï CI&,LÿBù›N˜~¢ü¤õ\™ €K:+&sÉŽoßqšêù1Kùš‘ô<ù;a‘w¢çᤣæRÌ(™pÑLf÷ü˜è½Þ꺣NƆhJa BS:€ŠÎFøpo2ÉúùÎóãÆbóót:ĘôùËv^ dÍÔ2˜ŠÈx×bñìÇ œž2ƒÉ:ÙYÎñ¨ºÀÕÉäµø‚˜OÃ0 b–5÷åý‚³˜•zׄ¢óïÞTë1˜‚ìÄéÔ2 ²nª:™í}²DSÍÊqf<5¬VS†ÁD~JçB€†ãÀ£) QB®»ÀŸüÙðÙ¯†Ï~ý3|úËŸâï|öwðÙßý ¿ñ÷ßÿýßóýRÜö5:–F‡ƒ/ iiÖÉg¼rL„ePUG)'DJvÌHrz£K­: šèÑ £Æ0g€'º™À˜ñ 2¤-ò^dù}“Ä·ü– õLÛTËÒÁ(~m £qJÃ``ŪW'`šü“Éåbª:?Fúœü¥<7ºîg]6!O¥£‘û¨}VäÝÜ7kÏÝtÃa¤xTGÓ0™´U„t6)ûݤµ2f6%!®™[á=€%ëdÞ&“j|†ÑÉ⓵xµ·0×íðÃùíÌÒ¹\.HkÂùío¾zû‰D:iG91Rÿ½7Õº1†Óè^˜¹„:›ì€'; ¼³ç•ÐûÊnÀõ¬ø…Œtý–¶¾w¬Ì<+>a0ŸÿÙðé/}Š×?ÿŸ|ò ^ÿÌëÍÀâõk¼~ýŸýúgøþïü C¥ ¯mOméžDºžíþɴϼ+CñÊ€–ºÖè~ÎŒ¥ôÓT¾ .GѵC‘sZ7–±”¸0Í|š*S*=fmeVÏŒ+OÉ2’§13Óx×X• ƒ û‰âÖM€ ŠË‚€èbzVeĤ¸\e'^wÚ»LNÄhä~NoÃ2 3tàxðœËX’y>Ud$ H1{Ÿò t0öýs®ïœ=ç5cÉõsM³ê 8­(:¥£I•©âyEHo†ƒÊdú:‡e4Àoüí_Û7oðÕW_5Mz—p¾œqùë ~ôg?ÂûŸýÃv;LèÛ@«=Ý­';´ÕV9/d)Ce,™¡ðý·gœÞ#/)¦lm¶Ô‰)3™°Úü—–Á(ÖiEGCõ¡²±:³õ·ŒÃÊMøüþŸþÒflñòåK¼þÙͪïõϾÆ'‚×ßÙÌÆ?Ë~Iݽ̤¨öyçûbeƌƉŸš2å¾8öêô–±°Î…Ë#åÔ[!Õþ£W>’f,ÌPHg“rùت See"Qßó¼-‘ñy1¿™¢ó`ÆÂŒ§X§1Ó¢önÆ ÊŠ 3ŒÕI?éò¶*³ŒèkÏd€–±¬Äd¼ûe –çÑ2˜ø(ãpŸsòŸV7ÃñÔy›O.ÕŠ¥0ç9.éJf'ÑÑðÞm '½Û&£rÿ]gA0:™ÉÄ¥|ÐéO)áÇñc|ù—_â«¿ú —Ë_þå—xóÕ|õW_áó?ú¿ò~Jõ²žêä'!~&+Ý‡ÃØ&O(¢K9%a r¶{Îæ,øâ?s–löœ,—7•ù(“ÛZ<ÁÅ*Mt6o«¹5Ö€±ÕS½Ñh¹4:”üû«¿µP¼|ùŸ|ü æ²¹)ðòåËòûË—/ñ[¿óƒ¶ýDΊ1š½Ç˜ÑÈy12ñ”þÕ_Õ^v*ý¶raÏ Ú˜Ãl˜Ë¬F‡qlÏ‘•&çkÓS}Îù¹e­áRúªVk™Ñ$¤ºçMu/2TFsÂót1ƒQqiFaeå¦þ^&  ±*ã÷t­Êìûd¾Ñu§½ËrXJ ¦a4¿š2BÓH¦ ™MQ~¦|/(a46_ËX&ÉŸ˜Ú‹ áͼ +3˜<ñÕÍ*f4§`zÓÑÀøÑT&# F˜ìm& GŸïá P¥3Y4ÂõwJø'ÿË?ÁÿâÇøâÏ¿(“Ë÷ÿ÷ïã×~éSb$öyŠK¹Êû2Âoâ¢`Éš¶‰vM›õ,uâ-~6)•‰©2–Ì|Þ&œÞ£˜AËV#J³&ð^VªÎfÉÍj­Ì˜áˆ´•¶nÎHm–rIý”5ÓŒÊ\$^˜ ‡­Å&’ÛÓ Íš}J[{Xlú üÃ_ÿl+ÏùŒåí¿ð×øÿï©öjuÃXvüJ¸<€9Ã}c§XÎyâ(Vg¤k‘‰FÎr7º›S2;¤„Æ/§ìDP':¬õ<’p7é’~iÏdüfÂÜ~—ID–¼k~±Ýý³¯¿'é·€ÖÉ9ýa‚>_ÌX*/÷î7›_Í©œ¤Zå2 Ò Ä2›Šä+ƒ‡b.gf ÄX–äÄ%ýÍX¦^ˆ%`Óžfå?“¦Ê\ÎØÊ#º›s^rRžÿsff!ߥÇ`$.Ï'ŠKûÉ„0¡Ù«lת̌Vwôõ·.ZÁŒ†™Ý-¹ÑÙì0k%fóó=_ (ÌïóvwVå©Ï«µÍâ/“‚¹Ôxr‡ø½¼ŒXŸ…ÙÌ+Y™’QˆyÎŒ¡·†o«Çh„íÜ/ñƪ­*•Uzpy—úþiÞDv˜ÂöqeÆr’sc2ÙYg#+r-£9½Ð «a*ƒ1ŒG¾—Â`òÒ:?†úÓ«²Ò7¼îc]¦Ö€9ô‹øÕ¡šÝ”ÒnöÇkÄW…æù伿ø¹Í5®×ŠëÚs£k1ˆ­þ¾5ô²¦º‹*¶ôÅ“_ê¿B¬+°¼[6]0w¤“A‡¡Ü:ž“Y¬øåª² Ÿ‚ß%_’ìõ–d7Ýw¬[Iy4ÖñC±žÿ+ÊUý`²¼%ý®|:Vg€f¾øó/RÂEÌ·+¥„Ëå‚ÿâ?ý{¥û»3 c:ùŒ@±êS tFÙûNÒ¯©úÕ¨v µ+)k̬¾Äa)«S(~eñóûjþú~Jh¾Ó ½ßÙär¡÷ IØÂ ¨œòy9õ°žü‹©_O'ãúÅH\P˜ÁH3Ê{@+<K{2ƒÉ¸ú믓QŒ¡”ÒÉk4{¿ä·§Ã¹2” å…WNŸ”§³ÉŒ¢†ÖŠ&™ûuM”­<2y_ß;OšóD¾¢„m±8me!½$cå” óA~¾ÜÏÊÛqÛôóþ}(:àdO+˜Ê^U3¯±çx–Ç2£ú3”ðTã3Êy“¾¶¯ÈÓÝëLÉËÙ½yMŽ 8­ oþݼùê ¾üË/q¹\pùë ¾úê+|ño¿À_|Oò¨°Ï0X©otßa`¤“)éeï2³ ¸e­N&gc»e®Gü0 àPtüP|ÌÇ0f ö$Jp~T¥#yŸ—æk2g¯²­Ýtýö¬Ê¾:a2£©k¦*´ E1˜Á°ÑédF2Iþ6Ý^Hå¤áùɨúlÿØ# bhŒ¤ŠîÁ(ÄÅ© f KÍ'OšAèÝŠƒ`†Àò-í™ðù~ޝþê+|ñç_áÐ% IDATàË¿ü?þ7?ÆþÅÊ£QéO”ßÊ:°Y1LÈV}Ay?+T+@~_Þ…¹"d͈4ƒ©ãƒÇ@[«Îˆ±À0–y†ò[)LApëHÙ0ö[Ï`›ôC!•›™Z2õRT"9lÅØ¬ÆPœÈ¡¬„!ÖaÕGAJ9å×AÌ ëff<Ô^]Àæ÷h†¢HfuÖ3^8Ÿ¿BÌïÈC^¥×q¼]¶ßVF“²¼6yÈÞSiCžkpy_'œídÂm":ç‰IBYbI›Õ.£Iy ²ÈG•?i?–§˜73#PñFáÄ¿÷×ÛÞmç3ÎoÞà´&üÆò«ÃÏoñ@'1˜ÂPÏCécî]u‘€ÒÉ#q(„_¸Ã Øã¨¿wCN—•ä®–÷<(n™…ÞnËUg¥ÃÆïÅŒƒÅïÅÜg3Ú/¦w&—¨ãŒÃÀ¾!Öe–ÉP(´±réêJ ’Z?ÄxvÞ/9×cM¦|¦~d5&éçiÆŒŠàÊî̤“9•÷µŒEKSÞâ)Ë‘'щÌyàT ±':#fÞݨÝê\Ä‚”ÁÍnÄù¹ú|~ÿjâØ¬ÓòL ù”åÌdr|¦œ•C&œ9/«|tÚ¬^ÍYgœ§ÈÞSl 4ɇ\ÛËÂlNÀ‚E×Ç«/Ë“uJç"ò´ ²ÈݽÈXÞ‘Ÿ«“©õRŒ%Ñ^dV‡”ŸküžJzÉo+_ÝÝ7Ü?*çs‰[†P?1Ùñ3‘ôб8ß³ò#‘ †¬°<Ædu<¡ÎŤo¿O'fÖšLï­TØêÁZ[‘4ˆG½f¤E<Ò³Žæív&ùw<ÙÍѹOeBhî3ô•˜Ä©á²ÕÖ µ»ñæ)Ì aÎŒ)Hé’Ì9ïY%ñ%Ÿß±`™ȹ' Kf4‰Î\ßüÒœÏ\Ï¡ÒѼ» M)ç_ÍEÚi!†øŒ±<«ÃbF3¡‘ÖíoßJâ“s_Aw/5”%ÓaÎbò[ëýM÷°õóÖ&ÑwÆÌ-ƒAË fa‡óûT¿„–¹4º“Ï…ò›9]ÒéXãÖ'Õçcp…Lj¬gÿ!«²" ÿ}3Ì{oxÝÉO†Ë^ˆ*ȆáÈ”‹ç…XJ™¢ÝœíóÚû’ïßZ„™ ëd™«B< 2R1åßË+mçˈç{9Ø Íž[ ßÂm÷®‡Üb†ã1—eËŸ–’˜á(G¹|ÄbúSß/Å` ²ÎfFµ6+º4¡b64ð‰EŠÒá$Í0,¢UgÞ³Ž'Õç9}´æ/ŒJ&ÚÊeÛeú\ü{Ä:m°¤K>ÃýŒåIrBZÒ”ò¹"©êjØê¬0š6Tº èh¬ÕYÉ‘ú·Æk:W^9.çá¸òé3Àëã’ß`þÅÊð½×Ü€‡˜£3S¯aýÞã ƒü#Çî…¾ÃXkµéàûD –qÀè>L}¼çk2å°ïYÐzöÃ0f2†aÁ)w™hœrÞ꺃Ÿ Z†R↓tú‰òë1 ÝøÎ{…ÑÑ̇ÊÃÌh’zj¿˜„íÄ=®?{>c­ˆ£œxg'^sÅ–~C›u”XÌ'‰o´Ld'YªÂÞâ‹f(+vKà‡Á †'ê†Ai+³¥Ä«Ò}ær%î§mL™8N–fFa,ç)mŒ&ï9Õc4"/½{oµÚ›A93 %OÃpVl Ž€†Ö‰Ž‹HÄXˆù’Ÿîï²'œ»4Vc·;?(ÆuÒ F¬ç8Nå9Msö3’þ b4©´Ý}9Ò‰àìf,õM¨Ÿu-òý ¢÷¬Æc¢ï¹Ñɼ0éYGDŒÄ=áRÒ™|K~†Á¸~1ò|Ö)uýbHžÝÝ–y‚‘÷óøsÃëyü'?TinCÅ|:ù ‰±ì•Ëûå´Õɘtö<Œ%ɇ¢£‘ð4UÄ’Ö­3,y¤êO3ÍHKŽËšwfÂ<–wiSH+w4»Ë’VëG“ë©tIMê~d…TühòžcäA_ jyÒ;ÒÍ;ùöQp¿aDa« )î‰a*ñºçÒiF±šJke]Æaï³ÅÞ·~2œŸÄåyË`„)¦â™ cÛ©Øä&馹Z—1£Éõçe«?|æâ0šr¿ô‡ü|YÚYê®ÙOõwÙ© Ê“¬ÆX>KeJWÃíí2ü<3/ýűúCÕ½4:™²5Œ0 ^ô~ÖAÁIŸu7›N¦–§ì¾\t‘20W†Æ Ãê8¬Ž¢èdØO„=õe±¹N,[FùûŠ‘aÍx0™ç Óðt<¶ü huHGŒÔ( †ýbT9h¢±ïÃï—ö»áuŸI&ÏÀ㺒^h™Ì•ñ#ŒÅ¾ßc26èò„m ‡ÂF'CkÐÂ@6äQƒ)H5‹“ea.€ÖÉä|guRŸìÒ¼¦ Zy£Øü`ò}±’.›RJü­ã'Êu00xMb0Y—ÄL+eÝQz{žòî¹ÂhÏ éj²|‹.Pç,@_W³ng;ñåð²HœŠÔ({¢Uùdy¾%fá1ÀF‡2 SYé~ž`ÔnÌ6=ǧ<Ó¬ßG̸±*+'„Ößy©UŸ³å7Ów§Î1 Kƒ°Y'a=õMØe,fƒç›÷%†ÌÇÞO>ƒp Ð08åP»-—~ Ów­ÊØÜèºïy2^x„á4~5Gã@ѱ¨üm¹áÉó©2AŒR~‰Ÿæ<±HÕêƒ:2[‰d†jR8êr¨¦"Á\—RÎOïõý‚Øh¢k/‹î#O45žLy÷ãü|žx¶ûyÉmÝü^žH'Ž/&žˆ‰œ6F¦øRXžÈy ^!¶‰*#S‘‡Çh] ¦ª›âQjñžtGR,§â—Râ|ÊŽÐ÷#XñK1&ç>M e ·Vp¤&lmçå—ho¶¢ÊÏ?UÆR¾a`Hµ?[Cß ïÆì"mf,3õwÀ÷s1ÞæW¾· CiîÏûô»ÚM†ÁÈŽZ~õ<3Áö<û+Ö .Úm¹0L¯~ÄdJyotÝ׺¬a2~â=†1ùw™”þàK9B2`äð½Ä¡<‰ÕZ¨4 ÅeO#¥„s“ 6F £¢òÔ=åøý”¾ñÃávš+2~Oþ4• ƒÖ».Ãýý°?Lþ¾Á+vûœÃŒºŒ¡g† ö"+Ö¡S(å€÷Ê]ßèzö«òÈ0d‰•c ÞgîßêºuYñôÝcp„ñ‚=”¿ÍÏê^&þ½áËîÊÙŒc~š7#öëMúOW'öe͸1³}ÒˆHY§LÈŒ%U$.çaÈ.Ä/ængÜÛ9,À²$œÖ¥*mE/'N¦3N)3š¼¤rÊç ¨¿Ó}Ð’ë4tœÃ”ë{Òõžg¤i)Œlž³ß‹xjRë1FFÄ®|£¥³¹Ý2ã¶p–ÌâYÑM¨Œ¦œwS šôp€°lš½à,Št`–Á¬Äp8=3¢‰™(p:ê®Ø™Ñ(À,Ì%O$s ²•åVað.c1 ¢0Ùk¬¼®ÕXÄ@zV^[ùœûR.ËàX‘Mô¼e0Þûyüòê{ijŸÊî¶<™üñ‰Ë{«ëÃùÉp8ÂdFÒ•™z‡¹ìédv˜Sƒ42¿‰¾‡¶7OÄLòóå>*“Q~2Ñ&`yví–Œø…œ³ú²&à”Oœs<3ÌÀrÉ'= y{–eû™Î»32JgzîM…ñH¸M2)ÇS:X¶p%ÿ“wâ‡"÷—-Ì• —W˜Ì ­Ü§fwmÛ»/a0Ù¯¢]»O…¡lÇ'hFSŽ„. ¡Ãh˜¡ˆŽ†÷’³Ï£ÇprzZÚ,éEö}Ìh?­£YÞ‘ÿ´M¤šÁ¤šž~wO¼$&£Î™¡ïÅÕÍHØÙk &Ÿ«Œ÷ÞYë8Ê÷0˜’ÕÑû˜iH(L(7G÷ÄKG·X¹xõå¿¢ÕIyoxÝ—ÉDá°ÕÃüÊûSË\”NÇäo€ µ-ž‘[a4µáì˜<ÏFÙµ;Le„"ºƒ‰£Y˜Ñ|”£Ä¡§`) ’l‰ÂJ}b<™Á,—K^JÛÑÅ…qÊ[ÂlÈ?om#d`‘ Äg6Ka^ÈáRãT_nÿ‘I}-ƒD{ÿDg¸K~,ÿ"7lõ)L†+Ó»Œ¦0†|ÿm £iÉ^ý~&hÆ4 ´ÄŒÜß^??‡¹¸÷™ÁÐ÷Ê d0Ðý˦+÷E~t¿L0¤‹ O¼Š–Á4{¥ñøc¾ת짂ÉÜJ×rÕós C†“ëR B›á„´…Ki°ü83Ar¿(­I òè®]ç‰*å:e&& ½OHs*ñ jˆ H—MSΣ9o:†jõUu/§Dç¿HœÃwUG“$|§ýM.yâjw;E¶&SOe2Êß!‡iäÉ‹J¾Kþ`Ó”÷ª¢|Ù,šu4C[Èß'3AFS'š¼ÓÂÛ¥žÈ b(¬c‘ŽeÌjö†ÊîÑöœ—Á¨xe('ÉgÒ[ÃT˜vSqé§ €a2NnÚ‹¬ÈŠy²mO)¶—OÚgºîwE f“‡Žwu8@Gšr–ñ+§c3ág¿è†¼Ý–=F§übL½yܺåuŸ]˜‡¬ÀžÂù=¿·yŸò}o7 ©X_ˆnÀAl "`fb˜ŒÜWÖ0&½ €˜+3Ãx r)ÖQ™Ñ|„–\ÿ4máeÊ;¤ê)}›h6å²à¶)·9ôó» ‡Ò?êîÏ ûGÍ5}§<«»d'­[\æÜ!eo2—‘¬ÜOg,¹ÿ)FaŒã´H¸íªŒ´l:™5‡iAúë-~Î{~³Gý9ëhšˆ$LH¹|'cæì#Þ$Mô ‘JûüC9FÖ|%ž£Á;Y*$Æá1šÂHŒŽ†t;*žÍÄÃY+3Aþ½œ_Sö¦K-f Ðù0ƒ!fµ1º/Ìt¶ä Tæ"ßǧú{Ù¹ÑÕa°krÄHl»»:Ohï7V[öý–!˜¸b0&å2˜Ü,‡<û£ñľ?éñÇÊÛ®¨Üêú°çɸ:(>þªüAÏC‡2±œôósÎwc2/~ÂhP‘Ç™¡0²“Žá0)OQ>}BޤŸ­Ê>2éØÓ]♤´lñÝe‹¿«:Yš9å‰a[BKÕZmðö‚ù}W—K~>ërR¶N‚(•eÉ%‡öX,8É^rŒÄ$žëÁ÷­<‹ƒLD/êý²ôÆò1rV ÔÞ@ñ#ªBg4íN $ïˆáð‰¦@XEç’Ó¯ô|±RsüjøýâƒÜ^åŸÖÖÏOšÁÌù{!ëÌDß_9g†t¦E¾"PBôÅ£;(}AæÖOE~§ö•ûÑs~ÃVd£ f2ï3ŒÁe09àzö» fôý\^b0ü¿þLûL¦Ëp$nãùtB÷yÊgÑ¿ó™äÈñÕäC¢0þ=QGЇ.éØç,Ò&;y»Æ«<Ž3cYr¸íÙµ1±Bë³¢Œ':•¬£Éº™ÊpÄú,[“š7€§“É:žt&¿š5eOúgAÂiCÖ)#l9 sIÛ.Ìga\ÄtFCï}¨K_ °™ñ3B–çe2¢úÅÌÕ_ ‘ CBAEGCåQV%‚@h ³ ÈZ‡Är¢ü¦šþÄ=×3•ÑœªNæ<%œ^Ôx9ïC¬Ì’lö(Ûï‹ÎF¬Ï²M¶.«KFK>xÌ„ç'l:ž ÊQÔ²™Ltyÿ ¬u€™ö޳ÈL­bhs•#Ò™å’;1L„(‹ë}‘«\Õ +ÿ0Àh£ ¬Ò¢øŠ€!Ñû•.&ÚiÝçK;$ÑA3Nãe`–˜P'ùNNé‰é(y3ƒÄG™„´{ù½Ã`„Ã(C˜†°ê~Ò¼_©~JcÞÇõÝc0<^4 †Ç9› ¯È/¦av7ºî`]Öa·V^{éø¢†0¡MÏùÊ1Á^dE'£å—9˜÷$‘Ó1BRȤc†S\Fx]ÝŒd;cAÚ–‚ryÏë¶À)ïJœCf"¸ÈÞaÌPj|¹_G²LæRÍå¬,ç °$¤¿1œË’ýe$Ì:™%ëj΢›‘+פ­ÉJýë£åžPè J+·Eu—1mòÂZ4cHCŒf³qÙ¬Ä%?çü~¾a0ò¼ìP8 cª(ë`Êy?¼K6@ j3)~Où÷F³VÝå&wJ7¡îfm {¶;H}„Á †Àó^µâà•3êoŒbX¦œ8å…ƒQ ˆÊ«ë~2=†AqØGÓ»q «c±¡¤g 3—'šh€Òዌ0” uŸ:€e('ºÃP^€ÒçþÊý5¾˜¸ÜW:Þ«+ÿ®ümŠM*K1’MYWãßåõœÄÙÄO+HG“×MÞ¼M]RIùæûXQ÷d—ã ‰ò}b4@Ev‚fCŒQäƒiû}Óië¨9[¿u¯·F“•ñZ§²Íâë\BCçÓ”¸yÞ–ÇîÆ,!H'C:ÑÉ@ÎI#}Ñ2He=‰–Á”¨]J¾Jîh 8_Ã(<Äß³µR‹Þwsà Ëc0TÞ^yë6#ŸrÿF×7ÔOÆ0£©¡0S.Ö¹`Þâ–Áe¯ ô¾"¯ž‡¬ÇD‘ïz…Zó泫[ xzªêeE±®dÏñËŠöŒûS=OE”è<%z. ÓÉÌ•QÈ}Ñí¤©Z­]RÞ9˽x„âÝl2õKFn„|ÑQ3FÌÅC‚.s *ÿ™ eG–Où•ilV\Ka…!£)Œbc%Â+"†“Ãp@ŒicŠÁ¬¨ŒÇìMV²Ëöfõ·(k?Ñ¡€Œ3R£s©ínû¿õ/ e0öû°é£üL»Ûöµ+ìgÒ0óÞÆ¯Nüž mße0+ªnØ“3§~·ºî¤“f'ÄtÕNÑ î†æyëWú—²T†Ê`xO2TÄѬi„ÐØD¡ìÚA›ü¡z‰c *IwšÛßàïB<ÓDcOŠ|¹Ý+Ï™x¢øEîOô^Òa4;Èûù<‹x©Þ̸«B|’^…Y^â÷n?)'/)· N*ÿl:"®Ï‹¼—*àƒ¼d‹–€åý¢w `†Á Gâ¤[ÿ%W'CKa/å¡üt:å5þ9ÿ>ÓýDò4 †'XË`¤ßšþžxI㧃 =û¹¼\î]w².ƒfŸ3/½û|~e.–±tÃÌ`„ÉÄdP yÜò •Þ{-r( 'éß•Ž@ÒYäCéíÚ¯òç81¢ÞªsFÖ)ŠÈ}o OŠ4a¢Ÿƒ ?ç1+)ÿT×a2rs‚ü‚þZ™ELÆü¾¬YÎF~gÈ ò\Fþ&S7…lBº£YòîÍâ©>—ç°"ëÄ¢x«ƒù½X].ÅaH™™,•É”4Ó9þ¥!dÇãRß¹Ö;9è~2t =m»†:˜µàêØÙï1—9ÁAøÄšÐ+/=_ Ðî®ìxô—~ë”Aù”U™#ËèÈëFׇ?O†CoF~NX:š0f,5>F#:æB †öj¬ÆA0R™©^¢P{!9ˆuü<è¹íŸœ¯ìNˈq¢|Ù*jBËh^餗ð<x¹M:%½FSÒOÍÆ*kþÛGõQe8e©n…òcÔGêí ¸.ƒqÚ+DØžüs|™ª¼•õÚ”=Ë `9˜n­xÕ©$,ïÏÛù;å 7ÃPDÇ#[Ê”xe.­UÚ\ãrþŸD*çÅ<år‰µ¦°–ÍFNê”öA"+?Ú[äå£73 j—Á@3 nŸHG2±e0ªü–Éxﳌ‡ï{:s>Žb0\ãúí¬hŒ|O4[y4:œo “±ˆ2 ÍŒ|(,*|¦R~'¦’ãɤO*l¡Ç`„‰°µ3Ï£V݇ƒ¨Q_ºï®ù2"·È+#ÁÂò‡'ÖV ôûÔ9ãþ JGc™Ée‚b0çÉ3££)º•·ÙÁUt(oÏÀâxúg¦cMÍg{Ní…¶"ç—ï¿GÙÛ¬ìÎÖaP÷–ËéÄŸ ôý(“Š|\Fà…£ÚÅiˆá7:Sç{qLÄz &z?gŒ#£ &øÞ-coÊcÆ¡†Á˜òY#£Ÿ.&óœpErÆâû½$Íhx»)‡ Æ"c¾oM³¦LVƒ è~õ AEˆ!)+f4‚¨óóbe êZd"É:ÅlN@ʺÙ¤H&î¥cMa 'l1»ó€Ô/q8Q}y+ùp;Ò³éÅ*ÛÇ2k…&{›ñ ˜¶ß·òϺ¾|"«,õ6v¥šá¨6ÉL¹ÙMYâ2ñ^gk~Þæ/ñu›`6dM[%MÛ„RÌ3Ã)ñi†ÕɈ ¬UŸô¿ÒŽ1‚÷<ë#HùŽ £õtÌü» †‡b †ß2ùþå;å Ð fg0áøCõð¾[¾ˆÁÝêº?“ák¹¬Ðd™¦Ò„-cit./ÖKÁ•óar±è|µök‘„ -òI5®—!P-2Jè"%…pzºŒ…ÒŸé>3 It5^8¡0Ãc™`^š¶ç ãÆ*GŽ—òÐÄZí…,F¤#LÆù½Èï}•39a0…ù««qT¿’¼·)éE·âŸ°I:—”O"MÉèpêŽ Õ¯†ü](]Ù2è­a2¼;6}·v²TúQf0%tä6£í×¹¿öt"‘Ç~ƒÌ9½‡Üówöc0’¨»*[k:‡ÉHy½Ý•]]°éïn?6÷]+:¾£ëþLF1‰;éÔý™& ±BsKŽ{ÌE9JЉ––Á³±çȇ½-¿A 9˜û ÂZÝ{N_  |h¹ÄEg ~0ÂXŒ•׉â…ùF²LÀòŠZž¶ð,Èþ ¢8ß WGTâ€f\kE …‘çH8Q7€£cd,í'¿³üNPçû4:'‰kºí®»7Ïr ¦qÌÊaÒ·2#ÆÃá;ÍXÔýüüœu6e®”C IDAT—ìÒ_É\ÑL¼æ_BÝ[ÕŸäU?߬ȸ[ù» †¾Fî‘Æ~ ¦Ù]š˜ÌÈîÊ=”ú>¼òÑý2>Y9#˜LÃHnºŒ%Ç1Wsä%)Ï}¥sƒ™%Š/¹áÄÃÞCÉÁêd„á©=’8?FDb²H-b4 ôÌT,³”ކýgÒ _×RB™ò‡±Ì9<§¬ÑÖZNŨ ã±SH.Šk÷¨ò²z¯aR^Ñ…WÃÔ8Ý„ÊhdÉJö“cÞ-ÈÑ×Åïåb¬ÎÈjlc8r’i"d<ÿ×%{þ/9¿¥yoZ7íÁ߯ÕɘR/®§íwVŽïµ­`ؾƒ¿GVdˆÚ7`0.#ñÊÑù^Ë82z> ‡Üß=îýÞ•_‡Ùú~s˜LA †ì…=†"q™Xz:q¬<Íyí3‡lEÍ`6Æ"q¸BÄ2ÕûžÎFY} þÎL¨H¥aDB$ňR›äOŽš…u\tÆSÞúÁ¸:ç~&”ï§Þó!&BúE.•‹ÊÇòñ˜pZÑì®ìZÍ2·kô.ƒ!9Jþ“µ&Í`ØßˆÛAŠ-{·mŒP[X²§þ"žûï–²WœLÅÝBåGóŽãF'èݵ%Nç"‰2¿Ê¯Æ‹îhÊõë²@^NîDÌ"‡–±üm…b0ܾÃa0^ÿQ Æ|ÏÍ÷Ξý–Á`€ÁDýÝŒGWyöÛñ ø1™üáÜœ¡Hœ÷<OýÆÏe ªYÃh*êLouMŒl SadA‰ï&“ó-þQ5L‰¡BæœÏ,‚˜ ’,ÌAvn¯3j>ËT™GäÿR˜Ž Ýß= Ý/ï&ÄÈ.§—òEˆµ´ÇóótUÌd\„<§˜c–g±ž3åO&¼°ŽfädÐTŽÀ6º”²t&žüÌp Kâ$¼à”Pt5²5Pòâ@aôV'cýhÒªwt°râþÖX“ñcu ÷½öQ fÒŒõ0ƒ1ù‡;rT1µ æ½Ï`d¢†Á¤q£Æ;þ˜ò5ÏÛúÊóß&Zy™xÃH‚ô¡ŽE˜ ¥/û³ñ¤•ûÐüÖŠì”.„:Ø– ŒX "h†‰+$MLò·:y#q×O`"$Dˆ© pêÚ¸Õ!0‚œ€S‡Ñ°ç¿ÇX”šc½Æ~4˜+â/õÀkúEþY>Œp÷BÏÊÏêÄ,cõtbU'Ar–òr}s{xõ)ƒl¢½Ü zþPˆ»3Çi9¥ƒ±þ4ïX'DñD̦?:fM›†âeO¹yV UúQÙ“Lü¸xO2’ghE6›öµéÍw);ëðöt8Ì€]Ãåqú‡›žt0ƒ χ™©?òDôϰ|ÓÀó<~Í&I£ë>»0_ÃH¢ô˜Æ20(] Œu‡sF¢ƒdP (ˆ ±"1HFY£ Mçêd‘¯íóžõŒBXh ˜ÑXd9ëxÑ-ÀèZl8¡úÇPúóä¤t4ùCñt2u¯´Zîdä"ÌÉÈF®Œ|óýp-NOϳœgY¢dùæúˆrû¼¢2¾ …1ȹ4‰¬¿„alK]e¦<ûS*»ek«28:Чú>¼Óï—½ÎMtÌdRÊVsžÕ™´}_Š™R8Ê8#M±äöàþïä7›°ù޽ïÏëWÑ÷g|9Â`lù¥ÿzåí1~Þc0,Ã` ºÑußódöxæ÷˜JÈX’Ã\fŸÁÈAf¯ ™BAŠÁä5S‹B? iXB ê¾AžN@ò·ˆ;d8œŽÄ):€êÅ;‚)HGt7’¯Axn8m¢C‘x“®ƒ˜<¿˜û6½ÍÇ2Æî»A¸¥˜QÉóÄ@ Bç (ŒqFÃþ!9Þä鍊óûò ¬Åïf.ŒOï>-¿ÏXòù@rnË‚TïÏòÜ\ë3Qû™ú©8¨?QýK=àij'(†Ý0’+÷"³ýËú•À<ïéTöú‡×?]+2¨¥Þ€oEF!û½4 Æ©_3ž8õiŒ‘ßSÆ“]÷=sÑÈÚ¯òg¡tl%Vâ ]’Ì"q˜½ÉÐ÷ì¬Ê$Ð"#‹dæZ¿˜ü{HnHg0dµ‡g?žzÏÁ¼¯ö˜GƒØö¥•/#ÔΘ@çÕä“&ÃáPò› JS¢f}–ü© 8[æû…H}eBš¹È’!묌ÒÍîwÞ0wGž0åmVBã1ÿ[]wX.»1cÙ )ýlŒÚ#è ƒ)hÔa»yƒ°å¾:/‚»FÍï·ùY„bÒ—üÍÚðœ·ÔßË_ 4¼S‚0ßWÈØÞ÷YºV264òu6Nû4òšü5ò#ŒFùÑÐy9j¯¶*?%Ò¹Æ2A1”Êh,cI†Ñv/µÊ”P”ÔÇî¡ÚßèŽ<§4³(:¨Éïÿ–a(ÝéÿÑ^džâC2˜‘.mùAå·~1» FʵS^˜ûƒáï£ÎÎ ƒ‰íLqþd0N~Íwx£ë>“L´wØ5Œhý^ØjÌê\€˜ÁÐ}—Á˜Ý–›5Î !êd1ñ@MH§Ah’Ð ®a Á"tFJ§1 ­Ð`›„ª_ˆœ_3ÂLl¸¢è„ :1Éo¢8(å2$ºÏŒ²aHæ9ËhÂö× ýÙè°N3ô ›ÌlrzËd„lŒÇZ—Õ†vãÄdÔ{f4Œ ü~©G.Ÿb¸¤c² fæü­ï!ÇI‚~§ç¤•ÓÃÎ *¼–É,µ=$î¶Çá„]ϯ a ©†‡Î³±ò–ü<ù’Ñ…²>&3×ç/lu6bm¶WŒk¦$óž´:íÒ»b/óy ÊÛc’ªvR׊ÌcJQ¿ñ¾+/zžü¶¼Żb0Î8Ðc0.ã»áuûIæZæøŒh×:­ßKf4cö쇙ѹ:ˆI~—á!Ð Í úÆÊÌAzê}G #™¾'ÿä ÆHîÌxd dΑð½FÈ{é†ÓÜl¸Æ-žwŸ~?‘ÕX“ÞÈ»‰gy[d/çòFCõçó€´{Ÿ9'pºñäO3Õ Å2˜ò>±6$†¹äûŠñÚÝ•æ‚ÉôÇÉÜ—çö$Ð0o…€Ûß{€Á‡:Û¿ŒNW}òÝ®qù‹œù¾oÎ`¨GLS®]_&øŒ(k%¤ÏˆbOcÌ B =¿˜™_žË¿‡k¿œ>Õ÷1’ÆÓìaÄ÷%¿)xŸA.Š1yˆÍ"VFN¸¿3"/ÖI£Ì'B„GÒ[†Êíi+<9Øö°÷)µúk<œçæ1yó¼E,Yʉ¤ìwsÉ:šË^¼0” ¡„'Ê?ËñlKNÏ{¯5õñêçÉÄÞ‘Ž²Ë˜œv㕇æ»tò uCd…êõ×r¶ÃPº~0f|¹ ƒ‘ñf0M¹nt} &ƒA‹Lù臂hö<ùY3Â`&ÿȧ«Ã±ég¾t4B8]Ï_Ê_1yˆÅEôœÎA€ËZýµõ óp­b4·r±÷=¹FÜc½&ŒîK¾@Ãhó{7ŠS9Ï£åõäeå§?ùìé^º ÆöcíÕ)Ï! ýÞe0½~܆Ʈ'=®LƒQ+7vœòäzß®;ùÉ`P'ƒ6Î~/žjºfÍÔa0€ƒP¨A\ŠEb@‹\«¯1B1ˆÂõ fäÕa Ñû=DÓ0¶ÉIÏõ Êá2œÉ×1uã¦=¯˜ã(£¹RG#WùF Æ¾Ï †³'ÿ+B±¤É¯¿WŸæDÉßcîÎ+ÆL‡15鹟a0‘f…Ï`œþÙÓÁDãÉè ÿ>{߯É/Q}#£Æ§^wòøÇ NmœÒ7Õc0@Ë`ت ÐkôèÌì“é YYFÁH m¼è,Â3 ',ÏòÞ]›Âô•Ü•Œ$d@&ä=êèœöf4Ô>NÁ"Z[ž9Ïßщß3ì¼ÇÕFq#Ç®î‘ä·Ç˜†¬²¼ïÒËŸûÅ5:m¿¸‚Á„~\ü|'?Å`ìÊI”—ß ¯ûèdF<õ;qw÷d¾¿Ç`ت hLF$‡H«ÃœüËû§ ]Ž„â'ãµ_§¿ð„§ÊõÛ¿{ò‘úÈ϶Ç0ƒ¹ÆŠŒú™Ç`dây.ƒá–¦}ì÷jó‹¾W“ßÐxwÃë>:™OýNÜÝ=™ïGÈ£ãR¬ŽF¬Ê¨µN™DÈàˆ•Y³ÖKÈÈõèÝC€^9FÒ›ú+9ì!â†X,36 ºLNzÛžGW_QF÷myœò]Ã(ìI–%œï7²»vïÔQ9yL϶'·¿û<œ~îôOÕ/½òzïa]mä‡5ù ¸¦×ßÚçÜü,ƒñÝÞ8Eò¾ÕuŸå2Ñ­ì0–Ès¿ë÷²­U™tÈžUà":Ë€1èdÔs¢PVf+!&ŠsúÐªÄæoâ» e/‡)ùL~~7c8“a41{ºš!F³R½§¶~ñ7ò6åïZqQþ‚èàËcÊï£ò0âûîù= ç?ÕŸ§øy{Âgq…VW“I/ß—•·”—òíöGúμòÈ÷oÛ?ñøa=øu0 ãx&ƒñú[óüè÷ìOŽ|ìŠÍ-¯ûL2¢[Ùa, ƒ±:™#!à2…Fýb9Xä!È Rðž'$Öc@¢ë>9³èfFÍê”G:ª”+@Z,¯á\†ÊÔ¿a8½ÐÈÅ[/í¬µ_Íh:ŒóadY¡•]{òñîÏô|ô;j|„©Œ´óž§~é·v ™KÐ/º;XDùP?âï_1Ù€Á¸:RnGÃ`ì8ÒÓ™HùÜï.êg£++<.uä¹§küæ0/ܳ»5ƒ9Õ¤à!ÄÀCìÏÒɘü±„º›ÿQFã!"S®‚x¥üGÞ×CÈœ~jŸ÷Þã"Bø §‘·oÐ߆‘g úKÄx°BûÕêÊ’nÚ‘ŸMÏ¡Çh‚x(_IßiϨ?D:4‘ç³<÷9ý4ðý˜ü"À·Z¥~3Ä`y4ïï}o<ÎýÇ2.ƒqäSÊÙŸœñîV×ý˜ŒîYÝšÁˆ_ÌR²L&d£H¡ƒ<šç) —p Ø ¬ÃŒ¦³¶»ËÐìs^ýªm]æeå 4Vw Ò v¸[÷£q™#GYtw¦ß{~+×2¡º¼nºy_1I·^~éºý¤×¯Ý ƒé12¥årRÿì}Wò»ZY êÓc0ê=ƒ F1)/Ë-úînt}X&3ÂhnÉ`®ô‹i!’ÞjO'Ó DN/ÁÄÃõlz¡˜ò!¾Á>?ùrkÒGòóBSþnûX-AÒ¬ãz£áú»í'åŽüDœþåZÍí0ׯå¹á„:Àtt:ËšÙXý­±UU¯ý#ù„éyàôúÿ„ʬî%Ò ³õ˜L(\?ê_¡—곫3 Æ.ƒÙû~Ìû½çÝüm9PÃ[]·Ÿd&ÄLf„ÑÜ’Á\é³»ö ‘aL¢|-b¡÷«5}ì¬{ï#ä"IS_É§ËØ,âL;ùuÂ#VkvíÛÕaYy9Õío@ÃhBf“œö—úÖ;d6hËku…àØû"3ÂLŽìQw¨A?ÛµóÚÅöû@Wt½úbÁØï.7¼~uˆÁ˜ï²G¼üM>=ÆeåwËëö“ÌŠassùP †&’h ù9:FfCðΧ…!B‘÷Mh”²‰ê?ˆ˜†!ÙùFˆ¬ÈŸ?ðk É3ÜÍÙÛóÌ“ï£ y /¶ºŠü‚–©ÖO'0J~™Aíî5Gòíå·÷½ÒñqÝû¾lûy+&@m©~þ*CýóèxÑ|ÿcóZwo¼»ÕõÕÉb.&,LÎgˆÁX$Ôa0 ¡3²BŒìíq™…a,ŸˆÇh乨üNy bá°‡ ÷#%Éí2i)Ƥ÷üzò*!ïarT¿¨õC‘¯õ9d­u‹pON^ú½v4ýÏEìÎóóÈKäõ#Ð8Ðc0‘œqÁÀï‡ÌèwbWRžÉ`vuŽ’îFׇÑÉÜÒŠŒ'˜'¸V#¥£öübFføaQƒô˜ÌÈšjy§ÏˆfÈoÆy¯«£AP~8Ï{õÇNù9½‡ÐvÊ×Ela0RåWÈ|%†è1š'¿_5Œ…ä×ÈÃ)W±í2Ûþw …Q)ƵŸSÿaK~Þó£ý3bLòþ=cC©_~~ˆÁDãOŒƒ foüYyƒYQ¸åõa˜Ì¬È¸º€fäÈjÈ2˜ò8¬“ÙA=F¤Êç ©ÃkÅ õ"?o‘Ö`ù#y¸Èª‡Ä"d»‡ÜÌ{¤NvÈh€–1/F^=$•o$ÝNøl¦2’Þ‘ß®®©×Ž’÷+ï¹Îó]¿Ýš½Ç¢úC‡]«ãD¯}£ï ¬ßd0ü]ßêºË$Ù¡?‡¹ÈóC»+ï0˜»êdV'?ñ4ˆÄ+_Ž{V/À£1ùu×¼¯}Þ†õÙÓÑÙŒ´go§€†Ñ@÷Ww7g9±ÒC´ž<<«­)HÏá^ývê[âbµæÝȯËh¶ï5íi_ä÷2r‚eÄ`JœîGòq¿‡µSŸh|0Œ®a0;ò¾ƒ‰VnyÝe’‰ü`®=ûý¹ &D¼À‚u2Œ “òóüf€€Ñ­O„´lù;òìÖ'B¶^{DZ7g4Ò>=F#÷¹=£rò@ï9 ä…Ðõ‘ßÏæýWY Ô&Üe¦¹I¿jÞÓqÃÝ{ld0Ò¨?u™}ï;±òe0+}W‘<œ|Æ5ÊD ³¼Õu×ódže=fÐsÌ"”ûÞ Ïˆ„(<¤Bù6lª¿»ˆuÒ鄚Ï[±Ïe4#²Î °³QïãúõÚÃi¿=œÚwh§ÀÕ)9Ÿ†ëç•·Ë ¦zˆ1ZùÊŸi1¿0ÿèû¤Ÿ 0–R>ÎÏö‡ ŸæùÏ}k=väËî÷cåhë×c0$ïg1/ÿAÓŒkÜ?Wý¾’ÿ ¯»ž'sõØ0Ë\®b0™¨Ð"NÎ7Bì=¤‚ö½ ár~Qy÷y™;Ï»HÉ"±¤ÓAFãA®#H8B^]k$fz“ƒ`Ó’63nÿ½òïõÏNún;aü½²ƒ€ 4Cùsy¥Ÿï•º¿¹ýp„Éfy7žûÔ>xŸÛÏa0ÑÞcÝïÆ¼úõ ÕëC3˜‘ïhfùšzÝêºËy2϶Û[¿–ÁH¥‹(F 0ÑC¸ãŠNÜ»šÑ8õkÊãɯÇÖ~~n}D7lõ·Çh<9¬„;$¯ý=Dn峢… :½ËhFåïÈ«”g§¥<4Q¼oOç"ßsÄ\Ï}çþàîÉ»~?¦^Å`:ùyŒsW~hŸ¿ÆŠÌ}Ÿí7ºîržÌÕ~/7f0 ¡PèÎüôû(²èêdLúa+3øÖAg;Zd–ÇCN™EˆåimÈ8"ùyÏyrÛAŠn=:È»»S€E¶ zV;õwËŸŒÜ'Ëã0cÚ ÉÝöãy§ßPxÙcö;¿ÆïÅkWç;ý~Íw2tɇóÛa$Í ‡—Þiÿk¬ÈÔûìïRî]_&ó\#‚ru${Ñ™ñƒ`LÜcLö=#ˆB!Ú™òaDÁ| ZÆÖÛ"¨ÂiêÉsuêëÈÏ ¹ýœç‡Y'¿H‡0º÷Y€¯õ«éÈëã8À0n c:¤³ayEùJý³•^¹ðwKæ0¿/ô{1 f¯|½ïí÷Þ÷qà{b€AùoÅ`¾þ:™çø½xü&4âQqƒ ìL/«2‹w‘…‡\,²³åŸv8®@j’<€dU>”Bl¶ýd=l…Æù9å—|†v ˜yõ«ñêÓ“g|îYáhûGßÁ^}Y·eäî–ŒgZ9ßé¡q`¯$ί³’ã€'÷À`ø»¹Õõ“c2€Ï`#šÁä5ØÑ¿§SØE0^zûauLw –:„[þW~3kÍ™uÝ5çãˆÇÔ{HgÉÓ†TžCŒf òwäßëÑNJž_ÍZ¯>3ŽË+íó·Ê¯ù¾¢zp}?ªÏw¿oËX< ´Î¶ÿã¸ßË¡þÚ/Ž0˜ÝþÉÛé?·d0jü¹Ñõá™  ö+qàzXù4ø¢Ì $Ó˲à|¡o åw³µgf #õ·å ÒÔß>7,_i_οƒÜ†¡)¯ë)ïÉSÊßÛÉ‚îw‘/×ûJÑ­gÙ>ç=R~tòãï5ËÃ;ßå‹´SO7Ùõ{‰äøý¨÷Ý{íiòw™üAsD7wˆÁpýnx}x&ƒÚÁT„#ót0Ð3÷vã¨NæÙˆ~ÕÏ_…óý{2šÃõÇ`ý9NÏ #hißòGˆ±Ôg¯½`N>Û0 IDAT1H¾“Aȳ‰¬ÐLèÊg/´ýÜ<ï"ØÞ}ïû!yE ÀÞŸçíÞ =ª7ÿÂX†t.«–—ÁìÈ±ËøDnV~G¿w´é¯e0÷ÔÁ4õ»áõᘠp :3/ÜAî{"ÆAü.£1嶈f¨>dwkFcå¼ËhöêÏq¯‘‡È½ÇÈäç–ߖד›àÌýR/owç½FäiÞÓC°Ï 3áÇëÇ^;.õ{Ußq0.À0¾î^c^;éçðËß|÷0¿ß¢Ÿ[FqÁ4 ¬ÓƒQÏ÷êwÃëÃ1à¶:´laDˆ#BÔ`€FÞû]Dê f`ÞÊÝìME¡b4žÍh,c¼£»…hÏCVh?›¡ó•_§cå±WßžœïO½‡­B;åŒNÀÝe,^ÿíõ[ÓîŠR;í¶÷H?qÒ#;+Ý•ï}{å[Í8å1˜Þ¸%ï¿Ñu?&(dé"²£~1¦£íéd†­2(!êÄã"Èu,±÷t NUÔ5ŒÆ)[þ5OTþ+åÓ ´‘ö÷ÚËæë•G>¡ZÄp"Do¬Ò#u:·4+»žø£VbcÁ•ý•CÓ~G¿ç›÷×è}–‘=g¼â÷tƳp†ß£ë>çÉÜQSâÛ îZ¬:Ý0Yu¾áû C)Èc±'ª¯Ôgéüöaјú6È_ʤ÷ÚË®e C—Qî ³CŒi¯ü’Ëß‘{³s@Ô> Ñü-#a<ßIù¯y¾çÇb=ñGêéÈiwwä+ûiƒðGÛ™ûé3˜w Ê·;ntÞWê¼o˜ÁÐûouÝçdÌ{X‘Iz‹D=;IA‚ÐC´Á‚â=†á ãˆ!ÔôÔ×ÖKÞ:°¶-øA„Ø]Ó)¿`¢vrÚã9Ñe"Ñ 1ÊþÅ:‚HgãY¥5 Gòßa]«-Q¶çôé=ꉞAzkõ5ÌP"«°©Æ‡åá¤ßýž¹=a¾O‰Ã´¯í¿öûíäÏßoÚé?C ÙŽGÌÀû1˜¯;“¹›™¤ß›‰p¼0@¨½5Ì.ÈÊã!tïýG“W_AxÄ3u4½ò8òÛe|äÕc(‡åe‘iT.øõ /зú3roN4=ëÊ%`Åzk‡DV_ɼïp9zsÿj~ú¡éç#ýªÑQÁüÞiwpØûníDs%Ó~6ƒñÞ'¿|wæý_{&skSâf&gdàâiE€vWž„nwˆHFê›ï‡Œfº=£‰ä7ÂhŽÊ«‘ßAF³‡ÝúØüöëö;‘ç4 ƒ 0íÃíiuÇphòï1”½úÜ•±ô¾W8÷oÕÿ¼þÁá4ðývúãaãÝÎxy£ë~:àn:˜á™øÀÚm¸† ƒPTƒ€úîZ®EZ¶þôûOŒÑtäד×Õ p¥÷¹…ïóÚa´?·‡ƒÜ=ùºí`Úó'šò¹:ßÉ/\‰h—ÒFÛ©ÓïÊ÷6ÒÏá÷»kÄÍÌ‘÷{òþº3ã f2ñžNfoFvÁ-¬Êä¹!DDŒ‡šò:ïï"¢I?ÿua4.»F~#ˆÒÈ­äçÉ-` Qûôtv» ÍÊ£#7ùzòeáó¶Ýw¦ýmþ{åÙ«÷'îÿ=99í•L{ˆÜGçÞ÷©úµ÷|ï}@Ø¿#FtÍøäöÃhüê—#r¿Ñu7̃YMü g¿E{LfGÈÎï=„Dï‰Þ®ñZF㽯Wÿœno­{Ôê,B<‡åyü8ÿËí0#œL¾Žüö g]w„¡]ã'ws˜9˜ÐeR=fÄ»ïñú?Ë…ûs G«±í°Û¯œvoúñN;ë£~æ £ýÚöï`¼zƒ)ít£ën:—ɈÀŽX•y3rž‰-â8‚ˆšüùý"AH6¿±xˆÂ<·‹˜Ô?§o« ÌD|âŒäÙC`‘üì{<ùÑó]Fx%£iÚi¤>N|T~£Œ€İNäÊp¤<¶üÃýÆkß5§'÷#~mß;ÒŸ$ÝÞû½ïèý^?yÔߢú´Ci¿]·g2@ÌdDpÏٛ슙ùˆND•ÃC.ÁóGìÍt Q¾£ˆÙ —aM$ï$¦ê·‡¼V¯Õ©õçUígëG~·y@ðú‘Io‘ì0í„C:‘gÄGÊ¡ÊÏr<ðÞ¬ßt¾“›ô#ì”ß©çÞÊÆný“SÿyŒŒ“^»Ýèº=“|&³â¸Nƙٯž¡DqNf{åë!d´¨«cˆêßyŸ«›YûŒ6¾@¨#òõ굃o¡ê"ÐÔ¯‹°wí¤=ô˹C¼iÿ+Êß[Q¸Ù÷çä?<8 &ü±ÓúSo<ºš1ÏwÛCÆ[Þ]ŽÉL8®“9‚L°zÈÅ BPfIí1 Ð{-réêyD:š]dì0š&nŸ“zxòEfN}­©1–þ°»bÐûÞ$.ùJyFÊ1Ê`vä³WŸ¦<{ò»f|\[†Z¾ï]–ÉHG»Ö/fñíZA9 dX''ÝÙ]‹í”Çe2ƒDà½5ý®ÍK¾žü;õkÆäËwé]¥ó Þ×Ó¡t×ö{åtú“-Ç.BïµïÁïáª0zßH¹|gÏ’Ë‘~õ 8ßÝ^y¿»Ã fu¾û+ʳÇ`ÂïúF×Ý™ @ÌLÈd€ÃˆÏ"|/ßC+B6ì! é\§<.¢â÷wÞgåã"–U3–Q«¢CŒ&’ÿ•ŒfÁšö}ŸÈ—Ÿ‹Ò‘5ö]ÄÞë&¾ÇØ>CQ탱ò1…¨Ó„ßEè‘|ìx3Pï{‹ÑÔÍúÇèxcÃÎ÷ü³.hæ= “ñfèîZg'´ºŠr(é¹\=dÓ)oˆ´ÕGêqdeë=´†g2šrÒ™ØòÈ×{$ó\Ծ깨==yG턪#9ð÷òu ­¼zåOÁwð½Q;1,[øa¯ßíCÏê\Gn׬œ¸º=Jç}ÿ·¼îËdD0£a 1jàa!0 ².âÚ)·‹0£ú¬TŽ©}ïÐû?ÂhäþaÏrÊï*™‘·¤–÷Èû;ï;Œ°ü†ëKá.‚åЦÿ:ÄGÊmùdòÛiÏQƪÒù-§”¯[ž`üÙoFÛŸËÏé£ñed÷ 3~gß;Ð5(€šz«r8â›·ö½ ­Àp-4ϘÄuùŒ¹VÊùð}9£wö½­ûwö½ pPøŒ™»Ÿ1×*@I×ãMìŸ1×ǵ P”WÛ(¯FÿýMI’ûß[ëú¦¯cä··îë4© û`ä—´ù{²ÎëoòU¶aŸM~?ËŽ_Ù¾•íï&?»«þ”m³¶õs·êøV}líð“`oËêüP6…òêܶÿJÚÅûYô!ý÷7åþÁ÷J?Pv© û`+ûp7Çlöñs±Íí–¿UÇtÙÏî&º˜ò¶±ÏuŽo•ß#Uß'>cæ¶ù³êwkŸ©uþÿ{ P›ì°ýøeʶEyµÜ²*QÙ×öãÌ×e·ï/{m£Ê_ðˬúË<ÿÚùý,º^÷±«ö¡Êñm* ”m§l»Ë*)ùçÖ=~E׋ög?²Ê~Ö–í{~«|ÈÖÙ§*Û2¯_åwã.‚y•JZÝcZåñëlw›ÖÙ>Ÿ1Ýa~ŽŠ~WTÉ$;Pe;eþSló?åÕÄ&åUûÃÒ|½êZݧ²¿·ùÁ‘ÿ´êzÕÇ.{=iù÷Ut¬w¡èuWý%¾Î1iò/cYÀ_¶­¦¶vñûlŸêÓªïgÕí6ùÿÂÞ–}[^•ÐÆgLbÕgÌ:å­úã¯ê6ìÀTwŸ*¨u+>Û²ÎëQ^[÷¯¤}~ l;DíKÙ÷µÍc½ì—žÞã}ïÃ&ðmïoQ•¯ìq¶u÷kU€®³{¿ì?ºÖÕô±®W½6Ÿ1s«>cêŒlÓ²êè*1‰¼ÎnÊ«íµïÿH]´îüuyíò=Úåkm ÊÓÄ÷°jx´h¿–i2ü­úþó_Û•ž®Tçêî/Ÿ1×GåÕÖö|™˜òêjm=C¢­?cmÖ…Êï:VÍ‹¹Žš:uBöªÀ³Nð¬3Çdßj‡'>c$UûŒiËÿé¢ý¨ú³¹ó TÙÜ€uþ3ÕýÆ)¯Î­ú+i“îºÃ e÷—ÍhB›þ ^5ª MÏ¥ÚÆñkÓ{’·îñ+(š'fî[¶6iõþÛ÷·a(~[?k|ÆÌ-ûŒiËÏqѼ·:/Cx›Œ9Ëþ.ûÆ)¯–+›÷ÐÄs—Ý¿lçºÏk»*Çz“¹'«^³è5Öyî6ö§è¾¢Ç6ñ:MlgŸû”×ôܬ²àVwÿ«>~ÛïÕº­s\ùŒÙ&‡ÇóÃÍUÿX9’t¥¿ø_­ÖiåÕÄux¯»&Ì׺ƒÏ˜ÄuùŒ9ˆIäUQ^㯤ý"$‡‡Ï˜¹ëðs­”t=ÞT´_—‡”ã3æú¸VCxMH+P”ªI*P¨¬pÔÿÞ€Vûú}=ýº'IWWIêÑ÷éëÿ>¹óÁ7,ÝÈÑÑQú<€Cvtt$iž™Ò Ôè7£…>\¼M’ÞþÅÛKï8&÷£ßŒô;{Ú€Î"@ÔD€¨‰P  &@M; P§þiá?ûþ¢¯·½OU¯¯»O»ú^6Q¶U÷½ ß#M+ìDnäûlâbt±Ö}mÐöý»µ4@•u#ôƒGîÄ©ZRì Ǿ‚Œ½æk³_ù}*»Ý¾Ï¾?ÿ½/»¾lÛÛVå}Xul8KTÓA©®Uáb惾,è,{¢@Uôõ²mÖý^Ê^gêìû>÷€]ÙY*(ÚôÁjWNªìWÕÇT™´NkúØ59©Mï+Û²³ Ôº¬LRNlshlÕpcÑu®³VÌZf›|õ§NjVUÂö94Fe €¹VÏÊëÒœš:›*A®Mß{Õ9PªVW òóˆÚþÁœfËïû&ßË>Ïn«³ïœ…¸vRZõAjߟì¶?„«¼^ý[÷{©»M)ÛfÕ}ßÕ~Ð&­®@´ÑÒ5úp´ñ ¬êf~÷Ëw7~ºêtXßÇþíJ•ãpÈß?ëZ šPVÅ2šiu­Ú'Û>öoWª‡:ß?Cw€ëb몤û´Öó;ûÞ€®!@ÔD€¨‰P  ¦¥gá­êT§ŸÀ¡( PGGG+Ÿüõ?úz£;Ð¥ê‡÷Ã]î X×Ù©š~] Vu©>::ÒÕÕUs{hµ££#VfÖZ ÏÌ}¢“5\Ìy²8  &@M(€š–ÎÂþØ3ýëØt‚ç¾^wSûÞïëò~íû8c»ü›¾$æ·Ul%@Ù¿d›ü€¸n¿„ëžåX¥wW›_wSûÞïëò~íû8¢Öó^]³ßµÀ:¶Vºººjô¢ê¶üYàmø  ©ílj_>]ýÐÛ÷~_—÷kßÇùà´ ¸˜ßyºº’¯„9 å¶>„g*HU«GëHÍýhÛ/’}UÞºZñÛ÷~_—÷kßÇùP´í÷ €j¶ L©¿î_«WWWó¿È6hÖ¹nÛg{Т}®B»ôº›Ú÷~_—÷kßÇÛ7]$aîèhï•w  jyþÀº¿ØGÒÚ¿HÞþÅÛzðýiÏ1Y7„våu»|¼öýú»~Ý®þ|´Ý‘f´µ ¸‰@ Tµ4@5Ùy¶v5hÍÊSS¿€öõ‹ìbt±°LÎ.–OØ×ënjßû}]Þ¯}çCuêŸêbt¡]ÄÃU'ä˜}PÍÒU¶Þ£<ªõ"¬™Yû ,„$ KTÝ „fØí﫚ҥê¾÷ûº¼_û>ÎuE[%°ä³­³qÍëìºM‹yÍükQ}êÛIj—­A™á¡$iül|-^wS]Ýï®iÃq.:«­j@°ƶΎ+Ú—¦ÃKQ_©²×ðoúººº:èyfÀ6T*ÿ oÝ ®é€ãO+6í—ýÒs?p“Ç4û‹wÕë:ÇNòEË~×îëxU}ýmÙõëvñçÃTyêÌÃ<õO·r6nYxj¼´¤¯ÔÂëµ ÐEW²­ý iƒ^T›XöKÔ¾ïô2Ù¿èÕHÒæíW}]ßOþªŸÇj¸÷jξŽW•ׯrÿ!IG9öýóQt6n÷žØÝäiý«*OMý¼Ô©œÑƒ XßÞ+PMžÿŹɺ]û臒ÿEŸ€-ïëu7µïý.{ý]îCþu÷ñz›4¿Ý–üÿÛª!*ÿ˜¦þÿ¯zíü|¨&•mw[U6àºhEªÉûÞ&ÛÝg);‡aá¯Ö“ ^žÊýÀmlHªÊëŽF#ù¾/çØÑhÔŽ¿T÷u¼ò¯_õö®ËÏ­±›iŽÔ¾Ÿ[Õ9PMÛõ"Uúám«Ê\'[«@±VÖ†Ìá+ùÚÖ\ž£:Zºý6~0JÚéñ*ú@4ÛEǧì¬'©þ¶yükÕ½}mÖq.úÌk´½z¹+û:ubœ€õl¥Å/Îúì£ôCïJòå§g™û·õºf®ÐÕ’Âþ6_wSû<^eÃA¦BW5¨Ô›“ß¶¹^÷öuå³ùÊ\÷UgȰÉcÅÜ<`7–¨¦'n:Æ_å?}WÛ¬úÞª|ïëœB¾¯×ÝTW÷{]Eá§,°Õ½}]Uæôœú§Šž7;y¿ÍÌg3#zO´ hÁ hÖïìú¯®®ÖúWE挒›~ú \R­¯óÛÙµôî¨Þ/Q÷7=]f˜ë蟎j½®sìÌO_߃]/ûûë|8Y¶¯ùºKhu³ùÞöýó±SGGÒm%2?+³mÔáßôÓßyTŸ€ÝØy€Ú¥ keݯ×u÷Ëw7úËñ4­|2óIV>Ï:UßTVÖyÝ‹“‹4HUyÝLkƒ5^·‹ÇËþÉÏÿ±çý,•=·+ìã\E¦µÁ~>vi?¼Ìïœy«5ÿx«ÜÚxÖ$ÐEK‡ð¶a›“Ë»ÞÆ ÿס¹¾•F{-xÝMµq¿›&[¶Ý]ÏB=ëüþY§­@Õ^Nmý tÕNÔ.þw¹Áª9%KŸ»Á©ú›¼î>[ìëx­£‰Iíù —9Þuoߥ6¶¾Ø–*íVnC´ºbç(TW÷pÓ=¡ªjËã.ŽWQÓL){ òÇcÕP^eǺîí»Ô†}Ø•&BOÝmäƒ€Ý @@Çœ€Ý;èIäÛ@€¨‰PÓÒ9Poÿâí¥O^u?À!* PUú5}ý¾ÞèÎtAi€úáßýp—ûq°î~ùî¾w¡³ö±Œ¶«+]Å`•Òõàv¹©Î‚¢Èòoú|Ø ·ñ6T8Kç@ñ¶>{~• 4·Ì¿éëÝzwß»Ñ9·¿p{ß»@):介al‡ˆ…Îàƒ¸{¾4j"@Ô´Q'r€ëh£NäšsêŸn4ÏkÓçoj߯»T ®®®èµ·ñöΖº¹sûŽÞy÷½l£‰×¾.LÀȦ&Zo;¼l{ÿ K˜uö`öõÚ§þiú¯ê}æº}{Ï/Ûª.F•ÃOÙ>•Ý—ß·eÏ/º^Eý€CA€Ú£;·ï¤—æë¢ûìÛ–=vÕãÊî+z­UÛ¯óÚUö·S1ÿò¡ì>û~,Ö}~•ÇÚÏɇ¯mWmªî[Õmízÿ íèµgöX~8¬ê}eÛ«ºwÞ}g+À»Þ³««*!uÛÔóókŸs…–½~ÙímÚh Ôž- Û»~[ж²6­ŽÔy~•Ç ¡­Bì³jMU‰šÜ8¨TwHl;­ ÈV1AÂ|]åqË»ìq«¶±i˜«ºMXlŠ®—M/{|•׬ûÜ:û½Ì&ûR÷±öýMí?tÝÁ¨üü“+u+D­{[Õí­º¯Ê¶«ìSצ' «¢Ô©ª«+éêJb°mP&<&Déz )°” »×é•O¶.„§&‚á €Ýë쨲ðttÔð„úX>Ð P„§ë‡÷Ð&Â#<€}ëTª«áéönï{:gôáhß»€-¸ûå»òoúûÞ ¨íÑe®w&@u5 ®V¨¢ªpʾ^†€¶¥ªnØY6ñÜÜ—ß&Cw )­Pu ÇÙʆí¨H€¦´~yU«LT£À&ZQZ5*»ýxsýbtQ:„Wô€uí=@­ 3E÷ço«2TGhM9¨!<€] @ÔD€¨‰P  &@M(€šP5 j"@Ô´÷¥\VYwá_–nÛÒú%IWWWµtt´¥=èH€’E =: $†å@;´6@Í}2·¤À>µ6@IÙ¹Oæk†òÀ¾µ¶ÁÅèb!,Q}{×ÚÐV­PvŠêh‹V¨*†7†Þî{7À5ÒúeªPeÕ'÷WîîŽ÷ \g­ PË–o±ï;½L¾Ž^¨B€ie€º]d‚’©>ú§Ìƒ{×Ê%ÍC“Ó—ÓÏÜ–>æ$¹î~àjül¼Û×V«iJ’L+¨QñÝ&DìJë*P§þi:|çûIåIWJ«Pöýûк Ôª9NUæ@™ å ë€mh]Ê6ÍÆíŽ¤Ñ‡%cxhm¶©µÊ ÓF£4HUº£µضV¨|»œòí ö¡•jÙ<§•s¤hm¶¬u“È‹ÔmžIk°M­¬@´  &@M(€šö Ì²,u—gi¢•íÀºöv^¾×SÙmmÓª6Eªì¾ª+ºÏÜF`ëØ[€²»Š…˜¢näuWvŸymÂXÇ^+PùŠÐ¶ 4¡CxË*FU0!ìR«&‘çU­QY»Ô™>PMT£¨T€&´b¹}[ÙýeU¦e[µ &’€u´byÝûó·/ÛNÕmTÕ™!<€¶ @ÔD€¨‰P  &@MKÛ¼ý‹·wµ±²Ô×ÿèë»Øƒruu¥G?x´ïÝ[R©‘æÅ¯i:YÕÛÿHÕ€CÇ(€šöº”Ë*§Ÿ^¾ø/•1°­­@­ OUдVV ì`´¬ÊtúéS~ú”JØ©ÖU ª†'û~*Q`—Z ŒªU%BصV(‚êÉ¢À.µ*@tAk”ÿ²¿ï](ÔÚÐV(€šZ ÆmÔê%¢@û´*@ÙíF¿¥·¯ Që¶?XG«”” QïþŸwÓÛý—ýôŸÞO`×Z¹Þů/túéSÝùâ•káå¯S…ÛÖÊ%ÍCTÝ ! l[ë†ðlU.z Ãz`›Z[2ªT“LµÊF% lK«+PuP‰»r0J¢؃ P! l_ëç@­ƒ¶éà*PÛF€¨‰P  ¦½O"_Ö«‰Éà ö ÊBM0@[µr¯h³°pQ°*»Ï\·o'˜€Mí½•WžìÛìëË›àd¾fx¬«U¨m{{„&ЄÖ(ªB +Z O Kö O kZ1‰¼ìÌ8¬ìIàöí«î؆½¨ªgÙãÊî+›@NÈ›Øû@× j"@ÔD€¨©Ò$ò·ÿñímï@g¬ PWWW»Ø€ÎX î~ù®FŽvµ/À(€šP5u2@úÅK¿ìBç” O„(°/ P§þ©.F³†G„(° P&<•]Ø…N(€6¨Ô‰Ð ç_=×ðÆPNß‘wìiôÛ‘‚0ГŸ>Ù÷®…vþÕsy}OƒydzËÙuIºõù[_ŽuçöÇc…ÏB=úûG{Þk ûPÐ1þ𜾣á‹C y7< ú9Ž#Ir]W’ä8Žâ8–wì)Š"Ýzõ–ÂI¨Û_¼­ËËK}8Ò“ŸQêêd€bò8€ëêþë÷uòÒ‰^9{Eƒš^˜‡&Iéow§ïHÓy˜r]WƒÁ@þM_që鯞J! ¨©uÊnUPÆ¿éKÒÒuúªlºäÁ>ïûò_öurãD¦óðä8ŽâiœÞ.IqËé'!ÊÑwësI˜L‚k¨\Ç•wìÉqœô²¬ò´ÎorÇIž[X‰:ö4 tÿõû×þ}Êt2@1<tÃ?| ³³3 n ä¿ägæè¸nRùp]WNßÑÉK'ŠãXgñ™‚g>÷»ŸÓx<¾¶~Œý¢O¢´Ÿ“Ûß ò”—«DÅq,õ¤è“HÓaæL>Y PÚïÁ>н¯ÜK†ŸfM½¾—9[L=eúyÇžâ8ÖðÅ¡‚çA²I/Y®äº­åæ8ކ7†’¬ÎâÖ&~šxIŠÃùY{®›„©áp¸ñöCE€Ð8;Q™aÕ¾#ïE&’E:U’æýO@»ÜýÒÝÂÊSåSígáȬíVV‰ò}ÿ «"Nß‘û‚;ŸpßK†×Òc®7m6×Êí¹™ŠÔÉÝûʽæ_è¸Î(‰ð´Íƒo<ÐàFÒìÑq’Ê“×Oz ÕîSÔSZñIK‡ûçà'7»Ž›†Fõ”YÓNš]or¹1Û~4Ò×5¡ÖÉoþõ€Žëd€Ð.&ðHÊ ­Ûä1S‰r¬…r§³V½¤S÷AšJA(žÆéÄúx2Ÿ`/Í'Ü7ùšév§óíÇqœvŠE€°1ßO*ƒ~Rqj¤É£û¹ÇIuÆó¼ôŒ´CLi*EkÂø¬_–^3Ãm±*Néðàl/ Ãol‚`cÞÀ“û‚»0Wg#¹íØg‰Ùs£Í“Ÿ>Q8 “%n&¡¤l‹»2Õ”¢ WôI¤Ëg— ž¾p(*¨Sÿ´ôß.T}u÷§ìyöíU\7¾ñ@'''i¥Èí¹õ)*[8×»áiÐnKƒ©’ð4•¢(ÊN$Ÿna"¹]Ѳ&Gq¤ðYØÜë¤r€º]¤ÿŠ®wÝ"Á U°šÿ)?Ó?¨Éæ(™Š–3köè&gç¹Çnó§ó·„Æ3 üæçBåç*­m¶8ŽÓÊ–]á Ÿ…óE†d46„g÷g²o+ªRÙ-ªÞT©lm»Î>¬ƒ,2gßeú5¢2kæMãtb¹}–ÞAš*:›ææ$Íšif†ñ6œ eÂi*ô¡ IDATXg›tš`Åü' X£s ì0a¾6ÿÊ‚Gþ¾²ÛËžk?.ß#jÕ>äѨXÃl˜)öVì¹?öõtnÐ6ú!µÀãŸ<žÏ2ÇWJçFE“YˆšÄiЩeö^™ía06Tòzá$ÔøcξÊ4 ìÀ±*|T 'eÙf°1!jÙk²€¹ñxœ9{+_ÉØ˜ÕÜQ²ÂÚ$n~I“1•¡p¦gáÙ!uaByÕc‘kY`†èÒ0õ˜PT%Dž) C…a(×/Dk.7eæää+PA(Š¢¤rr ¢8Réq<¹q¢è“HÞ±—,wcškö%M$9VÓMeç¤åCV<ç•'åÂÓT}4Rø,¤ÿ°ÄÖT>`Ô 2ù!¸M¶]'äØÛ%$ÕŒŸÓuëýA¦Â±Q«ÜÙfq<ïSO“á§'?;Üù9ôXoüñÉ•Ùoê“““lHí;I¸t’Šœã8éeÏBÖ,;¥Ç/7,š O’.//uyy©Ñh¤·~þÖN¿g KZ×j›-h74ïÉOŸèòòRÒlŽÎ4V0 6êW”ž–›SEQ2w' ›ïÆÝB¿ÿP—Ï.5þíXÁ³@———Iåíù|ÎRÇIE.N*röñÉ_Ú³[%¤•§G}8Ò/ŸþRþþѾ¿} Õ¶VÊOÚ®ZÑ©2„·jÛeÑW æï§ T=O‚ëºÙ Toá<û,03|gͱ2sŸ¢IÔðwÑN~ðhu%ª—TžÔ“bÍ×Îs{®‚x6ÌiÏ}ê-¯<=þÑã—@÷¬ ŠE•ÛògÉ­z\ÇTÝv™ºÖ UÀÜååervجécjªt¯Jˆ²'JÇÓx¡RÇq:7èPÏÀ+òðûõà’+³ dæD¹®›„¦Üœ'Ó7+½> ³’5á6!ôÑH—]ê—¿þ%á ¨¨uCxº'˜4N+æûhÍC‘9k.¶Øì¶Ì¶Ó8­0e†ï&q:LxÝú=úÁ#…a¨ñ8™svùì2©Ä=Òa½tØtv¼Íû i2Ù?žÆ ž'ð£çIx¢ò¬g«gḞüô‰†7†Š§±n½zKAÈ;¶š\Κ@Ú•‘ô,2i¡2R4G'žÄ}8Òøãd>Ðu”¯Da6ôéñ¦IeÊ0}¤ÌÙwá$LÚ L’ùQTž€úPñðûõÆŸ¼!§çèì3g žòz^rŠ}?™³äö¬V“ìÙuùVùÊÓè£$õ\EÓHßüóo¦gA2D4³ðlÅÃï?Ôh4Ò{ÿúžžþ橞þæ©.//5Ó³ÁLxJ[ô$×uåôýÃÏþð´„ã8iÅ΄&ûò›öMÝùâ…a¸ï]([ó𯓹:Žã¤su<Ï›w·*Ov˜rzŽÇÑÓ_=e9‘Þ±—Ng1s¦p*x°Ü®N(ÿ¦¯««+>e‚•( {â8Ö`0(ìåÓÊàìÕ³tyÓ– Syšf/ƒgAc- îí¾\ÇÕ`0ÓwäÏÂÓärÐèòÙ¥¢I¤W~÷EÏ£äz±€1^'”ŽŽ’ËÑ¡ ¨éþë÷ÇñÂ+û<4œDZÞúEÒ5Û4‰”’9R·>{Kqo¥¢ÒV·>{kÞÒáØM× Ÿ† ­ ò(³Pó­ÏÞÒûÿ÷ýµ^ÿüµsù/ûò޽$<™Ð4Û)©„EŸDò?å+Š"ù7}…“Pñ$Vzåì½÷þ{­ø9¶¡sÊ7ÃtWWò%>¤Ï °L:ìÒw4|q()ùàõoúÉî$N*{‚‰'±Þ{ÿ=yÇž†Ãa¦Ãv<‰¥çÍ ƒ¤äúÓ7LÝþÂmy^²Pð Ÿ|ÏfÁ`sv¢é“µP²Î¾ó^ôtëó·ôþ¿Ô Qç_=—Ó×p8”ÓÏÚtø°—„¨Á`.¿Oc¹Ç®¢(ÒÉK'Ieq¶ÿ„(¢Ö({>SÑeSÏU:ìrc0¯ ôtîŠ$…a¨“øDñ$Yò#½ùÞT8 Å‘Â0Ô[?ßÞ:j·>KžçNˆ6k¹yOÑ4ÒIþaDZ<ÏK?¸ë†ƒ¶KKß‘×O¾×q¥iš>wës žéãó(sö]<‰uòéiªZ•¨ó×fáéÅ¡ü—’ðd†QÞlb¯x⺣$D™ëî ®ô²tWw%¢pxZ òó™ò—£ÑER…::ÒhÅc O¸n¾õßJBÓ¼¾—VmLå@=%Ã-³a)©èøS_A(Žc…a¨ày Á`°•y,·¿p[ÃO å8I/#³_Ò¬‚2åõ½$,9É¥;pÓ å¦†¡ná¶Þý§wßÇ}0•'ž$%Ça'!sÖâaøÒ0b¬ ””„ª»_º«8ŽuòÒ‰ÔS¥JTQå)>̇ÜY¨KÃRßUGIˆš…ÝpÊëyr>3r$Dá´.@-c*J#‚°à[ÿÏ·tç÷î,ÌQ±ÏÚÒTr޳Ã-Ã‡Š¢(­ê„a(ç2ÙÆý¯ÝothïÖçoi8œ…'ûCxV¹Xhe»?Žã$t9³!½iµpÐvùÊ“TÒ¢ wœÂI˜©@E“Hg¯žÍÏfœJ'7VW¢Ê*O&<9=Gnß;?ýdÌ éûãÌ” u®ä¿ìS‰ÂÁéL€ÊÇ1<Ì}ë/’ðdæÎØsT$-TxìJA:‡%Ž“°ÕSæ7Ãý×ï7R‰ÊTžœäÃY³âÄÀ,TZ4•äÌÎÒsfûÙ·B”¤Ád~N—+QE•§…µífïÇÀ™½ŸŽ¤ék£}܇ª•'ûÒTó—ùJ•zš·†PR‰òŽ=Ýúlö8™÷¹´òäd¯›ù?¿Ç™ÿÜ)~4'8=G®ëÊÙ×Ûwš:|À^µ¶µj"8( [y2^æCOÒbHé9Ù³¦4n±'"{Ç^æùÒú•¨¢ÊÓB…evá¾ ;z®§è“hÞLÓÉM˜>€JÔ­ÏßÒðÅa¥ð”¾³·5}ü¬òãÏæˆ½ÌqK+‹%•(ãüµó$LÏN4(«< ƒZŸƒÁ@ñ$–×ó*QÃÃõÐ"­®@- I„'\wùÊSZ¡è»™Ê“é㓯8 ú9½Ye*¿0mC•¨*•§|%Å;N¾Ÿe–ô²¨õÙnT¢ŠÎf+ºL¿ÿüû™»4•ŸL§ò‚J”ã8:{õ,¹bW ­á·|åi­ï¯ ¥©trr¢ø`­mmÒÚ ”A XTZyê»iXJ'[ŠÎÞJ'O$õ%ÅZ^‰ª1±Ü O•UžÌœ«á`˜LHžõ ’¬åq,gê(xÌ+eNq%Êé;ÒóúÇs×Î^=KÃËBxÕâñ1ò™þO’ÔŸ-Ó—¢8RÜKv]w¡NB¹Ž«Ø™goàÉu]yƒYEË„°5+Oy¦åNÝt?LŸ( ëZ V…#®³Ïýîç +O…Ãce¬ŠD<™…­XÉpÙdRLˆŠâHÁó ©pUäô ZäÃÁ`V sæÃXéÙ\Ódx1 ç¡`!DÍößí¹ •têö_ö5úM»›ì¦­%¤y´B¤¹ßT‹Þ_û8˜JÓ ?È/³Æ =|«^rVÞ{ÿüžÞ{ÿ=iªtn’©\}ç/¿“„ðÞ† :›åyf'0¸®›üì×Úµ (\W÷¿v?óc‡]yªý¿º7¯V¢Â0­~xÇžÂga¥ÍÞúì­ô,ÀÒÊŠ Oƒl4•§’0 AÒüÓéT¢¬°7è'߇]É2Î>s6?»/w™¶è•\šSò›z¾”ŸJóÊÙŽÆL+O¹÷7Þ<ž‡Êp&ÍG'IKŠ0 ³û7™·6ðŽ=éX™³3GäôÝûÊ=¹Ž«·~þ–ÙɆÓwÒ0lºàŸ¿v®'?ãlDJR8 çîd¸,]Þ¥')N挅½Pãߎõ¹[Ÿ[ø~Þ}÷]=øƒROz÷ÿ¼«Ûÿæöæ?W³aÖXqú34™Ïùiãu; y¯p!å4¼ÊÉ<Þé;óáÍ0 Q<C™ãeއ™pÏ犹=W£ç#Ýûò½ì°Ýl{Q¥·ßû·÷6úy2ûcö;ˆŸõèïm´]`ß6úµ{è‹û–}?Ë‚°M¦:cO€Þ¸OOžµý ægo½à*ˆƒdhî…dM½Jsh ®Çq¬È‰äLEN$M¤A/ gf»Ñ4ù§qZq‰âHñ4Îô7’4ÿð·&L§•Ÿ–]7û? ’³ðœy“I»Ù¤ ‡±Ïc˜ü ŒãqælÇ0 }’;^²*P¹ PÒT}8ÊTðî~é®$%Ëáô¤7ÿäÍF~¤Ì놓$ô]~tÙÈv}jðïÖEEëÙÙá£(€™ûóá¥ìö¢ÇØ3·UÙ‡:ß°a˜t·‡í̇ncf•SáX¨ÅÙ៲94Ë*QövM¥ÄœŠ?ŽÇóðÇ…ÃPî nööÙvÃIXi"·½«ÎÒ[¸´ÖÌŸŠ¯wëÖ-F£¤e&÷³gñ¹®›V Ò³!g!Öœ%™ E³á¼xÏߟiœ†Þô}0¡Xó0cÞdz³3½÷¯ï¥aê{ÿõ{éýkŸ7UÚÊl7ˆƒä$ ã¶ ¤ÅಬjUöØeÛXµ­¢·nåŒð„}ýf¤“““ôTð>Ü–0aÆþŽ>‰NBÅq¬ ’Îä³Âÿí³’“ Û(Tzÿ­ÏÞJ++¦âLyž—~?át6<õ<©ª„“0©>™ÊÊ'ÅsŠ‚gÂ0¬ŠŒÌþV EQÍ[8ÌöË,ˆ¼ì2žÄÒ±²('[rç¡2“ÖÁt>œš ‘³ð„Aòõdy* C=ýà©Î_;×ÙgÎäû¾ü›I{Œ´%Æ,¦ËÁÔý9›*}/‚0ù9 ž'û7ú¨Ý]â*¶ ìÀÑÄò,ûZ\˜ð„6Ç™Ðàö畊¦¤sê{lU¢¦Ùᘧ¿zª·þç[‹áCÙ0ažo†ˆ¤y ó¼ ˜‡{x.­°L’Ÿ@n*+öÜ©àã@ïÿß÷;&M3!ÒH[+X•¨(Š$Wéû`BTzÜ”PL‚ÌqÊô²[X žüì‰Þø“7Òa?ÓÚÀ„`¯ï­¢¬ðM¢4Œ¹/¸zzùTO~JrtßÖTÞ:ó‡– í­³íºû@xB[<üþC¿v>ï4=‰š­DYáÌÌA’敌`¤sn†7†zôÿ=*¬Ü<ýà©Î^=“ç{òoøó çf¿Ÿ'á CÅýd±`×q¥‰õ¸Ùv£i”„‚8Vð~ðHoüñil¼ãyh²CT~¹{.X~Ø×®|g{÷ŸÞÕ­Ïß’¦J×]¨DÙà­Vöe:möÖUžÂ0Ôx<^z|Š*QéY®»¢*]¦5«„žpÈXÊè §< L=þÑú?#@— €+¬DYMÍp4Ÿ ,)³Ü‡Tžš¨<åÙ•(Ïó÷fËÐÄJ'$»Ž›Îå â@nÏ]yá$<ˆÊSž]‰rGaovb€”„ÇI¤Ë.5¸1ÐàÆ`¡ÿ–i®ê¾à*|V¿òTÆE篧•¨`’„ì'?£1&®ÐqùJTzÖT˜¾3s—2k¸)7§f •§Ì®‘eW©R@;<øÆÉ¿é'Í5o]ðÍ?ý¦F¿-„'·çjô|”ö9ò_ò5ÒH¾|iJ\SÐXfIDATˆ²…a¨(ކ¡¼·Ð‘ü›úͤSù„~Z@ÓZ VN ?:J. cžÇÄr`ÿLåÉÙ—wì%órf¿qÒ9:ýAaÊ}!ŽúöŸ[Áó@þM¾¶•¨T4Ò…¡%é?{CNÏ‘Ûwåôù/ûiÅïÍ›o¦Ã}qsü€ µ*@­ >¾Ò»º’¯Å*”ÁÙyÀ~Ù•'ïØK–kég'Š»Ž+¯Ÿ«`dBTð<Ðùkç '¡¼cOÁó@'''Ц•(Ëã=–¾&½÷¯ïÉë{ž 5èäºnÚÂÀé'ËãÄÓdáèát¨ày 7ÿÛó Ö$dŽPS«€î+ª<™soà%kµåκö‡ŠãXƒÞ@qëÎïÝI‡£âI,O•¨œó×Î5|i(ÇqÒj昙 TÚª7oNNBÄ'óå`‚@š&ϵž°\§Ôht‘T¡ŽŽ4¢º´Îùkç…•'ó¡.͸-Z~¤?_7Ž“M¢tbtQ%êºÎí1áiøâP'''R/™¯^2,j‡TÓŒÔ}ÁUôI¤“þɼãû$Öðd¨ 亮î¿~ŸTÔªU4ô–¿^%81|ìÇðd¨áÉPž·Xy2î…¿uÌܨžÕ‰|ËëyIHÊW¢^òõtò4 c×L><™³5OÐw{³5íã9 ¥ñ4N7•tœ,—srr’N‰ DÕ´®‘¦ Qöuuz@ž€ýqúNj*Oeá©l[E˼ô¬ˆûN:Œw]”…'÷…ÙÂÁ½ä89='=Þæ8™ËA0ŸÕSºà°ÿ’¯““½òéWtÿõû{þNökUʰϦ3ª#°?þ§’6#éðQ?éMT7Q‰–k]Êv1ºX¹” ' îí¾œ¾3¯õ²•£u™Ðd†¥Ô“¢O¢´’âõ½Mw½õ–†'«%Dzõœù\œ~C('ûao®{/Y0÷€‡ñÇ‘çyi*¬<͆霾“žýXT´C§Ó›W¦ìùJ”wìt@ÖÕ™%eÏÐ#<íâôEŸDIËÓ‡hÚ̶Ór5¯D™þFNÏI >@÷¾r/ÛQ\*­<ÙM3+éišTR‰š^aR` PÒ|b9á h—ËËY‡ðÙ°z6e€›íFŸDÒT žµ¶1ŽARa2ô +Ou“͚K–©D)™kæöÝtn€¹Î(í|œ,ROã´C¸éx½©x’,CÅIh2Û Âä5ÿä0O·w{nÚ§ÉÌ3¾µ+OEr•(;¤RŠ 4bôÑ(ù€ŸUƒ¢8J‡Û6Ö›Wžâé<œÙaí¥gϙ椳&™fxÔ\o¬Ò—&4sÚ†/™ä 4âÉOŸ$!JÙ…k›¯hEQ¤8ކ¡‚IÐÈk´ ,ù5íÒ³&]8ÛÑÚ¾i}`n'Êžø]¥Á²Ç仓×ÝF•çÓ2XOø,TE •¢MÄñl8)ŽÒëî ®â8N‚ÔV ÌÙwéYuR–Ìò8M­ÙäíëÓáµ\wXfëÊœ-gÿÛ$ T=M"…a¨'?{ÒÀž·™ãäõ½tî“4¯¥s¢dŸ=™9Û±'y(À¶ÕUXòáÆ|]xŠn[öœ:Y@³‚0Ðå³äl<z‚I°Vˆ2a)ŽcES«Ò4ûp'áÁž}')Ó§)]'¿ÀrC}¶Ò×,ÚþlÏL2hͨ|p±+WE!iÕyæ>;hŒ€ízòÓ'zçÝw4þx¬8ŽuùìRq§gËÙ!hSy ÃPQœTšâ8VŠ¢HOõTãߎõðû·ÿMí‰ùþãi2TiWžÌÀ[ ö„}+Ća3óÙ€CÑš•7M…¢Ê¶GÈšõð¯êí|[ãÇIË\%Ê„3ÑÜ„€8Žî·+OæñOóT£ßŽô½ÿ÷{{úw#˜Š>‰„AfN™ÝÊ`ìpf_Ž?oåõ€®jM€ÚŠ– õ­ Yê±CÔB%j+|*ž$·‡“0½n.ƒ0(­<~=Ò÷þóa‡')©æ™ïß®ÅÓ83¡¾IöëHÉY”Ñ'‘.//“  uÐÊE›N^POQ%Ê„¨(žUVò·O£L¥Jº~•§Œi¶uCz^ÏMÏNl’=,hW¢‚0Ðãf³R`] ÿ÷Ë*«ìT©öPºïá_'s”î~énrüódyM’‰Éá$Lú ÅÙ¹Q™Ð %•§Ñ5 OJ‚Ë0* Cœœ¤¡&Š#¹ý$D5ÙÊ =î¹ ×xÌð·Õ%W~ª#ûyË_´Šng¨Ø=¢|ßOû 9Ž£(Šäºn ò¡) Ãô¬¾ ®]x’’yNAÈÉŸ‡ËivŽRc!ʯÖDòp6Ö8$[PÒêÀT6¼¬B•í.›4¾Î>XŸ Q÷¾rOþK¾ƒ†ŸÊx:¹q¢`š ç/Ç '¡‚…“Pã˱žüô0û ºîñOkôÑH£_> -SV…؆Ö¨"ECx»ÖÚu1ºXHWWIh2ÿL…êèˆÉã`w:ÑÆÀVuX6`[Z[’Š«Pyùês¡À¶µ:@IóU4ÿ©lèŽêئN á™0dºÛ·•!D€méD€2ª"BضÖá´M++PöDðª¥už°ŽVW ê!BØ•Ö(³p•¶æq„(° ­Â3AÈ\® Qvp"D€mke€Ê#€6ií@[ j"@ÔD€¨©ÑeÚ Øÿê<·ÉÇU}ž}{•Ç4~^þŒ¹¶ôg2}¥ì}i˾€nÙù^QuÊ|¿mÝÇ­Ë„¬üþ²€m§Ê„óÏ„•¢Æ™›<®Œý‚XWãCxù³NHÙf°)Ê+»ŸŠluÔ&ÃjÛšT^%žÀ2[]ÊeÝ R4Ù{Ùk¬³]BX×Aõ¢ÝØ….&œŸè]Öò èqvµhÙãÊU›¨B€u4 Š‚HQh©òܲëU·WeßֹࠆðvP  &@M(€šP5 j"@ÔD€¨‰P  ¦.&¼ {Ñ`kÖ€]k}€2Á©,(­º i­P§þéÊ`dî'H€]ií¨*áÉv1ºÐÅè¢t¨ )­¬@•…';QiûÒºUžLpººšßvtT€mjU€Zæèhùu€]im€ÊWŸŠ†ðì¯Ê»ÒÚµ ÂئÖ¨‹ÑEf˜nÙÞÑÑbCMBØ–V¨e0¯®’ dþM.·'¡ÓTlK«T^¾ eZdûA)šòÏhZëT¾rdBTÑžž šh€mk]'ri±›¸¹4ÝÇíÛv­•J*^’eYh2U+‚ضÖ();œWŒN`×Z ¤Åöe÷ìJë”APmѺ³ðÚŽP  &@M(€š¶~^QûªgÔU]–eÝå[–-6ÌY ÌNÚ´u½ºUÍ9Š´¢T~ñ`û6;lmò¸:ûÒ†pÚkï*XÌõüZx›>n}(²“•['¤l;Øž@U;ŸµÉü¢ªÏ­û„'PÇ·ðòCnU Í-{u· °ÊÁ÷Z´O`{ŸDn*Röu[~²xþyùÉã«¶—W°V ÌÖTQÉßVVV=Î\¯º½*û°ÊÁá4P  &@M(€šP5 j"@ÔD€¨‰P  &@M(€šP5 j"@ÔD€¨‰PSë”ïŸÊ÷O3·æ®É?¦h;MhU€JÏÕ•ü›¾¤$]Œ.V>÷bt‘†¨¢í4¥·ïXÆ¢*(û9WÛÚ!µ,@FIõèèH£ÑEZUªR’æÕª‘”Ù@“Z $-žª!*ÿ‚Ø–VÍ*SuÀ.t"@´   &@M(€šP5 j"@ÔD€¨‰P  &@M(€š¶ NýÓîh£­W ÊBá tU«†ðNýÓôß:÷åo+»n¾ÎßV¶}[oÛ/p1ºÐ©ª‹ÑEz›¹ž0E©s_þqËTÝ>@^«*Peª†™:¡‡€Öµõ ””­B-«î,>+»Ï®dmŠºUí$@Uµ,Xå‡ØŠž·ÉÐ)PÕΆðVUŸòªV„ª<®nu‰jX¦5¨ü¤r;hÝgÂXÙ^þöe¡hÙkäm5@åƒHÝëU[ö¼²Ç=žÐªêÄYxmB€¨‰P  &üÿíÜMr›0Àq±ë5â«…f‘;ô"©s¦,»í2voBRBôñ„ž„ÿßL&v OO8²€H  "yoc0c©<Û$pÎT×u%ó8¬×Ÿ¯{§”9P×—kÉ<šá@õO}É<ª5MÓ§±‘w ëvÀÙÙÖ„ó-<€H  "e@].Q·ÆžŸÏ?’ís+]^ \µúQc¿=ëGZFj É9‘ãxÍßVVKç€öy×@iɹ–êòpùùœÓù´²n¯Džësc¯\JõÉí~×Rg l³=ëÇëÙŸõ'B×o[Y®™$ß “Ëí~½™ÚòrÕÛ·M¨¼e$í¸E¨ýBñ%}àëkiŒ˜º„Ž—õߴ듃+OWÙyúÚÁ7µ ¥}:¤Ç0”<µžñ™¶O‚¾Oˆ¡™¤Ü³Jss|[®’mBñçÇ¡×]1¥¯ùâ¥öÁòùº ´ú1”³¤½4êS–c#”g¨î1ùh¶áÖ~•ÃÌB(%y Té7ª\å-ãºÊl[Vl<íí¶J¿÷þ[ã-gAr̆¤)eh”§‘§äÜ€Y%ÅÔ|šõìØRÌe³T5õc‰ÎÑÕÒŸµäÆT6€:ã?'m®K%g®jêGí\lÿÄkªo5ÔÏv öu ¯ä›–oápëB y5ãæÚ.5Fj}·ì¯QŸyÏòGS‰ã;¥ 6€#Î@ÙMKI’Úb¯gO\9øöÛ’[.¡vô]~[òåíŠ!m#iØb¬‡b„Ž¥Py’öÒ¨O*[?ûòÔ:Ç´ÊÐníç«ë¼íÏ‚r¹tƘiš&s»›qMÿÜ›ëËÕôO=o<I¿u‡8GhKÍÁ[ëmëŒuß8Œæñû£éºÎÌc¦äoáA†ËpáØ€öTµˆüȶ^º€\«³¹Ž³ÝéLu°?Pq›¼ZnÇ÷7;º3ÕÀþ>Pã0~yÑö7€3‡ñ}ÕuÝ—§i*ž@Íæ1SgŒa¤áýÞ_;§ÐŽ5PßþþÙ3€fü@Ýï™@3þšØ­WÖ™IEND®B`‚ghemical-3.0.0/docs/user-docs/images/setup_select.png0000644000175000017500000002121311563552731017521 00000000000000‰PNG  IHDRÙ©ÁeLÃbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ 'åu… IDATxœíÝOˆ$YbàWKªaª`=°†­ÂX‡è²77ÌÁº©a–°@dÕ€go–|Z­oÂÉ7ÙÐ]uÑ2«ƒ`ò¡Ø<úbPû $ƒ›Î>zÀ ]0 ]‡ô¡&ÛÑ1ñçEd¼ˆ‘ßEUfü{‘¿|/^Æ; ?ÿõ6ƒ{BǯžO]XœïM]X*! ‰<˜ºc¹ûѧSav\F€vÎ-ýÊùå`BöøÕóp¼ùïScvîÎ~º”yŸN9)ÊÓfȦÕ}”_SU“ñØMÅ!8·ì#Å娡ÏÙw| a˜^mŸºëÖ§IgXUÁY®¥§í”§Å,Ó´ý˜åê®¶½ž!4•³ªVWžwßmÄÌßt3…˜€ëû¾˜‚sKž†¨ W½W»|@; ?ÿõö¾¬I§»%¿/úÔ°¡ŠsK?K>¿;ãS,M:ý,åº %ç–þ–r~ir0!ÂaPªÍ©é‘ùqn¡ÎÁ4ÀØ„4u@G!„íÔ…€%úÞÔ€¥úÞv» Ûí6\ý—«©Ë‹°ËÖï…ÂæÅfêòÀ¢l^l4@*B²ˆ€D„,$"d ! ‰YHDÈ@"Bé4hûÕS÷7æ°\|~1u€ë²!„°º\¥(dçèèhê"3×9dCaóÊ€,Ûúf=u€pM²ˆ€D„,$Ò«ãÓXÎÏÎ+Ÿ¹yù~zÕ߃¬C6„МB€œÍº¹¸®¦»›¶ûá°yS™uÈÖÙ5ï~œ` ¡ùC@ Ù7—OŒšˆÙ‡k÷À˜²Ù¾'DµêZ`,Ù‡l_N¢ÔñÞÆ²Èk²ejµìX`L‹¬É–;;9±‚÷0¾¬C¶í¤Xœ^ž× •ï`*Ñ\ Sȶ&Û6žçãÏTè'Û]]®§8€Üe²B€¹sM²ˆ€D„,$"d ! ‰YHDÈ@"Ù‡ìùÙù?]–bÛÐW¶w| á>äÊ#¨T=9Ê:d«T…nÝ´Øùª¦ížêó·;–Ž#0¶¬C¶8øzÕ ²€uØ4_ݴݶ˜—ÃñÆ–ý5ÙbàqÔIxÙ\gÆ”uM¶¨©æÃÉ•5Z`,Y‡lÌÉ0ödé¤ÊŽ÷0–웋»¢V«Æ»lSÖ5ÙbǧâsuÓëN Móµ­CÓâr8ŽÀزÙÚOŒMÁ»žØu0OŽ#0•E5@N²­É®oÖÓöx¤’@?Ù†ìêrÕ8}ój3RI ŸlCVˆ0w®É@"B²H¯k²m=€ž!ÛÖóæîúÙõÔE WÈêù í\“€D„,$"d ! ‰YHDÈ@"Ù‡ìùÙù?]–kûRÊvžîñåæeës]ì³,t‘}M¶¬*t˵ÜÝßÅçË¿ëæ«Zwy¹¦eÈcL%ë}¹yÙx‚ÜÕjw?»ùvA¼{¾ø\Ó:Ê\õ|Û4òåXcË:dC„YŠ“dLóqÓ<šŸçEÐcÊúšlÑ.ÌÊ×d§8iVÕš™}¯ëÄÊ:dcN†S,ëBŸü9^ÀX²o.î"U­¶êš,ó$`1e]“­êXTë$Ž%0¶¬C¶ê¤X~®îÄÙ6_S“sì:™Ç ˜Ê¢š‹ 'ÙÖd×7ëÆé?{þáÇáôä4|üƒÃñGÇïƒÈOö5Ùª mëq\w"-¯«8_Ó´ª;<å~ÂæC¹¯b öÑ…‡= ~ðèƒÿÒããã÷¿oooÃÇ>o~óF2•}ȆÐ~r,÷î»®¦pîRò2—ãõ;¿ý;áøøøþ:lEÀ–œœ„ÛÛÛpzrîîî§ÿòÓðÿöÂ/ñËñ 4ʺ¹É£GÂé÷OÃñƒãpòÑIÔGà““ûùŽ?:áAg?øo-6 ßÝÝ…7oîõ¾š¬üÀwõ ÙØž¿0WStzýúõû§§§áÍÛ7áôÁiøê«¯î¿7û­Ý5Ø7oïƒõöö6ÜÝÝ…ú_ÿÞ¼U“…œô Y=axõ_ÿ*¬.Wáî›»ðÉ?ÿ$œ†Óðúîu8>>ïÞ¾ ¾oÞíëÿ{-÷ùÿ|þñÿ£ë±™l¿Â‡èúÙuøé¿ûéû¯ã<|øðþë<ŽÃíƒûk´ï{!¿{îîîÂó¸X·S„üô ÙçÿãùÐå¾µ«ÑÞ¾½ '„Ó“ÓpüÑq8>>~°·¿¹ oÞ¾ ·¿¹°±Þ5Ù'?y2d9 GGGáêéÕ¤e¸~vžüäI8=9½Úߺÿ}÷Í]øéåOßýÇ? ¯óZ¸Bæöj.Žý.ÌÅßý·¿›ºïí®¯þìç? ?û?{ÿßzwwƒ `a|Oæ ôq¸Ë-éY˜ÝµØîßLX Ú,z?üþ‡C½ûºÛ½]Sxøý‡Y”ƒý}ù7_~ðxw=vêë²E_þâÃ2žeU>˜³‹Ï/’­;û­ 3ÇÐÜ`ÓÑÑQÒõg²uaZºUÓvË×S^gqžºåëæ-¯·®|L«êØVq“8,cÜ"xö×dwA·û)7-ƒ±’Uë(O«²;Y—ƒ»Ë:ŸãŒ-ëšìе—ºšŒšçáhºÔP÷©öñgÍg>ó-|¾T޶ÛívóbÖ7ëpñEóÅß«§Wau¹ ¿úÛ_…'?y’ü{²1×^ëštûüÝwZU Ipç£íø|ù7_6^“-7#ŸýèÌ|æ3ßæ»~v¬ÓÓv» ››å×dÇ"Tç£îXÅ^“5ŸùÌ·üù†’õ5Ùºë›C_[‹Y_—mºö—/†€1e_“­ ÚòuÖ}{öÖõ..?Ûaʉd§T €aÐwSSÕŸ.Á9õë¨ãv¡ÀPf²Å“ú”µŸØšóTM 1û¦ë¾Ü÷µÌ­9ØíB!Í"dsÐví²hÌ©?xÄ„pSr­­VysûfôûË6›í&9\ók*ÃTåëÌÅeÊëˆYgÇ£Éêr5u€]?»N¾Ù„lŒrírÈz¹£U]¨TÍ3-„ïv„Š}©j³]˱Ïòu¿Æ æÍ«Í(ÛGÖ![`u‡þžkÌs1ßÁ6ĺ»Ø·±óöÙNêgcYô÷dEîͰ‡JÈîiꀛzûÔ²{š:à¦Þ>õ„,$"d ‘¬{ÃÕÝÈDÓ?,… T8 š‹!3Åac‡K,/Wž·êùªea©ÉB†bï€;´¢…iY˜@Uè q§«¦;l Z_ö!Û÷~Ä}†q›ú:YŠ2ÇP{S 7¿Æ>ûpè°tL!¬C¶êŸ¨BÊu§2t™s~­Ôâ¸M=63ŠÙu|ª ™r'ªŽåeÚnfßÔ1¤¼þ¦'MS†*sÌzb:ÊÄ”Ÿ¼ÄǦ‘uM¶ US×écŒOé±Nbç²Ì]ÊÂwk5mågm×dët>°üÿSu©Á±…´²ÙÂ'þâã©u®mÙ¡íS¶>óÓMÌøÀ]7=ïX´²Ù¦ZVŽr-W¬¹—ŸöµXH/ë9 äz’ȵ\1æòA†fMMËÆ1»ŽOMbàî;ƒMŽÆ(W“¦2wýÚ‡cw½ßK@?Y×dë:kÔMïòõ–.ëîúEþ.SÊö)sLybš«Ê¯æÐ]Ö!B÷N"±Ëu]wÓÝxºt8iZvè2·•1¶³ ˆ·¨æbȉ€D„,$"d ! ‰ôê]¼¾Y]88¹ µÂð7©Øç5öбjÙ>öÙ6õ ÙÕåjèrÀd®Ÿ]¾Í9µØÕ¯qÊûo/é˜0¾^!»yµºp0b†ZÜÍ×uÚnÝm5±ªå‹C×QµÎ¦×Ñö«ÊV¾YJ]Yb_cyZ¹ }öCÓ2M¯…ÖýÍ(à 1”bùŽemËw Ò¡ôú±í5ÕdŸ¡2û cÉa²0±¾·à¬Óõ.b±ëJeßæãØåË¡—âµ UÊ„,L¬®Y3åÀC z1§@iª™BJB2•2ÄúÖç®M éÈ|OFV5šRÛ >çZm•º‘«Ú:a¥°¤Ìš,L n8Á¦Ç1Óún»(f¸ÅØ£b¾'ÛÔ#w¨€¬z½uû¼©ãRß}_·^–ïh»Ýn7/6a}³_\4Î|õô*¬.W£}…§êî¾oê¦ù8Lë›õ¨ïë¹òÆÿSZ߬ÃÅç͹××v» ››ük²}?ÙúÇ…á EèfÖ×d›®k5]ç9?;×Éá€8ÞðÐݬC¶òÎ9Ž÷~|¯ºË¾¹8åMÔíáQÆ”}ȦêmÈáòÆrpÍÅ `±,&dû4ûj*><SöÍÅM×d«FáhÓg–AÀcË:d»~6æï¶i,c Le1ÍÅ›lk²ë›uãôÇŸ=©$0¬¶Þͱ½ŸS÷’Nqßà\Zô4'µlCvu¹jœî>³ÌÙ¡ošëWñr(Ë–mÈ Q¸;êKÛÈ:UÓªÆTmL£i]‚³mÄ›ªiM#õÄ–«íõÆìCÁLÙ†,,YU(•äø\Ýã˜ùºi˜p«éºkhV}£`Ÿ}˜K-œyÐñ LŸ€h[&uè4o»\ŸqwûlŠÔda"ÅZÕµ£Ô×sǺ^Üu_ŒQ®¦æjhÒ+dÛzþã³§ñÐÁÖ÷ƒFêri.¦^!ÛÖóæäúÙõdÛª[ÖÖiêžÍs*×aB¯ÕóÆQîÕt°n¾ØiM·­ZG—à‰²²ÏŽ}ËÕ¶®ªi:GÑÅÑv»Ýn^lÂúf.¾¸hœùêéUX]®„,‹²¾Y{_gB81¦õÍ:\|Þœ{}m·Û°y±Ñ»ȃ€e‰„,09ËR Y`r–¥²ˆ€D²¾ãSÓ× b–ª *æë sà:À~²ÙæPUÁ$¬Ó¬›‹w5Æó³óïŒ\Rü]œ§\ˬš·j;UËVÍW÷%û˜õÕ•»ë<±ÛhZ€ýe_“mSu—•>cHÆÞ‚nßZéCsµÍÓåõ6ý À~²Ùª“ý>ÃWUiZÇØÍ¼1¯­mž!†%kºÅq²Ù¡BnŸÀ˜cØÌ±Ì‡¢íƒãÛIý!1U'¿)†•óÞÃm럺ó¤~$ÃÉ>d‡Ò÷ 3æPZC™c™Í:Ç¥êä—þ˜rû:O.ˬ;>õ•*têšXçrs,ó’¤è¸¶O‡»ªu ÕÉo¨N‹ût lZGŸ×Ѷ\W±û5¶¬±åÓrÙ×d÷iZ+w„êºünÞò²MŸ*«‚6vر¡ôþ«iس˜ÎR #Eǵ!:Üñ:öí´Øö:êæoz½CªÇuê†Õëºý”ó/ëíÚ§©CPL'¢>Ûé³Î®šºþÝô8v¾¾Û%NÛ±&):®MqLStZÜ·Sàeb[åK±ëÚç½Óõ¥ªVÀé] ‰YHDÈ@"B²ˆ€D„,$"daçgçü ±¾1·³ï6‡ÞåõŽiÈýÒe[uÓSì×Xø`dU7RŸãÍÕ÷)oª}Ã~œrûKyo-‰š,d i ЪÇU5§òsU5™ºy˪–//[W®˜šVݨ01ë+n¨ý0Å~©{mËu»_cË[¾©jÒ¹Q“…‘•‡¤ë¢jh±˜Aß«—‡Åk[¾iØ´¶mvû†ØåÇcî—Øaãb÷gÛ{+vû)ç=4B&P<÷YÇ>ËÅÔ(÷ÝF )Ê8Æ~‰]ç>ÛêûÞŠç6vÚ!‡j™… µ}Ú/?[ Þ·™N3_µ1÷ËPÍÄUµÌTÛ仄,Œ¬­ù¬©ùq7½m=C7Õ2î~é»­˜¦ÙºéŽ{:>ÁŒô9ñMq²lÚf±6» i µÏ»zj²0²ª©º¦UU+ij..wÄ©[w×òµuª[¦Ë6ÊËìû†ZGÛú†Þ/±ÛŠ]®¼Í¦òtÙfß×ÛÑkI޶ÛívóbÖ7ëpñ…AÙ9ñ@Ö7ëpñyšÜÛn·aób£¹r$`a„,dFÀÂrYÈŒ€…岈€D„,$"d ! ‰YHDÈ@"BFÖv3õ!n¶>ÄPwÅŸ)Ê1TöÙ>ìË0¦ñc§VU¶±ïB•C`B2W7ÚÉ.tÊ£òì—G9©ZGÕ¶êF]éZ¦¶}FŠ]W—òµ•©nÔ#ˆ!daUATÍâs1ËCÝÕ #¶o°K™º,WÔ4¤_Ûºúì³>óB ! 36ÅI?fLÓ!·Óµ&¹OùªÆƒ…}Y˜H±Æ™º–4ôµÞ1¯7Õ:ëäpmB²p† ð.a7Ô6ªÔM£|ËWx`BcÔbËšB§|M8f™ U¾Ü_'ó£& +‡^—0.w„Š]GUЗ©Z_lÍ3¶}ÊЧ|}÷o]‡(£(;Ún·ÛÍ‹MX߬ÃÅS—Fwõô*¬.Waój3uQ€­oÖáâó4¹·ÝnÃæÅFs1¤"d ! ‰YHDÈ@"¾ÂßZ߬§.°0B¾µº\M]`D×Ï®“oCÈ·|Ošk²ˆ€D„,$"d ! ‰YHÄWx`dUƒÇ “´i¾ºÁÇm¬Ó¶}Ù6€ýeÈmýÆÄ–… ”Ob)Nl‡|¢l Ï¢>nº#`c¾4CæÎÏÎßÿŸ+þî³Îâºc¶Y·Ýâ|Ue¬{Ü4­êq—×úrórКhŸ}Qž¯Ëúú×.ë«;nuó Q¦C¤& +×Pv‡¨½—¯û»íqùïšÊ–Ú>û¢ªœ}××V¶º÷CLùÚvŒÚþ’ Y˜@ùÄ–âÄÕví·ï6ë–ÛèSÊíß´/†\__1ëã¸2! #,ö­å©­T¬‰•ç-†@n![4E9ÇG¼! |Ç!1d‡œ©š‹»«œ±ÍÑCÈyÏŽO@£ØšÌ¾5ž¦ëŠs0—r–u)÷\_ã”Ôd!cåëe]¾úÓvM¶ï6ëæ­º¶7Dm¶®vŒZí>ûbßõ¥ÔvܪæÛ=ÞéÚéëPm·ÛíæÅ&¬oÖáâ‹‹©Ë£»zzV—+ãÉ ­‡+y:Ôc´¾Y‡‹ÏÓäÞv» ›ÍÅ@m͇‡zòÎfßñh.z‹mN$/¹4[! ìeèïŠ2Çgš‹ ! ‰YHDÈ@"B²ˆ€D|OFÖvOáØ›8t½oqy;Ks³…¦; µ¯¦‘'—õ:! ãþ¾‡|¢,ïϺý;ƪÆXÁ˜/ÍŹó³ó÷?Å犿û¬³¸î˜mÖm·8_Uë7M«zÜåµ]³ë³/ÊóuYß÷Ž=ÆUeŒ)ïe]25YÈX]lˆÚKìPeM˧°ï0jûì§}öEÌ ê±ëk+[ÓX¼måk XÃÛíGȪÆ]M½òvún3v¬ÔÆ ØCß·yŠKC7[OÈÂÆ8)í[ËR[ØkbåycCï³Í¡õ-ç>ÆhªÐ]ÈÖ²Àw qÒ²CN×fÉ©š/Çj>mŽBÛ‡£TÛ] Ÿ€F±µ¥!šë®+ÎÁ\ÊYÖ¥ÜMÛ¨¦& k\»ëweû\£‹iæ­Z®øÜ>µœºfɘŽAåõì³í¶uÄ4Ÿæ2XzÛq«šo÷¸n;:G}èh»Ýn7/6a}³_\L]ÝÕÓ«°º\…Í«ÍÔE™½¶®äéPÑúf.>O“{Ûí6l^l4ì’%  IDATýµ5êÉ;wšzÇ£¹è­©9QÀæ+—fëC d½ ý]QÆáøŒCs1$"d ÍÅð­õÍzê" #dá[«ËÕÔEFtýì:ù6„,|Ë÷d¡¹& ‰YHDÈ@"B²ˆ€D|…FÖ4vçØÜÄÒ²0Á‡As1dèüìüýOùù¦ßå¿cÇlèGM2SnÂ}¼ ÆÝß]kËmÛº²0rM±K˜•ç->Þ'* OÈÂr 4ÍÄ0,! „ª›‹ýèøDp¸Ôd!3ÅNL»ÇC­¯¼î¶íêüû²0²˜Ðª›'¶ÓÓóÅ–¨§¹²ˆ€D„,$"d ½‹á[ë›õÔEFÈBáèèhê" ¤¹˜ƒwñùÅÔEJÈ@"B²ˆ€D„,$"d ! ‰YHDÈ@"B²ˆ€D„,$"d ! ‰YHDÈ@"B²ˆ€D„,$"d ! ‰YHDÈ@"B²ˆ€D„,$"d ! ‰YHDÈ@"ß !„õÍzêrÀ¢¬oÖá(„°º °Dš‹ ‘á翞º °HBáøÕó©Ë‹óÿ†cïè<… IEND®B`‚ghemical-3.0.0/docs/user-docs/images/using_mm_01.png0000644000175000017500000003025311563552731017144 00000000000000‰PNG  IHDRôwÜ.« pHYs u u-x”utIMEÖ ]–èh IDATxÚíÝw|M÷ãÇñÏÍÞ[Ä ‰AKJ+±)J[UJÕ¬ÕZUÄjìtX¥j´¥¾Ä^?«T…Jl±¢¥ÄH¬ÈÈqoîïÃímrïÍ$÷Æëùðhï=ùœñ9çÜ÷ýÜÏýÜs„ ÿdB¥RÉŽ€²ÄDú_LÌí¢Í¿hÑ’-ÃØ á.ÉÌÌü°·úÄ6ʤ¤äK—®dddúø4PÏwsk[ö#èo¸ !ìííÛ´i£žìJ¥2''G¡PÜ¿/%%%$d£B!÷÷oõo{?-…ýˆ²çØšBÿ_èçò_ö桬…{®XW*• …B wSS3''G›¨—¤åeciÑ»cËfoÖvsvB$>M½ûðñÔåÔËØÅÿ“YµáËÛ†b._Û쇖©wø,Hëëߨ¸—€öMØÛXÝœ°nßÑãÿBÔ®V¹cÓ>^ž®Nö EÎ½Ç GÎ]Ùqä¤"'§˜õ}yKFÂ]j­K™ž“£X[[ùùùEEEý§0-w"{ëï' q¶·ý~õš³áÇe9rooïwÞyÇøÁµtûJ¯à ÷ø…]ü?Å_¾ÆÙ¥…ïÙ³Ga~÷üS—ZçÒ§{¯-W¯ß´o׎w»u6øãIÁKNÿ3ªg§ßŸÜ¹mKüý»6Ö}û~4´GûÊvæÁëv ™¬8[ûò–ŒüÃ]•êêÉ®j¿+•J™Ìˆ–; ÝÐ^]*—wùqÕêã¿;WUZ9œŠÏ9³|½±‰±ú)ݶmÛú~\ÞÉáA\âÒÍû.ݸ#„ÉdïµnÚ­•¯«£ý“§©ÿ÷çÙ-‡Ã¥o§¤&óâ{zwháâ`¿fÏ‘zÕÝÛ5®ogmy÷aÜÒÍûþº£*Ùá³ s!„ý|zø7qwsINMÿu_èÁ“¤ x¯uÓáïwR*•I©i§#ÿY¹ãPÚ³Œ‚¼3­æ[¦s _!Ä¡ÝÛ³¬\v\ŠùD&ëÓÉÿòÍÿ}þÝOfÿVØ8ç8y¤›˜/ÛÞ¾]»6Í›,]½Fî\U㢤êü°u¯vÍím;ž¥±REX2J2Üår¹Z¦ÿ'Üsr”i8zί^-!Äɰã™Ö岄©HOB!ÖnBí”®[·îˆI_5®å>mòÄñvê;a¦ÂÔªOçÖÃÞëx ôøO+~ìÙ£Ûà>}äOBŽœù·óÁÑtè„i =*͘6kXŸ½GŽúì ŸšU¾š>mâGo÷›8Gabñõ=p/ÛÂ^a"S0=ñö_­üýÇŒm’•6û—íÂȸP/@meÌLž'@š‘…ezš¢fÍš²'÷3sd™v•…"+[deׯç%„ˆ7JKÈ´pÒ±¢Z¦ƒÇ*ž<4Ï‘·ë=Hc¥Š¶d”@¸+ò¬¬¬±þoû]ú¯R™£TÒr‡Ás°³B$''U¬gnl*Ôú©Õ;©7lØ È”|ðLáV¾¼Uz\VÅzï¶m!„زÙÖó·ûô=:ìúý¨Â®¼4×úõë Ó³ñ ééæ5«²¦'c³…ÜܬÒb³*ÖS}Ø)@ñËŠeIirçjKþ/ÌLäYÛ !¶9m’§p©yàFâ!ûÔ·ÎüYîR­P/@meÎ\½ÑÒ§Nçη]ŒéÙ®¹ÂÒÒÒD‘©^¾¼³Ã¸þ=•Jåš5k„‰¹îÕ­_¿^ž%ST~C)3ÒQ©",Å w¥R©PäÈåÙj­uù‹Vûó)´ÜQ$&§¸:9899ÝÊÈ"Cá?ð iŠz'uBBBš“§2å©Ô#ËÎÌLKqq´B¬^½Zµ4WWW£äØtãçC„“““ÓªKs !’’’Òœª+ÓRÕ¢þ *çh/„ˆM³wWf<BdZ8Š´”ú^žCÞë\½JE+ s™L&„°µµ5z–”kö"·Üƒ ÉêÕ±wïÞýû›ÝŒy m¹Pæ¨ÊwiÕä³>Ý-ÌL—,ûáÔéÓÏì*Êu®.111ÝÉS™ž&„ÐV©¢-%ÒrWdgç wõn™œ6 }~ùÚ»MÛµk÷ëñ«ÂÄLÇYmfë˜ëOqO’Ýœ?þøã¤¤$Õt£Üs9ü§ä¿OÕKš[Û>NL®àâX¾|ùgfÎêÅ‚F~âdg3+øÛ gNÉÄöíÛe2™,G‘kö"·Ü³…øfó!ã2~–\ͽÊÒ¥K###…‘‰¹µ­“½íøÞi\·æ;1Ë/¼uSá\ÍØÆÙ8¿u©v—¶JyÉ(nË='G‘ý"Ér¹\}ØŒô¹£,øiëÞ•z÷î-7ݽçTdBòóæsÞ³:מ™–²õà±Ï?ê1`À€EÛË•²z5«õêÐêË…«…ι´=ÍLKÙòÛÑ1ýÞ:tè¼u;Âd@÷K6ìBÈ„R‘ž” p¬òчïdót·ÜóŽŽÛï½_vþfjjòÉ>™YÙ[¶lÉ6±h^·ú¸þ\³nÿ®íÙFfŽU23Q˜ui¬T›Æ мd”LË]î …B¡çä(rrr¤‘ï´ÜQd 1fÑššxùû5éÓ£›‰‰qzFæ­{o]»š·eë„ßsâ¢23ýÖÍv-õÏ’+®FEï:tÄ&-6Ûµ†Ž¹t´Ü÷º¤ÌJëÞºùÖE³’RÓÿ·÷ë¬$¹c•¯Ý9êÝ6sçÎMHNÙ|(LÛìyk§>Î]©þE‚úèøÛÖÌogkûÏÝ{Sfξ­¬àýÕˆ¥¿ØØÀþªu ™Ï»=+Uœ%£Pž_RºpXBB⯿þoìØ±IIO²³¥ïTsäòììl¹Rù<Ùÿøãhùòåzö|_šß¯Ó\[üP*Íž=1ÉL1RdÉ„R)3Î16É11fã&… BÕÿžë©iF’yF²Lž%d2…‰e–•£ÜÔ*ß¹ÔŸæú“YæSÓgOŒäYÂÈ8ÓÚ%ËÜNaœ•n™öØ(';Gfœiéd™öXÛì¹HU§m.³Ì§æé ²…ÂÄ<úœ4’'ïìê ѱÆ\òVªKF „{PÐ,KK«¬¬L¹<[jªK£"¥»R©ÌÌÌ0 ÇŽTá^§uWö#èo·Œ³³ÓÒ¥‹ »úÜׇÔkŸ —¸Ñ÷p/‚^[l9xŒý¼&*×mäãY!×D;!.ÜzÈÎÑ+ÿé–” Fì Ü„; 4høBµJö ”µpBðý*”Áp—„†zÙ«ïßo$ðJÃ]Ѻuö¾PÂ@¸ÊB¸2yoéÖÇÝÝ“ƒ %éuE¹*d®(ÿ5¸ë¯Á%IwwwÏèè[™(p—}zëeuËää(·üö÷çs ~`yHijLyÉn·B¡þÆÇ§Q­ZuFšš–·ÿã+|||½¼êN˜01++‹ƒ €p/®=¡7ïÜOžùy«ï§µ735Þràï’]þ²e˯\‰Ü¿oDÄY ‹ùóƒó–9}úÌáÿ…‡{ü8nÁ‚Ål¯"v˨7Õ5vÑ;ýåà&NöBˆ^kO]üç'=Þ(ìZt }Ù´iËúõk+TpBNìÐáí¹sgç*ô•³³³"(hFŸ>}'r¼îºäÛçž”’1yÁQÕS™¬(kÑø…ªô 6öQëÖíÕ–¯aUªT~1—{\\á^\¶æÓG6w´³|IËwuuݵk»›››Ž211÷ªU«*„ˆ‰‰)W®Àëãeõ¹·nRmÍŽ+Ò eÌ£”å!%»ü~ýúNž<åîÝh¹\qíÚõQ£Fç-3sæì„„Ä„„„™3gõèуƒ €–{qu ¨¾ï˜^}2éiFEW›wÚÔ,Ùå9üÇWöîÝ766¶Fê£G–·LãÆ¾íÚuLOOïÚµËøñc8Ø^2!„R©T¿¨z•*ÒÓÐÐC/û’¿ªu•8~{áäý…êKJgÓ‰lx)áþj~žJˆ@‘•ÙKþòÞ€pîý¦«Ï½ÿaì (káþjT©âÁaÈkݺ•/{*€×+Ü×­[©j¹¿¤Aè(ˆÐÐCì%îôÆè €’ w!„Ô`—:Lè6yõ¤ýÏÇ&%î€Ò²qcHé„ûöíÛ{öì©í¯{öìéÚ•;¬@Ñùù5+æŠ2νgÏž9y(Š;wî;v¬[·nÛ·oçØ@)*ú˜Rþ+555&&¦Y³f›6mêÙ³çÞ½{ËöŽkÓw)g½U’}î?ž:uêǺuë¦T*Ù¿``-÷\”J¥¯¯¯½½}bbÜ_ý¥»Í;éëݹ’¿Â1Ÿ-Ùß}ØêŸ,1}ó±Ó7‹¼IgÑ·ú¯žŽ›ÝC[î999êOmmmGŒ1bĈ¿ÿþ»yóæ:f´·µÜýûåÞ,õú?ˆM7gG¿¾ã·±47½y7nó¾ÿ&5Jv-úSß"¿äôù*›\úß ’ûçLË]•ìJ5Òô|;dÆ ØõûåèO4-V¹zó‰÷FüÔyà³—þ–ž‘%„è7~Ý{‰RCǯInßKè7~]1ë¿vû黼գý›v6¦¦ÆÞ5܂Ƽ­jY·é»TÕÄnÓwéÖý>ü|MÛ~…ntë¨o©S€6 i-êÉ’2=:úVÙ8"†R “â$Baÿ¤bme6~pëù?Zô‰ñÞ`6ì>÷ÏíÇ+çö¶¶2[ö럫6ž;0À÷M÷Ë×îW«ìô8!åû_ù7©anfréïû߬ZÌúŸŒÖGÇŒ#>oÓwé‘ Ÿ«O¼~ûñªy½ím- »õÕ2™ÌÐ_f›„îÒZ,`^bËW}›ËFËÝPjQônõ—¨žæê®ÑèÍÚ•|êT^»íôýÔ§ï?zõëIÝË9Ù!†ön6$pãØ¾oVý#üú;íÞø#ü3S㣧otlé}éïûZÔ.fýŸ¦f8Ø4¬Gôm‘7Ùsõž«?UoÐV_Î×—”쪦¢¡ä{¾É}û,RfÃ]Û®-÷ ²„A4ý,h[“Uß𪨚ÿ$mÀ—ëÕ•BáS§ò÷k !‡_ÿòÓv[öEtléý÷ÍG“†µ+fýíl,’Rž9;X¤°Æbê ž·±Ÿo}õ¤©(=5ô†¡¡ç;h¹— ¢w(•J###™L¦þ¡¾P½´&&Æ#Ú/ü9TêX V[– <²áséßë?BXZ˜Vtµ;vú¦¥¥©ŸOµgÙ'/Ü©XÞÁÂÜ´˜õoX¯ÊÑS7^Ñ©¦ú–"Õ‘ÒÿŽumoNy™Iehö¢ÄFR»AoO­b}¡*—Ë …B¡PýNU©Tä U•ª•œºµ­·tퟪ)ÝÚ¾±à§Ð±É Eέ˜„ÙK“¦ûÖ¯º|ýñvͽ„m›Õú~íÑÆõ«¿þýßk¼qÏù=D¦¤fdg+®EÅ-Ù/ýÉÖڼĿÍ[ßRl}¨¿+Ëd2Ú¶ú“ÿåýûªt[îzþ’)VŸ»L&ÓØí^¨fà»êOþf·êéGï4ܸçüóv&=oú?2RGc*×}\D ÅüÀQÆ[îGŽU¿ÆÅ‘#G_ÏwuCßþ˜èÛR²ëºå…ŽŒÔýj¤ýŽâ¼ÒËrËýÈ‘£ ºwÿvrr¼L¦<îÊÇZ»ö—6m8 ®="=6°_ )ß (ÓËÒÛ!~©»…^–oÖ1`À ´ô¤«¾555ÎÉQš[˜>ö“©—Ñõׯÿ3o^ð™3g„7ž2e²—W­ÒÚQQ·¾ýö»'N¥¥¥y{×1bX—.oíDÔ6‹^ÕWÛÙ©õTv¿åíéé`(Ch =ßËØ[¬j·—™ÖC-“–§Éd cc“Ô”ôzuk/Ydnn–™™U­šgò“§ý?¤­þwîÜíÝ»ï„ ã~øá{!ÄîÝÿ×»wß;·U«VõÕ×ÿîÝè^½úŒýÙüùs­­­¯^ýkåÊUR¸—½ªoÑ¢ÄÐc½¬æ¦aå{™Ùùeü6{¶Ö•97ÿ޹ÿ¡‘‘,åiš‘‘‘B&Š¥<[Þ©s‹¦M›Î›œ·ý¾hÑâO?Ò·ïGÒÓ¾}?zú4eñâ%‹/”Þ'®Zõszzz·n]æÍ›cff&„P(ß~»`óæ-iiéíÛ·ûúëù66ÖRùyófÿðÃŠØØX//¯… ¿õö.Ľ÷.\4|ø§Ÿ|ò±ôÔǧÁŠËÅL¬ú±ÌôéSúéçGbïÞ*ø*t×xMò`á~áÂI…\zää¹sgâoef¥>ËHV/••}éâõ4´ß œ¤>åÝw»wéÒ]õôôé3‡ÿ¦T*ÇÿrÁ‚Å…Ë–-¿r%rÿþ½¶¶¶_}5sþüà¹sgKåÃÂNìØ±ÕÞÞnÕªŸ&Nœ¼gÏ®‚Wäøñð)S&°­qùòåö999j_å[_(qEç.7nÜo›]rÿ^¬¢M›€¼jÑ¢ÙÎÿ¹ÏÜλ›7÷S=‰¹÷âAL¹råTÁzæÌ Õ5B Õë­CË–Í÷ìÙûRwq¾õt§<;¯.ÜË»9}ØçƒÇ 74þõjäÍéS–jl¶ !ÆŽ³jÕê BRSSSSS7lYµjõرcTfΜ˜0sæ¬=zHûõë;yò”»w£årŵk×G]"õ;vÌòå+ׯߔ””••uñâ¥áÃGJ²··ŠŠ*‘Uè®/¹ô¶ý^fŽ~Y=‹î·£îeee˜È’sý;{:òÜÙHmÍv!Dõêž!!ëü½Q£¦5=xð÷õžžÿ^¦µqcßví:6kÖÊÙÙeüøç!8räp__ßÞ½ûÖªå=zôØÎ;–Hý=<ªmÞ¼áÏ?ÃZ´ðö~#0pšjäˆúví^üŸo} Äåƒì¼óH¿PÕ½Ü"ÿ`•®FIñoztîÜù·nÝ._¾üçŸüè£>BçˆRi·k+ —ËçÍ Þ±c§\®3æó¡C«¿í½ìC–ë-VZ]ffæŒA{öìBtïþÎÌ™3¤Q³Ú¦»»{Î;{ÅŠU=òð¨6wîì{÷î-]úCL̽Zµj.Z´ vm¯R9Öy÷­úQ q”p©·v5ŽŽŽŽ š}òäÉìlyÓ¦M-úNêbÕ6vYãéúÚV¤87È–Ës¶ý~뵸¢´ÜÛ´ È{£¬\ÿt$»úx’¼cKPRÆûbüøq×®EnÛ¶ùÒ¥ËÒDÕˆÒˆˆ³óççšK[… _»v}ÿþ½ááÇîÝ»/þ{gµWÐ5!ý ž×¶miâ·ß.ˆ=~<ôÏ?DGG/X°H÷t!DXXØÖ­›"#/vïþ΀ƒ>²>2òb§N'M ,­#•wßj#?öøqÜ‚‹K½³(×Ñ—Æ K߇ 4tÈA.œ»pál5fΜ£vNìØ±52òbÇŽí'Nœ¬ãt¥"E°÷ϻɩ™Ó>mT”–ûË~#¥å^"-÷¦M›öi‡í+Uª¨šèç×rýúµÕ«WBÄÇÇwèðvDÄõÝ®­@“&ÍBBÖW¯îYŠ+,,|îÜà­[7I&|}ý¶lÙèáQMu«OŸ~gΜÐ1ÝÝÝóÒ¥óÒØªgÏžyyÕUZ·î›·nÝ(•c­{ߪ?øóÏPé‡Í·nÝîÓ§ïéÓ'JñÍuôÝÝ=Ï;¥qDÙ³gÏüüZ\¼x>ïQPív§ëk[‘â´Üg,;óyß7Ê9ZêÝõÜIö’²råLJuéÒ­iÓæ’&J#J¥Jo½Õ8!!!×\Ú <~Wµji^/áÆS§Nÿé§R²Kï=îîU¤ÇU«VÓ=]üwÔ¬(Þ ÚTð}«q”°þPĈˆ ={~X»v=wwO/¯ºOž$i< ªÝ®ñt¥"Eð4-ËÅÁRp=÷2¬~ý7ùeµÔ 8a¤Ž;Hgí®]ÛÕÝç=­5pu-]Zß'$$|úéˆ ¾­T©’j¢‹‹KLÌ=©%­ú¥˜¶éz«àûVU/õQÂúiĈQÓ¦M ð·±±IKK¯Sç"œ®T¤ì¬Í’ž¹èaË%eôè±QQ·²³³•J¥B!—&æ;¢T[ž=ߟ1#èáÃG)))sæÌ“&–ÔhÑ| üé¨Q#5j¨>±[·.³fÍ‘FÍÍêÞ½›îézKã¾ÕHã(áÒ¢ûègddš›››››ÇÄĨú£ {ºR‘"ðñvÙyävjz6á^fµiÓfР!^^uæÍ ^²äù—ŠùŽ(ÕV`ܸ15jÔèØñífÍZU¨àö¢QS2£Eóqaüø/s}÷>qâgg§–-ý[¶ ¨PÁm„ñº§ë-ûV#£„K¯I«ëè/XðÍìÙsk×®Û§ÏÇ~~M‹vºR‘"èê_ÍÆÊtöŠsz÷…*$ÅÿBe c ^ÅùBU…–;”AEùB54ô;®¤Ð< /áÞ¿ÿ0v\I¡ã DŸ ^z¸“G çèsÂ@¸J—PãÇ)„X¸ð[õ)2™lÁ‚oz÷îÛ©SÇúKÓ׬ùõСß7n\¯Ÿ©ZµºÉ%$Ä—Ö…äŠiÃÞBˆ¾]kîŠbîÜY]»öغuÛôBlÙ²íòåË{öìBLšôåÈ‘Ÿ÷ë××ÄÄX.—¯ZõÓ?.ÓÛŠäºg§R©œ8qrA~ŒªŸ>èX}Á¯O_‰-n¸ëþé9ƒ·€²ÊÒÒrÅŠe|л~ýúBˆyóæoݺIºÜ¦Oƒ:u¼wïÞýþûïíÚµ»nÝ: Ô7”z͘T§Ž÷{ï½k ÇÅÌÔh`Úßo¸R-÷èè;ÉÉI ‰÷ï?=ºè—¼0¬Xósp¼æjÖ¬9ujàðᣄÓ¦M©Y³¦êO'Nøì³Ñ=zt_±bÕ?,5”ÍŸÿ““ÓÀ ú¸¸¹XuoS­è_¨æ½}’•••……9g<ðúhÕª¥………R©ìÖ­«út/¯ZuêxùåäzõêzyÕ2ˆº,Y²4##cܸ²póúÚŽÅ-soP{!„\.BÈd2#####c!„™…™¹¥®”Šº5|øÈ7ß|«zu¯®]»ïÛ·¿tw„¶í)ÂõµÍ¢oUJD`à´I“& :xþüorýé‹/ÆmÛ¶}üø±Q‘ŸþåλAAÓËÆqÙrðf¡Ã]ý²«ÆÎ®{ÞoåéYC¡øÏ]l,,Í,,µÞº÷îÝè^½úøùù;öÇß_™={æž={Kq/¼‚íÑ·*%bçÎÝÙÙÙþþ­úôùðÊ•+áá'þ›îªÿê¹M'OžþöÛ¯e2Y8.ç®>–ËÁËic>IDAT•Ei¹ßÔ^ú§Hx\ïÉÝÝ7hÐP.W¨îûeamaek©mö…  þé'Ÿ|ìèèhffæãÓ`ÅŠå¹ÊdffNšX§Î›uê¼8-++Kšz´]»ŽžžµüüZ†„l”&*Šàào||ÕªUgԨѩ©i…ªŽ¶í‘ÞÀÔ{ŸÜÝ=W¯þ¹I“fU«V/‘U†+>>~Ö¬9Ó¦M‘>¸Ï›7gâÄÀ§OŸâ[Ôž={øá{ã2p\RÒ³w¹Ý£mQûÜÏí —þ]ŠŒÿ¬ôónÛ¶ýÕ«WCCC…æ–æ:ºeŽ箺—¯íöï,¾lÙò+W"÷ïßqÖÂÂbþüàBÕEÛöä{[ôâ¯0\Ó¦ÍèСª?ÝË«V×®]¦N5¼n/¾˜~¢fMoU·DÞ/ ÈÖƒQõj8Wp±.âh™ØÇéªÇODºgÊBˆ”””Ö­[oØbecil¢õm#)鉳³‹îåïÞ½gË–ÎÎÎBˆY³‚úôé8Iaaa_©Rů¿ž/Þ´iËúõk¥[ØNìÐáí¹sg¼.Ù•éÓ§:99æíªÒöTzc(Ô*ƒ÷Óg`àD-$=g ?VÒfлµ¥E ÷{7X8X™ß*„ðô¯×ëXä±cG222cbî !LÌŒÍÌLµÍîàà˜˜˜ ~qŸø4ÞÀ~åÊ—,YºdÉ÷3g~%Ý|66öQëÖíUó¶×¬ Û£¢±˜ú¬q|d¡VÅW”n™¦^ý$)ícµdŒ¼¤^@™£4Ñî-[6Ï÷ëDéö/¢óߨKw¿xñüüùs§L™® Ü3gNHý'ÑÑ· ÛgRí)¦W° (V¸ßŽ’þ©’=:úŽô§ìììää$!„±©±™¹ÖÏcÇŽY¾|åúõ’’’²²².^¼4|øÈ\e´ÝÀ^ãÅûõë;yò”»w£årŵk×G]¨éØÝ·E/‘U€¾´ÜUz‹Bää䤥¥_¾råçµ?ñÅ—Z×/WÑÅÎÙNÛ\Õ6oÞðçŸa-Zx{¿8­K—·s•Ñv{w9r¸¯¯oïÞ}kÕò=zlçÎ U Û£û¶è%² xdB¥R©~s¥*U<¤§ªegg›˜˜T­ZýÀ}6¯_¿vcó·}íœlÍ,ÌLLŒeFFÛ–ïá×ùEzˆÛ«¯§Cüüšs!E¿¶Œ©éó^õλHÂ÷Ÿ-ÈŒ¼ @ *î…ÊÊä8è{¸JÖ¸q w(k=º÷RÂ}ݺ•Òƒþý‡±—KQhè!v€ wiè Þ\ó6;89¢‡;ô„Žq¨Pèpws«¬j(±ƒ ì´ÜO BxxÔz ÷HË–­i20tFì Ü„;€pîÂý5²iìØñBˆï¿_6gμâ/°Äo\â[ 4Ã}LpX™Y‹>‹ˆˆhذ¡""âÂ[oùäŠé"ÜÓ½Ä/áYâ[ 4Ã}Éä¯ ¬‹¶–²äüùç‰yñâEŸ\1­[Öÿ-÷׈\.Ÿ5kNƒ ëÕk°zõÏ/Â(zР¡ÞÞõjԨݯß'qqqªèÿþ·¡ysÿêÕ½Úµëxúô™íÛw´­^Ý«sç®×®]—Š)Šàào||ÕªUgԨѩ©iªÙW¯þ¹I“fU«V×±u'Ož’Ú¼QQQ;wuw÷LL|Ò¤I³¶‚“’’4h˜œœ¬>ÅÇÇ799Yµ[Û²eÀ?ÿÜ lß¾Czpýú?-[”ìxYá>&8ìð©{Ó–žþrÁ‰ý7ä ¥jzè™û_ýpvì×aB¹eÉéô ¹ú”iKO§gÈu¯eöÊsãÒ¥g®<–<ŒO›½ò\¾Õ_¸pñµk×÷ïß~ìÞ½ûÒÄAƒ†2èÂ…s.œ­Q£ÆÌ™sTåönÝy±{÷w tøð‘õ‘‘;uê8iR TfÙ²åW®Dîß¿7"⬅…ÅüùÁªÙ/_¾|àÀ¾»w£t¯EÅϯitô­åË—¶n}kæÌ¯zõêYð†°ƒƒCçÎ7nܬš²aÃÆ=ºÛÛÛ«¦hÜZÿV§OŸBÜ¿ÿ`úô gÏž !N:à_²[à%¶Ü£b’' zkÆß§©YŽßUMy”:qPƒÅ“Z!öþy795sÚ§¦ k””±_­˜äЉ˜˜G©_l0gt3£=GŸÿÐÿ·ðè‡qé6˜1¢Ñ“§™ª>–%“[äêl±¶4©ïå|òR¬jʉ‹Þò.gea¢{-ÞŽQ1O…Ožfn?••#„ˆŠ~ZÛÃ1ߺoß¾cöì™+V°··Ÿ9s†4ñðáƒÍšùYXXØÚÚNš4!,ìß7¡àày+V°´´2dPZZú¼y³¥§Ÿ~:äÊ•+R™M›¶ÌšõU… n66Ö8¨š}úô©NNŽù®%—°°ð-š !Nœ8Ù¢Eáz¨°nÝz…B!„Ë6l2dz[ëïßêÔ©ÓBˆÝ»ÿÏÜÜlß¾ýR¸ûû·*ñ-ð²Âýývž¶Ö¦¶V¦ïµóqĈQÓ¦M ð·±±IKK¯SçBízWW×]»¶»¹¹é.VµDGßJHH h{ùrÄõëÿ üixø±Âž ƒ\¶lùÛowúå—5óæÍ.ÈÖZ[[¹»»ïÛ·ßÆÆ¦mÛ6 .þã#ÕªU³²²z[ॴÜ’ž=œagm¦±Œµ™ªX|R†µiî6f3G5–:[–Ln!uæ!ìmÌã“2 ¾1¾ž} „8vîA›&• ²s3c‹ ×âÍÍŒêÖpÊÌR\½™XÎÁÂÌ4ÿгçû3f=|ø(%%E5:;##ÓÜÜÜÜÜ<&&fâÄÉ…Ýõýúõnܘ5jtìøv³f­*TxÞz]°à›Ù³çÖ®]·OŸýüšv×9Ü××·wï¾µjy=¶s王p-çÏGHC ÏŸ¿ $ר1¢þ ™L6hÐ'_}5søðO ¾µ­ZµŠ‹‹ëÚµ‹¢{÷n=ÒîÅßB'B(•Jõ+˜»¹U–®ç®nLpØ;ÕBÏÞÏÌRøÔ.׫cu#iºúžÙòœm¿G]ü;^áã]®g{Ï\År”âS÷N\|˜œšåêdÕ©y•µ]„ …rwèísW+•¢S wÿF…‡OÝ;t"&3K¡q{ø…G[ÝÞ«^mÕFê^˽ØÔ¿^šýYc+Ó§©Y3~8óå@ŸJ®Öê‹åzîz+4ô·ÙJ>Ü‹ü¡¥øâ›°E“ ctáN¸¯W·L‘ÝMµÕÒG0Ôp_ü¿Km›Vf_À+SСŹlË‚/›³£ ¬µÜ„;€pä¡a(d•*¯ùNa(¤~âÌ ΄toºÀëîâ%Ü<ðÊÐç„;€pîÂ@¸á Ü„;€pî@¸³ €pîÂ@¸w Ü„;€pîÂwá Ü„;€pî@¸wá Ü„;îÂ@¸wá Ü€pîÂ@¸w Ü„;€pîÂ@¸á Ü„;€pî@¸wá Ü„;€pÂ@¸wá Ü€pîÂ@¸wá„;€pîÂ@¸á Ü„;€pîÂwá Ü„;€pÂ@¸wá Ü„;îÂ@¸wá„;€pîÂ@¸w Ü„;€pîÂwá Ü„;€pî@¸wá Ü„;îÂ@¸wá Ü€pîÂ@¸w Ü„;€pîÂ@¸á Ü„;€pî@¸wá Ü„;€pÂ@¸wá Ü€pîÂ@¸wá„;€pîÂ@¸á Ü„;€pîÂwá Ü„;€pÂ@¸wá Ü„;îÂ@¸wá„;€pîÂ@¸w Ü„;€pîÂwá Ü„;€pî@¸wá Ü„;îÂ@¸wá Ü€pîÂ@¸w Ü„;@ßü?Ÿœ¸K¦AáIEND®B`‚ghemical-3.0.0/docs/user-docs/images/window.png0000644000175000017500000002102511563552731016332 00000000000000‰PNG  IHDRŽvH-e•bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒË“ Y IDATxœíÝ;ŽìVž'àà ]£¼2JÞÀ´× ˜0Ž€ZIÝ–1˘j­¡*i%n=jòª!¯Êh¯ µÇ1RÌËdòqþ|F~ÈŒy‚y~q$«”R]×u€Ÿ5üø—,'ñ?Ž.ç"8„B!ŸM/ÂÖ¾ü§/_Ý÷Ã?¼x¬¹½åö—l#gí×¹æëÛCe*ow]C÷•¿ûX_¹†ž[š­>wSû7wÙÈzXßaÁá2T©}ùO_î¶OöØÎÖQÎþ›Ú§}ÿïÃ?Û[”9²Ç–Ýê}:“¡/%Ⱦ˜ó¿rHpÌ)hß:ÆœáC4T™•}ì›s÷¹Ý²æ±¾oýSß”—~Ók?§ý>•½[ÞœÊ%R¦œu5ÛÏù¼N}×ÓrŠîÓœåç¬wKgøß>‹æ=ëû¿«“wã*L߇˜O†ÞØ”žö]ß?xóœn˜Œu¥Œ­sj{Cº•qîºÖþ<<úg,ºOsßÏÜõF>Sº­‰ö}Ce;“æuµ__Tó~t¢ëè–©ï±®ìGißðÏöAÉ1ömþ¨×{t–´B·.o_«nh¹¶¹åê¶€æVšCß,—쯭» ûZ~g ÆšA»´ÑÏèC ŽŸýÔ˜ûAÚóƒ·ç¶–VˆCˬõx¬°¯\cÖ ½©×ßý{ê[}‰ÎVÞG“¥¾ACýçoÉ^¯yªßû-Zk侇íVÇÐóænN¿v)%4JùÿêžÛ¿»q }3›óë=ƒµ+à%ý¥{®s-s÷ßXe;40¶žR+°©÷®´–FÉŸµµ-—XS·Õœ;á㮪9}j]Sÿ%ü#äè~ƒlß7÷¹[”§ï±¾eרÎë9²L]k½4åì®'ZþÜå·~¯æ.»÷˜ViÖìrívaNÕ¡UúõzN«@§ Dp"8yÿáßßÖÀóT)¥úèBp½Óq¿ýÓ·{—€øðõ‡§à¨ë§FÇwÿú]úð>¤”RúÃ?ÿaôÉUU=?€ÇWUUJ©Õâ¸ÿÇýÕB÷Ÿ_ß—RJ¿ÿ8ú8¥©÷S2« € Á@ˆà Dp"8„ì×˵÷§ýxßß[—)÷öÜ2íõZ–*cnÙÏðu^È©=ow©Ûý6ë±”^>€=ÇÐÑãßýù»U q½\+çö7Ú£*ðvùš¿›ruË4tû±öãÝ×>v{lÝ[Ëy¦ö ðFƒc퀈šªT—h*¸¡ ~l;}AÒ÷÷Ø:£¯eh;{ˆ”ýÈrûØ­ÅÑ­HKªPÚß”sÊ•»LNÿÿœ[{ß­9NQÒû lc·ÇÜ Åàë“-»€¦ºÕúnoWcc¶üÛý¶iulaªåsd–Ð(zŒ£ëL}æ‘oè9VÒkÏãSÑ-Žî8AéR·;©[ö%¯åÈÙJ‘²›Uo—ÇTÒ~¼»ìÖ•OÎö"å›ûZ¢åXËÐ:s˾W9rÝâ <£Á±Æþ¦Ž>ÿê÷_-ÞFTäˆø#Ê·—œýðȯ˜g48Ö0uíò#.?;U¦¶G¾÷}O){v}üþcúÃ?ÿaÑ·†vòÜð=Ëvϼ¿ŽÞþÞÛ=ëç£tUúõËêŒúf‹²äÔ›‹ÎŽþö?³¥±ÖŽ?ê ¼Ýo¯NçRUÕæßêŽÚîRG—û­¼_GïçGu½\Óí~K{ÄâÔD£¦,9Fƒcè|Ußýù»¬•7œÓ à¥HE½¦5¶9Ñ€`íowG}{>Ó·É£ËýVÞ¯£÷sDß¬ÈœŠº»ÌV³+›íì}¸A³Íî¶¢!¶K‹cO6wÈ¿ý"¥”Òßþóoob»KµÜgSÂ~”[1¶+Ö­f;õ•eíÐè;.dh—÷—T×uèõ=T‹£ûFϸ{îX;pz\óínèÍ~÷Ó»§å~·înj»Ÿÿæó§? «m¹ckÛû XÎñlK[U›µ8œËf¡f÷ üÿmÕW_ý¥]‰BJi×ýÕW4Ýx}ûghKJñŠªÙNw[Ñûgkíç¾×Ðl£ôÖê^ŽÚ¹ò¥4ïKò&-˜¸ö?áó?{Ò%]žg…4oµÝf, þ_O Ø-·»Ô‘ûk¨Û£i‘åVÐѾ÷ÛÑûçêîçæ5 yëáé[s_í1ö6ëšãs-íÃËy±gŽ;õÚr^ûœ©Gmw©³–{®¾J(¨¢÷Ï•Óg½\Ó/ÿµî¤„’5]y‘™n¯ŽÙèëk†ÓîW¬ëzÖOŽ3Þ_ž?¸)¥ÐßÝõìíù»Š}xÞýôîyÚéMwNõ—*´ÝÏóù§i˜Ø{µ¿µÿîVÊc'lþ>Ó7òè~n^ÛÑŸ]UUJ3¦G¿ø¬üºŽˆËûËs·G+ð¡/{k Eÿžë«ßµè›Âõ¹¥sÑ_<ù¼Ö”Óæ›ôœíÞ~w{œí¾˜¢;c»gÜ_íÏH·¿=¦Ð÷YzîY´÷sŽStø|ìiÎΦÎù4å}æ—Ö@`­1{k÷³ãn9h~öé¸ÝoÍíM*`»K•Xîµ»ƒÆÖ»÷1sêŸ9ÓcsÅXóÿa×àØãùÌÓq§úŒGŸ»`Êé’í9E÷¨ý5ǃõÝM³¿£÷ï©Ä)Ü[Yã²kt¸•‡ºÇ£‰~ðÖ>¦#W)Âû«ï`¿”^îƒîþ˜ê²ŠÚ×Ñû÷TBö²Fe]GäLk'·wëä¡ÇXŸà Dp²èšãk^“€s Žœã->|ýaÕÂP¾ÁàøöOßîYއõÕï¿:º«¹^®ÃÁ1tf\òq)Q€­ízvÜ·Äøð¨Ìª Dp"8„B9ÀÛ³èÈqÞžÁà¨ëÚq |üþ£S²É!‚€Á@ˆà Dp"8y¸à¸^®éz¹] €‡õPÁq½\SRªý€õ=LptƒBxlã!‚ãz¹¦ºN©®Sr¢€m>8šÐh4áQ¥äzß8uptC£Mhlã´Á1U%4¶tÊàÇ9]p €c*8„ÀñNB  §¡PŽâƒCh”¥èàå):8Rz ‰îm¡pœbƒ£}‚Â&<„ÀñŠ Ž.¡P†ÏŽ.@ŸîéÐ@9РކÀ(OqÁq½\@ÁŠãe+.8(›à Dp"8)bVU÷¸” ’”ªˆàHéuP˜– P¦b»ªn÷Û‹–Hów÷¾æ§»\îmbŠiqäh·Bº--€}ÛâèÓ†¡è¶TÚ„ Àr§jqtévØß©ZmMë¡ù[FÀ¬§ØàXÒ­Ô„Eóüîmæ+¦«*z ŽnKB8죈àÈ©ìû–éÞ76x.PÖQlWe„B!‚€Á@ˆà Dp"8„B!‚€"ÎŽ;WôTì,wÚÇõrMu]§”Rªë:ÕuíJ;8eptC£ªªç¿…À¶NíÐh€ýœ*8úB£!<öqšà †ðØÞ)‚#'4MxTU%<6PütÜHh¤”ž£ùÛ]€uÝâå)68„@™Š ¡P®"ƒãv¿=ÏŽš"4öUdp¤”B`ÅGJãá!4ŽQtp¤ô2<¾ùã7é›?~“ªªJÿòÿ%¥$4öV|p¤ôºåÑ„Æ7üFhì¬ø  §hqPÁ@ˆà Dp"8„>wèBK¦ß”éðàHIHœIñ]UM‹¤Ý2¹^®Ï?}ËÝïR²ËÑâ˜r½\Ÿ[%í¿ÇË}1EG_+ ]±ý=F0l£ˆàˆVòcêÍcÝuê¢XGÁÑ×íÔ6Ô=¥°ŽâÇ#r[ZóÑâ˜ãèÞß^¾¹}»ß»ªúžÀ<‡ÇT%Þ÷x÷¾œ.)a°Ž‡êª`{‚€Á@ˆà Dp"8„B!‚€ÃO92eî b`ÅGJ)ÕuZ¾ªªJÀ)‚#%aPŠÓGJºŸJPlpôm ]€ý)½ÛhþÖep¬b§ãÞî·W!QU•ÖÀÁŠ ÊTtp´[Ze(:8r|ñÛ/Ò¿ýâèb¼ÅGÓêjm¼ûé]z÷Ó»Kðvc§i?výûÓß¿üã/Z;)28n÷Û‹€hZ×ËÕ8ÀÁŠ Ž”>…Ååý%]Þ_^Ü÷¼Ìïžn¿ûé]úÛþmß¼QE˜RJ©9”ãÞÿp죸Çõr}\žZ©NÏ­Žöã쯸ÇÔFÎG3P®û `}ŵ8Úî÷_û§ª”î?ôUõ0E`;ÅGÓu¿ßŸ$§‹Ê]€mÝi·íÓ©ß8V‘Á16Ž19bŠ.À¦Šï=èÏ]€íÙâ \‚€Á@ˆà äÐàhN=ÈSrMë˜ç°YU}§HwÚt€ò5·/H†Ë]nèºÍoAsXp´﫼ûŽ.7ôX³m¡wh‹£Ûغ"ËÑU5ÖBÈa `?E Žwå¶´$ösšã8Öh}h™,WÄàxû¾¡Ç‡ZcËM­Ã9@\ƒãÑÇ»÷Ï9 »À˜ç4]U”Ap"8„B!‚€Á@ˆà DpRÄiÕ‡L”ÐiCöWl‹#çL¶Îv °¿"[‘k;Ã-À¾Škqä†Fûq-€ýèÕÿ„À>Рަòv= €ý”¯Øà¸¼¿]z”IpRtpè®(OÑÁ‘’ð(MQÁÑžV{ÿùþ|ÿTxÌÆ @\QÁ‘ÒËðøñÿýø|ÿåýåù§Í±û*ò\U·û-]/×ôåÿþrò\UÝÛZÛ*28RúÑ…ðØVq]Um9'9ì[F÷ÀvŠmq4rZMë¤MË`E·8"´<öñ0Á‘’é¸{x¨àHIxl­ø1Ž9„Àv®ÅÀ¶!‚€Á@ÈáƒãcÇZä(ÏáÁ1Þ(S‘]U}§ iNxØ(C5·Û÷ $€eoqt …Fû¾öí±ÇÚ·Û{r+€ùŠjqlQ¡·×',–+&8´Ρˆàçqxp €s)bp|h¦S(Ý 5uÇ-†`}‡GnE?¶ÜÐcCãÂ`¾Ã»ª8Á@ˆà Dp"8„B!‚€S‡‹1çtÁÑwU?ösªàhŸI·{rCöqªàèžœÐÉ öwªààx‚€Á@ˆà ä”ÁaPà8ÅGÎÛËûKº¼¿,^qEGû8QUõô3ÂqÛøìè4¦ŽoåÒ<^×é’Rºÿ| ˆì0 K1ÁÑ´æTòCÏë+ª«*§{éÞAU¥ûÏ÷Áå„À6Šiq4r*û{Æ2B`Eµ8(ß)ƒÃl)€ãœ288Žà DprªàèŽmëØß©‚£}œ‡ã4ŽqªàH)½¸æ8û;]p¤$4ŽtÊàà8‚€Á@Hvp\/×ÁŸ=ängny†ž×¾?g€G—}vÜö€ô#N…í»È#¾N€¥Vëªê»‚ßP«¤½lß·õœ–Lߺ#e˜£ïz!ÂxkV½G»úö>´ìØ:¦ÖÕm5D[íç €~«Ž·+Ú©J7§RZfË }*4½¼u›^pN÷P»b«”·,Ïiqh‘oÙfÁÑ×M”kNWÕÔºr´×+úwÇ–S[M›Xn³GwRî7øœ®ª©uwËÛË é+›VÀk³‚£¯"͹oè̶S·#ÏÉYWŸè@¼0ު⺪(›à Dp"8„B!‚€Á@ˆà DprÚàp¦[€cœ68œdà§ -€cœ68´8ŽqÚàh·8®—ëóÛ:mp´[Zû9mpt[Â`§ ŽËûKªë:¥ô24„ÀöN©ªž~’°ØÛé‚ãÒtQÕuº¼¿[€7¨¸àhÆ.†~¯õæ).8ºãÝß÷¦kªªÒýç{ÖsXOqÁ1¦iAÜï·OÀ®NÝ)·º¡ŽqŠàè;NC7À1Š Žöw_Hhq£ØàHiüˆp-€c) ·,´8ŽñÙÑ2Õ¢Ðâ8Fñ-Ž!ZÇ8mphqã´ÁÀ1!‚€Á@È¢é¸c3›ö¼Î½dìÜKËýúJ´(8º'|´Êtèõ˜ ¼e›vUõ]Péz¹>ÿ -ÛW1Ýß·Lw{¹eÈñˆ ±ù‘ã튶ïÔèC·sþÚNûöí~ •!÷µ¼U›Ž·+Ú5N#rÔI…À“ÝÏU5§{¨i54/]w´ Bà“]ƒcÉUüætUM­+‡ÐxéÇql9‹ilÝBàµ][í.§ö휱©®ª©uwËÛË ¼U«G_Ešs_s{êšâ‘uE×=D8¼vŠ®*Ê!8„B!‚€Ñ鸿ÿ¸W98‰Éã8>|ýar<”º®Ówþîèbl"ëÀÛ_—ëã¿i¥Í!‚€Ý¯Ç±ÄõZ''Ô}pˆÓÇõ®/¢{€}œ¢«ª/$n½½h°¢ƒ£ ‚àxEG»U¡ÕP†¢ƒ#¥OƒàÆ3ÊpŠÁq- €r¹Óo›å´J¶WdpŒÁå^RJ)Ýÿãþâþv«D€l§¸à˜<>£ªž~÷,Ó<Ï1Û)jp|ªÂ¿4]WuýÜòècL`;Eå;UpÜ›ÖHU½ã`EG_S÷öý¯·O2ÀÀvŠ Ž”>…G{†Td¼Bhl«¸YU)½œÕÈ ¡°­âZm·¿Þ&O9¢…°¯¢ƒ#%ÁPšâƒ£¯Û €ã¡WZ#û*rp|H7<„ÀþN) €£¦« €2B!»Gs ‘ö©D¦–Ïy,w¹èóMý¶ùàxß”Ù%ÓhsŸ×ÌÀj/oú.Àr›¶8†*êî´Úæï¾ã4†Î–;ôœdžÄ3Æ1Ô::;îÔ9¬šÇÚ#–+&8º•úZ•|_—Ußã) €ÅÇVš0ëÒš >yèàh‡Aô‚PôÛ48†*ëœo÷*y€2m>·/Á@ˆà Dp’58þñß>n]Nb28êºÞ£œÄhp|õû¯Òýçû^eàŒq"8„Bv9WÕZ®—þ3æÞîÎ3°—SGC1õ8ë)>8®—ëd 4 €í=Æ‘m·û-Ýî·Á.-–+68¢¡À>Рޥ¡¡Õ°"ƒ€r9­ËûKº¼¿Œ.£› `ÅG–ªzú`w§ ŽK3vQד­ÖwºàÈep`§ Ž{3vQUƒ× iBCx¬¯¸àÈ™J{¿ß>HG{p½Y—XOñ§‰êΦ2» `]ŵ8RZ~Ÿ£Î¶Sdp¤äèo€R)ÅãÏÐÚØNñcíðp=€ã)½¾ÞÆÐãlïÁÑÇ+zŒ€òB!‚€Á@Èa³ªºSk§fLØ×~lj¹!flä9$8ú*÷%G|ç>oN ðÒî]UCÑ=½ÈÐ55úN“Þ]6zš­ €|Eqt+õæöÐ9¬Ú×ᘳ~¦[^[ChÌStplEhÌ÷æ‚Ch,³{p OäTèKg? €å™ŽÛ9zε9Ršw,‡@ÈsØ€SõÐÀøÐTÞœõ €åÞÜËB!‚€Á@ˆà Dp"8„B!‚€ÃNr¸•öÙoÔ`}§ ŽH( €mœ"8šÀ¨ëO÷UÕðu9šëv€õ?Æq½\S]¿ ”Òó}s.À|EGªzùxUõ‡GJר`™¢ƒ£«¯ÕÀ¾Š ŽnkcÌP«€õ}úºªØW±Áq»ß^C]?…EóÓ´HªÊ 8À^N1·-·ûÊt\€mÛâH©¿ÕÑÕmmëØVÑÁ‘Ò§ðèßê¢ÒÚØÎ)ºªšhŽoß7DxlãÁÑÈ a°­â»ª(K‘-Ž9§Fw:u€}Ý∀°ØG±ÁÑœ¤0gzm³œðØ^‘]UM4¿§Â£Â`[EG—0(G±]U”Ip"8„¬Í´ØöOä¹k.—û¼öý9˼u«Ïªê΀*åøŠæ¸î)ØK(À™ìÞUÕ×iþîÞ7w¹¹špé–W¸|²kp4•póÓTÒ}ü-YnH{0Ïê]UÝÊ{Nå¼e…Þ×e5ô¸pxmÓ1Ž%ÝG[ –焂жé)GæVÀ}ƒØcÛ˜³^á0ÏCÇaÚ,Àöv=Éaw{hênßríÖÁØrCúZZq«G_ÜWYçÕzû6Û(vŒ#zŒ¾ës°¾"[C¡‘{Ñ&¶S\pô…Fuý龪êïšrU?€mÛUÕ¸^®©®_†FJéù>]Sû**8º-…&4Æô…‡ÖÀvŠ Ž1U5~€}ÝÖF_WUûo]Vû(68–"Û)68n÷ۋ®ªªz}  ðØFQÁ1v_]?DóÓ7hÞ\w0 À6Š Ž®n«£™‚ûòxŽô",ºÏ`]ÅG·¥Ð„G_WU;4þØVqGާôúèïæws´xû>öUdp¤Ôê±°pv\€})½ì¶r=€2)½žf;ô8û(>8  Åͪ l‚€Á@ˆà Dp²ù¬ª¾i´¹3¤rO2÷4#c'A4‹  ß.ÓqK=ŸÔÔA…¼VÄqÝ“¶ïk‡Ì’å"e)!ÔJuxpt+êæv÷\UK—›S^Û%8º]?s*ç­+t¡g÷1Ž%ã¹ÏnChäÛ½«ªïté9úº Æ¶1w½Œ{øã8ÆFhÄ>8Þw©Ø¶î x÷yÝAñ©õu9];@ÌæÁÑWw瘝§–ë^Zvj}9e`ÜÃwU°.Á@ˆà Dp"8„B!‚€Á@ˆà Dp"8„B!‚€Á@HqÁq¹\Ó¥sð¡ë‚-Ó·–+*8ž+úºN—÷—”ÒS ä\üv¿=‡GßzXÇgG`L9-Žösê­ @YÁq¿ßžZ U•î÷Ûs+"§Å‘Ò§ÖÉ=¥ë`=EGJéUEŸÝeÀ6Šã’;ÆÀöN”Cp"8„B!‚€Á@ˆà Dp"8„lÖÖIDATS×ш\g€2lÞâ ¡pNEuU]/×çŸ9uïºÝweÁ±õðÉærê»Ss»[q÷-ylÎÕ§ÖÀKEµ8†äVâ‘Ê^0̳˥cÛ­Ž±oócÝDCµ[.KÂ@@ž¢®9>(Ý®¤¾ç-ébÒȳ[WÕTk£+·³\´5¡õ0¬˜Gw°¼0}5!4ÔUÕ½, ƶ ÀK›G·ŽÞÎ]vèyCËô-/,òœbVå„B!‚€Á@ÈètÜßÜ«œÄ`pTUµg98‰ÁàøöOßîYއ¥Õ<šÁàøðõ‡=Ë@áêºN¾þ0>Æá4¤ô²÷Ĭ*B!‚€Á@ˆà Dp"8„B!‚€Á@ˆà Dp"8y¾Gß•ê\½€®ÏR꿾x]×»€òU)% @¶ÏRÒº ßóÇùñÈrpÏÁñÿÿpd98‰ÿ÷zŽÜIEND®B`‚ghemical-3.0.0/docs/user-docs/images/change_bond_dialog.png0000644000175000017500000000301511563552731020570 00000000000000‰PNG  IHDRz›­AÃbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ ‘(£šIDATxœíMnÛ0„© ‹ö‰€ WÐkd“¶ȺGȶ‹6ÝäAÝ]·=@ 9·Hvê"•KÓ$EÊüÑãÌ(ñ'Ï#-?+RjTŸ(Ò6o¦·O¿kŽƒdæ¤öH(4zE¼œ^¨—Ó‹,m¿™?…”"ç:‰ŽÚÑÏ÷7eï®n£ê†œoöãª3…íήæèçû›½Wþ•z½èÓK/ÏÕ¯·O¿½"Ûê…Ž·Š£ŸïoÞÕ¶²¹6|Ä´Ú‡M(߸m®7Ûpí»ÚÒû³•¹(îh× Þ]Ýu¶~±|®s•™í¤ÂµêÖû1£`È‚]ÂA1¤èÏ%vM|¡Ûf†Ðñ6±ê>vž7Ý’²íµìèÚït¡ó¥«Þt¾kê(ýw¿œ^8]íZŒ…Œ±¸£]4v16Õ )KÏÙ®r×âÍ5&BDÖ× ¾þu:õïkÊÒß^-k\õM–|¾5ëÍ1t^Ÿ[½ëo~_[Ç|Z©&49$ç è;ckƒ÷ºÉÑPhþ§mÕÉÌëbŒ4u16l‡Òã èÏúÝö‰RJã¨ÆqTw_îª ŠäaÒv·ÛþÙÖÉÈöÏ–«n(4 …Bƒ@¡A Ð Ph(4 …Bƒ@¡A Ð Ph(4„ì?ÉÙ}(ÑxÆqTÛ§ñ ?ïxzûˆv´‰.®îÆiÛæ|³ÜçbWô€XGÃ¸Ww»o;¤¾míˆvôð8ìŸsYˆ(’„‹E¬£ulîÌÄ=!Vè¡S²ãE‡îÔÄ8Vš»Å:Z_ŒéeÇ´ckÓÕŸ4w‹Z)ÿÅÖ™çÍíÇž'øÐ--/E´£S =$‡/´R튫ºQ(æèÜÄO¡Ç‘­M¡¿û^¢›&zýñºD7âéº.Ûw‹ÍѹÒX[!wþ;WÝ Ph(4«º?ë÷^©ÚÌÉÒösËEõ[ ýY°Ò´•űOUG»µ osû´ï;fn»öõ¶æú¶ë‹H)#ÕRª;zóÍàÛ_ Ìú!}ÛÁÛ¯ëXM±W1GCÊm¶•:üלNVïèÚ„º°vhžƒB{°…dk_üU ÝÓ\g’Ó¾¶s´«éúꎶ‰­»Ã<¾Ä9z¶öBŽéûæBË7F_û%©.´Ró⹎Ç,žÌ‹¿¤ž¾ŸªïRˆ_uËÚQ©X…£Sóy:ÅÔ &…Ž«UquàC7 å²@ùÁªºëºÝE„¾ûÊ@^f®fÀ,P’ …AÔ1Û}éT‹ßmÓÉŠµ%´RöÄAé"”@|è¶}Ç;—5êÚ×ëúHƒ^qŽžc.k4´®«Þ1í×D¼£S"A°¥4çèH Ùz/>t/#SeŸJq·8Gû2F§ý¥™æqRSD “r̶ò£?)âêˆÝ$ …BƒÀ,P˜ ³@A`èŠ`(Ì%I Ð PhD}©aû” Ð¯4¥¤Å ZèØÜ­ÖÄ‹¡éÐm>³Óõ<ϳ>MD;:„ÐÄüÖ²>Mšv´Rq–j™æÉ!{‚BЂó›Ý>ZÎú4vtËYŸ&ͽ4{³Õ¬OèÐ…VèÂq °B£Á,P˜ Bv¡/ß_Â͇k„s4 …Bƒ@¡A Ð Ph(4 …Bƒ@¡A Ð Ph(4 ÂNhfi¶ËæaóšÈ,Ív™´í”RcÝ¡ü.Þ¹¦«CbIEND®B`‚ghemical-3.0.0/docs/user-docs/images/aa_builder_w_h.png0000644000175000017500000013517211563552731017760 00000000000000‰PNG  IHDRòyU²VbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ 985sTU IDATxœì½mhç½÷ÿÕa×À f@†Á#ðš²¢H4/²Á…Ê´™ˆD 9Jä¨÷sâShíöE*§Ð÷†ÿ}| Mt -vá”8/Jhò"A $H­ÁÆc°a$˜-ÌÐÿÅ5×ìƒöùifv’vG3׎vç;¿ç ˲ŽAAD*QÀ4͸×AAD(ÑO¿ÜŒqAAt̯_ªrìÑ^\K!‚ ¢˜µ À?Ľ‚ ‚ º‡„œ ‚ RŒÒz“Ñ‚ŸÉ÷¼ AAôŸ~\Ÿñ»F³G{`ÖvÏûáæ|VCAHúu}Æë=vBŒ×?˜ "MÐõ¹sÆNÈ“êZ÷ÿô6@ýÉ®~ïõ8’Êý5{n˜tûZAí9zÿŸtsü^ŽÑÎ>*_g?_O³ó×hmÖÛêýÙìu¶ú4Úgäû®Ý}÷ë:B®õîˆUÈ㊴¸Ö‡q.ê]Ìü?½ õ'7š>7,]\ã¢‘È ó¼Äñ¾ä~¿VçtPïÏ4w-ƒðN¶íÇu$-®õVç§“ÿI7ïÿZbò~,¾Û“9¨p3«¹ÑÏ•ÛÉŸm_ù|£cKÚ±hšÑͱ֊«gÕu²m+k©óÛ/Qj´ŸFûmfYÖþm§ç¯ÞïõÖÓÍr£÷Z³µ×®· ¸“5µ³/yüv®+øAldzÐé9mgûnö[VŸ½A2N®uy~ë}Ö:ÑÃXÊÏ-°Þ›µßð3ùž¿z¡Þ?¬ö‚TK«ç+÷SïÍ Ÿëöܶ늭=~½õtºm;kj&ôq\}(úÿ£Ê¿é䜴ûïäÔ{¯µ³¯~Ÿßa\ â¤ÓsÚîÿ³ÝýÆ)ÔÍèÇõ¹k´¼é“_Ý ÏqíW§û¨]S½çZÑ‘EÞOwB?èæxq»ÖãtÝusqì—E;H½®A®¹™µ×¹Š{ ½xÓ½Þz^FÛUÒíºj=Ý~ŽYi½œ¯$–‡éZOÊÍL3oK»ŒL²['”QuÝôû ™ï•n?@Ý^†í½ T£múñZ…-ê­«ý¼ iõúk®´ÚFõs9ª×çAÒ‘'õÓ(®W¤f­÷ƒ~þFýb!Iƒ©ZÅMÇ‘~ƒNnöZ o77@ÝÄPÓÂ0³Ö“ò™h"˜k½_È7c«¤”vèô$ ˵ÞË›¤S÷_£çëß~‘$¡o'FÞ+Í’©ºaç/Iÿ“Zº=ÜŽµûj'y+ÉÂ×jýµ±ï¸EhPïµa¹Ö“ò>¨ïæF-6×z?âÍÞÌÍN \7âbýøÛfÏ×ÞùËÇzù;ɰc™íÒιî%6Ùê˜õŽÑÍßb=õž«·m?ŽÓýŦZúý~otÑéúÛÝ~P祼ÛYOZ\ëý ûÔ†Q:½éœ°,ëØ4Mà—›‰u÷“Qv­3µ‚%&"=PC˜Î`Ö6¼/îŒN²[»ÄµNôk‚=ÒÒ&iŒãõUâp!1xèúÜ9c)äÄhÐ,±‰ b\¨ò~¹4‚ ‚åd7‚ ‚ RGC×úø`˜ë ‚ ¢oüó'‹„üøø°þûu¼ñ/bÕ7Wšîpbb"ú;‚ ‚ ÇÄÄ€“z]e‘[¬h=:ùl}ºÕôy‚ ‚ úƒÔ\I¥^Ç2Æ” ‚ ˆþ@BNA)†„œ ‚ R 9AA¤r‚ ‚H1$äA‘b†&ä3æLݯÊçëý<è5µû{·kÖké…FklwíixA£JË¡)µµk½ðÐzØÕsI éë#‚ Æ“–BÞ¨»Ûúûë}]ÈŒ9ÓP,+-¾¸µr}òg¹®Ú55z¼ò¹Êçk_{³ß›í{дóhun‚ ˆþÒRÈû-ØÒJäzA N#ÁmvœzÂ^ïçfûìôµ4:Î0èdíq®“ bܪE^+lIºÀWZ’í¬«ÝmÚ‰wsCÑïs×Ï8w’þ¯A£ÎP-òn/ð”L%¤ËºU ÞïADü$&FÞŒAZxµÖp'Vù håˆÓeM–6ADòH|Œ¼–4Å\;±`Û¹¡HÒko7FNA –Ä[äµqæ¤ D­û»ví½¼–8³Á;Y;e­A ¡Yä­.è•Ï×n;h1hçx¬¯Û×Òé:úE£}¶»öa­“ ‚8Iâ-r‚ ‚ ÓRÈ­GVÏiÕ®p±Ðó1:¥“Žuq¬oX´sFùõA¤–BÞYõ’~Ü,tJ«5UÇú†E;ç¡“×O.u‚ ˆá2!O¢&qMq@ç "ÝÐS‚ ‚H1$äA‘bHÈ ‚ "ÅADŠ!!'‚ ˆÓ2k½Uq'õØAAô—¦B>11Ñroüó}[ AAÑTÈ?øÃÃZA‘¨Ûc|Ô›ªÙTÈ[uýš˜˜Àññqo«"‚ RÃÄÄupL]÷Z—±qê F1PNT2¡¬u‚ ‚H1$äA‘bHÈ ‚ "Å eúÑõ²Û¡×D”¸ŽÛ+q¯{\þ_qŸgb°˜gL”ÿ”&&ä•ö~^¨ÆíbÐiU@;µÿI>n¯Ä½îqùÅ}žG‘Ĩü_Ùµ6Í Ô"?>>îë…ªÝ}™¡ð[=¾ûµŸ^‰ë"˜Ö‹oÜë—ÿWÜçyäH€€ÊkŽa"7D[ ŵ.-êv­én]w@ÿÞˆI{CÇå‰H«$îuËÿ+îó<*$ízC¤‹ ¹tÁuz÷~||\¾Cí¡éL·7q¶¹©·æNo†ÒtÜ^‰{ÝãòÿŠû<ƒÇ²ЛЉ‰Ø=‘DûŒ\²[í±Û Œtý†Þút +o®ôtW]ƒìöf(-ÇMóùŠûøÃ>nZßIg¡ñݘ¥ž§ŸuBÇÖq—–x¿>q} ZO´¿F[ĸŽÛ+q¯{\þ_qŸçQeÆœÁCë!†q›Ò*qX®…H-…¼Q¿õõ÷×;:õd'‚¨&.á$±-Z y§‚Mô‡Jë'.ë2MÖVÜë—ÿWÜç¹êU´#œµÛ ªzEgØåµò˜µÇ"k<½ Í"&£V~ÖcÊØ‡öX·WҺ„ó\/ ¼]¡ªºAe“×[K¿E´^]z£c˜gLtÂ(3ryí¯ÛDœ(c9ˆ´~}øÔ»ªØ.Ûß @«ã²I&~HØg>®óÕîñŰ›Æ÷‡´z;ÉÓ™1gR½ÒHÄûn7©K?q¼Ô°Ý3’y%]0z¨eï…fæÊçf±>ÿ@ïÖO»Ç5Mq—Ï8 ±[·q¯vŽßÎó£„>!}q¿?êU¯tò¿¨L@ëg9V+K¼_ï—N< TÞ~a‘÷³|¥öÜK_è8ê)k/8‘ Xâ:n¯Ä½îFÇæjÇñziâ4(j?·íŠyí6ýúü·:vm¼¼Ÿ4Úï ¼ÄpIŒEÞÏ Q寗ýÆY~TǸNÜÅgbÆ™zW훫¸ãZ–Ó4Á&,+wîq¯Úã·ûxÚ©½V6…±¼÷G%íÆÈûͰoˆÛé§1(¯1|j‘S/æ‘§¯ÁõpP±Þ‰/'šî?‰hC=_õ.Ì2ìPïü4Ê:yœÚcuúx×Tœçz¯A#éÞœa×y褱 xº˜ENàΩ¼(FßcÀ„eÝÊçu\K>~^8ÜyÜ^‰ó|5rÓJE»‚Ùiì¶vßò÷Nï–Úó,_C#Æ]Ì;qå÷ó\QîÆxÑRÈûøÐk ¨7_ZËÏZ½¶v^{7¥?q·WÒºîn©'Ân:}¼[Ú‰ùΘ3ðú›d˜ddè¡“J‚µëiJ>šüC=>>îꫪ20Ϙх@G?×îgØDÚ‰Î>Ìê]5*³êé~žør¢£ã²IV.;ŠaŸ¯ÊÒÊŸkE²Ù ùsš.¬žgùÚâ~ •‰  ‹rÀª÷J¸N0ϘÑ5¬ññ"!&+=:ý¹[  =ÝIÏDž«*ÞØòï*J¬¤¥ÙÍqfF‚ÞÎq«JÒº8nÏWå{¤6>\“®÷^jô·i¡ò<·CUIZ ïaÒ ¯9åÏ.ˆn ’Xe@tO,ÓÏ™—öò³Ú»eùû@F$฽’Äu÷Û}Ýl¿ÃŽ‘ÑÍõ§›r°vkÁ“ú9&zcèB>Œ7RšËÏZÅ›þm%V½7Î’´¸ÎW7ô#ù®Öâ—ç»ÓLJIKE?Æ(S9Ñ)#7|ÔèôBÐïšòvIÊzç«^ó úÔžV.öNht®;}|˜$a ââÛé>jo ˆñ‚„œ b _F>Ù ‚ Fr‚ ‚H1$äA‘bZÆÈ·>Ýêéy‚ ‚ GS!o§Þû~£o‹!‚ ¢3š ùø`Xëi  q/!µÄÑ—,iéÒFi¡©7š|F´O'ƒˆjÌ3&]ôG­O·èæ– úÈЧŸ•ùdYAƒ€ óŒ‰/wâ^Fê˜{~.î%A$*?#‚ ˆCBNA)†„œ ‚ R 9AA¤˜ž;»A=wv#¢̘3=õèõï{%îãÄ8ÒTÈ©Ž¼¶>ÝZ Ûù¹ylïlDz~{\BW+x3æL_ö?hôú ‚芑q i\Çž1g¢¯vŸ“¿W>Þ¿o´Žvyh=l[„­©Ñsµkkö÷õ~o‡NÖOD!!™ù¹ùè»ü¹Þs•5Û¶Õvž«w¬VûïäØí¬·¤E(¿j…ªÑs•ÏKëöïÛÙ¶òojomŶ»¶v÷5ìõÑÔÙ-Tº¦kÝÔí>×híîc{g{ îùa¹Ý+­ÁV–a'Ûöëïk…?ÎXr³ã7z¢$9ù­Ý‚N¤¸$Q¸ºÔÊíkÿžš ÒËH ¹´ŠÒrQt¹Ùþ;9v7â[¹}íß÷"æµÉ[µqëÚç:©fûngÛ¤b'¯ƒ ˆô2rB>cÎà8üy"!ÔVHA“?·³]³m›m×j½ÞT´»Æ~ÐJ`ëýÞ(Q­Ñöí³Ó¿ídÝÍèe-n[ù|¿ÖOD)!¯O#]bÞícíî¯Õsíì»5urlj$CÑ#SG>cÎàø8>¨±,A1.Œ„K—H1ŸÀx¸ú¨E*AÄø’z!¯ñJÒ âý`q‚ ˆñ%ÕBÞHÄ'&Ò!âAÑ+©rq‚ ‚H©“ˆA„ uågiñ¹ççâ^Bê°Yq/…‹˜g̸—A©cýýõº§JÈÓ*â‰ATBŸ‚è©ò4‹¸„æ7AÝÐLçR#'‚ ˆAx!''‚ ˆÆ$^È!Úµ¿“ˆADÂ…¼2¦,ÅœDœ ‚ Ê$ZÈk!'‚ ˆj›µ^›áMNA'I¬KHÀ ‚ ¢1‰òs†œ ‚ Ú ‘1rq‚ ‚hD 9AAíABNA)†„œ ‚ R 9AA¤˜Äd­×› FIoAÑœÄ9pR¸© ‚ š“h×úCëa•¥.®}L~Õn×îïA‘Ve‘·C¥•^k±“OAŒ‰¶ÈëQ)ÔD»Ö’¯„Äž ‚%Rg‘×Bnr‚ bœIE^‰´®åW³mHð ‚ ˆQ$ÑBÞ‹\Š·üûÚß ‚ bH”k½Óäµ–6‰5A1n$FÈÛßzÛÔ>Ö,Žž ‚5íZ'‚ ¢9$äA‘bHÈ ‚ "Å$&FN£Ææß7¡Nªð|¼ôƒ—â^A# 9Aô™ýo÷Á2 º¦8çxxÿ!<ÏÃÖg[¸ò³+1¯ ˆQ‚\ëÑGö¿Ý‡1mÀ°¹µÅÄ›ÁË0h Æ´1°õlïl#w6mª|cÁ‹¾ä6ósó[AÃ,r‚說A›bû¦Ö{|¼ñ1²Ùl•ˆWƒ‘5 e4|¼ññ@Ö@Äð !'ˆ>àû>üÀç¼évœs@Ûë“­-ønÐu=rá7DXFXç+¯¯ dA r‚è¼Äáyx‰7´Ì=ϱ-çö=µ0¥ì>o¶ <Ùlv ë b8D(Þ+`ÚðJ¡ K!âœs¸ž p؇vKë½ÞûÝ{P}ü:DÇÓ4û¾‚ †Gê“Ý:}Jƒ x¿ó¬ à lzF<vK.€²˜Û¶ ^âpݾ¯Ã~lÃ=r¡Mià%–©c™8x‰Ãÿ·ã8}_AÃ#ÕùŒ9ƒããcÀññ1ŽO;A ƒõ÷×Q¼[ŒDÚvl¸ž Û¿{‡e·ŸØ(Þ/bùµå¾¯ãò?^ºúk=€ñÐ3 ·súCAÄðH­×ŠøÄÄDô3‰9×~u »{»(Þ/Â>°aÛ6<Ïâ}`ò¬HÄí'6ˆ óܹ\ÏÇÞ/îãøøsÏÏÁzd‰ã:ÂÍï8Nt3=®KþNDzI¥k½RÄ%RÌ¥e>11Anvbè\ÿõu\ýùÕ¨¼Œe8çQ¢›} ,ò˯\c ë^Gþ¹º@XÇWuæ™êÌð÷~÷^ÔU͘2à>²ÓYèºMÓ **|îÃ9t%ó7WÍfËÍg*>½–eayiº¦G‚ÿö¿½ Çq išH¾S÷PdÍ».¬GîüõÎPÎAƒ#5BÞŽˆKjcæ$æ£É&cЀÐ#àXÍ0xà*À¥%XÃ`éµ%¨Jýæ,Û;Û˜}nœsQË@t\Ó40Æàz bÜŒG÷l^¸àý#!ôöƒßûz¯jÿ7þï ,¾²(:¹M"S]&ºå› ‚ ÒM*„¼YäògñÑc“1œg Y r/ge<š1°€ãcMÃ%Ï‹uú¤^¿,dí5\ûÅ5 Îƒqʈâ䜋2注O»ÿÇr`Ú°ÛØûf¯áþÉâ&ˆÑ'ñBN"NÔ²ÉLÈÐ4@ cÅÜ qB?ΰX-s ¸^_õO6°þÇuÌÏÍC›Ò`œ5èî‘ 5P£¦-•cTEÅÆ'@€¦NÄøèò3q¢:c0!âÈfÅÏS³·uc`ð^‹xÐøGa¶x› ïÐ+Ǻƒ²èó’ˆaóšÉð@ü½øÐuDœ ˆˆÄ 9‰8Ñð¨W8TÐÃ$¡‰) રXlÑ{|P8ŽÕo{5nþÅW£no2Íó>lft…XÅô0ߢ^ 0€{Ð8 ÐcÊfß/îGCIŒ¬§äDµå€¨+7Ïš¢ªÆàºnUVºï—Eœ) .w#ëœ H°í‰9‰øøár.Üæ%_ˆöŠw8yŒs@að€@VŠÿ¹þ›ëPUsÏÏ\$¬yåD¶õ÷×±ö!êÌ3Lˆzx„ÓÒ¿ä—›ËA„$Öµ.‘b^ññc# EŽsÀsÃïžê’+š£BÌQ‡㚯ýêv¾ÞýXd™Ëö­²m«{àFõÝžç‰ï%¯J´}îÃ+yâoX1¾‚ ’F¢-rI¥e~ý×׈‹ãÚ;kHÄljœã2Â6¦‡ÆZàˆÜÑ^¸¼ðq;…=F®ýâVßZ…6¥‰’4Æ`ˆQ¦ç/œÇþ·ûà‡¦i𹕉†0„;½ÄëÖŠA¤BȲ˜Kñ–߯ÿú:‰ø˜á*Ö·",sMºÕ—"ppÆàq®w|ÜÜüýMˆš´p.´lüm„û=t«{аÄe‚›{ä’ˆQ—Ô9@³Æ ÁçX`B¼µP¤¥0JqçlÎa)âû îU—iÔ¤eçË@î\ ?Z€>)Úªn}ºE"NDC#'ˆZnÀV؆Õ1a+ vÀá* vØ `q[‰¯Ž¼Š÷Š¢î< Ôk&C!I•EN’¡Ë<§00Ρ+*Üè¼BÄï$À­Þ)nÉ…ækPŸªß§ BBBN¤–›°]ÜtpÃÄ6!æ 2†‰ 9/ñ¨ž\×ôÖ@ÄØBBN¤šÛ€€ãXÓ€€ã†\)‰ß'<` JX¶–"d’}B ‚hÅȉ‘`/ÌbÏWö"c¸Tòðq cÌ®ëRŒœ ˆ¶ !'F‚CË|6ì©>áyøPZâœÇÖk½[8çQ{V(@î™\¼ ""±$BÈgÌ™º_Ñ.×Ã:r À+T9Ö4\ÿŵÔõ'ßûfOÄÈÎ4OYæ=AÃ#18ª'z&¬#?/E›s\ÿÅ5ø¾ël¸WŒw}âû>TU…ïû`1Žb%"Ù$Â"o…´Î+­ôf–{«ÇÉÚM~úú ®ÿûX¯­®ÿânýéVdÙ¦Ž@|©ªJehA4$B–V»üY~Õ |«ÇkŸ#Fƒâ]aqËä°õÿYÇòÒ²øþ“å8—ÖΡ#~@9A IŒk½ž°VºÛýÜ r×[Ÿm¡ðbú)¹s9CWºõÀ‘0&Å>N6ÿ¾ (€®ëåžë%ÿ;/^*o(3ðPŒœ ˆ†$FÈ;ÝFu¥µ]»O²ÂÇEÄ–Ó†r0ÏšÂÚì˜ÙÜÚ„qÊ€>%D\ËhÑèR×s±ýù6>Þø×s®çÂTÌDÆÈ7ÿ¾ uR…–Ñ¢«/‰!0ó/ÌÇ»8‚3#äPéf—¿WR낯}œ]lÛ†aÈNe·þt +ÿ´"ÜÓ1— mnmÂ0 ˜g̪µhS" »ôãK€"2×£9KNŒ\¾#k€1Ž”7Jö¡Ý¯v±öÛµ†Ãa‚è/©òfÔŠw¯ÛéÂz`Á8%DF²þ?ë` ‹\íq¡ë:Ìi³á EÔø% /Äà”ð÷¸oB$›ߌÎoU£EÄñ ÅàÊ¿_àÎG$æ1h#ä­bäµWn/¯Md«µÆkÿ†=6>ÙÀü óÐuÑŸ|~n^¸Û¹«oþ}š¦µd¦0° ƒê©0NÑ´$ÄÈWÞ\:©žñ c0²8çX}k•„œ †@"„¼•¨Ö{¾ö±v\è$ÞãÁ~qº¦cõÿ¬BËhàœCËhX}kœsX,l}¶5Ô5©ª UQ[~â¤Ð3Æ iîD1ò¸“õòù¼ˆ‰·B _‡,½¶„Û¾=øÅÄ“šò3‚h‡¥×–`L ‹Ñ¼ÀÃì…YÀÞ×{CY?X,˜¦ ûÐ>ùBx‰ÃvlQïº-o\‚èrbdõÌrŽ·Cõ)Nàˆìõïü¨›šžÑa+ñ‹Å"Ìi +bá•ìœsøÜ‡w(¬^ÇIn¹s9hš^âð<Ö PïPˆ9ç|h pî ×uÁWy3Ä9šÚp^qÛ!‹œ  91äŸÍ „÷þ IDAT·oFX….s[ÄÄyIˆ¤ŒíJ÷°Ïý¡ #¹ñŸ7 Oê˜{~œÈ ׄ·ïÃyâÀzdÁz`áÒÂ%d§²"ÛÞ² •4øGâfÄ-¹CM€³Y¢IÍ3ˆÖ«e4¸žu^ ÅüÀ…ã8ØÝÛ¥ò3‚$äÄH°÷ÍfŸ*çÞ¡pO£ ¢Ã¹±¥˜^, p± è~q;_î d×~u kï¬!ÿ½<ü#1¢%ñœTNp³YØ¿¿åW—Áƒ>¥Ãvì(QOUÕÈ£àMÏu}ç£;åšvEÌIwJNäáD{\)â7þï¡­ Ærbdðyh©º®°t9¯™(á¬ä•¿‡½ÙÕ§T˜¦ óiQšæy¬¬ÇV×®ë¥×– 2>"È/íÏ·ÅÀ” ƒ1eÀ- w´ç ‹Üz`áü…óð„®é°2aÌÛó"ÁW™*ŽwßBáb!F%Â)BØ¡ˆ×³öîÖcáŽïW³›•×W¢Ÿ×ÿ¸Ž•×W°þçu¬¾µŠâ½¢8ß‘Pè•Dlß=tñáázð2ÖÞ]õ_\ëËz‚¨ 91H·õöÎ6´©ÐJ伜ø¦”ë ÝRÙr´lè“:²Ùl$JªªVYê€ó¹ó0Ϙ¸ôƒK°lØOl‹Åm_WÞ\îð0C1ßwö£u¬¿¿ûÀŽ,ý¥×–Ä Hø¼øPnÉ…ýÄŽòä¨ÓÊ›‘ù棿Ëf³0O‡µæ DýùŸltt.W^_‰,}éÑ(\,ˆ ¸ùû›°mÛ;Û ÷!obrç_ÞGãN*„¼Ûñ£Ô’u´©mYzíW×;—ƒ SXÖàâX*‹#/qØ¢DªøM±jš¦‰zóÐí­êj•¥Žbò×)³ÏÍ KØ1íÙ ³`!âÙ©,ô)ÑïsŽýâ~Ùòö}ä/ˆ:ð|>UQ…x‡nxÎ9œ’#n:\·úf$L(ã%qSb?¶¡išð"¨j•gÁ4M˜§ÍHìÝ#Å{EØm‘´V‡•7W¢xú¤ݹž­Ó+y-“Øx Ú⫼ Æ™T9w´ýÄÄÄ€VB$ܹ–ÿq·‚[UVqñ^‹¯,bë³-¨O©Q‚8^GÎù kº6ž6ý”-£AŸ-^u]¯²Ô¡Ù鬨¯¶íhƸ‘5 Ÿ3ÇmÛŽ‘—8fó³QÿwU Å;àe÷t¸¾Â‹…(žÏyd‰—mÛØûvO *©¸ù`ŒA?¥W—â…ÉiósóðŸõqyñ2Ü#WdÇßÙè+¯—EÜî,2†Ùâ½¼´Œ[*[äWy5²|·w¶;Ž 7£VüóÏæ…˜ôŒ•©à‡þ”%Òyžյ˛ˆÊD5(€uß:±ï\.‡b±×u¡OêQ:éV÷}a7ʦ¯-Ÿ“žÆXU/úJ‹]NŒ“ñôIÑæ6;Eñ^,Ã0?7ÜÙ<σ6¥Áyâ`û«m,üp!Š¥ËìuÏóD.ÁAü a6·6až6¡² M.ØÞÙ£n "Å$ZÈëÅÆëÍ'ƇÃåw×°ü«kØ}g ÅÐj•–ø D¼µ1æ¥×– e4‘Œp8‡¢“œt“K "W?S„u¸ÿí¾X{Àqã·7à>r¹œð‹Uá^jߣÐh­ùïåO¸ã£,û°ÎÞ÷}ø\ÔÖKBDxÕp]+ÿ´ûÐÉz@TJç·½óÄéh­ýFЏ HX†A›-fỈ´“h!ªcãògr±/ž‡cMÃåwÖp'i‰»G.ö¾Þ¸ˆ×Ãó<¨LE–e#µ_ l2ÁNÖ±KQôJ¶?ß.g·sŽÅWqëÏ·ˆÒ¸NE»jû³çžÉ!!ÕÝ;‡ÔLèa˜ÔáºnT#Î^ž‚ðèµê“zU½¾õÀÂöWÛ±Î"¿uûŒSb`N£xæ´alþ}“ÜìDjI´?´bbb¢JÌ'&&È3‹Db.9Î0ÜE$.Âzô¬µ-µm[Ä¢C|ß:Ì¢Ä Aõloi«L…õÄ‚Wòðö¿½=ðiÅ»Å(¹sUUa?±á—|QúˆŽsþw~äQ°K6´ˆ/wÍfáeD¢žŒù[÷­XE|ñåEd³YÑ ¾Yä4x‡4Ü…H/‰rb¼ø˜1è Àd©Uø `jÄ"…aõk¸üB!6„•+]¸¼È–.q "Æö}w]÷äŽ`î…9°=†µwÖ°ÿíþPÖﺮHŠƒuÆs]ªª ¢©lÒ}~ý7׈yëú”.^SÉſƟÜfž1zFo¹­ q,½º„Û‰ïæƒ º%ñB^i•“5>ºlgL…‡Æ‹ÁÜ€Cg ç02 7Ã,éã €›@¬".‘efÒ²eŒ£z~·qÛ¶±»·{b²”Ëû‘ûPXùÃY*¦*¢nž{áúªÍȺʛ$ŠŸ~J7!aiŸ[ˆ¬Ùül"_ A´"ñBÞ²ìGÎI&ÒÅ&c0dÈ©``@I”=!Ìö^-óÿR„™Ç7\©S;_î`s‘ËÜç~U¯u[¶í6º­…Ùä,àk­­Ê^)Þ+–g¥šÈ—…ðüË›ë±5Ô9èÝ G®Ê°•#c+áœÃ/ùð}ÅûÃKý&B.­òFÖ¸zWÄ"fÉZO#çC4-mp0Ìsa0a©sÆç¼ÊOŠˆKv¾ÜÁÜósQO7#^É‹º«­ÿ~½: ¼•½á‰P¿‘ålæiž"bý¾RÛûÀN¼ˆ¢~]zxF œ9+—õøaßúûëñ,– z$±B>cÎ4îÊçfQŽæ?#¬²ÊÓÅvFˆ42šñSF¹l `€çA -s]~êy0õ„‰¸¤²Žûíÿx;jƲ½³½Ïö¢xt]qA9í•„»{˜ïéâÝ"Šw‹È?›‡­Ø¸üãËÄ ÈÆß6’E?nÿå6fŸ›ZÄjSZîTNk³Yq-• z&±BþÐzX%Ø‘p7x"}0Z8ß:sMGü^â`Œ\ÄÎý€'ZÄká%èD¢âyǪ¨à ¾È¦1¼$²¿ˆÓ8²¿e‡9åóÄ^-êS,Á†Ü3bp Ï„ò”Šæ5®‹âƒ¢($ˆ”’è¦l™j=²NˆøÃìCÌ83PïªäZO)<àQL“ªñâwÈŽhåìoÆù‰’´¤Â9/÷fÙúl …‹@–gˆ/•ád-¶ý8>ÓÞ7{¸¼x9Z³„±$²þþ:VÞ\8Ì3f4F–Ñy%¶ccûómJr#RM¢…n׾‘ —väÐÎ!JíRÂÚ»k(¼XÀÞ×{€ݯvá¹Øùr×~q­¯Ç+¼XØ2ç‡kš•éݺ} ËKË'Θ?A z+‰eD˜âȆá‚Á@éïýö=.`dȽ W»Á ¨ªŠ÷~û®üìJ_Ž·ôÚR”CÐ*;žeD—¹l6Ûñqä¼uH]˜ƒ ñq/€ FÎ…{šH…E¾öîšñ)Ùl¶ÜžU=Ë5MC6›ÅüÜ<ÖÞ]ëË1Ï?} ²ÖâÊÍ—‰xí0÷¼˜LgÝ·`Û6ÌiK¯-u·`‚Hd‘Ä QÜrŒœ'?.;÷ü´Œ†ìt}‹—eô@Ì\ú±÷ˆ¦i`ŒÁü¶¶÷¹HŒFµ`éÕ%èSÂâ¯,äœcõ­UìîíV »!ˆ4A9A šÀ Ýê€È´J6êSjÔN¶ZF¸ÛõI+¯·o7Â>°á¹å‘©Mð<1zÔ?ò«’ñ±øÊ"tMˆ¸®ëÐuÆi#ú™1†Ùü¬°Ø "…Än‘Ëv«’v“ÚúQ‚FelÄPP\b$Ûµ¾öÎZUL¼jF$Œ™O·g7à åx%jF=1rTÂK<šÎ9‡ý¤¹^!Æ„ˆkSš –´ÙOl@Üç/œ'«œH%±Z䕵á•5â1JTÅÈ¡Êb¬ëiŠ"Ä”×i{é© ÜÄxÀáz‚F’ÝCŽã€—8ÜCžçEsÙDSẃÜ3¹ª¹ç,ÃÀKB„9çð_Xä%Žýûûmµlf™²Hg§Dâž6%’õ ®ëBËhpÄ”=Ãl­8×ÁØ,,¸Γ#èëï¯cñåE° Ãɬ0-ôp° Ø=ïÝÅK°~¸Ð—c_ÿõu\ýùUœÎÃmÒ%/tËëšouR…íØ` ƒ$<¶c‹x{Jp>½‚± ¹¤™Ý['’Ëì‚s Œe¡k€ìqÂ9`; L1ÂNo&\âžËüÊ¿_Áf†qƒ1 À3&0©‹+†+D\sÂØ?çXc ×ú4•îú¯¯céÕ%¨Ù©,TU…{äÂ;ôà–\\ûÙ5‘dwÆl:ø$w!‡ímäŸËØ2D Š¥"4MXèr À-¹ðÚ+#ˆ$«·ãÚnׂ&K›H ,sc&ô)À<-„œ1À9 öÆta *YpžœØìcP!Üé ¦Mà´)Ä<à€cœƒy®øÎ²}-{û/õ=ùïåñÞÿ÷T¦‚) ù|Å»EäŸÍ#w!ë¾…/w°òú ¶¿ÚÆüÜ<¶¿ÚÆ^°‡….`ëó-˜g̨+ç¼\ò€²Ö‰T’ª:ò~Xçd¹'˜ÀÀ@Ë,˜g# d§„ 3&²ØÅÈV€)ÉòóŽ… £º ¨¡u.ÆŒ‚s1O~ì}½ç‰•é…‹ÌÏÍCÏè˜}n¶ª®Ýzb‰Æ5ÏåQ¼W„9mÂç>v¾Ø‰,rÏóà—|ïÓHS"$&Ù­ò±FÏ7²º›m×j”ðFôai«ySQþ”Rñ»‚PŒÂíÔñÍ ,E€’Øa¹™ø¾zYÚp¬2†›}¶Ìë±õÙX†Áœ6ÁŽÜÙ4Mƒªªð}È {~nÛ;Û"¡ÄaL@8O˜gM‘ Ï}Ѷղ°÷õ^[Ç¿úË«(¼P€:)¼2û½x¯ˆŸþËOüê â$±ÇÈ»u­×>ÞÍØSpbpîƒ1?lZÂà¶",p^ ¿8Â+ÎÃÄ1e1ö’´[†}.Ü\Ρ18 ª@É%g6p蜃C¸§=°ëÔž Û¶E¹Ø”p§ªÁ.PÄw)溦Ãç>¬ût]µê%¾/JÚö¾"ž;—8¬õKÛ®þü* /`ž6£yé<à0²¢SÜÇãÒÂ¥¡‚ ä1r(^8º°Ã˜¸{$ç‘‹Ç8—Þf{±ŠøŠ|ŽE†a+œïšç–x\Xä"NÎ?ààŒÁæw†4­nᇠ0¦ X,Ì^˜Ev: cÊ€~J‡ä !"¶õ=ä/ˆ~ð2~ž{&È_ÈCͨðK>ö¾Ù‹çVßZÅ–²…â½jWûÕ_^Å¥\ŠŽ'KãÂL‚¨míæß7ñÒ:Ÿ•NÝBBN}†ó]QZØ`0`=bÐ2ásá,m¦ˆ4€Æ®Ê*€[à¥áºgí CVºÑ†uΡ+€Š9ÅœŠçyÀÁ7àð¸\|Œ‰Ø|þÙ¼h½š½Ó)~àò,h% ®ëF fv¿Ý\ç•Yî… @È=“‹¨ÜüýM¬¾µzÂ2?Ÿ;MóÒ+ëÛ£ueŒ¬!n$bˆ¤*Ù ’ËìBÓÖØ¢£[ ¾Ëæ#œ{¡ˆ»` ·¢»`𿂱ÿøZ—^[Âq†!ÆÄ·\.yxƒsl€«NÀá+ vÀá( NÀáIWܰa°ƒÜ¹tM”ÁÉÖª²{[6›…ÊTè“:TEæë½nÙâÝ"Š÷Š` ÃüÜ<¬¶>ÛŠÄ|áb¹ÑÍÒkKQ7¸fóÒóÔû1H† Ú…„œ úcWÁ2Ç`J>t›/„=Ö=pn)nø» έðq@Ä,n‘Åð@c«`™ÁúÜ÷ç°öîÌ3&®ÿ슜ã çx©Tv_a½n°B‹Û®øÝ /ØæëCHr„ˆÊQ§rp /‰Ìóâƒ"\Ï…ëºð?ª çœC×ëOÛúl ö¡h³øò"Š÷Џù{Ñ1N~DÍ: „º^úˆpnûBŸºÝD;k š°öÎæ¾?'2›ŸXØûj¯êš¶ ̉lôhîø l˜Û³ºuãaÆ·bAœÿÀ+˜‹bçŒi¸ò¯|ÿ*ö¾ÙÃÆ'=¿ž«¿¼*,ÕP°·w¶q­T¦3 ‹ŠÈBOÓp¥$JËô"ñ-àà `W€bÜRl@4H…s-£‰†.a—9Ù­Í+yðE›]û ñ”4ë¾]ÓadË%€¹s9@V{î™\Ô–·¸a‘uéÅTÊF r‚¨ÃæÖ&ôI •ÙÐú)³f±ð£l}ºÎ9þ뿅Ŭë2ƒ—6ló›a;Ö°“[ …mZ°çºëί‰¿Ï¬Á+„ßÄ×üܼHƺWÄÆßN zHÞbå9â®ç¶mÑ åÍÑ¿\|߇õÀªjºò6cxOÈJ8,7=7B‘^a ZÉ‹z­» ÃíÒð²Ô%Å{E§ ˜3ê‘n=¶à…kP•.;¶5êþ{ßìA?¥ÃÔ§D×ü ÂB·;J°%xapÜÈJÝÝÛ…çyØú¬|c¾ôÚÎ?-âóP€ αàÎâÝÝbÛâf S€šQác‘U.…Û-‰þìíŒ;€½o÷Px¡}JcL”¹*ßÌyž'ÊÛQ^xçow0›Ÿ1ûp^ºëº¸ó·dôÌ'Ƈ¶]ëïSó”v©¼XéBŸ±ÒFã,Y†Á€!¨&u\ÿÍuhš&Û>"lN›0M³ìNW€ìtVxN‰NgÚ‘ Vä –µ×kï® ÑAØVôn±/ItÃFгôRTþß<ÏCáÅnݾնˆ"ÏÀœ6aÚÈËe²ÓÙ¨‹›õÄ/q1EM Àuß‚}hÃu]8ŽC^8"/ä3O7rBž¢_lnm‚)¬n³JX†Aõ„xÔf;šZ ^•©">ÆÂˆ0ÇqÄLýy$ÒO¢ëÈ[‰x»ÛD;8Ž#šZdcó‡øQBUøß…s³Ã+9E K B·y3V?ð±õÙ>üßџܹÖÞYá­(Þ-F h¹s¹Žö%Ïic÷\¸G.¬G¬GlÛ†ÏýÈ£á—ü‘9DºI¬E^)Ðͬg0óô YæDÏl¾\N Íý³!ÅÑõÚËŠî7Ñ1D%VÚ‘õwÜ(ËZŽüTþw~4 dd¯b2ÑÏÿ· µi¶ºâf‡Eõèö;ª ç‡ã8ÂR³83÷ ¢‚DZäíŠxåód™½ró÷7Eƒ‘C·¡UÎK\” a’¥Ôhïë=1‚"NìŠD,˲`Ý·à8ì'¢ª2‹;Ž›ŽA#-äÈ#!ÿwš);_îDâ8çQÜ»x·ë‘…ýâ~4”…öãÆMfb˜$Ö"Ú?¼ÿ,s¢/X–Un3¥‹˜yXGÎÑEŒ—8ì;*7Š@dRkŠÂïЋJ¥€²¨ñ ´*châ2h¢’»š«™>Y¿-k3lÛ3ÀÃìÿpðŠ{$þÏÒ:—cP " $NÈ¥eÝ© “˜ý`yi·þt ¹\.j6"?%RíŽã`ÿÛýX[qZ-˜¦ xˆÚ•V–ÍÉ›^âð¹ûÀî8,„–¸´Ì½’ý”ÞÕÕmç Ñ(Ç´#·ºí؉ÈXÞúl sߟƒyÚ„Ï}¨Š Žð¦#Û¶áz#iïáû~Trˆ\&TEmþÇMØùbW~ꤊï|Ñ1r-£‰ZÿŒ°œY†Á²D~Ͱñ·îw^Ù!ŽbäDBI¼í%°Õ|sb,£yþÙ)¼Xèü J:õ?¯DúÉ{ËVqu‚YÆ(FnL‰ún–aÐuæÆ)Ú”&†ÛdlÁ¾nöl6ÛùA*<·þ÷Š÷Џþëëý|Ñ3#)äYæÄ31ò¹ççà¾È(DLœ1†l6 #kˆq£® -£Á=pEì¼Û«] Üøº®£ˆÑ>C¤›‘r‚[Æ F®ª*TV³D™8x f°Wf™{%*S‘ÿ^¾£q¤»{»Ð5³ùÙÈuˆö­Ý$ÐÄ ¹9AŒ5c#÷}_ˆ5Î…x;‡N4w]þÌ9‡{䊿á~G"¾øò"Œ¬H˜Ó¦4añOeE̽Ë:‚d‘Ä(1Â1òÅW‘;›ƒõÈÂÞ·{@ DÜ~b /177]ÓÁKnÉ…}`—-uÎÛ?–q&âï2¡Žs]×aØÐ!æ·ÿL–9/$ä1j¤(F¾úÖ*r¹rçrà‡õÀÂÞÞÖÿ¸@ˆ÷ÂŘgL@ôIœsøßùpž8Øúl+Wêsñ˜ã8@ ¬vpð’°ØmÛnkMùgóQ[Ö(~ÚŒŽãzà‡{à–Ýû#‰òv:·Ñ&)ˆ‘/½º„•7W ªªh©¶B5 ósóX|eë\ÇÊk+0NQ ™|mnÉ…aÈf³¸ý×ÛÂ:/ 7º´À”EܱáyVÞ\ÁúûëMצŸ*‹¸ú” #kÀ8mÀœ6Åͤ·äÂ÷}0ÎPx±€­Ï¶}Ê¢!‰òFbM%dÑ! °õé /#_zu +¯¯@×uá¾V„ՋЮçbí·k‘ˆk-rsK!× Þ¡ÀÒ+¢s[ñ~FÖG(✠`?±a=¶P¼[Dñnë¬s™/=Ñc¡uî8NU¹®ÊÚ¢$BÈëQ¯½j¥°·ûœÜOåþ¨u+1jÈ^ãÖ} ¹s9X–…óOŸ‡qÊ€õØê(Ék,¾²ˆ•7Ë"®iZ$ŠÀÀ e4,\\"®Uˆ¸$´Þ³ÓYqSÄ~]Ï…ë w·Ï}pÎáyì»JÀsÏ䀠ܹ­Ò%/o0\×ÄÝ÷ý(ÞÎyg±w‚‰òF"^O [=Wù»ûZa'ˆ4³ôÚR9¦ËÊuÕœsèSzô)O‚˜çÎæ„»z꤈G(1qˆ¢u· Ñ4 ®çFÜŠ÷‹‘k}6? #kTÅÆsçr(Þ-bõ­Õ(&_‹¬?‡X,¢Pʽ×ÝCWÄÉC·½õøä>b˜$®ül[¹?ob”Xy}%;Ùk\?¥G%SZFƒ1e ÷tùïåã^®ˆwgXÕ€“Z~ú/?!ÒÑÑÈR0(ÀùÜyì}½‡/w°÷õ\Ïø‰Ö¬«o­âæïobáâBý5ž2 2Q§nd ø¾ëë‘%JÛî‘Ø7‚dÜ ãM¢„œ¬d‚hŸÅWEÜ–1è“:²Ùl¹×¸iB}JâÊjF…qʈ{ÉÈÍh,â`FTB×l»ˆp»ìtu¬úÎ_ïˆ$¸€céUQó]¼WÄÍßߌļ–ÂÅB”¾ýù68ç¸ý—Û°, »{»ð|ض¨O÷\XÈ'â'1BN"N!çoG"~FxîBFÖ€yÆŒ²Â™Â išˆLjWò¢¶ªð}?JÔóJ^ó†û‘ñðZv÷vÁ5£VYæ2˺¦0ØŽ-nZ7+\ên$î@¹×¸{èÂ=ýÁÕIµjJÚl~¸ ’¾Šа,«­V¦U(+@p²‡9cï±·Á@?¸ÀΗ;XÿÃz#7 #z=¶cÃ=pá8N48eåõ±]Øé—DÏóZöM¯D?Uî&ˆAý”^åç%GuÀK"§ w.wBÌÍ3f´öVÍjc¸úó«¸þ›ëm¯“ :…„œ b&w.×v6¹ÊTxð MiÐ3:Šn¹§sàœÃáN¹G8e¯»‡.l[XܼÄa¢4Í0Œh~¹ú” ]×ÃØðÇ`™-p¾MHYc9 ÐE‚%@ñÀyLÙ°ÆVÀ€)ç€:¹^ºtbW‹¯,‚sŽ¿tõKAÄxÑ;5Ž…·B–¾©O©UóÌeB €ªpE¥Ë\¢ëz”4ØNÚóÎw½^‚h‡¶…œ¦ûÄ`ÐuaÊF$ QʉaìHL Ëår(‹0 1\Äç~Ôk\ÆÖÝ#7r›ï}³%ºÍ}.uõ)5/ưLºš³á^tƒaX0ÿ| †çê¿_­þ<óÃ’4Ù²Úv£õU”ƒ8¿) Õc"£%"×1XK1?¾:ו£½×¤× Érƒaˆx”%!;…î\-Òæc`ÕzºÓ‹•©º Üx¤‘ð~7½n0 #Ñï †áCë«h}Fü×­eÈoæ1 °ZˆSŒö•áŒáѰ¯ç1‡¡ÈM“›Á0ä׊®õÿéÙræ÷ûT[¦u«%+K÷‰?ýfkI †Ae #òrN|3‚ƒÁÁà‰ŸÇ`0ly‹R•ÚüÿˤØÏþ°µ¤à 2pB¾å¹ðçž“ÿ6¡œ37 ;ML¹Î[ç5”šéïqj9J!æð1P©õ^Ƕõ(>(¿þç?ÑhSÁ6¦1Ã΢󮢻—¼Së÷‘¶L…[ ØoDƒak Ô?Û'qjÛè{Œˆ »@>ÖJEûð¤×“N‚où¦FnZ.µ¾•txT ósÏmº+݈¸Á°{(Õ–G `x„05rÃP3PyÉVÄ7ÚÂ5FÄ †Ý£qê c'ÆÈ² ÝÑ\ýU¿O´5Ê=ä䘈Ü0” \Dn0†“´“v#[GQ?^ï÷‘ S#7 )C+ä¦Ý`,â¸ØrVŠùD·º#¦0Y–a+Óµn>†VÈ Ã`ÑúºEr?©¼Ë}xŒaLÜ0̘D’Á`Ø6tG“)Ùï=,yÇ,~ºˆë¸è\S¾Žîè]Ùñn0lFÈ ö¯Äø|ÈÁñú}œM©?_'ŸÒ`x8C—Z_[7µrƒapHÓ´Úï­”Ø%$½"®”Âu݃ýS~Õ`x(C'ä½sæfNÜ`,’¤[#÷<×qû}¤¨÷GüJ´½½¾ïãïóñöuÅ=8Ð8mÄÜ0Ø ejýIà Ãβøñ¢D¶Ž"8àíóÐM’$4¿löûx(¥ð,p{ÍÍÛ7±•Íä‹“$iB›6:×(G ä͈ÁÐËP 9³ƒaÐÿÞ¸¤«¢6^F掇֚Ú~ñ_ï·˜{žˆ¸²žçáï÷aÛ¶¥ëEóözÄ:~âZÿÔkSÌ¿7¿G7Öeh…Ü`0 ½"®”’Ʊ\£,i SJA a(5ó~йReOœœÀ÷}”%çÅ×uñ÷ùŒ†£Üüê&ÉýÝÑÔ×·|æ©W¦„xû<‚ƒ®ã2óÆ ­[-¢o#f=»Ã¯Ðð¬a„Ü`0<«ÇŠ( |ÇGkÎ5Ùý wÄ1?¢uÿÆ»‚ƒ''¸®‹íÈü¸rº#çMÒ„±úX°¼¼ÌäË“LŒO·câ{1Ë\^÷¹§^™¢qªAx4ÄÛÛMß—]ðº£ñ÷ù\üÙÅ]~Õ†§#äƒá‰PJa«®*Gìªß.ÉJQsN4®ã’é ×ݹºóôëÓ‡|_n$¢Û³oK<óæL7wÞHÑgu_Kù·cFÃQ´Ö¤+)¶oã-i“ Úí¶ŒÛø\ûݵ®ˆ ¥iÎõPNñ|–"í¤dŒñïs᧸ü/—wì=0<[<’o6êµ5ë­6¸=n#ÜFß×ûù­\c0zlTÆÉœnC[ÒI¸øi¯´™|qrµëÜ&¿•’ì÷àfë&i'%Ø_¤ã÷ÚdYÆ¥Ÿ_À‘›ƒÒc~­ˆ—”¯[w´‰Ê ÛÆ¶Î‘÷Îw÷~®üo£k׋ô7úüz׬ýy[=Ãã°Þ¾t#ö†gÛ²« :ï®­{#Y¨àf~8ÃäË“Œ¿0þÄg˜<=ÉX}ŒÚH`@mZ­†;"³à¯¾òªDáÅì¸mÙ½™(¯óöz‡>\`öíYæ?œç£…ˆ¾‰h}Ý­óûûýU£mQf'Í|ºa{ØöùfièÍ>ÞÊŸ7ú9½¯ª5Âîý~#ÐÃÉÛ1ÁÁ@ÅlM¼£”Ô„A¼Ì3‘ÝÏ$Õ­5'&‚€,Ë;1FÜŽIWRâ8~¤F¸©×¦"¢#R—=6в7š7ª4™ºÝô›Ñs}I)ÞË,3÷îœüüýb³%yKFòb+Þòk46cÛ…¼Wø&‚[É®ÙI}˜ˆ±7„©W¦HÓTFÍPd÷3R•Uóã™Îh·¥&¾J{"u{-ÛÒrȾ“ë“•„èÛˆæ›}¥±îÌ›gðöz¸®K½^ǶlÎLŸAkM|/ÆßçßåæAg¸<$½ŸCÖ‘›è›hÃËæß›gú验ÀÈCÞ´’NÒÍZ OÈŽw­?N:»7}½™Hnõ¹õ [i#â†g©×¦;6ÀÍÛ7!—prOf¯Ûˆxg߉–‚¯ÄU·wm »»|ˆzÔj5ÆêcLŒOHç{»M|/^•Îð÷ùœÿ§ó27Ò]€Ò›î÷F<–>]"8ÝÏЮ&MSjµÚ†¯¯qb‚Ö7­*/ÉJ3rXøÃÁá@RåyÆÂÇ Lžž”8RÔÊ%gÍ%=^–nÞ¾Éþæ[z_––—äçç€/Ÿ[oŽ<ú6bñ¶òµÞ[p·’ZØs¯m~ë½n#Ö;›‰Ê †.3oÎT¢x£yƒùDħ^™bìÄäðÑÂGض]5˜i­IîmmaJó‹&Mº×oœà€¤ÌËz©c‰oº?RŒ¼éìà@P™±èNáñÞÓ=݉ºbž‹ØªTU|)æ"â .t?°¨šëJg·òy—ÿ¸l¢qöòØB¾ž°mås½ië­\÷(×lõ¹7âQ댸ž%n(ÅB "¾ôùR%\S¯M1V#Ë2¢;ËŸ­o_ú8,ÿq™eäùêÇëø¾Dê¥sœ½Ç&˳*š|ýà@P 󫯼Êû¼/Mo±4»•~çÁIÉ÷ÖÊ£;Ñ·Ñc‰mùžÄq¼Êk½´¤¢®ËœÁ°] djÝ`0 7E¨õ_^á¥ñ þ ‚Õ[+îD̽³ySØ“Ðü²¹*ªoœjH~0÷½Ý=âå.ñèn„¯ýÊR5ÙŸvRêÏ×W-/™~}Ïõ¶Ed>\XO½2Ue. †À¹Á`Ø”?)E`)К«Ðñ7¦ ¥­u«µë«:?Y¤qª!£dŽ+f¹®jòi*sìY–­~ÔYuMÉúҟ#â†Æ¹Á`ØØQÔŠQ®ËÀÅŽà’£X %—$÷+è®LíH:ú6"í¤èŽ&í¤2òUÔ­mË~`„Í`fŒ Ï8Sø–ÂÏ5R$9¤ÀY Ü"¿˜Ãå"н¡uK1þ¯—xéTcu“×.Óü¢)£gJV„&$p|í‹ M.Ýò¥À['3†#äÃ3ÌŒRLÝÜžãB®A)’\sÃR´´f ˜+Dü¦£-¹fú*â%åL¸gyЄD¶¬íõªz’$2ÇÞIˆï!7<]!7žQf,˜¶ÀËÁµ€\ãYŠDk\ R­³-â~ÉBj广jç×Ô™ûÅâÇ‹4NËÏõЩ˜ÑÄZ[k]Ù¢¶Z­‡Z¾ ÆrƒádºˆÄ=ÀW ·¨1“k\Gƶl¥ˆs͘ã‚Ö•ˆ_.ˆˆ—ôй­l1y±ºÎr™ÎŒˆžZŒ Ï £Ø9ø"â® ®û|HTšâ®HDkMXDì½µòAcñcqK+Ýá°Äù­×}Î`x1Bn0<ƒ9¸J¡rña ÂQP :nßDj%ÆU’n¿h ®ˆ÷Òü¢IøzXÍ·{®×ï# ;Šrƒá¤VDØÊR"Þùo ¢t+)nQ3·‹Zú° sݵe5žrþ¢ß0 ý¡¬‰ã(P6Œ¸Pó%½®lù|.µr(ↄÒçÚ’1¨ IDAT¼\­j0<Í µ?ήsƒÁšRì¤)t‰Ä¿nÉc'•mÉ(@4iõмëä¦,Õçà ;ËP ¹YZb0<­t¹/|%Û|Aó܉äãŽÌ^c)²R5<‚˜ÜOdK`ïµ „}>‘Á°s Q²ìAÌzQƒáñhu-óÖ:×ÔîD°Kçzš@G“æšÄR¤Z“Z0Û®ˆ¼¬‘gY†¢›ƒáQj!7"n0<×´¦æ(…˜·sê€J#°i®É,ù|lÁûCÔèt—¢ûËžf†ZÈ{#òÞz¹xƒáá\îh´RLjW8¸¹Åb]<Ƽ¯5sÃ&ä¹&¹/6­ä’^7žVžš¹oƒáѹª5sÀB‘[°”ÃGC*âÀêíf–ix3<ÝÿóŸ ý=ŒÁ`LŠÂ¡²ÀD䆧™ò²Î½Ñãv}Á`xŠÉ‹}ä9(ËD䆧—òµõîµQ™Jî9¢;Ñ–¾Ç`0¿ßÇßç㎸´Ûm²ûív›k¿»Öïãí JM!‘x€Î]”ò%ÿY Y£”ÎÁuh}­'Íî%Sï¾R¨\£\,JÈek¹I¯\È&ÒFÄ 8÷ãs4N6PJÉ–¯F’ÜOÐZS«Õ¸ü‹Ëý>掣s¥$âVÊGç ¿¦p]ðÇä‹“xž‡ëˆ@ÙÊ&ÓîˆKš¦Lœœà‚uËÿòt‹¹Rˆ r+@xDfÉÓDß(â%×éÁr_I—ºR ;×22çzPóÁu¡Ý–‹;‰ìÏ5Å厉̟e¾F¾FÄ Ï2ç~|ŽÉÓ"â~ÍÇñð÷Kjݯùx®Gm¤†çyLœ˜àÂ?_è÷‘w­%-Nn eAm¿³á1@­&¢®,%ì–kºßGgJ)ÐZìdu!â¹–tº…¼ˆ `Ž';à ášYÃö2Ô¹Áð,3VÃÛ'"ÔL{¨95Ò•T>ÈÁ?à÷á”»GùòU)æNñ±ž iŠÔÊU9W®dÅi>ׯ#ð[G1à¸Ìw4žRè\-"í{±ü¶NSI¯w´%×7chÏÝÑdßeDßD̼1Cã´Ä®Õ¾qÝ® ;âÒ¦õyyRk¥êÅâ”Õ×W‘Ï¢;³(uÍJ58ÿ—ågïõðNx‡‚íV‹Ö×…H¯Ëü¾+ …žã‘åäÐMãT£ŠÀã8föíÙêÇ6N7¸¾¼DM))•XŠõˆôl˜ùpÃØ•ùZÝ,ŠßèÚÍžãaϵÞÄãfŒˆ…‹?»È%.Ñ8Ý –×°•]™Â´¾i¡µ&8 åògË\üÉÅ>ŸxczE¼GDµÖdnFš¦Ø¡Í¯nTBžÝÛžGëW×âüÚ–W—j= Ì©EcÔö×°÷ˆSžçIÃ`p0 <EÞ>ÉØ–]Œ²éê¼¶#¦<ý÷G4N5˜ÿ`¾º†LŒOP«Õ¸v²Á…»Ä5àF´ É®y¯ðm‡íj¿–¨7 v‘KÖ%±hu‰• ”¢õU‹¥å%t®É:ͯž¼Î»“ŒÕǘ81rþH1ßS.Ðɸ3vlŒÙ·g9óú®üÛ´Þ^ǺæMš_4aœÑp”à°8ÆÙ¶½ÇÆ;á‘vR‚ýXT7O®*¬_•.æ°üÇåJħ^“f7‰À!þ6æ9#à†'¤/]ëS_Þ,åþ8Ïý¨g0"nTÊHûÜ?žcâäJ)>úø#leKÝÖŸO‹VŸOº1Áþ¥DÄ•£¨ù«ÂáÌñй&8ày;;J·üÙ2ËŸ-¯®s[eµÂaÍuÜ*"ÞÉýDž #öK½Ì6dY†½ÇæúÜõJà †'a×…|½´öVyœÔúÞk+7 Wu•«¿êÖ€§ß˜†ÂŽÔq †'3oÎàŽH®”ªÒêkQJá:.™“‘¨„³–Ù_Ï®{ív²6BÛ±¸é•"^”Ê}?÷‰WbDÐ=\Øä' ÆÐ̑落nöÜFÄ Ó…iÇ0ÑúªÅÄøKËKâÇî‹øø¾/ÝìÅv´~ »ëº«"ÚÍ(àlÛÆß·»–³ËŸ-KJ½ˆÌu®+g=¿&+d«ˆÜêŽüé\³´¼„;â®;Fg0<)».ä½)òÞ·R;XjýaϽ¶ù­÷ºÍØ(²7ÿtsÖQø9ÔŠHjÌ'­HrÍÜ€5¿lâyá1‰ÄKóoÄ#Ó5d´ ú¥k-é5U{øo$ lKвl 3ôÛLoÆÀu\©™»‘¥<à¦2èº.ÙýL>gDܰƒl«¯'l[ù\ùñFŸœçzÔçÞ#ÖÏ&×b¥¤vј”í"K1Í`‹yãTƒà`Py­C¹õKæÎu.»ÊÉ£ýóÙ·g™ze ÝÑ•cÝFh­I: ÙwY5«½›h­«Æ;­5¶m“åRóÎòŒš[#^‰åý.þ½K³žÁ°S MjÝ`Ø-Þw>à&åh‘[<ÚJ¡´xdOëÁóRÄ•’Æ1e©JT”Sˆy.â^Š}?£ò莌s¥”šSÛð:]”7tG3ÿÁün¯¢õu‹ Ä«EöÌ'I‚r­ŽŒý¥i*.lÅy£(Úõ³žŒ =¼_¦Ó•Â.ì1Ua‹©sù¥k_8€1 ‘ym­ŠÄ•¥¤ÃÛ’ˆ<í¤Ø{l’û2ª¦µ¤Ã£a_ÄüÒ¿^¢ùUSn< w´ZíA1OWR’4!Žc–>_ÚícV$I‚?âËÍRDߊH§×qI;)ÉJBr/©ìq·ÃæÕ`Ø#äCÁ¹"¯)…WDà8.ª#xª5~á(E¦5±UØkewºëH'¸çy2›=âŠ°äšø®x®—Õ›u‹ï$~zñÆñ<ëÿuÉ—'WeTé/ÞÑd:£Ýn³üÇe.ÿËöÎŽ? Ë\Æó<‚ýA%ÞÑ·Þ^ØŠ¥æŸeè\“vR¢»&7ì,FÈ †‚‰\Òé^®q-®¥¸åÀJŒ›Cšk\ ­5ž…¤Ù×q‰nGh­;6†ëºÔj5¼}âNÇ1äA–Bi[bvröïÏ}}íJt¤}ÄçÒÏ/qþ'ç™zyŠt¯œM9 ]ìÞβŒÅOû*â% .0ùò$~Í'ÍSy_u\õ €¼¿ÑˆÅû|ZÃÓŽrƒ¡À·@•‘¸ëÁ@„\)HSy¼ávÊ}ÖR+÷•Oìúñ:þ_ŒH,dÎÙõ$‚<T×鎌Ne÷³ªñM)…¿ÏÇ÷}&ò âSñŽŠúÔkSÕ_ââO.21>ÁôëÓ±ü¥óž4{šË HÒIh·ÛFÄ »‚rÃSÏôëÓØŽM²’lÞ •ƒ]l™ÂqÁQ°ßK²åóʆT~YSl¥RyÿçÌã!Á¿æËâ YIUÇ´îèª&ÞÛˆUv‹'IÂÍÛ7=,æ%®ë21>ÁĸˆzëV‹øÛxÛºÅK·Þ®ú’÷ÿþªgô ÑHn6j»;?¾¥±Ë¹<ÇÒçK¼ô¿^bñÓE#à†]Źá©äìßžו¹éNFÚI †èŽìå^Õ]³ È¡nÁ¤…ˆ¹RàyÐIEØ-Uí…VEW»¶`&‡†£hæ0»Ë‚>ù¢¤xËÚ²mÙ,}¾ÄäéI²ï2²<“tzA’$$©ÔÆu®e´Ngh­«YçðHÈÄÉ ‚ÒÑ^Fêå¯Ö7­-‰Ux4¬ÀÖFõåfÿc–0 9û÷g7}®Rìã•ÁÛ©®sÍK“/ImßÚÜÔÆ`ØnŒž:.üô‚,àP Û¶«Ï— Hq;F9ªJÑN[0j)Â\ÒëYŽDßi ŽDàt2HMkÁXkÎ9.äš¶RLÐÊõﮯoØñ<þ½qFVx¦3¢ÛËŸ-3ýú4óÎ3õÊ‹Ÿ,Ò8Ù M¥–›¤ iš’$I5ã\vV‡GBt®iÝjU‘wxD¶u•ŽfîˆKÃoÐ8ÙXWÔã!®ëbÛvecêçr#eéŠìën6›\þÅe\×åLýŒœóTcý7"ïfÑXEYݹq=@†g#䆧ŠK?¿DãT£ª¹Ý«Ü­j™es×ôëÓœyý ÊQØS¯’sâ‹w"²èZ¢òû‰úJ–"Ëåóm­¹âºÕ>éZ®™tä—zŤÖÌžnÜKXþlù¡ç¯Dp-çÏÁ÷ýÊNUw4îˆ+MbŽ8œÙÊ&ú&bñ“®˜Î½;We‚ýÑ·‘ÜÔ7Y&xÚIÉòŒÖmí3ÓgÀ‚ëÿu½Šð{E½~¼ÎÄø¶o‹@û>þ•¨—Ýò¥“\ÙPW:Ê¥^ „‡Cñ'·àÚÿ½ÆÌßÌlø¾”å€Ö7ƒå_Rf6LDnèFÈ O ~zñïW«0«Úk8…¨.l=÷C–gdße\{ççÿá<™ÖØE„=©܉ÀI«_Ф ˆs­‰åŽf¼H³SÔÎ+QWŠæ‰ ’$!Ò4%¾ÓüâÁ(;<åFCõdò wÄ­¢èv»-‘¸–ݽ 8Â#!õulËæÚï®Aõuü¿ŠÈ{kã™Îh6›´nµ¸ðÓ ò$9œùë3Õ–®kÿu e)‰¢¿lV‚úñ:c'ƪô»;â¢îÊ ”çzÝUž€¢ë(Ò­Þj‰|¦3lËæ£ÿþˆñï?ð¾´Ûíj.{PkÏÊRÕûe"rÃnc„ÜðÔðÒÿz©ª‰»®»ºªˆDÛ+íîçЏ·Ûm²ï2´R,kÍ  žk<j%îÎ2÷<ÆZÓ²`IkΩøKŽ¢‘kÆË¹r¥¸üç« YÞ>¯j* ÃPD=Q¯¯†!¶cW]é(WŠ ]“¯Ù{l––—h: †Lœ˜àÚï®1ó¦D·­[-ù¿¼.‘{)â™–wômT=ÏüóU~éç—ª~æof ‡ë¿¿¾Êvt•¨?_—f»r ©¥P®¼{M–eÕ(™‡,H ,é¢×Z“ê”sÿtNÞÊŽ{äf#éˆ Ììofûâæ¶t®ñlÏD䆾0tBþ(ËN ÏžêD¼øH'69hGÃ}Ù­”bùËÜè¤Ì‚Þó—rÄ Òâ1Ñš&°¨5 =5ð‹Õšæ’R4:ºÚ_mï±+TŽbÔ Q?Ö¯våÄVW¹U$›vÒjUfö]waHp( q²QÕʧߘfi¹ë|ÖúºU5šmVs/¯ \Ÿ»ŽÎ5Ñ7bfréç—8óWgV½ž2R/ [zí`•#ý Õ‚‘\2 ¨BôÝÑܼ}“å?JÉáìßžÅÛëѶÚUƒ\¹¥íÚo® ¬ˆƒ©‘úËP ùzûƘÞúÿÞª|³U˜¥ƒY¦3¼½©“âïó¹ø³‹«®›èhf”bJk<%5qmA+‡–×27~±ì\ÿÉE§Å÷<©iÛ]Q/#õ(Šºû­Ë•žEkÛѺ–lÕòFúukâŽÂÛëÉŒxñw’vR”£hß•ŒHšÊMI¯ùK“/r#2qb‚¥Ï—²±m=LÜÐO†FÈ×í­®@5<ý„Gº¶¤[ÁV6)ieF2ýÆô¢qMk®Ô¼Ÿ€Þºn¯¨—‘íͯnâˆx{{%£P6‘wÇ´ôýb<ÕÕÍJëVKÒïEdÜ+ÂÛAï ÁÚHýÂO/`ï±¹Xܬ@WÄ\×­šò°ÀëÈëÓqhSJLS<Ï{àgν374^bjä†~2ðBn¢pÃVé­­nFÕ€Õ¹ï–pôŠúä‹“ƒîžpODÜß_Ì¿ïõªÅ&%I"«\<Ôˈy7ìT×FêeM½D)) ض­lÉ6ŒxÔFjDw"Üû.q;ƶ¥Vo+{U‰`˜15rC?ù‹~àa”Q7l•žm¾ßø>IšTÍ\›QŽ\¥­õ*³”Ýdá ÜhÞŠˆî;is·rióý¢yÌ)¾^ˆºmÙU ½ËÊŸ[Fìɽâ½Ï¥†žå™<êŒöJ»ª£—_×¹tÌ?-{ºMÜÐO^È¡ÛÔf"qÃfôÚŽ>ôÚâºx%Þò÷ìËŸ-wÅÙ¶±-‰dmǦ¶¿†RyÛ–-‘lY‹…UÑp¿)kï•YNGvrGQD|7&þ6&í¤ÒÀF±Ú³Ù|jÖ{š¹¡Ÿ |j½ÄDÞ†‡¡;š$Mª®éÍ®!‡ì¾D„ý¶üL: ¾òÉîK›$‰DàEÄš$IáB1ŸËuƒD’ÊëÐMLŒÎeÏyÛjW‘yv?«FûyµÝ˜¹¡Ÿ ¼ouܬ¼ÎDíÏ.''¤kðñW‹y¹‡{%¡¹Ý‘­Zóïõw¬IkÝ1KÓ*íyI"vªéJŠ½Ç¦Ýn³´¼T¬ óÌËF³Yj’$IÕuTy|7ÞöƼ~bjä†~2°B¾™0—ë£;«ôFíFПMJ1/­X=Ç«"¿¤“TK?¢;‹Ÿ.Dwôü{óÌüpFæ¬îBÖɈÛÅÞð4‹Öžíeë-!æßwoÄCil·Û(K±´¼Ä؉±jG÷ÌgXúôAc›aÄÔÈ ýd …ü¡éÏ='ë\S~Ÿénv™89ÁG mh.݉XZ¬åk¿¹¶JÌ“û‰8¢]ݺ#^ã‹/ÁÀZ••qËäË“Ò}ïÈÜ{p8àÚo®0óÙê5ïV×ýNbjä†~2pBþ0ÊTûŸÿLÀƒQy‰™1¶)ÍEÎþýY\Ç¥ùus•/ù Q [»Ý–HVK$Ûú¦Ex($é$4N5˜}{–³{–…:=]¾×å¢Ïõ¨?_§ùE“¥O—˜ùáŒÌ¿?µòa¬‘¯*ƒ¤Ék} ÃÃÀ ¹Á°ÝÌþz¶ßGØ2×~súóâ»®µÆs=‚ý­[-?‘t4Ð݇>4¿l2VC)EÕ˜ÒÄfòô$‹ÖâP§Ø‡©F~îÇçÄxhD²%îˆKº’21>AÇ\þÅå~Ñðˆ ÅøY/Qa?÷܆ѸÁ0Ì4¿h2÷Îóïͯò]‰à¤¨'Æ'*G»AçFó:×ø#>õçë•#ÝÒ§KU ú|ÊÇgXjäçþñA0þÂ8á‘àp ÆBaHx4¤qºÁ¥½Ôïc‘òõÆÌÖ~Eê ú˜´ºái ´_uGÄzvñ“E&OOViéa¡ùe³šËÍÇÒò''ä¦ääÄÐdz †Œoœæ—M––—d'|.å„AãÜÏ„xž‡ïûÔFj±Ó ü}>S ®üÛ•~×ð œCWÌ{;Ðe†Üˆ¸áiaU${¼þ€·ú0±´¼$kX›ñÆi}ݪ2 e­|X2 P¬n Äý5Ãýµý5Â0¬üç™7g‚€ðPXm¥óÜîb›`ÐýØq™Ÿàìßží÷± [d …D¼× úVÅ܈¸ái¡ùE³mÿ€4&)K±øÉbɆG‡CüZ·Z$1ì I£—†Ù·gQJ M¼wÿº?âã9^µ‹ÝsÅ™/80ùâd¿ ÈF:ÄÇÞkS«Õð\Z­&ö¿…G~¹è¦÷É—ã솇3°B^R zùçõ0¸ái&ºIzÝu †,|¼@ãTwÛØ0u}7›Mi s=‰ÊoµXøxðH84#hõçë]üB•Sˆ¡ãÊßUñè×üˆÌ×®ø-÷Äox­³ù:`Ã`1ðBF¨ Ï6 Xñsd;ZôM$µæ£!³oÏ2yzrhRÒ­¯[b=[Ì•ƒlUSJ1þÂ8ãß§qªAýùzßëÌ3oÎ0õÚÔŸ/·Ô•ÛöÊMužçaïµñöyÕ¢¥Te`Õ/¦_ŸÆóŠ3Yêá[-Yóëí}pŬa0Šñ3còbxÖ©Ò뾤ח>•F±Ö×-fßž!h~Þ”Œ‚’èÖÛÛåH÷·;â’¦)Ó âoã]K¹ŸýÛ³"Ìû<ÙmoÁX}Œì~Ft7bî9©ó«g]G"[wÄ­œ“ŽØê&÷p@¯hÆ¿7Îò—wå5¬eîÝ9FV]õ[Áu\¢ÜL C!ä%뙼q7< ,-/U¦*ã/Œ³üÙ2X²\©áj|kÝjQ¯×iÝnáû~eJÒ›Ê-gè3­ú¾äÜ?ž#<쪽꣇GIî'Œ®ŒÒúªUyø—éôò5ø|I§kŸè[Á8Ž« vý$¹' v¶Z†)=ñ ÃÁP 9<ØÁnDÜð,Ðü²É؉1Izâ¦,…½×®ÆÐʺ§îè_ÚºÝÂßWˆ¸ÕñÒKÞu]µ‘Z÷ûvHÌÏþýYÂ0dôð¨Ô’‹ –¼Ÿ®ë+Ù’§,UÍÛ{ìj<°6"Mdq;ƽ$òzŠïï'išÒn·eO'Ù¼žSmá3 C'ä`ÄÛðl’¬$x#Ù‚*2´•M¦3ÜÝѰOqù³þ¤r·‚¿ÏǯùUºbîíõȲ ¥i'­µÜ ¶ÝL¿1M½^w¤A­·1Œfþn†(Šðö‰o¼Î5KŸ,1ùò$¶²±÷ØØŽŒu%B ïu,h·Û̼9Ct7"¹—ìêÖ•_^aòÅI>\÷Å–½ÚHm]h¯´IWÒU6džÁf(…Ü`x™ÿ`žÆéµZMj´yO$ëH$kˆ¨{ûº¾æƒFx$ñ¶º5fo¯W}\ÚÏ&I7¢µ•]¥º·ÏÜrDËuÜöÙ7N6XÐ Õ6·V«Ex8¤Ýn£;šèNDöß™l¦[II: cõ1}­iœjeAÇ1Áá€øÛxÇo¶”ó[μö’̶ ¹úïWá8rƒ‘SEæÊ’›&­åµLŒOìè¹ Û‹rƒaH˜|q²òÇ®ÒÑy7]Šy™j/SÀƒ™—"^Žny{¥ ÜßïWgOÓ¥ñ=IgëT¯J±o'¾ïwGÇŠnó®)¢ôr nãdƒàp€R"þe:>MSÙw¿EQ×}ø© IDAT//jî9ø|ù™Ç`4%^‰‰¿·7J·¦qWIº"¹'Ÿòs¬¢^ÞsóT®Ì8iD|Ø0Bn0 õçë«D¼Œdí½²ê´ìöFQE° £RÁ¡`°¶¤YEçúééJZ¥Ù]×ÅßçW»äAš®tGnN2+Û‘,ƒëºU´¿Ùìô™×Îpþ'çÅã> U[ïMIr?§7×¥ùy“k¿¹ÆäË“„‡B¼}^µ% 8\8Á iݺ´Ðúâæ¶¦P–‡ÎÝâ1CY):!Ÿë,JM¢óI”ZƒçÁùÿs™‹?é>÷ôëÓLŒOˆwÿï®1ÿÞü“½‘†¾±kB¾Ö•íauîͺÑ{¿¶ÕëõûM7¼að§,EMÕª´(÷A¹ªê:N­´ïVk)w®k­+ÁSJ­ê`ªú¸r¤+ß¶l‚Þ^8Þþ‘4Ûé6®eòåIFÒ8Ù?$¾äe$=½ E£ž½Çƶäïlö׳,°@ýù:cÇÆÄÙ®¨¡Û¶ÔØ•šBçàºSh½4ÑzÍæ>k¥BÈ]”ò W¸ŽBç)ÊJ C©I ^DÝ èθø“k«žjîÝ9³ºô)aW„|=Q|¡Üê÷™q5ÃÓª†0KšÅ<׫>ïåÒ-M.Maåܹë¸$–4_•žæý°A „è\W™‰ñ ”¥hßmãïó+Q+ܪÔ/ÝÇLgŒÕÇHî'i@p8 IÒ•ô‰^SëvKž7Mä¦b1w]—àpPEâJ‰k¯˜»¹ˆxÙYÞmÒk~Ѭ2 S £aõúuŽDÐyˆR!:o£œ)È—›èÜFY!ä!X^ÑH§Ðšâc¬€´³€ëÔEÄ-HWž{ì÷Æ0ì¸o$œkE¶üózÂ[^¿ö9{=ØŸä¦Àˆ½aÐ)»¨•¥ÄElD¼²Ë¨qr‚Ñã«Ìb¼oÝÆ8åHƒ5yîà`ÀÔkS¤®?Ydñ“ÅbÎyÊ«JQW5Èk`5Ðy e-ÊòѹB)¯¸N ‚™Dæj­/£Ô4iºõeS1ýú4¶cS‘ÌO²’˜H~À¨ùf‚ºž¸®'Âk齯´aX±­¢cÛ¢J¯{{¥ÛZçÒ´”Ü—.ïì»L®Óò}Y–q}î::×ÌüÍ Y–1ÿÞü®Dèá‘°ãé7¦«Ç4Mñk>:×$÷’î,¼SD´ZÝȾ˪ï„Õš½GÇÊÈ88Qˆt‚²\‰Àso[AÖ)¢ñ(«Óç•îû"Þ¥_ÁF>å éNov[+âåžò&ªV«ÉMK“Î$À3'æ»–Z˜pnÔè¶ÑèÚVžw³zøãœÑ`xzE¼\TQ‰#"‘å’^/)––™ö›é×§¹ú««UýÜó 1íôÌ]Ó3oÝÉh6›´nµ¸üµD‚Ó ÆŸïŠzQ^/R/ÓÕ×þïµUó轆-U£W¨¹Ê­FÞÒNZuwgßeL¾<‰?âË(œesí7«Iv’"õÖ­–Ì€;ÝÁ²‘PY /—òÇòòr• ÉòŒ¥O—ä†ÄîÖ­ët®k­‰ïÆÛhy£uVa§ªívñ³:}é $âßO°Ö¶×Ãÿ!‡Þ‰$‚U"Þ»5¯ü7ª;Rî˜|qÒ¹Á`Ø^zE¼Ü݈$’¶-›$í¦)uGså—WˆãÕË5zâÊ߬“EцõäÅ«¸qº!gÚB¤Þûüý="Þ3ªU¦ß=OìG]Ššùˆ¤Ÿýš_½Îk¿Û=_K)êã/Œ¯Jñ—"îï÷«²îtÓæ¶es£yƒ‰ñ Z·Z\÷º4yùÀŠ˜ñTte§{ѯ0vbl[ήõU”^5r–t\²»ED^DèZ§(+&Mÿç&÷“jê¡·wbóåOpÓ°¼)‡ÔjµJÄ{ð \P+òwVù<#!7v™΀E%⬎,þì:.i.‘l¹ý«¬Uΰ±öãs< ê[ˆÔ=Ï«šÃJïM¿’ÓÍ |š¦(G±´¼$ÍvŒå-eC 7!ßeÔTMìnk²S\w4Éý„Æ©7oߤ1Ò„~gÞ8Sm;+#Ó22Ô¹Þö bºó#”óZ‡`¹"MU•N‡„4}¢Ÿ·ãjù‹vuÕà·þ™ôŽ×È«òÝtþFéþÒÔgúégJÈÿ¢ß0žfÂÃ!Þ^ñIßhÿ3 µÈ¢ ×u\ì=¶D"Žl‹/rù—¹ø³‹,~ºHv?«ˆø|ÆŽñêÔ««j’¥ˆû5™ÕŸ•£ªH½÷—î ˆ8È8\ÙWÕÌ¡º!©Òì‘tzy“T¯cîÝ9^š|‰‰ñ ®ÿþ:QÑn·™ož±c;¶Tw~V ˆQV„Σê"tçÉDdœ+YIĬ'Mª´(Þ“à@À¹<÷Ä?w#ÊeAÞ^oUcâ†×»n7[ôŒ`"rƒa uÍF¶ô[qÍÃ"`³HÝsŠL%ÎqÁH éh߯šöˆ¥=J¢ês¶eWÝùƒDÚIñ´¤l³ûڕȺm·«ôx|/îÎå#¯m=®þûUÙó½KèÎäPÎûè|ªØr¶}f>?ú‡qå—W˜8ѽ!©D4§Ú[î×Äóÿüÿ9rÔuçoDïHeÙ[²)ÖÃkûO&"7v×q·.âP9‹A‘ÆÞBr'x RÏ3y-…×{¹¸Å‘ˆÜuÝjC[oD¬2ž’$Yµ˜%Žc’4!Š"¢(¢u»%ÑèJ·‘°Šâ‰<îÚ¸:ÛÀ>çÿé<7š7HӔ蛈¸݉h}Ó¢ùu“ùæ«yú+¿¼"]ã/NnëfÞœ‘žƒIßot3µŠ¼»aïYÁDäÃÒºÕÂÛ÷i>«ûË*]IâÒâÇ‹L½2EªRjªö€iKÕ-ŸeU´&ãOš,Ïh¯´ûvö(çÖÇŽUµüèÛHV¤ZE$že•3^¦³M{úGÜõZ× Ô4ZoŸ9ËþáGÕŸ¯üò çÿéüêŸ~/æìÿ>[õÔ×QJ=ñ{ 93}†ñïsõWWI;i7s’¦Ôjµ ¿7^‰Iîïülû a"rƒa)nÕœ£ìÖZ“tq â{±ü²îqKîËùâvLºR˜Ð”SÙ_DsƒHó‹&7¾ºÑmP+<Ù“$!¹—TŸ#\P©‘ËÍž²Ý v«¬q=ëgÞùòd×s½#_Ë:Ùà¯ëÌçÐú7>¿±yçz1¾•¤I•νùÕÍ]?ëf̽3ÇÌ›3(KU#GeZZw4Q¡s‰Ê[-±6-— : .pöoÏâûb4ÝŽ_ÄK¬×ÅùMï\Dþ0æÞ“Õ§‡d1O­VCçZVÀÓ@wñ¯ DßFø¾ôZÔj5™ø.«š$«©¤‡¤qº!¾{=%7•å–¼í1ß>Œ »À؉1n|~ànôrKY¼W‚xý½ëÌ¿7Ñx/×~wM6·¹žìW }OÓúº…¿ß—/%p xp“Û S6n bsÞ¦äQ!â ¬ú“xº=1óïÍ3ùâ$õãuæ?œ¯V¿–Ž€«¶ËåZL\Ep0¨ödY|ôßU[ûJfßžeöígs1Êf!7v‰RÌ•£HÒ¤ŠL +æÑ·ïðþ@ŠxÉÜ;sL¿1]¥¡•RDQT¥UKúóõ'^†²›”N{½à00qržÆÉ´J1_ÿ}¸­{å•…?,Eþ¿Úò×»]ÎUî*o~Ïõº"^””ž%3—í`è„|íò•ã“nÊúÝÿ,þ¤-ÈîË/¯3}¦Ï§Û:½Í_á‘Ö­ATbî¹ÞЙrT ‰}ù{\’{IÅÚ{ì®~)îJÏýr³×T(»Ÿ‰7?)ív›ÚHË¿Øþ9ôg¡ò‡mAÛÊ–4ƒaPø~ãûý>¶QnN‹ã¸J¯—5Òúñzµ´dЩÐ’%6ÃBóË&ãøüÊ;ŸÏú}*ºûËKoþb…lù>—&<iž†BÈ·²v´üºtƒ¡?4¿lð\³ÿû,:×,~²84B^Žþ ]H: ~.zžÓÿLH¯)Pé½_–\<Ç[µµ/‹3”RL¿>=< †ÆÀ ù£îït#æÃîÝŽ¸ø»‹Õ*Ì`ÀÔkSxŽG–g; kjäC–^/Wx’CmÿÆf)»Eö]FàH}¹;@9 ÏñªÉ€Êîu¯&Ö±¬ô5<-äFŒ †á¢ùe“èvÄû¾­ìj“šëÊjÓ ?½ ›µ´ÞÕ½äcê•)ÎþÝYñÆæ?˜ªè0í¤d™Œl „·}^d ”/žûåÍQ¹íÏuÅÃÞê®AÍ:× VÈŸTÄÿýÉÜ }àýßgôð¨Ì;v×o*OÒ„ ÿ|a ê¢«r YD¾j•¨Eß'ÒNŠŸûUwúGÿýAð’û‰J*ûÛR¼µÖCuã4h‹VƒÁ°mL¿!î^áÑà`@p ÀÛçáíó°÷Úø|jûk„GB‚ àÜwnýå#±¦Á­Œ‡ÝÑÕ–°,“šsýù:õãõ¾œ§õu«2iYøx¡ª™/~²H|7¦ÝnÝÄ ð^²e cÃú dD¾•H:8()°èÎÆ>Î&7vé7¦=‡ïËMÇâ'‹Ô×Yøp±c²Æ´ˆ*Åó~-áÑå¨ÊA­,T;âÉ4–ûn/°‰ïÅøû|ivÔÞˆGËž²k݈ø“3”B”¦0þ3›Gåƒawðˆ úû|—Õ.ö²N®µ†jÔH‹Í]ͯv¿ž{áŸ/ˆ‰MÑàVØXàu<‚ÉýDlg-.2/#ñòýöÙ¯,yŸË›'…DÄ캗vÄYža+[ŒƒöàHÃ[óË&—~~‰øžØG·Çc(…|«˜f7ƒaw˜zeJÆŒl»ŠÄ{E¼—Êk>­¤6êûÿ{w"Çuà üß—Z8-¨‚tƒ*!ƒ[Ä1ìû!#ð_ð"Ã…{Ç$ »Öæ!Öîî}/då]¸ŽX°%ö!¬1žÀ5ÃÍ}ðb߇K¼àyÈ¢6x¡¡‰c$λ>»·^­_Ùuh½«Ã\3ƒš¸¿ûì§¡6}ô1¦kVÞjÅìÈi€ª†¡Wq‰1säM5ëÈjG}ó}™¸蚺cÁ:oaÿ“}Üøñ žpó/nª/v3-97~|££Q#[Aš¨‘A>¯p`3À‰ëÎ?ÞÁöËÛÓšaFWõ^šÀèh´àNõz½`Ìo½?G|0Á‡kBާóšÂ4Mèš”ÓoÙ0×Ìà2‡mÛÐ5RJH¡j¾›ÏoÂþÚ^èйƒ'ÁØê~ou뜅~¿Ûÿ󶺶ßëã•ë¯`pQ­ëwô¿„ØcO¯?ápÈq)äóèÂ&u¢jÂ4M8Žƒ^7}˜P)%&îöc£¯ª róŒy²å å€ÿÓX«V±Yr,5¨ká^7]¨`÷/j!ðX­·ñ§pƒ§Á}ÜÎØ)uêSö3]S}üùÆýý5âÖyîÖyKmã)Ñuô&=ÀØ»=IcƒàèlDm2ürËòj­3ÃqÆñïsö·­’?ö·€I Ã€íØ™/Taý™uL¾™`âN‚Ùæt¨šoOS_¢„&0ùæä0¨þp©úŸè*ì]5€ÌáÑ!ÖŸZÇáÑ!&'øìÿeï7ø¶ Z¿%F?£c2™À¶m ¿âòw/­ÐÓ0ñÊóBÜkn7 ¦ižØíÜ4Ml½°€a§ÑAäs^'ªÇ­Ÿß§Ÿ| {lCŒE0 L$°ÒU#’U9<çp8Äú3ëÓm Ô±ÃÃ×,›õgÖ±ù½M˜gLüî÷¿ :ŽùÞ®@ •j;¶ºC`,Õ-ïKV06»®Ã²,L&\\Âèë‘úy8‚ý؆säÄ&3xr jØgUÿðŸ^¯Çq`š&¾8ø–e½é¥+UçH¯s›â'ÆðƒÝ‚…­¶ä1ä2uXc€Õïòs—ñégŸ¿G†¹«BQŽ%ì¯m\Û¾Va Õõü­¶€³Þ-fÝ”š¶‚³Ï«.ºÍïmªIH4À9r`fÐ×À9r 4¡B×tØc5¨?û­¿¾Øza ƒ'ÐM=˜5ÍŸØÄ¯©[OX˜<žÍðr,1úzŒá>øöF×€yÖ úø³ÞIWÂì=P_ž¤ :Ek†ºcÀTÛ›kfÐôpÙUn¡Y}š¤Aœžoÿ·Ïa]´pxt„(0½,Ô$ýùÿÿüÄLi[/nÐNÌÏ®©žòæYpÕkéßêæYóÏ'0m÷¿ÔAv~¼ƒÁ`0½fŽéýðI}ü~ ƒ'EOáRk]Q;\Ù¼Rw]ûÁ5|ð›©îu]5"šte0ÖúåzCüM!0ñC'C|ó¹M˜¦‰Íç7ƒÇ­‹6ŸÛ,<ÜéÞ‡{ÁÿןY‡eY*@¿APS÷“CÓ4ùû!®ëzPkÔãWŸ¿ŠÑáèDxgéH¨kºj! SäD´²®ý@]Ÿø/¡ŸÑƒ¥m«bW¾_ï—‘ÛBàõ®À[¡šxøZ¹ÿ8 ÆS¿÷ïåt ×Ö7ŸßÄàÉÐìvþýö^`û뚎=@ï\oþ.`¬øÝƯe g¿CÆ '¢•Ww`GñCRâ¿¿Žw <)Ämÿã}ì¼g7‚{Õ¥+aÞÁHyÞ˜ïW_¼Š>BðÏ¿úg˜†©ú)˜&ì±|‡ƒÇvìÆ·òÔå¿Ô]"":é—~ˆ»„˜†ø³Ø|¾žŸåwb¦ƒêcÕ{·“õûjö»Íç7qé‰KèŸSæîÿú>FG#5 ÐÄ»^&/¥ î…§ÓX#'"ªÉ¶®„© À•°5Ënx5qh#âohÀ­?àíï_­5ĬŽã@ïêÁ}ì':Ø™P_B0íp'Ç÷¥Æ Ø}pÕ„/þµéJôz§G”Rbô# ÿÈéªãÔäá[ÉÒz¤' 3»,m½8ìODUØÖ€Ð]ÀÂt!`»€£7Ço Ý«‰¿)Þðjè³Íìu9øÃ¬oY'ÂZ×½1Ý¥Äh4R5í± F Ûýí. ×^Týz½ƒYÜ5¼ìd<ÁÁpõ¿Öw—CÓÕäQa;Ïp¬Y·+ðDDeÙÒK軀å]; »@O¤ H xs¬Âú¶x]ÌÔÐkqßÞG{Ø~y&L5ìc/¬g… Œ¾VÍèöØ>µÝ÷w±ûþ.Þø«7Ô=òg¦½àåX})¨ûÖ¿6¨%Èã;<kx:ÒÙíýõÃû,29Çs'¢*ø5ñ¾ 4@‡ª‘cføRÇ•¸,Þp1½VÞ ÷í¾¿‹ë?¼Œ^‡5wºÜ6vt4 šÕ£¼õ·oá-pò¢<*Ä“šÐ‹ŒÍÎ'¢*˜ÚLˆ{b/»™ËIDATÍê¦ëusU[ú¿K‰ËW»ÿëûj [¯&î϶æwP›ÈIbˆÓü䋜[œ!NDU2 šÓu=!‚Ÿ~ït¿æíx5s¸o¸ÙÐ÷í¾¿ Ø~yO¯?\ë±–]…Æù¢0ĉ¨j& EÑÝ•04/¼½Y¿ O`Hïþl–»»æqOΪFÕXÉûÈâDTµm!`0ýaI5¡æY3Ãz=õsÍ„@Ï»OÛhÐ<èiüÞëV¸šX½Z‚|¶SÚ¬,;oïr†8Õa×ôDÎ\Ð`šêßÙ¾z¬«®„ @O,¥I¤«yñç;§jÔö)*̳l–¹Éb÷’3à‰h‘F@0¬©?2¼‘Ѱf¨ŽmÒ)1iQÍ6oÖ4ªD­o‘´àŒëèwëZ–ý2¬‰¨.‡lï¹t%„ `ì]x#¸Á›°EJ © Ü7»£Û ®ÁM7Õ,iëßYÇçÿöyúv4—•¼FNDT‡{RBj€ ý1ÆåD…ø×#à«¡ª•;¶ZîJÜkQg·c¦§Ì1NåiQ£ Qû]K|Œ¥Ž!%àx¡'%C)ñt‹®ª•Á;0Ïš˜L&0M³î"­Öȉˆ*vm,1##MàУüpì``è¶/Ä5;€à¹è²F^Öȉˆjp5äEâaW@÷:¶]iøà/i&ãi‡·½nØ­µ<«€ANDT³+ãöÕ¾ãì}ô ö>Úò~;¨µ,«‚MëDDT)U‹‚t¡Y5—f50ȉˆ¨<ÚD…¸^#¯ƒœˆˆJ#¥¡©NùT 9•F•àBSÍë´x r""*”6é]#¯»4«ANDD¥š„tˆ`(ùz ´äDDT !®Cº6€‰šÿÅ} Ò5 Ä @»^wñ–ÖR6|ÌÎnÆIRˆˆOˆëú¢¸{€fî@ÕÌ]BHHiºtZäyBš!NDTÌÖ‹[0ºt¡Ã0 H)am8Žƒ½÷N¬«jâ}u߸Û4phº÷³¸ÑW½Ùæ¥jMû~|<}¬Ó‰Ÿ—ÜŸ·œaND”Ïõ^‡uÑ‚®ë0º„л:ì#ÎØuÞÂwT ± U·ÔO­é !¼ŸÞ”­Â€tu±É0/Y+‚ü‚uáD€ûüÇ: ™ç#'"¢xÛ/oÃ:o¡ßïÃ:gӑꢣ×ëAJ‰ÁÅàÎ;wTXk}¯&慶&‚ÞëÒ•êw æcyYäáïtµrõ{8ÌÖʉˆòðkâÖ·,Xç-ègTPaîÏ7îŒl~op«q ï¹úþoA˜;^ ={™¶_ÚŽï7ó;c9Áý_Ý/óé·Vãƒ<,\3ª©Q~¦aªšøy¯YÝPÍêfw:¯¸”·þúv?„WãîCÓ«iÒ q¢‹™íà ñl3¼m¿´ Ñè÷úª¦ ¡ ˆ®€säàÒß\Âh4Â\íÚ}£ƒ<®I=J\­œˆˆ²]þZú½µžª¯šÒâÖÏoaðíÄǦWã–^ \…½ðn 7»^m\àR“1é];ïÞ\Іr¸÷N”Åq¿™¿ßë!8ȱÄàÉ !¸f¿ŠäQâšÖ‰ˆ¨¸­·TW¨ŽjРB\œœøäÒS—`t ¼íÐ)÷ ĺW#×½ŸjÝ È` L4@ºj2•¯™Ý#À½h‡xýÏ¿€säÀÛ°ÎYèŸU×êEWÀ<3ý² ] ˜*Ì·žß\¬lͼÑÂ<>B§sò1Uóžþ›vxc'7"¢¢ö>ÜS!ÞšjN‡8 ®£CüáÕÈmÀy¡©öktÏs–Žmámˆˆ¨<Ö¹é¬hF×€yÖûÜïˆÖU×Ю깾±±1W­|6Ì¥+Ñs{ÐÇzÐOŽU Àp8\ÙÚ8Ðà ÷ƒÛÿ™ΜƔˆhq¶_Þ†išª&n0MS…¹65túí¿¿›q³ðqw»úÃyýŒt~³m{¥Üר c8Õ'¾Õ¤ev¤5¯¹[@Ý÷ô? È'ËëIÎÐŽÖš '"¢úø¡mžQÍéáhêv1cÍÀÄÀ4Ws–*µbd7""ªßl3:€Ä^äBèB¯¤\«ŽANDD©äXz³©ð6ºÑ#¾ÍBdZæÃ '"¢T÷þéldžýX Ëše5¡ 8ãÕ6µJ¥ùë©y¶-s½¬ÛÍ>že"¢U4úZÝ«-¥ª§qÆN¦õh> ©‘?>:ñ¯)!UN¬BD”Í[ûÇt%ì±ÞŠ ÷<.°Ó–7ÅðËaÝE "¢Úÿx?vYãƒ<Ë£³S›ÎþÞ4I/Qò¼ó„‡ç*o’¸&""¢y46ÈãÂxö:yÓÂ:Ži˜øà7Ô] ""ªÈúw׃ÿ﾿[Ú~oþìæ©ÇäQ!îøññô±N'º)ýÑðQãjå×~p­î"QŽOõ‰Š à"ûmM‡]°.œpŸÿX§Ó¬ÐŽ3y<©»DD´@{íÅ.»ûîÝÂûu'vYã‚<\“Ž ñYÇǧü©Á.º¢î"¤êt:8N;éìƒÊ3ÛGcöu)ò:ñµ]^|mç#Ç2u"·"w:ÜþÅíØå ò$N¸i©!Où•ñ‡Ìƒf‰{=мN|m—_Ûjä¹9ËÝNÙ-\¿ÇÂËâŒ!""ZVòy49Ô;ΩM·È2¶í\Ä)Zö2¶KÚGUçtÑljÛ–Ç£þ梶KZž÷øDUit?>ÂìßHøï%¼,<0L“ÃüøøøÄ¿¦,ªÉÍ¿&צsÑMk]dyü÷É<ïðû,\^¾©NóäUã‚Ü¿u,ŠêÔ6ýõ¹1ÛY.i_MæxÄÕ(¢ÖŸgY–Ç£jY¶O«)F}øG}À&•)©fše¬ÇÈs‹ÈR ÌS /R®2Îuxý¼ï˼¢7o§­,ïÅ2ŽCeÞÊgã‚<,\+?>žþóÍÖÆ£î)o£ÙˆpM!ü9ï²,Ç•¯èöyÏCÜ>gkjqµ¶´u²cžçšeyYç­è¾Ê8×YÊ‘vœ¸ýÑaJÔfáð.æ òpMÚóð߯ÿXÔà1Mððµ¸ð·ú¢ßòËì…œ´¯,Ç©¢¦®1Y'­œe<×2ŽQDžýæ)cS^ÿÙcͶD;ü7—¤Ì¢8q¡7Ì{ûYxt6ÿ§?šÛìcmTÕ‡\ÜÑì_\óá*5ò[iêyÈR.ÿ½[Æ­v³­aqÇ`³:5Ecƒˆj5)¼›>ûY²ÔªÃHq/«ðólj˜-ZÏCRízÞ›´ÜÊʪF9p²™½íó‘W!é.êº{ží‹”%I\­¦Òe]×.ûMã6ˆz/¦µfµí=JË«ñAœ¾­,nù² wðIêI[dY™Mëáí³†yø±,Ï¡,QÇÈòA繦í/ëë‘§‰9Ï6Që.*°ªxM‹ˆ{þDM׊ ÷-K`éøT´ãY‘eiÇO똗÷ƒ¹hG°¸2åýÒïyžë¼¯CYÏ3O¹ÒÊU¶2ÏoÞò”ýxÚze\o' Ë2ìj­ rj>696WRí’¯Q5ÑÊà §R5µÙ”øZÕíÒS—ðégŸÚöÓOâ·cSéDDÕiä€0DDD” ƒ¼E¯‘„‡¹œw”.îÜfy<<’XÜHaIËóŸˆVO%MëQ·eížu¸Õ¢Ã²& …×´^òl²®V#xe¹7|î£'¢úTv¼©ã¡§ 2³HQ÷ G J‘4ˆKÚøÒ³ë„•µLiûß³WÞ¤7¢Ö›§,QËÊ7€HžcÆ­uù<Ç!¢åÖ˜ÎnáIRf› ýyÖËS–EÉÈ2ÊZi5ÆÏõç¬Ûæ=Æ2‡xÜué(qÍÔ‹¦î³Š eˆˆÊRKÓzÔô¤YD5™'£è~«°¨Ù®æ‘5¨²6#g]–çØy¶kzðÆud˺.°"÷‘'~]5qÿƒ9ªæõxš´˜Ýg–uãÊ”§¼Y—åy®YË’¥3[=DD¾Ftv›sÜÿ}V¸S[x»p'·´ý…U==êloè¤åEþŸ¶¿´õ‹\ëͺ,k9ÒÖ+Z–y÷QÖãië•q½ˆš«•³ŸEbø±¸ÐL[Ïÿ=ëþ²”ˆˆhQòô\¿÷Þ½ÔuQ#'""ZYÂ99•ŠÍ¿DDÉX#'""j1ÖÈ—@Ù÷)/{oçEÜb¶ì猈š‹5r""¢c|Ed9,j(Õðà!Ef.KÚ.ëìdy¼É³,Ëæ)Ñ"±FN©3Ž•1sY³“•-k¹ò”¹è,mDDec|I”9KXž¶òì'mýyÖÉ;’[ÞeE÷ID´h¬‘/‰>Î\®ëþË–§É%<”oc£¦Úÿx;¯íàÞ{÷ò=LM5ÏçmÙîæÑš^ëYC5Oø®Âµy""Zn•5­ÏÖÊ“j»I×Íã–ÍÖìç 纯ٗñˆˆ¨|Mþ|nÜ5ò¤€7}Gm7O“x/PÝ_"ˆˆ(]ï´ª´i=­6–5ܲ¬—7(« V†8Q{4í3»Q5òpç·ÙÀZæ)ˆkZ?žtò“޽HM{CQº&ÕÌäá'š÷÷¬ëÆm·NÔúu¼(i_0ˆˆ¨yšâ@‹z­/³&½!ˆˆ(YÓ>³ä Ñ´7ÖÄÏêF]#_uM|ƒQ³?ŸY#'""j1ÖÈk0ÏP~uH”æÞ{÷2ý$jƒ¶|Þ2È+ÖétjÙ–ˆˆ²kÓçmj·åI8ŽSxfœy¶%"¢ìÚöy›ämúFÒtÇÇÇuˆˆ–Pbß}÷nUåXz¼6HDD‹ä¯þèÕªÊADDD Ž#s9õy“ï#""ZIýÕx9Q‹1ȉˆˆZl¡A>;«W–ÿÝ·ÿ»ÿ/jݸe‹Ò¦ÍÊ(kY¯cÛÕù|òì'ë1æÝGÜ:eüf=î¢ÿüý·é,• ³ÈkíáyagOZ¶¨²P½ÚÒ¯£Šrf}¿/º,U½&þ´Àmy•!S<ªöþ¸Æþ†÷3êXi5ë<²þAG•+îy'­óhø(ñ˜³Ï!Ëy,bÞ–‰¼­qϧŒ×1­ÌQËæm­©ªvWθc—QΤó´ßyÏaÖ×$íï ŽÖ5¢¦+¥FUŽûfœô9kÍzžæØ´õËWÖ,ëd9~܇T\KBÖç‘tβ´LiÝŸƒ²^Ç´2g9_e<Ÿ*yo¤•3í¹ç)O™ç°èëšõ=ÌZ9­šR®‘WýSäxYþ°g—Ç­›e,â>€Šn;ÏzEÍ»ÿº·/º¿ÙZá"j‡ó¼7æ9FÇ+£œYþöˆhªq“¦,¢Él•¾‡[ fåiΞW“š>«Úeה׳)å j’ÆyÙ’«⾸¦È*kòM:ç‹xO-úMÓ„çÕ´NDšÖ«üãIêàÔviŽÊÜï¢Ö›wó>ß"Û—ñ|ükÀ³ÿÊTÅû{žc”q‰¨<™jäQ»²ÊÚá%jßáÚd\’¶ó>NRÙ%í<&5‹ÏJ*wÜ>ÒÎQ–õ²œçÙŽNiûH{/¥/Ëù*ãùÌ+îýWβþÆÊ:FÙç0ë{1K9²<÷Ul•£Õ҇ǖeáøøÃbÿã}¼ú“Wq÷Ý»xõG¯ò`²öR§|–á\–ù%¢íç"¯U|δüö?ÞÇÎk;èt:§òº”^ë” ›)ßDTTã:»-³¢MŠ”][kc‹zo¬Ú=Õ«ô\‰| òŠñÙÅjóy\TÙÛ|NòZ¥çJä;äQó&ÍJDDDÕ›Íæ È;Ω«)eÎë ×:µÏ´iý¯ÖX """ÊÃø¿wàüëîÉkäâËÏë*p2ȇŸÖU"""*€×ȉˆˆZì?{IÙÙcIEND®B`‚ghemical-3.0.0/docs/user-docs/images/aa_builder_note.png0000644000175000017500000004767111563552731020156 00000000000000‰PNG  IHDR ³ G/¸bKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ ;Üþÿ IDATxœí}o¨e×ußyì9w\'W&­õLMæ–B}¥é“ &ùPË„6N?É  BaƦÄùÐDj(X„Ȥ¤ö‡´RŒÔ”€ÅŒH>hD"fLÀµÍ m<Ï´%÷ƒßKêjnêdî™hìé‡;çιûîõísî{s~ 4ïž½×Z{ïµ×^{­}ö95›ÍîÁ€ À ª*¨ëºo1ÌèKþãÞomœ˜L&P­ ¾Ýê³ÕòÿÕòÿówæ}Š3 c ãß/†þ_öÁqmÿc~ êº^þ·ö|€ÕÙ Æã1ÔuÝ»þ¥~ÁéÕ¿~é*l‹zÕÉÿ<\Æ¿_ ý¿lûqmÿQß p£†íǵyð«Ÿh9 Pìu+Í€ 0`ëQÍ®Ãé[ 0`ÀñÀà4 0`À€XTg«õôÄÀúÜnß" Š!­hÇ`œ4”´Uõ: ÕÁT³ë}‹1`@(êÉù¾E8–ìÁ€“ˆRö`þÎüás;`À€ìÁ€ru:R`´†p䀇m§ÛÉ7ÿÎýž+ߦ%ý;•£Ý–…’—“‹³)ƒ=ð0 ™¹ù­Y{OÍf³{“Éà—®vv ›P#¼Åi‘N¤é l1ÇRÔßÔÜÓÔ÷ðÖ80èb°N$ö …dÍ­f×aþµ×t‘ëξ,ü†p䀓Ín9zžb»ÿ.e°ÒìÁ€“Ìä~í\<1!5ùØ!9`@ <‹¿ÆÉ(‰Á  ‡ÊiØÆRx>6‡!9à¤á8^îÄQè ƒ=pÒ MO‹ƒMˆÄ{²©“û £3„#œDœäÝrI‡b°N"rö w Ùr²·ôDDn…2&T'œd;`@š9ZâvûïÑÏ|iãïÜÇ(¹{0àa@n³Žmà)ôòöDŸ‘N†y[ ƒ=pÒPʘޞ8 ‘N"†Ý² ƒ=pQÒþǽýƒüýâ¸ËoÄèì·}‹qâúÿâg/nü¶rîÝ»¯üæ+pñg—/|æBG¢-1ŸÏ`<wÊw[0ŸÏ¡:SA5:9J§Á0þÇ»ýƒüýÂ"½¨Õö¦^,w¢õZÍ/‚c'#øGâ¸ëO3®Íxœ:u 6}ƒµHÃþ7ö7””3‹¦óÛXÔ U#´Néç]`QÂh¾“VXþ­hÿ}ÖñoP¢ý]aQ/޵ü'³ÿså¢ä•ðÛ6þ¥pôàê›W×þnûkoO”zQ/Öþ/-Ÿ‚“­ôs+4íÕy‡À.¿´ß·¢ý„ ÃøS8.òcrù©2ÇA~QòZõÛËãçg½‡Aÿ¥P½r™2Ö,Ve¦xpü½Ï¹ò%ÚÏñ´ò·Ö§Êo{ûÛøçèyÇŸ*¿íãÇ•–?Wæ8ÉÏñ+QŸ’¯$Ëâ<è \÷4Dwdî÷†õ,úyéݹfð=íçpÒÛ\Æ_Âc§­…Æ7ù­ôõm»}ñ·ôF§&ýÏAå4Dyq/±Ëðti/6¥cÝiiPrôöoóøKèo»ü‹êP,÷¼¯þ·òNŸocÿs‹Á¨…ïÒKò§~˜_ƒþãXs<á$ËB@Á›ƒì©G)^Äï+[Wm)•;ÃÚ/MXÚÏMÔ.!m¯´L D;rmºÔyœ.ÐîÿEÍ:ë}ötÔ@K¯DÔ¢géxZ"RºÛ¤ÿí¿KÀ|2NÒ€óŒ$¡#¡Þào\p$³ªü}e“ÖcwÂvuÕ~©‡mQò¦ï¶qü½Þ|ŽŸÔ“ðÕ†C­;”^ÁþŠÊiøJÚÓeÿ[móʉϴ§TŸª'i·t<ý÷Òà NOäuNÀvÇx["4Ÿz†˜äͳY=>4DÅí(ˆç}´ß Í¤Þæñ—B›6ZT‡.Ù$áÐ5Œý¯µmkÿKr¼ßÕsåN³ëþ—ÚâÕBœivCäáý…‡Aÿ1ÇÄ3Ž §Á³ÌÕ·*ƒd·…-8œc’{NE<,Þ¢w·()» í§dÓiIÔ ãÝ÷øSé©l9ŒêÞi7¦~²yâÖ\ÖèpßýŸ«—>£vêž K_ýŸ“‹²ÅV¤Nl4,ê ±Òò¾ÇSÿ)™=¶g«¿r™ëÉ$V{‘” Dç–ÈciÎHÌôÕ~J¶’Q¥´_úÿ&çª5í߬áDkê'2ÿÜwÿ7}OEr²‹DÀÂÚWÿçà Is4¹±°ðÇ6šRû1è^&¯\j§aÍ‹râK‚P Ò)]€ót®Çq Šv÷mE‰üoIDÜÈÅCR&g$¤-¤;¶]¥¨"xi ^'£§}fŠúfô‹k÷»%&åß… yô¿ÔoO¬yQÈ!¾”êå'NxAæí­°¦J.­XÞöKB¶rP!7úÏ‚ƒÄøq½®À>û_ÆUå•·¬ÿ5;qíï‘ü½ywI½“¬ÿÖy!)v4µE†h8l([æÀF[ãAs¹w ­ 2Z=¶Ÿ+ßüN…Ž1YsϳÎkí—è«u—£¥/Šr8_×#ÛÒ“þEí"1Y8£¼-ý/…Tç™÷Ë%N~$¶qþ¥öˆt˜Üþ†!î±ÿ»OYºÌI³‘ ‡Tÿ9GKëH@: Õ¨2•“º(5À”QˆŒpH  7GõGí·Êºv«\¡×n£Ûï o/êåöžÜ{”,RÞQ Eó¯t*µËþOÏZpéR/r©S/lsií§‡Iÿ-©8)\—;Y¬C+-ÃÕ£^µ‰84ÂEL"@ÉK•(×~6Í"ØÉeëµo•3F›ºÒ~*90pé2l·§1Ì]Ï?©½òœ9‰tÞ=ýO-Ò³7Ôs*¢ÁŸ;Ô*•ÓŠ“ ÿZ„œiØ Šx:]çÂ0»IP^fvà•“H/v…ÚuƤ8 ?UÀµèÂjÑBË¦Ë †œDÇý٫ȼ¶(µ±-ýÐ’ìhKò°-R‡nkú¿ þk¾ûÔ È™Ó5Áw޽߂'ù;v ~/Ó"G_ªÛÐ~€¼HÇLêñk#;¥Ú/ýPŒV©ÑâΚX¡Qõ(ô©Ò>²F¾Ve˜·šR>]ö¿kýá¸<Ïœz ¬·Mýß—þç¾õµé<­)œæ©Ú@—\œQ?0¶Ø×ÕÚ¼sr¤eVô`ý LÎ{LyN&“ f³ÙÚóöß\Ý´¾„ÎãÓÇIþMû1>¹ßSÚ¾M9J®Q½)‡T—¤‹mvl ãO¡¡AÊtÿ‚&¬*JAÔt[VåG”[ =y]lGê¡‹!Gâ“>“Ô·ŒKC[R·D¿XéZÒ›šçœLTŸiuÝ«‘ØýÇê çßœP: ¢ÝÃ0Ißw/6‚W1ž¹Å[๺94ô°…›ûM£Ý6‰ü_‰ã$í£œ3˜–ÓL@ëø[dªœu2kä\«Áà+wE˜Ú²ŽMNÇ8GÂcï$ã/Ñ{ J:+œxÚjWL‰“ÈÉ…>õ_j_%ô¸¿rÉå-'ž=a”Rá³’È$YŒ):T$€v¨z^`Ó+‰Ò{žçxpµ¼ô¸p*W.W–úÝ’T}XñÉðýLô&+‡ÓÀK¢ VzÖ2"›È\GÜ”‘üÆÙèµgé8 "Ç=Õ¤"³ôŒ©M9­>o“þs‘X´ü¼‚ñóg.ÜNeèhc#5–Vy,Ï»p*ÒÝ{.1™LÔ‹u©Pg‡ö•N©eü% M?Yv´šr,û²[çûû:­ðV³‘:ÊEI5GbTï»å¦L®'›5‚a¿5sAÒß–3(D}X\¶¶Eú¯÷vÙúN uOQˆÓ%ŸXùsçΡ4Šæf›zí»ª– ¹”.w&B‚¦|C‹;{Ð.“ÊY­VÏ5i]˜“«´é–ž"WÈé~ÉЧ5LÜFé°lŽ.Õ¦q´é*/8ûå•ÃÚ–ˆh†ˆT–ô‘¨/›aM±H£0]ê¿Õ«ÎTPßv: ¥§ÝèÇ>ô[¾íP‘ ¿ÐIéJÏ4hhiÎ4PrZ ]‰\¬Ž`î÷hc¦ÕýF&î9ÉáLl—sb¬‹gÔ6þ–È-\¤9^M?jû!W¾¡ééSÏÑß9£Æ³ý›äl†W­ÜÙù®ìiNŸÒK‰\Rt©ÿmPc¯…)=a Ãa¡ßsçÎÁ¹sç Uª[(›zZžØó.Sém'"ò Á6žáBòŠ¡%Ý€=ê«È…nã9^Gå}ûØoêvÜï\Ó’öpeQ$ïÁk $µ›DBæýøQ…àˆZ(¸Ð¶dL)§ ·`Qh‡Æ%}ñׂêÉù ´ç¤¶FÿzÜoRú¨ÓPßÁ_¹°ê\=lѯ5ì½½·úo>Ç??zîÜ9’§ô`µ3äÐÕâl9¨•†™r‡±Ö¨DÚèˆöUHŒ®vü­×ìZªmÈcXP¤4VÏ­a]¡ÑÞÙyijËJòÆš;C´È½/åA-Ü-˘ZÎ$P­ :˜.ê‹ÞSrps{¾-úoY+$@ÓՙͿ4l&ɵl: óù.å2¼ö{¯Áõ·®ÃÎÎŒGŒ*€ÙÁ ªïßó?r.ü³ ðÔ=µVwúÑ©)]aÍýJï3¨*€º~ð¼R°E½-‹æì@›gÓ^©ã uÒúU°¿¿¤1NVÿŽÎE“ÆK9þÖ³©Þoädg´†KKŸÛ1–º¡O’ÇêIy®?!RRXô7bhÆÂcÓ¸ô™ýê¢ÿ#tv͉ËÐó¦Jêɳ>§f³Ù½Éd÷î݃ƒƒ¸úÆU¸ø³áå/¿ >s]ˆ½xìC­¥"ÞúÚ[páŸ_€§ÿáyxáâªï¨Fc€ï-wÉõwj¸5Øÿæ-8üÓ\{{Ï~úsðÉO~rn[Þ.IYÑ…Œ%yxi¯Mb¢kvÚ²EöÙ¶È¡á·sG"“tñŠ>7 Õã(hÎøhiöm/,üKÑÝ&DµQ¢ŸWß¼ ?{`Ã7èôLCƒæüBƒßyõwà™Ÿ~^ùw/Ÿ߅ñ߬ í@õ¾G¡:ó(Tï+ØùÁ1œßÀO~|/üÜy¸ð™ ð…/|aƒv,L¤•?2õ +Fó‰ÞQ´á¥Û‰£¹`cxÚ2þÚ¯”VÒô‰ý¨ïÉD§çõ惰E’+“{ž ÷KSÜùÎñ•„ç5© ÉïÚÚ±oŸkò¢"A–GW[F ¬ÍQó ”þðO&§A“³á„yëkoÁs¿ø\ÿÃ+0ýÈ>Ôß«¡ªv úÀ Ú]þwúQ€ÓT§j¨F5Tß·~àúï_‚›û7áÒK—ÖhŽÇùP¥ä ‚RZ%ÎC”rFºXL,²Sc[rü­cgqꬼ,yg °6p’,2R'1JÏS~èÂʤ8 ìö·˜#¢ `8\Z­]NÒÿ’K®8H¾âqÚ¶Iÿ)G5'‹„§ër'Í +ûÂ/¿¯¾| vÞ¿¿|{âìàýçNOÎ< PíŒ? 0zzé8¼ :S/Sõ>¼ð/ÎÃ+¿õ 콽疓ûóÜ­rY”ÙâÈIv¢THwÊÜnÊc J.0Ô„k¹ZX¢ž]d‰z¨ádné³,26})áhIPR×¥ˆpD¬ú-¡kyîqÚV¼U#±É¨S¶EúO9ª? "§!jâ-êÅZúàÊ•+0þðÎOoÜ9xd ðÞGT¸[/ÿxÏà‘ûŽCÕ€GÿFð<ÿsŸ‚íE±\ïY£`Q²hxid)1óŠ™Ô#ÎÑÐ5nw ™Pê>WÇNãHRõ¤o‚P0‹óZ˜¾XÖ’ðè:É¢e¡E•‰Š´YßJÓöMTº°Dtˆ‚EÿÛˆÒÒi¨Ë[>e”"¥³··Ÿ|êI¨ë#€÷VË3 ïÏÜQpßq¨ï= 5Œ þ.@ ÕªT0ù[·`ïíë«CÕ™jí¢¨®Îä Ù‰7å#yK~+…Hþž×©,ãõˆ|_]«/¹K ¤m£œJîL@‹š&£éwkŽºD´CëÔJžåèJLí&…”ÝK×ôµ Ãe?啾ñ”ÅÊ«ô¿ÝË: ͵ì]À£ÌÎf3xüï>¶|ñó‘ à=™d|wñàÿ÷ïÂ2Eñž –¯cÂ_Ïáé? ×ÿóõUµö=OÙû\³oÊ[øK•IÚÎ…'*cÍ)æž[Æ?òƒ÷àåŒk­>®d0ê9gŒ)gÃ6^•Uô;Y”ÈèISæúÉ3L€Ð~GDv4ýo®Ñ1n:¼v¨Wý¶{ ²NC}»¸ ì팋z¢h8½t`™–øîêwk€SËÕß…ûцåÇ~nî߀¥ÜéaHLž´“¦OLa:¬>õøôñµG¥÷t’žGÈ!]hÛHûCâäp_ÛÔð÷ãCɘ~` ƒäfφ?UV:ÇÚ4¦OLEu$´ìã!ÑßQ5"õHÓmP·¬Zœ­ˆ2)(}OÓÜÛèLÔí²Ôâ7æyPý!CRvBj‡Øqê?¾i“8M%ôžž|•B·[îG¾‡Ý@Y-‡»5À½[~~ä¾SqjUPÝ>„Çä‘Löo߀ýýÙÚW(›ÿº‚w—ïÍ–<È=/ÕÏ‘¡ó2zhædßÿú¾GœÞÑÖ“.çÞ6"7¾%ûD»km.lÃêæÐlðN:4Ñ[lÓí4y×÷§±±ð¸ÔsÞûã9T§—Qúîý¼Ó]€Vцú&T§o@Ë)hœŒ{ ¨k€ù_Ö°ó¡Ö!J#4;ì¶—Ù´¿ù=ç¦}„•mv^¹g¹ˆGZæñólг ÀÚ!ýlwUÈÉÁý?ý’‹^ävG»ÛÝ Ñ~žëol Ò2ÍïÓÖ¤ù$ý%á‹ÕËíÚ8zí>“Ê'í I=Šonž¤ÿædÆ"ƒœ,\äL¢“Óéd-Òõk‡f|­ãØ~6ªFªHU›VÛvµ‘öc»MÒy®yÖüMƒWÿ1›5}bºâ›[ü£Ïþ tÍ£÷ûÓØÚðøÁÁÁê Š§~ä)øÂ¯}.üô3P½[œ©—gÎTwï€úà»s¨ß­ †[PÁƒÖwjXüe ‡G·àÊ×ás¿ðEVæô7îtp“Ƀï14ÿn&Kztûï6ª,G§ù»QÖÜ—+¹2RÜ¿)<¹ûøF=JÖR~7÷onô5&Gn\±oÄKxçdäÚ2}bÊÒÐðmë+ÕísI˜¾FµQÒŠW*»$$Ìõ§gÜ\hô K{HèLŸ˜Âþ×÷ɹ§Ñ}IP4¥ý1N :˧ws}3æiZÇÔc'›þÏÙÀö&ϪÿœMÝýØnö*€¶ó`9÷E­YígÔ^×Ê)׿µHƒõÔ®9ÚOâi˜~t —5À» €{Ëóðž†ß-¨ïÕPCuïèÁµÒwêÛ·`þWû3€é‡É.•£^Ôppp ÎCJÃú–Ð çÍiÂu’Odse¸6HÚÈ•i¯ÏTYͳܘjÆ£mDR¤“Þ2Îí:õíÚ&Ê–K?R†•‹ç"Ó=ã®/`Öм¦e;¤tÚcÐ,0R‡KÃ3:U±¿?ƒú6ý¶Ö?ÜœÇôBÚ†ÆNJô«=÷0;R"ÍÓ¬#ówÖûŠÆk^›´¬Åi æ-Êk‘ìt'çaå%B>ÿüóðég? ŸúGŸ‚ê½ëeêzPÏ—oM,©¼ 0¯kXüå-€»5Üzg×ÿhÏ>ûs«ƒ›ÔN2?p_¼f׫y^mY›ZYBcؘ§‘Ž›ÈõÕo=‰.ªÔ”Iw–’z4Ñ!ë<гMGòaºHDÉß@ÑåkàtÍkç"~k íßÉdÕÙ*ë´SQoi{š³ÜÛ>%Á¦'°œŒFè´|;EqîÜ98úó#¨ÎTP=28U|÷ÔïÀw–‘‡ï-# õ€ú¯8 Gÿ§†ýƒ[pøg5<óÌ3Yy¬ž™ÇeqÌ…ÜlJ'Ù•YwXdÓS­hR;…Ó׸a}Ýoz˜®4t)šÇe>DÉ)M5`»pëØøDA#[Ÿs¾¬¿6Ò>”ö§¥žv³ñJ1þàØ÷퉈òGGG0yl ðîƒPN]-†w`õzù•ËwæpëðêïÔ0¿UÃ̓^ûýCxþž_‹.´¿t‰91]@3yKLôÒêSŽlÄ«ÞÙX輎ƒöõ@Ž–…—ó¶<‹•ÊEºVÿF߬*ƒè¨C.í•ãAÙɾÇIJ/-g4ýè¹F•“.öé¿5o)æxQ0µÏUU%?&Ú0ûß3¨>P-Ãa÷¯…†úhYè½·Þ­¡^Ô°øÎæUC}»†ÃÿWÁ¯×ð¥ßxžûùçàÓÏ~zn9Ï©Tä!5é"Ô–e6›Át:Y…)£Â-f–W,Û<ªJ¾p¦áGj5Ï«jó̆wBɱ¨ðäÇžT'h/ZýÐŽ‡ö!¾†ž4ýƒ2Î=Kõ)×F‰ÓEõÍÍý›YÙSc·¨æP9ÀºžqýØè€çÌD®½\ª› –ñmÿGU-Ó˜ÍÉñ’j´¤Â¨þ‘ê†FŸŠ–aýð onîßDmºDdÑü\y °M‡ö†üè[Gpj6›Ý›L&ßÌ~ùË/Ã…Ï\ØX„p’>ñ×?—ÿÓ˜þGaò÷ž€9|ê'¦pþ‰€÷.8 0›Á[{ xýÍ·`ïæ!<ýñ§á¹ŸžþÄÓkt1y5²i!ù>ùÃo_Xëc'§£ùl+0¦tÝâ¸Q§æoìÝìålN$J¤3­4½6ÖSOúFFJ¥‘£õ?Z†m¢ß¦sõÍ«pñ³6|ñÛ컥Än—º,äÆÙƒ/þë/ ¿ò\zé|áÅKpí­9ìþä‹pùÊ Žþo ûû3˜ÏðúÎàñzö¿¾—¿rYì0pwHxÓ–Å'åÉE ºJ©xeÀúB*¿åöÃܳÔaØÐ§Ã°Ft\¦5®]ŒÂ^AÜߟ¡NK—pÏeã",¥™¿à1G^!ŽÕ“ÜÒ‘ºÓÈ+]Ln‹~…nP•oQt$w+å°æ4o0!þÔKnìïïÃóÿêy¸ô/Á+¿y õ¾øo^‚+¿w®ÿ÷[ðâoîÁÞ>Àõÿ0ÿ‹9¼ð pîܹ7$¨CÖ˜µ¿™¡p"rm×\y £¤-'ys££ÉçIœ×ö+l¹œ±eBh.]YÓïÌG¡¤<ŽûΜ[PJí#øIæ7ßÕ¡?D\ø.í”6ŸòÎ17g©|zŽŽ¥¾œ)IDAª‡íߣÊö €€!X:ñó/|v~` ×þà\ø©gáò•ËpþGÏÃ¥ÿ%¨k€ÉNa<~ ^ü×àúÛ3xé7^Zû´6ÀÒYhL³‹XrñÅÚ3Æy²L‰.+9Ó”Ó¼Îc‘-­ïÝI×Ù ¿â;ú-î9æPhypŸçxK±¨kýfÝYµÏªH%¯¡Çú°„!çæû¨ÞÙŠ( mG›OyF:ç¹Å–Û¸¡õŒý/Õ Vysr4gw¨úì¦]ù·j§ÁëQ¶qí«×`÷œ‡êý<óSŸ†kp®ýÁ5xå•Wá…_~êz¾úžÄ•ׯ¬¥#rΦÀžÅ@‚Ü‚!‰Hh¹iÿZ JxÔѰ éoúQýEEì8Þ)4;rkz‹(RFOòõIÔ‰¹ïpH£Y’òÞ¯gáq ¥´½D-_)¯ý¤žyèk[ŠžDVžB›K}µÓ 1"Ø„mþ>úÖ\yã|êŸ~ .]úýÙì~l§1;! IDAT¾øë_„Ý¿?…ýoÌ`ï¿^ƒóO‡ù|¾rÒTDdH2*ge ÿD88Ö6J k)åìÂÛÏMféøIä‹È‰{t”J»YèYËZÏ q;ׯá;Í‚ò%SDÚù¬É5s}Œõ¥vž•J©•ÐÏ(ú¹”ci9Hy”zÒ¶Ö9‹!,=‘™°£jOýèSpùê«ð⯾WÞ¸Ó'¦péÒ—`ö'³ezâÜnÜœÁÓzƒ¶Y¦€Iì&le¥Éí|,»JlG‰ÉÐþÝj±ú)>ÒçÞò´ü˜Ób?|¯ÙuQ彑«JÌ Ky)Í’;:O®9"}––•”ÏÕYý.ܱkô3*ˆÑÇÊxœ%ÍÆ Bž¶ˆŽ“oO¤wNGâè[GðÜç?ÞÝOþãOÂ导¯ÿîe¸òÆ5xíw_ƒñ‡+€÷ÕP×5<ûì³YîÉ‹(tû$q{p&“‰i—¬™° ¢¾7߯d2AËz/M¡vÿYèZ'k›_©Kg8ºiûSÝÒòÊõe‰ˆvañ@ê´är¿mP—é4õ¤×aS²jú2§ƒ£j$ÖÇE½Ñã¨t‹¶Žô g´|m=¡ì…›ÑŒŸvC“òïZ`Œ¯ýäÛÔ7$ž%—SûÒ.Á ¿üœÿ±ópí«×àÉ>/þÊ‹0ýèÞº¶³?=„ã]¼T£Ð–ܵôwî™Û|® /HÏ&DÑö¢9‘õ^xûBœ.sÒVžQô)§—º©Y¨¹ É$e4ˆ¸ìK‹Ò‘Ñã`Jë§9"l…6­,)C¦'Ú‘qˆ9É•m:äÆÞ ØÿÆ><ÿ‹ÏÃù;7þä:L?:…k¯_ƒko^ 3sõ¹ÑÚ¿¥»Çæwêï9íg¹¨CoŠoŽFêíRü%´1ܳétÙ'ÔÎ2'3%W›§OÜx¥Ï-ý‡ýÝüV×Ë~ÐÊØèÕ9Y9-º`ÿ>E,¨¶çþß.ÇÍQM=j|Ûòs4°¹Ð¶G%u¤ÝÏÑÌ=І†?¶ðjç;Æ{Æ…ØHód"í«2ójãë² Ä×HGxn¹|ìü9ŒÇÔqpº‚Wþí+ðä‡ ¹[”Ëébeš©úÚ R'"çTHäk×£hJËI‘ÒÃäãdÑÈÑÓÐOŸM§Ë‹…Rä®ÒµôgÚT¿atRY¼ã×Ð˵ÛÚNª]´ºpsÿæÚ®Ÿ“%÷w‹zOg¯´nÿæ)cµƒ}´Ö“ôgw¼:ÂÙ)LG$úÓ†vîqó]B'§#T]ͺƒé%Æ—<Ö9ìÙ”­ïÔè×eÉHCšž°œÈ\2~üÁ1Tg+€G*¸uàðÏçPÿU ×ߺ×®]É:ÒC"¿)OQ·£ –EY+_Óú»$†Q»¨E”‘”më5§“–þ¤ôÅ:>¥¯ãõòŠ”OºèZyv†n÷-•ÂÚ I™œN[û ›‘:b)ÿÆ™èQs¢£mSUÉVZÏŠTgòŸ÷PDò©§ÔÆù§ž„+¯_ƒªªÖ>2Ÿ×d'g# F(P^]4æßQ(Ñmhv£Ñ4°zžöF´GC‡+g¿QµùÁ+‹|lMIyo™>òä–òZ£ŽH`=äÚ%êZÿ¦Xäš¹æ4h^}¢r%\ù—^zà¥å¿'“åWÄööø…3Ip¾e¬_œÀCí”6p^'ÞëŠwIš:’¶{Ç …ncßåæŸ”¦$ýU†“¡ôCKï8èHW4ÿ’õK²fJ×Añ·',å¨ËsRÌf3Õ‚©yÿWûž¼ÕÙe*%Íq‹aû¹çÀmk9‰#™ËíG‚¢×çF3¶%åØ<àæ¡ïéoK›GÕˆ=ÔÙ'¨°¾äD_hú-'ÿqÓ ÏÈ·;,ýdíok¿Pgô"è¤P¥'8`ˆŸ!¦q¬•+ô*äl6ƒÝí®‹´¿ª˜†þ(eHËba¤´Îô‰)Ô·ë]‚„w®\Ž7v¾aÕöïm¦’$)—T¶¶ÁÍ=“´=̈·ËÜÜ¿‰òKqsÿæªíX8:³Ù ¦ÓÉÊIl·½- 5~ÕÙjíóßiè¹Y„Û߆àúã›>k/ðíñ¨ªJ•ŸnhV¬m¤ýH¡qâú\ì¤8Àú«Ý¯¥ão¥g!q*R{Y­p=nµ¡ÑÍù;sxÐo9ùÛ:ˆéA›FúŒÒ‘›û7áÉ=¹ö,Õ÷œüëã •¥ªZÕBÖ&Š«Ñ­êlû_ß_k×Z›½ÏéȽ›h·oËÖÖ­TϸèVÉôô©Ùlvo2™l|3ûå/¿ >süÜ45™$àÞdÐ-ìš7#":ÕK#z`KŸc@ºÓ*áHjÚße_•æ…Ñ—ò•œx×ò¶B#3€þÄø6b[äÕʱMQ]õqŸ’òJlïÕ7¯ÂÅÏ^Øð Ì×HkÏ4p4Òr£ ¿ûßrR”ÛA[nzÔ¦i¬õKÓ‹àÝ@ºóÒ: ’ÓÂØ’åïugW¢ÇE|gJpº‘«ë s†2ý®ÆÛëÈ{žkËô÷È6ÊÑÿRÛ€Õõ\}­íÃ>l¹äƒqÄNƒfHZ éa«“báÝŽ¦XyJ ¡¥'·¶-]ܧ=-¬-‡ÔAQ’H]D6–@2WÌó¤^}®‰NP¿k”µëYmž]ÙŽˆùMõµÿ1^'8òêkÍF×êHQeWü]±è­Øi`j¥kQU~<ÑðîsÊ®>|B|žS8T}Îx[wJíÜ´W~)Ü;\B¤}a•Ab-´©1—,êÍY îKµ9”8G±{#2d=Äæ4ˆÃ5þ‚kð#"#Xÿ`¹t ܳsIB?êw‹LTYO4oµÑF!‹î³NåM¯1Gîp@Ë+wª<§°ƒrå4PrðÒ£XÒÈ 'Ÿö€¨•§†®¼’è‡Twst¬úìuš<ãO¹*G|©Ö 騔ØáJŸ/jÝ×,¹Ý©E?¬çQÚ4¥soµél¤J¤8,Ÿtgi"޳Öyd£Ð‚>‹jSD$Æ ÖiМ]ð`QªC%é`E„Þ(¯Îšò¢sˆhÿM¥‘-­R§5EÔä‰È÷—š7%Æ_ÄשÃRDš  ~ovM:=3¡´$ú¡µ/Üïl=ÁFJäÌ(oÖ|Ò]Û¿Üon}6¤*=í²òð¤ðÚ0„,‘ZÕ;êI*¬’¡T­jCÿ]ïaµg÷'¹5§ká¯ÍOj<ûç¦D:ºèQÏ#ÎUXdÑ8ÂÚ»„§e¡”ØOîX*‡–^ÉM‡\¤ •;y¶Èž«Ý'ZzÞç9žéo’hœÕ¡¤ê†žih3ÒL ÕD4,"^L¾ÑD³ynˆX½]¯ÑãŒ*EC²KóðOiPaUͮèôV>zwØÀâÈ`c˜ÕQd÷È…Çû^ørÐDrð8ÿ9þRÞˆìߨ4¦¶l®.·ÐiRËp'nîhy`4=8ÏX¨œKxCæË]ØDÑ—†g¥¯˜X ‰%B’¥cÈËcíéa´5ü¥°LHì™äL4ý±¨ùW±""”<Òñ—ÔMËS¿­ž)Î-‘N_Á°?¥Ÿmlè Q6j±²æíY=H8r‡¨ÃÚyåݪ¢ ŽÔ¥»Z™Vå §0Jmäs0ßÓ€ ™W匚ö #Ç£«œpnòqÞ&Ö~íb ¤ÿ£ò†Þ0¯$g,ÿQµù*VD›¨ùcÿ\Y ]ïú½»Ídÿ!ã•5þŽ×9Åú¥X8¨HŽdŠÊC¼­ÕÐ’F )]ÎéqD:Yò\ÅKáDE®’ˆxc¯S"¿{#n§Á")i¨šÓÁHg*Êùi§ ¼¶KúEBK©Jøhú.êˑһ.,ã*MŸX"!Zûž+W:Í'•ËüÊe„×KíÀ¥Jl1¾ž 8,;=l‘2ŸT²ˆp^)%·8¨Øï9#ªM5DõsC+jü#£FÌoA”rf,;Fn7¬Í¡o<†û#¢9ZR»‰É©w\߬x¦ vrFI²‘àÊr¦w¤öÅ2–š¹i;î{²9»‘Þ#ãÉ¥ €5Ϭò FJêÙ®äbNÿG*Yi¯–ãŸ{νÙµ“’ƒÖà¨h+Çß’H'JážEFåàmÓ¢:TÙ”ãt—pÊ= °ØÂ(–ÐZñLßt¾ùÄm$캱±æ€Ù@n>{6'Eœé·6þæAyØg£~ƒXÒ7-Òç’s9hìl'ÿæùêßÎW µ:c 3kw_èN)ëø“4«ü“jÜ,HÂÌZ‡[øØË|ê€ù˜¤ý½FÇâ–ðÕÒ,µ‰“‚ío¦Œ”–§že,9]Z£oî'©3¹¦¹œm8”kˆæônÉœ*çYjL ? †ÉjÀ, ¶%’éiSϵ9й¹>ÀvJ”\mÊL´sÜqu¿~ÚÝkÎ ÕІX³h°é ­QE¿jL9eÜF«£MǤeJØ}l.}î•ǺáÕ¼ñä…ëLCuvùæÄ|žä…Ñ FÒNòIn×~OrjÖTI'Ê¢ô‚#s–VhÇ^¢ZXÆ¿ÄîPû‹\Î42O¡ËH¡4W®q¨8ç6ò+¯”SÆÉŒÕñö¿u]‘FÖ¢ycòHyDžYml‘/ÒR(r¦Á¢D–2\Yé¤ÑxèÑ¡nK_‰SÌéjíûÌÞˬ6èÞ§–xâ%ÞÅ·è„$/Ž>SëøsrEW®L.g*ÊÁ+ÆØ{Q˜ÔXKí9MjJB·tº.jA-•š‘Òõl:¥º¢9¢‰¦QÑl€ÖÆ6óEÚ¨MPÖi¨o//vó¹= ÑS‡ít$WiágPå¹–†ºÅ“Ë0i(þ«çŠs k`Æom¢ VËuÙìw_L498ÂñGéµ"e}FQ(=Ô¼‹ï9ãÔ>Ç!ÕGýáŒ{»¼E-éUŒ¿ÑúCõ‘w­ÈÍyI„(«Ÿ†H…V/8úZ;ÎÉ¡…(ÒPB û»z:¹OÚž:¹úžñ,µÛˆÚý®Ê:^[³ð<㯡UÒ©(1¯¼ýï¬ÎR縈)'K鈃†GÄÚá+šþ“,ðž¹ÁÉÕ†&•ꑃã—Bä4”ØU{Êyéxùl{û9”Ìùš£桽|ÃøGìh0º}E)¬|»×ãIœ„’ˆr ¥gV¶á¬Øï]-ü=ˆÞôŸFŸÜÍÿ|õÍ«ãàÛU[ŒºšCU¯‡ë;uöëº÷Ëm”×ó|}5¿-©\i!~MY€êC€ö±[Ó~A{NÂøg1®¡þ³üÕñR´Û‘kS®Üê7áü•W"b>˜d!l”èy*G®ÏÇ5Ôu­ -4ýgé«v\ýô·sT„ûãUß©¾¿†ªªÄã§Õ´^25}ñ‰ÿ„¨@²ì¯y$ˆCpá3X¢õbócWí`Ug*¨FŠ ±¨×ʧce9V ]«Óú©Ìùr2lüÖCû1YòíkÊzdÃx¦í§äàø`íÏɯWKûsòlÓøKé¯dU,¿´|û-«¦mí2Úù×Uÿ[úŠ“@&ÎNQcÚ~ž¶/m[®¿ÛHÛÎÑÏñ(Ñ]BbO,´š¿×ž3¶Oj£0[ëµ×ûߨ·E$•(âíÃE4åsõ´´¶¹Sû·MžXÛÕ]›VJ7º-ôGúèåiµÛŽÒcÅç¸ô'€Mß){BÑÔ>䠾܉:i=Œyà.•©ëü™å°T‰öG·["‡'5nÛ–3ŒÒÍ.ô?¥e9(eè%¿q´¤r—:Bñ”‚;ˆÜ×ÙMŸIÏ-Xh§´4gÓ4ç¦,g4ú^G4u¹²ÞC§®!»8¥ËÑà&šW¡)ÅñL+¤í·¶ÛsÐÍÓ>jÜ,¬ã–sº´ü0t9þ%khG:DV~¨þ´8&]“œÜ×À;Ö%ÞfÉ•×ÚOΖKÞDÐô?uy¡Ôuá\XxDÊE: X>ÜjD5 +³¢Á|-ÏkÄ›ú©â´¯Iµž:Ž8¬ýZ Ä6ÏJGR:ÚþŒ¹uw:]š“ÇR£ØÅø[ô‚£#Õû® ÕAÉ’Ç $·½ZéywøÛj>§sª =gSVqÓ&Fךî”üæá‘«cÕ)ÒiȘäKì!¬þÆŽJq V†jŒ™kR%‹³¥>Õ~ƒ”» 5rÉ·ì-F/7NÒI°¡†kÍ-Ñ!«|Û4þœ!—€“[Ñ1ÞjÙ.#Ý0HmJ6¼tƒª%•©¥#Ö©á4OxܺYYoš(*rhÆiíoTúkÍi°,>œ #mñà4¹°U9ç5´9^Xû=;Ö] Ï8ç‹â%½±2ËG˜o£d•ÈÎE.8ÇÃ*W®ËñÏñ‹Šñ¤8¤ý_R—Ú¼¬›ÓÕ|¯;µI\oOøs/ØSt0ïR;Q¥»¯ÇÕ~LžaÔv޾vb[vUù´°ÖÕiüÙô qf‡ɸR% /-ç‰PöUƒ5=CÒD¾tê ’öjúIJ;§lUú›´Ÿ¤å1^ÚTc®u†ÆêyÆßí4ä õè´ˆ=£E2xQé‰Rí/Q_îµì¤#d²îH(Ö¶i£o]?÷¹ïHç2ʘæäÒ8gœ~xÿÒhGxxÃåT:N£Ã‘i*)r»skjJ›^Êñ§èyúÇ«{¹y “ä Í8ªÉ÷î£&häd–t ·jÀE/¶¥ý’‰¯Ùé6å%ü´å5»)oÏâ½&¡óž6s°Žcð¢æOdd…ªÇ•áœ!\þך²¦%4oeIŸyœ°\ÿH£ª¤¬‚õ“¯Tž^«‹Úˆ+€lŒ¸ô#GK* íqп=Á0‹ÜUiÒ‘°´A"Ö¶ßÓ^Î0ZdâøiÂÆVÖÁ5­C”Ö]ý›x[Ûw}?€=ê#YÌ8§O+‡v÷—ƒdü1Cé£*²¥¼K“£¡ÔjCó”\9¤¬…_•ßVh“Ò‘I/Ôßžh Í£KËså$õc!-o»0™4å£Úîé—Ôs–Œ#µèkèxä‘+›a—XT(ùðñÑîàÍᢎ͙H½õŽÕÉÊê ¡ÛiùÙl†ò Cµ‘èr‘·'¤¹(.7ÅE0”qX£¥˜H‡ŒÉfÉËrsmmžEíÑÃ9Š÷ŠGÕ¨¸L£­Ò¹áŽx8o{Ô@cg£ò˜L&ðú[—W×ß©áÖüÖòßu »»SØÛÛÏÒâȶ¤´Ò³ ÚÈWd¤Áš;‘ «+öwd´D6l\KAê [‹ œô9HvŠ}?%3]†Ðmž[Ç×Í“"bg&,YAõ!¶3•üÝþ}TPݵDQW3Ÿ—ŽŽXq2Yø¥<Æãåš89·‡ß<„ãC¨ë꺆Ã#݇í$ðÈß.Ÿž]hÚUŸž¯þ–ÎS×åNX¸óˆ-4¹pކ6'£·n)ï”Zzس’“»1ŠZhµ‰GÆRý"y¹Ëñ—„𽎈w§Š‹FÎ'>JNê¹UNIߺç(u£x¤}¸ú¹ñR³«ÍêðYE4‘ØÜxlÜì`é,ä`IaðÈ/áYÝÕøT9 XþJfvüši]ë—Ðæ‘—\Ñ✱ù˜~މÑÊ÷st½.”㶨äs)Ý5¹˜«±»b¼€ÿ(Å•ãÕ-åòè}Ô¦ú'ååœGê"g?9½ôlª$<·»;ÿ“òn0û_ø]ÝÉd²ö_J7w×uÿD_‘g•Ó@…/¥»Ö šBoY“✩l¦¼vQ/PžÉ—óæ5“Ûz{â¢: ÙJäOåÑìð-‹©ˆH‰ñ÷È“ÒOFgãCÈ‹_2šñðô³¨Ê(Y%ôNÊÖvÎn°»;]{VÿõƒgÔ)&€ø`".IDAT“ Ìf³µÿŸ>.ª#A—„.Ò`T4‹cáSyt®ÌêyëµD’QÎKÏžvBÒvËs®ü¨Þ 1:\ª|K»¯ñ§øižsÏ4õ›çšð´”Oú­˜\}­ÞImEÿ<),‘]3~DϯSi¹>º±2íßvw§ðê¯ÂÑŸ®þÆ^©œûì½uê¿ÐÝ®ˆs2¤i\/¸þ3½rÙFê5{XºàèXä êæä’´9²=_N™,2hÆTÒ_ÜsI[4ïûñ|íÓâÛ<þ¾Y$ô·iþQò µ÷¨§-wÛ Ñ¶…º‰4¥éýöO4‡¡þÎ-xìoïÀÓ?ñ4Àée*¢: ðÚo/_¹¬ªŒ` ;Ùg~øqxõ?\¦ÈŠÀ}CÓé( ©çv¨E_« Úp¥´Ì³CÐþOò:eÎq¾šZª/Q§úζ4G––õ*&¶H¡ž4’GÄ 1D¹¢6\.}nuš¬‘idÇ ï¹,Ä/­ ŸpQ¡}€îÆßÂßóŠÞ¶Í?ÍBÝþÓ/l\$‹cúWòP¡¥ÍXÝR› ½½}¸þæ5¸òÆu$ÚpøÍCØßÛ‡ÃÙl•’"½§!÷«×†æ€¼ýŒ: ¹ïlkóIZ /é„*á¥qç0J/‹Ó‘KcHêJu-ÊñÔð´b«Æ?“Þè]Ì¿ˆ¹ÛÞôD¦fûÔ?)¤NW´¼–M•foÇᵯ,ß„˜û-¿1±¿·{´‡G·`ÿ÷Y‡A%Ò>ϵE ïüP½=‘*LÎS”,<ªE¾²½2¥åCÑÒÐÅž§¿·•Wóo©%øsãîŠj^NO*¢¤\{ãÜ:<„ê}Ë¿Ûÿµé{úÀÕñê 5ºëúÊ¥Xù»Ñ1XCäZ@ž0àC¾]-®ÚŪOh'pûw.¼(¡™;L—ƒ¤ï¶}ü#ésF2ê÷5¾Æù×®±™áÊs»ûµ¿;Ð? } ´iÚ‹zsŽÜ½StÚˆÀÒQ¤!äÚRzþiwÃT™œÞv‘[.©QóBƒÔ&P¶GÃWâL¼þÕ˺ûÆ5À\þÅÊúôœ§ÏФhˆèct«9T5]w­o¿-owÒi¨y/„3˜±Q1.ޜ㣭)K\8Žš8Ö…Š£m¡½ädÆv†¹qöŽäN¡¯ñ—ô6߸…ŸkÓ6Í?Œ¶f^P²äúå¸éŸ–ê„´I›Hijëœ:uŠ|> áCxzb\C5Ê{!¬—È܆Ö#ÂuØIè‘+/©o ÏKG‰<˜†ÿÆ"ÑÑ·í5þ<ʹŒêçºÂ\4&K—ãï)Ã-œíERË;bþq4$©¯Œ”Óº ú'=S£±k¬“ktÚ|=¶åâg/šëë&îgœ—¨ÙAlì4-éLÄâ”ÔÎ7ªÍ”/–“I°õ‰p¸¶¾ôyÔxdËÿª.’‹&w_=¿E’’vÊ=/5ÿrý/á¡‹D´M¿@þª£´<¶Ë¢OšV6w¨Or»b›¦WvmýRÑëHºR:x¤A¶z‰%BŽäîÙqNÛëò„ËD‹›ÂËÎíÌWõi-ký.”{mÜ‚nÆsí¾z­,4c¼ óÏZVJ‹Š€Dè§_ÚÈ…jü ÌçˆñªÎTP!{Z®?$Ñ ‰<ÚN ݳÈW.7BÛŽð¡šúÒ²–ûÚ1~Ñ9-Ëí¬Jóç~‹--k_Po'Xv$t=þâ> 08]ο†W´ý‘8鿵¼¬W„—J…¤48ùJ,Nÿ9ô±8[Û¢±Öt·Ä Ž'XR \(Jr &'ƒ&d–3¨9þÒ]÷ Ž*]`|+EÚ?løÑÉ_;þX¨™’S³¢ø…¦1‚Bº}÷?76Ôï9iyo: ãåµ?˜¼™r´°ö{ÒXúÈ;~Ö(§cœŽSü¯¾yuã·úN½ñ îm„:Ê·)ܸ ?°ä™“¿õ C}§x;¡Ñó5§AêQç˜YòÕèB`KëÀ¼‚ÑÙ,n/–·ŽµFÛr»Øaû´ã¯E»¿µí:‘㟓ç!êÿ ¥ìÏý9µíígePÊ&ó]€Ñ÷`ñ¾[ÝÞÀÖŽ9¨õOÙ¿¥é¬û«e$÷òãömòñÇP×5Ô·‘‹É¨*üÎóTŽù;s¾`!ôÍ¿/ ãß/¶¥ÿûÂqoiù·ÿ€ 1@¾§\ßüûÄ6´}dè sÛŽû»üÊaüÕK0ÿÚkëgªƒ½¾ä0`À€l9Ö†Ùõ¾ä0`À€l9ÂÏ4l[NlÛä9騦þ~˜ÎTg+¨ªåGß:ê[œ0ô­O;º˜ÛÖ?Û"OI{ðÿèpº‡5 ÙIEND®B`‚ghemical-3.0.0/docs/user-docs/images/cyclohexane_optimized.png0000644000175000017500000005503511563552731021421 00000000000000‰PNG  IHDR™«êhbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ* 77Ÿ IDATxœìhçÿßwŒáXÁ ¬`lÈBقפ™ô¨ä QÉ¢ƒ(ä §ä §´Ê)´vúGk§ÐØ-äì´v -öÁ…¸pGrð=Îý£Å.4X…†¨Â˜ f@ó€úýã™ç™gfWÖ®¼#­¤÷럵di5;+Í{>¿ÞŸ¿ð7B!5àà­ÿÝëc „rùá×à€ø|m¯…BÈBôn"ð÷{} „B.B!µáìõìò¡n­ÏÏ”#!^+&Ë¡ñùDïf­?C¶OÖúü„úáµb²‘×KÙ9¼VLŽC#2û1Nµ pÿñÂŽ>~П£©>ßNÎ$™†c8èLâOÓû4ê±ìÇkÅ4³'"³ÝE¬B¼çi˜à¤¿Z…ûÞ·½`Žá a¿·[Ýd<»-.“x=ûýZ±Ýëç=±Ïãý>w?v]d&qÐ;=‰{ß/ÚØêßö×éoõõöÿoõ³5ö×ìäsœ?ÚaÂ4ìãq¿v»cåüŽòÚ·ûšQÎ탼Îížç~¯kØsøïóVǽÝïõ°ÏO:J¿ßϾL—çk˜`sÍÞU‘ÙêÀªwu0Í!°}ñÑÿÞîb¸Ýÿ‘ÔT9·ûxÔ¯½ßÏîÿº†ë¼.ýsªÇw¿ÿçun÷<öqlwL÷{ ö¿ëþ÷wòÜö¿wúÜ{}­˜Äͨ7GÛ=‡}.wzL#‰Ì$ïI°“Ÿ7Í!ð^æ«§% 6i¶z]£žëDxã~ß$xheXji§Ï³•8îôylFyÎI½`:®u¤.wÂ$"ä}_øç—ú0†À{ýKz™ä9¿ßsmu1žvöÃqÆkE]Œ$2ÓÐ2ŒQêš½÷Ši}ï*ÛÕ ÆeÔ÷oœŸ;éT™…ŒrÌ“þœô뙆kÅ´ñ°ã÷Üîj$³U(»“_ˆq_ü4„Àò‹³Ý÷ŽúÿuÞý>HqvÒlW“õû'ýµ;e’?c’©¥¡úš†¥Ìv;Uìýµbþ~€òßо)ü“Éñmw—¶ÕóíE¼UÎzß{¿ÿ¯Þ]êÏ=È÷M;£œë© û9öç†ýß°¯}П1Ê×?hsøŒrßO¿[û=]6‰›ÇaïéN„üïðÖÿþmZS=“dB`²»T/¸úß„Ü^+&ƒèÝDüûëû¿ð?*{“ú¡IÀkÅd94"®7ö0²ŸÒ1dºáµbr*‘!Ÿ­D…bCÈÞ Ö/×B9œü€¿íõAB9˜pý2!„Úøû¿ýíoøÛßþ†Ëï]Þëc!„²Ï©jÊß@ﯽ==(B![S˜.#„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µA‘!„RB!µáìõ2 .ÿâ2\áÔou¤Y )%qãÌ÷Ïìõarè È}͇}ðg|õ‰ü7Za&Š"H)qù—ñÊ?½²GGJÈá„"Cö%gß>‹¹ÇçàθB@8BõŸùoµë¸ˆ’¢!  /õðÁ|€°âõo½¾wOÈ!‚"Cö—ví‡Ú‚¾7Á Sÿ–™DÐ %ÐP)3wÆ…çy8ÿ“ó8õíS{ó9D°ðOö §ß:‹ï]Dû¡6üY¾çCÏóÔcÃÑèGßóá ^Óƒ×ðàÏúè|©ƒ³oŸÝ³×BÈa"Cö ícmt¾Ô?ëÃó<ÀDC õ±#Ôÿ;êÿý†¿é—„æô[§÷úer ¡È}ÁéïžFp405×qMäb’¾vÊ J€ÌÇZWäuœ†@ûX+ß\ÙåWCÈá5²/8ùÕ“ðg|±ˆF.ºØ¯ÙJpœ¼V#)%¼†9#!›ív{×^!‡ F2d_ S_Ô< ,á=?ƒ¼½9“¥TÓf„ÔE†L=ß½×u!¿á—Šü#Çâù€¦ihøêùfUS@0Ôrì„v(2dêñ=išµGE"Æ‹d Úšá(7-PžçÏG™(²?p”@˜6e§Ö†×ôà7|¤YZZì&3 ßóUj±¡„Ø÷}üïÿû_|íÿ|m_9èPdȾåÜÏañ¹EtéàÏøèg}Ñ ˜“Ñ©")%®üü`ˆ œÿÉyøžV«ÏóŠ…n¢X[`ÖhSP ¸MQÁw||pý<¿øü¾ rСÈ}Íõß\Çâ ‹Ž@=¸ µASa"˜ƒµØœýÁYÍ­£-ø¾¯ÄQ ØÌ_uˆÒÜ×ô'1 J"A€Ë¿¸ŒWþé•=}=äàB‘!{ÆÙœÅ™ïŸyàçŽÀó/<ÎÃEÑ[f½^7oÝ|àçŸ6–¿±ŒV«5PƒX¼¦×Ø‘L–oM$ÜÌ…×ð4œ}û,Î|ïÁß BªPdÈ®qõWWËmÆpõÚUU”έ^vÒb»öçµbá˜Þ€™ÿÝ#îä^À” í‡Úp(‘BÀ÷|uN·ú‹vÊ¢! ¤€hø¾öÑö.99ŒPdHí\þÙeuQt‹•ÇúÑå#U”¿ü³ËxåŸÇKÝèâ6€Ò@&|øÿ>œØë˜Ÿ[DRŸUÂâŠÀú_ÖÇJ¥]ÿºjÙE "ì‡.’ñ›ªÐ¯ÂØíØÜý°F8nÃ…”Alÿ½#pþ'çáyžéîÓïÇÕkW©iœÄ8õm…(2¤ξ}/u‚V >i­@–R¾i¯M“RHˆD˜ˆçô[§G3®t€4KU‘[›bj ™ô`Ùø›º‹‰èš‹!’ŠH¯Ñø3þŽŽiùUU#z´ó¨IßÙ‚§BÕFîK—qÈ0vÔJö2qŒÀ Ì]·çYEé ^Þí$ɯA/vË׌Êꛫê&¢á!hF`„P5 x?<¡n$ô €ðÔç¥J sº\¸´ŒL”ÿóC•2q`#íÅb[bß羯J4VßXÝê;‹ÈÅ)\™«‹É ñF! @îh¥Å†Ð¤p§PŽ|òï“R„(‰J‚¿©ÞŸ`6(u¹é -xæ±ê©ÖP3>­f «×®Nà ‘iƒ"C&KÞA¦#˜qŠÑvä¡£c—²Åú³ Å×Û©²JÄtPR¢ßï›æ ý9%!Z§°û“X-n“Êd4ÝLÍ*êíX}sž§"ÏóT0–6¢!ŒÀØBã5”yôDp4@*ScIÒû¬‡öÃír÷’S\ôl1húQ×"Ò´”Ò‘I~<™ÄÜ“s¸õû[{v¾vJç±Ö××áyžZÜ æÒ‹KèÑWB¿CŠBäÃ0Ä¥ÝÚžç¾T<á|Qtõ¼õ|Öû¤×„›Ûwº‘ýE†L”Þç=ôûê""Dð=_ ‹#ËØ\èá0ƒóOÍãÒ{—ÔìFC]°üY®ãššŠÌ$|×Hµ˜ÃÕG)U&M‹ŸŸ»H!Ç‚ („ת•A¥É6BœùÞ,¾°ˆëï_ŸÈÏKSUË2‘e5o“Dð~!àr¼â5¥ªçvv²WˆL'L—‘‰rý7×Ñû¢§Ò6wBH)‹®¦-,_ìÔØKÿø’ª+Ü Íd{š¥EM¥2h×ÌÇÚò”™JŽ0óû‰Î#´R~nöë‹ãW~yÅìj™”ÀEZ³4‡$%\Ç-¥ÐÆM™é¯—™²¸ŠÔ)9PdÈÄ9ó½3ª°¡ŠÍñFŒ°"J"„!R™ª J~' ¨Öã8‰ݰüe,ÿó2ÒÍ´¸å°ô^Zö*«´IWÍ1õ×éHfØfÈýF»Ý6Í 2“p]×tõ7úµüÌ8ŽM½ (nôûX½qТ´UÓ‡n£Ö‘‹ÝV-3õyr0`ºŒÔBå³ùEEï±W0ÇÈShq¬,Rò Nš¨»®k"½wÆw+V&Cj2&µ–)×u‹ÚLþù4NÇJíLÇ:Æù°"‹\°ëœÿ‰¢­VK ŠZ[*SÕýgóE9eYº°„Èx¨Ù'é¾2Š ©… ?U‹ÆN¿uÚt•a±RYúÂÅêŽX MïNÏ\Lο¡öø3êc{p`ð³²9ÒD>‰uŽÜÛì…E“¢I7SÜúÃô6³¹ÀX›0Ó,E¸Ždp¹SÒ$5ÝkA3P‚=S¬¨ÖfJ58{\~ˆÚ¢ä¹fE6ã¬Þ&Ó E†Ôж+¹ø®r×µZi´Yc´©õ&Ìîã]´ÛmU“±R`é½´H¡Ù\T6dJE“AZ|Þu\DIdµÀ¥YŠ ÌñLSçYç‘Ú_*ReàθÃÈ€þû£Ú~¶±¢É…Àƒ§š:üâÀ~Ü2¢ÑMÀ`“ÏI½þ­×k{d÷¡È]áõo½Žåo(_ÏóT*,¿ EQ„°âگ˓çk¯)¯²ü€Ì…FßI'E„b§Ât1Ù4¤å šÉø¾Jõø³¾ªå5 ŒàÈD"½—îšè”<Ö¬Sï¯=åÕ–GpQA&õÕb4×ß¿Ž¥——Þ á5=%Æe‘²ûO×sK)JÓ®^é*4)1X.Ñy$óéŸ?­õu݇"CvQ§Ëm¢(R{K„_*îû®?x‡¬»×,¡¬€e‰¢/|º)À=¢Ú¤Ýnæái¥­’=~ðB`îè'mKÓ}¼kÒa%‹– €W¼Žõ¿¬N~å$d"k¯Åh®ýú–_]F¼Ãkz7BÍÑ]%4QqZ­f Ó¼!ÓRêÒ~]ç~t£N²ÿ È©&Ž‹;]#$Vm&J#µOFG4È¿.Þí$e±IÐ=Þ5uRJížò@ƒ£fR)g}9Ì*GGº¦5ÉÉþQ¹ðά¾±Š!üL¥È‚f€0)"™êÞ÷ˆkæ`ìÍœŸ®:²4ÙPdÈÔ³öñü§•5Þ„ `˹Œh3ê,`R5¹Øé­¹'æàºJh„êçHëù!ŽAí –£FaÆîKï¥ð]¿ô¨…E[¼ÀD&°øÜ"®ÿf—…æ§°ôòÀ÷}Õ†î@5ˆÂ[Nßô“¾2MÕƒ—›Ñ¶ËÒÈþ‡"CöQ™ ¸DôgüRÚÅ^¹l6sÚ5䩚!õûãÎc!T^ €.Æká±#(QDP¦‰ RË1.Óq^ËÉSHBäÛ&3¨vëLšÉuófëQ”GƒDÍ…2ÄÂ3 »ž:»öëkX|n~ÓG»]Xݘy(Ûy!+§ÊvlÖIö²/Xûx +¯­ LºëvdS,·¦4è—·3R _ÿDuo­a €jÐ[!½¦W¤Ö*]m:¥VŠpt-g6¯å±Ë 7B%0( §ýú P”fGrÓʆ§"¼\hv{ÛÒ‹K8ùÕ“è<ÒÁ¥½ÑpÕž.©¹G\Wb(2d_°ðìBÉ2PYã}¥çFòËj{l´ ¤ÈFeíOkæßG:fÎÇó<µ÷>_¨f; ˜‘Õµf"|ƒç£³¢×ë™â¾hSë±-r좿~Œ6£R*O:ªI /ë—©²¾¾Ž¯?ûuʳN§e"±þÙ:Ö?Y§Àr(2dêé<ÖAçKe×á0Tf›º‹I&Òx¡EÛršNÎ*FϨhºÇ»JhòH'hjÝôI÷j¤Óû¬WDfâu[ý³bþĤάAÇT¦Æ•z· ¯áᴽऔf 69¼PdÈÔsò+'KZßõK»êÃ0,Íá¨Ü¿N{Õ‰åyjmÖ/œ ¬®µRjMG8("³vÀª-™H¥2Ш÷äèˆIJ W¸»:3¨Ž1Ýp°úíU³Ð¬÷ñÁûìz3™>(2dª™{r®(º#/ößK[32슘ŒJ)µö˜J­é9W¸ª À^Gà”#˜Ò £"sÊm̺ËÍŸñM›µÞø¹[té”jd—Þ»dŽ_§1 ¡È©æÄ—Oä¼f¡øâ$Þõnªq¨Š_÷ñ®éZÔ\ŒÌ$òZŒ°ºç*nÒvDcL>óæ‚›·nâD÷ìê…]÷õÏÕ@1D—–‘©eá™…âÎÞºC—In³Ë©¡eícå˜JXkP¤È€â>°Ôr£îõzè}ÑC0 ÷y½¿öÞ wíõèî1}¼@±¾À®ø©‘金 ™ZÚ_j—¬U´­}”DˆãxäVÝó?>o.Ú¦¶QÙð(¥Ä™ïÕßuë÷·°ðÌ‚Zü¥×ˆ¢Æ'qÑ]©Åئ“ë^7©4¿¡Ì)ÑPiªù§çwe/N©†$- ìnDE¦Š ™J–^T“äúÞu]µo$`¶K“-c­£-œø²J#™"ûVB“ß»dõï3‰6#´½viSÏÙ˜ý,bPXLmfȾ=oã6\¤I Ù˜zÈPËÜL籄#ŠÉ~« N{ªPdÈÒ=Þ56+æÂuOM‰kÏ«û±úæ*Úí¶ZF«{˵šåó̼h.‰Ë¿¸Œx#®ÍXJ‰8‰U7Ø0wiß/y¨ÙÆô3I«±~ýº´Ý¾~= Ï.¨uØ;œ”íŽnÓ†£æc´ hÇ3Ÿ´S™¤>(2dê8Ñ=1t‡½¶fÙ*ŠY~uNAS¹6»3®)L5mÌS;q3ùÀff‚þüÏ×"4zAWš© Ÿæm C©}y˜«´óý©T‚cïÛB@@ U„×Î Ï,ŒµñÓ}„:¿ IDATxº5•§›ë¸H³Ôx¼¹Â-RšÖëó¼Ý×!Ó E†LºeÙnßÕs/©LoÄC¿ïôwO«-šž¯¬_fÔ|Ju5³¹°æB­çX|GEÚŹóHgß>‹Þg½-\ÛŠõOT`j ×g#$ùÀ¦Þ—£uäÕû¬§"¡„IG6©ÌWSgEŠÍo¨.6JB¨ºPnR©ªØ.ÑZPôóõÐ3W]¢µè,½¸DweB‘!Óʼnî‰7âè®j‡“áÅþÓo6kš[­|_ PqÖµ ]œÎu>•)¤PQF #4€ªñLRhôâ.Ïñ€Jh¬š‹=°i"k/Îɹ“fq™¶¸Ñ¯×ŽJ›)3©Œå5¨(É·ŽúÊhTG7sOÌ©(P ¡£„N1×srî$Â¾å½æ‘!²"e7ñóFö™}ÂùŸœ/6$:å®(d8þP Ïæ{íõŠåߘIF[×b‚Y%0:‚1f“ÂlRfžðJwø%—`©îô!avÓë\í£mÕt0AÖþ´†¹'ç”K³ç•PˆÜ*Æz¿«5ý¾·ÛmÄIŒõÏÖk´çy…£@¦6mêÍ”&µÿEׄìTšëº…Ð;åóhG.í£mô7ú…å ”puë”R~Œh7™)féÅ%c>8t®Âº#½øÞEÄñ¾›öCíÒd?P¸,ËL»8ûƒ³ð=ßÔ`<σp„¹óÖ`Z`Ì·v7έÔ6œ[´Dqdº½Úí6Vß\Å…w.LìõÞúý-%4±š(‰TÊ.–…Ðèe:•–¿ß@Q£ ï„XÿdëXG÷x׬EÐi®ÈÆÞ¿£…ÄSmÐzÙÔYq‰Ö©Lí¼Ð>Ö.\§ï¥æ<Ú.ÕéFº'ûnÈt@‘™RÎÿä<ºuÕù»d¬Gò azO-€ò¼Âîýâ»Ñëõpá§“»îK/.• Ó{ª]9ÞPö$ý×ðbëhKE0®[´;‹ÂdŒX†nšÄâ{C ÌcXùæÊD÷ Üúý-t«÷Y4¢¨hv*]dŽk¯éÚGt7*YÙèWÝ¢!P8 éJ“™4cƬÓ.ê[î×ú÷p`ßM.4Õó½—ûnÈÞC‘™2Vß\Å‰î ´µÍ8€U¶æBãËRû­^å{ú­Óèýµ·/ÒÝÇ»ZÊjž…a¨ŽmÑ»òÚ ÚGÛ*½c¥Èì ¥ù ¯œ?Ûª¦d§ïåm¸B]à=ÏSó+y!‚‰¿~- óOÍ«¥m¯²üã0VÓüú|ÜoþÅv‹®îÃÙª+ €ùº¡BòŽúJ¡/Êûnì9ž½ØwCöŠÌqþÇç´´µM‹(`s­ B*Õ*^]C@RxY‰£ù…3–^^µ_O·ÐØ.ËúÎ8º[¸,ou÷kobö tÀòh]0]Ç…„4s+~ïuþãÆoo`áÙã*íθ&…gñŽ+MtóX^ä íJ»yë¦I5š¶êÜ‹ÌDˆG,ÏŠ·š¹ØÍ {½ï†ì=™)ÁL» ¯é©¢¬uáõD¾Ó=¿s^Q;H“-Ñ2+}£(BpT}ÿ´›Î?=oöG¨Éþ|‰vYÆÒËKh?Ô.í_q…[ž¯¹ŸÀlE~ÁôžÚSã¨"¹?ë›ZäSf6B3ëÀ˜N""Õ†©´ü纮;àWŠ`œ!Bn¯%°Rö¾›Òïñ.ï»!{ 2§-0¢!L±UßYVÿàmÓDáÕå Ë/¼A3€ïûX}cu^Ñht¾Ô)uQi—åp#Tµ˜-¢ßSçÈì¼GåÂgY±Œ…e«o[Ñ0ÅðR¤4iòn°ª·Ú$YÿË:nýánüöz½ú}]Ø]bö|Qé–±~Ǥ~lë—4M4ôœÞ˜¯ttìóaåë¢TªˆN™¹G†D8Î`óÄ(ûnô Ô$X~uÙ¤–}Ï/jMYŠ«¿ºZê«Ë"ˆl#™) u´e.,®ãš¶[Cµh=$¥!aøôçõ §¿{z÷^ÐtéÞbù²{Ä5Ë®¶sY¶M%«V1¶‰äÈXí½úcs>…¼3¯íÎl6î–Ùdz/ŒL*5ª’IgeñZõ¼™n3;eæLƶž7Ú,¼®õxñÝ‹*rHÓ¾`uw Ô0dÃ-Ì'¡„@©¶%QQSiÜüÝM•6 ‚±fBÂ~X¼Þ¬¸MÝTÚr~ë3««*)jŒ9§6£|šÌꛫfÕåyðg}3D Xµ´¼ÙÈk·!5ÿtâ+'jÕBÇ1ZÖàyL$\¿p 0›;+¿%aÑ™¬•™4~|º­Ù¬1ØLMjÍ=âG”Cne7B„aX*òÛ«Ÿí÷µÁ˜÷[@¹YR ÖÅw/Ö¾nû°C‘ÙCÎ|ï >øÌÇúB9•;pÑ&U¦íâã,6ú³oŸU³©RSWuWÿýªJY;EFA§Æ„f8ÒDÕ {~'¬=Àô‚-}ÁÃpË…døöëkª€üTËD2Ú®¿T„Åñ˜È¦b‰"39 Ä@Ñ>lj yªl§ÂÌŽ* %̾WìiYxF­:ˆãØÍžY€L$RQx¸u»],¿ºŒ+?Ÿà"µ¿¬«‹úL.´z‘š¦ij¬n´Ù¦=À9T`P×ðJéáR“†Õ$ #ýy¯éÁkzè<¢¢_;‚Ñ]oW²jfŽÝ…éû>‚£“÷¢#e(2{ŒùMRó‡ µ:wÌšŒy´rÛúQÿç‘âî0J"ÄqŒàw¹€úÏæû‰ê*ÚJtôK! ÇÒªcû/SX¶Ðèš Æté÷ûêûˆ[Ô ’ÈLšÅ¤x’âi„F›f²”ÒÓçAŸG™IU;Ø˯.›&˜ ”Sƒ(œL„IuQõÔ¼‡¶BR8ÍÎäS=러C·ºþ0íÌvm€%A03,"Ì€õÏÖMc†6áô½bý~G ’QI`íãµâë1†Gþ½Ôé7ÚÜÔEf)¥ÆìœÿNCîÀeyÐ(î ÕR®2‘ð³Ü²©RE‹Ï-`+ÒÑ ²ôxÉ-ÚN™¹jïˆïª\»IiyE*+J"´š-ôÑÇÜs¸õ‡Ñ¢©(ŽÐû¼§.¼yg’'T€½Ì.æ‹h†Õ†>&ç~¸³(¦ÕT+ |_/ßó‹‹œeá2°ï&l‰ú}%¤A3¨¥p½ö'u!÷g|¬¶Ž_>QÌme€„,í·Ñ‚0P£±Ú–{Ÿ÷†®xî>n¹C{ži9–RâÌ÷Δ»ü† "›v`GݘH”ëôÿñžÿ‡çðÌ‘­ Èì1ÏÿÃó¸yëf9×oï|–zÊõ\P»†`?žû¼is¶›´»®;«R©—íϺÈŽtòc0V.zµo¾ÈÊu«ûF¬Á¼R®?¯A˜÷#rýýëj&"O1³bXMÃWŒåEf.€Iñóõù³× Ø]R2“û!zwvf'³ôò’Z=ã«…`ºÉÃJE•6p›_ÓDÉã86æ–“FJ‰‘¹‘(­E@±ãŽS£~_úý-láé¯>È7F\ötvþ*‚cΗSˆ6"Dw£Ûý†¿©ØkªB¿í~<ùùÖmÚÁl`š&ÍÚÇkè>Þ…ẅ \×E •:Ô7Bºög„ÚJÙŽÚ-¨¢5OµòÚŠ¼Ôë/†E|cÍ•U¨<º[Ïy$ NüO_›ÿ¢(*­Ö5€jE§®ÌÇzŽÃú>=×a>ŸHœœ;©œõœúëÎ|ÿLñõP]>é½Ôì´6#é8ê̪?ü?xäÞ^V7W©Ëå •q&¨v¥ËQï†è÷ûˆâa"Š"Ä1Ò,5›$«%í(¯4Fõ~HifzÖÿº~¿C¸/^³¡ÙÅòQ#·¦À¬¨ÆWµ-k¢ß=âçå¯=¤2EGHeŠp#T5¾Ø´ïÄ6Fséß.!ÚTÏöC¬¦ÎÿЦ«Ëí¾ØÍPQœÄcu5’ña$3%ô7ú€àXPª)Ü/¢‰ežš°#˜¬©ÈD"¼âÌÂ,CM˜·Z-´¿Ô6[·ºÓ¯vûèöR÷ˆ[ö²r,á°ÅN™ÈEwéIpk²^›QŽûGá X}³XgP5‘ýó‰^A¬/LZ€âDµuk!Ž’ý/úèýµ‡ëïïÜÚÅŸñ !u*Þt;¼ ÔtÞy¬£êtÖqêÁI)•õN¥ê ¶}C4©Í—¥šŒ½ž‡gpƒŽÈP[DH™)AßÊL¢ÝnC:ƒ]P¥¶d›™ý®#’þ†ugŸÿ]ùe¹åµûxB•{oEü¶èÜ4Ñ¥ßjjÿnyZÅ2.?Ì?ŸÄ%[ýîñniwýv\xç‚Ú›“Á44èºÕ@%D!<2ŒcS›‰ãŸ®:™áU;Å™_Üæ8¶ú>»9ùñoÔwÌpn)%•Þ+ÌK¥”èõzðÔ6¯?MR5š»EÛNv-Ëî*Ô7išŽ´wg\枘3KóìÈÔu]å® w¶hìA¸òË+X~uY™‡ŠÜñ`6(;ÂÒËKÅD¿î Ë'ýKÂRýX]q:õ¡->‚f`R˜zéfúÀbcŠ× —Þ»TÔ~¬ ÐnÑëõ  {·U\«óJ¥òôhÕr±‚@ÕÚœr ÐdÝK®ü\¥Í†aj}ˆK3Õl¡S£±š{éÁì&²#J) QÔf¢T9˜"»´ÜÜþãm3P§]…õÖoøˆ™Z„pƳ˜Ùê8õB+;G¯#šº*ï„+?¿¢ìR² ä>0¬{0…:¾êòÆïn柚/mîì·`å]G®pn„å pí8[²è “ x&ØÓ»öºæ›¶¢óXÇlš,Õb\áÝP¹,ïbÍŠL(2dÇÜøm.4yD£k,zà°ä]k±Z^ 1 ®Òëë뎚zkîF?€€ùä¹#¦ ÍŸUQ¾§Ü‚õfNS“©˜tºŽjwÕµ!-@{Õì6^ÃCЪÌÅä55mµó M„ò€èvÚù§çK»ê£,¯Éä]di–Z¤¥6åµ?­aî‰9´nsIeîÅFNÏñoÄF`t‡TÉ¢ÅòZÉÀQ‘“¶T Ç½Üæ¼Y+ŸíZÌ~H•‘é‡KËÈD¸ñ?7Œi£ínk_°lsGdê{ªs0·þp k\SNÈyD“JkïL>Çá7}ıÙkã{¾Ú8i­6Ö»[€rD#3iŠì^ÃSßßðá:®©Oø³>ºÇ»»sòö€¹'æàyÖæËFÉhë•ݶ!F2dbè‹Ò³ fUÀú'ëEοááúm¿üký/ëXÿË:枘3~c:"²#³8­1ئ¬?n?Ô6ûW t—™ï«ÌýˆLÀ÷ý‰žŸiÂqÍæKÛ£Lo¾Ü+ rð È‰c"ˆL­ ÐF˜áF8ÖóÜúÃ-àÀÂ3 ðš^©VóégŸšÎ(»+JG2ú7Ûw•P¸Ç\Dw#Ç“B³»ÞŒ‡X¾¡Ókxˆ³óOÍï™J]tïªF ¨ó&Q¸{çþŒbȤ`ºŒL»¢Û˜åÎ?úï°þçu3;¨»n»-Ùn0µ›Ê½nº4ø8l‚°\¥àm˜ï«ÔbiÕö½TÍãÔ´§†^(2¤¶ªì”µ?­áúû×ÑßèãöÚm´Z-¸Ž;PS˜œoXŽñè&w¦,Dºî7Šiîɹ:öibèæËÚ†?ë«Å`Pûez›½¢¨Þp!ck1Ù¬™H¤÷ÒRºfé契ÒgÃR`º;ªôÿÕZLµè_I¹®«RfÖfÅ8‰Kµ%¯é©ʼnÄâs‹%ïµ½îã]åT0ã—#8G`áÙ@ØWsJRÊ¢cN/OcÛ2© Š Ùž§Ì}ßG«©”M›²eןfùÞ–<2Ðé-$*U#¥„ äÈ©šê¦ËêÂ4[xF®É dPÔhd" ¯µ<Õ'³übìånОÚw#3©.ä–7Ûn pÚ‹ïû¥}*žðJÌyYûx 'çN"Ü%Ó¹3† (2dl.¾wQE0¾¯lõ˜ÍŠp€“_9i.à2‘ðúh?Ô6ë†S™¢%Zˆãžç!J"´Ûm¬|se[»û¿½…g á€5©/wÀ©ÖdÄý#80©W»™ øêcÌÑfžY|&¥Dš©ôÓâ ‹æóu¥ØºwMäb„>7#õ¾Y›`?0©ÆÛk·•øL¨ëaPdÈØ­¢!T}E.…5‹mÏoŸ†Š`ô×Ɇ6ó}1‰TîÇ£2$å%„Z&f*Ç1¬&cíµÊ‘Œ½rØþ÷ˆ[<ÞKU+uÀÏ¿?³¾?xÒ$5îÔ ¬S’IDATÏ.¨ÏgyŠí;¹'æàθ%ï6½øÍoø¥”!¬æ8)%܆å:-UTÖ=Þ=ð®Ódo È±XùæŠj…ÍgU܆šº¯v-Ùöñö£h sR™PJ©RO£ÖÂ0„×ñJ ÒìÚŒù¼5Zªá‚ãqÕÊhk Sïűk/¦‹ÍSÊ -$h][úu›ÛìBéó£¦Øæžœ3ŒI•ÙBo¥Èªkl6)%\ÏE*rÍ$Ö?YéŠ ‹“s'KEv]02gÈ£ÕýeL,g|ı²í%e¦ ÕÆY Švõöz€XÆe±æwt‡`í¹IŠÈ&½—šf-D‘ŒLäGý\8îÁD:ú<¹3Jàå5¥Ì+¥ugñ¹Åâó[4tï œêZØVƒ¦vdYü´ålHA@‘!‡"CÆBGžç)“EkåòHXÝZº6 ¥T5…l´ ûõOÖMË´®=ØBg.ðZÐî“:PJ½å•Ñ2“hk+q’(GFR–šªM¥ˆÇ-G<¦mZ7 4.x.(RoPÖ/ÚOMG0ÚèÒ6 •™4Ö;ú8|×W}V$ƒ ¦¦¥ÏãAt&{ E†ŒÌê«¥”“×ð.ðÛa.ð¥UÍ©“Ž.T»!¼¦‡(‹LªÍÜ¡7„¹ ëÈ&ÚŒTJ,ÌÇúx¶z´'à;tà5=¸®k&ç=Ï+"²¬œ‚‹6Ë‘Nº™šOÝdàq‘B­ŽF¦ºÃ¢ÍÈÔp´éfÏóLD”»ù†ºIÏTRyG¬æ†!¶›™{rnÏ[²ÉÁ"CFF¯ë•™,j¶7Ùv éêÒ‘ëºèg}¸®‹Åçqý7÷_n¶þÉ:‚ 0Ýi¥b÷È¢a¤å¶êL©&àðسþ—Á4R÷ñ®ê°kxfIÛ°ˆiØq˜ˆË®í¥f‚R*ÏŠxôâ6` ï6§ˆ8MM,ÀŒðhÁisAºÀÍŽ!(Ù{(2dd†Î›T/ì÷cÈD}š¥æÎPàíFÝUbày*¢qùÅQÀ¤¶¶Š0ª5{c¦”½;½m»­ª63Ýã]årì«ÎA3PÇâl}ºÀ[Ôbf*µ˜X¸Ž6#´=%èv;¶Ì$|·èò³…eàÑŠdl'í˜à Q¢jnqcþ©yD›Ñ–sCK//ÁùPn¹££`p€P­çy¸øîE¼þ­×wáÌ‘½„"CvŒvK>ÿãój>Ŷ8q¬•ÈŽ@Eˆ“Xu‘%*Ò×þíþŽËUºwÑ>ÚÚEew©„ZŒÍÚŸÖÐ}¼‹8‰ Ï7kO´ÁŸñË)JEMÌú>]ÿT-8“iÙÍùÆÏ$…ç(¯4ßñÕÐkVnJX~uY5#xüµÀÎoøï‹ÙЙ{²y(\¨/ÿì2à•~eOÎ+©Š y`N}çÎÿø<"•hAykI©¢ ÉDw#\øéèE~›v»mœˆbÒ=½—ÉÁ‹b€Â´3•)܆Û¤4MS¸3n)r°²#Š,-6fVܪÍ~Ÿ†j7BàäÜIÌ?5s?:‡•o®¨öêY•" šy,ÿý#…·Ì$|á—²|³hÃCœÄ¸ú««¸ùǛۮy ûŠ ™§¾sjàsç|¡£Ú’O}{ðÿÇeZŒ.zÇw‹bÿAªÅج²nÚ˜µÄIl„Üv›>âšÆv¡ÔvÓÞ_{…·Z¾¢¹T³É¯§¾uJ¥8)®¾±Zª½øžZ &®ëî³qÊh¨÷)¢ÍH­âNbt»],¿º-¬b£<§ã W=o¾P”×T¨k?¢²¯¨šÍµ__ÛíSKj‚"Cö«o¬¢ûe‚ G ˜^ÜuêÛ§l-féfjܧKkl´¼m9’Qé±:'Ó>ÚÆíµÛˆgc´Z­Â¤4l_\4@¾ïãÊo® Ýn«ÆŽ†k"]›ƒÂÂ'\|á—š´à¸ Õd ÷ä`ð›>NtOPd¿×@È(œœ; @]˜ÌÊç¼Eú¥¥—t-¦ŠœÔ5(ãl`Yå”­î2³ú:S“ýi–¢ÝnãÆÿÜÀúúº©—¸N)öï\zï’êËSd^ÃC0ÀŸñ‹ZL£ˆhlá1M! Qlòt`"!ÏóÌó­ç|~·O+© Š ™zN÷4:ÎÀæGû!¢(Âɹ“¶3Œ[¿¿…¿½Q´ƒç‘\¸¡>Ž7b3/Tz܈!‰°¯j,ý~ßìïYûx ×s½;=„ª–mªù¦ó?9¯¢×5 …¢º©S ‰Ý”`¯èÖ^C jú  " ÓoÞíÓJj€é225,¾°¨ŠÈ(çåOtO¨¢²ã–.Tq#Nbô7ú¦5÷°që÷·0÷äœZÝGåÍ8¯ÍämÊi’š5ÝÝ5lÍò­ßßB÷xW¹S'j•ƒï©­¨:’ fƒ"BqP…~Ö£Þc“É¢¹ÒÖ¬k3ðro¼fph"ÓƒE†ì‹/,ª V+0…c»ÍõüÏW€¿»™HsG ¨tO†ˆ6"œùÞ™½}1{H¼›µË&5fÍËèum%½—íÞ ±üË`Þ#{j`> •5ÀP‹óý•õ)Rø¾š÷Ñ·dC‘!»ÎÒËKšJXZ­–)ëî¦4S5Ýdº§‰³oŸUâ“©ŸƒäQ¶#ò"h¥ ½Ní÷û;nˆXÿd§¾sJµ-ëve”S^:Â4µ–a›R+{p4Õ žz0Ô÷ýC4(2dWY~u­V ¾ï«‹¢#Ì®I¡8^ÉkËm¨Tª£êÜÏ¡×ëañ…E„ýg¾x£`xa"„D ¿>˯ªHÆó¼r{³mƉòÏg%7PlêL³¼»Íj ûŠ Ù5VßXU¾cMo@`´½ðÌlÌL¤8Ôd!>úïmp½)²åý1¹P?è26áø³~éùá¨Ï›n¿Ê|ÌXWÛäÔ²¸1;sȾ†"Cv…ÓoFð¾Ùøh{›•.¤ ÆrD·ÑÚûi ÈԪ⥗píßÏ\Åâs‹&u%7oÝ,6gZ¦—“Zw`wói«™ˆ¦²âyd¬”¨ý|z54ÙÿPdHíœýÁYcžè5s3EϺóFq¡òE1yžÊÔXŽèšŒëºÅfN=ÝŸíÍëÚm–^\‚ßÌ'íg}³%síã5ÕÝU™ÔŸXMÃ)j<¾(G4vÊÌnS繫ûnR™{‰È¾‡s2¤VN÷´i{µÝzí¹¿áÃu\5AŽbÞBO”ëÅWf€/ïr 𼆝éaùË{ù2kgùËZ‚Ùív[uä5}|ð›°ðìBñ…Vdf):upñ½‹t~.¼saÀ®¿úhºÆÆ|;òÊ?ÖÖ6:]Jö7R+Á±¾ç›6e¯©#hp…k&ÄKB‚b O ž07çÚœ±é«.µ£­=~¥õ±òÚ ZG[ŽhI L«ÕR¢F®~{U}±~ý™¯«N-ÏÇÜWç°úæê‡ýüÆÍX‘ €R†s2¦ËHm¬¼¶Rˆ¶Ae €½HËÎéëÔUÄv…k6?ƱJ¡!)Ö ¬¾¹Š ïìl…À´²úƪI™T™o >æƒ2“Xù—…Üøí ,½¸d6’vî`å›+;²Óíf«¼a3_à7üÁ÷oTtä••##íP@ö?ŒdHmA`"ßW¹ü¡ÞVîmeó@]ìv…«ލMŒf—ü쥟V‚ ( ̬ªgµš-x g¿Ǫ̈…ÀÈLͳÜWy‚ Ðýr+¯­Œ yÁÀ\‹ã–bì”™UC2¦žI„ô^ªVv“}E†ÔÂâ ‹è<Ò)Ì,Çê¼Å¨æûl³E Ì f²9ÄNß)jVóOÍF1^zñ¥R$éû>|ÏGûáöØÇÅ¢(0áŒåm6¬F3ùFÓ8îµFö?R í£mm̸f°NG £Ž|O§€J(šlÁŽz~ሢ6ñƃÕ¦…åW—•(äL¨ ”zÂ^o¢ÔÒy¤ƒàh€öCJ@ºÇ»E›³ðšž©iyž7¶Ë±ŽŒì=fæth0íÔÖçžSV7Z¨Ò,->fMæ@@‘!µù÷ЈdÜ”ŠÕ…d6,nÑìwŸ[T–M«ÉaHD¨SÕÏ-uîM7^Þ<¡7Wjá9ýÝÑ]ޝ¿]¹<‡ÊåÙ”•™4Bc"Ë+Mf…)gõ1Žce“DH¥˜4MÅÑÄ—Þ‘½"CjÁkzf RO†(O¦ƒ¶žÉ¿_/ÆòÜ#nÙõwŸ£Sb¾ç·c¹Ù«Žõ×Úÿ_ø´m¾þz#\ž¯¢Ì1¸òË+ʦf#RQM•"³ºÙŽt*ÿoºÑP‰„òæ-H¯üó+pÉ4A‘!gõÕÒ®x³gIJ:ÙÑ<Êm²vû¬p„Ù¸¸ôâÒd^Èá6\µ¬¡”Îã°zEÅ„ràûóùSÛÙA£D¸¢¿ÑGØ•ÐÜ wg+Õ¥A«MœÄ&&3©<é´3Aþù¯ÿ߯}\dz¡È‰Sµí¬î±Jªk$*“ìÀ ¨å}¶ß-f„ÅÜO. C#˜ûaŸßl0âÑ͸\ûõ5DwU$n(¡ ÃÐØØ”Ö È­# ¨åÄIlnHN~õäØÇD¦Š ©kÎÅÔÛQ$c_ ¬UÂ:rŽPÇ}Þ)EÏý˜¶ÞJ-k¬6a«ø>PËÚaË÷…Ÿ^@†ˆ7bÑ„aÙÄ‘Y l]£Ñ]i:² ý;½™n8ŒI&ΙïŸÁå_\.TV.˜;©É˜œ>ÔÀ_GÆ4ÈïŒÀo´ëº¥T `57Œ{þìVk_‹ëº¦®µô@çÙœ->™©†0 ˆ¤¾1Ы £ÍH=Æ^ÿÖë;>2½€?I2Tç%â$.Mø½oDZ)½@¸ûaÑîjÍkìk†E|•=1#Ÿ?»è.Êçoýg¾§ß:­Ž·iS™Bİ„%É£ç~tîÁ†L%R öw*S¸ ·”«×zd˜¼Þ%£Se&ŴωîFh5‹šŒì tÊ#„²âIï¥Å|Ërî‡J ìÕØ~Ãrk¶;SÍ2‘ï†Îˆ B‘!µðÊ?½‚ÿóC5p'¤òÓ»ç·ZÑ»VMÆt-éy‹<‚ÑC‚!’Ñ­¼€r"n5[E·^¾ÀmœHÆŽõ9ªc¢þÔ·Ës-zàÓÆ0 (‘ÃE†ÔF)rѶÀŒq¡´ÄX§Ø‚“?^øéþ¿3¾òó+8ûöYåTíºEŠK–MEGÂªÉØíû1QÏaJ°»ŒÔÈó‹Ï«T–m"­y T&À+)•¸”.ŒŠ.¦ÍbN# ÃÝ‘5ÑëõÌ ê¡ó# „9ßyäÅ‘™¨?Q™~(2¤Vd2”R8¨õõ×9ƒ¦‹Z¨ªí±©LÞ wda?­¤IŠÞç=¸Gܹ’-½Á*mÍUë–T¦…e&qæûgvåµÃ E†ÔÊßÝ@x7,ÚŒ“tëÔWeR\?V½­ô|zO}Üï÷\žÿÚ¿_Cx'Ÿ±"[`KÞ`¶;rVˆ{ÇHe¹D‘z|ý_Ø.LvŠ ©• ï\@ïóÂ;jxÀÀä·yÜbÅï°¯×BöC|úçOwçÅì2~zQ¡w§§C p6ámûh ÕKK/íÞ‹ ‡þIí„wB# é½ív0ÅlÓ^ëÄ26Ej-8Æ E¤“nªtÒÍ[7÷½Ìýè}Öƒ<¦D¢u´¥<ÚWué‰ü|YçMŸW-,ÕÉú¯Ím¯_9dPdHí莯³oÓáív[ T:E÷”ý8¬FÇ1ÒÍÔì5YûãÚ@»a;rü¦_>_B œ7»†“n¦øÚÿ¡À݇"Cv3ß;£lH2(™qÌõ˜"7O܈Kµ„pCEEë^Ç•_^ÙÃW³{h‘>ÿãó¦C/ŽcÓ.jÀRŸ7×qÕ4}î)ÅQ‘ª$d—¡È]åÌ÷•ФYª6eêýôùo¢^¡,„2½ÔW©LÑßè#MSÄñ¡›Sß9euúP4p·hÆGo³§¢½BhÂüÙŸPdÈ®£[gÏÿ¤<.„@¼Q˜*Ú‘KE´ A1àxöí³ÅúkßLßé#Š#NÖ“©"CöŒª ‰æü•]y·æÌ÷8ãBö2uÐŽ„ƒçd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPd!„ÔE†BHmPdþ;vl“Faô×PXº°c¸ °1¶Œ€#°4,ðå%/çLp»/¹dD€ŒÈ2"@FdȈ ‘ #2dD€ŒÈ2"@FdȈ ‘ #2dD€ŒÈ2"@FdȈ ‘ #2dD€ŒÈ2"@FdȈ ‘ #2dD€ŒÈ2"@FdȈ ‘ #2dD€ŒÈ2"@FdȈ ‘ #2dD€ŒÈ2"@FdȈ ‘ #2dD€ŒÈ2¯33—Óeõ6ñÜ”—™ù[7€¹ËÈæã¼z›yÿúœû÷q33o¿×Õ{ØÐ#2·ŸÕ;ØÐ?‹¡ "ë9IEND®B`‚ghemical-3.0.0/docs/user-docs/using_sf.html0000644000175000017500000000225411563552731015556 00000000000000


2.3 The Simplified Force Field

SORRY, THESE DOCS ARE OBSOLETE!
The "mm2gp" type project is for simplified protein models
[1].

Protein molecules are modelled using 1-3 "virtual atoms" per amino acid residue in this kind of model. Several chains and disulphide brides are supported, but non-natural amino acids are not. Files can be imported in the PDB file format. The force field is fully functional with an initial parameter set, and algorithms for geometry optimization and molecular dynamics are available.

There are no sophisticated tools for model building yet, but they might be coming later.



ghemical-3.0.0/docs/user-docs/Makefile.am0000644000175000017500000000021211563552731015077 00000000000000SUBDIRS = images helpfilesdir = $(datadir)/ghemical/@APPVERSION@/user-docs helpfiles_DATA = *.css *.html EXTRA_DIST = $(helpfiles_DATA) ghemical-3.0.0/docs/user-docs/MD_viewer.html0000644000175000017500000000322211563552731015616 00000000000000 Ghemical User Documentation: MD Trajectory Viewer

2.1.10 MD Trajectory Viewer

Once your have created a trajectory file with the Molecular Dynamics feature you may view the trajectory file it produced using the MD Trajectory viewer. To start the viewer, select MD Trajectory Viewer from the popup menu This will open a file selection dialog. Select the trajectory file you want to view in this box and then click on Ok. Make sure the trajectory file was produced using the same molecule, otherwise Ghemical will close.

A dialog box titled Trajectory Viewer should appear. The buttons in this box control which step of the simulation is shown in the graphics window of Ghemical. The begin button rewinds the simulation back to the first step. The Prev button displays the previous step in the simulation. The Next button advances to the next step. The Play button displays every frame in the simulation from the beginning to the end. The End button advances to the last frame in the simulation.

Screenshot of the MD Trajectory Viewer Dialog

When you are done viewing the trajectory click the Close button to close the dialog box. While the trajectory viewer is open you will not be able to make changes on the main Ghemical window, so you should orient the molecule to the perspective that you want to view it at before you open the viewer.



Return to index
ghemical-3.0.0/docs/user-docs/perspective.html0000644000175000017500000001215011563552731016266 00000000000000 Ghemical User Documentation: Changing the perspective.

2.1.2 Changing the 3D-views

On the left toolbar there are 7 tools to change the way the current project is displayed. Ghemical stores each atom a point in the cartesian coordinate system. The first point is The X-axis is parallel to the bottom of the window, the Y-axis is parallel to the side of the window and the Z axis is pointing out of the screen. The molecule is from the perspective of a camera focused on all or part of the molecule.

  • Zoom

    This moves the camera either further from or closer to the molecule, effectively zooming in or out of the molecule. To operate the zoom, click on the Zoom button on the toolbar. Left click on the view window and hold the mouse button down. Moving the mouse up will zoom out of the molecule and moving the mouse down will zoom out of the molecule. Releasing the mouse button stops the zooming process.
  • Translate XY

    This tool moves the molecule in the XY plane. To operate it, click on the Translate XY button. Left click on the view window and hold the mouse button down. The molecule will be translated in the direction that the mouse is moved (up, down, left or right).
  • Translate Z

    This will move the molecule along the Z-axis. To operate it, click on the Translate Z button. Left click on the view window and hold the mouse button down. Moving the mouse up or down will translate the molecule. This is similar to zooming the molecule, except in this case the molecule will be translated instead of the camera.
  • Orbit XY

    This tool will rotate the molecule around the X or Y axis of the focus point of the camera. To use this tool, click on the Orbit XY button. Left click on the view window and hold the mouse button down. Moving the mouse button up or down will rotate the molecule around the X axis, moving the mouse button left or right will rotate the molecule around the Y axis. Releasing the mouse button ends the orbit operation.
  • Orbit Z

    This tool will rotate the molecule around the X or Y axis of the focus point of the camera. To use this tool, click on the Orbit XY button. Left click on the view window and hold the mouse button down. Moving the mouse button up or down will rotate the molecule around the X axis, moving the mouse button left or right will rotate the molecule around the Y axis. Releasing the mouse button ends the orbit operation.
  • Rotate XY

    This tool performs the same function as the Orbit XY tool except rotation is performed around the camera and not the focus point. It's operation is identical to the Orbit XY tool.
  • Rotate Z

    This tool performs the same function as the Orbit Z tool except rotation is performed around the camera and not the focus point. It's operation is identical to the Orbit Z tool.

Moving only some atoms

It is possible to move only the selected atoms. To do this, select the atoms you want to move with the Select tool from the left toolbar and click on the tool that you want to use (Translate XY, Orbit XY...). Now hold down the shift button perform the translation, rotation or orbit. Only the selected atoms will be affected by the operation.

Viewing only some atoms

For some molecules (especially macromolecules), it is preferable to only view a portion of the molecule. The Clipping tool allows the user to do this. Clipping is controlled by selecting the Clipping icon from the toolbar and then left clicking on the View screen. Clipping is adjusted by moving the mouse up or down while holding down the left mouse button. The amount of clipping is determined by a scale between 1.00 and 0.01. When clipping is at 1.00, the whole molecule is displayed. All values lower than that show only the frontmost section of the molecule determined by the scale factor (ie, when clipping is 0.50, only the frontmost half of the molecule is shown). This scale factor is increased by moving the mouse up and decreased by moving the mouse down. In the console window, the scale factor is displayed after every adjustment to it, as well as size of the displayed section in nanometers.

clipping = 0.99 = 6.03407 nm.
clipping = 0.865 = 5.27219 nm.
clipping = 0.7675 = 4.67793 nm.
clipping = 0.5875 = 3.58082 nm.
clipping = 0.3825 = 2.33135 nm.
clipping = 0.2575 = 1.56947 nm.
clipping = 0.235 = 1.43233 nm.
clipping = 0.23 = 1.40185 nm.

In this example, a ball and stick model of the enzyme CYP3A4 is clipped so that only the frontmost portion is displayed.

Non-clipped CYP3A4.

Non-clipped CYP3A4.

Clipped CYP3A4.

Clipped CYP3A4.

Return to index.
ghemical-3.0.0/docs/user-docs/energy_vs_torsion.html0000644000175000017500000001215711563552731017522 00000000000000

2.1.12 1D and 2D Energy vs. Torsion Plots

For studying molecular structures and their energies in detail, it is possible to calculate plots that show how energy is dependent on torsion angles of a molecule. We will get 1D or 2D plots depending on whether we use 1 or 2 torsion angles as variables.

We use 3-chloro-1-pentene as our example molecule:

example case

We have selected from the popup-menu "Render->Rendering Mode->Label Index" to make the atom index numbering visible, and also "Render->Views->Attach/Detach This View" in order to make the graphics view and the plot view visible simultaneously.

Now we need to define the bonds (or more precisely, the torsions) which we wish to rotate. For the first torsion we select atoms 2-1-0-3, and for the second torsion we select atoms 1-0-3-9. The direction in which we select the torsion is not relevant, but the sequence itself must be correct.

Now let's create a 1D plot that displays the energy vs. the first torsion, using AM1 to compute final energies. From the pop-up menu we select "Compute->Plot Energy vs. 1 Torsion Angle...". The following default command string is then displayed:

make_plot1 A B C D 36 0.0 360.0 250

The letters A-D represent the atom indices, that we have to replace using our values 2-1-0-3 determined above. If we wish to calculate the final energies with AM1, we also append the values "2 0" to the end (2 tells that the method is AM1, and 0 tells the total charge to be used in the calculation):

make_plot1  2 1 0 3  36 0.0 360.0 250  2 0

The resulting 1D energy plot is the following:

the 1D plot

If the plot is clicked using the Orbit-XY mouse tool, it will display the structure in graphics view window and print out the energy at the console window.

Now let's try the 2D plot, using both first and second torsion angles as variables. Again we select from the pop-up menu "Compute->Plot Energy vs. 2 Torsion Angle...", and type in the following changes to the default command string:

make_plot2 A B C D 36 0.0 360.0 I J K L 36 0.0 360.0 250

Since our torsions are 2-1-0-3 and 1-0-3-9 and we wish to use AM1 we will make the following modifications:

make_plot2  2 1 0 3  36 0.0 360.0  1 0 3 9  36 0.0 360.0 250  2 0

The resulting 2D energy plot is the following:

the 2D plot

In the above plot, X-axis is the first torsion angle, and the Y-axis is the second torsion angle. The colours of the plot indicate the energy; green colour means low energy and red/white colour means high energy.

Just like in the 1D plot, the structure is displayed if the the plot is clicked using the Orbit-XY mouse tool. In addition, the Zoom mouse tool changes the colour scaling of the plot, making it easier to find the desired details from the plot. The following is the same plot as above, but using colour scaling that better shows the lowest-energy conformations:

Following is one of the most probable conformations of 3-chloro-1-pentene according to the above plot:

the minimum-energy structure


Return to index

ghemical-3.0.0/docs/user-docs/introduction.html0000644000175000017500000001316211563552731016462 00000000000000

1. Introduction

Ghemical is a computational chemistry software package released under the GNU GPL. It means that full source code of the package is available, and users are free to study and modify the package. If you wonder about spelling in the package name, yes it's intentionally a bit "wrong" (originally inspired by the funny name of the excellent spreadsheet program Gnumeric), but feel free to pronounce it just in a way that is comfortable!

This document describes the user interface of the Ghemical (version 2.00), as well as the main features of different components of the program.

The main elements of the user interface are the main menu and the main toolbar.

the main menu

The items in the main menu cover the features:

  • File : Create new projects, Open projects from files, Exit the program.
  • Help : Display the About Box and this User's Manual.

the main toolbar

The buttons of the the main toolbar are mouse tool buttons. One of these buttons is always pressed down, and this determines what operations are done when the user handles the models with mouse. The left mousebutton always triggers the mouse tool operations, and the tools and operations are the following:

  • Draw : Add atoms or bonds to the model, or change the types of existing atoms or bonds in the model. 
  • Erase : Remove atoms or bonds from the model. 
  • Select : Mark atoms selected in the model. Selecting an already selected atom will de-select it. 
  • Zoom : Change the zooming of this 3D-view. 
  • Clipping : Set the near and far clipping planes for graphics rendering. 
  • Translate tools: Translate the "camera" which produces this 3D-view. 
  • Orbit tools: Orbit the "camera" which produces this 3D-view around it's focus point. Practically this means that you can rotate the molecules in your 3D-view using these tools. 
  • Rotate tools : Turn the "camera" which produces this 3D-view. Practically this is means that you "turn your head" in the 3D-landscape that consists of the system you study. Use these tools with caution; you might easily "lost" your system if it's a single molecule. 
  • Measure : Measure distances, angles or torsions. Click a sequence of atoms (like with the Select tool) to define distance, angle or torsion.

In addition to these standard features some of the tools have some special features:

  • Select : The selection tool can, in addition to atoms, select objects (for example: spotlights, color planes and color surfaces) that are rendered as opaque (non-transparent) objects. In order to select transparent or invisible objects, you have to use the "project view". 
  • Translate tools and Orbit tools: These tools work differently if you hold down the modifier key SHIFT before you use the tool. In this case the tool affects not to the "camera" but to the currently selected object or to the currently selected set of atoms in the model. Using the SHIFT key and these tools you can translate and/or rotate the objects or atoms/molecules in the model. In addition to the SHIFT modifier key, the Translate tools have an another modifier key CTRL. This makes the tool use the object's internal coordinate axis in the translation instead of the camera's coordinate axis. Therefore, by using the key combination SHIFT+CTRL with the Translate Z tool, you can easily "scan" your model using a color plane object.

In addition to the above topics, the following small tips and tricks are worth mentioning:

  • In most views, the right mouse button will display a popup-menu. 
  • All different "views" of a project are grouped into a single "notebook" of the project; there is a separate "page" for each view. The 3D-graphics views can also be detached from this notebook; take a look at the "Views" section of the popup-menu. Using the "detach" option you can use multiple views simultaneously, which is otherwise difficult. 
  • At the bottom of the main window, there is a text buffer area for displaying text information. 
  • The "volume rendering" object is different from all other objects because it is connected to a "camera", and actively orients itself to this camera each time the camera is translated or rotated.

1.1 Changes from version 1.00

The most important change from version 1.00 is that the separate MM/QM/simplified project types are united into a single project type. The type of the calculations are now selected from the "Compute/Setup..." dialog from the popup menu.



ghemical-3.0.0/docs/Makefile.am0000644000175000017500000000002411563552731013174 00000000000000SUBDIRS = user-docs ghemical-3.0.0/COPYING0000644000175000017500000003514311563552731011255 00000000000000GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS ghemical-3.0.0/depcomp0000755000175000017500000003305211563552731011574 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects # Copyright 1999, 2000, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. if test -z "$depfile"; then base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` dir=`echo "$object" | sed 's,/.*$,/,'` if test "$dir" = "$object"; then dir= fi # FIXME: should be _deps on DOS. depfile="$dir.deps/$base" fi tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 ghemical-3.0.0/TODO0000644000175000017500000001135711563552731010713 00000000000000"This file was created with a spreadsheet program and saved as CSV text using comma as a field delimiter and quotation mark as a text delimiter.",,, "Priority (1-5):","What is planned:","Who's working on it:",Comments: 1,"improve the project view",th,"This might eventually remove the console dependence." 1,"port to gnome 2",th,"Not much choice here -- need to stay current! :)" 2,"a CORBA interface to Gnumeric",th,"It would be nice to send some data to a Gnumeric (or any GNOME spreadsheet program), allow a user to inspect/modifit, and then read it back..." 2,"better MM forcefield",th,"I'm working for some improvements for molecular mechanics force field and it's parameters. So, I expect that some improvements could appear soon." 2,"input file generators",th(?),"Offer users an easy way to generate input files for other programs (mpqc, gaussian, mopac, gromacs?, EGO?, etc...)" 2,"multiple coordinate sets",th(?),"The file format currently supports having multiple coordinate sets in the same project. Ideally, the interface should support this as well--it might make copy/paste and other features easier." 3,"calculate properties",-,"Like in Spartan, which has a dialog with: formula, molecular weight, surface area, volume, total energy, HOMO/LUMO energy, dipole, etc..." 3,"calculate symmetry",-,"I actually have code to do this--calculate the symmetry of any given set of coords. Need to import and tie in." 3,centroids,-,"For measuring, it's sometimes useful to define a temporary dummy atom as a centroid. (Either cartesian or mass-weighted)" 3,"constrained geometry search",-,"Similar to setting an angle, bond length, etc. it's useful to do a geometry optimization with certain values fixed. Maybe a simple way of doing this is to keep a list of contstraints and ensuring these are set after every step." 3,"detect bonds",-,"Currently the file import doesn't attempt to determine double bonds, etc. This would be useful." 3,"draw dipole vector",-,"Maybe a Draw_Vector object that illustrates the dipole vector including scaling to the appropriate magnitude." 3,"export graphics",-,"Ideally, the engine should allow exporting the graphics--e.g. create an offscreen buffer that's potentially larger than the screen and then save it to a file. Mesa off sceeen rendering??? RayTracing???" 3,"file format",-,"New sections for the file format (previous versions would just ignore them): !UnitCell !Charge !Hamiltonian !Basis etc..." 3,"file operations in QM",-,"Not much to say. These need to work--maybe through an all_atoms interface class." 3,"import trajectory files",-,"Trajectory format should allow importing trajectories from other programs (VMD pops to mind)." 3,library,-,"The library/ directory could have one level of directories, then a bunch of Ghemical files. So a menu could contain items for each of the directories and these would list the files. Choosing a file would Open/Insert it into the current project." 3,plugins,-,"We need a way of allowing plugins written in scripting languages like Perl or Python. These could interface with other programs, perform various changes on the molecules, etc." 3,preferences,-,"Need a preferences dialog box and the ability to save settings to project files as well." 3,"QM file import",-,"Ideally, the QM mode should be able to read output from other popular programs (e.g. Gaussian, Q-Chem, Jaguar, HyperChem...) -- maybe this could work by translating the eigenvectors to MPQC format?" 3,save,-,"The SaveAs menu item should also have a Save for just saving the file to the current filename/path (if it exists.) If no path exists, this should work like the SaveAs." 3,"set length, angle, torsion",-,"Some tools to set bond lengths, angles, torsions, etc. to particular values would be helpful." 3,vibrations,-,"It would be nice to animate vibrational modes based on QM output from other programs." 3,"volume / surface area",-,"Spartan calculates the volume and surface area of a model--this would be very useful for comparing solvent properties, crystal packing, etc." 4,"recently opened files",-,"We should use the gnome-history interface to have a list of recent documents." 4,"select lasso",-,"Ideally you should be able to drag the select tool around and select a region of space. This would be a bit like the lasso or rectangle tool in GIMP, etc." 5,copy/paste,-,"It would be great if the current selection could be copied/pasted. (Cut is probably not quite as useful.)" 5,revert,-,"A revert menu item would be nice--silently close the current buffer and open it again from disk." 5,undo/redo,-,"This is a bit complicated, but it would be fantastic to have an undo/redo feature to undo the last action. (This is especially a big deal if the geometry optimization screws up.)" 6,"new builders",-,"Additional builder features besides DNA and peptide, e.g. polysaccharide" ghemical-3.0.0/po/0000755000175000017500000000000011645354541010712 500000000000000ghemical-3.0.0/po/de.po0000644000175000017500000020570111634154324011562 00000000000000# German translation of ghemical. # Copyright (C) 1998 Jarno Huuskonen, 1998-2008 Tommi Hassinen, 2000 Mike Cruz, # Geoffrey Hutchison, 2001-2008 Christopher Rowley,2008 Naosumi Yasufuku. # This file is distributed under the same license as the libghemical package. # Translation by Chris Leick , 2011 # msgid "" msgstr "" "Project-Id-Version: ghemical 2.99.2\n" "Report-Msgid-Bugs-To: Debichem Team \n" "POT-Creation-Date: 2011-07-28 14:59+0200\n" "PO-Revision-Date: 2011-08-30 21:51+0200\n" "Last-Translator: Chris Leick \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/custom_app.cpp:100 msgid "Added global light." msgstr "Globale Lichtquelle hinzugef?gt" #: ../src/custom_app.cpp:114 msgid "Added local light." msgstr "Lokale Lichtquelle hinzugef?gt" #: ../src/eldview_wcl.cpp:162 # hinter diesem String folgen Koordinaten msgid "No data available," msgstr "Keine Daten verf?gbar," #: ../src/eldview_wcl.cpp:167 # quantum mechanics msgid "must be a QM model!" msgstr "muss ein QM-Modell sein!" #: ../src/eldview_wcl.cpp:167 msgid "please calculate energy!" msgstr "bitte Energie berechnen!" #: ../src/gtk_app.cpp:92 ../src/gtk_oglview_wnd.cpp:38 msgid "File" msgstr "Datei" #: ../src/gtk_app.cpp:93 ../src/res_gtk/gtk_setup_dialog.glade.h:5 msgid "Help" msgstr "Hilfe" #: ../src/gtk_app.cpp:95 msgid "New" msgstr "Neu" #: ../src/gtk_app.cpp:95 msgid "Create a new file." msgstr "Eine neue Datei erstellen" #. N #. ^^^^^^^^ #: ../src/gtk_app.cpp:96 ../src/gtk_oglview_wnd.cpp:40 msgid "Open" msgstr "?ffnen" #: ../src/gtk_app.cpp:96 msgid "Open an existing file." msgstr "Eine existierende Datei ?ffnen" #. O #: ../src/gtk_app.cpp:97 ../src/gtk_oglview_wnd.cpp:44 msgid "Save as..." msgstr "Speichern als ?" #: ../src/gtk_app.cpp:97 msgid "Save a file." msgstr "Eine Datei speichern" #. S #. { "ExportGraphics", GTK_STOCK_SAVE, N_("Export Graphics"), NULL, N_("Export graphics"), (GCallback) gtk_project::popup_FileExportGraphics }, #: ../src/gtk_app.cpp:98 ../src/gtk_oglview_wnd.cpp:49 msgid "Close" msgstr "Schlie?en" #: ../src/gtk_app.cpp:98 msgid "Quit the program." msgstr "Das Programm beenden" #. C #: ../src/gtk_app.cpp:100 msgid "Contents" msgstr "Inhalt" #: ../src/gtk_app.cpp:100 msgid "View the User's Manual." msgstr "Das Benutzerhandbuch ansehen" #. H #: ../src/gtk_app.cpp:101 msgid "About" msgstr "?ber" #: ../src/gtk_app.cpp:101 msgid "Information about this program." msgstr "Informationen ?ber dieses Programm" #. A #. the rest are toolbar actions... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_app.cpp:106 msgid "Set the current element." msgstr "Das aktuelle Element setzen" #: ../src/gtk_app.cpp:107 msgid "Set the current bondtype." msgstr "Den aktuellen Bindungstyp setzen" #: ../src/gtk_app.cpp:108 msgid "Setup or change the comp.chem. method in use." msgstr "Die aktive Computerchemie-Methode einrichten oder ?ndern" #: ../src/gtk_app.cpp:113 msgid "Draw ; add atoms and bonds to the model." msgstr "Zeichnen ; dem Modell Atome und Bindungen hinzuf?gen" #: ../src/gtk_app.cpp:114 msgid "Erase ; remove atoms and bonds from the model." msgstr "L?schen ; Atome und Bindungen aus dem Modell entfernen" #: ../src/gtk_app.cpp:115 msgid "Select ; make selections in the model, and also select objects." msgstr "Auswahl ; Auswahlen im Modell treffen und au?erdem Objekte ausw?hlen" #: ../src/gtk_app.cpp:116 msgid "Zoom ; zoom the view." msgstr "Zoom ; die Ansicht vergr??ern oder verkleinern" #: ../src/gtk_app.cpp:117 msgid "Clipping ; set the near and far clipping planes for graphics rendering." msgstr "" "Ausschnitt ; die nahen und fernen Ausschnittsebenen f?r das Rendern der " "Grafik setzen" #: ../src/gtk_app.cpp:118 msgid "" "TranslateXY ; translate the camera or a selected object in XY-direction." msgstr "" "TranslateXY ; die Kamera oder ein ausgew?hltes Objekt in XY-Richtung umrechnen" #: ../src/gtk_app.cpp:119 msgid "TranslateZ ; translate the camera or a selected object in Z-direction." msgstr "" "TranslateZ ; die Kamera oder ein ausgew?hltes Objekt in Z-Richtung verschieben" #: ../src/gtk_app.cpp:120 msgid "" "OrbitXY ; orbit the camera or a selected object around the focus point in XY-" "direction." msgstr "" "OrbitXY ; die Kamera oder ein ausgew?hltes Objekt in XY-Richtung umkreisen " "lassen" #: ../src/gtk_app.cpp:121 msgid "" "OrbitZ ; orbit the camera or a selected object around the focus point in Z-" "direction." msgstr "" "OrbitZ ; die Kamera oder ein ausgew?hltes Objekt in Z-Richtung umkreisen " "lassen" #: ../src/gtk_app.cpp:122 msgid "RotateXY ; turn the camera or a selected object in XY-direction." msgstr "" "RotateXY ; die Kamera oder ein ausgew?hltes Objekt in XY-Richtung drehen" #: ../src/gtk_app.cpp:123 msgid "RotateZ ; turn the camera or a selected object in Z-direction." msgstr "RotateZ ; die Kamera oder ein ausgew?hltes Objekt in Z-Richtung drehen" #: ../src/gtk_app.cpp:124 msgid "Measure ; measure distances, angles and torsions." msgstr "Messen ; Entfernungen, Winkel und Torsionswinkel messen" #: ../src/gtk_app.cpp:207 msgid "Set to Current Object" msgstr "Als aktuelles Objekt setzen" #: ../src/gtk_app.cpp:207 msgid "Set this object to Current Object" msgstr "Dieses Objekt als aktuelles Objekt setzen" #: ../src/gtk_app.cpp:208 msgid "Delete Object/View" msgstr "Objekt/Ansicht l?schen" #: ../src/gtk_app.cpp:208 msgid "Delete this object or view" msgstr "Dieses Objekt oder diese Ansicht l?schen" #: ../src/gtk_app.cpp:225 msgid "Update View" msgstr "Ansicht aktualisieren" #: ../src/gtk_app.cpp:225 msgid "Rebuild the chains info for this view" msgstr "Die Ketteninformation f?r diese Ansicht neu erzeugen" #: ../src/gtk_app.cpp:226 msgid "Select Item" msgstr "Element ausw?hlen" #: ../src/gtk_app.cpp:226 msgid "Select/unselect this chain/residue" msgstr "Diese Kette/Diesen Rest ausw?hlen/abw?hlen" #: ../src/gtk_app.cpp:243 msgid "Select Atom" msgstr "Atom ausw?hlen" #: ../src/gtk_app.cpp:243 msgid "Select/unselect this atom" msgstr "Dieses Atom ausw?hlen/abw?hlen" #: ../src/gtk_app.cpp:258 msgid "Select Bond" msgstr "Bindung w?hlen" #: ../src/gtk_app.cpp:258 msgid "Select/unselect this bond" msgstr "Diese Bindung ausw?hlen/abw?hlen" #: ../src/gtk_app.cpp:344 msgid "Ghemical" msgstr "Ghemical" #: ../src/gtk_app.cpp:351 #, c-format msgid "ERROR : Icon loading failed : %s\n" msgstr "FEHLER : Laden des Symbols fehlgeschlagen : %s\n" #: ../src/gtk_app.cpp:381 #, c-format msgid "ERROR : Building main menu failed : %s" msgstr "FEHLER : Erstellen des Mauptmen?s fehlgeschlagen : %s" #: ../src/gtk_app.cpp:566 msgid "project view" msgstr "Projektansicht" #. optional : draw the stripes to background. #. ??? (string) #: ../src/gtk_app.cpp:584 msgid "Object" msgstr "Objekt" #. ??? (string) #: ../src/gtk_app.cpp:588 msgid "Sub-Objects" msgstr "Unterobjekte" #: ../src/gtk_app.cpp:591 msgid "Views/Objects" msgstr "Ansichten/Objekte" #: ../src/gtk_app.cpp:604 #, c-format msgid "ERROR : Building Views/Objects menu in project view failed : %s" msgstr "" "FEHLER : Erstellen des Men?s ?Ansichten/Objekte? in der Projektansicht " "fehlgeschlagen : %s" #. optional : draw the stripes to background. #. chain_info (string) #: ../src/gtk_app.cpp:620 msgid "Chain Description" msgstr "Beschreibung der Kette" #. res_num (string) #: ../src/gtk_app.cpp:624 msgid "Residue Number" msgstr "Nummer des Rests" #. res_id (string) #: ../src/gtk_app.cpp:628 msgid "Residue ID" msgstr "Rest-ID" #. res_state1 (string) #: ../src/gtk_app.cpp:632 # Sekund?rstuktur msgid "Sec-Str State" msgstr "Sek-Str-Status" #. res_state2 (string) #: ../src/gtk_app.cpp:636 # http://de.wikipedia.org/wiki/Protonierung msgid "Protonation State" msgstr "Protonierungsstatus" #: ../src/gtk_app.cpp:639 msgid "Chains" msgstr "Ketten" #: ../src/gtk_app.cpp:652 #, c-format msgid "ERROR : Building Chains menu in project view failed : %s" msgstr "" "FEHLER : Erstellen des Men?s ?Ketten? in der Projektansicht fehlgeschlagen : " "%s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:668 msgid "Atom Index" msgstr "Atomindex" #. element #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_app.cpp:672 ../src/gtk_oglview_wnd.cpp:112 #: ../src/gtk_oglview_wnd.cpp:120 msgid "Element" msgstr "Element" #: ../src/gtk_app.cpp:678 msgid "Locked" msgstr "Gesperrt" #: ../src/gtk_app.cpp:681 msgid "Atoms" msgstr "Atome" #: ../src/gtk_app.cpp:694 #, c-format msgid "ERROR : Building Atoms menu in project view failed : %s" msgstr "" "FEHLER : Erstellen des Men?s ?Atome? in der Projektansicht fehlgeschlagen : %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:710 msgid "Atom Index #1" msgstr "Atomindex #1" #. index2 #: ../src/gtk_app.cpp:714 msgid "Atom Index #2" msgstr "Atomindex #2" #. bondtype #: ../src/gtk_app.cpp:718 msgid "BondType" msgstr "Bindungstyp" #: ../src/gtk_app.cpp:721 msgid "Bonds" msgstr "Bindungen" #: ../src/gtk_app.cpp:734 #, c-format msgid "ERROR : Building Bonds menu in project view failed : %s" msgstr "" "FEHLER : Erstellen des Men?s ?Bindungen? in der Projektansicht fehlgeschlagen " ": %s" #. protect the model-data during background jobs... #: ../src/gtk_app.cpp:772 msgid "" "Are you sure that you\n" "want to quit the program?" msgstr "" "Sind Sie sicher, dass Sie\n" "das Programm beenden m?chten?" #: ../src/gtk_app.cpp:839 msgid "gtk_app::sPrintToLog() : message is too long!" msgstr "gtk_app::sPrintToLog() : Nachricht ist zu lang!" #: ../src/gtk_app.cpp:898 msgid "window " msgstr "Fenster" #: ../src/gtk_app.cpp:899 ../src/gtk_app.cpp:903 msgid " (detached)" msgstr " (losgel?st)" #: ../src/gtk_app.cpp:899 msgid " (attached)" msgstr " (angeh?ngt)" #: ../src/gtk_app.cpp:901 msgid "cam " msgstr "Kamera " #: ../src/gtk_app.cpp:902 msgid "wnd " msgstr "Fenster " #: ../src/gtk_app.cpp:921 ../src/gtk_app.cpp:922 msgid "RC plot view" msgstr "RC-Planansicht" #: ../src/gtk_app.cpp:927 ../src/gtk_app.cpp:928 msgid "1D plot view" msgstr "1D-Planansicht" #: ../src/gtk_app.cpp:934 ../src/gtk_app.cpp:935 msgid "2D plot view" msgstr "2D-Planansicht" #: ../src/gtk_app.cpp:941 ../src/gtk_app.cpp:942 msgid "energy-level diagram view" msgstr "Energiestufen-Diagrammansicht" #: ../src/gtk_app.cpp:947 ../src/gtk_app.cpp:948 msgid "generic protein chain view" msgstr "generische Proteinkettenansicht" #: ../src/gtk_app.cpp:953 ../src/gtk_app.cpp:954 msgid "" msgstr "" #: ../src/gtk_app.cpp:980 ../src/project.cpp:617 msgid "camera " msgstr "Kamera" #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 ../src/gtk_app.cpp:1291 #: ../src/gtk_app.cpp:1316 msgid "Object " msgstr "Objekt" #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 msgid " is set to current object." msgstr " ist auf aktuelles Objekt gesetzt." #: ../src/gtk_app.cpp:1258 ../src/gtk_app.cpp:1324 msgid "Sorry, this operation is not yet implemented." msgstr "Entschuldigung, diese Operation ist noch nicht implementiert." #: ../src/gtk_app.cpp:1291 ../src/gtk_app.cpp:1316 msgid " is deleted." msgstr " wurde gel?scht." #. if (ci_vector[n1].description... // this is not implemented at the moment... #. show chain index 1,2,3,... to user ; it is 0,1,2,... internally! #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_app.cpp:1353 msgid "chain #" msgstr "Kette #" #: ../src/gtk_app.cpp:1361 msgid " chain)." msgstr " Kette)." #. make the list show the updated information... #: ../src/gtk_app.cpp:1618 #, c-format msgid "Atom locking changed : %s\n" msgstr "Atomsperre ge?ndert : %s\n" #: ../src/gtk_app.cpp:1618 msgid "yes" msgstr "ja" #: ../src/gtk_app.cpp:1618 msgid "no" msgstr "nein" #: ../src/gtk_app.cpp:1644 msgid "Conjugated" msgstr "Konjugiert" #: ../src/gtk_app.cpp:1645 msgid "Single" msgstr "Einfach" #: ../src/gtk_app.cpp:1646 msgid "Double" msgstr "Doppelt" #: ../src/gtk_app.cpp:1647 msgid "Triple" msgstr "Dreifach" #: ../src/gtk_app.cpp:2083 msgid "Displaying the User's Manual using the following command:" msgstr "Das Benutzerhandbuch mittels des folgenden Befehls anzeigen:" #: ../src/gtk_app.cpp:2093 msgid "Ghemical-" msgstr "Ghemical-" #: ../src/gtk_app.cpp:2093 msgid " released on " msgstr " ver?ffentlich auf " #: ../src/gtk_app.cpp:2095 msgid "For more information please visit:" msgstr "Besuchen Sie bitte, um weitere Informationen zu erhalten:" #: ../src/gtk_app.cpp:2103 msgid "Authors:" msgstr "Autoren:" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Attach/Detach This View" msgstr "Diese Ansicht anh?ngen/losl?sen" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Select whether this view is attached or in an independent window" msgstr "" "W?hlen Sie aus, ob diese Ansicht angeh?ngt ist oder in einem unabh?ngigen " "Fenster l?uft." #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete View" msgstr "Ansicht l?schen" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete this view" msgstr "Diese Ansicht l?schen" #: ../src/gtk_eldview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_eldview_wnd failed : %s" msgstr "" "FEHLER : Erstellen des Kontextmen?s f?r gtk_eldview_wnd fehlgeschlagen : %s" #: ../src/gtk_file_export_dialog.cpp:41 msgid "file_export_dialog : glade_xml_get_widget() failed!!!" msgstr "file_export_dialog : glade_xml_get_widget() fehlgeschlagen!" #: ../src/gtk_file_export_dialog.cpp:52 ../src/gtk_file_import_dialog.cpp:52 msgid "Automatic" msgstr "Automatisch" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_export_dialog.cpp:131 msgid "Select a filename for export." msgstr "W?hlen Sie f?r den Export einen Dateinamen aus." #: ../src/gtk_file_import_dialog.cpp:41 msgid "file_import_dialog : glade_xml_get_widget() failed!!!" msgstr "file_import_dialog : glade_xml_get_widget() fehlgeschlagen!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_import_dialog.cpp:133 msgid "Select a file to import." msgstr "W?hlen Sie f?r den Import einen Dateinamen aus." #: ../src/gtk_geomopt_dialog.cpp:41 msgid "WARNING : geomopt_dialog : glade_xml_get_widget() failed!!!" msgstr "WARNUNG : geomopt_dialog : glade_xml_get_widget() fehlgeschlagen!" #: ../src/gtk_gpcview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_gpcview_wnd failed : %s" msgstr "" "FEHLER : Erstellen des Kontextmen?s f?r gtk_gpcview_wnd fehlgeschlagen : %s" #: ../src/gtk_main.cpp:45 msgid "open a file" msgstr "eine Datei ?ffnen" #: ../src/gtk_main.cpp:46 msgid "import a file" msgstr "eine Datei importieren" #: ../src/gtk_main.cpp:61 msgid "- a GTK2 molecular modelling program" msgstr "- ein GTK2-Programm zum Molek?ldesign" #: ../src/gtk_main.cpp:84 #, c-format msgid "OpenGL extension version - %d.%d\n" msgstr "OpenGL-Erweiterungsversion - %d.%d\n" #: ../src/gtk_main.cpp:140 # Die n?chsten beiden Strings geh?ren zusammen msgid "Sorry! The file import feature is disabled ; you need to recompile" msgstr "Entschuldigung! Die Importfunktion ist deaktiviert; sie m?ssen " #: ../src/gtk_main.cpp:141 msgid "libghemical with --enable-openbabel option in order to fix this." msgstr "" "Libghemical mit der Option --enable-openbabel neu kompilieren, um dies zu " "beheben." #: ../src/gtk_moldyn_dialog.cpp:42 msgid "WARNING : moldyn_dialog : glade_xml_get_widget() failed!!!" msgstr "WARNUNG : moldyn_dialog : glade_xml_get_widget() fehlgeschlagen!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_moldyn_dialog.cpp:232 msgid "Select a Trajectory File." msgstr "W?hlen Sie eine Trajektorien-Datei aus." #: ../src/gtk_oglview_wnd.cpp:40 msgid "Open a file" msgstr "Eine Datei ?ffnen" #: ../src/gtk_oglview_wnd.cpp:42 msgid "Import..." msgstr "Importieren ?" #: ../src/gtk_oglview_wnd.cpp:42 # See Debian bug #639322 msgid "Import other file formats using libopenbabel" msgstr "Andere Dateiformate unter Benutzung von Openbabel importieren" #: ../src/gtk_oglview_wnd.cpp:44 msgid "Save a file" msgstr "Eine Datei speichern" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export" msgstr "Exportieren" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export other file formats using OpenBabel" msgstr "Andere Dateiformate unter Benutzung von OpenBabel exportieren" #: ../src/gtk_oglview_wnd.cpp:49 msgid "Close the file" msgstr "Eine Datei schlie?en" #: ../src/gtk_oglview_wnd.cpp:51 msgid "Extra Tools" msgstr "Zus?tzliche Werkzeuge" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import PDB" msgstr "PDB importieren" #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import a PDB file" msgstr "Eine PDB-Datei importieren" #. { "FileExtra2", NULL, N_("Import ???"), NULL, N_("Import a ??? file"), (GCallback) gtk_project::popup_FileExtra2 }, #: ../src/gtk_oglview_wnd.cpp:56 msgid "Select" msgstr "Ausw?hlen" #. ^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select All" msgstr "Alles ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select all atoms" msgstr "Alle Atome ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select None" msgstr "Keins ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select nothing" msgstr "Nichts ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert Selection" msgstr "Auswahl umkehren" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert the selection" msgstr "Die Auswahl umkehren" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide Selected" msgstr "Ausgew?hlte verstecken" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide all selected atoms" msgstr "Alle ausgew?hlten Atome verstecken" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show Selected" msgstr "Ausgew?hlte anzeigen" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show all selected atoms" msgstr "Alle ausgew?hlten Atome anzeigen" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock Selected" msgstr "Ausgew?hlte sperren" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock all selected atoms" msgstr "Alle ausgew?hlten Atome sperren" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock Selected" msgstr "Ausgew?hlte entsperren" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock all selected atoms" msgstr "Alle ausgew?hlten Atome entsperren" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete Selected" msgstr "Ausgew?hlte l?schen" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete all selected atoms" msgstr "Alle ausgew?hlten Atome l?schen" #: ../src/gtk_oglview_wnd.cpp:67 msgid "Selection Mode" msgstr "Auswahlmodus" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the setting from project is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select Atoms" msgstr "Atome ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select single atoms" msgstr "Einzelne Atome ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select Residues" msgstr "Reste ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select residues" msgstr "Reste ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select Chains" msgstr "Ketten ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select chains" msgstr "Ketten ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select Molecules" msgstr "Molek?le ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select molecules" msgstr "Molek?le ausw?hlen" #: ../src/gtk_oglview_wnd.cpp:75 msgid "Render" msgstr "Rendern" #. ^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:78 msgid "Quick Update Mode" msgstr "Schneller Aktualisierungsmodus" #: ../src/gtk_oglview_wnd.cpp:78 msgid "" "Quick Update Mode switches into Wireframe rendering mode when doing " "interactive work" msgstr "" "Der schnelle Aktualisierungsmodus schaltet bei interaktiver Arbeit in den " "Darstellungsmodus Drahtgittermodell." #: ../src/gtk_oglview_wnd.cpp:80 msgid "Views" msgstr "Ansichten" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete This View" msgstr "Diese Ansicht l?schen" #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete this graphics view" msgstr "Diese Grafikansicht l?schen" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a CRD-set (experimental)" msgstr "Einen CRD-Satz speichern (experimentell)" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a coordinate set" msgstr "Einen Koordinatensatz speichern" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose CRD-sets (experimental)" msgstr "CRD-S?tze ?bereinanderlegen (experimentell)" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose coordinate sets" msgstr "Koordinatens?tze ?bereinanderlegen" #: ../src/gtk_oglview_wnd.cpp:86 msgid "Create" msgstr "Erstellen" #. ^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:88 msgid "New Window" msgstr "Neues Fenster" #: ../src/gtk_oglview_wnd.cpp:88 msgid "Create a new view using the current camera" msgstr "Eine neue Ansicht unter Benutzung der aktuellen Kamera erstellen" #: ../src/gtk_oglview_wnd.cpp:89 msgid "New Camera" msgstr "Neue Kamera" #: ../src/gtk_oglview_wnd.cpp:89 msgid "Create a new view using a new camera" msgstr "Eine neue Ansicht unter Benutzung einer neuen Kamera erstellen" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Energy-level Diagram" msgstr "Energiestufendiagramm" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Create a new energy-level diagram view" msgstr "Eine neue Energiestufendiagrammansicht erstellen" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Secondary Structure Constraints" msgstr "Sekund?rstrukturbeschr?nkungen" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Create a new secondary structure constraints view" msgstr "Eine neue Sekund?rstrukturbeschr?nkungsansicht erstellen" #: ../src/gtk_oglview_wnd.cpp:93 msgid "Lights" msgstr "Lichquellen" #. ^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create New Light" msgstr "Eine neue Lichtquelle erstellen" #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create a new light object" msgstr "Ein neues Lichtobjekt erstellen" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:97 msgid "Enable Local Lights" msgstr "Lokale Lichtquelle einschalten" #: ../src/gtk_oglview_wnd.cpp:97 msgid "Switch on/off the local light objects" msgstr "Die lokalen Lichtobjekte ein-/ausschalten" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Enable Global Lights" msgstr "Globale Lichtquelle einschalten" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Switch on/off the global light objects" msgstr "Die globalen Lichtobjekte ein-/ausschalten" #: ../src/gtk_oglview_wnd.cpp:100 msgid "Render Mode" msgstr "Render-Modus" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:103 msgid "Ball & Stick" msgstr "Kugelstabmodell" #: ../src/gtk_oglview_wnd.cpp:103 msgid "Display atoms and bonds using Ball & Stick mode" msgstr "Atome und Bindungen im Kugelstabmodell anzeigen" #: ../src/gtk_oglview_wnd.cpp:104 msgid "van der Waals" msgstr "Van der Waals" #: ../src/gtk_oglview_wnd.cpp:104 msgid "Display atoms and bonds using van der Waals mode" msgstr "Atome und Bindungen als Van-der-Waals-Kugeln anzeigen" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Cylinders" msgstr "Zylinder" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Display atoms and bonds using Cylinders mode" msgstr "Atome und Bindungen als Zylinder anzeigen" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Wireframe" msgstr "Drahtgittermodell" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Display atoms and bonds using Wireframe mode" msgstr "Atome und Bindungen im Drahtgittermodelle anzeigen" #: ../src/gtk_oglview_wnd.cpp:107 ../src/gtk_oglview_wnd.cpp:128 msgid "Nothing" msgstr "Nichts" #: ../src/gtk_oglview_wnd.cpp:107 msgid "Do not display atoms and bonds" msgstr "Atome und Bindungen nicht anzeigen" #: ../src/gtk_oglview_wnd.cpp:109 msgid "Color Mode" msgstr "Farbmodus" #: ../src/gtk_oglview_wnd.cpp:112 msgid "Color atoms and bonds by element" msgstr "Atome und Bindungen nach Elementen f?rben" #: ../src/gtk_oglview_wnd.cpp:113 ../src/gtk_oglview_wnd.cpp:127 # http://de.wikipedia.org/wiki/Sekund%C3%A4rstruktur msgid "Sec-Struct" msgstr "Sek-Strukt" #: ../src/gtk_oglview_wnd.cpp:113 msgid "Color atoms and bonds by secondary-structure state" msgstr "Atome und Bindungen nach Sekund?rstrukturstatus f?rben" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Hydrophobicity" msgstr "Hydrophobizit?t" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Color atoms and bonds by hydrophobicity (experimental)" msgstr "Atome und Bindungen nach Hydrophobizit?t f?rben (experimentell)" #: ../src/gtk_oglview_wnd.cpp:116 msgid "Label Mode" msgstr "Beschriftungsmodus" #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:119 msgid "Index" msgstr "Index" #: ../src/gtk_oglview_wnd.cpp:119 msgid "Label atoms by atom index" msgstr "Atome mit Atomindex beschriften" #: ../src/gtk_oglview_wnd.cpp:120 msgid "Label atoms by element" msgstr "Atome mit Element beschriften" #: ../src/gtk_oglview_wnd.cpp:121 # http://de.wikipedia.org/wiki/Formalladung msgid "Formal Charge" msgstr "Formalladung" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Label atoms by formal charge" msgstr "Atome mit Formalladung beschriften" #: ../src/gtk_oglview_wnd.cpp:122 # http://de.wikipedia.org/wiki/Partialladung msgid "Partial Charge" msgstr "Partialladung" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Label atoms by partial charge" msgstr "Atome mit Partialladung beschriften" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Atom Type" msgstr "Atomtyp" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Label atoms by atom type" msgstr "Atome mit Atomtyp beschriften" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Builder ID" msgstr "Ersteller-ID" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Label atoms by sequence builder ID" msgstr "Atome mit Sequenz-Ersteller-ID beschriften" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Bond Type" msgstr "Bindungstyp" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Label bonds by bond type" msgstr "Bindungen mit Bindungstyp beschriften" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Residue" msgstr "Rest" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Label by residue" msgstr "Mit Rest beschriften" #: ../src/gtk_oglview_wnd.cpp:127 msgid "Label by secondary structure state" msgstr "Mit dem Sekund?rstrukturstatus beschriften" #: ../src/gtk_oglview_wnd.cpp:128 msgid "Do not show labels" msgstr "Keine Beschriftungen anzeigen" #: ../src/gtk_oglview_wnd.cpp:130 msgid "Projection" msgstr "Projektion" #. ^^^^^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:133 msgid "Orthographic" msgstr "Orthografisch" #: ../src/gtk_oglview_wnd.cpp:133 msgid "Use orthographic projection" msgstr "Orthografische Projektion benutzen" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Perspective" msgstr "Perspektive" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Use perspective projection" msgstr "Perspektivische Projektion benutzen" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #. todo : add more color combinations ; red/green red/blue ; any others needed??? #: ../src/gtk_oglview_wnd.cpp:137 msgid "Red-Blue Stereo" msgstr "Rot-Blau-Stereo" #: ../src/gtk_oglview_wnd.cpp:137 msgid "Use red-blue stereo mode" msgstr "Rot-blauen Stereomodus benutzen" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Relaxed-Eye Stereo" msgstr "Relaxed-Eye-Stereo" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Use relaxed-eye stereo mode" msgstr "Relaxed-Eye-Stereomodus benutzen" #: ../src/gtk_oglview_wnd.cpp:140 msgid "Objects" msgstr "Objekte" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:142 msgid "Ribbon" msgstr "Band" #: ../src/gtk_oglview_wnd.cpp:142 msgid "Create a Ribbon object for displaying peptides/proteins" msgstr "Ein Bandobjekt f?r die Anzeige von Peptiden/Proteinen erstellen" #: ../src/gtk_oglview_wnd.cpp:143 # Extreme Short throw Projection msgid "ESP-plane" msgstr "ESP-Ebene" #: ../src/gtk_oglview_wnd.cpp:143 msgid "Create an ESP-plane object" msgstr "Ein ESP-Ebenenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:144 msgid "volume-rendered ESP" msgstr "Volumen-gerendertes ESP" #: ../src/gtk_oglview_wnd.cpp:144 msgid "Create a volume-rendered ESP object" msgstr "Ein Volumen-gerendertes ESP-Objekt erstellen" #: ../src/gtk_oglview_wnd.cpp:145 msgid "ESP-surface" msgstr "ESP-Oberfl?che" #: ../src/gtk_oglview_wnd.cpp:145 msgid "Create an ESP-surface object" msgstr "ESP-Oberfl?chenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:146 msgid "ESP-colored vdW-surface" msgstr "ESP-gef?rbte VdW-Oberfl?che" #: ../src/gtk_oglview_wnd.cpp:146 msgid "Create an ESP-colored vdW-surface object" msgstr "Ein ESP-gef?rbtes VdW-Oberfl?chenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Electron density plane" msgstr "Elektronendichte-Ebene" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Create an Electron density plane object" msgstr "Ein Elektronendichte-Ebenenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Electron density surface" msgstr "Elektronendichte-Oberfl?che" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Create an Electron density surface object" msgstr "Ein Elektronendichte-Oberfl?chenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Molecular orbital plane" msgstr "Molek?lorbitalebene" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Create a Molecular orbital plane object" msgstr "Ein Molek?lorbitalebenenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Molecular orbital volume" msgstr "Molek?lorbitalvolumen" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Create a Molecular orbital volume object" msgstr "Ein Molek?lorbitalvolumenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Molecular orbital surface" msgstr "Molek?lorbitaloberfl?che" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Create a Molecular orbital surface object" msgstr "Ein Molek?lorbitaloberfl?chenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:152 # http://en.wikipedia.org/wiki/Molecular_orbital # http://de.wikipedia.org/wiki/Molek?lorbital msgid "MO-density plane" msgstr "MO-Dichteebene" #: ../src/gtk_oglview_wnd.cpp:152 msgid "Create an MO-density plane object" msgstr "Ein MO-Dichteobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:153 msgid "MO-density volume" msgstr "MO-Dichtevolumen" #: ../src/gtk_oglview_wnd.cpp:153 msgid "Create an MO-density volume object" msgstr "Ein MO-Dichtevolumenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:154 msgid "MO-density surface" msgstr "MO-Dichteoberfl?che" #: ../src/gtk_oglview_wnd.cpp:154 msgid "Create an MO-density surface object" msgstr "Ein MO-Dichteoberfl?chenobjekt erstellen" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete Current Object" msgstr "Aktuelles Objekt l?schen" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete the currently selected object" msgstr "Das derzeit ausgew?hlte Objekt l?schen" #: ../src/gtk_oglview_wnd.cpp:157 msgid "Compute" msgstr "Berechnen" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:159 msgid "Setup..." msgstr "Einrichtung ?" #: ../src/gtk_oglview_wnd.cpp:160 msgid "Energy" msgstr "Energie" #: ../src/gtk_oglview_wnd.cpp:161 msgid "Geometry Optimization..." msgstr "Geometrieoptimierung ?" #: ../src/gtk_oglview_wnd.cpp:162 msgid "Molecular Dynamics..." msgstr "Molekulardynamik ?" #: ../src/gtk_oglview_wnd.cpp:163 # http://de.wikipedia.org/wiki/Konformation msgid "Random Conformational Search..." msgstr "Zuf?llige Konformations-Suche ?" #: ../src/gtk_oglview_wnd.cpp:164 msgid "Systematic Conformational Search..." msgstr "Systematische Konformations-Suche ?" #: ../src/gtk_oglview_wnd.cpp:165 # http://de.wikipedia.org/wiki/Computersimulation#Monte-Carlo-Simulation msgid "Monte Carlo Search..." msgstr "Monte-Carlo-Suche ?" #: ../src/gtk_oglview_wnd.cpp:166 msgid "Plot Energy vs. 1 Torsion Angle..." msgstr "Energie gegen ersten Verdrehungswinkel darstellen ?" #: ../src/gtk_oglview_wnd.cpp:167 msgid "Plot Energy vs. 2 Torsion Angles..." msgstr "Energie gegen zweiten Torsionswinkel plotten ?" #: ../src/gtk_oglview_wnd.cpp:168 msgid "Population Analysis (ESP)" msgstr "Populationsanalyse (ESP)" #: ../src/gtk_oglview_wnd.cpp:169 msgid "Transition State Search..." msgstr "?bergangszustandssuche ?" #: ../src/gtk_oglview_wnd.cpp:170 msgid "Stationary State Search..." msgstr "Station?re Zustandssuche ?" #: ../src/gtk_oglview_wnd.cpp:171 msgid "Formula" msgstr "Formel" #: ../src/gtk_oglview_wnd.cpp:176 msgid "MD Trajectory Viewer..." msgstr "MD-Trajektorien-Betrachter ?" #: ../src/gtk_oglview_wnd.cpp:177 msgid "Set Current Orbital" msgstr "Aktuelles Orbital setzen" #: ../src/gtk_oglview_wnd.cpp:179 msgid "Build" msgstr "Erstellen" #. ^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:181 msgid "Solvate Box..." msgstr "Solvatisierungsbox ?" #: ../src/gtk_oglview_wnd.cpp:182 msgid "Solvate Sphere..." msgstr "Solvatisierungssph?re ?" #: ../src/gtk_oglview_wnd.cpp:183 msgid "Sequence Builder (amino)..." msgstr "Sequenzerstellung (Amino) ?" #: ../src/gtk_oglview_wnd.cpp:184 msgid "Sequence Builder (nucleic)..." msgstr "Sequenzerstellung (Nuklein) ?" #: ../src/gtk_oglview_wnd.cpp:185 msgid "Center" msgstr "Zentrieren" #: ../src/gtk_oglview_wnd.cpp:186 msgid "Zap All" msgstr "Alle l?schen" #: ../src/gtk_oglview_wnd.cpp:188 msgid "Hydrogens" msgstr "Wasserstoff" #. ^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:190 msgid "Add" msgstr "Hinzuf?gen" #: ../src/gtk_oglview_wnd.cpp:191 msgid "Remove" msgstr "Entfernen" #: ../src/gtk_oglview_wnd.cpp:193 msgid "Enter a Command..." msgstr "Einen Befehl eingeben ?" #: ../src/gtk_oglview_wnd.cpp:380 #, c-format msgid "ERROR : Building popup-menu for gtk_oglview_wnd failed : %s" msgstr "" "FEHLER : Erstellen des Kontextmen?s f?r gtk_oglview_wnd fehlgeschlagen : %s " #: ../src/gtk_oglview_wnd.cpp:630 msgid "sets 0 <-> " msgstr "Setzt 0 <-> " #: ../src/gtk_oglview_wnd.cpp:630 # http://en.wikipedia.org/wiki/Root_mean_square msgid " RMS = " msgstr " RMS = " #: ../src/gtk_oglview_wnd.cpp:636 msgid "average RMS = " msgstr "durchschnittlicher RMS = " #: ../src/gtk_p1dview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_p1dview_wnd failed : %s" msgstr "" "FEHLER : Erstellen des Kontextmen?s f?r gtk_p1dview_wnd fehlgeschlagen : %s" #: ../src/gtk_p2dview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_p2dview_wnd failed : %s" msgstr "" "FEHLER : Erstellen des Kontextmen?s f?r gtk_p2dview_wnd fehlgeschlagen : %s" #: ../src/gtk_progress_dialog.cpp:39 msgid "WARNING : progress_dialog : glade_xml_get_widget() failed!!!" msgstr "WARNUNG : progress_dialog : glade_xml_get_widget() fehlgeschlagen!" #: ../src/gtk_project.cpp:81 msgid "A new project created.\n" msgstr "Ein neues Projekt wurde erstellt.\n" #: ../src/gtk_project.cpp:184 msgid "Thread creation failed : GeomOpt" msgstr "Erstellen des Threads fehlgeschlagen : GeomOpt" #: ../src/gtk_project.cpp:199 ../src/res_gtk/gtk_geomopt_dialog.glade.h:2 msgid "Geometry Optimization" msgstr "Geometrieoptimierung" #: ../src/gtk_project.cpp:234 msgid "Thread creation failed : MolDyn" msgstr "Erstellen des Threads fehlgeschlagen : MolDyn" #: ../src/gtk_project.cpp:249 ../src/res_gtk/gtk_moldyn_dialog.glade.h:5 msgid "Molecular Dynamics" msgstr "Molekulardynamik" #: ../src/gtk_project.cpp:273 msgid "Thread creation failed : RandomSearch" msgstr "Erstellen des Threads fehlgeschlagen : RandomSearch" #: ../src/gtk_project.cpp:288 msgid "Random Search" msgstr "Zuf?llige Suche" #: ../src/gtk_project.cpp:776 ../src/gtk_project.cpp:794 #: ../src/gtk_project.cpp:812 ../src/gtk_project.cpp:830 #: ../src/gtk_project.cpp:848 ../src/gtk_project.cpp:866 #: ../src/gtk_project.cpp:884 ../src/gtk_project.cpp:902 #: ../src/gtk_project.cpp:920 ../src/gtk_project.cpp:938 #: ../src/gtk_project.cpp:956 ../src/gtk_project.cpp:974 msgid "Please calculate energy first!" msgstr "Bitte berechnen Sie zuerst die Energie!" #: ../src/gtk_project.cpp:1075 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D with atom indices that define the " "torsion.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "BITTE BEACHTEN!\n" "Die Befehlszeichenkette, die im n?chsten Dialog angezeigt wird, ist\n" "unvollst?ndig. Sie sollten die Buchstaben A-D durch die Atomindizes " "ersetzen, die den Torsionswinkel definieren.\n" "\n" "BEACHTEN SIE AU?ERDEM: Bei jeder Strukturverfeinerung wird die " "Molekularmechanik verwandt (optsteps).." #: ../src/gtk_project.cpp:1088 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D and I-L with atom indices that define the " "torsions.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "BITTE BEACHTEN!\n" "Die Befehlszeichenkette, die im n?chsten Dialog angezeigt wird, ist\n" "unvollst?ndig. Sie sollten die Buchstaben A-D und I-L durch die Atomindizes " "ersetzen, die den Torsionswinkel definieren.\n" "\n" "BEACHTEN SIE AU?ERDEM: Bei jeder Benutzung der Molekularmechanik wird die " "Strukturverfeinerung durchgef?hrt (optsteps)." #: ../src/gtk_project.cpp:1162 msgid "ERROR" msgstr "FEHLER" #: ../src/gtk_project.cpp:1173 msgid "Trajectory file already open?" msgstr "Trajektorien-Datei bereits ge?ffnet?" #: ../src/gtk_project.cpp:1182 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letter X with the orbital index that will become the " "current orbital." msgstr "" "BITTE BEACHTEN!\n" "Die Befehlszeichenkette, die im n?chsten Dialog angezeigt wird, ist\n" "unvollst?ndig. Sie sollten den Buchstaben X durch den Orbitalindex ersetzen,\n" "den das aktuelle Orbital bekommen wird." #: ../src/gtk_project.cpp:1237 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AAA with the sequence to be built." msgstr "" "BITTE BEACHTEN!\n" "Die Befehlszeichenkette, die im n?chsten Dialog angezeigt wird, ist\n" "unvollst?ndig. Sie sollten die vorgegebene Sequenz AAA durch die Sequenz\n" "ersetzen, die gebildet werden soll." #: ../src/gtk_project.cpp:1250 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AGTCaguc with the sequence to be " "built." msgstr "" "BITTE BEACHTEN!\n" "Die Befehlszeichenkette, die im n?chsten Dialog angezeigt wird, ist\n" "unvollst?ndig. Sie sollten die vorgegebene Sequenz AGTCaguc durch die\n" "Sequenz ersetzen, die gebildet werden soll." #: ../src/gtk_project.cpp:1287 msgid "Are you sure you want to clear everything?" msgstr "Sind sie sicher, dass Sie alles entfernen m?chten?" #: ../src/gtk_rcpview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_rcpview_wnd failed : %s" msgstr "" "FEHLER : Erstellen des Kontextmen?s f?r gtk_rcpview_wnd fehlgeschlagen : %s" #: ../src/gtk_setup_dialog.cpp:49 msgid "WARNING : setup_dialog : glade_xml_get_widget() failed!!!" msgstr "WARNUNG : setup_dialog : glade_xml_get_widget() fehlgeschlagen!" #: ../src/gtk_setup_dialog.cpp:358 msgid "Changed the Setup for calculations " msgstr "Die Einstellung f?r Berechungen wurde ge?ndert " #: ../src/gtk_setup_dialog.cpp:359 ../src/project.cpp:4050 msgid "(setup = " msgstr "(Einstellung = " #: ../src/gtk_setup_dialog.cpp:375 ../src/project.cpp:4051 msgid ", engine = " msgstr ", Engine = " #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:49 msgid "Set Current Element" msgstr "Aktuelles Element setzen" #: ../src/gtk_simple_dialogs.cpp:113 msgid "Current element is now " msgstr "Aktuelles Element ist nun " #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:133 msgid "Set Current Bondtype" msgstr "Aktuellen Bindungstyp setzen" #: ../src/gtk_simple_dialogs.cpp:184 msgid "Current bondtype is now " msgstr "Aktuellen Bindungstyp setzen" #: ../src/gtk_simple_dialogs.cpp:449 msgid "" "This alternative PDB reader is designed to remove any gaps that might\n" "exist in the structure data. Therefore the sequence might be altered!" msgstr "" "Dieser alternative PDB-Leser wurde entwickelt, um jegliche L?cken zu\n" "entfernen, die in den Strukturdaten existieren k?nnten. Daher k?nnte die\n" "Sequenz ver?ndert sein!" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:482 msgid "Command Interpreter" msgstr "Befehlsinterpreter" #: ../src/gtk_simple_dialogs.cpp:503 msgid "Execute" msgstr "Ausf?hren" #: ../src/gtk_simple_dialogs.cpp:506 msgid "Cancel" msgstr "Abbrechen" #: ../src/gtk_stereo_dialog.cpp:37 msgid "WARNING : stereo_dialog : glade_xml_get_widget() failed!!!" msgstr "WARNUNG : stereo_dialog : glade_xml_get_widget() fehlgeschlagen!" #: ../src/gtk_trajview_dialog.cpp:39 msgid "WARNING : trajview_dialog : glade_xml_get_widget() failed!!!" msgstr "WARNUNG : trajview_dialog : glade_xml_get_widget() fehlgeschlagen!" #: ../src/gtk_trajview_dialog.cpp:82 ../src/gtk_trajview_dialog.cpp:102 #: ../src/gtk_trajview_dialog.cpp:136 ../src/gtk_trajview_dialog.cpp:151 msgid "frame = " msgstr "Einzelbild = " #: ../src/gtk_wnd.cpp:53 #, c-format msgid "*** Cannot find the double-buffered visual.\n" msgstr "*** Doppelt gepuffertes Bildmaterial konnte nicht gefunden werden.\n" #: ../src/gtk_wnd.cpp:54 #, c-format msgid "*** Trying single-buffered visual.\n" msgstr "*** Doppelt gepuffertes Bildmaterial wird probiert.\n" #: ../src/gtk_wnd.cpp:61 #, c-format msgid "*** No appropriate OpenGL-capable visual found.\n" msgstr "*** Kein geeignetes OpenGL-f?higes Bildmaterial gefunden\n" #: ../src/gtk_wnd.cpp:66 #, c-format msgid "" "\n" "OpenGL visual configurations :\n" "\n" msgstr "" "\n" "OpenGL-Bildmaterialkonfigurationen :\n" "\n" #: ../src/ogl_surface.cpp:91 msgid "evaluating grid" msgstr "Gitter wird ermittelt" #: ../src/ogl_surface.cpp:106 msgid " done\n" msgstr " erledigt\n" #: ../src/ogl_surface.cpp:112 msgid "interpolating in " msgstr "interpolierend in " #: ../src/ogl_surface.cpp:131 msgid "-direction... " msgstr "-Richtung ?" #: ../src/ogl_surface.cpp:138 msgid " points, " msgstr " Punkte, " #: ../src/ogl_surface.cpp:138 msgid " cycles" msgstr " Zyklen" #: ../src/ogl_surface.cpp:155 msgid "generating image... " msgstr "Bild wird generiert ?" #: ../src/ogl_surface.cpp:185 msgid "color_surface problem #1" msgstr "Farboberfl?chenproblem #1" #: ../src/ogl_surface.cpp:235 msgid "color_surface problem #2" msgstr "Farboberfl?chenproblem #2" #: ../src/ogl_surface.cpp:335 msgid " lines, " msgstr " Zeilen, " #: ../src/ogl_surface.cpp:335 msgid " triangles." msgstr " Dreiecke." #: ../src/p2dview_wcl.cpp:182 msgid "now scaling the colours to range " msgstr "nun werden die Farben skaliert auf den Bereich " #: ../src/p2dview_wcl.cpp:182 msgid " kJ/mol" msgstr " kJ/Mol" #: ../src/pangofont_wcl.cpp:75 #, c-format msgid "*** ERROR : Can't load font '%s'\n" msgstr "*** FEHLER : Schrift ?%s? kann nicht geladen werden\n" #: ../src/project.cpp:210 msgid "untitled" msgstr "ohne Titel" #: ../src/project.cpp:322 msgid "Cannot import that file type." msgstr "Dieser Dateityp kann nicht importiert werden." #: ../src/project.cpp:367 msgid "Cannot export that file type." msgstr "Dieser Dateityp kann nicht exportiert werden." #: ../src/project.cpp:409 msgid "Hydrogens added." msgstr "Wasserstoff hinzugef?gt" #: ../src/project.cpp:419 msgid "Hydrogens removed." msgstr "Wasserstoff entfernt" #: ../src/project.cpp:617 msgid " window " msgstr " Fenster " #: ../src/project.cpp:663 msgid "" "This is the last graphics view for\n" "this project - can't close it." msgstr "" "Dies ist die letzte Grafikansicht dieses\n" "Projekts - sie kann nicht geschlossen werden." #: ../src/project.cpp:877 msgid "Processing Command : " msgstr "Befehl wird ausgef?hrt : " #: ../src/project.cpp:887 msgid "> AVAILABLE COMMANDS:" msgstr "> VERF?GBARE BEFEHLE:" #. use alphabetical order??? #: ../src/project.cpp:889 msgid "" "> add light (local/global) (directional/spotlight) -- add a new light object." msgstr "" "> add light (local/global) (directional/spotlight) -- ein neues Lichtobjekt " "hinzuf?gen" #: ../src/project.cpp:891 msgid "" "> add plane -- " "add a plane object." msgstr "" "> add plane -- " "ein Ebenenobjekt hinzuf?gen" #: ../src/project.cpp:892 ../src/project.cpp:902 msgid "> where: = value function : esp vdws eldens mo mod unity" msgstr "> wobei: = Wertfunktion : esp vdws eldens mo mod unity" #: ../src/project.cpp:893 ../src/project.cpp:903 ../src/project.cpp:913 # Farben fest kodiert -> nicht ?bersetzen msgid "> = colour function : red green blue rb1 rb2" msgstr "> = Farbfunktion : red green blue rb1 rb2" #: ../src/project.cpp:894 ../src/project.cpp:904 ../src/project.cpp:915 #: ../src/project.cpp:930 msgid "> = scaling value for calculating the colours" msgstr "> = Skalierungswert zum Berechnen der Farben" #: ../src/project.cpp:895 ../src/project.cpp:905 ../src/project.cpp:916 #: ../src/project.cpp:931 msgid "> = scaling offset for calculating the colours" msgstr "> = Skalenversatz zum Berechnen der Farben" #: ../src/project.cpp:896 ../src/project.cpp:906 ../src/project.cpp:917 #: ../src/project.cpp:932 msgid "> = dimension of the plane object (in nm units)" msgstr "> = Ausma? des Ebenenobjekts (in nm-Einheiten)" #: ../src/project.cpp:897 ../src/project.cpp:907 ../src/project.cpp:918 #: ../src/project.cpp:933 msgid "> = resolution of the plane object" msgstr "> = Aufl?sung des Ebenenobjekts" #: ../src/project.cpp:898 ../src/project.cpp:920 ../src/project.cpp:935 msgid "> = 0 or 1 telling if the object is transparent" msgstr "> = 0 oder 1 ? sagt, ob das Objekt transparent ist" #: ../src/project.cpp:899 ../src/project.cpp:908 ../src/project.cpp:921 #: ../src/project.cpp:936 # http://de.wikipedia.org/wiki/Alphakanal msgid "> = transparency alpha value" msgstr "> = Alpha-Wert der Transparenz" #: ../src/project.cpp:901 msgid "" "> add volrend -- add " "a volume-rendering object." msgstr "" "> add volrend -- ein " "Volumen-Renderungs-Objekt hinzuf?gen" #: ../src/project.cpp:910 msgid "" "> add surf1 " " -- add a single surface object." msgstr "" "> add surf1 " " -- ein einzelnes Oberfl?chenobjekt hinzuf?gen" #: ../src/project.cpp:911 ../src/project.cpp:924 msgid "" "> where: = value function for calculating the surface : esp vdws " "eldens mo mod unity" msgstr "" "> wobei: = Wertfunktion oder Berechnung der Oberfl?che : esp vdws " "eldens mo mod unity" #: ../src/project.cpp:912 ../src/project.cpp:925 msgid "" "> = value function for calculating the colours : esp vdws " "eldens mo mod unity" msgstr "" "> = Wertfunktion oder Berechnung der Farben : esp vdws eldens " "mo mod unity" #: ../src/project.cpp:914 msgid "> = scaling value for calculating the surface" msgstr "> = Skalierungswert f?r die Berechnung der Oberfl?che" #: ../src/project.cpp:919 ../src/project.cpp:934 msgid "> = 0 or 1 telling if the object is solid" msgstr "> = 0 oder 1 ? sagt, ob das Objekt stabil ist" #: ../src/project.cpp:923 msgid "" "> add surf2 -- add a pair of surface objects." msgstr "" "> add surf2 -- ein Paar von Oberfl?chenobjekten " "hinzuf?gen" #: ../src/project.cpp:926 msgid "" "> = colour function for 1st surface : red green blue rb1 rb2" msgstr "" "> = Farbfunktion f?r die erste Oberfl?che : red green blue rb1 " "rb2" #: ../src/project.cpp:927 msgid "" "> = colour function for 2nd surface : red green blue rb1 rb2" msgstr "" "> = Farbfunktion f?r die zweite Oberfl?che : red green blue " "rb1 rb2" #: ../src/project.cpp:928 msgid "" "> = scaling value for calculating the surface for 1st " "surface" msgstr "" "> = Skalierungswert f?r die Berechnung der Oberfl?che f?r " "die erste Oberfl?che" #: ../src/project.cpp:929 msgid "" "> = scaling value for calculating the surface for 2nd " "surface" msgstr "" "> = Skalierungswert f?r die Berechnung der Oberfl?che f?r " "die zweite Oberfl?che" #: ../src/project.cpp:938 msgid "> help -- print all available commands in command strings." msgstr "> help -- alle verf?gbaren Befehle in Befehlszeichenketten ausgeben" #: ../src/project.cpp:940 msgid "> energy -- calculate a single-point energy." msgstr "> energy -- Energie eines einzelnen Punktes berechnen" #: ../src/project.cpp:941 msgid "> geom_opt -- do a geometry optimization run using default options." msgstr "" "> geom_opt -- eine Geometrieoptimierung unter Benutzung der Vorgabeoptionen " "vornehmen" #: ../src/project.cpp:942 msgid "> mol_dyn -- do a molecular dynamics run using default options." msgstr "" "> mol_dyn -- Molekulardynamik unter Benutzung der Vorgabeoptionen simulieren" #: ../src/project.cpp:944 msgid "" "> random_search -- perform a random conformational " "search." msgstr "" "> random_search -- eine zuf?llige konformative Suche " "durchf?hren" #: ../src/project.cpp:945 msgid "" "> systematic_search -- perform a systematic " "conformational search." msgstr "" "> systematic_search -- eine systematische konformative " "Suche durchf?hren" #: ../src/project.cpp:946 msgid "" "> montecarlo_search -- perform a " "MonteCarlo search." msgstr "" "> montecarlo_search -- eine " "Monte-Carlo-Suche durchf?hren" #: ../src/project.cpp:948 msgid "" "> make_plot1 A B C D
-- create a 1D " "energy vs. torsion plot." msgstr "" "> make_plot2 A B C D
I J K L
" " -- eine 1D-Energie gegen?ber einer " "Verdrehungsdarstellung erstellen" #: ../src/project.cpp:949 msgid "" "> make_plot2 A B C D
I J K L
" " -- create a 2D energy vs. torsions plot." msgstr "" "> make_plot2 A B C D
I J K L
" " -- eine 2D-Energie gegen?ber einem Torsions-Plot " "erstellen" #: ../src/project.cpp:951 # http://en.wikipedia.org/wiki/Equally_spaced_polynomial msgid "" "> population_analysis_ESP -- determine atomic charges using an ESP fit (for " "QM methods only)." msgstr "" "> population_analysis_ESP -- Atomladungen festlegen unter Benutzung eines " "ESP-Fits (nur f?r QM-Methoden)" #: ../src/project.cpp:953 msgid "" "> transition_state_search -- perform a transition " "state search (for QM methods only)." msgstr "" "> transition_state_search -- f?hrt eine " "?bergangszustandssuche durch (nur f?r QM-Methoden)" #: ../src/project.cpp:954 msgid "" "> stationary_state_search -- perform a search for a structure with " "no forces." msgstr "" "> stationary_state_search -- f?hrt eine Suche nach einer Struktur " "ohne Kr?fte durch" #: ../src/project.cpp:956 # FIXME s/orbtal/orbital/ msgid "" "> set_current_orbital -- set the current orbtal index for " "plotting the orbitals." msgstr "" "> set_current_orbital -- setzt den aktuellen Orbitalindex f?r " "die grafische Darstellung der Orbitale" #: ../src/project.cpp:958 msgid "> update_chains -- detect polymer chains using sequence builder." msgstr "" "> update_chains -- Polymerketten unter Benutzung der Sequenzerstellung " "aufsp?ren" #: ../src/project.cpp:959 msgid "> build_amino (helix/strand) -- amino acid sequence builder." msgstr "> build_amino (helix/strand) -- Aminos?uren-Sequenzerstellung" #: ../src/project.cpp:960 msgid "> build_nucleic -- nucleic acid sequence builder." msgstr "> build_nucleic -- Nukleins?uren-Sequenzerstellung" #: ../src/project.cpp:962 msgid "> orient -- orient the system in the XYZ coordinate system." msgstr "orient -- das System im XYZ-Koordinatensystem ausrichten" #: ../src/project.cpp:964 msgid "" "> solvate_box ( (export)) -- " "setup a solvation box." msgstr "" "> solvate_box ( (export)) -- " "eine Solvatisierungsbox einrichten" #: ../src/project.cpp:965 msgid "" "> solvate_sphere ( ) -- setup " "a solvation sphere." msgstr "" "> solvate_sphere ( ) -- eine " "Solvatisierungssph?re einrichten" #: ../src/project.cpp:967 msgid "> set_formal_charge -- set formal charges to atoms." msgstr "> set_formal_charge -- Formalladungen der Atome setzen" #: ../src/project.cpp:969 msgid "" "> evaluate_Bfact -- evaluate B-factors for selected atoms (a trajectory file " "must be open)." msgstr "" "> evaluate_Bfact -- B-Faktoren f?r ausgew?hlte Atome untersuchen (eine " "Trajektorien-Datei muss offen sein)" #: ../src/project.cpp:970 msgid "" "> evaluate_diffconst
-- evaluate diffusion constants for selected atoms " "(a trajectory file must be open, dt = time difference between frames [fs])." msgstr "" "> evaluate_diffconst
-- Diffusionskonstanten f?r ausgew?hlte Atome " "untersuchen (eine Trajektorien-Datei muss offen sein, dt = Zeit zwischen " "Einzelbildern [fs])." #: ../src/project.cpp:1010 msgid "Added a new object : light (" msgstr "Ein neues Objekt hinzugef?gt : Lichtquelle (" #: ../src/project.cpp:1011 msgid "local" msgstr "lokaler" #: ../src/project.cpp:1011 msgid "global" msgstr "globaler" #: ../src/project.cpp:1012 msgid "directional" msgstr "direktionaler" #: ../src/project.cpp:1012 msgid "spotlight" msgstr "Scheinwerfer" #: ../src/project.cpp:1041 msgid "ERROR : add plane : unknown value function " msgstr "FEHLER : add plane : unbekannte Wertfunktion " #: ../src/project.cpp:1055 msgid "ERROR : add plane : unknown colour function " msgstr "FEHLER : add plane : unbekannte Farbfunktion " #: ../src/project.cpp:1091 msgid "Added a new object : plane (" msgstr "Ein neues Objekt hinzuf?gen : Ebene (" #: ../src/project.cpp:1119 msgid "ERROR : add volrend : unknown value function " msgstr "FEHLER : add volrend : unbekannte Wertfunktion " #: ../src/project.cpp:1133 msgid "ERROR : add volrend : unknown colour function " msgstr "FEHLER : add volrend : unbekannte Farbfunktion " #: ../src/project.cpp:1166 msgid "Added a new object : volrend (" msgstr "Ein neues Objekt hinzugef?gt : volrend (" #: ../src/project.cpp:1199 msgid "ERROR : add surf1 : unknown value function 1 " msgstr "FEHLER : add surf1 : unbekannte Wertfunktion 1 " #: ../src/project.cpp:1214 msgid "ERROR : add surf1 : unknown value function 2 " msgstr "FEHLER : add surf1 : unbekannte Wertfunktion 2 " #: ../src/project.cpp:1228 msgid "ERROR : add surf1 : unknown colour function " msgstr "FEHLER : add surf1 : unbekannte Farbfunktion" #: ../src/project.cpp:1277 msgid "Added a new object : surf1 (" msgstr "Ein neues Objekt hinzugef?gt : surf1 (" #: ../src/project.cpp:1314 msgid "ERROR : add surf2 : unknown value function 1 " msgstr "FEHLER : add surf2 : unbekannte Wertfunktion 1 " #: ../src/project.cpp:1329 msgid "ERROR : add surf2 : unknown value function 2 " msgstr "FEHLER : add surf2 : unbekannte Wertfunktion 2 " #: ../src/project.cpp:1343 msgid "ERROR : add surf2 : unknown colour function 1 " msgstr "FEHLER : add surf2 : unbekannte Farbfunktion 1 " #: ../src/project.cpp:1357 msgid "ERROR : add surf2 : unknown colour function 2 " msgstr "FEHLER : add surf2 : unbekannte Farbfunktion 2 " #: ../src/project.cpp:1417 msgid "Added a new object : surf2 (" msgstr "Ein neues Objekt hinzugef?gt : surf2 (" #: ../src/project.cpp:1423 msgid "ERROR : could not process command \"add\" for parameter " msgstr "FEHLER : Befehl ?add? konnte nicht verarbeitet werden f?r Parameter " #: ../src/project.cpp:1581 msgid "Sorry, this is for QM models only!" msgstr "Entschuldigung, dies ist nur f?r QM-Modelle!" #: ../src/project.cpp:1628 msgid "The current orbital is now " msgstr "Das aktuelle Orbital ist nun " #: ../src/project.cpp:1673 ../src/project.cpp:1708 msgid "built a sequence : " msgstr "eine Sequenz bilden : " #: ../src/project.cpp:1721 msgid "maximum dimensions:" msgstr "maximale Abmessungen:" #: ../src/project.cpp:1823 msgid "Sorry, atom not found!" msgstr "Entschuldigung, Atom nicht gefunden!" #: ../src/project.cpp:1849 msgid "ERROR : Unknown command : " msgstr "FEHLER : unbekannter Befehl : " #: ../src/project.cpp:1850 msgid "The \"help\" command will give more information about command strings." msgstr "" "Der Befehl ?help? wird weitere Informationen ?ber Befehlszeichenketten " "liefern." #: ../src/project.cpp:1877 msgid "local lights = " msgstr "lokale Lichtquellen = " #: ../src/project.cpp:1877 ../src/project.cpp:1884 msgid "on" msgstr "ein" #: ../src/project.cpp:1877 ../src/project.cpp:1884 msgid "off" msgstr "aus" #: ../src/project.cpp:1884 msgid "global lights = " msgstr "globale Lichtquellen = " #: ../src/project.cpp:3256 msgid "Group information about chains/residues is needed for this operation." msgstr "" "F?r diese Operation werden Gruppeninformationen ?ber Ketten/Reste ben?tigt." #: ../src/project.cpp:3257 msgid "Is it OK to update group information?" msgstr "Ist eine Aktualisierung der Gruppeninformationen in Ordnung?" #: ../src/project.cpp:3271 msgid "Sorry, no chain/residue information available for this atom." msgstr "" "Entschuldigung, f?r dieses Atom ist keine Ketten-/Restinformation verf?gbar." #: ../src/project.cpp:3290 msgid "selected atom " msgstr "ausgew?hltes Atom " #: ../src/project.cpp:3290 msgid " (atomtype = " msgstr " (Atomtyp = " #: ../src/project.cpp:3302 msgid "selected residue " msgstr "ausgew?hlter Rest " #: ../src/project.cpp:3302 msgid " from chain " msgstr " aus Kette " #: ../src/project.cpp:3313 msgid "selected chain " msgstr "ausgew?hlte Kette " #: ../src/project.cpp:3337 msgid "selected molecule " msgstr "ausgew?hltes Molek?l " #. this must be OK. #: ../src/project.cpp:3366 msgid "charge: " msgstr "Ladung; " #: ../src/project.cpp:3384 msgid "distance: " msgstr "Entfernung: " #: ../src/project.cpp:3406 msgid "angle: " msgstr "Winkel" #: ../src/project.cpp:3406 msgid " deg" msgstr " Grad" #: ../src/project.cpp:3425 msgid "torsion: " msgstr "Torsionswinkel: " #: ../src/project.cpp:3425 msgid " deg " msgstr " Grad " #: ../src/project.cpp:3494 msgid "MW: " msgstr "Molek?gewicht: " #: ../src/project.cpp:3571 msgid "ERROR : atom " msgstr "FEHLER : Atom " #: ../src/project.cpp:3571 ../src/project.cpp:3757 ../src/project.cpp:3769 msgid " not found!" msgstr " nicht gefunden!" #: ../src/project.cpp:3591 msgid "ERROR : could not find ic.\n" msgstr "FEHLER : ic konnte nicht gefunden werden.\n" #: ../src/project.cpp:3609 msgid "ERROR : could not find tor-term.\n" msgstr "FEHLER : tor-term konnte nicht gefunden werden.\n" #: ../src/project.cpp:3613 msgid "tor(deg)" msgstr "Torsion(Grad)" #: ../src/project.cpp:3613 ../src/project.cpp:3830 ../src/project.cpp:3922 msgid "E(kJ/mol)" msgstr "E(kJ/Mol)" #: ../src/project.cpp:3664 msgid "tor = " msgstr "Torsion = " #: ../src/project.cpp:3664 ../src/project.cpp:3887 msgid " deg, energy = " msgstr " Grad, Energie = " #: ../src/project.cpp:3664 ../src/project.cpp:3887 msgid " kJ/mol." msgstr " kJ/Mol." #: ../src/project.cpp:3757 msgid "ERROR : tor1 atom " msgstr "FEHLER : Torsion1-Atom" #: ../src/project.cpp:3769 msgid "ERROR : tor2 atom " msgstr "FEHLER : Torsion2-Atom" #: ../src/project.cpp:3789 msgid "ERROR : could not find ic for tor1.\n" msgstr "FEHLER : ic f?r Torsion1 konnte nicht gefunden werden.\n" #: ../src/project.cpp:3796 msgid "ERROR : could not find ic for tor2.\n" msgstr "FEHLER : ic f?r Torsion2 konnte nicht gefunden werden.\n" #: ../src/project.cpp:3819 msgid "ERROR : could not find tor-term for tor1.\n" msgstr "FEHLER : tor-term f?r Torsion1 konnte nicht gefunden werden.\n" #: ../src/project.cpp:3826 msgid "ERROR : could not find tor-term for tor2.\n" msgstr "FEHLER : tor-term f?r Torsion2 konnte nicht gefunden werden.\n" #: ../src/project.cpp:3830 msgid "tor1(deg)" msgstr "Torsion1(Grad)" #: ../src/project.cpp:3830 msgid "tor2(deg)" msgstr "Torsion2(Grad)" #: ../src/project.cpp:3887 msgid "tor1 = " msgstr "Torsion1 = " #: ../src/project.cpp:3887 msgid " deg, tor2 = " msgstr " Grad, Torsion2 = " #: ../src/project.cpp:3912 ../src/project.cpp:3947 msgid "r-energy = " msgstr "r-Energie = " #: ../src/project.cpp:3912 ../src/project.cpp:3947 msgid "p-energy = " msgstr "p-Energie = " #: ../src/project.cpp:3913 ../src/project.cpp:3948 msgid " is lower " msgstr " ist niedriger " #: ../src/project.cpp:3952 msgid "READY!" msgstr "FERTIG!" #: ../src/project.cpp:4049 msgid "Starting Stationary State Search " msgstr "Station?r-Zustandssuche wird gestartet" #: ../src/project.cpp:4062 msgid "Cycle Gradient Step\n" msgstr "Zyklus Gradient Schritt\n" #: ../src/project.cpp:4077 msgid "the nsteps termination test was passed.\n" msgstr "der Nsteps-Terminierungstest wurde durchlaufen.\n" #: ../src/rcpview_wcl.cpp:161 # FIXME s/tresholds/thresholds/ msgid "the tresholds were set to " msgstr "die Schwellenwerte wurden gesetzt auf " #: ../src/rcpview_wcl.cpp:161 msgid " and " msgstr " und " #. ################################################################################################ #. eof #: ../src/res_gtk/gtk_file_export_dialog.glade.h:1 #: ../src/res_gtk/gtk_file_import_dialog.glade.h:1 #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:1 msgid "Browse..." msgstr "Durchsuchen ?" #: ../src/res_gtk/gtk_file_export_dialog.glade.h:2 msgid "Export File" msgstr "Datei exportieren" #: ../src/res_gtk/gtk_file_import_dialog.glade.h:2 msgid "Import File" msgstr "Datei importieren" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:1 msgid "Delta-E Cutoff:" msgstr "Delta-E-Schwellenwert:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:3 msgid "Gradient Cutoff:" msgstr "Gradientschwellenwert:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:4 msgid "Maximum # of Steps:" msgstr "Maximale # an Schritten:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:2 msgid "Constant-P simulation (allow P-control at simulation stage)" msgstr "Constant-P-Simulation (erm?glicht P-control auf der Simulationsstufe)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:3 msgid "Constant-T simulation (allow T-control at simulation stage)" msgstr "Constant-T-Simulation (erm?glicht T-control auf der Simulationsstufe)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:4 msgid "Isothermal compressibility [1/bar] :" msgstr "Isothermische Verdichtbarkeit [1/bar] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:6 msgid "Number of steps : (cooling)" msgstr "Anzahl an Schritten : (K?hlung)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:7 msgid "Number of steps : (equilibration)" msgstr "Anzahl an Schritten : (?quilibration)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:8 msgid "Number of steps : (heating)" msgstr "Anzahl an Schritten : (Erw?rmung)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:9 msgid "Number of steps : (simulation)" msgstr "Anzahl an Schritten : (Simulation)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:10 msgid "P relaxation time [fs] :" msgstr "P-Entspannungszeit [fs] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:11 msgid "Pressure [bar] :" msgstr "Druck [bar] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:12 msgid "T relaxation time [fs] : (equil/simul)" msgstr "T-Entspannungszeit [fs] : (?quil/Simul)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:13 msgid "T relaxation time [fs] : (heat/cool)" msgstr "T-Entspannungszeit [fs] : (heiss/kalt)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:14 msgid "Temperature [K] :" msgstr "Temperatur [K] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:15 # FIXME s/Timestep/Time step/ msgid "Timestep [fs] :" msgstr "Zeitschritt [fs] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:16 msgid "Trajectory File : " msgstr "Trajektorien-Datei : " #: ../src/res_gtk/gtk_progress_dialog.glade.h:1 msgid "Background Job" msgstr "Hintergrund-Job" #: ../src/res_gtk/gtk_progress_dialog.glade.h:2 msgid "Job Title : " msgstr "Job-Titel : " #: ../src/res_gtk/gtk_setup_dialog.glade.h:1 msgid "Select the Engine Class:" msgstr "W?hlen Sie die Engine-Klasse aus:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:2 msgid "Set the spin multiplicity of the system:" msgstr "Die Spin-Multiziplit?t des Systems setzen:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:3 msgid "Set the total charge of the system:" msgstr "Die Gesamtladung des Systems setzen:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:4 msgid "Enable atomtype/parameter exceptions (AMBER FF)." msgstr "Atomtyp-/Parameterausnahmen aktivieren (AMBER FF)" #: ../src/res_gtk/gtk_setup_dialog.glade.h:6 msgid "MM/SF" msgstr "MM/SF" #: ../src/res_gtk/gtk_setup_dialog.glade.h:7 msgid "QM/MM" msgstr "QM/MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:8 msgid "Setup" msgstr "Einrichtung" #: ../src/res_gtk/gtk_setup_dialog.glade.h:9 msgid "Spin Multiplicity:" msgstr "Spin-Multiziplit?t:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:10 msgid "Total Charge:" msgstr "Gesamtladung:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:11 msgid "all MM" msgstr "alle MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:12 msgid "all QM" msgstr "alle QM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:13 msgid "all SF" msgstr "alle SF" #: ../src/res_gtk/gtk_setup_dialog.glade.h:14 msgid "this is under construction and DISABLED currently!" msgstr "dies ist in Entwicklung und derzeit DEAKTIVIERT!" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:1 msgid "Relaxed Separation :" msgstr "Relaxierte Separation :" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:2 msgid "Stereo Displacement :" msgstr "Stereo-Verschiebung :" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:3 msgid "Stereo View Settings" msgstr "Stereo-Ansichtseinstellungen" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:1 msgid "Begin" msgstr "Anfang" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:2 msgid "End" msgstr "Ende" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:3 msgid "Play" msgstr "Abspielen" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:4 msgid "Trajectory Viewer" msgstr "Trajektorien-Betrachter" ghemical-3.0.0/po/pt_BR.po0000644000175000017500000020331611563552731012205 00000000000000# translation of pt_br.po to Português Brasileiro # Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the Ghemical package. # # # Maintainer: Tommi Hassinen , 2009. # Ghemical-pt-BR , 2009. # Ulisses Leitão , 2009. msgid "" msgstr "" "Project-Id-Version: pt_br\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-04-21 14:25+0300\n" "PO-Revision-Date: 2009-07-08 10:00-0300\n" "Last-Translator: Ulisses Leitão \n" "Language-Team: Português Brasileiro \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: ../src/custom_app.cpp:100 msgid "Added global light." msgstr "" "Luz global adicionada " "." #: ../src/custom_app.cpp:114 msgid "Added local light." msgstr "Luz local adicionada " #: ../src/eldview_wcl.cpp:162 msgid "No data available," msgstr "Nenhum dado disponível" #: ../src/eldview_wcl.cpp:167 msgid "must be a QM model!" msgstr "tem de ser um modelo QM!!" #: ../src/eldview_wcl.cpp:167 msgid "please calculate energy!" msgstr "favor calcular a energia!" #: ../src/gtk_app.cpp:92 ../src/gtk_oglview_wnd.cpp:38 msgid "File" msgstr "Arquivo" #: ../src/gtk_app.cpp:93 ../src/res_gtk/gtk_setup_dialog.glade.h:5 msgid "Help" msgstr "Ajuda" #: ../src/gtk_app.cpp:95 msgid "New" msgstr "Novo" #: ../src/gtk_app.cpp:95 msgid "Create a new file." msgstr "Criar um arquivo novo" #. N #. ^^^^^^^^ #: ../src/gtk_app.cpp:96 ../src/gtk_oglview_wnd.cpp:40 msgid "Open" msgstr "Abrir" #: ../src/gtk_app.cpp:96 msgid "Open an existing file." msgstr "Abrir um arquivo" #. O #: ../src/gtk_app.cpp:97 ../src/gtk_oglview_wnd.cpp:44 msgid "Save as..." msgstr "Salvar como" #: ../src/gtk_app.cpp:97 msgid "Save a file." msgstr "Salvar um arquivo" #. S #. { "ExportGraphics", GTK_STOCK_SAVE, N_("Export Graphics"), NULL, N_("Export graphics"), (GCallback) gtk_project::popup_FileExportGraphics }, #: ../src/gtk_app.cpp:98 ../src/gtk_oglview_wnd.cpp:49 msgid "Close" msgstr "Fechar" #: ../src/gtk_app.cpp:98 msgid "Quit the program." msgstr "Fechar o aplicativo" #. C #: ../src/gtk_app.cpp:100 msgid "Contents" msgstr "Conteúdo" #: ../src/gtk_app.cpp:100 msgid "View the User's Manual." msgstr "Visualizar o Manual do Usuário" #. H #: ../src/gtk_app.cpp:101 msgid "About" msgstr "Sobre" #: ../src/gtk_app.cpp:101 msgid "Information about this program." msgstr "Informações sobre o aplicativo" #. A #. the rest are toolbar actions... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_app.cpp:106 msgid "Set the current element." msgstr "Definir o elemento químico atual" #: ../src/gtk_app.cpp:107 msgid "Set the current bondtype." msgstr "Definir o tipo de ligação atual" #: ../src/gtk_app.cpp:108 msgid "Setup or change the comp.chem. method in use." msgstr "Definir ou alterar o método computacional em uso" #: ../src/gtk_app.cpp:113 msgid "Draw ; add atoms and bonds to the model." msgstr "Desenhar: adicionar átomos e ligações químicas ao modelo" #: ../src/gtk_app.cpp:114 msgid "Erase ; remove atoms and bonds from the model." msgstr "Apagar: retirar átomos e ligações químicas do modelo" #: ../src/gtk_app.cpp:115 msgid "Select ; make selections in the model, and also select objects." msgstr "Selecionar: realizar seleções no modelo e nos objetos selecionados" #: ../src/gtk_app.cpp:116 msgid "Zoom ; zoom the view." msgstr "Zoom: ampliar a visão" #: ../src/gtk_app.cpp:117 msgid "Clipping ; set the near and far clipping planes for graphics rendering." msgstr "Clipping: definir o primeiro plano e o plano de fundo para renderização " #: ../src/gtk_app.cpp:118 msgid "TranslateXY ; translate the camera or a selected object in XY-direction." msgstr "Translação XY: mover a câmara ou o objeto selecionado no plano XY" #: ../src/gtk_app.cpp:119 msgid "TranslateZ ; translate the camera or a selected object in Z-direction." msgstr "Translação Z: mover a câmara ou o objeto selecionado na direção Z" #: ../src/gtk_app.cpp:120 msgid "" "OrbitXY ; orbit the camera or a selected object around the focus point in XY-" "direction." msgstr "Orbitar em XY: orbitar a câmara ou o objeto selecionado ao redor do ponto focal no plano XY." #: ../src/gtk_app.cpp:121 msgid "" "OrbitZ ; orbit the camera or a selected object around the focus point in Z-" "direction." msgstr "Orbitar em Z: orbitar a câmara ou o objeto selecionado ao redor do ponto focal na direção Z." #: ../src/gtk_app.cpp:122 msgid "RotateXY ; turn the camera or a selected object in XY-direction." msgstr "Rotacionar em XY: rotacionar a câmara ou o objeto selecionado em uma direção no plano XY" #: ../src/gtk_app.cpp:123 msgid "RotateZ ; turn the camera or a selected object in Z-direction." msgstr "Rotacionar em Z: rotacionar a câmara ou o objeto selecionado na direção Z" #: ../src/gtk_app.cpp:124 msgid "Measure ; measure distances, angles and torsions." msgstr "Medir: medir comprimentos, ângulos e torções" #: ../src/gtk_app.cpp:207 msgid "Set to Current Object" msgstr "Associar ao Objeto Atual" #: ../src/gtk_app.cpp:207 msgid "Set this object to Current Object" msgstr "Associar este objeto ao Objeto Atual" #: ../src/gtk_app.cpp:208 msgid "Delete Object/View" msgstr "Deletar Objeto/Visão" #: ../src/gtk_app.cpp:208 msgid "Delete this object or view" msgstr "Deletar este Objeto ou Visão" #: ../src/gtk_app.cpp:225 msgid "Update View" msgstr "Atualizar Visão" #: ../src/gtk_app.cpp:225 msgid "Rebuild the chains info for this view" msgstr "Reconstruir as informações de cadeia para esta visão" #: ../src/gtk_app.cpp:226 msgid "Select Item" msgstr "Selecionar item" #: ../src/gtk_app.cpp:226 msgid "Select/unselect this chain/residue" msgstr "Selecionar/deselecionar esta cadeia/resíduo" #: ../src/gtk_app.cpp:243 msgid "Select Atom" msgstr "Selecionar Ãtomo" #: ../src/gtk_app.cpp:243 msgid "Select/unselect this atom" msgstr "Selecionar/deselecionar este átomo" #: ../src/gtk_app.cpp:258 msgid "Select Bond" msgstr "Selecionar Ligação" #: ../src/gtk_app.cpp:258 msgid "Select/unselect this bond" msgstr "Selecionar/deselecionar esta ligação" #: ../src/gtk_app.cpp:344 msgid "Ghemical" msgstr "Ghemical" #: ../src/gtk_app.cpp:351 #, c-format msgid "ERROR : Icon loading failed : %s\n" msgstr "ERRO: falha ao carregar o ícone: %s\n" #: ../src/gtk_app.cpp:381 #, c-format msgid "ERROR : Building main menu failed : %s" msgstr "ERRO: falha ao construir o Menu principal : %s" #: ../src/gtk_app.cpp:566 msgid "project view" msgstr "Visão do Projeto" #. optional : draw the stripes to background. #. ??? (string) #: ../src/gtk_app.cpp:584 msgid "Object" msgstr "Objeto" #. ??? (string) #: ../src/gtk_app.cpp:588 msgid "Sub-Objects" msgstr "Subobjetos" #: ../src/gtk_app.cpp:591 msgid "Views/Objects" msgstr "Visão/Objetos" #: ../src/gtk_app.cpp:604 #, c-format msgid "ERROR : Building Views/Objects menu in project view failed : %s" msgstr "ERRO: falha ao construir Menu de Visão/Objetos na Visão do Projeto: %s" #. optional : draw the stripes to background. #. chain_info (string) #: ../src/gtk_app.cpp:620 msgid "Chain Description" msgstr "Descrição da cadeia" #. res_num (string) #: ../src/gtk_app.cpp:624 msgid "Residue Number" msgstr "Número do resíduo" #. res_id (string) #: ../src/gtk_app.cpp:628 msgid "Residue ID" msgstr "ID do Resíduo" #. res_state1 (string) #: ../src/gtk_app.cpp:632 msgid "Sec-Str State" msgstr "" #. res_state2 (string) #: ../src/gtk_app.cpp:636 msgid "Protonation State" msgstr "" #: ../src/gtk_app.cpp:639 msgid "Chains" msgstr "Cadeias" #: ../src/gtk_app.cpp:652 #, c-format msgid "ERROR : Building Chains menu in project view failed : %s" msgstr "ERRO: falha ao construir o Menu de Cadeias na Visão do Projeto : %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:668 msgid "Atom Index" msgstr "Ãndice do átomo" #. element #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_app.cpp:672 ../src/gtk_oglview_wnd.cpp:112 #: ../src/gtk_oglview_wnd.cpp:120 msgid "Element" msgstr "Elemento" #: ../src/gtk_app.cpp:678 msgid "Locked" msgstr "Bloqueado" #: ../src/gtk_app.cpp:681 msgid "Atoms" msgstr "Ãtomos" #: ../src/gtk_app.cpp:694 #, c-format msgid "ERROR : Building Atoms menu in project view failed : %s" msgstr "ERRO: falha ao construir o Menu de Ãtomos na Visão do Projeto : %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:710 msgid "Atom Index #1" msgstr "Ãndice do átomo #1" #. index2 #: ../src/gtk_app.cpp:714 msgid "Atom Index #2" msgstr "Ãndice do átomo #2" #. bondtype #: ../src/gtk_app.cpp:718 msgid "BondType" msgstr "Tipo de ligação" #: ../src/gtk_app.cpp:721 msgid "Bonds" msgstr "Ligações" #: ../src/gtk_app.cpp:734 #, c-format msgid "ERROR : Building Bonds menu in project view failed : %s" msgstr "ERRO: falha ao construir o Menu de Ligações na Visão do Projeto : %s" #. protect the model-data during background jobs... #: ../src/gtk_app.cpp:772 msgid "" "Are you sure that you\n" "want to quit the program?" msgstr "Deseja realmente sair do aplicativo?" #: ../src/gtk_app.cpp:839 msgid "gtk_app::sPrintToLog() : message is too long!" msgstr "gtk_app::sPrintToLog() : menssagem é muito longa!" #: ../src/gtk_app.cpp:898 msgid "window " msgstr "janela" #: ../src/gtk_app.cpp:899 ../src/gtk_app.cpp:903 msgid " (detached)" msgstr " (desembutida)" #: ../src/gtk_app.cpp:899 msgid " (attached)" msgstr " (embutida)" #: ../src/gtk_app.cpp:901 msgid "cam " msgstr "" #: ../src/gtk_app.cpp:902 msgid "wnd " msgstr "" #: ../src/gtk_app.cpp:921 ../src/gtk_app.cpp:922 msgid "RC plot view" msgstr "visão de gráfico RC" #: ../src/gtk_app.cpp:927 ../src/gtk_app.cpp:928 msgid "1D plot view" msgstr "Visão de gráfico 1D" #: ../src/gtk_app.cpp:934 ../src/gtk_app.cpp:935 msgid "2D plot view" msgstr "Visão de gráfico 2D" #: ../src/gtk_app.cpp:941 ../src/gtk_app.cpp:942 msgid "energy-level diagram view" msgstr "Visao do diagrama de nível de energia" #: ../src/gtk_app.cpp:947 ../src/gtk_app.cpp:948 msgid "generic protein chain view" msgstr "Visão geral da cadeia protéica" #: ../src/gtk_app.cpp:953 ../src/gtk_app.cpp:954 msgid "" msgstr "" #: ../src/gtk_app.cpp:980 ../src/project.cpp:617 msgid "camera " msgstr "câmera " #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 ../src/gtk_app.cpp:1291 #: ../src/gtk_app.cpp:1316 msgid "Object " msgstr "Objeto " #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 msgid " is set to current object." msgstr " associado ao objeto atual " #: ../src/gtk_app.cpp:1258 ../src/gtk_app.cpp:1324 msgid "Sorry, this operation is not yet implemented." msgstr "Descupe, esta operação ainda não foi implementada." #: ../src/gtk_app.cpp:1291 ../src/gtk_app.cpp:1316 msgid " is deleted." msgstr " deletado" #. if (ci_vector[n1].description... // this is not implemented at the moment... #: ../src/gtk_app.cpp:1348 msgid "chain #" msgstr "cadeia #" #: ../src/gtk_app.cpp:1355 msgid " chain)." msgstr " cadeia)." #. make the list show the updated information... #: ../src/gtk_app.cpp:1606 #, c-format msgid "Atom locking changed : %s\n" msgstr "Alterado o bloqueio do átomo : %s\n" #: ../src/gtk_app.cpp:1606 msgid "yes" msgstr "sim" #: ../src/gtk_app.cpp:1606 msgid "no" msgstr "não" #: ../src/gtk_app.cpp:1632 msgid "Conjugated" msgstr "Conjugado" #: ../src/gtk_app.cpp:1633 msgid "Single" msgstr "Simples" #: ../src/gtk_app.cpp:1634 msgid "Double" msgstr "Dupla" #: ../src/gtk_app.cpp:1635 msgid "Triple" msgstr "Tripla" #: ../src/gtk_app.cpp:2068 msgid "Displaying the User's Manual using the following command:" msgstr "Apresentar o Manual do Usuário utilizando o seguinte comando: " #: ../src/gtk_app.cpp:2078 msgid "Ghemical-" msgstr "Ghemical-" #: ../src/gtk_app.cpp:2078 msgid " released on " msgstr " publicado em " #: ../src/gtk_app.cpp:2080 msgid "For more information please visit:" msgstr "Para informações mais detalhadas favor visitar:" #: ../src/gtk_app.cpp:2088 msgid "Authors:" msgstr "Autores: " #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Attach/Detach This View" msgstr "Embutir/liberar esta Visualização" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Select whether this view is attached or in an independent window" msgstr "Selecione se esta janela de visualização é embutida ou em uma janela independente" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete View" msgstr "Deletar visualização" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete this view" msgstr "Deletar esta visualização" #: ../src/gtk_eldview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_eldview_wnd failed : %s" msgstr "ERRO: falha ao construir o Menu suspenso pelo gtk_eldview_wnd : %s" #: ../src/gtk_file_export_dialog.cpp:41 msgid "file_export_dialog : glade_xml_get_widget() failed!!!" msgstr "file_export_dialog : falha no glade_xml_get_widget()!!!" #: ../src/gtk_file_export_dialog.cpp:52 ../src/gtk_file_import_dialog.cpp:52 msgid "Automatic" msgstr "Automático" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_export_dialog.cpp:131 msgid "Select a filename for export." msgstr "Selecionar nome de arquivo para exportação." #: ../src/gtk_file_import_dialog.cpp:41 msgid "file_import_dialog : glade_xml_get_widget() failed!!!" msgstr "file_import_dialog : falha no glade_xml_get_widget()!!!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_import_dialog.cpp:133 msgid "Select a file to import." msgstr "Selecionar arquivo para importação." #: ../src/gtk_geomopt_dialog.cpp:41 msgid "WARNING : geomopt_dialog : glade_xml_get_widget() failed!!!" msgstr "ALERTA : falha no geomopt_dialog : glade_xml_get_widget()!!!" #: ../src/gtk_gpcview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_gpcview_wnd failed : %s" msgstr "ERRO: falha ao construir o Menu Suspenso para gtk_gpcview_wnd : %s" #: ../src/gtk_main.cpp:45 msgid "open a file" msgstr "abrir um arquivo" #: ../src/gtk_main.cpp:46 msgid "import a file" msgstr "importar um arquivo" #: ../src/gtk_main.cpp:61 msgid "- a GTK2 molecular modelling program" msgstr "- um aplicativo GTK2 para modelagem molecular" #: ../src/gtk_main.cpp:84 #, c-format msgid "OpenGL extension version - %d.%d\n" msgstr "Versão da extensão OpenGL - %d.%d\n" #: ../src/gtk_main.cpp:140 msgid "Sorry! The file import feature is disabled ; you need to recompile" msgstr "Desculpe! A funcionalidade de importação de arquivos está desabilitada. Você precisa recompilar o aplicativo" #: ../src/gtk_main.cpp:141 msgid "libghemical with --enable-openbabel option in order to fix this." msgstr "libghemical com a opção --enable-openbabel habilitada para corrigir isto." #: ../src/gtk_moldyn_dialog.cpp:42 msgid "WARNING : moldyn_dialog : glade_xml_get_widget() failed!!!" msgstr "ALERTA : falha no moldyn_dialog : glade_xml_get_widget()!!!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_moldyn_dialog.cpp:232 msgid "Select a Trajectory File." msgstr "Selecionar um arquivo de Trajetória." #: ../src/gtk_oglview_wnd.cpp:40 msgid "Open a file" msgstr "Abrir um arquivo" #: ../src/gtk_oglview_wnd.cpp:42 msgid "Import..." msgstr "Importar..." #: ../src/gtk_oglview_wnd.cpp:42 msgid "Import other file formats using libopenbabel" msgstr "Importar outros formatos de aquivo utilizando libopenbabel" #: ../src/gtk_oglview_wnd.cpp:44 msgid "Save a file" msgstr "Salvar um arquivo" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export" msgstr "Exportar" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export other file formats using OpenBabel" msgstr "Exportar outros formatos de arquivo utilizando OpenBabel" #: ../src/gtk_oglview_wnd.cpp:49 msgid "Close the file" msgstr "Fechar o arquivo" #: ../src/gtk_oglview_wnd.cpp:51 msgid "Extra Tools" msgstr "Ferramentas extras" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import PDB" msgstr "Importar PDB" #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import a PDB file" msgstr "Importar um arquivo no formato PDB" #. { "FileExtra2", NULL, N_("Import ???"), NULL, N_("Import a ??? file"), (GCallback) gtk_project::popup_FileExtra2 }, #: ../src/gtk_oglview_wnd.cpp:56 msgid "Select" msgstr "Selecionar" #. ^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select All" msgstr "Selecionar todos" #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select all atoms" msgstr "Selecionar todos os átomos" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select None" msgstr "Selecionar nenhum" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select nothing" msgstr "Selecionar nada" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert Selection" msgstr "Inverter seleção" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert the selection" msgstr "Inverter a seleção" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide Selected" msgstr "Ocultar seleção" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide all selected atoms" msgstr "Ocultar todos os átomos selecionados" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show Selected" msgstr "Mostrar seleção" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show all selected atoms" msgstr "Mostrar todos os átomos selecionados" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock Selected" msgstr "Selecionado Bloqueamento" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock all selected atoms" msgstr "Bloquear todos os átomos selecionados" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock Selected" msgstr "Desbloquear seleção" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock all selected atoms" msgstr "Desbloquear todos os átomos selecionados" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete Selected" msgstr "Deletar seleção" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete all selected atoms" msgstr "Deletar todos os átomos selecionados" #: ../src/gtk_oglview_wnd.cpp:67 msgid "Selection Mode" msgstr "Modo Seleção" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the setting from project is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select Atoms" msgstr "Ãtomos selecionados" #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select single atoms" msgstr "Selecionar átomos isolados" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select Residues" msgstr "Selecionar Resíduos" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select residues" msgstr "selecionar resíduos" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select Chains" msgstr "Selecionar Cadeias" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select chains" msgstr "Selecionar cadeias de átomos" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select Molecules" msgstr "Selecionar Moléculas" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select molecules" msgstr "Selecionar moléculas" #: ../src/gtk_oglview_wnd.cpp:75 msgid "Render" msgstr "Renderizar" #. ^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:78 msgid "Quick Update Mode" msgstr "Modo de atualização rápida" #: ../src/gtk_oglview_wnd.cpp:78 msgid "" "Quick Update Mode switches into Wireframe rendering mode when doing " "interactive work" msgstr "O \"Modo de atualização rápida\" alterna para a renderização em \"Armadura de Arrame\" ao computar trabalho interativo - interessante no caso de se manipular moléculas muito grandes" #: ../src/gtk_oglview_wnd.cpp:80 msgid "Views" msgstr "Visualizações" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete This View" msgstr "Deletar esta visão" #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete this graphics view" msgstr "Deletar esta visualização gráfica" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a CRD-set (experimental)" msgstr "Salvar um conjunto CRD (experimental)" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a coordinate set" msgstr "Salvar conjunto de coordenadas" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose CRD-sets (experimental)" msgstr "Superpor conjunto CRD (experimental)" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose coordinate sets" msgstr "Superpor conjunto de coordenadas" #: ../src/gtk_oglview_wnd.cpp:86 msgid "Create" msgstr "Criar" #. ^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:88 msgid "New Window" msgstr "Nova Janela" #: ../src/gtk_oglview_wnd.cpp:88 msgid "Create a new view using the current camera" msgstr "Criar uma nova visão usando a câmera atual" #: ../src/gtk_oglview_wnd.cpp:89 msgid "New Camera" msgstr "Nova Câmera" #: ../src/gtk_oglview_wnd.cpp:89 msgid "Create a new view using a new camera" msgstr "Criar uma nova visão usando uma nova câmera" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Energy-level Diagram" msgstr "Diagrama de Nível de Energia" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Create a new energy-level diagram view" msgstr "Criar um novo Diagrama de Nível de Energia" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Secondary Structure Constraints" msgstr "Limitações de Estrura Secundária" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Create a new secondary structure constraints view" msgstr "Criar uma nova visualização de Limitação de Estrutura Secundária" #: ../src/gtk_oglview_wnd.cpp:93 msgid "Lights" msgstr "Luzes" #. ^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create New Light" msgstr "Criar nova iluminação" #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create a new light object" msgstr "Criar um novo Objeto de Luz" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:97 msgid "Enable Local Lights" msgstr "Habilitar Iluminação Local" #: ../src/gtk_oglview_wnd.cpp:97 msgid "Switch on/off the local light objects" msgstr "Interuptor de Objetos de Iluminação Local" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Enable Global Lights" msgstr "Habilitar Iluminação Global" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Switch on/off the global light objects" msgstr "Interuptor de Objetos de Iluminação Global" #: ../src/gtk_oglview_wnd.cpp:100 msgid "Render Mode" msgstr "Modo de Renderização" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:103 msgid "Ball & Stick" msgstr "Esferas e varetas" #: ../src/gtk_oglview_wnd.cpp:103 msgid "Display atoms and bonds using Ball & Stick mode" msgstr "Visualizar átomos e ligações no Modo Esferas e varetas" #: ../src/gtk_oglview_wnd.cpp:104 msgid "van der Waals" msgstr "van der Waals" #: ../src/gtk_oglview_wnd.cpp:104 msgid "Display atoms and bonds using van der Waals mode" msgstr "Visualizar átomos e ligações no Modo van der Waals" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Cylinders" msgstr "Varetas" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Display atoms and bonds using Cylinders mode" msgstr "Visualizar átomos e ligações no Modo Varetas (Cilíndros)" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Wireframe" msgstr "Arrame" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Display atoms and bonds using Wireframe mode" msgstr "Visualizar átomos e ligações no Modo Arrame (Armadura de Fios)" #: ../src/gtk_oglview_wnd.cpp:107 ../src/gtk_oglview_wnd.cpp:128 msgid "Nothing" msgstr "Nada" #: ../src/gtk_oglview_wnd.cpp:107 msgid "Do not display atoms and bonds" msgstr "Não visualizar átomos e ligações" #: ../src/gtk_oglview_wnd.cpp:109 msgid "Color Mode" msgstr "Modo Cor" #: ../src/gtk_oglview_wnd.cpp:112 msgid "Color atoms and bonds by element" msgstr "Colorir átomos e ligações de acordo com os elementos químicos" #: ../src/gtk_oglview_wnd.cpp:113 ../src/gtk_oglview_wnd.cpp:127 msgid "Sec-Struct" msgstr "" #: ../src/gtk_oglview_wnd.cpp:113 msgid "Color atoms and bonds by secondary-structure state" msgstr "Colorir átomos e ligações de acordo com o estado da Estrutura Secundária" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Hydrophobicity" msgstr "Hidrofobicidade" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Color atoms and bonds by hydrophobicity (experimental)" msgstr "Colorir átomos e ligações de acordo com Hidrofobicidade (experimental)" #: ../src/gtk_oglview_wnd.cpp:116 msgid "Label Mode" msgstr "Modo de Rótulo" #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:119 msgid "Index" msgstr "Ãndice" #: ../src/gtk_oglview_wnd.cpp:119 msgid "Label atoms by atom index" msgstr "Rotular átomos pelo índice do átomo" #: ../src/gtk_oglview_wnd.cpp:120 msgid "Label atoms by element" msgstr "Rotular átomos pelo elemento químico" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Formal Charge" msgstr "Carga formal" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Label atoms by formal charge" msgstr "Rotular átomos pela carga formal" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Partial Charge" msgstr "Carga Parcial" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Label atoms by partial charge" msgstr "Rotular átomos pela carga parcial" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Atom Type" msgstr "Tipo do Ãtomo" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Label atoms by atom type" msgstr "Rotular átomos pelo tipo do átomo" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Builder ID" msgstr "" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Label atoms by sequence builder ID" msgstr "Rotular átomos pelo sequence builder ID" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Bond Type" msgstr "Tipo de ligação" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Label bonds by bond type" msgstr "Rotular ligações pelo tipo de ligação" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Residue" msgstr "Resíduo" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Label by residue" msgstr "Rotular pelo resíduo" #: ../src/gtk_oglview_wnd.cpp:127 msgid "Label by secondary structure state" msgstr "Rotular segundo o estado da estrutura secundária" #: ../src/gtk_oglview_wnd.cpp:128 msgid "Do not show labels" msgstr "Não mostrar rótulos" #: ../src/gtk_oglview_wnd.cpp:130 msgid "Projection" msgstr "Projeção" #. ^^^^^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:133 msgid "Orthographic" msgstr "" "Projeção Ortogrpublic " "áfica" #: ../src/gtk_oglview_wnd.cpp:133 msgid "Use orthographic projection" msgstr "Utilizar a projeção ortográfica" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Perspective" msgstr "Perspectiva" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Use perspective projection" msgstr "Utilizar a projeção em perspectiva" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #. todo : add more color combinations ; red/green red/blue ; any others needed??? #: ../src/gtk_oglview_wnd.cpp:137 msgid "Red-Blue Stereo" msgstr "Estéreo Azul-Vermelho" #: ../src/gtk_oglview_wnd.cpp:137 msgid "Use red-blue stereo mode" msgstr "Utilizar o modo estéreo em vermelho-azul" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Relaxed-Eye Stereo" msgstr "Estéreo Olho-relaxado" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Use relaxed-eye stereo mode" msgstr "Utilizar o modo estéreo para olho-relaxado" #: ../src/gtk_oglview_wnd.cpp:140 msgid "Objects" msgstr "Objetos" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:142 msgid "Ribbon" msgstr "Tira" #: ../src/gtk_oglview_wnd.cpp:142 msgid "Create a Ribbon object for displaying peptides/proteins" msgstr "Criar uma estrutura de tira para apresentação de pepitídeos/proteínas" #: ../src/gtk_oglview_wnd.cpp:143 msgid "ESP-plane" msgstr "Plano-ESP" #: ../src/gtk_oglview_wnd.cpp:143 msgid "Create an ESP-plane object" msgstr "Criar um Plano-ESP" #: ../src/gtk_oglview_wnd.cpp:144 msgid "volume-rendered ESP" msgstr "Volume renderizado ESP" #: ../src/gtk_oglview_wnd.cpp:144 msgid "Create a volume-rendered ESP object" msgstr "Criar um volume renderizado ESP" #: ../src/gtk_oglview_wnd.cpp:145 msgid "ESP-surface" msgstr "Superfície ESP" #: ../src/gtk_oglview_wnd.cpp:145 msgid "Create an ESP-surface object" msgstr "Criar uma superfície ESP" #: ../src/gtk_oglview_wnd.cpp:146 msgid "ESP-colored vdW-surface" msgstr "Superfície ESP colorida vdW" #: ../src/gtk_oglview_wnd.cpp:146 msgid "Create an ESP-colored vdW-surface object" msgstr "Criar uma Superfície ESP colorida vdW" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Electron density plane" msgstr "Plano de densidade de elétrons" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Create an Electron density plane object" msgstr "Criar um plano de densidaded de elétrons" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Electron density surface" msgstr "Superfície de densidade de elétrons " #: ../src/gtk_oglview_wnd.cpp:148 msgid "Create an Electron density surface object" msgstr "Criar uma superfície de densidade de elétrons" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Molecular orbital plane" msgstr "Plano orbital molecular" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Create a Molecular orbital plane object" msgstr "Criar um plano orbital molecular" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Molecular orbital volume" msgstr "Volume orbital molecular" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Create a Molecular orbital volume object" msgstr "Criar um volume orbital molecular" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Molecular orbital surface" msgstr "Superfície orbital molecular" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Create a Molecular orbital surface object" msgstr "Criar uma superfície orbital molecular" #: ../src/gtk_oglview_wnd.cpp:152 msgid "MO-density plane" msgstr "Plano de densidade MO" #: ../src/gtk_oglview_wnd.cpp:152 msgid "Create an MO-density plane object" msgstr "Criar um plano de densidade MO" #: ../src/gtk_oglview_wnd.cpp:153 msgid "MO-density volume" msgstr "Volume de densidade MO" #: ../src/gtk_oglview_wnd.cpp:153 msgid "Create an MO-density volume object" msgstr "Criar um volume de densidade MO" #: ../src/gtk_oglview_wnd.cpp:154 msgid "MO-density surface" msgstr "Superfície de densidade MO" #: ../src/gtk_oglview_wnd.cpp:154 msgid "Create an MO-density surface object" msgstr "Criar uma superfície de densidade MO" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete Current Object" msgstr "Deletar objeto atual" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete the currently selected object" msgstr "Deletar o objeto selecionado" #: ../src/gtk_oglview_wnd.cpp:157 msgid "Compute" msgstr "Computar" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:159 msgid "Setup..." msgstr "Configurar..." #: ../src/gtk_oglview_wnd.cpp:160 msgid "Energy" msgstr "Energia" #: ../src/gtk_oglview_wnd.cpp:161 msgid "Geometry Optimization..." msgstr "Otimização conformacional..." #: ../src/gtk_oglview_wnd.cpp:162 msgid "Molecular Dynamics..." msgstr "Dinâmica Molecular..." #: ../src/gtk_oglview_wnd.cpp:163 msgid "Random Conformational Search..." msgstr "Busca Conformacional aleatória..." #: ../src/gtk_oglview_wnd.cpp:164 msgid "Systematic Conformational Search..." msgstr "Busca Conformacional sistemática..." #: ../src/gtk_oglview_wnd.cpp:165 msgid "Monte Carlo Search..." msgstr "Busca Monte Carlo..." #: ../src/gtk_oglview_wnd.cpp:166 msgid "Plot Energy vs. 1 Torsion Angle..." msgstr "Gráfico Energia vs. ângulo de Torção (1D)" #: ../src/gtk_oglview_wnd.cpp:167 msgid "Plot Energy vs. 2 Torsion Angles..." msgstr "Gráfico de Energia vs. ângulo de torção (2D)" #: ../src/gtk_oglview_wnd.cpp:168 msgid "Population Analysis (ESP)" msgstr "Análise de População (ESP)" #: ../src/gtk_oglview_wnd.cpp:169 msgid "Transition State Search..." msgstr "Busca por Estado de Transição..." #: ../src/gtk_oglview_wnd.cpp:170 msgid "Stationary State Search..." msgstr "Busca por Estado Estacionário..." #: ../src/gtk_oglview_wnd.cpp:171 msgid "Formula" msgstr "Fórmula" #: ../src/gtk_oglview_wnd.cpp:176 msgid "MD Trajectory Viewer..." msgstr "Visualizador de Trajetória MD" #: ../src/gtk_oglview_wnd.cpp:177 msgid "Set Current Orbital" msgstr "Definir Orbital Atual" #: ../src/gtk_oglview_wnd.cpp:179 msgid "Build" msgstr "Construir" #. ^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:181 msgid "Solvate Box..." msgstr "Caixa de Solvente..." #: ../src/gtk_oglview_wnd.cpp:182 msgid "Solvate Sphere..." msgstr "Esfera de Solvente..." #: ../src/gtk_oglview_wnd.cpp:183 msgid "Sequence Builder (amino)..." msgstr "Sequenciador (amino-ácidos)" #: ../src/gtk_oglview_wnd.cpp:184 msgid "Sequence Builder (nucleic)..." msgstr "Sequenciador (DNA)" #: ../src/gtk_oglview_wnd.cpp:185 msgid "Center" msgstr "Centro" #: ../src/gtk_oglview_wnd.cpp:186 msgid "Zap All" msgstr "" #: ../src/gtk_oglview_wnd.cpp:188 msgid "Hydrogens" msgstr "Hidrogêneos" #. ^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:190 msgid "Add" msgstr "Adicionar" #: ../src/gtk_oglview_wnd.cpp:191 msgid "Remove" msgstr "Remover" #: ../src/gtk_oglview_wnd.cpp:193 msgid "Enter a Command..." msgstr "Entrar comando..." #: ../src/gtk_oglview_wnd.cpp:380 #, c-format msgid "ERROR : Building popup-menu for gtk_oglview_wnd failed : %s" msgstr "ERRO: falha ao construir Menu Supenso para gtk_oglview_wnd : %s" #: ../src/gtk_oglview_wnd.cpp:630 msgid "sets 0 <-> " msgstr "" #: ../src/gtk_oglview_wnd.cpp:630 msgid " RMS = " msgstr "" #: ../src/gtk_oglview_wnd.cpp:636 msgid "average RMS = " msgstr "Média RMS = " #: ../src/gtk_p1dview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_p1dview_wnd failed : %s" msgstr "ERRO: falha ao construir Menu suspenso para gtk_p1dview_wnd : %s" #: ../src/gtk_p2dview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_p2dview_wnd failed : %s" msgstr "ERRO: falha ao construir Menu suspenso para gtk_p2dview_wnd : %s" #: ../src/gtk_progress_dialog.cpp:39 msgid "WARNING : progress_dialog : glade_xml_get_widget() failed!!!" msgstr "ALERTA : falha em progress_dialog : glade_xml_get_widget()!!!" #: ../src/gtk_project.cpp:81 msgid "A new project created.\n" msgstr "Criado um novo projeto.\n" #: ../src/gtk_project.cpp:184 msgid "Thread creation failed : GeomOpt" msgstr "Falha ao criar Thread : GeomOpt" #: ../src/gtk_project.cpp:199 ../src/res_gtk/gtk_geomopt_dialog.glade.h:2 msgid "Geometry Optimization" msgstr "Otimização Conformacional" #: ../src/gtk_project.cpp:234 msgid "Thread creation failed : MolDyn" msgstr "Falha ao criar Thread : MolDyn" #: ../src/gtk_project.cpp:249 ../src/res_gtk/gtk_moldyn_dialog.glade.h:5 msgid "Molecular Dynamics" msgstr "Dinâmica Molecular" #: ../src/gtk_project.cpp:273 msgid "Thread creation failed : RandomSearch" msgstr "Falha ao criar Thread : Busca Aleatória" #: ../src/gtk_project.cpp:288 msgid "Random Search" msgstr "Busca Aleatória" #: ../src/gtk_project.cpp:776 ../src/gtk_project.cpp:794 #: ../src/gtk_project.cpp:812 ../src/gtk_project.cpp:830 #: ../src/gtk_project.cpp:848 ../src/gtk_project.cpp:866 #: ../src/gtk_project.cpp:884 ../src/gtk_project.cpp:902 #: ../src/gtk_project.cpp:920 ../src/gtk_project.cpp:938 #: ../src/gtk_project.cpp:956 ../src/gtk_project.cpp:974 msgid "Please calculate energy first!" msgstr "Favor calcular a energia previamente!" #: ../src/gtk_project.cpp:1075 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D with atom indices that define the " "torsion.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "ATENÇÃO! \n " "O comando apresentado na próxima janela de diálogo está incompleto. \n" "Você deve trocar as letras A-D pelos índices dos átomos que definem a torção. \n" "\n" "NOTE: refinamentos de estrutura são sempre realizados utilizando mecânica molecular (optsteps)." #: ../src/gtk_project.cpp:1088 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D and I-L with atom indices that define the " "torsions.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "ATENÇÃO! \n " "O comando apresentado na próxima janela de diálogo está incompleto. \n" "Você deve trocar as letras A-D e I-L pelos índices dos átomos que definem a torção. \n" "\n" "NOTE: refinamentos de estrutura são sempre realizados utilizando mecânica molecular (optsteps)." #: ../src/gtk_project.cpp:1162 msgid "ERROR" msgstr "ERRO" #: ../src/gtk_project.cpp:1173 msgid "Trajectory file already open?" msgstr "Arquivo de Trajetória já aberto?" #: ../src/gtk_project.cpp:1182 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letter X with the orbital index that will become the " "current orbital." msgstr "" "ATENÇÃO! \n " "O comando apresentado na próxima janela de diálogo está incompleto. \n" "Você deve trocar a letra X pelo índice do orbital desejado. \n" "\n" "NOTE: refinamentos de estrutura são sempre realizados utilizando mecânica molecular (optsteps)." #: ../src/gtk_project.cpp:1237 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AAA with the sequence to be built." msgstr "" "ATENÇÃO! \n " "O comando apresentado na próxima janela de diálogo está incompleto. \n" "Você deve trocar a sequência padrão AAA pela sequência desejada. \n" "\n" "NOTE: Para verificar as abreviaturas dos amino-ácidos, favor consultar o Apêndice 1 da Ajuda: Abreviações de Amino-ácidos" #: ../src/gtk_project.cpp:1250 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AGTCaguc with the sequence to be " "built." msgstr "" "HATENÇÃO! \n " "O comando apresentado na próxima janela de diálogo está incompleto. \n" "Você deve trocar a sequência padrão AGTCaguc pela sequência desejada. \n" "\n" "NOTE: A (Adenina), G (Guanina), T (Timina), C (Citosina) e u (Uracila) " #: ../src/gtk_project.cpp:1287 msgid "Are you sure you want to clear everything?" msgstr "Tem certesa que deseja apagar tudo?" #: ../src/gtk_rcpview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_rcpview_wnd failed : %s" msgstr "ERRO: falha ao construir o Menu suspenso para gtk_rcpview_wnd : %s" #: ../src/gtk_setup_dialog.cpp:49 msgid "WARNING : setup_dialog : glade_xml_get_widget() failed!!!" msgstr "ALERTA : falha em setup_dialog : glade_xml_get_widget()!!!" #: ../src/gtk_setup_dialog.cpp:358 msgid "Changed the Setup for calculations " msgstr "Configuração para cálculo alterada " #: ../src/gtk_setup_dialog.cpp:359 ../src/project.cpp:4038 msgid "(setup = " msgstr "(configuração = " #: ../src/gtk_setup_dialog.cpp:375 ../src/project.cpp:4039 msgid ", engine = " msgstr "" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:49 msgid "Set Current Element" msgstr "Definir Elemento Atual" #: ../src/gtk_simple_dialogs.cpp:113 msgid "Current element is now " msgstr "O Elemento químico atual é" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:133 msgid "Set Current Bondtype" msgstr "Definir tipo de ligação atual" #: ../src/gtk_simple_dialogs.cpp:184 msgid "Current bondtype is now " msgstr "Tipo de ligação atual é" #: ../src/gtk_simple_dialogs.cpp:449 msgid "" "This alternative PDB reader is designed to remove any gaps that might\n" "exist in the structure data. Therefore the sequence might be altered!" msgstr "" "Este leitor de arquivos PDB alternativo visa remover qualquer falha \n" "que possa existir nos dados de estrutura. Portanto, pode haver alteração na sequência!!" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:482 msgid "Command Interpreter" msgstr "Interpretador de comando" #: ../src/gtk_simple_dialogs.cpp:503 msgid "Execute" msgstr "Executar" #: ../src/gtk_simple_dialogs.cpp:506 msgid "Cancel" msgstr "Cancelar" #: ../src/gtk_stereo_dialog.cpp:37 msgid "WARNING : stereo_dialog : glade_xml_get_widget() failed!!!" msgstr "ALERTA : falha no stereo_dialog : glade_xml_get_widget()!!!" #: ../src/gtk_trajview_dialog.cpp:39 msgid "WARNING : trajview_dialog : glade_xml_get_widget() failed!!!" msgstr "ALERTA: falha no trajview_dialog : glade_xml_get_widget()!!!" #: ../src/gtk_trajview_dialog.cpp:82 ../src/gtk_trajview_dialog.cpp:102 #: ../src/gtk_trajview_dialog.cpp:136 ../src/gtk_trajview_dialog.cpp:151 msgid "frame = " msgstr "quadro = " #: ../src/gtk_wnd.cpp:53 #, c-format msgid "*** Cannot find the double-buffered visual.\n" msgstr "*** Visualização em duplo buffer não encontrado. \n" #: ../src/gtk_wnd.cpp:54 #, c-format msgid "*** Trying single-buffered visual.\n" msgstr "*** Tentando visualização em buffer simples.\n" #: ../src/gtk_wnd.cpp:61 #, c-format msgid "*** No appropriate OpenGL-capable visual found.\n" msgstr "*** Visualização com suporte OpenGL não encontrada.\n" #: ../src/gtk_wnd.cpp:66 #, c-format msgid "" "\n" "OpenGL visual configurations :\n" "\n" msgstr "" "\n" "Configuração de visualização OpenGL:\n" "\n" #: ../src/ogl_surface.cpp:91 msgid "evaluating grid" msgstr "grade de avaliação" #: ../src/ogl_surface.cpp:106 msgid " done\n" msgstr "Concluído\n" #: ../src/ogl_surface.cpp:112 msgid "interpolating in " msgstr "interpolando em " #: ../src/ogl_surface.cpp:131 msgid "-direction... " msgstr "-direção... " #: ../src/ogl_surface.cpp:138 msgid " points, " msgstr " pontos, " #: ../src/ogl_surface.cpp:138 msgid " cycles" msgstr " ciclos" #: ../src/ogl_surface.cpp:155 msgid "generating image... " msgstr "gerando imagem... " #: ../src/ogl_surface.cpp:185 msgid "color_surface problem #1" msgstr "problema em color_surface #1" #: ../src/ogl_surface.cpp:235 msgid "color_surface problem #2" msgstr "problema em color_surface #2" #: ../src/ogl_surface.cpp:335 msgid " lines, " msgstr " linhas, " #: ../src/ogl_surface.cpp:335 msgid " triangles." msgstr " triângulo." #: ../src/p2dview_wcl.cpp:182 msgid "now scaling the colours to range " msgstr "ajustando a escala de cores ao intervalo " #: ../src/p2dview_wcl.cpp:182 msgid " kJ/mol" msgstr " kJ/mol" #: ../src/pangofont_wcl.cpp:75 #, c-format msgid "*** ERROR : Can't load font '%s'\n" msgstr "*** ERRO : falha ao carregar a fonte : %s\n" #: ../src/project.cpp:210 msgid "untitled" msgstr "sem título" #: ../src/project.cpp:322 msgid "Cannot import that file type." msgstr "Falha ao importar aquele tipo de arquivo." #: ../src/project.cpp:367 msgid "Cannot export that file type." msgstr "Falha ao exportar este tipo de arquivo." #: ../src/project.cpp:409 msgid "Hydrogens added." msgstr "Hidrogêneos adicionados." #: ../src/project.cpp:419 msgid "Hydrogens removed." msgstr "Hidrogêneos removidos. " #: ../src/project.cpp:617 msgid " window " msgstr " janela " #: ../src/project.cpp:663 msgid "" "This is the last graphics view for\n" "this project - can't close it." msgstr "" "Esta foi a última visualização gráfica\n" "este projeto - falha ao fechá-lo." #: ../src/project.cpp:877 msgid "Processing Command : " msgstr "Comando: " #: ../src/project.cpp:887 msgid "> AVAILABLE COMMANDS:" msgstr "> COMANDOS DISPONÃVEIS:" #. use alphabetical order??? #: ../src/project.cpp:889 msgid "> add light (local/global) (directional/spotlight) -- add a new light object." msgstr "> adicionar luz (local/global) (directional/facho de luz) -- adicionar um novo objeto de iluminação." #: ../src/project.cpp:891 msgid "" "> add plane -- " "add a plane object." msgstr "" "> adicionar plano -- " "adicionar um objeto plano." #: ../src/project.cpp:892 ../src/project.cpp:902 msgid "> where: = value function : esp vdws eldens mo mod unity" msgstr "> onde: = função valor : esp vdws eldens mo mod unity" #: ../src/project.cpp:893 ../src/project.cpp:903 ../src/project.cpp:913 msgid "> = colour function : red green blue rb1 rb2" msgstr "> = função cor : red green blue rb1 rb2" #: ../src/project.cpp:894 ../src/project.cpp:904 ../src/project.cpp:915 #: ../src/project.cpp:930 msgid "> = scaling value for calculating the colours" msgstr "> = escala para o cálculo de cores" #: ../src/project.cpp:895 ../src/project.cpp:905 ../src/project.cpp:916 #: ../src/project.cpp:931 msgid "> = scaling offset for calculating the colours" msgstr "> = tara (deslocamento do zero) para o cálculo de cores" #: ../src/project.cpp:896 ../src/project.cpp:906 ../src/project.cpp:917 #: ../src/project.cpp:932 msgid "> = dimension of the plane object (in nm units)" msgstr "> = dimensões do objeto plano (em nm)" #: ../src/project.cpp:897 ../src/project.cpp:907 ../src/project.cpp:918 #: ../src/project.cpp:933 msgid "> = resolution of the plane object" msgstr "> = resolução para o objeto plano" #: ../src/project.cpp:898 ../src/project.cpp:920 ../src/project.cpp:935 msgid "> = 0 or 1 telling if the object is transparent" msgstr "> = 0 ou 1 evidenciando se o objeto é transparente" #: ../src/project.cpp:899 ../src/project.cpp:908 ../src/project.cpp:921 #: ../src/project.cpp:936 msgid "> = transparency alpha value" msgstr "> = valor de transparência alfa" #: ../src/project.cpp:901 msgid "" "> add volrend -- add " "a volume-rendering object." msgstr "" "> adicionar volrend -- " "adicionar um obejto com renderização volumétrica." #: ../src/project.cpp:910 msgid "" "> add surf1 " " -- add a single surface object." msgstr "" "> adicionar surf1 " " -- adicionar um único objeto de superfície" #: ../src/project.cpp:911 ../src/project.cpp:924 msgid "" "> where: = value function for calculating the surface : esp vdws " "eldens mo mod unity" msgstr "> onde: = função valor para o cálculo da superfície: esp vdws eldens mo mod unity" #: ../src/project.cpp:912 ../src/project.cpp:925 msgid "" "> = value function for calculating the colours : esp vdws " "eldens mo mod unity" msgstr "" "> = função valor para o cálculo de cores: esp vdws eldens mo " "mod unity" #: ../src/project.cpp:914 msgid "> = scaling value for calculating the surface" msgstr "> = escala para o cálculo de superfície" #: ../src/project.cpp:919 ../src/project.cpp:934 msgid "> = 0 or 1 telling if the object is solid" msgstr "> = 0 ou 1 evidenciando se o objeto é sólido" #: ../src/project.cpp:923 msgid "" "> add surf2 -- add a pair of surface objects." msgstr "" "> adicionar surf2 -- adicionar um par de objetos de superfície" #: ../src/project.cpp:926 msgid "> = colour function for 1st surface : red green blue rb1 rb2" msgstr "> = função cor para a primeira superfície : red green blue rb1 rb2" #: ../src/project.cpp:927 msgid "> = colour function for 2nd surface : red green blue rb1 rb2" msgstr "> = função cor para a segunda superfície : red green blue rb1 rb2" #: ../src/project.cpp:928 msgid "" "> = scaling value for calculating the surface for 1st " "surface" msgstr "> = escala para o cálculo da primeira superfície" #: ../src/project.cpp:929 msgid "" "> = scaling value for calculating the surface for 2nd " "surface" msgstr "> = escala para o cálculo da segunda superfície" #: ../src/project.cpp:938 msgid "> help -- print all available commands in command strings." msgstr "> ajuda -- imprimir todos os camando disponíveis em linhas de comando." #: ../src/project.cpp:940 msgid "> energy -- calculate a single-point energy." msgstr "> energia -- calcular a energia no ponto." #: ../src/project.cpp:941 msgid "> geom_opt -- do a geometry optimization run using default options." msgstr "> geom_opt -- realizar a otimização conformacional utilizando as opções padrão." #: ../src/project.cpp:942 msgid "> mol_dyn -- do a molecular dynamics run using default options." msgstr "> mol_dyn -- calcular a dinâmica molecular utilizando as opções padrão." #: ../src/project.cpp:944 msgid "" "> random_search -- perform a random conformational " "search." msgstr "> random_search -- realizar uma pesquisa conformacional no modo aleatório." #: ../src/project.cpp:945 msgid "" "> systematic_search -- perform a systematic " "conformational search." msgstr "> systematic_search -- realizar uma pesquisa conformacional no modo sistemático." #: ../src/project.cpp:946 msgid "" "> montecarlo_search -- perform a " "MonteCarlo search." msgstr "> montecarlo_search -- realizar uma pesquisa no modo Monte Carlo." #: ../src/project.cpp:948 msgid "" "> make_plot1 A B C D
-- create a 1D " "energy vs. torsion plot." msgstr "> make_plot1 A B C D
--criar um gráfico energia vs. torção 1D (uma variável)" #: ../src/project.cpp:949 msgid "" "> make_plot2 A B C D
I J K L
" " -- create a 2D energy vs. torsions plot." msgstr "" "> make_plot2 A B C D
I J K L
" " -- criar um gráfico energia vs. torção 2D (duas variáveis)" #: ../src/project.cpp:951 msgid "" "> population_analysis_ESP -- determine atomic charges using an ESP fit (for " "QM methods only)." msgstr "> population_analysis_ESP --determinar as cargas atômicas utilizando um ajuste ESP (somente para métodos QM)." #: ../src/project.cpp:953 msgid "" "> transition_state_search -- perform a transition " "state search (for QM methods only)." msgstr "> transition_state_search -- realizar uma busca por estados de transição (somente para métodos QM)." #: ../src/project.cpp:954 msgid "" "> stationary_state_search -- perform a search for a structure with " "no forces." msgstr "> stationary_state_search -- realizar uma busca por estruturas com força zero." #: ../src/project.cpp:956 msgid "" "> set_current_orbital -- set the current orbtal index for " "plotting the orbitals." msgstr "> set_current_orbital -- definir o índice orbital atual para gráfico de orbitais." #: ../src/project.cpp:958 msgid "> update_chains -- detect polymer chains using sequence builder." msgstr "> update_chains -- detectar cadeias poliméricas utilizando sequenciador." #: ../src/project.cpp:959 msgid "> build_amino (helix/strand) -- amino acid sequence builder." msgstr "> build_amino (helix/strand) -- sequenciador de amino-ácidos." #: ../src/project.cpp:960 msgid "> build_nucleic -- nucleic acid sequence builder." msgstr "> build_nucleic -- sequenciador de DNA." #: ../src/project.cpp:962 msgid "> orient -- orient the system in the XYZ coordinate system." msgstr "> orient -- orientar o sistema no sistema de coordenadas XYZ." #: ../src/project.cpp:964 msgid "" "> solvate_box ( (export)) -- " "setup a solvation box." msgstr "" "> solvate_box ( (export)) -- " "definir uma caixa de solvente." #: ../src/project.cpp:965 msgid "" "> solvate_sphere ( ) -- setup " "a solvation sphere." msgstr "> solvate_sphere ( ) -- definir uma esfera de solvente." #: ../src/project.cpp:967 msgid "> set_formal_charge -- set formal charges to atoms." msgstr "> set_formal_charge -- definir cargas formais dos átomos." #: ../src/project.cpp:969 msgid "" "> evaluate_Bfact -- evaluate B-factors for selected atoms (a trajectory file " "must be open)." msgstr "> evaluate_Bfact -- avaliar fator-B para átomos selecionados (um arquivo de trajetória deve estar aberto)." #: ../src/project.cpp:970 msgid "" "> evaluate_diffconst
-- evaluate diffusion constants for selected atoms " "(a trajectory file must be open, dt = time difference between frames [fs])." msgstr "" "> evaluate_diffconst
-- avaliar as constantes de difusão para átomos selecionados " "(um arquivo de trajetória deve estar aberto, dt = intervalo de tempo entre os quadros [fs])." #: ../src/project.cpp:1010 msgid "Added a new object : light (" msgstr "Adicionado um novo objeto : luz (" #: ../src/project.cpp:1011 msgid "local" msgstr "local" #: ../src/project.cpp:1011 msgid "global" msgstr "global" #: ../src/project.cpp:1012 msgid "directional" msgstr "direcional" #: ../src/project.cpp:1012 msgid "spotlight" msgstr "facho de luz" #: ../src/project.cpp:1041 msgid "ERROR : add plane : unknown value function " msgstr "ERRO : adicionar plano : função valor desconhecida " #: ../src/project.cpp:1055 msgid "ERROR : add plane : unknown colour function " msgstr "ERRO : adicionar plano : função cor desconhecida " #: ../src/project.cpp:1091 msgid "Added a new object : plane (" msgstr "Adicinado um novo objeto: plano (" #: ../src/project.cpp:1119 msgid "ERROR : add volrend : unknown value function " msgstr "ERRO : adicionar volrend : função valor desconhecida " #: ../src/project.cpp:1133 msgid "ERROR : add volrend : unknown colour function " msgstr "ERRO : adicionar volrend : função cor desconhecida " #: ../src/project.cpp:1166 msgid "Added a new object : volrend (" msgstr "Adicionado novo objeto: volrend (" #: ../src/project.cpp:1199 msgid "ERROR : add surf1 : unknown value function 1 " msgstr "ERRO : add surf1 : função valor 1 desconhecida " #: ../src/project.cpp:1214 msgid "ERROR : add surf1 : unknown value function 2 " msgstr "ERRO : add surf1 : função valor 2 desconhecida " #: ../src/project.cpp:1228 msgid "ERROR : add surf1 : unknown colour function " msgstr "ERRO : add surf1 : função cor desconhecida " #: ../src/project.cpp:1277 msgid "Added a new object : surf1 (" msgstr "Adicionado um novo objeto : surf1 (" #: ../src/project.cpp:1314 msgid "ERROR : add surf2 : unknown value function 1 " msgstr "ERRO : add surf2 : função valor 1 desconhecida " #: ../src/project.cpp:1329 msgid "ERROR : add surf2 : unknown value function 2 " msgstr "ERRO : add surf2 : função valor 2 desconhecida " #: ../src/project.cpp:1343 msgid "ERROR : add surf2 : unknown colour function 1 " msgstr "ERRO : add surf2 : função cor 1 desconhecida " #: ../src/project.cpp:1357 msgid "ERROR : add surf2 : unknown colour function 2 " msgstr "ERRO : add surf2 : função cor 2 desconhecida " #: ../src/project.cpp:1417 msgid "Added a new object : surf2 (" msgstr "Adicionado um novo objeto: surf2 (" #: ../src/project.cpp:1423 msgid "ERROR : could not process command \"add\" for parameter " msgstr "ERRO: falha ao processar o comando \"add\" para o parâmetro " #: ../src/project.cpp:1575 msgid "Sorry, this is for QM models only!" msgstr "Desculpe, isto é somente para modelos QM!!!" #: ../src/project.cpp:1622 msgid "The current orbital is now " msgstr "O orbital atual é " #: ../src/project.cpp:1667 ../src/project.cpp:1702 msgid "built a sequence : " msgstr "contruir uma sequência : " #: ../src/project.cpp:1715 msgid "maximum dimensions:" msgstr "dimensão máximat:" #: ../src/project.cpp:1817 msgid "Sorry, atom not found!" msgstr "Desculpe, átomo não encontrado!" #: ../src/project.cpp:1843 msgid "ERROR : Unknown command : " msgstr "ERRO: Comando desconhecido : " #: ../src/project.cpp:1844 msgid "The \"help\" command will give more information about command strings." msgstr "O comando \"help\" fornecerá mais detalhes sobre as linhas de comando." #: ../src/project.cpp:1871 msgid "local lights = " msgstr "iluminação local = " #: ../src/project.cpp:1871 ../src/project.cpp:1878 msgid "on" msgstr "ligado" #: ../src/project.cpp:1871 ../src/project.cpp:1878 msgid "off" msgstr "desligado" #: ../src/project.cpp:1878 msgid "global lights = " msgstr "iluminação global = " #: ../src/project.cpp:3244 msgid "Group information about chains/residues is needed for this operation." msgstr "Informação de grupo sobre cadeias/resíduos é necessária para esta operação." #: ../src/project.cpp:3245 msgid "Is it OK to update group information?" msgstr "Tudo OK para atualizar informação de grupo?" #: ../src/project.cpp:3259 msgid "Sorry, no chain/residue information available for this atom." msgstr "Desculpe, nenhuma informação de cadeia/resíduo para este átomo." #: ../src/project.cpp:3278 msgid "selected atom " msgstr "átomo selecionado " #: ../src/project.cpp:3278 msgid " (atomtype = " msgstr " (tipo de átomo = " #: ../src/project.cpp:3290 msgid "selected residue " msgstr "resíduo selecionado " #: ../src/project.cpp:3290 msgid " from chain " msgstr "da cadeia " #: ../src/project.cpp:3301 msgid "selected chain " msgstr "cadeia selecionada " #: ../src/project.cpp:3325 msgid "selected molecule " msgstr "molécula selecionada " #. this must be OK. #: ../src/project.cpp:3354 msgid "charge: " msgstr "carga: " #: ../src/project.cpp:3372 msgid "distance: " msgstr "distância: " #: ../src/project.cpp:3394 msgid "angle: " msgstr "ângulo: " #: ../src/project.cpp:3394 msgid " deg" msgstr " graus" #: ../src/project.cpp:3413 msgid "torsion: " msgstr "torção: " #: ../src/project.cpp:3413 msgid " deg " msgstr " graus " #: ../src/project.cpp:3482 msgid "MW: " msgstr "PM: " #: ../src/project.cpp:3559 msgid "ERROR : atom " msgstr "ERRO : átomo " #: ../src/project.cpp:3559 ../src/project.cpp:3745 ../src/project.cpp:3757 msgid " not found!" msgstr "não encontrado!" #: ../src/project.cpp:3579 msgid "ERROR : could not find ic.\n" msgstr "ERRO: não foi possível encontrar ic.\n" #: ../src/project.cpp:3597 msgid "ERROR : could not find tor-term.\n" msgstr "ERRO: não foi possível encontrar termo de torção.\n" #: ../src/project.cpp:3601 msgid "tor(deg)" msgstr "torção(graus)" #: ../src/project.cpp:3601 ../src/project.cpp:3818 ../src/project.cpp:3910 msgid "E(kJ/mol)" msgstr "E(kJ/mol)" #: ../src/project.cpp:3652 msgid "tor = " msgstr "torção= " #: ../src/project.cpp:3652 ../src/project.cpp:3875 msgid " deg, energy = " msgstr " grau, energia = " #: ../src/project.cpp:3652 ../src/project.cpp:3875 msgid " kJ/mol." msgstr " kJ/mol." #: ../src/project.cpp:3745 msgid "ERROR : tor1 atom " msgstr "ERROR: átomo tor1" #: ../src/project.cpp:3757 msgid "ERROR : tor2 atom " msgstr "ERRO : átomo tor2 " #: ../src/project.cpp:3777 msgid "ERROR : could not find ic for tor1.\n" msgstr "ERRO : não foi possível achar ic para tor1.\n" #: ../src/project.cpp:3784 msgid "ERROR : could not find ic for tor2.\n" msgstr "ERRO : não foi possível achar ic para tor2.\n" #: ../src/project.cpp:3807 msgid "ERROR : could not find tor-term for tor1.\n" msgstr "ERRO : não foi possível achar termo de torção para tor1.\n" #: ../src/project.cpp:3814 msgid "ERROR : could not find tor-term for tor2.\n" msgstr "ERRO : não foi possível achar termo de torção para tor2.\n" #: ../src/project.cpp:3818 msgid "tor1(deg)" msgstr "tor1(graus)" #: ../src/project.cpp:3818 msgid "tor2(deg)" msgstr "tor2(graus)" #: ../src/project.cpp:3875 msgid "tor1 = " msgstr "tor1 = " #: ../src/project.cpp:3875 msgid " deg, tor2 = " msgstr " graus, tor2 = " #: ../src/project.cpp:3900 ../src/project.cpp:3935 msgid "r-energy = " msgstr "energia-r = " #: ../src/project.cpp:3900 ../src/project.cpp:3935 msgid "p-energy = " msgstr "energia-p = " #: ../src/project.cpp:3901 ../src/project.cpp:3936 msgid " is lower " msgstr "é mais baixa " #: ../src/project.cpp:3940 msgid "READY!" msgstr "PRONTO!" #: ../src/project.cpp:4037 msgid "Starting Stationary State Search " msgstr "Inciando busca por Estado Estacionário " #: ../src/project.cpp:4050 msgid "Cycle Gradient Step\n" msgstr "Ciclo Gradiente Passo\n" #: ../src/project.cpp:4065 msgid "the nsteps termination test was passed.\n" msgstr "Condição de terminação por número máximo de passos foi atingida.\n" #: ../src/rcpview_wcl.cpp:161 msgid "the tresholds were set to " msgstr "os limiares foram estabelecidos em " #: ../src/rcpview_wcl.cpp:161 msgid " and " msgstr "e " #. ################################################################################################ #. eof #: ../src/res_gtk/gtk_file_export_dialog.glade.h:1 #: ../src/res_gtk/gtk_file_import_dialog.glade.h:1 #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:1 msgid "Browse..." msgstr "Procurar arquivo..." #: ../src/res_gtk/gtk_file_export_dialog.glade.h:2 msgid "Export File" msgstr "Exportar Arquivo" #: ../src/res_gtk/gtk_file_import_dialog.glade.h:2 msgid "Import File" msgstr "Importar Arquivo" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:1 msgid "Delta-E Cutoff:" msgstr "Valor de corte Delta-E:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:3 msgid "Gradient Cutoff:" msgstr "Valor de corte deGradiente:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:4 msgid "Maximum # of Steps:" msgstr "Número máximo de passos:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:2 msgid "Constant-P simulation (allow P-control at simulation stage)" msgstr "Simulação isobárica (permite o controle de P no estágio de simulação)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:3 msgid "Constant-T simulation (allow T-control at simulation stage)" msgstr "Simulação isotérmica (permite o controle de T no estágio de simulação)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:4 msgid "Isothermal compressibility [1/bar] :" msgstr "Compresibilidade isotérmica [1/bar] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:6 msgid "Number of steps : (cooling)" msgstr "Número de passos : (resfriar)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:7 msgid "Number of steps : (equilibration)" msgstr "Número de passos : (equilibrar)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:8 msgid "Number of steps : (heating)" msgstr "Número de passos : (aquecer)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:9 msgid "Number of steps : (simulation)" msgstr "Número de passos : (simulação)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:10 msgid "P relaxation time [fs] :" msgstr "Tempo de relaxação P [fs] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:11 msgid "Pressure [bar] :" msgstr "Pressão [bar] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:12 msgid "T relaxation time [fs] : (equil/simul)" msgstr "Tempo de relaxação T [fs] : (equil/simul)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:13 msgid "T relaxation time [fs] : (heat/cool)" msgstr "Tempo de relaxação T [fs] : (aquecer/resfriar)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:14 msgid "Temperature [K] :" msgstr "Temperatura [K] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:15 msgid "Timestep [fs] :" msgstr "Passo temporal [fs] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:16 msgid "Trajectory File : " msgstr "Arquivo de Trajetória : " #: ../src/res_gtk/gtk_progress_dialog.glade.h:1 msgid "Background Job" msgstr "Job em Background" #: ../src/res_gtk/gtk_progress_dialog.glade.h:2 msgid "Job Title : " msgstr "Título do Job : " #: ../src/res_gtk/gtk_setup_dialog.glade.h:1 msgid "Select the Engine Class:" msgstr "Seleciona a engine-class:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:2 msgid "Set the spin multiplicity of the system:" msgstr "Define a Multiplicidade de Spin para o sistema:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:3 msgid "Set the total charge of the system:" msgstr "Defini a carga total do sistema:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:4 msgid "Enable atomtype/parameter exceptions (AMBER FF)." msgstr "Habilita excessões de tipo de átomo/parâmetro (AMBER FF)." #: ../src/res_gtk/gtk_setup_dialog.glade.h:6 msgid "MM/SF" msgstr "MM/SF" #: ../src/res_gtk/gtk_setup_dialog.glade.h:7 msgid "QM/MM" msgstr "QM/MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:8 msgid "Setup" msgstr "Configuração" #: ../src/res_gtk/gtk_setup_dialog.glade.h:9 msgid "Spin Multiplicity:" msgstr "Multiplicidade de Spin:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:10 msgid "Total Charge:" msgstr "Carga Total:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:11 msgid "all MM" msgstr "todos MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:12 msgid "all QM" msgstr "todos QM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:13 msgid "all SF" msgstr "todos SF" #: ../src/res_gtk/gtk_setup_dialog.glade.h:14 msgid "this is under construction and DISABLED currently!" msgstr "funcionalidade em construção e não operante ainda!" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:1 msgid "Relaxed Separation :" msgstr "Separação relaxada :" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:2 msgid "Stereo Displacement :" msgstr "Deslocamento estéreo : " #: ../src/res_gtk/gtk_stereo_dialog.glade.h:3 msgid "Stereo View Settings" msgstr "Configurações de visualização estéreo" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:1 msgid "Begin" msgstr "Início" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:2 msgid "End" msgstr "Fim" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:3 msgid "Play" msgstr "Tocar" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:4 msgid "Trajectory Viewer" msgstr "Visalizador de trajetória" ghemical-3.0.0/po/ru.po0000644000175000017500000023061611563552731011630 00000000000000msgid "" msgstr "" "Project-Id-Version: ghemical\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-09-19 09:54+0400\n" "PO-Revision-Date: \n" "Last-Translator: Daniil Bratashov \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Russian\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" #: ../src/custom_app.cpp:100 msgid "Added global light." msgstr "Добавлен глобальный иÑточник Ñвета." #: ../src/custom_app.cpp:114 msgid "Added local light." msgstr "Добавлен локальный иÑточник Ñвета." #: ../src/eldview_wcl.cpp:162 msgid "No data available," msgstr "Ðет доÑтупных данных," #: ../src/eldview_wcl.cpp:167 msgid "must be a QM model!" msgstr "должно быть моделью QM!" #: ../src/eldview_wcl.cpp:167 msgid "please calculate energy!" msgstr "раÑÑчитайте Ñнергию!" #: ../src/gtk_app.cpp:92 #: ../src/gtk_oglview_wnd.cpp:38 msgid "File" msgstr "Файл" #: ../src/gtk_app.cpp:93 #: ../src/res_gtk/gtk_setup_dialog.glade.h:5 msgid "Help" msgstr "Справка" #: ../src/gtk_app.cpp:95 msgid "New" msgstr "Ðовый" #: ../src/gtk_app.cpp:95 msgid "Create a new file." msgstr "Создать новый файл." #. N #. ^^^^^^^^ #: ../src/gtk_app.cpp:96 #: ../src/gtk_oglview_wnd.cpp:40 msgid "Open" msgstr "Открыть" #: ../src/gtk_app.cpp:96 msgid "Open an existing file." msgstr "Открыть ÑущеÑтвующий файл." #. O #: ../src/gtk_app.cpp:97 #: ../src/gtk_oglview_wnd.cpp:44 msgid "Save as..." msgstr "Сохранить как..." #: ../src/gtk_app.cpp:97 msgid "Save a file." msgstr "Сохранить файл." #. S #. { "ExportGraphics", GTK_STOCK_SAVE, N_("Export Graphics"), NULL, N_("Export graphics"), (GCallback) gtk_project::popup_FileExportGraphics }, #: ../src/gtk_app.cpp:98 #: ../src/gtk_oglview_wnd.cpp:49 msgid "Close" msgstr "Закрыть" #: ../src/gtk_app.cpp:98 msgid "Quit the program." msgstr "Выйти из программы." #. C #: ../src/gtk_app.cpp:100 msgid "Contents" msgstr "Содержание" #: ../src/gtk_app.cpp:100 msgid "View the User's Manual." msgstr "ПоÑмотреть руководÑтво пользователÑ." #. H #: ../src/gtk_app.cpp:101 msgid "About" msgstr "О программе" #: ../src/gtk_app.cpp:101 msgid "Information about this program." msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± Ñтой программе." #. A #. the rest are toolbar actions... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_app.cpp:106 msgid "Set the current element." msgstr "УÑтановить текущий Ñлемент." #: ../src/gtk_app.cpp:107 msgid "Set the current bondtype." msgstr "УÑтановить текущий тип ÑвÑзи." #: ../src/gtk_app.cpp:108 msgid "Setup or change the comp.chem. method in use." msgstr "УÑтановить или изменить иÑпользуемый метод вычиÑлительной химии." #: ../src/gtk_app.cpp:113 msgid "Draw ; add atoms and bonds to the model." msgstr "РиÑовать ; добавить атомы и ÑвÑзи к модели." #: ../src/gtk_app.cpp:114 msgid "Erase ; remove atoms and bonds from the model." msgstr "Стереть ; удалить атомы и ÑвÑзи из модели" #: ../src/gtk_app.cpp:115 msgid "Select ; make selections in the model, and also select objects." msgstr "Выбрать ; позволÑет выбрать чаÑть модели, а также отдельные объекты" #: ../src/gtk_app.cpp:116 msgid "Zoom ; zoom the view." msgstr "МаÑштаб ; маÑштабировать вид" #: ../src/gtk_app.cpp:117 msgid "Clipping ; set the near and far clipping planes for graphics rendering." msgstr "ОтÑечение ; уÑтановить ближнюю и дальнюю плоÑкоÑти отÑÐµÑ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ñчёта графичеÑкой Ñцены." #: ../src/gtk_app.cpp:118 msgid "TranslateXY ; translate the camera or a selected object in XY-direction." msgstr "ПеремеÑтитьXY ; перемеÑтить камеру или выбранный объект в направлении XY." #: ../src/gtk_app.cpp:119 msgid "TranslateZ ; translate the camera or a selected object in Z-direction." msgstr "ПеремеÑтитьZ ; перемещает камеру или выбранный объект в направлении Z." #: ../src/gtk_app.cpp:120 msgid "OrbitXY ; orbit the camera or a selected object around the focus point in XY-direction." msgstr "Орбит.XY ; орбитальный поворот камеры или выбранного объекта вокруг точки фокуÑа в направлении XY." #: ../src/gtk_app.cpp:121 msgid "OrbitZ ; orbit the camera or a selected object around the focus point in Z-direction." msgstr "Орбит.Z ; орбитальный поворот камеры или выбранного объекта вокруг точки фокуÑа в направлении Z." #: ../src/gtk_app.cpp:122 msgid "RotateXY ; turn the camera or a selected object in XY-direction." msgstr "ВращатьXY ; повернуть камеру или выбранный объект вокруг оÑи XY" #: ../src/gtk_app.cpp:123 msgid "RotateZ ; turn the camera or a selected object in Z-direction." msgstr "ВращатьZ ; повернуть камеру или выбранный объект вокруг оÑи Z" #: ../src/gtk_app.cpp:124 msgid "Measure ; measure distances, angles and torsions." msgstr "Измерение ; измерить раÑÑтоÑниÑ, углы и торÑионные углы." #: ../src/gtk_app.cpp:207 msgid "Set to Current Object" msgstr "УÑтановить текущий объект" #: ../src/gtk_app.cpp:207 msgid "Set this object to Current Object" msgstr "УÑтановить Ñтот объект как текущий" #: ../src/gtk_app.cpp:208 msgid "Delete Object/View" msgstr "Удалить объект/вид" #: ../src/gtk_app.cpp:208 msgid "Delete this object or view" msgstr "Удалить Ñтот объект или вид" #: ../src/gtk_app.cpp:225 msgid "Update View" msgstr "Обновить вид" #: ../src/gtk_app.cpp:225 msgid "Rebuild the chains info for this view" msgstr "ПереÑтраивает информацию о поÑледовательноÑÑ‚ÑÑ… Ð´Ð»Ñ Ñтого вида" #: ../src/gtk_app.cpp:226 msgid "Select Item" msgstr "Выбрать Ñлемент" #: ../src/gtk_app.cpp:226 msgid "Select/unselect this chain/residue" msgstr "Выбрать/убрать выбор Ñтой поÑледовательноÑти/группы" #: ../src/gtk_app.cpp:243 msgid "Select Atom" msgstr "Выбрать атом" #: ../src/gtk_app.cpp:243 msgid "Select/unselect this atom" msgstr "Выбрать/убрать выбор Ñтого атома" #: ../src/gtk_app.cpp:258 msgid "Select Bond" msgstr "Выбрать ÑвÑзь" #: ../src/gtk_app.cpp:258 msgid "Select/unselect this bond" msgstr "Выбрать/убрать выбор Ñтой ÑвÑзи" #: ../src/gtk_app.cpp:344 msgid "Ghemical" msgstr "" #: ../src/gtk_app.cpp:351 #, c-format msgid "ERROR : Icon loading failed : %s\n" msgstr "ОШИБКР: Загрузка иконки закончилаÑÑŒ неудачно : %s\n" #: ../src/gtk_app.cpp:381 #, c-format msgid "ERROR : Building main menu failed : %s" msgstr "ОШИБКР: Создание главного меню закончилоÑÑŒ неудачно : %s" #: ../src/gtk_app.cpp:566 msgid "project view" msgstr "обзор проекта" #. optional : draw the stripes to background. #. ??? (string) #: ../src/gtk_app.cpp:584 msgid "Object" msgstr "Объект" #. ??? (string) #: ../src/gtk_app.cpp:588 msgid "Sub-Objects" msgstr "Подобъекты" #: ../src/gtk_app.cpp:591 msgid "Views/Objects" msgstr "Виды/Объекты" #: ../src/gtk_app.cpp:604 #, c-format msgid "ERROR : Building Views/Objects menu in project view failed : %s" msgstr "ОШИБКР: Создание меню Виды/Объекты в обзоре проекта закончилоÑÑŒ неудачно : %s" #. optional : draw the stripes to background. #. chain_info (string) #: ../src/gtk_app.cpp:620 msgid "Chain Description" msgstr "ОпиÑание поÑледовательноÑти" #. res_num (string) #: ../src/gtk_app.cpp:624 msgid "Residue Number" msgstr "Ðомер группы" #. res_id (string) #: ../src/gtk_app.cpp:628 msgid "Residue ID" msgstr "Идентификатор группы" #. res_state1 (string) #: ../src/gtk_app.cpp:632 msgid "Sec-Str State" msgstr "" #. res_state2 (string) #: ../src/gtk_app.cpp:636 msgid "Protonation State" msgstr "" #: ../src/gtk_app.cpp:639 msgid "Chains" msgstr "ПоÑледовательноÑти" #: ../src/gtk_app.cpp:652 #, c-format msgid "ERROR : Building Chains menu in project view failed : %s" msgstr "ОШИБКР: Создание меню \"ПоÑледовательноÑти\" в обзоре проекта закончилоÑÑŒ неудачно : %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:668 msgid "Atom Index" msgstr "Ðомер атома" #. element #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_app.cpp:672 #: ../src/gtk_oglview_wnd.cpp:112 #: ../src/gtk_oglview_wnd.cpp:120 msgid "Element" msgstr "Элемент" #: ../src/gtk_app.cpp:678 msgid "Locked" msgstr "Заблокирован" #: ../src/gtk_app.cpp:681 msgid "Atoms" msgstr "Ðтомы" #: ../src/gtk_app.cpp:694 #, c-format msgid "ERROR : Building Atoms menu in project view failed : %s" msgstr "ОШИБКР: Создание меню \"Ðтомы\" в обзоре проекта закончилоÑÑŒ неудачно : %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:710 msgid "Atom Index #1" msgstr "Ðомер первого атома " #. index2 #: ../src/gtk_app.cpp:714 msgid "Atom Index #2" msgstr "Ðомер второго атома" #. bondtype #: ../src/gtk_app.cpp:718 msgid "BondType" msgstr "Тип ÑвÑзи" #: ../src/gtk_app.cpp:721 msgid "Bonds" msgstr "СвÑзи" #: ../src/gtk_app.cpp:734 #, c-format msgid "ERROR : Building Bonds menu in project view failed : %s" msgstr "ОШИБКР: Создание меню \"СвÑзи\" в обзоре проекта закончилоÑÑŒ неудачно : %s" #. protect the model-data during background jobs... #: ../src/gtk_app.cpp:772 msgid "" "Are you sure that you\n" "want to quit the program?" msgstr "" "Ð’Ñ‹ уверены, что хотите\n" "завершить программу?" #: ../src/gtk_app.cpp:839 msgid "gtk_app::sPrintToLog() : message is too long!" msgstr "gtk_app::sPrintToLog() : Ñообщение Ñлишком длинное!" #: ../src/gtk_app.cpp:898 msgid "window " msgstr "окно" #: ../src/gtk_app.cpp:899 #: ../src/gtk_app.cpp:903 msgid " (detached)" msgstr "(отÑоединено)" #: ../src/gtk_app.cpp:899 msgid " (attached)" msgstr "(приÑоединено)" #: ../src/gtk_app.cpp:901 msgid "cam " msgstr "камера" #: ../src/gtk_app.cpp:902 msgid "wnd " msgstr "окно" #: ../src/gtk_app.cpp:921 #: ../src/gtk_app.cpp:922 msgid "RC plot view" msgstr "" #: ../src/gtk_app.cpp:927 #: ../src/gtk_app.cpp:928 msgid "1D plot view" msgstr "вид одномерного графика" #: ../src/gtk_app.cpp:934 #: ../src/gtk_app.cpp:935 msgid "2D plot view" msgstr "вид двумерного графика" #: ../src/gtk_app.cpp:941 #: ../src/gtk_app.cpp:942 msgid "energy-level diagram view" msgstr "вид \"диаграмма уровней Ñнергии\"" #: ../src/gtk_app.cpp:947 #: ../src/gtk_app.cpp:948 msgid "generic protein chain view" msgstr "вид общей цепочки белка" #: ../src/gtk_app.cpp:953 #: ../src/gtk_app.cpp:954 msgid "" msgstr "<неизвеÑтный вид>" #: ../src/gtk_app.cpp:980 #: ../src/project.cpp:617 msgid "camera " msgstr "камера" #: ../src/gtk_app.cpp:1247 #: ../src/gtk_app.cpp:1255 #: ../src/gtk_app.cpp:1291 #: ../src/gtk_app.cpp:1316 msgid "Object " msgstr "Объект" #: ../src/gtk_app.cpp:1247 #: ../src/gtk_app.cpp:1255 msgid " is set to current object." msgstr " уÑтановлен на текущий объект." #: ../src/gtk_app.cpp:1258 #: ../src/gtk_app.cpp:1324 msgid "Sorry, this operation is not yet implemented." msgstr "К Ñожалению Ð´Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ÐºÐ° не реализована." #: ../src/gtk_app.cpp:1291 #: ../src/gtk_app.cpp:1316 msgid " is deleted." msgstr " удалён." #. if (ci_vector[n1].description... // this is not implemented at the moment... #. show chain index 1,2,3,... to user ; it is 0,1,2,... internally! #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_app.cpp:1353 msgid "chain #" msgstr "номер поÑледовательноÑти" #: ../src/gtk_app.cpp:1361 msgid " chain)." msgstr " поÑледовательноÑть)." #. make the list show the updated information... #: ../src/gtk_app.cpp:1618 #, c-format msgid "Atom locking changed : %s\n" msgstr "Блокировка атома изменена : %s\n" #: ../src/gtk_app.cpp:1618 msgid "yes" msgstr "да" #: ../src/gtk_app.cpp:1618 msgid "no" msgstr "нет" #: ../src/gtk_app.cpp:1644 msgid "Conjugated" msgstr "ÐроматичеÑкаÑ" #: ../src/gtk_app.cpp:1645 msgid "Single" msgstr "ОдинарнаÑ" #: ../src/gtk_app.cpp:1646 msgid "Double" msgstr "ДвойнаÑ" #: ../src/gtk_app.cpp:1647 msgid "Triple" msgstr "ТройнаÑ" #: ../src/gtk_app.cpp:2083 msgid "Displaying the User's Manual using the following command:" msgstr "РуководÑтво Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶Ð°ÐµÑ‚ÑÑ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñледующую команду:" #: ../src/gtk_app.cpp:2093 msgid "Ghemical-" msgstr "" #: ../src/gtk_app.cpp:2093 msgid " released on " msgstr " выпущен " #: ../src/gtk_app.cpp:2095 msgid "For more information please visit:" msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ:" #: ../src/gtk_app.cpp:2103 msgid "Authors:" msgstr "Ðвторы:" #: ../src/gtk_eldview_wnd.cpp:32 #: ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 #: ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 #: ../src/gtk_rcpview_wnd.cpp:32 msgid "Attach/Detach This View" msgstr "ПриÑоединить/отÑоединить Ñтот вид" #: ../src/gtk_eldview_wnd.cpp:32 #: ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 #: ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 #: ../src/gtk_rcpview_wnd.cpp:32 msgid "Select whether this view is attached or in an independent window" msgstr "Выбрать будет ли Ñтот вид приÑоединён или отображатьÑÑ Ð² отдельном окне" #: ../src/gtk_eldview_wnd.cpp:33 #: ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 #: ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete View" msgstr "Удалить вид" #: ../src/gtk_eldview_wnd.cpp:33 #: ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 #: ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete this view" msgstr "Удалить Ñтот вид" #: ../src/gtk_eldview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_eldview_wnd failed : %s" msgstr "ОШИБКР: Создание выпадающего меню Ð´Ð»Ñ gtk_eldview_wnd закончилоÑÑŒ неудачно : %s" #: ../src/gtk_file_export_dialog.cpp:41 msgid "file_export_dialog : glade_xml_get_widget() failed!!!" msgstr "file_export_dialog : glade_xml_get_widget() закончилаÑÑŒ ошибкой!!!" #: ../src/gtk_file_export_dialog.cpp:52 #: ../src/gtk_file_import_dialog.cpp:52 msgid "Automatic" msgstr "ÐвтоматичеÑки" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_export_dialog.cpp:131 msgid "Select a filename for export." msgstr "Выбор имени ÑкÑпортируемого файла." #: ../src/gtk_file_import_dialog.cpp:41 msgid "file_import_dialog : glade_xml_get_widget() failed!!!" msgstr "file_import_dialog : glade_xml_get_widget() закончилаÑÑŒ ошибкой!!!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_import_dialog.cpp:133 msgid "Select a file to import." msgstr "Выбор имени импортируемого файла." #: ../src/gtk_geomopt_dialog.cpp:41 msgid "WARNING : geomopt_dialog : glade_xml_get_widget() failed!!!" msgstr "ПРЕДУПРЕЖДЕÐИЕ : geomopt_dialog : glade_xml_get_widget() закончилаÑÑŒ ошибкой!!!" #: ../src/gtk_gpcview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_gpcview_wnd failed : %s" msgstr "ОШИБКР: Создание выпадающего меню Ð´Ð»Ñ gtk_gpcview_wnd закончилоÑÑŒ неудачно : %s" #: ../src/gtk_main.cpp:45 msgid "open a file" msgstr "открыть файл" #: ../src/gtk_main.cpp:46 msgid "import a file" msgstr "импортировать файл" #: ../src/gtk_main.cpp:61 msgid "- a GTK2 molecular modelling program" msgstr "- программа молекулÑрного Ð¼Ð¾Ð´ÐµÐ»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° GTK2" #: ../src/gtk_main.cpp:84 #, c-format msgid "OpenGL extension version - %d.%d\n" msgstr "ВерÑÐ¸Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ OpenGL - %d.%d\n" #: ../src/gtk_main.cpp:140 msgid "Sorry! The file import feature is disabled ; you need to recompile" msgstr "К Ñожалению, возможноÑть импорта файлов отключена ; вам надо переÑобрать" #: ../src/gtk_main.cpp:141 msgid "libghemical with --enable-openbabel option in order to fix this." msgstr "libghemical Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ --enable-openbabel чтобы Ñто иÑправить." #: ../src/gtk_moldyn_dialog.cpp:42 msgid "WARNING : moldyn_dialog : glade_xml_get_widget() failed!!!" msgstr "ПРЕДУПРЕЖДЕÐИЕ : moldyn_dialog : glade_xml_get_widget() закончилаÑÑŒ ошибкой!!!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_moldyn_dialog.cpp:232 msgid "Select a Trajectory File." msgstr "Выбор файла траектории." #: ../src/gtk_oglview_wnd.cpp:40 msgid "Open a file" msgstr "Открыть файл" #: ../src/gtk_oglview_wnd.cpp:42 msgid "Import..." msgstr "Импорт..." #: ../src/gtk_oglview_wnd.cpp:42 msgid "Import other file formats using libopenbabel" msgstr "Импортировать другие форматы файлов иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ libopenbabel" #: ../src/gtk_oglview_wnd.cpp:44 msgid "Save a file" msgstr "Сохранить файл" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export" msgstr "ЭкÑпортировать" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export other file formats using OpenBabel" msgstr "ЭкÑпортировать в другие форматы файлов иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ OpenBabel" #: ../src/gtk_oglview_wnd.cpp:49 msgid "Close the file" msgstr "Закрыть файл" #: ../src/gtk_oglview_wnd.cpp:51 msgid "Extra Tools" msgstr "Дополнительные инÑтрументы" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import PDB" msgstr "Импортировать PDB" #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import a PDB file" msgstr "Импортировать файл PDB" #. { "FileExtra2", NULL, N_("Import ???"), NULL, N_("Import a ??? file"), (GCallback) gtk_project::popup_FileExtra2 }, #: ../src/gtk_oglview_wnd.cpp:56 msgid "Select" msgstr "Выбрать" #. ^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select All" msgstr "Выбрать вÑÑ‘" #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select all atoms" msgstr "Выбрать вÑе атомы" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select None" msgstr "Выбрать ничего" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select nothing" msgstr "Ðичего не выбирать" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert Selection" msgstr "Инвертировать выбор" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert the selection" msgstr "Инвертировать выбранное" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide Selected" msgstr "Скрыть выбранное" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide all selected atoms" msgstr "Скрыть вÑе выбранные атомы" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show Selected" msgstr "Показать выбранное" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show all selected atoms" msgstr "Показать вÑе выбранные атомы" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock Selected" msgstr "Заблокировать выбранное" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock all selected atoms" msgstr "Заблокировать вÑе выбранные атомы" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock Selected" msgstr "Разблокировать выбранное" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock all selected atoms" msgstr "Разблокировать вÑе выбранные атомы" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete Selected" msgstr "Удалить выбранное" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete all selected atoms" msgstr "Удалить вÑе выбранные атомы" #: ../src/gtk_oglview_wnd.cpp:67 msgid "Selection Mode" msgstr "Режим выбора" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the setting from project is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select Atoms" msgstr "Выбирать атомы" #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select single atoms" msgstr "Выбирать отдельные атомы" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select Residues" msgstr "Выбирать группы" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select residues" msgstr "Выбирать функциональные группы" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select Chains" msgstr "Выбирать поÑледовательноÑти" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select chains" msgstr "Выбирать поÑледовательноÑти" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select Molecules" msgstr "Выбирать молекулы" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select molecules" msgstr "Выбирать молекулы" #: ../src/gtk_oglview_wnd.cpp:75 msgid "Render" msgstr "Отображение" #. ^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:78 msgid "Quick Update Mode" msgstr "Режим быÑтрого обновлениÑ" #: ../src/gtk_oglview_wnd.cpp:78 msgid "Quick Update Mode switches into Wireframe rendering mode when doing interactive work" msgstr "режим быÑтрого Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð°ÐµÑ‚ на Ñкелетную анимацию на Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹ работы" #: ../src/gtk_oglview_wnd.cpp:80 msgid "Views" msgstr "Виды" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete This View" msgstr "Удалить Ñтот вид" #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete this graphics view" msgstr "Удалить Ñтот графичеÑкий вид" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a CRD-set (experimental)" msgstr "" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a coordinate set" msgstr "Сохранить набор координат" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose CRD-sets (experimental)" msgstr "" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose coordinate sets" msgstr "" #: ../src/gtk_oglview_wnd.cpp:86 msgid "Create" msgstr "Создать" #. ^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:88 msgid "New Window" msgstr "Ðовое окно" #: ../src/gtk_oglview_wnd.cpp:88 msgid "Create a new view using the current camera" msgstr "Создаёт новый вид иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ‚ÐµÐºÑƒÑ‰ÑƒÑŽ камеру" #: ../src/gtk_oglview_wnd.cpp:89 msgid "New Camera" msgstr "ÐÐ¾Ð²Ð°Ñ ÐºÐ°Ð¼ÐµÑ€Ð°" #: ../src/gtk_oglview_wnd.cpp:89 msgid "Create a new view using a new camera" msgstr "Создать новый вид иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð½Ð¾Ð²ÑƒÑŽ камеру" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Energy-level Diagram" msgstr "Диаграмма уровней Ñнергии" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Create a new energy-level diagram view" msgstr "Создать новый вид \"диаграмма уровней Ñнергии\"" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Secondary Structure Constraints" msgstr "ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‡Ð½Ð¾Ð¹ Ñтруктуры" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Create a new secondary structure constraints view" msgstr "Создать новый вид: Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‡Ð½Ð¾Ð¹ Ñтруктуры" #: ../src/gtk_oglview_wnd.cpp:93 msgid "Lights" msgstr "ИÑточники Ñвета" #. ^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create New Light" msgstr "Создать новый иÑточник Ñвета" #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create a new light object" msgstr "Создать новый объект - иÑточник Ñвета" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:97 msgid "Enable Local Lights" msgstr "Разрешить локальные иÑточники Ñвета" #: ../src/gtk_oglview_wnd.cpp:97 msgid "Switch on/off the local light objects" msgstr "Вкл/Выкл объекты - локальные иÑточники Ñвета" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Enable Global Lights" msgstr "Разрешить глобальные иÑточники Ñвета" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Switch on/off the global light objects" msgstr "Вкл/Выкл объекты - глобальные иÑточники Ñвета" #: ../src/gtk_oglview_wnd.cpp:100 msgid "Render Mode" msgstr "Режим отображениÑ" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:103 msgid "Ball & Stick" msgstr "ШароÑÑ‚ÐµÑ€Ð¶Ð½ÐµÐ²Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ" #: ../src/gtk_oglview_wnd.cpp:103 msgid "Display atoms and bonds using Ball & Stick mode" msgstr "Отображать атомы и ÑвÑзи иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÑˆÐ°Ñ€Ð¾Ñтержневую модель" #: ../src/gtk_oglview_wnd.cpp:104 msgid "van der Waals" msgstr "Ван-дер-ВаальÑ" #: ../src/gtk_oglview_wnd.cpp:104 msgid "Display atoms and bonds using van der Waals mode" msgstr "Отображать атомы и ÑвÑзи иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ван-дер-ВаальÑа" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Cylinders" msgstr "Цилиндры" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Display atoms and bonds using Cylinders mode" msgstr "Отображать атомы и ÑвÑзи иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ€ÐµÐ¶Ð¸Ð¼ цилиндров" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Wireframe" msgstr "СкелетнаÑ" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Display atoms and bonds using Wireframe mode" msgstr "Отображать атомы и ÑвÑзи иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñкелетную модель" #: ../src/gtk_oglview_wnd.cpp:107 #: ../src/gtk_oglview_wnd.cpp:128 msgid "Nothing" msgstr "Ðичего" #: ../src/gtk_oglview_wnd.cpp:107 msgid "Do not display atoms and bonds" msgstr "Ðе отображать атомы и ÑвÑзи" #: ../src/gtk_oglview_wnd.cpp:109 msgid "Color Mode" msgstr "Режим раÑкрашиваниÑ" #: ../src/gtk_oglview_wnd.cpp:112 msgid "Color atoms and bonds by element" msgstr "РаÑкрашивать атомы и ÑвÑзи по Ñлементу" #: ../src/gtk_oglview_wnd.cpp:113 #: ../src/gtk_oglview_wnd.cpp:127 msgid "Sec-Struct" msgstr "Ð’Ñ‚Ð¾Ñ€Ð¸Ñ‡Ð½Ð°Ñ Ñтруктура" #: ../src/gtk_oglview_wnd.cpp:113 msgid "Color atoms and bonds by secondary-structure state" msgstr "РаÑкрашивать атомы и ÑвÑзи по вторичной Ñтруктуре" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Hydrophobicity" msgstr "ГидрофобноÑть" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Color atoms and bonds by hydrophobicity (experimental)" msgstr "РаÑкрашивать атомы и ÑвÑзи по гидрофобноÑти" #: ../src/gtk_oglview_wnd.cpp:116 msgid "Label Mode" msgstr "Режим подпиÑей" #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:119 msgid "Index" msgstr "Ðомер" #: ../src/gtk_oglview_wnd.cpp:119 msgid "Label atoms by atom index" msgstr "ПодпиÑывать атомы по номеру" #: ../src/gtk_oglview_wnd.cpp:120 msgid "Label atoms by element" msgstr "ПодпиÑывать атомы по Ñлементу" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Formal Charge" msgstr "Формальный зарÑд" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Label atoms by formal charge" msgstr "ПодпиÑывать атомы по формальному зарÑду" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Partial Charge" msgstr "ЧаÑтичный зарÑд" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Label atoms by partial charge" msgstr "ПодпиÑывать атомы по чаÑтичному зарÑду" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Atom Type" msgstr "Тип атома" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Label atoms by atom type" msgstr "ПодпиÑывать атомы по типу" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Builder ID" msgstr "Идентификатор ÑоздателÑ" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Label atoms by sequence builder ID" msgstr "Пометить атомы по идентификатору ÑÐ¾Ð·Ð´Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ÑледовательноÑтей." #: ../src/gtk_oglview_wnd.cpp:125 msgid "Bond Type" msgstr "Тип ÑвÑзи" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Label bonds by bond type" msgstr "ПодпиÑывать ÑвÑзи по типу" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Residue" msgstr "Радикал" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Label by residue" msgstr "ПодпиÑывать по радикалу" #: ../src/gtk_oglview_wnd.cpp:127 msgid "Label by secondary structure state" msgstr "ПодпиÑывать по ÑоÑтоÑнию вторичной Ñтруктуры" #: ../src/gtk_oglview_wnd.cpp:128 msgid "Do not show labels" msgstr "Ðе показывать метки" #: ../src/gtk_oglview_wnd.cpp:130 msgid "Projection" msgstr "ПроекциÑ" #. ^^^^^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:133 msgid "Orthographic" msgstr "ОртографичеÑкаÑ" #: ../src/gtk_oglview_wnd.cpp:133 msgid "Use orthographic projection" msgstr "ИÑпользовать ортографичеÑкую проекцию" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Perspective" msgstr "ПерÑпективнаÑ" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Use perspective projection" msgstr "ИÑпользовать перÑпективную проекцию" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #. todo : add more color combinations ; red/green red/blue ; any others needed??? #: ../src/gtk_oglview_wnd.cpp:137 msgid "Red-Blue Stereo" msgstr "КраÑно-Ñинее Ñтерео" #: ../src/gtk_oglview_wnd.cpp:137 msgid "Use red-blue stereo mode" msgstr "ИÑпользовать краÑно-Ñиний Ñтереорежим" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Relaxed-Eye Stereo" msgstr "Стерео раÑÑлабленного глаза" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Use relaxed-eye stereo mode" msgstr "ИÑпользовать Ñтереорежим раÑÑлабленного глаза" #: ../src/gtk_oglview_wnd.cpp:140 msgid "Objects" msgstr "Объекты" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:142 msgid "Ribbon" msgstr "Лента" #: ../src/gtk_oglview_wnd.cpp:142 msgid "Create a Ribbon object for displaying peptides/proteins" msgstr "Создать объект-ленту Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿ÐµÐ¿Ñ‚Ð¸Ð´Ð¾Ð²/белков" #: ../src/gtk_oglview_wnd.cpp:143 msgid "ESP-plane" msgstr "плоÑкоÑть Ñ Ð­Ð¡ÐŸ" #: ../src/gtk_oglview_wnd.cpp:143 msgid "Create an ESP-plane object" msgstr "Создать объект \"плоÑкоÑть Ñ Ð­Ð¡ÐŸ\"" #: ../src/gtk_oglview_wnd.cpp:144 msgid "volume-rendered ESP" msgstr "объёмный ЭСП" #: ../src/gtk_oglview_wnd.cpp:144 msgid "Create a volume-rendered ESP object" msgstr "Создать объект \"отображаемый в проÑтранÑтве ЭСП\"" #: ../src/gtk_oglview_wnd.cpp:145 msgid "ESP-surface" msgstr "поверхноÑть ЭСП" #: ../src/gtk_oglview_wnd.cpp:145 msgid "Create an ESP-surface object" msgstr "Создать объект \"поверхноÑть ЭСП\"" #: ../src/gtk_oglview_wnd.cpp:146 msgid "ESP-colored vdW-surface" msgstr "РаÑÐºÑ€Ð°ÑˆÐµÐ½Ð½Ð°Ñ Ð­Ð¡ÐŸ поверхноÑть ВдВ" #: ../src/gtk_oglview_wnd.cpp:146 msgid "Create an ESP-colored vdW-surface object" msgstr "Создать объект \"раÑÐºÑ€Ð°ÑˆÐµÐ½Ð½Ð°Ñ Ð­Ð¡ÐŸ Ван-дер-ВаальÑова поверхноÑть\"" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Electron density plane" msgstr "ПлоÑкоÑть Ñ Ñлектронной плотноÑтью" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Create an Electron density plane object" msgstr "Создать объект \"плоÑкоÑть Ñ Ñлектронной плотноÑтью\"" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Electron density surface" msgstr "ПоверхноÑть Ñлектронной плотноÑти" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Create an Electron density surface object" msgstr "Создать объект \"поверхноÑть Ñлектронной плотноÑти\"" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Molecular orbital plane" msgstr "ПлоÑкоÑть Ñ Ð¼Ð¾Ð»ÐµÐºÑƒÐ»Ñрной орбиталью" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Create a Molecular orbital plane object" msgstr "Создать объект \"ПлоÑкоÑть Ñ Ð¼Ð¾Ð»ÐµÐºÑƒÐ»Ñрной орбиталью\"" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Molecular orbital volume" msgstr "ÐžÐ±ÑŠÑ‘Ð¼Ð½Ð°Ñ Ð¼Ð¾Ð»ÐµÐºÑƒÐ»ÑÑ€Ð½Ð°Ñ Ð¾Ñ€Ð±Ð¸Ñ‚Ð°Ð»ÑŒ" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Create a Molecular orbital volume object" msgstr "Создать объект \"ÐžÐ±ÑŠÑ‘Ð¼Ð½Ð°Ñ Ð¼Ð¾Ð»ÐµÐºÑƒÐ»ÑÑ€Ð½Ð°Ñ Ð¾Ñ€Ð±Ð¸Ñ‚Ð°Ð»ÑŒ\"" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Molecular orbital surface" msgstr "ПоверхноÑть молекулÑрно орбитали" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Create a Molecular orbital surface object" msgstr "Создать объект \"ПоверхноÑть молекулÑрно орбитали\"" #: ../src/gtk_oglview_wnd.cpp:152 msgid "MO-density plane" msgstr "ПлоÑкоÑть плотноÑти МО" #: ../src/gtk_oglview_wnd.cpp:152 msgid "Create an MO-density plane object" msgstr "Создать объект \"ПлоÑкоÑть плотноÑти МО\"" #: ../src/gtk_oglview_wnd.cpp:153 msgid "MO-density volume" msgstr "ÐžÐ±ÑŠÑ‘Ð¼Ð½Ð°Ñ Ð¿Ð»Ð¾Ñ‚Ð½Ð¾Ñть МО" #: ../src/gtk_oglview_wnd.cpp:153 msgid "Create an MO-density volume object" msgstr "Создать объект \"ÐžÐ±ÑŠÑ‘Ð¼Ð½Ð°Ñ Ð¿Ð»Ð¾Ñ‚Ð½Ð¾Ñть МО\"" #: ../src/gtk_oglview_wnd.cpp:154 msgid "MO-density surface" msgstr "ПоверхноÑть плотноÑти МО" #: ../src/gtk_oglview_wnd.cpp:154 msgid "Create an MO-density surface object" msgstr "Создать объект \"ПоверхноÑть плотноÑти МО\"" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete Current Object" msgstr "Удалить текущий объект" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete the currently selected object" msgstr "Удалить выбранный ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð±ÑŠÐµÐºÑ‚" #: ../src/gtk_oglview_wnd.cpp:157 msgid "Compute" msgstr "РаÑчёт" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:159 msgid "Setup..." msgstr "ÐаÑтройка..." #: ../src/gtk_oglview_wnd.cpp:160 msgid "Energy" msgstr "ЭнергиÑ" #: ../src/gtk_oglview_wnd.cpp:161 msgid "Geometry Optimization..." msgstr "ÐžÐ¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ð¸..." #: ../src/gtk_oglview_wnd.cpp:162 msgid "Molecular Dynamics..." msgstr "МолекулÑÑ€Ð½Ð°Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÐºÐ°..." #: ../src/gtk_oglview_wnd.cpp:163 msgid "Random Conformational Search..." msgstr "Случайный поиÑк конформаций..." #: ../src/gtk_oglview_wnd.cpp:164 msgid "Systematic Conformational Search..." msgstr "СиÑтематичеÑкий поиÑк конформаций..." #: ../src/gtk_oglview_wnd.cpp:165 msgid "Monte Carlo Search..." msgstr "ПоиÑк Монте-Карло..." #: ../src/gtk_oglview_wnd.cpp:166 msgid "Plot Energy vs. 1 Torsion Angle..." msgstr "Строить график Ñнергии от торÑионного угла..." #: ../src/gtk_oglview_wnd.cpp:167 msgid "Plot Energy vs. 2 Torsion Angles..." msgstr "Строить график Ñнергии от двух торÑионных углов..." #: ../src/gtk_oglview_wnd.cpp:168 msgid "Population Analysis (ESP)" msgstr "Ðнализ заÑелённоÑти (ESP)" #: ../src/gtk_oglview_wnd.cpp:169 msgid "Transition State Search..." msgstr "ПоиÑк переходного ÑоÑтоÑниÑ..." #: ../src/gtk_oglview_wnd.cpp:170 msgid "Stationary State Search..." msgstr "ПоиÑк Ñтационарного ÑоÑтоÑниÑ..." #: ../src/gtk_oglview_wnd.cpp:171 msgid "Formula" msgstr "Формула" #: ../src/gtk_oglview_wnd.cpp:176 msgid "MD Trajectory Viewer..." msgstr "ПроÑмотр траекторий МД..." #: ../src/gtk_oglview_wnd.cpp:177 msgid "Set Current Orbital" msgstr "УÑтановить текущую орбиталь" #: ../src/gtk_oglview_wnd.cpp:179 msgid "Build" msgstr "ПоÑтроить" #. ^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:181 msgid "Solvate Box..." msgstr "Куб раÑтворителÑ..." #: ../src/gtk_oglview_wnd.cpp:182 msgid "Solvate Sphere..." msgstr "Сферу раÑтворителÑ..." #: ../src/gtk_oglview_wnd.cpp:183 msgid "Sequence Builder (amino)..." msgstr "ПоÑтроение поÑледовательноÑтей (амино)..." #: ../src/gtk_oglview_wnd.cpp:184 msgid "Sequence Builder (nucleic)..." msgstr "ПоÑтроение поÑледовательноÑтей (нуклеиновые)..." #: ../src/gtk_oglview_wnd.cpp:185 msgid "Center" msgstr "Центрировать" #: ../src/gtk_oglview_wnd.cpp:186 msgid "Zap All" msgstr "ОчиÑтить вÑÑ‘" #: ../src/gtk_oglview_wnd.cpp:188 msgid "Hydrogens" msgstr "Ðтомы водорода" #. ^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:190 msgid "Add" msgstr "Добавить" #: ../src/gtk_oglview_wnd.cpp:191 msgid "Remove" msgstr "Удалить" #: ../src/gtk_oglview_wnd.cpp:193 msgid "Enter a Command..." msgstr "Введите команду..." #: ../src/gtk_oglview_wnd.cpp:380 #, c-format msgid "ERROR : Building popup-menu for gtk_oglview_wnd failed : %s" msgstr "ОШИБКР: ПоÑтроение выпадающего меню Ð´Ð»Ñ gtk_oglview_wnd закончилоÑÑŒ неудачно : %s" #: ../src/gtk_oglview_wnd.cpp:630 msgid "sets 0 <-> " msgstr "уÑтанавливает 0 <-> " #: ../src/gtk_oglview_wnd.cpp:630 msgid " RMS = " msgstr "" #: ../src/gtk_oglview_wnd.cpp:636 msgid "average RMS = " msgstr "Ñреднее RMS = " #: ../src/gtk_p1dview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_p1dview_wnd failed : %s" msgstr "ОШИБКР: ПоÑтроение выпадающего меню Ð´Ð»Ñ gtk_p1dview_wnd закончилоÑÑŒ неудачно : %s" #: ../src/gtk_p2dview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_p2dview_wnd failed : %s" msgstr "ОШИБКР: ПоÑтроение выпадающего меню Ð´Ð»Ñ gtk_p2dview_wnd закончилоÑÑŒ неудачно : %s" #: ../src/gtk_progress_dialog.cpp:39 msgid "WARNING : progress_dialog : glade_xml_get_widget() failed!!!" msgstr "ПРЕДУПРЕЖДЕÐИЕ : progress_dialog : glade_xml_get_widget() закончилаÑÑŒ ошибкой!!!" #: ../src/gtk_project.cpp:81 msgid "A new project created.\n" msgstr "Создан новый проект.\n" #: ../src/gtk_project.cpp:184 msgid "Thread creation failed : GeomOpt" msgstr "Создание потока окончилоÑÑŒ неудачно : GeomOpt" #: ../src/gtk_project.cpp:199 #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:2 msgid "Geometry Optimization" msgstr "ÐžÐ¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ð¸" #: ../src/gtk_project.cpp:234 msgid "Thread creation failed : MolDyn" msgstr "Создание потока окончилоÑÑŒ неудачно : MolDyn" #: ../src/gtk_project.cpp:249 #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:5 msgid "Molecular Dynamics" msgstr "МолекулÑÑ€Ð½Ð°Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÐºÐ°" #: ../src/gtk_project.cpp:273 msgid "Thread creation failed : RandomSearch" msgstr "Создание потока окончилоÑÑŒ неудачно : RandomSearch" #: ../src/gtk_project.cpp:288 msgid "Random Search" msgstr "Случайный поиÑк" #: ../src/gtk_project.cpp:776 #: ../src/gtk_project.cpp:794 #: ../src/gtk_project.cpp:812 #: ../src/gtk_project.cpp:830 #: ../src/gtk_project.cpp:848 #: ../src/gtk_project.cpp:866 #: ../src/gtk_project.cpp:884 #: ../src/gtk_project.cpp:902 #: ../src/gtk_project.cpp:920 #: ../src/gtk_project.cpp:938 #: ../src/gtk_project.cpp:956 #: ../src/gtk_project.cpp:974 msgid "Please calculate energy first!" msgstr "Сначала поÑчитайте Ñнергию!" #: ../src/gtk_project.cpp:1075 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D with atom indices that define the torsion.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics (optsteps)." msgstr "" "Ð’ÐИМÐÐИЕ!\n" "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока в Ñледующем диалоговом окне неполна.\n" "Ðужно заменить буквы A-D атомными индекÑами которые определÑÑŽÑ‚ торÑионный угол.\n" "\n" "ТÐКЖЕ: улучшение Ñтруктуры вÑегда проводитÑÑ Ð¼ÐµÑ‚Ð¾Ð´Ð°Ð¼Ð¸ молекулÑрной механики (optsteps)." #: ../src/gtk_project.cpp:1088 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D and I-L with atom indices that define the torsions.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics (optsteps)." msgstr "" "Ð’ÐИМÐÐИЕ!\n" "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока в Ñледующем диалоговом окне неполна.\n" "Ðужно заменить буквы A-D и I-L атомными индекÑами которые определÑÑŽÑ‚ торÑионные углы.\n" "\n" "ТÐКЖЕ: улучшение Ñтруктуры вÑегда проводитÑÑ Ð¼ÐµÑ‚Ð¾Ð´Ð°Ð¼Ð¸ молекулÑрной механики (optsteps)." #: ../src/gtk_project.cpp:1162 msgid "ERROR" msgstr "ОШИБКÐ" #: ../src/gtk_project.cpp:1173 msgid "Trajectory file already open?" msgstr "Файл траектории уже открыт?" #: ../src/gtk_project.cpp:1182 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letter X with the orbital index that will become the current orbital." msgstr "" "Ð’ÐИМÐÐИЕ!\n" "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока в Ñледующем диалоговом окне неполна.\n" "Ðужно заменить букву X номером орбитали, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñтанет текущей." #: ../src/gtk_project.cpp:1237 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AAA with the sequence to be built." msgstr "" "Ð’ÐИМÐÐИЕ!\n" "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока в Ñледующем диалоговом окне неполна.\n" "Ðужно заменить поÑледовательноÑть по умолчанию AAA нужной поÑледовательноÑтью." #: ../src/gtk_project.cpp:1250 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AGTCaguc with the sequence to be built." msgstr "" "Ð’ÐИМÐÐИЕ!\n" "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока в Ñледующем диалоговом окне неполна.\n" "Ðужно заменить поÑледовательноÑть по умолчанию AGTCaguc нужной поÑледовательноÑтью." #: ../src/gtk_project.cpp:1287 msgid "Are you sure you want to clear everything?" msgstr "Ð’Ñ‹ уверены, что хотите очиÑтить вÑÑ‘?" #: ../src/gtk_rcpview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_rcpview_wnd failed : %s" msgstr "ОШИБКР: ПоÑтроение выпадающего меню Ð´Ð»Ñ gtk_rcpview_wnd закончилоÑÑŒ неудачно : %s" #: ../src/gtk_setup_dialog.cpp:49 msgid "WARNING : setup_dialog : glade_xml_get_widget() failed!!!" msgstr "ПРЕДУПРЕЖДЕÐИЕ : setup_dialog : glade_xml_get_widget() закончилаÑÑŒ ошибкой!!!" #: ../src/gtk_setup_dialog.cpp:358 msgid "Changed the Setup for calculations " msgstr "Изменены наÑтройки Ð´Ð»Ñ Ñ€Ð°Ñчётов" #: ../src/gtk_setup_dialog.cpp:359 #: ../src/project.cpp:4050 msgid "(setup = " msgstr "(наÑтройки = " #: ../src/gtk_setup_dialog.cpp:375 #: ../src/project.cpp:4051 msgid ", engine = " msgstr ", движок =" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:49 msgid "Set Current Element" msgstr "УÑтановить текущий Ñлемент" #: ../src/gtk_simple_dialogs.cpp:113 msgid "Current element is now " msgstr "Текущий Ñлемент теперь" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:133 msgid "Set Current Bondtype" msgstr "УÑтановить текущий тип ÑвÑзи" #: ../src/gtk_simple_dialogs.cpp:184 msgid "Current bondtype is now " msgstr "Текущий тип ÑвÑзи теперь" #: ../src/gtk_simple_dialogs.cpp:449 msgid "" "This alternative PDB reader is designed to remove any gaps that might\n" "exist in the structure data. Therefore the sequence might be altered!" msgstr "" "Ðльтернативный загрузчик PDB разработан чтобы убирать любые пропуÑки, которые\n" "могут возникать в Ñтруктурных данных. Следовательно, поÑледовательноÑть может быть изменена!" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:482 msgid "Command Interpreter" msgstr "Командный интерпретатор" #: ../src/gtk_simple_dialogs.cpp:503 msgid "Execute" msgstr "Выполнить" #: ../src/gtk_simple_dialogs.cpp:506 msgid "Cancel" msgstr "Отмена" #: ../src/gtk_stereo_dialog.cpp:37 msgid "WARNING : stereo_dialog : glade_xml_get_widget() failed!!!" msgstr "ПРЕДУПРЕЖДЕÐИЕ : stereo_dialog : glade_xml_get_widget() закончилаÑÑŒ ошибкой!!!" #: ../src/gtk_trajview_dialog.cpp:39 msgid "WARNING : trajview_dialog : glade_xml_get_widget() failed!!!" msgstr "ПРЕДУПРЕЖДЕÐИЕ : trajview_dialog : glade_xml_get_widget() закончилаÑÑŒ ошибкой!!!" #: ../src/gtk_trajview_dialog.cpp:82 #: ../src/gtk_trajview_dialog.cpp:102 #: ../src/gtk_trajview_dialog.cpp:136 #: ../src/gtk_trajview_dialog.cpp:151 msgid "frame = " msgstr "кадр = " #: ../src/gtk_wnd.cpp:53 #, c-format msgid "*** Cannot find the double-buffered visual.\n" msgstr "*** Ðе удалоÑÑŒ найти метод Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð´Ð²Ð¾Ð¹Ð½Ð¾Ð¹ буферизацией.\n" #: ../src/gtk_wnd.cpp:54 #, c-format msgid "*** Trying single-buffered visual.\n" msgstr "*** Пробуем метод Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ буферизацией.\n" #: ../src/gtk_wnd.cpp:61 #, c-format msgid "*** No appropriate OpenGL-capable visual found.\n" msgstr "*** Ðе найдено ÑовмеÑтимого Ñ OpenGL метода отображениÑ.\n" #: ../src/gtk_wnd.cpp:66 #, c-format msgid "" "\n" "OpenGL visual configurations :\n" "\n" msgstr "" "\n" "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ OpenGL :\n" "\n" #: ../src/ogl_surface.cpp:91 msgid "evaluating grid" msgstr "определÑетÑÑ Ñетка" #: ../src/ogl_surface.cpp:106 msgid " done\n" msgstr " готово\n" #: ../src/ogl_surface.cpp:112 msgid "interpolating in " msgstr "инерполÑÑ†Ð¸Ñ Ð² " #: ../src/ogl_surface.cpp:131 msgid "-direction... " msgstr "-направлении..." #: ../src/ogl_surface.cpp:138 msgid " points, " msgstr " точек, " #: ../src/ogl_surface.cpp:138 msgid " cycles" msgstr " циклов" #: ../src/ogl_surface.cpp:155 msgid "generating image... " msgstr "СоздаётÑÑ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ..." #: ../src/ogl_surface.cpp:185 msgid "color_surface problem #1" msgstr "color_surface проблема #1" #: ../src/ogl_surface.cpp:235 msgid "color_surface problem #2" msgstr "color_surface проблема #2" #: ../src/ogl_surface.cpp:335 msgid " lines, " msgstr " линий, " #: ../src/ogl_surface.cpp:335 msgid " triangles." msgstr " треугольников." #: ../src/p2dview_wcl.cpp:182 msgid "now scaling the colours to range " msgstr "цвета маÑштабируютÑÑ Ð´Ð¾ диапазона " #: ../src/p2dview_wcl.cpp:182 msgid " kJ/mol" msgstr " кДж/моль" #: ../src/pangofont_wcl.cpp:75 #, c-format msgid "*** ERROR : Can't load font '%s'\n" msgstr "*** ОШИБКР: Ðе удалоÑÑŒ загрузить шрифт '%s'\n" #: ../src/project.cpp:210 msgid "untitled" msgstr "безымÑнный" #: ../src/project.cpp:322 msgid "Cannot import that file type." msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ñтот тип файла." #: ../src/project.cpp:367 msgid "Cannot export that file type." msgstr "ÐÐµÐ»ÑŒÐ·Ñ ÑкÑпортировать Ñтот тип файла." #: ../src/project.cpp:409 msgid "Hydrogens added." msgstr "Ðтомы водорода добавлены." #: ../src/project.cpp:419 msgid "Hydrogens removed." msgstr "Ðтомы водорода удалены." #: ../src/project.cpp:617 msgid " window " msgstr " окно " #: ../src/project.cpp:663 msgid "" "This is the last graphics view for\n" "this project - can't close it." msgstr "" "Это поÑледний графичеÑкий вид длÑ\n" "Ñтого проекта - Ð½ÐµÐ»ÑŒÐ·Ñ ÐµÐ³Ð¾ закрыть." #: ../src/project.cpp:877 msgid "Processing Command : " msgstr "ВыполнÑетÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° : " #: ../src/project.cpp:887 msgid "> AVAILABLE COMMANDS:" msgstr "> ДОСТУПÐЫЕ КОМÐÐДЫ:" #. use alphabetical order??? #: ../src/project.cpp:889 msgid "> add light (local/global) (directional/spotlight) -- add a new light object." msgstr "> add light (local/global) (directional/spotlight) -- добавлÑет новый объект-иÑточник Ñвета." #: ../src/project.cpp:891 msgid "> add plane -- add a plane object." msgstr "> add plane -- добавлÑет объект-плоÑкоÑть." #: ../src/project.cpp:892 #: ../src/project.cpp:902 msgid "> where: = value function : esp vdws eldens mo mod unity" msgstr "> где: = Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ : esp vdws eldens mo mod unity" #: ../src/project.cpp:893 #: ../src/project.cpp:903 #: ../src/project.cpp:913 msgid "> = colour function : red green blue rb1 rb2" msgstr "> = Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð° : red green blue rb1 rb2" #: ../src/project.cpp:894 #: ../src/project.cpp:904 #: ../src/project.cpp:915 #: ../src/project.cpp:930 msgid "> = scaling value for calculating the colours" msgstr "> = коÑффициент маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ñчёта цветов" #: ../src/project.cpp:895 #: ../src/project.cpp:905 #: ../src/project.cpp:916 #: ../src/project.cpp:931 msgid "> = scaling offset for calculating the colours" msgstr "> = Ñмещение маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ñчёта цветов" #: ../src/project.cpp:896 #: ../src/project.cpp:906 #: ../src/project.cpp:917 #: ../src/project.cpp:932 msgid "> = dimension of the plane object (in nm units)" msgstr "> = размер объекта-плоÑкоÑти (в нм)" #: ../src/project.cpp:897 #: ../src/project.cpp:907 #: ../src/project.cpp:918 #: ../src/project.cpp:933 msgid "> = resolution of the plane object" msgstr "> = разрешение объекта-плоÑкоÑти" #: ../src/project.cpp:898 #: ../src/project.cpp:920 #: ../src/project.cpp:935 msgid "> = 0 or 1 telling if the object is transparent" msgstr "> = 0 или 1, прозрачноÑть объекта" #: ../src/project.cpp:899 #: ../src/project.cpp:908 #: ../src/project.cpp:921 #: ../src/project.cpp:936 msgid "> = transparency alpha value" msgstr "> = коÑффициент прозрачноÑти альфа" #: ../src/project.cpp:901 msgid "> add volrend -- add a volume-rendering object." msgstr "> add volrend -- добавить объект \"Ð¾Ð±ÑŠÐµÐ¼Ð½Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ñовка\"." #: ../src/project.cpp:910 msgid "> add surf1 -- add a single surface object." msgstr "> add surf1 -- добавить объект \"Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð°Ñ Ð¿Ð»Ð¾ÑкоÑть\"." #: ../src/project.cpp:911 #: ../src/project.cpp:924 msgid "> where: = value function for calculating the surface : esp vdws eldens mo mod unity" msgstr "> где: = Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ñчёта поверхноÑти : esp vdws eldens mo mod unity" #: ../src/project.cpp:912 #: ../src/project.cpp:925 msgid "> = value function for calculating the colours : esp vdws eldens mo mod unity" msgstr "> = Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ñчёта цветов : esp vdws eldens mo mod unity" #: ../src/project.cpp:914 msgid "> = scaling value for calculating the surface" msgstr "> = параметр маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ñчёта плоÑкоÑти" #: ../src/project.cpp:919 #: ../src/project.cpp:934 msgid "> = 0 or 1 telling if the object is solid" msgstr "> = 0 или 1 -- ÑвлÑетÑÑ Ð»Ð¸ объект Ñплошным" #: ../src/project.cpp:923 msgid "> add surf2 -- add a pair of surface objects." msgstr "> add surf2 -- добавлÑет пару объектов-плоÑкоÑтей." #: ../src/project.cpp:926 msgid "> = colour function for 1st surface : red green blue rb1 rb2" msgstr "> = Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð° Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð¹ поверхноÑти : red green blue rb1 rb2" #: ../src/project.cpp:927 msgid "> = colour function for 2nd surface : red green blue rb1 rb2" msgstr "> = Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð° Ð´Ð»Ñ Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ поверхноÑти : red green blue rb1 rb2" #: ../src/project.cpp:928 msgid "> = scaling value for calculating the surface for 1st surface" msgstr "> = параметр маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ñчёта первой поверхноÑти" #: ../src/project.cpp:929 msgid "> = scaling value for calculating the surface for 2nd surface" msgstr "> = параметр маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ñчёта второй поверхноÑти" #: ../src/project.cpp:938 msgid "> help -- print all available commands in command strings." msgstr "> help -- напечатать вÑе доÑтупные команды в командных Ñтроках." #: ../src/project.cpp:940 msgid "> energy -- calculate a single-point energy." msgstr "> energy -- раÑÑчитать Ñнергию в точке." #: ../src/project.cpp:941 msgid "> geom_opt -- do a geometry optimization run using default options." msgstr "> geom_opt -- запуÑтить оптимизацию геометрии Ñ Ð½Ð°Ñтройками по умолчанию." #: ../src/project.cpp:942 msgid "> mol_dyn -- do a molecular dynamics run using default options." msgstr "> mol_dyn -- запуÑтить раÑчёт молекулÑрной динамики Ñ Ð½Ð°Ñтройками по умолчанию." #: ../src/project.cpp:944 msgid "> random_search -- perform a random conformational search." msgstr "> random_search -- выполнить Ñлучайный поиÑк конформаций." #: ../src/project.cpp:945 msgid "> systematic_search -- perform a systematic conformational search." msgstr "> systematic_search -- выполнить ÑиÑтематичеÑкий поиÑк конформаций." #: ../src/project.cpp:946 msgid "> montecarlo_search -- perform a MonteCarlo search." msgstr "> montecarlo_search -- выпонить поиÑк Монте-Карло." #: ../src/project.cpp:948 msgid "> make_plot1 A B C D
-- create a 1D energy vs. torsion plot." msgstr "> make_plot1 A B C D
-- поÑтроить одномерный график Ñнергии от торÑионного угла." #: ../src/project.cpp:949 msgid "> make_plot2 A B C D
I J K L
-- create a 2D energy vs. torsions plot." msgstr "> make_plot2 A B C D
I J K L
-- поÑтроить двумерный график Ñнергии от двух торÑионных углов." #: ../src/project.cpp:951 msgid "> population_analysis_ESP -- determine atomic charges using an ESP fit (for QM methods only)." msgstr "> population_analysis_ESP -- определить зарÑды атомов иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð°Ð¿Ð¿Ñ€Ð¾ÐºÑимацию ЭСП (только Ð´Ð»Ñ ÐºÐ²Ð°Ð½Ñ‚Ð¾Ð²Ñ‹Ñ… методов)." #: ../src/project.cpp:953 msgid "> transition_state_search -- perform a transition state search (for QM methods only)." msgstr "> transition_state_search -- поиÑк переходного ÑоÑтоÑÐ½Ð¸Ñ (только Ð´Ð»Ñ ÐºÐ²Ð°Ð½Ñ‚Ð¾Ð²Ñ‹Ñ… методов)." #: ../src/project.cpp:954 msgid "> stationary_state_search -- perform a search for a structure with no forces." msgstr "> stationary_state_search -- поиÑк Ñтруктуры без Ñил." #: ../src/project.cpp:956 msgid "> set_current_orbital -- set the current orbtal index for plotting the orbitals." msgstr "> set_current_orbital -- уÑтанавливает номер текущей орбитали Ð´Ð»Ñ Ð¿Ð¾ÑÑ‚Ñ€Ð¾ÐµÐ½Ð¸Ñ Ð¾Ñ€Ð±Ð¸Ñ‚Ð°Ð»ÐµÐ¹." #: ../src/project.cpp:958 msgid "> update_chains -- detect polymer chains using sequence builder." msgstr "> update_chains -- поиÑк полимерных цепочек Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ поÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÐµÐ»Ñ Ð¿Ð¾ÑледовательноÑтей." #: ../src/project.cpp:959 msgid "> build_amino (helix/strand) -- amino acid sequence builder." msgstr "> build_amino (helix/strand) -- поÑтроитель поÑледовательноÑтей Ð´Ð»Ñ Ð°Ð¼Ð¸Ð½Ð¾ÐºÐ¸Ñлот." #: ../src/project.cpp:960 msgid "> build_nucleic -- nucleic acid sequence builder." msgstr "> build_nucleic -- поÑтроитель поÑледовательноÑтей Ð´Ð»Ñ Ð½ÑƒÐºÐ»ÐµÐ¸Ð½Ð¾Ð²Ñ‹Ñ… киÑлот." #: ../src/project.cpp:962 msgid "> orient -- orient the system in the XYZ coordinate system." msgstr "> orient -- ориентирует ÑиÑтему в ÑиÑтеме координат XYZ." #: ../src/project.cpp:964 msgid "> solvate_box ( (export)) -- setup a solvation box." msgstr "> solvate_box ( (export)) -- Ñоздает куб раÑтворителÑ." #: ../src/project.cpp:965 msgid "> solvate_sphere ( ) -- setup a solvation sphere." msgstr "> solvate_sphere ( ) -- Ñоздаёт Ñферу раÑтворителÑ." #: ../src/project.cpp:967 msgid "> set_formal_charge -- set formal charges to atoms." msgstr "> set_formal_charge -- уÑтанавливает формальный зарÑд атомов." #: ../src/project.cpp:969 msgid "> evaluate_Bfact -- evaluate B-factors for selected atoms (a trajectory file must be open)." msgstr "" #: ../src/project.cpp:970 msgid "> evaluate_diffconst
-- evaluate diffusion constants for selected atoms (a trajectory file must be open, dt = time difference between frames [fs])." msgstr "> evaluate_diffconst
-- раÑÑчитывает коеффициенты диффузии Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… атомов (файл траектории должен быть открыт, dt = Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñ€Ð°Ð·Ð½Ð¸Ñ†Ð° между фреймами [Ñ„Ñ])." #: ../src/project.cpp:1010 msgid "Added a new object : light (" msgstr "Добавлен новый объект : иÑточник Ñвета (" #: ../src/project.cpp:1011 msgid "local" msgstr "локальный" #: ../src/project.cpp:1011 msgid "global" msgstr "глобальный" #: ../src/project.cpp:1012 msgid "directional" msgstr "направленный" #: ../src/project.cpp:1012 msgid "spotlight" msgstr "точечный" #: ../src/project.cpp:1041 msgid "ERROR : add plane : unknown value function " msgstr "ОШИБКР: add plane : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹" #: ../src/project.cpp:1055 msgid "ERROR : add plane : unknown colour function " msgstr "ОШИБКР: add plane : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð°" #: ../src/project.cpp:1091 msgid "Added a new object : plane (" msgstr "Добавлен новый объект : plane (" #: ../src/project.cpp:1119 msgid "ERROR : add volrend : unknown value function " msgstr "ОШИБКР: add volrend : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹" #: ../src/project.cpp:1133 msgid "ERROR : add volrend : unknown colour function " msgstr "ОШИБКР: add volrend : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð°" #: ../src/project.cpp:1166 msgid "Added a new object : volrend (" msgstr "Добавлен новый объект : volrend (" #: ../src/project.cpp:1199 msgid "ERROR : add surf1 : unknown value function 1 " msgstr "ОШИБКР: add surf1 : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ 1" #: ../src/project.cpp:1214 msgid "ERROR : add surf1 : unknown value function 2 " msgstr "ОШИБКР: add surf1 : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ 2" #: ../src/project.cpp:1228 msgid "ERROR : add surf1 : unknown colour function " msgstr "ОШИБКР: add surf1 : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð°" #: ../src/project.cpp:1277 msgid "Added a new object : surf1 (" msgstr "Добавлен новый объект : surf1 (" #: ../src/project.cpp:1314 msgid "ERROR : add surf2 : unknown value function 1 " msgstr "ОШИБКР: add surf2 : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ 1" #: ../src/project.cpp:1329 msgid "ERROR : add surf2 : unknown value function 2 " msgstr "ОШИБКР: add surf2 : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ 2" #: ../src/project.cpp:1343 msgid "ERROR : add surf2 : unknown colour function 1 " msgstr "ОШИБКР: add surf2 : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð° 1" #: ../src/project.cpp:1357 msgid "ERROR : add surf2 : unknown colour function 2 " msgstr "ОШИБКР: add surf2 : неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð° 2" #: ../src/project.cpp:1417 msgid "Added a new object : surf2 (" msgstr "Добавлен новый объект : surf2 (" #: ../src/project.cpp:1423 msgid "ERROR : could not process command \"add\" for parameter " msgstr "ОШИБКРЖ не удалоÑÑŒ обработать команду \"add\" Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° " #: ../src/project.cpp:1581 msgid "Sorry, this is for QM models only!" msgstr "ДоÑтупно только Ð´Ð»Ñ QM моделей!" #: ../src/project.cpp:1628 msgid "The current orbital is now " msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð¾Ñ€Ð±Ð¸Ñ‚Ð°Ð»ÑŒ теперь " #: ../src/project.cpp:1673 #: ../src/project.cpp:1708 msgid "built a sequence : " msgstr "поÑтроена поÑледовательноÑть : " #: ../src/project.cpp:1721 msgid "maximum dimensions:" msgstr "макÑимальные размеры:" #: ../src/project.cpp:1823 msgid "Sorry, atom not found!" msgstr "Ðтом не найден!" #: ../src/project.cpp:1849 msgid "ERROR : Unknown command : " msgstr "ОШИБКР: ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° : " #: ../src/project.cpp:1850 msgid "The \"help\" command will give more information about command strings." msgstr "Команда \"help\" выдаÑÑ‚ дополнительную информацию о командных Ñтроках." #: ../src/project.cpp:1877 msgid "local lights = " msgstr "локальные иÑточники Ñвета = " #: ../src/project.cpp:1877 #: ../src/project.cpp:1884 msgid "on" msgstr "вкл" #: ../src/project.cpp:1877 #: ../src/project.cpp:1884 msgid "off" msgstr "выкл" #: ../src/project.cpp:1884 msgid "global lights = " msgstr "глобальные иÑточники Ñвета = " #: ../src/project.cpp:3256 msgid "Group information about chains/residues is needed for this operation." msgstr "Ð“Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поÑледовательноÑÑ‚ÑÑ…/оÑтатках необходима Ð´Ð»Ñ Ñтой операции." #: ../src/project.cpp:3257 msgid "Is it OK to update group information?" msgstr "Можно обновить информацию о группах?" #: ../src/project.cpp:3271 msgid "Sorry, no chain/residue information available for this atom." msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поÑледовательноÑти/группе Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ атома недоÑтупнаю" #: ../src/project.cpp:3290 msgid "selected atom " msgstr "выбранный атом" #: ../src/project.cpp:3290 msgid " (atomtype = " msgstr "" #: ../src/project.cpp:3302 msgid "selected residue " msgstr "выбранный оÑтаток " #: ../src/project.cpp:3302 msgid " from chain " msgstr " из поÑледовательноÑти " #: ../src/project.cpp:3313 msgid "selected chain " msgstr "Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾ÑледовательноÑть " #: ../src/project.cpp:3337 msgid "selected molecule " msgstr "Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð¼Ð¾Ð»ÐµÐºÑƒÐ»Ð°" #. this must be OK. #: ../src/project.cpp:3366 msgid "charge: " msgstr "зарÑд:" #: ../src/project.cpp:3384 msgid "distance: " msgstr "раÑÑтоÑние:" #: ../src/project.cpp:3406 msgid "angle: " msgstr "угол:" #: ../src/project.cpp:3406 msgid " deg" msgstr " град." #: ../src/project.cpp:3425 msgid "torsion: " msgstr "торÑионный угол:" #: ../src/project.cpp:3425 msgid " deg " msgstr " град. " #: ../src/project.cpp:3494 msgid "MW: " msgstr "" #: ../src/project.cpp:3571 msgid "ERROR : atom " msgstr "ОШИБКР: атом " #: ../src/project.cpp:3571 #: ../src/project.cpp:3757 #: ../src/project.cpp:3769 msgid " not found!" msgstr " не найден!" #: ../src/project.cpp:3591 msgid "ERROR : could not find ic.\n" msgstr "" #: ../src/project.cpp:3609 msgid "ERROR : could not find tor-term.\n" msgstr "" #: ../src/project.cpp:3613 msgid "tor(deg)" msgstr "торÑион.(град.)" #: ../src/project.cpp:3613 #: ../src/project.cpp:3830 #: ../src/project.cpp:3922 msgid "E(kJ/mol)" msgstr "E(кДж/моль)" #: ../src/project.cpp:3664 msgid "tor = " msgstr "торÑион. = " #: ../src/project.cpp:3664 #: ../src/project.cpp:3887 msgid " deg, energy = " msgstr "" #: ../src/project.cpp:3664 #: ../src/project.cpp:3887 msgid " kJ/mol." msgstr " кДж/моль." #: ../src/project.cpp:3757 msgid "ERROR : tor1 atom " msgstr "" #: ../src/project.cpp:3769 msgid "ERROR : tor2 atom " msgstr "" #: ../src/project.cpp:3789 msgid "ERROR : could not find ic for tor1.\n" msgstr "" #: ../src/project.cpp:3796 msgid "ERROR : could not find ic for tor2.\n" msgstr "" #: ../src/project.cpp:3819 msgid "ERROR : could not find tor-term for tor1.\n" msgstr "" #: ../src/project.cpp:3826 msgid "ERROR : could not find tor-term for tor2.\n" msgstr "" #: ../src/project.cpp:3830 msgid "tor1(deg)" msgstr "" #: ../src/project.cpp:3830 msgid "tor2(deg)" msgstr "" #: ../src/project.cpp:3887 msgid "tor1 = " msgstr "" #: ../src/project.cpp:3887 msgid " deg, tor2 = " msgstr "" #: ../src/project.cpp:3912 #: ../src/project.cpp:3947 msgid "r-energy = " msgstr "" #: ../src/project.cpp:3912 #: ../src/project.cpp:3947 msgid "p-energy = " msgstr "" #: ../src/project.cpp:3913 #: ../src/project.cpp:3948 msgid " is lower " msgstr " меньше " #: ../src/project.cpp:3952 msgid "READY!" msgstr "ГОТОВО!" #: ../src/project.cpp:4049 msgid "Starting Stationary State Search " msgstr "ÐачинаетÑÑ Ð¿Ð¾Ð¸Ñк Ñтационарного ÑоÑтоÑÐ½Ð¸Ñ " #: ../src/project.cpp:4062 msgid "Cycle Gradient Step\n" msgstr "Цикл Градиент Шаг\n" #: ../src/project.cpp:4077 msgid "the nsteps termination test was passed.\n" msgstr "теÑÑ‚ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¿Ð¾ количеÑтву шагов nsteps прошел.\n" #: ../src/rcpview_wcl.cpp:161 msgid "the tresholds were set to " msgstr "пороги были уÑтановлены в " #: ../src/rcpview_wcl.cpp:161 msgid " and " msgstr " и " #. ################################################################################################ #. eof #: ../src/res_gtk/gtk_file_export_dialog.glade.h:1 #: ../src/res_gtk/gtk_file_import_dialog.glade.h:1 #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:1 msgid "Browse..." msgstr "ПроÑмотреть..." #: ../src/res_gtk/gtk_file_export_dialog.glade.h:2 msgid "Export File" msgstr "ЭкÑпорт файла" #: ../src/res_gtk/gtk_file_import_dialog.glade.h:2 msgid "Import File" msgstr "Импорт файла:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:1 msgid "Delta-E Cutoff:" msgstr "Порог разницы E:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:3 msgid "Gradient Cutoff:" msgstr "Порог градиента:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:4 msgid "Maximum # of Steps:" msgstr "МакÑимальное чиÑло шагов:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:2 msgid "Constant-P simulation (allow P-control at simulation stage)" msgstr "РаÑчёт Ñ Ð¿Ð¾ÑтоÑнным P (позволÑет управлÑть P при раÑчёте)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:3 msgid "Constant-T simulation (allow T-control at simulation stage)" msgstr "РаÑчёт Ñ Ð¿Ð¾ÑтоÑнной T (позволÑет управлÑть T при раÑчёте)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:4 msgid "Isothermal compressibility [1/bar] :" msgstr "ИзотермичеÑÐºÐ°Ñ ÑжимаемоÑть [1/бар] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:6 msgid "Number of steps : (cooling)" msgstr "ЧиÑло шагов : (охлаждение)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:7 msgid "Number of steps : (equilibration)" msgstr "ЧиÑло шагов : (уÑтановление равновеÑиÑ)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:8 msgid "Number of steps : (heating)" msgstr "ЧиÑло шагов : (нагрев)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:9 msgid "Number of steps : (simulation)" msgstr "ЧиÑло шагов : (моделирование)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:10 msgid "P relaxation time [fs] :" msgstr "Ð’Ñ€ÐµÐ¼Ñ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ P [Ñ„Ñ] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:11 msgid "Pressure [bar] :" msgstr "Давление [бар] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:12 msgid "T relaxation time [fs] : (equil/simul)" msgstr "Ð’Ñ€ÐµÐ¼Ñ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ T [Ñ„Ñ] : (равновеÑ./модел.)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:13 msgid "T relaxation time [fs] : (heat/cool)" msgstr "Ð’Ñ€ÐµÐ¼Ñ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ T [Ñ„Ñ] : (нагрев/оÑтывание)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:14 msgid "Temperature [K] :" msgstr "Температура [К]:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:15 msgid "Timestep [fs] :" msgstr "Шаг по времени [Ñ„Ñ] : " #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:16 msgid "Trajectory File : " msgstr "Файл траектории : " #: ../src/res_gtk/gtk_progress_dialog.glade.h:1 msgid "Background Job" msgstr "Фоновый процеÑÑ" #: ../src/res_gtk/gtk_progress_dialog.glade.h:2 msgid "Job Title : " msgstr "Ðазвание процеÑÑа : " #: ../src/res_gtk/gtk_setup_dialog.glade.h:1 msgid "Select the Engine Class:" msgstr "Выбор клаÑÑа движка:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:2 msgid "Set the spin multiplicity of the system:" msgstr "УÑтановка мультиплетноÑть Ñпина ÑиÑтемы:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:3 msgid "Set the total charge of the system:" msgstr "УÑтановить Ñуммарный зарÑд ÑиÑтемы:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:4 msgid "Enable atomtype/parameter exceptions (AMBER FF)." msgstr "Разрешить иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿ атома/параметр (AMBER FF)." #: ../src/res_gtk/gtk_setup_dialog.glade.h:6 msgid "MM/SF" msgstr "" #: ../src/res_gtk/gtk_setup_dialog.glade.h:7 msgid "QM/MM" msgstr "" #: ../src/res_gtk/gtk_setup_dialog.glade.h:8 msgid "Setup" msgstr "ÐаÑтройка" #: ../src/res_gtk/gtk_setup_dialog.glade.h:9 msgid "Spin Multiplicity:" msgstr "МультиплетноÑть Ñпина:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:10 msgid "Total Charge:" msgstr "Суммарный зарÑд:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:11 msgid "all MM" msgstr "вÑе MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:12 msgid "all QM" msgstr "вÑе QM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:13 msgid "all SF" msgstr "вÑе SF" #: ../src/res_gtk/gtk_setup_dialog.glade.h:14 msgid "this is under construction and DISABLED currently!" msgstr "находитÑÑ Ð² разработке и в наÑтоÑщий момент ОТКЛЮЧЕÐО!" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:1 msgid "Relaxed Separation :" msgstr "Разделение раÑÑлабленного глаза :" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:2 msgid "Stereo Displacement :" msgstr "СтереоÑмещение :" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:3 msgid "Stereo View Settings" msgstr "ÐаÑтройки ÑтереопроÑмотра" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:1 msgid "Begin" msgstr "Ðачало" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:2 msgid "End" msgstr "Конец" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:3 msgid "Play" msgstr "Играть" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:4 msgid "Trajectory Viewer" msgstr "ПроÑмотрщик траектории" ghemical-3.0.0/po/LINGUAS0000644000175000017500000000016311634154334011653 00000000000000## please keep this list sorted alphabetically ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ de fi mk pt_BR ru sq ghemical-3.0.0/po/ChangeLog0000644000175000017500000000000011563552731012372 00000000000000ghemical-3.0.0/po/Makefile.in.in0000644000175000017500000001537711645347705013325 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/po/mk.po0000644000175000017500000027565711563552731011627 00000000000000# Copyright (C) 2006, 2007 Free Software Foundation, Inc. # translation of ghemical.po on Macedonian # This file is distributed under the same license as the Ghemical package. # # Maintainer: Vlado Pesov , 2008 # Maintainer: Bojan Seirovski , 2008 # Translator: Biljana Bogdanovska , 2008 # Proof-reading: Dejan Vasilevski , 2008 # msgid "" msgstr "" "Project-Id-Version: ghemical\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-04-22 10:42+0300\n" "PO-Revision-Date: 2009-01-09 13:04+0100\n" "Last-Translator: Aleksandar Silovski \n" "Language-Team: Macedonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0\n" #: ../src/custom_app.cpp:100 #, fuzzy msgid "Added global light." msgstr "додадено општо оÑветлување." #: ../src/custom_app.cpp:114 #, fuzzy msgid "Added local light." msgstr "додадено локално оÑветлување." #: ../src/eldview_wcl.cpp:162 msgid "No data available," msgstr "Ðема доÑтапни податоци," #: ../src/eldview_wcl.cpp:167 msgid "must be a QM model!" msgstr "мора да биде КМ-модел!" #: ../src/eldview_wcl.cpp:167 msgid "please calculate energy!" msgstr "ве молиме, преÑметајте ја енергијата!" #: ../src/gtk_app.cpp:92 ../src/gtk_oglview_wnd.cpp:38 #, fuzzy msgid "File" msgstr "_Датотека" #: ../src/gtk_app.cpp:93 ../src/res_gtk/gtk_setup_dialog.glade.h:5 msgid "Help" msgstr "Помош" #: ../src/gtk_app.cpp:95 #, fuzzy msgid "New" msgstr "_Ðов" #: ../src/gtk_app.cpp:95 #, fuzzy msgid "Create a new file." msgstr "Креира нов објект Ñо Ñветилка" #. N #. ^^^^^^^^ #: ../src/gtk_app.cpp:96 ../src/gtk_oglview_wnd.cpp:40 #, fuzzy msgid "Open" msgstr "_Отвори" #: ../src/gtk_app.cpp:96 #, fuzzy msgid "Open an existing file." msgstr "Отвори датотека" #. O #: ../src/gtk_app.cpp:97 ../src/gtk_oglview_wnd.cpp:44 #, fuzzy msgid "Save as..." msgstr "_Зачувај како..." #: ../src/gtk_app.cpp:97 #, fuzzy msgid "Save a file." msgstr "Зачувува датотека" #. S #. { "ExportGraphics", GTK_STOCK_SAVE, N_("Export Graphics"), NULL, N_("Export graphics"), (GCallback) gtk_project::popup_FileExportGraphics }, #: ../src/gtk_app.cpp:98 ../src/gtk_oglview_wnd.cpp:49 #, fuzzy msgid "Close" msgstr "_Затвори" #: ../src/gtk_app.cpp:98 #, fuzzy msgid "Quit the program." msgstr "Ја прекинува програмата" #. C #: ../src/gtk_app.cpp:100 msgid "Contents" msgstr "" #: ../src/gtk_app.cpp:100 #, fuzzy msgid "View the User's Manual." msgstr "Во КориÑничкиот прирачник" #. H #: ../src/gtk_app.cpp:101 #, fuzzy msgid "About" msgstr "_За" #: ../src/gtk_app.cpp:101 msgid "Information about this program." msgstr "" #. A #. the rest are toolbar actions... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_app.cpp:106 #, fuzzy msgid "Set the current element." msgstr "ПоÑтави го тековниот елемент" #: ../src/gtk_app.cpp:107 #, fuzzy msgid "Set the current bondtype." msgstr "ПоÑтави го тековниот вид на врÑка" #: ../src/gtk_app.cpp:108 #, fuzzy msgid "Setup or change the comp.chem. method in use." msgstr "ПоÑтави или Ñмени го преÑм. хем. метод во употреба" #: ../src/gtk_app.cpp:113 msgid "Draw ; add atoms and bonds to the model." msgstr "Цртај; додава атоми и врÑки на моделот." #: ../src/gtk_app.cpp:114 msgid "Erase ; remove atoms and bonds from the model." msgstr "Избриши; ги отÑтранува атомите и врÑките од моделот." #: ../src/gtk_app.cpp:115 msgid "Select ; make selections in the model, and also select objects." msgstr "Одбери; прави одбирања во моделот, а иÑто и ги одбира објектите." #: ../src/gtk_app.cpp:116 msgid "Zoom ; zoom the view." msgstr "Приближи; го приближува погледот." #: ../src/gtk_app.cpp:117 msgid "Clipping ; set the near and far clipping planes for graphics rendering." msgstr "" "Спојување; ги поÑтавува блиÑките и далечните рамнини на Ñпојување за " "графичко изведување." #: ../src/gtk_app.cpp:118 msgid "" "TranslateXY ; translate the camera or a selected object in XY-direction." msgstr "" "ТранÑлатирајXY; ја транÑлатира камерата или одбраниот објект во XY-наÑока." #: ../src/gtk_app.cpp:119 msgid "TranslateZ ; translate the camera or a selected object in Z-direction." msgstr "" "ТранÑлатирајZ; ја транÑлатира камерата или одбраниот објект во Z-наÑока." #: ../src/gtk_app.cpp:120 msgid "" "OrbitXY ; orbit the camera or a selected object around the focus point in XY-" "direction." msgstr "" "ОрбитирајXY; ја орбитира камерата или одбраниот објект околу фокуÑот во XY-" "наÑока." #: ../src/gtk_app.cpp:121 msgid "" "OrbitZ ; orbit the camera or a selected object around the focus point in Z-" "direction." msgstr "" "ОрбитирајZ; ја орбитира камерата или одбраниот објект околу фокуÑот во Z-" "наÑока." #: ../src/gtk_app.cpp:122 msgid "RotateXY ; turn the camera or a selected object in XY-direction." msgstr "РотирајXY; ја врти камерата или одбраниот објект во XY-наÑока." #: ../src/gtk_app.cpp:123 msgid "RotateZ ; turn the camera or a selected object in Z-direction." msgstr "РотирајZ; ја врти камерата или одбраниот објект во Z-наÑока." #: ../src/gtk_app.cpp:124 msgid "Measure ; measure distances, angles and torsions." msgstr "Измери; мери раÑтојанија, агли и Ñвиткувања." #: ../src/gtk_app.cpp:207 #, fuzzy msgid "Set to Current Object" msgstr "_ПоÑтави во Тековниот објект" #: ../src/gtk_app.cpp:207 msgid "Set this object to Current Object" msgstr "Го поÑтавува овој објект во Тековен објект" #: ../src/gtk_app.cpp:208 #, fuzzy msgid "Delete Object/View" msgstr "_Избриши Објект/Поглед" #: ../src/gtk_app.cpp:208 msgid "Delete this object or view" msgstr "Го брише овој објект или поглед" #: ../src/gtk_app.cpp:225 #, fuzzy msgid "Update View" msgstr "_Ðжурирај поглед" #: ../src/gtk_app.cpp:225 msgid "Rebuild the chains info for this view" msgstr "Ги преизградува информациите за Ñинџирите за овој поглед" #: ../src/gtk_app.cpp:226 #, fuzzy msgid "Select Item" msgstr "_Одбери Ñтавка" #: ../src/gtk_app.cpp:226 msgid "Select/unselect this chain/residue" msgstr "Го одбира/ододбира овој Ñинџир/оÑтаток" #: ../src/gtk_app.cpp:243 #, fuzzy msgid "Select Atom" msgstr "_Обери атом" #: ../src/gtk_app.cpp:243 msgid "Select/unselect this atom" msgstr "Го одбира/ододбира овој атом" #: ../src/gtk_app.cpp:258 #, fuzzy msgid "Select Bond" msgstr "_Одбери врÑка" #: ../src/gtk_app.cpp:258 msgid "Select/unselect this bond" msgstr "Ја одбира/ододбира оваа врÑка" #: ../src/gtk_app.cpp:344 msgid "Ghemical" msgstr "Ghemical" #: ../src/gtk_app.cpp:351 #, fuzzy, c-format msgid "ERROR : Icon loading failed : %s\n" msgstr "ГРЕШКÐ: не може да пронајде ic.\n" #: ../src/gtk_app.cpp:381 #, fuzzy, c-format msgid "ERROR : Building main menu failed : %s" msgstr "Градењето на главното мени е неуÑпешно: %s" #: ../src/gtk_app.cpp:566 msgid "project view" msgstr "поглед на проектот" #. optional : draw the stripes to background. #. ??? (string) #: ../src/gtk_app.cpp:584 msgid "Object" msgstr "Објект" #. ??? (string) #: ../src/gtk_app.cpp:588 msgid "Sub-Objects" msgstr "Подобјекти" #: ../src/gtk_app.cpp:591 msgid "Views/Objects" msgstr "Погледи/Објекти" #: ../src/gtk_app.cpp:604 #, fuzzy, c-format msgid "ERROR : Building Views/Objects menu in project view failed : %s" msgstr "Градењето на gpv менито Погледи/Објекти е неуÑпешно: %s" #. optional : draw the stripes to background. #. chain_info (string) #: ../src/gtk_app.cpp:620 msgid "Chain Description" msgstr "ÐžÐ¿Ð¸Ñ Ð½Ð° Ñинџир" #. res_num (string) #: ../src/gtk_app.cpp:624 msgid "Residue Number" msgstr "Број на оÑтаток" #. res_id (string) #: ../src/gtk_app.cpp:628 msgid "Residue ID" msgstr "ИД на оÑтаток" #. res_state1 (string) #: ../src/gtk_app.cpp:632 msgid "Sec-Str State" msgstr "Sec-Str СоÑтојба" #. res_state2 (string) #: ../src/gtk_app.cpp:636 msgid "Protonation State" msgstr "СоÑтојба на протонација" #: ../src/gtk_app.cpp:639 msgid "Chains" msgstr "Синџири" #: ../src/gtk_app.cpp:652 #, fuzzy, c-format msgid "ERROR : Building Chains menu in project view failed : %s" msgstr "Градењето на gpv менито Синџири е неуÑпешно: %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:668 msgid "Atom Index" msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ð° атом" #. element #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_app.cpp:672 ../src/gtk_oglview_wnd.cpp:112 #: ../src/gtk_oglview_wnd.cpp:120 msgid "Element" msgstr "Елемент" #: ../src/gtk_app.cpp:678 msgid "Locked" msgstr "Заклучено" #: ../src/gtk_app.cpp:681 msgid "Atoms" msgstr "Ðтоми" #: ../src/gtk_app.cpp:694 #, fuzzy, c-format msgid "ERROR : Building Atoms menu in project view failed : %s" msgstr "Градењето на gpv менито Ðтоми е неуÑпешно: %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:710 msgid "Atom Index #1" msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ð° атом #1" #. index2 #: ../src/gtk_app.cpp:714 msgid "Atom Index #2" msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ð° атом #2" #. bondtype #: ../src/gtk_app.cpp:718 msgid "BondType" msgstr "Вид на врÑка" #: ../src/gtk_app.cpp:721 msgid "Bonds" msgstr "Ð’Ñ€Ñки" #: ../src/gtk_app.cpp:734 #, fuzzy, c-format msgid "ERROR : Building Bonds menu in project view failed : %s" msgstr "Градењето на gpv менито Ð’Ñ€Ñки е неуÑпешно: %s" #. protect the model-data during background jobs... #: ../src/gtk_app.cpp:772 msgid "" "Are you sure that you\n" "want to quit the program?" msgstr "" "Дали Ñте Ñигурни дека\n" "Ñакате да ја прекинете програмата?" #: ../src/gtk_app.cpp:839 msgid "gtk_app::sPrintToLog() : message is too long!" msgstr "gtk_app::sPrintToLog(): пораката е предолга!" #: ../src/gtk_app.cpp:898 msgid "window " msgstr "прозорец" #: ../src/gtk_app.cpp:899 ../src/gtk_app.cpp:903 msgid " (detached)" msgstr " (одвоено)" #: ../src/gtk_app.cpp:899 msgid " (attached)" msgstr " (Ñпоено)" #: ../src/gtk_app.cpp:901 msgid "cam " msgstr "камера" #: ../src/gtk_app.cpp:902 msgid "wnd " msgstr "прозорец" #: ../src/gtk_app.cpp:921 ../src/gtk_app.cpp:922 msgid "RC plot view" msgstr "RC поглед на мрежа" #: ../src/gtk_app.cpp:927 ../src/gtk_app.cpp:928 msgid "1D plot view" msgstr "1Д поглед на мрежа" #: ../src/gtk_app.cpp:934 ../src/gtk_app.cpp:935 msgid "2D plot view" msgstr "2Д поглед на мрежа" #: ../src/gtk_app.cpp:941 ../src/gtk_app.cpp:942 msgid "energy-level diagram view" msgstr "поглед Ñо дијаграм за Ñтепен на енергија" #: ../src/gtk_app.cpp:947 ../src/gtk_app.cpp:948 msgid "generic protein chain view" msgstr "поглед Ñо генерички проетеинÑки Ñинџир" #: ../src/gtk_app.cpp:953 ../src/gtk_app.cpp:954 msgid "" msgstr "" #: ../src/gtk_app.cpp:980 ../src/project.cpp:617 msgid "camera " msgstr "камера" #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 ../src/gtk_app.cpp:1291 #: ../src/gtk_app.cpp:1316 msgid "Object " msgstr "Објектот" #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 msgid " is set to current object." msgstr "е поÑтавен на тековниот објект." #: ../src/gtk_app.cpp:1258 ../src/gtk_app.cpp:1324 #, fuzzy msgid "Sorry, this operation is not yet implemented." msgstr "Се извинувам, оваа операција не е применета." #: ../src/gtk_app.cpp:1291 ../src/gtk_app.cpp:1316 msgid " is deleted." msgstr "е избришано." #. if (ci_vector[n1].description... // this is not implemented at the moment... #: ../src/gtk_app.cpp:1348 msgid "chain #" msgstr "Ñинџир #" #: ../src/gtk_app.cpp:1355 msgid " chain)." msgstr " Ñинџир)." #. make the list show the updated information... #: ../src/gtk_app.cpp:1606 #, fuzzy, c-format msgid "Atom locking changed : %s\n" msgstr "Заклучено променето: %s\n" #: ../src/gtk_app.cpp:1606 #, fuzzy msgid "yes" msgstr "кругови" #: ../src/gtk_app.cpp:1606 #, fuzzy msgid "no" msgstr "орбитирај" #: ../src/gtk_app.cpp:1632 #, fuzzy msgid "Conjugated" msgstr "Ñоединет" #: ../src/gtk_app.cpp:1633 #, fuzzy msgid "Single" msgstr "единечна" #: ../src/gtk_app.cpp:1634 #, fuzzy msgid "Double" msgstr "двојна" #: ../src/gtk_app.cpp:1635 #, fuzzy msgid "Triple" msgstr "тројна" #: ../src/gtk_app.cpp:2068 #, fuzzy msgid "Displaying the User's Manual using the following command:" msgstr "" "Обид за покажување на КориÑничкиот прирачник Ñо кориÑтење на Ñледната " "наредба:" #: ../src/gtk_app.cpp:2078 #, fuzzy msgid "Ghemical-" msgstr "Ghemical" #: ../src/gtk_app.cpp:2078 msgid " released on " msgstr "објавено на" #: ../src/gtk_app.cpp:2080 msgid "For more information please visit:" msgstr "За повеќе информации, ве молиме поÑетете:" #: ../src/gtk_app.cpp:2088 msgid "Authors:" msgstr "Ðвтори:" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Attach/Detach This View" msgstr "Спој/Одвој го овој поглед" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Select whether this view is attached or in an independent window" msgstr "Одберете дали овој поглед е Ñпоен или ÑамоÑтоен прозорец" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete View" msgstr "Избриши поглед" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete this view" msgstr "Избриши го овој поглед" #: ../src/gtk_eldview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_eldview_wnd failed : %s" msgstr "Градењето на geldv менито е неуÑпешно: %s" #: ../src/gtk_file_export_dialog.cpp:41 msgid "file_export_dialog : glade_xml_get_widget() failed!!!" msgstr "file_export_dialog: glade_xml_get_widget() неуÑпешно!!!" #: ../src/gtk_file_export_dialog.cpp:52 ../src/gtk_file_import_dialog.cpp:52 msgid "Automatic" msgstr "ÐвтоматÑко" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_export_dialog.cpp:131 msgid "Select a filename for export." msgstr "" #: ../src/gtk_file_import_dialog.cpp:41 msgid "file_import_dialog : glade_xml_get_widget() failed!!!" msgstr "file_import_dialog: glade_xml_get_widget() неуÑпешно!!!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_import_dialog.cpp:133 #, fuzzy msgid "Select a file to import." msgstr "Одбира поединечни атоми" #: ../src/gtk_geomopt_dialog.cpp:41 #, fuzzy msgid "WARNING : geomopt_dialog : glade_xml_get_widget() failed!!!" msgstr "geomopt_dialog: glade_xml_get_widget() неуÑпешно!!!" #: ../src/gtk_gpcview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_gpcview_wnd failed : %s" msgstr "Градењето на ggpcv менито е неуÑпешно: %s" #: ../src/gtk_main.cpp:45 msgid "open a file" msgstr "отвори датотека" #: ../src/gtk_main.cpp:46 msgid "import a file" msgstr "увези датотека" #: ../src/gtk_main.cpp:61 msgid "- a GTK2 molecular modelling program" msgstr "- GTK2 програма за молекулÑко моделирање" #: ../src/gtk_main.cpp:84 #, fuzzy, c-format msgid "OpenGL extension version - %d.%d\n" msgstr "" "\n" "OpenGL верзија на проширување - %d.%d\n" #: ../src/gtk_main.cpp:140 #, fuzzy msgid "Sorry! The file import feature is disabled ; you need to recompile" msgstr "" "жалам! карактериÑтиката за увоз на датотека е иÑклучено; треба да " "рекомпајлирате" #: ../src/gtk_main.cpp:141 msgid "libghemical with --enable-openbabel option in order to fix this." msgstr "libghemical Ñо --вклучи-openbabel опција за да го поправите ова." #: ../src/gtk_moldyn_dialog.cpp:42 #, fuzzy msgid "WARNING : moldyn_dialog : glade_xml_get_widget() failed!!!" msgstr "moldyn_dialog: glade_xml_get_widget() е неуÑпешно!!!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_moldyn_dialog.cpp:232 msgid "Select a Trajectory File." msgstr "Одберете датотека на траекторија." #: ../src/gtk_oglview_wnd.cpp:40 msgid "Open a file" msgstr "Отвори датотека" #: ../src/gtk_oglview_wnd.cpp:42 #, fuzzy msgid "Import..." msgstr "_Увези..." #: ../src/gtk_oglview_wnd.cpp:42 #, fuzzy msgid "Import other file formats using libopenbabel" msgstr "Увезува други формати на датотеки преку OpenBabel" #: ../src/gtk_oglview_wnd.cpp:44 msgid "Save a file" msgstr "Зачувува датотека" #: ../src/gtk_oglview_wnd.cpp:46 #, fuzzy msgid "Export" msgstr "_Извези" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export other file formats using OpenBabel" msgstr "Извезува други формати на датотеки преку OpenBabel" #: ../src/gtk_oglview_wnd.cpp:49 msgid "Close the file" msgstr "Затвори ја датотеката" #: ../src/gtk_oglview_wnd.cpp:51 #, fuzzy msgid "Extra Tools" msgstr "_Дополнителни алатки" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:53 #, fuzzy msgid "Import PDB" msgstr "_Увези PDB" #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import a PDB file" msgstr "Увези PDB-датотека" #. { "FileExtra2", NULL, N_("Import ???"), NULL, N_("Import a ??? file"), (GCallback) gtk_project::popup_FileExtra2 }, #: ../src/gtk_oglview_wnd.cpp:56 #, fuzzy msgid "Select" msgstr "_Одбери" #. ^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:58 #, fuzzy msgid "Select All" msgstr "Одбери _Ñè" #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select all atoms" msgstr "Ги одбира Ñите атоми" #: ../src/gtk_oglview_wnd.cpp:59 #, fuzzy msgid "Select None" msgstr "Одбери _Ðишто" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select nothing" msgstr "Ðе одбира ништо" #: ../src/gtk_oglview_wnd.cpp:60 #, fuzzy msgid "Invert Selection" msgstr "_Преврти одбрано" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert the selection" msgstr "Го превртува одбраното" #: ../src/gtk_oglview_wnd.cpp:61 #, fuzzy msgid "Hide Selected" msgstr "_Скриј одбрано" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide all selected atoms" msgstr "Ги Ñкрива Ñите одбрани атоми" #: ../src/gtk_oglview_wnd.cpp:62 #, fuzzy msgid "Show Selected" msgstr "_Покажи одбрано" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show all selected atoms" msgstr "Ги покажува Ñите одбрани атоми" #: ../src/gtk_oglview_wnd.cpp:63 #, fuzzy msgid "Lock Selected" msgstr "Заклучи одбрано" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock all selected atoms" msgstr "Ги заклучува Ñите одбрани атоми" #: ../src/gtk_oglview_wnd.cpp:64 #, fuzzy msgid "Unlock Selected" msgstr "_Отклучи одбрано" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock all selected atoms" msgstr "Ги отклучува Ñите одбрани атоми" #: ../src/gtk_oglview_wnd.cpp:65 #, fuzzy msgid "Delete Selected" msgstr "_Избриши го одбраното" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete all selected atoms" msgstr "Избриши ги Ñите одбрани атоми" #: ../src/gtk_oglview_wnd.cpp:67 #, fuzzy msgid "Selection Mode" msgstr "_Одбирачки мод" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the setting from project is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:70 #, fuzzy msgid "Select Atoms" msgstr "Одбери _Ðтоми" #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select single atoms" msgstr "Одбира поединечни атоми" #: ../src/gtk_oglview_wnd.cpp:71 #, fuzzy msgid "Select Residues" msgstr "Одбери _ОÑтатоци" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select residues" msgstr "Ги одбира оÑтатоците" #: ../src/gtk_oglview_wnd.cpp:72 #, fuzzy msgid "Select Chains" msgstr "Одбери _Синџири" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select chains" msgstr "Ги одбира Ñинџирите" #: ../src/gtk_oglview_wnd.cpp:73 #, fuzzy msgid "Select Molecules" msgstr "Одбери _Молекули" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select molecules" msgstr "Ги одбира молекулите" #: ../src/gtk_oglview_wnd.cpp:75 #, fuzzy msgid "Render" msgstr "_Изведи" #. ^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:78 msgid "Quick Update Mode" msgstr "Брз ажурирачки мод" #: ../src/gtk_oglview_wnd.cpp:78 msgid "" "Quick Update Mode switches into Wireframe rendering mode when doing " "interactive work" msgstr "" "Брзиот ажурирачки мод Ñе префрлува во модот Wireframe за изведување кога има " "интерактивна работа" #: ../src/gtk_oglview_wnd.cpp:80 #, fuzzy msgid "Views" msgstr "_Погледи" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete This View" msgstr "Избриши го овој поглед" #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete this graphics view" msgstr "Избриши го овој графички поглед" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a CRD-set (experimental)" msgstr "Зачувај CRD-група (екÑперимантално)" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a coordinate set" msgstr "Зачувај група Ñо координати" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose CRD-sets (experimental)" msgstr "Ðаправи преÑеци на CRD-групи (екÑпериментално)" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose coordinate sets" msgstr "Ðаправи преÑеци на групите Ñо координати" #: ../src/gtk_oglview_wnd.cpp:86 #, fuzzy msgid "Create" msgstr "_Креирај" #. ^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:88 msgid "New Window" msgstr "Ðов прозорец" #: ../src/gtk_oglview_wnd.cpp:88 msgid "Create a new view using the current camera" msgstr "Креирај нов поглед Ñо кориÑтење на тековната камера" #: ../src/gtk_oglview_wnd.cpp:89 msgid "New Camera" msgstr "Ðова камера" #: ../src/gtk_oglview_wnd.cpp:89 msgid "Create a new view using a new camera" msgstr "Креира нов поглед Ñо оваа камера" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Energy-level Diagram" msgstr "Дијаграм на Ñтепен на енергија" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Create a new energy-level diagram view" msgstr "Креира нов поглед Ñо дијаграм Ñо Ñтепен на енергија" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Secondary Structure Constraints" msgstr "ВтороÑтепени Ñтруктурни ограничувања" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Create a new secondary structure constraints view" msgstr "Креира нов поглед Ñо второÑтепени Ñтруктурни ограничувања" #: ../src/gtk_oglview_wnd.cpp:93 #, fuzzy msgid "Lights" msgstr "_Светилки" #. ^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create New Light" msgstr "Креирај Ðова Ñветилка" #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create a new light object" msgstr "Креира нов објект Ñо Ñветилка" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:97 msgid "Enable Local Lights" msgstr "Вклучи Локални Ñветилки" #: ../src/gtk_oglview_wnd.cpp:97 msgid "Switch on/off the local light objects" msgstr "Ги вклучува/иÑклучува локалните објекти Ñо Ñветилки" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Enable Global Lights" msgstr "Вклучи Општи Ñветилки" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Switch on/off the global light objects" msgstr "Ги вклучува/иÑклучува објектите Ñо општи Ñветилки" #: ../src/gtk_oglview_wnd.cpp:100 #, fuzzy msgid "Render Mode" msgstr "_Мод за изведување" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:103 msgid "Ball & Stick" msgstr "Топче и Ñтапче" #: ../src/gtk_oglview_wnd.cpp:103 msgid "Display atoms and bonds using Ball & Stick mode" msgstr "Ги прикажува атомите и врÑките преку модот Топче и Ñтапче" #: ../src/gtk_oglview_wnd.cpp:104 msgid "van der Waals" msgstr "Ван дер ВалÑ" #: ../src/gtk_oglview_wnd.cpp:104 msgid "Display atoms and bonds using van der Waals mode" msgstr "Ги прикажува атомите и врÑките преку модот Ван дер ВалÑ" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Cylinders" msgstr "Цилиндри" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Display atoms and bonds using Cylinders mode" msgstr "Ги прикажува атомите и врÑките преку модот Цилиндри" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Wireframe" msgstr "Wireframe" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Display atoms and bonds using Wireframe mode" msgstr "Ги прикажува атомите и врÑките преку модот Wireframe" #: ../src/gtk_oglview_wnd.cpp:107 ../src/gtk_oglview_wnd.cpp:128 msgid "Nothing" msgstr "Ðишто" #: ../src/gtk_oglview_wnd.cpp:107 msgid "Do not display atoms and bonds" msgstr "Ðе прикажува атоми и врÑки" #: ../src/gtk_oglview_wnd.cpp:109 #, fuzzy msgid "Color Mode" msgstr "_Мод Ñо боја" #: ../src/gtk_oglview_wnd.cpp:112 msgid "Color atoms and bonds by element" msgstr "Ги бои атомите и врÑките Ñпоред елементот" #: ../src/gtk_oglview_wnd.cpp:113 ../src/gtk_oglview_wnd.cpp:127 msgid "Sec-Struct" msgstr "Сек-Структура" #: ../src/gtk_oglview_wnd.cpp:113 msgid "Color atoms and bonds by secondary-structure state" msgstr "Ги бои атомите и врÑките Ñпоред ÑоÑтојбата на Ñекундарната ÑоÑтојба" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Hydrophobicity" msgstr "ХидрофобичноÑÑ‚" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Color atoms and bonds by hydrophobicity (experimental)" msgstr "Ги бои атомите и врÑките Ñпоред хидрофобијата (екÑпериментално)" #: ../src/gtk_oglview_wnd.cpp:116 #, fuzzy msgid "Label Mode" msgstr "_Означувачки мод" #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:119 msgid "Index" msgstr "ИндекÑ" #: ../src/gtk_oglview_wnd.cpp:119 msgid "Label atoms by atom index" msgstr "Ги означува атомите Ñпоред атомÑкиот индекÑ" #: ../src/gtk_oglview_wnd.cpp:120 msgid "Label atoms by element" msgstr "Ги означува атомите Ñпоред елементите" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Formal Charge" msgstr "Формално полнење" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Label atoms by formal charge" msgstr "Ги означува атомите Ñпоред формалното полнење" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Partial Charge" msgstr "Делумно полнење" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Label atoms by partial charge" msgstr "Ги означува атомите Ñпоред делумното полнење" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Atom Type" msgstr "Вид на атом" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Label atoms by atom type" msgstr "Ги означува атомите Ñпоред видот на атомот" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Builder ID" msgstr "ИД на Градител" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Label atoms by sequence builder ID" msgstr "Ги означува атомите Ñпоред ИД на градителот низата" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Bond Type" msgstr "Вид на врÑка" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Label bonds by bond type" msgstr "Ги означува врÑките Ñпоред видот на врÑката" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Residue" msgstr "ОÑтаток" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Label by residue" msgstr "Го означува оÑтатокот" #: ../src/gtk_oglview_wnd.cpp:127 msgid "Label by secondary structure state" msgstr "Означи по ÑоÑтојбата на Ñекундарната Ñтруктура" #: ../src/gtk_oglview_wnd.cpp:128 msgid "Do not show labels" msgstr "Ðе покажувај ознаки" #: ../src/gtk_oglview_wnd.cpp:130 #, fuzzy msgid "Projection" msgstr "_Проекција" #. ^^^^^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:133 msgid "Orthographic" msgstr "ОртографÑко" #: ../src/gtk_oglview_wnd.cpp:133 msgid "Use orthographic projection" msgstr "КориÑти ортографÑка проекција" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Perspective" msgstr "ПерÑпектива" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Use perspective projection" msgstr "КориÑти перÑпективна проекција" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #. todo : add more color combinations ; red/green red/blue ; any others needed??? #: ../src/gtk_oglview_wnd.cpp:137 msgid "Red-Blue Stereo" msgstr "Црвено-Ñино Ñтерео" #: ../src/gtk_oglview_wnd.cpp:137 msgid "Use red-blue stereo mode" msgstr "Го кориÑти црвено-Ñиниот Ñтерео мод" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Relaxed-Eye Stereo" msgstr "Relaxed-Eye Ñтерео" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Use relaxed-eye stereo mode" msgstr "Го кориÑти relaxed-eye Ñтерео модот" #: ../src/gtk_oglview_wnd.cpp:140 #, fuzzy msgid "Objects" msgstr "_Објекти" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:142 msgid "Ribbon" msgstr "Лента" #: ../src/gtk_oglview_wnd.cpp:142 msgid "Create a Ribbon object for displaying peptides/proteins" msgstr "Креира Објект Ñо ленти за приказ на пептиди/протеини" #: ../src/gtk_oglview_wnd.cpp:143 msgid "ESP-plane" msgstr "ESP-рамнина" #: ../src/gtk_oglview_wnd.cpp:143 msgid "Create an ESP-plane object" msgstr "Креира објект Ñо ESP-рамнина" #: ../src/gtk_oglview_wnd.cpp:144 msgid "volume-rendered ESP" msgstr "изработен Ñо волумен ESP" #: ../src/gtk_oglview_wnd.cpp:144 msgid "Create a volume-rendered ESP object" msgstr "Креирај volume-rendered ESP-објект" #: ../src/gtk_oglview_wnd.cpp:145 msgid "ESP-surface" msgstr "ESP-површина" #: ../src/gtk_oglview_wnd.cpp:145 msgid "Create an ESP-surface object" msgstr "Креира објект Ñо ESP-површина" #: ../src/gtk_oglview_wnd.cpp:146 msgid "ESP-colored vdW-surface" msgstr "ESP-обоена vdW-поврина" #: ../src/gtk_oglview_wnd.cpp:146 msgid "Create an ESP-colored vdW-surface object" msgstr "Креира објект Ñо ESP-обоена vdW-површина" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Electron density plane" msgstr "Рамнина Ñо електронÑка гуÑтина" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Create an Electron density plane object" msgstr "Креира објект Ñо рамнина Ñо електронÑка гуÑтина" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Electron density surface" msgstr "Површина Ñо електронÑка гуÑтина" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Create an Electron density surface object" msgstr "Креира објект Ñо површина Ñо електронÑка гуÑтина" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Molecular orbital plane" msgstr "МолекулÑка орбитирачка рамнина" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Create a Molecular orbital plane object" msgstr "Креира објект Ñо МолекулÑка орбитирачка рамнина" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Molecular orbital volume" msgstr "МолекулÑка орбитирачка големина" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Create a Molecular orbital volume object" msgstr "Креира објект Ñо МолекулÑка орбитирачка големина" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Molecular orbital surface" msgstr "МолекулÑка орбитирачка површина" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Create a Molecular orbital surface object" msgstr "Креира објект Ñо МолекулÑка орбитирачка површина" #: ../src/gtk_oglview_wnd.cpp:152 msgid "MO-density plane" msgstr "MO-рамнина Ñо гуÑтина" #: ../src/gtk_oglview_wnd.cpp:152 msgid "Create an MO-density plane object" msgstr "Креира објект Ñо МО-рамнина Ñо гуÑтина" #: ../src/gtk_oglview_wnd.cpp:153 msgid "MO-density volume" msgstr "МО-големина на гуÑтина" #: ../src/gtk_oglview_wnd.cpp:153 msgid "Create an MO-density volume object" msgstr "Креира објект Ñо МО-големина на гуÑтина" #: ../src/gtk_oglview_wnd.cpp:154 msgid "MO-density surface" msgstr "МО-површина Ñо гуÑтина" #: ../src/gtk_oglview_wnd.cpp:154 msgid "Create an MO-density surface object" msgstr "Креира објект Ñо МО-површина Ñо гуÑтина" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete Current Object" msgstr "Избриши тековен објект" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete the currently selected object" msgstr "Го брише тековно одбраниот објект" #: ../src/gtk_oglview_wnd.cpp:157 #, fuzzy msgid "Compute" msgstr "_ПреÑметај" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:159 msgid "Setup..." msgstr "ПоÑтави..." #: ../src/gtk_oglview_wnd.cpp:160 msgid "Energy" msgstr "Енергија" #: ../src/gtk_oglview_wnd.cpp:161 msgid "Geometry Optimization..." msgstr "ГеометриÑка оптимизација" #: ../src/gtk_oglview_wnd.cpp:162 msgid "Molecular Dynamics..." msgstr "Молекуларна динамика..." #: ../src/gtk_oglview_wnd.cpp:163 msgid "Random Conformational Search..." msgstr "Случајно оформувачко пребарување..." #: ../src/gtk_oglview_wnd.cpp:164 msgid "Systematic Conformational Search..." msgstr "СиÑтематÑко оформувачко пребарување..." #: ../src/gtk_oglview_wnd.cpp:165 msgid "Monte Carlo Search..." msgstr "Пребарување Монте Карло..." #: ../src/gtk_oglview_wnd.cpp:166 msgid "Plot Energy vs. 1 Torsion Angle..." msgstr "Енергија на мрежа наÑпроти еден агол на Ñвиткување" #: ../src/gtk_oglview_wnd.cpp:167 msgid "Plot Energy vs. 2 Torsion Angles..." msgstr "Енергија на мрежа наÑпроти втор агол на Ñвиткување" #: ../src/gtk_oglview_wnd.cpp:168 msgid "Population Analysis (ESP)" msgstr "Ðнализа на популација (ESP)" #: ../src/gtk_oglview_wnd.cpp:169 msgid "Transition State Search..." msgstr "Преодно пребарување на ÑоÑтојба..." #: ../src/gtk_oglview_wnd.cpp:170 msgid "Stationary State Search..." msgstr "ФикÑирано пребарување на ÑоÑтојба..." #: ../src/gtk_oglview_wnd.cpp:171 msgid "Formula" msgstr "Формула" #: ../src/gtk_oglview_wnd.cpp:176 msgid "MD Trajectory Viewer..." msgstr "Прегледник на траекторија на МД..." #: ../src/gtk_oglview_wnd.cpp:177 msgid "Set Current Orbital" msgstr "ПоÑтави тековно орбитирачко" #: ../src/gtk_oglview_wnd.cpp:179 #, fuzzy msgid "Build" msgstr "_Изгради" #. ^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:181 msgid "Solvate Box..." msgstr "Поле на раÑтвор..." #: ../src/gtk_oglview_wnd.cpp:182 msgid "Solvate Sphere..." msgstr "Сфера на раÑтвор..." #: ../src/gtk_oglview_wnd.cpp:183 msgid "Sequence Builder (amino)..." msgstr "Градител на низа (амино)..." #: ../src/gtk_oglview_wnd.cpp:184 msgid "Sequence Builder (nucleic)..." msgstr "Градител на низа (нуклеинÑка)..." #: ../src/gtk_oglview_wnd.cpp:185 msgid "Center" msgstr "Центар" #: ../src/gtk_oglview_wnd.cpp:186 msgid "Zap All" msgstr "Бриши Ñè" #: ../src/gtk_oglview_wnd.cpp:188 #, fuzzy msgid "Hydrogens" msgstr "_Водороди" #. ^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:190 msgid "Add" msgstr "Додади" #: ../src/gtk_oglview_wnd.cpp:191 msgid "Remove" msgstr "ОтÑтрани" #: ../src/gtk_oglview_wnd.cpp:193 msgid "Enter a Command..." msgstr "ВнеÑете наредба..." #: ../src/gtk_oglview_wnd.cpp:380 #, c-format msgid "ERROR : Building popup-menu for gtk_oglview_wnd failed : %s" msgstr "" #: ../src/gtk_oglview_wnd.cpp:630 msgid "sets 0 <-> " msgstr "групи 0 <-> " #: ../src/gtk_oglview_wnd.cpp:630 msgid " RMS = " msgstr " RMS = " #: ../src/gtk_oglview_wnd.cpp:636 msgid "average RMS = " msgstr "проÑечно RMS = " #: ../src/gtk_p1dview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_p1dview_wnd failed : %s" msgstr "Градењето на gp1dv менито е неуÑпешно: %s" #: ../src/gtk_p2dview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_p2dview_wnd failed : %s" msgstr "Градењето на gp2dv менито е неуÑпешно: %s" #: ../src/gtk_progress_dialog.cpp:39 #, fuzzy msgid "WARNING : progress_dialog : glade_xml_get_widget() failed!!!" msgstr "progress_dialog: glade_xml_get_widget() неуÑпешно!!!" #: ../src/gtk_project.cpp:81 msgid "A new project created.\n" msgstr "Ðов проект е креиран.\n" #: ../src/gtk_project.cpp:184 msgid "Thread creation failed : GeomOpt" msgstr "Креирањето на нишка е неуÑпешно: GeomOpt" #: ../src/gtk_project.cpp:199 ../src/res_gtk/gtk_geomopt_dialog.glade.h:2 msgid "Geometry Optimization" msgstr "ГеометриÑка оптимизација" #: ../src/gtk_project.cpp:234 msgid "Thread creation failed : MolDyn" msgstr "Креирањето на нишка е неуÑпешно: MolDyn" #: ../src/gtk_project.cpp:249 ../src/res_gtk/gtk_moldyn_dialog.glade.h:5 msgid "Molecular Dynamics" msgstr "Молекуларна динамика" #: ../src/gtk_project.cpp:273 msgid "Thread creation failed : RandomSearch" msgstr "Креирањето на нишка е неуÑпешно: RandomSearch" #: ../src/gtk_project.cpp:288 msgid "Random Search" msgstr "Случајно пребарување" #: ../src/gtk_project.cpp:776 ../src/gtk_project.cpp:794 #: ../src/gtk_project.cpp:812 ../src/gtk_project.cpp:830 #: ../src/gtk_project.cpp:848 ../src/gtk_project.cpp:866 #: ../src/gtk_project.cpp:884 ../src/gtk_project.cpp:902 #: ../src/gtk_project.cpp:920 ../src/gtk_project.cpp:938 #: ../src/gtk_project.cpp:956 ../src/gtk_project.cpp:974 msgid "Please calculate energy first!" msgstr "Ве молиме, прво преÑметајте ја енергијата!" #: ../src/gtk_project.cpp:1075 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D with atom indices that define the " "torsion.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "ВЕ МОЛИМЕ, ЗÐБЕЛЕЖЕТЕ!\n" "Ðаредбената низа, што е прикажана во дијалогот Ñо текÑÑ‚ е нецелоÑна.\n" "Треба да ги замените буквите A-D Ñо атомÑките индекÑи што го дефинираат " "Ñвиткувањето.\n" "\n" "ИСТО ТÐКÐ, ЗÐБЕЛЕЖЕТЕ: Ñтруктурното подобрување е Ñекогаш направено Ñо " "кориÑтење на молекуларната механика (optsteps)." #: ../src/gtk_project.cpp:1088 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D and I-L with atom indices that define the " "torsions.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "ВЕ МОЛИМЕ, ЗÐБЕЛЕЖЕТЕ!\n" "Ðаредбената низа, што е прикажана во дијалогот Ñо текÑÑ‚ е нецелоÑна.\n" "Треба да ги замените буквите A-D и I-L Ñо атомÑките индекÑи што го " "дефинираат Ñвиткувањето.\n" "\n" "ИСТО ТÐКÐ, ЗÐБЕЛЕЖЕТЕ: Ñтруктурното подобрување е Ñекогаш направено Ñо " "кориÑтење на молекуларната механика (optsteps)." #: ../src/gtk_project.cpp:1162 msgid "ERROR" msgstr "ГРЕШКÐ" #: ../src/gtk_project.cpp:1173 #, fuzzy msgid "Trajectory file already open?" msgstr "Траекторијата е веќе отворена?!?!?!" #: ../src/gtk_project.cpp:1182 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letter X with the orbital index that will become the " "current orbital." msgstr "" "ВЕ МОЛИМЕ, ЗÐБЕЛЕЖЕТЕ!\n" "Ðаредбената низа, што е прикажана во дијалогот Ñо текÑÑ‚ е нецелоÑна.\n" "Треба да ја замените буквата X Ñо орбиталниот Ð¸Ð½Ð´ÐµÐºÑ ÑˆÑ‚Ð¾ ќе Ñтане тековната " "орбита." #: ../src/gtk_project.cpp:1237 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AAA with the sequence to be built." msgstr "" "ВЕ МОЛИМЕ, ЗÐБЕЛЕЖЕТЕ!\n" "Ðаредбената низа, што е прикажана во дијалогот Ñо текÑÑ‚ е нецелоÑна.\n" "Треба да ја замените зададената низа ÐÐÐ Ñо низата што треба да Ñе изгради." #: ../src/gtk_project.cpp:1250 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AGTCaguc with the sequence to be " "built." msgstr "" "ВЕ МОЛИМЕ, ЗÐБЕЛЕЖЕТЕ!\n" "Ðаредбената низа, што е прикажана во дијалогот Ñо текÑÑ‚ е нецелоÑна.\n" "Треба да ја замените зададената низа AGTCaguc Ñо низата Ñ‚ треба да Ñе " "изгради." #: ../src/gtk_project.cpp:1287 msgid "Are you sure you want to clear everything?" msgstr "Дали Ñте Ñигурни дека Ñакате да иÑчиÑтите Ñè?" #: ../src/gtk_rcpview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_rcpview_wnd failed : %s" msgstr "Градењето на grcpv менито е неуÑпешно: %s" #: ../src/gtk_setup_dialog.cpp:49 #, fuzzy msgid "WARNING : setup_dialog : glade_xml_get_widget() failed!!!" msgstr "stereo_dialog: glade_xml_get_widget() неуÑпешно!!!" #: ../src/gtk_setup_dialog.cpp:358 msgid "Changed the Setup for calculations " msgstr "Променето е ПоÑтавувањето за преÑметувањата" #: ../src/gtk_setup_dialog.cpp:359 ../src/project.cpp:4038 msgid "(setup = " msgstr "(поÑтавка = " #: ../src/gtk_setup_dialog.cpp:375 ../src/project.cpp:4039 msgid ", engine = " msgstr ", машина = " #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:49 msgid "Set Current Element" msgstr "ПоÑтави го Тековниот елемент" #: ../src/gtk_simple_dialogs.cpp:113 #, fuzzy msgid "Current element is now " msgstr "тековниот елемент е Ñега" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:133 msgid "Set Current Bondtype" msgstr "ПоÑтави го Тековниот вид на врÑка" #: ../src/gtk_simple_dialogs.cpp:184 #, fuzzy msgid "Current bondtype is now " msgstr "тековниот вид на врÑка е Ñега" #: ../src/gtk_simple_dialogs.cpp:449 msgid "" "This alternative PDB reader is designed to remove any gaps that might\n" "exist in the structure data. Therefore the sequence might be altered!" msgstr "" "Овој дополнителен PDB-читач е дизајниран за да ги отÑтрани Ñите дупки што " "можат\n" "да поÑтојат во Ñтруктурните податоци. Затоа, низата може да биде променета!" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:482 msgid "Command Interpreter" msgstr "Интерпретер на наредба" #: ../src/gtk_simple_dialogs.cpp:503 msgid "Execute" msgstr "" #: ../src/gtk_simple_dialogs.cpp:506 msgid "Cancel" msgstr "Откажи" #: ../src/gtk_stereo_dialog.cpp:37 #, fuzzy msgid "WARNING : stereo_dialog : glade_xml_get_widget() failed!!!" msgstr "stereo_dialog: glade_xml_get_widget() неуÑпешно!!!" #: ../src/gtk_trajview_dialog.cpp:39 #, fuzzy msgid "WARNING : trajview_dialog : glade_xml_get_widget() failed!!!" msgstr "trajview_dialog: glade_xml_get_widget() неуÑпешно!!!" #: ../src/gtk_trajview_dialog.cpp:82 ../src/gtk_trajview_dialog.cpp:102 #: ../src/gtk_trajview_dialog.cpp:136 ../src/gtk_trajview_dialog.cpp:151 msgid "frame = " msgstr "рамка =" #: ../src/gtk_wnd.cpp:53 #, c-format msgid "*** Cannot find the double-buffered visual.\n" msgstr "*** Ðе може да најде двојно-бафериран видлив.\n" #: ../src/gtk_wnd.cpp:54 #, c-format msgid "*** Trying single-buffered visual.\n" msgstr "*** Обид за единечен-бафериран видлив.\n" #: ../src/gtk_wnd.cpp:61 #, c-format msgid "*** No appropriate OpenGL-capable visual found.\n" msgstr "*** Ðема пронајдено Ñоодветен ÑпоÑобен за OpenGL видлив.\n" #: ../src/gtk_wnd.cpp:66 #, c-format msgid "" "\n" "OpenGL visual configurations :\n" "\n" msgstr "" "\n" "OpenGL конфигурации за видливо:\n" "\n" #: ../src/ogl_surface.cpp:91 msgid "evaluating grid" msgstr "оценувачки ÑиÑтем" #: ../src/ogl_surface.cpp:106 msgid " done\n" msgstr " направено\n" #: ../src/ogl_surface.cpp:112 msgid "interpolating in " msgstr "вметнување во" #: ../src/ogl_surface.cpp:131 msgid "-direction... " msgstr "-наÑока... " #: ../src/ogl_surface.cpp:138 msgid " points, " msgstr " точки, " #: ../src/ogl_surface.cpp:138 msgid " cycles" msgstr "кругови" #: ../src/ogl_surface.cpp:155 msgid "generating image... " msgstr "генерирање Ñлика..." #: ../src/ogl_surface.cpp:185 msgid "color_surface problem #1" msgstr "боја на_површина проблем бр. 1" #: ../src/ogl_surface.cpp:235 msgid "color_surface problem #2" msgstr "боја на_површина проблем бр. 2" #: ../src/ogl_surface.cpp:335 msgid " lines, " msgstr "линии," #: ../src/ogl_surface.cpp:335 msgid " triangles." msgstr "триаголници." #: ../src/p2dview_wcl.cpp:182 msgid "now scaling the colours to range " msgstr "Ñега Ñе размеруваат боите за вклучување" #: ../src/p2dview_wcl.cpp:182 msgid " kJ/mol" msgstr " kJ/mol" #: ../src/pangofont_wcl.cpp:75 #, fuzzy, c-format msgid "*** ERROR : Can't load font '%s'\n" msgstr "*** Ðе може да Ñе вчита фонтот „%s“\n" #: ../src/project.cpp:210 msgid "untitled" msgstr "неименувано" #: ../src/project.cpp:322 msgid "Cannot import that file type." msgstr "Ðе може да Ñе увезе тој вид на датотека." #: ../src/project.cpp:367 msgid "Cannot export that file type." msgstr "Ðе може да Ñе извезе тој вид на датотека." #: ../src/project.cpp:409 msgid "Hydrogens added." msgstr "Водородите Ñе додадени." #: ../src/project.cpp:419 msgid "Hydrogens removed." msgstr "Водородите Ñе отÑтранети." #: ../src/project.cpp:617 msgid " window " msgstr "прозорец" #: ../src/project.cpp:663 msgid "" "This is the last graphics view for\n" "this project - can't close it." msgstr "" "Ова е поÑледниот графички поглед за\n" "овој проект - не може да Ñе затвори." #: ../src/project.cpp:877 msgid "Processing Command : " msgstr "Обработување на наредба:" #: ../src/project.cpp:887 msgid "> AVAILABLE COMMANDS:" msgstr "> ДОСТÐПÐИ ÐÐРЕДБИ:" #. use alphabetical order??? #: ../src/project.cpp:889 msgid "" "> add light (local/global) (directional/spotlight) -- add a new light object." msgstr "" "> додади Ñветлина (локално/општо) (фикÑирано/рефлектор) -- додади нов " "Ñветлечки објект." #: ../src/project.cpp:891 msgid "" "> add plane -- " "add a plane object." msgstr "" "> додади рамнина " "-- додади објект на рамнина." #: ../src/project.cpp:892 ../src/project.cpp:902 msgid "> where: = value function : esp vdws eldens mo mod unity" msgstr "> каде што: = вредноÑна функција: esp vdws eldens mo mod unity" #: ../src/project.cpp:893 ../src/project.cpp:903 ../src/project.cpp:913 msgid "> = colour function : red green blue rb1 rb2" msgstr "> = функција на боја: црвена зелена Ñина rb1 rb2" #: ../src/project.cpp:894 ../src/project.cpp:904 ../src/project.cpp:915 #: ../src/project.cpp:930 msgid "> = scaling value for calculating the colours" msgstr "" "> = размерување на вредноÑÑ‚ за преÑметување на боите" #: ../src/project.cpp:895 ../src/project.cpp:905 ../src/project.cpp:916 #: ../src/project.cpp:931 msgid "> = scaling offset for calculating the colours" msgstr "> = размерување на офÑет за преÑметување на боите" #: ../src/project.cpp:896 ../src/project.cpp:906 ../src/project.cpp:917 #: ../src/project.cpp:932 msgid "> = dimension of the plane object (in nm units)" msgstr "> = големнина на објектот на рамнината (во nm единици)" #: ../src/project.cpp:897 ../src/project.cpp:907 ../src/project.cpp:918 #: ../src/project.cpp:933 msgid "> = resolution of the plane object" msgstr "> = резолуција на објектот на рамнината" #: ../src/project.cpp:898 ../src/project.cpp:920 ../src/project.cpp:935 msgid "> = 0 or 1 telling if the object is transparent" msgstr "> = 0 или 1 кажува ако објектот е провиден" #: ../src/project.cpp:899 ../src/project.cpp:908 ../src/project.cpp:921 #: ../src/project.cpp:936 msgid "> = transparency alpha value" msgstr "> = провидноÑÑ‚ алфа-вредноÑÑ‚" #: ../src/project.cpp:901 msgid "" "> add volrend -- add " "a volume-rendering object." msgstr "" "> add volrend -- " "додади објект за изведување големина." #: ../src/project.cpp:910 msgid "" "> add surf1 " " -- add a single surface object." msgstr "" "> add surf1 " " -- додади единечен површинÑки објект." #: ../src/project.cpp:911 ../src/project.cpp:924 msgid "" "> where: = value function for calculating the surface : esp vdws " "eldens mo mod unity" msgstr "" "> каде што: = вредноÑна функција за преÑметување на површината: esp " "vdws eldens mo mod unity" #: ../src/project.cpp:912 ../src/project.cpp:925 msgid "" "> = value function for calculating the colours : esp vdws " "eldens mo mod unity" msgstr "" "> = вредноÑна функција за преÑметување на боите: esp vdws " "eldens mo mod unity" #: ../src/project.cpp:914 msgid "> = scaling value for calculating the surface" msgstr "" "> = размерување вредноÑÑ‚ за преÑметување на површината" #: ../src/project.cpp:919 ../src/project.cpp:934 msgid "> = 0 or 1 telling if the object is solid" msgstr "> = 0 или 1 кажува ако објектот е цврÑÑ‚" #: ../src/project.cpp:923 msgid "" "> add surf2 -- add a pair of surface objects." msgstr "" "> add surf2 -- додади пар од површинÑки " "објекти." #: ../src/project.cpp:926 msgid "" "> = colour function for 1st surface : red green blue rb1 rb2" msgstr "" "> = функција на боја за прва површина: црвена зелена Ñина rb1 " "rb2" #: ../src/project.cpp:927 msgid "" "> = colour function for 2nd surface : red green blue rb1 rb2" msgstr "" "> = функција на боја за втора површина: црвена зелена цијан " "rb1 rb2" #: ../src/project.cpp:928 msgid "" "> = scaling value for calculating the surface for 1st " "surface" msgstr "" "> = размерување вредноÑÑ‚ за преÑметување на површината за " "прва површина" #: ../src/project.cpp:929 msgid "" "> = scaling value for calculating the surface for 2nd " "surface" msgstr "" "> = размерување вредноÑÑ‚ за преÑметување на површината за " "втора површина" #: ../src/project.cpp:938 msgid "> help -- print all available commands in command strings." msgstr "> help -- печати ги Ñите доÑтапни наредби на наредбените низи." #: ../src/project.cpp:940 msgid "> energy -- calculate a single-point energy." msgstr "> energy -- преÑметај енергија на единечна точка." #: ../src/project.cpp:941 msgid "> geom_opt -- do a geometry optimization run using default options." msgstr "> geom_opt -- извршува геометриÑка оптимизација Ñо зададени опции." #: ../src/project.cpp:942 msgid "> mol_dyn -- do a molecular dynamics run using default options." msgstr "> mol_dyn -- извршува молекуларна динамика Ñо зададени опции." #: ../src/project.cpp:944 msgid "" "> random_search -- perform a random conformational " "search." msgstr "" "> random_search -- изведува Ñлучајно оформувачко " "пребарување." #: ../src/project.cpp:945 msgid "" "> systematic_search -- perform a systematic " "conformational search." msgstr "" "> systematic_search -- изведува ÑиÑтематÑко " "оформувачко пребарување." #: ../src/project.cpp:946 msgid "" "> montecarlo_search -- perform a " "MonteCarlo search." msgstr "" "> montecarlo_search -- изведува " "Монте Карло пребарување." #: ../src/project.cpp:948 msgid "" "> make_plot1 A B C D
-- create a 1D " "energy vs. torsion plot." msgstr "" "> make_plot1 A B C D
-- креира 1Д " "енергија наÑпроти мрежа на Ñвиткување." #: ../src/project.cpp:949 msgid "" "> make_plot2 A B C D
I J K L
" " -- create a 2D energy vs. torsions plot." msgstr "" "> make_plot2 A B C D
I J K L
" " -- креира 2Д енергија наÑпроти мрежа на Ñвиткување." #: ../src/project.cpp:951 msgid "" "> population_analysis_ESP -- determine atomic charges using an ESP fit (for " "QM methods only)." msgstr "" "> population_analysis_ESP -- ги утврдува атомÑките полнења Ñо кориÑтење на " "ESP ÑоглаÑување (Ñамо за методите на КМ)." #: ../src/project.cpp:953 msgid "" "> transition_state_search -- perform a transition " "state search (for QM methods only)." msgstr "" "> transition_state_search -- пребарувај по преодни " "ÑоÑтојба (Ñамо за методите на КМ)." #: ../src/project.cpp:954 msgid "" "> stationary_state_search -- perform a search for a structure with " "no forces." msgstr "" "> stationary_state_search -- изведува пребарување за Ñтруктура без " "Ñили." #: ../src/project.cpp:956 msgid "" "> set_current_orbital -- set the current orbtal index for " "plotting the orbitals." msgstr "" "> set_current_orbital -- поÑтави го тековниот орбитален " "Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° мрежата на орбитите." #: ../src/project.cpp:958 msgid "> update_chains -- detect polymer chains using sequence builder." msgstr "" "> update_chains -- пронаоѓа полимерни Ñинџири преку градителот на низи." #: ../src/project.cpp:959 msgid "> build_amino (helix/strand) -- amino acid sequence builder." msgstr "" "> build_amino (helix/strand) -- градител на аминокиÑелинÑка низа." #: ../src/project.cpp:960 msgid "> build_nucleic -- nucleic acid sequence builder." msgstr "> build_nucleic -- градител на низа на нуклеинÑка киÑелина." #: ../src/project.cpp:962 #, fuzzy msgid "> orient -- orient the system in the XYZ coordinate system." msgstr "> orient -- го наÑочува ÑиÑтемот." #: ../src/project.cpp:964 msgid "" "> solvate_box ( (export)) -- " "setup a solvation box." msgstr "" "> solvate_box ( (export)) -- " "поÑтавува поле за раÑтвор." #: ../src/project.cpp:965 msgid "" "> solvate_sphere ( ) -- setup " "a solvation sphere." msgstr "" "> solvate_sphere ( ) -- " "поÑтавува Ñфера за раÑтвор." #: ../src/project.cpp:967 msgid "> set_formal_charge -- set formal charges to atoms." msgstr "" "> set_formal_charge -- поÑтавува формални полнења на " "атомите." #: ../src/project.cpp:969 msgid "" "> evaluate_Bfact -- evaluate B-factors for selected atoms (a trajectory file " "must be open)." msgstr "" "> evaluate_Bfact -- оценува B-фактори за одбраните атоми (датотеката на " "траекторијата мора да биде отворена)." #: ../src/project.cpp:970 msgid "" "> evaluate_diffconst
-- evaluate diffusion constants for selected atoms " "(a trajectory file must be open, dt = time difference between frames [fs])." msgstr "" "> evaluate_diffconst
-- оценува конÑонанти на дифузија за одбраните " "атоми (мора да биде отворена датотеката на траекторијата, dt = временÑка " "разлика помеѓу рамки [fs])." #: ../src/project.cpp:1010 msgid "Added a new object : light (" msgstr "Додаден е нов објект: Ñветлина (" #: ../src/project.cpp:1011 msgid "local" msgstr "локално" #: ../src/project.cpp:1011 msgid "global" msgstr "општо" #: ../src/project.cpp:1012 msgid "directional" msgstr "фикÑирано" #: ../src/project.cpp:1012 msgid "spotlight" msgstr "рефлектор" #: ../src/project.cpp:1041 msgid "ERROR : add plane : unknown value function " msgstr "ГРЕШКÐ: додади рамнина: непозната вредноÑна функција" #: ../src/project.cpp:1055 msgid "ERROR : add plane : unknown colour function " msgstr "ГРЕШКÐ: додади рамнина: непозната функција на боја" #: ../src/project.cpp:1091 msgid "Added a new object : plane (" msgstr "Додаден е нов објект: рамнина (" #: ../src/project.cpp:1119 msgid "ERROR : add volrend : unknown value function " msgstr "ГРЕШКÐ: додади volrend: непозната вредноÑна функција" #: ../src/project.cpp:1133 msgid "ERROR : add volrend : unknown colour function " msgstr "ГРЕШКÐ: додади volrend: непозната функција на боја" #: ../src/project.cpp:1166 msgid "Added a new object : volrend (" msgstr "Додаден е нов објект: volrend (" #: ../src/project.cpp:1199 msgid "ERROR : add surf1 : unknown value function 1 " msgstr "ГРЕШКÐ: додади surf1: непозната вредноÑна функција 1 " #: ../src/project.cpp:1214 msgid "ERROR : add surf1 : unknown value function 2 " msgstr "ГРЕШКÐ: додади surf1: непозната вредноÑна функција 2" #: ../src/project.cpp:1228 msgid "ERROR : add surf1 : unknown colour function " msgstr "ГРЕШКÐ: додади surf1: непозната функција на боја" #: ../src/project.cpp:1277 msgid "Added a new object : surf1 (" msgstr "Додаден е нов објект: surf1 (" #: ../src/project.cpp:1314 msgid "ERROR : add surf2 : unknown value function 1 " msgstr "ГРЕШКÐ: додади surf2: непозната вредноÑна функција 1 " #: ../src/project.cpp:1329 msgid "ERROR : add surf2 : unknown value function 2 " msgstr "ГРЕШКÐ: додади surf2: непозната вредноÑна функција 2" #: ../src/project.cpp:1343 msgid "ERROR : add surf2 : unknown colour function 1 " msgstr "ГРЕШКÐ: додади surf2: непозната функција на боја 1" #: ../src/project.cpp:1357 msgid "ERROR : add surf2 : unknown colour function 2 " msgstr "ГРЕШКÐ: додади surf2: непозната функција на боја 2" #: ../src/project.cpp:1417 msgid "Added a new object : surf2 (" msgstr "Додаден е нов објект: surf2 (" #: ../src/project.cpp:1423 msgid "ERROR : could not process command \"add\" for parameter " msgstr "ГРЕШКÐ: не може да Ñе обработи наредбата „add“ за параметар" #: ../src/project.cpp:1575 msgid "Sorry, this is for QM models only!" msgstr "Жалам, ова е Ñамо за моделите на КМ!" #: ../src/project.cpp:1622 msgid "The current orbital is now " msgstr "Тековното орбитирачко е Ñега" #: ../src/project.cpp:1667 ../src/project.cpp:1702 msgid "built a sequence : " msgstr "изгради низи:" #: ../src/project.cpp:1715 msgid "maximum dimensions:" msgstr "макÑимални димензии:" #: ../src/project.cpp:1817 msgid "Sorry, atom not found!" msgstr "Жалам, атомот не е пронајден!" #: ../src/project.cpp:1843 msgid "ERROR : Unknown command : " msgstr "ГРЕШКÐ: Ðепозната наредба: " #: ../src/project.cpp:1844 msgid "The \"help\" command will give more information about command strings." msgstr "Ðаредбата „help“ ќе даде повеќе информации за наредбените низи." #: ../src/project.cpp:1871 msgid "local lights = " msgstr "локални Ñветилки =" #: ../src/project.cpp:1871 ../src/project.cpp:1878 msgid "on" msgstr "вклучено" #: ../src/project.cpp:1871 ../src/project.cpp:1878 msgid "off" msgstr "иÑклучено" #: ../src/project.cpp:1878 msgid "global lights = " msgstr "општи Ñветилки =" #: ../src/project.cpp:3244 msgid "Group information about chains/residues is needed for this operation." msgstr "" "Заеднички информации за Ñинџирите/оÑтатоците Ñе потребни за оваа операција." #: ../src/project.cpp:3245 msgid "Is it OK to update group information?" msgstr "Дали е во ред да Ñе ажурираат заеднички информации?" #: ../src/project.cpp:3259 msgid "Sorry, no chain/residue information available for this atom." msgstr "Жалам, нема доÑтапни информации за Ñинџир/оÑтаток за овој атом." #: ../src/project.cpp:3278 msgid "selected atom " msgstr "одбран атом" #: ../src/project.cpp:3278 msgid " (atomtype = " msgstr " (вид на атом = " #: ../src/project.cpp:3290 msgid "selected residue " msgstr "одбран оÑтаток" #: ../src/project.cpp:3290 msgid " from chain " msgstr "од Ñинџир" #: ../src/project.cpp:3301 msgid "selected chain " msgstr "одбран Ñинџир" #: ../src/project.cpp:3325 msgid "selected molecule " msgstr "одбран молекул" #. this must be OK. #: ../src/project.cpp:3354 msgid "charge: " msgstr "полнење:" #: ../src/project.cpp:3372 msgid "distance: " msgstr "оддалеченоÑÑ‚:" #: ../src/project.cpp:3394 msgid "angle: " msgstr "агол" #: ../src/project.cpp:3394 msgid " deg" msgstr " Ñтеп" #: ../src/project.cpp:3413 msgid "torsion: " msgstr "Ñвиткување:" #: ../src/project.cpp:3413 msgid " deg " msgstr " Ñтеп " #: ../src/project.cpp:3482 msgid "MW: " msgstr "MW: " #: ../src/project.cpp:3559 msgid "ERROR : atom " msgstr "ГРЕШКÐ: атомот" #: ../src/project.cpp:3559 ../src/project.cpp:3745 ../src/project.cpp:3757 msgid " not found!" msgstr "не е пронајден!" #: ../src/project.cpp:3579 msgid "ERROR : could not find ic.\n" msgstr "ГРЕШКÐ: не може да пронајде ic.\n" #: ../src/project.cpp:3597 msgid "ERROR : could not find tor-term.\n" msgstr "ГРЕШКÐ: не може да пронајде tor-term.\n" #: ../src/project.cpp:3601 msgid "tor(deg)" msgstr "Ñвит(Ñтеп)" #: ../src/project.cpp:3601 ../src/project.cpp:3818 ../src/project.cpp:3910 msgid "E(kJ/mol)" msgstr "E(kJ/mol)" #: ../src/project.cpp:3652 msgid "tor = " msgstr "Ñвит =" #: ../src/project.cpp:3652 ../src/project.cpp:3875 msgid " deg, energy = " msgstr "Ñтеп, енергија =" #: ../src/project.cpp:3652 ../src/project.cpp:3875 msgid " kJ/mol." msgstr " kJ/mol." #: ../src/project.cpp:3745 msgid "ERROR : tor1 atom " msgstr "ГРЕШКÐ: Ñвит прв атом" #: ../src/project.cpp:3757 msgid "ERROR : tor2 atom " msgstr "ГРЕШКÐ: Ñвит втор атом" #: ../src/project.cpp:3777 msgid "ERROR : could not find ic for tor1.\n" msgstr "ГРЕШКÐ: не може да пронајде ic за Ñвит1.\n" #: ../src/project.cpp:3784 msgid "ERROR : could not find ic for tor2.\n" msgstr "ГРЕШКÐ: не може да пронајде ic за Ñвит2.\n" #: ../src/project.cpp:3807 msgid "ERROR : could not find tor-term for tor1.\n" msgstr "ГРЕШКÐ: не може да пронајде tor-term за Ñвит1.\n" #: ../src/project.cpp:3814 msgid "ERROR : could not find tor-term for tor2.\n" msgstr "ГРЕШКÐ: не може да пронајде tor-term за Ñвит2.\n" #: ../src/project.cpp:3818 msgid "tor1(deg)" msgstr "Ñвит1(Ñтеп)" #: ../src/project.cpp:3818 msgid "tor2(deg)" msgstr "Ñвит2(Ñтеп)" #: ../src/project.cpp:3875 msgid "tor1 = " msgstr "Ñвит1 =" #: ../src/project.cpp:3875 msgid " deg, tor2 = " msgstr "Ñтеп, Ñвит2 =" #: ../src/project.cpp:3900 ../src/project.cpp:3935 msgid "r-energy = " msgstr "r-енергија = " #: ../src/project.cpp:3900 ../src/project.cpp:3935 msgid "p-energy = " msgstr "p-енергија = " #: ../src/project.cpp:3901 ../src/project.cpp:3936 msgid " is lower " msgstr "е помала" #: ../src/project.cpp:3940 msgid "READY!" msgstr "ПОДГОТВЕÐО!" #: ../src/project.cpp:4037 msgid "Starting Stationary State Search " msgstr "Почнува ФикÑирано пребарување на ÑоÑтојба" #: ../src/project.cpp:4050 msgid "Cycle Gradient Step\n" msgstr "Ð¦Ð¸ÐºÐ»ÑƒÑ Ð“Ñ€Ð°Ð´Ð¸ÐµÐ½Ñ‚ Чекор\n" #: ../src/project.cpp:4065 msgid "the nsteps termination test was passed.\n" msgstr "теÑтот за n-чекори за завршување е поминат.\n" #: ../src/rcpview_wcl.cpp:161 msgid "the tresholds were set to " msgstr "праговите беа поÑтавени на" #: ../src/rcpview_wcl.cpp:161 msgid " and " msgstr " и" #. ################################################################################################ #. eof #: ../src/res_gtk/gtk_file_export_dialog.glade.h:1 #: ../src/res_gtk/gtk_file_import_dialog.glade.h:1 #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:1 msgid "Browse..." msgstr "ПрелиÑтај" #: ../src/res_gtk/gtk_file_export_dialog.glade.h:2 msgid "Export File" msgstr "Извези датотека" #: ../src/res_gtk/gtk_file_import_dialog.glade.h:2 msgid "Import File" msgstr "Увези датотека" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:1 #, fuzzy msgid "Delta-E Cutoff:" msgstr "Делта Е отÑекување:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:3 msgid "Gradient Cutoff:" msgstr "ОтÑекување градиент:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:4 msgid "Maximum # of Steps:" msgstr "МакÑимален број на чекори:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:2 msgid "Constant-P simulation (allow P-control at simulation stage)" msgstr "" "Симулација на конÑтанта-P (дозволува управување на P во ÑимулациÑката фаза)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:3 msgid "Constant-T simulation (allow T-control at simulation stage)" msgstr "" "Симулација на конÑтанта-Т (дозволува управување на Т во ÑимулациÑката фаза)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:4 msgid "Isothermal compressibility [1/bar] :" msgstr "Изотермална компреÑивноÑÑ‚ [1/bar]:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:6 msgid "Number of steps : (cooling)" msgstr "Број на чекори: (ладење)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:7 msgid "Number of steps : (equilibration)" msgstr "Број на чекори: (баланÑирање)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:8 msgid "Number of steps : (heating)" msgstr "Број на чекори: (загревање)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:9 msgid "Number of steps : (simulation)" msgstr "Број на чекори: (Ñимулација)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:10 msgid "P relaxation time [fs] :" msgstr "Време за одмор на P [fs]:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:11 msgid "Pressure [bar] :" msgstr "ПритиÑок [bar]:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:12 msgid "T relaxation time [fs] : (equil/simul)" msgstr "Време за одмор на Т [fs]: (балан/Ñимул)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:13 msgid "T relaxation time [fs] : (heat/cool)" msgstr "Време за одмор на Т [fs]: (топло/ладно)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:14 msgid "Temperature [K] :" msgstr "Температура [K]:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:15 msgid "Timestep [fs] :" msgstr "ВременÑки чекор [fs]:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:16 msgid "Trajectory File : " msgstr "Датотека на траекторија:" #: ../src/res_gtk/gtk_progress_dialog.glade.h:1 msgid "Background Job" msgstr "Работа во заднина" #: ../src/res_gtk/gtk_progress_dialog.glade.h:2 msgid "Job Title : " msgstr "ÐаÑлов на работа:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:1 msgid "Select the Engine Class:" msgstr "Одберете Вид на машина:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:2 msgid "Set the spin multiplicity of the system:" msgstr "ПоÑтавете ја многуÑтраноÑта на вртењето на вашиот ÑиÑтем:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:3 msgid "Set the total charge of the system:" msgstr "ПоÑтавете го вкупното полнење на вашиот ÑиÑтем:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:4 msgid "Enable atomtype/parameter exceptions (AMBER FF)." msgstr "Овозможете иÑклучоци на вид на атом/параметри (AMBER FF)." #: ../src/res_gtk/gtk_setup_dialog.glade.h:6 msgid "MM/SF" msgstr "ММ/ПС" #: ../src/res_gtk/gtk_setup_dialog.glade.h:7 msgid "QM/MM" msgstr "КM/MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:8 msgid "Setup" msgstr "ПоÑтави" #: ../src/res_gtk/gtk_setup_dialog.glade.h:9 msgid "Spin Multiplicity:" msgstr "МногуÑтраноÑÑ‚ на вртење:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:10 msgid "Total Charge:" msgstr "Вкупно полнење:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:11 msgid "all MM" msgstr "Ñите ММ" #: ../src/res_gtk/gtk_setup_dialog.glade.h:12 msgid "all QM" msgstr "Ñите КМ" #: ../src/res_gtk/gtk_setup_dialog.glade.h:13 msgid "all SF" msgstr "Ñите ПС" #: ../src/res_gtk/gtk_setup_dialog.glade.h:14 msgid "this is under construction and DISABLED currently!" msgstr "во тек е конÑтруирање и во моментот е ОÐЕВОЗМОЖЕÐО!" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:1 msgid "Relaxed Separation :" msgstr "РелакÑирано одделување:" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:2 msgid "Stereo Displacement :" msgstr "Стерео-размеÑтување:" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:3 msgid "Stereo View Settings" msgstr "ПоÑтавувања на Стерео-поглед" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:1 msgid "Begin" msgstr "Почеток" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:2 msgid "End" msgstr "Крај" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:3 msgid "Play" msgstr "Пушти" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:4 msgid "Trajectory Viewer" msgstr "Прегледник на траекторија" #~ msgid "Import File " #~ msgstr "Увези датотека" #~ msgid "av is not empty!?!" #~ msgstr "av не е празен?!" #~ msgid "ac_stor_wcl::StoreAC(1) ; bad cset_sz." #~ msgstr "ac_stor_wcl::StoreAC(1); bad cset_sz." #~ msgid "ac_stor_wcl::StoreAC(2) ; bad cset_sz." #~ msgstr "ac_stor_wcl::StoreAC(2); bad cset_sz." #~ msgid "d" #~ msgstr "цртај" #~ msgid "e" #~ msgstr "избриши" #~ msgid "s" #~ msgstr "одбери" #~ msgid "z" #~ msgstr "приближи" #~ msgid "c" #~ msgstr "Ñпојување" #~ msgid "t" #~ msgstr "транÑлатирај-xy" #~ msgid "tz" #~ msgstr "транÑлатирај-z" #~ msgid "oz" #~ msgstr "орбитирај-z" #~ msgid "r" #~ msgstr "ротирај-xy" #~ msgid "rz" #~ msgstr "ротирај-z" #~ msgid "m" #~ msgstr "измери" #~ msgid "draw\n" #~ msgstr "цртај\n" #~ msgid "erase\n" #~ msgstr "избриши\n" #~ msgid "select\n" #~ msgstr "одбери\n" #~ msgid "zoom\n" #~ msgstr "зголеми\n" #~ msgid "clip\n" #~ msgstr "Ñпој\n" #~ msgid "" #~ "trans\n" #~ "XY" #~ msgstr "" #~ "транÑ\n" #~ "XY" #~ msgid "" #~ "trans\n" #~ "Z" #~ msgstr "" #~ "транÑ\n" #~ "Z" #~ msgid "" #~ "orbit\n" #~ "XY" #~ msgstr "" #~ "орбит\n" #~ "XY" #~ msgid "" #~ "orbit\n" #~ "Z" #~ msgstr "" #~ "орбит\n" #~ "Z" #~ msgid "" #~ "rotate\n" #~ "XY" #~ msgstr "" #~ "врти\n" #~ "XY" #~ msgid "" #~ "rotate\n" #~ "Z" #~ msgstr "" #~ "ротирај\n" #~ "Z" #~ msgid "measure\n" #~ msgstr "измери\n" #~ msgid "el" #~ msgstr "елемент" #~ msgid "bt" #~ msgstr "вид на врÑка" #~ msgid "su" #~ msgstr "поÑтави" #~ msgid "element\n" #~ msgstr "елемент\n" #~ msgid "" #~ "bond\n" #~ "type" #~ msgstr "" #~ "вид на\n" #~ "врÑка" #~ msgid "setup\n" #~ msgstr "поÑтави\n" #~ msgid "_Help" #~ msgstr "_Помош" #~ msgid "N" #~ msgstr "Ð" #~ msgid "New file" #~ msgstr "Ðова датотека" #~ msgid "O" #~ msgstr "O" #~ msgid "S" #~ msgstr "S" #~ msgid "C" #~ msgstr "C" #~ msgid "H" #~ msgstr "H" #~ msgid "A" #~ msgstr "A" #~ msgid "View the Copyright notices" #~ msgstr "Во забелешките за ÐвторÑките права" #~ msgid "D" #~ msgstr "D" #~ msgid "U" #~ msgstr "U" #~ msgid "Error Loading Icon: %s\n" #~ msgstr "Грешка при вчитување икона: %s\n" #~ msgid "gtk_app::AttachDetachView() : no wnd!" #~ msgstr "gtk_app::AttachDetachView(): нема wnd!" #~ msgid "gtk_app::AttachDetachView() ; unknown wcl class." #~ msgstr "gtk_app::AttachDetachView(); непозната wcl клаÑа." #~ msgid "PrintToLog : " #~ msgstr "Печати на запиÑ: " #~ msgid "ERROR : gtk_app::CameraRemoved() failed." #~ msgstr "ГРЕШКÐ: gtk_app::CameraRemoved() е неуÑпешно." #~ msgid "ERROR : gtk_app::LightAdded() failed." #~ msgstr "ГРЕШКÐ: gtk_app::LightAdded() е неуÑпешно." #~ msgid "gtk_app::LightAdded() : bad cast!" #~ msgstr "gtk_app::LightAdded(): лоша нијанÑа!" #~ msgid "ERROR : gtk_app::LightRemoved() failed." #~ msgstr "ГРЕШКÐ: gtk_app::LightRemoved() е неуÑпешно." #~ msgid "ERROR : gtk_app::GraphicsClientAdded() failed." #~ msgstr "ГРЕШКÐ: gtk_app::GraphicsClientAdded() е неуÑпешно." #~ msgid "gtk_app::GraphicsClientAdded() : bad cast!" #~ msgstr "gtk_app::GraphicsClientAdded(): лоша нијанÑа!" #~ msgid "a graphics client" #~ msgstr "клиент на графика" #~ msgid "ERROR : gtk_app::GraphicsClientRemoved() failed." #~ msgstr "ГРЕШКÐ: gtk_app::GraphicsClientRemoved() е неуÑпешно." #~ msgid "called gtk_app::PlottingClientAdded()" #~ msgstr "наречено gtk_app::PlottingClientAdded()" #~ msgid "a plotting client" #~ msgstr "клиент на мрежа" #~ msgid "called gtk_app::PlottingClientRemoved()" #~ msgstr "наречено gtk_app::PlottingClientRemoved()" #~ msgid "ERROR : gtk_app::PlottingClientRemoved() failed." #~ msgstr "ГРЕШКÐ: gtk_app::PlottingClientRemoved() е неуÑпешно." #~ msgid "ERROR : gtk_project_view::ObjectRemoved() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::ObjectRemoved() е неуÑпешно." #~ msgid "ERROR : gtk_app::viewsobjs_SetCurrent() failed." #~ msgstr "ГРЕШКÐ: gtk_app::viewsobjs_SetCurrent() е неуÑпешно." #~ msgid "ERROR : gtk_app::viewsobjs_Delete() failed." #~ msgstr "ГРЕШКÐ: gtk_app::viewsobjs_Delete() е неуÑпешно." #~ msgid "ERROR : gtk_project_view::ChainsEventHandler2() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::ChainsEventHandler2() е неуÑпешно." #~ msgid "ERROR : gtk_project_view::AtomUpdateItem() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::AtomUpdateItem() е неуÑпешно." #~ msgid "ERROR : gtk_project_view::AtomRemoved() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::AtomRemoved() неуÑпешно." #~ msgid "ERROR : gtk_project_view::AtomsEventHandler1() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::AtomsEventHandler1() неуÑпешно." #~ msgid "ERROR : gtk_project_view::atoms_ToggleLocked() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::atoms_ToggleLocked() неуÑпешно." #~ msgid "true" #~ msgstr "точно" #~ msgid "false" #~ msgstr "погрешно" #~ msgid "ERROR : gtk_project_view::BondUpdateItem() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::BondUpdateItem() неуÑпешно." #~ msgid "ERROR : gtk_project_view::BondRemoved() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::BondRemoved() неуÑпешно." #~ msgid "ERROR : gtk_project_view::BondsEventHandler1() failed." #~ msgstr "ГРЕШКÐ: gtk_project_view::BondsEventHandler1() неуÑпешно." #~ msgid "draw skipped ; counter = " #~ msgstr "цртањето е преÑкокнато; бројач =" #~ msgid "draw state is " #~ msgstr "ÑоÑтојбата на цртање е" #~ msgid "erase skipped ; counter = " #~ msgstr "бришењето е преÑкокнато; бројач =" #~ msgid "erase state is " #~ msgstr "ÑоÑтојбата на избришано е" #~ msgid "select skipped ; counter = " #~ msgstr "одбери преÑкокнато; бројач =" #~ msgid "select state is " #~ msgstr "ÑоÑтојбата на одбраното е" #~ msgid "zoom skipped ; counter = " #~ msgstr "приближувањето е преÑкокнато; бројач =" #~ msgid "zoom state is " #~ msgstr "ÑоÑтојба на приближувањето е" #~ msgid "clipping skipped ; counter = " #~ msgstr "Ñпојувањето е преÑкокнато; бројач =" #~ msgid "clipping state is " #~ msgstr "ÑоÑтојбата на Ñпојувањето е" #~ msgid "transl_xy skipped ; counter = " #~ msgstr "транÑл_xy е преÑкокнато; бројач =" #~ msgid "transl_xy state is " #~ msgstr "транÑл_xy ÑоÑтојба е" #~ msgid "transl_z skipped ; counter = " #~ msgstr "траÑл_z преÑкокнато; бројач =" #~ msgid "transl_z state is " #~ msgstr "транÑл_z ÑоÑтојбата е" #~ msgid "orbit_xy skipped ; counter = " #~ msgstr "орбит_xy преÑкокнато; бројач =" #~ msgid "orbit_xy state is " #~ msgstr "орбит_xy ÑоÑтојба е" #~ msgid "orbit_z skipped ; counter = " #~ msgstr "орбит_z преÑкокнато; бројач =" #~ msgid "orbit_z state is " #~ msgstr "орбит_z ÑоÑтојбата е" #~ msgid "rotate_xy skipped ; counter = " #~ msgstr "ротир_xy преÑкокнато; бројач =" #~ msgid "rotate_xy state is " #~ msgstr "ротир_xy ÑоÑтојбата е" #~ msgid "rotate_z skipped ; counter = " #~ msgstr "ротир_z преÑкокнато; бројач =" #~ msgid "rotate_z state is " #~ msgstr "ротир_z ÑоÑтојбата е" #~ msgid "measure skipped ; counter = " #~ msgstr "мерењето е преÑкокнато; бројач =" #~ msgid "measure state is " #~ msgstr "ÑоÑтојбата на мерењето е" #~ msgid "ghemical-" #~ msgstr "ghemical-" #~ msgid "ERROR : could not read glade XML file : " #~ msgstr "ГРЕШКÐ: не може да Ñе прочита glade XML-датотеката: " #~ msgid "I" #~ msgstr "I" #~ msgid "E" #~ msgstr "E" #~ msgid "Compute a single-point energy" #~ msgstr "ПреÑметува енергија на единечна точка" #~ msgid "Do a geometry optimization run" #~ msgstr "Извршува геометриÑка оптимизација" #~ msgid "Do a molecular dynamics run" #~ msgstr "Извршува молекуларна динамика" #~ msgid "Do a random conformational search" #~ msgstr "Извршува Ñлучајно оформувачко пребарување" #~ msgid "Do a Monte Carlo type conformational search" #~ msgstr "Прави Монте Карло оформувачко пребарување" #~ msgid "...todo..." #~ msgstr "...направи..." #~ msgid "UnderConstruction ; RS ; Set Formal Charge" #~ msgstr "Во изградба; RS; ПоÑтави го Формалното полнење" #~ msgid "UnderConstruction ; RS ; make RS" #~ msgstr "Во изградба; RS; нарави RS" #~ msgid "UnderConstruction ; RS ; cycle RS" #~ msgstr "Во изградба; RS; цикличен RS" #~ msgid "Building ggv menu failed : %s" #~ msgstr "Градењето на ggv менито е неуÑпешно: %s" #~ msgid "" #~ "FIXME : superimpose conflicts with openbabel?\n" #~ "g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) 20050701\n" #~ "compiler says superimpose is undeclared???" #~ msgstr "" #~ "ПОПРÐВИМЕ: пречки Ñо преÑеци Ñо openbabel?\n" #~ "g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) 20050701\n" #~ "компајлерот вели дека преÑекот е непријавен???" #~ msgid "gtk_project::GetClient() failed!" #~ msgstr "gtk_project::GetClient() неуÑпешно!" #~ msgid "now returning from gtk_project::GeomOptGetParam()." #~ msgstr "Ñега Ñе враќа од gtk_project::GeomOptGetParam()." #~ msgid "now returning from gtk_project::MolDynGetParam()." #~ msgstr "Ñега Ñе враќа од gtk_project::MolDynGetParam()." #~ msgid "gtk_project::DestroyGraphicsWnd() : bad cast." #~ msgstr "gtk_project::DestroyGraphicsWnd(): лоша нијанÑа." #~ msgid "gtk_project::DestroyPlottingWnd() : bad cast." #~ msgstr "gtk_project::DestroyPlottingWnd(): лоша нијанÑа." #~ msgid "not implemented..." #~ msgstr "не е вметнато..." #~ msgid "" #~ "BUG: Bad cast was detected at setup_dialog ctor.\n" #~ "The program will terminate." #~ msgstr "" #~ "БУБÐЧКÐ: Лошата нијанÑа беше пронајдена при setup_dialog ctor.\n" #~ "Програмата ќе Ñе прекине." #~ msgid "BUG: Invalid current page at setup_dialog::handler_ButtonOK()." #~ msgstr "" #~ "БУБÐЧКÐ: Ðеважечка тековна Ñтраница при setup_dialog::handler_ButtonOK()." #~ msgid "callEXIT : cannot report SFmode!" #~ msgstr "callEXIT: не може да извеÑти мод на ПС!" #~ msgid "BUG: file_save_dialog::OkEvent() failed." #~ msgstr "БУБÐЧКÐ: file_save_dialog::OkEvent() неуÑпешно." #~ msgid "BUG: file_save_graphics_dialog::OkEvent() failed." #~ msgstr "БУБÐЧКÐ: file_save_graphics_dialog::OkEvent() неуÑпешно." #~ msgid "trying to open \"" #~ msgstr "обид за отворање „" #~ msgid "OK" #~ msgstr "Во ред" #~ msgid "handler_Destroy() : ref = " #~ msgstr "handler_Destroy(): ref = " #~ msgid "ERROR : gtk_wnd dtor ; removal from iv failed!" #~ msgstr "ГРЕШКÐ: gtk_wnd dtor; отÑтранување од iv неуÑпешно!" #~ msgid "gtk_wnd::RealizeHandler() : iv_Find() failed!" #~ msgstr "gtk_wnd::RealizeHandler(): iv_Find() неуÑпешно!" #~ msgid "gtk_wnd::RealizeHandler() : gdk_gl_drawable_make_current() failed.\n" #~ msgstr "" #~ "gtk_wnd::RealizeHandler(): gdk_gl_drawable_make_current() неуÑпешно.\n" #~ msgid "gtk_wnd::ButtonHandler() : iv_Find() failed!" #~ msgstr "gtk_wnd::ButtonHandler(): iv_Find() неуÑпешно!" #~ msgid "ExposeHandler ; NOT REALIZED!!!" #~ msgstr "ExposeHandler; ÐЕ Е РЕÐЛИЗИРÐÐО!!!" #~ msgid "ExposeHandler ; NOT INITIALIZED!!!" #~ msgstr "ExposeHandler; ÐЕ Е ПОЧÐÐТО!!!" #~ msgid "gtk_wnd::ExposeHandler() : gdk_gl_drawable_make_current() failed.\n" #~ msgstr "" #~ "gtk_wnd::ExposeHandler(): gdk_gl_drawable_make_current() неуÑпешно.\n" #~ msgid "ButtonHandler ; NOT REALIZED!!!" #~ msgstr "ButtonHandler; ÐЕ Е РЕÐЛИЗИРÐÐО!!!" #~ msgid "gtk_wnd::MotionNotifyHandler() : iv_Find() failed!" #~ msgstr "gtk_wnd::MotionNotifyHandler(): iv_Find() неуÑпешно!" #~ msgid "WARNING ; a mouse-button-up event was lost!" #~ msgstr "ПРЕДУПРЕДУВÐЊЕ; изгубен е наÑтан на копче-нагоре-не-глувче!" #~ msgid "iv_Find() failed at gtk_wnd::ConfigureHandler()." #~ msgstr "iv_Find() неуÑпешно на gtk_wnd::ConfigureHandler()." #~ msgid "gtk_wnd::SetCurrent() : gdk_gl_drawable_make_current() failed.\n" #~ msgstr "gtk_wnd::SetCurrent(): gdk_gl_drawable_make_current() неуÑпешно.\n" #~ msgid "ERROR : gtk_wnd::TitleChanged() called for an unlinked window." #~ msgstr "ГРЕШКÐ: gtk_wnd::TitleChanged() повика неповрзан прозорец." #~ msgid "" #~ "BUG: The chain type is not correct (\"amino_acid\").\n" #~ "The program will terminate." #~ msgstr "" #~ "БУБÐЧКÐ: Видот на Ñинџир не е точен („amino_acid“).\n" #~ "Програмата ќе прекине." #~ msgid "" #~ "BUG: Tried to create a ribbon with less than 3 residues.\n" #~ "The program will terminate." #~ msgstr "" #~ "БУБÐЧКÐ: Обид за креирање лента Ñо помалку од три оÑтатоци.\n" #~ "Програмата ќе прекине." #~ msgid "ribbon : failed to use susf." #~ msgstr "лента: не уÑпеа да кориÑти susf." #~ msgid "ERROR : search of C_alpha 2 failed." #~ msgstr "ГРЕШКÐ: пребарување на C_alpha 2 е неуÑпешно." #~ msgid "ERROR : search of C_alpha 1 failed." #~ msgstr "ГРЕШКÐ: пребарување на C_alpha 1 е неуÑпешно." #~ msgid "ERROR : search of c_carboxyl failed." #~ msgstr "ГРЕШКÐ: преберување на c_carboxyl е неуÑпешно." #~ msgid "oglview_wcl::UpdateWnd() : skipped!" #~ msgstr "oglview_wcl::UpdateWnd(): преÑкокнато!" #~ msgid "invalid s1 passed to plot1d_view!" #~ msgstr "неважечко s1 преминато во plot1d_view!" #~ msgid "invalid sv passed to plot1d_view!" #~ msgstr "неважечко sv преминато во plot1d_view!" #~ msgid "invalid s1 passed to plot2d_view!" #~ msgstr "неважечко s1 преминато во plot2d_view!" #~ msgid "invalid s2 passed to plot2d_view!" #~ msgstr "неважечко s2 преминато во plot2d_view!" #~ msgid "invalid sv passed to plot2d_view!" #~ msgstr "неважечко sv преминато во plot2d_view!" #~ msgid "callEXIT : pangofont_wcl::ogl_InitPangoFont() failed." #~ msgstr "callEXIT: pangofont_wcl::ogl_InitPangoFont() неуÑпешно." #~ msgid "WARNING : pangofont_wcl::ogl_InitPangoFont() is already called." #~ msgstr "ПРЕДУПРЕДУВÐЊЕ: pangofont_wcl::ogl_InitPangoFont() е веќе повикано." #~ msgid "object_vector not empty!" #~ msgstr "object_vector не е празен!" #~ msgid "plotting_view_vector not empty!" #~ msgstr "plotting_view_vector не е празен!" #~ msgid "graphics_view_vector not empty!" #~ msgstr "graphics_view_vector не е празен!" #~ msgid "bond_list not empty!" #~ msgstr "bond_list не е празна!" #~ msgid "atom_list not empty!" #~ msgstr "atom_list не е празна!" #~ msgid "project::GetProjectFileName() : buffer overflow!" #~ msgstr "project::GetProjectFileName(): прелив на бафер!" #~ msgid "project::GetFullProjectFileName() : buffer overflow!" #~ msgstr "project::GetFullProjectFileName(): прелив на бафер!" #~ msgid "WARNING : bad index at project::RemoveGraphicsClient()." #~ msgstr "ПРЕДУПРЕДУВÐЊЕ: лош Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° проектот::RemoveGraphicsClient()." #~ msgid "WARNING : bad index at project::RemovePlottingClient()." #~ msgstr "ПРЕДУПРЕДУВÐЊЕ: лош Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° проектот::RemovePlottingClient()." #~ msgid "WARNING!!! donHmc/accHmc mismatch" #~ msgstr "ПРЕДУПРЕДУВÐЊЕ!!! donHmc/accHmc раÑпар" #~ msgid "ERROR!!! ca_S_2x has an odd size." #~ msgstr "ГРЕШКÐ!!! ca_S_2x има една непарна големина." #~ msgid "ERROR!!! cx_S_2x has an odd size." #~ msgstr "ГРЕШКÐ!!! cx_S_2x има една непарна големина." #~ msgid "WARNING!!! mc_H_don/mc_H_acc mismatch" #~ msgstr "ПРЕДУПРЕДУВÐЊЕ!!! mc_H_don/mc_H_acc раÑпар" #~ msgid "WARNING!!! mc_S_don/mc_S_acc mismatch" #~ msgstr "ПРЕДУПРЕДУВÐЊЕ!!! mc_S_don/mc_S_acc раÑпар" #~ msgid "BUG: project::EraseEvent()." #~ msgstr "БУБÐЧКÐ: project::EraseEvent()." #~ msgid "fatal error! atom #1 not found." #~ msgstr "фатална грешка! атомот #1 не е пронајден." #~ msgid "fatal error! atom #2 not found." #~ msgstr "фатална грешка! атомот #2 не е пронајден." ghemical-3.0.0/po/fi.po0000644000175000017500000017157611563552731011611 00000000000000# Copyright (C) 2006, 2007 Free Software Foundation, Inc. # translation of ghemical.po to Finnish # This file is distributed under the same license as the Ghemical package. # # Maintainer: Tommi Hassinen , 2009 # msgid "" msgstr "" "Project-Id-Version: ghemical\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-04-21 14:25+0300\n" "PO-Revision-Date: 2009-10-01 14:00+0300\n" "Last-Translator: Tommi Hassinen \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/custom_app.cpp:100 msgid "Added global light." msgstr "Lisätty globaali valo." #: ../src/custom_app.cpp:114 msgid "Added local light." msgstr "Lisätty paikallinen valo." #: ../src/eldview_wcl.cpp:162 msgid "No data available," msgstr "Ei tietoa saatavilla," #: ../src/eldview_wcl.cpp:167 msgid "must be a QM model!" msgstr "täytyy olla QM-malli!" #: ../src/eldview_wcl.cpp:167 msgid "please calculate energy!" msgstr "ole hyvä ja laske energia!" #: ../src/gtk_app.cpp:92 ../src/gtk_oglview_wnd.cpp:38 msgid "File" msgstr "Tiedosto" #: ../src/gtk_app.cpp:93 ../src/res_gtk/gtk_setup_dialog.glade.h:5 msgid "Help" msgstr "Apua" #: ../src/gtk_app.cpp:95 msgid "New" msgstr "Uusi" #: ../src/gtk_app.cpp:95 msgid "Create a new file." msgstr "Luo uusi tiedosto." #. N #. ^^^^^^^^ #: ../src/gtk_app.cpp:96 ../src/gtk_oglview_wnd.cpp:40 msgid "Open" msgstr "Avaa" #: ../src/gtk_app.cpp:96 msgid "Open an existing file." msgstr "Avaa olemassaoleva tiedosto." #. O #: ../src/gtk_app.cpp:97 ../src/gtk_oglview_wnd.cpp:44 msgid "Save as..." msgstr "Tallenna..." #: ../src/gtk_app.cpp:97 msgid "Save a file." msgstr "Tallenna tiedosto." #. S #. { "ExportGraphics", GTK_STOCK_SAVE, N_("Export Graphics"), NULL, N_("Export graphics"), (GCallback) gtk_project::popup_FileExportGraphics }, #: ../src/gtk_app.cpp:98 ../src/gtk_oglview_wnd.cpp:49 msgid "Close" msgstr "Sulje" #: ../src/gtk_app.cpp:98 msgid "Quit the program." msgstr "Poistu ohjelmasta." #. C #: ../src/gtk_app.cpp:100 msgid "Contents" msgstr "Sisällysluettelo" #: ../src/gtk_app.cpp:100 msgid "View the User's Manual." msgstr "Avaa käyttöohje." #. H #: ../src/gtk_app.cpp:101 msgid "About" msgstr "Tietoja" #: ../src/gtk_app.cpp:101 msgid "Information about this program." msgstr "Tietoja tästä ohjelmasta." #. A #. the rest are toolbar actions... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_app.cpp:106 msgid "Set the current element." msgstr "Aseta piirtoon valittu alkuaine." #: ../src/gtk_app.cpp:107 msgid "Set the current bondtype." msgstr "Aseta piirtoon valittu sidostyyppi." #: ../src/gtk_app.cpp:108 msgid "Setup or change the comp.chem. method in use." msgstr "Asetukset laskentaa varten." #: ../src/gtk_app.cpp:113 msgid "Draw ; add atoms and bonds to the model." msgstr "Draw ; lisää atomeita ja sidoksia malliin." #: ../src/gtk_app.cpp:114 msgid "Erase ; remove atoms and bonds from the model." msgstr "Erase ; poista atomeita ja sidoksia mallista." #: ../src/gtk_app.cpp:115 msgid "Select ; make selections in the model, and also select objects." msgstr "Select ; valitse atomeita mallissa, tai valitse objekteja." #: ../src/gtk_app.cpp:116 msgid "Zoom ; zoom the view." msgstr "Zoom ; zoomaa näkymää." #: ../src/gtk_app.cpp:117 msgid "Clipping ; set the near and far clipping planes for graphics rendering." msgstr "Clipping ; säädä grafiikan leikkaustasoja." #: ../src/gtk_app.cpp:118 msgid "" "TranslateXY ; translate the camera or a selected object in XY-direction." msgstr "TranslateXY ; siirrä kameraa tai valittua objektia XY-suunnassa." #: ../src/gtk_app.cpp:119 msgid "TranslateZ ; translate the camera or a selected object in Z-direction." msgstr "TranslateZ ; siirrä kameraa tai valittua objektia Z-suunnassa." #: ../src/gtk_app.cpp:120 msgid "" "OrbitXY ; orbit the camera or a selected object around the focus point in XY-" "direction." msgstr "" "OrbitXY ; pyöritä kameraa tai valittua objektia fokuspisteen ympäri XY-" "suunnassa." #: ../src/gtk_app.cpp:121 msgid "" "OrbitZ ; orbit the camera or a selected object around the focus point in Z-" "direction." msgstr "" "OrbitZ ; pyöritä kameraa tai valittua objektia fokuspisteen ympäri Z-" "suunnassa." #: ../src/gtk_app.cpp:122 msgid "RotateXY ; turn the camera or a selected object in XY-direction." msgstr "RotateXY ; käännä kameraa tai valittua objektia XY-suunnassa." #: ../src/gtk_app.cpp:123 msgid "RotateZ ; turn the camera or a selected object in Z-direction." msgstr "RotateZ ; käännä kameraa tai valittua objektia Z-suunnassa." #: ../src/gtk_app.cpp:124 msgid "Measure ; measure distances, angles and torsions." msgstr "Measure ; mittaa etäisyyksiä, kulmia ja torsiokulmia." #: ../src/gtk_app.cpp:207 msgid "Set to Current Object" msgstr "Aseta valituksi objektiksi" #: ../src/gtk_app.cpp:207 msgid "Set this object to Current Object" msgstr "Aseta tämä objekti valituksi objektiksi" #: ../src/gtk_app.cpp:208 msgid "Delete Object/View" msgstr "Poista objekti/näkymä" #: ../src/gtk_app.cpp:208 msgid "Delete this object or view" msgstr "Poista tämä tämä objekti tai ikkuna" #: ../src/gtk_app.cpp:225 msgid "Update View" msgstr "Päivitä näkymä" #: ../src/gtk_app.cpp:225 msgid "Rebuild the chains info for this view" msgstr "Päivitä ketjujen tiedot tätä näkymää varten" #: ../src/gtk_app.cpp:226 msgid "Select Item" msgstr "Valitse ketju/tähde" #: ../src/gtk_app.cpp:226 msgid "Select/unselect this chain/residue" msgstr "Valitse tämä ketju/tähde tai poista valinta" #: ../src/gtk_app.cpp:243 msgid "Select Atom" msgstr "Valitse atomi" #: ../src/gtk_app.cpp:243 msgid "Select/unselect this atom" msgstr "Valitse tämä atomi tai poista valinta" #: ../src/gtk_app.cpp:258 msgid "Select Bond" msgstr "Valitse sidos" #: ../src/gtk_app.cpp:258 msgid "Select/unselect this bond" msgstr "Valitse tämä sidos tai poista valinta" #: ../src/gtk_app.cpp:344 msgid "Ghemical" msgstr "" #: ../src/gtk_app.cpp:351 #, c-format msgid "ERROR : Icon loading failed : %s\n" msgstr "VIRHE : Ikonin lataaminen epäonnistui : %s\n" #: ../src/gtk_app.cpp:381 #, c-format msgid "ERROR : Building main menu failed : %s" msgstr "VIRHE : Päämenun luominen epäonnistui : %s" #: ../src/gtk_app.cpp:566 msgid "project view" msgstr "projektinäkymä" #. optional : draw the stripes to background. #. ??? (string) #: ../src/gtk_app.cpp:584 msgid "Object" msgstr "Objekti" #. ??? (string) #: ../src/gtk_app.cpp:588 msgid "Sub-Objects" msgstr "Aliobjektit" #: ../src/gtk_app.cpp:591 msgid "Views/Objects" msgstr "Näkymät/Objektit" #: ../src/gtk_app.cpp:604 #, c-format msgid "ERROR : Building Views/Objects menu in project view failed : %s" msgstr "" "VIRHE : Näkymät/Objektit-menun luominen projektinäkymässä epäonnistui : %s" #. optional : draw the stripes to background. #. chain_info (string) #: ../src/gtk_app.cpp:620 msgid "Chain Description" msgstr "Ketjun kuvaus" #. res_num (string) #: ../src/gtk_app.cpp:624 msgid "Residue Number" msgstr "Tähteen numero" #. res_id (string) #: ../src/gtk_app.cpp:628 msgid "Residue ID" msgstr "Tähteen ID" #. res_state1 (string) #: ../src/gtk_app.cpp:632 msgid "Sec-Str State" msgstr "Sek-rakenteen tila" #. res_state2 (string) #: ../src/gtk_app.cpp:636 msgid "Protonation State" msgstr "Protonaatiotila" #: ../src/gtk_app.cpp:639 msgid "Chains" msgstr "Ketjut" #: ../src/gtk_app.cpp:652 #, c-format msgid "ERROR : Building Chains menu in project view failed : %s" msgstr "VIRHE : Ketjut-menun luominen projektinäkymässä epäonnistui : %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:668 msgid "Atom Index" msgstr "Atomin numero" #. element #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_app.cpp:672 ../src/gtk_oglview_wnd.cpp:112 #: ../src/gtk_oglview_wnd.cpp:120 msgid "Element" msgstr "Alkuaine" #: ../src/gtk_app.cpp:678 msgid "Locked" msgstr "Lukittu" #: ../src/gtk_app.cpp:681 msgid "Atoms" msgstr "Atomit" #: ../src/gtk_app.cpp:694 #, c-format msgid "ERROR : Building Atoms menu in project view failed : %s" msgstr "VIRHE : Atomit-menun luominen projektinäkymässä epäonnistui : %s" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:710 msgid "Atom Index #1" msgstr "Atomin 1 numero" #. index2 #: ../src/gtk_app.cpp:714 msgid "Atom Index #2" msgstr "Atomin 2 numero" #. bondtype #: ../src/gtk_app.cpp:718 msgid "BondType" msgstr "Sidostyyppi" #: ../src/gtk_app.cpp:721 msgid "Bonds" msgstr "Sidokset" #: ../src/gtk_app.cpp:734 #, c-format msgid "ERROR : Building Bonds menu in project view failed : %s" msgstr "VIRHE : Sidokset-menun luominen projektinäkymässä epäonnistui : %s" #. protect the model-data during background jobs... #: ../src/gtk_app.cpp:772 msgid "" "Are you sure that you\n" "want to quit the program?" msgstr "" "Oletko varma että\n" "haluat sulkea ohjelman?" #: ../src/gtk_app.cpp:839 msgid "gtk_app::sPrintToLog() : message is too long!" msgstr "gtk_app::sPrintToLog() : viesti on liian pitkä!" #: ../src/gtk_app.cpp:898 msgid "window " msgstr "ikkuna " #: ../src/gtk_app.cpp:899 ../src/gtk_app.cpp:903 msgid " (detached)" msgstr " (irrotettu)" #: ../src/gtk_app.cpp:899 msgid " (attached)" msgstr " (kiinnitetty)" #: ../src/gtk_app.cpp:901 msgid "cam " msgstr "kam " #: ../src/gtk_app.cpp:902 msgid "wnd " msgstr "ikk " #: ../src/gtk_app.cpp:921 ../src/gtk_app.cpp:922 msgid "RC plot view" msgstr "RC-plot-näkymä" #: ../src/gtk_app.cpp:927 ../src/gtk_app.cpp:928 msgid "1D plot view" msgstr "1D-plot-näkymä" #: ../src/gtk_app.cpp:934 ../src/gtk_app.cpp:935 msgid "2D plot view" msgstr "2D-plot-näkymä" #: ../src/gtk_app.cpp:941 ../src/gtk_app.cpp:942 msgid "energy-level diagram view" msgstr "energiatasokaavio" #: ../src/gtk_app.cpp:947 ../src/gtk_app.cpp:948 msgid "generic protein chain view" msgstr "proteiiniketjunäkymä" #: ../src/gtk_app.cpp:953 ../src/gtk_app.cpp:954 msgid "" msgstr "" #: ../src/gtk_app.cpp:980 ../src/project.cpp:617 msgid "camera " msgstr "kamera " #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 ../src/gtk_app.cpp:1291 #: ../src/gtk_app.cpp:1316 msgid "Object " msgstr "Objekti " #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 msgid " is set to current object." msgstr " on asetettu valituksi objektiksi." #: ../src/gtk_app.cpp:1258 ../src/gtk_app.cpp:1324 msgid "Sorry, this operation is not yet implemented." msgstr "Tätä toimintoa ei ole vielä toteutettu." #: ../src/gtk_app.cpp:1291 ../src/gtk_app.cpp:1316 msgid " is deleted." msgstr " on poistettu." #. if (ci_vector[n1].description... // this is not implemented at the moment... #: ../src/gtk_app.cpp:1348 msgid "chain #" msgstr "ketju #" #: ../src/gtk_app.cpp:1355 msgid " chain)." msgstr " ketju)." #. make the list show the updated information... #: ../src/gtk_app.cpp:1606 #, c-format msgid "Atom locking changed : %s\n" msgstr "Atomin lukitus muuttunut : %s\n" #: ../src/gtk_app.cpp:1606 msgid "yes" msgstr "kyllä" #: ../src/gtk_app.cpp:1606 msgid "no" msgstr "ei" #: ../src/gtk_app.cpp:1632 msgid "Conjugated" msgstr "Konjugoitu" #: ../src/gtk_app.cpp:1633 msgid "Single" msgstr "Yksinkertainen" #: ../src/gtk_app.cpp:1634 msgid "Double" msgstr "Kaksinkertainen" #: ../src/gtk_app.cpp:1635 msgid "Triple" msgstr "Kolminkertainen" #: ../src/gtk_app.cpp:2068 msgid "Displaying the User's Manual using the following command:" msgstr "Avataan käyttöohje seuraavan komennon avulla:" #: ../src/gtk_app.cpp:2078 msgid "Ghemical-" msgstr "" #: ../src/gtk_app.cpp:2078 msgid " released on " msgstr " julkaistu " #: ../src/gtk_app.cpp:2080 msgid "For more information please visit:" msgstr "Lisätietoa web-sivulla:" #: ../src/gtk_app.cpp:2088 msgid "Authors:" msgstr "Tekijät:" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Attach/Detach This View" msgstr "Kiinnitä/Irrota tämä näkymä" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Select whether this view is attached or in an independent window" msgstr "" "Valitse onko tämä näkymä kiinnitettynä vai näkyykö se omassa ikkunassaan" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete View" msgstr "Poista näkymä" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete this view" msgstr "Sulje tämä näkymä tai ikkuna" #: ../src/gtk_eldview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_eldview_wnd failed : %s" msgstr "" "VIRHE : ponnahdusmenun luominen gtk_eldview_wnd-näkymään epäonnistui : %s" #: ../src/gtk_file_export_dialog.cpp:41 msgid "file_export_dialog : glade_xml_get_widget() failed!!!" msgstr "" #: ../src/gtk_file_export_dialog.cpp:52 ../src/gtk_file_import_dialog.cpp:52 msgid "Automatic" msgstr "Automaattinen" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_export_dialog.cpp:131 msgid "Select a filename for export." msgstr "Valitse vietävän (export) tiedoston nimi." #: ../src/gtk_file_import_dialog.cpp:41 msgid "file_import_dialog : glade_xml_get_widget() failed!!!" msgstr "" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_import_dialog.cpp:133 msgid "Select a file to import." msgstr "Valitse tuotava (import) tiedosto." #: ../src/gtk_geomopt_dialog.cpp:41 msgid "WARNING : geomopt_dialog : glade_xml_get_widget() failed!!!" msgstr "" #: ../src/gtk_gpcview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_gpcview_wnd failed : %s" msgstr "" "VIRHE : ponnahdusmenun luominen gtk_gpcview_wnd-näkymään epäonnistui : %s" #: ../src/gtk_main.cpp:45 msgid "open a file" msgstr "avaa tiedosto" #: ../src/gtk_main.cpp:46 msgid "import a file" msgstr "tuo tiedosto (import)" #: ../src/gtk_main.cpp:61 msgid "- a GTK2 molecular modelling program" msgstr "- GTK2-molekyylimallitusohjelma" #: ../src/gtk_main.cpp:84 #, c-format msgid "OpenGL extension version - %d.%d\n" msgstr "" #: ../src/gtk_main.cpp:140 msgid "Sorry! The file import feature is disabled ; you need to recompile" msgstr "" "Tiedoston tuontiominaisuus (import) ei ole käytettävissä ; uudelleenkäännä" #: ../src/gtk_main.cpp:141 msgid "libghemical with --enable-openbabel option in order to fix this." msgstr "libghemical optiolla --enable-openbabel niin tilanne korjaantuu." #: ../src/gtk_moldyn_dialog.cpp:42 msgid "WARNING : moldyn_dialog : glade_xml_get_widget() failed!!!" msgstr "" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_moldyn_dialog.cpp:232 msgid "Select a Trajectory File." msgstr "Valitse liikeratatiedosto." #: ../src/gtk_oglview_wnd.cpp:40 msgid "Open a file" msgstr "Avaa tiedosto" #: ../src/gtk_oglview_wnd.cpp:42 msgid "Import..." msgstr "Tuo tiedosto..." #: ../src/gtk_oglview_wnd.cpp:42 msgid "Import other file formats using libopenbabel" msgstr "Lue muita tiedostoformaatteja libopenbabel:in avulla" #: ../src/gtk_oglview_wnd.cpp:44 msgid "Save a file" msgstr "Tallenna tiedosto" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export" msgstr "Vie tiedosto" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export other file formats using OpenBabel" msgstr "Kirjoita muita tiedostoformaatteja libopenbabel:in avulla" #: ../src/gtk_oglview_wnd.cpp:49 msgid "Close the file" msgstr "Sulje tiedosto" #: ../src/gtk_oglview_wnd.cpp:51 msgid "Extra Tools" msgstr "Lisätyökaluja" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import PDB" msgstr "Tuo PDB-tiedosto" #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import a PDB file" msgstr "Luo tiedosto PDB-formaatissa (import)" #. { "FileExtra2", NULL, N_("Import ???"), NULL, N_("Import a ??? file"), (GCallback) gtk_project::popup_FileExtra2 }, #: ../src/gtk_oglview_wnd.cpp:56 msgid "Select" msgstr "Valitse" #. ^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select All" msgstr "Valitse kaikki" #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select all atoms" msgstr "Valitse kaikki atomit" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select None" msgstr "Poista valinnat" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select nothing" msgstr "Poista kaikki valinnat" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert Selection" msgstr "Käännä valinnat päinvastoin" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert the selection" msgstr "" "Käännä valinnat päinvastoin ; valitut tulevat ei-valituiksi ja ei-valitut " "valituiksi" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide Selected" msgstr "Piilota valitut" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide all selected atoms" msgstr "Piilota valitut atomit" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show Selected" msgstr "Näytä valitut" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show all selected atoms" msgstr "Näytää kaikki valitut atomit" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock Selected" msgstr "Lukitse valitut" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock all selected atoms" msgstr "Lukitse kaikki valitut atomit" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock Selected" msgstr "Vapauta valitut atomit" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock all selected atoms" msgstr "Vapauta kaikki valitut atomit" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete Selected" msgstr "Poista valitut" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete all selected atoms" msgstr "Poista kaikki valitut atomit" #: ../src/gtk_oglview_wnd.cpp:67 msgid "Selection Mode" msgstr "Valintatila" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the setting from project is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select Atoms" msgstr "Valitse atomeita" #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select single atoms" msgstr "Valitse yksittäisiä atomeita" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select Residues" msgstr "Valitse tähteitä" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select residues" msgstr "Valitse kokonaisia amino- tai nukleiinihappotähteitä" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select Chains" msgstr "Valitse ketjuja" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select chains" msgstr "Valitse kokonaisia amino- tai nukleiinihappoketjuja" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select Molecules" msgstr "Valitse molekyylejä" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select molecules" msgstr "Valitse kokonaisia molekyylejä" #: ../src/gtk_oglview_wnd.cpp:75 msgid "Render" msgstr "Piirto" #. ^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:78 msgid "Quick Update Mode" msgstr "Nopeapiirtotila" #: ../src/gtk_oglview_wnd.cpp:78 msgid "" "Quick Update Mode switches into Wireframe rendering mode when doing " "interactive work" msgstr "" "Nopeapiirtotilassa grafiikka piirretään rautalankamallina silloin kun " "tehdään interaktiivista työskentelyä" #: ../src/gtk_oglview_wnd.cpp:80 msgid "Views" msgstr "Näkymät" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete This View" msgstr "Sulje tämä näkymä" #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete this graphics view" msgstr "Sulje tämä grafiikkanäkymä" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a CRD-set (experimental)" msgstr "" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a coordinate set" msgstr "" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose CRD-sets (experimental)" msgstr "" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose coordinate sets" msgstr "" #: ../src/gtk_oglview_wnd.cpp:86 msgid "Create" msgstr "Lisää" #. ^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:88 msgid "New Window" msgstr "Uusi ikkuna" #: ../src/gtk_oglview_wnd.cpp:88 msgid "Create a new view using the current camera" msgstr "Lisää uusi grafiikkanäkymä käyttäen nykyistä kameraa" #: ../src/gtk_oglview_wnd.cpp:89 msgid "New Camera" msgstr "Uusi kamera" #: ../src/gtk_oglview_wnd.cpp:89 msgid "Create a new view using a new camera" msgstr "Lisää uusi grafiikkanäkymä käyttäen uutta kameraa" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Energy-level Diagram" msgstr "Energiatasokaavio" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Create a new energy-level diagram view" msgstr "Lisää uusi näkymä jossa energiatasokaavio" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Secondary Structure Constraints" msgstr "Sekundäärirakennepakotteet" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Create a new secondary structure constraints view" msgstr "Lisää uusi näkymä jossa sekundäärirakennepakotteet" #: ../src/gtk_oglview_wnd.cpp:93 msgid "Lights" msgstr "Valot" #. ^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create New Light" msgstr "Luo uusi valo" #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create a new light object" msgstr "Luo uusi valo-objekti" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:97 msgid "Enable Local Lights" msgstr "Salli paikalliset valot" #: ../src/gtk_oglview_wnd.cpp:97 msgid "Switch on/off the local light objects" msgstr "Kytke paikalliset valo-objektit päälle tai pois" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Enable Global Lights" msgstr "Salli globaalit valot" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Switch on/off the global light objects" msgstr "Kytke globaalit valo-objektit päälle tai pois" #: ../src/gtk_oglview_wnd.cpp:100 msgid "Render Mode" msgstr "Piirtotila" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:103 msgid "Ball & Stick" msgstr "Pallotikkumalli" #: ../src/gtk_oglview_wnd.cpp:103 msgid "Display atoms and bonds using Ball & Stick mode" msgstr "Piirrä atomit ja sidokset pallotikkumallia käyttäen" #: ../src/gtk_oglview_wnd.cpp:104 msgid "van der Waals" msgstr "" #: ../src/gtk_oglview_wnd.cpp:104 msgid "Display atoms and bonds using van der Waals mode" msgstr "Piirrä atomit van der Waals-pintoina" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Cylinders" msgstr "Sylinterimalli" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Display atoms and bonds using Cylinders mode" msgstr "Piirrä atomit ja sidokset sylinterimallia käyttäen" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Wireframe" msgstr "Rautalankamalli" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Display atoms and bonds using Wireframe mode" msgstr "Piirrä atomit ja sidokset rautalankamallia käyttäen" #: ../src/gtk_oglview_wnd.cpp:107 ../src/gtk_oglview_wnd.cpp:128 msgid "Nothing" msgstr "Ei mitään" #: ../src/gtk_oglview_wnd.cpp:107 msgid "Do not display atoms and bonds" msgstr "Älä piirrä lainkaan atomeita tai sidoksia" #: ../src/gtk_oglview_wnd.cpp:109 msgid "Color Mode" msgstr "Väritystila" #: ../src/gtk_oglview_wnd.cpp:112 msgid "Color atoms and bonds by element" msgstr "Väritä atomit ja sidokset alkuaineen mukaan" #: ../src/gtk_oglview_wnd.cpp:113 ../src/gtk_oglview_wnd.cpp:127 msgid "Sec-Struct" msgstr "Sek-rakenne" #: ../src/gtk_oglview_wnd.cpp:113 msgid "Color atoms and bonds by secondary-structure state" msgstr "Väritä atomit ja sidokset sekundäärirakenteen mukaan" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Hydrophobicity" msgstr "Hydrofobisuus" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Color atoms and bonds by hydrophobicity (experimental)" msgstr "Väritä atomit ja sidokset hydrofobisuuden mukaan (experimental)" #: ../src/gtk_oglview_wnd.cpp:116 msgid "Label Mode" msgstr "Nimilapputila" #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:119 msgid "Index" msgstr "Atomin numero" #: ../src/gtk_oglview_wnd.cpp:119 msgid "Label atoms by atom index" msgstr "Näytä nimilapussa atomin indeksi" #: ../src/gtk_oglview_wnd.cpp:120 msgid "Label atoms by element" msgstr "Näytä nimilapussa atomin alkuaine" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Formal Charge" msgstr "Muodollinen varaus" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Label atoms by formal charge" msgstr "Näytä nimilapussa atomin muodollinen varaus" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Partial Charge" msgstr "Osittaisvaraus" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Label atoms by partial charge" msgstr "Näytä nimilapussa atomin osittaisvaraus" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Atom Type" msgstr "Atomityyppi" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Label atoms by atom type" msgstr "Näytä nimilapussa atomin atomityyppi" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Builder ID" msgstr "Tähteen ID" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Label atoms by sequence builder ID" msgstr "Näytä nimilapussa tähteen ID-numero" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Bond Type" msgstr "Sidostyyppi" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Label bonds by bond type" msgstr "Näytä nimilapussa sidoksen sidostyyppi" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Residue" msgstr "Tähteen nimi" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Label by residue" msgstr "Näytä nimilapussa tähteen nimi" #: ../src/gtk_oglview_wnd.cpp:127 msgid "Label by secondary structure state" msgstr "Näytä nimilapussa sekundäärirakennetila" #: ../src/gtk_oglview_wnd.cpp:128 msgid "Do not show labels" msgstr "Älä näytä nimilappuja" #: ../src/gtk_oglview_wnd.cpp:130 msgid "Projection" msgstr "Projektio" #. ^^^^^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:133 msgid "Orthographic" msgstr "Ortografinen" #: ../src/gtk_oglview_wnd.cpp:133 msgid "Use orthographic projection" msgstr "Käytä ortografista projektiota" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Perspective" msgstr "Perspektiivi" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Use perspective projection" msgstr "Käytä perspektiiviprojektiota" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #. todo : add more color combinations ; red/green red/blue ; any others needed??? #: ../src/gtk_oglview_wnd.cpp:137 msgid "Red-Blue Stereo" msgstr "Sinipuna-stereo" #: ../src/gtk_oglview_wnd.cpp:137 msgid "Use red-blue stereo mode" msgstr "Käytä sini-puna stereotilaa" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Relaxed-Eye Stereo" msgstr "" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Use relaxed-eye stereo mode" msgstr "" #: ../src/gtk_oglview_wnd.cpp:140 msgid "Objects" msgstr "Objektit" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:142 msgid "Ribbon" msgstr "Nauha-objekti" #: ../src/gtk_oglview_wnd.cpp:142 msgid "Create a Ribbon object for displaying peptides/proteins" msgstr "Lisää nauha-objektit havainnollistamaan peptidejä/proteiineja" #: ../src/gtk_oglview_wnd.cpp:143 msgid "ESP-plane" msgstr "" #: ../src/gtk_oglview_wnd.cpp:143 msgid "Create an ESP-plane object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:144 msgid "volume-rendered ESP" msgstr "" #: ../src/gtk_oglview_wnd.cpp:144 msgid "Create a volume-rendered ESP object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:145 msgid "ESP-surface" msgstr "" #: ../src/gtk_oglview_wnd.cpp:145 msgid "Create an ESP-surface object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:146 msgid "ESP-colored vdW-surface" msgstr "" #: ../src/gtk_oglview_wnd.cpp:146 msgid "Create an ESP-colored vdW-surface object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Electron density plane" msgstr "" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Create an Electron density plane object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Electron density surface" msgstr "" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Create an Electron density surface object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Molecular orbital plane" msgstr "" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Create a Molecular orbital plane object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Molecular orbital volume" msgstr "" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Create a Molecular orbital volume object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Molecular orbital surface" msgstr "" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Create a Molecular orbital surface object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:152 msgid "MO-density plane" msgstr "" #: ../src/gtk_oglview_wnd.cpp:152 msgid "Create an MO-density plane object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:153 msgid "MO-density volume" msgstr "" #: ../src/gtk_oglview_wnd.cpp:153 msgid "Create an MO-density volume object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:154 msgid "MO-density surface" msgstr "" #: ../src/gtk_oglview_wnd.cpp:154 msgid "Create an MO-density surface object" msgstr "" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete Current Object" msgstr "Poista valittu objekti" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete the currently selected object" msgstr "Poista tällä hetkellä valittuna oleva objekti" #: ../src/gtk_oglview_wnd.cpp:157 msgid "Compute" msgstr "Laskenta" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:159 msgid "Setup..." msgstr "Asetukset..." #: ../src/gtk_oglview_wnd.cpp:160 msgid "Energy" msgstr "Energia" #: ../src/gtk_oglview_wnd.cpp:161 msgid "Geometry Optimization..." msgstr "Geometriaoptimointi..." #: ../src/gtk_oglview_wnd.cpp:162 msgid "Molecular Dynamics..." msgstr "Molekyylidynamiikka..." #: ../src/gtk_oglview_wnd.cpp:163 msgid "Random Conformational Search..." msgstr "Satunnainen konformaatiohaku..." #: ../src/gtk_oglview_wnd.cpp:164 msgid "Systematic Conformational Search..." msgstr "Systemaattinen konformaatiohaku..." #: ../src/gtk_oglview_wnd.cpp:165 msgid "Monte Carlo Search..." msgstr "Monte Carlo-haku..." #: ../src/gtk_oglview_wnd.cpp:166 msgid "Plot Energy vs. 1 Torsion Angle..." msgstr "" #: ../src/gtk_oglview_wnd.cpp:167 msgid "Plot Energy vs. 2 Torsion Angles..." msgstr "" #: ../src/gtk_oglview_wnd.cpp:168 msgid "Population Analysis (ESP)" msgstr "Populaatioanalyysi (ESP)" #: ../src/gtk_oglview_wnd.cpp:169 msgid "Transition State Search..." msgstr "Siirtymätilan haku..." #: ../src/gtk_oglview_wnd.cpp:170 msgid "Stationary State Search..." msgstr "Stationäärisen tilan haku..." #: ../src/gtk_oglview_wnd.cpp:171 msgid "Formula" msgstr "Molekyylikaava" #: ../src/gtk_oglview_wnd.cpp:176 msgid "MD Trajectory Viewer..." msgstr "MD-liikeradan näyttö..." #: ../src/gtk_oglview_wnd.cpp:177 msgid "Set Current Orbital" msgstr "Aseta valittu orbitaali" #: ../src/gtk_oglview_wnd.cpp:179 msgid "Build" msgstr "Rakenna" #. ^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:181 msgid "Solvate Box..." msgstr "Liuotinlaatikko..." #: ../src/gtk_oglview_wnd.cpp:182 msgid "Solvate Sphere..." msgstr "Liuotinpallo..." #: ../src/gtk_oglview_wnd.cpp:183 msgid "Sequence Builder (amino)..." msgstr "Rakenna sekvenssi (aminohapoista)..." #: ../src/gtk_oglview_wnd.cpp:184 msgid "Sequence Builder (nucleic)..." msgstr "Rakenna sekvenssi (nukleiinihapoista)..." #: ../src/gtk_oglview_wnd.cpp:185 msgid "Center" msgstr "Keskitä" #: ../src/gtk_oglview_wnd.cpp:186 msgid "Zap All" msgstr "Poista kaikki" #: ../src/gtk_oglview_wnd.cpp:188 msgid "Hydrogens" msgstr "Vedyt" #. ^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:190 msgid "Add" msgstr "Lisää" #: ../src/gtk_oglview_wnd.cpp:191 msgid "Remove" msgstr "Poista" #: ../src/gtk_oglview_wnd.cpp:193 msgid "Enter a Command..." msgstr "Kirjoita komento..." #: ../src/gtk_oglview_wnd.cpp:380 #, c-format msgid "ERROR : Building popup-menu for gtk_oglview_wnd failed : %s" msgstr "" "VIRHE : ponnahdusmenun luominen gtk_oglview_wnd-näkymään epäonnistui : %s" #: ../src/gtk_oglview_wnd.cpp:630 msgid "sets 0 <-> " msgstr "" #: ../src/gtk_oglview_wnd.cpp:630 msgid " RMS = " msgstr "" #: ../src/gtk_oglview_wnd.cpp:636 msgid "average RMS = " msgstr "" #: ../src/gtk_p1dview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_p1dview_wnd failed : %s" msgstr "" "VIRHE : ponnahdusmenun luominen gtk_p1dview_wnd-näkymään epäonnistui : %s" #: ../src/gtk_p2dview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_p2dview_wnd failed : %s" msgstr "" "VIRHE : ponnahdusmenun luominen gtk_p2dview_wnd-näkymään epäonnistui : %s" #: ../src/gtk_progress_dialog.cpp:39 msgid "WARNING : progress_dialog : glade_xml_get_widget() failed!!!" msgstr "" #: ../src/gtk_project.cpp:81 msgid "A new project created.\n" msgstr "Uusi projekti luotu.\n" #: ../src/gtk_project.cpp:184 msgid "Thread creation failed : GeomOpt" msgstr "Säikeen luominen epäonnistui : GeomOpt" #: ../src/gtk_project.cpp:199 ../src/res_gtk/gtk_geomopt_dialog.glade.h:2 msgid "Geometry Optimization" msgstr "Geometriaoptimointi" #: ../src/gtk_project.cpp:234 msgid "Thread creation failed : MolDyn" msgstr "Säikeen luominen epäonnistui : MolDyn" #: ../src/gtk_project.cpp:249 ../src/res_gtk/gtk_moldyn_dialog.glade.h:5 msgid "Molecular Dynamics" msgstr "Molekyylidynamiikka" #: ../src/gtk_project.cpp:273 msgid "Thread creation failed : RandomSearch" msgstr "Säikeen luominen epäonnistui : RandomSearch" #: ../src/gtk_project.cpp:288 msgid "Random Search" msgstr "Satunnainen haku" #: ../src/gtk_project.cpp:776 ../src/gtk_project.cpp:794 #: ../src/gtk_project.cpp:812 ../src/gtk_project.cpp:830 #: ../src/gtk_project.cpp:848 ../src/gtk_project.cpp:866 #: ../src/gtk_project.cpp:884 ../src/gtk_project.cpp:902 #: ../src/gtk_project.cpp:920 ../src/gtk_project.cpp:938 #: ../src/gtk_project.cpp:956 ../src/gtk_project.cpp:974 msgid "Please calculate energy first!" msgstr "Laske ensin energia!" #: ../src/gtk_project.cpp:1075 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D with atom indices that define the " "torsion.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "HUOMAA!\n" "Komentomerkkijono, joka näytetään seuraavassa dialogissa, on " "epätäydellinen.\n" "Sinun tulee korvata kirjaimet A-D niiden atomien indekseillä jotka " "määrittävät torsiokulman.\n" "\n" "HUOMAA MYÖS: rakenteen korjaus tehdään aina molekyylimekaniikalla (optsteps)." #: ../src/gtk_project.cpp:1088 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D and I-L with atom indices that define the " "torsions.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "HUOMAA!\n" "Komentomerkkijono, joka näytetään seuraavassa dialogissa, on " "epätäydellinen.\n" "Sinun tulee korvata kirjaimet A-D ja I-L niiden atomien indekseillä jotka " "määrittävät torsiokulmat.\n" "\n" "HUOMAA MYÖS: rakenteen korjaus tehdään aina molekyylimekaniikalla (optsteps)." #: ../src/gtk_project.cpp:1162 msgid "ERROR" msgstr "VIRHE" #: ../src/gtk_project.cpp:1173 msgid "Trajectory file already open?" msgstr "Liikeratatiedosto on jo avattu?" #: ../src/gtk_project.cpp:1182 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letter X with the orbital index that will become the " "current orbital." msgstr "" "HUOMAA!\n" "Komentomerkkijono, joka näytetään seuraavassa dialogissa, on " "epätäydellinen.\n" "Sinun tulee korvata kirjain X sen orbitaalin indeksillä joka asetetaan " "valituksi orbitaaliksi." #: ../src/gtk_project.cpp:1237 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AAA with the sequence to be built." msgstr "" "HUOMAA!\n" "Komentomerkkijono, joka näytetään seuraavassa dialogissa, on " "epätäydellinen.\n" "Sinun tulee korvata oletussekvenssi AAA sillä sekvenssillä jonka haluat " "luoda." #: ../src/gtk_project.cpp:1250 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AGTCaguc with the sequence to be " "built." msgstr "" "HUOMAA!\n" "Komentomerkkijono, joka näytetään seuraavassa dialogissa, on " "epätäydellinen.\n" "Sinun tulee korvata oletussekvenssi AGTCaguc sillä sekvenssillä jonka haluat " "luoda." #: ../src/gtk_project.cpp:1287 msgid "Are you sure you want to clear everything?" msgstr "Oletko varma että haluat poistaa kaiken?" #: ../src/gtk_rcpview_wnd.cpp:57 #, c-format msgid "ERROR : Building popup-menu for gtk_rcpview_wnd failed : %s" msgstr "" "VIRHE : ponnahdusmenun luominen gtk_rcpview_wnd-näkymään epäonnistui : %s" #: ../src/gtk_setup_dialog.cpp:49 msgid "WARNING : setup_dialog : glade_xml_get_widget() failed!!!" msgstr "" #: ../src/gtk_setup_dialog.cpp:358 msgid "Changed the Setup for calculations " msgstr "Muutettiin asetuksia laskentaa varten " #: ../src/gtk_setup_dialog.cpp:359 ../src/project.cpp:4038 msgid "(setup = " msgstr "" #: ../src/gtk_setup_dialog.cpp:375 ../src/project.cpp:4039 msgid ", engine = " msgstr "" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:49 msgid "Set Current Element" msgstr "Aseta valittu alkuaine" #: ../src/gtk_simple_dialogs.cpp:113 msgid "Current element is now " msgstr "Valittu alkuaine on nyt " #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:133 msgid "Set Current Bondtype" msgstr "Aseta valittu sidostyyppi" #: ../src/gtk_simple_dialogs.cpp:184 msgid "Current bondtype is now " msgstr "Valittu sidostyyppi on nyt " #: ../src/gtk_simple_dialogs.cpp:449 msgid "" "This alternative PDB reader is designed to remove any gaps that might\n" "exist in the structure data. Therefore the sequence might be altered!" msgstr "" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:482 msgid "Command Interpreter" msgstr "Komentotulkki" #: ../src/gtk_simple_dialogs.cpp:503 msgid "Execute" msgstr "Suorita" #: ../src/gtk_simple_dialogs.cpp:506 msgid "Cancel" msgstr "Peru" #: ../src/gtk_stereo_dialog.cpp:37 msgid "WARNING : stereo_dialog : glade_xml_get_widget() failed!!!" msgstr "" #: ../src/gtk_trajview_dialog.cpp:39 msgid "WARNING : trajview_dialog : glade_xml_get_widget() failed!!!" msgstr "" #: ../src/gtk_trajview_dialog.cpp:82 ../src/gtk_trajview_dialog.cpp:102 #: ../src/gtk_trajview_dialog.cpp:136 ../src/gtk_trajview_dialog.cpp:151 msgid "frame = " msgstr "" #: ../src/gtk_wnd.cpp:53 #, c-format msgid "*** Cannot find the double-buffered visual.\n" msgstr "" #: ../src/gtk_wnd.cpp:54 #, c-format msgid "*** Trying single-buffered visual.\n" msgstr "" #: ../src/gtk_wnd.cpp:61 #, c-format msgid "*** No appropriate OpenGL-capable visual found.\n" msgstr "" #: ../src/gtk_wnd.cpp:66 #, c-format msgid "" "\n" "OpenGL visual configurations :\n" "\n" msgstr "" #: ../src/ogl_surface.cpp:91 msgid "evaluating grid" msgstr "lasketaan verkkoa" #: ../src/ogl_surface.cpp:106 msgid " done\n" msgstr " valmis\n" #: ../src/ogl_surface.cpp:112 msgid "interpolating in " msgstr "interpoloidaan " #: ../src/ogl_surface.cpp:131 msgid "-direction... " msgstr "-suunnassa... " #: ../src/ogl_surface.cpp:138 msgid " points, " msgstr " pistettä, " #: ../src/ogl_surface.cpp:138 msgid " cycles" msgstr " kierrosta" #: ../src/ogl_surface.cpp:155 msgid "generating image... " msgstr "luodaan kuvaa... " #: ../src/ogl_surface.cpp:185 msgid "color_surface problem #1" msgstr "" #: ../src/ogl_surface.cpp:235 msgid "color_surface problem #2" msgstr "" #: ../src/ogl_surface.cpp:335 msgid " lines, " msgstr " viivaa, " #: ../src/ogl_surface.cpp:335 msgid " triangles." msgstr " kolmiota." #: ../src/p2dview_wcl.cpp:182 msgid "now scaling the colours to range " msgstr "" #: ../src/p2dview_wcl.cpp:182 msgid " kJ/mol" msgstr "" #: ../src/pangofont_wcl.cpp:75 #, c-format msgid "*** ERROR : Can't load font '%s'\n" msgstr "*** VIRHE : Fontin lataaminen epäonnistui : %s\n" #: ../src/project.cpp:210 msgid "untitled" msgstr "nimetön" #: ../src/project.cpp:322 msgid "Cannot import that file type." msgstr "Tiedostotyyppiä ei voida tuoda." #: ../src/project.cpp:367 msgid "Cannot export that file type." msgstr "Tiedostotyyppiä ei voida viedä." #: ../src/project.cpp:409 msgid "Hydrogens added." msgstr "Vedyt lisätty." #: ../src/project.cpp:419 msgid "Hydrogens removed." msgstr "Vedyt poistettu." #: ../src/project.cpp:617 msgid " window " msgstr " ikkuna " #: ../src/project.cpp:663 msgid "" "This is the last graphics view for\n" "this project - can't close it." msgstr "" "Tämä on viimeinen grafiikkanäkymä\n" "tässä projektissa - sitä ei voi poistaa." #: ../src/project.cpp:877 msgid "Processing Command : " msgstr "Käsitellään komento : " #: ../src/project.cpp:887 msgid "> AVAILABLE COMMANDS:" msgstr "> MAHDOLLISET KOMENNOT:" #. use alphabetical order??? #: ../src/project.cpp:889 msgid "" "> add light (local/global) (directional/spotlight) -- add a new light object." msgstr "" "> add light (local/global) (directional/spotlight) -- lisää uusi valo-" "objekti." #: ../src/project.cpp:891 msgid "" "> add plane -- " "add a plane object." msgstr "" "> add plane -- " "lisää taso-objekti." #: ../src/project.cpp:892 ../src/project.cpp:902 msgid "> where: = value function : esp vdws eldens mo mod unity" msgstr "> jossa: = arvofunktio : esp vdws eldens mo mod unity" #: ../src/project.cpp:893 ../src/project.cpp:903 ../src/project.cpp:913 msgid "> = colour function : red green blue rb1 rb2" msgstr "> = värifunktio : red green blue rb1 rb2" #: ../src/project.cpp:894 ../src/project.cpp:904 ../src/project.cpp:915 #: ../src/project.cpp:930 msgid "> = scaling value for calculating the colours" msgstr "> = skaalausarvo värien laskentaa varten" #: ../src/project.cpp:895 ../src/project.cpp:905 ../src/project.cpp:916 #: ../src/project.cpp:931 msgid "> = scaling offset for calculating the colours" msgstr "> = skaalausvakio värien laskentaa varten" #: ../src/project.cpp:896 ../src/project.cpp:906 ../src/project.cpp:917 #: ../src/project.cpp:932 msgid "> = dimension of the plane object (in nm units)" msgstr "> = taso-objektin dimensio (nm-yksiköissä)" #: ../src/project.cpp:897 ../src/project.cpp:907 ../src/project.cpp:918 #: ../src/project.cpp:933 msgid "> = resolution of the plane object" msgstr "> = taso-objektin resoluutio" #: ../src/project.cpp:898 ../src/project.cpp:920 ../src/project.cpp:935 msgid "> = 0 or 1 telling if the object is transparent" msgstr "> = 0 tai 1 joka määrää onko taso läpinäkyvä" #: ../src/project.cpp:899 ../src/project.cpp:908 ../src/project.cpp:921 #: ../src/project.cpp:936 msgid "> = transparency alpha value" msgstr "> = läpinäkyvyyden alfa-arvo" #: ../src/project.cpp:901 msgid "" "> add volrend -- add " "a volume-rendering object." msgstr "" "> add volrend -- " "lisää tilavuuspiirto-objekti." #: ../src/project.cpp:910 msgid "" "> add surf1 " " -- add a single surface object." msgstr "" "> add surf1 " " -- lisää yksi pinta-objekti." #: ../src/project.cpp:911 ../src/project.cpp:924 msgid "" "> where: = value function for calculating the surface : esp vdws " "eldens mo mod unity" msgstr "" "> jossa: = arvofunktio pinnan laskemista varten : esp vdws eldens mo " "mod unity" #: ../src/project.cpp:912 ../src/project.cpp:925 msgid "" "> = value function for calculating the colours : esp vdws " "eldens mo mod unity" msgstr "" "> = arvofunktio värien laskemista varten : esp vdws eldens mo " "mod unity" #: ../src/project.cpp:914 msgid "> = scaling value for calculating the surface" msgstr "> = skaalausarvo pinnan laskemista varten" #: ../src/project.cpp:919 ../src/project.cpp:934 msgid "> = 0 or 1 telling if the object is solid" msgstr "> = 0 tai 1 joka määrää onko objekti kiinteä" #: ../src/project.cpp:923 msgid "" "> add surf2 -- add a pair of surface objects." msgstr "" "> add surf2 -- lisää pintaobjektipari." #: ../src/project.cpp:926 msgid "" "> = colour function for 1st surface : red green blue rb1 rb2" msgstr "" "> = värifunktio ensimmäiselle pinnalle : red green blue rb1 " "rb2" #: ../src/project.cpp:927 msgid "" "> = colour function for 2nd surface : red green blue rb1 rb2" msgstr "" "> = värifunktio toiselle pinnalle : red green blue rb1 rb2" #: ../src/project.cpp:928 msgid "" "> = scaling value for calculating the surface for 1st " "surface" msgstr "" "> = skaalausarvo ensimmäisen pinnan laskemista varten" #: ../src/project.cpp:929 msgid "" "> = scaling value for calculating the surface for 2nd " "surface" msgstr "> = skaalausarvo toisen pinnan laskemista varten" #: ../src/project.cpp:938 msgid "> help -- print all available commands in command strings." msgstr "> help -- tulosta kaikki mahdolliset komennot." #: ../src/project.cpp:940 msgid "> energy -- calculate a single-point energy." msgstr "> energy -- laske yhden rakenteen energia." #: ../src/project.cpp:941 msgid "> geom_opt -- do a geometry optimization run using default options." msgstr "> geom_opt -- suorita geometriaoptimointiajo oletusasetuksilla." #: ../src/project.cpp:942 msgid "> mol_dyn -- do a molecular dynamics run using default options." msgstr "> mol_dyn -- suorita molekyylidynamiikka-ajo oletusasetuksilla." #: ../src/project.cpp:944 msgid "" "> random_search -- perform a random conformational " "search." msgstr "" "> random_search -- suorita satunnainen konformaatiohaku." #: ../src/project.cpp:945 msgid "" "> systematic_search -- perform a systematic " "conformational search." msgstr "" "> systematic_search -- suorita systemaattinen " "konformaatiohaku." #: ../src/project.cpp:946 msgid "" "> montecarlo_search -- perform a " "MonteCarlo search." msgstr "" "> montecarlo_search -- suorita " "MonteCarlo-haku." #: ../src/project.cpp:948 msgid "" "> make_plot1 A B C D
-- create a 1D " "energy vs. torsion plot." msgstr "" "> make_plot1 A B C D
-- tee 1-" "ulotteinen torsioenergiakuvaaja." #: ../src/project.cpp:949 msgid "" "> make_plot2 A B C D
I J K L
" " -- create a 2D energy vs. torsions plot." msgstr "" "> make_plot2 A B C D
I J K L
" " -- tee 2-ulotteinen torsioenergiakuvaaja." #: ../src/project.cpp:951 msgid "" "> population_analysis_ESP -- determine atomic charges using an ESP fit (for " "QM methods only)." msgstr "" "> population_analysis_ESP -- laske atomeille pistevaraukset ESP-sovituksella " "(vain QM-menetelmille)." #: ../src/project.cpp:953 msgid "" "> transition_state_search -- perform a transition " "state search (for QM methods only)." msgstr "" "> transition_state_search -- tee siirtymätilan haku " "(vain QM-menetelmille)." #: ../src/project.cpp:954 msgid "" "> stationary_state_search -- perform a search for a structure with " "no forces." msgstr "" "> stationary_state_search -- etsi rakennetta jossa ei ole mihinkään " "suuntaan vaikuttavia voimia." #: ../src/project.cpp:956 msgid "" "> set_current_orbital -- set the current orbtal index for " "plotting the orbitals." msgstr "" "> set_current_orbital -- aseta valitun orbitaalin indeksi " "orbitaalikuvaajia varten." #: ../src/project.cpp:958 msgid "> update_chains -- detect polymer chains using sequence builder." msgstr "> update_chains -- etsi polymeeriketjut sekvenssirakentajan avulla." #: ../src/project.cpp:959 msgid "> build_amino (helix/strand) -- amino acid sequence builder." msgstr "" "> build_amino (helix/strand) -- tee aminohapposekvenssi " "sekvenssirakentajalla." #: ../src/project.cpp:960 msgid "> build_nucleic -- nucleic acid sequence builder." msgstr "" "> build_nucleic -- tee nukleiinihapposekvenssi " "sekvenssirakentajalla." #: ../src/project.cpp:962 msgid "> orient -- orient the system in the XYZ coordinate system." msgstr "> orient -- suuntaa systeemi XYZ-koordinaattijärjestelmässä." #: ../src/project.cpp:964 msgid "" "> solvate_box ( (export)) -- " "setup a solvation box." msgstr "" "> solvate_box ( (export)) -- " "aseta liuotinlaatikko." #: ../src/project.cpp:965 msgid "" "> solvate_sphere ( ) -- setup " "a solvation sphere." msgstr "" "> solvate_sphere ( ) -- aseta " "liuotinpallo." #: ../src/project.cpp:967 msgid "> set_formal_charge -- set formal charges to atoms." msgstr "" "> set_formal_charge -- aseta atomille muodollinen varaus." #: ../src/project.cpp:969 msgid "" "> evaluate_Bfact -- evaluate B-factors for selected atoms (a trajectory file " "must be open)." msgstr "" #: ../src/project.cpp:970 msgid "" "> evaluate_diffconst
-- evaluate diffusion constants for selected atoms " "(a trajectory file must be open, dt = time difference between frames [fs])." msgstr "" #: ../src/project.cpp:1010 msgid "Added a new object : light (" msgstr "Uusi objekti lisätty : valo (" #: ../src/project.cpp:1011 msgid "local" msgstr "paikallinen" #: ../src/project.cpp:1011 msgid "global" msgstr "globaali" #: ../src/project.cpp:1012 msgid "directional" msgstr "suuntavalo" #: ../src/project.cpp:1012 msgid "spotlight" msgstr "spottivalo" #: ../src/project.cpp:1041 msgid "ERROR : add plane : unknown value function " msgstr "" #: ../src/project.cpp:1055 msgid "ERROR : add plane : unknown colour function " msgstr "" #: ../src/project.cpp:1091 msgid "Added a new object : plane (" msgstr "Uusi objekti lisätty : taso (" #: ../src/project.cpp:1119 msgid "ERROR : add volrend : unknown value function " msgstr "" #: ../src/project.cpp:1133 msgid "ERROR : add volrend : unknown colour function " msgstr "" #: ../src/project.cpp:1166 msgid "Added a new object : volrend (" msgstr "Uusi objekti lisätty : volrend (" #: ../src/project.cpp:1199 msgid "ERROR : add surf1 : unknown value function 1 " msgstr "" #: ../src/project.cpp:1214 msgid "ERROR : add surf1 : unknown value function 2 " msgstr "" #: ../src/project.cpp:1228 msgid "ERROR : add surf1 : unknown colour function " msgstr "" #: ../src/project.cpp:1277 msgid "Added a new object : surf1 (" msgstr "Uusi objekti lisätty : surf1 (" #: ../src/project.cpp:1314 msgid "ERROR : add surf2 : unknown value function 1 " msgstr "" #: ../src/project.cpp:1329 msgid "ERROR : add surf2 : unknown value function 2 " msgstr "" #: ../src/project.cpp:1343 msgid "ERROR : add surf2 : unknown colour function 1 " msgstr "" #: ../src/project.cpp:1357 msgid "ERROR : add surf2 : unknown colour function 2 " msgstr "" #: ../src/project.cpp:1417 msgid "Added a new object : surf2 (" msgstr "Uusi objekti lisätty : surf2 (" #: ../src/project.cpp:1423 msgid "ERROR : could not process command \"add\" for parameter " msgstr "VIRHE : ei voida suorittaa komentoa \"add\" parametrille " #: ../src/project.cpp:1575 msgid "Sorry, this is for QM models only!" msgstr "Tämä toiminto on vain QM-malleille!" #: ../src/project.cpp:1622 msgid "The current orbital is now " msgstr "Valittu orbitaali on nyt " #: ../src/project.cpp:1667 ../src/project.cpp:1702 msgid "built a sequence : " msgstr "rakennettiin sekvenssi : " #: ../src/project.cpp:1715 msgid "maximum dimensions:" msgstr "maksimidimensiot:" #: ../src/project.cpp:1817 msgid "Sorry, atom not found!" msgstr "Atomia ei löydy!" #: ../src/project.cpp:1843 msgid "ERROR : Unknown command : " msgstr "VIRHE : Tuntematon komento : " #: ../src/project.cpp:1844 msgid "The \"help\" command will give more information about command strings." msgstr "Komento \"help\" antaa lisätietoa mahdollisista komentomerkkijonoista." #: ../src/project.cpp:1871 msgid "local lights = " msgstr "" #: ../src/project.cpp:1871 ../src/project.cpp:1878 msgid "on" msgstr "" #: ../src/project.cpp:1871 ../src/project.cpp:1878 msgid "off" msgstr "" #: ../src/project.cpp:1878 msgid "global lights = " msgstr "" #: ../src/project.cpp:3244 msgid "Group information about chains/residues is needed for this operation." msgstr "" #: ../src/project.cpp:3245 msgid "Is it OK to update group information?" msgstr "" #: ../src/project.cpp:3259 msgid "Sorry, no chain/residue information available for this atom." msgstr "" #: ../src/project.cpp:3278 msgid "selected atom " msgstr "" #: ../src/project.cpp:3278 msgid " (atomtype = " msgstr "" #: ../src/project.cpp:3290 msgid "selected residue " msgstr "" #: ../src/project.cpp:3290 msgid " from chain " msgstr " ketjusta " #: ../src/project.cpp:3301 msgid "selected chain " msgstr "" #: ../src/project.cpp:3325 msgid "selected molecule " msgstr "" #. this must be OK. #: ../src/project.cpp:3354 msgid "charge: " msgstr "varaus: " #: ../src/project.cpp:3372 msgid "distance: " msgstr "etäisyys: " #: ../src/project.cpp:3394 msgid "angle: " msgstr "kulma: " #: ../src/project.cpp:3394 msgid " deg" msgstr "" #: ../src/project.cpp:3413 msgid "torsion: " msgstr "torsio: " #: ../src/project.cpp:3413 msgid " deg " msgstr "" #: ../src/project.cpp:3482 msgid "MW: " msgstr "MP: " #: ../src/project.cpp:3559 msgid "ERROR : atom " msgstr "VIRHE : atomia " #: ../src/project.cpp:3559 ../src/project.cpp:3745 ../src/project.cpp:3757 msgid " not found!" msgstr " ei löydy!" #: ../src/project.cpp:3579 msgid "ERROR : could not find ic.\n" msgstr "VIRHE : sisäistä koordinaattia ei löytynyt.\n" #: ../src/project.cpp:3597 msgid "ERROR : could not find tor-term.\n" msgstr "" #: ../src/project.cpp:3601 msgid "tor(deg)" msgstr "" #: ../src/project.cpp:3601 ../src/project.cpp:3818 ../src/project.cpp:3910 msgid "E(kJ/mol)" msgstr "" #: ../src/project.cpp:3652 msgid "tor = " msgstr "" #: ../src/project.cpp:3652 ../src/project.cpp:3875 msgid " deg, energy = " msgstr "" #: ../src/project.cpp:3652 ../src/project.cpp:3875 msgid " kJ/mol." msgstr "" #: ../src/project.cpp:3745 msgid "ERROR : tor1 atom " msgstr "" #: ../src/project.cpp:3757 msgid "ERROR : tor2 atom " msgstr "" #: ../src/project.cpp:3777 msgid "ERROR : could not find ic for tor1.\n" msgstr "" #: ../src/project.cpp:3784 msgid "ERROR : could not find ic for tor2.\n" msgstr "" #: ../src/project.cpp:3807 msgid "ERROR : could not find tor-term for tor1.\n" msgstr "" #: ../src/project.cpp:3814 msgid "ERROR : could not find tor-term for tor2.\n" msgstr "" #: ../src/project.cpp:3818 msgid "tor1(deg)" msgstr "" #: ../src/project.cpp:3818 msgid "tor2(deg)" msgstr "" #: ../src/project.cpp:3875 msgid "tor1 = " msgstr "" #: ../src/project.cpp:3875 msgid " deg, tor2 = " msgstr "" #: ../src/project.cpp:3900 ../src/project.cpp:3935 msgid "r-energy = " msgstr "" #: ../src/project.cpp:3900 ../src/project.cpp:3935 msgid "p-energy = " msgstr "" #: ../src/project.cpp:3901 ../src/project.cpp:3936 msgid " is lower " msgstr "" #: ../src/project.cpp:3940 msgid "READY!" msgstr "" #: ../src/project.cpp:4037 msgid "Starting Stationary State Search " msgstr "" #: ../src/project.cpp:4050 msgid "Cycle Gradient Step\n" msgstr "" #: ../src/project.cpp:4065 msgid "the nsteps termination test was passed.\n" msgstr "lopetusehto nsteps täyttyi.\n" #: ../src/rcpview_wcl.cpp:161 msgid "the tresholds were set to " msgstr "" #: ../src/rcpview_wcl.cpp:161 msgid " and " msgstr " ja " #. ################################################################################################ #. eof #: ../src/res_gtk/gtk_file_export_dialog.glade.h:1 #: ../src/res_gtk/gtk_file_import_dialog.glade.h:1 #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:1 msgid "Browse..." msgstr "Selaa..." #: ../src/res_gtk/gtk_file_export_dialog.glade.h:2 msgid "Export File" msgstr "Vie tiedosto" #: ../src/res_gtk/gtk_file_import_dialog.glade.h:2 msgid "Import File" msgstr "Tuo tiedosto" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:1 msgid "Delta-E Cutoff:" msgstr "Delta-E katkaisuraja:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:3 msgid "Gradient Cutoff:" msgstr "Gradientti-katkaisuraja:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:4 msgid "Maximum # of Steps:" msgstr "Askelten maksimimäärä:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:2 msgid "Constant-P simulation (allow P-control at simulation stage)" msgstr "Simulaatio vakiopaineessa (salli P-säätö simulaatiovaiheessa)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:3 msgid "Constant-T simulation (allow T-control at simulation stage)" msgstr "Simulaatio vakiolämpötilassa (salli T-säätö simulaatiovaiheessa)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:4 msgid "Isothermal compressibility [1/bar] :" msgstr "Isoterminen kokoonpuristuvuus [1/bar] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:6 msgid "Number of steps : (cooling)" msgstr "Askelmäärä : (jäähdytys)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:7 msgid "Number of steps : (equilibration)" msgstr "Askelmäärä : (tasapainotus)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:8 msgid "Number of steps : (heating)" msgstr "Askelmäärä : (lämmitys)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:9 msgid "Number of steps : (simulation)" msgstr "Askelmäärä : (simulaatio)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:10 msgid "P relaxation time [fs] :" msgstr "P-relaksaatioaika [fs] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:11 msgid "Pressure [bar] :" msgstr "Paine [bar] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:12 msgid "T relaxation time [fs] : (equil/simul)" msgstr "T-relaksaatioaika [fs] : (tasap/simul)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:13 msgid "T relaxation time [fs] : (heat/cool)" msgstr "T-relaksaatioaika [fs] : (lämm/jäähd)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:14 msgid "Temperature [K] :" msgstr "Lämpötila [K] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:15 msgid "Timestep [fs] :" msgstr "Aika-askel [fs] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:16 msgid "Trajectory File : " msgstr "Liikeratatiedosto : " #: ../src/res_gtk/gtk_progress_dialog.glade.h:1 msgid "Background Job" msgstr "Tausta-ajo" #: ../src/res_gtk/gtk_progress_dialog.glade.h:2 msgid "Job Title : " msgstr "Työn nimi : " #: ../src/res_gtk/gtk_setup_dialog.glade.h:1 msgid "Select the Engine Class:" msgstr "Valitse Engine-luokka:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:2 msgid "Set the spin multiplicity of the system:" msgstr "Aseta systeemin spin-multiplisiteetti:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:3 msgid "Set the total charge of the system:" msgstr "Aseta systemin kokonaisvaraus:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:4 msgid "Enable atomtype/parameter exceptions (AMBER FF)." msgstr "Salli poikkeukset atomityypeissä/parametreissa (AMBER FF)." #: ../src/res_gtk/gtk_setup_dialog.glade.h:6 msgid "MM/SF" msgstr "" #: ../src/res_gtk/gtk_setup_dialog.glade.h:7 msgid "QM/MM" msgstr "" #: ../src/res_gtk/gtk_setup_dialog.glade.h:8 msgid "Setup" msgstr "Asetukset" #: ../src/res_gtk/gtk_setup_dialog.glade.h:9 msgid "Spin Multiplicity:" msgstr "Spin-multiplisiteetti:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:10 msgid "Total Charge:" msgstr "Kokonaisvaraus:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:11 msgid "all MM" msgstr "kaikki-MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:12 msgid "all QM" msgstr "kaikki-QM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:13 msgid "all SF" msgstr "kaikki-SF" #: ../src/res_gtk/gtk_setup_dialog.glade.h:14 msgid "this is under construction and DISABLED currently!" msgstr "" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:1 msgid "Relaxed Separation :" msgstr "" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:2 msgid "Stereo Displacement :" msgstr "" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:3 msgid "Stereo View Settings" msgstr "" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:1 msgid "Begin" msgstr "" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:2 msgid "End" msgstr "" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:3 msgid "Play" msgstr "" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:4 msgid "Trajectory Viewer" msgstr "" #~ msgid "View the Copyright notices." #~ msgstr "Tietoja ohjelmasta." ghemical-3.0.0/po/sq.po0000644000175000017500000024735311563552731011633 00000000000000# Copyright (C) 2006, 2007 Free Software Foundation, Inc. # translation of ghemical.po to Albanian # This file is distributed under the same license as the Ghemical package. # # Maintainer: Armend Iseni , 2008 # Maintainer: Vlado Pesov , 2008 # Maintainer: Bojan Seirovski , 2008 # Maintainer: Senad Sejfic , 2008 # Translator: Vlora Jakupi , 2008 # Proof-reading: Fluturie Xhila , 2008 # Proof-reading: Arlinda Kastrati, 2008 # Proof-reading: Vlora Jakupi , 2008 # msgid "" msgstr "" "Project-Id-Version: ghemical\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-04-21 14:25+0300\n" "PO-Revision-Date: 2009-01-09 13:27+0100\n" "Last-Translator: Sejfic Senad \n" "Language-Team: Albanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0\n" #: ../src/custom_app.cpp:100 #, fuzzy msgid "Added global light." msgstr "u shtua dritë globale." #: ../src/custom_app.cpp:114 #, fuzzy msgid "Added local light." msgstr "u shtua dritë lokale." #: ../src/eldview_wcl.cpp:162 msgid "No data available," msgstr "Nuk ka të dhëna në dispozicion," #: ../src/eldview_wcl.cpp:167 msgid "must be a QM model!" msgstr "duhet të jetë model QM!" #: ../src/eldview_wcl.cpp:167 msgid "please calculate energy!" msgstr "ju lutem logarit energjinë!" #: ../src/gtk_app.cpp:92 ../src/gtk_oglview_wnd.cpp:38 #, fuzzy msgid "File" msgstr "_Skedar" #: ../src/gtk_app.cpp:93 ../src/res_gtk/gtk_setup_dialog.glade.h:5 msgid "Help" msgstr "Ndihmë" #: ../src/gtk_app.cpp:95 #, fuzzy msgid "New" msgstr "_E re" #: ../src/gtk_app.cpp:95 #, fuzzy msgid "Create a new file." msgstr "Krijo një objekt të dritës së re" #. N #. ^^^^^^^^ #: ../src/gtk_app.cpp:96 ../src/gtk_oglview_wnd.cpp:40 #, fuzzy msgid "Open" msgstr "_Hap" #: ../src/gtk_app.cpp:96 #, fuzzy msgid "Open an existing file." msgstr "Hap një skedar" #. O #: ../src/gtk_app.cpp:97 ../src/gtk_oglview_wnd.cpp:44 #, fuzzy msgid "Save as..." msgstr "_Ruaj si..." #: ../src/gtk_app.cpp:97 #, fuzzy msgid "Save a file." msgstr "Ruaj një skedar" #. S #. { "ExportGraphics", GTK_STOCK_SAVE, N_("Export Graphics"), NULL, N_("Export graphics"), (GCallback) gtk_project::popup_FileExportGraphics }, #: ../src/gtk_app.cpp:98 ../src/gtk_oglview_wnd.cpp:49 #, fuzzy msgid "Close" msgstr "_Mbyll" #: ../src/gtk_app.cpp:98 #, fuzzy msgid "Quit the program." msgstr "Braktis programin" #. C #: ../src/gtk_app.cpp:100 msgid "Contents" msgstr "" #: ../src/gtk_app.cpp:100 #, fuzzy msgid "View the User's Manual." msgstr "Shiko Udhëzuesin e përdoruesit" #. H #: ../src/gtk_app.cpp:101 #, fuzzy msgid "About" msgstr "_Për" #: ../src/gtk_app.cpp:101 msgid "Information about this program." msgstr "" #. A #. the rest are toolbar actions... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_app.cpp:106 #, fuzzy msgid "Set the current element." msgstr "Vendos elementin aktual" #: ../src/gtk_app.cpp:107 #, fuzzy msgid "Set the current bondtype." msgstr "Vendos tipin aktual të lidhjes" #: ../src/gtk_app.cpp:108 #, fuzzy msgid "Setup or change the comp.chem. method in use." msgstr "Parametrizo ose ndrysho metodën comp.chem. e cila është në përdorim" #: ../src/gtk_app.cpp:113 msgid "Draw ; add atoms and bonds to the model." msgstr "Vizato ; shto atome dhe lidhje në model." #: ../src/gtk_app.cpp:114 msgid "Erase ; remove atoms and bonds from the model." msgstr "Fshij ; largo atome dhe lidhje nga modeli." #: ../src/gtk_app.cpp:115 msgid "Select ; make selections in the model, and also select objects." msgstr "" "Përzgjedh ; bëj përzgjedhje në model, dhe gjithashtu përzgjedh objekte." #: ../src/gtk_app.cpp:116 msgid "Zoom ; zoom the view." msgstr "Zmadho ; zmadho pamjen" #: ../src/gtk_app.cpp:117 msgid "Clipping ; set the near and far clipping planes for graphics rendering." msgstr "" "Prerje ; vendos planet e afërta dhe të largëta për pasqyrim të grafiqeve." #: ../src/gtk_app.cpp:118 msgid "" "TranslateXY ; translate the camera or a selected object in XY-direction." msgstr "" "TransferoXY ; transfero aparatin për fotografim apo një objekt të " "përzgjedhur në drejtimin-XY." #: ../src/gtk_app.cpp:119 msgid "TranslateZ ; translate the camera or a selected object in Z-direction." msgstr "" "TransferoZ ; transfero aparatin për fotografim apo një objekt të përzgjedhur " "në drejtimin-Z." #: ../src/gtk_app.cpp:120 msgid "" "OrbitXY ; orbit the camera or a selected object around the focus point in XY-" "direction." msgstr "" "OrbitXY ; orbito aparatin për fotografim ose një objekt të përzgjedhur rreth " "pikës së fokusimit në drejtimin-XY." #: ../src/gtk_app.cpp:121 msgid "" "OrbitZ ; orbit the camera or a selected object around the focus point in Z-" "direction." msgstr "" "OrbitZ ; orbito aparatin për fotografim ose një objekt të përzgjedhur rreth " "pikës së fokusimit në drejtimin-Z." #: ../src/gtk_app.cpp:122 msgid "RotateXY ; turn the camera or a selected object in XY-direction." msgstr "" "RrotulloXY ; kthe aparatin për fotografim ose një objekt të përzgjedhur në " "drejtimin-XY." #: ../src/gtk_app.cpp:123 msgid "RotateZ ; turn the camera or a selected object in Z-direction." msgstr "" "RrotulloZ ; kthe aparatin për fotografim ose një objekt të përzgjedhur n " "drejtimin-Z." #: ../src/gtk_app.cpp:124 msgid "Measure ; measure distances, angles and torsions." msgstr "Mat ; mat largësi, kënde dhe përdredhje." #: ../src/gtk_app.cpp:207 #, fuzzy msgid "Set to Current Object" msgstr "_Vnedos në objektin aktual" #: ../src/gtk_app.cpp:207 msgid "Set this object to Current Object" msgstr "Vendos këtë objekt në Objektin Aktual" #: ../src/gtk_app.cpp:208 #, fuzzy msgid "Delete Object/View" msgstr "_Hiq Objektin/Pamjen" #: ../src/gtk_app.cpp:208 msgid "Delete this object or view" msgstr "Hiq këtë objekt apo pamje" #: ../src/gtk_app.cpp:225 #, fuzzy msgid "Update View" msgstr "_Përditëso Pamjen" #: ../src/gtk_app.cpp:225 msgid "Rebuild the chains info for this view" msgstr "Rindërto informacione për zinxhirët për këtë pamje" #: ../src/gtk_app.cpp:226 #, fuzzy msgid "Select Item" msgstr "_Përzgjedh Artikuj" #: ../src/gtk_app.cpp:226 msgid "Select/unselect this chain/residue" msgstr "Përzgjedh/Çzgjedh këtë zinxhir/radikal" #: ../src/gtk_app.cpp:243 #, fuzzy msgid "Select Atom" msgstr "_Përzgjedh Atomin" #: ../src/gtk_app.cpp:243 msgid "Select/unselect this atom" msgstr "Përzgjedh/çzgjedh këtë atom" #: ../src/gtk_app.cpp:258 #, fuzzy msgid "Select Bond" msgstr "_Përzgjedh Lidhjet" #: ../src/gtk_app.cpp:258 msgid "Select/unselect this bond" msgstr "_Përzgjedh/çpërzgjedh këtë lidhje" #: ../src/gtk_app.cpp:344 msgid "Ghemical" msgstr "Ghemical" #: ../src/gtk_app.cpp:351 #, fuzzy, c-format msgid "ERROR : Icon loading failed : %s\n" msgstr "GABIM : nuk mund të gjejë ic.\n" #: ../src/gtk_app.cpp:381 #, fuzzy, c-format msgid "ERROR : Building main menu failed : %s" msgstr "Dështoi ndërtimi i menysë kryesore : %s" #: ../src/gtk_app.cpp:566 msgid "project view" msgstr "Pamej e projektit" #. optional : draw the stripes to background. #. ??? (string) #: ../src/gtk_app.cpp:584 msgid "Object" msgstr "Objekti" #. ??? (string) #: ../src/gtk_app.cpp:588 msgid "Sub-Objects" msgstr "Nën-objekte" #: ../src/gtk_app.cpp:591 msgid "Views/Objects" msgstr "Pamje/Objekte" #: ../src/gtk_app.cpp:604 #, fuzzy, c-format msgid "ERROR : Building Views/Objects menu in project view failed : %s" msgstr "Dështoi ndërtimi i menysë gvp Pamje/Objekte : %s" #. optional : draw the stripes to background. #. chain_info (string) #: ../src/gtk_app.cpp:620 msgid "Chain Description" msgstr "Përkshkrim i vargëzuar " #. res_num (string) #: ../src/gtk_app.cpp:624 msgid "Residue Number" msgstr "Numri i radikalit" #. res_id (string) #: ../src/gtk_app.cpp:628 msgid "Residue ID" msgstr "ID e radikalit" #. res_state1 (string) #: ../src/gtk_app.cpp:632 msgid "Sec-Str State" msgstr "Gejndja Sec-Str" #. res_state2 (string) #: ../src/gtk_app.cpp:636 msgid "Protonation State" msgstr "Gjendja e Protonimit" #: ../src/gtk_app.cpp:639 msgid "Chains" msgstr "Zinxhirë" #: ../src/gtk_app.cpp:652 #, fuzzy, c-format msgid "ERROR : Building Chains menu in project view failed : %s" msgstr "Dështoi ndërtimi i menysë gpv Zinxhirë" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:668 msgid "Atom Index" msgstr "Tregues i atomit" #. element #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_app.cpp:672 ../src/gtk_oglview_wnd.cpp:112 #: ../src/gtk_oglview_wnd.cpp:120 msgid "Element" msgstr "Elementi" #: ../src/gtk_app.cpp:678 msgid "Locked" msgstr "i Mbyllur" #: ../src/gtk_app.cpp:681 msgid "Atoms" msgstr "Atome" #: ../src/gtk_app.cpp:694 #, fuzzy, c-format msgid "ERROR : Building Atoms menu in project view failed : %s" msgstr "Dështoi ndërtimi i menysë gpv Atome" #. optional : draw the stripes to background. #. index1 #: ../src/gtk_app.cpp:710 msgid "Atom Index #1" msgstr "Tregues i atomit #1" #. index2 #: ../src/gtk_app.cpp:714 msgid "Atom Index #2" msgstr "Tregues i atomit #2" #. bondtype #: ../src/gtk_app.cpp:718 msgid "BondType" msgstr "Tipi i lidhjes" #: ../src/gtk_app.cpp:721 msgid "Bonds" msgstr "Lidhje" #: ../src/gtk_app.cpp:734 #, fuzzy, c-format msgid "ERROR : Building Bonds menu in project view failed : %s" msgstr "Dështoi ndërtimi i menysë gpv Lidhje" #. protect the model-data during background jobs... #: ../src/gtk_app.cpp:772 msgid "" "Are you sure that you\n" "want to quit the program?" msgstr "" "A jeni të sigurtë që\n" "doni të braktisni programin?" #: ../src/gtk_app.cpp:839 msgid "gtk_app::sPrintToLog() : message is too long!" msgstr "gtk_app::sPrinto për t'u Loguar() : mesazhi është shumë i gjatë!" #: ../src/gtk_app.cpp:898 msgid "window " msgstr "dritare " #: ../src/gtk_app.cpp:899 ../src/gtk_app.cpp:903 msgid " (detached)" msgstr " (e ndarë)" #: ../src/gtk_app.cpp:899 msgid " (attached)" msgstr " (e bashkangjitur)" #: ../src/gtk_app.cpp:901 msgid "cam " msgstr "kamerë" #: ../src/gtk_app.cpp:902 msgid "wnd " msgstr "dritare" #: ../src/gtk_app.cpp:921 ../src/gtk_app.cpp:922 msgid "RC plot view" msgstr "Pamja e vizatimit RC" #: ../src/gtk_app.cpp:927 ../src/gtk_app.cpp:928 msgid "1D plot view" msgstr "Pamja e vizatimit 1D" #: ../src/gtk_app.cpp:934 ../src/gtk_app.cpp:935 msgid "2D plot view" msgstr "Pamja e vizatimit 2D" #: ../src/gtk_app.cpp:941 ../src/gtk_app.cpp:942 msgid "energy-level diagram view" msgstr "pamja e diagramit të nivelit-të energjisë" #: ../src/gtk_app.cpp:947 ../src/gtk_app.cpp:948 msgid "generic protein chain view" msgstr "pamja e zinxhirit të proteinave të përgjithshme" #: ../src/gtk_app.cpp:953 ../src/gtk_app.cpp:954 msgid "" msgstr "" #: ../src/gtk_app.cpp:980 ../src/project.cpp:617 msgid "camera " msgstr "kamerë" #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 ../src/gtk_app.cpp:1291 #: ../src/gtk_app.cpp:1316 msgid "Object " msgstr "Objekt " #: ../src/gtk_app.cpp:1247 ../src/gtk_app.cpp:1255 msgid " is set to current object." msgstr " vendoset në objektin aktual." #: ../src/gtk_app.cpp:1258 ../src/gtk_app.cpp:1324 #, fuzzy msgid "Sorry, this operation is not yet implemented." msgstr "Kërkojmë falje, ky operacion nuk është zbatuar." #: ../src/gtk_app.cpp:1291 ../src/gtk_app.cpp:1316 msgid " is deleted." msgstr " është hequr." #. if (ci_vector[n1].description... // this is not implemented at the moment... #: ../src/gtk_app.cpp:1348 msgid "chain #" msgstr "zinxhir #" #: ../src/gtk_app.cpp:1355 msgid " chain)." msgstr " zinxhir)." #. make the list show the updated information... #: ../src/gtk_app.cpp:1606 #, fuzzy, c-format msgid "Atom locking changed : %s\n" msgstr "Bllokuesi u ndryshua: %s\n" #: ../src/gtk_app.cpp:1606 #, fuzzy msgid "yes" msgstr " cikle" #: ../src/gtk_app.cpp:1606 #, fuzzy msgid "no" msgstr "OrbitXY" #: ../src/gtk_app.cpp:1632 #, fuzzy msgid "Conjugated" msgstr "e bashkuar" #: ../src/gtk_app.cpp:1633 #, fuzzy msgid "Single" msgstr "e vetme" #: ../src/gtk_app.cpp:1634 #, fuzzy msgid "Double" msgstr "dyfishe" #: ../src/gtk_app.cpp:1635 #, fuzzy msgid "Triple" msgstr "trefishe" #: ../src/gtk_app.cpp:2068 #, fuzzy msgid "Displaying the User's Manual using the following command:" msgstr "" "Përpiqemi të shfaqim Udhëzuein për përdoruesin duke përdoruru komandat në " "vijim:" #: ../src/gtk_app.cpp:2078 #, fuzzy msgid "Ghemical-" msgstr "Ghemical" #: ../src/gtk_app.cpp:2078 msgid " released on " msgstr " e publikuar më " #: ../src/gtk_app.cpp:2080 msgid "For more information please visit:" msgstr "Për më shumë informacione, ju lutem vizitoni:" #: ../src/gtk_app.cpp:2088 msgid "Authors:" msgstr "Autorë:" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Attach/Detach This View" msgstr "Bashkangjit/Ndaj këtë Pamje" #: ../src/gtk_eldview_wnd.cpp:32 ../src/gtk_gpcview_wnd.cpp:32 #: ../src/gtk_oglview_wnd.cpp:36 ../src/gtk_p1dview_wnd.cpp:32 #: ../src/gtk_p2dview_wnd.cpp:32 ../src/gtk_rcpview_wnd.cpp:32 msgid "Select whether this view is attached or in an independent window" msgstr "" "Përzgjedh nëse kjo pamje bashkangjitet apo është në një dritare të pavarur" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete View" msgstr "Hiq Pamjen" #: ../src/gtk_eldview_wnd.cpp:33 ../src/gtk_gpcview_wnd.cpp:33 #: ../src/gtk_p1dview_wnd.cpp:33 ../src/gtk_p2dview_wnd.cpp:33 #: ../src/gtk_rcpview_wnd.cpp:33 msgid "Delete this view" msgstr "Hiq këtë pamje" #: ../src/gtk_eldview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_eldview_wnd failed : %s" msgstr "Dështoi ndërtimi i menysë geldv : %s" #: ../src/gtk_file_export_dialog.cpp:41 msgid "file_export_dialog : glade_xml_get_widget() failed!!!" msgstr "dialog_për eksportim_të skedarit : dështoi glade_xml_get_widget()!!!" #: ../src/gtk_file_export_dialog.cpp:52 ../src/gtk_file_import_dialog.cpp:52 msgid "Automatic" msgstr "Automatik" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_export_dialog.cpp:131 msgid "Select a filename for export." msgstr "" #: ../src/gtk_file_import_dialog.cpp:41 msgid "file_import_dialog : glade_xml_get_widget() failed!!!" msgstr "dialog_për importim_të skedarit : dështoi glade_xml_get_widget()!!!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_file_import_dialog.cpp:133 #, fuzzy msgid "Select a file to import." msgstr "Përzgjedh atome të vetme" #: ../src/gtk_geomopt_dialog.cpp:41 #, fuzzy msgid "WARNING : geomopt_dialog : glade_xml_get_widget() failed!!!" msgstr "dialogu_geomopt : dështoi glade_xml_get_widget()!!!" #: ../src/gtk_gpcview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_gpcview_wnd failed : %s" msgstr "Dështoi ndërtimi i menysë ggpcv : %s" #: ../src/gtk_main.cpp:45 msgid "open a file" msgstr "hap një skedar" #: ../src/gtk_main.cpp:46 msgid "import a file" msgstr "importo një skedar" #: ../src/gtk_main.cpp:61 msgid "- a GTK2 molecular modelling program" msgstr "programi -a GTK2 për modelimin e molekulës " #: ../src/gtk_main.cpp:84 #, fuzzy, c-format msgid "OpenGL extension version - %d.%d\n" msgstr "" "\n" "versioni shtesë OpenGL - %d.%d\n" #: ../src/gtk_main.cpp:140 #, fuzzy msgid "Sorry! The file import feature is disabled ; you need to recompile" msgstr "" "këkojmë falje! tipari i importimit të skedarit është çaktivizuar ; duhet ta " "ripërpilohet" #: ../src/gtk_main.cpp:141 msgid "libghemical with --enable-openbabel option in order to fix this." msgstr "" "libghemical me --aktivizo-openbabel opsionin me qëllim të rregullimit të " "kësaj." #: ../src/gtk_moldyn_dialog.cpp:42 #, fuzzy msgid "WARNING : moldyn_dialog : glade_xml_get_widget() failed!!!" msgstr "dialogu_moldyn : dështoi glade_xml_get_widget() !!!" #. cout << "handler_ButtonBrowse() : ref = " << ref << endl; #. handle the file selection... #. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_moldyn_dialog.cpp:232 msgid "Select a Trajectory File." msgstr "Përzgjedh një skedar të trajektores." #: ../src/gtk_oglview_wnd.cpp:40 msgid "Open a file" msgstr "Hap një skedar" #: ../src/gtk_oglview_wnd.cpp:42 #, fuzzy msgid "Import..." msgstr "_Importo..." #: ../src/gtk_oglview_wnd.cpp:42 #, fuzzy msgid "Import other file formats using libopenbabel" msgstr "Importo formate tjera të skedarit duke p;rdorur OpenBabel" #: ../src/gtk_oglview_wnd.cpp:44 msgid "Save a file" msgstr "Ruaj një skedar" #: ../src/gtk_oglview_wnd.cpp:46 #, fuzzy msgid "Export" msgstr "_Eksporto" #: ../src/gtk_oglview_wnd.cpp:46 msgid "Export other file formats using OpenBabel" msgstr "Eksporto formate tjera të skedarit duke përdorur OpenBabel" #: ../src/gtk_oglview_wnd.cpp:49 msgid "Close the file" msgstr "Mbyll skedarin" #: ../src/gtk_oglview_wnd.cpp:51 #, fuzzy msgid "Extra Tools" msgstr "_Vegla shtesë" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:53 #, fuzzy msgid "Import PDB" msgstr "_Importo PDB" #: ../src/gtk_oglview_wnd.cpp:53 msgid "Import a PDB file" msgstr "Importo një skedar PDB" #. { "FileExtra2", NULL, N_("Import ???"), NULL, N_("Import a ??? file"), (GCallback) gtk_project::popup_FileExtra2 }, #: ../src/gtk_oglview_wnd.cpp:56 #, fuzzy msgid "Select" msgstr "_Përzgjedh" #. ^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:58 #, fuzzy msgid "Select All" msgstr "Përzgjedh _të gjitha" #: ../src/gtk_oglview_wnd.cpp:58 msgid "Select all atoms" msgstr "Përzgjedh të gjitha atomet" #: ../src/gtk_oglview_wnd.cpp:59 #, fuzzy msgid "Select None" msgstr "Përzgjedh _asnjë" #: ../src/gtk_oglview_wnd.cpp:59 msgid "Select nothing" msgstr "Mos përzgjedh asgjë" #: ../src/gtk_oglview_wnd.cpp:60 #, fuzzy msgid "Invert Selection" msgstr "_Kthe përzgjedhjen anasjellts" #: ../src/gtk_oglview_wnd.cpp:60 msgid "Invert the selection" msgstr "Kthe përzgjedhjen anasjelltas" #: ../src/gtk_oglview_wnd.cpp:61 #, fuzzy msgid "Hide Selected" msgstr "_Fshih të përzgjedhurat" #: ../src/gtk_oglview_wnd.cpp:61 msgid "Hide all selected atoms" msgstr "Fshih të gjitha atomet e përzgjedhura" #: ../src/gtk_oglview_wnd.cpp:62 #, fuzzy msgid "Show Selected" msgstr "_Shfaq të përzgjedhurat" #: ../src/gtk_oglview_wnd.cpp:62 msgid "Show all selected atoms" msgstr "Shfaq të gjitha atomet e përzgjedhura" #: ../src/gtk_oglview_wnd.cpp:63 #, fuzzy msgid "Lock Selected" msgstr "_Blloko të përzgjedhurat" #: ../src/gtk_oglview_wnd.cpp:63 msgid "Lock all selected atoms" msgstr "Blloko të gjitha atomet e përzgjedhura" #: ../src/gtk_oglview_wnd.cpp:64 #, fuzzy msgid "Unlock Selected" msgstr "_Çblloko të përzgjedhurat" #: ../src/gtk_oglview_wnd.cpp:64 msgid "Unlock all selected atoms" msgstr "Çblloko të gjitha atomet e përzgjedhura" #: ../src/gtk_oglview_wnd.cpp:65 #, fuzzy msgid "Delete Selected" msgstr "_Hiq të përzgjedhurat" #: ../src/gtk_oglview_wnd.cpp:65 msgid "Delete all selected atoms" msgstr "Hiq të gjitha atomet e përzgjedhura" #: ../src/gtk_oglview_wnd.cpp:67 #, fuzzy msgid "Selection Mode" msgstr "_Përzgjedh mënyrën" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the setting from project is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:70 #, fuzzy msgid "Select Atoms" msgstr "Përzgjedh _Atome" #: ../src/gtk_oglview_wnd.cpp:70 msgid "Select single atoms" msgstr "Përzgjedh atome të vetme" #: ../src/gtk_oglview_wnd.cpp:71 #, fuzzy msgid "Select Residues" msgstr "Përzgjedh _Radikale" #: ../src/gtk_oglview_wnd.cpp:71 msgid "Select residues" msgstr "Përzgjedh radikale" #: ../src/gtk_oglview_wnd.cpp:72 #, fuzzy msgid "Select Chains" msgstr "Përzgjedh _zinxhirë" #: ../src/gtk_oglview_wnd.cpp:72 msgid "Select chains" msgstr "Përzgjedh zinxhirë" #: ../src/gtk_oglview_wnd.cpp:73 #, fuzzy msgid "Select Molecules" msgstr "Përzgjedh _Molekula" #: ../src/gtk_oglview_wnd.cpp:73 msgid "Select molecules" msgstr "Përzgjedh molekula" #: ../src/gtk_oglview_wnd.cpp:75 #, fuzzy msgid "Render" msgstr "_Pasqyro" #. ^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:78 msgid "Quick Update Mode" msgstr "Mënyra për përditësim të shpejtë" #: ../src/gtk_oglview_wnd.cpp:78 msgid "" "Quick Update Mode switches into Wireframe rendering mode when doing " "interactive work" msgstr "" "Mënyra për përditësim të shpejtë kyçet në mënyrën për pasqyrim WireFrame kur " "kryeni punë ndrëvepruese" #: ../src/gtk_oglview_wnd.cpp:80 #, fuzzy msgid "Views" msgstr "_Pamje" #. ^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete This View" msgstr "Hiq këtë Pamje" #: ../src/gtk_oglview_wnd.cpp:82 msgid "Delete this graphics view" msgstr "Hiq këtë pamje të grafiqeve" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a CRD-set (experimental)" msgstr "Ruaj grupën-CRD (eksperimentale)" #: ../src/gtk_oglview_wnd.cpp:83 msgid "Save a coordinate set" msgstr "Ruaj një grupë të koordinatave" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose CRD-sets (experimental)" msgstr "Mbingarko grupet-CRD (elsperimentale)" #: ../src/gtk_oglview_wnd.cpp:84 msgid "Superimpose coordinate sets" msgstr "Mbingarko grupet e koordinatave" #: ../src/gtk_oglview_wnd.cpp:86 #, fuzzy msgid "Create" msgstr "_Krijo" #. ^^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:88 msgid "New Window" msgstr "Dritare e Re" #: ../src/gtk_oglview_wnd.cpp:88 msgid "Create a new view using the current camera" msgstr "Krijo një pamje të re duke përdorur aparatin aktual për fotografim" #: ../src/gtk_oglview_wnd.cpp:89 msgid "New Camera" msgstr "Aparat i ri për fotografim" #: ../src/gtk_oglview_wnd.cpp:89 msgid "Create a new view using a new camera" msgstr "Krijo një pamje të re duke përdorur aparatin e ri për fotografim" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Energy-level Diagram" msgstr "Diagrami për nivelin e energjisë" #: ../src/gtk_oglview_wnd.cpp:90 msgid "Create a new energy-level diagram view" msgstr "Krijo një pamje të diagramit për nivelit të energjisë" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Secondary Structure Constraints" msgstr "Shtrëngimet e Strukturës Dytësore" #: ../src/gtk_oglview_wnd.cpp:91 msgid "Create a new secondary structure constraints view" msgstr "Krijo pamje të shtrëngimeve të strukturës dytësore" #: ../src/gtk_oglview_wnd.cpp:93 #, fuzzy msgid "Lights" msgstr "_Drita" #. ^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create New Light" msgstr "Krijo dritë tjetër" #: ../src/gtk_oglview_wnd.cpp:95 msgid "Create a new light object" msgstr "Krijo një objekt të dritës së re" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:97 msgid "Enable Local Lights" msgstr "Aktivizo dritata lokale" #: ../src/gtk_oglview_wnd.cpp:97 msgid "Switch on/off the local light objects" msgstr "Kyç/çkyç objektet e dritës lokale" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Enable Global Lights" msgstr "Aktivizo drita globale" #: ../src/gtk_oglview_wnd.cpp:98 msgid "Switch on/off the global light objects" msgstr "Kyç/çkyç objekte nga drita globale " #: ../src/gtk_oglview_wnd.cpp:100 #, fuzzy msgid "Render Mode" msgstr "_Mynra e pasqyrimit" #. ^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:103 msgid "Ball & Stick" msgstr "Top & Shkop" #: ../src/gtk_oglview_wnd.cpp:103 msgid "Display atoms and bonds using Ball & Stick mode" msgstr "Afisho atome dhe lidhje duke përdorur mënyrën Top & Shkop" #: ../src/gtk_oglview_wnd.cpp:104 msgid "van der Waals" msgstr "van der Waals" #: ../src/gtk_oglview_wnd.cpp:104 msgid "Display atoms and bonds using van der Waals mode" msgstr "Afisho atome dhe lidhje duke përdorur mënyrën van der Waals" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Cylinders" msgstr "Cilindra" #: ../src/gtk_oglview_wnd.cpp:105 msgid "Display atoms and bonds using Cylinders mode" msgstr "Afisho atome dhe lidhje duke përdoruru mënyrën Cilindra" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Wireframe" msgstr "WireFrame" #: ../src/gtk_oglview_wnd.cpp:106 msgid "Display atoms and bonds using Wireframe mode" msgstr "Afisho atome dhe lidhje duke përdorur mënyrën WireFrame" #: ../src/gtk_oglview_wnd.cpp:107 ../src/gtk_oglview_wnd.cpp:128 msgid "Nothing" msgstr "Asgjë" #: ../src/gtk_oglview_wnd.cpp:107 msgid "Do not display atoms and bonds" msgstr "Mos afisho atome dhe lidhje" #: ../src/gtk_oglview_wnd.cpp:109 #, fuzzy msgid "Color Mode" msgstr "Mënyra _Ngjyros" #: ../src/gtk_oglview_wnd.cpp:112 msgid "Color atoms and bonds by element" msgstr "Ngjyros atome dhe lidhje sipas elementit" #: ../src/gtk_oglview_wnd.cpp:113 ../src/gtk_oglview_wnd.cpp:127 msgid "Sec-Struct" msgstr "Strukt-Dyt" #: ../src/gtk_oglview_wnd.cpp:113 msgid "Color atoms and bonds by secondary-structure state" msgstr "Ngjyros atome dhe lidhje sipas gjendjes strukturë-dytësore" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Hydrophobicity" msgstr "Hidrofobicitet" #: ../src/gtk_oglview_wnd.cpp:114 msgid "Color atoms and bonds by hydrophobicity (experimental)" msgstr "Ngjyros atome dhe lidhje sipas hidrofobicitetit (eksperimentale)" #: ../src/gtk_oglview_wnd.cpp:116 #, fuzzy msgid "Label Mode" msgstr "Mënyra _Emërto" #. ^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:119 msgid "Index" msgstr "Tregues" #: ../src/gtk_oglview_wnd.cpp:119 msgid "Label atoms by atom index" msgstr "Emërto atome sipas treguesit të atomit" #: ../src/gtk_oglview_wnd.cpp:120 msgid "Label atoms by element" msgstr "Emërto atome sipas elementit" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Formal Charge" msgstr "Ngarkesë formale" #: ../src/gtk_oglview_wnd.cpp:121 msgid "Label atoms by formal charge" msgstr "Emërto atome sipas ngarkesës formale" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Partial Charge" msgstr "Ngarkesë e pjesshme" #: ../src/gtk_oglview_wnd.cpp:122 msgid "Label atoms by partial charge" msgstr "Emërto atome sipas ngarkesës së pjesshme" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Atom Type" msgstr "Tipi i atomeve" #: ../src/gtk_oglview_wnd.cpp:123 msgid "Label atoms by atom type" msgstr "Emërto atome sipas tipit të atomeve" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Builder ID" msgstr "ID e ndërtuesit" #: ../src/gtk_oglview_wnd.cpp:124 msgid "Label atoms by sequence builder ID" msgstr "Emërto atome sipas ID së ndërtuesit e vargëzimit" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Bond Type" msgstr "Tipi i lidhjes" #: ../src/gtk_oglview_wnd.cpp:125 msgid "Label bonds by bond type" msgstr "Emërto lidhje sipas tipit të lidhjes" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Residue" msgstr "Radikal" #: ../src/gtk_oglview_wnd.cpp:126 msgid "Label by residue" msgstr "Emërto sipas radikalit" #: ../src/gtk_oglview_wnd.cpp:127 msgid "Label by secondary structure state" msgstr "Emërto sipas gjendjes së strukturës së dytë" #: ../src/gtk_oglview_wnd.cpp:128 msgid "Do not show labels" msgstr "Mos shfaq emërtime" #: ../src/gtk_oglview_wnd.cpp:130 #, fuzzy msgid "Projection" msgstr "_Projektim" #. ^^^^^^^^^^^^^^^^^^ #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #: ../src/gtk_oglview_wnd.cpp:133 msgid "Orthographic" msgstr "Ortografik" #: ../src/gtk_oglview_wnd.cpp:133 msgid "Use orthographic projection" msgstr "Përdor projektime ortografike" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Perspective" msgstr "Perspektivë" #: ../src/gtk_oglview_wnd.cpp:134 msgid "Use perspective projection" msgstr "Përdor projektimin perspektivë" #. todo : convert these into toggle items so that the local setting is show in each of the graphics views... #. todo : add more color combinations ; red/green red/blue ; any others needed??? #: ../src/gtk_oglview_wnd.cpp:137 msgid "Red-Blue Stereo" msgstr "Stereo Kuq-Kaltër" #: ../src/gtk_oglview_wnd.cpp:137 msgid "Use red-blue stereo mode" msgstr "Përdor mënyrën stereo kuq-kaltër" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Relaxed-Eye Stereo" msgstr "Stereo Sy-i relaksuar" #: ../src/gtk_oglview_wnd.cpp:138 msgid "Use relaxed-eye stereo mode" msgstr "Përdor mënyrën stereo sy-ipushuar" #: ../src/gtk_oglview_wnd.cpp:140 #, fuzzy msgid "Objects" msgstr "_Objekte" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:142 msgid "Ribbon" msgstr "Ribbon" #: ../src/gtk_oglview_wnd.cpp:142 msgid "Create a Ribbon object for displaying peptides/proteins" msgstr "Krijo një objekt Ribbon për të afishuar peptide/proteine" #: ../src/gtk_oglview_wnd.cpp:143 msgid "ESP-plane" msgstr "ESP-plani" #: ../src/gtk_oglview_wnd.cpp:143 msgid "Create an ESP-plane object" msgstr "Krijo një objekt ESP-plan" #: ../src/gtk_oglview_wnd.cpp:144 msgid "volume-rendered ESP" msgstr "vëllimi-i pasqyruar ESP" #: ../src/gtk_oglview_wnd.cpp:144 msgid "Create a volume-rendered ESP object" msgstr "Krijo një objekt vëllim-i pasqyruar ESP" #: ../src/gtk_oglview_wnd.cpp:145 msgid "ESP-surface" msgstr "ESP-hapësirë" #: ../src/gtk_oglview_wnd.cpp:145 msgid "Create an ESP-surface object" msgstr "Krijo një objekt të ESP-hapësirë" #: ../src/gtk_oglview_wnd.cpp:146 msgid "ESP-colored vdW-surface" msgstr "ESP-e ngjyrosur vdW-hapësirë" #: ../src/gtk_oglview_wnd.cpp:146 msgid "Create an ESP-colored vdW-surface object" msgstr "Krijo një objekt ESP-e gnjyrosur vdW-hapësirë" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Electron density plane" msgstr "Plani për dendësinë e elektronit" #: ../src/gtk_oglview_wnd.cpp:147 msgid "Create an Electron density plane object" msgstr "Krijo një objekt për planin e dendësisë së elektronit" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Electron density surface" msgstr "Hapësirë e dendësisë së elektronit" #: ../src/gtk_oglview_wnd.cpp:148 msgid "Create an Electron density surface object" msgstr "Krijo një objekt për hapësirën e dendësisë së elektronit" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Molecular orbital plane" msgstr "Plani molekular i orbitales" #: ../src/gtk_oglview_wnd.cpp:149 msgid "Create a Molecular orbital plane object" msgstr "Krijo një objekt me planin molekular të orbitales" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Molecular orbital volume" msgstr "Vëllimi molekular i orbitales" #: ../src/gtk_oglview_wnd.cpp:150 msgid "Create a Molecular orbital volume object" msgstr "Krijo një objekt për vëllimin molekular të orbitales" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Molecular orbital surface" msgstr "Hapësira molakulare e orbitales" #: ../src/gtk_oglview_wnd.cpp:151 msgid "Create a Molecular orbital surface object" msgstr "Krijo një objekt për hapësirën molekulare të orbitales" #: ../src/gtk_oglview_wnd.cpp:152 msgid "MO-density plane" msgstr "Plani i dendësisë-i MO" #: ../src/gtk_oglview_wnd.cpp:152 msgid "Create an MO-density plane object" msgstr "Krijo një objekt për planin e dendësisë-së MO" #: ../src/gtk_oglview_wnd.cpp:153 msgid "MO-density volume" msgstr "vëllimi i dendësisë-së MO" #: ../src/gtk_oglview_wnd.cpp:153 msgid "Create an MO-density volume object" msgstr "Krijo një objekt për vëllimin e dendësisë-së MO" #: ../src/gtk_oglview_wnd.cpp:154 msgid "MO-density surface" msgstr "hapësira e densëisë-së MO" #: ../src/gtk_oglview_wnd.cpp:154 msgid "Create an MO-density surface object" msgstr "Krijo një objekt për hapësirën e dendësisë-së MO" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete Current Object" msgstr "Hiq objektin aktual" #: ../src/gtk_oglview_wnd.cpp:155 msgid "Delete the currently selected object" msgstr "Hiq objektin aktualisht të përzgjedhur" #: ../src/gtk_oglview_wnd.cpp:157 #, fuzzy msgid "Compute" msgstr "_Njehso" #. ^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:159 msgid "Setup..." msgstr "Parametrizo..." #: ../src/gtk_oglview_wnd.cpp:160 msgid "Energy" msgstr "Energjia" #: ../src/gtk_oglview_wnd.cpp:161 msgid "Geometry Optimization..." msgstr "Optimizimi i gjeometrisë..." #: ../src/gtk_oglview_wnd.cpp:162 msgid "Molecular Dynamics..." msgstr "Forca lëvizëse molekulare..." #: ../src/gtk_oglview_wnd.cpp:163 msgid "Random Conformational Search..." msgstr "Hulumtim struktororë të rastësishëm..." #: ../src/gtk_oglview_wnd.cpp:164 msgid "Systematic Conformational Search..." msgstr "Hulumtim strukturorë i rregullt..." #: ../src/gtk_oglview_wnd.cpp:165 msgid "Monte Carlo Search..." msgstr "Hulumtim Monte Carlo..." #: ../src/gtk_oglview_wnd.cpp:166 msgid "Plot Energy vs. 1 Torsion Angle..." msgstr "Energjia e vizatimit kundër 1 Këndi të përdredhjes..." #: ../src/gtk_oglview_wnd.cpp:167 msgid "Plot Energy vs. 2 Torsion Angles..." msgstr "Energjia e vizatimit kundër 2 Këndeve të përdredhjes..." #: ../src/gtk_oglview_wnd.cpp:168 msgid "Population Analysis (ESP)" msgstr "Analiza e popullatës (ESP)" #: ../src/gtk_oglview_wnd.cpp:169 msgid "Transition State Search..." msgstr "Hulumtim për gjendjen e ndryshimit..." #: ../src/gtk_oglview_wnd.cpp:170 msgid "Stationary State Search..." msgstr "Hulumtim për gjendjen e qetë..." #: ../src/gtk_oglview_wnd.cpp:171 msgid "Formula" msgstr "Formula" #: ../src/gtk_oglview_wnd.cpp:176 msgid "MD Trajectory Viewer..." msgstr "Shikues i MD trajektores..." #: ../src/gtk_oglview_wnd.cpp:177 msgid "Set Current Orbital" msgstr "Vendos orbitalen aktuale" #: ../src/gtk_oglview_wnd.cpp:179 #, fuzzy msgid "Build" msgstr "_Ndërto" #. ^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:181 msgid "Solvate Box..." msgstr "Kutia Solvate..." #: ../src/gtk_oglview_wnd.cpp:182 msgid "Solvate Sphere..." msgstr "Sfera Solvate..." #: ../src/gtk_oglview_wnd.cpp:183 msgid "Sequence Builder (amino)..." msgstr "Ndërtues i vargëzimeve (amino)..." #: ../src/gtk_oglview_wnd.cpp:184 msgid "Sequence Builder (nucleic)..." msgstr "Ndërtues i vargëzimeve (nukleik)..." #: ../src/gtk_oglview_wnd.cpp:185 msgid "Center" msgstr "Qendra" #: ../src/gtk_oglview_wnd.cpp:186 msgid "Zap All" msgstr "Prish të gjitha" #: ../src/gtk_oglview_wnd.cpp:188 #, fuzzy msgid "Hydrogens" msgstr "_Hidrogjene" #. ^^^^^^^^^^^^^^^^^^ #: ../src/gtk_oglview_wnd.cpp:190 msgid "Add" msgstr "Shto" #: ../src/gtk_oglview_wnd.cpp:191 msgid "Remove" msgstr "Largo" #: ../src/gtk_oglview_wnd.cpp:193 msgid "Enter a Command..." msgstr "Shkruaj komandë..." #: ../src/gtk_oglview_wnd.cpp:380 #, c-format msgid "ERROR : Building popup-menu for gtk_oglview_wnd failed : %s" msgstr "" #: ../src/gtk_oglview_wnd.cpp:630 msgid "sets 0 <-> " msgstr "grupet 0 <->" #: ../src/gtk_oglview_wnd.cpp:630 msgid " RMS = " msgstr " RMS = " #: ../src/gtk_oglview_wnd.cpp:636 msgid "average RMS = " msgstr "RMS = mesatare" #: ../src/gtk_p1dview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_p1dview_wnd failed : %s" msgstr "Dështoi ndërtimi i menysë gp1dv : %s" #: ../src/gtk_p2dview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_p2dview_wnd failed : %s" msgstr "Dështoi ndërtimi i menysë gp2dv : %s" #: ../src/gtk_progress_dialog.cpp:39 #, fuzzy msgid "WARNING : progress_dialog : glade_xml_get_widget() failed!!!" msgstr "dialogu-i përparimit : dështoi glade_xml_get_widget() !!!" #: ../src/gtk_project.cpp:81 msgid "A new project created.\n" msgstr "U krijua një projekt i ri.\n" #: ../src/gtk_project.cpp:184 msgid "Thread creation failed : GeomOpt" msgstr "Dështoi krijimi i pjesës së procesit : GeomOpt" #: ../src/gtk_project.cpp:199 ../src/res_gtk/gtk_geomopt_dialog.glade.h:2 msgid "Geometry Optimization" msgstr "Optimizimi i Gjeometrisë" #: ../src/gtk_project.cpp:234 msgid "Thread creation failed : MolDyn" msgstr "Dështoi krijimi i pjesës së procesit : MolDyn" #: ../src/gtk_project.cpp:249 ../src/res_gtk/gtk_moldyn_dialog.glade.h:5 msgid "Molecular Dynamics" msgstr "Forca lëvizëse molekulare" #: ../src/gtk_project.cpp:273 msgid "Thread creation failed : RandomSearch" msgstr "Dështoi krijimi i pjesës së procesit : Hulumtim i rastësishëm" #: ../src/gtk_project.cpp:288 msgid "Random Search" msgstr "Hulumtim i rastësishëm" #: ../src/gtk_project.cpp:776 ../src/gtk_project.cpp:794 #: ../src/gtk_project.cpp:812 ../src/gtk_project.cpp:830 #: ../src/gtk_project.cpp:848 ../src/gtk_project.cpp:866 #: ../src/gtk_project.cpp:884 ../src/gtk_project.cpp:902 #: ../src/gtk_project.cpp:920 ../src/gtk_project.cpp:938 #: ../src/gtk_project.cpp:956 ../src/gtk_project.cpp:974 msgid "Please calculate energy first!" msgstr "Ju lutem logarit së pari energjinë!" #: ../src/gtk_project.cpp:1075 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D with atom indices that define the " "torsion.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "JU LUTEM VINI RE!\n" "Vargu komandues , i cilli afishohet në dialogun tjetër, nuk është i plotë.\n" "Duhet të zëvendësoni shkronjat A-D me treguesit e atomeve që pëcaktojnë " "përdredhjen.\n" "\n" "GJITHASHTU VINI RE: Përmirësimi i strukturës gjithmonë bëhet duke përdorur " "mekanikat molekulare (opthapat)." #: ../src/gtk_project.cpp:1088 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letters A-D and I-L with atom indices that define the " "torsions.\n" "\n" "ALSO NOTE: structure refinement is always done using molecular mechanics " "(optsteps)." msgstr "" "JU LUTEM VINI RE!\n" "Vargu komandues, i cili afishohet në dialogun tjetër, nuk është i plotë.\n" "Duhet të zëvendësoni shkronjat A-D dhe I-L me treguesit e atomeve që " "përcaktojnë përdredhjet.\n" "GJITHASHTU VINI RE : Përmirësimi i strukturës bëhet gjithmonë duke përdorur " "mekanikat molekulare (opthapat). " #: ../src/gtk_project.cpp:1162 msgid "ERROR" msgstr "GABIM" #: ../src/gtk_project.cpp:1173 #, fuzzy msgid "Trajectory file already open?" msgstr "Trajektorja tashmë u hap?!?!?!" #: ../src/gtk_project.cpp:1182 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the letter X with the orbital index that will become the " "current orbital." msgstr "" "JU LUTEM VINI RE!\n" "Vargu komandues, i cili është afishuar në dialogun tjetër, nuk është i " "plotë.\n" "Duhet të zëvendësoni shkronjën X me treguesin e orbitales i cili do të bëhet " "orbitalja aktuale." #: ../src/gtk_project.cpp:1237 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AAA with the sequence to be built." msgstr "" "JU LUTEM VINI RE!\n" "Vargu komandues, i cili afishohet në dialogun tjetër, nuk është i plotë.\n" "Duhet ta zëvendësoni vargëzimin e parazgjedhur AAA me një vargëzim që duhet " "të ndërtohet." #: ../src/gtk_project.cpp:1250 msgid "" "PLEASE NOTE!\n" "The command string, which is displayed in the next dialog, is incomplete.\n" "You should replace the default sequence AGTCaguc with the sequence to be " "built." msgstr "" "JU LUTEM VINI RE!\n" "Vargu komandues, i cili afishohet në dialogun tjetër, nuk është i plotë.\n" "Duhet të zëvendësoni vargëzimin e parazgjedhur AGTCagus me vargëzimin që " "duhet të ndërtohet." #: ../src/gtk_project.cpp:1287 msgid "Are you sure you want to clear everything?" msgstr "A jeni të sigurt që doni të fshini gjithçka?" #: ../src/gtk_rcpview_wnd.cpp:57 #, fuzzy, c-format msgid "ERROR : Building popup-menu for gtk_rcpview_wnd failed : %s" msgstr "Dështoi ndërtimi i menysë grcpv : %s" #: ../src/gtk_setup_dialog.cpp:49 #, fuzzy msgid "WARNING : setup_dialog : glade_xml_get_widget() failed!!!" msgstr "stereo_dialog : dështoi glade_xml_get_widget() !!!" #: ../src/gtk_setup_dialog.cpp:358 msgid "Changed the Setup for calculations " msgstr "Ndrysho Parametrizimin për logaritjet " #: ../src/gtk_setup_dialog.cpp:359 ../src/project.cpp:4038 msgid "(setup = " msgstr "(parametrizim = " #: ../src/gtk_setup_dialog.cpp:375 ../src/project.cpp:4039 msgid ", engine = " msgstr ", vegla = " #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:49 msgid "Set Current Element" msgstr "Vendos element aktual" #: ../src/gtk_simple_dialogs.cpp:113 #, fuzzy msgid "Current element is now " msgstr "elementi aktual tani është" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:133 msgid "Set Current Bondtype" msgstr "Vendos tipin aktual të lidhjes" #: ../src/gtk_simple_dialogs.cpp:184 #, fuzzy msgid "Current bondtype is now " msgstr "tipi aktual i lidhjes tani është" #: ../src/gtk_simple_dialogs.cpp:449 msgid "" "This alternative PDB reader is designed to remove any gaps that might\n" "exist in the structure data. Therefore the sequence might be altered!" msgstr "" "Ky lexues alternativ PDB është bërë për të larguar ndonjë çarje që mund\n" "të ekzistojë në të dhënat strukturore. Për këtë arësye vargëzimi mund të " "ndrrohet!" #. request a modal window. #: ../src/gtk_simple_dialogs.cpp:482 msgid "Command Interpreter" msgstr "Përkthyesi i komandës" #: ../src/gtk_simple_dialogs.cpp:503 msgid "Execute" msgstr "" #: ../src/gtk_simple_dialogs.cpp:506 msgid "Cancel" msgstr "Anulo" #: ../src/gtk_stereo_dialog.cpp:37 #, fuzzy msgid "WARNING : stereo_dialog : glade_xml_get_widget() failed!!!" msgstr "stereo_dialog : dështoi glade_xml_get_widget() !!!" #: ../src/gtk_trajview_dialog.cpp:39 #, fuzzy msgid "WARNING : trajview_dialog : glade_xml_get_widget() failed!!!" msgstr "" "dialogu_për shikimin e trajektores : dështoi glade_xml_get_widget() !!!" #: ../src/gtk_trajview_dialog.cpp:82 ../src/gtk_trajview_dialog.cpp:102 #: ../src/gtk_trajview_dialog.cpp:136 ../src/gtk_trajview_dialog.cpp:151 msgid "frame = " msgstr "korniza = " #: ../src/gtk_wnd.cpp:53 #, c-format msgid "*** Cannot find the double-buffered visual.\n" msgstr "***Nuk mund ta gjejë pamorin zbatues-të dyfishtë.\n" #: ../src/gtk_wnd.cpp:54 #, c-format msgid "*** Trying single-buffered visual.\n" msgstr "***Provo pamor zbatues-njëfishor.\n" #: ../src/gtk_wnd.cpp:61 #, c-format msgid "*** No appropriate OpenGL-capable visual found.\n" msgstr "***Nuk u gjet pamor i duhur OpenGL-të aftë.\n" #: ../src/gtk_wnd.cpp:66 #, c-format msgid "" "\n" "OpenGL visual configurations :\n" "\n" msgstr "" "\n" "Konfigurimi pamor OpenGL :\n" "\n" #: ../src/ogl_surface.cpp:91 msgid "evaluating grid" msgstr "vlerësimi i rrjetës" #: ../src/ogl_surface.cpp:106 msgid " done\n" msgstr " e mbaruar\n" #: ../src/ogl_surface.cpp:112 msgid "interpolating in " msgstr "fut në " #: ../src/ogl_surface.cpp:131 msgid "-direction... " msgstr "-drejtimi..." #: ../src/ogl_surface.cpp:138 msgid " points, " msgstr " pika, " #: ../src/ogl_surface.cpp:138 msgid " cycles" msgstr " cikle" #: ../src/ogl_surface.cpp:155 msgid "generating image... " msgstr "nxjerrja e imazhit..." #: ../src/ogl_surface.cpp:185 msgid "color_surface problem #1" msgstr "problemi #1 me ngjyros_hapësirën" #: ../src/ogl_surface.cpp:235 msgid "color_surface problem #2" msgstr "problemi #2 me gnjyros_hapësirën" #: ../src/ogl_surface.cpp:335 msgid " lines, " msgstr " vija," #: ../src/ogl_surface.cpp:335 msgid " triangles." msgstr " trekëndësha." #: ../src/p2dview_wcl.cpp:182 msgid "now scaling the colours to range " msgstr "tani shkallëzimi i ngjyrave për të rradhitur" #: ../src/p2dview_wcl.cpp:182 msgid " kJ/mol" msgstr " kJ/mol" #: ../src/pangofont_wcl.cpp:75 #, fuzzy, c-format msgid "*** ERROR : Can't load font '%s'\n" msgstr "***Nuk mund të ngarkojë fontin '%s'\n" #: ../src/project.cpp:210 msgid "untitled" msgstr "e patitulluar" #: ../src/project.cpp:322 msgid "Cannot import that file type." msgstr "Nuk mund të importojë atë tip të skedarit." #: ../src/project.cpp:367 msgid "Cannot export that file type." msgstr "Nuk mund të eksportojë atë tip të skedarit." #: ../src/project.cpp:409 msgid "Hydrogens added." msgstr "Hidrogjen i shtuar." #: ../src/project.cpp:419 msgid "Hydrogens removed." msgstr "Hidrogjen i larguar." #: ../src/project.cpp:617 msgid " window " msgstr " dritare" #: ../src/project.cpp:663 msgid "" "This is the last graphics view for\n" "this project - can't close it." msgstr "" "Kjo është pamja e fundit e grafiqeve për\n" "këtë projekt - nuk mund ta mbyll." #: ../src/project.cpp:877 msgid "Processing Command : " msgstr "Komanda e përpunimit : " #: ../src/project.cpp:887 msgid "> AVAILABLE COMMANDS:" msgstr "KOMANDAT NË DISPOZICION:" #. use alphabetical order??? #: ../src/project.cpp:889 msgid "" "> add light (local/global) (directional/spotlight) -- add a new light object." msgstr "" "> shto dritë (lokale/globale) (i drejtuar/e ndriçuar) -- shto një objekt të " "ri drite." #: ../src/project.cpp:891 msgid "" "> add plane -- " "add a plane object." msgstr "" "> shto plan -- " "shto një objekt plan." #: ../src/project.cpp:892 ../src/project.cpp:902 msgid "> where: = value function : esp vdws eldens mo mod unity" msgstr "" "> ku: = funksioni i vlerës : bashkësia esp vdws eldens mo mod unity " #: ../src/project.cpp:893 ../src/project.cpp:903 ../src/project.cpp:913 msgid "> = colour function : red green blue rb1 rb2" msgstr "" "> = funksioni i ngjyrës : e kuqe e gjelbërt e kaltër rb1 rb2" #: ../src/project.cpp:894 ../src/project.cpp:904 ../src/project.cpp:915 #: ../src/project.cpp:930 msgid "> = scaling value for calculating the colours" msgstr "> = vlera e shkallëzimit pë logaritjen e ngjzrave" #: ../src/project.cpp:895 ../src/project.cpp:905 ../src/project.cpp:916 #: ../src/project.cpp:931 msgid "> = scaling offset for calculating the colours" msgstr "> = zhvendosja e shkallëzimit pë logaritjen e ngjyrave" #: ../src/project.cpp:896 ../src/project.cpp:906 ../src/project.cpp:917 #: ../src/project.cpp:932 msgid "> = dimension of the plane object (in nm units)" msgstr "> = dimenzioni i objketit plan (in nm bashkësi)" #: ../src/project.cpp:897 ../src/project.cpp:907 ../src/project.cpp:918 #: ../src/project.cpp:933 msgid "> = resolution of the plane object" msgstr "> = rezolucion i objektit plan" #: ../src/project.cpp:898 ../src/project.cpp:920 ../src/project.cpp:935 msgid "> = 0 or 1 telling if the object is transparent" msgstr "> = 0 apo 1 për të treguar nëse objekti është i tejdukshëm" #: ../src/project.cpp:899 ../src/project.cpp:908 ../src/project.cpp:921 #: ../src/project.cpp:936 msgid "> = transparency alpha value" msgstr "> = vlera e alpha së tejdukshme" #: ../src/project.cpp:901 msgid "" "> add volrend -- add " "a volume-rendering object." msgstr "" "> shto volrend >cscale1> -- " "shto një objekt për pasqyrimin e vëllimit. " #: ../src/project.cpp:910 msgid "" "> add surf1 " " -- add a single surface object." msgstr "" "> shto surf1 vf2> " " -- shto një objekt të vetëm sipërfaqësorë." #: ../src/project.cpp:911 ../src/project.cpp:924 msgid "" "> where: = value function for calculating the surface : esp vdws " "eldens mo mod unity" msgstr "" "> ku> = funksioni i vlerës për logaritjen e sipërfaqes : bahkësia " "esp vdws eldens mo mod" #: ../src/project.cpp:912 ../src/project.cpp:925 msgid "" "> = value function for calculating the colours : esp vdws " "eldens mo mod unity" msgstr "" "> = funksioni i vlerës për logaritjen e ngjzrës : bashkësia esp " "vdws eldens mo mod" #: ../src/project.cpp:914 msgid "> = scaling value for calculating the surface" msgstr "> = vlera e shkallëzimit për logaritjen e hapësirës" #: ../src/project.cpp:919 ../src/project.cpp:934 msgid "> = 0 or 1 telling if the object is solid" msgstr "> = 0 apo 1 tregon nëse objekti është i ngurtë" #: ../src/project.cpp:923 msgid "" "> add surf2 -- add a pair of surface objects." msgstr "" "> shto surf2 -- shto një palë të objekteve të " "hapësirës." #: ../src/project.cpp:926 msgid "" "> = colour function for 1st surface : red green blue rb1 rb2" msgstr "" "> = funksioni i ngjyrave për hapësirën e 1-rë : e kuqe e " "gjelbërt e kaltër rb1 rb2" #: ../src/project.cpp:927 msgid "" "> = colour function for 2nd surface : red green blue rb1 rb2" msgstr "" "> = funksioni i ngjyrave për hapësirën e 2-të : e kuqe e " "gjelbërt e kaltër rb1 rb2" #: ../src/project.cpp:928 msgid "" "> = scaling value for calculating the surface for 1st " "surface" msgstr "" "> = vlera e shkallëzimit për logaritjen e hapësirës për " "hapësirën e 1-rë" #: ../src/project.cpp:929 msgid "" "> = scaling value for calculating the surface for 2nd " "surface" msgstr "" "> = vlera e shkallëzimit për logaritjen e hapësirës për " "hapësirën e 2-të" #: ../src/project.cpp:938 msgid "> help -- print all available commands in command strings." msgstr "> ndihmë -- printo komandat e mundshme në vargun e komandave." #: ../src/project.cpp:940 msgid "> energy -- calculate a single-point energy." msgstr "> energjia -- logarit energjinë një-pikëshe." #: ../src/project.cpp:941 msgid "> geom_opt -- do a geometry optimization run using default options." msgstr "" "> geom_opt -- bëj një ekzekutim të optimizimit të gjeometrisë duke përdorur " "opsione të parazgjedhura. " #: ../src/project.cpp:942 msgid "> mol_dyn -- do a molecular dynamics run using default options." msgstr "" "> mol_dyn -- bëj një ekzekutim të forcës lëvizëse të molekulës duke përdorur " "opsionet e parazgjedhura." #: ../src/project.cpp:944 msgid "" "> random_search -- perform a random conformational " "search." msgstr "" "> hulumtim_i rastësishëm -- kryej një hulumtim të " "rastësishëm strukturorë." #: ../src/project.cpp:945 msgid "" "> systematic_search -- perform a systematic " "conformational search." msgstr "" "> hulumtim_i rregullt -- kryej një hulumtim të " "rregullt strukturorë." #: ../src/project.cpp:946 msgid "" "> montecarlo_search -- perform a " "MonteCarlo search." msgstr "" "> hulumtim_montecarlo -- kryej një " "hulumtim MonteCarlo." #: ../src/project.cpp:948 msgid "" "> make_plot1 A B C D
-- create a 1D " "energy vs. torsion plot." msgstr "" "> bëj_vizatim1 A B C D
-- krijo një " "energji 1D kundër vizatimit të përdredhjes." #: ../src/project.cpp:949 msgid "" "> make_plot2 A B C D
I J K L
" " -- create a 2D energy vs. torsions plot." msgstr "" "> bëj_vizatim2 A B C D
I J K L
" " -- ktijo një energji 2D kundër vizatimit të përdredhjes." #: ../src/project.cpp:951 msgid "" "> population_analysis_ESP -- determine atomic charges using an ESP fit (for " "QM methods only)." msgstr "" "> analiza_e popullatës_ESP -- përckton ngarkesën atomike duke përdorur " "përshtatjen ESP (vetëm për metodën QM)." #: ../src/project.cpp:953 msgid "" "> transition_state_search -- perform a transition " "state search (for QM methods only)." msgstr "" "> hulumtim_për gjendjen_e tranzicionit -- kryej një " "hulumtim të gjendjes së tranzicionit. (vetëm për metodat QM)." #: ../src/project.cpp:954 msgid "" "> stationary_state_search -- perform a search for a structure with " "no forces." msgstr "" "> hulumtim_për gjendjen_e palëvizshme -- kryej një hulumtim pë një " "strukturë pa forcë." #: ../src/project.cpp:956 msgid "" "> set_current_orbital -- set the current orbtal index for " "plotting the orbitals." msgstr "" "> vendos_orbitale_aktuale -- vendos treguesin aktual të " "orbitales për vizatimin e orbitaleve." #: ../src/project.cpp:958 msgid "> update_chains -- detect polymer chains using sequence builder." msgstr "" "> përditëso_zinxhirët -- zbulo zinxhirë polimer duke përdorur ndërtuesin e " "vargëzimeve." #: ../src/project.cpp:959 msgid "> build_amino (helix/strand) -- amino acid sequence builder." msgstr "" "> ndërto_amino (spirale/fije floku) -- ndërtues i vargëzimeve të " "amino acideve." #: ../src/project.cpp:960 msgid "> build_nucleic -- nucleic acid sequence builder." msgstr "" "> ndërto_nukleike -- ndërtues i vargëzimeve të acidit nukleik." #: ../src/project.cpp:962 #, fuzzy msgid "> orient -- orient the system in the XYZ coordinate system." msgstr "> oriento -- oriento sistemin." #: ../src/project.cpp:964 msgid "" "> solvate_box ( (export)) -- " "setup a solvation box." msgstr "" "> kutia_shpërbërëse ( " "(eksport)) -- parametrizo një kuti për shpërbërje." #: ../src/project.cpp:965 msgid "" "> solvate_sphere ( ) -- setup " "a solvation sphere." msgstr "" "> shpërbëj sferën ( ) -- " "parametrizo një sferë pë shpërbërje." #: ../src/project.cpp:967 msgid "> set_formal_charge -- set formal charges to atoms." msgstr "" "> vendos_ngarkesë_formale -- vendos ngarkesa formale në " "atome." #: ../src/project.cpp:969 msgid "" "> evaluate_Bfact -- evaluate B-factors for selected atoms (a trajectory file " "must be open)." msgstr "" "> vlerëso_Bfakt -- vlerëso B-faktorë për atomet e përzgjedhura (skedari i " "trajektores duhet tëjetë i hapur)." #: ../src/project.cpp:970 msgid "" "> evaluate_diffconst
-- evaluate diffusion constants for selected atoms " "(a trajectory file must be open, dt = time difference between frames [fs])." msgstr "" "> vlerëso_difkonst
-- vlerëso konstantat e difuzionit për atomet e " "përzgjedhura (një skedar i trajektores duhet të jetë i hapur, dt = dallim " "kohor mes kornizave [fs])." #: ../src/project.cpp:1010 msgid "Added a new object : light (" msgstr "U shtua një objekt i ri : dritë (" #: ../src/project.cpp:1011 msgid "local" msgstr "i lokalizuar" #: ../src/project.cpp:1011 msgid "global" msgstr "global" #: ../src/project.cpp:1012 msgid "directional" msgstr "i drejtuar" #: ../src/project.cpp:1012 msgid "spotlight" msgstr "ndriçim" #: ../src/project.cpp:1041 msgid "ERROR : add plane : unknown value function " msgstr "GABIM : shto plan : funksioni i vlerës së panjohur" #: ../src/project.cpp:1055 msgid "ERROR : add plane : unknown colour function " msgstr "GABIM : shto plan : funksioni i ngjyrës së panjohur" #: ../src/project.cpp:1091 msgid "Added a new object : plane (" msgstr "U shtu një objekt i ri : plan (" #: ../src/project.cpp:1119 msgid "ERROR : add volrend : unknown value function " msgstr "GABIM : shto volrend : funksioni i vlerës së panjohur " #: ../src/project.cpp:1133 msgid "ERROR : add volrend : unknown colour function " msgstr "GABIM : shto volrend : funksioni i ngjyrës së panjohur" #: ../src/project.cpp:1166 msgid "Added a new object : volrend (" msgstr "U shtua një objekt i ri : volrend (" #: ../src/project.cpp:1199 msgid "ERROR : add surf1 : unknown value function 1 " msgstr "GABIM : shto surf1 : funksioni 1 i vlerës së panjohur " #: ../src/project.cpp:1214 msgid "ERROR : add surf1 : unknown value function 2 " msgstr "GABIM : shto surf1 : funksioni 2 i vlerës së panjohur" #: ../src/project.cpp:1228 msgid "ERROR : add surf1 : unknown colour function " msgstr "GABIM : shto surf1 : funksioni i ngjyrës së panjohur" #: ../src/project.cpp:1277 msgid "Added a new object : surf1 (" msgstr "U shtua një objekt i ri : surf1 (" #: ../src/project.cpp:1314 msgid "ERROR : add surf2 : unknown value function 1 " msgstr "GABIM : shto surf2 : funksioni i 1 i vlerës së panjohur" #: ../src/project.cpp:1329 msgid "ERROR : add surf2 : unknown value function 2 " msgstr "GABIM : shto surf2 : funksioni 2 i vlerës së panjohur" #: ../src/project.cpp:1343 msgid "ERROR : add surf2 : unknown colour function 1 " msgstr "GABIM : shto surf2 : funksioni 1 i ngjyrës së panjohur" #: ../src/project.cpp:1357 msgid "ERROR : add surf2 : unknown colour function 2 " msgstr "GABIM : shto surf2: funksioni 2 i ngjyrës së panjohur " #: ../src/project.cpp:1417 msgid "Added a new object : surf2 (" msgstr "U shtua një objekt i ri : surf2 (" #: ../src/project.cpp:1423 msgid "ERROR : could not process command \"add\" for parameter " msgstr "GABIM : nuk mund të përpunojë komandën \"shto\" për paramertat" #: ../src/project.cpp:1575 msgid "Sorry, this is for QM models only!" msgstr "Kërkojmë falje, kjo është vetëm për modelet QM!" #: ../src/project.cpp:1622 msgid "The current orbital is now " msgstr "Orbitalja aktuale tani është " #: ../src/project.cpp:1667 ../src/project.cpp:1702 msgid "built a sequence : " msgstr "ndërtoi një vargëzim : " #: ../src/project.cpp:1715 msgid "maximum dimensions:" msgstr "dimenzione maksimale:" #: ../src/project.cpp:1817 msgid "Sorry, atom not found!" msgstr "Kërkojmë falje, nuk u gjet atomi!" #: ../src/project.cpp:1843 msgid "ERROR : Unknown command : " msgstr "GABIM : Komandë e panjohur : " #: ../src/project.cpp:1844 msgid "The \"help\" command will give more information about command strings." msgstr "" "Komanda \"ndihmë\" do të japë më shumë informacione rreth vargjeve " "komanduese. " #: ../src/project.cpp:1871 msgid "local lights = " msgstr "dritë e lokalizuar = " #: ../src/project.cpp:1871 ../src/project.cpp:1878 msgid "on" msgstr "e ndezur" #: ../src/project.cpp:1871 ../src/project.cpp:1878 msgid "off" msgstr "e çkyqur" #: ../src/project.cpp:1878 msgid "global lights = " msgstr "dritë globale = " #: ../src/project.cpp:3244 msgid "Group information about chains/residues is needed for this operation." msgstr "" "Është i nevojshëm informacion grupor rreth zinxhirëve/radikaleve për këtë " "operacion." #: ../src/project.cpp:3245 msgid "Is it OK to update group information?" msgstr "A është në rregull të përditësohet informacioni grupor?" #: ../src/project.cpp:3259 msgid "Sorry, no chain/residue information available for this atom." msgstr "Kërkojmë falje, nuk ka në dispozicion informacione për këtë atom." #: ../src/project.cpp:3278 msgid "selected atom " msgstr "përzgjedh atom" #: ../src/project.cpp:3278 msgid " (atomtype = " msgstr "(tipi i atomit = " #: ../src/project.cpp:3290 msgid "selected residue " msgstr "përzgjedh radikal" #: ../src/project.cpp:3290 msgid " from chain " msgstr " nga zinxhiri " #: ../src/project.cpp:3301 msgid "selected chain " msgstr "zinxhir i përzgjedhur " #: ../src/project.cpp:3325 msgid "selected molecule " msgstr "molekulë e përzgjedhur " #. this must be OK. #: ../src/project.cpp:3354 msgid "charge: " msgstr "ngarkesë: " #: ../src/project.cpp:3372 msgid "distance: " msgstr "largësi: " #: ../src/project.cpp:3394 msgid "angle: " msgstr "kënd: " #: ../src/project.cpp:3394 msgid " deg" msgstr " deg" #: ../src/project.cpp:3413 msgid "torsion: " msgstr "përdredhje: " #: ../src/project.cpp:3413 msgid " deg " msgstr " deg" #: ../src/project.cpp:3482 msgid "MW: " msgstr "MW: " #: ../src/project.cpp:3559 msgid "ERROR : atom " msgstr "GABIM : atom " #: ../src/project.cpp:3559 ../src/project.cpp:3745 ../src/project.cpp:3757 msgid " not found!" msgstr " nuk u gjet!" #: ../src/project.cpp:3579 msgid "ERROR : could not find ic.\n" msgstr "GABIM : nuk mund të gjejë ic.\n" #: ../src/project.cpp:3597 msgid "ERROR : could not find tor-term.\n" msgstr "GABIM : nuk mund të gjejë tor-term.\n" #: ../src/project.cpp:3601 msgid "tor(deg)" msgstr "tor(deg)" #: ../src/project.cpp:3601 ../src/project.cpp:3818 ../src/project.cpp:3910 msgid "E(kJ/mol)" msgstr "E(kJ/mol)" #: ../src/project.cpp:3652 msgid "tor = " msgstr "tor = " #: ../src/project.cpp:3652 ../src/project.cpp:3875 msgid " deg, energy = " msgstr " deg, energy = " #: ../src/project.cpp:3652 ../src/project.cpp:3875 msgid " kJ/mol." msgstr " kJ/mol." #: ../src/project.cpp:3745 msgid "ERROR : tor1 atom " msgstr "GABIM : tor1 atom " #: ../src/project.cpp:3757 msgid "ERROR : tor2 atom " msgstr "GABIM : tor2 atom " #: ../src/project.cpp:3777 msgid "ERROR : could not find ic for tor1.\n" msgstr "GABIM : nuk mund të gjejë ic për tor1.\n" #: ../src/project.cpp:3784 msgid "ERROR : could not find ic for tor2.\n" msgstr "GABIM : nuk mund të gjejë ic për tor2.\n" #: ../src/project.cpp:3807 msgid "ERROR : could not find tor-term for tor1.\n" msgstr "GABIM : nuk mund të gjejë tor-term për tor1.\n" #: ../src/project.cpp:3814 msgid "ERROR : could not find tor-term for tor2.\n" msgstr "GABIM : nuk mund të gjejë tor-term për tor2.\n" #: ../src/project.cpp:3818 msgid "tor1(deg)" msgstr "tor1(deg)" #: ../src/project.cpp:3818 msgid "tor2(deg)" msgstr "tor2(deg)" #: ../src/project.cpp:3875 msgid "tor1 = " msgstr "tor1 = " #: ../src/project.cpp:3875 msgid " deg, tor2 = " msgstr " deg, tor2 = " #: ../src/project.cpp:3900 ../src/project.cpp:3935 msgid "r-energy = " msgstr "energjia-r = " #: ../src/project.cpp:3900 ../src/project.cpp:3935 msgid "p-energy = " msgstr "energjia-p = " #: ../src/project.cpp:3901 ../src/project.cpp:3936 msgid " is lower " msgstr " është e ulët " #: ../src/project.cpp:3940 msgid "READY!" msgstr "GATI!" #: ../src/project.cpp:4037 msgid "Starting Stationary State Search " msgstr "Nisja e Hulumtimit të Gjendjes Stacionare " #: ../src/project.cpp:4050 msgid "Cycle Gradient Step\n" msgstr "Cikël Gradient Hap\n" #: ../src/project.cpp:4065 msgid "the nsteps termination test was passed.\n" msgstr "u kalua testi përfundimtar i nhapave.\n" #: ../src/rcpview_wcl.cpp:161 msgid "the tresholds were set to " msgstr "treshod u vendosën në " #: ../src/rcpview_wcl.cpp:161 msgid " and " msgstr " dhe " #. ################################################################################################ #. eof #: ../src/res_gtk/gtk_file_export_dialog.glade.h:1 #: ../src/res_gtk/gtk_file_import_dialog.glade.h:1 #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:1 msgid "Browse..." msgstr "Shfleto..." #: ../src/res_gtk/gtk_file_export_dialog.glade.h:2 msgid "Export File" msgstr "Eksporto Skedar" #: ../src/res_gtk/gtk_file_import_dialog.glade.h:2 msgid "Import File" msgstr "Importo Skedar" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:1 #, fuzzy msgid "Delta-E Cutoff:" msgstr "Ndërprerje e Delat E:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:3 msgid "Gradient Cutoff:" msgstr "Ndërprerje e Gradientit:" #: ../src/res_gtk/gtk_geomopt_dialog.glade.h:4 msgid "Maximum # of Steps:" msgstr "# maksimal i Hapave:" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:2 msgid "Constant-P simulation (allow P-control at simulation stage)" msgstr "Simulimi i konstantës-P (lejo kontrrollimin e-P në fazën e simulimit)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:3 msgid "Constant-T simulation (allow T-control at simulation stage)" msgstr "Simulimi i konstantës-T (lejo kontrrollimin e-T në fazën e simulimit)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:4 msgid "Isothermal compressibility [1/bar] :" msgstr "Ngjeshmëri Isotermale [1/bar] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:6 msgid "Number of steps : (cooling)" msgstr "Numri i hapave : (ftohje)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:7 msgid "Number of steps : (equilibration)" msgstr "Numri i hapave : (ekuilibrimi)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:8 msgid "Number of steps : (heating)" msgstr "Numri i hapave : (nxehja)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:9 msgid "Number of steps : (simulation)" msgstr "Numri i hapave : (simulimi)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:10 msgid "P relaxation time [fs] :" msgstr "Kohë pushimi i P [fs] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:11 msgid "Pressure [bar] :" msgstr "Shtypje [bar] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:12 msgid "T relaxation time [fs] : (equil/simul)" msgstr "Kohë pushimi T [fs] : (ekul/simul)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:13 msgid "T relaxation time [fs] : (heat/cool)" msgstr "Kohë pushimi T [fs] : (nxemje/ftohje)" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:14 msgid "Temperature [K] :" msgstr "Temperatura [K] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:15 msgid "Timestep [fs] :" msgstr "Hap në kohë [fs] :" #: ../src/res_gtk/gtk_moldyn_dialog.glade.h:16 msgid "Trajectory File : " msgstr "Skedar i Trajektores :" #: ../src/res_gtk/gtk_progress_dialog.glade.h:1 msgid "Background Job" msgstr "Puna e Sfondit" #: ../src/res_gtk/gtk_progress_dialog.glade.h:2 msgid "Job Title : " msgstr "Titulli i punës :" #: ../src/res_gtk/gtk_setup_dialog.glade.h:1 msgid "Select the Engine Class:" msgstr "Përzgjedh klasën e veglës:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:2 msgid "Set the spin multiplicity of the system:" msgstr "Vendos shumëllojshmërinë e rrotullimit të sistemit:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:3 msgid "Set the total charge of the system:" msgstr "Vendos ngarkesën e plotë të sistemit:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:4 msgid "Enable atomtype/parameter exceptions (AMBER FF)." msgstr "Aktivizo përjashtimet e tipit të atomit/parametrave (AMBER FF)." #: ../src/res_gtk/gtk_setup_dialog.glade.h:6 msgid "MM/SF" msgstr "MM/SF" #: ../src/res_gtk/gtk_setup_dialog.glade.h:7 msgid "QM/MM" msgstr "QM/MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:8 msgid "Setup" msgstr "Parametrizo" #: ../src/res_gtk/gtk_setup_dialog.glade.h:9 msgid "Spin Multiplicity:" msgstr "Rrotullo shumëllojshmërinë:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:10 msgid "Total Charge:" msgstr "Ngarkesa totale:" #: ../src/res_gtk/gtk_setup_dialog.glade.h:11 msgid "all MM" msgstr "të gjitha MM" #: ../src/res_gtk/gtk_setup_dialog.glade.h:12 msgid "all QM" msgstr "të gjitha " #: ../src/res_gtk/gtk_setup_dialog.glade.h:13 msgid "all SF" msgstr "të gjitha SF" #: ../src/res_gtk/gtk_setup_dialog.glade.h:14 msgid "this is under construction and DISABLED currently!" msgstr "është në ndërtim e sipër dhe aktualisht e ÇAKTIVIZUAR!" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:1 msgid "Relaxed Separation :" msgstr "Ndarje e lehtësuar :" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:2 msgid "Stereo Displacement :" msgstr "Stereo Largim i vendosjes :" #: ../src/res_gtk/gtk_stereo_dialog.glade.h:3 msgid "Stereo View Settings" msgstr "Parametra për Stereo Pamje" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:1 msgid "Begin" msgstr "Fillo" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:2 msgid "End" msgstr "Përfundo" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:3 msgid "Play" msgstr "Luaj" #: ../src/res_gtk/gtk_trajview_dialog.glade.h:4 msgid "Trajectory Viewer" msgstr "Shikues i trajektores" #~ msgid "Import File " #~ msgstr "Importo Skedar " #~ msgid "av is not empty!?!" #~ msgstr "av nuk është e zbrazët!?!" #~ msgid "ac_stor_wcl::StoreAC(1) ; bad cset_sz." #~ msgstr "ac_stor_wcl::Ruaj në kujtesëAC(1) ; cset_sz e keqe." #~ msgid "ac_stor_wcl::StoreAC(2) ; bad cset_sz." #~ msgstr "ac_stor_wcl::Ruaj në kujtesëAC(2) ; cset_sz e keqe." #~ msgid "d" #~ msgstr "Vizato" #~ msgid "e" #~ msgstr "Fshij" #~ msgid "s" #~ msgstr "Përzgjeth" #~ msgid "z" #~ msgstr "Zmadho" #~ msgid "c" #~ msgstr "Prerje" #~ msgid "t" #~ msgstr "TransferoXY" #~ msgid "tz" #~ msgstr "TransferoZ" #~ msgid "oz" #~ msgstr "OrbitZ" #~ msgid "r" #~ msgstr "RrotulloXY" #~ msgid "rz" #~ msgstr "RrotulloZ" #~ msgid "m" #~ msgstr "Mat" #~ msgid "draw\n" #~ msgstr "vizato\n" #~ msgid "erase\n" #~ msgstr "fshij\n" #~ msgid "select\n" #~ msgstr "përzgjedh\n" #~ msgid "zoom\n" #~ msgstr "zmadho\n" #~ msgid "clip\n" #~ msgstr "prit\n" #~ msgid "" #~ "trans\n" #~ "XY" #~ msgstr "" #~ "trans\n" #~ "XY" #~ msgid "" #~ "trans\n" #~ "Z" #~ msgstr "" #~ "trans\n" #~ "Z" #~ msgid "" #~ "orbit\n" #~ "XY" #~ msgstr "" #~ "orbit\n" #~ "XY" #~ msgid "" #~ "orbit\n" #~ "Z" #~ msgstr "" #~ "orbit\n" #~ "Z" #~ msgid "" #~ "rotate\n" #~ "XY" #~ msgstr "" #~ "rrotullo\n" #~ "XY" #~ msgid "" #~ "rotate\n" #~ "Z" #~ msgstr "" #~ "rrotullo\n" #~ "Z" #~ msgid "measure\n" #~ msgstr "mat\n" #~ msgid "el" #~ msgstr "Element" #~ msgid "bt" #~ msgstr "Lidhje" #~ msgid "su" #~ msgstr "Bani pyetje" #~ msgid "element\n" #~ msgstr "element\n" #~ msgid "" #~ "bond\n" #~ "type" #~ msgstr "" #~ "tipi\n" #~ "i lidhjes" #~ msgid "setup\n" #~ msgstr "parametrizo\n" #~ msgid "_Help" #~ msgstr "_Ndihmë" #~ msgid "N" #~ msgstr "N" #~ msgid "New file" #~ msgstr "Skedar i ri" #~ msgid "O" #~ msgstr "O" #~ msgid "S" #~ msgstr "S" #~ msgid "C" #~ msgstr "C" #~ msgid "H" #~ msgstr "H" #~ msgid "A" #~ msgstr "A" #~ msgid "View the Copyright notices" #~ msgstr "Shiko njoftimet për të drejtën e autorit" #~ msgid "D" #~ msgstr "D" #~ msgid "U" #~ msgstr "U" #~ msgid "Error Loading Icon: %s\n" #~ msgstr "Gabim gjatë ngarkimit të ikonës: %s\n" #~ msgid "gtk_app::AttachDetachView() : no wnd!" #~ msgstr "gkt_app::Bashkangjit Ndaj Pamje() : pa wnd!" #~ msgid "gtk_app::AttachDetachView() ; unknown wcl class." #~ msgstr "gkt_app::Bashkangjit Ndaj Pamje() ; klasë e panjohur e wcl." #~ msgid "PrintToLog : " #~ msgstr "Printo Për t'u Loguar :" #~ msgid "ERROR : gtk_app::CameraRemoved() failed." #~ msgstr "GABIM : Dështoi gtk_app::U largua aparati për fotografim()." #~ msgid "ERROR : gtk_app::LightAdded() failed." #~ msgstr "GABIM : Dështoi gtk_app::Drita e shtuar()." #~ msgid "gtk_app::LightAdded() : bad cast!" #~ msgstr "gtk_app::Dritë e shtuar() : hedhje e keqe!" #~ msgid "ERROR : gtk_app::LightRemoved() failed." #~ msgstr "GABIM : dështoi gtk_app::Dritë e larguar()." #~ msgid "ERROR : gtk_app::GraphicsClientAdded() failed." #~ msgstr "GABIM ; dështoi gtk_app::Shtimi i klientit të graqfiqeve()." #~ msgid "gtk_app::GraphicsClientAdded() : bad cast!" #~ msgstr "gtk_app::Shtimi i klientit të grafiqeve() : hedhje e keqe!" #~ msgid "a graphics client" #~ msgstr "klient i grafiqeve" #~ msgid "ERROR : gtk_app::GraphicsClientRemoved() failed." #~ msgstr "GABIM : dështoi gtk_app::Largimi i klientit të grafiqeve()." #~ msgid "called gtk_app::PlottingClientAdded()" #~ msgstr "e quajtur gtk_app::Shtimi i klientit të vizatimit()" #~ msgid "a plotting client" #~ msgstr "një klient i vizatimit" #~ msgid "called gtk_app::PlottingClientRemoved()" #~ msgstr "e quajtur gtk_app::LArgim i klientit të vizatimit()" #~ msgid "ERROR : gtk_app::PlottingClientRemoved() failed." #~ msgstr "GABIM : dështoi gtk_app::Largimi i klientit të vizatimit()." #~ msgid "ERROR : gtk_project_view::ObjectRemoved() failed." #~ msgstr "GABIM : dështoi gtk_pamja_e projektit::Largimi i objekteve()" #~ msgid "ERROR : gtk_app::viewsobjs_SetCurrent() failed." #~ msgstr "GABIM : dështoi gtk_app::shikimi i punës_Vendos aktualen()." #~ msgid "ERROR : gtk_app::viewsobjs_Delete() failed." #~ msgstr "GABIM : dështoi gtk_app::pamje e punës_Hiq()." #~ msgid "ERROR : gtk_project_view::ChainsEventHandler2() failed." #~ msgstr "" #~ "GABIM : dështoi gtk_pamja_e projektit::Manovruesi 2 i ngjarjeve Zinxhir()." #~ msgid "ERROR : gtk_project_view::AtomUpdateItem() failed." #~ msgstr "" #~ "GABIM : dështoi gtk_pamja_e projektit::Artikull i përditësimit të atomit" #~ "()." #~ msgid "ERROR : gtk_project_view::AtomRemoved() failed." #~ msgstr "GABIM : dështoi gtk_pamja_e projektit::Largimi i atomeve()." #~ msgid "ERROR : gtk_project_view::AtomsEventHandler1() failed." #~ msgstr "" #~ "GABIM : dështoi gtk_pamja_e projektit::Manovruesi 1 i ngjarjeve të atomeve" #~ "()." #~ msgid "ERROR : gtk_project_view::atoms_ToggleLocked() failed." #~ msgstr "" #~ "GABIM : dështoi gtk_pamja_e projektit::atome_Ndryshimi i gjendjes i " #~ "bllokuar()." #~ msgid "true" #~ msgstr "e saktë" #~ msgid "false" #~ msgstr "jo e saktë" #~ msgid "ERROR : gtk_project_view::BondUpdateItem() failed." #~ msgstr "" #~ "GABIM : dështoi gtk_pamja_e projektit::Artikull I përditësimit të lidhjeve" #~ "()." #~ msgid "ERROR : gtk_project_view::BondRemoved() failed." #~ msgstr "GABIM : dështoi gtk_pamje_e projektit::Largimi i lidhjeve()." #~ msgid "ERROR : gtk_project_view::BondsEventHandler1() failed." #~ msgstr "" #~ "GABIM : gtk_pamja_e projektit::Manovruesi 1 e ngjarjes së lidhjeve()." #~ msgid "draw skipped ; counter = " #~ msgstr "numërues i nxituar i vizatimit ; = " #~ msgid "draw state is " #~ msgstr "gjendja e vizatimit është" #~ msgid "erase skipped ; counter = " #~ msgstr "numërues i nxituar i fshirjes ; = " #~ msgid "erase state is " #~ msgstr "gjendja e fshirjes është " #~ msgid "select skipped ; counter = " #~ msgstr "numërues i nxituar për përzgjedhje ; = " #~ msgid "select state is " #~ msgstr "gjendja e përzgjedhjes është" #~ msgid "zoom skipped ; counter = " #~ msgstr "numërues i nxituar i zmadhimit ; = " #~ msgid "zoom state is " #~ msgstr "gjendja e zmadhimit është" #~ msgid "clipping skipped ; counter = " #~ msgstr "numërues i nxituar i prerjes ; = " #~ msgid "clipping state is " #~ msgstr "gjendja e prerjes është" #~ msgid "transl_xy skipped ; counter = " #~ msgstr "numërues i nxituar i transl_xy ; = " #~ msgid "transl_xy state is " #~ msgstr "gjendja e transl_xy është" #~ msgid "transl_z skipped ; counter = " #~ msgstr "numërues i nxituar itransl_z ; = " #~ msgid "transl_z state is " #~ msgstr "gjendja e transl_z është" #~ msgid "orbit_xy skipped ; counter = " #~ msgstr "numërues i nxituar iorbit_xy ; = " #~ msgid "orbit_xy state is " #~ msgstr "gjendja e orbit_xy është" #~ msgid "orbit_z skipped ; counter = " #~ msgstr "numërues i nxituar iorbit_z ; = " #~ msgid "orbit_z state is " #~ msgstr "gjendja e orbit_z është" #~ msgid "rotate_xy skipped ; counter = " #~ msgstr "numërues i nxituar i rrotullimit_xy ; = " #~ msgid "rotate_xy state is " #~ msgstr "gjendja e rrotullimit_xy është" #~ msgid "rotate_z skipped ; counter = " #~ msgstr "numërues i nxituar i rrotullimit_z ; =" #~ msgid "rotate_z state is " #~ msgstr "gjendja e rrotullimit_z është" #~ msgid "measure skipped ; counter = " #~ msgstr "numërues i nxituar për matje ; =" #~ msgid "measure state is " #~ msgstr "gjendja e matjes është" #~ msgid "ghemical-" #~ msgstr "ghemical-" #~ msgid "ERROR : could not read glade XML file : " #~ msgstr "GABIM : nuk mund të lexojë glade skedarin XML :" #~ msgid "I" #~ msgstr "I" #~ msgid "E" #~ msgstr "E" #~ msgid "Compute a single-point energy" #~ msgstr "Njehso energjinë një pikëshe" #~ msgid "Do a geometry optimization run" #~ msgstr "Bëj një ekzekutim të optimizimit të gjeometrisë" #~ msgid "Do a molecular dynamics run" #~ msgstr "Bëj një ekzekutim të forcës lëvizëse molekulare" #~ msgid "Do a random conformational search" #~ msgstr "Bëj një hulumtim strukturorë të rastësishëm" #~ msgid "Do a Monte Carlo type conformational search" #~ msgstr "Bëj një hulumtim të tipit Monte Carlo" #~ msgid "...todo..." #~ msgstr "...për të bërë..." #~ msgid "UnderConstruction ; RS ; Set Formal Charge" #~ msgstr "Në ndërtim ; RS ; Vendos ngarkesë formale" #~ msgid "UnderConstruction ; RS ; make RS" #~ msgstr "Në ndërtim ; RS ; bëj RS" #~ msgid "UnderConstruction ; RS ; cycle RS" #~ msgstr "Në ndërtim ; RS ; ciklo RS" #~ msgid "Building ggv menu failed : %s" #~ msgstr "Dështoi ndërtimi i menysë ggv : %s" #~ msgid "" #~ "FIXME : superimpose conflicts with openbabel?\n" #~ "g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) 20050701\n" #~ "compiler says superimpose is undeclared???" #~ msgstr "" #~ "MË RREGULLO : mbivendos konflikte me openbabel?\n" #~ "përpiluesi g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) 20050701\n" #~ " tregon se mbivendosja nuk është e shpallur???" #~ msgid "gtk_project::GetClient() failed!" #~ msgstr "dështoi gtk_projekti::Merr klient() !" #~ msgid "now returning from gtk_project::GeomOptGetParam()." #~ msgstr "tani kthehu nga gtk_projekti::GeomOptGetParam()." #~ msgid "now returning from gtk_project::MolDynGetParam()." #~ msgstr "tani kthehuni nga gtk_projekti::MolDynGetParam()." #~ msgid "gtk_project::DestroyGraphicsWnd() : bad cast." #~ msgstr "gtk_projekti::ShkatërroGrafiqeWnd() : hedhje e keqe." #~ msgid "gtk_project::DestroyPlottingWnd() : bad cast." #~ msgstr "gtk_projekti::ShkatërroVizatiminWnd() : hedhje e keqe." #~ msgid "not implemented..." #~ msgstr "nuk është e zbatuar..." #~ msgid "" #~ "BUG: Bad cast was detected at setup_dialog ctor.\n" #~ "The program will terminate." #~ msgstr "" #~ "VIRUS: Hedhja e keqe u zbulua në dialogun_e parametrizimit ctor.\n" #~ "Programi do të përfundojë." #~ msgid "BUG: Invalid current page at setup_dialog::handler_ButtonOK()." #~ msgstr "" #~ "VIRUS: faqe aktuale e pavlefshme në dialogun_e parametrizimit::" #~ "mbajtës_ButonOK()." #~ msgid "callEXIT : cannot report SFmode!" #~ msgstr "thirrDALJE : nuk mund të raportojë mënyrën SF!" #~ msgid "Open Project File" #~ msgstr "Hap skedarin e projektit" #~ msgid "Save Project File" #~ msgstr "Ruaj skedarin e projektit" #~ msgid "BUG: file_save_dialog::OkEvent() failed." #~ msgstr "VIRUS: dështoi dialogu_për ruajtjen_e skedarit::OkNgjarje()." #~ msgid "Save Graphics File - ps" #~ msgstr "Ruaj skedarin grafik - ps" #~ msgid "BUG: file_save_graphics_dialog::OkEvent() failed." #~ msgstr "VIRUS: dështoi dialogu_grafik_për ruajtjen_e skedarëve::OkNgjarj()." #~ msgid "Open Trajectory File - traj" #~ msgstr "Hap Skedarin e Trajektores -traj" #~ msgid "trying to open \"" #~ msgstr "bëj përpjekje për ta hapur \"" #~ msgid "Import File - Brookhaven PDB/ENT" #~ msgstr "Importo Skedarin- Brookhaven PDB/ENT " #~ msgid "OK" #~ msgstr "OK" #~ msgid "handler_Destroy() : ref = " #~ msgstr "mbajtës_Shkatërro() : ref = " #~ msgid "ERROR : gtk_wnd dtor ; removal from iv failed!" #~ msgstr "GABIM : gtk_wnd dtor ; dështoi largimi nga iv!" #~ msgid "gtk_wnd::RealizeHandler() : iv_Find() failed!" #~ msgstr "Dështoi gtk_wnd::Mbajtës i realizuar() : iv_Gjej() !" #~ msgid "gtk_wnd::RealizeHandler() : gdk_gl_drawable_make_current() failed.\n" #~ msgstr "" #~ "gtk_wnd::Mbajtës i realizuar() :dështoi gdk_gl_bëje_aktuale_të " #~ "vizatueshmen() .\n" #~ msgid "gtk_wnd::ButtonHandler() : iv_Find() failed!" #~ msgstr "dështoi gtk_wnd::Mbajtës i butonit() : iv_Gjej() !" #~ msgid "ExposeHandler ; NOT REALIZED!!!" #~ msgstr "Trego mabjtësin ; NUK U REALIZUA!!!" #~ msgid "ExposeHandler ; NOT INITIALIZED!!!" #~ msgstr "Trego mbajtësin ; NUK U REALIZUA!!!" #~ msgid "gtk_wnd::ExposeHandler() : gdk_gl_drawable_make_current() failed.\n" #~ msgstr "" #~ "gtk_wnd::Trego mabjtësin() :dështoi gdk_gl_bëj_aktuale_të vizatueshmen" #~ "() .\n" #~ msgid "ButtonHandler ; NOT REALIZED!!!" #~ msgstr "Mbajtësi i butonit ; NUK U REALIZUA!!!" #~ msgid "gtk_wnd::MotionNotifyHandler() : iv_Find() failed!" #~ msgstr "dështoi gtk_wnd::Mbajtës për lajmërimin e lëvizjes() iv_Gjej() !" #~ msgid "WARNING ; a mouse-button-up event was lost!" #~ msgstr "PARALAJMËRIM ; u humb ngjarja e butonit të sipërm të miut!" #~ msgid "iv_Find() failed at gtk_wnd::ConfigureHandler()." #~ msgstr "dështoi iv_Gjej() në gtk_wnd::Konfiguro Mbajtësin()." #~ msgid "gtk_wnd::SetCurrent() : gdk_gl_drawable_make_current() failed.\n" #~ msgstr "" #~ "gtk_wnd::Vendos aktualen() :dështoi gdk_gl_bëj_aktuale_të vuzaturshmen" #~ "() .\n" #~ msgid "ERROR : gtk_wnd::TitleChanged() called for an unlinked window." #~ msgstr "" #~ "GABIM : gtk_wnd::Titull i ndryshuar() i thirrur për një dritare jo në " #~ "linjë." #~ msgid "" #~ "BUG: The chain type is not correct (\"amino_acid\").\n" #~ "The program will terminate." #~ msgstr "" #~ "VIRUS: Tipi i zinxhirit nuk është i saktë (\"amino_acid\".\n" #~ "Programi do të përfundojë." #~ msgid "" #~ "BUG: Tried to create a ribbon with less than 3 residues.\n" #~ "The program will terminate." #~ msgstr "" #~ "VIRUS: Përpiqet të krijojë një ribbon me më pak se 3 radikale.\n" #~ "Programi do të përfundojë." #~ msgid "ribbon : failed to use susf." #~ msgstr "ribbon : dështoi përdorimi i susf." #~ msgid "ERROR : search of C_alpha 2 failed." #~ msgstr "GABIM : dështoi hulumtimi për C_alfa 2." #~ msgid "ERROR : search of C_alpha 1 failed." #~ msgstr "GABIM : dështoi hulumtimi për C_alfa 1." #~ msgid "ERROR : search of c_carboxyl failed." #~ msgstr "GABIM : dështoi hulumtimi për c_karboksil." #~ msgid "oglview_wcl::UpdateWnd() : skipped!" #~ msgstr "olgview_wcl::PërditësoWnd() : e kapërcyer!" #~ msgid "invalid s1 passed to plot1d_view!" #~ msgstr "s1 jo e vlefshme e kaluar në pamje_të vizatimit2d!" #~ msgid "invalid sv passed to plot1d_view!" #~ msgstr "sv jo e vlefshme e kaluar në pamje_të vizatimit1d!" #~ msgid "invalid s1 passed to plot2d_view!" #~ msgstr "s1 jo e vlefshme e kaluar në pamje_të vizatimit2d!" #~ msgid "invalid s2 passed to plot2d_view!" #~ msgstr "s2 jo e vlefshme e kaluar në pamje_të vizatimit2d!" #~ msgid "invalid sv passed to plot2d_view!" #~ msgstr "sv jo e vlefshme e kaluar në pamje_të vizatimit2d!" #~ msgid "callEXIT : pangofont_wcl::ogl_InitPangoFont() failed." #~ msgstr "thirrDALJE : dështoi pangofon_wcl::ogl_InitPangoFont() ." #~ msgid "WARNING : pangofont_wcl::ogl_InitPangoFont() is already called." #~ msgstr "PARALAMËRIM : tashë quhet pangofont_wcl_::ogl_InitPangoFont() ." #~ msgid "object_vector not empty!" #~ msgstr "vecktori_i objektit nuk është e zbrazët!" #~ msgid "plotting_view_vector not empty!" #~ msgstr "vektori_për shikimin_e vizatimit nuk është i zbrazët!" #~ msgid "graphics_view_vector not empty!" #~ msgstr "vektori_për shikimin_e grafiqeve nuk është i zbrazët!" #~ msgid "bond_list not empty!" #~ msgstr "lista_e lidhjeve nuk është e zbrazët!" #~ msgid "atom_list not empty!" #~ msgstr "lista_e atomeve nuk është e zbrazët!" #~ msgid "project::GetProjectFileName() : buffer overflow!" #~ msgstr "" #~ "projekti::Merr Emrin e skedarit të Projektit() : zbatim i tejmbushur!" #~ msgid "project::GetFullProjectFileName() : buffer overflow!" #~ msgstr "" #~ "projekti::Merr emër të plotë të skedarti të projektit() : zbatim i " #~ "tejmbushur!" #~ msgid "WARNING : bad index at project::RemoveGraphicsClient()." #~ msgstr "" #~ "PARALAJMËRIM : tregues i keq në projektin::Largo Klientin e Grafiqeve() ." #~ msgid "WARNING : bad index at project::RemovePlottingClient()." #~ msgstr "" #~ "PARALAJMËRIM : tregues i keq në projektin::Largo Klientin e Vizatimit() ." #~ msgid "WARNING!!! donHmc/accHmc mismatch" #~ msgstr "PARALAJMËRIM!!! donHmc/accHmc mismatch" #~ msgid "ERROR!!! ca_S_2x has an odd size." #~ msgstr "GABIM!!! ca_S_2x ka një madhësi të çuditshme." #~ msgid "ERROR!!! cx_S_2x has an odd size." #~ msgstr "GABIM!!! cx_S_2x ka një madhësi të çuditshme." #~ msgid "WARNING!!! mc_H_don/mc_H_acc mismatch" #~ msgstr "PARALAJMËRIM!!! mc_H_don/mc_H_acc mismatch" #~ msgid "WARNING!!! mc_S_don/mc_S_acc mismatch" #~ msgstr "PARALAJMËRIM!!! mc_S_don/mc_S_acc mismatch" #~ msgid "BUG: project::EraseEvent()." #~ msgstr "VIRUS: projekti::Fshij Ngjarje()." #~ msgid "fatal error! atom #1 not found." #~ msgstr "gabim fatal! nuk u gjet atomi #1." #~ msgid "fatal error! atom #2 not found." #~ msgstr "gabim fatal! atomi #2 nuk u gjet." ghemical-3.0.0/po/POTFILES.in0000644000175000017500000000216111563552731012407 00000000000000src/ac_stor_wcl.cpp src/custom_app.cpp src/custom_camera.cpp src/custom_lights.cpp src/eldview_wcl.cpp src/fileio.cpp src/filetrans.cpp src/gpcview_wcl.cpp src/gtk_app.cpp src/gtk_eldview_wnd.cpp src/gtk_file_export_dialog.cpp src/gtk_file_import_dialog.cpp src/gtk_geomopt_dialog.cpp src/gtk_glade_dialog.cpp src/gtk_gpcview_wnd.cpp src/gtk_main.cpp src/gtk_moldyn_dialog.cpp src/gtk_oglview_wnd.cpp src/gtk_p1dview_wnd.cpp src/gtk_p2dview_wnd.cpp src/gtk_progress_dialog.cpp src/gtk_project.cpp src/gtk_rcpview_wnd.cpp src/gtk_setup_dialog.cpp src/gtk_simple_dialogs.cpp src/gtk_stereo_dialog.cpp src/gtk_trajview_dialog.cpp src/gtk_wnd.cpp src/ogl_plane.cpp src/ogl_ribbon.cpp src/ogl_surface.cpp src/oglview_wcl.cpp src/p1dview_wcl.cpp src/p2dview_wcl.cpp src/pangofont_wcl.cpp src/project.cpp src/rcpview_wcl.cpp src/spline.cpp src/res_gtk/gtk_file_export_dialog.glade src/res_gtk/gtk_file_import_dialog.glade src/res_gtk/gtk_geomopt_dialog.glade src/res_gtk/gtk_moldyn_dialog.glade src/res_gtk/gtk_progress_dialog.glade src/res_gtk/gtk_setup_dialog.glade src/res_gtk/gtk_stereo_dialog.glade src/res_gtk/gtk_trajview_dialog.glade ghemical-3.0.0/Makefile.in0000644000175000017500000005472311645347725012302 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ ChangeLog INSTALL NEWS TODO config.guess config.sub depcomp \ install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ SUBDIRS = docs examples src po EXTRA_DIST = autogen.sh ghemical.spec all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/0000755000175000017500000000000011645354540012111 500000000000000ghemical-3.0.0/examples/dna_AGTC.gpr0000644000175000017500000002604511563552732014114 00000000000000!Header gpr 110 !Info 1 allmm 1 !Atoms 131 0 15 0 1 8 0 2 6 0 3 6 0 4 8 0 5 6 0 6 6 0 7 6 0 8 8 0 9 8 0 10 8 0 11 8 0 12 7 0 13 6 0 14 7 0 15 6 0 16 7 0 17 6 0 18 7 0 19 6 0 20 6 0 21 7 0 22 15 0 23 8 0 24 6 0 25 6 0 26 8 0 27 6 0 28 6 0 29 6 0 30 8 0 31 8 0 32 8 0 33 7 0 34 6 0 35 7 0 36 6 0 37 7 0 38 6 0 39 7 0 40 6 0 41 6 0 42 7 0 43 8 0 44 15 0 45 8 0 46 6 0 47 6 0 48 8 0 49 6 0 50 6 0 51 6 0 52 8 0 53 8 0 54 8 0 55 7 0 56 6 0 57 7 0 58 6 0 59 6 0 60 6 0 61 8 0 62 8 0 63 6 0 64 15 0 65 8 0 66 6 0 67 6 0 68 8 0 69 6 0 70 6 0 71 6 0 72 8 0 73 8 0 74 8 0 75 7 0 76 6 0 77 7 0 78 6 0 79 6 0 80 6 0 81 8 0 82 7 0 83 1 0 84 1 0 85 1 0 86 1 0 87 1 0 88 1 0 89 1 0 90 1 0 91 1 0 92 1 0 93 1 0 94 1 0 95 1 0 96 1 0 97 1 0 98 1 0 99 1 0 100 1 0 101 1 0 102 1 0 103 1 0 104 1 0 105 1 0 106 1 0 107 1 0 108 1 0 109 1 0 110 1 0 111 1 0 112 1 0 113 1 0 114 1 0 115 1 0 116 1 0 117 1 0 118 1 0 119 1 0 120 1 0 121 1 0 122 1 0 123 1 0 124 1 0 125 1 0 126 1 0 127 1 0 128 1 0 129 1 0 130 1 0 !Bonds 140 0 1 S 1 2 S 2 3 S 3 4 S 4 5 S 5 6 S 6 7 S 7 8 S 0 9 C 0 10 C 0 11 C 3 7 S 5 12 S 12 13 S 13 14 D 12 15 S 15 16 S 16 17 D 17 18 S 18 19 D 19 20 S 19 21 S 14 20 S 15 20 D 8 22 S 22 23 S 23 24 S 24 25 S 25 26 S 26 27 S 27 28 S 28 29 S 29 30 S 22 31 C 22 32 C 25 29 S 27 33 S 33 34 S 34 35 D 33 36 S 36 37 S 37 38 D 38 39 S 39 40 S 40 41 S 38 42 S 40 43 D 35 41 S 36 41 D 30 44 S 44 45 S 45 46 S 46 47 S 47 48 S 48 49 S 49 50 S 50 51 S 51 52 S 44 53 C 44 54 C 47 51 S 49 55 S 55 56 S 56 57 S 57 58 S 58 59 S 59 60 D 56 61 D 58 62 D 59 63 S 55 60 S 52 64 S 64 65 S 65 66 S 66 67 S 67 68 S 68 69 S 69 70 S 70 71 S 71 72 S 64 73 C 64 74 C 67 71 S 69 75 S 75 76 S 76 77 S 77 78 D 78 79 S 79 80 D 76 81 D 78 82 S 75 80 S 2 83 S 2 84 S 3 85 S 5 86 S 6 87 S 6 88 S 7 89 S 10 90 S 11 91 S 13 92 S 17 93 S 21 94 S 21 95 S 24 96 S 24 97 S 25 98 S 27 99 S 28 100 S 28 101 S 29 102 S 34 103 S 42 104 S 42 105 S 46 106 S 46 107 S 47 108 S 49 109 S 50 110 S 50 111 S 51 112 S 60 113 S 63 114 S 63 115 S 63 116 S 66 117 S 66 118 S 67 119 S 69 120 S 70 121 S 70 122 S 71 123 S 72 124 S 79 125 S 80 126 S 82 127 S 82 128 S 39 129 S 57 130 S !Coord 0 +0.990554928779602 -0.150277018547058 +0.189796984195709 1 +0.870468497276306 -0.113332390785217 +0.0907294377684593 2 +0.901102662086487 -0.0723694562911987 -0.0438796132802963 3 +0.792864441871643 +0.0208965539932251 -0.095744326710701 4 +0.68485289812088 -0.0590903759002686 -0.152767077088356 5 +0.573053777217865 -0.0591839551925659 -0.0652174055576324 6 +0.61265105009079 +0.0172169208526611 +0.0612893588840961 7 +0.72432404756546 +0.108129024505615 +0.0095871314406395 8 +0.663598775863647 +0.227835059165955 -0.0367474406957626 9 +1.13950967788696 -0.132192015647888 +0.109888389706612 10 +0.987817585468292 -0.0476459264755249 +0.325293779373169 11 +0.97525417804718 -0.311269700527191 +0.242211148142815 12 +0.53551971912384 -0.202351212501526 -0.030600294470787 13 +0.583735167980194 -0.28764671087265 +0.0651543736457825 14 +0.526646494865417 -0.404440879821777 +0.0652181357145309 15 +0.438797891139984 -0.273617148399353 -0.0964414030313492 16 +0.363001376390457 -0.230593919754028 -0.199537917971611 17 +0.279668301343918 -0.325027406215668 -0.239059001207352 18 +0.263952285051346 -0.448271334171295 -0.191593840718269 19 +0.340572655200958 -0.488270342350006 -0.0891955941915512 20 +0.433244049549103 -0.396464765071869 -0.0383649617433548 21 +0.325242072343826 -0.612320780754089 -0.0409000515937805 22 +0.55020135641098 +0.297110438346863 +0.0523702204227448 23 +0.417010366916656 +0.245474100112915 -0.0196981132030487 24 +0.414195597171783 +0.237007021903992 -0.163421407341957 25 +0.272070080041885 +0.256026864051819 -0.213845565915108 26 +0.203746825456619 +0.127007126808167 -0.212493732571602 27 +0.111637495458126 +0.121956586837769 -0.104538336396217 28 +0.126621335744858 +0.251290917396545 -0.0241820514202118 29 +0.183197289705276 +0.347231984138489 -0.129079475998878 30 +0.0730017498135567 +0.407792329788208 -0.195059671998024 31 +0.563283205032349 +0.247519612312317 +0.203927516937256 32 +0.567350804805756 +0.456096887588501 +0.046966265887022 33 +0.142422959208488 +0.00169241428375244 -0.0168297365307808 34 +0.231369853019714 -0.0145261287689209 +0.0860994234681129 35 +0.230004817247391 -0.133424997329712 +0.138646453619003 36 +0.0796778500080109 -0.119464516639709 -0.0292015075683594 37 -0.0166844502091408 -0.151713967323303 -0.11807943880558 38 -0.0549773499369621 -0.277046144008636 -0.102283857762814 39 -0.0118745639920235 -0.367540538311005 -0.0148658007383347 40 +0.0838684141635895 -0.332726299762726 +0.0721816197037697 41 +0.132757633924484 -0.201726198196411 +0.0651955306529999 42 -0.150104165077209 -0.329889237880707 -0.180479124188423 43 +0.125092148780823 -0.414964437484741 +0.153830230236053 44 -0.0500598475337029 +0.461275666952133 -0.107908234000206 45 -0.15457546710968 +0.341094732284546 -0.123173117637634 46 -0.167188286781311 +0.275311350822449 -0.250646531581879 47 -0.307887047529221 +0.220170259475708 -0.266996324062347 48 -0.313999861478806 +0.0874539613723755 -0.206456825137138 49 -0.384344458580017 +0.0934668779373169 -0.0832517892122269 50 -0.41852268576622 +0.240092396736145 -0.0560155995190144 51 -0.418696343898773 +0.299187541007996 -0.197142258286476 52 -0.549940824508667 +0.284273982048035 -0.249262005090714 53 -0.00264295190572739 +0.484938710927963 +0.0430609732866287 54 -0.103148780763149 +0.599282503128052 -0.169028475880623 55 -0.296303033828735 +0.0379313230514526 +0.0288798958063126 56 -0.317427009344101 -0.0942343473434448 +0.0581205561757088 57 -0.243893817067146 -0.155518651008606 +0.157524287700653 58 -0.142792224884033 -0.0763771533966064 +0.231138795614243 59 -0.128794223070145 +0.0615837574005127 +0.192320600152016 60 -0.205185532569885 +0.111684083938599 +0.0942883491516113 61 -0.402083963155746 -0.154425501823425 -0.00586559623479843 62 -0.078723318874836 -0.132192730903625 +0.318681955337524 63 -0.0270732045173645 +0.144303321838379 +0.26519250869751 64 -0.675123810768127 +0.320191264152527 -0.156314834952354 65 -0.719134271144867 +0.175287008285522 -0.104683056473732 66 -0.714494228363037 +0.0641899108886719 -0.196181192994118 67 -0.818947196006775 -0.0392928123474121 -0.157646805047989 68 -0.761914551258087 -0.129086375236511 -0.0576448440551758 69 -0.815971970558167 -0.0998287200927734 +0.0703621357679367 70 -0.906801521778107 +0.0224456787109375 +0.0559415519237518 71 -0.945685207843781 +0.0156054496765137 -0.091876819729805 72 -1.06225323677063 -0.0649205446243286 -0.101439610123634 73 -0.628225564956665 +0.417680829763412 -0.0384321212768555 74 -0.787690997123718 +0.392987370491028 -0.243660971522331 75 -0.702390313148499 -0.0701137781143188 +0.168470472097397 76 -0.662070870399475 -0.177376389503479 +0.243557542562485 77 -0.560285925865173 -0.162813305854797 +0.335599571466446 78 -0.496230781078339 -0.0303298234939575 +0.351380705833435 79 -0.546347200870514 +0.0754226446151733 +0.267471492290497 80 -0.645787835121155 +0.0509568452835083 +0.181048199534416 81 -0.7185298204422 -0.28412801027298 +0.226223319768906 82 -0.399130374193192 -0.0190706253051758 +0.440086603164673 83 +0.997847437858582 -0.0200302116572857 -0.044903539121151 84 +0.906110882759094 -0.161298483610153 -0.10842839628458 85 +0.845609307289124 +0.0864420458674431 -0.166608765721321 86 +0.486257165670395 -0.0111933555454016 -0.112790986895561 87 +0.528322577476501 +0.0758575946092606 +0.100659176707268 88 +0.643197178840637 -0.0476853474974632 +0.144683808088303 89 +0.799951791763306 +0.142391636967659 +0.0817433297634125 90 +0.893976032733917 -0.0286024175584316 +0.350435614585876 91 +0.879337012767792 -0.334578901529312 +0.249799892306328 92 +0.660722494125366 -0.260803997516632 +0.133126735687256 93 +0.216289848089218 -0.298937141895294 -0.320116341114044 94 +0.257674127817154 -0.673339605331421 -0.0810438618063927 95 +0.381426513195038 -0.643414080142975 +0.0351050011813641 96 +0.478679955005646 +0.315402388572693 -0.205799892544746 97 +0.450572818517685 +0.137949660420418 -0.194475099444389 98 +0.284696102142334 +0.301773011684418 -0.313082039356232 99 +0.008556735701859 +0.112217046320438 -0.141679927706718 100 +0.0294945426285267 +0.286280661821365 +0.0137929795309901 101 +0.189785689115524 +0.240972548723221 +0.0652818977832794 102 +0.243407160043716 +0.432165086269379 -0.0935669615864754 103 +0.29557591676712 +0.0629616305232048 +0.119878865778446 104 -0.19267101585865 -0.274532586336136 -0.251358985900879 105 -0.178172528743744 -0.424483865499496 -0.167662173509598 106 -0.146788835525513 +0.347522228956223 -0.331079423427582 107 -0.0950882360339165 +0.19239430129528 -0.255779325962067 108 -0.325562298297882 +0.223464652895927 -0.375516980886459 109 -0.476380527019501 +0.0334061905741692 -0.0879500657320023 110 -0.517172873020172 +0.249996617436409 -0.00837049819529057 111 -0.34880131483078 +0.289916276931763 +0.0129518806934357 112 -0.397508502006531 +0.406613439321518 -0.207665845751762 113 -0.193183362483978 +0.213643744587898 +0.0673069134354591 114 +0.0443115048110485 +0.078053817152977 +0.316331803798676 115 +0.0268380828201771 +0.207781121134758 +0.19333054125309 116 -0.0777858048677444 +0.207751035690308 +0.339372158050537 117 -0.734706521034241 +0.100121639668941 -0.298163414001465 118 -0.614713549613953 +0.0180811248719692 -0.191961795091629 119 -0.846591472625732 -0.0863717272877693 -0.253142207860947 120 -0.873467087745667 -0.185340017080307 +0.10886062681675 121 -0.995171248912811 +0.0145345656201243 +0.120966151356697 122 -0.858859717845917 +0.11710075289011 +0.0849588811397552 123 -0.973582744598389 +0.109541393816471 -0.141854450106621 124 -1.03663742542267 -0.160526067018509 -0.0993381887674332 125 -0.504517376422882 +0.17275932431221 +0.274079024791718 126 -0.681173980236053 +0.130391597747803 +0.120173260569572 127 -0.371274381875992 -0.0981518477201462 +0.493663221597672 128 -0.353793233633041 +0.0684976428747177 +0.453375428915024 129 -0.0511472001671791 -0.470443516969681 -0.00159934500698 130 -0.276984959840775 -0.264228522777557 +0.186582788825035 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0 18 +0 19 +0 20 +0 21 +0 22 +0 23 +0 24 +0 25 +0 26 +0 27 +0 28 +0 29 +0 30 +0 31 +0 32 +0 33 +0 34 +0 35 +0 36 +0 37 +0 38 +0 39 +0 40 +0 41 +0 42 +0 43 +0 44 +0 45 +0 46 +0 47 +0 48 +0 49 +0 50 +0 51 +0 52 +0 53 +0 54 +0 55 +0 56 +0 57 +0 58 +0 59 +0 60 +0 61 +0 62 +0 63 +0 64 +0 65 +0 66 +0 67 +0 68 +0 69 +0 70 +0 71 +0 72 +0 73 +0 74 +0 75 +0 76 +0 77 +0 78 +0 79 +0 80 +0 81 +0 82 +0 83 +0 84 +0 85 +0 86 +0 87 +0 88 +0 89 +0 90 +0 91 +0 92 +0 93 +0 94 +0 95 +0 96 +0 97 +0 98 +0 99 +0 100 +0 101 +0 102 +0 103 +0 104 +0 105 +0 106 +0 107 +0 108 +0 109 +0 110 +0 111 +0 112 +0 113 +0 114 +0 115 +0 116 +0 117 +0 118 +0 119 +0 120 +0 121 +0 122 +0 123 +0 124 +0 125 +0 126 +0 127 +0 128 +0 129 +0 130 +0 !End ghemical-3.0.0/examples/cinnamaldehyde.gpr0000644000175000017500000000177411563552732015523 00000000000000!Header gpr 100 !Info 1 !Atoms 18 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 8 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 !Bonds 18 0 1 C 1 2 C 2 3 C 3 4 C 4 5 C 0 5 C 5 6 S 6 7 D 7 8 S 8 9 D 0 10 S 1 11 S 2 12 S 3 13 S 4 14 S 6 15 S 7 16 S 8 17 S !Coord 0 0.163641 -0.0350034 -0.00578106 1 0.209345 -0.161707 0.0307484 2 0.118576 -0.25922 0.0720975 3 -0.0176233 -0.22937 0.0766732 4 -0.0630553 -0.102548 0.0400774 5 0.0274259 -0.00439281 -0.00145082 6 -0.0152605 0.134949 -0.0424214 7 -0.142047 0.177591 -0.0429966 8 -0.175644 0.314811 -0.0842311 9 -0.291929 0.351745 -0.0840487 10 0.234883 0.0402154 -0.0378052 11 0.315351 -0.18434 0.0269913 12 0.153712 -0.357801 0.100563 13 -0.0884453 -0.304978 0.10878 14 -0.169235 -0.0822346 0.0446073 15 0.0625024 0.204674 -0.0733493 16 -0.224774 0.113559 -0.0134025 17 -0.0974218 0.384052 -0.115051 !Charges 0 -0.1 1 -0.1 2 -0.1 3 -0.1 4 -0.1 5 0 6 -0.1 7 -0.1 8 0 9 -0.1 10 0.1 11 0.1 12 0.1 13 0.1 14 0.1 15 0.1 16 0.1 17 0.1 !End ghemical-3.0.0/examples/Makefile.in0000644000175000017500000004731611645347724014117 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(examplesdir)" DATA = $(examples_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ SUBDIRS = TSS examplesdir = $(datadir)/ghemical/@APPVERSION@/examples examples_DATA = \ 2-chlorobutane.gpr \ 3-phenylpropanal.gpr \ PeriodicTable.gpr \ acetylsalicylic_acid.gpr \ alpha-pinene.gpr \ bromobenzene.gpr \ camphor.gpr \ cinnamaldehyde.gpr \ cis-2-pentene.gpr \ cyclohexane.gpr \ dna_AGTC.gpr \ naphtalene.gpr \ rna_aguc.gpr EXTRA_DIST = $(examples_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-examplesDATA: $(examples_DATA) @$(NORMAL_INSTALL) test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)" @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \ done uninstall-examplesDATA: @$(NORMAL_UNINSTALL) @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(examplesdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(examplesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-examplesDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-examplesDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am \ install-examplesDATA install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-examplesDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/rna_aguc.gpr0000644000175000017500000002616311563552732014334 00000000000000!Header gpr 110 !Info 1 allmm 1 !Atoms 132 0 15 0 1 8 0 2 6 0 3 6 0 4 8 0 5 6 0 6 6 0 7 6 0 8 8 0 9 8 0 10 8 0 11 8 0 12 7 0 13 6 0 14 7 0 15 6 0 16 7 0 17 6 0 18 7 0 19 6 0 20 6 0 21 8 0 22 7 0 23 15 0 24 8 0 25 6 0 26 6 0 27 8 0 28 6 0 29 6 0 30 6 0 31 8 0 32 8 0 33 8 0 34 7 0 35 6 0 36 7 0 37 6 0 38 7 0 39 6 0 40 7 0 41 6 0 42 6 0 43 8 0 44 7 0 45 8 0 46 15 0 47 8 0 48 6 0 49 6 0 50 8 0 51 6 0 52 6 0 53 6 0 54 8 0 55 8 0 56 8 0 57 7 0 58 6 0 59 7 0 60 6 0 61 6 0 62 6 0 63 8 0 64 8 0 65 8 0 66 15 0 67 8 0 68 6 0 69 6 0 70 8 0 71 6 0 72 6 0 73 6 0 74 8 0 75 8 0 76 8 0 77 7 0 78 6 0 79 7 0 80 6 0 81 6 0 82 6 0 83 8 0 84 8 0 85 7 0 86 1 0 87 1 0 88 1 0 89 1 0 90 1 0 91 1 0 92 1 0 93 1 0 94 1 0 95 1 0 96 1 0 97 1 0 98 1 0 99 1 0 100 1 0 101 1 0 102 1 0 103 1 0 104 1 0 105 1 0 106 1 0 107 1 0 108 1 0 109 1 0 110 1 0 111 1 0 112 1 0 113 1 0 114 1 0 115 1 0 116 1 0 117 1 0 118 1 0 119 1 0 120 1 0 121 1 0 122 1 0 123 1 0 124 1 0 125 1 0 126 1 0 127 1 0 128 1 0 129 1 0 130 1 0 131 1 0 !Bonds 141 0 1 S 1 2 S 2 3 S 3 4 S 4 5 S 5 6 S 6 7 S 7 8 S 0 9 C 0 10 C 0 11 C 3 7 S 5 12 S 12 13 S 13 14 D 12 15 S 15 16 S 16 17 D 17 18 S 18 19 D 19 20 S 6 21 S 19 22 S 14 20 S 15 20 D 8 23 S 23 24 S 24 25 S 25 26 S 26 27 S 27 28 S 28 29 S 29 30 S 30 31 S 23 32 C 23 33 C 26 30 S 28 34 S 34 35 S 35 36 D 34 37 S 37 38 S 38 39 D 39 40 S 40 41 S 41 42 S 29 43 S 39 44 S 41 45 D 36 42 S 37 42 D 31 46 S 46 47 S 47 48 S 48 49 S 49 50 S 50 51 S 51 52 S 52 53 S 53 54 S 46 55 C 46 56 C 49 53 S 51 57 S 57 58 S 58 59 S 59 60 S 60 61 S 61 62 D 52 63 S 58 64 D 60 65 D 57 62 S 54 66 S 66 67 S 67 68 S 68 69 S 69 70 S 70 71 S 71 72 S 72 73 S 73 74 S 66 75 C 66 76 C 69 73 S 71 77 S 77 78 S 78 79 S 79 80 D 80 81 S 81 82 D 72 83 S 78 84 D 80 85 S 77 82 S 2 86 S 2 87 S 3 88 S 5 89 S 6 90 S 7 91 S 10 92 S 11 93 S 13 94 S 17 95 S 21 96 S 22 97 S 22 98 S 25 99 S 25 100 S 26 101 S 28 102 S 29 103 S 30 104 S 35 105 S 43 106 S 44 107 S 44 108 S 48 109 S 48 110 S 49 111 S 51 112 S 52 113 S 53 114 S 61 115 S 62 116 S 63 117 S 68 118 S 68 119 S 69 120 S 71 121 S 72 122 S 73 123 S 74 124 S 81 125 S 82 126 S 83 127 S 85 128 S 85 129 S 40 130 S 59 131 S !Coord 0 +1.00263750553131 -0.156029105186462 +0.189523905515671 1 +0.882551193237305 -0.119084477424622 +0.0904563739895821 2 +0.913185238838196 -0.078121542930603 -0.0441526770591736 3 +0.804947078227997 +0.0151444673538208 -0.0960173904895782 4 +0.696935534477234 -0.0648424625396729 -0.153040140867233 5 +0.585136413574219 -0.0649360418319702 -0.0654904693365097 6 +0.624733686447144 +0.0114648342132568 +0.0610162913799286 7 +0.736406683921814 +0.102376937866211 +0.00931406766176224 8 +0.675681412220001 +0.22208297252655 -0.0370205044746399 9 +1.15159225463867 -0.137944102287292 +0.109615311026573 10 +0.999900162220001 -0.0533980131149292 +0.32502070069313 11 +0.987336754798889 -0.317021787166595 +0.241938084363937 12 +0.547602355480194 -0.20810329914093 -0.0308733582496643 13 +0.595817804336548 -0.293398797512054 +0.0648813098669052 14 +0.538729131221771 -0.410192966461182 +0.0649450719356537 15 +0.450880527496338 -0.279369235038757 -0.0967144668102264 16 +0.375084012746811 -0.236346006393433 -0.199810981750488 17 +0.291750937700272 -0.330779492855072 -0.239332050085068 18 +0.2760349214077 -0.454023420810699 -0.191866904497147 19 +0.352655291557312 -0.49402242898941 -0.0894686579704285 20 +0.445326656103134 -0.402216851711273 -0.0386380255222321 21 +0.511744022369385 +0.083898663520813 +0.11036890745163 22 +0.33732470870018 -0.618072867393494 -0.0411731153726578 23 +0.562283992767334 +0.291358351707458 +0.0520971529185772 24 +0.429092973470688 +0.239722013473511 -0.019971176981926 25 +0.426278203725815 +0.231254935264587 -0.163694471120834 26 +0.284152716398239 +0.250274777412415 -0.214118629693985 27 +0.215829461812973 +0.121255040168762 -0.212766796350479 28 +0.123720146715641 +0.116204500198364 -0.104811407625675 29 +0.138703972101212 +0.245538830757141 -0.0244551151990891 30 +0.19527992606163 +0.341479897499084 -0.129352539777756 31 +0.0850843861699104 +0.402040243148804 -0.195332735776901 32 +0.575365841388702 +0.241767525672913 +0.203654453158379 33 +0.579433441162109 +0.450344800949097 +0.0466932021081448 34 +0.154505595564842 -0.00405967235565186 -0.0171028003096581 35 +0.243452504277229 -0.0202782154083252 +0.0858263596892357 36 +0.242087453603745 -0.139177083969116 +0.138373374938965 37 +0.0917604863643646 -0.125216603279114 -0.0294745713472366 38 -0.00460181385278702 -0.157466053962708 -0.118352510035038 39 -0.0428947135806084 -0.282798230648041 -0.102556928992271 40 +0.000208072364330292 -0.373292624950409 -0.0151388645172119 41 +0.0959510505199432 -0.33847838640213 +0.0719085559248924 42 +0.144840270280838 -0.207478284835815 +0.0649224668741226 43 +0.0108667239546776 +0.285884141921997 +0.0253334194421768 44 -0.138021528720856 -0.335641324520111 -0.1807521879673 45 +0.137174785137177 -0.420716524124146 +0.153557151556015 46 -0.0379772111773491 +0.455523580312729 -0.108181297779083 47 -0.142492830753326 +0.335342645645142 -0.123446181416512 48 -0.155105650424957 +0.269559264183044 -0.250919580459595 49 -0.295804411172867 +0.214418172836304 -0.267269372940063 50 -0.301917225122452 +0.0817018747329712 -0.206729888916016 51 -0.372261822223663 +0.0877147912979126 -0.0835248529911041 52 -0.406440079212189 +0.234340310096741 -0.0562886595726013 53 -0.406613737344742 +0.293435454368591 -0.197415322065353 54 -0.537858188152313 +0.27852189540863 -0.24953505396843 55 +0.00943968445062637 +0.479186624288559 +0.0427879095077515 56 -0.0910661444067955 +0.593530416488647 -0.1693015396595 57 -0.284220397472382 +0.0321792364120483 +0.0286068320274353 58 -0.305344372987747 -0.0999864339828491 +0.0578474923968315 59 -0.231811165809631 -0.16127073764801 +0.157251209020615 60 -0.130709588527679 -0.0821292400360107 +0.230865746736526 61 -0.11671157926321 +0.0558316707611084 +0.192047536373138 62 -0.193102896213531 +0.105931997299194 +0.0940152853727341 63 -0.533859848976135 +0.242486834526062 +0.00810720771551132 64 -0.390001326799393 -0.16017758846283 -0.00613866001367569 65 -0.0666406825184822 -0.13794481754303 +0.318408906459808 66 -0.663041174411774 +0.314439177513123 -0.156587898731232 67 -0.707051634788513 +0.169534921646118 -0.10495612770319 68 -0.702411592006683 +0.0584378242492676 -0.196454256772995 69 -0.806864559650421 -0.0450448989868164 -0.157919868826866 70 -0.749831914901733 -0.134838461875916 -0.0579179041087627 71 -0.803889274597168 -0.105580806732178 +0.0700890719890594 72 -0.894718945026398 +0.0166935920715332 +0.0556684844195843 73 -0.933602511882782 +0.00985336303710938 -0.0921498835086823 74 -1.05017066001892 -0.0706726312637329 -0.101712681353092 75 -0.616142928600311 +0.411928743124008 -0.0387051850557327 76 -0.775608360767365 +0.387235283851624 -0.243934035301208 77 -0.690307676792145 -0.0758658647537231 +0.16819740831852 78 -0.649988234043121 -0.183128476142883 +0.243284493684769 79 -0.54820328950882 -0.168565392494202 +0.335326492786407 80 -0.484148174524307 -0.0360819101333618 +0.351107656955719 81 -0.53426456451416 +0.069670557975769 +0.267198443412781 82 -0.633705198764801 +0.045204758644104 +0.180775135755539 83 -1.00660109519958 +0.00370383262634277 +0.14377436041832 84 -0.706447184085846 -0.289880096912384 +0.22595027089119 85 -0.387047737836838 -0.0248227119445801 +0.439813554286957 86 +1.00993001461029 -0.0257823411375284 -0.0451766550540924 87 +0.918193340301514 -0.16705060005188 -0.108701422810555 88 +0.857691943645477 +0.0806899592280388 -0.166881799697876 89 +0.498339742422104 -0.0169454403221607 -0.113064050674438 90 +0.657672584056854 -0.0506206974387169 +0.145635530352592 91 +0.812034487724304 +0.136639505624771 +0.0814702361822128 92 +0.906058609485626 -0.0343545041978359 +0.350162535905838 93 +0.891419589519501 -0.340330988168716 +0.249526828527451 94 +0.67280513048172 -0.266556084156036 +0.132853701710701 95 +0.22837245464325 -0.304689228534698 -0.320389360189438 96 +0.442314237356186 +0.0201740209013224 +0.140695065259933 97 +0.269756734371185 -0.679091691970825 -0.0813169330358505 98 +0.393509149551392 -0.649166166782379 +0.0348319262266159 99 +0.490762561559677 +0.309650301933289 -0.206072971224785 100 +0.462655454874039 +0.132197573781013 -0.194748193025589 101 +0.296778738498688 +0.296020925045013 -0.313355088233948 102 +0.0206393953412771 +0.106464959681034 -0.141953021287918 103 +0.202931478619576 +0.23894402384758 +0.0646029263734818 104 +0.25548979640007 +0.426412999629974 -0.0938400402665138 105 +0.307658582925797 +0.0572095438838005 +0.119605801999569 106 -0.0432102791965008 +0.205677539110184 +0.0463946871459484 107 -0.180588394403458 -0.28028467297554 -0.251632034778595 108 -0.166089862585068 -0.430235952138901 -0.167935222387314 109 -0.134706199169159 +0.341770112514496 -0.33135250210762 110 -0.0830055996775627 +0.186642199754715 -0.25605234503746 111 -0.313479632139206 +0.217712566256523 -0.375790029764175 112 -0.464297860860825 +0.0276541002094746 -0.0882231444120407 113 -0.337394058704376 +0.287521511316299 +0.0108262179419398 114 -0.385425895452499 +0.400861352682114 -0.207938954234123 115 -0.0458784773945808 +0.117842197418213 +0.241090223193169 116 -0.181100711226463 +0.207891657948494 +0.0670338496565819 117 -0.568051040172577 +0.151199534535408 +0.0253868885338306 118 -0.722623944282532 +0.0943695530295372 -0.298436492681503 119 -0.602630972862244 +0.0123290661722422 -0.192234873771667 120 -0.834508717060089 -0.0921238213777542 -0.253415286540985 121 -0.861384272575378 -0.191092133522034 +0.108587600290775 122 -0.848996639251709 +0.113193847239017 +0.0820725709199905 123 -0.96150004863739 +0.103789307177067 -0.142127588391304 124 -1.02455496788025 -0.166278168559074 -0.0996112674474716 125 -0.492434740066528 +0.167007237672806 +0.273805975914001 126 -0.6690913438797 +0.12463952600956 +0.119900211691856 127 -1.0257967710495 -0.0922337546944618 +0.158890753984451 128 -0.359191745519638 -0.103903949260712 +0.493390172719955 129 -0.34171062707901 +0.0627455562353134 +0.45310240983963 130 -0.0702258348464966 -0.497295081615448 +0.0191020369529724 131 -0.268880277872086 -0.288851290941238 +0.189693003892899 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0 18 +0 19 +0 20 +0 21 +0 22 +0 23 +0 24 +0 25 +0 26 +0 27 +0 28 +0 29 +0 30 +0 31 +0 32 +0 33 +0 34 +0 35 +0 36 +0 37 +0 38 +0 39 +0 40 +0 41 +0 42 +0 43 +0 44 +0 45 +0 46 +0 47 +0 48 +0 49 +0 50 +0 51 +0 52 +0 53 +0 54 +0 55 +0 56 +0 57 +0 58 +0 59 +0 60 +0 61 +0 62 +0 63 +0 64 +0 65 +0 66 +0 67 +0 68 +0 69 +0 70 +0 71 +0 72 +0 73 +0 74 +0 75 +0 76 +0 77 +0 78 +0 79 +0 80 +0 81 +0 82 +0 83 +0 84 +0 85 +0 86 +0 87 +0 88 +0 89 +0 90 +0 91 +0 92 +0 93 +0 94 +0 95 +0 96 +0 97 +0 98 +0 99 +0 100 +0 101 +0 102 +0 103 +0 104 +0 105 +0 106 +0 107 +0 108 +0 109 +0 110 +0 111 +0 112 +0 113 +0 114 +0 115 +0 116 +0 117 +0 118 +0 119 +0 120 +0 121 +0 122 +0 123 +0 124 +0 125 +0 126 +0 127 +0 128 +0 129 +0 130 +0 131 +0 !End ghemical-3.0.0/examples/TSS/0000755000175000017500000000000011645354540012562 500000000000000ghemical-3.0.0/examples/TSS/tautomeric_shift_keto_enol/0000755000175000017500000000000011645354540020172 500000000000000ghemical-3.0.0/examples/TSS/tautomeric_shift_keto_enol/products.gpr0000644000175000017500000000162511563552732022475 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 10 0 6 2048 1 6 2048 2 6 2048 3 8 2048 4 1 2048 5 1 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 !Bonds 9 0 1 S 0 4 S 0 5 S 0 6 S 2 7 S 2 8 S 3 9 S 1 2 D 1 3 S !Coord 0 +0.108885630965233 -0.0620080642402172 +0.0276192538440228 1 -0.0116075417026877 +0.0227868892252445 +0.00897077098488808 2 -0.111676521599293 -0.0019641702529043 -0.0767173692584038 3 -0.00813499558717012 +0.132750511169434 +0.0923915579915047 4 +0.114638887345791 -0.0972081646323204 +0.133591532707214 5 +0.20101161301136 -0.00267191720195115 +0.00538529735058546 6 +0.104828089475632 -0.150458201766014 -0.0403225868940353 7 -0.198607996106148 +0.0639438852667809 -0.0866546332836151 8 -0.111202210187912 -0.0901985242962837 -0.141472220420837 9 -0.0881349742412567 +0.18502776324749 +0.0772083923220634 !Charges 0 +0 1 +0 2 -0.2 3 -0.4 4 +0 5 +0 6 +0 7 +0.1 8 +0.1 9 +0.4 !End ghemical-3.0.0/examples/TSS/tautomeric_shift_keto_enol/Makefile.in0000644000175000017500000003112511645347725022170 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/TSS/tautomeric_shift_keto_enol DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tssexampledir)" DATA = $(tssexample_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/tautomeric_shift_keto_enol tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/TSS/tautomeric_shift_keto_enol/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/TSS/tautomeric_shift_keto_enol/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tssexampleDATA: $(tssexample_DATA) @$(NORMAL_INSTALL) test -z "$(tssexampledir)" || $(MKDIR_P) "$(DESTDIR)$(tssexampledir)" @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tssexampledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tssexampledir)" || exit $$?; \ done uninstall-tssexampleDATA: @$(NORMAL_UNINSTALL) @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tssexampledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tssexampledir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tssexampledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-tssexampleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-tssexampleDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-tssexampleDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-tssexampleDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/TSS/tautomeric_shift_keto_enol/ts.gpr0000644000175000017500000000162211563552732021255 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 10 0 6 2048 1 6 2048 2 6 2048 3 8 2048 4 1 2048 5 1 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 !Bonds 10 0 1 S 1 2 C 1 3 C 0 4 S 0 5 S 0 6 S 2 7 S 2 8 S 2 9 S 3 9 S !Coord 0 +0.117989048361778 -0.0602064430713654 +0.0176990553736687 1 +0.00668409373611212 +0.0357387699186802 +0.00713290786370635 2 -0.119494192302227 +0.0140367392450571 -0.0483617447316647 3 +0.00762207480147481 +0.148197814822197 +0.0716514959931374 4 +0.10045151412487 -0.130669891834259 +0.0941691473126411 5 +0.208669394254684 -0.0109972730278969 +0.0402012467384338 6 +0.131938219070435 -0.113820560276508 -0.072499506175518 7 -0.170090943574905 +0.083424337208271 -0.11284039914608 8 -0.152499198913574 -0.0892005413770676 -0.0642838254570961 9 -0.13127002120018 +0.123497039079666 +0.0671316385269165 !Charges 0 +0 1 +0.1 2 +0 3 -0.1 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 !End ghemical-3.0.0/examples/TSS/tautomeric_shift_keto_enol/reactants.gpr0000644000175000017500000000161111563552732022611 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 10 0 6 2048 1 6 2048 2 6 2048 3 8 2048 4 1 2048 5 1 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 !Bonds 9 0 1 S 1 2 S 1 3 D 0 4 S 0 5 S 0 6 S 2 7 S 2 8 S 2 9 S !Coord 0 +0.11294025182724 -0.0582396723330021 +0.00909721944481134 1 +0.0147043401375413 +0.0513125397264957 +0.0356181487441063 2 -0.120040111243725 +0.0332610420882702 -0.02661526016891 3 +0.0428658053278923 +0.149953201413155 +0.104458495974541 4 +0.0741039514541626 -0.154378086328506 +0.0506938174366951 5 +0.211649641394615 -0.0356999263167381 +0.0562566854059696 6 +0.127242535352707 -0.0702107548713684 -0.101028002798557 7 -0.109442539513111 +0.023510355502367 -0.137388691306114 8 -0.167624264955521 -0.0597527660429478 +0.0129647785797715 9 -0.18639962375164 +0.120244070887566 -0.00405719876289368 !Charges 0 +0 1 +0.1 2 +0 3 -0.1 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 !End ghemical-3.0.0/examples/TSS/tautomeric_shift_keto_enol/Makefile.am0000644000175000017500000000031411563552732022146 00000000000000tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/tautomeric_shift_keto_enol tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) ghemical-3.0.0/examples/TSS/Makefile.in0000644000175000017500000004313011645347725014557 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/TSS DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ SUBDIRS = \ carbocation_rearrangement_hydride_shift \ carbocation_rearrangement_methide_shift \ cycloaddition_Diels-Alder \ E2-reaction \ sigmatropic_rearrangement_Cope \ SN2-reaction \ tautomeric_shift_keto_enol all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/TSS/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/TSS/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/TSS/sigmatropic_rearrangement_Cope/0000755000175000017500000000000011645354540020763 500000000000000ghemical-3.0.0/examples/TSS/sigmatropic_rearrangement_Cope/products.gpr0000644000175000017500000000325111563552732023263 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 19 0 6 4096 1 6 4096 2 6 4096 3 6 4096 4 6 4096 5 6 4096 6 6 4096 7 1 4096 8 1 4096 9 1 4096 10 1 4096 11 1 4096 12 1 4096 13 1 4096 14 1 4096 15 1 4096 16 1 4096 17 1 4096 18 1 4096 !Bonds 18 0 1 S 0 2 S 3 0 S 1 4 S 3 5 D 4 6 D 0 7 S 1 8 S 1 9 S 2 10 S 2 11 S 2 12 S 3 13 S 4 14 S 5 15 S 5 16 S 6 17 S 6 18 S !Coord 0 -0.060665313154459 +0.0595024041831493 -0.00648502074182034 1 -0.0637677237391472 -0.0895811021327972 -0.0462338142096996 2 -0.194810539484024 +0.095639668405056 +0.060107309371233 3 +0.0494275949895382 +0.0930457413196564 +0.0905364602804184 4 +0.0596719793975353 -0.134458631277084 -0.119736708700657 5 +0.133868709206581 +0.00240008113905787 +0.140626788139343 6 +0.161017015576363 -0.052964523434639 -0.150475814938545 7 -0.0499241277575493 +0.120571292936802 -0.0973543152213097 8 -0.150359883904457 -0.105527691543102 -0.11216239631176 9 -0.0771866664290428 -0.150584369897842 +0.0443047806620598 10 -0.195137560367584 +0.202462002635002 +0.0863608121871948 11 -0.207829430699348 +0.0355583913624287 +0.151324704289436 12 -0.277429074048996 +0.0749174878001213 -0.00949651934206486 13 +0.060303583741188 +0.196838766336441 +0.121704518795013 14 +0.0662470757961273 -0.238990068435669 -0.149622946977615 15 +0.128195658326149 -0.102871470153332 +0.113720968365669 16 +0.210915610194206 +0.0345147550106049 +0.210562720894814 17 +0.160460621118546 +0.0524865165352821 -0.123673245310783 18 +0.247002512216568 -0.0929592698812485 -0.20400832593441 !Charges 0 +0 1 +0 2 +0 3 -0.1 4 -0.1 5 -0.2 6 -0.2 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0.1 14 +0.1 15 +0.1 16 +0.1 17 +0.1 18 +0.1 !End ghemical-3.0.0/examples/TSS/sigmatropic_rearrangement_Cope/Makefile.in0000644000175000017500000003114511645347725022763 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/TSS/sigmatropic_rearrangement_Cope DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tssexampledir)" DATA = $(tssexample_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/sigmatropic_rearrangement_Cope tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/TSS/sigmatropic_rearrangement_Cope/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/TSS/sigmatropic_rearrangement_Cope/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tssexampleDATA: $(tssexample_DATA) @$(NORMAL_INSTALL) test -z "$(tssexampledir)" || $(MKDIR_P) "$(DESTDIR)$(tssexampledir)" @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tssexampledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tssexampledir)" || exit $$?; \ done uninstall-tssexampleDATA: @$(NORMAL_UNINSTALL) @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tssexampledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tssexampledir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tssexampledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-tssexampleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-tssexampleDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-tssexampleDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-tssexampleDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/TSS/sigmatropic_rearrangement_Cope/ts.gpr0000644000175000017500000000326111563552732022047 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 19 0 6 2048 1 6 2048 2 6 2048 3 6 2048 4 6 2048 5 6 2048 6 6 2048 7 1 2048 8 1 2048 9 1 2048 10 1 2048 11 1 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 16 1 2048 17 1 2048 18 1 2048 !Bonds 19 0 2 S 1 4 C 3 5 C 4 6 C 0 7 S 1 8 S 1 9 S 2 10 S 2 11 S 2 12 S 3 13 S 4 14 S 5 15 S 5 16 S 6 17 S 6 18 S 6 5 S 3 0 C 0 1 S !Coord 0 -0.0672832056879997 +0.0705713704228401 +0.00422747153788805 1 -0.0673153698444366 -0.113757118582726 -0.0463452786207199 2 -0.201232388615608 +0.113924622535706 +0.0523499771952629 3 +0.0411488339304924 +0.0781673789024353 +0.0948800966143608 4 +0.0520293973386288 -0.12677663564682 -0.120037846267223 5 +0.153699934482574 -0.00650792522355914 +0.0877402201294899 6 +0.16628560423851 -0.047285083681345 -0.0969271436333656 7 -0.0473549887537956 +0.0998867973685265 -0.0996526554226875 8 -0.160830140113831 -0.140638068318367 -0.0982251912355423 9 -0.0683745518326759 -0.143533706665039 +0.0585348308086395 10 -0.204237461090088 +0.224837318062782 +0.066367544233799 11 -0.22603052854538 +0.0657230466604233 +0.149982079863548 12 -0.279659897089005 +0.0857882648706436 -0.0220025889575481 13 +0.0369966849684715 +0.154113486409187 +0.173853099346161 14 +0.0561183653771877 -0.203002899885178 -0.198759734630585 15 +0.142061725258827 -0.112351961433887 +0.111857943236828 16 +0.247795060276985 +0.0345479920506477 +0.128207355737686 17 +0.162934526801109 +0.0588633306324482 -0.122305795550346 18 +0.263248383998871 -0.0925702154636383 -0.123744428157806 !Charges 0 -0.1 1 -0.2 2 +0 3 -0.1 4 -0.1 5 +0 6 +0 7 +0.1 8 +0.1 9 +0.1 10 +0 11 +0 12 +0 13 +0.1 14 +0.1 15 +0 16 +0 17 +0 18 +0 !End ghemical-3.0.0/examples/TSS/sigmatropic_rearrangement_Cope/reactants.gpr0000644000175000017500000000324411563552732023406 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 19 0 6 4096 1 6 4096 2 6 4096 3 6 4096 4 6 4096 5 6 4096 6 6 4096 7 1 4096 8 1 4096 9 1 4096 10 1 4096 11 1 4096 12 1 4096 13 1 4096 14 1 4096 15 1 4096 16 1 4096 17 1 4096 18 1 4096 !Bonds 18 0 2 S 1 4 D 3 5 S 4 6 S 0 7 S 1 8 S 1 9 S 2 10 S 2 11 S 2 12 S 3 13 S 4 14 S 5 15 S 5 16 S 6 17 S 6 18 S 6 5 S 3 0 D !Coord 0 -0.0735636726021767 +0.0970456898212433 +0.017168078571558 1 -0.0412141606211662 -0.187321648001671 -0.0606889277696609 2 -0.199300795793533 +0.16697932779789 +0.0602576620876789 3 +0.0176119711250067 +0.0581750422716141 +0.106847152113914 4 +0.0540752336382866 -0.131385520100594 -0.135850206017494 5 +0.145373627543449 -0.0124199679121375 +0.0701139718294144 6 +0.159679636359215 -0.0391146577894688 -0.0811707749962807 7 -0.0594132393598557 +0.0791155397891998 -0.0892026573419571 8 -0.114097788929939 -0.25317719578743 -0.10770945250988 9 -0.0484550483524799 -0.169323354959488 +0.0463766232132912 10 -0.203994885087013 +0.266288965940475 +0.0132002495229244 11 -0.201163575053215 +0.178735896945 +0.16960309445858 12 -0.286618232727051 +0.107925266027451 +0.028835341334343 13 -0.000510256038978696 +0.0783276185393333 +0.212317943572998 14 +0.0559063628315926 -0.153795257210732 -0.242428362369537 15 +0.151460841298103 -0.108144998550415 +0.123962752521038 16 +0.229745447635651 +0.0507504791021347 +0.101601392030716 17 +0.156530320644379 +0.0568167380988598 -0.134906142950058 18 +0.257948249578476 -0.0854779928922653 -0.0983277633786201 !Charges 0 -0.1 1 -0.2 2 +0 3 -0.1 4 -0.1 5 +0 6 +0 7 +0.1 8 +0.1 9 +0.1 10 +0 11 +0 12 +0 13 +0.1 14 +0.1 15 +0 16 +0 17 +0 18 +0 !End ghemical-3.0.0/examples/TSS/sigmatropic_rearrangement_Cope/Makefile.am0000644000175000017500000000032011563552732022734 00000000000000tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/sigmatropic_rearrangement_Cope tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) ghemical-3.0.0/examples/TSS/carbocation_rearrangement_methide_shift/0000755000175000017500000000000011645354540022654 500000000000000ghemical-3.0.0/examples/TSS/carbocation_rearrangement_methide_shift/products.gpr0000644000175000017500000000323311563552732025154 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 19 0 6 2048 1 6 2048 2 6 2048 3 6 2048 4 6 2048 5 6 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 10 1 2048 11 1 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 16 1 2048 17 1 2048 18 1 2048 !Bonds 18 0 1 S 1 2 S 1 3 S 3 4 S 3 5 S 0 6 S 0 7 S 0 8 S 2 9 S 2 10 S 2 11 S 3 12 S 4 13 S 4 14 S 4 15 S 5 16 S 5 17 S 5 18 S !Coord 0 +0.169436529278755 +0.0961544215679169 -0.00295841391198337 1 +0.0757088884711266 -0.014289285056293 +0.0104247955605388 2 +0.122963346540928 -0.151040881872177 -0.00470416247844696 3 -0.0661538913846016 +0.0121656358242035 +0.0400053486227989 4 -0.113647870719433 +0.148351103067398 -0.00759513815864921 5 -0.159747883677483 -0.0968638584017754 -0.00917604472488165 6 +0.145408913493156 +0.15312471985817 -0.0979612171649933 7 +0.276539444923401 +0.0635001435875893 -0.00756861967965961 8 +0.157380804419518 +0.170845121145248 +0.0806316509842873 9 +0.23462650179863 -0.159451887011528 -0.00930190645158291 10 +0.0799913704395294 -0.194187834858894 -0.100313924252987 11 +0.0845316424965858 -0.217360928654671 +0.0779899954795837 12 -0.0706634297966957 +0.0122767733410001 +0.154533952474594 13 -0.106117680668831 +0.155852317810059 -0.118801571428776 14 -0.0544923320412636 +0.230898529291153 +0.0388124100863934 15 -0.220990657806396 +0.162141710519791 +0.0209610294550657 16 -0.155360266566277 -0.105039454996586 -0.12050573527813 17 -0.264814406633377 -0.0711932182312012 +0.0196534972637892 18 -0.134599044919014 -0.19588315486908 +0.0358740575611591 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0 18 +0 !End ghemical-3.0.0/examples/TSS/carbocation_rearrangement_methide_shift/Makefile.in0000644000175000017500000003121111645347725024646 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/TSS/carbocation_rearrangement_methide_shift DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tssexampledir)" DATA = $(tssexample_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/carbocation_rearrangement_methide_shift tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/TSS/carbocation_rearrangement_methide_shift/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/TSS/carbocation_rearrangement_methide_shift/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tssexampleDATA: $(tssexample_DATA) @$(NORMAL_INSTALL) test -z "$(tssexampledir)" || $(MKDIR_P) "$(DESTDIR)$(tssexampledir)" @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tssexampledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tssexampledir)" || exit $$?; \ done uninstall-tssexampleDATA: @$(NORMAL_UNINSTALL) @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tssexampledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tssexampledir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tssexampledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-tssexampleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-tssexampleDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-tssexampleDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-tssexampleDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/TSS/carbocation_rearrangement_methide_shift/ts.gpr0000644000175000017500000000323611563552732023742 00000000000000!Header gpr 110 !Info 1 allqm 257 !Atoms 19 0 6 2048 1 6 2048 2 6 2048 3 6 2048 4 6 2048 5 6 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 10 1 2048 11 1 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 16 1 2048 17 1 2048 18 1 2048 !Bonds 19 0 1 S 1 2 S 1 3 S 3 5 S 0 6 S 0 7 S 0 8 S 2 9 S 2 10 S 2 11 S 3 12 S 4 13 S 4 14 S 4 15 S 5 16 S 5 17 S 5 18 S 4 1 S 3 4 S !Coord 0 +0.16979943215847 +0.0862049385905266 +0.0564024560153484 1 +0.0516823194921017 +0.00651520676910877 -0.00183515809476376 2 +0.0972661525011063 -0.11272956430912 -0.0864031612873077 3 -0.0724850445985794 +0.00549312587827444 +0.070123478770256 4 -0.0671598836779594 +0.116716749966145 -0.0794736072421074 5 -0.178551197052002 -0.102224253118038 +0.0733881443738937 6 +0.235058650374413 +0.127351403236389 -0.0230589471757412 7 +0.230675965547562 +0.0187267363071442 +0.120316706597805 8 +0.138046771287918 +0.170585989952087 +0.120689876377583 9 +0.187098518013954 -0.086832232773304 -0.145744994282722 10 +0.0190927162766457 -0.150121688842773 -0.155205130577087 11 +0.125558853149414 -0.19475257396698 -0.0166667941957712 12 -0.078364297747612 +0.0732969492673874 +0.157194867730141 13 +0.00354781933128834 +0.138920247554779 -0.162873432040215 14 -0.0852934047579765 +0.212859451770782 -0.0275742206722498 15 -0.159883305430412 +0.0805802941322327 -0.128497913479805 16 -0.235316544771194 -0.110197402536869 -0.0214476361870766 17 -0.249651432037354 -0.0799666941165924 +0.155534461140633 18 -0.131122201681137 -0.200426697731018 +0.0951309651136398 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0 18 +0 !End ghemical-3.0.0/examples/TSS/carbocation_rearrangement_methide_shift/reactants.gpr0000644000175000017500000000322711563552732025300 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 19 0 6 2048 1 6 2048 2 6 2048 3 6 2048 4 6 2048 5 6 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 10 1 2048 11 1 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 16 1 2048 17 1 2048 18 1 2048 !Bonds 18 0 1 S 1 2 S 1 3 S 3 5 S 0 6 S 0 7 S 0 8 S 2 9 S 2 10 S 2 11 S 3 12 S 4 13 S 4 14 S 4 15 S 5 16 S 5 17 S 5 18 S 4 1 S !Coord 0 +0.144557565450668 +0.0829070135951042 +0.0656402185559273 1 +0.0257144849747419 +0.0243837293237448 -0.0123308189213276 2 +0.0704908221960068 -0.0982359945774078 -0.0900810807943344 3 -0.0829681232571602 -0.00107721763197333 +0.0831800103187561 4 -0.0257738046348095 +0.131668701767921 -0.110372751951218 5 -0.152141079306602 -0.125679925084114 +0.0993047803640366 6 +0.223983034491539 +0.111387848854065 -0.00784222409129143 7 +0.186782613396645 +0.0069195693358779 +0.135639801621437 8 +0.114224933087826 +0.173982068896294 +0.122628375887871 9 +0.149956464767456 -0.0687112212181091 -0.163122236728668 10 -0.0147232450544834 -0.142585724592209 -0.147090837359428 11 +0.1134437546134 -0.175612166523933 -0.0217962507158518 12 -0.11441858112812 +0.0852556824684143 +0.146477535367012 13 +0.0587139576673508 +0.159988641738892 -0.178049311041832 14 -0.0599185042083263 +0.222971588373184 -0.0560854412615299 15 -0.109066031873226 +0.0910654589533806 -0.172490313649178 16 -0.248490616679192 -0.120741866528988 +0.0384192764759064 17 -0.184960126876831 -0.142521038651466 +0.205883964896202 18 -0.0954075455665588 -0.215365171432495 +0.0620873086154461 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0 18 +0 !End ghemical-3.0.0/examples/TSS/carbocation_rearrangement_methide_shift/Makefile.am0000644000175000017500000000033111563552732024627 00000000000000tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/carbocation_rearrangement_methide_shift tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) ghemical-3.0.0/examples/TSS/README0000644000175000017500000000026611563552732013370 00000000000000Here are some transition state search examples. When adding new files here, first make sure that the "make dist" command still works (it seems to limit filenames to 99 characters). ghemical-3.0.0/examples/TSS/SN2-reaction/0000755000175000017500000000000011645354540014766 500000000000000ghemical-3.0.0/examples/TSS/SN2-reaction/products.gpr0000644000175000017500000000221311563552732017263 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 13 0 6 4096 1 6 4096 2 1 4096 3 1 4096 4 1 4096 5 1 4096 6 1 4096 7 35 4096 8 8 4096 9 6 4096 10 1 4096 11 1 4096 12 1 4096 !Bonds 11 0 1 S 0 2 S 0 3 S 1 4 S 1 5 S 1 6 S 8 9 S 9 10 S 9 11 S 9 12 S 0 8 S !Coord 0 -0.0529878214001656 -0.0459373258054256 +0.038114856928587 1 -0.0541746020317078 +0.108243830502033 +0.0382689572870731 2 -0.0930825397372246 -0.0830938443541527 -0.0573459602892399 3 -0.117545291781425 -0.0808610990643501 +0.120049431920052 4 -0.158471092581749 +0.143173351883888 +0.03695198148489 5 -0.00257376092486084 +0.147503480315208 -0.0505055896937847 6 -0.00463439431041479 +0.145186185836792 +0.129262119531631 7 -0.339311242103577 -0.0128413047641516 -0.0526983961462975 8 +0.0784235969185829 -0.0990187674760818 +0.0601422376930714 9 +0.168094083666801 -0.0621927678585052 -0.0453126840293407 10 +0.185231909155846 +0.0463563501834869 -0.0456215031445026 11 +0.126781642436981 -0.0934915393590927 -0.142330721020699 12 +0.264249533414841 -0.113026544451714 -0.0289747472852468 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 !End ghemical-3.0.0/examples/TSS/SN2-reaction/Makefile.in0000644000175000017500000003103511645347725016764 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/TSS/SN2-reaction DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tssexampledir)" DATA = $(tssexample_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/SN2-reaction tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/TSS/SN2-reaction/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/TSS/SN2-reaction/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tssexampleDATA: $(tssexample_DATA) @$(NORMAL_INSTALL) test -z "$(tssexampledir)" || $(MKDIR_P) "$(DESTDIR)$(tssexampledir)" @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tssexampledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tssexampledir)" || exit $$?; \ done uninstall-tssexampleDATA: @$(NORMAL_UNINSTALL) @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tssexampledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tssexampledir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tssexampledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-tssexampleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-tssexampleDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-tssexampleDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-tssexampleDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/TSS/SN2-reaction/ts.gpr0000644000175000017500000000222511563552732016051 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 13 0 6 2048 1 6 2048 2 1 2048 3 1 2048 4 1 2048 5 1 2048 6 1 2048 7 35 2048 8 8 2048 9 6 2048 10 1 2048 11 1 2048 12 1 2048 !Bonds 12 0 1 S 0 2 S 0 3 S 1 4 S 1 5 S 1 6 S 8 9 S 9 10 S 9 11 S 9 12 S 0 7 S 0 8 S !Coord 0 -0.0972464978694916 -0.0334956347942352 +0.0184528976678848 1 -0.0679827108979225 +0.111841641366482 +0.0355890654027462 2 -0.0796822607517242 -0.0853527709841728 -0.0769255980849266 3 -0.12500411272049 -0.0888582020998001 +0.109724648296833 4 -0.153737232089043 +0.16543984413147 +0.0834726691246033 5 -0.0453995056450367 +0.16002981364727 -0.0624568425118923 6 +0.020512230694294 +0.125375211238861 +0.102787740528584 7 -0.315167516469955 -0.0203711371868849 -0.0467229560017586 8 +0.0811677053570747 -0.0942627564072609 +0.0609674416482449 9 +0.172823444008827 -0.066570408642292 -0.0343773439526558 10 +0.195851072669029 +0.0440314188599586 -0.0419752337038517 11 +0.142108872532845 -0.101677924394608 -0.137494176626205 12 +0.271756500005722 -0.116129070520401 -0.0110423052683473 !Charges 0 +0.175 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 -0.175 8 +0 9 +0 10 +0 11 +0 12 +0 !End ghemical-3.0.0/examples/TSS/SN2-reaction/reactants.gpr0000644000175000017500000000221511563552732017406 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 13 0 6 4096 1 6 4096 2 1 4096 3 1 4096 4 1 4096 5 1 4096 6 1 4096 7 35 4096 8 8 4096 9 6 4096 10 1 4096 11 1 4096 12 1 4096 !Bonds 11 0 1 S 0 2 S 0 3 S 1 4 S 1 5 S 1 6 S 8 9 S 9 10 S 9 11 S 9 12 S 0 7 S !Coord 0 -0.148433566093445 -0.026723574846983 +0.0157669745385647 1 -0.0871327221393585 +0.114139594137669 +0.0271944142878056 2 -0.087485559284687 -0.0882082208991051 -0.0520408637821674 3 -0.151384487748146 -0.0737240985035896 +0.115163221955299 4 -0.149432227015495 +0.175945729017258 +0.0935260951519012 5 -0.0827225297689438 +0.160466074943542 -0.0724562034010887 6 +0.0144315343350172 +0.107013583183289 +0.0687735080718994 7 -0.321896880865097 -0.0136256599798799 -0.051962036639452 8 +0.130763694643974 -0.118962205946445 +0.0766734331846237 9 +0.206265449523926 -0.0687336549162865 -0.0338849723339081 10 +0.23618771135807 +0.0351760908961296 -0.0137729328125715 11 +0.144749879837036 -0.072139710187912 -0.124999448657036 12 +0.296089828014374 -0.130623936653137 -0.0479811765253544 !Charges 0 +0.175 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 -0.175 8 +0 9 +0 10 +0 11 +0 12 +0 !End ghemical-3.0.0/examples/TSS/SN2-reaction/Makefile.am0000644000175000017500000000027611563552732016751 00000000000000tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/SN2-reaction tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) ghemical-3.0.0/examples/TSS/Makefile.am0000644000175000017500000000033411563552732014540 00000000000000SUBDIRS = \ carbocation_rearrangement_hydride_shift \ carbocation_rearrangement_methide_shift \ cycloaddition_Diels-Alder \ E2-reaction \ sigmatropic_rearrangement_Cope \ SN2-reaction \ tautomeric_shift_keto_enol ghemical-3.0.0/examples/TSS/E2-reaction/0000755000175000017500000000000011645354540014632 500000000000000ghemical-3.0.0/examples/TSS/E2-reaction/products.gpr0000644000175000017500000000321511563552732017132 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 19 0 6 4096 1 6 4096 2 6 4096 3 1 4096 4 1 4096 5 1 4096 6 1 4096 7 1 4096 8 1 4096 9 6 4096 10 6 4096 11 8 4096 12 1 4096 13 1 4096 14 1 4096 15 1 4096 16 1 4096 17 1 4096 18 35 4096 !Bonds 16 0 1 D 1 2 S 9 10 S 10 11 S 0 3 S 0 4 S 1 5 S 2 6 S 2 7 S 2 8 S 9 12 S 9 13 S 9 14 S 10 15 S 10 16 S 11 17 S !Coord 0 +0.0366623103618622 -0.0660673007369041 -0.139094099402428 1 -0.0967378169298172 -0.0588846728205681 -0.139927387237549 2 -0.181430265307426 -0.175040274858475 -0.0965224802494049 3 +0.0871684700250626 -0.156997293233871 -0.106854803860188 4 +0.0957816690206528 +0.0193084701895714 -0.171838819980621 5 -0.145396754145622 +0.0326539687812328 -0.173430725932121 6 -0.247036978602409 -0.143850952386856 -0.0139587670564651 7 -0.117833837866783 -0.258101433515549 -0.0626271516084671 8 -0.24319551885128 -0.209093928337097 -0.180919468402863 9 +0.20363637804985 +0.179911136627197 +0.135991409420967 10 +0.135080486536026 +0.0905792862176895 +0.241177901625633 11 +0.0130694806575775 +0.037940725684166 +0.188075974583626 12 +0.227395713329315 +0.120254844427109 +0.0466667115688324 13 +0.296529978513718 +0.22129887342453 +0.17801471054554 14 +0.136174067854881 +0.262273341417313 +0.1082374304533 15 +0.112889997661114 +0.150475740432739 +0.330741226673126 16 +0.202159464359283 +0.00775161385536194 +0.26849240064621 17 +0.0312103629112244 -0.0147131979465485 +0.111015766859055 18 -0.125100269913673 -0.171242788434029 -0.410966038703918 !Charges 0 -0.2 1 -0.1 2 +0 3 +0.1 4 +0.1 5 +0.1 6 +0 7 +0 8 +0 9 +0 10 +0 11 -0.4 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0.4 18 +0 !End ghemical-3.0.0/examples/TSS/E2-reaction/Makefile.in0000644000175000017500000003103111645347724016623 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/TSS/E2-reaction DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tssexampledir)" DATA = $(tssexample_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/E2-reaction tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/TSS/E2-reaction/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/TSS/E2-reaction/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tssexampleDATA: $(tssexample_DATA) @$(NORMAL_INSTALL) test -z "$(tssexampledir)" || $(MKDIR_P) "$(DESTDIR)$(tssexampledir)" @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tssexampledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tssexampledir)" || exit $$?; \ done uninstall-tssexampleDATA: @$(NORMAL_UNINSTALL) @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tssexampledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tssexampledir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tssexampledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-tssexampleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-tssexampleDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-tssexampleDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-tssexampleDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/TSS/E2-reaction/ts.gpr0000644000175000017500000000323411563552732015716 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 19 0 6 2048 1 6 2048 2 6 2048 3 1 2048 4 1 2048 5 1 2048 6 1 2048 7 1 2048 8 1 2048 9 6 2048 10 6 2048 11 8 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 16 1 2048 17 1 2048 18 35 2048 !Bonds 18 0 1 C 1 2 S 9 10 S 10 11 S 0 3 S 0 4 S 1 5 S 2 6 S 2 7 S 2 8 S 9 12 S 9 13 S 9 14 S 10 15 S 10 16 S 18 1 S 17 0 S 11 17 S !Coord 0 +0.0193895865231752 -0.0535837858915329 -0.112194590270519 1 -0.112624935805798 -0.06749327480793 -0.16600726544857 2 -0.199584692716599 -0.167694926261902 -0.095577597618103 3 +0.0749208703637123 -0.146261945366859 -0.0930018052458763 4 +0.0816149711608887 +0.025512894615531 -0.156286358833313 5 -0.165227636694908 +0.0291473735123873 -0.182501152157784 6 -0.227192267775536 -0.126815557479858 +0.00497464742511511 7 -0.14524257183075 -0.264048188924789 -0.0804011449217796 8 -0.293364197015762 -0.18847331404686 -0.152472764253616 9 +0.174765467643738 +0.183166265487671 +0.124066472053528 10 +0.0985056981444359 +0.0899459347128868 +0.217645645141602 11 -0.0172959193587303 +0.040658101439476 +0.164065897464752 12 +0.199656888842583 +0.12968847155571 +0.0292516686022282 13 +0.26920610666275 +0.218741714954376 +0.171672001481056 14 +0.111917167901993 +0.271720886230469 +0.0986672937870026 15 +0.0732455998659134 +0.147141084074974 +0.311985045671463 16 +0.168929278850555 +0.00655154045671225 +0.248685285449028 17 +0.00321523589082062 -0.00153980241157115 +0.0371550545096397 18 -0.114834658801556 -0.126363500952721 -0.369726359844208 !Charges 0 +0 1 +0.175 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0 18 -0.175 !End ghemical-3.0.0/examples/TSS/E2-reaction/reactants.gpr0000644000175000017500000000321611563552732017254 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 19 0 6 4096 1 6 4096 2 6 4096 3 1 4096 4 1 4096 5 1 4096 6 1 4096 7 1 4096 8 1 4096 9 6 4096 10 6 4096 11 8 4096 12 1 4096 13 1 4096 14 1 4096 15 1 4096 16 1 4096 17 1 4096 18 35 4096 !Bonds 17 0 1 S 1 2 S 9 10 S 10 11 S 0 3 S 0 4 S 1 5 S 2 6 S 2 7 S 2 8 S 9 12 S 9 13 S 9 14 S 10 15 S 10 16 S 18 1 S 17 0 S !Coord 0 +0.0140801332890987 -0.0594236478209496 -0.114172533154488 1 -0.122547134757042 -0.0735190138220787 -0.183916866779327 2 -0.207736685872078 -0.178421750664711 -0.109933905303478 3 +0.0665303394198418 -0.156103909015656 -0.116001009941101 4 +0.0744747892022133 +0.0159796606749296 -0.166800409555435 5 -0.174470886588097 +0.0234445575624704 -0.182625830173492 6 -0.22256138920784 -0.146815285086632 -0.00562175503000617 7 -0.156211242079735 -0.27561554312706 -0.111838065087795 8 -0.305442333221436 -0.187891602516174 -0.159579664468765 9 +0.177564889192581 +0.188842624425888 +0.132700815796852 10 +0.113240636885166 +0.111500911414623 +0.249371916055679 11 -0.0221741441637278 +0.079217717051506 +0.216604590415955 12 +0.176275134086609 +0.126591190695763 +0.0420451611280441 13 +0.281533360481262 +0.214018821716309 +0.15828050673008 14 +0.120892912149429 +0.281348556280136 +0.114422179758549 15 +0.114922732114792 +0.173827394843102 +0.34000238776207 16 +0.169677138328552 +0.0188109762966633 +0.267634183168411 17 -0.00107370968908072 -0.0280076488852501 -0.00988384056836367 18 -0.0969745367765427 -0.12778402864933 -0.3606878221035 !Charges 0 +0 1 +0.175 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0 18 -0.175 !End ghemical-3.0.0/examples/TSS/E2-reaction/Makefile.am0000644000175000017500000000027511563552732016614 00000000000000tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/E2-reaction tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) ghemical-3.0.0/examples/TSS/carbocation_rearrangement_hydride_shift/0000755000175000017500000000000011645354540022665 500000000000000ghemical-3.0.0/examples/TSS/carbocation_rearrangement_hydride_shift/products.gpr0000644000175000017500000000262111563552732025165 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 16 0 6 2048 1 6 2048 2 6 2048 3 6 2048 4 6 2048 5 1 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 10 1 2048 11 1 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 !Bonds 15 0 1 S 1 2 S 1 3 S 3 4 S 0 5 S 0 6 S 0 7 S 2 8 S 2 9 S 2 10 S 3 11 S 3 12 S 4 13 S 4 14 S 4 15 S !Coord 0 +0.106137745082378 +0.0860918015241623 +0.109166689217091 1 +0.0453490242362022 -0.0166507419198751 +0.0264775399118662 2 +0.126886993646622 -0.102424919605255 -0.0576674938201904 3 -0.100728273391724 -0.0339797139167786 +0.0281000286340714 4 -0.165254205465317 +0.0488220229744911 -0.0824111849069595 5 +0.21342533826828 +0.106401987373829 +0.0837450250983238 6 +0.101658418774605 +0.0542807877063751 +0.217871218919754 7 +0.0474477335810661 +0.18231138586998 +0.103588111698627 8 +0.0753886103630066 -0.126028820872307 -0.155064254999161 9 +0.141349077224731 -0.202055066823959 -0.00536460382863879 10 +0.228937163949013 -0.0605371594429016 -0.0782273411750793 11 -0.143760576844215 -0.00150357338134199 +0.127081230282784 12 -0.127753645181656 -0.142283245921135 +0.012004766613245 13 -0.275944024324417 +0.0323547571897507 -0.0787164568901062 14 -0.128023162484169 +0.0175301861017942 -0.182932212948799 15 -0.145116120576859 +0.157670333981514 -0.0676510483026505 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 !End ghemical-3.0.0/examples/TSS/carbocation_rearrangement_hydride_shift/Makefile.in0000644000175000017500000003121111645347725024657 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/TSS/carbocation_rearrangement_hydride_shift DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tssexampledir)" DATA = $(tssexample_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/carbocation_rearrangement_hydride_shift tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/TSS/carbocation_rearrangement_hydride_shift/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/TSS/carbocation_rearrangement_hydride_shift/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tssexampleDATA: $(tssexample_DATA) @$(NORMAL_INSTALL) test -z "$(tssexampledir)" || $(MKDIR_P) "$(DESTDIR)$(tssexampledir)" @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tssexampledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tssexampledir)" || exit $$?; \ done uninstall-tssexampleDATA: @$(NORMAL_UNINSTALL) @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tssexampledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tssexampledir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tssexampledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-tssexampleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-tssexampleDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-tssexampleDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-tssexampleDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/TSS/carbocation_rearrangement_hydride_shift/ts.gpr0000644000175000017500000000263211563552732023752 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 16 0 6 2048 1 6 2048 2 6 2048 3 6 2048 4 6 2048 5 1 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 10 1 2048 11 1 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 !Bonds 16 0 1 S 1 2 S 1 3 S 3 4 S 0 5 S 0 6 S 0 7 S 2 8 S 2 9 S 2 10 S 3 11 S 4 13 S 4 14 S 4 15 S 1 12 S 3 12 S !Coord 0 +0.116183266043663 +0.058733057230711 +0.130180850625038 1 +0.0347759053111076 -0.0224268697202206 +0.0350258052349091 2 +0.108304008841515 -0.0860214978456497 -0.0774137750267982 3 -0.103311575949192 +0.00887893047183752 +0.0312997549772263 4 -0.176498889923096 +0.0304617695510387 -0.0930882468819618 5 +0.22585129737854 +0.042643740773201 +0.115918509662151 6 +0.0906580090522766 +0.0431588776409626 +0.23750627040863 7 +0.0957397893071175 +0.166961193084717 +0.106011115014553 8 +0.0397533252835274 -0.131337270140648 -0.153389781713486 9 +0.176900461316109 -0.165921598672867 -0.0381560996174812 10 +0.173310145735741 -0.00947354827076197 -0.127339690923691 11 -0.150687023997307 +0.0478730015456676 +0.124440029263496 12 -0.0502685308456421 -0.118265554308891 +0.0835474953055382 13 -0.284850805997849 +0.00411892542615533 -0.0875368714332581 14 -0.127332597970963 -0.0128817269578576 -0.183696493506432 15 -0.168526828289032 +0.143498584628105 -0.103308871388435 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 !End ghemical-3.0.0/examples/TSS/carbocation_rearrangement_hydride_shift/reactants.gpr0000644000175000017500000000261711563552732025313 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 16 0 6 2048 1 6 2048 2 6 2048 3 6 2048 4 6 2048 5 1 2048 6 1 2048 7 1 2048 8 1 2048 9 1 2048 10 1 2048 11 1 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 !Bonds 15 0 1 S 1 2 S 1 3 S 3 4 S 0 5 S 0 6 S 0 7 S 2 8 S 2 9 S 2 10 S 3 11 S 4 13 S 4 14 S 4 15 S 1 12 S !Coord 0 +0.115869946777821 +0.041977196931839 +0.141510367393494 1 +0.0270762592554092 -0.0341073013842106 +0.0438263975083828 2 +0.102091044187546 -0.0690752044320107 -0.0830887481570244 3 -0.101753443479538 +0.0302122868597507 +0.0251364521682262 4 -0.178392887115479 +0.0296078585088253 -0.0963807851076126 5 +0.200425446033478 -0.0238985680043697 +0.173535645008087 6 +0.059024766087532 +0.0733606070280075 +0.232370927929878 7 +0.158850774168968 +0.132303044199944 +0.0917387306690216 8 +0.045868493616581 -0.143496423959732 -0.144560471177101 9 +0.201096624135971 -0.114015482366085 -0.056370846927166 10 +0.120722472667694 +0.0225142799317837 -0.14428573846817 11 -0.144954994320869 +0.0834380388259888 +0.113176539540291 12 -0.00202658399939537 -0.133046850562096 +0.0957164391875267 13 -0.287962913513184 +0.0106385545805097 -0.0766732469201088 14 -0.141226395964622 -0.0410833247005939 -0.175161227583885 15 -0.174708604812622 +0.134671285748482 -0.140490382909775 !Charges 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +0 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 !End ghemical-3.0.0/examples/TSS/carbocation_rearrangement_hydride_shift/Makefile.am0000644000175000017500000000033111563552732024640 00000000000000tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/carbocation_rearrangement_hydride_shift tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) ghemical-3.0.0/examples/TSS/cycloaddition_Diels-Alder/0000755000175000017500000000000011645354540017554 500000000000000ghemical-3.0.0/examples/TSS/cycloaddition_Diels-Alder/products.gpr0000644000175000017500000000311711563552732022055 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 18 0 6 4096 1 6 4096 2 6 4096 3 6 4096 4 6 4096 5 6 4096 6 6 4096 7 8 4096 8 1 4096 9 1 4096 10 1 4096 11 1 4096 12 1 4096 13 1 4096 14 1 4096 15 1 4096 16 1 4096 17 1 4096 !Bonds 18 0 1 D 0 2 S 2 3 S 3 4 S 4 5 S 5 1 S 3 6 S 6 7 D 0 8 S 1 9 S 2 10 S 2 11 S 3 12 S 4 13 S 4 14 S 5 15 S 5 16 S 6 17 S !Coord 0 +0.152617484331131 +0.0609197802841663 -0.0175567679107189 1 +0.140562489628792 -0.0651738345623016 -0.0602746494114399 2 +0.0466006025671959 +0.131352707743645 +0.0623224936425686 3 -0.0884910374879837 +0.0584644973278046 +0.0507018081843853 4 -0.0655706226825714 -0.0905199348926544 +0.0804736390709877 5 +0.0200364291667938 -0.150561898946762 -0.0325275845825672 6 -0.143513560295105 +0.0732217952609062 -0.0882155448198318 7 -0.0803420096635818 +0.13391225039959 -0.173129066824913 8 +0.243951320648193 +0.115368440747261 -0.04109912738204 9 +0.221680998802185 -0.108151115477085 -0.11887526512146 10 +0.0343916676938534 +0.234429836273193 +0.0258976723998785 11 +0.0776289328932762 +0.133999735116959 +0.167820647358894 12 -0.159123793244362 +0.100987002253532 +0.123534850776196 13 -0.161788433790207 -0.143589526414871 +0.0856876522302628 14 -0.012924512848258 -0.1003213301301 +0.176565945148468 15 -0.0401281453669071 -0.157940894365311 -0.124317608773708 16 +0.0519269816577435 -0.251434236764908 -0.0023948831949383 17 -0.237514823675156 +0.0250367410480976 -0.114614225924015 !Charges 0 -0.1 1 -0.1 2 +0 3 +0 4 +0 5 +0 6 +0 7 -0.1 8 +0.1 9 +0.1 10 +0 11 +0 12 +0 13 +0 14 +0 15 +0 16 +0 17 +0.1 !End ghemical-3.0.0/examples/TSS/cycloaddition_Diels-Alder/Makefile.in0000644000175000017500000003112111645347725021546 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/TSS/cycloaddition_Diels-Alder DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tssexampledir)" DATA = $(tssexample_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/cycloaddition_Diels-Alder tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/TSS/cycloaddition_Diels-Alder/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/TSS/cycloaddition_Diels-Alder/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tssexampleDATA: $(tssexample_DATA) @$(NORMAL_INSTALL) test -z "$(tssexampledir)" || $(MKDIR_P) "$(DESTDIR)$(tssexampledir)" @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tssexampledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tssexampledir)" || exit $$?; \ done uninstall-tssexampleDATA: @$(NORMAL_UNINSTALL) @list='$(tssexample_DATA)'; test -n "$(tssexampledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tssexampledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tssexampledir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tssexampledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-tssexampleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-tssexampleDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-tssexampleDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-tssexampleDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/examples/TSS/cycloaddition_Diels-Alder/ts.gpr0000644000175000017500000000314511563552732020641 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 18 0 6 2048 1 6 2048 2 6 2048 3 6 2048 4 6 2048 5 6 2048 6 6 2048 7 8 2048 8 1 2048 9 1 2048 10 1 2048 11 1 2048 12 1 2048 13 1 2048 14 1 2048 15 1 2048 16 1 2048 17 1 2048 !Bonds 18 0 1 C 0 2 C 3 4 C 5 1 C 3 6 S 6 7 D 0 8 S 1 9 S 2 10 S 2 11 S 3 12 S 4 13 S 4 14 S 5 15 S 5 16 S 6 17 S 2 3 S 4 5 S !Coord 0 +0.158179506659508 +0.0648675933480263 -0.0492218919098377 1 +0.174432963132858 -0.0787351876497269 -0.0385059714317322 2 +0.0809696614742279 +0.131633192300797 +0.0377119742333889 3 -0.114584796130657 +0.0519531145691872 +0.0512905716896057 4 -0.100069589912891 -0.075332023203373 +0.0954848453402519 5 +0.0688123479485512 -0.160318240523338 -0.0345642045140266 6 -0.184624895453453 +0.0772771537303925 -0.0757436007261276 7 -0.207904428243637 +0.189016699790955 -0.122433893382549 8 +0.216015592217445 +0.116776049137115 -0.127423852682114 9 +0.27817365527153 -0.117326401174068 -0.0389583073556423 10 +0.0728114545345306 +0.240019515156746 +0.0241867508739233 11 +0.0833172053098679 +0.102499753236771 +0.144452095031738 12 -0.13510362803936 +0.132210075855255 +0.126300916075706 13 -0.161025419831276 -0.15772071480751 +0.0532543957233429 14 -0.0754458233714104 -0.0942045748233795 +0.200966835021973 15 -0.0175011940300465 -0.14136914908886 -0.101099722087383 16 +0.0874394997954369 -0.266944527626038 -0.0194282494485378 17 -0.223892137408257 -0.0143023049458861 -0.126268684864044 !Charges 0 -0.1 1 -0.1 2 -0.2 3 -0.1 4 -0.2 5 -0.2 6 +0 7 -0.1 8 +0.1 9 +0.1 10 +0.1 11 +0.1 12 +0.1 13 +0.1 14 +0.1 15 +0.1 16 +0.1 17 +0.1 !End ghemical-3.0.0/examples/TSS/cycloaddition_Diels-Alder/reactants.gpr0000644000175000017500000000311711563552732022176 00000000000000!Header gpr 110 !Info 1 allqm 259 !Atoms 18 0 6 4096 1 6 4096 2 6 4096 3 6 4096 4 6 4096 5 6 4096 6 6 4096 7 8 4096 8 1 4096 9 1 4096 10 1 4096 11 1 4096 12 1 4096 13 1 4096 14 1 4096 15 1 4096 16 1 4096 17 1 4096 !Bonds 16 0 1 S 0 2 D 3 4 D 5 1 D 3 6 S 6 7 D 0 8 S 1 9 S 2 10 S 2 11 S 3 12 S 4 13 S 4 14 S 5 15 S 5 16 S 6 17 S !Coord 0 +0.21893136203289 +0.0643123835325241 -0.051260270178318 1 +0.219415992498398 -0.0784877985715866 -0.087394505739212 2 +0.13201992213726 +0.120105355978012 +0.0334938205778599 3 -0.202064976096153 +0.0595590434968472 +0.0711264982819557 4 -0.189222514629364 -0.0592162646353245 +0.130754843354225 5 +0.130065187811852 -0.1675626039505 -0.043398842215538 6 -0.234343230724335 +0.0709318816661835 -0.0718605890870094 7 -0.244234085083008 +0.181129798293114 -0.123278737068176 8 +0.294617474079132 +0.128410458564758 -0.0963510200381279 9 +0.297778129577637 -0.113620333373547 -0.154490768909454 10 +0.139161720871925 +0.226683303713799 +0.0546546392142773 11 +0.05418561398983 +0.0622305758297443 +0.0826665982604027 12 -0.188075557351112 +0.150534227490425 +0.129323378205299 13 -0.20292791724205 -0.151006281375885 +0.0738063603639603 14 -0.164959713816643 -0.0644535720348358 +0.236798852682114 15 +0.0488786585628986 -0.139685735106468 +0.0233958549797535 16 +0.138256296515465 -0.271332532167435 -0.0754063129425049 17 -0.247482433915138 -0.0185319259762764 -0.132579803466797 !Charges 0 -0.1 1 -0.1 2 -0.2 3 -0.1 4 -0.2 5 -0.2 6 +0 7 -0.1 8 +0.1 9 +0.1 10 +0.1 11 +0.1 12 +0.1 13 +0.1 14 +0.1 15 +0.1 16 +0.1 17 +0.1 !End ghemical-3.0.0/examples/TSS/cycloaddition_Diels-Alder/Makefile.am0000644000175000017500000000031311563552732021527 00000000000000tssexampledir = $(datadir)/ghemical/@APPVERSION@/examples/transition_state_search/cycloaddition_Diels-Alder tssexample_DATA = \ products.gpr \ reactants.gpr \ ts.gpr EXTRA_DIST = $(tssexample_DATA) ghemical-3.0.0/examples/cyclohexane.gpr0000644000175000017500000000172211563552731015050 00000000000000!Header gpr 100 !Info 1 !Atoms 18 0 6 1 6 2 6 3 6 4 6 5 6 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 !Bonds 18 0 1 S 1 2 S 2 3 S 3 4 S 4 5 S 0 5 S 0 6 S 0 7 S 1 8 S 1 9 S 2 10 S 2 11 S 3 12 S 3 13 S 4 14 S 4 15 S 5 16 S 5 17 S !Coord 0 0.0314778 0.142366 -0.0254567 1 0.139187 0.0438716 0.0246817 2 0.107443 -0.0985687 -0.0255098 3 -0.0314805 -0.142365 0.0254637 4 -0.139186 -0.0438742 -0.0246887 5 -0.107447 0.0985646 0.0255098 6 0.0540206 0.243458 0.0118257 7 0.0314474 0.143893 -0.135519 8 0.237776 0.074964 -0.0131507 9 0.141167 0.0444722 0.134735 10 0.10828 -0.0997978 -0.135572 11 0.183891 -0.168469 0.0117404 12 -0.0540237 -0.243461 -0.0118051 13 -0.0314483 -0.143869 0.135525 14 -0.141144 -0.0444711 -0.134742 15 -0.237778 -0.0749674 0.0131302 16 -0.183894 0.168465 -0.0117403 17 -0.108288 0.0997889 0.135572 !Charges 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 !End ghemical-3.0.0/examples/alpha-pinene.gpr0000644000175000017500000000257011563552732015112 00000000000000!Header gpr 100 !Info 1 !Atoms 26 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 1 10 1 11 1 12 1 13 1 14 1 15 6 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 !Bonds 27 0 1 S 0 2 S 2 3 S 1 4 S 4 5 D 3 5 S 1 6 S 2 6 S 6 7 S 6 8 S 0 9 S 0 10 S 1 11 S 2 12 S 3 13 S 3 14 S 4 15 S 5 16 S 7 17 S 7 18 S 7 19 S 8 20 S 8 21 S 8 22 S 15 23 S 15 24 S 15 25 S !Coord 0 0.118408 -0.0855542 -0.0990185 1 0.000745217 0.014345 -0.099263 2 0.129487 -0.0563136 0.0522006 3 0.030522 -0.152035 0.122931 4 -0.117179 -0.0673748 -0.054751 5 -0.102132 -0.148216 0.050821 6 0.0630085 0.0806744 0.025414 7 0.166309 0.189658 -0.0119308 8 -0.0350207 0.134292 0.132578 9 0.205169 -0.0492013 -0.156 10 0.0928318 -0.189227 -0.12581 11 -0.0121999 0.0763079 -0.189281 12 0.231196 -0.054234 0.0942025 13 0.0179872 -0.121731 0.227953 14 0.0708865 -0.254354 0.119906 15 -0.244699 -0.0542361 -0.133228 16 -0.184835 -0.209744 0.0860293 17 0.23781 0.155047 -0.0878458 18 0.22201 0.218738 0.0783739 19 0.113175 0.277702 -0.0510216 20 -0.0836556 0.224976 0.0936794 21 0.0219714 0.16049 0.222954 22 -0.113123 0.0621446 0.15991 23 -0.226672 -0.0830671 -0.237848 24 -0.27925 0.0501542 -0.129971 25 -0.322752 -0.119241 -0.0909845 !Charges 0 0 1 0 2 0 3 0 4 0 5 -0.1 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0.1 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 !End ghemical-3.0.0/examples/cis-2-pentene.gpr0000644000175000017500000000147011563552731015117 00000000000000!Header gpr 100 !Info 1 !Atoms 15 0 6 1 6 2 6 3 6 4 6 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 !Bonds 14 0 1 S 1 2 D 2 3 S 3 4 S 0 5 S 0 6 S 0 7 S 1 8 S 2 9 S 3 10 S 3 11 S 4 12 S 4 13 S 4 14 S !Coord 0 0.185596 -0.119541 0.0277989 1 0.154182 0.025042 -0.000113421 2 0.03328 0.0734257 -0.0312221 3 -0.0932436 -0.00789923 -0.0402728 4 -0.210515 0.0735011 0.0183582 5 0.199863 -0.133561 0.13597 6 0.278936 -0.146102 -0.0240278 7 0.106599 -0.187223 -0.00739537 8 0.237205 0.0954673 0.00481225 9 0.0256223 0.180192 -0.0517289 10 -0.114724 -0.0303404 -0.145845 11 -0.0863908 -0.101933 0.0161484 12 -0.190088 0.0971422 0.123871 13 -0.303299 0.0146933 0.011721 14 -0.223022 0.167136 -0.0380736 !Charges 0 0 1 -0.1 2 -0.1 3 0 4 0 5 0 6 0 7 0 8 0.1 9 0.1 10 0 11 0 12 0 13 0 14 0 !End ghemical-3.0.0/examples/2-chlorobutane.gpr0000644000175000017500000000140211563552732015366 00000000000000!Header gpr 100 !Info 1 !Atoms 14 0 6 1 6 2 6 3 6 4 17 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 !Bonds 13 0 1 S 1 2 S 2 3 S 1 4 S 0 5 S 0 6 S 0 7 S 1 8 S 2 9 S 2 10 S 3 11 S 3 12 S 3 13 S !Coord 0 0.174272 -0.0540963 -0.0701698 1 0.069758 -0.00161168 0.0305006 2 -0.0709046 -0.0038925 -0.0332963 3 -0.17747 0.043178 0.067988 4 0.112638 0.163409 0.0773754 5 0.149666 -0.157361 -0.0991204 6 0.274093 -0.0523395 -0.0239112 7 0.174819 0.00963332 -0.159858 8 0.0705305 -0.0656175 0.120054 9 -0.0724235 0.0621635 -0.121326 10 -0.0947028 -0.106583 -0.0650036 11 -0.157144 0.146733 0.0990511 12 -0.17615 -0.0222077 0.156476 13 -0.276982 0.0385933 0.0212405 !Charges 0 0 1 0.15 2 0 3 0 4 -0.15 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 !End ghemical-3.0.0/examples/camphor.gpr0000644000175000017500000000266411563552732014206 00000000000000!Header gpr 100 !Info 1 !Atoms 27 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 8 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 !Bonds 28 0 1 S 1 2 S 2 3 S 3 4 S 4 5 S 0 5 S 2 6 S 5 6 S 6 7 S 6 8 S 2 9 S 3 10 D 0 11 S 0 12 S 1 13 S 1 14 S 4 15 S 4 16 S 5 17 S 7 18 S 7 19 S 7 20 S 8 21 S 8 22 S 8 23 S 9 24 S 9 25 S 9 26 S !Coord 0 0.157828 -0.0521475 0.115378 1 0.143905 -0.103475 -0.0302999 2 0.000139076 -0.0605841 -0.0664393 3 -0.085225 -0.148595 0.0201739 4 -0.0799774 -0.103665 0.163345 5 0.0202469 0.0128181 0.144869 6 -0.018527 0.0732276 0.0079269 7 0.0756026 0.187034 -0.0389976 8 -0.16419 0.125606 0.00249696 9 -0.0324494 -0.0610514 -0.217212 10 -0.181667 -0.208285 -0.0248074 11 0.238049 0.0228163 0.1224 12 0.1794 -0.134073 0.185628 13 0.154952 -0.212818 -0.0366419 14 0.217447 -0.0552637 -0.0964245 15 -0.042431 -0.181718 0.23118 16 -0.177567 -0.0672557 0.198667 17 0.0216928 0.0831212 0.229534 18 0.181462 0.158171 -0.0415635 19 0.0644007 0.272433 0.0294452 20 0.0460737 0.218825 -0.140076 21 -0.18394 0.167502 -0.0972795 22 -0.176633 0.205227 0.0773907 23 -0.238056 0.0465923 0.0216786 24 -0.0174286 -0.162369 -0.257351 25 0.0339653 0.00897584 -0.269965 26 -0.137073 -0.0310495 -0.233055 !Charges 0 0 1 0 2 0 3 0.1 4 0 5 0 6 0 7 0 8 0 9 0 10 -0.1 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 !End ghemical-3.0.0/examples/naphtalene.gpr0000644000175000017500000000200711563552732014663 00000000000000!Header gpr 100 !Info 1 !Atoms 18 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 !Bonds 19 0 1 C 1 2 C 2 3 C 3 4 C 4 5 C 0 5 C 4 6 C 6 7 C 7 8 C 8 9 C 3 9 C 0 10 S 1 11 S 2 12 S 5 13 S 6 14 S 7 15 S 8 16 S 9 17 S !Coord 0 0.244064 0.061793 0.00269817 1 0.239202 -0.0771314 0.0149432 2 0.116008 -0.142691 0.0166511 3 -0.00243559 -0.0694947 0.00612526 4 0.00242779 0.0695483 -0.00613034 5 0.125741 0.135053 -0.00782936 6 -0.116048 0.142701 -0.0166534 7 -0.239236 0.0771171 -0.0149431 8 -0.244072 -0.0618097 -0.00269696 9 -0.125725 -0.135026 0.00782747 10 0.339756 0.112809 0.00136336 11 0.331113 -0.134121 0.0231282 12 0.11259 -0.250651 0.0261791 13 0.12993 0.242993 -0.0173295 14 -0.112618 0.250651 -0.0261801 15 -0.331141 0.134093 -0.0231266 16 -0.33973 -0.112873 -0.00135674 17 -0.129825 -0.242961 0.0173302 !Charges 0 -0.1 1 -0.1 2 -0.1 3 0 4 0 5 -0.1 6 -0.1 7 -0.1 8 -0.1 9 -0.1 10 0.1 11 0.1 12 0.1 13 0.1 14 0.1 15 0.1 16 0.1 17 0.1 !End ghemical-3.0.0/examples/3-phenylpropanal.gpr0000644000175000017500000000212011563552732015734 00000000000000!Header gpr 100 !Info 1 !Atoms 20 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 8 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 !Bonds 20 0 1 C 1 2 C 2 3 C 3 4 C 4 5 C 0 5 C 4 6 S 6 7 S 7 8 S 8 9 D 0 10 S 1 11 S 2 12 S 3 13 S 5 14 S 6 15 S 6 16 S 7 17 S 7 18 S 8 19 S !Coord 0 0.214949 0.108432 0.0534336 1 0.276675 -0.0151073 0.0333027 2 0.206947 -0.118429 -0.0294678 3 0.0755019 -0.098257 -0.0718386 4 0.0131664 0.02488 -0.0506454 5 0.0834278 0.128443 0.011223 6 -0.131021 0.0471857 -0.0960686 7 -0.22587 0.0389778 0.0253709 8 -0.214956 -0.0962111 0.0901721 9 -0.31118 -0.171215 0.092251 10 0.269174 0.188908 0.101879 11 0.378866 -0.0306999 0.0661139 12 0.254913 -0.214394 -0.0453925 13 0.0215321 -0.178897 -0.120223 14 0.0355939 0.224452 0.0271221 15 -0.159351 -0.0293294 -0.169918 16 -0.139486 0.146558 -0.142612 17 -0.329315 0.0560687 -0.00812559 18 -0.198629 0.116693 0.0983622 19 -0.12094 -0.128058 0.13506 !Charges 0 -0.1 1 -0.1 2 -0.1 3 -0.1 4 0 5 -0.1 6 0 7 0 8 0 9 -0.1 10 0.1 11 0.1 12 0.1 13 0.1 14 0.1 15 0 16 0 17 0 18 0 19 0.1 !End ghemical-3.0.0/examples/Makefile.am0000644000175000017500000000057411563552731014074 00000000000000SUBDIRS = TSS examplesdir = $(datadir)/ghemical/@APPVERSION@/examples examples_DATA = \ 2-chlorobutane.gpr \ 3-phenylpropanal.gpr \ PeriodicTable.gpr \ acetylsalicylic_acid.gpr \ alpha-pinene.gpr \ bromobenzene.gpr \ camphor.gpr \ cinnamaldehyde.gpr \ cis-2-pentene.gpr \ cyclohexane.gpr \ dna_AGTC.gpr \ naphtalene.gpr \ rna_aguc.gpr EXTRA_DIST = $(examples_DATA) ghemical-3.0.0/examples/PeriodicTable.gpr0000644000175000017500000000627011563552731015257 00000000000000!Header gpr 100 !Info 1 !Atoms 110 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 52 52 53 53 54 54 55 55 56 56 57 57 58 58 59 59 60 60 61 61 62 62 63 63 64 64 65 65 66 66 67 67 68 68 69 69 70 70 71 71 72 72 73 73 74 74 75 75 76 76 77 77 78 78 79 79 80 80 81 81 82 82 83 83 84 84 85 85 86 86 87 87 88 88 89 89 90 90 91 91 92 92 93 93 94 94 95 95 96 96 97 97 98 98 99 99 100 100 101 101 102 102 103 103 104 104 105 105 106 106 107 107 108 108 109 109 110 !Bonds 0 !Coord 0 0.73 0.35 0 1 -0.63 0.35 0 2 0.73 0.27 0 3 0.65 0.27 0 4 -0.23 0.27 0 5 -0.31 0.27 0 6 -0.39 0.27 0 7 -0.47 0.27 0 8 -0.55 0.27 0 9 -0.63 0.27 0 10 0.73 0.19 0 11 0.65 0.19 0 12 -0.23 0.19 0 13 -0.31 0.19 0 14 -0.39 0.19 0 15 -0.47 0.19 0 16 -0.55 0.19 0 17 -0.63 0.19 0 18 0.73 0.11 0 19 0.65 0.11 0 20 0.57 0.11 0 21 0.49 0.11 0 22 0.41 0.11 0 23 0.33 0.11 0 24 0.25 0.11 0 25 0.17 0.11 0 26 0.09 0.11 0 27 0.01 0.11 0 28 -0.07 0.11 0 29 -0.15 0.11 0 30 -0.23 0.11 0 31 -0.31 0.11 0 32 -0.39 0.11 0 33 -0.47 0.11 0 34 -0.55 0.11 0 35 -0.63 0.11 0 36 0.73 0.03 0 37 0.65 0.03 0 38 0.57 0.03 0 39 0.49 0.03 0 40 0.41 0.03 0 41 0.33 0.03 0 42 0.25 0.03 0 43 0.17 0.03 0 44 0.09 0.03 0 45 0.01 0.03 0 46 -0.07 0.03 0 47 -0.15 0.03 0 48 -0.23 0.03 0 49 -0.31 0.03 0 50 -0.39 0.03 0 51 -0.47 0.03 0 52 -0.55 0.03 0 53 -0.63 0.03 0 54 0.73 -0.05 0 55 0.65 -0.05 0 56 0.57 -0.05 0 57 0.41 -0.25 0 58 0.33 -0.25 0 59 0.25 -0.25 0 60 0.17 -0.25 0 61 0.09 -0.25 0 62 0.01 -0.25 0 63 -0.07 -0.25 0 64 -0.15 -0.25 0 65 -0.23 -0.25 0 66 -0.31 -0.25 0 67 -0.39 -0.25 0 68 -0.47 -0.25 0 69 -0.55 -0.25 0 70 -0.63 -0.25 0 71 0.49 -0.05 0 72 0.41 -0.05 0 73 0.33 -0.05 0 74 0.25 -0.05 0 75 0.17 -0.05 0 76 0.09 -0.05 0 77 0.01 -0.05 0 78 -0.07 -0.05 0 79 -0.15 -0.05 0 80 -0.23 -0.05 0 81 -0.31 -0.05 0 82 -0.39 -0.05 0 83 -0.47 -0.05 0 84 -0.55 -0.05 0 85 -0.63 -0.05 0 86 0.73 -0.13 0 87 0.65 -0.13 0 88 0.57 -0.13 0 89 0.41 -0.33 0 90 0.33 -0.33 0 91 0.25 -0.33 0 92 0.17 -0.33 0 93 0.09 -0.33 0 94 0.01 -0.33 0 95 -0.07 -0.33 0 96 -0.15 -0.33 0 97 -0.23 -0.33 0 98 -0.31 -0.33 0 99 -0.39 -0.33 0 100 -0.47 -0.33 0 101 -0.55 -0.33 0 102 -0.63 -0.33 0 103 0.49 -0.13 0 104 0.41 -0.13 0 105 0.33 -0.13 0 106 0.25 -0.13 0 107 0.17 -0.13 0 108 0.09 -0.13 0 109 0.01 -0.13 0 !Charges 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 27 0 28 0 29 0 30 0 31 0 32 0 33 0 34 0 35 0 36 0 37 0 38 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 47 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0 58 0 59 0 60 0 61 0 62 0 63 0 64 0 65 0 66 0 67 0 68 0 69 0 70 0 71 0 72 0 73 0 74 0 75 0 76 0 77 0 78 0 79 0 80 0 81 0 82 0 83 0 84 0 85 0 86 0 87 0 88 0 89 0 90 0 91 0 92 0 93 0 94 0 95 0 96 0 97 0 98 0 99 0 100 0 101 0 102 0 103 0 104 0 105 0 106 0 107 0 108 0 109 0 !End ghemical-3.0.0/examples/acetylsalicylic_acid.gpr0000644000175000017500000000222711563552732016706 00000000000000!Header gpr 100 !Info 1 !Atoms 21 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 8 8 6 9 6 10 8 11 8 12 8 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 !Bonds 21 0 1 C 1 2 C 2 3 C 3 4 C 4 5 C 0 5 C 4 6 S 5 7 S 7 8 S 8 9 S 8 10 D 6 11 D 6 12 S 0 13 S 1 14 S 2 15 S 3 16 S 9 17 S 9 18 S 9 19 S 12 20 S !Coord 0 0.134808 0.106675 -0.0303526 1 0.263921 0.0584588 -0.00835336 2 0.284516 -0.0776194 0.0146708 3 0.17606 -0.165436 0.0143893 4 0.0468972 -0.117262 -0.00768695 5 0.0258229 0.0193406 -0.0276345 6 -0.0697862 -0.213285 -0.00820046 7 -0.102627 0.0663459 -0.0543631 8 -0.137946 0.173991 0.0160855 9 -0.281366 0.215136 -0.000998379 10 -0.0730955 0.212374 0.11211 11 -0.183108 -0.171719 -0.026409 12 -0.0483139 -0.343275 0.0116782 13 0.119553 0.211986 -0.0512462 14 0.348279 0.126597 -0.00994711 15 0.384778 -0.115313 0.0316454 16 0.192348 -0.271318 0.0311481 17 -0.29389 0.320112 0.0294371 18 -0.345737 0.151408 0.0614231 19 -0.311027 0.204368 -0.106393 20 -0.130086 -0.391564 0.00899736 !Charges 0 -0.1 1 -0.1 2 -0.1 3 -0.1 4 0 5 0 6 0.1 7 0 8 0.1 9 0 10 -0.1 11 -0.1 12 -0.25 13 0.1 14 0.1 15 0.1 16 0.1 17 0 18 0 19 0 20 0.25 !End ghemical-3.0.0/examples/bromobenzene.gpr0000644000175000017500000000126311563552732015234 00000000000000!Header gpr 100 !Info 1 !Atoms 12 0 6 1 6 2 6 3 6 4 6 5 6 6 35 7 1 8 1 9 1 10 1 11 1 !Bonds 12 0 1 C 1 2 C 2 3 C 3 4 C 4 5 C 0 5 C 2 6 S 0 7 S 1 8 S 3 9 S 4 10 S 5 11 S !Coord 0 0.0495595 0.133991 0.00206212 1 0.133939 0.023603 -0.0112446 2 0.080549 -0.105344 -0.012701 3 -0.0572776 -0.123864 -0.000843498 4 -0.141693 -0.0135042 0.0124652 5 -0.0882687 0.115435 0.013918 6 0.192456 -0.251695 -0.0303464 7 0.0910884 0.234174 0.00318913 8 0.241017 0.037985 -0.0204571 9 -0.0987461 -0.224037 -0.00197561 10 -0.248778 -0.0279395 0.0216756 11 -0.153846 0.201196 0.0242581 !Charges 0 -0.1 1 -0.1 2 0 3 -0.1 4 -0.1 5 -0.1 6 0 7 0.1 8 0.1 9 0.1 10 0.1 11 0.1 !End ghemical-3.0.0/configure0000755000175000017500000224245611645347722012145 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67 for ghemical 3.0.0. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ghemical' PACKAGE_TARNAME='ghemical' PACKAGE_VERSION='3.0.0' PACKAGE_STRING='ghemical 3.0.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_unique_file="src/project.cpp" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS LIBGHEMICAL_LIBS LIBGHEMICAL_CFLAGS OPENBABEL_LIBS OPENBABEL_CFLAGS GTK_LIBS GTK_CFLAGS GTHREAD_LIBS GTHREAD_CFLAGS GETTEXT_PACKAGE MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES CATOBJEXT CATALOGS MSGFMT_OPTS DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED LIBTOOL CXXCPP CPP am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC COND_USE_GTK_FALSE COND_USE_GTK_TRUE top_builddir_ host_os host_vendor host_cpu host build_os build_vendor build_cpu build am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM APPRELEASEDATE APPVERSION target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_gtk enable_threads enable_openbabel enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_nls ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CXX CXXFLAGS CCC CPP CXXCPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GTHREAD_CFLAGS GTHREAD_LIBS GTK_CFLAGS GTK_LIBS OPENBABEL_CFLAGS OPENBABEL_LIBS LIBGHEMICAL_CFLAGS LIBGHEMICAL_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ghemical 3.0.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/ghemical] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ghemical 3.0.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-gtk build a GTK2 application [default=yes] --enable-threads build a multithreaded application [default=yes] --enable-openbabel compile with OpenBabel support [default=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path GTHREAD_CFLAGS C compiler flags for GTHREAD, overriding pkg-config GTHREAD_LIBS linker flags for GTHREAD, overriding pkg-config GTK_CFLAGS C compiler flags for GTK, overriding pkg-config GTK_LIBS linker flags for GTK, overriding pkg-config OPENBABEL_CFLAGS C compiler flags for OPENBABEL, overriding pkg-config OPENBABEL_LIBS linker flags for OPENBABEL, overriding pkg-config LIBGHEMICAL_CFLAGS C compiler flags for LIBGHEMICAL, overriding pkg-config LIBGHEMICAL_LIBS linker flags for LIBGHEMICAL, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF ghemical configure 3.0.0 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ghemical $as_me 3.0.0, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5 ; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu $as_echo "#define APPVERSION \"3.0.0\"" >>confdefs.h APPVERSION="3.0.0" $as_echo "#define APPRELEASEDATE \"2011-10-12\"" >>confdefs.h APPRELEASEDATE="2011-10-12" ac_config_headers="$ac_config_headers src/ghemicalconfig.h" # todo : how to prevent from VERSION being written into the config.h file??? # the same will be written into the libghemical config header, causing warnings. am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "$*" != "X $srcdir/configure conftestfile" \ && test "$*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftestfile ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi rm -f conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='ghemical' VERSION='3.0.0' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac top_builddir_=`pwd` test "x$prefix" = xNONE && prefix="$ac_default_prefix" test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' ac_define_dir=`eval echo $datadir/ghemical` ac_define_dir=`eval echo $ac_define_dir` cat >>confdefs.h <<_ACEOF #define APPDATA_PATH "$ac_define_dir" _ACEOF # create a version of config.h where the PACKAGE definitions are stripped away. ac_config_commands="$ac_config_commands src/ghemicalconfig2.h" # Get any build/host and enable/disable flags now. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # if a mingw32 host is specified, then ??? # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ##case $host in ## *-*-mingw32*) ## CPPFLAGS="-Dmno-cygwin -Dmms_bitfields $CPPFLAGS" ## LIBS="$LIBS -mwindows" ## ;; ##esac # Check whether --enable-gtk was given. if test "${enable_gtk+set}" = set; then : enableval=$enable_gtk; enable_gtk=$enableval else enable_gtk=yes fi if test "x$enable_gtk" = "xyes"; then COND_USE_GTK_TRUE= COND_USE_GTK_FALSE='#' else COND_USE_GTK_TRUE='#' COND_USE_GTK_FALSE= fi # Check whether --enable-threads was given. if test "${enable_threads+set}" = set; then : enableval=$enable_threads; enable_threads=$enableval else enable_threads=yes fi # Check whether --enable-openbabel was given. if test "${enable_openbabel+set}" = set; then : enableval=$enable_openbabel; enable_openbabel=$enableval else enable_openbabel=yes fi # Checks for programs. # ^^^^^^^^^^^^^^^^^^^^ ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5428: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5431: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5434: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6640 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} _lt_caught_CXX_error=yes; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8555: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8559: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8894: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8898: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8999: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9003: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9054: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9058: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11438 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11534 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13490: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13494: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13589: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13593: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13641: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13645: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else case $AR in [\\/]* | ?:[\\/]*) ac_cv_path_AR="$AR" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_AR" && ac_cv_path_AR="ar" ;; esac fi AR=$ac_cv_path_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "sh", so it can be a program name with args. set dummy sh; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_SHELL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $SHELL in [\\/]* | ?:[\\/]*) ac_cv_path_SHELL="$SHELL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SHELL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_SHELL" && ac_cv_path_SHELL="/bin/sh" ;; esac fi SHELL=$ac_cv_path_SHELL if test -n "$SHELL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHELL" >&5 $as_echo "$SHELL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi ## these are for 18n only... ##^^^^^^^^^^^^^^^^^^^^^^^^^^^ ## also see po/Makefile.in AC_CONFIG_FILES ##^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ##IT_PROG_INTLTOOL([0.35.0]) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n "0.40.0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40.0" >&5 $as_echo_n "checking for intltool >= 0.40.0... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.40.0 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = x""yes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES GETTEXT_PACKAGE="ghemical" cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF ## end of i18n-stuff... ##^^^^^^^^^^^^^^^^^^^^^^ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "$*" != "X $srcdir/configure conftestfile" \ && test "$*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftestfile ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi rm -f conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # Checks for libraries. # ^^^^^^^^^^^^^^^^^^^^^ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acos in -lm" >&5 $as_echo_n "checking for acos in -lm... " >&6; } if test "${ac_cv_lib_m_acos+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char acos (); int main () { return acos (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_acos=yes else ac_cv_lib_m_acos=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_acos" >&5 $as_echo "$ac_cv_lib_m_acos" >&6; } if test "x$ac_cv_lib_m_acos" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF LIBS="-lm $LIBS" else as_fn_error $? "math library missing" "$LINENO" 5 fi LIBS="$LIBS -L/usr/X11R6/lib" ## the GL/GLU library checks won't work at mingw environment... ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #AC_CHECK_LIB([GL], [glRenderMode],, AC_MSG_ERROR([GL library missing])) #AC_CHECK_LIB([GLU], [gluCylinder],, AC_MSG_ERROR([GLU library missing])) ## the X11 check should be skipped at mingw environment... ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #AC_CHECK_LIB([X11], [XOpenDisplay],, AC_MSG_ERROR([X11 library missing])) ## are the rest necessary??? #AC_CHECK_LIB([Xmu], [XmuDrawLogo]) #AC_CHECK_LIB([Xext], [XShmAttach]) #AC_CHECK_LIB([Xi], [XOpenDevice]) # gtk+ feature GtkUIManager is needed -> v2.4 or newer is required. # glib feature GOptionContext is needed -> v2.6 or newer is required. ## the PKG_CHECK_MODULES() function is not working at mingw environment... ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if test $enable_gtk = yes; then $as_echo "#define ENABLE_GTK /**/" >>confdefs.h if test $enable_threads = yes; then $as_echo "#define ENABLE_THREADS /**/" >>confdefs.h pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD" >&5 $as_echo_n "checking for GTHREAD... " >&6; } if test -n "$GTHREAD_CFLAGS"; then pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.6.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.6.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.6.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTHREAD_LIBS"; then pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.6.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.6.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= 2.6.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gthread-2.0 >= 2.6.0" 2>&1` else GTHREAD_PKG_ERRORS=`$PKG_CONFIG --print-errors "gthread-2.0 >= 2.6.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTHREAD_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gthread-2.0 >= 2.6.0) were not met: $GTHREAD_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTHREAD_CFLAGS and GTHREAD_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTHREAD_CFLAGS and GTHREAD_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ##alt GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.6.0"` ##alt GTHREAD_LIBS=`$PKG_CONFIG --libs gthread-2.0` CPPFLAGS="$CPPFLAGS $GTHREAD_CFLAGS" LIBS="$LIBS $GTHREAD_LIBS" fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 $as_echo_n "checking for GTK... " >&6; } if test -n "$GTK_CFLAGS"; then pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTK_LIBS"; then pkg_cv_GTK_LIBS="$GTK_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0" 2>&1` else GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0) were not met: $GTK_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GTK_CFLAGS=$pkg_cv_GTK_CFLAGS GTK_LIBS=$pkg_cv_GTK_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ##alt GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0"` ##alt GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0 gtkglext-1.0 libglade-2.0` CPPFLAGS="$CPPFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" fi if test $enable_openbabel = yes; then $as_echo "#define ENABLE_OPENBABEL /**/" >>confdefs.h pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENBABEL" >&5 $as_echo_n "checking for OPENBABEL... " >&6; } if test -n "$OPENBABEL_CFLAGS"; then pkg_cv_OPENBABEL_CFLAGS="$OPENBABEL_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openbabel-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "openbabel-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_OPENBABEL_CFLAGS=`$PKG_CONFIG --cflags "openbabel-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$OPENBABEL_LIBS"; then pkg_cv_OPENBABEL_LIBS="$OPENBABEL_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openbabel-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "openbabel-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_OPENBABEL_LIBS=`$PKG_CONFIG --libs "openbabel-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then OPENBABEL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openbabel-2.0" 2>&1` else OPENBABEL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openbabel-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$OPENBABEL_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (openbabel-2.0) were not met: $OPENBABEL_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables OPENBABEL_CFLAGS and OPENBABEL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables OPENBABEL_CFLAGS and OPENBABEL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else OPENBABEL_CFLAGS=$pkg_cv_OPENBABEL_CFLAGS OPENBABEL_LIBS=$pkg_cv_OPENBABEL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ##alt OPENBABEL_CFLAGS=`$PKG_CONFIG --cflags openbabel-2.0` ##alt OPENBABEL_LIBS=`$PKG_CONFIG --libs openbabel-2.0` CPPFLAGS="$CPPFLAGS $OPENBABEL_CFLAGS" LIBS="$LIBS $OPENBABEL_LIBS" fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGHEMICAL" >&5 $as_echo_n "checking for LIBGHEMICAL... " >&6; } if test -n "$LIBGHEMICAL_CFLAGS"; then pkg_cv_LIBGHEMICAL_CFLAGS="$LIBGHEMICAL_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libghemical >= 3.0.0 liboglappth >= 1.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libghemical >= 3.0.0 liboglappth >= 1.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGHEMICAL_CFLAGS=`$PKG_CONFIG --cflags "libghemical >= 3.0.0 liboglappth >= 1.0.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBGHEMICAL_LIBS"; then pkg_cv_LIBGHEMICAL_LIBS="$LIBGHEMICAL_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libghemical >= 3.0.0 liboglappth >= 1.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libghemical >= 3.0.0 liboglappth >= 1.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGHEMICAL_LIBS=`$PKG_CONFIG --libs "libghemical >= 3.0.0 liboglappth >= 1.0.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBGHEMICAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libghemical >= 3.0.0 liboglappth >= 1.0.0" 2>&1` else LIBGHEMICAL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libghemical >= 3.0.0 liboglappth >= 1.0.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBGHEMICAL_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (libghemical >= 3.0.0 liboglappth >= 1.0.0) were not met: $LIBGHEMICAL_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBGHEMICAL_CFLAGS and LIBGHEMICAL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables LIBGHEMICAL_CFLAGS and LIBGHEMICAL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else LIBGHEMICAL_CFLAGS=$pkg_cv_LIBGHEMICAL_CFLAGS LIBGHEMICAL_LIBS=$pkg_cv_LIBGHEMICAL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ##alt LIBGHEMICAL_CFLAGS=`$PKG_CONFIG --cflags "libghemical >= 3.0.0 liboglappth >= 1.0.0"` ##alt LIBGHEMICAL_LIBS=`$PKG_CONFIG --libs libghemical liboglappth` CPPFLAGS="$CPPFLAGS $LIBGHEMICAL_CFLAGS" LIBS="$LIBS $LIBGHEMICAL_LIBS" # Checks for header files. # ^^^^^^^^^^^^^^^^^^^^^^^^ for ac_header in GL/gl.h do : ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default" if test "x$ac_cv_header_GL_gl_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GL_GL_H 1 _ACEOF fi done for ac_header in GL/glu.h do : ac_fn_c_check_header_mongrel "$LINENO" "GL/glu.h" "ac_cv_header_GL_glu_h" "$ac_includes_default" if test "x$ac_cv_header_GL_glu_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GL_GLU_H 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ case $ac_cv_prog_cc_stdc in #( no) : ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if test "${ac_cv_prog_cc_c99+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_cv_prog_cc_stdc=no fi fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } if test "${ac_cv_prog_cc_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 fi case $ac_cv_prog_cc_stdc in #( no) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; #( '') : { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi # Checks for library functions. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi ac_config_files="$ac_config_files Makefile docs/Makefile docs/user-docs/Makefile docs/user-docs/images/Makefile examples/Makefile examples/TSS/Makefile examples/TSS/carbocation_rearrangement_hydride_shift/Makefile examples/TSS/carbocation_rearrangement_methide_shift/Makefile examples/TSS/cycloaddition_Diels-Alder/Makefile examples/TSS/E2-reaction/Makefile examples/TSS/sigmatropic_rearrangement_Cope/Makefile examples/TSS/SN2-reaction/Makefile examples/TSS/tautomeric_shift_keto_enol/Makefile po/Makefile.in src/Makefile src/res_gtk/Makefile" { $as_echo "$as_me:${as_lineno-$LINENO}: build options: ^^^^^^^^^^^^^^ enable gtk : $enable_gtk enable threads : $enable_threads enable OpenBabel : $enable_openbabel " >&5 $as_echo "$as_me: build options: ^^^^^^^^^^^^^^ enable gtk : $enable_gtk enable threads : $enable_threads enable OpenBabel : $enable_openbabel " >&6;} ac_config_commands="$ac_config_commands stamp.h" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${COND_USE_GTK_TRUE}" && test -z "${COND_USE_GTK_FALSE}"; then as_fn_error $? "conditional \"COND_USE_GTK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by ghemical $as_me 3.0.0, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ ghemical config.status 3.0.0 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/ghemicalconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS src/ghemicalconfig.h" ;; "src/ghemicalconfig2.h") CONFIG_COMMANDS="$CONFIG_COMMANDS src/ghemicalconfig2.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "docs/user-docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/user-docs/Makefile" ;; "docs/user-docs/images/Makefile") CONFIG_FILES="$CONFIG_FILES docs/user-docs/images/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "examples/TSS/Makefile") CONFIG_FILES="$CONFIG_FILES examples/TSS/Makefile" ;; "examples/TSS/carbocation_rearrangement_hydride_shift/Makefile") CONFIG_FILES="$CONFIG_FILES examples/TSS/carbocation_rearrangement_hydride_shift/Makefile" ;; "examples/TSS/carbocation_rearrangement_methide_shift/Makefile") CONFIG_FILES="$CONFIG_FILES examples/TSS/carbocation_rearrangement_methide_shift/Makefile" ;; "examples/TSS/cycloaddition_Diels-Alder/Makefile") CONFIG_FILES="$CONFIG_FILES examples/TSS/cycloaddition_Diels-Alder/Makefile" ;; "examples/TSS/E2-reaction/Makefile") CONFIG_FILES="$CONFIG_FILES examples/TSS/E2-reaction/Makefile" ;; "examples/TSS/sigmatropic_rearrangement_Cope/Makefile") CONFIG_FILES="$CONFIG_FILES examples/TSS/sigmatropic_rearrangement_Cope/Makefile" ;; "examples/TSS/SN2-reaction/Makefile") CONFIG_FILES="$CONFIG_FILES examples/TSS/SN2-reaction/Makefile" ;; "examples/TSS/tautomeric_shift_keto_enol/Makefile") CONFIG_FILES="$CONFIG_FILES examples/TSS/tautomeric_shift_keto_enol/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/res_gtk/Makefile") CONFIG_FILES="$CONFIG_FILES src/res_gtk/Makefile" ;; "stamp.h") CONFIG_COMMANDS="$CONFIG_COMMANDS stamp.h" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "src/ghemicalconfig2.h":C) cat src/ghemicalconfig.h | grep -v PACKAGE > src/ghemicalconfig2.h ;; "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "stamp.h":C) echo timestamp > stamp.h ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ghemical-3.0.0/config.guess0000755000175000017500000012753411634160016012536 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ghemical-3.0.0/ChangeLog0000644000175000017500000075325511645354054012006 000000000000002011-09-14 17:14 thassine * Makefile.in, autogen.sh, configure, docs/Makefile.in, docs/user-docs/Makefile.in, docs/user-docs/images/Makefile.in, examples/Makefile.in, examples/TSS/E2-reaction/Makefile.in, examples/TSS/Makefile.in, examples/TSS/SN2-reaction/Makefile.in, examples/TSS/carbocation_rearrangement_hydride_shift/Makefile.in, examples/TSS/carbocation_rearrangement_methide_shift/Makefile.in, examples/TSS/cycloaddition_Diels-Alder/Makefile.in, examples/TSS/sigmatropic_rearrangement_Cope/Makefile.in, examples/TSS/tautomeric_shift_keto_enol/Makefile.in, po/LINGUAS, po/Makefile.in, po/Makefile.in.in, po/de.po, src/Makefile.in, src/ghemicalconfig.h.in, src/res_gtk/Makefile.in: add german translation, update configuration files. 2009-11-02 15:02 thassine * po/LINGUAS, po/fi.po, po/ru.po: russian translation added. 2009-09-16 08:40 thassine * configure, configure.ac, po/Makefile.in: this is version 2.99.2 2009-09-16 08:36 thassine * src/eldview_wcl.cpp, src/pangofont_wcl.cpp: an infinite loop in pangofont.cpp string width calculation. 2009-09-11 12:51 thassine * configure, configure.ac, po/Makefile.in, src/Makefile.am, src/Makefile.in: version 2.99.1 released due to a missing file. 2009-09-04 12:41 thassine * ChangeLog: ChangeLog update 2009-09-04 12:28 thassine * configure, configure.ac, po/Makefile.in: release the version 2.99.1 2009-08-10 11:22 thassine * po/LINGUAS, po/pt_BR.po: translation pt_BR added (thanks to Ulisses) 2009-05-20 10:51 thassine * configure, configure.ac, src/fileio.cpp, src/gtk_app.cpp, src/project.cpp: change atom and other indexes so that they appear starting from 1 rather than from 0 to the user. 2009-04-30 11:03 thassine * po/mk.po, po/sq.po: minor cleanups. 2009-04-21 11:34 thassine * po/LINGUAS, po/POTFILES, po/POTFILES.in, po/fi.po, po/mk.po, po/sq.po, src/gtk_app.cpp, src/gtk_eldview_wnd.cpp, src/gtk_gpcview_wnd.cpp, src/gtk_main.cpp, src/gtk_oglview_wnd.cpp, src/gtk_p1dview_wnd.cpp, src/gtk_p2dview_wnd.cpp, src/gtk_project.cpp, src/gtk_rcpview_wnd.cpp, src/gtk_simple_dialogs.cpp, src/ogl_ribbon.cpp, src/ogl_ribbon.h, src/project.cpp, src/res_gtk/gtk_file_export_dialog.glade, src/res_gtk/gtk_file_import_dialog.glade, src/res_gtk/gtk_geomopt_dialog.glade, src/res_gtk/gtk_moldyn_dialog.glade, src/res_gtk/gtk_progress_dialog.glade, src/res_gtk/gtk_setup_dialog.glade, src/res_gtk/gtk_stereo_dialog.glade, src/res_gtk/gtk_trajview_dialog.glade: added translations mk + po ; translation fi updated. 2009-04-01 05:51 thassine * src/ac_stor_wcl.cpp, src/filetrans.cpp, src/gtk_app.cpp, src/gtk_glade_dialog.cpp, src/gtk_project.cpp, src/gtk_setup_dialog.cpp, src/gtk_simple_dialogs.cpp, src/gtk_wnd.cpp, src/ogl_ribbon.cpp, src/p1dview_wcl.cpp, src/p2dview_wcl.cpp, src/pangofont_wcl.cpp, src/project.cpp: added assertion_failed() method. 2008-12-09 10:44 thassine * po/Makefile.in, po/fi.po, src/ac_stor_wcl.cpp, src/custom_app.cpp, src/eldview_wcl.cpp, src/fileio.cpp, src/filetrans.cpp, src/gtk_app.cpp, src/gtk_eldview_wnd.cpp, src/gtk_file_export_dialog.cpp, src/gtk_file_import_dialog.cpp, src/gtk_geomopt_dialog.cpp, src/gtk_glade_dialog.cpp, src/gtk_gpcview_wnd.cpp, src/gtk_main.cpp, src/gtk_moldyn_dialog.cpp, src/gtk_oglview_wnd.cpp, src/gtk_p1dview_wnd.cpp, src/gtk_p2dview_wnd.cpp, src/gtk_progress_dialog.cpp, src/gtk_project.cpp, src/gtk_rcpview_wnd.cpp, src/gtk_setup_dialog.cpp, src/gtk_simple_dialogs.cpp, src/gtk_stereo_dialog.cpp, src/gtk_trajview_dialog.cpp, src/gtk_wnd.cpp, src/ogl_plane.cpp, src/ogl_ribbon.cpp, src/ogl_surface.cpp, src/oglview_wcl.cpp, src/p1dview_wcl.cpp, src/p2dview_wcl.cpp, src/pangofont_wcl.cpp, src/project.cpp, src/rcpview_wcl.cpp: translations added ; Vlado Peshov. 2008-11-26 11:48 thassine * src/gtk_app.cpp: a comment added. 2008-11-26 11:18 thassine * Makefile.am, Makefile.in, autogen.sh, configure, configure.ac, docs/Makefile.in, docs/user-docs/Makefile.in, docs/user-docs/images/Makefile.in, examples/Makefile.in, examples/TSS/E2-reaction/Makefile.in, examples/TSS/Makefile.in, examples/TSS/SN2-reaction/Makefile.in, examples/TSS/carbocation_rearrangement_hydride_shift/Makefile.in, examples/TSS/carbocation_rearrangement_methide_shift/Makefile.in, examples/TSS/cycloaddition_Diels-Alder/Makefile.in, examples/TSS/sigmatropic_rearrangement_Cope/Makefile.in, examples/TSS/tautomeric_shift_keto_enol/Makefile.in, po, po/LINGUAS, po/Makefile.in, po/Makefile.in.in, po/POTFILES, po/POTFILES.in, po/fi.po, po/stamp-it, src/Makefile.am, src/Makefile.in, src/ghemicalconfig.h.in, src/gtk_app.cpp, src/gtk_main.cpp, src/local_i18n.h, src/pangofont_wcl.cpp, src/res_gtk/Makefile.in, src/res_gtk/gtk_geomopt_dialog.glade: started adding gettext()-translations ; Vlado Peshov + others. 2008-10-22 09:42 thassine * INSTALL, Makefile.in, configure, configure.ac, docs/Makefile.in, docs/user-docs/Makefile.in, docs/user-docs/images/Makefile.in, examples/Makefile.in, examples/TSS/E2-reaction/Makefile.in, examples/TSS/Makefile.in, examples/TSS/SN2-reaction/Makefile.in, examples/TSS/carbocation_rearrangement_hydride_shift/Makefile.in, examples/TSS/carbocation_rearrangement_methide_shift/Makefile.in, examples/TSS/cycloaddition_Diels-Alder/Makefile.in, examples/TSS/sigmatropic_rearrangement_Cope/Makefile.in, examples/TSS/tautomeric_shift_keto_enol/Makefile.in, src/Makefile.in, src/ghemicalconfig.h.in, src/gtk_app.cpp, src/project.cpp, src/res_gtk/Makefile.in: configuration update (Daniel Leidert) + minor fixes 2008-08-06 12:26 thassine * Makefile.am, Makefile.in, configure, configure.ac, docs/Makefile.in, docs/user-docs/Makefile.in, docs/user-docs/images/Makefile.in, examples/Makefile.in, examples/TSS/E2-reaction/Makefile.in, examples/TSS/Makefile.in, examples/TSS/SN2-reaction/Makefile.in, examples/TSS/carbocation_rearrangement_hydride_shift/Makefile.in, examples/TSS/carbocation_rearrangement_methide_shift/Makefile.in, examples/TSS/cycloaddition_Diels-Alder/Makefile.in, examples/TSS/sigmatropic_rearrangement_Cope/Makefile.in, examples/TSS/tautomeric_shift_keto_enol/Makefile.in, src/Makefile.in, src/ghemicalconfig.h.in, src/pangofont_wcl.cpp, src/res_gtk/Makefile.in: pangofont_wcl.cpp fix ; autogen.sh added to EXTRA_DIST ; configure-scripts update. 2008-08-01 06:43 thassine * src/gtk_main.cpp, src/pangofont_wcl.cpp: added win32 relocation code + patches for more reliable compilation. 2008-07-31 10:34 thassine * configure, configure.ac: version number changed to 2.98 2008-07-31 08:38 thassine * src/pangofont_wcl.cpp, src/pangofont_wcl.h: ooops ; here are the new pango-files 2008-07-31 08:37 thassine * INSTALL, configure, configure.ac, src/Makefile.am, src/Makefile.in, src/ac_stor_wcl.cpp, src/ac_stor_wcl.h, src/eldview_wcl.cpp, src/eldview_wcl.h, src/ghemicalconfig.h.in, src/gpcview_wcl.cpp, src/gpcview_wcl.h, src/gtk_main.cpp, src/gtk_wnd.cpp, src/oglview_wcl.cpp, src/oglview_wcl.h, src/p1dview_wcl.cpp, src/p2dview_wcl.cpp, src/project.cpp: added OpenGL text rendering using gtkglext/pango ; removed dependencies to glut library. 2008-07-31 06:02 thassine * Makefile.in, configure, docs/Makefile.in, docs/user-docs/Makefile.in, docs/user-docs/images/Makefile.in, examples/Makefile.in, examples/TSS/E2-reaction/Makefile.in, examples/TSS/Makefile.in, examples/TSS/SN2-reaction/Makefile.in, examples/TSS/carbocation_rearrangement_hydride_shift/Makefile.in, examples/TSS/carbocation_rearrangement_methide_shift/Makefile.in, examples/TSS/cycloaddition_Diels-Alder/Makefile.in, examples/TSS/sigmatropic_rearrangement_Cope/Makefile.in, examples/TSS/tautomeric_shift_keto_enol/Makefile.in, src/Makefile.in, src/res_gtk/Makefile.in: added Makefile.in files for clarity 2008-07-31 05:55 thassine * configure.ac, src/fileio.cpp, src/filetrans.cpp, src/filetrans.h, src/ghemicalconfig.h.in, src/gtk_app.cpp, src/gtk_app.h, src/gtk_main.cpp, src/gtk_oglview_wnd.cpp, src/gtk_project.cpp, src/gtk_project.h, src/gtk_setup_dialog.cpp, src/gtk_simple_dialogs.cpp, src/gtk_wnd.cpp, src/ogl_plane.cpp, src/ogl_surface.h, src/oglview_wcl.cpp, src/project.cpp, src/project.h, src/res_w32, src/w32_app.cpp, src/w32_app.h, src/w32_bondtype_dialog.cpp, src/w32_bondtype_dialog.h, src/w32_command_dialog.cpp, src/w32_command_dialog.h, src/w32_eldview_wnd.cpp, src/w32_eldview_wnd.h, src/w32_element_dialog.cpp, src/w32_element_dialog.h, src/w32_gpcview_wnd.cpp, src/w32_gpcview_wnd.h, src/w32_main.cpp, src/w32_main.h, src/w32_oglview_wnd.cpp, src/w32_oglview_wnd.h, src/w32_p1dview_wnd.cpp, src/w32_p1dview_wnd.h, src/w32_p2dview_wnd.cpp, src/w32_p2dview_wnd.h, src/w32_progress_dialog.cpp, src/w32_progress_dialog.h, src/w32_project.cpp, src/w32_project.h, src/w32_rcpview_wnd.cpp, src/w32_rcpview_wnd.h, src/w32_simple_dialogs.cpp, src/w32_simple_dialogs.h, src/w32_tb_button.cpp, src/w32_tb_button.h, src/w32_wnd.cpp, src/w32_wnd.h: changes required for porting to win32 ; the win32-API-target and files w32_something.cpp removed. 2008-07-18 08:52 thassine * src/fileio.cpp, src/gtk_app.cpp, src/gtk_main.cpp, src/gtk_moldyn_dialog.cpp, src/gtk_moldyn_dialog.h, src/gtk_setup_dialog.cpp, src/ogl_ribbon.cpp, src/project.cpp, src/res_gtk/gtk_moldyn_dialog.glade: MD changes in libghemical + other minor stuff. 2008-03-14 12:12 thassine * INSTALL: update INSTALL 2008-02-26 11:37 thassine * src/fileio.cpp, src/gtk_app.cpp, src/gtk_moldyn_dialog.cpp, src/gtk_simple_dialogs.cpp, src/ogl_plane.cpp, src/ogl_surface.cpp, src/p1dview_wcl.cpp, src/p2dview_wcl.cpp, src/project.cpp, src/w32_app.cpp, src/w32_command_dialog.cpp, src/w32_progress_dialog.cpp, src/w32_tb_button.cpp: should now compile with g++ v4.3 (not tested though). 2008-02-25 09:47 thassine * src/gtk_setup_dialog.cpp: GUI : spin multiplicity is not yet used so block access to it. 2008-01-09 12:06 thassine * src/ac_stor_wcl.cpp, src/ac_stor_wcl.h, src/appdefine.h, src/color.h, src/custom_app.cpp, src/custom_app.h, src/custom_camera.cpp, src/custom_camera.h, src/custom_lights.cpp, src/custom_lights.h, src/eldview_wcl.cpp, src/eldview_wcl.h, src/fileio.cpp, src/filetrans.cpp, src/filetrans.h, src/gpcview_wcl.cpp, src/gpcview_wcl.h, src/gtk_app.cpp, src/gtk_app.h, src/gtk_eldview_wnd.cpp, src/gtk_eldview_wnd.h, src/gtk_file_export_dialog.cpp, src/gtk_file_export_dialog.h, src/gtk_file_import_dialog.cpp, src/gtk_file_import_dialog.h, src/gtk_geomopt_dialog.cpp, src/gtk_geomopt_dialog.h, src/gtk_glade_dialog.cpp, src/gtk_glade_dialog.h, src/gtk_gpcview_wnd.cpp, src/gtk_gpcview_wnd.h, src/gtk_main.cpp, src/gtk_main.h, src/gtk_moldyn_dialog.cpp, src/gtk_moldyn_dialog.h, src/gtk_oglview_wnd.cpp, src/gtk_oglview_wnd.h, src/gtk_p1dview_wnd.cpp, src/gtk_p1dview_wnd.h, src/gtk_p2dview_wnd.cpp, src/gtk_p2dview_wnd.h, src/gtk_progress_dialog.cpp, src/gtk_progress_dialog.h, src/gtk_project.cpp, src/gtk_project.h, src/gtk_rcpview_wnd.cpp, src/gtk_rcpview_wnd.h, src/gtk_setup_dialog.cpp, src/gtk_setup_dialog.h, src/gtk_simple_dialogs.cpp, src/gtk_simple_dialogs.h, src/gtk_stereo_dialog.cpp, src/gtk_stereo_dialog.h, src/gtk_trajview_dialog.cpp, src/gtk_trajview_dialog.h, src/gtk_wnd.cpp, src/gtk_wnd.h, src/ogl_plane.cpp, src/ogl_plane.h, src/ogl_ribbon.cpp, src/ogl_ribbon.h, src/ogl_surface.cpp, src/ogl_surface.h, src/oglview_wcl.cpp, src/oglview_wcl.h, src/p1dview_wcl.cpp, src/p1dview_wcl.h, src/p2dview_wcl.cpp, src/p2dview_wcl.h, src/project.cpp, src/project.h, src/rcpview_wcl.cpp, src/rcpview_wcl.h, src/simple_test/container.cpp, src/simple_test/container.h, src/spline.cpp, src/spline.h, src/w32_app.cpp, src/w32_app.h, src/w32_bondtype_dialog.cpp, src/w32_bondtype_dialog.h, src/w32_command_dialog.cpp, src/w32_command_dialog.h, src/w32_eldview_wnd.cpp, src/w32_eldview_wnd.h, src/w32_element_dialog.cpp, src/w32_element_dialog.h, src/w32_gpcview_wnd.cpp, src/w32_gpcview_wnd.h, src/w32_main.cpp, src/w32_main.h, src/w32_oglview_wnd.cpp, src/w32_oglview_wnd.h, src/w32_p1dview_wnd.cpp, src/w32_p1dview_wnd.h, src/w32_p2dview_wnd.cpp, src/w32_p2dview_wnd.h, src/w32_progress_dialog.cpp, src/w32_progress_dialog.h, src/w32_project.cpp, src/w32_project.h, src/w32_rcpview_wnd.cpp, src/w32_rcpview_wnd.h, src/w32_simple_dialogs.cpp, src/w32_simple_dialogs.h, src/w32_tb_button.cpp, src/w32_tb_button.h, src/w32_wnd.cpp, src/w32_wnd.h: copyright notice update. 2008-01-09 11:37 thassine * autogen.sh, src/project.cpp, src/w32_app.cpp, src/w32_app.h, src/w32_project.cpp, src/w32_simple_dialogs.cpp, src/w32_simple_dialogs.h, src/w32_wnd.cpp: NEWLINE is removed from libghemical ; also autogen.sh update. 2008-01-02 09:25 thassine * src/res_gtk/Makefile.am: make dist now includes also the xpm files 2007-09-21 10:36 thassine * autogen.sh, configure.ac, src/custom_app.cpp, src/custom_app.h, src/gtk_app.cpp, src/gtk_app.h, src/gtk_oglview_wnd.h, src/gtk_progress_dialog.cpp, src/gtk_project.cpp, src/gtk_project.h, src/gtk_simple_dialogs.h, src/oglview_wcl.h, src/project.cpp, src/project.h, src/res_w32/angle.bmp, src/res_w32/bond.bmp, src/res_w32/bondtype.bmp, src/res_w32/chain.bmp, src/res_w32/clipping.bmp, src/res_w32/dihedral.bmp, src/res_w32/distance.bmp, src/res_w32/draw.bmp, src/res_w32/element.bmp, src/res_w32/erase.bmp, src/res_w32/invert.bmp, src/res_w32/measure.bmp, src/res_w32/molecule.bmp, src/res_w32/orbit_xy.bmp, src/res_w32/orbit_z.bmp, src/res_w32/residue.bmp, src/res_w32/resource.h, src/res_w32/resource.rc, src/res_w32/rotate_xy.bmp, src/res_w32/rotate_z.bmp, src/res_w32/select.bmp, src/res_w32/setup.bmp, src/res_w32/transl_xy.bmp, src/res_w32/transl_z.bmp, src/res_w32/zoom.bmp, src/w32_app.cpp, src/w32_app.h, src/w32_bondtype_dialog.cpp, src/w32_bondtype_dialog.h, src/w32_command_dialog.cpp, src/w32_command_dialog.h, src/w32_eldview_wnd.cpp, src/w32_eldview_wnd.h, src/w32_element_dialog.cpp, src/w32_element_dialog.h, src/w32_gpcview_wnd.cpp, src/w32_gpcview_wnd.h, src/w32_main.cpp, src/w32_oglview_wnd.cpp, src/w32_oglview_wnd.h, src/w32_p1dview_wnd.cpp, src/w32_p1dview_wnd.h, src/w32_p2dview_wnd.cpp, src/w32_p2dview_wnd.h, src/w32_progress_dialog.cpp, src/w32_progress_dialog.h, src/w32_project.cpp, src/w32_project.h, src/w32_rcpview_wnd.cpp, src/w32_rcpview_wnd.h, src/w32_simple_dialogs.cpp, src/w32_simple_dialogs.h, src/w32_tb_button.cpp, src/w32_tb_button.h, src/w32_wnd.cpp, src/w32_wnd.h: commit 20070921 2007-05-23 10:03 thassine * src/Makefile.am, src/custom_app.h, src/gtk_dialog.cpp, src/gtk_dialog.h, src/gtk_oglview_wnd.cpp, src/gtk_oglview_wnd.h, src/gtk_project.cpp, src/gtk_project.h, src/gtk_simple_dialogs.cpp, src/gtk_simple_dialogs.h, src/gtk_stereo_dialog.cpp, src/gtk_stereo_dialog.h, src/gtk_trajview_dialog.cpp, src/oglview_wcl.h, src/res_gtk/Makefile.am, src/res_gtk/gtk_stereo_dialog.glade, src/res_gtk/gtk_stereo_dialog.gladep, src/res_w32/resource.h, src/res_w32/resource.rc, src/w32_app.cpp, src/w32_dialog.cpp, src/w32_dialog.h, src/w32_main.cpp, src/w32_oglview_wnd.cpp, src/w32_oglview_wnd.h, src/w32_project.cpp, src/w32_project.h, src/w32_simple_dialogs.cpp, src/w32_simple_dialogs.h, src/w32_wnd.cpp: new stuff added to the win32 version ; the menus should work better now. 2007-05-02 11:50 thassine * src/gtk_main.cpp, src/w32_app.cpp: the glutInit() call was missing. 2007-03-13 09:30 thassine * src/project.cpp: SortGroups() has changed in libghemical ; sync. 2007-01-25 10:13 thassine * src/w32_dialog.cpp, src/w32_dialog.h: forgot to add w32 dialogs... 2007-01-19 07:40 thassine * src/ac_stor_wcl.cpp, src/ac_stor_wcl.h: improved the way how structures are stored in plots. 2007-01-16 09:08 thassine * src/project.cpp: changes at lib side. 2007-01-15 10:27 thassine * src/project.cpp: changed the SetTorsionConstraint() method parameters. 2007-01-15 07:56 thassine * src/gtk_dialog.cpp, src/project.cpp, src/res_w32/resource.h, src/res_w32/resource.rc, src/w32_app.cpp, src/w32_app.h, src/w32_wnd.cpp: changes for the win32 version. 2006-12-21 10:52 thassine * configure.ac, src/Makefile.am, src/gtk_app.cpp, src/gtk_app.h, src/gtk_eldview_wnd.cpp, src/gtk_gpcview_wnd.cpp, src/gtk_oglview_wnd.cpp, src/gtk_oglview_wnd.h, src/gtk_p1dview_wnd.cpp, src/gtk_p2dview_wnd.cpp, src/gtk_project.cpp, src/gtk_project.h, src/gtk_rcpview_wnd.cpp, src/gtk_wnd.cpp, src/oglview_wcl.cpp, src/project.cpp, src/project.h, src/res_w32, src/res_w32/resource.h, src/res_w32/resource.rc, src/w32_app.cpp, src/w32_app.h, src/w32_main.cpp, src/w32_main.h, src/w32_oglview_wnd.cpp, src/w32_oglview_wnd.h, src/w32_project.cpp, src/w32_project.h, src/w32_wnd.cpp, src/w32_wnd.h: added a win32 target. 2006-11-15 11:41 thassine * autogen.sh, configure.ac, src/custom_lights.cpp, src/ghemicalconfig.h.in: configuration fixes. 2006-11-15 08:47 thassine * src/gtk_app.cpp, src/gtk_eldview_wnd.cpp, src/gtk_gpcview_wnd.cpp, src/gtk_p1dview_wnd.cpp, src/gtk_p2dview_wnd.cpp, src/gtk_rcpview_wnd.cpp, src/gtk_wnd.cpp: show the correct view names + some bugfixes. 2006-11-14 13:40 thassine * src/eldview_wcl.cpp, src/gpcview_wcl.cpp, src/gtk_app.cpp, src/gtk_eldview_wnd.cpp, src/gtk_eldview_wnd.h, src/gtk_gpcview_wnd.cpp, src/gtk_gpcview_wnd.h, src/gtk_p1dview_wnd.cpp, src/gtk_p1dview_wnd.h, src/gtk_p2dview_wnd.cpp, src/gtk_p2dview_wnd.h, src/gtk_project.cpp, src/gtk_rcpview_wnd.cpp, src/gtk_rcpview_wnd.h, src/p1dview_wcl.cpp, src/p2dview_wcl.cpp, src/project.cpp: added new view management features. 2006-11-08 13:00 thassine * examples/TSS/E2-reaction/READ_ME.txt, examples/TSS/E2-reaction/products.gpr, examples/TSS/E2-reaction/reactants.gpr, examples/TSS/SN2-reaction/READ_ME.txt, examples/TSS/SN2-reaction/products.gpr, examples/TSS/SN2-reaction/reactants.gpr, examples/TSS/carbocation_rearrangement_hydride_shift/READ_ME.txt, examples/TSS/carbocation_rearrangement_methide_shift/READ_ME.txt, examples/TSS/cycloaddition_Diels-Alder/READ_ME.txt, examples/TSS/cycloaddition_Diels-Alder/products.gpr, examples/TSS/cycloaddition_Diels-Alder/reactants.gpr, examples/TSS/sigmatropic_rearrangement_Cope/READ_ME.txt, examples/TSS/sigmatropic_rearrangement_Cope/products.gpr, examples/TSS/sigmatropic_rearrangement_Cope/reactants.gpr, examples/TSS/tautomeric_shift_keto_enol/READ_ME.txt: TSS examples updated. 2006-11-08 12:36 thassine * AUTHORS, configure.ac, src/ghemicalconfig.h.in, src/gtk_app.cpp, src/gtk_main.cpp: some fixes added (thanks Jean). 2006-10-31 13:49 thassine * src/gtk_app.cpp, src/gtk_app.h: the separate views + objects pages are combined into a single views/objects page at the project view. 2006-10-31 12:26 thassine * src/color.h, src/custom_app.cpp, src/custom_app.h, src/custom_camera.h, src/custom_lights.h, src/gtk_app.cpp, src/gtk_app.h, src/gtk_oglview_wnd.h, src/gtk_project.cpp, src/gtk_project.h, src/gtk_trajview_dialog.cpp, src/gtk_wnd.cpp, src/gtk_wnd.h, src/ogl_plane.h, src/ogl_surface.h, src/oglview_wcl.cpp, src/project.cpp, src/project.h: cleanups and missing stuff added. 2006-10-31 10:59 thassine * src/fileio.cpp, src/gtk_file_export_dialog.cpp, src/gtk_file_import_dialog.cpp, src/gtk_project.cpp, src/oglview_wcl.cpp, src/project.cpp, src/project.h: cleanups added ; a minor file format tweak added. 2006-10-31 09:05 thassine * src/gtk_app.cpp, src/gtk_app.h, src/gtk_dialog.cpp, src/gtk_project.cpp, src/gtk_project.h, src/gtk_wnd.cpp, src/oglview_wcl.cpp, src/oglview_wcl.h, src/project.cpp, src/project.h: made the detached windows transient for the main window. 2006-10-30 13:52 thassine * src/ac_stor_wcl.cpp, src/ac_stor_wcl.h, src/fileio.cpp, src/gtk_oglview_wnd.cpp, src/gtk_project.cpp, src/gtk_project.h, src/p1dview_wcl.cpp, src/p1dview_wcl.h, src/project.cpp, src/rcpview_wcl.cpp, src/rcpview_wcl.h: TSS works now. 2006-10-24 12:45 thassine * configure.ac, examples/Makefile, examples/Makefile.in, examples/TSS/Makefile, examples/TSS/Makefile.in, src/Makefile.am, src/ac_stor_wcl.cpp, src/ac_stor_wcl.h, src/filetrans.cpp, src/filetrans.h, src/gtk_oglview_wnd.cpp, src/p1dview_wcl.cpp, src/p1dview_wcl.h, src/p2dview_wcl.cpp, src/p2dview_wcl.h, src/project.cpp, src/project.h, src/res_gtk/Makefile.am, src/res_gtk/ghemical.png: libghemical-features.h ; p1d/p2d changes ; unnecessary files removed. 2006-10-19 12:29 thassine * ghemical.desktop, ghemical.spec: .spec and .desktop files updated. 2006-10-11 10:49 thassine * src/eldview_wcl.cpp, src/gtk_oglview_wnd.cpp, src/oglview_wcl.cpp, src/p1dview_wcl.cpp, src/p1dview_wcl.h, src/p2dview_wcl.cpp, src/p2dview_wcl.h, src/project.cpp, src/project.h, src/rcpview_wcl.cpp, src/rcpview_wcl.h: started to port 1D/2D plotting views. 2006-10-10 10:24 thassine * src/Makefile.am, src/gpcview_wcl.cpp, src/gpcview_wcl.h, src/gtk_gpcview_wnd.cpp, src/gtk_gpcview_wnd.h, src/gtk_p1dview_wnd.cpp, src/gtk_p1dview_wnd.h, src/gtk_p2dview_wnd.cpp, src/gtk_p2dview_wnd.h, src/gtk_project.cpp, src/gtk_project.h, src/gtk_rcpview_wnd.cpp, src/gtk_sscview_wnd.cpp, src/gtk_sscview_wnd.h, src/p1dview_wcl.cpp, src/p2dview_wcl.cpp, src/project.cpp, src/project.h, src/rcpview_wcl.cpp, src/sscview_wcl.cpp, src/sscview_wcl.h: a filaname change : ssc -> gpc (Generic Protein Chain view in future). 2006-10-10 08:51 thassine * src/gtk_oglview_wnd.cpp, src/gtk_wnd.cpp, src/oglview_wcl.cpp: minor tweaks in idle animator and OpenGL code. 2006-10-10 08:10 thassine * configure.ac, examples/Makefile, examples/Makefile.in, examples/TSS/Makefile, examples/TSS/Makefile.in, src/custom_app.cpp, src/custom_app.h, src/custom_camera.cpp, src/custom_camera.h, src/custom_lights.cpp, src/custom_lights.h, src/eldview_wcl.cpp, src/eldview_wcl.h, src/gtk_app.cpp, src/gtk_app.h, src/gtk_eldview_wnd.cpp, src/gtk_eldview_wnd.h, src/gtk_oglview_wnd.cpp, src/gtk_oglview_wnd.h, src/gtk_p1dview_wnd.h, src/gtk_p2dview_wnd.h, src/gtk_project.cpp, src/gtk_project.h, src/gtk_rcpview_wnd.h, src/gtk_sscview_wnd.h, src/gtk_wnd.cpp, src/gtk_wnd.h, src/ogl_plane.cpp, src/ogl_ribbon.cpp, src/ogl_ribbon.h, src/ogl_surface.cpp, src/oglview_wcl.cpp, src/oglview_wcl.h, src/p1dview_wcl.cpp, src/p1dview_wcl.h, src/p2dview_wcl.cpp, src/p2dview_wcl.h, src/project.cpp, src/project.h, src/rcpview_wcl.cpp, src/rcpview_wcl.h, src/sscview_wcl.cpp, src/sscview_wcl.h: improvements in proj-view + other views, bugfixes, added an idle timer in OrbitXY tool that rotates the view. 2006-08-29 08:13 thassine * ChangeLog: updated the changelog 2006-08-28 12:26 thassine * configure.ac, src/project.cpp: changes at lib side 2006-08-07 12:33 thassine * ChangeLog: changelog updated using svn2cl v0.7 2006-08-07 12:22 thassine * .cvsignore, docs/.cvsignore, docs/user-docs/.cvsignore, docs/user-docs/images/.cvsignore, examples/.cvsignore, examples/TSS/E2-reaction/.cvsignore, examples/TSS/Makefile, examples/TSS/Makefile.in, examples/TSS/SN2-reaction/.cvsignore, examples/TSS/carbocation_rearrangement_hydride_shift/.cvsignore, examples/TSS/carbocation_rearrangement_methide_shift/.cvsignore, examples/TSS/cycloaddition_Diels-Alder/.cvsignore, examples/TSS/sigmatropic_rearrangement_Cope/.cvsignore, examples/TSS/tautomeric_shift_keto_enol/.cvsignore, src/.cvsignore, src/res_gtk/Makefile.in: removed .cvsignore + other old files. 2006-07-31 10:56 thassine * src/gtk_app.cpp, src/project.cpp: seqbuild code changed at libghemical 2006-07-24 11:45 thassine * configure.ac, examples/TSS/Makefile, src/gtk_app.cpp, src/project.cpp: adapted to changes at lib side. 2006-07-12 09:42 thassine * examples/TSS/Makefile, examples/TSS/Makefile.in: added some missing files. 2006-06-06 11:06 thassine * configure.ac, examples/Makefile.am, examples/TSS/Makefile.am: subdirs examples/TSS and examples/tss were mixed up ; now only TSS used (like in v2.00) 2006-04-11 09:39 thassine * INSTALL, configure.ac, src/gtk_app.cpp: updated INSTALL 2006-04-10 13:24 thassine * Makefile.am, configure.ac, docs, docs/.cvsignore, docs/Makefile.am, src/gtk_app.cpp, src/pui_app.cpp, src/pui_app.h, src/pui_main.cpp, src/pui_main.h, src/pui_oglview_wnd.cpp, src/pui_oglview_wnd.h, src/pui_wnd.cpp, src/pui_wnd.h: updated docs, docs viewed now using a browser. 2006-04-10 13:22 thassine * docs/user-docs, docs/user-docs/.cvsignore, docs/user-docs/Makefile.am, docs/user-docs/images, docs/user-docs/images/.cvsignore, docs/user-docs/images/2atoms_bond.png, docs/user-docs/images/Makefile.am, docs/user-docs/images/change_bond_select.png, docs/user-docs/images/clipping1.png, docs/user-docs/images/clipping2.png, docs/user-docs/images/draw_button.png, docs/user-docs/images/draw_hydrogens.png, docs/user-docs/images/first_atom.png, docs/user-docs/images/new_mm.png, docs/user-docs/images/periodic_button.png, docs/user-docs/images/periodic_table.png, docs/user-docs/images/setup1.png, docs/user-docs/images/setup2.png, docs/user-docs/images/setup_select.png, docs/user-docs/images/using_mm_01.png, docs/user-docs/images/using_mm_02.png, docs/user-docs/images/using_mm_03.png, docs/user-docs/images/using_mm_04.png, docs/user-docs/images/using_mm_05.png, docs/user-docs/images/using_mm_06.png, docs/user-docs/images/using_mm_07.png, docs/user-docs/images/using_mm_08.png, docs/user-docs/images/using_mm_09.png, docs/user-docs/images/using_mm_10.png, docs/user-docs/images/using_mm_11.png, docs/user-docs/index.html, docs/user-docs/introduction.html, docs/user-docs/mdi_mode.html, docs/user-docs/perspective.html, docs/user-docs/ribbon.html, docs/user-docs/setup_dialog.html, docs/user-docs/using_mm.html, docs/user-docs/visualization.html: updated the docs. 2006-04-05 12:59 thassine * src/Makefile.am, src/custom_camera.cpp, src/custom_camera.h, src/custom_lights.cpp, src/custom_lights.h, src/ogl_plane.cpp, src/ogl_plane.h, src/ogl_surface.cpp, src/ogl_surface.h, src/oglview_wcl.cpp, src/project.cpp, src/project.h: many improvements + bugfixes ; the GL selection and zoom tool should work now. 2006-03-28 12:25 thassine * configure.ac, examples/Makefile.am, examples/TSS, examples/TSS/E2-reaction, examples/TSS/E2-reaction/.cvsignore, examples/TSS/E2-reaction/Makefile.am, examples/TSS/E2-reaction/products.gpr, examples/TSS/E2-reaction/reactants.gpr, examples/TSS/E2-reaction/ts.gpr, examples/TSS/README, examples/TSS/SN2-reaction, examples/TSS/SN2-reaction/.cvsignore, examples/TSS/SN2-reaction/Makefile.am, examples/TSS/SN2-reaction/products.gpr, examples/TSS/SN2-reaction/reactants.gpr, examples/TSS/SN2-reaction/ts.gpr, examples/TSS/carbocation_rearrangement_hydride_shift, examples/TSS/carbocation_rearrangement_hydride_shift/.cvsignore, examples/TSS/carbocation_rearrangement_hydride_shift/Makefile.am, examples/TSS/carbocation_rearrangement_hydride_shift/products.gpr, examples/TSS/carbocation_rearrangement_hydride_shift/reactants.gpr, examples/TSS/carbocation_rearrangement_hydride_shift/ts.gpr, examples/TSS/carbocation_rearrangement_methide_shift, examples/TSS/carbocation_rearrangement_methide_shift/.cvsignore, examples/TSS/carbocation_rearrangement_methide_shift/Makefile.am, examples/TSS/carbocation_rearrangement_methide_shift/products.gpr, examples/TSS/carbocation_rearrangement_methide_shift/reactants.gpr, examples/TSS/carbocation_rearrangement_methide_shift/ts.gpr, examples/TSS/cycloaddition_Diels-Alder, examples/TSS/cycloaddition_Diels-Alder/.cvsignore, examples/TSS/cycloaddition_Diels-Alder/Makefile.am, examples/TSS/cycloaddition_Diels-Alder/products.gpr, examples/TSS/cycloaddition_Diels-Alder/reactants.gpr, examples/TSS/cycloaddition_Diels-Alder/ts.gpr, examples/TSS/sigmatropic_rearrangement_Cope, examples/TSS/sigmatropic_rearrangement_Cope/.cvsignore, examples/TSS/sigmatropic_rearrangement_Cope/Makefile.am, examples/TSS/sigmatropic_rearrangement_Cope/products.gpr, examples/TSS/sigmatropic_rearrangement_Cope/reactants.gpr, examples/TSS/sigmatropic_rearrangement_Cope/ts.gpr, examples/TSS/tautomeric_shift_keto_enol, examples/TSS/tautomeric_shift_keto_enol/.cvsignore, examples/TSS/tautomeric_shift_keto_enol/Makefile.am, examples/TSS/tautomeric_shift_keto_enol/products.gpr, examples/TSS/tautomeric_shift_keto_enol/reactants.gpr, examples/TSS/tautomeric_shift_keto_enol/ts.gpr: added examples/tss 2006-03-28 12:08 thassine * configure.ac, examples/Makefile.am, src/gtk_app.cpp: renamed the examples/transition_state_search to examples/TSS (make dist limits filenames to 99 characters). 2006-03-28 12:01 thassine * examples/transition_state_search: removed the transition_state_search directory. 2006-03-28 11:25 thassine * ., .cvsignore: removed some unnecessary files. 2006-03-28 10:38 thassine * config.guess, config.sub, ltmain.sh: removed some unnecessary files. 2006-03-20 11:22 thassine * src/gtk_app.cpp, src/gtk_app.h: added optional long/short toolbar labels. 2006-03-16 06:48 thassine * INSTALL, configure.ac: documentation updates. 2006-03-14 14:14 thassine * src/gtk_moldyn_dialog.cpp, src/gtk_moldyn_dialog.h, src/res_gtk/gtk_moldyn_dialog.glade: updated the mol.dyn. dialog 2006-03-10 12:23 thassine * src/project.cpp: added a new orient-command. 2006-03-08 10:37 thassine * ., .cvsignore: cvsignore updated. 2006-03-08 08:58 thassine * aclocal.m4, autogen.sh: removed acloca.m4 and updated autogen.sh 2006-03-07 09:11 thassine * aclocal.m4, src/gtk_app.cpp, src/gtk_app.h, src/gtk_setup_dialog.cpp, src/res_gtk/gtk_setup_dialog.glade: synchronized with libghemical. 2006-03-03 13:41 thassine * aclocal.m4, src/gtk_app.cpp, src/gtk_app.h: ported Donald's frozen atom improvements. 2006-03-03 12:37 thassine * ., .cvsignore, Makefile.in, aclocal.m4, autogen.sh, configure, examples, examples/.cvsignore, examples/Makefile.in, examples/transition_state_search, examples/transition_state_search/.cvsignore, examples/transition_state_search/E2-reaction, examples/transition_state_search/E2-reaction/.cvsignore, examples/transition_state_search/E2-reaction/Makefile.in, examples/transition_state_search/Makefile.in, examples/transition_state_search/SN2-reaction, examples/transition_state_search/SN2-reaction/.cvsignore, examples/transition_state_search/SN2-reaction/Makefile.in, examples/transition_state_search/carbocation_rearrangement_hydride_shift, examples/transition_state_search/carbocation_rearrangement_hydride_shift/.cvsignore, examples/transition_state_search/carbocation_rearrangement_hydride_shift/Makefile.in, examples/transition_state_search/carbocation_rearrangement_methide_shift, examples/transition_state_search/carbocation_rearrangement_methide_shift/.cvsignore, examples/transition_state_search/carbocation_rearrangement_methide_shift/Makefile.in, examples/transition_state_search/cycloaddition_Diels-Alder, examples/transition_state_search/cycloaddition_Diels-Alder/.cvsignore, examples/transition_state_search/cycloaddition_Diels-Alder/Makefile.in, examples/transition_state_search/sigmatropic_rearrangement_Cope, examples/transition_state_search/sigmatropic_rearrangement_Cope/.cvsignore, examples/transition_state_search/sigmatropic_rearrangement_Cope/Makefile.in, examples/transition_state_search/tautomeric_shift_keto_enol, examples/transition_state_search/tautomeric_shift_keto_enol/.cvsignore, examples/transition_state_search/tautomeric_shift_keto_enol/Makefile.in, src, src/.cvsignore, src/Makefile.in, src/gtk_moldyn_dialog.cpp, src/gtk_trajview_dialog.cpp, src/project.cpp, src/project.h, src/res_gtk/gtk_moldyn_dialog.glade: many changes at the lib side ; autogen.sh added 2006-03-01 12:31 thassine * Makefile.in, aclocal.m4, src/gtk_moldyn_dialog.cpp, src/gtk_moldyn_dialog.h, src/project.cpp, src/res_gtk/gtk_moldyn_dialog.glade: the mol.dyn. code was changed at lib side. 2006-02-27 14:03 thassine * src/custom_camera.cpp, src/gtk_app.cpp, src/gtk_glade_dialog.cpp, src/ogl_plane.cpp, src/ogl_ribbon.cpp, src/ogl_surface.cpp, src/project.cpp: the stringstream code was made safer ; avoid c_str() calls in which a reference to buffer is stored (for possbile re-use). 2006-02-24 14:01 thassine * src/project.cpp: fixed a bug in box solvation. 2006-02-23 12:29 thassine * src/gtk_trajview_dialog.cpp: a trajview dialog bug temporarily fixed 2006-02-23 08:29 thassine * bin: remove the bin subdir. 2006-02-21 10:26 thassine * Makefile.in, src/fileio.cpp: file i/o cleanups added. 2006-02-21 08:00 thassine * aclocal.m4, src/custom_camera.cpp, src/fileio.cpp, src/filetrans.cpp, src/gtk_app.cpp, src/gtk_file_export_dialog.cpp, src/gtk_file_import_dialog.cpp, src/gtk_geomopt_dialog.cpp, src/gtk_glade_dialog.cpp, src/gtk_moldyn_dialog.cpp, src/gtk_progress_dialog.cpp, src/gtk_project.cpp, src/gtk_setup_dialog.cpp, src/gtk_trajview_dialog.cpp, src/ogl_plane.cpp, src/ogl_ribbon.cpp, src/ogl_surface.cpp, src/project.cpp, src/pui_app.cpp: changed strstream into stringstream. 2006-02-17 19:55 hutchisn * bin, bin/.cvsignore: Update to remove spurious CVS warnings. 2006-02-17 11:31 thassine * Makefile.in, aclocal.m4, configure, configure.ac, ltmain.sh, src/Makefile.am, src/Makefile.in, src/custom_app.cpp, src/custom_app.h, src/custom_camera.cpp, src/custom_camera.h, src/eldview_wcl.cpp, src/eldview_wcl.h, src/gtk_app.cpp, src/gtk_app.h, src/gtk_eldview_wnd.cpp, src/gtk_eldview_wnd.h, src/gtk_file_export_dialog.cpp, src/gtk_file_export_dialog.h, src/gtk_file_import_dialog.cpp, src/gtk_file_import_dialog.h, src/gtk_geomopt_dialog.cpp, src/gtk_geomopt_dialog.h, src/gtk_glade_dialog.cpp, src/gtk_glade_dialog.h, src/gtk_main.cpp, src/gtk_main.h, src/gtk_moldyn_dialog.cpp, src/gtk_moldyn_dialog.h, src/gtk_oglview_wnd.cpp, src/gtk_oglview_wnd.h, src/gtk_p1dview_wnd.cpp, src/gtk_p1dview_wnd.h, src/gtk_p2dview_wnd.cpp, src/gtk_p2dview_wnd.h, src/gtk_progress_dialog.cpp, src/gtk_progress_dialog.h, src/gtk_rcpview_wnd.cpp, src/gtk_rcpview_wnd.h, src/gtk_setup_dialog.cpp, src/gtk_setup_dialog.h, src/gtk_sscview_wnd.cpp, src/gtk_sscview_wnd.h, src/gtk_trajview_dialog.cpp, src/gtk_trajview_dialog.h, src/gtk_wnd.cpp, src/gtk_wnd.h, src/oglview_wcl.cpp, src/oglview_wcl.h, src/p1dview_wcl.cpp, src/p1dview_wcl.h, src/p2dview_wcl.cpp, src/p2dview_wcl.h, src/pui_app.cpp, src/pui_app.h, src/pui_main.cpp, src/pui_main.h, src/pui_oglview_wnd.cpp, src/pui_oglview_wnd.h, src/pui_wnd.cpp, src/pui_wnd.h, src/rcpview_wcl.cpp, src/rcpview_wcl.h, src/res_gtk, src/res_gtk/Makefile.am, src/res_gtk/Makefile.in, src/res_gtk/angle.xpm, src/res_gtk/bond.xpm, src/res_gtk/bondtype.xpm, src/res_gtk/chain.xpm, src/res_gtk/clipping.xpm, src/res_gtk/dihedral.xpm, src/res_gtk/distance.xpm, src/res_gtk/draw.xpm, src/res_gtk/element.xpm, src/res_gtk/erase.xpm, src/res_gtk/gtk_file_export_dialog.glade, src/res_gtk/gtk_file_export_dialog.gladep, src/res_gtk/gtk_file_import_dialog.glade, src/res_gtk/gtk_file_import_dialog.gladep, src/res_gtk/gtk_geomopt_dialog.glade, src/res_gtk/gtk_geomopt_dialog.gladep, src/res_gtk/gtk_moldyn_dialog.glade, src/res_gtk/gtk_moldyn_dialog.gladep, src/res_gtk/gtk_progress_dialog.glade, src/res_gtk/gtk_progress_dialog.gladep, src/res_gtk/gtk_setup_dialog.glade, src/res_gtk/gtk_setup_dialog.gladep, src/res_gtk/gtk_trajview_dialog.glade, src/res_gtk/gtk_trajview_dialog.gladep, src/res_gtk/invert.xpm, src/res_gtk/measure.xpm, src/res_gtk/molecule.xpm, src/res_gtk/orbit_xy.xpm, src/res_gtk/orbit_z.xpm, src/res_gtk/residue.xpm, src/res_gtk/rotate_xy.xpm, src/res_gtk/rotate_z.xpm, src/res_gtk/select.xpm, src/res_gtk/setup.xpm, src/res_gtk/transl_xy.xpm, src/res_gtk/transl_z.xpm, src/res_gtk/zoom.xpm, src/sscview_wcl.cpp, src/sscview_wcl.h: added the new stuff ; now most of the OpenGL-related code is in a separate libarary called liboglappth. 2006-02-16 13:24 thassine * Makefile.in, aclocal.m4, configure, configure.ac, examples/Makefile.in, examples/transition_state_search/E2-reaction/Makefile.in, examples/transition_state_search/Makefile.in, examples/transition_state_search/SN2-reaction/Makefile.in, examples/transition_state_search/carbocation_rearrangement_hydride_shift/Makefile.in, examples/transition_state_search/carbocation_rearrangement_methide_shift/Makefile.in, examples/transition_state_search/cycloaddition_Diels-Alder/Makefile.in, examples/transition_state_search/sigmatropic_rearrangement_Cope/Makefile.in, examples/transition_state_search/tautomeric_shift_keto_enol/Makefile.in, src/Makefile.am, src/Makefile.in, src/base_app.cpp, src/base_app.h, src/base_wnd.cpp, src/base_wnd.h, src/fileio.cpp, src/ghemicalconfig.h.in, src/gtk_dialog.cpp, src/gtk_dialog.h, src/gtk_project.cpp, src/gtk_project.h, src/ogl_camera.cpp, src/ogl_camera.h, src/ogl_objects.cpp, src/ogl_objects.h, src/ogl_plane.cpp, src/ogl_plane.h, src/ogl_ribbon.cpp, src/ogl_ribbon.h, src/ogl_surface.cpp, src/ogl_surface.h, src/pixmaps, src/project.cpp, src/project.h: removed some old files ; does not compile right now... 2006-01-05 13:07 thassine * GNOME_Ghemical.server, configure, configure.ac, src/Makefile.am, src/Makefile.in: removed the bonobo-related files ; there seems to be no sufficient resources for bonobo stuff. :( 2006-01-05 11:08 thassine * Makefile.in, configure, configure.ac, examples/Makefile.in, examples/transition_state_search/E2-reaction/Makefile.in, examples/transition_state_search/Makefile.in, examples/transition_state_search/SN2-reaction/Makefile.in, examples/transition_state_search/carbocation_rearrangement_hydride_shift/Makefile.in, examples/transition_state_search/carbocation_rearrangement_methide_shift/Makefile.in, examples/transition_state_search/cycloaddition_Diels-Alder/Makefile.in, examples/transition_state_search/sigmatropic_rearrangement_Cope/Makefile.in, examples/transition_state_search/tautomeric_shift_keto_enol/Makefile.in: minor changes. 2006-01-05 11:07 thassine * src/Makefile.am, src/Makefile.in, src/base_app.cpp, src/base_app.h, src/base_wnd.cpp, src/base_wnd.h, src/file_export_dialog.cpp, src/file_export_dialog.glade, src/file_export_dialog.gladep, src/file_export_dialog.h, src/file_import_dialog.cpp, src/file_import_dialog.glade, src/file_import_dialog.gladep, src/file_import_dialog.h, src/geomopt_dialog.cpp, src/geomopt_dialog.glade, src/geomopt_dialog.gladep, src/geomopt_dialog.h, src/ghemicalconfig.h.in, src/glade_dialog.cpp, src/glade_dialog.h, src/gtk_app_main.cpp, src/gtk_app_main.h, src/gtk_dialog.cpp, src/gtk_dialog.h, src/gtk_graphics_view.cpp, src/gtk_graphics_view.h, src/gtk_plot_views.cpp, src/gtk_plot_views.h, src/gtk_project.cpp, src/gtk_project.h, src/gtk_project_view.cpp, src/gtk_project_view.h, src/gtk_views.cpp, src/gtk_views.h, src/moldyn_dialog.cpp, src/moldyn_dialog.glade, src/moldyn_dialog.gladep, src/moldyn_dialog.h, src/mtools.cpp, src/mtools.h, src/ogl_camera.cpp, src/ogl_camera.h, src/ogl_objects.cpp, src/ogl_objects.h, src/ogl_plane.cpp, src/ogl_surface.h, src/progress_dialog.cpp, src/progress_dialog.glade, src/progress_dialog.gladep, src/progress_dialog.h, src/project.cpp, src/project.h, src/setup_dialog.cpp, src/setup_dialog.glade, src/setup_dialog.gladep, src/setup_dialog.h, src/trajview_dialog.cpp, src/trajview_dialog.glade, src/trajview_dialog.gladep, src/trajview_dialog.h, src/views.cpp, src/views.h, src/wnd_client.cpp, src/wnd_client.h: removed some obsolete files ; NEW FILES NOT YET ADDED 2005-12-14 13:45 thassine * Makefile.in, aclocal.m4, configure, examples, examples/.cvsignore, examples/Makefile.in, examples/transition_state_search, examples/transition_state_search/.cvsignore, examples/transition_state_search/E2-reaction, examples/transition_state_search/E2-reaction/.cvsignore, examples/transition_state_search/E2-reaction/Makefile.in, examples/transition_state_search/Makefile.in, examples/transition_state_search/SN2-reaction, examples/transition_state_search/SN2-reaction/.cvsignore, examples/transition_state_search/SN2-reaction/Makefile.in, examples/transition_state_search/carbocation_rearrangement_hydride_shift, examples/transition_state_search/carbocation_rearrangement_hydride_shift/.cvsignore, examples/transition_state_search/carbocation_rearrangement_hydride_shift/Makefile.in, examples/transition_state_search/carbocation_rearrangement_methide_shift, examples/transition_state_search/carbocation_rearrangement_methide_shift/.cvsignore, examples/transition_state_search/carbocation_rearrangement_methide_shift/Makefile.in, examples/transition_state_search/cycloaddition_Diels-Alder, examples/transition_state_search/cycloaddition_Diels-Alder/.cvsignore, examples/transition_state_search/cycloaddition_Diels-Alder/Makefile.in, examples/transition_state_search/sigmatropic_rearrangement_Cope, examples/transition_state_search/sigmatropic_rearrangement_Cope/.cvsignore, examples/transition_state_search/sigmatropic_rearrangement_Cope/Makefile.in, examples/transition_state_search/tautomeric_shift_keto_enol, examples/transition_state_search/tautomeric_shift_keto_enol/.cvsignore, examples/transition_state_search/tautomeric_shift_keto_enol/Makefile.in, src, src/.cvsignore, src/Makefile.in: some makefile stuff added/updated. 2005-12-14 13:30 thassine * Makefile.am, Makefile.in, NEWS, README, aclocal.m4, config.guess, config.sub, configure, configure.ac, depcomp, install-sh, missing, mkinstalldirs: added some missing/new files. 2005-12-14 13:26 thassine * src/Makefile.am, src/Makefile.in, src/base_app.cpp, src/base_app.h, src/base_wnd.cpp, src/base_wnd.h, src/file_export_dialog.cpp, src/file_export_dialog.glade, src/file_export_dialog.gladep, src/file_export_dialog.h, src/file_import_dialog.cpp, src/file_import_dialog.glade, src/file_import_dialog.gladep, src/file_import_dialog.h, src/fileio.cpp, src/geomopt_dialog.cpp, src/geomopt_dialog.glade, src/geomopt_dialog.gladep, src/geomopt_dialog.h, src/ghemicalconfig.h.in, src/gtk_app_main.cpp, src/gtk_app_main.h, src/gtk_dialog.cpp, src/gtk_dialog.h, src/gtk_project.cpp, src/gtk_project.h, src/gtk_views.h, src/moldyn_dialog.cpp, src/moldyn_dialog.glade, src/moldyn_dialog.gladep, src/moldyn_dialog.h, src/mtools.h, src/ogl_camera.cpp, src/ogl_camera.h, src/ogl_objects.cpp, src/ogl_objects.h, src/ogl_plane.cpp, src/ogl_plane.h, src/ogl_ribbon.cpp, src/ogl_ribbon.h, src/ogl_surface.cpp, src/ogl_surface.h, src/progress_dialog.cpp, src/progress_dialog.glade, src/progress_dialog.gladep, src/progress_dialog.h, src/project.cpp, src/project.h, src/setup_dialog.cpp, src/setup_dialog.glade, src/setup_dialog.gladep, src/setup_dialog.h, src/trajview_dialog.cpp, src/trajview_dialog.glade, src/trajview_dialog.gladep, src/trajview_dialog.h, src/views.cpp, src/wnd_client.cpp, src/wnd_client.h: added the renamed source files. 2005-12-14 13:17 thassine * src/camera.cpp, src/camera.h, src/main.cpp, src/main.h, src/objects.cpp, src/objects.h, src/plane.cpp, src/plane.h, src/ribbon.cpp, src/ribbon.h, src/surface.cpp, src/surface.h: removed some renamed source files 2005-12-14 13:14 thassine * src/glade: removed the glade subdir from src 2005-12-14 13:11 thassine * docs, docs/user-docs, docs/user-docs/MD.html, docs/user-docs/MD_viewer.html, docs/user-docs/aa_table.html, docs/user-docs/add_hydrogens.html, docs/user-docs/conf_search_tools.html, docs/user-docs/documentation.css, docs/user-docs/energy_vs_torsion.html, docs/user-docs/filetypes.html, docs/user-docs/formula.html, docs/user-docs/geometry_optimization.html, docs/user-docs/images, docs/user-docs/images/2atoms_bond.png, docs/user-docs/images/2atoms_unbonded.png, docs/user-docs/images/aa_builder_ci.png, docs/user-docs/images/aa_builder_menu.png, docs/user-docs/images/aa_builder_note.png, docs/user-docs/images/aa_builder_w_h.png, docs/user-docs/images/aa_builder_wo_h.png, docs/user-docs/images/add_hydrogens.png, docs/user-docs/images/add_hydrogens_select.png, docs/user-docs/images/change_bond_dialog.png, docs/user-docs/images/change_bond_select.png, docs/user-docs/images/ci_plane.png, docs/user-docs/images/cyclohexane1.png, docs/user-docs/images/cyclohexane2.png, docs/user-docs/images/cyclohexane_optimized.png, docs/user-docs/images/cyclohexane_unoptimized.png, docs/user-docs/images/draw_button.png, docs/user-docs/images/draw_hydrogens.png, docs/user-docs/images/energy_vs_torsion1.png, docs/user-docs/images/energy_vs_torsion2.png, docs/user-docs/images/energy_vs_torsion3.png, docs/user-docs/images/energy_vs_torsion4.png, docs/user-docs/images/enlevdiag.png, docs/user-docs/images/esp-plane_mm.png, docs/user-docs/images/esp-plane_qm.png, docs/user-docs/images/esp-plane_select.png, docs/user-docs/images/esp-plane_select_obj.png, docs/user-docs/images/first_atom.png, docs/user-docs/images/formula.png, docs/user-docs/images/formula_select.png, docs/user-docs/images/geometry_op_dialog.png, docs/user-docs/images/geometry_optimization_select.png, docs/user-docs/images/labels_menu.png, docs/user-docs/images/mainmenu.png, docs/user-docs/images/maintools.png, docs/user-docs/images/md_dialog.png, docs/user-docs/images/modal.png, docs/user-docs/images/new_mm.png, docs/user-docs/images/notebook.png, docs/user-docs/images/optimized_ethane.png, docs/user-docs/images/periodic_button.png, docs/user-docs/images/periodic_table.png, docs/user-docs/images/remove_hydrogens.png, docs/user-docs/images/ribbon.png, docs/user-docs/images/sequence_builder.png, docs/user-docs/images/toplevel.png, docs/user-docs/images/traj_dialog.png, docs/user-docs/images/window.png, docs/user-docs/import_types.html, docs/user-docs/index.html, docs/user-docs/introduction.html, docs/user-docs/labels.html, docs/user-docs/mdi_mode.html, docs/user-docs/measure.html, docs/user-docs/perspective.html, docs/user-docs/references.html, docs/user-docs/ribbon.html, docs/user-docs/sequence_builder.html, docs/user-docs/using_mm.html, docs/user-docs/using_qm.html, docs/user-docs/using_sf.html, docs/user-docs/visualization.html: re-added the user-docs directory, in a new docs directory 2005-12-14 13:09 thassine * examples, examples/2-chlorobutane.gpr, examples/3-phenylpropanal.gpr, examples/Makefile.am, examples/Makefile.in, examples/PeriodicTable.gpr, examples/acetylsalicylic_acid.gpr, examples/alpha-pinene.gpr, examples/bromobenzene.gpr, examples/camphor.gpr, examples/cinnamaldehyde.gpr, examples/cis-2-pentene.gpr, examples/cyclohexane.gpr, examples/dna_AGTC.gpr, examples/naphtalene.gpr, examples/rna_aguc.gpr, examples/transition_state_search, examples/transition_state_search/E2-reaction, examples/transition_state_search/E2-reaction/Makefile.am, examples/transition_state_search/E2-reaction/Makefile.in, examples/transition_state_search/E2-reaction/products.gpr, examples/transition_state_search/E2-reaction/reactants.gpr, examples/transition_state_search/E2-reaction/ts.gpr, examples/transition_state_search/Makefile.am, examples/transition_state_search/Makefile.in, examples/transition_state_search/SN2-reaction, examples/transition_state_search/SN2-reaction/Makefile.am, examples/transition_state_search/SN2-reaction/Makefile.in, examples/transition_state_search/SN2-reaction/products.gpr, examples/transition_state_search/SN2-reaction/reactants.gpr, examples/transition_state_search/SN2-reaction/ts.gpr, examples/transition_state_search/carbocation_rearrangement_hydride_shift, examples/transition_state_search/carbocation_rearrangement_hydride_shift/Makefile.am, examples/transition_state_search/carbocation_rearrangement_hydride_shift/Makefile.in, examples/transition_state_search/carbocation_rearrangement_hydride_shift/products.gpr, examples/transition_state_search/carbocation_rearrangement_hydride_shift/reactants.gpr, examples/transition_state_search/carbocation_rearrangement_hydride_shift/ts.gpr, examples/transition_state_search/carbocation_rearrangement_methide_shift, examples/transition_state_search/carbocation_rearrangement_methide_shift/Makefile.am, examples/transition_state_search/carbocation_rearrangement_methide_shift/Makefile.in, examples/transition_state_search/carbocation_rearrangement_methide_shift/products.gpr, examples/transition_state_search/carbocation_rearrangement_methide_shift/reactants.gpr, examples/transition_state_search/carbocation_rearrangement_methide_shift/ts.gpr, examples/transition_state_search/cycloaddition_Diels-Alder, examples/transition_state_search/cycloaddition_Diels-Alder/Makefile.am, examples/transition_state_search/cycloaddition_Diels-Alder/Makefile.in, examples/transition_state_search/cycloaddition_Diels-Alder/products.gpr, examples/transition_state_search/cycloaddition_Diels-Alder/reactants.gpr, examples/transition_state_search/cycloaddition_Diels-Alder/ts.gpr, examples/transition_state_search/sigmatropic_rearrangement_Cope, examples/transition_state_search/sigmatropic_rearrangement_Cope/Makefile.am, examples/transition_state_search/sigmatropic_rearrangement_Cope/Makefile.in, examples/transition_state_search/sigmatropic_rearrangement_Cope/products.gpr, examples/transition_state_search/sigmatropic_rearrangement_Cope/reactants.gpr, examples/transition_state_search/sigmatropic_rearrangement_Cope/ts.gpr, examples/transition_state_search/tautomeric_shift_keto_enol, examples/transition_state_search/tautomeric_shift_keto_enol/Makefile.am, examples/transition_state_search/tautomeric_shift_keto_enol/Makefile.in, examples/transition_state_search/tautomeric_shift_keto_enol/products.gpr, examples/transition_state_search/tautomeric_shift_keto_enol/reactants.gpr, examples/transition_state_search/tautomeric_shift_keto_enol/ts.gpr: re-added the examples directory 2005-12-14 13:01 thassine * bin: removed bin from CVS 2005-12-14 12:58 thassine * bin/examples: removed examples from CVS 2005-12-14 12:55 thassine * bin/examples/transition_state_search: removing tss examples form CVS 2005-12-14 12:49 thassine * bin/user-docs: remove the user docs from CVS 2005-12-09 18:35 thassine * src/main.cpp: added a missing glutInit() call. 2005-11-29 12:42 thassine * src/fileio.cpp, src/gtk_graphics_view.cpp, src/gtk_project.cpp, src/gtk_project.h, src/gtk_project_view.cpp, src/project.cpp, src/project.h: some new selection-based features were added. 2005-11-10 10:03 thassine * configure, configure.ac: changed the version number to 1.92 after a release. 2005-11-10 09:04 thassine * aclocal.m4, configure, configure.ac: changed the version numbmer to 1.91 ; released. 2005-11-03 23:08 hutchisn * ., .cvsignore: Updated to make sure all configure / autoconf temporary files are ignored. 2005-11-03 23:08 hutchisn * src, src/.cvsignore, src/filetrans.cpp, src/filetrans.h: Changes to use Open Babel 2.0 for import / export. (May have memory leaks -- haven't checked thoroughly yet.) 2005-11-02 12:29 thassine * src/gtk_graphics_view.cpp, src/gtk_plot_views.cpp, src/gtk_plot_views.h, src/gtk_project.cpp, src/gtk_project.h, src/gtk_views.cpp, src/gtk_views.h, src/project.cpp, src/project.h, src/views.cpp, src/views.h: started adding a secondary structure constraints view. 2005-10-13 12:15 thassine * src/project.cpp: bugfix : plotting views are closed when a project is closed. earlier this was forgotten, which easily lead to program crashes. still not OK yet since the view windows are not closed ; no way to close them from project view either. leaves orphaned windows behind now but should not crash anymore. 2005-10-11 10:36 thassine * src/main.cpp: minor changes in main.cpp ; do not allow the menubar and toolbar to expand when the main window is resized. 2005-10-08 15:14 thassine * configure, configure.ac, src/camera.cpp, src/plane.cpp, src/plane.h, src/project.cpp, src/project.h, src/surface.cpp, src/surface.h: OpenGL bugfixes on 64-bit platforms 2005-09-28 00:32 hutchisn * TODO: Added request for polysaccharide builder 2005-09-27 09:37 thassine * src/objects.h: just some minor changes to adapt for different compilers. 2005-08-24 09:56 thassine * src/fileio.cpp, src/glade/setup_dialog.cpp, src/project.cpp: the mm_sf model type was removed from lib. 2005-08-23 11:30 thassine * aclocal.m4, configure, src/gtk_project.h: small fixes added (should work with gcc-4 now.) 2005-07-14 11:43 thassine * src/main.cpp, src/main.h, src/project.cpp: added the -f and -i command line options for opening a file and importing a file. 2005-07-06 09:04 thassine * aclocal.m4, configure, configure.ac, src/appconfig.h.in, src/appdefine.h, src/camera.cpp, src/camera.h, src/color.h, src/filetrans.h, src/ghemicalconfig.h.in, src/glade/file_export_dialog.h, src/glade/file_import_dialog.h, src/glade/geomopt_dialog.h, src/glade/moldyn_dialog.h, src/glade/progress_dialog.h, src/glade/setup_dialog.h, src/glade/trajview_dialog.h, src/glade_dialog.h, src/gtk_dialog.h, src/gtk_graphics_view.cpp, src/gtk_graphics_view.h, src/gtk_plot_views.cpp, src/gtk_plot_views.h, src/gtk_project.h, src/gtk_project_view.h, src/gtk_views.h, src/main.h, src/mtools.h, src/objects.cpp, src/objects.h, src/plane.cpp, src/plane.h, src/project.h, src/ribbon.h, src/spline.h, src/surface.h, src/views.cpp, src/views.h: config headers changed to avoid multiple PACKAGE definitions. 2005-07-05 09:23 thassine * INSTALL, aclocal.m4, configure, src/Doxyfile, src/fileio.cpp, src/objects.h: now compiles with g++-3.4 2005-07-01 13:00 thassine * CHANGES, ChangeLog, INSTALL, aclocal.m4, configure, configure.ac, src/appdefine.h, src/camera.h, src/color.h, src/filetrans.h, src/glade_dialog.h, src/gtk_dialog.h, src/gtk_graphics_view.cpp, src/gtk_graphics_view.h, src/gtk_plot_views.h, src/gtk_project.h, src/gtk_project_view.h, src/gtk_views.h, src/main.h, src/mtools.h, src/objects.h, src/plane.h, src/project.h, src/ribbon.h, src/spline.h, src/surface.h, src/views.h: changes for a release 1.90 ; there remains an unsolved conflict with OpenBabel since superimpose class is perhaps mixed with a superimpose() function in OB ; but this needs to be studied later. 2005-06-30 13:04 thassine * Makefile.in, acconfig.h, acinclude.m4, aclocal.m4, configure, configure.ac, configure.in, src/Makefile.in, src/appconfig.h.in, src/filetrans.cpp, src/filetrans.h, src/glade/Makefile.in, src/glade/file_export_dialog.cpp, src/glade/file_import_dialog.cpp, src/gtk_graphics_view.cpp, src/project.cpp, src/project.h: a lot of changes in configuration scripts. 2005-06-23 13:27 thassine * src/glade/setup_dialog.cpp, src/glade/setup_dialog.glade, src/project.cpp, src/ribbon.cpp: the lib/app interface has changed somewhat. 2005-06-20 09:34 thassine * src/glade/geomopt_dialog.glade, src/glade/progress_dialog.cpp, src/glade/progress_dialog.h, src/gtk_project.cpp, src/gtk_project.h, src/project.cpp: added progress dialogs for GO, MD, random search. 2005-06-17 08:39 thassine * src/gtk_project.cpp, src/project.cpp, src/project.h: bugfix added to GO/MD initialization code. 2005-06-14 10:28 thassine * src/glade/file_export_dialog.cpp, src/glade/file_import_dialog.cpp, src/glade/geomopt_dialog.cpp, src/glade/moldyn_dialog.cpp, src/glade/progress_dialog.cpp, src/glade/progress_dialog.glade, src/glade/progress_dialog.h, src/glade/setup_dialog.cpp, src/glade/trajview_dialog.cpp, src/gtk_dialog.cpp, src/gtk_project.cpp, src/gtk_project.h, src/project.cpp, src/project.h: started converting GO and MD into multithreaded versions ; added the files that left out yesterday. 2005-06-13 10:19 thassine * src/glade/Makefile.in, src/gtk_project.cpp, src/gtk_project.h, src/project.cpp, src/project.h: the Random Search is now completely multi-threaded. 2005-06-13 07:16 thassine * src/Makefile.in, src/gtk_graphics_view.cpp, src/gtk_views.cpp, src/main.cpp, src/project.cpp, src/project.h: added an initial framework for multithreading ; switch off from the beginning of project.h if needed (the ENABLE_THREADS macro). 2005-06-09 15:33 thassine * src/gtk_project.cpp, src/gtk_project.h: now the text buffer scrolling works and is smooth but does not update for example when lengthy calculations ; add threading? 2005-06-09 12:47 thassine * src/gtk_dialog.cpp, src/gtk_dialog.h, src/gtk_project.cpp, src/gtk_project.h: some missing files added ; the text widget scrolling problems have now a partial solution that works in most cases but flickers and is slow. 2005-06-09 11:16 thassine * src/fileio.cpp, src/glade/file_export_dialog.cpp, src/glade/file_export_dialog.glade, src/glade/file_export_dialog.h, src/glade/file_import_dialog.cpp, src/glade/file_import_dialog.glade, src/glade/file_import_dialog.h, src/glade/geomopt_dialog.cpp, src/glade/geomopt_dialog.glade, src/glade/moldyn_dialog.cpp, src/glade/moldyn_dialog.glade, src/glade/moldyn_dialog.h, src/glade/setup_dialog.cpp, src/glade/setup_dialog.glade, src/glade/trajview_dialog.cpp, src/project.cpp, src/project.h: fixed the glade dialogs ; the file i/o should now work with openbabel-1.100.2 2005-06-08 08:49 thassine * src/main.cpp, src/project.cpp, src/ribbon.cpp, src/views.cpp: minor fixes added, now in sync with the lib. 2005-05-24 12:00 thassine * src/gtk_plot_views.cpp, src/gtk_plot_views.h, src/gtk_project_view.cpp, src/gtk_project_view.h, src/gtk_views.h, src/project.cpp, src/project.h, src/views.cpp, src/views.h: plotting view popup menus should work now ; TSS broken? 2005-05-19 10:46 thassine * src/gtk_graphics_view.cpp, src/gtk_project_view.cpp, src/gtk_project_view.h: the project view popup menus should work now. 2005-05-17 09:11 thassine * src/gtk_project_view.cpp, src/gtk_project_view.h: did the project view a bit further. 2005-05-16 11:12 thassine * src/glade/file_export_dialog.cpp, src/glade/file_export_dialog.h, src/glade/file_import_dialog.cpp, src/glade/file_import_dialog.h, src/glade/setup_dialog.cpp, src/glade/setup_dialog.h, src/glade/trajview_dialog.cpp, src/glade/trajview_dialog.h, src/gtk_graphics_view.cpp, src/gtk_graphics_view.h, src/gtk_plot_views.cpp, src/gtk_plot_views.h, src/gtk_project_view.cpp, src/gtk_project_view.h, src/gtk_views.cpp, src/gtk_views.h, src/main.cpp, src/main.h, src/project.h, src/views.h: class name changes done ; gnome -> gtk 2005-05-16 09:30 thassine * src/Makefile.in, src/glade/file_export_dialog.h, src/glade/file_import_dialog.h, src/glade/setup_dialog.h, src/glade/trajview_dialog.h, src/gnome_dialog.cpp, src/gnome_dialog.h, src/gnome_project.cpp, src/gnome_project.h, src/gtk_project_view.h, src/gtk_views.cpp, src/gtk_views.h, src/main.h: some changes in filenames ; converted gnome -> gtk 2005-05-13 12:49 thassine * src/gnome_project.cpp, src/gnome_project.h, src/gtk_graphics_view.cpp, src/project.cpp: continued porting the popup menus in GTK2 ; the graphics view menu now complete. 2005-05-12 15:22 thassine * src/glade/setup_dialog.cpp, src/glade/setup_dialog.glade: the new setup dialog should more or less work now. 2005-05-11 15:16 thassine * src/glade/setup_dialog.cpp, src/glade/setup_dialog.glade, src/glade/setup_dialog.h: added some improvements to the setup dialog ; now works initially. 2005-05-06 11:55 thassine * src/glade/file_import_dialog.cpp, src/gnome_project.cpp, src/project.cpp: now in synch with the library. 2005-05-03 12:57 thassine * src/glade/Makefile.in, src/glade/setup_dialog.cpp, src/glade/setup_dialog.glade, src/glade/setup_dialog.h, src/glade/setup_druid.cpp, src/glade/setup_druid.glade, src/glade/setup_druid.h, src/gnome_project.cpp, src/main.cpp: removed the setup druid (gnome-1 based) and started adding a setup dialog. 2005-04-28 10:28 thassine * src/project.cpp: just adapt in slight changes in the lib side. 2005-04-26 08:26 thassine * src/gnome_project.cpp, src/project.cpp: some changes in libghemical ; sync. 2005-04-22 13:45 thassine * src/appdefine.h, src/gnome_project.cpp, src/gnome_project.h, src/gtk_graphics_view.cpp, src/gtk_graphics_view.h, src/main.cpp, src/main.h, src/project.cpp, src/project.h: added new popup menu items ; tweaked the stereo adjustment box ; bugfixes. 2005-04-21 12:46 thassine * aclocal.m4, configure, configure.in, src/Makefile.in, src/appconfig.h.in, src/appdefine.h, src/gnome_project.cpp, src/gtk_views.cpp, src/main.cpp, src/notice.cpp, src/notice.h: some new stuff added ; the main menu now works except Help/Help item. 2005-04-21 08:57 thassine * aclocal.m4, configure, configure.in, src/Makefile.in, src/glade/Makefile.in, src/glade/file_export_dialog.cpp, src/glade/file_export_dialog.glade, src/glade/file_import_dialog.cpp, src/glade/file_import_dialog.glade, src/glade/geomopt_dialog.cpp, src/glade/moldyn_dialog.cpp, src/glade/moldyn_dialog.glade, src/glade/setup_druid.cpp, src/glade/setup_druid.h, src/gnome_project.cpp, src/gnome_project.h, src/gtk_graphics_view.cpp, src/gtk_graphics_view.h, src/gtk_plot_views.cpp, src/gtk_plot_views.h, src/gtk_project_view.cpp, src/gtk_project_view.h, src/gtk_views.cpp, src/gtk_views.h, src/main.cpp, src/main.h, src/project.cpp, src/project.h, src/surface.h, src/views.cpp, src/views.h: added the next round of changes ; compiles and works but the menus are still incomplete. 2005-04-15 13:51 thassine * src/Makefile.in, src/appconfig.h.in, src/fileio.cpp, src/gnome_dialog.h, src/gnome_project.cpp, src/gnome_views.cpp, src/gnome_views.h, src/main.cpp, src/main.h, src/notice.cpp: started adding the popup menu for gtk_graphics_view. 2005-04-15 11:36 thassine * src/gnome_dialog.cpp, src/gnome_project.cpp, src/gnome_project.h, src/gnome_views.cpp, src/gnome_views.h, src/main.cpp, src/main.h, src/pixmaps/bondtype.xpm, src/pixmaps/measure.xpm, src/pixmaps/orb_xy.xpm, src/pixmaps/orb_z.xpm, src/pixmaps/orbit_xy.xpm, src/pixmaps/orbit_z.xpm, src/pixmaps/rot_xy.xpm, src/pixmaps/rot_z.xpm, src/pixmaps/rotate_xy.xpm, src/pixmaps/rotate_z.xpm, src/pixmaps/setup.xpm, src/pixmaps/trans_xy.xpm, src/pixmaps/trans_z.xpm, src/pixmaps/transl_xy.xpm, src/pixmaps/transl_z.xpm: major changes in GUI code ; uses GtkUIManager now (GTK+-2.4) ; menus still not ready yet. 2005-03-23 14:06 thassine * src/gnome_dialog.cpp, src/gnome_dialog.h, src/gnome_project.cpp, src/gnome_views.cpp, src/main.cpp, src/main.h: bad problems because the popup menus still are generated using gnome-1 code in a gtk2 app ; crashes but started to add fixes ; still not OK. 2005-03-21 09:37 thassine * Makefile.in, configure, configure.in, src/Makefile.in, src/appconfig.h.in, src/glade_dialog.cpp, src/gnome_dialog.cpp, src/gnome_dialog.h, src/gnome_project.cpp, src/main.cpp, src/main.h, src/views.h: added many improvements ; the GTK2 version is now built by default (--enable-bonobo changes this) and it's quite usable now... 2005-02-03 12:16 thassine * src/spline.cpp: minor changes to make it compile in FC3. 2004-12-23 14:12 thassine * bin/ghemical-ui.xml, configure, configure.in, src/appconfig.h.in, src/ghemical-server.cpp, src/ghemical-server.h, src/ghemical.cpp, src/ghemical.h, src/gnome_project.cpp, src/gnome_project.h, src/main.cpp, src/main.h, src/simple_test/container-ui.xml, src/simple_test/container.cpp: continued to implement separate gtk+/bonobo modes. 2004-12-23 11:33 thassine * GNOME_Ghemical.server, Makefile.in, src/Makefile.in, src/gnome_project.cpp, src/gnome_project.h, src/simple_test/Makefile, src/simple_test/README, src/simple_test/container-ui.xml, src/simple_test/container.c, src/simple_test/container.cpp, src/simple_test/container.h: started creating a single ghemical/ghemical-server executable that uses either gtk+ or bonobo. 2004-12-21 14:46 thassine * src/camera.cpp, src/gnome_project.cpp, src/gnome_views.cpp, src/gnome_views.h, src/project.cpp, src/project.h: fixes added for stereo display modes (especially red/blue mode). 2004-12-10 15:22 thassine * configure, configure.in, src/gnome_views.cpp, src/mtools.cpp, src/project.cpp, src/project.h: many small fixes added. 2004-09-06 10:51 thassine * configure, configure.in: configure.in updated (still needs similar fixes ; see also Makefiles. 2004-08-30 09:36 thassine * src/color.h, src/fileio.cpp, src/filetrans.cpp, src/glade/geomopt_dialog.h, src/glade/moldyn_dialog.h, src/glade/setup_druid.cpp, src/gnome_dialog.cpp, src/gnome_project.cpp, src/gnome_project.h, src/gnome_views.cpp, src/notice.cpp, src/objects.cpp, src/objects.h, src/project.cpp, src/project.h, src/ribbon.cpp, src/spline.h, src/views.cpp: changed the include directory of libghemical. 2004-08-25 11:28 thassine * src/appdefine.h, src/project.cpp, src/project.h: minor changes in labels etc (not yet same as in BBB). 2004-05-13 11:51 thassine * acinclude.m4, aclocal.m4, configure, configure.in, src/glade/setup_druid.cpp: libmopac7, OpenBabel and libghemical now properly detected in configure.in 2004-03-17 14:26 thassine * Makefile.in: changed VERSION into APPVERSION in Makefile.in 2004-02-18 11:54 thassine * Makefile.in, configure, configure.in, src/Makefile.in, src/appconfig.h.in, src/glade/Makefile.in: now properly reads settings from libghemical.pc using pkg-config. 2004-02-17 14:49 thassine * Makefile.in, configure, configure.in, openbabel, src/Makefile.in, src/glade/Makefile.in, src/project.cpp: now uses an external OpenBabel library ; make install should now properly install both executables and files. 2004-02-11 09:40 thassine * src/fileio.cpp, src/project.h: added setlocale() calls into fileio.cpp ; also added formal charges into the file format (version string now 111) 2004-02-11 09:06 thassine * src/Makefile.in, src/gnome_project.cpp, src/gnome_project.h, src/project.cpp: added -lmopac7 into src/Makefile.in (temporarily) and other minor changes. 2003-11-06 12:22 thassine * src/fileio.cpp: a minor fix in file-IO; still need to save secondary structures for SF? 2003-10-10 08:53 thassine * src/gnome_project.cpp, src/gnome_views.cpp, src/gnome_views.h: added a new (experimental) menu item. 2003-10-03 13:29 thassine * src/project.cpp: fixed a drawing tool bug. 2003-09-12 10:34 thassine * src/gnome_project.cpp, src/plane.cpp, src/plane.h, src/project.cpp, src/surface.cpp, src/surface.h: improved planes/surfaces ; now adapt better for charged molecules. 2003-09-10 12:04 thassine * src/appdefine.h, src/gnome_project.cpp, src/gnome_project.h, src/project.cpp: a rendering bug was fixed, and LABEL_RESIDUE was implemented. 2003-09-01 09:43 thassine * src/project.cpp: added some bugfixes/comments 2003-08-08 06:55 thassine * src/fileio.cpp, src/gnome_project.cpp, src/project.cpp, src/project.h: the Solvate??() functions have changed. 2003-08-01 11:05 thassine * src/glade/file_export_dialog.cpp, src/glade/file_import_dialog.cpp, src/glade/geomopt_dialog.cpp, src/glade/moldyn_dialog.cpp: fixed the dialogs by changing gnome_dialog -> gtk_dialog. 2003-07-30 10:11 thassine * src/camera.cpp, src/gnome_dialog.cpp, src/gnome_project.cpp, src/gnome_project.h, src/project.cpp, src/project.h: a few more changes added ; now the bonobo-component seems to work pretty well and is usable, but the toolbar buttons (mouse tool, element, bondtype) are still missing. 2003-07-29 13:48 thassine * src/camera.cpp, src/camera.h, src/gnome_views.cpp, src/gnome_views.h, src/objects.cpp, src/objects.h, src/plane.cpp, src/plane.h, src/project.cpp, src/project.h, src/ribbon.cpp, src/ribbon.h, src/surface.cpp, src/surface.h, src/views.cpp, src/views.h: the project_view now works reasonably well ; also popup-menus added to project_view pages. 2003-07-24 10:12 thassine * src/gnome_project.cpp, src/gnome_project.h, src/gnome_views.cpp, src/gnome_views.h, src/project.cpp, src/project.h, src/views.h: the popup-menu, text buffer, and the project view seems to work quite reasonably now ; in project view only atoms and bonds pages are ok, others still have many problems. 2003-07-15 12:18 thassine * src/gnome_project.cpp, src/gnome_project.h, src/gnome_views.cpp, src/gnome_views.h, src/project.cpp, src/project.h, src/views.cpp, src/views.h: the message log now works (more or less) and project_view work started. 2003-07-14 09:20 thassine * src/glade/file_export_dialog.glade, src/glade/file_import_dialog.glade, src/glade/geomopt_dialog.glade, src/glade/moldyn_dialog.glade, src/glade/setup_druid.glade, src/glade/trajview_dialog.glade, src/gnome_dialog.cpp, src/gnome_project.cpp, src/gnome_project.h, src/gnome_views.cpp, src/gnome_views.h: the .glade files are updated for libglade-2 (using libglade-convert) glade-dialogs are displayed correctly but handlers still not updated ; the gnome-dialogs should work also now ; added (temporary) CURRENT submenu into ppoup-menu for accesssing mouse tool and other settings. 2003-07-12 09:28 thassine * GNOME_Ghemical.server: added the .server file (bonobo-activation). 2003-07-11 13:01 thassine * bin/ghemical-ui.xml, configure, configure.in, src/Makefile.in, src/fileio.cpp, src/filetrans.cpp, src/filetrans.h, src/ghemical-server.cpp, src/ghemical-server.h, src/ghemical.cpp, src/ghemical.h, src/glade/Makefile.in, src/glade/geomopt_dialog.cpp, src/glade/moldyn_dialog.cpp, src/glade/setup_druid.cpp, src/glade_dialog.cpp, src/gnome_dialog.cpp, src/gnome_project.cpp, src/gnome_project.h, src/gnome_views.cpp, src/gnome_views.h, src/main.cpp, src/main.h, src/notice.cpp, src/notice.h, src/plane.h, src/project.cpp, src/project.h, src/ribbon.cpp, src/ribbon.h, src/simple_test, src/simple_test/Makefile, src/simple_test/container-ui.xml, src/simple_test/container.c, src/surface.h, src/views.cpp, src/views.h: started porting to gnome2 and converting into bonobo. 2003-06-13 10:18 thassine * AUTHORS, acconfig.h, src/Doxyfile, src/camera.cpp, src/gnome_project.cpp, src/project.cpp: more checks added for atom_list sorting. also misc cleanups. 2003-06-12 13:12 thassine * bin/examples/transition_state_search, bin/examples/transition_state_search/E2-reaction, bin/examples/transition_state_search/E2-reaction/products.gpr, bin/examples/transition_state_search/E2-reaction/reactants.gpr, bin/examples/transition_state_search/E2-reaction/ts.gpr, bin/examples/transition_state_search/SN2-reaction, bin/examples/transition_state_search/SN2-reaction/products.gpr, bin/examples/transition_state_search/SN2-reaction/reactants.gpr, bin/examples/transition_state_search/SN2-reaction/ts.gpr, bin/examples/transition_state_search/carbocation_rearrangement_hydride_shift, bin/examples/transition_state_search/carbocation_rearrangement_hydride_shift/products.gpr, bin/examples/transition_state_search/carbocation_rearrangement_hydride_shift/reactants.gpr, bin/examples/transition_state_search/carbocation_rearrangement_hydride_shift/ts.gpr, bin/examples/transition_state_search/carbocation_rearrangement_methide_shift, bin/examples/transition_state_search/carbocation_rearrangement_methide_shift/products.gpr, bin/examples/transition_state_search/carbocation_rearrangement_methide_shift/reactants.gpr, bin/examples/transition_state_search/carbocation_rearrangement_methide_shift/ts.gpr, bin/examples/transition_state_search/cycloaddition_Diels-Alder, bin/examples/transition_state_search/cycloaddition_Diels-Alder/products.gpr, bin/examples/transition_state_search/cycloaddition_Diels-Alder/reactants.gpr, bin/examples/transition_state_search/cycloaddition_Diels-Alder/ts.gpr, bin/examples/transition_state_search/sigmatropic_rearrangement_Cope, bin/examples/transition_state_search/sigmatropic_rearrangement_Cope/products.gpr, bin/examples/transition_state_search/sigmatropic_rearrangement_Cope/reactants.gpr, bin/examples/transition_state_search/sigmatropic_rearrangement_Cope/ts.gpr, bin/examples/transition_state_search/tautomeric_shift_keto_enol, bin/examples/transition_state_search/tautomeric_shift_keto_enol/products.gpr, bin/examples/transition_state_search/tautomeric_shift_keto_enol/reactants.gpr, bin/examples/transition_state_search/tautomeric_shift_keto_enol/ts.gpr, src/gnome_views.cpp, src/gnome_views.h, src/project.cpp, src/views.cpp, src/views.h: added imrovements to transition_state_search + other search tools, and added examples for TSS. 2003-06-11 11:06 thassine * src/glade/setup_druid.cpp, src/gnome_project.cpp, src/gnome_project.h, src/gnome_views.cpp, src/gnome_views.h, src/project.cpp, src/project.h, src/views.cpp, src/views.h: added transition_state_search and stationary_state_search ; user-docs and examples will follow in a few days. 2003-05-19 07:09 thassine * src/project.cpp: some debugging-label options added. 2003-05-13 13:44 thassine * src/gnome_project.cpp: removed some redundant DefineSecondaryStructure() runs. 2003-05-12 09:13 thassine * src/project.cpp, src/ribbon.cpp, src/ribbon.h: minor changes in ribbon object. 2003-04-29 10:22 thassine * src/gnome_project.cpp, src/project.cpp, src/project.h, src/ribbon.cpp: many changes in lib, adaptaptations to those added. 2003-04-17 07:37 thassine * src/gnome_project.cpp: added better defaults for glade dialogs. 2003-04-16 13:46 thassine * src/glade/moldyn_dialog.cpp, src/glade/moldyn_dialog.glade, src/glade/moldyn_dialog.h, src/glade/setup_druid.cpp, src/glade/setup_druid.glade, src/gnome_project.cpp, src/gnome_views.cpp, src/gnome_views.h, src/project.cpp: many small changes (including trajectory reading). 2003-04-10 14:02 thassine * Makefile.in, configure, configure.in, src/appconfig.h.in, src/appdefine.h, src/gnome_project.cpp, src/gnome_project.h, src/project.cpp: changes in configure script (now tested to work with --enable-mpqc). 2003-04-02 06:14 thassine * src/ribbon.cpp: changes in ribbon due to changes in atom class. 2003-03-07 11:37 thassine * src/fileio.cpp: a minor addition to fileio.cpp 2003-03-07 09:11 thassine * src/fileio.cpp: the functions in fileio.cpp now handle data using member functions, not direclty (so that they now are more portable). 2003-03-05 12:20 thassine * src/gnome_project.cpp, src/main.cpp: added some changes related to gcc-3.2 2003-02-14 14:51 thassine * src/fileio.cpp: just cleanups, no real changes. 2003-02-14 08:02 thassine * src/project.cpp: sf virtual bonds now rendered also using wireframes. 2003-02-06 14:53 thassine * src/gnome_project.cpp, src/main.cpp, src/notice.cpp, src/project.cpp: many changes; for example added tool for adding solvent (not ready yet). 2003-02-03 09:54 thassine * src/gnome_project.cpp, src/gnome_project.h: added tools for solvation (using H2O). 2003-01-31 12:06 thassine * src/filetrans.cpp, src/project.cpp, src/project.h: some bugfixes were added; mostly because of changes in model::GetAtomCount() and engine::GetAtomCount(). 2003-01-30 08:31 thassine * src/Makefile.in, src/fileio.cpp, src/glade/Makefile.in, src/gnome_project.cpp, src/project.cpp, src/project.h: changes in SF-stuff rendering and file operations. 2003-01-27 13:45 thassine * src/fileio.cpp, src/glade/setup_druid.cpp, src/project.cpp, src/project.h, src/ribbon.cpp: some additions to graphics code (how the new flags work). 2003-01-23 13:02 thassine * src/camera.cpp, src/camera.h, src/gnome_project.cpp, src/gnome_views.cpp, src/gnome_views.h, src/main.cpp, src/main.h, src/mtools.cpp, src/mtools.h, src/pixmaps/clipping.xpm, src/project.cpp, src/project.h, src/views.cpp, src/views.h: added a new clipping mtool, the selections by atm/res/chn/mol is added, and a new tool delete selected atoms is added. 2003-01-22 11:25 thassine * Makefile.in: make install also works now. 2003-01-22 11:11 thassine * src, src/.cvsignore: minor cleanups added. 2003-01-22 11:06 thassine * Makefile.in, configure, configure.in, src/Makefile.in, src/appconfig.h.in, src/appdefine.h, src/camera.cpp, src/camera.h, src/color.h, src/config.h.in, src/fileio.cpp, src/filetrans.cpp, src/filetrans.h, src/glade, src/glade/.cvsignore, src/glade/Makefile.in, src/glade/README, src/glade/file_export_dialog.cpp, src/glade/file_export_dialog.glade, src/glade/file_export_dialog.h, src/glade/file_import_dialog.cpp, src/glade/file_import_dialog.glade, src/glade/file_import_dialog.h, src/glade/geomopt_dialog.cpp, src/glade/geomopt_dialog.glade, src/glade/geomopt_dialog.h, src/glade/moldyn_dialog.cpp, src/glade/moldyn_dialog.glade, src/glade/moldyn_dialog.h, src/glade/setup_druid.cpp, src/glade/setup_druid.glade, src/glade/setup_druid.h, src/glade/trajview_dialog.cpp, src/glade/trajview_dialog.glade, src/glade/trajview_dialog.h, src/glade_dialog.cpp, src/glade_dialog.h, src/gnome_dialog.cpp, src/gnome_dialog.h, src/gnome_project.cpp, src/gnome_project.h, src/gnome_views.cpp, src/gnome_views.h, src/main.cpp, src/main.h, src/mtools.cpp, src/mtools.h, src/notice.cpp, src/notice.h, src/objects.cpp, src/objects.h, src/pixmaps, src/pixmaps/.cvsignore, src/pixmaps/angle.xpm, src/pixmaps/bond.xpm, src/pixmaps/chain.xpm, src/pixmaps/dihedral.xpm, src/pixmaps/distance.xpm, src/pixmaps/draw.xpm, src/pixmaps/element.xpm, src/pixmaps/erase.xpm, src/pixmaps/invert.xpm, src/pixmaps/molecule.xpm, src/pixmaps/orb_xy.xpm, src/pixmaps/orb_z.xpm, src/pixmaps/residue.xpm, src/pixmaps/rot_xy.xpm, src/pixmaps/rot_z.xpm, src/pixmaps/select.xpm, src/pixmaps/trans_xy.xpm, src/pixmaps/trans_z.xpm, src/pixmaps/zoom.xpm, src/plane.cpp, src/plane.h, src/project.cpp, src/project.h, src/ribbon.cpp, src/ribbon.h, src/spline.cpp, src/spline.h, src/surface.cpp, src/surface.h, src/views.cpp, src/views.h: added the missing files; some changes have happened in the filenames. 2003-01-21 10:05 thassine * bin/parameters: removed bin/prameters since it is now contained in libghemical. 2003-01-20 14:08 thassine * configure, configure.in: many changes all over the tree; does not compile yet... 2003-01-20 09:22 thassine * src/graphics, src/target3: moved the contents of src/graphics and src/target3 to src/. 2003-01-20 09:17 thassine * src/target3/pixmaps: moved the src/target3/pixmaps to src/pixmaps. 2003-01-20 09:13 thassine * Makefile.in, src/target3/glade: moved the /src/target3/glade to /src/glade. 2003-01-20 09:05 thassine * src/common: removed the common-directory (now in libghemical). 2003-01-20 08:50 thassine * BUGLIST, Makefile.in, PROJECT, configure.in, miniMOPAC, src/Makefile.OLD, src/common/Makefile.in, src/graphics/Makefile.in, src/some-extra-files, src/target1, src/target2, src/target3/Makefile.in, src/target3/glade/Makefile.in: some directories removed; this stuff is either moved into the new libghemical library, or (target1/target2) is discarded. 2003-01-15 15:35 thassine * src/common/matrix.h: added matrix.h back (from v1.0 source tree). 2003-01-03 11:11 thassine * src/common/utility.cpp, src/common/utility.h: superimpose is no longer a virtual class; only one class needed since there's only one model class. 2003-01-02 13:55 thassine * src/common/moldyn.h: minor improvements to MD. 2002-12-12 07:34 thassine * src/common/model.cpp: some extra checks were added (for simplified force field, does not affect all-atom stuff). 2002-12-11 13:12 thassine * src/common/model.cpp, src/common/seqbuild.cpp: bugfix; adding ribbons re-ordered the atoms (via seqbuild::Identify()) but this is now fixed. 2002-12-09 09:01 thassine * src/common/eng1_qm_mopac.cpp, src/common/eng1_qm_mpqc.cpp, src/target3/glade/Makefile.in: added a bugfix (now builds with --enable-mpqc) and added some comments about MPQC/MOPAC output. 2002-12-05 11:44 thassine * configure, configure.in, src/common/define.h: changed the version number to 1.51 2002-12-04 07:47 thassine * CHANGES: updated the changelog 2002-12-04 07:45 thassine * INSTALL, bin/user-docs/images/aa_builder_ci.png, bin/user-docs/images/aa_builder_menu.png, bin/user-docs/images/aa_builder_note.png, bin/user-docs/images/aa_builder_w_h.png, bin/user-docs/images/aa_builder_wo_h.png, bin/user-docs/images/ci_plane.png, bin/user-docs/images/ribbon.png, bin/user-docs/ribbon.html, ghemical.spec: final fixes before release as v1.50 2002-12-03 07:50 thassine * Makefile.in: minor fixes to make install. 2002-12-03 07:42 thassine * bin/user-docs/geometry_optimization.html, bin/user-docs/images/geometry_opimization_console.png, bin/user-docs/images/sequence_builder_console.png, bin/user-docs/index.html, bin/user-docs/introduction.html, bin/user-docs/measure.html, bin/user-docs/references.html, bin/user-docs/sequence_builder.html, bin/user-docs/using_mm.html, bin/user-docs/using_qm.html, bin/user-docs/using_sf.html, bin/user-docs/visualization.html: added the improved docs from Christopher also here. 2002-11-22 09:02 thassine * ., .cvsignore, miniMOPAC, miniMOPAC/.cvsignore, openbabel, openbabel/.cvsignore, openbabel/aromatic.h, openbabel/aromatic.txt, openbabel/extable.h, openbabel/extable.txt, src/common/model.cpp, src/target3/glade, src/target3/glade/.cvsignore: synchronized openbabel with the v1.0 tree, and added a notice about incompleteness of the file format. 2002-11-20 15:54 thassine * bin/examples, bin/examples/2-chlorobutane.gpr, bin/examples/3-phenylpropanal.gpr, bin/examples/PeriodicTable.gpr, bin/examples/acetylsalicylic_acid.gpr, bin/examples/alpha-pinene.gpr, bin/examples/bromobenzene.gpr, bin/examples/camphor.gpr, bin/examples/cinnamaldehyde.gpr, bin/examples/cis-2-pentene.gpr, bin/examples/cyclohexane.gpr, bin/examples/naphtalene.gpr: added also the new example files. 2002-11-20 15:53 thassine * bin/examples, openbabel/extable.h, openbabel/extable.txt, openbabel/ghemical.cpp, src/common/model.cpp, src/common/model.h, src/common/oldfiles.cpp, src/common/tab_mm_prmfit.cpp, src/graphics/project.cpp, src/target1/t1m_param_mm_cpp.h, src/target1/t1main.cpp, src/target3/t3dialog.cpp, src/target3/t3main.cpp, src/target3/t3project.cpp, src/target3/t3project.h: the file format detection is now fixed; now can read the current (.gpr) and old (.mm1gp) v1.0 files. 2002-11-20 10:38 thassine * Makefile.in: make install now installs the docs correctly. 2002-11-14 13:00 thassine * bin/user-docs/MD.html, bin/user-docs/MD_viewer.html, bin/user-docs/aa_table.html, bin/user-docs/add_hydrogens.html, bin/user-docs/basic_mm.html, bin/user-docs/conf_search_tools.html, bin/user-docs/energy_vs_torsion.html, bin/user-docs/enlevdiag.jpg, bin/user-docs/filetypes.html, bin/user-docs/formula.html, bin/user-docs/geometry_optimization.html, bin/user-docs/images/energy_vs_torsion1.png, bin/user-docs/images/energy_vs_torsion2.png, bin/user-docs/images/energy_vs_torsion3.png, bin/user-docs/images/energy_vs_torsion4.png, bin/user-docs/images/enlevdiag.png, bin/user-docs/images/esp-plane_mm.png, bin/user-docs/images/esp-plane_qm.png, bin/user-docs/images/esp-plane_select.png, bin/user-docs/images/esp-plane_select_obj.png, bin/user-docs/index.html, bin/user-docs/labels.html, bin/user-docs/mdi_mode.html, bin/user-docs/measure.html, bin/user-docs/perspective.html, bin/user-docs/references.html, bin/user-docs/sequence_builder.html, bin/user-docs/using_cs_tools.html, bin/user-docs/using_cs_tools01.jpg, bin/user-docs/using_cs_tools02.jpg, bin/user-docs/using_cs_tools03.jpg, bin/user-docs/using_cs_tools04.jpg, bin/user-docs/using_cs_tools05.jpg, bin/user-docs/using_mm.html, bin/user-docs/using_qm.html, bin/user-docs/using_sf.html, bin/user-docs/visualization.html: updated the documentation. 2002-11-14 09:16 thassine * bin/user-docs/basic_mm.html, bin/user-docs/images/mainmenu.png, bin/user-docs/images/maintools.png, bin/user-docs/index.html, bin/user-docs/introduction.html, bin/user-docs/maintools.jpg: the chapter 1. introduction seems to be ok now. 2002-11-14 07:59 thassine * bin/user-docs/index.html: oops! fixed the absolute links from index.html 2002-11-13 08:32 thassine * bin/parameters/param_mm/default/parameters1.txt, bin/parameters/param_mm/default/parameters2.txt, configure, configure.in, src/common/define.h: added some halogen MM parameters, and changed the version number. 2002-11-11 09:22 thassine * src/Doxyfile, src/graphics/views.cpp: changed doxygen settings, and added some fixes for gcc-3.2 2002-11-11 09:21 thassine * openbabel/Makefile.in, openbabel/Vector.cpp, openbabel/Vector.h, openbabel/alchemy.cpp, openbabel/aromatic.h, openbabel/atom.cpp, openbabel/atomtyp.h, openbabel/atomtyp.txt, openbabel/balst.cpp, openbabel/base.h, openbabel/bin2hex.pl, openbabel/binary.h, openbabel/binary_io.h, openbabel/bitgrid.h, openbabel/bitvec.h, openbabel/bond.txt, openbabel/c3d.cpp, openbabel/cacao.cpp, openbabel/chains.cpp, openbabel/chains.h, openbabel/chiral.h, openbabel/commandline.h, openbabel/ctransform.h, openbabel/cwrap.cpp, openbabel/cwrap.h, openbabel/data.cpp, openbabel/data.h, openbabel/element.h, openbabel/element.txt, openbabel/extable.h, openbabel/extable.txt, openbabel/fileformat.cpp, openbabel/fileformat.h, openbabel/generic.cpp, openbabel/generic.h, openbabel/grid.h, openbabel/main.cpp, openbabel/matrix.h, openbabel/mol.cpp, openbabel/mol.h, openbabel/mol2.cpp, openbabel/molchrg.h, openbabel/molvector.cpp, openbabel/molvector.h, openbabel/obifstream.h, openbabel/obutil.cpp, openbabel/obutil.h, openbabel/parsmart.cpp, openbabel/parsmart.h, openbabel/patty.h, openbabel/pdb.cpp, openbabel/phmodel.cpp, openbabel/phmodel.h, openbabel/phmodeldata.h, openbabel/resdata.h, openbabel/ring.h, openbabel/rotor.h, openbabel/smarts.cpp, openbabel/smarts.h, openbabel/smi.h, openbabel/typer.cpp, openbabel/typer.h, openbabel/types.h, openbabel/types.txt: the openbabel tree is now in sync with v1.00 2002-11-06 10:29 thassine * bin/user-docs/MD.html, bin/user-docs/MD_viewer.html, bin/user-docs/aa_table.html, bin/user-docs/add_hydrogens.html, bin/user-docs/basic_mm.html, bin/user-docs/documentation.css, bin/user-docs/filetypes.html, bin/user-docs/formula.html, bin/user-docs/geometry_optimization.html, bin/user-docs/images, bin/user-docs/images/2atoms_bond.png, bin/user-docs/images/2atoms_unbonded.png, bin/user-docs/images/add_hydrogens.png, bin/user-docs/images/add_hydrogens_select.png, bin/user-docs/images/change_bond_dialog.png, bin/user-docs/images/change_bond_select.png, bin/user-docs/images/cyclohexane1.png, bin/user-docs/images/cyclohexane2.png, bin/user-docs/images/cyclohexane_optimized.png, bin/user-docs/images/cyclohexane_unoptimized.png, bin/user-docs/images/draw_button.png, bin/user-docs/images/draw_hydrogens.png, bin/user-docs/images/first_atom.png, bin/user-docs/images/formula.png, bin/user-docs/images/formula_select.png, bin/user-docs/images/geometry_op_dialog.png, bin/user-docs/images/geometry_opimization_console.png, bin/user-docs/images/geometry_optimization_select.png, bin/user-docs/images/labels_menu.png, bin/user-docs/images/md_dialog.png, bin/user-docs/images/modal.png, bin/user-docs/images/new_mm.png, bin/user-docs/images/notebook.png, bin/user-docs/images/optimized_ethane.png, bin/user-docs/images/periodic_button.png, bin/user-docs/images/periodic_table.png, bin/user-docs/images/remove_hydrogens.png, bin/user-docs/images/sequence_builder.png, bin/user-docs/images/sequence_builder_console.png, bin/user-docs/images/toplevel.png, bin/user-docs/images/traj_dialog.png, bin/user-docs/images/window.png, bin/user-docs/import_types.html, bin/user-docs/index.html, bin/user-docs/introduction.html, bin/user-docs/labels.html, bin/user-docs/mdi_mode.html, bin/user-docs/measure.html, bin/user-docs/perspective.html, bin/user-docs/references.html, bin/user-docs/sequence_builder.html: added the Christopher's new docs. 2002-11-05 08:48 thassine * AUTHORS, src/target2/Makefile.OLD, src/target3/Makefile.OLD, src/target3/t3main.cpp: added some new libs (reported that a modified RedHat7.3 needed these; should be added to configure system as well) : -lXt -lSM -lICE 2002-10-31 14:09 thassine * src/graphics/project.cpp, src/graphics/surface.cpp, src/graphics/surface.h, src/target2/t2project.cpp: various small fixes added to plane/surface/etc objects. 2002-10-31 10:27 thassine * bin/user-docs/index.html, src/common/eng1_sf.h, src/target1/t1m_param_sf_h.h: just terminology changes: reduced now changed to simplified in strings. 2002-10-29 10:11 thassine * src/common/model.cpp: a bugfix added that makes model.cpp compile with the configure script. 2002-10-28 13:38 thassine * src/common/model.cpp, src/target3/glade/trajview_dialog.cpp, src/target3/t3dialog.cpp: moldyn now also uses logbox. 2002-10-28 12:45 thassine * src/common/eng1_mm.cpp, src/common/eng1_qm.cpp, src/common/eng1_sf.cpp, src/graphics/project.cpp: bugfixes added. 2002-10-25 13:02 thassine * src/target3/t3project.cpp: optimized the default settings for planes/surfaces etc. 2002-10-24 13:02 thassine * src/graphics/project.cpp, src/target3/t3project.cpp, src/target3/t3project.h: seq-builder now has a command string. 2002-10-24 12:01 thassine * src/graphics/project.cpp, src/graphics/project.h, src/graphics/views.cpp, src/target3/t3project.cpp: the 1d and 2d plots now have command strings. 2002-10-23 14:38 thassine * src/common/model.cpp, src/graphics/project.cpp, src/graphics/project.h, src/target3/t3project.cpp, src/target3/t3project.h, src/target3/t3views.cpp: qm-related planes/surfaces added, enlev-diagram addded. 2002-10-22 15:40 thassine * src/graphics/project.cpp, src/target3/t3project.cpp: plane/volrend/surface command strings added. 2002-10-21 10:43 thassine * src/common/model.cpp, src/common/model.h, src/common/search.cpp, src/graphics/project.cpp, src/target2/t2project.cpp, src/target3/t3project.cpp: added the random/systematic/montecarlo conformational search commands. 2002-10-21 07:53 thassine * src/graphics/project.cpp, src/target3/t3project.cpp, src/target3/t3views.cpp: the add light-operation is a bit improved. 2002-10-17 14:17 thassine * src/graphics/project.cpp, src/graphics/project.h, src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3project.cpp, src/target3/t3project.h, src/target3/t3views.cpp: the command interpreter added; now initially only commands help and add light works. 2002-10-16 08:08 thassine * src/common/eng1_mm_default.cpp, src/common/eng1_mm_prmfit.cpp, src/common/tab_mm_default.cpp, src/common/tab_mm_prmfit.cpp, src/target3/glade/setup_druid.cpp, src/target3/t3project.cpp, src/target3/t3project.h: setup changes and possible mol.mech. error messages are now displayed in the new logbox. 2002-10-15 08:46 thassine * src/common/model.cpp, src/target3/t3project.cpp: moved output from console to output box; CalcEnergy and GeomOpt. 2002-10-14 12:55 thassine * src/common/model.cpp, src/common/model.h, src/target3/t3project.cpp, src/target3/t3project.h, src/target3/t3views.cpp: a text log box was added to the GUI. works now for CalcEnergy and GeomOpt operations. 2002-10-05 08:31 thassine * src/common/model.cpp, src/target3/t3dialog.cpp: after the aa2sf conversion, the setup is automatically set suitable for doing calculations with the simplified model. 2002-10-04 12:18 thassine * src/common/eng1_sf.cpp, src/common/model.cpp: the values of model::sf_types array are now the same as those in the atom::sf_atmtp records. 2002-10-04 10:52 thassine * src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/typedef.h, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/project.cpp, src/graphics/project.h, src/graphics/ribbon.cpp, src/graphics/ribbon.h, src/graphics/spline.cpp, src/graphics/spline.h: the use of typedef- or template-based arrays (see typedef.h) seems to be a continuous source of memory-handling bugs. therefore removed all such constructs and banned their future use as well (removed from typedef.h). 2002-10-04 08:10 thassine * src/common/model.cpp: more fixes to aa2sf conversion (temporary coordinate handling). 2002-10-04 07:20 thassine * src/common/model.cpp, src/common/model.h: a potential bug related to aa2sf conversion is fixed. 2002-10-03 12:12 thassine * src/common/model.cpp, src/common/utility.cpp: a few changes here and there... 2002-10-03 09:09 thassine * src/common/oldfiles.cpp: the oldfiles.cpp file was added. 2002-10-03 08:27 thassine * src/common/Makefile.OLD, src/common/Makefile.in, src/common/eng1_mm.cpp, src/common/eng1_mm.h, src/common/eng1_qm.cpp, src/common/eng1_qm.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/eng2_mm_sf.cpp, src/common/eng2_mm_sf.h, src/common/eng2_qm_mm.cpp, src/common/eng2_qm_mm.h, src/common/engine.h, src/common/model.cpp, src/common/model.h, src/target3/glade/setup_druid.cpp: an initial version of the new file format is now added; needs some futher testing however. 2002-09-12 10:50 thassine * src/target3/t3dialog.cpp: a warning message was added (readpdb). 2002-09-11 14:35 thassine * src/graphics/ribbon.cpp, src/target3/t3dialog.cpp, src/target3/t3project.cpp, src/target3/t3project.h: the ribbon object now can handle both all-atom and simplified peptides/proteins. set #define ENABLE_SIMPLIFIED in config.h before compiling. how to use/try: first use File/ExtraTools/ImportPDB to read the file in and then File/ExtraTools/Convert_aa2sf for getting the simplified presentation (you can't save it yet). then Objects/Ribbon. 2002-09-10 14:36 thassine * bin/parameters/builder/amino.txt, src/common/seqbuild.cpp, src/common/utility.cpp: the DefineSecondaryStructure() function now works with simplified residues as well; also a ribbon bug is fixed. 2002-09-10 08:47 thassine * src/common/model.cpp, src/common/seqbuild.cpp, src/common/seqbuild.h: the seqbuilder::Identify() now handles correctly also the simplified chains. 2002-09-08 10:05 thassine * src/Doxyfile, src/Makefile.OLD, src/common/atom.h, src/common/bond.h, src/common/conjgrad.h, src/common/eng1_sf.h, src/common/engine.h, src/common/model.h: changed the docs system into a doxygen-based one. now using /// as a brief comment /** and this as a detailed comment. */ int example; ///< this is for comments at end of statements. 2002-09-07 08:25 thassine * src/target1/t1m_mm2param_cpp.h, src/target1/t1m_mm2param_h.h: removed some old files from the console target. 2002-09-07 08:24 thassine * src/target1/t1m_mm1param_cpp.h, src/target1/t1m_mm1param_h.h, src/target1/t1m_param_mm_cpp.h, src/target1/t1m_param_mm_h.h, src/target1/t1m_param_sf_cpp.h, src/target1/t1m_param_sf_h.h, src/target1/t1main.cpp, src/target1/t1main.h: some filenames changed at the console target... 2002-09-06 09:07 thassine * src/common/atom.cpp, src/common/atom.h, src/common/eng1_sf.cpp, src/common/model.cpp: the sf is now in sync with the version in MANY_PROJECTS_BRANCH. 2002-09-05 13:47 thassine * src/common/eng1_sf.cpp, src/common/eng1_sf.h: in sf, all terms except the solvation one works like before. 2002-09-05 10:18 thassine * src/common/eng1_sf.cpp, src/common/eng1_sf.h: the nbt1 terms work now in sf. 2002-09-05 07:26 thassine * src/common/eng1_sf.cpp: minor bugs fixed in bonded-term creation in the sf. 2002-09-04 13:56 thassine * src/common/eng1_sf.cpp, src/common/eng1_sf.h: continued to port the sf stuff. 2002-09-03 10:45 thassine * src/common/atom.cpp, src/common/eng1_mm.cpp, src/common/eng1_mm_default.cpp, src/common/eng1_mm_prmfit.cpp, src/common/eng1_qm.cpp, src/common/eng1_qm.h, src/common/eng1_qm_mopac.cpp, src/common/eng1_qm_mpqc.cpp, src/common/eng1_sf.h, src/common/eng2_mm_sf.h, src/common/eng2_qm_mm.h, src/common/engine.cpp, src/common/filetrans.cpp, src/common/intcrd.cpp, src/common/model.cpp, src/common/seqbuild.cpp, src/common/tab_mm_prmfit.cpp, src/graphics/project.cpp, src/graphics/ribbon.cpp, src/target1/t1m_mm1param_cpp.h, src/target1/t1m_mm2param_cpp.h, src/target3/glade/setup_druid.cpp, src/target3/glade_dialog.cpp, src/target3/t3dialog.cpp, src/target3/t3main.cpp, src/target3/t3project.cpp: checked the bug report messages in various little run-time tests; they now all carry a BUG: tag. 2002-09-03 09:39 thassine * src/common/atom.h, src/common/bond.cpp, src/common/bond.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/engine.cpp, src/common/model.cpp, src/graphics/project.cpp: some improvements added to sf. 2002-09-02 13:28 thassine * src/common/bond.cpp, src/common/bond.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/model.cpp, src/graphics/project.cpp: the all-atoms -> simplified conversion seems to work now. 2002-08-31 09:57 thassine * src/common/eng1_qm_mpqc.cpp, src/common/eng2_qm_mm.cpp, src/common/eng2_qm_mm.h, src/target3/glade/setup_druid.cpp, src/target3/glade/setup_druid.glade: updated the mpqc-related stuff; now there are qm/mm engine classes for both mopac and mpqc. they seem to work technically fine, but without any glue code the qm and mm parts are not interacting at all. yet. 2002-08-31 08:39 thassine * src/common/eng1_mm.cpp, src/common/eng1_mm.h, src/common/eng1_mm_default.cpp, src/common/eng1_mm_prmfit.cpp: the qm_mm bug was because connectivity records used (global) indices. now the connectivity records use pointers instead of indices and now eng2_qm_mm works like expected (when there is no glue code between the mm and qm parts). 2002-08-30 15:33 thassine * src/common/eng1_mm.cpp, src/common/eng1_mm.h, src/common/eng1_mm_default.cpp, src/common/eng1_mm_prmfit.cpp, src/common/eng1_qm.cpp, src/common/eng1_qm.h, src/common/eng1_qm_mopac.cpp, src/common/eng1_qm_mopac.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/eng2_qm_mm.cpp, src/common/engine.cpp, src/common/engine.h, src/common/model.h, src/common/tab_mm_default.cpp, src/common/tab_mm_prmfit.cpp, src/target2/t2project.cpp: the eng classes now use local instead of global atom numbering (more like the old system). there is a nonbonded-term bug in qmmm but otherwise it looks good. sf only compiles. 2002-08-30 10:54 thassine * src/common/eng1_mm.cpp, src/common/eng1_mm.h, src/common/eng1_qm.cpp, src/common/eng1_qm.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/eng2_mm_sf.cpp, src/common/eng2_mm_sf.h, src/common/eng2_qm_mm.cpp, src/common/eng2_qm_mm.h, src/common/engine.cpp, src/common/engine.h, src/target2/t2project.cpp, src/target2/t2project.h, src/target3/glade/setup_druid.cpp: the setup classes are now initialized correctly. setup::GetMaxEngineIndex() renamed to setup::GetEngineCount(). 2002-08-30 09:36 thassine * src/common/Makefile.OLD, src/common/Makefile.in, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/eng2_mm_sf.cpp, src/common/eng2_mm_sf.h, src/target3/glade/setup_druid.cpp: ok, everything compiles now, including the simplified forcefield stuff. 2002-08-30 06:27 thassine * src/common/atom.cpp, src/common/atom.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/engine.cpp, src/common/model.cpp, src/common/model.h, src/common/seqbuild.cpp, src/common/tab_mm_default.cpp, src/common/tab_mm_prmfit.cpp, src/graphics/project.cpp, src/target1/t1m_mm2param_cpp.h: continued porting the simplified forcefield here (not ready yet, doesn't compile, and needs file format changes). modified seqbuider::Indentify() so that it would also detect simplified protein/peptide chains (not ready yet). converted the bool atom::selected flag into i32u atom::flags that can carry more information. 2002-08-29 06:30 thassine * src/common/model.cpp, src/common/seqbuild.cpp, src/target1/Makefile.OLD, src/target1/t1m_mm1param_cpp.h, src/target1/t1m_mm1param_h.h, src/target1/t1main.cpp, src/target2/t2project.cpp, src/target3/t3project.cpp: the new model::UpdateChains() function now updates the chain/residue information. all targets brought up-to-date again. 2002-08-28 14:40 thassine * src/common/atom.cpp, src/common/atom.h, src/common/eng1_mm.cpp, src/common/model.cpp, src/common/model.h, src/common/search.cpp, src/common/seqbuild.cpp, src/graphics/project.cpp, src/target2/t2project.cpp, src/target3/glade/setup_druid.glade: many changes added. GatherGroups() renamed to UpdateGroups(). is_index_clean and is_groups_clean flags are added so that it would be better defined whether groups/chains/etc information is up-to-date or not. 2002-08-28 09:59 thassine * src/common/eng1_mm.cpp, src/common/eng1_mm.h, src/common/eng1_qm.cpp, src/common/eng1_qm.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/eng2_qm_mm.cpp, src/common/eng2_qm_mm.h, src/common/engine.h, src/common/model.h, src/target3/glade/setup_druid.cpp, src/target3/glade/setup_druid.glade, src/target3/glade/setup_druid.h: the setup_druid now works, with minimal functionality so that one can select between an MM and QM model. 2002-08-27 14:54 thassine * src/common/atom.cpp, src/common/eng1_sf.h, src/common/intcrd.cpp, src/common/model.cpp: some bugfixes added; the conformational search tools should work now. 2002-08-27 11:41 thassine * src/target3/glade/file_import_dialog.cpp, src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3project.cpp, src/target3/t3project.h: added the File/ExtraTools also here. 2002-08-21 07:32 thassine * src/common/eng1_sf.cpp, src/common/model.cpp, src/common/model.h, src/common/seqbuild.cpp, src/common/seqbuild.h, src/graphics/ribbon.cpp, src/target2/t2project.cpp, src/target3/t3project.cpp: improvements added to the seqbuilder and chn_info classes. 2002-08-01 07:31 thassine * src/common/engine.cpp, src/common/intcrd.cpp, src/common/model.cpp: bounds checking added to CopyCRD() functions; bugs fixed from the new crd_set data storage system; WARNING there still is something wrong with the intcrd class (geometries get distorted). 2002-07-31 10:09 thassine * src/graphics/camera.cpp: the fps counter added also to HEAD. 2002-07-30 07:07 thassine * src/common/atom.cpp, src/common/atom.h, src/common/eng1_mm.cpp, src/common/eng1_qm.cpp, src/common/eng1_qm_mopac.cpp, src/common/engine.cpp, src/common/filetrans.cpp, src/common/intcrd.cpp, src/common/intcrd.h, src/common/model.cpp, src/common/model.h, src/common/seqbuild.cpp, src/common/tab_mm_prmfit.cpp, src/common/utility.cpp, src/graphics/project.cpp, src/graphics/ribbon.cpp, src/graphics/views.cpp: the coordinate data storage at atom class is converted into a less error-prone system. it's no more possible to access the data directly, but only using the atom::GetCRD() and atom::SetCRD() member functions. 2002-07-23 12:27 thassine * src/common/model.cpp, src/common/model.h, src/graphics/project.cpp, src/target2/t2project.cpp: the memory management scheme of crd_set objects is now simpler. 2002-07-23 09:34 thassine * src/common/engine.h, src/common/model.cpp, src/common/model.h, src/common/search.cpp, src/common/search.h, src/target2/t2project.cpp, src/target3/t3project.cpp, src/target3/t3project.h: the search tool improvements ported also here. 2002-07-23 09:04 thassine * src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/engine.h: added some fixes to SF, althought it does not even compile yet; therefore the ENABLE_SIMPLIFIED macro is disabled at config.h 2002-06-20 13:48 thassine * src/common/prefs.h, src/target3/t3prefs.cpp, src/target3/t3prefs.h, src/target3/t3project.cpp: added the v0.90 bugfixes also to HEAD. 2002-06-19 12:56 thassine * src/common/Makefile.OLD, src/common/Makefile.in, src/common/atom.cpp, src/common/atom.h, src/common/eng1_mm.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/engine.h, src/common/model.cpp, src/common/moldyn.cpp, src/common/seqbuild.h, src/graphics/project.cpp, src/target1/config.h.OLD, src/target2/config.h.OLD, src/target2/t2project.cpp, src/target3/config.h.OLD: added some changes that were needed to port the simplified forcefield of mine to HEAD. it's not working yet and not even compile yet, but it doesn't matter since one have to set the ENABLE_SIMPLIFIED macro to compile that stuff in... 2002-06-17 10:40 thassine * Makefile.in, src/common/define.h, src/common/eng1_sf.cpp, src/common/model.cpp, src/common/model.h, src/common/tab_mm_default.cpp, src/target3/glade/file_export_dialog.cpp, src/target3/glade/file_export_dialog.h, src/target3/glade/file_import_dialog.cpp, src/target3/glade/file_import_dialog.h, src/target3/glade/geomopt_dialog.cpp, src/target3/glade/geomopt_dialog.h, src/target3/glade/moldyn_dialog.cpp, src/target3/glade/moldyn_dialog.h, src/target3/glade/setup_druid.cpp, src/target3/glade/setup_druid.h, src/target3/glade/trajview_dialog.cpp, src/target3/glade/trajview_dialog.h, src/target3/glade_dialog.cpp, src/target3/glade_dialog.h, src/target3/t3dialog.cpp, src/target3/t3project.cpp: the glade files are now installed correctly by make install. 2002-06-14 11:47 thassine * src/Makefile.OLD: fixed src/Makefile.OLD clean: also in HEAD. 2002-06-13 13:09 thassine * src/common/conjgrad.cpp, src/common/conjgrad.h: also copied conjgrad changes to HEAD. 2002-06-08 09:01 thassine * src/target3/glade/setup_druid.cpp, src/target3/glade/setup_druid.glade, src/target3/glade/setup_druid.h, src/target3/t3main.cpp: the setup_druid can now correctly change the pages with prev/next buttons. 2002-06-07 12:49 thassine * src/target3/glade/Makefile.OLD, src/target3/glade/Makefile.in, src/target3/glade/setup_druid.cpp, src/target3/glade/setup_druid.glade, src/target3/glade/setup_druid.h, src/target3/t3project.cpp: added an initial version of the setup druid (nothing except cancel works). 2002-06-07 08:26 thassine * src/target3/glade/Makefile.OLD, src/target3/glade/Makefile.in, src/target3/glade/file_export_dialog.cpp, src/target3/glade/file_export_dialog.glade, src/target3/glade/file_export_dialog.h, src/target3/glade/file_import_dialog.cpp, src/target3/glade/file_import_dialog.glade, src/target3/glade/file_import_dialog.h, src/target3/t3project.cpp: added the file import/export dialogs. 2002-06-07 06:38 thassine * src/target3/glade/Makefile.OLD, src/target3/glade/Makefile.in, src/target3/glade/geomopt_dialog.cpp, src/target3/glade/geomopt_dialog.glade, src/target3/glade/geomopt_dialog.h, src/target3/glade/moldyn_dialog.cpp, src/target3/glade/moldyn_dialog.glade, src/target3/glade/moldyn_dialog.h, src/target3/glade/trajview_dialog.cpp, src/target3/glade/trajview_dialog.glade, src/target3/glade/trajview_dialog.h, src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3main.cpp, src/target3/t3project.cpp, src/target3/t3project.h: new dialogs added, and dialog memory leaks fixed (hopefully). the dialogs are now always created with new, and delete is always called at destroy signal handler of the dialog. 2002-06-05 11:39 thassine * src/Makefile.OLD: added some Makefile tweaks. 2002-06-05 10:25 thassine * src/target3/glade/Makefile.OLD, src/target3/glade/geomopt_dialog.cpp, src/target3/glade/geomopt_dialog.glade, src/target3/glade/geomopt_dialog.h, src/target3/glade_dialog.h, src/target3/t3project.cpp: the geomopt dialog now works using libglade. 2002-06-03 10:23 thassine * openbabel/fileformat.h: oops, my mistake. of course there were nothing wrong with fileformat.h but I had an obsolete Makefile. the changes are reverted. 2002-06-03 09:50 thassine * openbabel/fileformat.h: there were some undefined functions at fileformat.cpp; just made some dummy functions in fileformat.h so that OB can be compiled... 2002-05-31 16:34 hutchisn * configure, configure.in, miniMOPAC/Makefile.in, src/common/Makefile.in, src/graphics/Makefile.in, src/target3/Makefile.in, src/target3/glade/Makefile.in, src/target3/glade/geomopt_dialog.h: Updated makefiles for libglade, etc. 2002-05-31 16:31 hutchisn * openbabel/Makefile.in, openbabel/Vector.cpp, openbabel/Vector.h, openbabel/alchemy.cpp, openbabel/amber.cpp, openbabel/aromatic.h, openbabel/aromatic.txt, openbabel/atom.cpp, openbabel/atomtyp.h, openbabel/atomtyp.txt, openbabel/balst.cpp, openbabel/base.cpp, openbabel/base.h, openbabel/bgf.cpp, openbabel/bin2hex.pl, openbabel/binary.cpp, openbabel/binary.h, openbabel/binary_io.cpp, openbabel/binary_io.h, openbabel/bitgrid.cpp, openbabel/bitgrid.h, openbabel/bitvec.h, openbabel/bond.cpp, openbabel/bond.txt, openbabel/box.cpp, openbabel/c3d.cpp, openbabel/cacao.cpp, openbabel/cache.cpp, openbabel/car.cpp, openbabel/chains.cpp, openbabel/chdrw.cpp, openbabel/chiral.cpp, openbabel/chiral.h, openbabel/cml.cpp, openbabel/commandline.h, openbabel/csr.cpp, openbabel/cssr.cpp, openbabel/ctransform.cpp, openbabel/ctransform.h, openbabel/data.cpp, openbabel/data.h, openbabel/dmol.cpp, openbabel/element.h, openbabel/extable.h, openbabel/extable.txt, openbabel/feat.cpp, openbabel/fh.cpp, openbabel/fileformat.cpp, openbabel/fileformat.h, openbabel/gamess.cpp, openbabel/gaussian.cpp, openbabel/generic.cpp, openbabel/generic.h, openbabel/ghemical.cpp, openbabel/grid.h, openbabel/gromos96.cpp, openbabel/hin.cpp, openbabel/jaguar.cpp, openbabel/main.cpp, openbabel/matrix.cpp, openbabel/matrix.h, openbabel/mmod.cpp, openbabel/mol.cpp, openbabel/mol.h, openbabel/molchrg.cpp, openbabel/molchrg.h, openbabel/molvector.cpp, openbabel/molvector.h, openbabel/mopac.cpp, openbabel/mpqc.cpp, openbabel/nwchem.cpp, openbabel/obifstream.h, openbabel/oblib.dsp, openbabel/obutil.cpp, openbabel/obutil.h, openbabel/parsmart.cpp, openbabel/parsmart.h, openbabel/parsmi.cpp, openbabel/patty.cpp, openbabel/patty.h, openbabel/pdb.cpp, openbabel/phmodel.cpp, openbabel/phmodel.h, openbabel/phmodel.txt, openbabel/phmodeldata.h, openbabel/qchem.cpp, openbabel/report.cpp, openbabel/resdata.h, openbabel/ring.cpp, openbabel/ring.h, openbabel/rotor.cpp, openbabel/rotor.h, openbabel/smarts.cpp, openbabel/smarts.h, openbabel/smi.cpp, openbabel/smi.h, openbabel/tinker.cpp, openbabel/tokenst.cpp, openbabel/typer.cpp, openbabel/typer.h, openbabel/types.h, openbabel/unichem.cpp, openbabel/viewmol.cpp, openbabel/xed.cpp, openbabel/xyz.cpp: Merge in current Open Babel (w/ CML and proper namespace support). 2002-05-31 08:12 thassine * src/common/Makefile.in, src/graphics/Makefile.in, src/target3/Makefile.in, src/target3/glade/Makefile.in: fixes added to makefiles; now the configuration works otherwise except that libglade incs and libs are missing. 2002-05-30 12:43 thassine * configure, configure.in, src/common/define.h: promoted the version number to 0.85 in the HEAD branch. 2002-05-30 11:07 thassine * Makefile.in, configure, configure.in, src/common/Makefile.in, src/common/eng1_sf.cpp, src/common/tab_mm_default.cpp, src/graphics/Makefile.in, src/target3/Makefile.in, src/target3/glade/Makefile.in: minor fixes like changed directories etc added. 2002-05-30 09:39 thassine * bin/parameters/param_mm, bin/parameters/param_mm/default, bin/parameters/param_mm/default/atomtypes.txt, bin/parameters/param_mm/default/parameters1.txt, bin/parameters/param_mm/default/parameters2.txt, bin/parameters/param_mm/default/parameters3.txt, bin/parameters/param_mm/default/parameters4.txt, bin/parameters/param_mm/default/parameters5.txt, bin/parameters/param_sf, bin/parameters/param_sf/default, bin/parameters/param_sf/default/loopdip.txt, bin/parameters/param_sf/default/looptor.txt, bin/parameters/param_sf/default/nonbonded.txt, src/some-extra-files/newfile.cpp, src/some-extra-files/newfile.h: added new files to bin/parameters and some minor stuff. 2002-05-30 09:34 thassine * bin/parameters/mm1param, bin/parameters/mm2param: removed old files under bin/parameters. 2002-05-30 09:29 thassine * src/common/atom.cpp, src/common/atom.h, src/common/bond.cpp, src/common/bond.h, src/common/define.h, src/common/eng1_mm.cpp, src/common/eng1_mm.h, src/common/eng1_mm_default.cpp, src/common/eng1_mm_default.h, src/common/eng1_mm_prmfit.cpp, src/common/eng1_mm_prmfit.h, src/common/eng1_qm.cpp, src/common/eng1_qm.h, src/common/eng1_qm_mopac.cpp, src/common/eng1_qm_mopac.h, src/common/eng1_qm_mpqc.cpp, src/common/eng1_qm_mpqc.h, src/common/eng1_sf.cpp, src/common/eng1_sf.h, src/common/eng2_qm_mm.cpp, src/common/eng2_qm_mm.h, src/common/engine.cpp, src/common/engine.h, src/common/filetrans.cpp, src/common/filetrans.h, src/common/geomopt.cpp, src/common/geomopt.h, src/common/intcrd.cpp, src/common/intcrd.h, src/common/model.cpp, src/common/model.h, src/common/moldyn.cpp, src/common/moldyn.h, src/common/search.cpp, src/common/search.h, src/common/seqbuild.cpp, src/common/seqbuild.h, src/common/tab_mm_default.cpp, src/common/tab_mm_default.h, src/common/tab_mm_prmfit.cpp, src/common/tab_mm_prmfit.h, src/common/typedef.h, src/common/typerule.cpp, src/common/typerule.h, src/common/utility.cpp, src/common/utility.h, src/graphics/camera.cpp, src/graphics/camera.h, src/graphics/color.h, src/graphics/mtools.cpp, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/project.cpp, src/graphics/project.h, src/graphics/ribbon.cpp, src/graphics/ribbon.h, src/graphics/surface.cpp, src/graphics/surface.h, src/graphics/views.cpp, src/graphics/views.h, src/target1/t1main.cpp, src/target2/t2main.cpp, src/target2/t2main.h, src/target2/t2project.cpp, src/target2/t2project.h, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/glade_dialog.cpp, src/target3/glade_dialog.h, src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3project.cpp, src/target3/t3project.h, src/target3/t3views.cpp, src/target3/t3views.h: added the new files. 2002-05-30 09:18 thassine * src/common/interface.cpp, src/common/interface.h, src/common/matrix.h, src/common/mm1alg.cpp, src/common/mm1alg.h, src/common/mm1eng.cpp, src/common/mm1eng.h, src/common/mm1eng1.cpp, src/common/mm1eng1.h, src/common/mm1eng9.cpp, src/common/mm1eng9.h, src/common/mm1ic.cpp, src/common/mm1ic.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm1tab1.cpp, src/common/mm1tab1.h, src/common/mm1tab9.cpp, src/common/mm1tab9.h, src/common/mm1util.cpp, src/common/mm1util.h, src/common/mm2alg.cpp, src/common/mm2alg.h, src/common/mm2eng.cpp, src/common/mm2eng.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/mm2util.cpp, src/common/mm2util.h, src/common/mm3mdl.cpp, src/common/mm3mdl.h, src/common/qm1alg.cpp, src/common/qm1alg.h, src/common/qm1e_mopac.cpp, src/common/qm1e_mopac.h, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h, src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/qm2eng.cpp, src/common/qm2eng.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/io-jpg.cpp, src/graphics/io-jpg.h, src/graphics/io-png.cpp, src/graphics/io-png.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm1rbn.cpp, src/graphics/mm1rbn.h, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/mm2rbn.cpp, src/graphics/mm2rbn.h, src/graphics/mm3docv.cpp, src/graphics/mm3docv.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/target2/t2docv.cpp, src/target2/t2docv.h, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2mm2docv.cpp, src/target2/t2mm2docv.h, src/target2/t2mm3docv.cpp, src/target2/t2mm3docv.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target3/glade_callbacks.cpp, src/target3/glade_callbacks.h, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/glade_support.cpp, src/target3/glade_support.h, src/target3/t3docv.cpp, src/target3/t3docv.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h: the old/renamed files are removed. 2002-05-30 08:29 thassine * src/target3/glade/README: update the glade README 2002-05-30 08:27 thassine * src/target1/config.h.OLD, src/target2/config.h.OLD, src/target3/config.h.OLD, src/target3/glade/Makefile.OLD, src/target3/glade/Makefile.in, src/target3/glade/geomopt_dialog.cpp, src/target3/glade/geomopt_dialog.glade, src/target3/glade/geomopt_dialog.h, src/target3/glade/ghemical.glade, src/target3/glade/src: added changes to config.h.OLD files and src/target3/glade dir. 2002-05-30 08:17 thassine * src/Makefile.OLD, src/common/Makefile.OLD, src/common/Makefile.in, src/graphics/Makefile.OLD, src/graphics/Makefile.in, src/target2/Makefile.OLD, src/target3/Makefile.OLD, src/target3/Makefile.in: the makefiles are updated. 2002-05-30 07:40 thassine * CHANGES: the changelog is updated. 2002-05-30 07:35 thassine * src/Makefile.OLD: test; this goes to HEAD branch... 2002-05-29 08:11 thassine * CHANGES: again testing that the OSP_BRANCH is separate; seems to be but cvs2cl picks all commits to the log; I'll start using OSP: identifier when working with the branch in the future. 2002-05-28 09:03 thassine * CHANGES: updated the changelog (using cvs2cl again). 2002-05-28 07:57 thassine * src/common/define.h: ooop, reverted the previous. 2002-05-28 07:55 thassine * src/common/define.h: just testing how the branches work. 2002-05-27 13:36 thassine * bin/parameters/mm2param/loopdip.txt, bin/parameters/mm2param/looptor.txt, bin/parameters/mm2param/nonbonded.txt, small-utilities/getpdb_cd.cpp, small-utilities/getpdb_ftp.cpp, src/common/Makefile.OLD, src/common/Makefile.in, src/common/mm1mdl.h, src/common/mm1util.h, src/common/mm2alg.h, src/common/mm2eng.cpp, src/common/mm2eng.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/mm2util.cpp, src/common/mm2util.h, src/common/mm3mdl.cpp, src/common/mm3mdl.h, src/graphics/Makefile.OLD, src/graphics/Makefile.in, src/graphics/mm2docv.cpp, src/graphics/mm3docv.cpp, src/graphics/mm3docv.h, src/graphics/views.h, src/target1/Makefile.OLD, src/target1/t1m_mm2param_cpp.h, src/target2/Makefile.OLD, src/target2/t2main.cpp, src/target2/t2main.h, src/target2/t2mm2docv.cpp, src/target2/t2mm3docv.cpp, src/target2/t2mm3docv.h, src/target3/Makefile.OLD, src/target3/Makefile.in: added some of my own works; not all of this stuff is ready, but I need to start converting them to fit into single-project environment. 2002-05-22 07:23 thassine * Makefile.in, configure, configure.in: configure script now updated, scripts now compatible with autoconf 2.53 2002-05-21 11:06 thassine * aclocal.m4, configure.in, src/common/Makefile.OLD, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h, src/config.h.in, src/graphics/Makefile.OLD, src/graphics/Makefile.in, src/target1/Makefile.OLD, src/target1/config.h.OLD, src/target2/Makefile.OLD, src/target2/config.h.OLD, src/target3/Makefile.OLD, src/target3/Makefile.in, src/target3/config.h.OLD: added the configuration system for MPQC v1/v2 (thanks to Michael); BTW you still have to run autoconf to update the configure script. 2002-05-20 07:45 thassine * src/common/Makefile.OLD, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h, src/graphics/Makefile.OLD, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target3/Makefile.OLD: support for MPQC v2 was added (but ./configure still needs update). 2002-05-20 06:17 thassine * src/target1/t1m_mm1param_cpp.h, src/target1/t1m_mm1param_h.h: oops, forgot to add some files last time. 2002-05-17 07:30 thassine * src/common/mm1eng9.cpp, src/common/mm1eng9.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm1tab9.cpp, src/common/mm1tab9.h, src/target1/t1main.cpp, src/target1/t1main.h, src/target2/t2mm1docv.cpp: added my (so far incomplete) system for fitting MM force field parameters; this stuff is not really working yet. 2002-04-29 14:03 thassine * src/common/define.h, src/graphics/mm2docv.cpp, src/target2/t2mm2docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h: added LABEL_RESIDUE for mm2_docv. 2002-04-17 10:24 thassine * src/common/mm2util.cpp, src/common/model.cpp: a few bugs that freed memory multiple times were fixed. there still remains maaany memory leaks, but they are less dangerous than these. 2002-04-16 06:56 thassine * src/common/mm2mdl.cpp, src/graphics/mm2docv.cpp: some comments and minor fixes added to mm2_mdl. 2002-04-09 10:18 thassine * src/graphics/mm2docv.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: some colour/label mode improvements added. 2002-04-08 14:32 thassine * src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/mm2rbn.cpp: some cleanups added to the mm2_docv rendering code - should not change the looks/anything. 2002-04-04 12:18 thassine * BUGLIST, TODO: the BUGLIST and TODO files are now CSV text files - use a spreadsheet program like Gnumeric or StarOffice/Calc to read and/or modify them. 2002-04-04 08:43 thassine * src/graphics/camera.cpp: some cleanups done for the stereo modes; now the effect seems to be independent of orientation. 2002-03-26 18:27 hutchisn * openbabel/mol.cpp, openbabel/pdb.cpp: Fixes OpenBabel PDB import problems (PR #529744 for OpenBabel). 2002-02-28 11:43 thassine * ghemical.spec: the .spec file updated; the RPM now does the installation with prefix /usr instead of /usr/local. 2002-02-27 09:26 thassine * miniMOPAC/Makefile.in: modified miniMOPAC/Makefile.in so that -O optimization is forced in the miniMOPAC directory. 2002-02-26 08:28 thassine * ghemical.spec: some updates added to .spec file. 2002-02-25 11:29 thassine * AUTHORS, bin/ghemical.xpm, ghemical.spec: added the files for building RedHat binary packages, contributed by Radek Liboska. 2002-02-22 14:09 thassine * configure, configure.in, src/common/define.h, src/common/notice.cpp: switch back to development settings. 2002-02-22 10:36 thassine * CHANGES, INSTALL, src/common/define.h: changelog updated and all settings are now ready for release as v0.82 2002-02-22 08:29 thassine * src/target3/t3mm1docv.cpp: a small fix added to the library widget generation code. 2002-02-21 14:26 thassine * bin/user-docs/index.html, bin/user-docs/using_cs_tools.html, bin/user-docs/using_cs_tools01.jpg, bin/user-docs/using_cs_tools02.jpg, bin/user-docs/using_cs_tools03.jpg, bin/user-docs/using_cs_tools04.jpg, bin/user-docs/using_cs_tools05.jpg: user's manual is enhanced; it now contains a section about 1D and 2D energy plots. 2002-02-20 10:34 thassine * INSTALL, src/common/mm1alg.h, src/common/mm1mdl.cpp, src/common/mm2alg.h, src/common/mm2mdl.cpp, src/common/qm1alg.h, src/common/qm1mdl.cpp, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target2/t2mm1docv.cpp, src/target2/t2mm2docv.cpp, src/target2/t2qm1docv.cpp, src/target3/Makefile.OLD, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3qm1docv.cpp: old makefiles updated, and the code added for geomopt dialogs + calculations that separates the different termination criteria and makes them optional. it also prints out which criteria was used to terminate the optimization. 2002-02-18 17:06 hutchisn * openbabel/pdb.cpp: Don't try to run PerceiveBondOrders yet... this seems to be very buggy. 2002-02-18 16:53 hutchisn * openbabel/Makefile.in, openbabel/alchemy.cpp, openbabel/amber.cpp, openbabel/aromatic.txt, openbabel/atom.cpp, openbabel/balst.cpp, openbabel/box.cpp, openbabel/c3d.cpp, openbabel/cacao.cpp, openbabel/car.cpp, openbabel/ccc.cpp, openbabel/commandline.h, openbabel/ctransform.h, openbabel/data.cpp, openbabel/data.h, openbabel/dmol.cpp, openbabel/element.h, openbabel/element.txt, openbabel/extable.h, openbabel/extable.txt, openbabel/feat.cpp, openbabel/gamess.cpp, openbabel/gaussian.cpp, openbabel/ghemical.cpp, openbabel/grid.h, openbabel/hin.cpp, openbabel/jaguar.cpp, openbabel/main.cpp, openbabel/mol.cpp, openbabel/mol.h, openbabel/mopac.cpp, openbabel/mpqc.cpp, openbabel/nwchem.cpp, openbabel/obutil.cpp, openbabel/obutil.h, openbabel/patty.cpp, openbabel/pdb.cpp, openbabel/phmodel.cpp, openbabel/qchem.cpp, openbabel/report.cpp, openbabel/rotor.cpp, openbabel/smarts.h, openbabel/typer.cpp, openbabel/unichem.cpp, openbabel/version.h.in, openbabel/xyz.cpp: Updated Open Babel code, including preliminary bond-order perception. 2002-01-31 13:50 thassine * miniMOPAC/README: some documentation fixes for miniMOPAC. 2002-01-31 12:25 thassine * src/target3/glade/ghemical.glade, src/target3/glade/src/glade_interface.cpp, src/target3/glade_interface.cpp: the check boxes for different termination criteria were added to the geomopt GLADE dialog; their states are not yet checked however. 2002-01-25 16:09 hutchisn * small-utilities/Makefile, small-utilities/README, small-utilities/symmetry.c: Add Symmetry program (from Sergei Pachkovsky, who gave OK to use in Ghemical) 2002-01-25 13:42 thassine * src/common/Makefile.OLD, src/common/define.h, src/common/qm1mdl.cpp, src/graphics/Makefile.OLD, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target3/Makefile.OLD: some comments added, and old makefiles are fixed/updated. 2002-01-25 04:39 hutchisn * src/target3/glade_callbacks.cpp, src/target3/t3mm1docv.cpp: Make sure we actually set the optimization limits after the dialog completes... 2002-01-25 04:35 hutchisn * openbabel/unichem.cpp: Fix unichem XYZ support (read should expect atomic numbers in Unichem files). 2002-01-22 15:27 thassine * src/target3/glade_interface.h, src/target3/glade_support.cpp: verified that /target3 and /target3/glade/src keep in sync... 2002-01-21 22:23 hutchisn * src/common/mm1alg.h, src/common/mm1mdl.cpp, src/common/mm2alg.h, src/common/qm1alg.h, src/common/qm1mdl.cpp, src/target3/glade/ghemical.glade, src/target3/glade/src/glade_interface.cpp, src/target3/glade/src/glade_support.cpp, src/target3/glade_interface.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3qm1docv.cpp: Add support for terminating geometry optimizations "early" based on delta E or small gradient. Currently does not have a UI for termination based on small step, and this is set to 1.0e-12 so this should never happen. 2002-01-21 11:45 thassine * src/common/mm1mdl.cpp, src/common/qm1mdl.cpp: the geomopt output now displays accurate gradient vector lengths. 2002-01-21 07:44 thassine * INSTALL, oelib: removed .cvsignore from the oelib directory. 2002-01-18 19:59 hutchisn * src/common/mm1mdl.cpp, src/common/qm1mdl.cpp: Added user-friendly display of the step-size, displacement and delta E in geom opt. Seems to indicate that most geom opt can quit early with tests for displ. and/or delta E. 2002-01-15 09:12 thassine * src/graphics/mm1docv.cpp: in the 1D and 2D energy plotting tools of mm1_docv it is now possible to select a smaller range of angles if needed, and the final energy can be calculated also using QM methods (so now it's possible to compare MM results against QM results as well as compare different QM results). 2002-01-14 19:10 thassine * src/common/Makefile.OLD, src/graphics/Makefile.OLD, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target3/Makefile.OLD: converted the old makefiles to use the new openbabel-paths. 2002-01-14 18:12 hutchisn * src/common/filetrans.cpp: Delete filename at appropriate time--Babel uses it for a Title when exporting. 2002-01-14 03:57 hutchisn * configure, configure.in: Add almost-forgotten configure tests contributed by Michael Banck--check for f2c if g2c is not found (and give an error if neither is found). 2002-01-11 15:20 hutchisn * src/common/Makefile.in, src/graphics/Makefile.in, src/target3/Makefile.in: Makefile fixes. 2002-01-10 23:04 hutchisn * configure, configure.in, src/common/Makefile.in, src/target3/Makefile.in: Added support for Michael Banck's SC autoconf macros to simplify building MPQC. 2002-01-10 22:45 hutchisn * Makefile.in, PROJECT, config.guess, config.sub, configure, configure.in, oelib/GNULICENSE.txt, oelib/Makefile.in, oelib/OELibPrimer.html, oelib/StdAfx.cpp, oelib/StdAfx.h, oelib/Vector.cpp, oelib/Vector.h, oelib/alchemy.cpp, oelib/amber.cpp, oelib/aromatic.h, oelib/aromatic.txt, oelib/atom.cpp, oelib/atomtyp.h, oelib/atomtyp.txt, oelib/balst.cpp, oelib/base.cpp, oelib/base.h, oelib/bgf.cpp, oelib/bin2hex.pl, oelib/binary.cpp, oelib/binary.h, oelib/binary_io.cpp, oelib/binary_io.h, oelib/bitgrid.cpp, oelib/bitgrid.h, oelib/bitvec.cpp, oelib/bitvec.h, oelib/bond.cpp, oelib/box.cpp, oelib/c3d.cpp, oelib/cacao.cpp, oelib/cache.cpp, oelib/car.cpp, oelib/ccc.cpp, oelib/chains.cpp, oelib/chains.h, oelib/chdrw.cpp, oelib/chiral.cpp, oelib/chiral.h, oelib/commandline.cpp, oelib/commandline.h, oelib/configure, oelib/csr.cpp, oelib/cssr.cpp, oelib/ctransform.cpp, oelib/ctransform.h, oelib/cwrap.cpp, oelib/cwrap.h, oelib/data.cpp, oelib/data.h, oelib/dmol.cpp, oelib/element.h, oelib/element.txt, oelib/extable.h, oelib/extable.txt, oelib/feat.cpp, oelib/fh.cpp, oelib/fileformat.cpp, oelib/fileformat.h, oelib/gamess.cpp, oelib/gaussian.cpp, oelib/generic.cpp, oelib/generic.h, oelib/ghemical.cpp, oelib/globals.cpp, oelib/grid.cpp, oelib/grid.h, oelib/gromos96.cpp, oelib/hin.cpp, oelib/jaguar.cpp, oelib/main.cpp, oelib/matrix.cpp, oelib/matrix.h, oelib/mdl.cpp, oelib/mmod.cpp, oelib/mol.cpp, oelib/mol.h, oelib/mol2.cpp, oelib/molchrg.cpp, oelib/molchrg.h, oelib/molvector.cpp, oelib/molvector.h, oelib/mopac.cpp, oelib/mpqc.cpp, oelib/nwchem.cpp, oelib/oeifstream.h, oelib/oelib.dsp, oelib/oelib.dsw, oelib/oeutil.cpp, oelib/oeutil.h, oelib/parsmart.cpp, oelib/parsmart.h, oelib/parsmi.cpp, oelib/patty.cpp, oelib/patty.h, oelib/pdb.cpp, oelib/phmodel.cpp, oelib/phmodel.h, oelib/phmodel.txt, oelib/phmodeldata.h, oelib/qchem.cpp, oelib/quat.c, oelib/rand.cpp, oelib/report.cpp, oelib/resdata.h, oelib/resdata.txt, oelib/ring.cpp, oelib/ring.h, oelib/rotor.cpp, oelib/rotor.h, oelib/smarts.cpp, oelib/smarts.h, oelib/smi.cpp, oelib/smi.h, oelib/tinker.cpp, oelib/tokenst.cpp, oelib/typer.cpp, oelib/typer.h, oelib/types.h, oelib/types.txt, oelib/unichem.cpp, oelib/version.h, oelib/xed.cpp, oelib/xyz.cpp, openbabel, openbabel/Makefile.in, openbabel/StdAfx.cpp, openbabel/StdAfx.h, openbabel/Vector.cpp, openbabel/Vector.h, openbabel/alchemy.cpp, openbabel/amber.cpp, openbabel/aromatic.h, openbabel/aromatic.txt, openbabel/atom.cpp, openbabel/atomtyp.h, openbabel/atomtyp.txt, openbabel/balst.cpp, openbabel/base.cpp, openbabel/base.h, openbabel/bgf.cpp, openbabel/bin2hex.pl, openbabel/binary.cpp, openbabel/binary.h, openbabel/binary_io.cpp, openbabel/binary_io.h, openbabel/bitgrid.cpp, openbabel/bitgrid.h, openbabel/bitvec.cpp, openbabel/bitvec.h, openbabel/bond.cpp, openbabel/box.cpp, openbabel/c3d.cpp, openbabel/cacao.cpp, openbabel/cache.cpp, openbabel/car.cpp, openbabel/ccc.cpp, openbabel/chains.cpp, openbabel/chains.h, openbabel/chdrw.cpp, openbabel/chiral.cpp, openbabel/chiral.h, openbabel/commandline.cpp, openbabel/commandline.h, openbabel/csr.cpp, openbabel/cssr.cpp, openbabel/ctransform.cpp, openbabel/ctransform.h, openbabel/cwrap.cpp, openbabel/cwrap.h, openbabel/data.cpp, openbabel/data.h, openbabel/dmol.cpp, openbabel/element.h, openbabel/element.txt, openbabel/extable.h, openbabel/extable.txt, openbabel/feat.cpp, openbabel/fh.cpp, openbabel/fileformat.cpp, openbabel/fileformat.h, openbabel/gamess.cpp, openbabel/gaussian.cpp, openbabel/generic.cpp, openbabel/generic.h, openbabel/ghemical.cpp, openbabel/grid.cpp, openbabel/grid.h, openbabel/gromos96.cpp, openbabel/hin.cpp, openbabel/jaguar.cpp, openbabel/main.cpp, openbabel/matrix.cpp, openbabel/matrix.h, openbabel/mdl.cpp, openbabel/mmod.cpp, openbabel/mol.cpp, openbabel/mol.h, openbabel/mol2.cpp, openbabel/molchrg.cpp, openbabel/molchrg.h, openbabel/molvector.cpp, openbabel/molvector.h, openbabel/mopac.cpp, openbabel/mpqc.cpp, openbabel/nwchem.cpp, openbabel/obifstream.h, openbabel/oblib.dsp, openbabel/oblib.dsw, openbabel/obutil.cpp, openbabel/obutil.h, openbabel/parsmart.cpp, openbabel/parsmart.h, openbabel/parsmi.cpp, openbabel/patty.cpp, openbabel/patty.h, openbabel/pdb.cpp, openbabel/phmodel.cpp, openbabel/phmodel.h, openbabel/phmodel.txt, openbabel/phmodeldata.h, openbabel/qchem.cpp, openbabel/quat.c, openbabel/rand.cpp, openbabel/report.cpp, openbabel/resdata.h, openbabel/resdata.txt, openbabel/ring.cpp, openbabel/ring.h, openbabel/rotor.cpp, openbabel/rotor.h, openbabel/smarts.cpp, openbabel/smarts.h, openbabel/smi.cpp, openbabel/smi.h, openbabel/tinker.cpp, openbabel/tokenst.cpp, openbabel/typer.cpp, openbabel/typer.h, openbabel/types.h, openbabel/types.txt, openbabel/unichem.cpp, openbabel/version.h, openbabel/xed.cpp, openbabel/xyz.cpp, src/common/Makefile.in, src/common/filetrans.cpp, src/common/filetrans.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/notice.cpp, src/common/utility.cpp, src/graphics/Makefile.in, src/graphics/docview.cpp, src/target3/Makefile.in: Updated with OpenBabel replacing OELib. 2002-01-10 18:28 hutchisn * src/graphics/mtools.h, src/graphics/views.cpp, src/graphics/views.h: Add data types for select modes and measure modes. 2002-01-10 18:20 hutchisn * oelib/gamess.cpp: Small fix for GAMESS file format. (this is a temporary issue until OpenBabel is imported in a day or so.) 2002-01-07 13:51 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h: some cleanups for the model classes, plus some documentation updates. 2002-01-05 23:00 hutchisn * aclocal.m4: Added Michael Banck's contributed SC tests. These have not yet been implemented into configure.in yet. 2002-01-02 14:40 thassine * INSTALL, src/common/Makefile.OLD, src/graphics/Makefile.OLD, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target3/Makefile.OLD: converted the old makefiles to use the Scientific Computation toolkit (SC toolkit) of MPQC, instead of the MPQC object files and headers directly. 2001-12-31 13:19 thassine * src/common/interface.cpp, src/common/interface.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/target3/t3mm1docv.cpp, src/target3/t3qm1docv.cpp: the all_atoms_interface is now implemented. it works as a bridge between MM and QM models, and offers a stadard set of functions to access atoms and bonds in them. the convert-to-MM/QM feature is now implemented using all_atoms_interface, and also the OELib/OpenBabel complatibility methods might fit into it. 2001-12-29 14:56 thassine * src/graphics/camera.cpp, src/graphics/camera.h, src/graphics/docview.cpp, src/graphics/objects.cpp, src/graphics/objects.h, src/graphics/views.h, src/target3/t3mm1docv.cpp, src/target3/t3qm1docv.cpp, src/target3/t3views.cpp: the convert-project-to-QM/MM and attach/detach-this-view operations now retain the graphics settings. 2001-12-29 11:51 thassine * src/graphics/views.cpp: the GLUT stroke fonts now make readable text in all cases, but 3D text (as in labels) is still misaligned. 2001-12-28 13:43 thassine * src/graphics/camera.cpp, src/graphics/mm1docv.cpp, src/graphics/mm2docv.cpp, src/graphics/qm1docv.cpp, src/graphics/views.cpp, src/graphics/views.h: tried to simplify the text rendering functions; also an initial support for line-based font rendering (using glutStrokeBitmap()) but it's still quite broken. 2001-12-20 11:11 thassine * src/graphics/mm1docv.cpp, src/graphics/views.cpp, src/graphics/views.h: the plots are now checked and commented; should work but UI is still console-based. 2001-12-19 14:47 thassine * src/graphics/mm1docv.cpp, src/graphics/mtools.cpp, src/graphics/views.cpp, src/graphics/views.h: now it's possible to scale colors of plot2d_view (using zoom mousetool), and the plot views now store and display the strcutures (using select/orbit/rotate tools); still need to do some testing for the plots but they look good for symmterical molecules. 2001-12-19 11:45 thassine * src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mtools.cpp, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/views.cpp, src/graphics/views.h: moved the enlevdiag_view class to the newly created plotting_view class family; now there is a consistent way to handle non-graphics (energy-level diagram, plot1d, plot2d) views. 2001-12-18 15:20 thassine * src/common/mm1eng1.cpp, src/common/mm1eng9.cpp: just docs clarified a bit... 2001-12-18 12:43 thassine * src/common/mm1eng1.cpp, src/common/mm1eng9.cpp, src/common/mm1mdl.cpp, src/graphics/mm1docv.cpp: a better tor-constraints added to mm1_eng classes for the 1d and 2d plots. 2001-12-18 07:53 thassine * INSTALL: updated the installation docs. 2001-12-17 15:17 thassine * src/common/intcrd.cpp, src/common/intcrd.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/views.cpp, src/graphics/views.h, src/target2/t2mm1docv.cpp, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3views.cpp, src/target3/t3views.h: added 1D and 2D energy vs. torsion angles-plotting feature; it compiles and even more or less works, but it still needs a lot of finishing. 2001-12-12 12:35 thassine * bin/user-docs/index.html, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/views.cpp, src/graphics/views.h, src/target2/t2qm1docv.cpp, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3docv.cpp, src/target3/t3docv.h, src/target3/t3mm1docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3qm1docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: added attach/detach feature for gnome_graphics_views. earlier it was somewhat difficult to use multiple views, because only one at a time could be looked at the GtkNotebook. now the views can be detached from the notebook to separate windows, and attached back to notebook as well. also some GLUT and plotting improvements are added. 2001-12-10 13:27 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/model.cpp, src/common/model.h, src/common/qm1alg.cpp, src/common/qm1alg.h, src/common/qm1e_mopac.cpp, src/common/qm1eng.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/target2/t2mm1docv.cpp, src/target2/t2qm1docv.cpp: a simple transition state search tool added for qm1_mdl; at the moment it's badly documented and only works in the GLUT user interface (target2). 2001-12-07 13:56 thassine * src/common/model.h, src/common/qm1mdl.cpp, src/graphics/qm1docv.cpp, src/target2/t2mm1docv.cpp, src/target2/t2mm2docv.cpp, src/target2/t2qm1docv.cpp: some t2 cleanups added, and improved qm1_mdl support for multiple crd-sets. 2001-12-05 16:11 thassine * src/common/mm1eng.h, src/common/mm1eng1.cpp, src/common/mm1eng1.h, src/common/mm1eng9.cpp, src/common/mm1eng9.h: added an initial framework for adding torsional constraints in molecular mechanics force fields; the old stuff should work as usual. 2001-12-05 14:53 thassine * src/common/errutil.cpp, src/common/notice.h, src/common/typedef.h, src/graphics/mm2rbn.cpp: added some Alpha platform fixes from Bob Williams. 2001-11-27 05:35 hutchisn * Makefile.in: Added distclean target and changed help destination to smooth with Debian package. 2001-11-27 05:32 hutchisn * src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3prefs.cpp: Added Selection Mode submenu (w/radio items) and fixed library error message. 2001-11-26 23:31 hutchisn * src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: Updated library feature to be fully user-configurable (# levels, directory path) Now also add submenus for subdirectories! 2001-11-26 09:05 thassine * src/target3/t3mm1docv.cpp, src/target3/t3views.h: minor fixes for 'Library', and some cleanups. 2001-11-21 05:28 hutchisn * src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3views.h: Add "library submenu" as a first draft--still needs to be user-configurable (recursive function to establish the menu) and still buggy. 2001-11-13 12:27 thassine * INSTALL, src/common/mm1mdl.h, src/common/mm2mdl.h, src/common/qm1mdl.h, src/common/qm2mdl.h, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/target3/t3main.cpp, src/target3/t3mm1docv.cpp, src/target3/t3qm1docv.cpp, src/target3/t3views.cpp: made the SelectNone feature as a combination of SelectAll and InvertSelection (less code this way), and added some enhancements to FileOpen (graphics update forced, and possibly selected new atoms now replace the old selection). 2001-11-12 16:20 hutchisn * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/model.h, src/common/qm1mdl.h, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: Added SelectNone() and support for "inserting" files (open with molecules selected). 2001-11-09 18:32 hutchisn * oelib/mol.cpp, src/common/filetrans.cpp: Fix bug with OELib making Kekule structures. OELib now no longer clears flags for perceived Aromatic bonds and atoms. Our code makes bonds conjugated if OE has marked the bond as aromatic. 2001-11-08 10:19 thassine * configure, configure.in, src/common/define.h: back to devel settings, version number changed to 0.82. 2001-11-08 07:51 thassine * CHANGES, src/common/define.h: some final changes for the new release; this is released as 0.81. 2001-11-07 09:43 thassine * CHANGES, INSTALL, bin/user-docs/index.html: some documentation updates added. 2001-10-29 15:48 thassine * src/common/define.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/graphics/mm1docv.cpp, src/target2/t2mm1docv.cpp, src/target2/t2mm2docv.cpp, src/target3/t3docv.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h, src/target3/t3qm1docv.cpp: some generic improvements added: some t3 file operations added and mm1_mdl labels feature improved. 2001-10-23 13:10 thassine * src/common/mm1eng.cpp, src/common/mm1eng.h, src/common/mm1eng1.cpp, src/common/mm1eng1.h, src/common/mm1eng9.cpp, src/common/mm1eng9.h, src/common/mm1mdl.cpp, src/common/mm1tab1.cpp, src/common/mm1tab1.h, src/common/mm1tab9.cpp, src/common/mm1tab9.h, src/common/mm1util.cpp, src/common/mm2eng.cpp, src/common/mm2eng.h, src/common/mm2mdl.cpp, src/common/model.cpp, src/graphics/mm2docv.cpp, src/graphics/plane.cpp, src/graphics/surface.cpp, src/target1/t1m_mm2param_cpp.h, src/target1/t1main.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: did some cleanups for eng-classes (removed some old unnecessary parts); nothing should have changed in how the classes actually work. also tried to improve code readability generally. in summary: everything should still work as it used to... 2001-10-18 15:01 thassine * src/common/mm1eng.cpp, src/common/mm1eng.h, src/common/mm1eng1.cpp, src/common/mm1eng1.h, src/common/mm1eng9.cpp, src/common/mm1eng9.h: a new energy term for out of plane bending must be added soon to forcefield; added an empty framework for the new term. 2001-10-08 14:39 thassine * bin/parameters/mm1param/stable/atomtypes.txt, bin/parameters/mm1param/stable/parameters1.txt, bin/parameters/mm1param/stable/parameters2.txt, bin/parameters/mm1param/stable/parameters3.txt, bin/parameters/mm1param/stable/parameters4.txt, bin/parameters/mm1param/stable/parameters5.txt, bin/parameters/mm1param/unstable/atomtypes.txt, bin/parameters/mm1param/unstable/parameters1.txt, bin/parameters/mm1param/unstable/parameters2.txt, bin/parameters/mm1param/unstable/parameters3.txt, bin/parameters/mm1param/unstable/parameters4.txt, bin/parameters/mm1param/unstable/parameters5.txt, src/common/mm1eng1.h, src/common/mm1eng9.h, src/common/mm1mdl.cpp, src/common/mm1tab1.cpp, src/common/mm1tab1.h, src/common/mm1tab9.cpp, src/common/mm1tab9.h: made some rearrangements at mm1_eng classes that make expermimentation with the classes easier; also the parameter files have been changed so you should do the #make install# for this version. 2001-10-03 10:56 thassine * CHANGES, PROJECT: changed the old manually maintained changes-file to a newer log that is maintained using a cvs2cl.pl utility; it makes a logfile using cvs log information; see http://www.red-bean.com/cvs2cl/ 2001-10-03 10:47 thassine * src/common/mm2mdl.h, src/common/qm2mdl.h, src/target3/t3main.cpp, src/target3/t3prefs.cpp: a temporary modification done for colour prefs at t3prefs.cpp where the default values are just quickly returned (a quick fix to improve graphics performance of 0.80 compared to 0.42). 2001-10-01 03:50 hutchisn * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.h, src/common/model.h, src/common/qm1mdl.h, src/target3/glade_callbacks.cpp, src/target3/t3main.cpp: Moved import code into mm1model so it can be called from other parts of the code. Added support for command-line flags, e.g. -f opens a ghemical file, -i imports a file. And any remaining arguments are assumed to be filenames to import. (Keep in mind that we can import a .mm1gp or .qm1gp anyway.) Allows $PATH/ghemical to be used as a web helper application. 2001-10-01 03:42 hutchisn * oelib/data.cpp: Fix bugs with extension handling--make sure to lowercase before comparisons. Fixes problems, e.g. .PDB = .pdb 2001-10-01 03:39 hutchisn * oelib/element.txt: Fix max valence on P to allow PF6, etc. 2001-09-27 12:57 thassine * src/common/define.h: changed the main web address to www.bioinformatics.org 2001-09-27 12:14 thassine * CHANGES, miniMOPAC/README, miniMOPAC/fortran/iter.f, miniMOPAC/iter.c: mopac iter.f changed so that the program is not closed even if SCF convergence problems; the mopac geometry optimization is now much more resistant to crashes. 2001-09-26 14:35 thassine * CHANGES, INSTALL, miniMOPAC/README, miniMOPAC/esp.c, miniMOPAC/fortran/esp.f, miniMOPAC/fortran/iter.f, miniMOPAC/fortran/minimopac.f, miniMOPAC/fortran/mopac.f, miniMOPAC/iter.c, miniMOPAC/minimopac.c, src/common/qm1e_mopac.cpp: some MOPAC fortran code cleanups; unnecessary file operations removed, and output is now directed to console. now works also with redhat 7.1??? 2001-09-24 14:21 thassine * src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/qm1docv.cpp: added to measure tool a set if model-independent measurement functions in an effort to make it simpler. 2001-09-24 13:10 thassine * BUGLIST, src/target2/t2qm1docv.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: a new known bug was added; qm1 geomopt dialog was added for gnome version. 2001-09-14 21:17 hutchisn * Makefile.in, bin/ghemical.png, src/common/Makefile.in, src/graphics/Makefile.in, src/target3/Makefile.in: Add distclean targets to Makefiles 2001-09-14 13:08 thassine * src/graphics/views.cpp: the energy level diagram now tries to detect degenerate energy levels (like in N2 or F2) and draw them side by side rather than overlapped. 2001-09-14 10:44 thassine * src/graphics/docview.cpp, src/graphics/mm1docv.cpp: completed the fixes for known mem leaks at docview.cpp 2001-09-07 23:20 hutchisn * oelib, oelib/.cvsignore, oelib/configure, oelib/dmol.cpp, src/common/filetrans.cpp, src/graphics/docview.cpp, src/graphics/mm1docv.cpp, src/graphics/views.cpp, src/target3/t3prefs.cpp: Fix a few memory leaks and bugs. 2001-09-07 13:22 thassine * CHANGES, configure, configure.in, src/common/define.h: development starts again, promoted version number to 0.81 2001-09-06 07:21 thassine * CHANGES, INSTALL, bin/user-docs/index.html, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/target2/t2mm1docv.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: did a last-minute addition of random conformational search; this is released as version 0.80 2001-09-05 13:37 thassine * CHANGES, INSTALL, bin/user-docs/index.html: final fixes to documentation etc... 2001-09-04 09:38 thassine * src/common/mm1eng1.cpp, src/common/mm1eng9.cpp, src/common/mm1mdl.h, src/common/mm1tab1.cpp, src/common/mm1tab9.cpp: some cleanups at MM eng/tab classes. 2001-09-04 08:07 thassine * src/common/mm1eng.h, src/common/mm1tab1.cpp, src/common/mm1tab9.cpp: minor changes and cleanups. 2001-09-03 10:01 thassine * src/common/mm1tab1.cpp, src/common/mm1tab9.cpp, src/common/mm1util.cpp, src/common/mm1util.h: a minor cleanup for mm1_typerule. 2001-09-03 07:06 thassine * miniMOPAC/README, src/common/mm1mdl.h: minor additions to mm1_mdl and MOPAC docs. 2001-08-30 04:22 hutchisn * oelib/Makefile.in, oelib/atom.cpp, oelib/base.cpp, oelib/base.h, oelib/binary.cpp, oelib/binary_io.cpp, oelib/binary_io.h, oelib/bitgrid.cpp, oelib/bond.cpp, oelib/chains.cpp, oelib/chiral.cpp, oelib/ctransform.cpp, oelib/ctransform.h, oelib/data.cpp, oelib/data.h, oelib/element.h, oelib/element.txt, oelib/gamess.cpp, oelib/generic.cpp, oelib/generic.h, oelib/jaguar.cpp, oelib/main.cpp, oelib/mdl.cpp, oelib/mol.cpp, oelib/mol.h, oelib/oeutil.cpp, oelib/oeutil.h, oelib/parsmart.cpp, oelib/parsmart.h, oelib/parsmi.cpp, oelib/patty.cpp, oelib/patty.h, oelib/phmodel.cpp, oelib/phmodel.txt, oelib/ring.cpp, oelib/ring.h, oelib/smarts.cpp, oelib/smarts.h, oelib/smi.cpp, oelib/tokenst.cpp, oelib/typer.cpp, src/common/filetrans.cpp: Update with new OELib code -- a few new filetypes, cleanups and better bonding for QM files. 2001-08-29 13:21 thassine * AUTHORS, src/graphics/camera.cpp, src/graphics/camera.h, src/target3/t3main.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3qm1docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: added an alternative way for camera setup in stereo viewing modes; copyright notices etc updated. 2001-08-29 10:18 thassine * src/target3/t3mm1docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: added Mike's stereo code (under target3). 2001-08-29 10:18 thassine * src/graphics/camera.cpp, src/graphics/camera.h: added Mike's stereo code (under graphics). 2001-08-29 07:08 thassine * configure, configure.in, src/common/define.h, src/common/qm1e_mopac.cpp, src/common/qm1e_mopac.h, src/common/qm1mdl.cpp: a safer mopac locking mechanism added, version number promoted to 0.80. 2001-08-28 07:04 thassine * INSTALL, miniMOPAC/README, miniMOPAC/fortran/minimopac.f, miniMOPAC/minimopac.c, src/common/qm1e_mopac.cpp: mopac engine now survives from change of molecule (the fortran variables NUMCAL and ISOK were handled wrong), and some docs updated. 2001-08-27 12:35 thassine * bin/user-docs/enlevdiag.jpg, bin/user-docs/index.html, bin/user-docs/maintools.jpg: user's manual quickly updated. 2001-08-27 09:26 thassine * src/common/qm1e_mopac.cpp: added comments about a specifig bug in mopac. 2001-08-27 08:13 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/common/qm1e_mopac.cpp, src/common/qm1e_mopac.h, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h: hamiltonian/basis set selection added for QM engs. 2001-08-26 09:45 thassine * src/common/mm1alg.cpp, src/common/mm2alg.cpp, src/common/qm1alg.cpp, src/common/qm1e_mopac.cpp, src/common/qm1mdl.cpp: minor bugs fixed in mm1/qm1_geomopt::GetValue() where it calculated gradient when only energy was needed. also qm1_eng_mopac and qm1_geomopt settings are optimized for speed/stability (now simple molecules with good starting geometries are quite safe). 2001-08-25 14:48 thassine * src/common/qm1e_mopac.cpp, src/common/qm1e_mpqc.cpp, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/target3/glade/ghemical.glade, src/target3/glade/src/glade_interface.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp: now the total charge can be specified in QM models; also checking added for QM setup. 2001-08-25 11:50 thassine * src/common/qm1e_mpqc.cpp: energy level diagram now works for ab initio as well. 2001-08-24 13:12 thassine * src/common/qm1e_mopac.cpp, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h: force calculations + algorithms added for MPQC. 2001-08-24 08:34 thassine * src/common/qm1e_mopac.cpp, src/common/qm1mdl.cpp: fixed a gradient scaling bug in MOPAC engine; the geometry optimization is much more robust now. 2001-08-23 18:06 hutchisn * src/graphics/mm1docv.cpp, src/graphics/mm2docv.cpp, src/graphics/qm1docv.cpp, src/graphics/views.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3qm1docv.cpp: Migrate general "Graphics" prefs section to MM1Graphics, etc. 2001-08-23 12:38 thassine * src/common/engine.h, src/common/mm1eng.cpp, src/common/mm1eng.h, src/common/mm2eng.cpp, src/common/mm2eng.h, src/common/qm1e_mopac.cpp, src/common/qm1e_mopac.h, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h, src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm1mdl.cpp, src/graphics/views.cpp, src/target2/t2mm1docv.cpp, src/target2/t2qm1docv.cpp: many smaller cleanups/fixes... 2001-08-22 22:21 hutchisn * src/graphics/mm1docv.cpp, src/graphics/qm1docv.cpp: add QM measure functionality 2001-08-22 22:20 hutchisn * src/common/mm1mdl.cpp, src/common/mm2mdl.cpp, src/common/qm1mdl.cpp: Use sprintf to give a standardized output to the geometry opt. output. 2001-08-22 16:31 hutchisn * src/common/qm1mdl.cpp, src/target3/t3qm1docv.cpp: Use the same methods for ImportMM command as "convert" routines--and make sure we update the title! 2001-08-22 13:27 thassine * src/common/mm1mdl.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/qm1docv.cpp, src/target3/t3docv.cpp, src/target3/t3mm1docv.cpp, src/target3/t3qm1docv.cpp: various smaller changes... 2001-08-22 11:18 thassine * CHANGES, src/common/qm1e_mopac.cpp, src/common/qm1e_mopac.h, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h, src/common/qm1eng.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/graphics/mtools.cpp, src/graphics/mtools.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/views.cpp, src/graphics/views.h, src/target2/t2qm1docv.cpp, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3views.cpp, src/target3/t3views.h: an initial version of energy-level diagrams for QM models added (now works for mopac only). 2001-08-21 15:07 hutchisn * src/graphics/mm2docv.cpp, src/target3/t3qm1docv.cpp: Add more config use in QM and MM2 modes. 2001-08-21 15:07 hutchisn * src/target3/t3mm1docv.cpp: Add minimal MM -> QM conversion code. Doesn't quite set the filename correctly but otherwise pretty much correct. 2001-08-20 11:03 thassine * CHANGES, miniMOPAC/esp.c, miniMOPAC/fortran/esp.f, src/common/qm1e_mopac.cpp, src/common/qm1e_mpqc.cpp, src/graphics/qm1docv.cpp, src/target2/t2qm1docv.cpp, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: the rest of qm1_eng_mopac plots added, and a scaling bug in MO plots fixed. 2001-08-18 09:45 thassine * CHANGES, miniMOPAC/README, miniMOPAC/fortran/minimopac.f, miniMOPAC/minimopac.c, src/common/qm1e_mopac.cpp: some cleanups done in qm1_eng_mopac (the fortran and C code are now better separated, easier to maintain). 2001-08-18 07:01 thassine * miniMOPAC/fortran/SIZES: ooops, forgot to add the SIZES file. 2001-08-17 17:17 thassine * miniMOPAC/fortran/esp.f, miniMOPAC/fortran/minimopac.f: added all changes to mopac fortran source before 2001-08-17. 2001-08-17 17:12 thassine * miniMOPAC/fortran, miniMOPAC/fortran/aababc.f, miniMOPAC/fortran/addfck.f, miniMOPAC/fortran/addhcr.f, miniMOPAC/fortran/addnuc.f, miniMOPAC/fortran/analyt.f, miniMOPAC/fortran/anavib.f, miniMOPAC/fortran/axis.f, miniMOPAC/fortran/block.f, miniMOPAC/fortran/bonds.f, miniMOPAC/fortran/brlzon.f, miniMOPAC/fortran/btoc.f, miniMOPAC/fortran/calpar.f, miniMOPAC/fortran/capcor.f, miniMOPAC/fortran/cdiag.f, miniMOPAC/fortran/chrge.f, miniMOPAC/fortran/cnvg.f, miniMOPAC/fortran/compfg.f, miniMOPAC/fortran/consts.f, miniMOPAC/fortran/cqden.f, miniMOPAC/fortran/datin.f, miniMOPAC/fortran/dcart.f, miniMOPAC/fortran/delmol.f, miniMOPAC/fortran/delri.f, miniMOPAC/fortran/denrot.f, miniMOPAC/fortran/densit.f, miniMOPAC/fortran/depvar.f, miniMOPAC/fortran/deri0.f, miniMOPAC/fortran/deri1.f, miniMOPAC/fortran/deri2.f, miniMOPAC/fortran/deri21.f, miniMOPAC/fortran/deri22.f, miniMOPAC/fortran/deri23.f, miniMOPAC/fortran/deritr.f, miniMOPAC/fortran/deriv.f, miniMOPAC/fortran/dernvo.f, miniMOPAC/fortran/ders.f, miniMOPAC/fortran/dfock2.f, miniMOPAC/fortran/dfpsav.f, miniMOPAC/fortran/dgemm.f, miniMOPAC/fortran/dgemv.f, miniMOPAC/fortran/dger.f, miniMOPAC/fortran/dgetf2.f, miniMOPAC/fortran/dgetrf.f, miniMOPAC/fortran/dgetri.f, miniMOPAC/fortran/diag.f, miniMOPAC/fortran/diat.f, miniMOPAC/fortran/diat2.f, miniMOPAC/fortran/diegrd.f, miniMOPAC/fortran/dielen.f, miniMOPAC/fortran/diis.f, miniMOPAC/fortran/dijkl1.f, miniMOPAC/fortran/dijkl2.f, miniMOPAC/fortran/dipind.f, miniMOPAC/fortran/dipole.f, miniMOPAC/fortran/dlaswp.f, miniMOPAC/fortran/dofs.f, miniMOPAC/fortran/dot.f, miniMOPAC/fortran/drc.f, miniMOPAC/fortran/drcout.f, miniMOPAC/fortran/dtrmm.f, miniMOPAC/fortran/dtrmv.f, miniMOPAC/fortran/dtrsm.f, miniMOPAC/fortran/dtrti2.f, miniMOPAC/fortran/dtrtri.f, miniMOPAC/fortran/dvfill.f, miniMOPAC/fortran/ef.f, miniMOPAC/fortran/enpart.f, miniMOPAC/fortran/esp.f, miniMOPAC/fortran/etime.c, miniMOPAC/fortran/exchng.f, miniMOPAC/fortran/fdate.c, miniMOPAC/fortran/ffhpol.f, miniMOPAC/fortran/flepo.f, miniMOPAC/fortran/fmat.f, miniMOPAC/fortran/fock1.f, miniMOPAC/fortran/fock2.f, miniMOPAC/fortran/force.f, miniMOPAC/fortran/formxy.f, miniMOPAC/fortran/forsav.f, miniMOPAC/fortran/frame.f, miniMOPAC/fortran/freqcy.f, miniMOPAC/fortran/geout.f, miniMOPAC/fortran/geoutg.f, miniMOPAC/fortran/getgeg.f, miniMOPAC/fortran/getgeo.f, miniMOPAC/fortran/getsym.f, miniMOPAC/fortran/gettxt.f, miniMOPAC/fortran/gmetry.f, miniMOPAC/fortran/gover.f, miniMOPAC/fortran/greenf.f, miniMOPAC/fortran/grid.f, miniMOPAC/fortran/h1elec.f, miniMOPAC/fortran/haddon.f, miniMOPAC/fortran/hcore.f, miniMOPAC/fortran/helect.f, miniMOPAC/fortran/hqrii.f, miniMOPAC/fortran/ijkl.f, miniMOPAC/fortran/ilaenv.f, miniMOPAC/fortran/initsv.f, miniMOPAC/fortran/interp.f, miniMOPAC/fortran/iter.f, miniMOPAC/fortran/jcarin.f, miniMOPAC/fortran/linmin.f, miniMOPAC/fortran/local.f, miniMOPAC/fortran/locmin.f, miniMOPAC/fortran/lsame.f, miniMOPAC/fortran/makpol.f, miniMOPAC/fortran/mamult.f, miniMOPAC/fortran/matou1.f, miniMOPAC/fortran/matout.f, miniMOPAC/fortran/matpak.f, miniMOPAC/fortran/meci.f, miniMOPAC/fortran/mecid.f, miniMOPAC/fortran/mecih.f, miniMOPAC/fortran/mecip.f, miniMOPAC/fortran/moldat.f, miniMOPAC/fortran/molval.f, miniMOPAC/fortran/mopac.f, miniMOPAC/fortran/mullik.f, miniMOPAC/fortran/mult.f, miniMOPAC/fortran/nllsq.f, miniMOPAC/fortran/nuchar.f, miniMOPAC/fortran/parsav.f, miniMOPAC/fortran/partxy.f, miniMOPAC/fortran/pathk.f, miniMOPAC/fortran/paths.f, miniMOPAC/fortran/perm.f, miniMOPAC/fortran/polar.f, miniMOPAC/fortran/powsav.f, miniMOPAC/fortran/powsq.f, miniMOPAC/fortran/prtdrc.f, miniMOPAC/fortran/quadr.f, miniMOPAC/fortran/react1.f, miniMOPAC/fortran/reada.f, miniMOPAC/fortran/readmo.f, miniMOPAC/fortran/refer.f, miniMOPAC/fortran/repp.f, miniMOPAC/fortran/rotat.f, miniMOPAC/fortran/rotate.f, miniMOPAC/fortran/rsp.f, miniMOPAC/fortran/search.f, miniMOPAC/fortran/second.f, miniMOPAC/fortran/setupg.f, miniMOPAC/fortran/solrot.f, miniMOPAC/fortran/swap.f, miniMOPAC/fortran/sympro.f, miniMOPAC/fortran/symtry.f, miniMOPAC/fortran/symtrz.f, miniMOPAC/fortran/thermo.f, miniMOPAC/fortran/timer.f, miniMOPAC/fortran/timout.f, miniMOPAC/fortran/update.f, miniMOPAC/fortran/upsurf.f, miniMOPAC/fortran/vecprt.f, miniMOPAC/fortran/writmo.f, miniMOPAC/fortran/wrtkey.f, miniMOPAC/fortran/wrttxt.f, miniMOPAC/fortran/xerbla.f, miniMOPAC/fortran/xyzint.f: added the original mopac-7.01-4 fortran source, since it seems to be impossible to maintain this stuff from f2c'd source. 2001-08-17 13:44 thassine * miniMOPAC/esp.c, src/common/qm1e_mopac.cpp: miniMOPAC tweaks; ESP plot drawing is now faster, plus MO plotting added. 2001-08-16 10:40 thassine * CHANGES, miniMOPAC/README: added some documentation about the mopac ESP plots. 2001-08-15 13:04 thassine * miniMOPAC/esp.c, src/common/qm1e_mopac.cpp: ESP plotting added to MOPAC-engine (1st working version). 2001-08-13 13:14 thassine * src/common/Makefile.OLD, src/common/Makefile.in, src/common/interface.cpp, src/common/interface.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/target2/t2mm2docv.cpp, src/target3/glade_callbacks.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h: trajectory viewer for mm2_mdl added (and fixed the timestep of MD). 2001-08-09 08:30 thassine * CHANGES, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h: the plotting stuff for mm2_mdl is now also added. 2001-08-08 13:29 thassine * CHANGES, src/common/mm2mdl.cpp, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2mm2docv.cpp, src/target2/t2mm2docv.h, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h: algorithms for mm2_mdl are added. 2001-08-08 10:36 thassine * src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/t3docv.cpp, src/target3/t3docv.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: glade_modal_dialog_owner moved into glade_docv class, in order to make the dialogs work with multiple mdl-classes. 2001-08-03 21:04 hutchisn * src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h: Moved InitGL() to parent DocumentView class--allows all classes to inherit config code easily. 2001-08-03 13:09 thassine * src/target3/glade/README, src/target3/glade/ghemical.glade, src/target3/glade/src/Makefile, src/target3/glade/src/glade_callbacks.cpp, src/target3/glade/src/glade_callbacks.h, src/target3/glade/src/glade_interface.cpp, src/target3/glade/src/glade_interface.h, src/target3/glade/src/glade_support.cpp, src/target3/glade/src/main.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_callbacks.h, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/t3mm1docv.cpp: rebuilt the glade code; some docs added for the glade stuff. 2001-08-02 11:36 thassine * src/common/qm1e_mpqc.cpp, src/target2/t2mm1docv.cpp, src/target2/t2mm2docv.cpp, src/target2/t2qm1docv.cpp, src/target3/t3mm1docv.cpp, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: ESP plotting added to qm1_eng_mpqc. 2001-08-01 13:46 thassine * CHANGES, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2alg.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/qm1e_mpqc.cpp, src/common/qm1eng.cpp, src/common/qm1eng.h, src/target2/t2mm1docv.cpp, src/target2/t2mm2docv.cpp, src/target2/t2qm1docv.cpp: small improvements for mm2_mdl and qm1_eng_mpqc but nothing ready yet. 2001-07-30 12:07 thassine * src/graphics/mm1docv.cpp, src/graphics/mm2docv.cpp, src/graphics/qm1docv.cpp, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: the 4 first shortcut buttons work now. 2001-07-30 08:14 thassine * src/graphics/mm1docv.cpp, src/graphics/mm2docv.cpp, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h: added MeasureEvent() also to (obsolete) qm2_mdl. 2001-07-28 18:46 hutchisn * src/graphics/camera.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm1rbn.cpp, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/target3/t3mm1docv.cpp: Add preliminary measure tool code. Works well--need to add "modes" 2001-07-24 17:04 hutchisn * src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mtools.cpp: Change rendering to support more prefs--including passing prefs for element colors. 2001-07-24 17:00 hutchisn * src/graphics/camera.cpp, src/graphics/camera.h: Improve selection with wireframe slightly and add Measure enum. 2001-07-24 16:56 hutchisn * src/common/utility.cpp, src/common/utility.h: Change elements to allow prefs class to override colors and VdW radii. 2001-07-24 16:55 hutchisn * src/common/prefs.cpp, src/common/prefs.h, src/target3/t3prefs.cpp, src/target3/t3prefs.h: Add Color methods 2001-07-24 16:55 hutchisn * src/common/filetrans.cpp, src/common/mm1mdl.cpp: Fix OELib bond synchronization and switch hydrogens to use OELib method. 2001-07-23 23:10 hutchisn * src/target3/pixmaps/bond.xpm, src/target3/pixmaps/chain.xpm, src/target3/pixmaps/element.xpm, src/target3/pixmaps/invert.xpm, src/target3/pixmaps/molecule.xpm, src/target3/pixmaps/residue.xpm, src/target3/t3main.cpp: Added sample pixmaps for shortcut bar. 2001-07-22 14:28 thassine * src/target1/t1m_mm2param_cpp.h, src/target1/t1m_mm2param_h.h: added some files for mm2_mdl. 2001-07-22 13:37 thassine * miniMOPAC/README, miniMOPAC/dgetf2.c, miniMOPAC/dgetri.c, miniMOPAC/dlaswp.c, miniMOPAC/dtrti2.c, miniMOPAC/ef.c, src/common/Makefile.OLD, src/common/factory.cpp, src/common/factory.h, src/common/prefs.cpp, src/common/prefs.h, src/common/qm1e_mopac.cpp, src/common/qm1e_mopac.h, src/common/qm1e_mpqc.cpp, src/graphics/Makefile.OLD, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/Makefile.OLD, src/target3/t3mm1docv.cpp, src/target3/t3prefs.cpp, src/target3/t3prefs.h, src/target3/t3qm1docv.cpp, src/target3/t3views.h: some mopac/mpqc conflicts fixed, and mopac intermediate files FOR005 FOR006 SHUTDOWN cleaned. 2001-07-20 19:30 hutchisn * src/common/factory.h, src/common/model.cpp, src/common/model.h, src/graphics/mm1docv.cpp, src/target3/t3prefs.cpp, src/target3/t3prefs.h, src/target3/t3views.cpp, src/target3/t3views.h: Finished implementation of prefs class through GNOME config classes. Currently nothing sets prefs from the code, and rendering is an example of accessing pref values. 2001-07-09 13:07 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/model.cpp, src/common/model.h, src/common/qm1mdl.cpp, src/graphics/camera.cpp, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/qm1docv.cpp, src/graphics/views.cpp, src/target2/t2mm1docv.cpp: some comments added and arrangements done for stereo image viewing. 2001-06-29 12:15 thassine * src/common/intcrd.cpp, src/common/intcrd.h, src/common/mm1ic.cpp, src/common/mm1ic.h: ooops, forgot to add some files in the last commit. 2001-06-29 12:12 thassine * src/common/Makefile.OLD, src/common/Makefile.in, src/common/mm1alg.cpp, src/common/mm1alg.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/common/model.cpp, src/common/model.h, src/common/qm1mdl.cpp, src/target2/t2mm1docv.cpp: some groundwork added for mm1_mdl multiple crd_sets and conformational search tools. 2001-06-25 11:21 thassine * bin/user-docs/index.html, src/common/notice.cpp, src/common/notice.h, src/target3/t3main.cpp: minor updates in user's manual and copyright notices (MOPAC included). 2001-06-21 08:49 thassine * CHANGES, src/graphics/camera.cpp, src/graphics/docview.cpp, src/graphics/docview.h, src/target3/t3docv.cpp, src/target3/t3docv.h, src/target3/t3main.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3views.cpp, src/target3/t3views.h: gnome MDI system revised; one view/child (GtkNotebook container), project views now grouped together. 2001-06-19 13:15 thassine * miniMOPAC/etime.c, src/common/conjgrad.h, src/common/errutil.cpp, src/common/factory.cpp, src/common/filetrans.cpp, src/common/filetrans.h, src/common/mm1eng.cpp, src/common/mm1eng.h, src/common/mm1eng1.cpp, src/common/mm1eng1.h, src/common/mm1eng9.cpp, src/common/mm1eng9.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm1tab1.cpp, src/common/mm1tab1.h, src/common/mm1tab9.cpp, src/common/mm1tab9.h, src/common/mm1util.cpp, src/common/mm1util.h, src/common/mm2eng.cpp, src/common/mm2eng.h, src/common/mm2mdl.h, src/common/mm2util.h, src/common/model.cpp, src/common/model.h, src/common/notice.cpp, src/common/notice.h, src/common/prefs.cpp, src/common/qm1e_mopac.cpp, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/typedef.h, src/common/utility.cpp, src/common/v3d.h, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm2docv.cpp, src/graphics/objects.cpp, src/graphics/objects.h, src/graphics/plane.cpp, src/graphics/surface.cpp, src/graphics/surface.h, src/target2/t2main.h, src/target2/t2mm1docv.cpp, src/target2/t2mm2docv.cpp, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/t3dialog.cpp, src/target3/t3docv.cpp, src/target3/t3docv.h, src/target3/t3errutil.cpp, src/target3/t3main.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3prefs.cpp, src/target3/t3qm1docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: some cleanups done for redhat7.1 (seems to work) and gcc3.0 (still some stl/namespace problems?). 2001-06-13 13:30 thassine * src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: some menuitems added, and an initial mm1gp <-> qm1gp conversion feature 2001-05-28 12:47 thassine * src/common/filetrans.cpp: some comments added 2001-05-23 13:28 thassine * src/common/factory.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/target2/t2views.h, src/target3/t3views.h: just some cleanups here and there 2001-05-21 14:45 thassine * src/common/mm1mdl.cpp: again some readpdb tweaks. 2001-05-21 10:39 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h: some readpdb changes again 2001-05-18 13:09 thassine * src/common/factory.cpp, src/common/factory.h: ooops, forgot to add the class_factory files... 2001-05-18 13:07 thassine * CHANGES, src/common/Makefile.OLD, src/common/Makefile.in, src/common/errutil.cpp, src/common/errutil.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/model.cpp, src/common/model.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/graphics/views.h, src/target1/t1main.cpp, src/target2/t2docv.cpp, src/target2/t2docv.h, src/target2/t2main.cpp, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2mm2docv.cpp, src/target2/t2mm2docv.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3docv.cpp, src/target3/t3docv.h, src/target3/t3errutil.cpp, src/target3/t3errutil.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h, src/target3/t3views.cpp, src/target3/t3views.h: many factory classes combined to class_factory. 2001-05-16 11:30 thassine * src/target3/t3main.cpp: just added some buttons, to see what it looks like... 2001-05-16 03:56 hutchisn * src/common/Makefile.in, src/common/prefs.cpp, src/common/prefs.h, src/target3/Makefile.in, src/target3/t3prefs.cpp, src/target3/t3prefs.h: Add new "prefs" class to interface with gnome-config to allow user-config for various things. 2001-05-15 11:57 thassine * src/common/mm1mdl.cpp: again some fixes to readpdb 2001-05-15 08:49 thassine * src/common/mm1mdl.cpp: just some fixes added to readpdb 2001-05-14 09:10 thassine * src/common/mm1mdl.cpp, src/target3/t3mm1docv.cpp: organized menus a bit, some changes to readpdb 2001-05-11 15:18 hutchisn * src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: Add stubs for export graphics, as well as "zap all" and "compute formula" 2001-05-11 12:10 thassine * src/graphics/mtools.cpp, src/graphics/mtools.h, src/graphics/views.cpp, src/graphics/views.h, src/target3/t3main.cpp, src/target3/t3main.h: switched to a single measure tool, multiple toolbars added. 2001-05-08 11:25 thassine * miniMOPAC/Makefile: miniMOPAC/Makefile removed; configure will update it. 2001-05-08 11:22 thassine * miniMOPAC/Makefile, miniMOPAC/Makefile.OLD, src/Makefile.OLD, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/model.h, src/target2/t2mm2docv.cpp: some improvements to readpdb; it now reads multiple crd-sets present in NMR entries 2001-05-07 14:33 hutchisn * src/graphics/Makefile.in: Remove io-* from build list until GNOME catches up (!) 2001-05-04 20:32 hutchisn * src/target3/t3main.cpp, src/target3/t3main.h: Add buttons for measure tools. 2001-05-04 20:31 hutchisn * src/graphics/mtools.cpp, src/graphics/mtools.h, src/graphics/views.cpp, src/graphics/views.h: Add tools for measurements. 2001-05-04 20:30 hutchisn * src/target3/pixmaps, src/target3/pixmaps/.cvsignore, src/target3/pixmaps/angle.xpm, src/target3/pixmaps/dihedral.xpm, src/target3/pixmaps/distance.xpm, src/target3/pixmaps/draw.xpm, src/target3/pixmaps/erase.xpm, src/target3/pixmaps/orb_xy.xpm, src/target3/pixmaps/orb_z.xpm, src/target3/pixmaps/rot_xy.xpm, src/target3/pixmaps/rot_z.xpm, src/target3/pixmaps/select.xpm, src/target3/pixmaps/trans_xy.xpm, src/target3/pixmaps/trans_z.xpm, src/target3/pixmaps/zoom.xpm: Add transparency to button pics and buttons for measure tools. 2001-05-04 18:28 hutchisn * src/graphics/docview.cpp, src/graphics/docview.h, src/target3/t3docv.cpp, src/target3/t3docv.h: Changes to make sure window titles update when importing. 2001-05-04 18:27 hutchisn * src/target3/Makefile.in: Make sure miniMOPAC is compiled in. 2001-05-04 18:26 hutchisn * src/graphics/Makefile.in: Compile io-* for exporting. 2001-05-04 16:39 hutchisn * src/common/mm1mdl.cpp, src/common/mm1mdl.h: Added CLear and DoFormula methods. 2001-05-04 16:38 hutchisn * src/common/Makefile.in: Remove EXTERN_GLOBALS -- not needed 2001-05-04 16:37 hutchisn * src/graphics/io-jpg.cpp, src/graphics/io-jpg.h, src/graphics/io-png.cpp, src/graphics/io-png.h: Add GNOME code for exporting GdkPixbuf -> PNG or JPEG files. 2001-05-04 15:51 hutchisn * oelib/aromatic.h, oelib/atom.cpp, oelib/atomtyp.h, oelib/bin2hex.pl, oelib/binary.cpp, oelib/binary.h, oelib/binary_io.cpp, oelib/binary_io.h, oelib/chains.cpp, oelib/chains.h, oelib/configure, oelib/ctransform.cpp, oelib/ctransform.h, oelib/data.cpp, oelib/data.h, oelib/dmol.cpp, oelib/element.h, oelib/extable.h, oelib/extable.txt, oelib/fileformat.cpp, oelib/fileformat.h, oelib/gaussian.cpp, oelib/generic.cpp, oelib/generic.h, oelib/ghemical.cpp, oelib/jaguar.cpp, oelib/main.cpp, oelib/matrix.cpp, oelib/matrix.h, oelib/mdl.cpp, oelib/mol.cpp, oelib/mol.h, oelib/mol2.cpp, oelib/mopac.cpp, oelib/nwchem.cpp, oelib/oelib.dsp, oelib/oeutil.cpp, oelib/oeutil.h, oelib/parsmart.cpp, oelib/parsmi.cpp, oelib/phmodel.cpp, oelib/phmodeldata.h, oelib/report.cpp, oelib/resdata.h, oelib/rotor.cpp, oelib/smi.cpp, oelib/typer.cpp, oelib/types.h: Update with current OELib version. 2001-05-03 16:52 hutchisn * Makefile.in, configure, configure.in, miniMOPAC/Makefile.in, oelib/Makefile.in: Update for miniMOPAC, test for g2c/f2c library (hopefully). 2001-05-03 16:50 hutchisn * src/target3/glade/ghemical.glade, src/target3/glade/src/glade_interface.cpp, src/target3/glade/src/glade_interface.h, src/target3/glade/src/glade_support.cpp: Add Element options dialog to glade. 2001-05-02 09:31 thassine * src/common/mm1mdl.cpp: added a small fix to readpdb so that it can read also NMR entries. 2001-04-30 10:58 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h: some improvements to readpdb-functions. 2001-04-27 12:40 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/target2/t2mm1docv.cpp, src/target2/t2mm2docv.cpp: revived ImportENT_OLD and changed them to readpdb-functions (for advanced PDB file imports) 2001-04-24 11:10 thassine * INSTALL, src/common/Makefile.OLD, src/target3/t3dialog.cpp: documentation, old makefile, t3 bondtype dialog fixed a bit. 2001-04-20 10:11 thassine * src/common/Makefile.OLD, src/common/Makefile.in, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm2alg.cpp, src/common/mm2alg.h, src/common/mm2mdl.h, src/common/model.h, src/target2/t2mm2docv.cpp: continued merging the mm2_mdl. 2001-04-19 10:16 thassine * src/common/mm1mdl.h, src/common/mm2eng.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/mm2util.cpp, src/common/mm2util.h, src/common/model.cpp, src/common/model.h, src/common/qm1mdl.h, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/qm2docv.h, src/target2/t2mm1docv.h, src/target2/t2mm2docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.h: continued merging the mm2_mdl, plus some cleanups. 2001-04-18 11:04 thassine * CHANGES, bin/parameters/mm2param, bin/parameters/mm2param/loopdip.txt, bin/parameters/mm2param/looptor.txt, src/common/Makefile.OLD, src/common/Makefile.in, src/common/mm1mdl.h, src/common/mm1util.h, src/common/mm2eng.cpp, src/common/mm2eng.h, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/target2/t2mm1docv.cpp, src/target2/t2mm2docv.cpp, src/target2/t2mm2docv.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h: started merging the mm2_mdl code (accepted for publication :) 2001-04-18 08:22 thassine * CHANGES, miniMOPAC, miniMOPAC/Makefile, miniMOPAC/Makefile.OLD, miniMOPAC/README, miniMOPAC/aababc.c, miniMOPAC/addfck.c, miniMOPAC/addhcr.c, miniMOPAC/addnuc.c, miniMOPAC/analyt.c, miniMOPAC/anavib.c, miniMOPAC/axis.c, miniMOPAC/block.c, miniMOPAC/bonds.c, miniMOPAC/brlzon.c, miniMOPAC/btoc.c, miniMOPAC/calpar.c, miniMOPAC/capcor.c, miniMOPAC/cdiag.c, miniMOPAC/chrge.c, miniMOPAC/cnvg.c, miniMOPAC/compfg.c, miniMOPAC/consts.c, miniMOPAC/cqden.c, miniMOPAC/datin.c, miniMOPAC/dcart.c, miniMOPAC/delmol.c, miniMOPAC/delri.c, miniMOPAC/denrot.c, miniMOPAC/densit.c, miniMOPAC/depvar.c, miniMOPAC/deri0.c, miniMOPAC/deri1.c, miniMOPAC/deri2.c, miniMOPAC/deri21.c, miniMOPAC/deri22.c, miniMOPAC/deri23.c, miniMOPAC/deritr.c, miniMOPAC/deriv.c, miniMOPAC/dernvo.c, miniMOPAC/ders.c, miniMOPAC/dfock2.c, miniMOPAC/dfpsav.c, miniMOPAC/dgemm.c, miniMOPAC/dgemv.c, miniMOPAC/dger.c, miniMOPAC/dgetf2.c, miniMOPAC/dgetrf.c, miniMOPAC/dgetri.c, miniMOPAC/diag.c, miniMOPAC/diat.c, miniMOPAC/diat2.c, miniMOPAC/diegrd.c, miniMOPAC/dielen.c, miniMOPAC/diis.c, miniMOPAC/dijkl1.c, miniMOPAC/dijkl2.c, miniMOPAC/dipind.c, miniMOPAC/dipole.c, miniMOPAC/dlaswp.c, miniMOPAC/dofs.c, miniMOPAC/dot.c, miniMOPAC/drc.c, miniMOPAC/drcout.c, miniMOPAC/dtrmm.c, miniMOPAC/dtrmv.c, miniMOPAC/dtrsm.c, miniMOPAC/dtrti2.c, miniMOPAC/dtrtri.c, miniMOPAC/dvfill.c, miniMOPAC/ef.c, miniMOPAC/enpart.c, miniMOPAC/esp.c, miniMOPAC/etime.c, miniMOPAC/exchng.c, miniMOPAC/fdate.c, miniMOPAC/ffhpol.c, miniMOPAC/flepo.c, miniMOPAC/fmat.c, miniMOPAC/fock1.c, miniMOPAC/fock2.c, miniMOPAC/force.c, miniMOPAC/formxy.c, miniMOPAC/forsav.c, miniMOPAC/frame.c, miniMOPAC/freqcy.c, miniMOPAC/geout.c, miniMOPAC/geoutg.c, miniMOPAC/getgeg.c, miniMOPAC/getgeo.c, miniMOPAC/getsym.c, miniMOPAC/gettxt.c, miniMOPAC/gmetry.c, miniMOPAC/gover.c, miniMOPAC/greenf.c, miniMOPAC/grid.c, miniMOPAC/h1elec.c, miniMOPAC/haddon.c, miniMOPAC/hcore.c, miniMOPAC/helect.c, miniMOPAC/hqrii.c, miniMOPAC/ijkl.c, miniMOPAC/ilaenv.c, miniMOPAC/initsv.c, miniMOPAC/interp.c, miniMOPAC/iter.c, miniMOPAC/jcarin.c, miniMOPAC/linmin.c, miniMOPAC/local.c, miniMOPAC/locmin.c, miniMOPAC/lsame.c, miniMOPAC/makpol.c, miniMOPAC/mamult.c, miniMOPAC/matou1.c, miniMOPAC/matout.c, miniMOPAC/matpak.c, miniMOPAC/meci.c, miniMOPAC/mecid.c, miniMOPAC/mecih.c, miniMOPAC/mecip.c, miniMOPAC/minimopac.c, miniMOPAC/moldat.c, miniMOPAC/molval.c, miniMOPAC/mullik.c, miniMOPAC/mult.c, miniMOPAC/nllsq.c, miniMOPAC/nuchar.c, miniMOPAC/parsav.c, miniMOPAC/partxy.c, miniMOPAC/pathk.c, miniMOPAC/paths.c, miniMOPAC/perm.c, miniMOPAC/polar.c, miniMOPAC/powsav.c, miniMOPAC/powsq.c, miniMOPAC/prtdrc.c, miniMOPAC/quadr.c, miniMOPAC/react1.c, miniMOPAC/reada.c, miniMOPAC/readmo.c, miniMOPAC/refer.c, miniMOPAC/repp.c, miniMOPAC/rotat.c, miniMOPAC/rotate.c, miniMOPAC/rsp.c, miniMOPAC/search.c, miniMOPAC/second.c, miniMOPAC/setupg.c, miniMOPAC/solrot.c, miniMOPAC/swap.c, miniMOPAC/sympro.c, miniMOPAC/symtry.c, miniMOPAC/symtrz.c, miniMOPAC/thermo.c, miniMOPAC/timer.c, miniMOPAC/timout.c, miniMOPAC/update.c, miniMOPAC/upsurf.c, miniMOPAC/vecprt.c, miniMOPAC/writmo.c, miniMOPAC/wrtkey.c, miniMOPAC/wrttxt.c, miniMOPAC/xerbla.c, miniMOPAC/xyzint.c, src/common/Makefile.OLD, src/common/Makefile.in, src/common/errutil.cpp, src/common/qm1alg.cpp, src/common/qm1alg.h, src/common/qm1e_mopac.cpp, src/common/qm1e_mopac.h, src/common/qm1e_mpqc.cpp, src/common/qm1e_mpqc.h, src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm1eng1.cpp, src/common/qm1eng1.h, src/common/qm1eng9.cpp, src/common/qm1eng9.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/graphics/camera.h, src/graphics/mm1docv.cpp, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target2/t2mm1docv.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target3/Makefile.OLD, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: added miniMOPAC and QM geometry optimization. 2001-03-30 10:21 thassine * configure, configure.in, src/common/define.h: switched back to devel settings; the version number is now 0.43 2001-03-30 08:30 thassine * CHANGES, src/common/define.h, src/common/notice.cpp, src/target3/t3main.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm2docv.cpp, src/target3/t3qm1docv.cpp: minor cleanups; this is released as 0.42 2001-03-28 11:08 thassine * src/common/model.cpp, src/common/typedef.h, src/graphics/mm1docv.cpp, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target3/Makefile.OLD: some comments added, X11/ogl headers and libs removed from TARGET1. 2001-03-23 22:33 hutchisn * oelib/jaguar.cpp: Fix problems with Jaguar translator. 2001-03-22 16:43 hutchisn * src/graphics/mm1docv.cpp: Add new multiple-bond rendering. Now uses line stipple to render conjugated bonds fairly well. 2001-03-22 16:42 hutchisn * oelib/Makefile, oelib/Makefile.in, oelib/data.cpp, oelib/data.h, oelib/dmol.cpp, oelib/extable.txt, oelib/fileformat.cpp, oelib/fileformat.h, oelib/gamess.cpp, oelib/ghemical.cpp: Added Dmol format and cleanups. 2001-03-22 15:51 thassine * src/common/mm1util.h, src/graphics/mm1rbn.cpp, src/target2/t2mm1docv.cpp, src/target3/t3mm1docv.cpp: the bug with ribbon objects should now be fixed. 2001-03-19 11:46 thassine * oelib/Makefile, src/common/filetrans.cpp, src/common/filetrans.h: added syncronization for bonds into file_trans::Synchronize(). 2001-03-16 12:17 thassine * oelib/Makefile, src/common/filetrans.cpp, src/common/mm1mdl.cpp, src/common/utility.cpp, src/common/utility.h, src/target2/t2mm1docv.cpp: oelib syncronization and other small improvements. 2001-03-15 19:53 hutchisn * oelib/ghemical.cpp, oelib/xyz.cpp: Fix minor bugs in file translators. 2001-03-15 18:50 hutchisn * src/common/filetrans.cpp: Fix "the bug" with calling extab before it was properly set. 2001-03-15 18:49 hutchisn * oelib/alchemy.cpp, oelib/amber.cpp, oelib/atomtyp.h, oelib/atomtyp.txt, oelib/element.h, oelib/element.txt, oelib/extable.h, oelib/ghemical.cpp, oelib/hin.cpp, oelib/jaguar.cpp, oelib/mpqc.cpp, oelib/oelib.dsp, oelib/phmodeldata.h, oelib/qchem.cpp, oelib/tinker.cpp, oelib/types.h, oelib/types.txt, oelib/unichem.cpp, oelib/xyz.cpp: Added fixes to the translators--now much better about getting elements correct for rare atoms (e.g. Pb). 2001-03-15 11:15 thassine * oelib/Makefile, oelib/atom.cpp, oelib/mol.h, src/common/filetrans.cpp, src/common/filetrans.h: switched to a less complicated way to do oelib compatibility 2001-03-14 16:40 hutchisn * bin/examples/PeriodicTable.mm1gp, src/common/utility.cpp, src/common/utility.h: Fixed atom colors and add example Periodic Table. 2001-03-14 13:00 thassine * CHANGES, configure, configure.in, oelib/atom.cpp, oelib/mol.h, src/common/define.h, src/common/filetrans.cpp, src/common/filetrans.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/utility.cpp, src/common/utility.h, src/graphics/Makefile.OLD, src/graphics/Makefile.in, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target2/t2mm1docv.cpp, src/target3/Makefile.OLD, src/target3/Makefile.in: some mm1_mdl <=> oelib compatibility features started. 2001-03-12 12:00 thassine * BUGLIST, CHANGES, INSTALL, PROJECT, bin/examples/2-chlorobutane.mm1gp, bin/examples/3-phenylpropanal.mm1gp, bin/examples/acetylsalicylic_acid.mm1gp, bin/examples/alpha-pinene.mm1gp, bin/examples/bromobenzene.mm1gp, bin/examples/camphor.mm1gp, bin/examples/cinnamaldehyde.mm1gp, bin/examples/cis-2-pentene.mm1gp, bin/examples/cyclohexane.mm1gp, bin/examples/naphtalene.mm1gp, oelib/Makefile, src/common/mm1mdl.cpp, src/graphics/docview.cpp, src/graphics/docview.h, src/target3/t3docv.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3views.cpp: this is released as version 0.41 2001-03-08 22:54 hutchisn * src/common/define.h, src/graphics/mm1docv.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: Add support for label Atom IDs 2001-03-08 22:53 hutchisn * src/common/mm1mdl.cpp: ReadStream changes to support reading charges 2001-03-08 22:53 hutchisn * src/common/notice.cpp: Update copyright with OELib info. 2001-03-08 22:51 hutchisn * src/common/filetrans.cpp: Update for new OELib changes. 2001-03-08 22:49 hutchisn * Makefile.in: Add target for help files. 2001-03-08 22:47 hutchisn * oelib/Makefile.in, oelib/Vector.cpp, oelib/Vector.h, oelib/alchemy.cpp, oelib/amber.cpp, oelib/aromatic.h, oelib/aromatic.txt, oelib/atom.cpp, oelib/atomtyp.h, oelib/atomtyp.txt, oelib/balst.cpp, oelib/bgf.cpp, oelib/bin2hex.pl, oelib/binary.cpp, oelib/binary.h, oelib/bitgrid.cpp, oelib/bitgrid.h, oelib/bitvec.cpp, oelib/bitvec.h, oelib/bond.cpp, oelib/box.cpp, oelib/c3d.cpp, oelib/cacao.cpp, oelib/cache.cpp, oelib/car.cpp, oelib/ccc.cpp, oelib/chdrw.cpp, oelib/chiral.cpp, oelib/chiral.h, oelib/commandline.cpp, oelib/commandline.h, oelib/configure, oelib/csr.cpp, oelib/cssr.cpp, oelib/cwrap.cpp, oelib/cwrap.h, oelib/data.cpp, oelib/data.h, oelib/element.h, oelib/extable.h, oelib/extable.txt, oelib/feat.cpp, oelib/fh.cpp, oelib/fileformat.cpp, oelib/fileformat.h, oelib/gamess.cpp, oelib/ghemical.cpp, oelib/grid.cpp, oelib/grid.h, oelib/gromos96.cpp, oelib/hin.cpp, oelib/jaguar.cpp, oelib/main.cpp, oelib/matrix.cpp, oelib/matrix.h, oelib/mdl.cpp, oelib/mmod.cpp, oelib/mol.cpp, oelib/mol.h, oelib/mol2.cpp, oelib/molchrg.cpp, oelib/molchrg.h, oelib/molvector.cpp, oelib/molvector.h, oelib/mpqc.cpp, oelib/oeifstream.h, oelib/oelib.dsp, oelib/oeutil.cpp, oelib/oeutil.h, oelib/parsmart.cpp, oelib/parsmart.h, oelib/parsmi.cpp, oelib/patty.cpp, oelib/patty.h, oelib/pdb.cpp, oelib/phmodel.cpp, oelib/phmodel.h, oelib/phmodel.txt, oelib/phmodeldata.h, oelib/qchem.cpp, oelib/rand.cpp, oelib/resdata.h, oelib/ring.cpp, oelib/ring.h, oelib/rotor.cpp, oelib/rotor.h, oelib/smi.cpp, oelib/smi.h, oelib/tokenst.cpp, oelib/typer.cpp, oelib/typer.h, oelib/types.h, oelib/version.h, oelib/xed.cpp: Updates to oelib files. 2001-03-08 14:59 thassine * CHANGES, src/common/notice.cpp, src/common/notice.h, src/target3/t3main.cpp, src/target3/t3main.h: added the Help/Help item to the main menu, copyright notices updated to include OELib 2001-03-08 13:51 thassine * bin/user-docs/index.html, bin/user-docs/maintools.jpg: updated the user's manual 2001-02-16 15:14 thassine * src/Makefile.OLD: this will make quick test builds easier. 2001-02-16 14:29 thassine * bin/user-docs, bin/user-docs/index.html: added some framework for the user manual 2001-02-13 14:32 thassine * INSTALL, src/target3/t3main.cpp, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h: added some quick improvements to qm1-model to boost its ease of use. 2001-02-12 17:07 hutchisn * configure, configure.in: Solved configure problems with MPQC and oelib. 2001-02-12 16:25 hutchisn * configure, configure.in: Fix problem with configure in srcdir. 2001-02-12 09:41 thassine * src/common/Makefile.OLD, src/common/qm1eng1.cpp, src/common/qm1mdl.cpp, src/graphics/Makefile.OLD, src/graphics/camera.cpp, src/graphics/docview.cpp, src/graphics/mm1docv.cpp, src/graphics/mm1rbn.cpp, src/graphics/mm2docv.cpp, src/graphics/mm2rbn.cpp, src/graphics/mtools.cpp, src/graphics/objects.cpp, src/graphics/plane.cpp, src/graphics/qm1docv.cpp, src/graphics/qm2docv.cpp, src/graphics/surface.cpp, src/graphics/views.cpp, src/target1/Makefile.OLD, src/target1/config.h.OLD, src/target2/Makefile.OLD, src/target2/config.h.OLD, src/target3/Makefile.OLD, src/target3/config.h.OLD: a bug that affected MPQC front end compilation is now fixed (thanks Mark). 2001-02-11 14:36 thassine * CHANGES, bin/examples/1gar.mm2gp, bin/examples/1hcl.mm2gp, bin/examples/4rhn.mm2gp, src/common/Makefile.OLD, src/common/Makefile.in, src/common/mm2mdl.cpp, src/common/mm2mdl.h, src/common/mm2util.cpp, src/common/mm2util.h, src/common/model.h, src/graphics/Makefile.OLD, src/graphics/Makefile.in, src/graphics/mm2docv.cpp, src/graphics/mm2docv.h, src/graphics/mm2rbn.cpp, src/graphics/mm2rbn.h, src/graphics/views.h, src/target2/Makefile.OLD, src/target2/t2main.cpp, src/target2/t2main.h, src/target2/t2mm2docv.cpp, src/target2/t2mm2docv.h, src/target3/Makefile.OLD, src/target3/Makefile.in, src/target3/t3docv.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm2docv.cpp, src/target3/t3mm2docv.h, src/target3/t3views.h: tadaall added a preview version of the reduced protein modelling thing. 2001-02-10 15:09 thassine * INSTALL, configure, configure.in, src/common/define.h, src/common/engine.h, src/common/mm1mdl.cpp, src/common/qm1mdl.cpp, src/target3/t3views.cpp: changed back to devel settings (version number, releasedate); small fixes appled here and there. 2001-02-07 09:24 thassine * small-utilities/README, small-utilities/gp2mpqc.cpp, src/graphics/spline.h, src/graphics/views.h: added some final fixes to documentation; this is released as 0.40 2001-02-06 18:24 hutchisn * oelib/extable.txt: Add sorted extable to make menus more user-friendly. 2001-02-06 18:24 hutchisn * src/common/filetrans.cpp: Fix bug with GetImportDescription. 2001-02-06 18:05 hutchisn * oelib/data.cpp: Fix problem with GetType from an integer--table lookup was in the wrong place! 2001-02-06 13:10 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/target2/t2docv.h, src/target3/t3docv.h, src/target3/t3errutil.h, src/target3/t3main.h, src/target3/t3mm1docv.h, src/target3/t3qm1docv.h, src/target3/t3views.h: added some more DOC++ style documentation. 2001-02-06 09:21 thassine * AUTHORS, CHANGES, INSTALL, PROJECT: revised/updated some documentation. 2001-02-06 08:44 thassine * configure, configure.in, oelib/Makefile, src/common/define.h, src/common/notice.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/glade_interface.h: some cleanups at glade optionmenus; the version number promoted to 0.40 2001-02-06 06:17 hutchisn * src/target3/glade_callbacks.cpp: Use file_trans methods to specifically request a file type when the user picks it or "Automatic" based on the file name. 2001-02-06 06:16 hutchisn * src/common/filetrans.cpp, src/common/filetrans.h: Add support for specifically requesting an import or export type (by index #). 2001-02-06 06:16 hutchisn * oelib/Makefile.in: Add target to rebuild Makefile if Makefile.in or configure script changes. 2001-02-05 15:26 thassine * src/target3/glade_callbacks.cpp: the file import/export dialogs seem to work now... 2001-02-05 14:48 thassine * oelib/data.cpp, oelib/extable.txt, oelib/ghemical.cpp, oelib/mol.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/glade_interface.h: the filename change is done also in oelib; the file import/export dialogs almost work now. 2001-02-05 13:55 thassine * src/target3/glade/ghemical.glade, src/target3/glade/src/glade_callbacks.cpp, src/target3/glade/src/glade_callbacks.h, src/target3/glade/src/glade_interface.cpp, src/target3/glade/src/glade_interface.h, src/target3/glade/src/main.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_callbacks.h, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/t3mm1docv.cpp, src/target3/t3qm1docv.cpp: changed the glade project and code so that each dialog (and most important widgets) have their own simple namespace. 2001-02-04 18:30 thassine * src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/qm2eng.cpp, src/common/qm2eng.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h: some files were lost in the last commit; added them back... 2001-02-04 18:11 thassine * CHANGES, INSTALL, bin/examples/2-chlorobutane.gpMM, bin/examples/2-chlorobutane.mm1gp, bin/examples/3-phenylpropanal.gpMM, bin/examples/3-phenylpropanal.mm1gp, bin/examples/acetylsalicylic_acid.gpMM, bin/examples/acetylsalicylic_acid.mm1gp, bin/examples/alpha-pinene.gpMM, bin/examples/alpha-pinene.mm1gp, bin/examples/bromobenzene.gpMM, bin/examples/bromobenzene.mm1gp, bin/examples/camphor.gpMM, bin/examples/camphor.mm1gp, bin/examples/cinnamaldehyde.gpMM, bin/examples/cinnamaldehyde.mm1gp, bin/examples/cis-2-pentene.gpMM, bin/examples/cis-2-pentene.mm1gp, bin/examples/cyclohexane.gpMM, bin/examples/cyclohexane.mm1gp, bin/examples/naphtalene.gpMM, bin/examples/naphtalene.mm1gp, src/common/Makefile.OLD, src/common/Makefile.in, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/model.h, src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm1eng1.cpp, src/common/qm1eng1.h, src/common/qm1eng9.cpp, src/common/qm1eng9.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/qm2eng.cpp, src/common/qm2eng.h, src/common/qm2eng1.cpp, src/common/qm2eng1.h, src/common/qm2eng9.cpp, src/common/qm2eng9.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/target1/t1main.cpp, src/target2/t2main.cpp, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target3/glade/ghemical.glade, src/target3/glade/src/glade_interface.cpp, src/target3/glade/src/glade_interface.h, src/target3/glade/src/main.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/t3docv.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h, src/target3/t3views.h: swapped the classnames qm1* and qm2 (as well as filenames) in an effort to make the class naming scheme more reasonnable (now we have a clear division in mm/qm, and the all-atoms classes (most used) have numbers 1); also changed nicer filename extensions. 2001-02-02 16:27 thassine * src/common/mm1alg.h, src/common/mm1mdl.cpp, src/target2/t2mm1docv.cpp, src/target3/glade/ghemical.glade, src/target3/glade/src/glade_interface.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/t3dialog.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: the trajectory viewer works now (as a modal dialog, but anyway). 2001-01-31 17:32 thassine * CHANGES, src/common/errutil.cpp, src/common/errutil.h, src/common/mm1alg.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/model.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target3/t3errutil.cpp, src/target3/t3errutil.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h: changed MM trajectory file format; some Do???-functions moved to model (and are now accessible in TARGET1 also). 2001-01-30 19:44 hutchisn * src/common/filetrans.cpp, src/common/filetrans.h, src/common/utility.cpp, src/target3/glade_interface.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: Switch to new GLADE-designed import/export boxes. 2001-01-30 19:41 hutchisn * oelib/aromatic.txt, oelib/atom.cpp, oelib/atomtyp.txt, oelib/binary.cpp, oelib/bond.cpp, oelib/csr.cpp, oelib/data.cpp, oelib/data.h, oelib/extable.txt, oelib/fileformat.cpp, oelib/fileformat.h, oelib/gamess.cpp, oelib/ghemical.cpp, oelib/hin.cpp, oelib/main.cpp, oelib/mdl.cpp, oelib/mol.cpp, oelib/mol.h, oelib/mpqc.cpp, oelib/oeutil.cpp, oelib/parsmart.cpp, oelib/patty.cpp, oelib/patty.h, oelib/pdb.cpp, oelib/quat.c, oelib/ring.cpp, oelib/ring.h, oelib/rotor.cpp, oelib/smi.cpp, oelib/typer.cpp, oelib/typer.h, oelib/types.txt: Synch with current OELib code. 2001-01-30 15:21 thassine * src/common/mm1alg.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target3/glade/ghemical.glade, src/target3/glade/src/Makefile, src/target3/glade/src/glade_callbacks.cpp, src/target3/glade/src/glade_callbacks.h, src/target3/glade/src/glade_interface.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_callbacks.h, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/glade_support.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: the geomopt/moldyn dialogs should now mostly work (except the traj filename). 2001-01-29 15:54 thassine * src/target3/glade/ghemical.glade, src/target3/glade/src/glade_interface.cpp, src/target3/glade/src/glade_interface.h, src/target3/glade/src/glade_support.cpp, src/target3/glade/src/main.cpp, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/t3mm1docv.cpp: added geomopt and moldyn dialogs, but wont work yet (just press cancel) 2001-01-25 13:45 thassine * src/common/conjgrad.h, src/common/define.h, src/common/engine.h, src/common/errutil.h, src/common/mm1alg.h, src/common/mm1eng.h, src/common/mm1eng1.cpp, src/common/mm1eng1.h, src/common/mm1eng9.cpp, src/common/mm1eng9.h, src/common/mm1mdl.h, src/common/mm1tab1.cpp, src/common/mm1tab1.h, src/common/mm1tab9.cpp, src/common/mm1tab9.h, src/common/mm1util.h, src/common/model.h, src/common/qm1eng.h, src/common/qm1mdl.h, src/common/qm2eng.h, src/common/qm2eng1.h, src/common/qm2mdl.h, src/common/typedef.h, src/common/utility.h, src/common/v3d.h, src/graphics/camera.h, src/graphics/color.h, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm1rbn.cpp, src/graphics/mm1rbn.h, src/graphics/mtools.cpp, src/graphics/mtools.h, src/graphics/objects.cpp, src/graphics/objects.h, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/graphics/spline.cpp, src/graphics/spline.h, src/graphics/surface.cpp, src/graphics/surface.h, src/graphics/views.cpp, src/graphics/views.h, src/target1/config.h.OLD, src/target1/t1main.cpp, src/target1/t1main.h, src/target2/config.h.OLD, src/target2/t2docv.cpp, src/target2/t2docv.h, src/target2/t2main.cpp, src/target2/t2main.h, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/config.h.OLD, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3docv.cpp, src/target3/t3docv.h, src/target3/t3errutil.cpp, src/target3/t3errutil.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h, src/target3/t3views.cpp, src/target3/t3views.h: all documentation is now in DOC++ form, it's a bit sparse, but usable. 2001-01-24 14:08 thassine * oelib/Makefile, oelib/data.cpp, oelib/mpqc.cpp, src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/qm2eng.cpp, src/common/qm2eng.h, src/common/qm2eng1.cpp, src/common/qm2eng1.h, src/common/qm2eng9.cpp, src/common/qm2eng9.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/common/typedef.h, src/common/utility.cpp, src/common/utility.h, src/common/v3d.h, src/graphics/camera.cpp, src/graphics/camera.h, src/graphics/color.h: some more documentation converted into DOC++ form 2001-01-22 18:43 hutchisn * oelib/Makefile.in, oelib/data.cpp, oelib/data.h, oelib/extable.txt, oelib/fileformat.cpp, oelib/fileformat.h, oelib/mpqc.cpp, oelib/tinker.cpp, oelib/unichem.cpp: Added unichem and mpqc formats. 2001-01-22 07:52 thassine * oelib/Makefile, oelib/tinker.cpp, src/Makefile.OLD, src/common/conjgrad.cpp, src/common/conjgrad.h, src/common/define.h, src/common/engine.cpp, src/common/engine.h, src/common/errutil.cpp, src/common/errutil.h, src/common/filetrans.cpp, src/common/filetrans.h, src/common/matrix.h, src/common/mm1alg.cpp, src/common/mm1alg.h, src/common/mm1eng.cpp, src/common/mm1eng.h, src/common/mm1eng1.cpp, src/common/mm1eng1.h, src/common/mm1eng9.cpp, src/common/mm1eng9.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm1tab1.cpp, src/common/mm1tab1.h, src/common/mm1tab9.cpp, src/common/mm1tab9.h, src/common/mm1util.cpp, src/common/mm1util.h, src/common/model.cpp, src/common/model.h, src/common/notice.cpp, src/common/notice.h, src/graphics/objects.cpp, src/graphics/objects.h, src/target3/t3mm1docv.cpp: started to convert comments into a form suitable to DOC++ 2001-01-20 06:19 hutchisn * PROJECT, oelib/Makefile.in, oelib/data.cpp, oelib/tinker.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h: *** empty log message *** 2001-01-20 06:19 hutchisn * src/target3/glade/ghemical.glade, src/target3/glade/src/glade_callbacks.cpp, src/target3/glade/src/glade_callbacks.h, src/target3/glade/src/glade_interface.cpp, src/target3/glade/src/glade_interface.h, src/target3/glade/src/glade_support.cpp, src/target3/glade/src/main.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_callbacks.h, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/glade_support.cpp: Added new import/export dialogues using Glade. (Still need to figure out how to update the option menu appropriately.) 2001-01-20 06:18 hutchisn * oelib/data.h, oelib/extable.txt: Added all options from Babel 1.6 2001-01-19 04:22 hutchisn * oelib/Makefile.in, oelib/fileformat.cpp, oelib/qchem.cpp: Added export to QChem input files. 2001-01-16 17:51 hutchisn * oelib/data.cpp, oelib/data.h, oelib/extable.txt, oelib/fileformat.cpp, oelib/fileformat.h, oelib/qchem.cpp: Added a QChem file export translator. 2001-01-16 16:24 hutchisn * oelib/data.cpp, oelib/data.h, oelib/extable.txt, oelib/fileformat.cpp, oelib/fileformat.h: More OELib updates--removing incomplete formats for now. 2001-01-16 16:00 hutchisn * oelib/extable.txt, oelib/fileformat.cpp, oelib/gamess.cpp, oelib/hin.cpp: More OELib cleanups. 2001-01-13 21:31 hutchisn * oelib/Makefile.in, oelib/data.cpp, oelib/data.h, oelib/extable.txt, oelib/fileformat.cpp, oelib/fileformat.h, oelib/gamess.cpp, oelib/ghemical.cpp, oelib/hin.cpp, oelib/main.cpp, oelib/mol.h, oelib/mpqc.cpp, oelib/oelib.dsp, oelib/oelib.dsw, oelib/pdb.cpp, oelib/quat.c, oelib/rotor.cpp, oelib/typer.cpp, oelib/xyz.cpp: Added new translators, updated to be in sync with OpenEyes code. 2001-01-13 21:29 hutchisn * src/common/utility.cpp: Small modifications to vdW radii to be closer to literature (Bondi) values 2001-01-13 21:28 hutchisn * src/common/filetrans.cpp: Use filename for molecule title -- we don't currently have another way of titling. 2001-01-05 22:38 hutchisn * acconfig.h, configure, configure.in, src/config.h.in, src/target3/Makefile.in: Fix build environment 2001-01-05 15:34 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/qm2eng.h, src/common/qm2eng1.h, src/common/qm2eng9.cpp, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/graphics/surface.cpp, src/graphics/surface.h, src/target1/Makefile.OLD, src/target1/t1main.cpp, src/target2/t2qm2docv.cpp, src/target3/glade_callbacks.cpp, src/target3/t3qm2docv.cpp: added a simple TARGET1 example, the QM setup dialog should also now work. 2001-01-03 17:09 thassine * src/common/mm1mdl.cpp, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/target3/glade/ghemical.glade, src/target3/glade/src/Makefile, src/target3/glade/src/glade_callbacks.cpp, src/target3/glade/src/glade_callbacks.h, src/target3/glade/src/glade_interface.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_callbacks.h, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h: the setup dialog should now work for MM. 2001-01-03 10:03 thassine * CHANGES, src/target3/glade/ghemical.glade, src/target3/glade/src/Makefile, src/target3/glade/src/glade_callbacks.cpp, src/target3/glade/src/glade_callbacks.h, src/target3/glade/src/glade_interface.cpp, src/target3/glade/src/glade_interface.h, src/target3/glade/src/glade_support.cpp, src/target3/glade/src/glade_support.h, src/target3/glade/src/main.cpp, src/target3/glade_callbacks.cpp, src/target3/glade_interface.cpp, src/target3/glade_interface.h: dialogs; read from glade/src/Makefile how to retain your changes in GLADE code. 2001-01-02 16:00 thassine * src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h: some preliminary stuff for the setup dialogs 2001-01-02 12:42 thassine * INSTALL, PROJECT, src/target3/Makefile.OLD, src/target3/glade, src/target3/glade/ghemical.glade, src/target3/glade/src, src/target3/glade/src/Makefile, src/target3/glade_callbacks.cpp, src/target3/glade_callbacks.h, src/target3/glade_interface.cpp, src/target3/glade_interface.h, src/target3/glade_support.cpp, src/target3/glade_support.h, src/target3/t3dialog.cpp: started making some dialogs using GLADE... 2001-01-01 13:53 thassine * AUTHORS, INSTALL, PROJECT, src/common/Makefile.OLD, src/common/mm1mdl.h, src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm2eng.h, src/common/qm2eng1.h, src/common/qm2mdl.h, src/graphics/Makefile.OLD, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target3/Makefile.OLD: just some cleanups and some improvements to documentation 2001-01-01 11:30 thassine * small-utilities, small-utilities/Makefile, small-utilities/getpdb_cd.cpp, small-utilities/getpdb_ftp.cpp, small-utilities/gp2mpqc.cpp: HAPPY NEW YEAR; some small-utilities added... 2000-12-27 13:59 thassine * src/graphics/camera.cpp, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/views.h, src/target2/t2docv.cpp, src/target2/t2docv.h, src/target2/t2main.cpp, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3docv.cpp, src/target3/t3docv.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h, src/target3/t3views.cpp, src/target3/t3views.h: some cleanups; status bars now work in the GNOME version 2000-12-22 15:09 thassine * src/target3/t3docv.cpp, src/target3/t3docv.h: added some missing files... 2000-12-22 14:47 thassine * CHANGES, src/graphics/camera.cpp, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mtools.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.h, src/graphics/views.cpp, src/graphics/views.h, src/target2/Makefile.OLD, src/target2/t2docv.cpp, src/target2/t2docv.h, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/Makefile.OLD, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h, src/target3/t3views.cpp, src/target3/t3views.h: added target-dependent middle classes for docviews and views; simplifies the base-classes a bit 2000-12-22 11:34 thassine * BUGLIST, src/graphics/docview.cpp, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3qm2docv.cpp, src/target3/t3views.cpp: treelist works now pretty well (see BUGLIST for some details) 2000-12-21 17:16 thassine * src/graphics/docview.cpp, src/graphics/docview.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3qm2docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: improved proper model closing/cleanup in GNOME version, but still problems (try File/Close and File/Exit) 2000-12-21 13:19 thassine * src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/views.h, src/target3/t3views.cpp, src/target3/t3views.h: treelist (now actually works) - added subtrees and lights 2000-12-20 15:01 thassine * src/graphics/docview.cpp, src/graphics/views.h, src/target3/t3main.h, src/target3/t3views.cpp, src/target3/t3views.h: treelist - now shows objects (planes etc), and selection is possible 2000-12-19 16:57 thassine * CHANGES, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/views.cpp, src/graphics/views.h, src/target2/t2main.cpp, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: added framework for tree/list views, and smaller changes 2000-12-19 12:45 thassine * src/common/notice.cpp, src/graphics/docview.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3qm2docv.cpp, src/target3/t3views.cpp: the toolbar buttons work again as toggle buttons 2000-12-18 15:24 thassine * oelib/Makefile, src/common/filetrans.cpp, src/target3/t3main.cpp: changes for old makefiles, and a statusbar added (which is empty so far) 2000-12-08 17:22 hutchisn * src/common/filetrans.cpp, src/common/filetrans.h, src/target3/t3mm1docv.cpp: Use new OEFileFormat code to check if formats are valid. 2000-12-08 17:21 hutchisn * oelib/Makefile, oelib/Makefile.in, oelib/aromatic.txt, oelib/binary.cpp, oelib/data.cpp, oelib/data.h, oelib/extable.txt, oelib/fileformat.cpp, oelib/fileformat.h, oelib/globals.cpp, oelib/main.cpp, oelib/mol.cpp, oelib/mol.h, oelib/molvector.cpp, oelib/oeutil.h, oelib/rotor.cpp, oelib/rotor.h, oelib/typer.cpp, oelib/xyz.cpp: Synched with current oelib version--fixed bugs finding data files. 2000-12-08 16:41 thassine * oelib/Makefile, oelib/mol.h, src/common/filetrans.cpp, src/graphics/camera.cpp, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mtools.cpp, src/graphics/qm2docv.cpp, src/target2/t2mm1docv.cpp, src/target2/t2qm2docv.cpp, src/target2/t2views.cpp, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3qm2docv.cpp, src/target3/t3views.cpp: various fixes (like exit-command) - oelib? 2000-12-02 00:29 hutchisn * src/target3/t3mm1docv.cpp: OKEvent should return true for now. 2000-12-02 00:28 hutchisn * src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h: OKEvent should return bool in case there's a problem (e.g. file doesn't exist, save might overwrite a file, format is not supported, etc.) 2000-12-02 00:27 hutchisn * oelib/data.cpp, oelib/mol.h, oelib/pdb.cpp, oelib/rotor.cpp, oelib/typer.cpp, src/common/Makefile.in: One more bug fix--really get the logic in initialization correct! 2000-12-01 22:38 hutchisn * oelib/data.cpp, oelib/pdb.cpp, oelib/rotor.cpp, oelib/typer.cpp: Ensure that the directory is checked AND the environment variable is checked when initializing. 2000-12-01 21:49 hutchisn * Makefile.in, configure, configure.in, oelib/Makefile, oelib/Vector.cpp, oelib/configure, oelib/data.cpp, oelib/data.h, oelib/extable.txt, oelib/gromos96.cpp, oelib/main.cpp, oelib/mol.cpp, oelib/mol.h, oelib/oeutil.cpp, oelib/pdb.cpp, oelib/rotor.cpp, oelib/rotor.h, oelib/typer.cpp, oelib/typer.h, src/common/Makefile.in, src/common/filetrans.cpp: Update OELib to use GHEMICAL_DIR environment variable or specified directories installed by "make install" target. 2000-12-01 13:27 thassine * oelib/Makefile, src/common/Makefile.OLD, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target3/Makefile.OLD: updated the old makefiles... 2000-12-01 00:13 hutchisn * src/common/Makefile.in, src/common/define.h, src/common/filetrans.cpp, src/common/filetrans.h, src/common/model.cpp, src/graphics/Makefile.in, src/target3/Makefile.in, src/target3/t3main.cpp, src/target3/t3mm1docv.cpp: add support for import/export methods using oelib 2000-11-30 12:18 thassine * src/common/Makefile.OLD, src/common/qm2mdl.h, src/graphics/Makefile.OLD, src/graphics/mm1docv.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h: GNOME erase-tool fixed, STATICpopupmenu removed, all popup-items enabled again 2000-11-29 17:18 thassine * src/graphics/docview.h, src/graphics/views.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h, src/target3/t3views.cpp, src/target3/t3views.h: GNOME popup menu callbacks finished - but some items are still disabled 2000-11-29 14:43 thassine * src/target3/t3mm1docv.cpp, src/target3/t3qm2docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: popup-menu callbacks changed (for model-independent items) 2000-11-29 13:10 thassine * src/common/model.cpp, src/common/model.h, src/graphics/views.cpp, src/graphics/views.h, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3main.cpp, src/target3/t3views.cpp, src/target3/t3views.h: OpenGL initialization in GNOME fixed (so that we have colors back). 2000-11-28 17:43 hutchisn * src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3views.cpp: Add import/export menu items, center command and move things to "build" submenu. 2000-11-28 17:42 hutchisn * src/target3/t3main.cpp: Can't pass VERSION since it's a double. Run it through sprintf first. 2000-11-28 17:40 hutchisn * acconfig.h, configure, configure.in, src/config.h.in, src/graphics/Makefile.in: Fix build environment to define appropriate flags, etc. 2000-11-28 17:39 hutchisn * oelib/quat.c: fixed problem with undeclared memset 2000-11-28 15:41 thassine * CHANGES, src/common/conjgrad.h, src/common/errutil.h, src/common/mm1alg.h, src/common/mm1eng.h, src/common/mm1eng1.h, src/common/mm1mdl.h, src/common/mm1util.h, src/common/model.h, src/common/qm2eng.h, src/common/qm2eng9.h, src/common/qm2mdl.h, src/common/v3d.h, src/graphics/mtools.h, src/graphics/views.h, src/target2/t2mm1docv.cpp, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3main.h, src/target3/t3qm2docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: some cleanups : public data changed protected in many classes 2000-11-28 12:18 thassine * CHANGES, src/common/define.h, src/graphics/Makefile.OLD, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/views.h, src/target2/t2views.cpp, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3views.cpp, src/target3/t3views.h: any things broken/mixed up, but we have a standard GNOME MDI app now 2000-11-27 16:50 hutchisn * src/target3/t3dialog.cpp, src/target3/t3dialog.h: Modify dialog to show which element is currently selected. 2000-11-27 16:48 hutchisn * src/common/filetrans.cpp, src/common/filetrans.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h: Remove import functions from mm1mdl and use new filetrans code through OELib. 2000-11-27 16:47 hutchisn * Makefile.in, acconfig.h, configure, configure.in, oelib/Makefile.in, oelib/configure, src/common/Makefile.in, src/config.h.in, src/graphics/Makefile.in, src/target3/Makefile.in: Add changes to support linking in OELib and slightly cleaned up build system. 2000-11-27 08:51 thassine * configure, configure.in, src/common/Makefile.in, src/graphics/Makefile.in, src/target3/Makefile.in: Makefile.in -files updated (configure still broken) 2000-11-26 13:05 thassine * CHANGES, src/graphics/camera.cpp, src/graphics/camera.h, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm1rbn.cpp, src/graphics/mm1rbn.h, src/graphics/mtools.cpp, src/graphics/mtools.h, src/graphics/objects.cpp, src/graphics/objects.h, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/graphics/surface.cpp, src/graphics/surface.h, src/graphics/views.cpp, src/graphics/views.h, src/target2/config.h.OLD, src/target2/t2mm1docv.cpp, src/target2/t2qm1docv.cpp, src/target2/t2qm2docv.cpp, src/target2/t2views.cpp, src/target3/config.h.OLD, src/target3/t3mm1docv.cpp, src/target3/t3qm1docv.cpp, src/target3/t3qm2docv.cpp, src/target3/t3views.cpp: 3rd stage of doc/view changes 2000-11-24 13:36 thassine * CHANGES, src/graphics/camera.cpp, src/graphics/camera.h, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm1rbn.cpp, src/graphics/mm1rbn.h, src/graphics/mtools.cpp, src/graphics/mtools.h, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/graphics/surface.cpp, src/graphics/surface.h, src/graphics/views.cpp, src/graphics/views.h, src/target2/t2main.cpp, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target2/t2views.cpp, src/target2/t2views.h, src/target3/t3main.cpp, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h, src/target3/t3views.cpp, src/target3/t3views.h: 2nd stage of doc/view reorganization 2000-11-23 15:07 thassine * CHANGES, src/common/Makefile.OLD, src/common/conjgrad.h, src/common/engbase.cpp, src/common/engbase.h, src/common/engine.cpp, src/common/engine.h, src/common/mdlbase.cpp, src/common/mdlbase.h, src/common/mm1eng.cpp, src/common/mm1eng.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm1tab1.cpp, src/common/mm1tab9.cpp, src/common/mm1util.cpp, src/common/model.cpp, src/common/model.h, src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/qm2eng.cpp, src/common/qm2eng.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/Makefile.OLD, src/graphics/camera.cpp, src/graphics/camera.h, src/graphics/docview.cpp, src/graphics/docview.h, src/graphics/guibase.cpp, src/graphics/guibase.h, src/graphics/mm1docv.cpp, src/graphics/mm1docv.h, src/graphics/mm1gui.cpp, src/graphics/mm1gui.h, src/graphics/mm1rbn.cpp, src/graphics/mm1rbn.h, src/graphics/mtools.cpp, src/graphics/mtools.h, src/graphics/objects.cpp, src/graphics/objects.h, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/qm1docv.cpp, src/graphics/qm1docv.h, src/graphics/qm1gui.cpp, src/graphics/qm1gui.h, src/graphics/qm2docv.cpp, src/graphics/qm2docv.h, src/graphics/qm2gui.cpp, src/graphics/qm2gui.h, src/graphics/surface.cpp, src/graphics/surface.h, src/graphics/viewing.cpp, src/graphics/viewing.h, src/graphics/views.cpp, src/graphics/views.h, src/graphics/window.cpp, src/graphics/window.h, src/target1/Makefile.OLD, src/target2/Makefile.OLD, src/target2/t2main.h, src/target2/t2mm1docv.cpp, src/target2/t2mm1docv.h, src/target2/t2mm1gui.cpp, src/target2/t2mm1gui.h, src/target2/t2qm1docv.cpp, src/target2/t2qm1docv.h, src/target2/t2qm1gui.cpp, src/target2/t2qm1gui.h, src/target2/t2qm2docv.cpp, src/target2/t2qm2docv.h, src/target2/t2qm2gui.cpp, src/target2/t2qm2gui.h, src/target2/t2views.cpp, src/target2/t2views.h, src/target2/t2window.cpp, src/target2/t2window.h, src/target3/Makefile.OLD, src/target3/t3main.h, src/target3/t3mm1docv.cpp, src/target3/t3mm1docv.h, src/target3/t3mm1gui.cpp, src/target3/t3mm1gui.h, src/target3/t3qm1docv.cpp, src/target3/t3qm1docv.h, src/target3/t3qm1gui.cpp, src/target3/t3qm1gui.h, src/target3/t3qm2docv.cpp, src/target3/t3qm2docv.h, src/target3/t3qm2gui.cpp, src/target3/t3qm2gui.h, src/target3/t3views.cpp, src/target3/t3views.h, src/target3/t3window.cpp, src/target3/t3window.h: 1st round of doc/view changes (will break the configure-script) 2000-11-20 10:18 thassine * src/common/qm2mdl.cpp, src/graphics/guibase.h, src/graphics/mm1gui.cpp, src/graphics/mm1gui.h, src/graphics/mm1rbn.cpp, src/graphics/qm2gui.cpp, src/graphics/qm2gui.h: fixed QM import bug + some potential graphics bugs 2000-11-16 15:06 hutchisn * Makefile.in: Removed configure target--something is strange with the timestamps. 2000-11-16 11:55 thassine * src/common/Makefile.OLD, src/common/errorutil.cpp, src/common/errorutil.h, src/common/errutil.cpp, src/common/errutil.h, src/common/mdlbase.cpp, src/common/mdlbase.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/graphics/Makefile.OLD, src/graphics/guibase.cpp, src/graphics/guibase.h, src/graphics/mm1gui.cpp, src/graphics/mm1gui.h, src/graphics/qm1gui.cpp, src/graphics/qm1gui.h, src/graphics/qm2gui.cpp, src/graphics/qm2gui.h, src/target2/Makefile.OLD, src/target2/t2main.cpp, src/target2/t2mm1gui.cpp, src/target2/t2mm1gui.h, src/target2/t2qm1gui.cpp, src/target2/t2qm1gui.h, src/target2/t2qm2gui.cpp, src/target2/t2qm2gui.h, src/target2/t2window.cpp, src/target3/Makefile.OLD, src/target3/t3errorutil.cpp, src/target3/t3errorutil.h, src/target3/t3errutil.cpp, src/target3/t3errutil.h, src/target3/t3main.cpp, src/target3/t3mm1gui.cpp, src/target3/t3mm1gui.h, src/target3/t3qm1gui.cpp, src/target3/t3qm1gui.h, src/target3/t3qm2gui.cpp, src/target3/t3qm2gui.h, src/target3/t3window.cpp: added err_util for all models 2000-11-15 15:01 hutchisn * src/common/Makefile.in, src/common/errorutil.cpp, src/common/errorutil.h, src/target3/Makefile.in, src/target3/t3errorutil.cpp, src/target3/t3errorutil.h: Add error-handling classes with support for GNOME. 2000-11-15 15:00 hutchisn * oelib/Makefile, oelib/Makefile.in, oelib/data.cpp, oelib/data.h, oelib/extable.txt, oelib/ghemical.cpp, oelib/mol.cpp, oelib/mol.h: Add read/write for ghemical file format. 2000-11-14 21:52 hutchisn * oelib, oelib/.cvsignore, oelib/GNULICENSE.txt, oelib/Makefile, oelib/Makefile.in, oelib/OELibPrimer.html, oelib/StdAfx.cpp, oelib/StdAfx.h, oelib/Vector.cpp, oelib/Vector.h, oelib/alchemy.cpp, oelib/aromatic.txt, oelib/atom.cpp, oelib/atomtyp.txt, oelib/balst.cpp, oelib/bgf.cpp, oelib/binary.cpp, oelib/binary.h, oelib/bitgrid.cpp, oelib/bitgrid.h, oelib/bitvec.cpp, oelib/bitvec.h, oelib/bond.cpp, oelib/box.cpp, oelib/c3d.cpp, oelib/cacao.cpp, oelib/cache.cpp, oelib/ccc.cpp, oelib/chdrw.cpp, oelib/chiral.cpp, oelib/chiral.h, oelib/commandline.cpp, oelib/commandline.h, oelib/configure, oelib/csr.cpp, oelib/cssr.cpp, oelib/cwrap.cpp, oelib/cwrap.h, oelib/data.cpp, oelib/data.h, oelib/element.txt, oelib/extable.txt, oelib/feat.cpp, oelib/fh.cpp, oelib/grid.cpp, oelib/grid.h, oelib/gromos96.cpp, oelib/main.cpp, oelib/matrix.cpp, oelib/matrix.h, oelib/mdl.cpp, oelib/mmod.cpp, oelib/mol.cpp, oelib/mol.h, oelib/mol2.cpp, oelib/molchrg.cpp, oelib/molchrg.h, oelib/molvector.cpp, oelib/molvector.h, oelib/oeutil.cpp, oelib/oeutil.h, oelib/parsmart.cpp, oelib/parsmart.h, oelib/parsmi.cpp, oelib/patty.cpp, oelib/patty.h, oelib/pdb.cpp, oelib/quat.c, oelib/rand.cpp, oelib/resdata.txt, oelib/ring.cpp, oelib/ring.h, oelib/rotor.cpp, oelib/rotor.h, oelib/smi.cpp, oelib/smi.h, oelib/tokenst.cpp, oelib/typer.cpp, oelib/typer.h, oelib/types.txt, oelib/version.h: Initial revision 2000-11-14 21:32 hutchisn * src/target3/t3mm1gui.cpp, src/target3/t3mm1gui.h, src/target3/t3window.cpp: Added menu items and user-visible feedback for menu choices. 2000-11-14 21:23 hutchisn * Makefile.in, configure.in: Add makefile targets to ensure configure script and Makefiles are updated properly. Also add AC_PREREQ to configure.in to ensure configure script isn't updated by an old version of autoconf. 2000-11-10 19:56 hutchisn * src/target3/t3mm1gui.cpp, src/target3/t3mm1gui.h, src/target3/t3window.cpp: Remove menu items for import HIN and PDB files (soon to be done through OELib) Add menu items and support for render labels and coloring and quick update mode. 2000-11-10 16:48 hutchisn * bin/examples/2-chlorobutane.gpMM, bin/examples/3-phenylpropanal.gpMM, bin/examples/acetylsalicylic_acid.gpMM, bin/examples/alpha-pinene.gpMM, bin/examples/bromobenzene.gpMM, bin/examples/camphor.gpMM, bin/examples/cinnamaldehyde.gpMM, bin/examples/cis-2-pentene.gpMM, bin/examples/cyclohexane.gpMM, bin/examples/naphtalene.gpMM: Update examples to new file format (read in and re-saved). 2000-11-10 12:46 thassine * CHANGES, src/common/mdlbase.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm1util.cpp, src/common/qm1mdl.h, src/common/qm2mdl.h: 1st round of mm1_mdl file format revision 2000-11-09 12:42 thassine * BUGLIST, CHANGES, src/Makefile.OLD, src/common/typedef.h, src/common/utility.cpp, src/graphics/color.h, src/graphics/guibase.cpp, src/graphics/guibase.h, src/graphics/mm1gui.cpp, src/graphics/mm1rbn.h, src/graphics/objects.cpp, src/graphics/objects.h, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/qm1gui.cpp, src/graphics/qm2gui.cpp, src/graphics/surface.cpp, src/graphics/surface.h, src/graphics/viewing.cpp, src/graphics/viewing.h, src/target2/t2mm1gui.cpp, src/target2/t2qm2gui.cpp, src/target3/t3mm1gui.cpp, src/target3/t3mm1gui.h, src/target3/t3qm2gui.cpp, src/target3/t3window.cpp: graphics improvements, volume rendering added 2000-11-08 21:30 hutchisn * src/common/utility.cpp, src/common/utility.h: Add back correct symbol for element 110. This may cause problems with atom type rules, but how many rules involve element 110 anyway? 2000-11-07 20:00 hutchisn * src/target3/t3dialog.cpp: Add feedback for currently selected bondtype and element in dialogues. 2000-11-07 19:59 hutchisn * src/target3/t3mm1gui.cpp, src/target3/t3qm2gui.cpp: Temporarily fix bug for open file filters--don't supply a filter until GTK is fixed. 2000-11-02 14:34 thassine * src/common/define.h, src/target3/t3main.cpp: fixed those about-dialog crashes... 2000-11-01 12:43 thassine * CHANGES, src/common/define.h, src/common/mdlbase.cpp, src/common/mdlbase.h, src/common/mm1mdl.cpp, src/common/mm1tab1.cpp, src/common/mm1tab9.cpp, src/common/mm1util.cpp, src/target3/Makefile.OLD: added primary/secondary paths for parameter files 2000-10-31 22:37 hutchisn * src/common/utility.cpp, src/graphics/mm1gui.cpp: Enter real vdW radii from several sources and update GUI to draw accordingly 2000-10-31 22:34 hutchisn * src/target3/t3dialog.cpp: Fixed bug with elements beyond #105. 2000-10-31 17:55 hutchisn * configure, configure.in: Another attempt to pick up Xmu and glut appropirately. 2000-10-31 08:17 thassine * src/Makefile.OLD: revieved the /src/Makefile.OLD 2000-10-30 16:41 hutchisn * configure, configure.in, src/Makefile.OLD, src/target3/Makefile.in: Bugfixes for the autoconf changes--should now work on systems needing -Xmu. 2000-10-30 15:10 thassine * src/Makefile.OLD: added yet another Makefile.OLD 2000-10-30 13:50 hutchisn * INSTALL, Makefile.in, acconfig.h, aclocal.m4, configure, configure.in, install-sh, mkinstalldirs, src/Makefile, src/common/Makefile.in, src/common/define.h, src/config.h.in, src/graphics/Makefile.in, src/target3/Makefile.in, src/target3/t3main.cpp: Changes to move to an autoconf-derived configure script. 2000-10-25 09:06 thassine * src/common/conjgrad.cpp, src/common/utility.cpp: added some missing header files 2000-10-25 08:45 thassine * CHANGES, src/common/conjgrad.cpp, src/common/utility.cpp, src/target3/t3main.cpp, src/target3/t3mm1gui.cpp, src/target3/t3qm2gui.cpp: better GnomeUIInfo initialization (the RH7-patch from GH) 2000-10-25 07:47 thassine * CHANGES, src/graphics/guibase.cpp, src/graphics/mm1gui.cpp: the multiple view management bug fixed (at last) 2000-10-25 00:03 hutchisn * src/common/conjgrad.cpp, src/common/utility.cpp, src/target3/t3main.cpp, src/target3/t3mm1gui.cpp, src/target3/t3qm2gui.cpp: Minor changes to allow compilation on RH7. 2000-10-25 00:02 hutchisn * bin, bin/.cvsignore, src, src/.cvsignore, src/common, src/common/.cvsignore, src/graphics, src/graphics/.cvsignore, src/target2, src/target2/.cvsignore, src/target3, src/target3/.cvsignore: CVS ignore files to remove common build objects, etc. 2000-10-24 09:28 thassine * src/graphics/mm1gui.cpp, src/graphics/mm1gui.h, src/target2/t2mm1gui.cpp, src/target3/t3mm1gui.cpp: cleaned some graphics code 2000-10-23 14:20 thassine * src/new.cpp, src/new.h, src/some-extra-files, src/some-extra-files/newfile.cpp, src/some-extra-files/newfile.h: moved some conflicting files to some-extra-files 2000-10-23 08:59 thassine * CHANGES, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm1util.cpp, src/common/mm1util.h, src/graphics/mm1rbn.cpp: improved mm1_chn_info 2000-10-21 10:14 thassine * src/common/Makefile, src/common/color.h, src/common/config.h, src/common/guibase.cpp, src/common/guibase.h, src/common/mm1gui.cpp, src/common/mm1gui.h, src/common/mm1rbn.cpp, src/common/mm1rbn.h, src/common/mtools.cpp, src/common/mtools.h, src/common/objects.cpp, src/common/objects.h, src/common/plane.cpp, src/common/plane.h, src/common/qm1gui.cpp, src/common/qm1gui.h, src/common/qm2gui.cpp, src/common/qm2gui.h, src/common/spline.cpp, src/common/spline.h, src/common/surface.cpp, src/common/surface.h, src/common/viewing.cpp, src/common/viewing.h, src/common/window.cpp, src/common/window.h: removed some duplicate files 2000-10-21 10:02 thassine * src/common/library: removed library-dir 2000-10-21 09:42 thassine * CHANGES, src/Makefile, src/common/Makefile.OLD, src/common/conjgrad.cpp, src/common/conjgrad.h, src/common/define.h, src/common/engbase.cpp, src/common/engbase.h, src/common/mdlbase.cpp, src/common/mdlbase.h, src/common/mm1alg.cpp, src/common/mm1alg.h, src/common/mm1eng.cpp, src/common/mm1eng.h, src/common/mm1eng1.cpp, src/common/mm1eng1.h, src/common/mm1eng9.cpp, src/common/mm1eng9.h, src/common/mm1mdl.cpp, src/common/mm1mdl.h, src/common/mm1tab1.cpp, src/common/mm1tab1.h, src/common/mm1tab9.cpp, src/common/mm1tab9.h, src/common/mm1util.cpp, src/common/mm1util.h, src/common/qm1eng.cpp, src/common/qm1eng.h, src/common/qm1mdl.cpp, src/common/qm1mdl.h, src/common/qm2eng.cpp, src/common/qm2eng.h, src/common/qm2eng1.cpp, src/common/qm2eng1.h, src/common/qm2eng9.cpp, src/common/qm2eng9.h, src/common/qm2mdl.cpp, src/common/qm2mdl.h, src/common/typedef.h, src/common/utility.cpp, src/common/utility.h, src/common/v3d.h, src/graphics, src/graphics/Makefile.OLD, src/graphics/color.h, src/graphics/guibase.cpp, src/graphics/guibase.h, src/graphics/mm1gui.cpp, src/graphics/mm1gui.h, src/graphics/mm1rbn.cpp, src/graphics/mm1rbn.h, src/graphics/mtools.cpp, src/graphics/mtools.h, src/graphics/objects.cpp, src/graphics/objects.h, src/graphics/plane.cpp, src/graphics/plane.h, src/graphics/qm1gui.cpp, src/graphics/qm1gui.h, src/graphics/qm2gui.cpp, src/graphics/qm2gui.h, src/graphics/spline.cpp, src/graphics/spline.h, src/graphics/surface.cpp, src/graphics/surface.h, src/graphics/viewing.cpp, src/graphics/viewing.h, src/graphics/window.cpp, src/graphics/window.h, src/target1/Makefile, src/target1/Makefile.OLD, src/target1/config.h, src/target1/config.h.OLD, src/target2/Makefile, src/target2/Makefile.OLD, src/target2/config.h, src/target2/config.h.OLD, src/target3/Makefile, src/target3/Makefile.OLD, src/target3/config.h, src/target3/config.h.OLD: new source tree with old makefiles 2000-10-21 08:16 thassine * CHANGES, src/common/guibase.cpp, src/common/guibase.h, src/common/library/define.h, src/common/library/mdlbase.cpp, src/common/library/mdlbase.h, src/common/viewing.cpp, src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3mm1gui.cpp, src/target3/t3mm1gui.h, src/target3/t3qm2gui.cpp, src/target3/t3qm2gui.h, src/target3/t3window.cpp: file save dialogs added, selection bug fixed 2000-10-18 14:13 thassine * CHANGES, bin/examples/2-chlorobutane.gpMM, bin/examples/2-chlorobutane.mm1gp, bin/examples/3-phenylpropanal.gpMM, bin/examples/3-phenylpropanal.mm1gp, bin/examples/acetylsalicylic_acid.gpMM, bin/examples/acetylsalicylic_acid.mm1gp, bin/examples/alpha-pinene.gpMM, bin/examples/alpha-pinene.mm1gp, bin/examples/bromobenzene.gpMM, bin/examples/bromobenzene.mm1gp, bin/examples/camphor.gpMM, bin/examples/camphor.mm1gp, bin/examples/cinnamaldehyde.gpMM, bin/examples/cinnamaldehyde.mm1gp, bin/examples/cis-2-pentene.gpMM, bin/examples/cis-2-pentene.mm1gp, bin/examples/cyclohexane.gpMM, bin/examples/cyclohexane.mm1gp, bin/examples/naphtalene.gpMM, bin/examples/naphtalene.mm1gp, src/common/guibase.cpp, src/common/guibase.h, src/common/library/mm1mdl.cpp, src/common/library/qm1mdl.cpp, src/common/library/qm2mdl.cpp, src/common/mm1gui.cpp, src/common/mm1gui.h, src/common/qm1gui.cpp, src/common/qm1gui.h, src/common/qm2gui.cpp, src/common/qm2gui.h, src/target2/t2main.cpp, src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1gui.cpp, src/target3/t3mm1gui.h, src/target3/t3qm2gui.cpp, src/target3/t3qm2gui.h, src/target3/t3window.cpp, src/target3/t3window.h: added file dialogs for GNOME version, changed examples 2000-10-16 07:07 thassine * src/common/config.h, src/common/library/config.h, src/common/library/mm1mdl.cpp, src/common/library/mm1util.cpp, src/common/library/utility.cpp, src/common/library/utility.h: merged the patches from GH 2000-09-09 14:49 thassine * CHANGES, src/common/config.h, src/common/library/config.h, src/common/library/define.h, src/target1/Makefile: just a few minor changes 2000-09-09 12:17 thassine * BUGLIST, CHANGES, INSTALL, PROJECT, src/common/Makefile, src/common/library/Makefile, src/common/library/define.h, src/common/qm2gui.cpp, src/new.h, src/target2/Makefile, src/target3/Makefile, src/target3/t3main.cpp, src/target3/t3mm1gui.cpp, src/target3/t3qm2gui.cpp, src/target3/t3qm2gui.h, src/target3/t3window.cpp: improvements in gt3. this is released as 0.2.2 2000-09-06 09:02 thassine * src/Makefile: made some changes in makefiles 2000-09-06 08:38 thassine * AUTHORS, BUGLIST, CHANGES, COPYING, INSTALL, PROJECT, bin, bin/examples, bin/examples/2-chlorobutane.mm1gp, bin/examples/3-phenylpropanal.mm1gp, bin/examples/acetylsalicylic_acid.mm1gp, bin/examples/alpha-pinene.mm1gp, bin/examples/bromobenzene.mm1gp, bin/examples/camphor.mm1gp, bin/examples/cinnamaldehyde.mm1gp, bin/examples/cis-2-pentene.mm1gp, bin/examples/cyclohexane.mm1gp, bin/examples/naphtalene.mm1gp, bin/parameters, bin/parameters/builder, bin/parameters/builder/amino.txt, bin/parameters/builder/nucleic.txt, bin/parameters/mm1param, bin/parameters/mm1param/stable, bin/parameters/mm1param/stable/atomtypes.txt, bin/parameters/mm1param/stable/parameters1.txt, bin/parameters/mm1param/stable/parameters2.txt, bin/parameters/mm1param/stable/parameters3.txt, bin/parameters/mm1param/stable/parameters4.txt, bin/parameters/mm1param/stable/parameters5.txt, bin/parameters/mm1param/unstable, bin/parameters/mm1param/unstable/atomtypes.txt, bin/parameters/mm1param/unstable/parameters1.txt, bin/parameters/mm1param/unstable/parameters2.txt, bin/parameters/mm1param/unstable/parameters3.txt, bin/parameters/mm1param/unstable/parameters4.txt, bin/parameters/mm1param/unstable/parameters5.txt, src, src/Makefile, src/common, src/common/Makefile, src/common/color.h, src/common/config.h, src/common/guibase.cpp, src/common/guibase.h, src/common/library, src/common/library/Makefile, src/common/library/config.h, src/common/library/conjgrad.cpp, src/common/library/conjgrad.h, src/common/library/define.h, src/common/library/engbase.cpp, src/common/library/engbase.h, src/common/library/mdlbase.cpp, src/common/library/mdlbase.h, src/common/library/mm1alg.cpp, src/common/library/mm1alg.h, src/common/library/mm1eng.cpp, src/common/library/mm1eng.h, src/common/library/mm1eng1.cpp, src/common/library/mm1eng1.h, src/common/library/mm1eng9.cpp, src/common/library/mm1eng9.h, src/common/library/mm1mdl.cpp, src/common/library/mm1mdl.h, src/common/library/mm1tab1.cpp, src/common/library/mm1tab1.h, src/common/library/mm1tab9.cpp, src/common/library/mm1tab9.h, src/common/library/mm1util.cpp, src/common/library/mm1util.h, src/common/library/qm1eng.cpp, src/common/library/qm1eng.h, src/common/library/qm1mdl.cpp, src/common/library/qm1mdl.h, src/common/library/qm2eng.cpp, src/common/library/qm2eng.h, src/common/library/qm2eng1.cpp, src/common/library/qm2eng1.h, src/common/library/qm2eng9.cpp, src/common/library/qm2eng9.h, src/common/library/qm2mdl.cpp, src/common/library/qm2mdl.h, src/common/library/typedef.h, src/common/library/utility.cpp, src/common/library/utility.h, src/common/library/v3d.h, src/common/matrix.h, src/common/mm1gui.cpp, src/common/mm1gui.h, src/common/mm1rbn.cpp, src/common/mm1rbn.h, src/common/mtools.cpp, src/common/mtools.h, src/common/notice.cpp, src/common/notice.h, src/common/objects.cpp, src/common/objects.h, src/common/plane.cpp, src/common/plane.h, src/common/qm1gui.cpp, src/common/qm1gui.h, src/common/qm2gui.cpp, src/common/qm2gui.h, src/common/spline.cpp, src/common/spline.h, src/common/surface.cpp, src/common/surface.h, src/common/viewing.cpp, src/common/viewing.h, src/common/window.cpp, src/common/window.h, src/new.cpp, src/new.h, src/target1, src/target1/Makefile, src/target1/config.h, src/target1/t1main.cpp, src/target1/t1main.h, src/target2, src/target2/Makefile, src/target2/config.h, src/target2/t2main.cpp, src/target2/t2main.h, src/target2/t2mm1gui.cpp, src/target2/t2mm1gui.h, src/target2/t2qm1gui.cpp, src/target2/t2qm1gui.h, src/target2/t2qm2gui.cpp, src/target2/t2qm2gui.h, src/target2/t2window.cpp, src/target2/t2window.h, src/target3, src/target3/Makefile, src/target3/config.h, src/target3/pixmaps, src/target3/pixmaps/draw.xpm, src/target3/pixmaps/erase.xpm, src/target3/pixmaps/orb_xy.xpm, src/target3/pixmaps/orb_z.xpm, src/target3/pixmaps/rot_xy.xpm, src/target3/pixmaps/rot_z.xpm, src/target3/pixmaps/select.xpm, src/target3/pixmaps/trans_xy.xpm, src/target3/pixmaps/trans_z.xpm, src/target3/pixmaps/zoom.xpm, src/target3/t3dialog.cpp, src/target3/t3dialog.h, src/target3/t3main.cpp, src/target3/t3main.h, src/target3/t3mm1gui.cpp, src/target3/t3mm1gui.h, src/target3/t3qm1gui.cpp, src/target3/t3qm1gui.h, src/target3/t3qm2gui.cpp, src/target3/t3qm2gui.h, src/target3/t3window.cpp, src/target3/t3window.h: Initial revision 2000-09-06 08:38 * .: New repository initialized by cvs2svn. ghemical-3.0.0/configure.ac0000644000175000017500000001522611645347001012501 00000000000000# Configuration for ghemical. # Copyright (C) 2000- Geoff Hutchison, Michael Banck, Jean Brefort, # Tommi Hassinen, Daniel Leidert. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # Process this file with aclocal/autoconf to produce a configure script. AC_INIT([ghemical], [3.0.0]) AC_DEFINE([APPVERSION], ["3.0.0"], [This is the version of ghemical to be built--it is set in the configure.ac]) AC_SUBST([APPVERSION], ["3.0.0"]) AC_DEFINE([APPRELEASEDATE], ["2011-10-12"], [This is the releasedate of ghemical--it is set in the configure.ac]) AC_SUBST([APPRELEASEDATE], ["2011-10-12"]) AC_PREREQ([2.48]) AC_CONFIG_SRCDIR([src/project.cpp]) AM_CONFIG_HEADER([src/ghemicalconfig.h]) # todo : how to prevent from VERSION being written into the config.h file??? # the same will be written into the libghemical config header, causing warnings. AM_INIT_AUTOMAKE([-Wall]) AC_CANONICAL_HOST top_builddir_=`pwd` AC_SUBST(top_builddir_) AC_DEFINE_DIR([APPDATA_PATH], [datadir/ghemical], [Where the data files are ; set in the configure.ac]) # create a version of config.h where the PACKAGE definitions are stripped away. AC_CONFIG_COMMANDS([src/ghemicalconfig2.h],[cat src/ghemicalconfig.h | grep -v PACKAGE > src/ghemicalconfig2.h]) # Get any build/host and enable/disable flags now. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # if a mingw32 host is specified, then ??? # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ##case $host in ## *-*-mingw32*) ## CPPFLAGS="-Dmno-cygwin -Dmms_bitfields $CPPFLAGS" ## LIBS="$LIBS -mwindows" ## ;; ##esac AC_ARG_ENABLE( [gtk], AS_HELP_STRING([--enable-gtk], [build a GTK2 application @<:@default=yes@:>@] ), [enable_gtk=$enableval], [enable_gtk=yes] ) AM_CONDITIONAL([COND_USE_GTK], [test "x$enable_gtk" = "xyes"]) AC_ARG_ENABLE( [threads], AS_HELP_STRING([--enable-threads], [build a multithreaded application @<:@default=yes@:>@] ), [enable_threads=$enableval], [enable_threads=yes] ) AC_ARG_ENABLE( [openbabel], AS_HELP_STRING([--enable-openbabel], [compile with OpenBabel support @<:@default=yes@:>@] ), [enable_openbabel=$enableval], [enable_openbabel=yes] ) # Checks for programs. # ^^^^^^^^^^^^^^^^^^^^ AC_PROG_CC AC_PROG_CXX AC_PROG_CPP AC_PROG_CXXCPP AC_PROG_INSTALL AC_PROG_LIBTOOL AC_PATH_PROG([AR], [ar], [ar]) AC_PATH_PROG([SHELL], [sh], [/bin/sh]) AC_PROG_MAKE_SET PKG_PROG_PKG_CONFIG ## these are for 18n only... ##^^^^^^^^^^^^^^^^^^^^^^^^^^^ ## also see po/Makefile.in AC_CONFIG_FILES ##^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ##IT_PROG_INTLTOOL([0.35.0]) IT_PROG_INTLTOOL([0.40.0]) AM_GLIB_GNU_GETTEXT GETTEXT_PACKAGE="ghemical" AC_SUBST([GETTEXT_PACKAGE]) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [Package name for internationalization]) ## end of i18n-stuff... ##^^^^^^^^^^^^^^^^^^^^^^ AM_SANITY_CHECK # Checks for libraries. # ^^^^^^^^^^^^^^^^^^^^^ AC_CHECK_LIB([m], [acos],, AC_MSG_ERROR([math library missing])) LIBS="$LIBS -L/usr/X11R6/lib" ## the GL/GLU library checks won't work at mingw environment... ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #AC_CHECK_LIB([GL], [glRenderMode],, AC_MSG_ERROR([GL library missing])) #AC_CHECK_LIB([GLU], [gluCylinder],, AC_MSG_ERROR([GLU library missing])) ## the X11 check should be skipped at mingw environment... ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #AC_CHECK_LIB([X11], [XOpenDisplay],, AC_MSG_ERROR([X11 library missing])) ## are the rest necessary??? #AC_CHECK_LIB([Xmu], [XmuDrawLogo]) #AC_CHECK_LIB([Xext], [XShmAttach]) #AC_CHECK_LIB([Xi], [XOpenDevice]) # gtk+ feature GtkUIManager is needed -> v2.4 or newer is required. # glib feature GOptionContext is needed -> v2.6 or newer is required. ## the PKG_CHECK_MODULES() function is not working at mingw environment... ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if test $enable_gtk = yes; then AC_DEFINE([ENABLE_GTK], [], [Define if you are building a GTK2 application]) if test $enable_threads = yes; then AC_DEFINE([ENABLE_THREADS], [], [Define if you are building a multithreaded application]) PKG_CHECK_MODULES([GTHREAD], [gthread-2.0 >= 2.6.0]) ##alt GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.6.0"` ##alt GTHREAD_LIBS=`$PKG_CONFIG --libs gthread-2.0` CPPFLAGS="$CPPFLAGS $GTHREAD_CFLAGS" LIBS="$LIBS $GTHREAD_LIBS" fi PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0]) ##alt GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.6.0 gtkglext-1.0 >= 1.0.5 libglade-2.0 >= 2.4.0"` ##alt GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0 gtkglext-1.0 libglade-2.0` CPPFLAGS="$CPPFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" fi if test $enable_openbabel = yes; then AC_DEFINE([ENABLE_OPENBABEL], [], [Define if you are building a version that interfaces directly with OpenBabel]) PKG_CHECK_MODULES([OPENBABEL], [openbabel-2.0]) ##alt OPENBABEL_CFLAGS=`$PKG_CONFIG --cflags openbabel-2.0` ##alt OPENBABEL_LIBS=`$PKG_CONFIG --libs openbabel-2.0` CPPFLAGS="$CPPFLAGS $OPENBABEL_CFLAGS" LIBS="$LIBS $OPENBABEL_LIBS" fi PKG_CHECK_MODULES([LIBGHEMICAL], [libghemical >= 3.0.0 liboglappth >= 1.0.0]) ##alt LIBGHEMICAL_CFLAGS=`$PKG_CONFIG --cflags "libghemical >= 3.0.0 liboglappth >= 1.0.0"` ##alt LIBGHEMICAL_LIBS=`$PKG_CONFIG --libs libghemical liboglappth` CPPFLAGS="$CPPFLAGS $LIBGHEMICAL_CFLAGS" LIBS="$LIBS $LIBGHEMICAL_LIBS" # Checks for header files. # ^^^^^^^^^^^^^^^^^^^^^^^^ AC_CHECK_HEADERS([GL/gl.h]) AC_CHECK_HEADERS([GL/glu.h]) # Checks for typedefs, structures, and compiler characteristics. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AC_PROG_CC_STDC AC_C_INLINE AC_C_CONST AC_SUBST([CXXFLAGS]) AC_SUBST([LDFLAGS]) # Checks for library functions. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AC_HEADER_STDC AC_CONFIG_FILES([ Makefile docs/Makefile docs/user-docs/Makefile docs/user-docs/images/Makefile examples/Makefile examples/TSS/Makefile examples/TSS/carbocation_rearrangement_hydride_shift/Makefile examples/TSS/carbocation_rearrangement_methide_shift/Makefile examples/TSS/cycloaddition_Diels-Alder/Makefile examples/TSS/E2-reaction/Makefile examples/TSS/sigmatropic_rearrangement_Cope/Makefile examples/TSS/SN2-reaction/Makefile examples/TSS/tautomeric_shift_keto_enol/Makefile po/Makefile.in src/Makefile src/res_gtk/Makefile ]) AC_MSG_NOTICE([ build options: ^^^^^^^^^^^^^^ enable gtk : $enable_gtk enable threads : $enable_threads enable OpenBabel : $enable_openbabel ]) AC_CONFIG_COMMANDS([stamp.h], [echo timestamp > stamp.h]) AC_OUTPUT ghemical-3.0.0/install-sh0000755000175000017500000001572211563552731012227 00000000000000#!/bin/sh # # install - install a program, script, or datafile # # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd=$cpprog shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "$0: no input file specified" >&2 exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d "$dst" ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f "$src" ] || [ -d "$src" ] then : else echo "$0: $src does not exist" >&2 exit 1 fi if [ x"$dst" = x ] then echo "$0: no destination specified" >&2 exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d "$dst" ] then dst=$dst/`basename "$src"` else : fi fi ## this sed command emulates the dirname command dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` IFS=$oIFS pathcomp='' while [ $# -ne 0 ] ; do pathcomp=$pathcomp$1 shift if [ ! -d "$pathcomp" ] ; then $mkdirprog "$pathcomp" else : fi pathcomp=$pathcomp/ done fi if [ x"$dir_arg" != x ] then $doit $instcmd "$dst" && if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename "$dst"` else dstfile=`basename "$dst" $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename "$dst"` else : fi # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up temp files at exit. trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 trap '(exit $?); exit' 1 2 13 15 # Move or copy the file name to the temp name $doit $instcmd "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && # Now remove or move aside any old file at destination location. We try this # two ways since rm can't unlink itself on some systems and the destination # file might be busy for other reasons. In this case, the final cleanup # might fail but the new file should still install successfully. { if [ -f "$dstdir/$dstfile" ] then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" fi && # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit } ghemical-3.0.0/README0000644000175000017500000000000011563552732011063 00000000000000ghemical-3.0.0/AUTHORS0000644000175000017500000000125611563552731011270 00000000000000Tommi Hassinen is the principal author. Or at least the original one... :) Jarno Huuskonen and Ville Heikkilä have contributed some GUI-code. Tuomas Venäläinen made the toolbar icon pixmaps. Geoff Hutchison has added OpenBabel-based file import/export properties, and an easy-to-use configure-script. Mike Cruz has added the stereo mode viewing features. Michael Banck and Radek Liboska have created the .deb and .rpm binary packages. Austin Acton created the Mandrake .rpm packages. Christopher Rowley updated and practically re-wrote the User's Manual. Michael Banck and Jean Brefort have contributed the automake/autoconf- related configuration files. ghemical-3.0.0/aclocal.m40000644000175000017500000124140211645347717012067 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_in,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([acinclude.m4]) ghemical-3.0.0/INSTALL0000644000175000017500000000505311563552731011250 00000000000000 REQUIREMENTS: ------------- The ghemical package is dependent on "libghemical" package, in addition to the packages/files that are needed to compile and run programs at the GTK2 platform. Also ghemical is optionally dependent on "OpenBabel" packages (for file import/export features). You can get "libghemical-2.95.tgz" or newer from http://bioinformatics.org/ghemical/download.html You can get "openbabel-2.0.0.tar.gz" or newer from http://openbabel.sourceforge.net/ Other software/packages that are needed to compile and run this program are: g++ gcc version 4.1.2 or later make GNU Make version 3.76.1 pkg-config pkg-config-0.15 glib glib-2.0 version 2.6.0 or newer gtk+ gtk+-2.0 version 2.6.0 or newer gtkglext gtkglext-1.0 version 1.0.5 or newer libglade libglade-2.0 version 2.4.0 or newer gthread gthread-2.0 version 2.6.0 or newer (optional) In short, any up-to-date Linux installation like Redhat, Mandrake or Debian should work, if the necessary development packages (that contain the header files) are also present, in addition to the standard packages (that contain the libraries). INSTALLATION: ------------- Simple set of commands ./autogen.sh ./configure make make install [run as root user] will produce an executable program in which all the optional dependencies mentioned above are disabled. You can enable the options by adding the following statements to the configuration script command line: ./configure --enable-openbabel If you wish to disable multithreading you may use: ./configure --enable-threads=no For more options and information you can try ./configure --help If at configuration step you get stuck and see some error messages about PKG_CONFIG, please try the following tricks (and re-try ./configure): export PKG_CONFIG=pkg-config export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig Also if problems appear you might want to try updating the configuration files using commands at the top of the source tree (and re-try ./configure): aclocal autoconf autoheader This is an example how to set different compiler versions in Makefiles: CC=gcc-3.4 CXX=g++-3.4 ./configure The "make install"-command will copy the executable and some extra files to their proper places so that the program can be run anywhere. After you have installed the program you can click the item "Help/Help" from the main menu to read the User's Manual (highly recommended). In the "examples"-directory there are some useful example molecules, and in the "small-utilities"-directory there are... well, some small utilities. Enjoy!!! ghemical-3.0.0/ghemical.spec0000644000175000017500000000235411563552731012645 00000000000000Summary: The MM and QM calculations frontend. Name: ghemical Version: 2.60 Release: 1 License: GPL Group: Science/Chemistry Source: http://www.uku.fi/~thassine/projects/download/%{name}-%{version}.tar.gz URL: http://www.uku.fi/~thassine/ghemical/ Icon: ghemical.xpm Vendor: Tommi Hassinen et al. Packager: Radek Liboska %description Ghemical is a computational chemistry software package released under the GNU GPL. Ghemical is written in C++. It has a graphical user interface (in fact, a couple of them), and it supports both quantum-mechanics (semi-empirical and ab initio) models and molecular mechanics models (there is an experimental Tripos 5.2-like force field for organic molecules). Also a tool for reduced protein models is included. Geometry optimization, molecular dynamics and a large set of visualization tools are currently available. %prep rm -rf $RPM_BUILD_ROOT %setup %build %configure --enable-openbabel make %install make install-strip prefix=$RPM_BUILD_ROOT/%{_prefix} %files %defattr(-,root,root) %doc docs/user-docs %{_bindir}/ghemical %{_datadir}/%{name}/%{version}/examples %clean rm -rf $RPM_BUILD_ROOT %changelog * Thu Oct 12 2006 Radek Liboska fc5 - ver 2.10, fedora core 5 ghemical-3.0.0/src/0000755000175000017500000000000011645354541011063 500000000000000ghemical-3.0.0/src/gpcview_wcl.cpp0000644000175000017500000000371411634160016014013 00000000000000// GPCVIEW_WCL.CPP // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gpcview_wcl.h" /*################################################################################################*/ gpcview_wcl::gpcview_wcl(void) : pangofont_wcl(new ogl_camera(ogl_ol_static(), 1.0)) { } gpcview_wcl::~gpcview_wcl(void) { // problem : lifetime of the camera object needs to be longer than // lifetime of this object since it is needed at the base class dtor. // solution : ask the base class to do the cleanup work for us... delete_cam_plz = true; } void gpcview_wcl::ButtonEvent(int, int) { } void gpcview_wcl::MotionEvent(int, int) { } void gpcview_wcl::UpdateWnd(void) { base_wnd * wnd = GetWnd(); if (!wnd || wnd->GetWidth() < 0 || !cam) return; wnd->SetCurrent(); cam->RenderScene(wnd, false, false); } void gpcview_wcl::InitGL(void) { // all classes that inherit pangofont_wcl must call ogl_InitPangoFont()!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ogl_InitPangoFont("courier 12"); } void gpcview_wcl::RenderGL(rmode) { } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_eldview_wnd.cpp0000644000175000017500000000630311634160016014653 00000000000000// GTK_ELDVIEW_WND.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_eldview_wnd.h" #include "eldview_wcl.h" #include "gtk_app.h" #include "local_i18n.h" /*################################################################################################*/ GtkActionEntry gtk_eldview_wnd::entries[] = { { "AttachDetachELD", NULL, N_("Attach/Detach This View"), NULL, N_("Select whether this view is attached or in an independent window"), (GCallback) gtk_eldview_wnd::popup_AttachDetach }, { "DeleteViewELD", NULL, N_("Delete View"), NULL, N_("Delete this view"), (GCallback) gtk_eldview_wnd::popup_DeleteView } }; const char * gtk_eldview_wnd::ui_description = "" " " " " " " " " " " ""; gtk_eldview_wnd::gtk_eldview_wnd(bool det_flag) : gtk_wnd(det_flag) { GtkActionGroup * action_group = gtk_action_group_new("geldvActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), GTK_WIDGET(view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); GError * error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), ui_description, -1, & error)) { g_message(_("ERROR : Building popup-menu for gtk_eldview_wnd failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } // set gtk_view::popupmenu so that gtk_ogl_view::ButtonHandler() will display it... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ popupmenu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/geldvMenu"); } gtk_eldview_wnd::~gtk_eldview_wnd(void) { } // here are the popup menu callbacks: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ void gtk_eldview_wnd::popup_AttachDetach(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); eldview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetAppX()->AttachDetachView(wcl); } void gtk_eldview_wnd::popup_DeleteView(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); eldview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetPrjX()->RemovePlottingClient(wcl); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_p2dview_wnd.h0000644000175000017500000000302311634160016014235 00000000000000// GTK_P2DVIEW_WND.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef GTK_P2DVIEW_WND_H #define GTK_P2DVIEW_WND_H #include "gtk_wnd.h" /*################################################################################################*/ class gtk_p2dview_wnd : public gtk_wnd { private: static GtkActionEntry entries[]; static const char * ui_description; public: gtk_p2dview_wnd(bool); ~gtk_p2dview_wnd(void); static void popup_AttachDetach(GtkWidget *, gpointer); static void popup_DeleteView(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_P2DVIEW_WND_H // eof ghemical-3.0.0/src/gtk_p2dview_wnd.cpp0000644000175000017500000000631711634160016014601 00000000000000// GTK_P2DVIEW_WND.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_p2dview_wnd.h" #include "p2dview_wcl.h" #include "gtk_app.h" #include "local_i18n.h" /*################################################################################################*/ GtkActionEntry gtk_p2dview_wnd::entries[] = { { "AttachDetachPlot2D", NULL, N_("Attach/Detach This View"), NULL, N_("Select whether this view is attached or in an independent window"), (GCallback) gtk_p2dview_wnd::popup_AttachDetach }, { "DeleteViewPlot2D", NULL, N_("Delete View"), NULL, N_("Delete this view"), (GCallback) gtk_p2dview_wnd::popup_DeleteView } }; const char * gtk_p2dview_wnd::ui_description = "" " " " " " " " " " " ""; gtk_p2dview_wnd::gtk_p2dview_wnd(bool det_flag) : gtk_wnd(det_flag) { GtkActionGroup * action_group = gtk_action_group_new("gp2dvActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), GTK_WIDGET(view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); GError * error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), ui_description, -1, & error)) { g_message(_("ERROR : Building popup-menu for gtk_p2dview_wnd failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } // set gtk_view::popupmenu so that gtk_ogl_view::ButtonHandler() will display it... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ popupmenu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/gp2dvMenu"); } gtk_p2dview_wnd::~gtk_p2dview_wnd(void) { } // here are the popup menu callbacks: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ void gtk_p2dview_wnd::popup_AttachDetach(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); p2dview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetAppX()->AttachDetachView(wcl); } void gtk_p2dview_wnd::popup_DeleteView(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); p2dview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetPrjX()->RemovePlottingClient(wcl); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_glade_dialog.h0000644000175000017500000000257211634160016014410 00000000000000// GTK_GLADE_DIALOG.H : write a short description here... // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_GLADE_DIALOG_H #define GTK_GLADE_DIALOG_H //#include "ghemicalconfig2.h" #include /*################################################################################################*/ class gtk_glade_dialog { protected: GladeXML * xml; public: gtk_glade_dialog(const char *); virtual ~gtk_glade_dialog(void); }; /*################################################################################################*/ #endif // GTK_GLADE_DIALOG_H // eof ghemical-3.0.0/src/p2dview_wcl.h0000644000175000017500000000406511634160016013374 00000000000000// P2DVIEW_WCL.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef P2DVIEW_WCL_H #define P2DVIEW_WCL_H #include "ac_stor_wcl.h" #include /*################################################################################################*/ struct p2d_data { double c1; // coordinate 1 (say, x-coordinate) double c2; // coordinate 2 (say, y-coordinate) double v; // value int ac_i; // atom coordinate data }; class p2dview_wcl : public ac_stor_wcl { protected: char * name1; char * name2; char * namev; vector dv; f64 min1; f64 max1; f64 min2; f64 max2; f64 minv; f64 maxv; public: p2dview_wcl(const char *, const char *, const char *); virtual ~p2dview_wcl(void); void AddData(double, double, double); void AddDataWithAC(double, double, double, engine *); virtual void Finalize(void); void ButtonEvent(int, int); // virtual void MotionEvent(int, int); // virtual void UpdateWnd(void); // virtual void InitGL(void); // virtual void RenderGL(rmode); // virtual protected: void SetColor(GLfloat); }; /*################################################################################################*/ #endif // P2DVIEW_WCL_H // eof ghemical-3.0.0/src/local_i18n.h0000644000175000017500000000354011634160016013075 00000000000000// LOCAL_I18N.H : some internationalization stuff... // Copyright (C) 2008 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ // only ".cpp"-files are supposed to include this!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // also make sure that this file is not installed in "PREFIX/include". // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // here we include and/or define necessary stuff so that gettext() // and related stuff is correclty found when needed. // the idea is that gettext() may be also easily disabled by // modifying just this file and nothing else!!! /*################################################################################################*/ // enable i18n: // ^^^^^^^^^^^^ #include "ghemicalconfig.h" // GETTEXT_PACKAGE is defined here... #include /*################################################################################################*/ // disable i18n: // ^^^^^^^^^^^^^ //#define _(String) String /*################################################################################################*/ // eof ghemical-3.0.0/src/appdefine.h0000644000175000017500000000376311634160016013106 00000000000000// APPDEFINE.H : just some macros #defined here... // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef APPDEFINE_H #define APPDEFINE_H //#include "ghemicalconfig2.h" /*################################################################################################*/ #define GLNAME_LIGHT 0x0001 #define GLNAME_OBJECT 0x0002 #define GLNAME_MODEL_DEPENDENT 0xFF00 // all these events are forwarded... #define GLNAME_MD_TYPE1 (GLNAME_MODEL_DEPENDENT | 0x01) #define GLNAME_MD_TYPE2 (GLNAME_MODEL_DEPENDENT | 0x02) /*################################################################################################*/ #define RENDER_NOTHING 0x00 #define RENDER_WIREFRAME 0x01 #define RENDER_BALL_AND_STICK 0x02 #define RENDER_VAN_DER_WAALS 0x03 #define RENDER_ACCESSIBLE 0x04 #define RENDER_CYLINDERS 0x05 #define LABEL_NOTHING 0x00 #define LABEL_INDEX 0x01 #define LABEL_F_CHARGE 0x02 #define LABEL_P_CHARGE 0x03 #define LABEL_ELEMENT 0x04 #define LABEL_BUILDER_ID 0x05 #define LABEL_ATOMTYPE 0x06 #define LABEL_BONDTYPE 0x10 #define LABEL_RESIDUE 0x20 #define LABEL_SEC_STRUCT 0x21 /*################################################################################################*/ #endif // APPDEFINE_H // eof ghemical-3.0.0/src/eldview_wcl.h0000644000175000017500000000311411634160016013445 00000000000000// ELDVIEW_WCL.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef ELDVIEW_WCL_H #define ELDVIEW_WCL_H #include "pangofont_wcl.h" /*################################################################################################*/ class eldview_wcl : public pangofont_wcl { protected: bool reset_needed; public: eldview_wcl(void); virtual ~eldview_wcl(void); void SetCenterAndScale(void); void ButtonEvent(int, int); // virtual void MotionEvent(int, int); // virtual void UpdateWnd(void); // virtual void InitGL(void); // virtual void RenderGL(rmode); // virtual }; /*################################################################################################*/ #endif // ELDVIEW_WCL_H // eof ghemical-3.0.0/src/project.h0000644000175000017500000003453611634160016012623 00000000000000// PROJECT.H : base classes for all graphical user interfaces. // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef PROJECT_H #define PROJECT_H #include "ghemicalconfig2.h" class project; class dummy_project; class color_mode; class color_mode_element; // atom * class color_mode_secstruct; // atom * class color_mode_hydphob; // atom * class transparent_primitive; class transparent_primitive_data; class tpd_tri_3c; class tpd_quad_4c; class ogl_dummy_object; // oglappth/ogl_objects.h class ogl_smart_object; // oglappth/ogl_objects.h class custom_camera; // custom_camera.h class ogl_light; // oglappth/ogl_camera.h #include #include #include #include "oglview_wcl.h" #include "p1dview_wcl.h" #include "p2dview_wcl.h" #include "eldview_wcl.h" #include "rcpview_wcl.h" #include "gpcview_wcl.h" #include #include using namespace std; #define FILENAME_FILTER "*.gpr" /*################################################################################################*/ class jobinfo_GeomOpt { public: project * prj; geomopt_param go; // this is a class... bool show_dialog; jobinfo_GeomOpt(void) : go(NULL) { prj = NULL; show_dialog = false; } }; class jobinfo_MolDyn { public: project * prj; moldyn_param md; // this is a class... bool show_dialog; jobinfo_MolDyn(void) : md(NULL) { prj = NULL; show_dialog = false; } }; struct jobinfo_RandomSearch { project * prj; int cycles; int optsteps; }; /*################################################################################################*/ class custom_transformer_client : public ogl_transformer_client { public: bool tc_local_object; // is the object affected by transformation? public: custom_transformer_client(void); ~custom_transformer_client(void); }; /*################################################################################################*/ /** The "##project" class is an enhanced version of "##model" class, containing graphical user interface. */ class project : public custom_transformer_client, public model { protected: char * project_path; // may or may not exist... char * project_filename; // should always exist... // call oglview-type views graphics views (by tradition)... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ vector graphics_view_vector; // call all other types of views (except project-view) plotting views. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ vector plotting_view_vector; i32s camera_counter; i32s object_counter; /** A static counter of display list IDs. In some targets there can be several GUI's running simultaneously, so we must make sure that the display list ID's are unique -> static. */ static iGLu list_counter; atom * mt_a1; // measure_tool atom * mt_a2; // measure_tool atom * mt_a3; // measure_tool readpdb_mdata * importpdb_mdata; // temporary?!?!?! friend class gtk_importpdb_dialog; // importpdb_mdata public: vector object_vector; static ogl_dummy_object * selected_object; static const char appversion[16]; static char appdata_path[256]; // also see libghemical_init()... /** If background_job_running is "true" it means that a geometry optimization, molecular dynamics etc. job is running on the background, and the user possibly can access any of the GUI elements. What we want is to block user out from any GUI elements that might be able directly or indirectly modify any internal state or information of the model object (for example addition or removal of atoms or bonds will instantly mess up everything ; sorting atoms/bonds does the same ; etc...). However it is good if user can update graphics using zoom/turning tools and so on... */ static bool background_job_running; static color_mode_element cm_element; static color_mode_secstruct cm_secstruct; static color_mode_hydphob cm_hydphob; atom * draw_data[2]; public: project(void); virtual ~project(void); void ClearAll(void); virtual bool Question(const char *) = 0; // some file name methods... // ^^^^^^^^^^^^^^^^^^^^^^^^^ const char * GetProjectFileNameExtension(void); void SetProjectPath(const char *); void SetProjectFileName(const char *); void SetDefaultProjectFileName(void); void ParseProjectFileNameAndPath(const char *); void GetProjectFileName(char *, int, bool); void GetFullProjectFileName(char *, int); // methods for file I/O : ReadGPR and WriteGPR are friend functions so that it would be easier to "borrow" them elsewhere... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ friend bool ReadGPR_OLD(project &, istream &, bool, bool = false); ///< this is for the very old version. friend bool ReadGPR_v100(project &, istream &, bool, bool = false); ///< this is for the version 1.00. friend bool ReadGPR_v110(project &, istream &, bool, bool = false); ///< this is for the version 1.10. /// This is an input function for the v1.11 ghemical file format. friend bool ReadGPR(project &, istream &, bool, bool = false); friend void WriteGPR_v100(project &, ostream &); ///< this is for the version 1.00. /// This is an output function for the v1.11 ghemical file format. friend void WriteGPR(project &, ostream &); #ifdef ENABLE_OPENBABEL bool ImportFile(const char * filename, int index = 0); bool ExportFile(const char * filename, int index = 0); #endif // ENABLE_OPENBABEL // add or remove hydrogen atoms... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ void AddH(void); void RemoveH(void); // some utility functions. // ^^^^^^^^^^^^^^^^^^^^^^^ const char * GetType(void); color_mode * GetDefaultColorMode(void); void SelectAll(void); void InvertSelection(void); void HideSelected(void); void ShowSelected(void); void LockSelected(void); void UnlockSelected(void); void DeleteSelected(void); iGLu GetDisplayListIDs(iGLu); void DeleteDisplayLists(iGLu, iGLu); // we need to intercept these atom/bond events from the // model class in order to keep "project view" up-to-date! void AddAtom_lg(atom &); // virtual void RemoveAtom(iter_al); // virtual void AddBond(bond &); // virtual void RemoveBond(iter_bl); // virtual void InvalidateGroups(void); // virtual void UpdateChains(void); // virtual // some ogl_object-related methods: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ i32s IsObject(const ogl_dummy_object *); bool SelectObject(const ogl_dummy_object *); void AddObject(ogl_smart_object *); bool RemoveObject(ogl_dummy_object *); // some camera/window methods: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^ fGL GetDefaultFocus(void); virtual base_wnd * CreateGraphicsWnd(bool) = 0; virtual void DestroyGraphicsWnd(base_wnd *) = 0; virtual base_wnd * CreatePlot1DWnd(bool) = 0; virtual base_wnd * CreatePlot2DWnd(bool) = 0; virtual base_wnd * CreateEnergyLevelDiagramWnd(bool) = 0; virtual base_wnd * CreateReactionCoordinatePlotWnd(bool) = 0; virtual base_wnd * CreateGenericProteinChainWnd(bool) = 0; virtual void DestroyPlottingWnd(base_wnd *) = 0; // if custom_camera is NULL, a new one is created ; this is the add cam/new logic. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ oglview_wcl * AddGraphicsClient(custom_camera *, bool); bool RemoveGraphicsClient(oglview_wcl *, bool); bool IsThisLastGraphicsClient(oglview_wcl *); // each "plotting" client will create an ogl_camera object of it's own ; none is given. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ p1dview_wcl * AddPlot1DClient(const char *, const char *, bool); p2dview_wcl * AddPlot2DClient(const char *, const char *, const char *, bool); eldview_wcl * AddEnergyLevelDiagramClient(bool); rcpview_wcl * AddReactionCoordinatePlotClient(const char *, const char *, bool); gpcview_wcl * AddGenericProteinChainClient(bool); bool RemovePlottingClient(base_wcl *); void UpdateAllViews(void); void UpdateAllGraphicsViews(bool = false); // virtual void UpdateAllPlottingViews(bool = false); void UpdateGraphicsViews(ogl_camera *, bool = false); void UpdateGraphicsView(oglview_wcl *, bool = false); /** Contains some OpenGL initialization commands (color, material, light settings). The OGL selection buffer should also be assigned here!!! */ void InitGL(void); /** Contains the OpenGL rendering commands that draw the 3D-view. Selection is done in a rather crude way by dumping the atom pointers directly to the OGL selection buffer and reading them later there... Works fine as long as both datatypes have the same size (currently it's 32 bits). If we some day need 64-bit pointers and have only 32-bit sel-buffer we have to use two names... */ void Render(oglview_wcl *, rmode); /** This is just quickly cut into a different function for clarity... We will call this multiple times with translation applied if we render some periodic systems... */ void RenderOnce(oglview_wcl *, rmode, bool); void RenderObjects(oglview_wcl *); void BeginClientTransformation(ogl_transformer *); // virtual void EndClientTransformation(ogl_transformer *); // virtual void DrawEvent(oglview_wcl *, vector &); void EraseEvent(oglview_wcl *, vector &); void SelectEvent(oglview_wcl *, vector &); void MeasureEvent(oglview_wcl *, vector &); // some common operations are implemented here: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ virtual void CreateProgressDialog(const char *, bool, int, int) = 0; virtual void DestroyProgressDialog(void) = 0; void ProcessCommandString(oglview_wcl *, const char *); virtual void start_job_GeomOpt(jobinfo_GeomOpt *) = 0; virtual void start_job_MolDyn(jobinfo_MolDyn *) = 0; virtual void start_job_RandomSearch(jobinfo_RandomSearch *) = 0; void DoDeleteCurrentObject(void); void DoSwitchLocalLights(ogl_camera *, bool); void DoSwitchGlobalLights(ogl_camera *, bool); bool TestAtom(atom *, rmode); bool TestBond(bond *, rmode); inline void SetColor(color_mode *, atom *, bool); void DrawCylinder1(const fGL **, const fGL **, const fGL *); // here are some Do???() functions similar to those in the model class. // however, the classes here are "interactive" and are directly dependent on graphics. // so you don't want to use any of these classes in the console version... void DoFormula(void); void DoEnergyPlot1D(i32s, i32s, i32s, i32s, i32s, fGL, fGL, i32s); void DoEnergyPlot2D(i32s, i32s, i32s, i32s, i32s, fGL, fGL, i32s, i32s, i32s, i32s, i32s, fGL, fGL, i32s); void DoTransitionStateSearch(f64, f64); void DoStationaryStateSearch(i32s); }; float measure_len(float *, float *); float measure_ang(float *, float *, float *); float measure_tor(float *, float *, float *, float *); /*################################################################################################*/ /// the purpose of this class is just to make file operations available (ReadGPR() wants project object). class dummy_project : public project { public: dummy_project(void); ~dummy_project(void); void CreateProgressDialog(const char *, bool, int, int) { } void DestroyProgressDialog(void) { } void start_job_GeomOpt(jobinfo_GeomOpt *) { } void start_job_MolDyn(jobinfo_MolDyn *) { } void start_job_RandomSearch(jobinfo_RandomSearch *) { } bool Question(const char *) { return false; } base_wnd * CreateGraphicsWnd(bool) { return NULL; } void DestroyGraphicsWnd(base_wnd *) { } base_wnd * CreatePlot1DWnd(bool) { return NULL; } base_wnd * CreatePlot2DWnd(bool) { return NULL; } base_wnd * CreateEnergyLevelDiagramWnd(bool) { return NULL; } base_wnd * CreateReactionCoordinatePlotWnd(bool) { return NULL; } base_wnd * CreateGenericProteinChainWnd(bool) { return NULL; } void DestroyPlottingWnd(base_wnd *) { } }; /*################################################################################################*/ /// The "##color_mode" class is used to handle the color detemination details. class color_mode { protected: // this is just an interface definition -> there is no relevant common data?!?!? // this is just an interface definition -> there is no relevant common data?!?!? // this is just an interface definition -> there is no relevant common data?!?!? public: color_mode(void) { } virtual ~color_mode(void) { } // is this (void *)-method really the only possibility to give a virtual function different // parameters without the "hiding problem"??????????????????? // should be [void *, i32s CRD_SET, fGL_a4] -> crd-set can be included in coloring??? ALSO NEED TO FIND A BETTER WAY TO INCLUDE PREFS!!! // should be [void *, i32s CRD_SET, fGL_a4] -> crd-set can be included in coloring??? ALSO NEED TO FIND A BETTER WAY TO INCLUDE PREFS!!! // should be [void *, i32s CRD_SET, fGL_a4] -> crd-set can be included in coloring??? ALSO NEED TO FIND A BETTER WAY TO INCLUDE PREFS!!! virtual void GetColor4(const void *, i32s, fGL *) = 0; }; class color_mode_element : public color_mode { protected: public: color_mode_element(void) : color_mode() { } ~color_mode_element(void) { } void GetColor4(const void *, i32s, fGL *); }; class color_mode_secstruct : public color_mode { protected: public: color_mode_secstruct(void) : color_mode() { } ~color_mode_secstruct(void) { } void GetColor4(const void *, i32s, fGL *); }; class color_mode_hydphob : public color_mode { protected: public: color_mode_hydphob(void) : color_mode() { } ~color_mode_hydphob(void) { } void GetColor4(const void *, i32s, fGL *); }; /*################################################################################################*/ #endif // PROJECT_H // eof ghemical-3.0.0/src/pangofont_wcl.cpp0000644000175000017500000000641011634160016014336 00000000000000// PANGOFONT_WCL.CPP // Copyright (C) 2008 Tommi Hassinen, Naosumi Yasufuku. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "pangofont_wcl.h" #include "local_i18n.h" #include #include #include #include using namespace std; /*################################################################################################*/ pangofont_wcl::pangofont_wcl(ogl_camera * cam) : base_wcl(cam) { font_string = NULL; font_height = 0; font_list_base = 0; } pangofont_wcl::~pangofont_wcl(void) { if (font_string != NULL) { g_free(font_string); font_string = NULL; } } void pangofont_wcl::ogl_InitPangoFont(const gchar * fs) { if (!fs) { assertion_failed(__FILE__, __LINE__, "bad font string."); } if (font_string != NULL) { cout << "WARNING : pangofont_wcl::ogl_InitPangoFont() is already called." << endl; return; } font_string = g_strdup(fs); // generate font display lists. font_list_base = glGenLists(128); PangoFontDescription * font_desc = pango_font_description_from_string(font_string); PangoFont * font = gdk_gl_font_use_pango_font(font_desc, 0, 128, font_list_base); if (font == NULL) { g_print(_("*** ERROR : Can't load font '%s'\n"), font_string); exit(EXIT_FAILURE); } PangoFontMetrics * font_metrics = pango_font_get_metrics(font, NULL); font_height = pango_font_metrics_get_ascent(font_metrics) + pango_font_metrics_get_descent(font_metrics); font_height = PANGO_PIXELS(font_height); pango_font_description_free(font_desc); pango_font_metrics_unref(font_metrics); } int pangofont_wcl::ogl_GetStringWidth(const char * str) { int width = 0; unsigned int count = 0; while (count < strlen(str)) { width += font_height / 2; // how to do this correctly??? count++; } return width; } void pangofont_wcl::ogl_WriteString2D(const char * str, GLfloat x, GLfloat y) { glPushMatrix(); glLoadIdentity(); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); gluOrtho2D(0, GetWnd()->GetWidth(), 0, GetWnd()->GetHeight()); ogl_WriteString3D(str, x, y, 0.0); glPopMatrix(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); } void pangofont_wcl::ogl_WriteString3D(const char * str, GLfloat x, GLfloat y, GLfloat z) { glDisable(GL_DEPTH_TEST); glRasterPos3f(x, y, z); unsigned int count = 0; while (count < strlen(str)) { glCallList(font_list_base + str[count++]); } glEnable(GL_DEPTH_TEST); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_trajview_dialog.cpp0000644000175000017500000001256311634160016015523 00000000000000// GTK_TRAJVIEW_DIALOG.CPP // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_trajview_dialog.h" #include "local_i18n.h" #include #include using namespace std; /*################################################################################################*/ gtk_trajview_dialog::gtk_trajview_dialog(gtk_project * p1) : gtk_glade_dialog("glade/gtk_trajview_dialog.glade") { prj = p1; dialog = glade_xml_get_widget(xml, "trajview_dialog"); if (dialog == NULL) { cout << _("WARNING : trajview_dialog : glade_xml_get_widget() failed!!!") << endl; return; } // connect the handlers... glade_xml_signal_connect_data(xml, "on_dialog_destroy", (GtkSignalFunc) handler_Destroy, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_begin_clicked", (GtkSignalFunc) handler_ButtonBegin, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_prev_clicked", (GtkSignalFunc) handler_ButtonPrev, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_play_clicked", (GtkSignalFunc) handler_ButtonPlay, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_next_clicked", (GtkSignalFunc) handler_ButtonNext, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_end_clicked", (GtkSignalFunc) handler_ButtonEnd, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_close_clicked", (GtkSignalFunc) handler_ButtonClose, (gpointer) this); gtk_widget_show(dialog); // MODELESS } gtk_trajview_dialog::~gtk_trajview_dialog(void) { // prj->CloseTrajectory(); // ??? // see handler_ButtonClose() below... // see handler_ButtonClose() below... // see handler_ButtonClose() below... } void gtk_trajview_dialog::handler_Destroy(GtkWidget *, gpointer data) { gtk_trajview_dialog * ref = (gtk_trajview_dialog *) data; cout << "handler_Destroy() : ref = " << ref << endl; } void gtk_trajview_dialog::handler_ButtonBegin(GtkWidget *, gpointer data) { gtk_trajview_dialog * ref = (gtk_trajview_dialog *) data; i32s frame = 0; ref->prj->SetCurrentFrame(frame); ref->prj->ReadTrajectoryFrame(); ostringstream str1; str1 << _("frame = ") << ref->prj->GetCurrentFrame() << endl << ends; ref->prj->PrintToLog(str1.str().c_str()); ref->prj->UpdateAllGraphicsViews(true); } void gtk_trajview_dialog::handler_ButtonPrev(GtkWidget *, gpointer data) { gtk_trajview_dialog * ref = (gtk_trajview_dialog *) data; i32s frame = ref->prj->GetCurrentFrame() - 1; i32s max = ref->prj->GetTotalFrames(); if (frame < 0) frame = 0; if (frame >= max) frame = max - 1; ref->prj->SetCurrentFrame(frame); ref->prj->ReadTrajectoryFrame(); ostringstream str1; str1 << _("frame = ") << ref->prj->GetCurrentFrame() << endl << ends; ref->prj->PrintToLog(str1.str().c_str()); ref->prj->UpdateAllGraphicsViews(true); } void gtk_trajview_dialog::handler_ButtonPlay(GtkWidget *, gpointer data) { gtk_trajview_dialog * ref = (gtk_trajview_dialog *) data; i32s max = ref->prj->GetTotalFrames(); for (i32s loop = 0;loop < max;loop++) { ref->prj->SetCurrentFrame(loop); ref->prj->ReadTrajectoryFrame(); ref->prj->UpdateAllGraphicsViews(true); } } void gtk_trajview_dialog::handler_ButtonNext(GtkWidget *, gpointer data) { gtk_trajview_dialog * ref = (gtk_trajview_dialog *) data; i32s frame = ref->prj->GetCurrentFrame() + 1; i32s max = ref->prj->GetTotalFrames(); if (frame < 0) frame = 0; if (frame >= max) frame = max - 1; ref->prj->SetCurrentFrame(frame); ref->prj->ReadTrajectoryFrame(); ostringstream str1; str1 << _("frame = ") << ref->prj->GetCurrentFrame() << endl << ends; ref->prj->PrintToLog(str1.str().c_str()); ref->prj->UpdateAllGraphicsViews(true); } void gtk_trajview_dialog::handler_ButtonEnd(GtkWidget *, gpointer data) { gtk_trajview_dialog * ref = (gtk_trajview_dialog *) data; i32s frame = ref->prj->GetTotalFrames() - 1; ref->prj->SetCurrentFrame(frame); ref->prj->ReadTrajectoryFrame(); ostringstream str1; str1 << _("frame = ") << ref->prj->GetCurrentFrame() << endl << ends; ref->prj->PrintToLog(str1.str().c_str()); ref->prj->UpdateAllGraphicsViews(true); } void gtk_trajview_dialog::handler_ButtonClose(GtkWidget *, gpointer data) { gtk_trajview_dialog * ref = (gtk_trajview_dialog *) data; cout << "handler_ButtonClose() : ref = " << ref << endl; // close the dialog... // ^^^^^^^^^^^^^^^^^^^ gtk_widget_destroy(ref->dialog); ref->dialog = NULL; // FIXME : the dtor is not correctly called??? // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ref->prj->CloseTrajectory(); // ??? } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_project.cpp0000644000175000017500000010127611634160016014017 00000000000000// GTK_PROJECT.CPP // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_project.h" // config.h is here -> we get ENABLE-macros here... #include "project.h" #include "appdefine.h" #include #include #include #include #include #include "color.h" #include "gtk_oglview_wnd.h" #include "gtk_p1dview_wnd.h" #include "gtk_p2dview_wnd.h" #include "gtk_eldview_wnd.h" #include "gtk_rcpview_wnd.h" #include "gtk_gpcview_wnd.h" #include "ogl_plane.h" #include "ogl_surface.h" #include "ogl_ribbon.h" #include "gtk_file_import_dialog.h" #include "gtk_file_export_dialog.h" #include "gtk_geomopt_dialog.h" #include "gtk_moldyn_dialog.h" #include "gtk_setup_dialog.h" #include "gtk_progress_dialog.h" #include "local_i18n.h" #include #include using namespace std; /*################################################################################################*/ gtk_project::gtk_project(void) : project() { pd = NULL; } void gtk_project::DoSafeStart(void) { // this is effectively the ctor of this class. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // moved it here so that the objects can be safely constructed and the // pointer obtained before it is actually used anywhere. 20070816 TH AddGraphicsClient(NULL, false); PrintToLog(_("A new project created.\n")); } gtk_project::~gtk_project(void) { if (pd != NULL) cout << "DEBUG : MEM-LEAK pd" << endl; } oglview_wcl * gtk_project::GetClient(GtkWidget * widget) { gtk_wnd * wnd = gtk_wnd::iv_Find(widget); if (wnd == NULL) cout << "DEBUG : gtk_project::GetClient() failed!" << endl; else { base_wcl * wcl1 = wnd->GetClient(); if (wcl1 == NULL) cout << "DEBUG : NULL wcl1" << endl; oglview_wcl * wcl2 = dynamic_cast(wcl1); if (wcl2 == NULL) cout << "DEBUG : NULL wcl2" << endl; return wcl2; } return NULL; } #ifdef ENABLE_THREADS void gtk_project::ThreadLock(void) { // this is a "technical" thread lock needed in GTK/GDK. // BUT in addition to this we need to make sure that the // user interface is not accessed during any thread processing! // this means that user may not access menus or mouse tools during // multithreaded computations ; see project::background_job_running // for more about this... gdk_threads_enter(); } void gtk_project::ThreadUnlock(void) { gdk_threads_leave(); } #else // ENABLE_THREADS void gtk_project::NoThreadsIterate(void) { while (gtk_events_pending()) gtk_main_iteration(); } #endif // ENABLE_THREADS bool gtk_project::SetProgress(double progress, double * graphdata) { gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(pd->progressbar_job), progress); if (graphdata != NULL) { int f = (pd->g_fill % pd->g_sz); for (int i = 0;i < pd->g_n;i++) { pd->g_data[i * pd->g_sz + f] = graphdata[i]; } pd->g_fill++; gtk_widget_queue_draw_area(pd->drawingarea_job, 0, 0, pd->da_w, pd->da_h); } return pd->cancel; } void gtk_project::CreateProgressDialog(const char * title, bool show_pbar, int graphs_n, int graphs_s) { pd = new gtk_progress_dialog(title, show_pbar, graphs_n, graphs_s); } void gtk_project::DestroyProgressDialog(void) { gtk_widget_destroy(pd->dialog); delete pd; pd = NULL; } void gtk_project::start_job_GeomOpt(jobinfo_GeomOpt * ji) { if (ji->show_dialog) { new gtk_geomopt_dialog(& ji->go); // the object will call delete itself... cout << "DEBUG : now returning from gtk_project::GeomOptGetParam()." << endl; // the above dialog is (AND IT MUST BE) a modal one; we will return // from the function only after the dialog is closed. } if (!ji->go.GetConfirm()) return; #ifdef ENABLE_THREADS GThread * t = g_thread_create(process_job_GeomOpt, (gpointer) ji, FALSE, NULL); if (t == NULL) ErrorMessage(_("Thread creation failed : GeomOpt")); #else // ENABLE_THREADS process_job_GeomOpt((gpointer) ji); #endif // ENABLE_THREADS } gpointer gtk_project::process_job_GeomOpt(gpointer p) { project::background_job_running = true; jobinfo_GeomOpt * ji = (jobinfo_GeomOpt *) p; ji->prj->ThreadLock(); ji->prj->CreateProgressDialog(_("Geometry Optimization"), true, 1, 20); ji->prj->ThreadUnlock(); #ifdef ENABLE_THREADS const bool updt = false; #else // ENABLE_THREADS const bool updt = true; #endif // ENABLE_THREADS ji->prj->DoGeomOpt(ji->go, updt); ji->prj->ThreadLock(); ji->prj->DestroyProgressDialog(); ji->prj->ThreadUnlock(); project::background_job_running = false; return NULL; } void gtk_project::start_job_MolDyn(jobinfo_MolDyn * ji) { if (ji->show_dialog) { new gtk_moldyn_dialog(& ji->md); // the object will call delete itself... cout << "DEBUG : now returning from gtk_project::MolDynGetParam()." << endl; // the above dialog is (AND IT MUST BE) a modal one; we will return // from the function only after the dialog is closed. } if (!ji->md.GetConfirm()) return; #ifdef ENABLE_THREADS GThread * t = g_thread_create(process_job_MolDyn, (gpointer) ji, FALSE, NULL); if (t == NULL) ErrorMessage(_("Thread creation failed : MolDyn")); #else // ENABLE_THREADS process_job_MolDyn((gpointer) ji); #endif // ENABLE_THREADS } gpointer gtk_project::process_job_MolDyn(gpointer p) { project::background_job_running = true; jobinfo_MolDyn * ji = (jobinfo_MolDyn *) p; ji->prj->ThreadLock(); ji->prj->CreateProgressDialog(_("Molecular Dynamics"), true, NOT_DEFINED, NOT_DEFINED); ji->prj->ThreadUnlock(); #ifdef ENABLE_THREADS const bool updt = false; #else // ENABLE_THREADS const bool updt = true; #endif // ENABLE_THREADS ji->prj->DoMolDyn(ji->md, updt); ji->prj->ThreadLock(); ji->prj->DestroyProgressDialog(); ji->prj->ThreadUnlock(); project::background_job_running = false; return NULL; } void gtk_project::start_job_RandomSearch(jobinfo_RandomSearch * ji) { #ifdef ENABLE_THREADS GThread * t = g_thread_create(process_job_RandomSearch, (gpointer) ji, FALSE, NULL); if (t == NULL) ErrorMessage(_("Thread creation failed : RandomSearch")); #else // ENABLE_THREADS process_job_RandomSearch((gpointer) ji); #endif // ENABLE_THREADS } gpointer gtk_project::process_job_RandomSearch(gpointer p) { project::background_job_running = true; jobinfo_RandomSearch * ji = (jobinfo_RandomSearch *) p; ji->prj->ThreadLock(); ji->prj->CreateProgressDialog(_("Random Search"), true, NOT_DEFINED, NOT_DEFINED); ji->prj->ThreadUnlock(); #ifdef ENABLE_THREADS const bool updt = false; #else // ENABLE_THREADS const bool updt = true; #endif // ENABLE_THREADS ji->prj->DoRandomSearch(ji->cycles, ji->optsteps, updt); ji->prj->ThreadLock(); ji->prj->DestroyProgressDialog(); ji->prj->ThreadUnlock(); project::background_job_running = false; return NULL; } // the other computation tasks are not yet multithreaded, but the above template can be used... // the other computation tasks are not yet multithreaded, but the above template can be used... // the other computation tasks are not yet multithreaded, but the above template can be used... base_wnd * gtk_project::CreateGraphicsWnd(bool detached) { //cout << "gtk_project::CreateGraphicsWnd()" << endl; gtk_oglview_wnd * w = new gtk_oglview_wnd(detached); // since a newly created window is always unlinked, // also w->label_widget is always NULL... if (!detached) { gtk_app::GetAppX()->AddTabToNB(w->view_widget, w->label_widget); } return w; } void gtk_project::DestroyGraphicsWnd(base_wnd * wB) { //cout << "gtk_project::DestroyGraphicsWnd()" << endl; gtk_oglview_wnd * wX = dynamic_cast(wB); // this really seems to be redundant since the plotting views are destoyed the same way... // this really seems to be redundant since the plotting views are destoyed the same way... // this really seems to be redundant since the plotting views are destoyed the same way... if (!wX) { assertion_failed(__FILE__, __LINE__, "bad wnd!"); } else { if (!wX->IsDetached()) { gtk_app::GetAppX()->RemoveTabFromNB(wX->view_widget); } delete wB; } } base_wnd * gtk_project::CreatePlot1DWnd(bool detached) { //cout << "gtk_project::CreatePlot1DWnd()" << endl; gtk_p1dview_wnd * w = new gtk_p1dview_wnd(detached); if (!detached) { gtk_app::GetAppX()->AddTabToNB(w->view_widget, w->label_widget); } return w; } base_wnd * gtk_project::CreatePlot2DWnd(bool detached) { //cout << "gtk_project::CreatePlot2DWnd()" << endl; gtk_p2dview_wnd * w = new gtk_p2dview_wnd(detached); if (!detached) { gtk_app::GetAppX()->AddTabToNB(w->view_widget, w->label_widget); } return w; } base_wnd * gtk_project::CreateEnergyLevelDiagramWnd(bool detached) { //cout << "gtk_project::CreateEnergyLevelDiagramWnd()" << endl; gtk_eldview_wnd * w = new gtk_eldview_wnd(detached); if (!detached) { gtk_app::GetAppX()->AddTabToNB(w->view_widget, w->label_widget); } return w; } base_wnd * gtk_project::CreateReactionCoordinatePlotWnd(bool detached) { //cout << "gtk_project::CreateReactionCoordinatePlotWnd()" << endl; gtk_rcpview_wnd * w = new gtk_rcpview_wnd(detached); if (!detached) { gtk_app::GetAppX()->AddTabToNB(w->view_widget, w->label_widget); } return w; } base_wnd * gtk_project::CreateGenericProteinChainWnd(bool detached) { //cout << "gtk_project::CreateGenericProteinChainWnd()" << endl; gtk_gpcview_wnd * w = new gtk_gpcview_wnd(detached); if (!detached) { gtk_app::GetAppX()->AddTabToNB(w->view_widget, w->label_widget); } return w; } void gtk_project::DestroyPlottingWnd(base_wnd * wB) { //cout << "gtk_project::DestroyPlottingWnd()" << endl; gtk_wnd * wX = dynamic_cast(wB); if (!wX) { assertion_failed(__FILE__, __LINE__, "bad wnd!"); } else { if (!wX->IsDetached()) { gtk_app::GetAppX()->RemoveTabFromNB(wX->view_widget); } delete wB; } } void gtk_project::Message(const char * msg) { gtk_app::sMessage(msg); } void gtk_project::WarningMessage(const char * msg) { gtk_app::sWarningMessage(msg); } void gtk_project::ErrorMessage(const char * msg) { gtk_app::sErrorMessage(msg); } bool gtk_project::Question(const char * msg) { return gtk_app::sQuestion(msg); } void gtk_project::PrintToLog(const char * msg) { gtk_app::sPrintToLog(msg); } // the popup-menu callbacks start here ; the popup-menu callbacks start here // the popup-menu callbacks start here ; the popup-menu callbacks start here // the popup-menu callbacks start here ; the popup-menu callbacks start here void gtk_project::popup_FileImport(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); // will call delete itself... if (prj) new gtk_file_import_dialog(prj); } void gtk_project::popup_FileExport(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); // will call delete itself... if (prj) new gtk_file_export_dialog(prj); } void gtk_project::popup_FileExportGraphics(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); // will call delete itself... if (prj) new gtk_file_save_graphics_dialog(prj); } void gtk_project::popup_FileExtra1(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); // will call delete itself... if (prj) new gtk_importpdb_dialog(prj); } void gtk_project::popup_FileExtra2(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); // this is just a stub for a new "extra"-item... // this is just a stub for a new "extra"-item... // this is just a stub for a new "extra"-item... if (prj) { prj->Message("this is not yet implemented..."); } } void gtk_project::popup_SelectAll(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->SelectAll(); } void gtk_project::popup_SelectNone(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->SelectAll(); // should call the base class function to prevent the flash!!! prj->InvertSelection(); } void gtk_project::popup_InvertSelection(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->InvertSelection(); } void gtk_project::popup_HideSelected(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->HideSelected(); } void gtk_project::popup_ShowSelected(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->ShowSelected(); } void gtk_project::popup_LockSelected(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->LockSelected(); } void gtk_project::popup_UnlockSelected(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->UnlockSelected(); } void gtk_project::popup_DeleteSelected(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->DeleteSelected(); } void gtk_project::popup_SelectModeAtom(GtkWidget *, gpointer data) { custom_app::current_select_mode = custom_app::smAtom; cout << "DEBUG : selection mode = atm" << endl; } void gtk_project::popup_SelectModeResidue(GtkWidget *, gpointer data) { custom_app::current_select_mode = custom_app::smResidue; cout << "DEBUG : selection mode = res" << endl; } void gtk_project::popup_SelectModeChain(GtkWidget *, gpointer data) { custom_app::current_select_mode = custom_app::smChain; cout << "DEBUG : selection mode = chn" << endl; } void gtk_project::popup_SelectModeMolecule(GtkWidget *, gpointer data) { custom_app::current_select_mode = custom_app::smMolecule; cout << "DEBUG : selection mode = mol" << endl; } void gtk_project::popup_ViewsNewELD(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->AddEnergyLevelDiagramClient(true); } } void gtk_project::popup_ViewsNewSSC(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->AddGenericProteinChainClient(true); } } void gtk_project::popup_RModeBallStick(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->render = RENDER_BALL_AND_STICK; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_RModeVanDerWaals(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->render = RENDER_VAN_DER_WAALS; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_RModeCylinders(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->render = RENDER_CYLINDERS; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_RModeWireframe(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->render = RENDER_WIREFRAME; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_RModeNothing(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->render = RENDER_NOTHING; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_CModeElement(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->colormode = & project::cm_element; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_CModeSecStruct(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->colormode = & project::cm_secstruct; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_CModeHydPhob(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->colormode = & project::cm_hydphob; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeIndex(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_INDEX; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeElement(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_ELEMENT; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeFCharge(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_F_CHARGE; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModePCharge(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_P_CHARGE; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeAtomType(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_ATOMTYPE; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeBuilderID(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_BUILDER_ID; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeBondType(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_BONDTYPE; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeResidue(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_RESIDUE; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeSecStruct(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_SEC_STRUCT; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_LModeNothing(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); oglwcl->label = LABEL_NOTHING; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_project::popup_ObjRibbon(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->ref_civ) prj->UpdateChains(); vector & ci_vector = (* prj->ref_civ); for (i32u n1 = 0;n1 < ci_vector.size();n1++) { if (ci_vector[n1].GetType() != chn_info::amino_acid) continue; if (ci_vector[n1].GetLength() < 3) continue; if (ci_vector[n1].GetSecStrStates() == NULL) DefineSecondaryStructure(prj); prj->AddObject(new ogl_ribbon(prj, oglwcl->colormode, n1, 4)); // min. order is 2!!! } prj->UpdateAllGraphicsViews(); } } void gtk_project::popup_ObjEPlane(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add plane esp rb1 138.0 AUTO 1.0 50 1 0.75"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjEVolume(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add volrend esp rb2 138.0 0.0 1.0 25 0.50"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjESurface(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add surf2 esp unity red blue +35.0 -35.0 1.0 0.0 2.0 50 0 0 0.50"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjEVDWSurface(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add surf1 vdws esp rb1 1.0 70.0 AUTO 2.0 50 1 1 0.65"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjEDPlane(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add plane eldens rb1 0.05 0.0 0.75 50 1 0.75"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjEDSurface(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add surf1 eldens unity red 0.01 1.0 0.0 1.5 50 0 0 0.65"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjMOPlane(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add plane mo rb1 0.05 0.0 0.75 50 1 0.75"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjMOVolume(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add volrend mo rb2 0.025 0.0 1.5 25 0.50"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjMOSurface(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add surf2 mo unity red blue +0.025 -0.025 1.0 0.0 1.5 50 0 0 0.50"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjMODPlane(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add plane mod rb1 0.005 0.0 0.75 50 1 0.75"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjMODVolume(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add volrend mod rb2 0.0025 0.0 1.5 25 0.35"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjMODSurface(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (!prj->GetCurrentSetup()->GetCurrentEngine()) { prj->Message(_("Please calculate energy first!")); } else { static const char command[] = "add surf1 mod unity red 0.0025 1.0 0.0 1.5 50 0 0 0.65"; new gtk_command_dialog(prj, oglwcl, command); } } } void gtk_project::popup_ObjectsDeleteCurrent(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); prj->DoDeleteCurrentObject(); } void gtk_project::popup_CompSetup(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); // will call delete itself... new gtk_setup_dialog(prj); } void gtk_project::popup_CompEnergy(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) prj->DoEnergy(); } void gtk_project::popup_CompGeomOpt(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) { setup * su = prj->GetCurrentSetup(); static jobinfo_GeomOpt ji; ji.prj = prj; ji.go = geomopt_param(su); ji.show_dialog = true; prj->start_job_GeomOpt(& ji); } } void gtk_project::popup_CompMolDyn(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) { setup * su = prj->GetCurrentSetup(); static jobinfo_MolDyn ji; ji.prj = prj; ji.md = moldyn_param(su); ji.show_dialog = true; prj->start_job_MolDyn(& ji); } } void gtk_project::popup_CompRandomSearch(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "random_search 100 250"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompSystematicSearch(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "systematic_search 6 250"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompMonteCarloSearch(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "montecarlo_search 10 100 250"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompTorsionEnergyPlot1D(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->Message(_("PLEASE NOTE!\nThe command string, which is displayed in the next dialog, is incomplete.\nYou should replace the letters A-D with atom indices that define the torsion.\n\nALSO NOTE: structure refinement is always done using molecular mechanics (optsteps).")); static const char command[] = "make_plot1 A B C D 36 0.0 360.0 250"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompTorsionEnergyPlot2D(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->Message(_("PLEASE NOTE!\nThe command string, which is displayed in the next dialog, is incomplete.\nYou should replace the letters A-D and I-L with atom indices that define the torsions.\n\nALSO NOTE: structure refinement is always done using molecular mechanics (optsteps).")); static const char command[] = "make_plot2 A B C D 36 0.0 360.0 I J K L 36 0.0 360.0 250"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompPopAnaElectrostatic(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "population_analysis_ESP"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompTransitionStateSearch(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "transition_state_search 10.0 500.0"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompStationaryStateSearch(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "stationary_state_search 100"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompFormula(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) prj->DoFormula(); } void gtk_project::popup_CompSetFormalCharge(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "set_formal_charge X +0"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_CompCreateRS(GtkWidget *, gpointer data) // todo : this is only for testing?!?!?!? { gtk_project * prj = gtk_app::GetPrjX(); if (prj) { if (prj->GetRS() == NULL) prj->CreateRS(); } } void gtk_project::popup_CompCycleRS(GtkWidget *, gpointer data) // todo : this is only for testing?!?!?!? { gtk_project * prj = gtk_app::GetPrjX(); if (prj && prj->GetRS() != NULL) { // prj->GetRS()->CycleStructures(); prj->UpdateAllGraphicsViews(); } else cout << _("ERROR") << endl; } void gtk_project::popup_TrajView(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (!prj->GetTrajectoryFile()) { // will call delete itself... if (prj) new gtk_trajfile_dialog(prj); } else prj->ErrorMessage(_("Trajectory file already open?")); } void gtk_project::popup_SetOrbital(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->Message(_("PLEASE NOTE!\nThe command string, which is displayed in the next dialog, is incomplete.\nYou should replace the letter X with the orbital index that will become the current orbital.")); static const char command[] = "set_current_orbital X"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_HAdd(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->AddH(); prj->UpdateAllGraphicsViews(); } } void gtk_project::popup_HRemove(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->RemoveH(); prj->UpdateAllGraphicsViews(); } } void gtk_project::popup_SolvateBox(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "solvate_box 3.0 3.0 3.0"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_SolvateSphere(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { static const char command[] = "solvate_sphere 1.2 1.6"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_BuilderAmino(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->Message(_("PLEASE NOTE!\nThe command string, which is displayed in the next dialog, is incomplete.\nYou should replace the default sequence AAA with the sequence to be built.")); static const char command[] = "build_amino AAA"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_BuilderNucleic(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->Message(_("PLEASE NOTE!\nThe command string, which is displayed in the next dialog, is incomplete.\nYou should replace the default sequence AGTCaguc with the sequence to be built.")); static const char command[] = "build_nucleic AGTCaguc"; new gtk_command_dialog(prj, oglwcl, command); } } void gtk_project::popup_Center(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj) { prj->CenterCRDSet(0, true); // Which is the current Coord Set? // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // usually it's 0, but it could be any/all. // the crdset-system is not yet in GUI... // 2001-06-18 TH: yes, this is not quite ready. // but i guess in the end we will move ALL crd-sets... // sometimes this centering won't work, if the camera won't point to the origo. // so, here we try to turn it there. ANY EFFECTS TO LIGHTS, ETC?????? // how to get base_app::camera_vector in a reasonable way? // it's easy to set the focus of camera but what about lights??? // -> implement this stuff in base_app???????????????????????? prj->UpdateAllGraphicsViews(); } } void gtk_project::popup_ClearAll(GtkWidget *, gpointer data) { gtk_project * prj = gtk_app::GetPrjX(); if (prj && base_app::GetAppB()->Question(_("Are you sure you want to clear everything?"))) { prj->ClearModel(); prj->UpdateAllGraphicsViews(); } } void gtk_project::popup_EnterCommand(GtkWidget *, gpointer data) { oglview_wcl * oglwcl = GetClient((GtkWidget *) data); gtk_project * prj = gtk_app::GetPrjX(); if (prj) { new gtk_command_dialog(prj, oglwcl, NULL); } } /*################################################################################################*/ // eof ghemical-3.0.0/src/ac_stor_wcl.h0000644000175000017500000000300711634160016013441 00000000000000// AC_STOR_WCL.H : a wcl that stores atom coordinates (base class for plots). // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef AC_STOR_WCL_H #define AC_STOR_WCL_H #include #include "pangofont_wcl.h" /*################################################################################################*/ class ac_stor_wcl : public pangofont_wcl { private: vector av; vector acv; public: ac_stor_wcl(ogl_camera *); virtual ~ac_stor_wcl(void); int StoreAC(engine *); int StoreAC(model *, int); void ShowAC(int); }; /*################################################################################################*/ #endif // AC_STOR_WCL_H // eof ghemical-3.0.0/src/ogl_surface.h0000644000175000017500000001135211634160016013435 00000000000000// OGL_SURFACE.H : a class for drawing colored 3D-surfaces. // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef OGL_SURFACE_H #define OGL_SURFACE_H //#include "ghemicalconfig2.h" struct ogl_cs_line; struct ogl_cs_triangle; struct ogl_cs_vertex; struct ogl_cs_param; class ogl_color_surface; /*################################################################################################*/ #ifdef WIN32 #include // need to have this before GL stuff... #endif // WIN32 #include #include #include using namespace std; //#include "ogl_camera.h" #include #include #include #include "project.h" /*################################################################################################*/ struct ogl_cs_line { i32s index[2]; void Arrange(void) { sort(index, index + 2); } bool operator==(const ogl_cs_line & p1) const { if (index[0] != p1.index[0]) return false; if (index[1] != p1.index[1]) return false; return true; } bool operator<(const ogl_cs_line & p1) const { if (index[0] != p1.index[0]) return index[0] < p1.index[0]; if (index[1] != p1.index[1]) return index[1] < p1.index[1]; return false; } }; struct ogl_cs_triangle { i32s index[3]; }; struct ogl_cs_vertex { fGL crd[3]; fGL normal[3]; fGL color[4]; fGL cvalue; i32s id; void Render(bool normal_flag) { glColor4fv(color); if (normal_flag) glNormal3fv(normal); glVertex3fv(crd); } }; /*################################################################################################*/ struct ogl_cs_param { project * prj; const ogl_obj_loc_data * data; // for color_surface only!!! iGLu my_glname; // for color_surface only!!! bool transparent; bool automatic_cv2; bool wireframe; i32s * np; fGL * dim; engine * ref; ValueFunction * vf1; ValueFunction * vf2; ColorFunction * cf; fGL svalue; fGL cvalue1; fGL cvalue2; fGL alpha; fGL toler; i32s maxc; ogl_cs_param * next; }; class ogl_color_surface { private: project * prj; const ogl_obj_loc_data * data; iGLu my_glname; bool transparent; bool automatic_cv2; bool wireframe; i32s np[3]; fGL dim[3]; engine * ref; ValueFunction * GetSurfaceValue; ValueFunction * GetColorValue; ColorFunction * GetColor; fGL svalue; fGL cvalue1; fGL cvalue2; fGL alpha; fGL tolerance; i32s max_cycles; /*################*/ /*################*/ fGL * dist[3]; vector grid; i32s range[3][2]; vector vdata; vector tdata; vector ldata; oglv3d xdir; f64 avrg; i32u acnt; public: ogl_color_surface(ogl_cs_param &); ~ogl_color_surface(void); void Update(void); void Render(void); protected: void SetDimension(fGL *); void GetCRD(i32s *, fGL *); void Interpolate(i32s, i32s *, i32s *); }; /*################################################################################################*/ class ogl_color_surface_object : public ogl_smart_object { private: project * prj; fGL dim[3]; vector cs_vector; bool transform_in_progress; engine * copy_of_ref; char * object_name; public: ogl_color_surface_object(const ogl_object_location &, ogl_cs_param &, const char *); ~ogl_color_surface_object(void); engine * GetRef(void) { return copy_of_ref; } const char * GetObjectName(void) { return object_name; } // virtual void CameraEvent(const ogl_camera &) { } // virtual bool BeginTransformation(void); // virtual bool EndTransformation(void); // virtual void OrbitObject(const fGL *, const ogl_camera &); // virtual void RotateObject(const fGL *, const ogl_camera &); // virtual void TranslateObject(const fGL *, const ogl_obj_loc_data *); // virtual void Render(void); // virtual void Update(void); }; /*################################################################################################*/ #endif // OGL_SURFACE_H // eof ghemical-3.0.0/src/gtk_rcpview_wnd.cpp0000644000175000017500000000630311634160016014673 00000000000000// GTK_RCPVIEW_WND.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_rcpview_wnd.h" #include "rcpview_wcl.h" #include "gtk_app.h" #include "local_i18n.h" /*################################################################################################*/ GtkActionEntry gtk_rcpview_wnd::entries[] = { { "AttachDetachRCP", NULL, N_("Attach/Detach This View"), NULL, N_("Select whether this view is attached or in an independent window"), (GCallback) gtk_rcpview_wnd::popup_AttachDetach }, { "DeleteViewRCP", NULL, N_("Delete View"), NULL, N_("Delete this view"), (GCallback) gtk_rcpview_wnd::popup_DeleteView } }; const char * gtk_rcpview_wnd::ui_description = "" " " " " " " " " " " ""; gtk_rcpview_wnd::gtk_rcpview_wnd(bool det_flag) : gtk_wnd(det_flag) { GtkActionGroup * action_group = gtk_action_group_new("grcpvActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), GTK_WIDGET(view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); GError * error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), ui_description, -1, & error)) { g_message(_("ERROR : Building popup-menu for gtk_rcpview_wnd failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } // set gtk_view::popupmenu so that gtk_ogl_view::ButtonHandler() will display it... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ popupmenu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/grcpvMenu"); } gtk_rcpview_wnd::~gtk_rcpview_wnd(void) { } // here are the popup menu callbacks: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ void gtk_rcpview_wnd::popup_AttachDetach(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); rcpview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetAppX()->AttachDetachView(wcl); } void gtk_rcpview_wnd::popup_DeleteView(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); rcpview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetPrjX()->RemovePlottingClient(wcl); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_progress_dialog.h0000644000175000017500000000350711634160016015177 00000000000000// GTK_PROGRESS_DIALOG.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_PROGRESS_DIALOG_H #define GTK_PROGRESS_DIALOG_H //#include "ghemicalconfig2.h" #include "gtk_glade_dialog.h" /*################################################################################################*/ class gtk_progress_dialog : public gtk_glade_dialog { protected: GtkWidget * dialog; GtkWidget * entry_job; GtkWidget * drawingarea_job; int da_h; int da_w; GtkWidget * progressbar_job; bool cancel; int g_n; int g_sz; int g_fill; double * g_data; friend class gtk_project; public: gtk_progress_dialog(const char *, bool, int, int); ~gtk_progress_dialog(void); static void handler_Destroy(GtkWidget *, gpointer); static void handler_ButtonCancel(GtkWidget *, gpointer); static gboolean handler_ExposeEvent(GtkWidget *, GdkEventExpose *, gpointer); }; /*################################################################################################*/ #endif // GTK_PROGRESS_DIALOG_H // eof ghemical-3.0.0/src/Makefile.in0000644000175000017500000007014611645347725013066 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = ghemical$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/ghemicalconfig.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_ghemical_OBJECTS = fileio.$(OBJEXT) filetrans.$(OBJEXT) \ custom_app.$(OBJEXT) custom_camera.$(OBJEXT) \ custom_lights.$(OBJEXT) project.$(OBJEXT) spline.$(OBJEXT) \ pangofont_wcl.$(OBJEXT) oglview_wcl.$(OBJEXT) \ ac_stor_wcl.$(OBJEXT) p1dview_wcl.$(OBJEXT) \ p2dview_wcl.$(OBJEXT) eldview_wcl.$(OBJEXT) \ rcpview_wcl.$(OBJEXT) gpcview_wcl.$(OBJEXT) \ ogl_plane.$(OBJEXT) ogl_surface.$(OBJEXT) ogl_ribbon.$(OBJEXT) \ gtk_simple_dialogs.$(OBJEXT) gtk_glade_dialog.$(OBJEXT) \ gtk_file_export_dialog.$(OBJEXT) \ gtk_file_import_dialog.$(OBJEXT) gtk_geomopt_dialog.$(OBJEXT) \ gtk_moldyn_dialog.$(OBJEXT) gtk_progress_dialog.$(OBJEXT) \ gtk_setup_dialog.$(OBJEXT) gtk_stereo_dialog.$(OBJEXT) \ gtk_trajview_dialog.$(OBJEXT) gtk_wnd.$(OBJEXT) \ gtk_oglview_wnd.$(OBJEXT) gtk_p1dview_wnd.$(OBJEXT) \ gtk_p2dview_wnd.$(OBJEXT) gtk_eldview_wnd.$(OBJEXT) \ gtk_rcpview_wnd.$(OBJEXT) gtk_gpcview_wnd.$(OBJEXT) \ gtk_app.$(OBJEXT) gtk_project.$(OBJEXT) gtk_main.$(OBJEXT) ghemical_OBJECTS = $(am_ghemical_OBJECTS) ghemical_LDADD = $(LDADD) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(ghemical_SOURCES) DIST_SOURCES = $(ghemical_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ SUBDIRS = res_gtk ghemical_SOURCES = \ appdefine.h \ local_i18n.h \ color.h fileio.cpp \ filetrans.h filetrans.cpp \ custom_app.h custom_app.cpp \ custom_camera.h custom_camera.cpp \ custom_lights.h custom_lights.cpp \ project.h project.cpp \ spline.h spline.cpp \ \ pangofont_wcl.h pangofont_wcl.cpp \ \ oglview_wcl.h oglview_wcl.cpp \ \ ac_stor_wcl.h ac_stor_wcl.cpp \ p1dview_wcl.h p1dview_wcl.cpp \ p2dview_wcl.h p2dview_wcl.cpp \ eldview_wcl.h eldview_wcl.cpp \ rcpview_wcl.h rcpview_wcl.cpp \ gpcview_wcl.h gpcview_wcl.cpp \ \ ogl_plane.h ogl_plane.cpp \ ogl_surface.h ogl_surface.cpp \ ogl_ribbon.h ogl_ribbon.cpp \ \ \ \ gtk_simple_dialogs.h gtk_simple_dialogs.cpp \ gtk_glade_dialog.h gtk_glade_dialog.cpp \ gtk_file_export_dialog.h gtk_file_export_dialog.cpp \ gtk_file_import_dialog.h gtk_file_import_dialog.cpp \ gtk_geomopt_dialog.h gtk_geomopt_dialog.cpp \ gtk_moldyn_dialog.h gtk_moldyn_dialog.cpp \ gtk_progress_dialog.h gtk_progress_dialog.cpp \ gtk_setup_dialog.h gtk_setup_dialog.cpp \ gtk_stereo_dialog.h gtk_stereo_dialog.cpp \ gtk_trajview_dialog.h gtk_trajview_dialog.cpp \ \ gtk_wnd.h gtk_wnd.cpp \ gtk_oglview_wnd.h gtk_oglview_wnd.cpp \ gtk_p1dview_wnd.h gtk_p1dview_wnd.cpp \ gtk_p2dview_wnd.h gtk_p2dview_wnd.cpp \ gtk_eldview_wnd.h gtk_eldview_wnd.cpp \ gtk_rcpview_wnd.h gtk_rcpview_wnd.cpp \ gtk_gpcview_wnd.h gtk_gpcview_wnd.cpp \ \ gtk_app.h gtk_app.cpp \ gtk_project.h gtk_project.cpp \ gtk_main.h gtk_main.cpp AM_CPPFLAGS = -DLOCALE_DIR=\""$(datadir)/locale"\" all: ghemicalconfig.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): ghemicalconfig.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/ghemicalconfig.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status src/ghemicalconfig.h $(srcdir)/ghemicalconfig.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f ghemicalconfig.h stamp-h1 install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list ghemical$(EXEEXT): $(ghemical_OBJECTS) $(ghemical_DEPENDENCIES) @rm -f ghemical$(EXEEXT) $(CXXLINK) $(ghemical_OBJECTS) $(ghemical_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ac_stor_wcl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/custom_app.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/custom_camera.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/custom_lights.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eldview_wcl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filetrans.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpcview_wcl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_app.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_eldview_wnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_file_export_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_file_import_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_geomopt_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_glade_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_gpcview_wnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_moldyn_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_oglview_wnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_p1dview_wnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_p2dview_wnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_progress_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_project.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_rcpview_wnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_setup_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_simple_dialogs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_stereo_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_trajview_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_wnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ogl_plane.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ogl_ribbon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ogl_surface.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oglview_wcl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p1dview_wcl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p2dview_wcl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pangofont_wcl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/project.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcpview_wcl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spline.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) ghemicalconfig.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) ghemicalconfig.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) ghemicalconfig.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) ghemicalconfig.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) ghemicalconfig.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-hdr \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/src/filetrans.cpp0000644000175000017500000003121411634160016013465 00000000000000// FILETRANS.CPP : Handle import/export through use of the Babel external lib. // Copyright (C) 2000 Geoffrey Hutchison. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "filetrans.h" #ifdef ENABLE_OPENBABEL #include #include "project.h" #include #include using namespace std; // Babel lib includes // ^^^^^^^^^^^^^^^^^^ #include #include #include #include #include using namespace std; using namespace OpenBabel; #ifndef FORMAT_PATH #define FORMAT_PATH (char *) project::appdata_path #endif // FORMAT_PATH namespace OpenBabel { extern OBAromaticTyper aromtyper; extern OBAtomTyper atomtyper; extern OBElementTable etab; extern OBTypeTable ettab; extern OBChainsParser chainsparser; extern OBIsotopeTable isotab; } /*################################################################################################*/ // Constructor // Requires: None // Provides: import, export vectors for future use file_trans::file_trans() { format_record current; // it seems that under Open Babel these objects (aromtyper, atomtyper, // extab, etab, ttab) are global, so here we could initialize them // multiple times is case we create multiple file_trans objects. // could this be risky and/or problematic??? 2001-05-28 TH // Certainly not risky -- the objects track whether they have been // initialized. It may or may not be problematic in terms of running // the library multiple times, but debugging should show that. // But this actually shouldn't be necessary -- since Ghemical isn't // building and installing Open Babel itself. Instead, let the library // find its own data files! -GRH 2005-09-27 //aromtyper.SetReadDirectory(FORMAT_PATH); // aromatic typer //aromtyper.SetEnvironmentVariable("GHEMICAL_DIR"); //atomtyper.SetReadDirectory(FORMAT_PATH); // atom typer //atomtyper.SetEnvironmentVariable("GHEMICAL_DIR"); //etab.SetReadDirectory(FORMAT_PATH); //etab.SetEnvironmentVariable("GHEMICAL_DIR"); //ttab.SetReadDirectory(FORMAT_PATH); //ttab.SetEnvironmentVariable("GHEMICAL_DIR"); //isotab.SetReadDirectory(FORMAT_PATH); //isotab.SetEnvironmentVariable("GHEMICAL_DIR"); OBConversion conv; Formatpos pos; OBFormat * pFormat; const char * str = NULL; while(OBConversion::GetNextFormat(pos,str,pFormat)) { if ((pFormat->Flags() & NOTWRITABLE) && (pFormat->Flags() & NOTREADABLE)) continue; current.format = pFormat; std::string tempDescription(pFormat->Description()); current.description = tempDescription.substr(0, tempDescription.find('\n')); if ( !(pFormat->Flags() & NOTREADABLE) ) imports.push_back(current); if ( !(pFormat->Flags() & NOTWRITABLE) ) exports.push_back(current); } // the rest is for compatibility part... // the rest is for compatibility part... // the rest is for compatibility part... obm = NULL; prj = NULL; name_tag_count = -1; tagtab = NULL; } file_trans::~file_trans() { // we will delete the OBMol and name tags!!! if (obm != NULL) delete obm; if (tagtab != NULL) delete[] tagtab; } // Import // Requires: filename (for typing) and an istream to read // Provides: int file_trans::Import(const char *filename, istream &input, ostream &output) { OBConversion conv; OBFormat * inFormat = conv.FormatFromExt(filename); if (inFormat == NULL) return -1; // cannot find that format OBFormat * outFormat = conv.FindFormat("gpr"); // GHEMICAL if (! conv.SetInAndOutFormats(inFormat, outFormat) ) return -1; // cannot read/write these formats conv.Convert(&input, &output); return(0); } int file_trans::Export(const char *filename, istream &input, ostream &output) { OBConversion conv; OBFormat * inFormat = conv.FindFormat("gpr"); // GHEMICAL OBFormat * outFormat = conv.FormatFromExt(filename); if (outFormat == NULL) return -1; // cannot write that format if (! conv.SetInAndOutFormats(inFormat, outFormat) ) return -1; // cannot read/write these formats conv.Convert(&input, &output); return(0); } bool file_trans::CanImport(const char *filename) { OBConversion conv; OBFormat * pFormat = conv.FormatFromExt(filename); bool canRead = ( pFormat && !(pFormat->Flags() & NOTREADABLE) ); return canRead; } bool file_trans::CanExport(const char *filename) { OBConversion conv; OBFormat * pFormat = conv.FormatFromExt(filename); bool canWrite = ( pFormat && !(pFormat->Flags() & NOTWRITABLE) ); return canWrite; } string file_trans::GetExportDescription(unsigned int index) { string temp; if (index < exports.size()) temp = exports[index].description; return temp; } string file_trans::GetImportDescription(unsigned int index) { string temp; if (index < imports.size()) temp = imports[index].description; return temp; } // Import // Requires: filename, a type and an istream to read // Provides: an imported file using Babel int file_trans::Import(const char *filename, unsigned int type, istream &input, ostream &output) { OBConversion conv; OBFormat * inFormat; if (type < imports.size()) inFormat = imports[type].format; else { inFormat = conv.FormatFromExt(filename); if (inFormat == NULL) return -1; // cannot find that format } OBFormat * outFormat = conv.FindFormat("gpr"); // GHEMICAL if (! conv.SetInAndOutFormats(inFormat, outFormat) ) return -1; // cannot read/write these formats conv.Convert(&input, &output); return(0); } // Export // Requires: filename, a type and an istream to read // Provides: an exported file using Babel int file_trans::Export(const char *filename, unsigned int type, istream &input, ostream &output) { OBConversion conv; OBFormat * outFormat; if (type < exports.size()) outFormat = exports[type].format; else { OBFormat * outFormat = conv.FormatFromExt(filename); if (outFormat == NULL) return -1; // cannot write that format } OBFormat * inFormat = conv.FindFormat("gpr"); // GHEMICAL if (! conv.SetInAndOutFormats(inFormat, outFormat) ) return -1; // cannot read/write these formats conv.Convert(&input, &output); return(0); } /*################*/ /*################*/ OBMol * file_trans::Copy(project * p1, iter_al p2, iter_al p3) { prj = p1; obm = new OBMol(); itb = p2; ite = p3; // count the atoms and reserve memory for the name tags. // count the atoms and reserve memory for the name tags. // count the atoms and reserve memory for the name tags. name_tag_count = 0; for (iter_al it1 = itb;it1 != ite;it1++) { name_tag_count++; } tagtab = new atom_name_tag[name_tag_count]; // copy the atoms/bonds to OBMol... obm->BeginModify(); // copy the atoms. int tag_counter = 0; for (iter_al it1 = itb;it1 != ite;it1++) { OBAtom * oba = obm->NewAtom(); oba->SetAtomicNum((* it1).el.GetAtomicNumber()); const fGL * cdata = (* it1).GetCRD(0); float xcrd = cdata[0] * 10.0; float ycrd = cdata[1] * 10.0; float zcrd = cdata[2] * 10.0; oba->SetVector(xcrd, ycrd, zcrd); // now set the "name tag" for this atom... // now set the "name tag" for this atom... // now set the "name tag" for this atom... tagtab[tag_counter].atmr = & (* it1); tagtab[tag_counter].oba = oba; tag_counter++; } // copy the bonds. // WE ASSUME HERE THAT ATOM ITERATORS COVER THE WHOLE SYSTEM!!! // WE ASSUME HERE THAT ATOM ITERATORS COVER THE WHOLE SYSTEM!!! // WE ASSUME HERE THAT ATOM ITERATORS COVER THE WHOLE SYSTEM!!! prj->UpdateIndex(); for (iter_bl it1 = prj->GetBondsBegin();it1 != prj->GetBondsEnd();it1++) { i32s ind1 = (* it1).atmr[0]->index + 1; i32s ind2 = (* it1).atmr[1]->index + 1; i32s bt; switch ((* it1).bt.GetValue()) { case BONDTYPE_SINGLE: bt = 1; break; case BONDTYPE_DOUBLE: bt = 2; break; case BONDTYPE_TRIPLE: bt = 3; break; case BONDTYPE_CNJGTD: bt = 5; break; default: bt = 1; } obm->AddBond(ind1, ind2, bt); } // ok, it's ready! obm->EndModify(); return obm; } OBMol * file_trans::CopyMolecule(project *, int) { return NULL; } OBMol * file_trans::CopyAll(project * prj) { return Copy(prj, prj->GetAtomsBegin(), prj->GetAtomsEnd()); } void file_trans::Synchronize(void) { // create a new tagtab for the current situation (for bonds)... atom_name_tag * tagtab2 = new atom_name_tag[obm->NumAtoms()]; for (i32u n1 = 1;n1 <= obm->NumAtoms();n1++) { OBAtom * oba = obm->GetAtom(n1); atom * atmr = NULL; // try to find the matching name tag; if you find it, get it and remove the original. for (i32s n2 = 0;n2 < name_tag_count;n2++) { if (tagtab[n2].oba != oba) continue; // match found!!! // match found!!! // match found!!! atmr = tagtab[n2].atmr; tagtab[n2].atmr = NULL; tagtab[n2].oba = NULL; break; } // if atmr is still NULL, we did not have a matching tag -> this must be a new atom! // otherwise, we have this pair of corresponding objects and we can synchronize. if (!atmr) { element el(oba->GetAtomicNum()); fGL crd[3] = { oba->GetX() / 10.0, oba->GetY() / 10.0, oba->GetZ() / 10.0 }; atom newatom(el, crd, prj->GetCRDSetCount()); prj->AddAtom_lg(newatom); atmr = & prj->GetLastAtom(); // this seems to crash -> disabled!!!!!!!!!! // atmr->charge = oba->GetPartialCharge(); } else { atmr->el = element(oba->GetAtomicNum()); atmr->SetCRD(0, oba->GetX() / 10.0, oba->GetY() / 10.0, oba->GetZ() / 10.0); // this seems to crash -> disabled!!!!!!!!!! // atmr->charge = oba->GetPartialCharge(); } // save the new tagtab entry... tagtab2[n1 - 1].atmr = atmr; tagtab2[n1 - 1].oba = oba; } // in the above loop, we discarded the name tags that had corresponding atoms. // so if there still are name tags left, it means we should remove those atoms! // removing atoms will also remove bonds connected to them automagically... for (i32s n1 = 0;n1 < name_tag_count;n1++) { if (!tagtab[n1].atmr) continue; // ok, remove this atom. // ok, remove this atom. // ok, remove this atom. iter_al it1 = itb; while (it1 != ite) if (& (* it1) == tagtab[n1].atmr) break; if (it1 == itb) { assertion_failed(__FILE__, __LINE__, "iterator lost!"); } tagtab[n1].atmr = NULL; tagtab[n1].oba = NULL; prj->RemoveAtom(it1); } // now we should have the atoms in sync; do the same for bonds. // for each OBBond, find or create the equivalent, and check the type. // we assume that for a pair of atoms, there is no more than 1 bond!!! for (i32u n1 = 0;n1 < obm->NumBonds();n1++) { OBBond * obb = obm->GetBond(n1); i32u ind1 = obb->GetBeginAtomIdx() - 1; i32u ind2 = obb->GetEndAtomIdx() - 1; atom * atmr1 = tagtab2[ind1].atmr; atom * atmr2 = tagtab2[ind2].atmr; bond * bndr = NULL; for (iter_bl it1 = prj->GetBondsBegin();it1 != prj->GetBondsEnd();it1++) { bool match = false; if ((* it1).atmr[0] == atmr1 && (* it1).atmr[1] == atmr2) match = true; if ((* it1).atmr[1] == atmr1 && (* it1).atmr[0] == atmr2) match = true; if (!match) continue; // match found; mark it and check the bondtype. // match found; mark it and check the bondtype. // match found; mark it and check the bondtype. bndr = & (* it1); i32s bt; switch (obb->GetBO()) { case 1: bt = BONDTYPE_SINGLE; break; case 2: bt = BONDTYPE_DOUBLE; break; case 3: bt = BONDTYPE_TRIPLE; break; default: bt = BONDTYPE_CNJGTD; } if (obb->IsAromatic()) bt = BONDTYPE_CNJGTD; bndr->bt = bondtype(bt); break; } // if there were no match, then create the bond! if (!bndr) { i32s bt; switch (obb->GetBO()) { case 1: bt = BONDTYPE_SINGLE; break; case 2: bt = BONDTYPE_DOUBLE; break; case 3: bt = BONDTYPE_TRIPLE; break; default: bt = BONDTYPE_CNJGTD; } if (obb->IsAromatic()) bt = BONDTYPE_CNJGTD; bond newbond(atmr1, atmr2, bondtype(bt)); prj->AddBond(newbond); } } // get rid of the new tagtab... delete[] tagtab2; } #endif // ENABLE_OPENBABEL /*################################################################################################*/ // eof ghemical-3.0.0/src/custom_camera.h0000644000175000017500000000331711634160016013770 00000000000000// CUSTOM_CAMERA.H : an extended ogl_camera class. // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef CUSTOM_CAMERA_H #define CUSTOM_CAMERA_H class ghemical_camera; /*################################################################################################*/ #include #include #include "project.h" /*################################################################################################*/ class custom_camera : public ogl_camera { protected: project * prj; int ccam_index; int wcl_counter; static int ccam_counter; friend class oglview_wcl; friend class custom_app; public: custom_camera(const ogl_object_location &, GLfloat, project *); ~custom_camera(void); int GetCCamI(void) { return ccam_index; } }; /*################################################################################################*/ #endif // CUSTOM_CAMERA_H // eof ghemical-3.0.0/src/custom_app.cpp0000644000175000017500000000630311634160016013651 00000000000000// CUSTOM_APP.CPP // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "custom_app.h" #include "local_i18n.h" #include // the definition for NULL... /*################################################################################################*/ project * custom_app::prj = NULL; custom_app::mtool custom_app::current_mouse_tool = custom_app::mtOrbitXY; custom_app::select_mode custom_app::current_select_mode = custom_app::smAtom; custom_app::custom_app(void) : base_app() { } custom_app::~custom_app(void) { } void custom_app::SetNewProject(void) { // just reset the custom camera counter... // this is for graphical user interface only. custom_camera::ccam_counter = 0; } custom_app * custom_app::GetAppC(void) { return dynamic_cast(base_app::GetAppB()); } project * custom_app::GetPrj(void) { return prj; } custom_app::mtool custom_app::GetCurrentMouseTool(void) { return current_mouse_tool; } custom_app::select_mode custom_app::GetCurrentSelectMode(void) { return current_select_mode; } void custom_app::AddCamera(ogl_camera * cam) { base_app::AddCamera(cam); custom_camera * ccam = dynamic_cast(cam); if (ccam != NULL) CameraAdded(ccam); } bool custom_app::RemoveCamera(ogl_camera * cam) { bool success = base_app::RemoveCamera(cam); if (success) { custom_camera * ccam = dynamic_cast(cam); if (ccam != NULL) CameraRemoved(ccam); } return success; } bool custom_app::AddGlobalLight(ogl_light * light) { bool success = base_app::AddGlobalLight(light); if (success) { LightAdded(light); project::selected_object = light; cout << _("Added global light.") << endl; } return success; } bool custom_app::AddLocalLight(ogl_light * light, ogl_camera * cam) { bool success = base_app::AddLocalLight(light, cam); if (success) { LightAdded(light); project::selected_object = light; cout << _("Added local light.") << endl; } return success; } bool custom_app::RemoveLight(ogl_dummy_object * light) { int n1 = IsLight(light); if (n1 < 0) return false; LightRemoved((ogl_light *) light); base_app::RemoveLight(light); return true; } bool custom_app::SelectLight(const ogl_dummy_object * obj) { int n1 = IsLight(obj); if (n1 < 0) return false; prj->selected_object = light_vector[n1]; return true; } /*################################################################################################*/ // eof ghemical-3.0.0/src/rcpview_wcl.cpp0000644000175000017500000001202311634160016014017 00000000000000// RCPVIEW_WCL.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "rcpview_wcl.h" #include "custom_app.h" #include "local_i18n.h" #include using namespace std; /*################################################################################################*/ rcpview_wcl::rcpview_wcl(const char * s1, const char * sv) : p1dview_wcl(s1, sv) { ready = false; r_treshold = 0.65; // default for range 0<->1... p_treshold = 0.35; // default for range 0<->1... } rcpview_wcl::~rcpview_wcl(void) { } void rcpview_wcl::Finalize(void) { sort(dv.begin(), dv.end()); i32s index = 0; fGL maxv = dv.front().v; for (i32s n1 = 1;n1 < (i32s) dv.size();n1++) { if (dv[n1].v > maxv) { index = n1; maxv = dv[n1].v; } } // first calculate the final reaction coordinates... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dv[index].c1 = 0.0; // should already be zero... int negcount = -3; //??? for (i32s n1 = index - 1;n1 >= 0;n1--) { dv[n1].c1 = negcount--; } int poscount = +3; //??? for (i32s n1 = index + 1;n1 < (i32s) dv.size();n1++) { dv[n1].c1 = poscount++; } /* here we try to calculate distances from TS ; it gives a good scale but sometimes the order of points will change. TODO : measure 4 distances for scaling purposes... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fGL * c_ts = (fGL *) (((char *) dv[index].udata) + sizeof(i32s)); fGL minrc = 0.0; fGL maxrc = 0.0; for (i32u n1 = 0;n1 < dv.size();n1++) { if (n1 == (i32u) index) { dv[n1].c1 = 0.0; continue; } fGL * c_xx = (fGL *) (((char *) dv[n1].udata) + sizeof(i32s)); fGL rc = 0.0; for (i32u n5 = 0;n5 < patoms.size();n5++) { const fGL * crd1 = & c_ts[patoms[n5] * 3]; const fGL * crd2 = & c_xx[patoms[n5] * 3]; for (i32u n6 = 0;n6 < 3;n6++) { fGL tmp1 = crd2[n6] - crd1[n6]; rc += tmp1 * tmp1; } } rc = sqrt(rc); if (n1 < (i32u) index) rc = -rc; if (rc < minrc) minrc = rc; if (rc > maxrc) maxrc = rc; dv[n1].c1 = rc; } */ // what the heck?!?!?! plot1d_view is unable to display negative values??? // then, just re-scale them form 0 to 1. THIS IS A BIT STRANGE... fGL minrc = 0.0; fGL maxrc = 0.0; for (i32u n1 = 0;n1 < dv.size();n1++) { fGL rc = dv[n1].c1; if (rc < minrc) minrc = rc; if (rc > maxrc) maxrc = rc; } for (i32u n1 = 0;n1 < dv.size();n1++) { fGL rc = (dv[n1].c1 - minrc) / (maxrc - minrc); dv[n1].c1 = rc; } // ...and then update the display tresholds. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const f64 eri = dv.front().v; const f64 epi = dv.back().v; f64 limit_r = (epi + maxv) / 2.0; for (i32s n1 = index;n1 < (i32s) dv.size();n1++) { if (dv[n1].v < limit_r) { r_treshold = (dv[n1].c1 + dv[n1 - 1].c1) / 2.0; break; } } f64 limit_p = (eri + maxv) / 2.0; for (i32s n1 = index;n1 >= 0;n1--) { if (dv[n1].v < limit_p) { p_treshold = (dv[n1].c1 + dv[n1 + 1].c1) / 2.0; break; } } project * prj = custom_app::GetAppC()->GetPrj(); ostringstream txts; txts << _("the tresholds were set to ") << r_treshold << _(" and ") << p_treshold << endl << ends; prj->PrintToLog(txts.str().c_str()); ready = true; // finally do the base class initializaion tasks... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ p1dview_wcl::Finalize(); } void rcpview_wcl::ButtonEvent(int x, int y) { if (!ready) return; base_wnd * wnd = GetWnd(); // first setup the bonds... // ^^^^^^^^^^^^^^^^^^^^^^^^ if (!(wnd->GetWidth() > 1)) return; fGL sx = 1.10 * (fGL) x / (fGL) wnd->GetWidth() - 0.05; if (sx < 0.0) return; if (sx > 1.0) return; fGL sel1 = sx * (max1 - min1); bool show_r_bonds = (sel1 < r_treshold); for (i32u n1 = 0;n1 < rbonds.size();n1++) { rbonds[n1]->do_not_render_TSS_fixmelater = !show_r_bonds; } bool show_p_bonds = (sel1 > p_treshold); for (i32u n1 = 0;n1 < pbonds.size();n1++) { pbonds[n1]->do_not_render_TSS_fixmelater = !show_p_bonds; } // ...and finally call the base class ButtonEvent(). // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ p1dview_wcl::ButtonEvent(x, y); } void rcpview_wcl::MotionEvent(int x, int y) { p1dview_wcl::MotionEvent(x, y); } /*################################################################################################*/ // eof ghemical-3.0.0/src/color.h0000644000175000017500000000707711634160016012273 00000000000000// COLOR.H : some common (inline-)functions for color selections. // Copyright (C) 1999 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef COLOR_H #define COLOR_H //#include "ghemicalconfig2.h" /*################################################################################################*/ #include class engine; // engine.h /*################################################################################################*/ // these should be done generic, to give any desired color range... // these should be done generic, to give any desired color range... // these should be done generic, to give any desired color range... void GetRBRange1(fGL, fGL, fGL *); void GetRBRange2(fGL, fGL, fGL *); void GetRedColor(fGL, fGL, fGL *); void GetGreenColor(fGL, fGL, fGL *); void GetBlueColor(fGL, fGL, fGL *); fGL GetUnity(engine *, fGL *, fGL *); /*################################################################################################*/ /** A color function: white -> red -> green -> blue -> white, constant alpha. This is best suited for opaque/transparent planes... */ inline void GetRBRange1(fGL value1, fGL alpha1, fGL * rgb) { fGL value2 = fabs(value1); if (value2 < 1.0) { if (value1 < 0.0) { rgb[0] = 0.0; rgb[2] = value2; } else { rgb[0] = value2; rgb[2] = 0.0; } rgb[1] = 1.0 - value2; rgb[3] = alpha1; } else { value2 = 1.0 - 1.0 / value2; if (value1 < 0.0) { rgb[0] = value2; rgb[2] = 1.0; } else { rgb[0] = 1.0; rgb[2] = value2; } rgb[1] = value2; rgb[3] = alpha1; } } /** A color function: white -> red -> [SHARP CHANGE] -> blue -> white, variable alpha. This is best suited for transparent objects (volume rendering)... */ inline void GetRBRange2(fGL value1, fGL alpha1, fGL * rgb) { fGL value2 = fabs(value1); fGL alpha2 = alpha1 * value2; if (alpha2 > 1.0) alpha2 = 1.0; if (value2 < 1.0) { if (value1 < 0.0) { rgb[0] = 0.0; rgb[2] = 1.0; } else { rgb[0] = 1.0; rgb[2] = 0.0; } rgb[1] = 0.0; rgb[3] = alpha2; } else { value2 = 1.0 - 1.0 / value2; if (value1 < 0.0) { rgb[0] = value2; rgb[2] = 1.0; } else { rgb[0] = 1.0; rgb[2] = value2; } rgb[1] = value2; rgb[3] = alpha2; } } inline void GetRedColor(fGL value, fGL alpha, fGL * rgb) { rgb[0] = value; rgb[1] = rgb[2] = 0.0; rgb[3] = alpha; } inline void GetGreenColor(fGL value, fGL alpha, fGL * rgb) { rgb[1] = value; rgb[0] = rgb[2] = 0.0; rgb[3] = alpha; } inline void GetBlueColor(fGL value, fGL alpha, fGL * rgb) { rgb[2] = value; rgb[0] = rgb[1] = 0.0; rgb[3] = alpha; } inline fGL GetUnity(engine *, fGL *, fGL *) { return 1.0; } /*################################################################################################*/ #endif // COLOR_H // eof ghemical-3.0.0/src/gtk_moldyn_dialog.h0000644000175000017500000000442311634160016014633 00000000000000// GTK_MOLDYN_DIALOG.H : write a short description here... // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_MOLDYN_DIALOG_H #define GTK_MOLDYN_DIALOG_H //#include "ghemicalconfig2.h" #include "gtk_glade_dialog.h" #include /*################################################################################################*/ class gtk_moldyn_dialog : public gtk_glade_dialog { protected: moldyn_param * param; GtkWidget * dialog; GtkWidget * entry_nsteps_h; GtkWidget * entry_nsteps_e; GtkWidget * entry_nsteps_s; GtkWidget * entry_nsteps_c; GtkWidget * entry_timestep; GtkWidget * entry_temperature; GtkWidget * entry_T_rt_hc; GtkWidget * entry_T_rt_es; GtkWidget * entry_pressure; GtkWidget * entry_P_rtime; GtkWidget * entry_P_beta; GtkWidget * checkbutton_constant_T; GtkWidget * checkbutton_constant_P; //GtkWidget * checkbutton_langevin; // removed 2008-07-18 GtkWidget * entry_trajfile; GtkWidget * button_browse; GtkWidget * file_selector; public: gtk_moldyn_dialog(moldyn_param *); ~gtk_moldyn_dialog(void); static void handler_Destroy(GtkWidget *, gpointer); static void handler_ButtonOK(GtkWidget *, gpointer); static void handler_ButtonCancel(GtkWidget *, gpointer); static void handler_ButtonBrowse(GtkWidget *, gpointer); static void handler_FileChooser(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_MOLDYN_DIALOG_H // eof ghemical-3.0.0/src/gtk_progress_dialog.cpp0000644000175000017500000001275111634160016015533 00000000000000// GTK_PROGRESS_DIALOG.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_progress_dialog.h" #include "local_i18n.h" #include #include #include using namespace std; /*################################################################################################*/ gtk_progress_dialog::gtk_progress_dialog(const char * jobname, bool show_pbar, int graphs_n, int graphs_sz) : gtk_glade_dialog("glade/gtk_progress_dialog.glade") { dialog = glade_xml_get_widget(xml, "progress_dialog"); if (dialog == NULL) { cout << _("WARNING : progress_dialog : glade_xml_get_widget() failed!!!") << endl; return; } cancel = false; g_n = graphs_n; g_sz = graphs_sz; g_fill = 0; g_data = NULL; if (g_n > 0 && g_sz > 0) { g_data = new double[g_n * g_sz]; } // initialize the widgets... entry_job = glade_xml_get_widget(xml, "entry_job"); drawingarea_job = glade_xml_get_widget(xml, "drawingarea_job"); progressbar_job = glade_xml_get_widget(xml, "progressbar_job"); gtk_entry_set_text(GTK_ENTRY(entry_job), jobname); gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar_job), "Progress"); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar_job), 0.0); // connect the handlers... glade_xml_signal_connect_data(xml, "on_dialog_destroy", (GtkSignalFunc) handler_Destroy, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_cancel_clicked", (GtkSignalFunc) handler_ButtonCancel, (gpointer) this); if (graphs_n > 0) { gtk_widget_set_size_request(drawingarea_job, 100, 100); g_signal_connect(G_OBJECT(drawingarea_job), "expose_event", G_CALLBACK(handler_ExposeEvent), this); gtk_widget_show(drawingarea_job); } else { gtk_widget_hide(drawingarea_job); } if (show_pbar) { gtk_widget_show(progressbar_job); } else { gtk_widget_hide(progressbar_job); } // create the dialog as a modeless one (for threads). // but it should behave like it were modal!!! // THE USER SHOULD NOT HAVE ACCESS TO ANY (POPUP-)MENUS!!! gtk_widget_show(dialog); // MODELESS ////////////////////////////////////////////////// //gtk_dialog_run(GTK_DIALOG(dialog)); // MODAL } gtk_progress_dialog::~gtk_progress_dialog(void) { if (g_data != NULL) { delete[] g_data; g_data = NULL; } } void gtk_progress_dialog::handler_Destroy(GtkWidget *, gpointer data) { gtk_progress_dialog * ref = (gtk_progress_dialog *) data; //cout << "handler_Destroy() : ref = " << ref << endl; } void gtk_progress_dialog::handler_ButtonCancel(GtkWidget *, gpointer data) { gtk_progress_dialog * ref = (gtk_progress_dialog *) data; //cout << "handler_ButtonCancel() : ref = " << ref << endl; // just send a message that we want cancel the current operation. // the dialog is closed elsewhere (automatically if not cancelled). ref->cancel = true; } gboolean gtk_progress_dialog::handler_ExposeEvent(GtkWidget * widget, GdkEventExpose * event, gpointer data) { gtk_progress_dialog * ref = (gtk_progress_dialog *) data; //cout << "handler_ExposeEvent() : ref = " << ref << endl; // update the graphs... // ^^^^^^^^^^^^^^^^^^^^ // what about thread safety issues here? // it appears that the gdk_threads mechanism is enough... ref->da_w = widget->allocation.width; ref->da_h = widget->allocation.height; // there is no need to blank the drawingarea??? // there is no need to blank the drawingarea??? // there is no need to blank the drawingarea??? const double dx = ref->da_w / ref->g_sz; int sz = ref->g_fill; if (sz > ref->g_sz) sz = ref->g_sz; for (int i = 0;i < ref->g_n;i++) { // find the min and max values. double min = ref->g_data[i * ref->g_sz + 0]; double max = min; for (int f = 1;f < sz;f++) { double v = ref->g_data[i * ref->g_sz + f]; if (v < min) min = v; if (v > max) max = v; } double deltay = max - min; if (deltay < 1.0) { deltay = 1.0; double midy = (min + max) * 0.5; min = midy - deltay * 0.5; max = midy + deltay * 0.5; } // draw the graph double xv = 0.0; int start = (ref->g_fill % ref->g_sz); if (ref->g_fill < ref->g_sz) start = 0; for (int f = 0;f < sz - 1;f++) { int index1 = ((start + f + 0) % ref->g_sz); int index2 = ((start + f + 1) % ref->g_sz); double v1 = ref->g_data[i * ref->g_sz + index1]; double v2 = ref->g_data[i * ref->g_sz + index2]; double yv1 = ref->da_h * (1.0 - (v1 - min) / deltay); double yv2 = ref->da_h * (1.0 - (v2 - min) / deltay); gdk_draw_line(widget->window, widget->style->fg_gc[GTK_WIDGET_STATE(widget)], (int) xv, (int) yv1, (int) (xv + dx), (int) yv2); xv += dx; } } return TRUE; } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_setup_dialog.cpp0000644000175000017500000003326111634160016015026 00000000000000// GTK_SETUP_DIALOG.CPP // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_setup_dialog.h" #include "local_i18n.h" #include #include #include #include #include #include #include #include using namespace std; /*################################################################################################*/ gtk_setup_dialog::gtk_setup_dialog(gtk_project * p1) : gtk_glade_dialog("glade/gtk_setup_dialog.glade") { prj = p1; dialog = glade_xml_get_widget(xml, "setup_dialog"); if (dialog == NULL) { cout << _("WARNING : setup_dialog : glade_xml_get_widget() failed!!!") << endl; return; } // initialize the widgets... // initialize the widgets... // initialize the widgets... GtkWidget * notebook_su = glade_xml_get_widget(xml, "notebook_su"); GtkWidget * optmenu; GtkWidget * submenu; GtkWidget * item; i32u eng_index; GtkWidget * saved_optmenus[5]; // these are for setting the default engine... // setup1_qm // ^^^^^^^^^ optmenu = glade_xml_get_widget(xml, "optionmenu_allQM_eng"); submenu = gtk_menu_new(); saved_optmenus[0] = optmenu; for (eng_index = 0; eng_index < setup1_qm::static_GetEngineCount(); eng_index++) { item = gtk_menu_item_new_with_label(setup1_qm::static_GetEngineName(eng_index)); gtk_widget_show(item); gtk_menu_append(GTK_MENU(submenu), item); } gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), submenu); // setup1_mm // ^^^^^^^^^ optmenu = glade_xml_get_widget(xml, "optionmenu_allMM_eng"); submenu = gtk_menu_new(); saved_optmenus[1] = optmenu; for (eng_index = 0; eng_index < setup1_mm::static_GetEngineCount(); eng_index++) { item = gtk_menu_item_new_with_label(setup1_mm::static_GetEngineName(eng_index)); gtk_widget_show(item); gtk_menu_append(GTK_MENU(submenu), item); } gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), submenu); // setup1_sf // ^^^^^^^^^ optmenu = glade_xml_get_widget(xml, "optionmenu_allSF_eng"); submenu = gtk_menu_new(); saved_optmenus[2] = optmenu; for (eng_index = 0; eng_index < setup1_sf::static_GetEngineCount(); eng_index++) { item = gtk_menu_item_new_with_label(setup1_sf::static_GetEngineName(eng_index)); gtk_widget_show(item); gtk_menu_append(GTK_MENU(submenu), item); } gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), submenu); // setup2_qm_mm // ^^^^^^^^^^^^ optmenu = glade_xml_get_widget(xml, "optionmenu_QMMM_eng"); submenu = gtk_menu_new(); saved_optmenus[3] = optmenu; for (eng_index = 0; eng_index < setup2_qm_mm::static_GetEngineCount(); eng_index++) { item = gtk_menu_item_new_with_label(setup2_qm_mm::static_GetEngineName(eng_index)); gtk_widget_show(item); gtk_menu_append(GTK_MENU(submenu), item); } gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), submenu); // detect the type of model::current_setup object, and setup the default values... // detect the type of model::current_setup object, and setup the default values... // detect the type of model::current_setup object, and setup the default values... setup1_qm * su_allqm = dynamic_cast(prj->GetCurrentSetup()); setup1_mm * su_allmm = dynamic_cast(prj->GetCurrentSetup()); setup1_sf * su_allsf = dynamic_cast(prj->GetCurrentSetup()); setup2_qm_mm * su_qmmm = dynamic_cast(prj->GetCurrentSetup()); // the defaults for the subpages... // the defaults for the subpages... // the defaults for the subpages... if (su_allqm == NULL) { GtkWidget * entry_totchrg = glade_xml_get_widget(xml, "entry_allQM_totchrg"); // total charge gtk_entry_set_text(GTK_ENTRY(entry_totchrg), "+0"); GtkWidget * entry_spinmult = glade_xml_get_widget(xml, "entry_allQM_spinmult"); // spin multiplicity // todo!!! todo!!! todo!!! todo!!! todo!!! todo!!! todo!!! gtk_entry_set_text(GTK_ENTRY(entry_spinmult), "1"); // not yet implemented! gtk_widget_set_sensitive (entry_spinmult, false); // not yet implemented! // todo!!! todo!!! todo!!! todo!!! todo!!! todo!!! todo!!! } if (su_allmm == NULL) { //GtkWidget * entry_dimx = glade_xml_get_widget(xml, "entry_allmm_dimx"); // pbc dim x //gtk_entry_set_text(GTK_ENTRY(entry_dimx), "1.500"); //GtkWidget * entry_dimy = glade_xml_get_widget(xml, "entry_allmm_dimy"); // pbc dim y //gtk_entry_set_text(GTK_ENTRY(entry_dimy), "1.500"); //GtkWidget * entry_dimz = glade_xml_get_widget(xml, "entry_allmm_dimz"); // pbc dim z //gtk_entry_set_text(GTK_ENTRY(entry_dimz), "1.500"); } if (su_allsf == NULL) { } if (su_qmmm == NULL) { } // the settings specific to the model::current_setup object... // the settings specific to the model::current_setup object... // the settings specific to the model::current_setup object... if (su_allqm != NULL) { gtk_option_menu_set_history(GTK_OPTION_MENU(saved_optmenus[0]), su_allqm->GetCurrEngIndex()); gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook_su), 0); GtkWidget * entry_totchrg = glade_xml_get_widget(xml, "entry_allQM_totchrg"); // total charge GtkWidget * entry_spinmult = glade_xml_get_widget(xml, "entry_allQM_spinmult"); // spin multiplicity ostringstream str; str.setf(ios::showpos); str << prj->GetQMTotalCharge() << ends; gtk_entry_set_text(GTK_ENTRY(entry_totchrg), str.str().c_str()); // todo!!! todo!!! todo!!! todo!!! todo!!! todo!!! todo!!! gtk_entry_set_text(GTK_ENTRY(entry_spinmult), "1"); // not yet implemented! gtk_widget_set_sensitive (entry_spinmult, false); // not yet implemented! // todo!!! todo!!! todo!!! todo!!! todo!!! todo!!! todo!!! } else if (su_allmm != NULL) { gtk_option_menu_set_history(GTK_OPTION_MENU(saved_optmenus[1]), su_allmm->GetCurrEngIndex()); gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook_su), 1); GtkWidget * checkbutton_amber = glade_xml_get_widget(xml, "checkbutton_allMM_amber"); // exceptions flag gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton_amber), (su_allmm->GetExceptions() ? TRUE : FALSE)); //GtkWidget * entry_dimx = glade_xml_get_widget(xml, "entry_allmm_dimx"); // pbc dim x //gtk_entry_set_text(GTK_ENTRY(entry_dimx), "???"); //GtkWidget * entry_dimy = glade_xml_get_widget(xml, "entry_allmm_dimy"); // pbc dim y //gtk_entry_set_text(GTK_ENTRY(entry_dimy), "???"); //GtkWidget * entry_dimz = glade_xml_get_widget(xml, "entry_allmm_dimz"); // pbc dim z //gtk_entry_set_text(GTK_ENTRY(entry_dimz), "???"); } else if (su_allsf != NULL) { gtk_option_menu_set_history(GTK_OPTION_MENU(saved_optmenus[2]), su_allsf->GetCurrEngIndex()); gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook_su), 2); } else if (su_qmmm != NULL) { // gtk_option_menu_set_history(GTK_OPTION_MENU(saved_optmenus[3]), su_qmmm->current_eng_index); gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook_su), 3); } else { assertion_failed(__FILE__, __LINE__, "setup class unknown."); } // connect the handlers... glade_xml_signal_connect_data(xml, "on_dialog_destroy", (GtkSignalFunc) handler_Destroy, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_ok_clicked", (GtkSignalFunc) handler_ButtonOK, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_cancel_clicked", (GtkSignalFunc) handler_ButtonCancel, (gpointer) this); gtk_dialog_run(GTK_DIALOG(dialog)); // MODAL gtk_widget_destroy(dialog); // MODAL } gtk_setup_dialog::~gtk_setup_dialog(void) { } void gtk_setup_dialog::handler_Destroy(GtkWidget *, gpointer data) // not really needed... { gtk_setup_dialog * ref = (gtk_setup_dialog *) data; //cout << "handler_Destroy() : ref = " << ref << endl; } void gtk_setup_dialog::handler_ButtonOK(GtkWidget *, gpointer data) { gtk_setup_dialog * ref = (gtk_setup_dialog *) data; //cout << "handler_ButtonOK() : ref = " << ref << endl; // read in and process the user's settings... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GtkWidget * notebook_su = glade_xml_get_widget(ref->xml, "notebook_su"); GtkWidget * optmenu; GtkWidget * submenu; GtkWidget * item; int index = NOT_DEFINED; const gint current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_su)); setup1_sf::SFmode SFmd; if (current_page == 0) { optmenu = glade_xml_get_widget(ref->xml, "optionmenu_allQM_eng"); submenu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); item = gtk_menu_get_active(GTK_MENU(submenu)); index = g_list_index(GTK_MENU_SHELL(submenu)->children, item); //delete ref->prj->current_setup; // get rid of the old setup... //ref->prj->current_setup = new setup1_qm(ref->prj); // ...and make a new one. ref->prj->ReplaceCurrentSetup(new setup1_qm(ref->prj)); ref->prj->GetCurrentSetup()->SetCurrEngIndex(index); // set the requested engine. // handle the total charge GtkWidget * entry_totchrg = glade_xml_get_widget(ref->xml, "entry_allQM_totchrg"); const gchar * buffer = gtk_entry_get_text(GTK_ENTRY(entry_totchrg)); istringstream istr(buffer); i32s value; istr >> value; ref->prj->SetQMTotalCharge(value); // TODO : handle the multiplicity... } else if (current_page == 1) { optmenu = glade_xml_get_widget(ref->xml, "optionmenu_allMM_eng"); submenu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); item = gtk_menu_get_active(GTK_MENU(submenu)); index = g_list_index(GTK_MENU_SHELL(submenu)->children, item); //delete ref->prj->current_setup; // get rid of the old setup... //ref->prj->current_setup = new setup1_mm(ref->prj); // ...and make a new one. ref->prj->ReplaceCurrentSetup(new setup1_mm(ref->prj)); ref->prj->GetCurrentSetup()->SetCurrEngIndex(index); // set the requested engine. // handle the exceptions flag GtkWidget * checkbutton_amber = glade_xml_get_widget(ref->xml, "checkbutton_allMM_amber"); bool exceptions = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_amber)) == TRUE ? true : false); dynamic_cast(ref->prj->GetCurrentSetup())->SetExceptions(exceptions); } else if (current_page == 2) { optmenu = glade_xml_get_widget(ref->xml, "optionmenu_allSF_eng"); submenu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); item = gtk_menu_get_active(GTK_MENU(submenu)); index = g_list_index(GTK_MENU_SHELL(submenu)->children, item); switch (index) { case 0: case 1: SFmd = setup1_sf::modeUA; break; case 2: case 3: SFmd = setup1_sf::modeP5; break; case 4: case 5: SFmd = setup1_sf::modeP3; break; default: assertion_failed(__FILE__, __LINE__, "cannot set SFmode!"); } //delete ref->prj->current_setup; // get rid of the old setup... //ref->prj->current_setup = new setup1_sf(ref->prj, !index); // ...and make a new one. ref->prj->ReplaceCurrentSetup(new setup1_sf(ref->prj, SFmd)); ref->prj->GetCurrentSetup()->SetCurrEngIndex(index); // set the requested engine. } else if (current_page == 3) { /* optmenu = glade_xml_get_widget(ref->xml, "optionmenu_QMMM_eng"); submenu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); item = gtk_menu_get_active(GTK_MENU(submenu)); index = g_list_index(GTK_MENU_SHELL(submenu)->children, item); delete ref->prj->current_setup; // get rid of the old setup... ref->prj->current_setup = new setup2_qm_mm(ref->prj); // ...and make a new one. ref->prj->GetCurrentSetup()->current_eng_index = index; // set the requested engine. */ } else if (current_page == 4) { /* optmenu = glade_xml_get_widget(ref->xml, "optionmenu_MMSF_eng"); submenu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); item = gtk_menu_get_active(GTK_MENU(submenu)); index = g_list_index(GTK_MENU_SHELL(submenu)->children, item); delete ref->prj->current_setup; // get rid of the old setup... ref->prj->current_setup = new setup2_mm_sf(ref->prj); // ...and make a new one. ref->prj->GetCurrentSetup()->current_eng_index = index; // set the requested engine. */ } else { assertion_failed(__FILE__, __LINE__, "invalid current page."); } // report the new settings to log... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ostringstream str1; str1 << _("Changed the Setup for calculations "); str1 << _("(setup = ") << ref->prj->GetCurrentSetup()->GetClassName_lg(); if (current_page == 2) { str1 << "mode = "; switch (SFmd) { case setup1_sf::modeUA: str1 << "UA"; break; case setup1_sf::modeP5: str1 << "P5"; break; case setup1_sf::modeP3: str1 << "P3"; break; default: assertion_failed(__FILE__, __LINE__, "cannot report SFmode!"); } } str1 << _(", engine = ") << ref->prj->GetCurrentSetup()->GetEngineName(ref->prj->GetCurrentSetup()->GetCurrEngIndex()); str1 << ")." << endl << ends; ref->prj->PrintToLog(str1.str().c_str()); } void gtk_setup_dialog::handler_ButtonCancel(GtkWidget *, gpointer data) // not really needed... { gtk_setup_dialog * ref = (gtk_setup_dialog *) data; //cout << "handler_ButtonCancel() : ref = " << ref << endl; } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_file_export_dialog.cpp0000644000175000017500000001304111634160016016200 00000000000000// GTK_FILE_EXPORT_DIALOG.CPP // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_file_export_dialog.h" #include "filetrans.h" #include "local_i18n.h" #include #include #include using namespace std; /*################################################################################################*/ gtk_file_export_dialog::gtk_file_export_dialog(gtk_project * p1) : gtk_glade_dialog("glade/gtk_file_export_dialog.glade") { prj = p1; dialog = glade_xml_get_widget(xml, "file_export_dialog"); if (dialog == NULL) { cout << _("file_export_dialog : glade_xml_get_widget() failed!!!") << endl; return; } // initialize the widgets... entry_trajfile = glade_xml_get_widget(xml, "entry_filename"); button_browse = glade_xml_get_widget(xml, "button_browse"); file_selector = NULL; GtkWidget * optmenu = glade_xml_get_widget(xml, "optionmenu1"); GtkWidget * submenu = gtk_menu_new(); GtkWidget * item; item = gtk_menu_item_new_with_label(_("Automatic")); // insert item "automatic"... gtk_widget_show(item); gtk_menu_append(GTK_MENU(submenu), item); #ifdef ENABLE_OPENBABEL file_trans ft; for (unsigned int i = 0;i < ft.NumExports();i++) // insert other items... { item = gtk_menu_item_new_with_label((char *) ft.GetExportDescription(i).c_str()); gtk_widget_show(item); gtk_menu_append(GTK_MENU(submenu), item); } #endif // ENABLE_OPENBABEL gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), submenu); // connect the handlers... glade_xml_signal_connect_data(xml, "on_dialog_destroy", (GtkSignalFunc) handler_Destroy, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_ok_clicked", (GtkSignalFunc) handler_ButtonOK, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_cancel_clicked", (GtkSignalFunc) handler_ButtonCancel, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_browse_clicked", (GtkSignalFunc) handler_ButtonBrowse, (gpointer) this); gtk_dialog_run(GTK_DIALOG(dialog)); // MODAL gtk_widget_destroy(dialog); // MODAL } gtk_file_export_dialog::~gtk_file_export_dialog(void) { } void gtk_file_export_dialog::handler_Destroy(GtkWidget *, gpointer data) // not really needed... { gtk_file_export_dialog * ref = (gtk_file_export_dialog *) data; //cout << "handler_Destroy() : ref = " << ref << endl; } void gtk_file_export_dialog::handler_ButtonOK(GtkWidget *, gpointer data) { gtk_file_export_dialog * ref = (gtk_file_export_dialog *) data; //cout << "handler_ButtonOK() : ref = " << ref << endl; // do the export... // ^^^^^^^^^^^^^^^^ GtkWidget * optmenu = glade_xml_get_widget(ref->xml, "optionmenu1"); GtkWidget * submenu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); GtkWidget * item = gtk_menu_get_active(GTK_MENU(submenu)); int index = g_list_index(GTK_MENU_SHELL(submenu)->children, item); GtkWidget * entry_fn = glade_xml_get_widget(ref->xml, "entry_filename"); const gchar * filename = gtk_entry_get_text(GTK_ENTRY(entry_fn)); #ifdef ENABLE_OPENBABEL ref->prj->ExportFile(filename, index); ref->prj->ParseProjectFileNameAndPath(filename); custom_app::GetAppC()->UpdateAllWindowTitles(); #endif // ENABLE_OPENBABEL } void gtk_file_export_dialog::handler_ButtonCancel(GtkWidget *, gpointer data) // not really needed... { gtk_file_export_dialog * ref = (gtk_file_export_dialog *) data; //cout << "handler_ButtonCancel() : ref = " << ref << endl; } void gtk_file_export_dialog::handler_ButtonBrowse(GtkWidget *, gpointer data) { gtk_file_export_dialog * ref = (gtk_file_export_dialog *) data; //cout << "handler_ButtonBrowse() : ref = " << ref << endl; // handle the file selection... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ref->file_selector = gtk_file_selection_new(_("Select a filename for export.")); g_signal_connect(GTK_FILE_SELECTION(ref->file_selector)->ok_button, "clicked", G_CALLBACK(handler_FileChooser), data); g_signal_connect_swapped(GTK_FILE_SELECTION(ref->file_selector)->ok_button, "clicked", G_CALLBACK(gtk_widget_destroy), ref->file_selector); g_signal_connect_swapped(GTK_FILE_SELECTION(ref->file_selector)->cancel_button, "clicked", G_CALLBACK(gtk_widget_destroy), ref->file_selector); gtk_dialog_run(GTK_DIALOG(ref->file_selector)); ref->file_selector = NULL; } void gtk_file_export_dialog::handler_FileChooser(GtkWidget *, gpointer data) { gtk_file_export_dialog * ref = (gtk_file_export_dialog *) data; //cout << "handler_FileChooser() : ref = " << ref << endl; // save the selected filename... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const gchar * selected_filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(ref->file_selector)); gtk_entry_set_text(GTK_ENTRY(ref->entry_trajfile), selected_filename); } /*################################################################################################*/ // eof ghemical-3.0.0/src/spline.h0000644000175000017500000000337011634160016012437 00000000000000// SPLINE.H : a "B-spline" class for ribbon models. // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef SPLINE_H #define SPLINE_H //#include "ghemicalconfig2.h" class spline; /*################################################################################################*/ #include /*################################################################################################*/ /// This is a "##B-spline" class for those ribbon models... class spline { private: i32s order; i32s ncp; i32s nk; fGL * knot; fGL * weight; fGL ** cpcrd; // no data, just the pointers... public: spline(i32s p1, i32s p2); ~spline(void); void Compute(fGL, fGL *); void SetPoint(i32s p1, fGL * p2) { cpcrd[p1] = p2; } void SetKnot(i32s p1, fGL p2) { knot[p1] = p2; } i32s GetOrder(void) { return order; } }; /*################################################################################################*/ #endif // SPLINE_H // eof ghemical-3.0.0/src/project.cpp0000644000175000017500000036063111634160016013154 00000000000000// PROJECT.CPP // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "project.h" // config.h is here -> we get ENABLE-macros here... #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "appdefine.h" #include "custom_app.h" #include "custom_camera.h" #include "custom_lights.h" #include "ogl_plane.h" #include "ogl_surface.h" #include "color.h" #include "filetrans.h" #include "local_i18n.h" #include #include #include #include #include using namespace std; /*################################################################################################*/ custom_transformer_client::custom_transformer_client(void) : ogl_transformer_client() { tc_object_ref = NULL; tc_local_object = false; } custom_transformer_client::~custom_transformer_client(void) { } /*################################################################################################*/ ogl_dummy_object * project::selected_object = NULL; const char project::appversion[16] = APPVERSION; char project::appdata_path[256] = "appdata_path_is_not_yet_set_by_main_program"; bool project::background_job_running = false; iGLu project::list_counter = 1; // zero is not a valid display list number... color_mode_element project::cm_element = color_mode_element(); color_mode_secstruct project::cm_secstruct = color_mode_secstruct(); color_mode_hydphob project::cm_hydphob = color_mode_hydphob(); project::project(void) : custom_transformer_client(), model() { project_path = NULL; project_filename = NULL; SetDefaultProjectFileName(); selected_object = NULL; // always re-initialize this!!! camera_counter = 1; object_counter = 1; mt_a1 = mt_a2 = mt_a3 = NULL; importpdb_mdata = NULL; // temporary?!?!?! } project::~project(void) { selected_object = NULL; if (object_vector.size() != 0) assertion_failed(__FILE__, __LINE__, "object_vector.size() != 0"); if (plotting_view_vector.size() != 0) assertion_failed(__FILE__, __LINE__, "plotting_view_vector.size() != 0"); if (graphics_view_vector.size() != 0) assertion_failed(__FILE__, __LINE__, "graphics_view_vector.size() != 0"); if (bond_list.size() != 0) assertion_failed(__FILE__, __LINE__, "bond_list.size() != 0"); if (atom_list.size() != 0) assertion_failed(__FILE__, __LINE__, "atom_list.size() != 0"); if (project_path != NULL) { delete[] project_path; project_path = NULL; } if (project_filename != NULL) { delete[] project_filename; project_filename = NULL; } } void project::ClearAll(void) { selected_object = NULL; while (object_vector.size() != 0) { ogl_smart_object * ref; ref = object_vector.back(); RemoveObject(ref); } while (plotting_view_vector.size() != 0) { base_wcl * ref; ref = plotting_view_vector.back(); RemovePlottingClient(ref); } while (graphics_view_vector.size() != 0) { oglview_wcl * ref; ref = graphics_view_vector.back(); RemoveGraphicsClient(ref, true); } while (bond_list.size() != 0) { iter_bl itB = GetBondsBegin(); RemoveBond(itB); } while (atom_list.size() != 0) { iter_al itA = GetAtomsBegin(); RemoveAtom(itA); } } const char * project::GetProjectFileNameExtension(void) { static const char ext[] = "gpr"; return ext; } void project::SetProjectPath(const char * path) { if (project_path != NULL) delete[] project_path; project_path = new char[strlen(path) + 1]; strcpy(project_path, path); } void project::SetProjectFileName(const char * filename) { if (project_filename != NULL) delete[] project_filename; project_filename = new char[strlen(filename) + 1]; strcpy(project_filename, filename); } void project::SetDefaultProjectFileName(void) { static i32s id_counter = 1; ostringstream str; str << _("untitled") << setw(2) << setfill('0') << id_counter++ << ends; SetProjectFileName(str.str().c_str()); } void project::ParseProjectFileNameAndPath(const char * string) { char * localstring1 = new char[strlen(string) + 1]; strcpy(localstring1, string); i32s lastdir = NOT_DEFINED; for (i32s n1 = 0;n1 < (i32s) strlen(localstring1);n1++) { if (localstring1[n1] == DIR_SEPARATOR) lastdir = n1; } char * localstring2 = localstring1; // set project_path if needed... // set project_path if needed... // set project_path if needed... if (lastdir != NOT_DEFINED) { localstring2[lastdir] = 0; SetProjectPath(localstring2); localstring2 = & localstring2[lastdir + 1]; } // and now set project_filename, without extension... // and now set project_filename, without extension... // and now set project_filename, without extension... i32s lastext = NOT_DEFINED; for (i32s n1 = 0;n1 < (i32s) strlen(localstring2);n1++) { if (localstring2[n1] == EXT_SEPARATOR) lastext = n1; } if (lastext != NOT_DEFINED) { // this only removes an extension if it matches *our* extension, // which makes problems for imported files e.g. nh3.mol.mmg1p (!) instead of nh3.mol or nh3.mm1gp // char * localstring3 = & localstring2[lastext + 1]; // bool has_extension = !strcmp(localstring3, GetProjectFileNameExtension()); // if (has_extension) localstring2[lastext] = 0; // use this instead: // ^^^^^^^^^^^^^^^^^ localstring2[lastext] = 0; } SetProjectFileName(localstring2); delete[] localstring1; } void project::GetProjectFileName(char * buffer, int buffer_size, bool with_extension) { ostringstream ostr; ostr << project_filename; if (with_extension) ostr << EXT_SEPARATOR << GetProjectFileNameExtension(); ostr << ends; if (strlen(ostr.str().c_str()) + 1 >= buffer_size) { assertion_failed(__FILE__, __LINE__, "buffer overflow!"); } strcpy(buffer, ostr.str().c_str()); } void project::GetFullProjectFileName(char * buffer, int buffer_size) { ostringstream ostr; if (project_path != NULL) ostr << project_path << DIR_SEPARATOR; ostr << project_filename << EXT_SEPARATOR << GetProjectFileNameExtension() << ends; if (strlen(ostr.str().c_str()) + 1 >= buffer_size) { assertion_failed(__FILE__, __LINE__, "buffer overflow!"); } strcpy(buffer, ostr.str().c_str()); } /*##############################################*/ /*##############################################*/ #ifdef ENABLE_OPENBABEL bool project::ImportFile(const char * filename, int index) { ifstream ifile; ostringstream intermed; file_trans translator; // store the current (numeric) locale into my_num_locale, // and switch into the "C" numeric locale... static char my_num_locale[32] = "C"; strcpy(my_num_locale, setlocale(LC_NUMERIC, NULL)); setlocale(LC_NUMERIC, "C"); if (index == 0) // Automatic detection { if (!translator.CanImport(filename)) { ErrorMessage(_("Cannot import that file type.")); return false; } ifile.open(filename, ios::in); translator.Import(filename, ifile, intermed); ifile.close(); } else // By type picked by the user { ifile.open(filename, ios::in); translator.Import(filename, index - 1, ifile, intermed); ifile.close(); } istringstream interInput(intermed.str()); bool retval = ReadGPR((* this), interInput, false); // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); return retval; } bool project::ExportFile(const char * filename, int index) { ofstream ofile; stringstream intermed; file_trans translator; // store the current (numeric) locale into my_num_locale, // and switch into the "C" numeric locale... static char my_num_locale[32] = "C"; strcpy(my_num_locale, setlocale(LC_NUMERIC, NULL)); setlocale(LC_NUMERIC, "C"); WriteGPR_v100((* this), intermed); // this is for openbabel-1.100.2 istringstream interInput(intermed.str()); if (index == 0) // Automatic detection { if (!translator.CanExport(filename)) { ErrorMessage(_("Cannot export that file type.")); return false; } ofile.open(filename, ios::out); translator.Export(filename, interInput, ofile); ofile.close(); } else // By type picked by the user { ofile.open(filename, ios::out); translator.Export(filename, index - 1, interInput, ofile); ofile.close(); } // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); return true; } #endif // ENABLE_OPENBABEL /*##############################################*/ /*##############################################*/ void project::AddH(void) { /* file_trans ft; OBMol * obm = ft.CopyAll(this); obm->AddHydrogens(false, false); ft.Synchronize(); */ // above is the OpenBabel implementation of hydrogen adding. // it seems to use bond length information to determine how many H's to add, // which is problematic for protein X-ray structures (that often are not precise enough). // TODO : make all these alternative add_h implementations available!!!!!!!!!!!!!!! AddHydrogens(); // this is the library implementation... ostringstream str; str << _("Hydrogens added.") << endl << ends; PrintToLog(str.str().c_str()); } void project::RemoveH(void) { RemoveHydrogens(); ostringstream str; str << _("Hydrogens removed.") << endl << ends; PrintToLog(str.str().c_str()); } iGLu project::GetDisplayListIDs(iGLu p1) { iGLu first = list_counter; list_counter += p1; return first; } void project::DeleteDisplayLists(iGLu p1, iGLu p2) { for (i32u n1 = 0;n1 < graphics_view_vector.size();n1++) { graphics_view_vector[n1]->GetWnd()->SetCurrent(); glDeleteLists(p1, p2); } } /*##############################################*/ /*##############################################*/ void project::AddAtom_lg(atom & p1) { custom_app * app2 = custom_app::GetAppC(); model::AddAtom_lg(p1); atom_list.back().my_glname = app2->RegisterGLName(& atom_list.back()); app2->AtomAdded(& atom_list.back()); } void project::RemoveAtom(iter_al p1) { // first, discard ALL measure_tool information... if (mt_a1 != NULL) { mt_a1->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a1 = NULL; } if (mt_a2 != NULL) { mt_a2->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a2 = NULL; } if (mt_a3 != NULL) { mt_a3->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a3 = NULL; } // then proceed with the atom removal... custom_app * app2 = custom_app::GetAppC(); app2->AtomRemoved(& (* p1)); app2->UnregisterGLNameByPtr(& (* p1)); model::RemoveAtom(p1); } void project::AddBond(bond & p1) { custom_app * app2 = custom_app::GetAppC(); model::AddBond(p1); app2->BondAdded(& bond_list.back()); } void project::RemoveBond(iter_bl p1) { custom_app * app2 = custom_app::GetAppC(); app2->BondRemoved(& (* p1)); model::RemoveBond(p1); } void project::InvalidateGroups(void) { model::InvalidateGroups(); custom_app::GetAppC()->ClearChainsView(); } void project::UpdateChains(void) { model::UpdateChains(); custom_app::GetAppC()->BuildChainsView(); } /*##############################################*/ /*##############################################*/ i32s project::IsObject(const ogl_dummy_object * p1) { i32s index = NOT_DEFINED; for (i32u n1 = 0;n1 < object_vector.size();n1++) { if (object_vector[n1] == p1) index = n1; } return index; } bool project::SelectObject(const ogl_dummy_object * p1) { i32s n1 = IsObject(p1); if (n1 < 0) return false; selected_object = object_vector[n1]; return true; } void project::AddObject(ogl_smart_object * p1) { object_vector.push_back(p1); selected_object = object_vector.back(); custom_app::GetAppC()->ObjectAdded(p1); } bool project::RemoveObject(ogl_dummy_object * p1) { i32s n1 = IsObject(p1); if (n1 < 0) return false; custom_app::GetAppC()->ObjectRemoved(object_vector[n1]); object_vector.erase(object_vector.begin() + n1); delete p1; return true; } // these are the measuring functions, that only take coordinates as input (so they are model-independent)... // these are the measuring functions, that only take coordinates as input (so they are model-independent)... // these are the measuring functions, that only take coordinates as input (so they are model-independent)... float measure_len(float * c1, float * c2) { v3d v1(c1, c2); return v1.len(); } float measure_ang(float * c1, float * c2, float * c3) { /* Vector v1, v2; v1 = Vector(c1[0] - c2[0], c1[1] - c2[1], c1[2] - c2[2]); v2 = Vector(c3[0] - c2[0], c3[1] - c2[1], c3[2] - c2[2]); return VectorAngle(v1, v2); */ v3d v1(c2, c1); v3d v2(c2, c3); return v1.ang(v2) * 180.0 / M_PI; } float measure_tor(float * c1, float * c2, float * c3, float * c4) { /* Vector v1, v2, v3, v4; v1 = Vector(c1[0], c1[1], c1[2]) * 10.0f; v2 = Vector(c2[0], c2[1], c2[2]) * 10.0f; v3 = Vector(c3[0], c3[1], c3[2]) * 10.0f; v4 = Vector(c4[0], c4[1], c4[2]) * 10.0f; return CalcTorsionAngle(v1, v2, v3, v4); */ v3d v1(c2, c1); v3d v2(c2, c3); v3d v3(c3, c4); return v1.tor(v2, v3) * 180.0 / M_PI; } /*##############################################*/ /*##############################################*/ oglview_wcl * project::AddGraphicsClient(custom_camera * cam, bool detached) { if (!cam) { fGL focus = GetDefaultFocus(); cam = new custom_camera(ogl_ol_static(), focus, this); custom_app::GetAppC()->AddCamera(cam); // also add a new light object by default... ogl_light * l = new ogl_directional_light(ogl_ol_static()); custom_app::GetAppC()->AddLocalLight(l, cam); } oglview_wcl * wcl = new oglview_wcl(cam); ostringstream title; title << _("camera ") << cam->GetCCamI() << _(" window ") << wcl->my_wnd_number << ends; wcl->SetTitle(title.str().c_str()); base_wnd * wnd = CreateGraphicsWnd(detached); wcl->LinkWnd(wnd); graphics_view_vector.push_back(wcl); custom_app::GetAppC()->GraphicsClientAdded(wcl); custom_app::GetAppC()->SetupLights(cam); custom_app::GetAppC()->UpdateAllWindowTitles(); return wcl; } bool project::RemoveGraphicsClient(oglview_wcl * wcl, bool force) { ogl_camera * cam = wcl->GetCam(); i32s views_for_other_cams = 0; i32s other_views_for_this_cam = 0; i32s index = NOT_DEFINED; for (i32u n1 = 0;n1 < graphics_view_vector.size();n1++) { if (graphics_view_vector[n1] == wcl) { index = n1; continue; } if (graphics_view_vector[n1]->GetCam() != cam) { views_for_other_cams++; } else { other_views_for_this_cam++; } } if (index < 0) assertion_failed(__FILE__, __LINE__, "index < 0"); if (!force && (views_for_other_cams + other_views_for_this_cam < 1)) // refuse to close the last view!!! { ErrorMessage(_("This is the last graphics view for\nthis project - can't close it.")); return false; } // now let's remove the window and the client... base_wnd * wnd = wcl->GetWnd(); wcl->UnlinkWnd(); DestroyGraphicsWnd(wnd); wnd = NULL; custom_app::GetAppC()->GraphicsClientRemoved(wcl); graphics_view_vector.erase(graphics_view_vector.begin() + index); delete wcl; wcl = NULL; // now we can also remove the camera, if needed... if (!other_views_for_this_cam) { custom_app::GetAppC()->RemoveCamera(cam); delete cam; cam = NULL; // disable selected_object since it could have been // a light object that just got deleted ; FIX_ME_LATER selected_object = NULL; // ??? } custom_app::GetAppC()->UpdateAllWindowTitles(); return true; } bool project::IsThisLastGraphicsClient(oglview_wcl * wcl) { ogl_camera * cam = wcl->GetCam(); i32s views_for_other_cams = 0; i32s other_views_for_this_cam = 0; for (i32u n1 = 0;n1 < graphics_view_vector.size();n1++) { if (graphics_view_vector[n1] == wcl) continue; if (graphics_view_vector[n1]->GetCam() != cam) { views_for_other_cams++; } else { other_views_for_this_cam++; } } if (views_for_other_cams + other_views_for_this_cam < 1) return true; else return false; } p1dview_wcl * project::AddPlot1DClient(const char * s1, const char * sv, bool detached) { p1dview_wcl * wcl = new p1dview_wcl(s1, sv); base_wnd * wnd = CreatePlot1DWnd(detached); wcl->LinkWnd(wnd); plotting_view_vector.push_back(wcl); custom_app::GetAppC()->PlottingClientAdded(wcl); custom_app::GetAppC()->UpdateAllWindowTitles(); return wcl; } p2dview_wcl * project::AddPlot2DClient(const char * s1, const char * s2, const char * sv, bool detached) { p2dview_wcl * wcl = new p2dview_wcl(s1, s2, sv); base_wnd * wnd = CreatePlot2DWnd(detached); wcl->LinkWnd(wnd); plotting_view_vector.push_back(wcl); custom_app::GetAppC()->PlottingClientAdded(wcl); custom_app::GetAppC()->UpdateAllWindowTitles(); return wcl; } eldview_wcl * project::AddEnergyLevelDiagramClient(bool detached) { eldview_wcl * wcl = new eldview_wcl(); base_wnd * wnd = CreateEnergyLevelDiagramWnd(detached); wcl->LinkWnd(wnd); plotting_view_vector.push_back(wcl); custom_app::GetAppC()->PlottingClientAdded(wcl); custom_app::GetAppC()->UpdateAllWindowTitles(); return wcl; } rcpview_wcl * project::AddReactionCoordinatePlotClient(const char * s1, const char * sv, bool detached) { rcpview_wcl * wcl = new rcpview_wcl(s1, sv); base_wnd * wnd = CreateReactionCoordinatePlotWnd(detached); wcl->LinkWnd(wnd); plotting_view_vector.push_back(wcl); custom_app::GetAppC()->PlottingClientAdded(wcl); custom_app::GetAppC()->UpdateAllWindowTitles(); return wcl; } gpcview_wcl * project::AddGenericProteinChainClient(bool detached) { gpcview_wcl * wcl = new gpcview_wcl(); base_wnd * wnd = CreateGenericProteinChainWnd(detached); wcl->LinkWnd(wnd); plotting_view_vector.push_back(wcl); custom_app::GetAppC()->PlottingClientAdded(wcl); custom_app::GetAppC()->UpdateAllWindowTitles(); return wcl; } bool project::RemovePlottingClient(base_wcl * wcl) { i32s index = NOT_DEFINED; for (i32u n2 = 0;n2 < plotting_view_vector.size();n2++) { if (plotting_view_vector[n2] == wcl) index = n2; } if (index < 0) assertion_failed(__FILE__, __LINE__, "index < 0"); // now let's remove the window and the client... base_wnd * wnd = wcl->GetWnd(); wcl->UnlinkWnd(); DestroyPlottingWnd(wnd); wnd = NULL; custom_app::GetAppC()->PlottingClientRemoved(wcl); plotting_view_vector.erase(plotting_view_vector.begin() + index); delete wcl; wcl = NULL; return true; } void project::UpdateAllViews(void) { UpdateAllGraphicsViews(); UpdateAllPlottingViews(); // the project view, if exists, will take // care of itself and does not need updating. } void project::UpdateAllGraphicsViews(bool flag) { for (i32u n1 = 0;n1 < graphics_view_vector.size();n1++) { graphics_view_vector[n1]->GetWnd()->RequestUpdate(flag); } } void project::UpdateAllPlottingViews(bool flag) { for (i32u n1 = 0;n1 < plotting_view_vector.size();n1++) { plotting_view_vector[n1]->GetWnd()->RequestUpdate(flag); } } void project::UpdateGraphicsViews(ogl_camera * cam, bool flag) { for (i32u n1 = 0;n1 < graphics_view_vector.size();n1++) { if (graphics_view_vector[n1]->GetCam() != cam) continue; graphics_view_vector[n1]->GetWnd()->RequestUpdate(flag); } } void project::UpdateGraphicsView(oglview_wcl * wcl, bool flag) { wcl->GetWnd()->RequestUpdate(flag); } /*##############################################*/ /*##############################################*/ void project::ProcessCommandString(oglview_wcl * wcl, const char * command) { ostringstream str1; str1 << _("Processing Command : ") << command << endl << ends; PrintToLog(str1.str().c_str()); istringstream istr(command); char kw1[32]; istr >> kw1; // the 1st keyword. if (!strcmp("help", kw1)) { ostringstream str; str << _("> AVAILABLE COMMANDS:") << endl; // use alphabetical order??? str << _("> add light (local/global) (directional/spotlight) -- add a new light object.") << endl; str << _("> add plane -- add a plane object.") << endl; str << _("> where: = value function : esp vdws eldens mo mod unity") << endl; str << _("> = colour function : red green blue rb1 rb2") << endl; str << _("> = scaling value for calculating the colours") << endl; str << _("> = scaling offset for calculating the colours") << endl; str << _("> = dimension of the plane object (in nm units)") << endl; str << _("> = resolution of the plane object") << endl; str << _("> = 0 or 1 telling if the object is transparent") << endl; str << _("> = transparency alpha value") << endl; str << _("> add volrend -- add a volume-rendering object.") << endl; str << _("> where: = value function : esp vdws eldens mo mod unity") << endl; str << _("> = colour function : red green blue rb1 rb2") << endl; str << _("> = scaling value for calculating the colours") << endl; str << _("> = scaling offset for calculating the colours") << endl; str << _("> = dimension of the plane object (in nm units)") << endl; str << _("> = resolution of the plane object") << endl; str << _("> = transparency alpha value") << endl; str << _("> add surf1 -- add a single surface object.") << endl; str << _("> where: = value function for calculating the surface : esp vdws eldens mo mod unity") << endl; str << _("> = value function for calculating the colours : esp vdws eldens mo mod unity") << endl; str << _("> = colour function : red green blue rb1 rb2") << endl; str << _("> = scaling value for calculating the surface") << endl; str << _("> = scaling value for calculating the colours") << endl; str << _("> = scaling offset for calculating the colours") << endl; str << _("> = dimension of the plane object (in nm units)")<< endl; str << _("> = resolution of the plane object") << endl; str << _("> = 0 or 1 telling if the object is solid") << endl; str << _("> = 0 or 1 telling if the object is transparent")<< endl; str << _("> = transparency alpha value") << endl; str << _("> add surf2 -- add a pair of surface objects.") << endl; str << _("> where: = value function for calculating the surface : esp vdws eldens mo mod unity") << endl; str << _("> = value function for calculating the colours : esp vdws eldens mo mod unity") << endl; str << _("> = colour function for 1st surface : red green blue rb1 rb2") << endl; str << _("> = colour function for 2nd surface : red green blue rb1 rb2") << endl; str << _("> = scaling value for calculating the surface for 1st surface") << endl; str << _("> = scaling value for calculating the surface for 2nd surface")<< endl; str << _("> = scaling value for calculating the colours")<< endl; str << _("> = scaling offset for calculating the colours")<< endl; str << _("> = dimension of the plane object (in nm units)")<< endl; str << _("> = resolution of the plane object")<< endl; str << _("> = 0 or 1 telling if the object is solid")<< endl; str << _("> = 0 or 1 telling if the object is transparent")<< endl; str << _("> = transparency alpha value") << endl; str << _("> help -- print all available commands in command strings.") << endl; str << _("> energy -- calculate a single-point energy.") << endl; str << _("> geom_opt -- do a geometry optimization run using default options.") << endl; str << _("> mol_dyn -- do a molecular dynamics run using default options.") << endl; str << _("> random_search -- perform a random conformational search.") << endl; str << _("> systematic_search -- perform a systematic conformational search.") << endl; str << _("> montecarlo_search -- perform a MonteCarlo search.") << endl; str << _("> make_plot1 A B C D
-- create a 1D energy vs. torsion plot.") << endl; str << _("> make_plot2 A B C D
I J K L
-- create a 2D energy vs. torsions plot.") << endl; str << _("> population_analysis_ESP -- determine atomic charges using an ESP fit (for QM methods only).") << endl; str << _("> transition_state_search -- perform a transition state search (for QM methods only).") << endl; str << _("> stationary_state_search -- perform a search for a structure with no forces.") << endl; str << _("> set_current_orbital -- set the current orbtal index for plotting the orbitals.") << endl; str << _("> update_chains -- detect polymer chains using sequence builder.") << endl; str << _("> build_amino (helix/strand) -- amino acid sequence builder.") << endl; str << _("> build_nucleic -- nucleic acid sequence builder.") << endl; str << _("> orient -- orient the system in the XYZ coordinate system.") << endl; str << _("> solvate_box ( (export)) -- setup a solvation box.") << endl; str << _("> solvate_sphere ( ) -- setup a solvation sphere.")<< endl; str << _("> set_formal_charge -- set formal charges to atoms.") << endl; str << _("> evaluate_Bfact -- evaluate B-factors for selected atoms (a trajectory file must be open).") << endl; str << _("> evaluate_diffconst
-- evaluate diffusion constants for selected atoms (a trajectory file must be open, dt = time difference between frames [fs]).") << endl; str << ends; PrintToLog(str.str().c_str()); return; } if (!strcmp("add", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; type of the object to add. if (!strcmp("light", kw2)) { char kw3[32]; istr >> kw3; char kw4[32]; istr >> kw4; bool is_local = true; bool is_directional = true; if (kw3[0] == 'g' || kw4[0] == 'g') is_local = false; // global if (kw3[0] == 's' || kw4[0] == 's') is_directional = false; // spotlight ogl_light * new_light; if (is_directional) new_light = new ogl_directional_light(ogl_ol_static()); else { new_light = new rendered_spot_light(ogl_ol_static()); const fGL trans[3] = { 0.0, 0.0, -1.0 }; new_light->TranslateObject((const fGL *) trans, wcl->GetCam()->GetSafeLD()); } base_app * app = base_app::GetAppB(); if (!is_local) app->AddGlobalLight(new_light); else app->AddLocalLight(new_light, wcl->GetCam()); if (!is_local || oglview_wcl::draw_info) UpdateAllGraphicsViews(); else if (is_local) UpdateGraphicsViews(wcl->GetCam()); ostringstream strR; strR << _("Added a new object : light ("); strR << (is_local ? _("local") : _("global")) << " "; strR << (is_directional ? _("directional") : _("spotlight")) << ")." << endl << ends; PrintToLog(strR.str().c_str()); return; } if (!strcmp("plane", kw2)) { char kw3[32]; istr >> kw3; char kw4[32]; istr >> kw4; char kw5[32]; istr >> kw5; char kw6[32]; istr >> kw6; char kw7[32]; istr >> kw7; char kw8[32]; istr >> kw8; char kw9[32]; istr >> kw9; char kwA[32]; istr >> kwA; char ** endptr = NULL; ogl_cp_param cpp; cpp.prj = this; cpp.ref = GetCurrentSetup()->GetCurrentEngine(); if (!strcmp(kw3, "esp")) cpp.vf = (ValueFunction *) value_ESP; else if (!strcmp(kw3, "vdws")) cpp.vf = (ValueFunction *) value_VDWSurf; else if (!strcmp(kw3, "eldens")) cpp.vf = (ValueFunction *) value_ElDens; else if (!strcmp(kw3, "mo")) cpp.vf = (ValueFunction *) value_Orbital; else if (!strcmp(kw3, "mod")) cpp.vf = (ValueFunction *) value_OrbDens; else if (!strcmp(kw3, "unity")) cpp.vf = (ValueFunction *) GetUnity; else { ostringstream strE; strE << _("ERROR : add plane : unknown value function ") << kw3 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } if (!strcmp(kw4, "red")) cpp.cf = (ColorFunction *) GetRedColor; else if (!strcmp(kw4, "green")) cpp.cf = (ColorFunction *) GetGreenColor; else if (!strcmp(kw4, "blue")) cpp.cf = (ColorFunction *) GetBlueColor; else if (!strcmp(kw4, "rb1")) cpp.cf = (ColorFunction *) GetRBRange1; else if (!strcmp(kw4, "rb2")) cpp.cf = (ColorFunction *) GetRBRange2; else { ostringstream strE; strE << _("ERROR : add plane : unknown colour function ") << kw4 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } f64 cscale1 = strtod(kw5, endptr); f64 cscale2 = 0.0; bool auto_cv2 = false; if (!strcmp(kw6, "AUTO")) auto_cv2 = true; else cscale2 = strtod(kw6, endptr); f64 dim = strtod(kw7, endptr); i32s res = strtol(kw8, endptr, 10); if (res < 2) res = 2; i32s tp = strtol(kw9, endptr, 10); if (tp < 0) tp = 0; if (tp > 1) tp = 1; f64 alpha = strtod(kwA, endptr); cpp.dim = dim; cpp.np = res; cpp.transparent = tp; cpp.automatic_cv2 = auto_cv2; cpp.cvalue1 = cscale1; cpp.cvalue2 = cscale2; cpp.alpha = alpha; ostringstream strN; strN << kw3 << "-" << ends; AddObject(new ogl_color_plane_object(ogl_ol_static(), cpp, strN.str().c_str())); UpdateAllGraphicsViews(); ostringstream strR; strR << _("Added a new object : plane (") << kw3 << " " << kw4 << ")." << endl << ends; PrintToLog(strR.str().c_str()); return; } if (!strcmp("volrend", kw2)) { char kw3[32]; istr >> kw3; char kw4[32]; istr >> kw4; char kw5[32]; istr >> kw5; char kw6[32]; istr >> kw6; char kw7[32]; istr >> kw7; char kw8[32]; istr >> kw8; char kw9[32]; istr >> kw9; char ** endptr = NULL; ogl_cp_param cpp; cpp.prj = this; cpp.ref = GetCurrentSetup()->GetCurrentEngine(); if (!strcmp(kw3, "esp")) cpp.vf = (ValueFunction *) value_ESP; else if (!strcmp(kw3, "vdws")) cpp.vf = (ValueFunction *) value_VDWSurf; else if (!strcmp(kw3, "eldens")) cpp.vf = (ValueFunction *) value_ElDens; else if (!strcmp(kw3, "mo")) cpp.vf = (ValueFunction *) value_Orbital; else if (!strcmp(kw3, "mod")) cpp.vf = (ValueFunction *) value_OrbDens; else if (!strcmp(kw3, "unity")) cpp.vf = (ValueFunction *) GetUnity; else { ostringstream strE; strE << _("ERROR : add volrend : unknown value function ") << kw3 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } if (!strcmp(kw4, "red")) cpp.cf = (ColorFunction *) GetRedColor; else if (!strcmp(kw4, "green")) cpp.cf = (ColorFunction *) GetGreenColor; else if (!strcmp(kw4, "blue")) cpp.cf = (ColorFunction *) GetBlueColor; else if (!strcmp(kw4, "rb1")) cpp.cf = (ColorFunction *) GetRBRange1; else if (!strcmp(kw4, "rb2")) cpp.cf = (ColorFunction *) GetRBRange2; else { ostringstream strE; strE << _("ERROR : add volrend : unknown colour function ") << kw4 <<"." << endl << ends; PrintToLog(strE.str().c_str()); return; } f64 cscale1 = strtod(kw5, endptr); f64 cscale2 = 0.0; bool auto_cv2 = false; if (!strcmp(kw6, "AUTO")) auto_cv2 = true; else cscale2 = strtod(kw6, endptr); f64 dim = strtod(kw7, endptr); i32s res = strtol(kw8, endptr, 10); if (res < 4) res = 4; f64 alpha = strtod(kw9, endptr); cpp.dim = dim; cpp.np = res; cpp.transparent = true; cpp.automatic_cv2 = auto_cv2; cpp.cvalue1 = cscale1; cpp.cvalue2 = cscale2; cpp.alpha = alpha; ostringstream strN; strN << kw3 << "-" << ends; AddObject(new ogl_volume_rendering_object(ogl_ol_static(), cpp, res / 2, dim / 2.0, (* wcl->GetCam()), strN.str().c_str())); UpdateAllGraphicsViews(); ostringstream strR; strR << _("Added a new object : volrend (") << kw3 << " " << kw4 << ")." << endl << ends; PrintToLog(strR.str().c_str()); return; } if (!strcmp("surf1", kw2)) { char kw3[32]; istr >> kw3; // vf1 char kw4[32]; istr >> kw4; // vf2 char kw5[32]; istr >> kw5; // cf char kw6[32]; istr >> kw6; // sscale char kw7[32]; istr >> kw7; // cscale1 char kw8[32]; istr >> kw8; // AUTO/cscale2 char kw9[32]; istr >> kw9; // dim char kwA[32]; istr >> kwA; // res char kwB[32]; istr >> kwB; // solid char kwC[32]; istr >> kwC; // tp char kwD[32]; istr >> kwD; // alpha char ** endptr = NULL; ogl_cs_param csp1; csp1.prj = this; csp1.ref = GetCurrentSetup()->GetCurrentEngine(); csp1.next = NULL; if (!strcmp(kw3, "esp")) csp1.vf1 = (ValueFunction *) value_ESP; else if (!strcmp(kw3, "vdws")) csp1.vf1 = (ValueFunction *) value_VDWSurf; else if (!strcmp(kw3, "eldens")) csp1.vf1 = (ValueFunction *) value_ElDens; else if (!strcmp(kw3, "mo")) csp1.vf1 = (ValueFunction *) value_Orbital; else if (!strcmp(kw3, "mod")) csp1.vf1 = (ValueFunction *) value_OrbDens; else if (!strcmp(kw3, "unity")) csp1.vf1 = (ValueFunction *) GetUnity; else { ostringstream strE; strE << _("ERROR : add surf1 : unknown value function 1 ") << kw3 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } if (!strcmp(kw4, "esp")) csp1.vf2 = (ValueFunction *) value_ESP; else if (!strcmp(kw4, "vdws")) csp1.vf2 = (ValueFunction *) value_VDWSurf; else if (!strcmp(kw4, "eldens")) csp1.vf2 = (ValueFunction *) value_ElDens; else if (!strcmp(kw4, "mo")) csp1.vf2 = (ValueFunction *) value_Orbital; else if (!strcmp(kw4, "mod")) csp1.vf2 = (ValueFunction *) value_OrbDens; else if (!strcmp(kw4, "unity")) csp1.vf2 = (ValueFunction *) GetUnity; else { ostringstream strE; strE << _("ERROR : add surf1 : unknown value function 2 ") << kw4 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } if (!strcmp(kw5, "red")) csp1.cf = (ColorFunction *) GetRedColor; else if (!strcmp(kw5, "green")) csp1.cf = (ColorFunction *) GetGreenColor; else if (!strcmp(kw5, "blue")) csp1.cf = (ColorFunction *) GetBlueColor; else if (!strcmp(kw5, "rb1")) csp1.cf = (ColorFunction *) GetRBRange1; else if (!strcmp(kw5, "rb2")) csp1.cf = (ColorFunction *) GetRBRange2; else { ostringstream strE; strE << _("ERROR : add surf1 : unknown colour function ") << kw5 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } f64 sscale = strtod(kw6, endptr); f64 cscale1 = strtod(kw7, endptr); f64 cscale2 = 0.0; bool auto_cv2 = false; if (!strcmp(kw8, "AUTO")) auto_cv2 = true; else cscale2 = strtod(kw8, endptr); f64 dim = strtod(kw9, endptr); i32s res = strtol(kwA, endptr, 10); if (res < 4) res = 4; i32s solid = strtol(kwB, endptr, 10); if (solid < 0) solid = 0; if (solid > 1) solid = 1; i32s tp = strtol(kwC, endptr, 10); if (tp < 0) tp = 0; if (tp > 1) tp = 1; f64 alpha = strtod(kwD, endptr); static fGL dim_arr[3]; dim_arr[0] = dim_arr[1] = dim_arr[2] = dim; static i32s res_arr[3]; res_arr[0] = res_arr[1] = res_arr[2] = res; csp1.dim = dim_arr; csp1.np = res_arr; csp1.transparent = tp; csp1.automatic_cv2 = auto_cv2; csp1.wireframe = !solid; csp1.svalue = sscale; csp1.cvalue1 = cscale1; csp1.cvalue2 = cscale2; csp1.alpha = alpha; csp1.toler = fabs(1.0e-6 * sscale); csp1.maxc = 250; ostringstream strN; strN << kw3 << "-" << kw4 << "-" << ends; AddObject(new ogl_color_surface_object(ogl_ol_static(), csp1, strN.str().c_str())); UpdateAllGraphicsViews(); ostringstream strR; strR << _("Added a new object : surf1 (") << kw3 << " " << kw4 << " " << kw5 << ")." << endl << ends; PrintToLog(strR.str().c_str()); return; } if (!strcmp("surf2", kw2)) { char kw3[32]; istr >> kw3; // vf1 char kw4[32]; istr >> kw4; // vf2 char kw5[32]; istr >> kw5; // cf1 char kw6[32]; istr >> kw6; // cf2 char kw7[32]; istr >> kw7; // sscale1 char kw8[32]; istr >> kw8; // sscale2 char kw9[32]; istr >> kw9; // cscale1 char kwA[32]; istr >> kwA; // AUTO/cscale2 char kwB[32]; istr >> kwB; // dim char kwC[32]; istr >> kwC; // res char kwD[32]; istr >> kwD; // solid char kwE[32]; istr >> kwE; // tp char kwF[32]; istr >> kwF; // alpha char ** endptr = NULL; ogl_cs_param csp2a; ogl_cs_param csp2b; csp2a.prj = this; csp2a.ref = GetCurrentSetup()->GetCurrentEngine(); csp2a.next = & csp2b; csp2b.prj = this; csp2b.ref = GetCurrentSetup()->GetCurrentEngine(); csp2b.next = NULL; if (!strcmp(kw3, "esp")) csp2a.vf1 = csp2b.vf1 = (ValueFunction *) value_ESP; else if (!strcmp(kw3, "vdws")) csp2a.vf1 = csp2b.vf1 = (ValueFunction *) value_VDWSurf; else if (!strcmp(kw3, "eldens")) csp2a.vf1 = csp2b.vf1 = (ValueFunction *) value_ElDens; else if (!strcmp(kw3, "mo")) csp2a.vf1 = csp2b.vf1 = (ValueFunction *) value_Orbital; else if (!strcmp(kw3, "mod")) csp2a.vf1 = csp2b.vf1 = (ValueFunction *) value_OrbDens; else if (!strcmp(kw3, "unity")) csp2a.vf1 = csp2b.vf1 = (ValueFunction *) GetUnity; else { ostringstream strE; strE << _("ERROR : add surf2 : unknown value function 1 ") << kw3 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } if (!strcmp(kw4, "esp")) csp2a.vf2 = csp2b.vf2 = (ValueFunction *) value_ESP; else if (!strcmp(kw4, "vdws")) csp2a.vf2 = csp2b.vf2 = (ValueFunction *) value_VDWSurf; else if (!strcmp(kw4, "eldens")) csp2a.vf2 = csp2b.vf2 = (ValueFunction *) value_ElDens; else if (!strcmp(kw4, "mo")) csp2a.vf2 = csp2b.vf2 = (ValueFunction *) value_Orbital; else if (!strcmp(kw4, "mod")) csp2a.vf2 = csp2b.vf2 = (ValueFunction *) value_OrbDens; else if (!strcmp(kw4, "unity")) csp2a.vf2 = csp2b.vf2 = (ValueFunction *) GetUnity; else { ostringstream strE; strE << _("ERROR : add surf2 : unknown value function 2 ") << kw4 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } if (!strcmp(kw5, "red")) csp2a.cf = (ColorFunction *) GetRedColor; else if (!strcmp(kw5, "green")) csp2a.cf = (ColorFunction *) GetGreenColor; else if (!strcmp(kw5, "blue")) csp2a.cf = (ColorFunction *) GetBlueColor; else if (!strcmp(kw5, "rb1")) csp2a.cf = (ColorFunction *) GetRBRange1; else if (!strcmp(kw5, "rb2")) csp2a.cf = (ColorFunction *) GetRBRange2; else { ostringstream strE; strE << _("ERROR : add surf2 : unknown colour function 1 ") << kw5 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } if (!strcmp(kw6, "red")) csp2b.cf = (ColorFunction *) GetRedColor; else if (!strcmp(kw6, "green")) csp2b.cf = (ColorFunction *) GetGreenColor; else if (!strcmp(kw6, "blue")) csp2b.cf = (ColorFunction *) GetBlueColor; else if (!strcmp(kw6, "rb1")) csp2b.cf = (ColorFunction *) GetRBRange1; else if (!strcmp(kw6, "rb2")) csp2b.cf = (ColorFunction *) GetRBRange2; else { ostringstream strE; strE << _("ERROR : add surf2 : unknown colour function 2 ") << kw6 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } f64 sscale1 = strtod(kw7, endptr); f64 sscale2 = strtod(kw8, endptr); f64 cscale1 = strtod(kw9, endptr); f64 cscale2 = 0.0; bool auto_cv2 = false; if (!strcmp(kwA, "AUTO")) auto_cv2 = true; else cscale2 = strtod(kwA, endptr); f64 dim = strtod(kwB, endptr); i32s res = strtol(kwC, endptr, 10); if (res < 4) res = 4; i32s solid = strtol(kwD, endptr, 10); if (solid < 0) solid = 0; if (solid > 1) solid = 1; i32s tp = strtol(kwE, endptr, 10); if (tp < 0) tp = 0; if (tp > 1) tp = 1; f64 alpha = strtod(kwF, endptr); static fGL dim_arr[3]; dim_arr[0] = dim_arr[1] = dim_arr[2] = dim; static i32s res_arr[3]; res_arr[0] = res_arr[1] = res_arr[2] = res; csp2a.dim = dim_arr; csp2a.np = res_arr; csp2a.transparent = tp; csp2a.automatic_cv2 = auto_cv2; csp2a.wireframe = !solid; csp2a.svalue = sscale1; csp2a.cvalue1 = cscale1; csp2a.cvalue2 = cscale2; csp2a.alpha = alpha; csp2a.toler = fabs(1.0e-6 * sscale1); csp2a.maxc = 250; csp2b.dim = dim_arr; csp2b.np = res_arr; csp2b.transparent = tp; csp2b.automatic_cv2 = auto_cv2; csp2b.wireframe = !solid; csp2b.svalue = sscale2; csp2b.cvalue1 = cscale1; csp2b.cvalue2 = cscale2; csp2b.alpha = alpha; csp2b.toler = fabs(1.0e-6 * sscale2); csp2b.maxc = 250; ostringstream strN; strN << kw3 << "-" << kw4 << "-" << ends; AddObject(new ogl_color_surface_object(ogl_ol_static(), csp2a, strN.str().c_str())); UpdateAllGraphicsViews(); ostringstream strR; strR << _("Added a new object : surf2 (") << kw3 << " " << kw4 << " " << kw5 << " " << kw6 << ")." << endl << ends; PrintToLog(strR.str().c_str()); return; } ostringstream strE; strE << _("ERROR : could not process command \"add\" for parameter ") << kw2 << "." << endl << ends; PrintToLog(strE.str().c_str()); return; } if (!strcmp("energy", kw1)) { DoEnergy(); return; } if (!strcmp("geom_opt", kw1)) // todo: how to set the options here? { setup * su = GetCurrentSetup(); static jobinfo_GeomOpt ji; ji.prj = this; ji.go = geomopt_param(su); ji.go.Confirm(); ji.show_dialog = false; start_job_GeomOpt(& ji); return; } if (!strcmp("mol_dyn", kw1)) // todo: how to set the options here? { setup * su = GetCurrentSetup(); static jobinfo_MolDyn ji; ji.prj = this; ji.md = moldyn_param(su); ji.md.Confirm(); ji.show_dialog = false; start_job_MolDyn(& ji); return; } if (!strcmp("random_search", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; cycles. char kw3[32]; istr >> kw3; // the 3rd keyword; optsteps. static jobinfo_RandomSearch ji; char ** endptr = NULL; ji.prj = this; ji.cycles = strtol(kw2, endptr, 10); ji.optsteps = strtol(kw3, endptr, 10); start_job_RandomSearch(& ji); return; } if (!strcmp("systematic_search", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; divisions. char kw3[32]; istr >> kw3; // the 3rd keyword; optsteps. char ** endptr = NULL; i32s divisions = strtol(kw2, endptr, 10); i32s optsteps = strtol(kw3, endptr, 10); DoSystematicSearch(divisions, optsteps, true); return; } if (!strcmp("montecarlo_search", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; n_init_steps. char kw3[32]; istr >> kw3; // the 3rd keyword; n_simul_steps. char kw4[32]; istr >> kw4; // the 4th keyword; optsteps. char ** endptr = NULL; i32s n_init_steps = strtol(kw2, endptr, 10); i32s n_simul_steps = strtol(kw3, endptr, 10); i32s optsteps = strtol(kw4, endptr, 10); DoMonteCarloSearch(n_init_steps, n_simul_steps, optsteps, true); return; } if (!strcmp("make_plot1", kw1)) { char kw2[32]; istr >> kw2; // A char kw3[32]; istr >> kw3; // B char kw4[32]; istr >> kw4; // C char kw5[32]; istr >> kw5; // D char kw6[32]; istr >> kw6; // div char kw7[32]; istr >> kw7; // start_ang char kw8[32]; istr >> kw8; // end_ang char kw9[32]; istr >> kw9; // optsteps char ** endptr = NULL; // show atom index 1,2,3,... to user ; it is 0,1,2,... internally! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ i32s ia = strtol(kw2, endptr, 10) - 1; i32s ib = strtol(kw3, endptr, 10) - 1; i32s ic = strtol(kw4, endptr, 10) - 1; i32s id = strtol(kw5, endptr, 10) - 1; i32s div1 = strtol(kw6, endptr, 10); fGL start1 = strtod(kw7, endptr); fGL end1 = strtod(kw8, endptr); i32s optsteps = strtol(kw9, endptr, 10); DoEnergyPlot1D(ia, ib, ic, id, div1, start1, end1, optsteps); return; } if (!strcmp("make_plot2", kw1)) { char kw2[32]; istr >> kw2; // A char kw3[32]; istr >> kw3; // B char kw4[32]; istr >> kw4; // C char kw5[32]; istr >> kw5; // D char kw6[32]; istr >> kw6; // div char kw7[32]; istr >> kw7; // start_ang char kw8[32]; istr >> kw8; // end_ang char kw9[32]; istr >> kw9; // I char kwA[32]; istr >> kwA; // J char kwB[32]; istr >> kwB; // K char kwC[32]; istr >> kwC; // L char kwD[32]; istr >> kwD; // div char kwE[32]; istr >> kwE; // start_ang char kwF[32]; istr >> kwF; // end_ang char kwG[32]; istr >> kwG; // optsteps char ** endptr = NULL; // show atom index 1,2,3,... to user ; it is 0,1,2,... internally! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ i32s ia = strtol(kw2, endptr, 10) - 1; i32s ib = strtol(kw3, endptr, 10) - 1; i32s ic = strtol(kw4, endptr, 10) - 1; i32s id = strtol(kw5, endptr, 10) - 1; i32s div1 = strtol(kw6, endptr, 10); fGL start1 = strtod(kw7, endptr); fGL end1 = strtod(kw8, endptr); i32s ii = strtol(kw9, endptr, 10) - 1; i32s ij = strtol(kwA, endptr, 10) - 1; i32s ik = strtol(kwB, endptr, 10) - 1; i32s il = strtol(kwC, endptr, 10) - 1; i32s div2 = strtol(kwD, endptr, 10); fGL start2 = strtod(kwE, endptr); fGL end2 = strtod(kwF, endptr); i32s optsteps = strtol(kwG, endptr, 10); DoEnergyPlot2D(ia, ib, ic, id, div1, start1, end1, ii, ij, ik, il, div2, start2, end2, optsteps); return; } if (!strcmp("population_analysis_ESP", kw1)) { setup1_qm * suqm = dynamic_cast(current_setup); if (suqm == NULL) Message(_("Sorry, this is for QM models only!")); else { pop_ana_electrostatic pa(suqm); pa.DoPopAna(); // how to set the charge labels on in graphics? } return; } if (!strcmp("transition_state_search", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; delta-E per step. char kw3[32]; istr >> kw3; // the 3rd keyword; initial force constant. char ** endptr = NULL; fGL deltae = strtod(kw2, endptr); fGL initfc = strtod(kw3, endptr); DoTransitionStateSearch(deltae, initfc); return; } if (!strcmp("stationary_state_search", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; steps. char ** endptr = NULL; i32s steps = strtol(kw2, endptr, 10); DoStationaryStateSearch(steps); return; } if (!strcmp("set_current_orbital", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; the orbital index. char ** endptr = NULL; int index = strtol(kw2, endptr, 10); if (index < 0) index = 0; qm_current_orbital = index; ostringstream strR; strR << _("The current orbital is now ") << qm_current_orbital << "." << endl << ends; PrintToLog(strR.str().c_str()); return; } if (!strcmp("update_chains", kw1)) { UpdateChains(); PrintToLog("update_chains done."); return; } if (!strcmp("build_amino", kw1)) { char kw2[4096]; istr >> kw2; // sequence char kw3[32]; istr >> kw3; // helix/sheet (optional) sb_chain_descriptor * sbcd = new sb_chain_descriptor(true); for (int n1 = 0;n1 < strlen(kw2);n1++) { sbcd->AddRes1(kw2[n1]); } // set only 3 torsions, and use defaults for the rest... if (kw3[0] == 'h' || kw3[0] == 'H') { sbcd->def_tor.push_back(313.0 * M_PI / 180.0); sbcd->def_tor.push_back(180.0 * M_PI / 180.0); sbcd->def_tor.push_back(302.0 * M_PI / 180.0); } else { sbcd->def_tor.push_back(180.0 * M_PI / 180.0); sbcd->def_tor.push_back(180.0 * M_PI / 180.0); sbcd->def_tor.push_back(180.0 * M_PI / 180.0); } model::amino_builder->Build(this, sbcd); delete sbcd; UpdateAllGraphicsViews(); ostringstream strR; strR << _("built a sequence : ") << kw2 << endl << ends; PrintToLog(strR.str().c_str()); return; } if (!strcmp("build_nucleic", kw1)) { char kw2[4096]; istr >> kw2; // sequence sb_chain_descriptor * sbcd = new sb_chain_descriptor(true); for (int n1 = 0;n1 < strlen(kw2);n1++) { sbcd->AddRes1(kw2[n1]); } // set all 10 torsions... sbcd->def_tor.push_back(261.0 * M_PI / 180.0); sbcd->def_tor.push_back(320.8 * M_PI / 180.0); sbcd->def_tor.push_back(208.6 * M_PI / 180.0); sbcd->def_tor.push_back(273.8 * M_PI / 180.0); sbcd->def_tor.push_back(105.6 * M_PI / 180.0); sbcd->def_tor.push_back(356.0 * M_PI / 180.0); sbcd->def_tor.push_back( 24.7 * M_PI / 180.0); sbcd->def_tor.push_back( 88.7 * M_PI / 180.0); sbcd->def_tor.push_back( 44.6 * M_PI / 180.0); sbcd->def_tor.push_back(264.6 * M_PI / 180.0); model::nucleic_builder->Build(this, sbcd); delete sbcd; UpdateAllGraphicsViews(); ostringstream strR; strR << _("built a sequence : ") << kw2 << endl << ends; PrintToLog(strR.str().c_str()); return; } if (!strcmp("orient", kw1)) { fGL maxdim[3]; CenterCRDSet(0, true); OrientCRDSet(0, true, maxdim); ostringstream strR; strR << _("maximum dimensions:") << endl << "X : " << maxdim[0] << endl; strR << "Y : " << maxdim[1] << endl << "Z : " << maxdim[2] << endl << ends; PrintToLog(strR.str().c_str()); UpdateAllGraphicsViews(); return; } if (!strcmp("solvate_box", kw1)) { char kw2[32]; istr >> kw2; // xdim char kw3[32]; istr >> kw3; // ydim char kw4[32]; istr >> kw4; // zdim char kw5[32] = ""; istr >> kw5; // density (optional) char kw6[256] = ""; istr >> kw6; // filename (optional) char kw7[64] = ""; istr >> kw7; // export (optional) char ** endptr = NULL; fGL xdim = strtod(kw2, endptr); fGL ydim = strtod(kw3, endptr); fGL zdim = strtod(kw4, endptr); fGL density = 1.00; if (strlen(kw5) > 0) density = strtod(kw5, endptr); char * export_fn = NULL; if (!strcmp(kw7, "export")) export_fn = kw6; dummy_project * solvent = NULL; if (strlen(kw6) > 0) { solvent = new dummy_project(); ostringstream fns; fns << kw6 << ".gpr" << ends; ifstream ifile(fns.str().c_str(), ios::in); ReadGPR(* solvent, ifile, false); ifile.close(); } SolvateBox(xdim, ydim, zdim, density, solvent, export_fn); UpdateAllGraphicsViews(); return; } if (!strcmp("solvate_sphere", kw1)) { char kw2[32]; istr >> kw2; // rad_solute char kw3[32]; istr >> kw3; // rad_solvent char kw4[32] = ""; istr >> kw4; // density (optional) char kw5[256] = ""; istr >> kw5; // filename (optional) char ** endptr = NULL; // note 2005-01-02 : the MS compiler (vc7) choked on this // when the variable names rad1 and rad2 were used. HUH?!?! fGL radius1 = strtod(kw2, endptr); fGL radius2 = strtod(kw3, endptr); fGL density = 1.00; // in kg/liter as usual... if (strlen(kw4) > 0) density = strtod(kw4, endptr); dummy_project * solvent = NULL; if (strlen(kw5) > 0) { solvent = new dummy_project(); ostringstream fns; fns << kw5 << ".gpr" << ends; ifstream ifile(fns.str().c_str(), ios::in); ReadGPR(* solvent, ifile, false); ifile.close(); } SolvateSphere(radius1, radius2, density, solvent); UpdateAllGraphicsViews(); return; } if (!strcmp("set_formal_charge", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; index. char kw3[32]; istr >> kw3; // the 3rd keyword; charge. char ** endptr = NULL; i32s index = strtol(kw2, endptr, 10); i32s charge = strtol(kw3, endptr, 10); if (!IsIndexClean()) UpdateIndex(); atom * atmr = NULL; for (iter_al it1 = GetAtomsBegin();it1 != GetAtomsEnd();it1++) { if ((* it1).index == index) { atmr = & (* it1); break; } } if (atmr != NULL) { atmr->formal_charge = charge; UpdateAllGraphicsViews(); // update the labels... } else { ostringstream strE; strE << _("Sorry, atom not found!") << endl << ends; PrintToLog(strE.str().c_str()); } return; } if (!strcmp("evaluate_Bfact", kw1)) { EvaluateBFact(); return; } if (!strcmp("evaluate_diffconst", kw1)) { char kw2[32]; istr >> kw2; // the 2nd keyword; dt. char ** endptr = NULL; fGL dt = strtod(kw2, endptr); EvaluateDiffConst(dt); return; } // if the command is not recognized above, we will print out an error message here. ostringstream strE; strE << _("ERROR : Unknown command : ") << command << endl; strE << _("The \"help\" command will give more information about command strings.") << endl; strE << ends; PrintToLog(strE.str().c_str()); } /*##############################################*/ /*##############################################*/ void project::DoDeleteCurrentObject(void) { if (selected_object != NULL) { bool test1 = base_app::GetAppB()->RemoveLight(selected_object); bool test2 = test1; if (!test1) test2 = RemoveObject(selected_object); if (test2) { selected_object = NULL; UpdateAllGraphicsViews(); } } } void project::DoSwitchLocalLights(ogl_camera * cam, bool report) { cam->use_local_lights = !cam->use_local_lights; if (report) cout << _("local lights = ") << (cam->use_local_lights ? _("on") : _("off")) << endl; base_app::GetAppB()->SetupLights(cam); UpdateGraphicsViews(cam); } void project::DoSwitchGlobalLights(ogl_camera * cam, bool report) { cam->use_global_lights = !cam->use_global_lights; if (report) cout << _("global lights = ") << (cam->use_global_lights ? _("on") : _("off")) << endl; base_app::GetAppB()->SetupLights(cam); UpdateGraphicsViews(cam); } fGL project::GetDefaultFocus(void) { return 2.0; } color_mode * project::GetDefaultColorMode(void) { return & project::cm_element; } void project::SelectAll(void) { if (selected_object != NULL) { selected_object = NULL; } iter_al it1 = atom_list.begin(); while (it1 != atom_list.end()) (* it1++).flags |= ATOMFLAG_USER_SELECTED; UpdateAllGraphicsViews(); } void project::InvertSelection(void) { if (selected_object != NULL) { selected_object = NULL; } iter_al it1 = atom_list.begin(); while (it1 != atom_list.end()) (* it1++).flags ^= ATOMFLAG_USER_SELECTED; UpdateAllGraphicsViews(); } void project::HideSelected(void) { iter_al it1 = atom_list.begin(); while (it1 != atom_list.end()) { if ((* it1).flags & ATOMFLAG_USER_SELECTED) { (* it1).flags |= ATOMFLAG_USER_HIDDEN; } it1++; } UpdateAllGraphicsViews(); } void project::ShowSelected(void) { iter_al it1 = atom_list.begin(); while (it1 != atom_list.end()) { if ((* it1).flags & ATOMFLAG_USER_SELECTED) { (* it1).flags &= (~ATOMFLAG_USER_HIDDEN); } it1++; } UpdateAllGraphicsViews(); } void project::LockSelected(void) { iter_al it1 = atom_list.begin(); while (it1 != atom_list.end()) { if ((* it1).flags & ATOMFLAG_USER_SELECTED) { (* it1).flags |= ATOMFLAG_USER_LOCKED; } it1++; } UpdateAllGraphicsViews(); } void project::UnlockSelected(void) { iter_al it1 = atom_list.begin(); while (it1 != atom_list.end()) { if ((* it1).flags & ATOMFLAG_USER_SELECTED) { (* it1).flags &= (~ATOMFLAG_USER_LOCKED); } it1++; } UpdateAllGraphicsViews(); } void project::DeleteSelected(void) { if (selected_object != NULL) { selected_object = NULL; // is this right??? memoryleak at least... } iter_al it1 = atom_list.begin(); while (it1 != atom_list.end()) { if ((* it1).flags & ATOMFLAG_USER_SELECTED) { RemoveAtom(it1); it1 = atom_list.begin(); // reset the search!!! } else it1++; } UpdateAllGraphicsViews(); } bool project::TestAtom(atom * ref, rmode rm) { if (ref->flags & (ATOMFLAG_IS_HIDDEN | ATOMFLAG_USER_HIDDEN)) return false; if (rm == Transform1 && (ref->flags & ATOMFLAG_USER_SELECTED)) return false; if (rm == Transform2 && !(ref->flags & ATOMFLAG_USER_SELECTED)) return false; return true; } bool project::TestBond(bond * ref, rmode rm) { if (ref->atmr[0]->flags & (ATOMFLAG_IS_HIDDEN | ATOMFLAG_USER_HIDDEN)) return false; if (ref->atmr[1]->flags & (ATOMFLAG_IS_HIDDEN | ATOMFLAG_USER_HIDDEN)) return false; if (rm == Transform1 && (ref->atmr[0]->flags & ATOMFLAG_USER_SELECTED)) return false; // no need to study the another... if (rm == Transform2 && !(ref->atmr[0]->flags & ATOMFLAG_USER_SELECTED)) return false; // ...atom due to the test below? bool test1 = (ref->atmr[0]->flags & ATOMFLAG_USER_SELECTED) ? true : false; bool test2 = (ref->atmr[1]->flags & ATOMFLAG_USER_SELECTED) ? true : false; if (rm != Normal && test1 != test2) return false; if (ref->do_not_render_TSS_fixmelater) return false; // temporary, for transition_state_search only... return true; } void project::SetColor(color_mode * cm, atom * ref, bool black_and_white) { fGL select_color[3] = { 1.0, 0.0, 1.0 }; fGL measure_color[3] = { 0.0, 1.0, 1.0 }; if (ref->flags & (ATOMFLAG_USER_SELECTED | ATOMFLAG_MEASURE_TOOL_SEL)) { fGL * color = select_color; if (ref->flags & ATOMFLAG_MEASURE_TOOL_SEL) color = measure_color; if (black_and_white) // if we have a red/blue stereo mode, average the colours to shades of gray! { fGL average = (color[0] + color[1] + color[2]) / 3.0; color[0] = color[1] = color[2] = average; } glColor3f(color[0], color[1], color[2]); } else { static fGL color[4]; cm->GetColor4(ref, -1, color); if (black_and_white) // if we have a red/blue stereo mode, average the colours to shades of gray! { fGL average = (color[0] + color[1] + color[2]) / 3.0; color[0] = color[1] = color[2] = average; } glColor3fv(color); } } void project::DrawCylinder1(const fGL ** crd, const fGL ** col, const fGL * rad) { fGL rsum = rad[0] + rad[1]; for (i32s n1 = 0;n1 < 2;n1++) { glColor3fv(col[n1]); v3d crt = v3d(crd[n1], crd[!n1]); fGL pol[3]; crt2pol(crt.data, pol); const int resolution = 10; GLUquadricObj * qo = gluNewQuadric(); gluQuadricDrawStyle(qo, (GLenum) GLU_FILL); glPushMatrix(); glTranslated(crd[n1][0], crd[n1][1], crd[n1][2]); glRotated(180.0 * pol[1] / M_PI, 0.0, 1.0, 0.0); glRotated(180.0 * pol[2] / M_PI, sin(-pol[1]), 0.0, cos(-pol[1])); fGL length = crt.len() * rad[n1] / rsum; gluCylinder(qo, 0.1*rad[n1], 0.1*rad[!n1], length, resolution, resolution / 2); glPopMatrix(); gluDeleteQuadric(qo); } } void project::Render(oglview_wcl * wcl, rmode rm) { const fGL label_color[3] = { 0.0, 1.0, 1.0 }; // looks bad but won't fade easily into other colours... bool accum = wcl->accumulate; if (rm != Normal) accum = false; //if (accum) { glClear(GL_ACCUM_BUFFER_BIT); UpdateAccumValues(); } //else if (rm != Transform2) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); if (use_boundary_potential && rm == Normal) { for (int loop = 0;loop < 2;loop++) { fGL radius; if (!loop) { glColor3f(0.5, 0.0, 0.5); radius = saved_boundary_potential_rad_solute; } else { glColor3f(1.0, 0.0, 1.0); radius = saved_boundary_potential_rad_solvent; } glPushMatrix(); glTranslated(0.0, 0.0, 0.0); // TODO : set the engine::bp_center[] here!!! glBegin(GL_LINES); fGL ang1 = 0.0; fGL ca1 = radius * cos(ang1); fGL sa1 = radius * sin(ang1); const i32s divisions = 12; for (i32s n1 = 0;n1 < divisions;n1++) { fGL ang2 = 2.0 * M_PI * ((fGL) (n1 + 1)) / (fGL) divisions; fGL ca2 = radius * cos(ang2); fGL sa2 = radius * sin(ang2); glVertex3f(ca1, sa1, 0.0); glVertex3f(ca2, sa2, 0.0); glVertex3f(ca1, 0.0, sa1); glVertex3f(ca2, 0.0, sa2); glVertex3f(0.0, ca1, sa1); glVertex3f(0.0, ca2, sa2); ang1 = ang2; ca1 = ca2; sa1 = sa2; } glEnd(); glPopMatrix(); } } if (use_periodic_boundary_conditions && rm == Normal) { glLineWidth(1.0); glColor3f(1.0, 0.0, 1.0); glBegin(GL_LINES); glVertex3f(-saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(-saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], -saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], -saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glVertex3f(+saved_periodic_box_HALFdim[0], +saved_periodic_box_HALFdim[1], +saved_periodic_box_HALFdim[2]); glEnd(); } if (wcl->enable_fog) glEnable(GL_FOG); i32s layers = 0; //if (use_periodic_boundary_conditions && rm == Normal) layers = 1; // un-comment this to render the periodic images... for (i32s r1 = -layers;r1 < (layers + 1);r1++) { for (i32s r2 = -layers;r2 < (layers + 1);r2++) { for (i32s r3 = -layers;r3 < (layers + 1);r3++) { glPushMatrix(); fGL trans1 = r1 * 2.0 * saved_periodic_box_HALFdim[0]; fGL trans2 = r2 * 2.0 * saved_periodic_box_HALFdim[1]; fGL trans3 = r3 * 2.0 * saved_periodic_box_HALFdim[2]; glTranslated(trans1, trans2, trans3); RenderOnce(wcl, rm, accum); glPopMatrix(); } } } if (accum) glAccum(GL_RETURN, 1.0); else if (rm != Transform2) RenderObjects(wcl); if (wcl->label == LABEL_INDEX) { // show atom index 1,2,3,... to user ; it is 0,1,2,... internally! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ i32s tmp1 = 1; glColor3f(label_color[0], label_color[1], label_color[2]); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if ((* it1).flags & ATOMFLAG_IS_HIDDEN) { tmp1++; continue; } ostringstream str; str << tmp1++ << ends; const fGL * cdata = (* it1).GetCRD(0); fGL x = cdata[0]; fGL y = cdata[1]; fGL z = cdata[2]; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } else if (wcl->label == LABEL_F_CHARGE) { glColor3f(label_color[0], label_color[1], label_color[2]); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if ((* it1).flags & ATOMFLAG_IS_HIDDEN) continue; ostringstream str; str.setf(ios::fixed | ios::showpos); str << (* it1).formal_charge << ends; const fGL * cdata = (* it1).GetCRD(0); fGL x = cdata[0]; fGL y = cdata[1]; fGL z = cdata[2]; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } else if (wcl->label == LABEL_P_CHARGE) { glColor3f(label_color[0], label_color[1], label_color[2]); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if ((* it1).flags & ATOMFLAG_IS_HIDDEN) continue; ostringstream str; str.setf(ios::fixed | ios::showpos); str.precision(4); str << (* it1).charge << ends; const fGL * cdata = (* it1).GetCRD(0); fGL x = cdata[0]; fGL y = cdata[1]; fGL z = cdata[2]; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } else if (wcl->label == LABEL_ELEMENT) { glColor3f(label_color[0], label_color[1], label_color[2]); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if ((* it1).flags & ATOMFLAG_IS_HIDDEN) continue; ostringstream str; str << (* it1).el.GetSymbol() << ends; const fGL * cdata = (* it1).GetCRD(0); fGL x = cdata[0]; fGL y = cdata[1]; fGL z = cdata[2]; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } else if (wcl->label == LABEL_BUILDER_ID) { glColor3f(label_color[0], label_color[1], label_color[2]); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if ((* it1).flags & ATOMFLAG_IS_HIDDEN) continue; ostringstream str; str << "0x" << hex << (* it1).builder_res_id << ends; const fGL * cdata = (* it1).GetCRD(0); fGL x = cdata[0]; fGL y = cdata[1]; fGL z = cdata[2]; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } else if (wcl->label == LABEL_ATOMTYPE) { glColor3f(label_color[0], label_color[1], label_color[2]); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if ((* it1).flags & ATOMFLAG_IS_HIDDEN) continue; ostringstream str; str << "0x" << hex << (* it1).atmtp << ends; // str << "0x" << hex << (* it1).atmtp_E << ends; // debug... // str << (* it1).atmtp_s << ends; // debug... /* if (!(* it1).atRS) str << "none" << ends; else { atomtype_mmRS * atmtp = (* it1).atRS; if (!atmtp) str << "0x" << hex << (* it1).atmtp << ends; for (int n1 = 0;n1 < atmtp->GetSize();n1++) { str << "0x" << hex << atmtp->GetAtomType(n1) << " (" << atmtp->GetWeight(n1) << ")" << endl; } str << ends; } */ const fGL * cdata = (* it1).GetCRD(0); fGL x = cdata[0]; fGL y = cdata[1]; fGL z = cdata[2]; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } else if (wcl->label == LABEL_BONDTYPE) { glColor3f(label_color[0], label_color[1], label_color[2]); for (iter_bl it1 = bond_list.begin();it1 != bond_list.end();it1++) { if ((* it1).atmr[0]->flags & ATOMFLAG_IS_HIDDEN) continue; if ((* it1).atmr[1]->flags & ATOMFLAG_IS_HIDDEN) continue; ostringstream str; str << (* it1).bt.GetSymbol1() << ends; const fGL * cd1 = (* it1).atmr[0]->GetCRD(0); const fGL * cd2 = (* it1).atmr[1]->GetCRD(0); fGL x = (cd1[0] + cd2[0]) / 2.0; fGL y = (cd1[1] + cd2[1]) / 2.0; fGL z = (cd1[2] + cd2[2]) / 2.0; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } else if (wcl->label == LABEL_RESIDUE) { if (ref_civ != NULL) { glColor3f(label_color[0], label_color[1], label_color[2]); vector & ci_vector = (* ref_civ); for (i32u chn = 0;chn < ci_vector.size();chn++) { iter_al range1[2]; GetRange(1, chn, range1); const char * tmp_seq1 = ci_vector[chn].GetSequence1(); for (i32s res = 0;res < ci_vector[chn].GetLength();res++) { iter_al range2[2]; GetRange(2, range1, res, range2); fGL rescrd[3] = { 0.0, 0.0, 0.0 }; i32s counter = 0; // SLOW because coordinates calculated on-the-fly!!! save them somewhere??? // SLOW because coordinates calculated on-the-fly!!! save them somewhere??? // SLOW because coordinates calculated on-the-fly!!! save them somewhere??? for (iter_al it1 = range2[0];it1 != range2[1];it1++) { const fGL * atmcrd = (* it1).GetCRD(0); rescrd[0] += atmcrd[0]; rescrd[1] += atmcrd[1]; rescrd[2] += atmcrd[2]; counter++; } fGL x = rescrd[0] / (fGL) counter; fGL y = rescrd[1] / (fGL) counter; fGL z = rescrd[2] / (fGL) counter; // show chn/res index 1,2,3,... to user ; it is 0,1,2,... internally! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ostringstream str; str << tmp_seq1[res] << " (" << (chn + 1) << "/" << (res + 1) << ")" << ends; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } } } else if (wcl->label == LABEL_SEC_STRUCT) { if (ref_civ != NULL) { glColor3f(label_color[0], label_color[1], label_color[2]); vector & ci_vector = (* ref_civ); for (i32u chn = 0;chn < ci_vector.size();chn++) { iter_al range1[2]; GetRange(1, chn, range1); const char * tmp_states = ci_vector[chn].GetSecStrStates(); for (i32s res = 0;res < ci_vector[chn].GetLength();res++) { iter_al range2[2]; GetRange(2, range1, res, range2); fGL rescrd[3] = { 0.0, 0.0, 0.0 }; i32s counter = 0; // SLOW because coordinates calculated on-the-fly!!! save them somewhere??? // SLOW because coordinates calculated on-the-fly!!! save them somewhere??? // SLOW because coordinates calculated on-the-fly!!! save them somewhere??? for (iter_al it1 = range2[0];it1 != range2[1];it1++) { const fGL * atmcrd = (* it1).GetCRD(0); rescrd[0] += atmcrd[0]; rescrd[1] += atmcrd[1]; rescrd[2] += atmcrd[2]; counter++; } fGL x = rescrd[0] / (fGL) counter; fGL y = rescrd[1] / (fGL) counter; fGL z = rescrd[2] / (fGL) counter; ostringstream str; str << tmp_states[res] << ends; wcl->ogl_WriteString3D(str.str().c_str(), x, y, z); } } } } if (wcl->enable_fog) glDisable(GL_FOG); // finally call this to handle transparency... // finally call this to handle transparency... // finally call this to handle transparency... base_app::GetAppB()->RenderAllTPs(wcl->GetCam()); } void project::RenderOnce(oglview_wcl * wcl, rmode rm, bool accum) { bool do_bw = (wcl->GetCam()->stereo_mode && !wcl->GetCam()->stereo_relaxed); for (i32u n1 = 0;n1 < cs_vector.size();n1++) { if (!GetCRDSetVisible(n1)) continue; if (accum) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // FIXME!!! if (wcl->render == RENDER_WIREFRAME) { glPointSize(3.0); glLineWidth(1.0); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) // wireframe atoms { if (!TestAtom(& (* it1), rm)) continue; glPushName(GLNAME_MD_TYPE1); glPushName((* it1).my_glname); glBegin(GL_POINTS); SetColor(wcl->colormode, & (* it1), do_bw); glVertex3fv((* it1).GetCRD(n1)); glEnd(); glPopName(); glPopName(); } glEnable(GL_LINE_STIPPLE); for (iter_bl it2 = bond_list.begin();it2 != bond_list.end();it2++) // wireframe bonds { if (!TestBond(& (* it2), rm)) continue; switch ((* it2).bt.GetSymbol1()) { case 'S': glLineStipple(1, 0xFFFF); break; case 'C': glLineStipple(1, 0x3FFF); break; case 'D': glLineStipple(1, 0x3F3F); break; case 'T': glLineStipple(1, 0x3333); break; } glBegin(GL_LINES); SetColor(wcl->colormode, (* it2).atmr[0], do_bw); glVertex3fv((* it2).atmr[0]->GetCRD(n1)); SetColor(wcl->colormode, (* it2).atmr[1], do_bw); glVertex3fv((* it2).atmr[1]->GetCRD(n1)); glEnd(); } glDisable(GL_LINE_STIPPLE); } if (wcl->render != RENDER_WIREFRAME && wcl->render != RENDER_NOTHING) { glEnable(GL_LIGHTING); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) // atoms as spheres { if (!TestAtom(& (* it1), rm)) continue; SetColor(wcl->colormode, & (* it1), do_bw); float rad = 0.0; int res = 0; switch (wcl->render) { case RENDER_BALL_AND_STICK: rad = 0.035; res = 12; break; case RENDER_VAN_DER_WAALS: rad = (* it1).vdwr; res = 22; break; case RENDER_CYLINDERS: rad = 0.035; res = 12; break; } glPushName(GLNAME_MD_TYPE1); glPushName((* it1).my_glname); GLUquadricObj * qo = gluNewQuadric(); gluQuadricDrawStyle(qo, (GLenum) GLU_FILL); glPushMatrix(); const fGL * cdata = (* it1).GetCRD(n1); glTranslated(cdata[0], cdata[1], cdata[2]); gluSphere(qo, rad, res, res / 2); glPopMatrix(); gluDeleteQuadric(qo); glPopName(); glPopName(); } glDisable(GL_LIGHTING); } if (wcl->render == RENDER_BALL_AND_STICK || wcl->render == RENDER_CYLINDERS) { glEnable(GL_LIGHTING); for (iter_bl it1 = bond_list.begin();it1 != bond_list.end();it1++) // bonds as cylinders { if (!TestBond(& (* it1), rm)) continue; fGL vdwr[2] = { (* it1).atmr[0]->vdwr, (* it1).atmr[1]->vdwr }; fGL vdwrsum = vdwr[0] + vdwr[1]; for (i32s n2 = 0;n2 < 2;n2++) { const fGL * crd1 = (* it1).atmr[n2]->GetCRD(n1); const fGL * crd2 = (* it1).atmr[!n2]->GetCRD(n1); v3d crt1 = v3d(crd1); v3d crt2 = v3d(crd2); v3d crt = crt2 - crt1; fGL pol[3]; crt2pol(crt.data, pol); SetColor(wcl->colormode, (* it1).atmr[n2], do_bw); float trans, rad = 0.0; int res = 0; switch (wcl->render) { case RENDER_BALL_AND_STICK: rad = 0.01; res = 6; break; case RENDER_CYLINDERS: rad = 0.035; res = 12; break; } glPushName(GLNAME_MD_TYPE1); glPushName((* it1).atmr[n2]->my_glname); GLUquadricObj * qo = gluNewQuadric(); gluQuadricDrawStyle(qo, (GLenum) GLU_FILL); glPushMatrix(); glTranslated(crd1[0], crd1[1], crd1[2]); glRotated(180.0 * pol[1] / M_PI, 0.0, 1.0, 0.0); glRotated(180.0 * pol[2] / M_PI, sin(-pol[1]), 0.0, cos(-pol[1])); // any chance to further define the orientation of, for example, double bonds??? // one more rotation would be needed. but what is the axis, and how much to rotate??? fGL length = crt.len() * vdwr[n2] / vdwrsum; if (wcl->render == RENDER_BALL_AND_STICK) switch ((* it1).bt.GetValue()) { case BONDTYPE_DOUBLE: trans = rad; rad = rad / 1.5; if (n2) glTranslated(0.0, trans, 0.0); else glTranslated(0.0, -trans, 0.0); gluCylinder(qo, rad, rad, length, res, 1); if (n2) glTranslated(0.0, -2.0 * trans, 0.0); else glTranslated(0.0, 2.0 * trans, 0.0); gluCylinder(qo, rad, rad, length, res, 1); break; case BONDTYPE_CNJGTD: trans = rad; rad = rad / 1.5; if (n2) glTranslated(0.0, trans, 0.0); else glTranslated(0.0, -trans, 0.0); gluCylinder(qo, rad, rad, length, res, 1); if (n2) glTranslated(0.0, -2.0 * trans, 0.0); else glTranslated(0.0, 2.0 * trans, 0.0); glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0x3F3F); gluQuadricDrawStyle(qo, (GLenum) GLU_LINE); gluCylinder(qo, rad, rad, length, res, 1); glDisable(GL_LINE_STIPPLE); break; case BONDTYPE_TRIPLE: trans = rad; rad = rad / 2.0; if (n2) glTranslated(0.0, trans, 0.0); else glTranslated(0.0, -trans, 0.0); gluCylinder(qo, rad, rad, length, res, 1); if (n2) glTranslated(0.0, -trans, 0.0); else glTranslated(0.0, trans, 0.0); gluCylinder(qo, rad, rad, length, res, 1); if (n2) glTranslated(0.0, -trans, 0.0); else glTranslated(0.0, trans, 0.0); gluCylinder(qo, rad, rad, length, res,1); break; default: gluCylinder(qo, rad, rad, length, res, 1); } else gluCylinder(qo, rad, rad, length, res, 1); glPopMatrix(); gluDeleteQuadric(qo); glPopName(); glPopName(); } } glDisable(GL_LIGHTING); } // render the additional stuff related to SF. // render the additional stuff related to SF. // render the additional stuff related to SF. setup1_sf * susf = dynamic_cast(current_setup); if (susf != NULL) { if (susf->mode == setup1_sf::modeP3) { for (i32u n2 = 0;n2 < susf->hi_vector.size();n2++) // helix constraints { glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0x3333); glBegin(GL_LINES); glColor3f(0.20, 1.00, 0.10); const int sz = susf->hi_vector[n2].ca_H_don.size(); if (sz != (int) susf->hi_vector[n2].ca_H_acc.size()) assertion_failed(__FILE__, __LINE__, "donHmc/accHmc mismatch"); for (i32u n3 = 0;n3 < sz;n3++) { const fGL * crd1 = susf->hi_vector[n2].ca_H_don[n3]->GetCRD(n1); const fGL * crd2 = susf->hi_vector[n2].ca_H_acc[n3]->GetCRD(n1); glVertex3fv(crd1); glVertex3fv(crd2); } glEnd(); glDisable(GL_LINE_STIPPLE); } for (i32u n2 = 0;n2 < susf->sp_vector.size();n2++) // strand constraints ; straight { glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0x3333); glBegin(GL_LINES); glColor3f(0.20, 1.00, 0.10); const int sz = susf->sp_vector[n2].ca_S_2x.size(); if (sz % 2 != 0) assertion_failed(__FILE__, __LINE__, "ca_S_2x has an odd size."); for (i32u n3 = 0;n3 < sz;n3 += 2) { const fGL * crd1 = susf->sp_vector[n2].ca_S_2x[n3 + 0]->GetCRD(n1); const fGL * crd2 = susf->sp_vector[n2].ca_S_2x[n3 + 1]->GetCRD(n1); glVertex3fv(crd1); glVertex3fv(crd2); } glEnd(); glDisable(GL_LINE_STIPPLE); } for (i32u n2 = 0;n2 < susf->sp_vector.size();n2++) // strand constraints ; crossed { glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0x3333); glBegin(GL_LINES); glColor3f(0.80, 1.00, 0.10); const int sz = susf->sp_vector[n2].cx_S_2x.size(); if (sz % 2 != 0) assertion_failed(__FILE__, __LINE__, "cx_S_2x has an odd size."); for (i32u n3 = 0;n3 < sz;n3 += 2) { const fGL * crd1 = susf->sp_vector[n2].cx_S_2x[n3 + 0]->GetCRD(n1); const fGL * crd2 = susf->sp_vector[n2].cx_S_2x[n3 + 1]->GetCRD(n1); glVertex3fv(crd1); glVertex3fv(crd2); } glEnd(); glDisable(GL_LINE_STIPPLE); } } else { for (i32u n2 = 0;n2 < susf->hi_vector.size();n2++) // helix constraints { glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0x3333); glBegin(GL_LINES); glColor3f(0.20, 1.00, 0.10); const int sz = susf->hi_vector[n2].mc_H_don.size(); if (sz != (int) susf->hi_vector[n2].mc_H_acc.size()) assertion_failed(__FILE__, __LINE__, "mc_H_don/mc_H_acc mismatch"); for (i32u n3 = 0;n3 < sz;n3++) { const fGL * crd1 = susf->hi_vector[n2].mc_H_don[n3]->GetCRD(n1); const fGL * crd2 = susf->hi_vector[n2].mc_H_acc[n3]->GetCRD(n1); glVertex3fv(crd1); glVertex3fv(crd2); } glEnd(); glDisable(GL_LINE_STIPPLE); } for (i32u n2 = 0;n2 < susf->sp_vector.size();n2++) // strand constraints { glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0x3333); glBegin(GL_LINES); glColor3f(0.20, 1.00, 0.10); const int sz = susf->sp_vector[n2].mc_S_don.size(); if (sz != (int) susf->sp_vector[n2].mc_S_acc.size()) assertion_failed(__FILE__, __LINE__, "mc_S_don/mc_S_acc mismatch"); for (i32u n3 = 0;n3 < sz;n3++) { const fGL * crd1 = susf->sp_vector[n2].mc_S_don[n3]->GetCRD(n1); const fGL * crd2 = susf->sp_vector[n2].mc_S_acc[n3]->GetCRD(n1); glVertex3fv(crd1); glVertex3fv(crd2); } glEnd(); glDisable(GL_LINE_STIPPLE); } } if (susf->mode != setup1_sf::modeUA) // the Px-specific rendering starts here... { for (i32u n2 = 0;n2 < susf->chn_vector.size();n2++) // protein chains... { if (susf->mode == setup1_sf::modeP3) { for (i32s n3 = 0;n3 < ((i32s) susf->chn_vector[n2].res_vector.size()) - 1;n3++) { i32s ind1[3] = { n2, n3 + 0, 0 }; i32s ind2[3] = { n2, n3 + 1, 0 }; const fGL * crd1 = susf->chn_vector[ind1[0]].res_vector[ind1[1]].GetRefA(ind1[2])->GetCRD(n1); const fGL * crd2 = susf->chn_vector[ind2[0]].res_vector[ind2[1]].GetRefA(ind2[2])->GetCRD(n1); const fGL * crd[2] = { crd1, crd2 }; fGL col1[4] = { 0.8, 0.8, 0.6, 1.0 }; // todo... fGL col2[4] = { 0.8, 0.8, 0.6, 1.0 }; // todo... const fGL * col[2] = { col1, col2 }; fGL rad[2] = { susf->chn_vector[ind1[0]].res_vector[ind1[1]].GetRefA(ind1[2])->vdwr, susf->chn_vector[ind2[0]].res_vector[ind2[1]].GetRefA(ind2[2])->vdwr }; if (wcl->render == RENDER_WIREFRAME) { glBegin(GL_LINES); glColor3fv(col1); glVertex3fv(crd1); glColor3fv(col2); glVertex3fv(crd2); glEnd(); } else if (wcl->render != RENDER_NOTHING) { glEnable(GL_LIGHTING); DrawCylinder1(crd, col, rad); glDisable(GL_LIGHTING); } } } for (i32u n3 = 0;n3 < susf->chn_vector[n2].res_vector.size();n3++) { const bool is_PRO = (susf->chn_vector[n2].res_vector[n3].GetSymbol() == 'P'); int n_sc_bonds = susf->chn_vector[n2].res_vector[n3].GetNumA() - 1; if (susf->mode == setup1_sf::modeP5) { n_sc_bonds -= 2; if (is_PRO) n_sc_bonds++; } for (i32s n4 = 0;n4 < n_sc_bonds;n4++) { i32s ind1[3] = { n2, n3, NOT_DEFINED }; i32s ind2[3] = { n2, n3, NOT_DEFINED }; if (susf->mode == setup1_sf::modeP3) { if (!n4) { ind1[2] = 0; ind2[2] = 1; } else { ind1[2] = 1; ind2[2] = 2; } } else { if (!n4) { ind1[2] = 1; ind2[2] = 3; } else { if (!is_PRO) { ind1[2] = 3; ind2[2] = 4; } else { ind1[2] = 3; ind2[2] = 0; } } } const fGL * crd1 = susf->chn_vector[ind1[0]].res_vector[ind1[1]].GetRefA(ind1[2])->GetCRD(n1); const fGL * crd2 = susf->chn_vector[ind2[0]].res_vector[ind2[1]].GetRefA(ind2[2])->GetCRD(n1); const fGL * crd[2] = { crd1, crd2 }; fGL col1[4] = { 0.6, 0.8, 0.8, 1.0 }; // todo... fGL col2[4] = { 0.6, 0.8, 0.8, 1.0 }; // todo... const fGL * col[2] = { col1, col2 }; fGL rad[2] = { susf->chn_vector[ind1[0]].res_vector[ind1[1]].GetRefA(ind1[2])->vdwr, susf->chn_vector[ind2[0]].res_vector[ind2[1]].GetRefA(ind2[2])->vdwr }; if (wcl->render == RENDER_WIREFRAME) { glBegin(GL_LINES); glColor3fv(col1); glVertex3fv(crd1); glColor3fv(col2); glVertex3fv(crd2); glEnd(); } else if (wcl->render != RENDER_NOTHING) { glEnable(GL_LIGHTING); DrawCylinder1(crd, col, rad); glDisable(GL_LIGHTING); } } } } /* for (i32s n2 = 0;n2 < (i32s) susf->dsb_vector.size();n2++) // disulphide bridges. { i32s ind1[3] = { susf->dsb_vector[n2].GetChn(0), susf->dsb_vector[n2].GetRes(0), 3 }; i32s ind2[3] = { susf->dsb_vector[n2].GetChn(1), susf->dsb_vector[n2].GetRes(1), 3 }; const fGL * crd1 = susf->chn_vector[ind1[0]].res_vector[ind1[1]].GetRefA(ind1[2])->GetCRD(n1); const fGL * crd2 = susf->chn_vector[ind2[0]].res_vector[ind2[1]].GetRefA(ind2[2])->GetCRD(n1); const fGL * crd[2] = { crd1, crd2 }; fGL col1[4] = { 1.0, 1.0, 0.0, 1.0 }; // todo... fGL col2[4] = { 1.0, 1.0, 0.0, 1.0 }; // todo... const fGL * col[2] = { col1, col2 }; fGL rad[2] = { susf->chn_vector[ind1[0]].res_vector[ind1[1]].GetRefA(ind1[2])->vdwr, susf->chn_vector[ind2[0]].res_vector[ind2[1]].GetRefA(ind2[2])->vdwr }; if (wcl->render == RENDER_WIREFRAME) { glBegin(GL_LINES); glColor3fv(col1); glVertex3fv(crd1); glColor3fv(col2); glVertex3fv(crd2); glEnd(); } else { glEnable(GL_LIGHTING); DrawCylinder1(crd, col, rad); glDisable(GL_LIGHTING); } } */ } } /*////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// glEnable(GL_LIGHTING); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, true); glBegin(GL_QUADS); // do not take the direction from any array, but calculate it using N/C/O??? for (iter_bl it1 = bond_list.begin();it1 != bond_list.end();it1++) // sf peptide dipoles... { if ((* it1).sf_pbdd < -1000.0) continue; //char symbol2 = chn_vector[n2].res_vector[n3 + 1].symbol; //if (symbol2 == 'P') continue; // skip all X-pro cases !!! atom * prev = NULL; atom * curr = (* it1).atmr[0]; atom * next = (* it1).atmr[1]; // WARNING!!! this is pretty slow!!! need to find the previous c-alpha. iter_cl it2; for (it2 = curr->cr_list.begin();it2 != curr->cr_list.end();it2++) { if ((* it2).atmr == next) continue; if ((* it2).atmr->el.GetAtomicNumber() > 0) continue; if ((* it2).atmr->sf_atmtp & 0xFF) continue; prev = (* it2).atmr; break; } if (!prev) continue; v3d v1(prev->GetCRD(n1), curr->GetCRD(n1)); v3d v2(curr->GetCRD(n1), next->GetCRD(n1)); v3d v3 = v1.vpr(v2); v3 = v3 * (0.075 / v3.len()); v3d v4 = v3.vpr(v2); v4 = v4 * (0.075 / v4.len()); fGL peptide = (* it1).sf_pbdd; // this is the same for all crd_sets!!! v3d v5 = (v3 * sin(peptide)) + (v4 * cos(peptide)); fGL peptnorm = peptide - M_PI / 2.0; v3d normal = (v3 * sin(peptnorm)) + (v4 * cos(peptnorm)); normal = normal / normal.len(); glNormal3fv(normal.data); v3d pvc(curr->GetCRD(n1)); v3d pv1 = pvc + (v2 * 0.5) + v5; v3d pv2 = pvc + (v2 * 0.90); v3d pv3 = pvc + (v2 * 0.5) - v5; v3d pv4 = pvc + (v2 * 0.10); glColor3f(1.0, 0.0, 0.0); glVertex3fv(pv1.data); glColor3f(0.0, 1.0, 0.0); glVertex3fv(pv2.data); glColor3f(0.0, 0.0, 1.0); glVertex3fv(pv3.data); glColor3f(0.0, 1.0, 0.0); glVertex3fv(pv4.data); } glEnd(); // GL_QUADS glDisable(GL_LIGHTING); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, false); //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////*/ if (accum) { RenderObjects(wcl); glAccum(GL_ACCUM, cs_vector[n1]->accum_value); } } } void project::RenderObjects(oglview_wcl * wcl) { base_app::GetAppB()->RenderLights(wcl->GetCam()); for (i32u n1 = 0;n1 < object_vector.size();n1++) { if (object_vector[n1]->transparent) continue; object_vector[n1]->Render(); } } void project::BeginClientTransformation(ogl_transformer * p1) { i32s sum = 0; p1->GetLD()->crd[0] = 0.0; p1->GetLD()->crd[1] = 0.0; p1->GetLD()->crd[2] = 0.0; for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if (!((* it1).flags & ATOMFLAG_USER_SELECTED)) continue; for (i32u n1 = 0;n1 < cs_vector.size();n1++) { sum++; const fGL * cdata = (* it1).GetCRD(n1); p1->GetLD()->crd[0] += cdata[0]; p1->GetLD()->crd[1] += cdata[1]; p1->GetLD()->crd[2] += cdata[2]; } } if (!sum) return; p1->GetLD()->crd[0] /= (fGL) sum; p1->GetLD()->crd[1] /= (fGL) sum; p1->GetLD()->crd[2] /= (fGL) sum; for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if (!((* it1).flags & ATOMFLAG_USER_SELECTED)) continue; for (i32u n1 = 0;n1 < cs_vector.size();n1++) { const fGL * cdata = (* it1).GetCRD(n1); fGL x = cdata[0] - p1->GetSafeLD()->crd[0]; fGL y = cdata[1] - p1->GetSafeLD()->crd[1]; fGL z = cdata[2] - p1->GetSafeLD()->crd[2]; (* it1).SetCRD(n1, x, y, z); } } } void project::EndClientTransformation(ogl_transformer * p1) { fGL matrix[16]; p1->GetMatrix(matrix); for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { if (!((* it1).flags & ATOMFLAG_USER_SELECTED)) continue; for (i32u n1 = 0;n1 < cs_vector.size();n1++) { oglv3d posv = oglv3d((* it1).GetCRD(n1)); TransformVector(posv, matrix); (* it1).SetCRD(n1, posv[0], posv[1], posv[2]); } } UpdateAllGraphicsViews(); // re-draw the bonds across selection boundary!!! } void project::DrawEvent(oglview_wcl * oglwcl, vector & names) { if (mouseinfo::button == mouseinfo::bRight) return; // the right button is for popup menus... if (project::background_job_running) return; // protect the model-data during background jobs... i32s mouse[2] = { mouseinfo::latest_x, mouseinfo::latest_y }; if (mouseinfo::state == mouseinfo::sDown) { if (names.size() > 1 && names[0] == GLNAME_MD_TYPE1) { draw_data[0] = (atom *) base_app::GetAppB()->FindPtrByGLName(names[1]); } else { fGL tmp1[3]; oglwcl->GetCRD(mouse, tmp1); atom newatom(element::current_element, tmp1, cs_vector.size()); AddAtom_lg(newatom); draw_data[0] = & atom_list.back(); } } else { if (names.size() > 1 && names[0] == GLNAME_MD_TYPE1) { draw_data[1] = (atom *) base_app::GetAppB()->FindPtrByGLName(names[1]); } else { fGL tmp1[3]; oglwcl->GetCRD(mouse, tmp1); atom newatom(element::current_element, tmp1, cs_vector.size()); AddAtom_lg(newatom); draw_data[1] = & atom_list.back(); } // if different: update bondtype or add a new bond. // if not different: change atom to different element. if (draw_data[0] != draw_data[1]) { bond newbond(draw_data[0], draw_data[1], bondtype::current_bondtype); iter_bl it1 = find(bond_list.begin(), bond_list.end(), newbond); if (it1 != bond_list.end()) { SystemWasModified(); (* it1).bt = bondtype::current_bondtype; custom_app::GetAppC()->BondUpdateItem(& (* it1)); } else AddBond(newbond); } else { SystemWasModified(); draw_data[0]->el = element::current_element; draw_data[0]->mass = element::current_element.GetAtomicMass(); // also need to update these... draw_data[0]->vdwr = element::current_element.GetVDWRadius(); // also need to update these... custom_app::GetAppC()->AtomUpdateItem(draw_data[0]); } UpdateAllGraphicsViews(); } } void project::EraseEvent(oglview_wcl * oglwcl, vector & names) { if (mouseinfo::button == mouseinfo::bRight) return; // the right button is for popup menus... if (project::background_job_running) return; // protect the model-data during background jobs... if (mouseinfo::state == mouseinfo::sDown) { if (names.size() > 1 && names[0] == GLNAME_MD_TYPE1) { draw_data[0] = (atom *) base_app::GetAppB()->FindPtrByGLName(names[1]); } else { draw_data[0] = NULL; } } else { if (names.size() > 1 && names[0] == GLNAME_MD_TYPE1) { draw_data[1] = (atom *) base_app::GetAppB()->FindPtrByGLName(names[1]); } else { draw_data[1] = NULL; } if (!draw_data[0] || !draw_data[1]) return; // if different: try to find and remove a bond ; may or may not succeed. // if not different: try to find and remove an atom ; SHOULD ALWAYS SUCCEED! if (draw_data[0] != draw_data[1]) { bond tmpbond(draw_data[0], draw_data[1], bondtype::current_bondtype); iter_bl it1 = find(bond_list.begin(), bond_list.end(), tmpbond); if (it1 != bond_list.end()) RemoveBond(it1); else return; } else { iter_al it1 = find(atom_list.begin(), atom_list.end(), (* draw_data[0])); if (it1 != atom_list.end()) { RemoveAtom(it1); // removing an atom will cause changes in atom indexing -> must update all atoms and bonds in pv!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ for (iter_al it1 = atom_list.begin();it1 != atom_list.end();it1++) { custom_app::GetAppC()->AtomUpdateItem(& (* it1)); } for (iter_bl it1 = bond_list.begin();it1 != bond_list.end();it1++) { custom_app::GetAppC()->BondUpdateItem(& (* it1)); } } else { assertion_failed(__FILE__, __LINE__, "atom not found."); } } UpdateAllGraphicsViews(); } } void project::SelectEvent(oglview_wcl *, vector & names) { if (project::background_job_running) return; // protect the model-data during background jobs... if (names[0] == GLNAME_MD_TYPE1) { atom * ref = (atom *) base_app::GetAppB()->FindPtrByGLName(names[1]); bool selected = (ref->flags & ATOMFLAG_USER_SELECTED); if (custom_app::GetCurrentSelectMode() == custom_app::smResidue || custom_app::GetCurrentSelectMode() == custom_app::smChain) { if (ref_civ == NULL) { ostringstream str; str << _("Group information about chains/residues is needed for this operation.") << endl; str << _("Is it OK to update group information?") << ends; bool update = Question(str.str().c_str()); if (!update) return; UpdateChains(); } bool no_info = false; if (ref->id[1] == NOT_DEFINED) no_info = true; if (custom_app::GetCurrentSelectMode() == custom_app::smResidue && ref->id[2] == NOT_DEFINED) no_info = true; if (no_info) { Message(_("Sorry, no chain/residue information available for this atom.")); return; } } if (custom_app::GetCurrentSelectMode() == custom_app::smMolecule) { if (!IsGroupsClean()) UpdateGroups(); } iter_al it1; iter_al range1[2]; iter_al range2[2]; if (selected) cout << "de"; switch (custom_app::GetCurrentSelectMode()) { case custom_app::smAtom: ref->flags ^= ATOMFLAG_USER_SELECTED; cout << _("selected atom ") << ref->index << _(" (atomtype = ") << hex << ref->atmtp << dec << ")." << endl; break; case custom_app::smResidue: GetRange(1, ref->id[1], range1); // get the chain!!! GetRange(2, range1, ref->id[2], range2); // get the residue!!! for (it1 = range2[0];it1 != range2[1];it1++) { if (selected) (* it1).flags &= (~ATOMFLAG_USER_SELECTED); else (* it1).flags |= (ATOMFLAG_USER_SELECTED); } cout << _("selected residue ") << ref->id[2] << _(" from chain ") << ref->id[1] << "." << endl; break; case custom_app::smChain: GetRange(1, ref->id[1], range1); // get the chain!!! for (it1 = range1[0];it1 != range1[1];it1++) { if (selected) (* it1).flags &= (~ATOMFLAG_USER_SELECTED); else (* it1).flags |= (ATOMFLAG_USER_SELECTED); } cout << _("selected chain ") << ref->id[1] << "." << endl; break; case custom_app::smMolecule: if (IsGroupsSorted()) // if atom_list is sorted, a quicker method based on model::GetRange() is used. { GetRange(0, ref->id[0], range1); // get the molecule!!! for (it1 = range1[0];it1 != range1[1];it1++) { if (selected) (* it1).flags &= (~ATOMFLAG_USER_SELECTED); else (* it1).flags |= (ATOMFLAG_USER_SELECTED); } } else { for (it1 = GetAtomsBegin();it1 != GetAtomsEnd();it1++) { if ((* it1).id[0] != ref->id[0]) continue; if (selected) (* it1).flags &= (~ATOMFLAG_USER_SELECTED); else (* it1).flags |= (ATOMFLAG_USER_SELECTED); } } cout << _("selected molecule ") << ref->id[0] << "." << endl; break; } UpdateAllGraphicsViews(); } } void project::MeasureEvent(oglview_wcl *, vector & names) { if (project::background_job_running) return; // protect the model-data during background jobs... ostringstream str1; // PLEASE NOTE!!! we use always the 1st coordinate set here... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // we can be sure that "ref" is always up-to-date but the stored pointers // mt_a1/2/3 can be invalid ; so check them before use. reset if problems. if (names[0] == GLNAME_MD_TYPE1) { atom * ref = (atom *) base_app::GetAppB()->FindPtrByGLName(names[1]); ref->flags ^= ATOMFLAG_MEASURE_TOOL_SEL; UpdateAllGraphicsViews(); if (mt_a1 == NULL) { mt_a1 = ref; // this must be OK. str1 << _("charge: ") << ref->charge << endl << ends; PrintToLog(str1.str().c_str()); } else if (mt_a1 != NULL && mt_a2 == NULL) { if (mt_a1 == ref) { mt_a1->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a1 = NULL; return; } mt_a2 = ref; // this must be OK. iter_al itX; for (itX = atom_list.begin();itX != atom_list.end();itX++) if (& (* itX) == mt_a1) break; if (itX == atom_list.end()) goto reset_all; const fGL * p1 = mt_a1->GetCRD(0); const fGL * p2 = mt_a2->GetCRD(0); v3d v1(p1, p2); fGL len = v1.len(); str1 << _("distance: ") << len << " nm" << endl << ends; PrintToLog(str1.str().c_str()); } else if (mt_a1 != NULL && mt_a2 != NULL && mt_a3 == NULL) { if (mt_a1 == ref) { mt_a1->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a1 = mt_a2; mt_a2 = NULL; return; } else if (mt_a2 == ref) { mt_a2->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a2 = NULL; return; } mt_a3 = ref; // this must be OK. iter_al itX; for (itX = atom_list.begin();itX != atom_list.end();itX++) if (& (* itX) == mt_a1) break; if (itX == atom_list.end()) goto reset_all; for (itX = atom_list.begin();itX != atom_list.end();itX++) if (& (* itX) == mt_a2) break; if (itX == atom_list.end()) goto reset_all; const fGL * p1 = mt_a1->GetCRD(0); const fGL * p2 = mt_a2->GetCRD(0); const fGL * p3 = mt_a3->GetCRD(0); v3d v1(p2, p1); v3d v2(p2, p3); fGL ang = v1.ang(v2) * 180.0 / M_PI; str1 << _("angle: ") << ang << _(" deg") << endl << ends; PrintToLog(str1.str().c_str()); } else { if (mt_a1 == ref) { mt_a1->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a1 = mt_a2; mt_a2 = mt_a3; mt_a3 = NULL; return; } else if (mt_a2 == ref) { mt_a2->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a2 = mt_a3; mt_a3 = NULL; return; } else if (mt_a3 == ref) { mt_a3->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a3 = NULL; return; } const fGL * p1 = mt_a1->GetCRD(0); const fGL * p2 = mt_a2->GetCRD(0); const fGL * p3 = mt_a3->GetCRD(0); const fGL * p4 = ref->GetCRD(0); v3d v1(p2, p1); v3d v2(p2, p3); v3d v3(p3, p4); fGL tor = v1.tor(v2, v3) * 180.0 / M_PI; str1 << _("torsion: ") << tor << _(" deg ") << endl << ends; PrintToLog(str1.str().c_str()); mt_a1->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a2->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); mt_a3->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); ref->flags &= (~ATOMFLAG_MEASURE_TOOL_SEL); goto reset_all; } return; } reset_all: mt_a1 = mt_a2 = mt_a3 = NULL; UpdateAllGraphicsViews(); } void project::DoFormula(void) { int i; double molweight = 0.0; ostringstream str; int count[ELEMENT_SYMBOLS]; // These are the atomic numbers of the elements in alphabetical order. const int alphabetical[ELEMENT_SYMBOLS] = { 89, 47, 13, 95, 18, 33, 85, 79, 5, 56, 4, 107, 83, 97, 35, 6, 20, 48, 58, 98, 17, 96, 27, 24, 55, 29, 105, 66, 68, 99, 63, 9, 26, 100, 87, 31, 64, 32, 1, 2, 72, 80, 67, 108, 53, 49, 77, 19, 36, 57, 3, 103, 71, 101, 12, 25, 42, 109, 7, 11, 41, 60, 10, 28, 102, 93, 8, 76, 15, 91, 82, 46, 61, 84, 59, 78, 94, 88, 37, 75, 104, 45, 86, 44, 16, 51, 21, 34, 106, 14, 62, 50, 38, 73, 65, 43, 52, 90, 22, 81, 69, 92, 110, 23, 74, 54, 39, 70, 30, 40 }; int index; for (i = 0;i < ELEMENT_SYMBOLS;i++) { count[i] = 0; } iter_al it2 = atom_list.begin(); while (it2 != atom_list.end()) { iter_al it3 = it2++; count[(* it3).el.GetAtomicNumber() - 1]++; molweight += (* it3).mass; } for (i = 0;i < ELEMENT_SYMBOLS;i++) { index = alphabetical[i] - 1; if (count[index] > 1) { str << (element(index + 1)).GetSymbol() << count[index] << " "; } else if (count[index] == 1) { str << (element(index + 1)).GetSymbol(); } } str << endl; str << _("MW: ") << molweight << ends; Message(str.str().c_str()); } void project::DoEnergyPlot1D(i32s inda, i32s indb, i32s indc, i32s indd, i32s div1, fGL start1, fGL end1, i32s optsteps) { // 2003-11-17 : for IC modification and structure // refinement, make a temporary molecular mechanics model. // 2007-01-15 : also make SF setups work (for debugging purposes). setup * tmpsu = GetCurrentSetup(); setup1_mm * tmpsuMM = dynamic_cast(tmpsu); setup1_sf * tmpsuSF = dynamic_cast(tmpsu); // if current setup is not a QM one, get the eng class... i32s curr_eng_index = 0; if (tmpsuMM != NULL) curr_eng_index = GetCurrentSetup()->GetCurrEngIndex(); if (tmpsuSF != NULL) curr_eng_index = GetCurrentSetup()->GetCurrEngIndex(); model * tmpmdl = new model(); // the default setup here will be molecular mechanics! vector av; vector av_tmp; for (iter_al it1 = GetAtomsBegin();it1 != GetAtomsEnd();it1++) { atom newatm((* it1).el, (* it1).GetCRD(0), tmpmdl->GetCRDSetCount()); tmpmdl->AddAtom_lg(newatm); av.push_back(& (* it1)); av_tmp.push_back(& tmpmdl->GetLastAtom()); } for (iter_bl it1 = GetBondsBegin();it1 != GetBondsEnd();it1++) { i32u ind1 = 0; while (ind1 < av.size() && av[ind1] != (* it1).atmr[0]) ind1++; if (ind1 == av.size()) assertion_failed(__FILE__, __LINE__, "atom #1 not found."); i32u ind2 = 0; while (ind2 < av.size() && av[ind2] != (* it1).atmr[1]) ind2++; if (ind2 == av.size()) assertion_failed(__FILE__, __LINE__, "atom #2 not found."); bond newbnd(av_tmp[ind1], av_tmp[ind2], (* it1).bt); tmpmdl->AddBond(newbnd); } if (tmpsuSF != NULL) { // this is for SF only ; CHECK THIS ; MIGHT BE OBSOLETE... tmpmdl->ReplaceCurrentSetup(new setup1_sf(tmpmdl, tmpsuSF->mode, false)); } engine * tmpeng = tmpmdl->GetCurrentSetup()->CreateEngineByIndex(curr_eng_index); // the temporary model is now ok, continue... engine * eng = GetCurrentSetup()->GetCurrentEngine(); if (!eng) eng = GetCurrentSetup()->CreateEngineByIndex(GetCurrentSetup()->GetCurrEngIndex()); i32s molnum = 0; i32s in_crdset = 0; i32s atmi1[4] = { inda, indb, indc, indd }; atom * atmr1[4]; f64 range1[2]; range1[0] = M_PI * start1 / 180.0; range1[1] = M_PI * end1 / 180.0; for (i32s n1 = 0;n1 < 4;n1++) { iter_al it1; it1 = tmpmdl->FindAtomByIndex(atmi1[n1]); if (it1 == tmpmdl->GetAtomsEnd()) { ostringstream strE; strE << _("ERROR : atom ") << (n1 + 1) << _(" not found!") << ends; PrintToLog(strE.str().c_str()); return; } atmr1[n1] = & (* it1); } // must call SortGroups() here because intcrd needs it ; however that might change the indices?!?!?! note that we convert to pointers above... // must call SortGroups() here because intcrd needs it ; however that might change the indices?!?!?! note that we convert to pointers above... // must call SortGroups() here because intcrd needs it ; however that might change the indices?!?!?! note that we convert to pointers above... if (!tmpmdl->IsGroupsClean()) tmpmdl->UpdateGroups(); // for internal coordinates... if (!tmpmdl->IsGroupsSorted()) tmpmdl->SortGroups(); // for internal coordinates... intcrd * tmpic = new intcrd((* tmpmdl), molnum, in_crdset); i32s ict1 = tmpic->FindTorsion(atmr1[1], atmr1[2]); if (ict1 < 0 && tmpsuSF == NULL) { PrintToLog(_("ERROR : could not find ic.\n")); return; } if (tmpsuSF != NULL) { // this is for SF only... CopyCRD(tmpmdl, tmpeng, 0); } v3d v1a(atmr1[1]->GetCRD(in_crdset), atmr1[0]->GetCRD(in_crdset)); v3d v1b(atmr1[1]->GetCRD(in_crdset), atmr1[2]->GetCRD(in_crdset)); v3d v1c(atmr1[2]->GetCRD(in_crdset), atmr1[3]->GetCRD(in_crdset)); f64 oldt1 = v1a.tor(v1b, v1c); bool success = tmpeng->SetTorsionConstraint(atmr1[0], atmr1[1], atmr1[2], atmr1[3], oldt1, 10.0, false); if (!success) { PrintToLog(_("ERROR : could not find tor-term.\n")); return; } const char * s1 = _("tor(deg)"); const char * sv = _("E(kJ/mol)"); p1dview_wcl * plot = AddPlot1DClient(s1, sv, true); f64 tor1 = range1[0]; for (i32s s1 = 0;s1 < (div1 + 1);s1++) { if (ict1 < 0) { // this is for SF only... tmpeng->SetTorsionConstraint(atmr1[0], atmr1[1], atmr1[2], atmr1[3], tor1, 5000.0, true); } else { tmpic->SetTorsion(ict1, tor1 - oldt1); tmpic->UpdateCartesian(); CopyCRD(tmpmdl, tmpeng, 0); // lock_local_structure needs coordinates!!! tmpeng->SetTorsionConstraint(atmr1[0], atmr1[1], atmr1[2], atmr1[3], tor1, 5000.0, true); } // optimize... geomopt * opt = new geomopt(tmpeng, 100, 0.025, 10.0); // optimal settings?!?!? for (i32s n1 = 0;n1 < optsteps;n1++) { opt->TakeCGStep(conjugate_gradient::Newton2An); if (!(n1 % 50)) cout << n1 << " " << opt->optval << " " << opt->optstp << endl; } CopyCRD(tmpeng, tmpmdl, 0); tmpmdl->CenterCRDSet(0, true); delete opt; for (i32u n1 = 0;n1 < av_tmp.size();n1++) { const fGL * tmpcrd = av_tmp[n1]->GetCRD(0); av[n1]->SetCRD(0, tmpcrd[0], tmpcrd[1], tmpcrd[2]); } // compute energy for final structure... f64 value; CopyCRD(this, eng, 0); eng->Compute(0); value = eng->GetEnergy(); // ...and add it to the plot. plot->AddDataWithAC(180.0 * tor1 / M_PI, value, eng); ostringstream str1; str1 << _("tor = ") << (180.0 * tor1 / M_PI) << _(" deg, energy = ") << value << _(" kJ/mol.") << endl << ends; PrintToLog(str1.str().c_str()); tor1 += (range1[1] - range1[0]) / (f64) div1; } delete tmpic; delete tmpeng; delete tmpmdl; // the "eng" object is the setup->current_eng object, so there's no need to delete it... plot->Finalize(); plot->GetWnd()->RequestUpdate(false); } void project::DoEnergyPlot2D(i32s inda, i32s indb, i32s indc, i32s indd, i32s div1, fGL start1, fGL end1, i32s indi, i32s indj, i32s indk, i32s indl, i32s div2, fGL start2, fGL end2, i32s optsteps) { // 2003-11-17 : for IC modification and structure // refinement, make a temporary molecular mechanics model. // 2007-01-15 : also make SF setups work (for debugging purposes). setup * tmpsu = GetCurrentSetup(); setup1_mm * tmpsuMM = dynamic_cast(tmpsu); setup1_sf * tmpsuSF = dynamic_cast(tmpsu); // if current setup is not a QM one, get the eng class... i32s curr_eng_index = 0; if (tmpsuMM != NULL) curr_eng_index = GetCurrentSetup()->GetCurrEngIndex(); if (tmpsuSF != NULL) curr_eng_index = GetCurrentSetup()->GetCurrEngIndex(); model * tmpmdl = new model(); // the default setup here will be molecular mechanics! vector av; vector av_tmp; for (iter_al it1 = GetAtomsBegin();it1 != GetAtomsEnd();it1++) { atom newatm((* it1).el, (* it1).GetCRD(0), tmpmdl->GetCRDSetCount()); tmpmdl->AddAtom_lg(newatm); av.push_back(& (* it1)); av_tmp.push_back(& tmpmdl->GetLastAtom()); } for (iter_bl it1 = GetBondsBegin();it1 != GetBondsEnd();it1++) { i32u ind1 = 0; while (ind1 < av.size() && av[ind1] != (* it1).atmr[0]) ind1++; if (ind1 == av.size()) assertion_failed(__FILE__, __LINE__, "atom #1 not found."); i32u ind2 = 0; while (ind2 < av.size() && av[ind2] != (* it1).atmr[1]) ind2++; if (ind2 == av.size()) assertion_failed(__FILE__, __LINE__, "atom #2 not found."); bond newbnd(av_tmp[ind1], av_tmp[ind2], (* it1).bt); tmpmdl->AddBond(newbnd); } if (tmpsuSF != NULL) { // this is for SF only ; CHECK THIS ; MIGHT BE OBSOLETE... tmpmdl->ReplaceCurrentSetup(new setup1_sf(tmpmdl, tmpsuSF->mode, false)); } engine * tmpeng = tmpmdl->GetCurrentSetup()->CreateEngineByIndex(curr_eng_index); // the temporary model is now ok, continue... engine * eng = GetCurrentSetup()->GetCurrentEngine(); if (!eng) eng = GetCurrentSetup()->CreateEngineByIndex(GetCurrentSetup()->GetCurrEngIndex()); i32s molnum = 0; i32s in_crdset = 0; i32s atmi1[4] = { inda, indb, indc, indd }; atom * atmr1[4]; f64 range1[2]; range1[0] = M_PI * start1 / 180.0; range1[1] = M_PI * end1 / 180.0; i32s atmi2[4] = { indi, indj, indk, indl }; atom * atmr2[4]; f64 range2[2]; range2[0] = M_PI * start2 / 180.0; range2[1] = M_PI * end2 / 180.0; for (i32s n1 = 0;n1 < 4;n1++) { iter_al it1; it1 = tmpmdl->FindAtomByIndex(atmi1[n1]); if (it1 == tmpmdl->GetAtomsEnd()) { ostringstream strE; strE << _("ERROR : tor1 atom ") << (n1 + 1) << _(" not found!") << endl << ends; PrintToLog(strE.str().c_str()); return; } atmr1[n1] = & (* it1); it1 = tmpmdl->FindAtomByIndex(atmi2[n1]); if (it1 == tmpmdl->GetAtomsEnd()) { ostringstream strE; strE << _("ERROR : tor2 atom ") << (n1 + 1) << _(" not found!") << endl << ends; PrintToLog(strE.str().c_str()); return; } atmr2[n1] = & (* it1); } // must call SortGroups() here because intcrd needs it ; however that might change the indices?!?!?! note that we convert to pointers above... // must call SortGroups() here because intcrd needs it ; however that might change the indices?!?!?! note that we convert to pointers above... // must call SortGroups() here because intcrd needs it ; however that might change the indices?!?!?! note that we convert to pointers above... if (!tmpmdl->IsGroupsClean()) tmpmdl->UpdateGroups(); // for internal coordinates... if (!tmpmdl->IsGroupsSorted()) tmpmdl->SortGroups(); // for internal coordinates... intcrd * tmpic = new intcrd((* tmpmdl), molnum, in_crdset); i32s ict1 = tmpic->FindTorsion(atmr1[1], atmr1[2]); if (ict1 < 0 && tmpsuSF == NULL) { PrintToLog(_("ERROR : could not find ic for tor1.\n")); return; } i32s ict2 = tmpic->FindTorsion(atmr2[1], atmr2[2]); if (ict2 < 0 && tmpsuSF == NULL) { PrintToLog(_("ERROR : could not find ic for tor2.\n")); return; } if (tmpsuSF != NULL) { // this is for SF only... CopyCRD(tmpmdl, tmpeng, 0); } v3d v1a(atmr1[1]->GetCRD(in_crdset), atmr1[0]->GetCRD(in_crdset)); v3d v1b(atmr1[1]->GetCRD(in_crdset), atmr1[2]->GetCRD(in_crdset)); v3d v1c(atmr1[2]->GetCRD(in_crdset), atmr1[3]->GetCRD(in_crdset)); f64 oldt1 = v1a.tor(v1b, v1c); v3d v2a(atmr2[1]->GetCRD(in_crdset), atmr2[0]->GetCRD(in_crdset)); v3d v2b(atmr2[1]->GetCRD(in_crdset), atmr2[2]->GetCRD(in_crdset)); v3d v2c(atmr2[2]->GetCRD(in_crdset), atmr2[3]->GetCRD(in_crdset)); f64 oldt2 = v2a.tor(v2b, v2c); bool success1 = tmpeng->SetTorsionConstraint(atmr1[0], atmr1[1], atmr1[2], atmr1[3], oldt1, 10.0, false); if (!success1) { PrintToLog(_("ERROR : could not find tor-term for tor1.\n")); return; } bool success2 = tmpeng->SetTorsionConstraint(atmr2[0], atmr2[1], atmr2[2], atmr2[3], oldt2, 10.0, false); if (!success2) { PrintToLog(_("ERROR : could not find tor-term for tor2.\n")); return; } const char * s1 = _("tor1(deg)"); const char * s2 = _("tor2(deg)"); const char * sv = _("E(kJ/mol)"); p2dview_wcl * plot = AddPlot2DClient(s1, s2, sv, true); f64 tor1 = range1[0]; for (i32s s1 = 0;s1 < (div1 + 1);s1++) { f64 tor2 = range2[0]; for (i32s s2 = 0;s2 < (div2 + 1);s2++) { if (ict1 < 0 || ict2 < 0) { // this is for SF only... tmpeng->SetTorsionConstraint(atmr1[0], atmr1[1], atmr1[2], atmr1[3], tor1, 5000.0, true); tmpeng->SetTorsionConstraint(atmr2[0], atmr2[1], atmr2[2], atmr2[3], tor2, 5000.0, true); } else { tmpic->SetTorsion(ict1, tor1 - oldt1); tmpic->SetTorsion(ict2, tor2 - oldt2); tmpic->UpdateCartesian(); CopyCRD(tmpmdl, tmpeng, 0); // lock_local_structure needs coordinates!!! tmpeng->SetTorsionConstraint(atmr1[0], atmr1[1], atmr1[2], atmr1[3], tor1, 5000.0, true); tmpeng->SetTorsionConstraint(atmr2[0], atmr2[1], atmr2[2], atmr2[3], tor2, 5000.0, true); } // optimize... geomopt * opt = new geomopt(tmpeng, 100, 0.025, 10.0); // optimal settings?!?!? for (i32s n1 = 0;n1 < optsteps;n1++) { opt->TakeCGStep(conjugate_gradient::Newton2An); if (!(n1 % 50)) cout << n1 << " " << opt->optval << " " << opt->optstp << endl; } CopyCRD(tmpeng, tmpmdl, 0); tmpmdl->CenterCRDSet(0, true); delete opt; for (i32u n1 = 0;n1 < av_tmp.size();n1++) { const fGL * tmpcrd = av_tmp[n1]->GetCRD(0); av[n1]->SetCRD(0, tmpcrd[0], tmpcrd[1], tmpcrd[2]); } // compute energy for final structure... f64 value; CopyCRD(this, eng, 0); eng->Compute(0); value = eng->GetEnergy(); // ...and add it to the plot. plot->AddDataWithAC(180.0 * tor1 / M_PI, 180.0 * tor2 / M_PI, value, eng); ostringstream str1; str1 << _("tor1 = ") << (180.0 * tor1 / M_PI) << _(" deg, tor2 = ") << (180.0 * tor2 / M_PI) << _(" deg, energy = ") << value << _(" kJ/mol.") << endl << ends; PrintToLog(str1.str().c_str()); tor2 += (range2[1] - range2[0]) / (f64) div2; } tor1 += (range1[1] - range1[0]) / (f64) div1; } delete tmpic; delete tmpeng; delete tmpmdl; // the "eng" object is the setup->current_eng object, so there's no need to delete it... plot->Finalize(); plot->GetWnd()->RequestUpdate(false); } void project::DoTransitionStateSearch(f64 deltae, f64 initfc) { transition_state_search * tss = new transition_state_search(this, deltae, initfc); if (tss->InitFailed()) { delete tss; tss = NULL; return; } ostringstream txts1; txts1 << _("r-energy = ") << tss->GetE(0) << " " << _("p-energy = ") << tss->GetE(1) << " "; txts1 << (tss->GetE(0) < tss->GetE(1) ? "r" : "p") << _(" is lower ") << fabs(tss->GetE(0) - tss->GetE(1)); txts1 << endl << ends; PrintToLog(txts1.str().c_str()); cout << txts1.str().c_str(); // char stop1; cin >> stop1; f64 erl = tss->GetE(0); f64 epl = tss->GetE(1); const char * s1 = "rc"; const char * sv = _("E(kJ/mol)"); rcpview_wcl * plot = AddReactionCoordinatePlotClient(s1, sv, true); for (i32u n1 = 0;n1 < tss->patoms.size();n1++) plot->AddPAtom(tss->patoms[n1]); for (i32u n1 = 0;n1 < tss->rbonds.size();n1++) plot->AddRBond(tss->rbonds[n1]); for (i32u n1 = 0;n1 < tss->pbonds.size();n1++) plot->AddPBond(tss->pbonds[n1]); void * udata; // add the initial structures... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ plot->AddDataWithAC(tss->GetP(0), tss->GetE(0), this, 0); plot->AddDataWithAC(tss->GetP(1), tss->GetE(1), this, 1); // loop... // ^^^^^^^ i32s prev_not_stored[2] = { false, false }; while (true) { tss->Run(prev_not_stored); ostringstream txts2; txts2 << _("r-energy = ") << tss->GetE(0) << " " << _("p-energy = ") << tss->GetE(1) << " "; txts2 << (tss->GetE(0) < tss->GetE(1) ? "r" : "p") << _(" is lower ") << fabs(tss->GetE(0) - tss->GetE(1)) << " "; if (tss->GetR(0) && tss->GetR(1)) { txts2 << _("READY!") << endl << ends; PrintToLog(txts2.str().c_str()); break; } bool update[2] = { !tss->GetR(0), !tss->GetR(1) }; if (tss->GetE(1) < erl) update[0] = false; if (tss->GetE(0) < epl) update[1] = false; if (!update[0] && !update[1]) // this is a deadlock situation, fix it... { //////////////////////////////////////////////////////////////// //cout << (i32s) update[0] << (i32s) update[1] << " "; //cout << (i32s) tss->GetR(0) << (i32s) tss->GetR(1) << " "; //cout << "DEADLOCK!!!" << endl; int xx;cin>>xx; //////////////////////////////////////////////////////////////// if (!tss->GetR(0) && tss->GetR(1)) update[0] = true; if (tss->GetR(0) && !tss->GetR(1)) update[1] = true; if (!update[0] && !update[1]) { f64 delta1 = erl - tss->GetE(1); f64 delta2 = epl - tss->GetE(0); i32s uuu = (delta1 > delta2 ? 0 : 1); // update the bigger one... update[uuu] = true; } } txts2 << (i32s) update[0] << (i32s) update[1] << " "; txts2 << (i32s) tss->GetR(0) << (i32s) tss->GetR(1); txts2 << endl << ends; PrintToLog(txts2.str().c_str()); cout << txts2.str().c_str(); // char stop2; cin >> stop2; tss->UpdateTargets(update); if (update[0]) { plot->AddDataWithAC(tss->GetP(0), tss->GetE(0), this, 0); erl = tss->GetE(0); } if (update[1]) { plot->AddDataWithAC(tss->GetP(1), tss->GetE(1), this, 1); epl = tss->GetE(1); } prev_not_stored[0] = !update[0]; prev_not_stored[1] = !update[1]; UpdateAllGraphicsViews(true); // debug... } delete tss; tss = NULL; // create an approximate TS as an average of the two structures. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ for (iter_al it1 = GetAtomsBegin();it1 != GetAtomsEnd();it1++) { const fGL * crdr = (* it1).GetCRD(0); const fGL * crdp = (* it1).GetCRD(1); fGL x = (crdr[0] + crdp[0]) / 2.0; fGL y = (crdr[1] + crdp[1]) / 2.0; fGL z = (crdr[2] + crdp[2]) / 2.0; (* it1).SetCRD(0, x, y, z); } PopCRDSets(1); // remove the 2nd crd-set that is no longer needed. // refine the approximate TS using stationary state search... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ DoStationaryStateSearch(100); f64 ts_e = GetCurrentSetup()->GetCurrentEngine()->GetEnergy(); // add the final estimate of TS, and finish the plot. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ plot->AddDataWithAC(0, ts_e, this, 0); plot->Finalize(); plot->GetWnd()->RequestUpdate(false); } void project::DoStationaryStateSearch(i32s steps) { engine * eng = GetCurrentSetup()->GetCurrentEngine(); if (eng == NULL) GetCurrentSetup()->CreateCurrentEngine(); eng = GetCurrentSetup()->GetCurrentEngine(); if (eng == NULL) return; ostringstream str1; str1 << _("Starting Stationary State Search "); str1 << _("(setup = ") << GetCurrentSetup()->GetClassName_lg(); str1 << _(", engine = ") << GetCurrentSetup()->GetEngineName(GetCurrentSetup()->GetCurrEngIndex()); str1 << ")." << endl << ends; PrintToLog(str1.str().c_str()); CopyCRD(this, eng, 0); // use a small default steplength; also setting maximum steplength is important!!! stationary_state_search * sss = new stationary_state_search(eng, 25, 1.0e-7, 1.0e-5); char buffer[1024]; PrintToLog(_("Cycle Gradient Step\n")); i32s n1 = 0; // n1 counts the number of steps... while (true) { sss->TakeCGStep(conjugate_gradient::Simple); sprintf(buffer, "%4d %10.4e %10.4e \n", n1, sss->optval, sss->optstp); PrintToLog(buffer); bool terminate = false; if (n1 >= steps) { terminate = true; PrintToLog(_("the nsteps termination test was passed.\n")); } if (!(n1 % 10) || terminate) { CopyCRD(eng, this, 0); CenterCRDSet(0, true); UpdateAllGraphicsViews(true); } if (terminate) break; // exit the loop here!!! n1++; // update the number of steps... } delete sss; sss = NULL; // we will not delete current_eng here, so that we can draw plots using it... // above, CopyCRD was done eng->mdl and then CenterCRDSet() was done for mdl. // this might cause that old coordinates remain in eng object, possibly affecting plots. // here we sync the coordinates and other plotting data in the eng object. CopyCRD(this, eng, 0); SetupPlotting(); } /*################################################################################################*/ dummy_project::dummy_project(void) : project() { } dummy_project::~dummy_project(void) { } /*################################################################################################*/ void color_mode_element::GetColor4(const void * dd, i32s cs, fGL * pp) { atom * ref = (atom *) dd; const fGL * color = ref->el.GetColor(); pp[0] = color[0]; pp[1] = color[1]; pp[2] = color[2]; pp[3] = 1.0; } void color_mode_secstruct::GetColor4(const void * dd, i32s cs, fGL * pp) { atom * ref = (atom *) dd; model * mdl = ref->GetModel(); pp[0] = 0.0; pp[1] = 0.0; pp[2] = 1.0; pp[3] = 0; // loop if (mdl == NULL || mdl->GetCI() == NULL) return; if (ref->id[1] < 0 || ref->id[2] < 0) return; vector & ci_vector = (* mdl->GetCI()); const char * tmptab = ci_vector[ref->id[1]].GetSecStrStates(); if (tmptab == NULL) return; char state = tmptab[ref->id[2]]; switch (state) { case '4': pp[0] = 1.0; pp[1] = 0.0; pp[2] = 0.0; // helix return; case 'S': pp[0] = 0.0; pp[1] = 1.0; pp[2] = 0.0; // strand return; } } void color_mode_hydphob::GetColor4(const void * dd, i32s cs, fGL * pp) { atom * ref = (atom *) dd; model * mdl = ref->GetModel(); pp[0] = 0.0; pp[1] = 0.5; pp[2] = 0.0; pp[3] = 0; // default... if (mdl == NULL || mdl->GetCI() == NULL) return; if (ref->id[1] < 0 || ref->id[2] < 0) return; vector & ci_vector = (* mdl->GetCI()); const char * tmp_seq1 = ci_vector[ref->id[1]].GetSequence1(); if (tmp_seq1 == NULL) return; char res1 = tmp_seq1[ref->id[2]]; switch (res1) { case 'A': case 'G': pp[0] = 0.0; pp[1] = 1.0; pp[2] = 0.0; // ala/gly return; case 'V': case 'F': case 'I': case 'L': case 'P': case 'M': pp[0] = 1.0; pp[1] = 0.0; pp[2] = 0.0; // hydrophobic return; case 'D': case 'E': case 'K': case 'R': pp[0] = 0.2; pp[1] = 0.2; pp[2] = 1.0; // charged return; case 'S': case 'T': case 'Y': case 'C': case 'N': case 'Q': case 'H': case 'W': pp[0] = 0.0; pp[1] = 1.0; pp[2] = 2.0; // polar return; } } /*################################################################################################*/ // eof ghemical-3.0.0/src/ogl_surface.cpp0000644000175000017500000004334211634160016013774 00000000000000// OGL_SURFACE.CPP // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ogl_surface.h" // config.h is here -> we get ENABLE-macros here... #include #include #include "project.h" #include "appdefine.h" #include "local_i18n.h" #include #include #include using namespace std; /*################################################################################################*/ ogl_color_surface::ogl_color_surface(ogl_cs_param & p1) { prj = p1.prj; data = p1.data; my_glname = p1.my_glname; transparent = p1.transparent; automatic_cv2 = p1.automatic_cv2; wireframe = p1.wireframe; for (i32s n1 = 0;n1 < 3;n1++) { np[n1] = p1.np[n1]; dist[n1] = new fGL[np[n1]]; } ref = p1.ref; GetSurfaceValue = p1.vf1; GetColorValue = p1.vf2; GetColor = p1.cf; svalue = p1.svalue; cvalue1 = p1.cvalue1; cvalue2 = p1.cvalue2; alpha = p1.alpha; tolerance = p1.toler; max_cycles = p1.maxc; grid = vector(np[0] * np[1] * np[2]); SetDimension(p1.dim); Update(); } ogl_color_surface::~ogl_color_surface(void) { if (transparent) base_app::GetAppB()->RemoveAllTPs((void *) this); delete[] dist[0]; delete[] dist[1]; delete[] dist[2]; } void ogl_color_surface::Update(void) { xdir = data->ydir.vpr(data->zdir); vdata.resize(0); tdata.resize(0); ldata.resize(0); prj->PrintToLog(_("evaluating grid")); for (i32s n1 = 0;n1 < np[0];n1++) { prj->PrintToLog("*"); // slow to update??? for (i32s n2 = 0;n2 < np[1];n2++) { for (i32s n3 = 0;n3 < np[2];n3++) { i32s tmp1[3] = { n1, n2, n3 }; fGL tmp2[3]; GetCRD(tmp1, tmp2); grid[n1 * np[1] * np[2] + n2 * np[2] + n3] = (GetSurfaceValue(ref, tmp2, NULL) < svalue); } } } prj->PrintToLog(_(" done\n")); avrg = 0.0; acnt = 0; for (i32s n1 = 0;n1 < 3;n1++) { i32s tmp1[2]; i32s tmp2[2] = { 0, 0 }; prj->PrintToLog(_("interpolating in ")); switch (n1) { case 0: tmp1[0] = 1; tmp1[1] = 2; prj->PrintToLog("x"); break; case 1: tmp1[0] = 2; tmp1[1] = 0; prj->PrintToLog("y"); break; case 2: tmp1[0] = 0; tmp1[1] = 1; prj->PrintToLog("z"); break; } prj->PrintToLog(_("-direction... ")); range[n1][0] = vdata.size(); Interpolate(n1, tmp1, tmp2); range[n1][1] = vdata.size(); ostringstream str1; str1 << tmp2[0] << _(" points, ") << tmp2[1] << _(" cycles") << endl << ends; prj->PrintToLog(str1.str().c_str()); } if (automatic_cv2) { // AUTO makes only partial correction -> just looks better and one can estimate the "bias". // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cvalue2 = -0.80 * avrg / (f64) acnt; } for (i32u n1 = 0;n1 < vdata.size();n1++) { GetColor((vdata[n1].cvalue + cvalue2) / cvalue1, alpha, vdata[n1].color); } prj->PrintToLog(_("generating image... ")); for (i32s n1 = 0;n1 < np[0] - 1;n1++) { for (i32s n2 = 0;n2 < np[1] - 1;n2++) { for (i32s n3 = 0;n3 < np[2] - 1;n3++) { vector line_vector; for (i32s n4 = 0;n4 < 2;n4++) { for (i32s n5 = 0;n5 < 2;n5++) { for (i32s n6 = 0;n6 < 2;n6++) { i32s id1[4]; id1[0] = (n1 + n4) * np[1] * np[2] + (n2 + n5) * np[2] + (n3 + n6); id1[1] = (n1 + !n4) * np[1] * np[2] + (n2 + n5) * np[2] + (n3 + n6); id1[2] = (n1 + n4) * np[1] * np[2] + (n2 + !n5) * np[2] + (n3 + n6); id1[3] = (n1 + n4) * np[1] * np[2] + (n2 + n5) * np[2] + (n3 + !n6); i32s id2[3] = { NOT_DEFINED, NOT_DEFINED, NOT_DEFINED }; for (i32s n7 = 0;n7 < 3;n7++) { if (grid[id1[0]] != grid[id1[n7 + 1]]) { i32s tmp1 = min(id1[0], id1[n7 + 1]); id2[n7] = range[n7][0]; while (id2[n7] < range[n7][1] && vdata[id2[n7]].id != tmp1) id2[n7]++; if (id2[n7] == range[n7][1]) cout << _("color_surface problem #1") << endl; } } for (i32s n7 = 0;n7 < 3;n7++) { ogl_cs_line newline; newline.index[0] = id2[n7]; newline.index[1] = id2[(n7 + 1) % 3]; newline.Arrange(); if (newline.index[0] < 0) continue; if (newline.index[1] < 0) continue; line_vector.push_back(newline); } } } } for (i32s n4 = 0;n4 < 3;n4++) { i32s id1a[4]; i32s id1b[4]; i32s tmp1[2] = { (n4 + 1) % 3, (n4 + 2) % 3 }; i32s t1a[3] = { n1, n2, n3 }; id1a[0] = t1a[0] * np[1] * np[2] + t1a[1] * np[2] + t1a[2]; i32s t2a[3] = { n1, n2, n3 }; t2a[tmp1[0]]++; id1a[1] = t2a[0] * np[1] * np[2] + t2a[1] * np[2] + t2a[2]; i32s t3a[3] = { n1, n2, n3 }; t3a[tmp1[0]]++; t3a[tmp1[1]]++; id1a[2] = t3a[0] * np[1] * np[2] + t3a[1] * np[2] + t3a[2]; i32s t4a[3] = { n1, n2, n3 }; t4a[tmp1[1]]++; id1a[3] = t4a[0] * np[1] * np[2] + t4a[1] * np[2] + t4a[2]; i32s t1b[3] = { n1, n2, n3 }; t1b[n4]++; id1b[0] = t1b[0] * np[1] * np[2] + t1b[1] * np[2] + t1b[2]; i32s t2b[3] = { n1, n2, n3 }; t2b[n4]++; t2b[tmp1[0]]++; id1b[1] = t2b[0] * np[1] * np[2] + t2b[1] * np[2] + t2b[2]; i32s t3b[3] = { n1, n2, n3 }; t3b[n4]++; t3b[tmp1[0]]++; t3b[tmp1[1]]++; id1b[2] = t3b[0] * np[1] * np[2] + t3b[1] * np[2] + t3b[2]; i32s t4b[3] = { n1, n2, n3 }; t4b[n4]++; t4b[tmp1[1]]++; id1b[3] = t4b[0] * np[1] * np[2] + t4b[1] * np[2] + t4b[2]; i32s id2[4] = { NOT_DEFINED, NOT_DEFINED, NOT_DEFINED, NOT_DEFINED }; for (i32s n5 = 0;n5 < 4;n5++) { if (grid[id1a[n5]] != grid[id1b[n5]]) { id2[n5] = range[n4][0]; while (id2[n5] < range[n4][1] && vdata[id2[n5]].id != id1a[n5]) id2[n5]++; if (id2[n5] == range[n4][1]) cout << _("color_surface problem #2") << endl; } } for (i32s n5 = 0;n5 < 4;n5++) { ogl_cs_line newline; newline.index[0] = id2[n5]; newline.index[1] = id2[(n5 + 1) % 4]; newline.Arrange(); if (newline.index[0] < 0) continue; if (newline.index[1] < 0) continue; line_vector.push_back(newline); } } ldata.insert(ldata.end(), line_vector.begin(), line_vector.end()); while (!line_vector.empty()) { deque polygon; polygon.push_front(line_vector.back().index[0]); polygon.push_back(line_vector.back().index[1]); line_vector.pop_back(); i32s counter = 0; while (counter < (i32s) line_vector.size()) { for (i32s dir = 0;dir < 2;dir++) { if (line_vector[counter].index[dir] == polygon.front()) { polygon.push_front(line_vector[counter].index[!dir]); line_vector.erase(line_vector.begin() + counter); counter = -1; break; } if (line_vector[counter].index[dir] == polygon.back()) { polygon.push_back(line_vector[counter].index[!dir]); line_vector.erase(line_vector.begin() + counter); counter = -1; break; } } counter++; } for (i32s n4 = 1;n4 < ((i32s) polygon.size()) - 2;n4++) { ogl_cs_triangle newtriangle; newtriangle.index[0] = polygon[0]; newtriangle.index[1] = polygon[n4]; newtriangle.index[2] = polygon[n4 + 1]; if (newtriangle.index[0] == newtriangle.index[1]) cout << "E"; if (newtriangle.index[0] == newtriangle.index[2]) cout << "E"; if (newtriangle.index[1] == newtriangle.index[2]) cout << "E"; tdata.push_back(newtriangle); } } } } } // there are some duplicated lines -> make unique !!! // there are some duplicated lines -> make unique !!! // there are some duplicated lines -> make unique !!! sort(ldata.begin(), ldata.end()); vector::iterator it1 = unique(ldata.begin(), ldata.end()); if (it1 != ldata.end()) ldata.erase(it1, ldata.end()); // check the counterclockwise winding of triangles !!! // check the counterclockwise winding of triangles !!! // check the counterclockwise winding of triangles !!! for (i32s n1 = 0;n1 < (i32s) tdata.size();n1++) { v3d nv1 = v3d(vdata[tdata[n1].index[0]].normal); v3d nv2 = v3d(vdata[tdata[n1].index[1]].normal); v3d nv3 = v3d(vdata[tdata[n1].index[2]].normal); v3d v1 = nv1 + nv2; v1 = v1 + nv3; v3d v2 = v3d(vdata[tdata[n1].index[0]].crd, vdata[tdata[n1].index[1]].crd); v3d v3 = v3d(vdata[tdata[n1].index[1]].crd, vdata[tdata[n1].index[2]].crd); bool flag = !(v1.tor(v2, v3) < 0.0); if (flag) { i32s tmp1 = tdata[n1].index[0]; tdata[n1].index[0] = tdata[n1].index[1]; tdata[n1].index[1] = tmp1; } } ostringstream str1; str1 << ldata.size() << _(" lines, ") << tdata.size() << _(" triangles.") << endl << ends; prj->PrintToLog(str1.str().c_str()); // add/update the primitives, if this is a transparent object... // add/update the primitives, if this is a transparent object... // add/update the primitives, if this is a transparent object... base_app * app = base_app::GetAppB(); if (transparent && !wireframe) { app->RemoveAllTPs((void *) this); for (i32s n1 = 0;n1 < (i32s) tdata.size();n1++) { fGL * c1 = vdata[tdata[n1].index[0]].color; fGL * p1 = vdata[tdata[n1].index[0]].crd; fGL * c2 = vdata[tdata[n1].index[1]].color; fGL * p2 = vdata[tdata[n1].index[1]].crd; fGL * c3 = vdata[tdata[n1].index[2]].color; fGL * p3 = vdata[tdata[n1].index[2]].crd; tpd_tri_3c * tmp4; tmp4 = new tpd_tri_3c(c1, p1, c2, p2, c3, p3); transparent_primitive * tmp5; tmp5 = new transparent_primitive((void *) this, * tmp4); app->AddTP((void *) this, (* tmp5)); // tmp4, the tpd_tri_3c-object, will be deleted when // prj->RemoveAllTPs() is called for this object... delete tmp5; } } } void ogl_color_surface::Render(void) { glPushName(GLNAME_OBJECT); glPushName(my_glname); if (wireframe) { glBegin(GL_LINES); for (i32s n1 = 0;n1 < (i32s) ldata.size();n1++) { i32s ind1 = ldata[n1].index[0]; i32s ind2 = ldata[n1].index[1]; glColor3fv(vdata[ind1].color); glVertex3fv(vdata[ind1].crd); glColor3fv(vdata[ind2].color); glVertex3fv(vdata[ind2].crd); } glEnd(); // GL_LINES } else if (!transparent) { glEnable(GL_LIGHTING); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, true); glBegin(GL_TRIANGLES); for (i32s n1 = 0;n1 < (i32s) tdata.size();n1++) { vdata[tdata[n1].index[0]].Render(true); // aina TRUE!??!?!?! vdata[tdata[n1].index[1]].Render(true); vdata[tdata[n1].index[2]].Render(true); } glEnd(); // GL_TRIANGLES glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, false); glDisable(GL_LIGHTING); } glPopName(); glPopName(); } void ogl_color_surface::SetDimension(fGL * p1) { for (i32s n1 = 0;n1 < 3;n1++) { dim[n1] = p1[n1]; fGL tmp1 = np[n1] - 1; for (i32s n2 = 0;n2 < np[n1];n2++) { fGL tmp2 = (fGL) n2 / tmp1; dist[n1][n2] = dim[n1] * (tmp2 - 0.5); } } } void ogl_color_surface::GetCRD(i32s * p1, fGL * p2) { for (i32s n1 = 0;n1 < 3;n1++) { fGL tmp1 = xdir[n1] * dist[0][p1[0]]; fGL tmp2 = data->ydir[n1] * dist[1][p1[1]]; fGL tmp3 = data->zdir[n1] * dist[2][p1[2]]; p2[n1] = data->crd[n1] + tmp1 + tmp2 + tmp3; } } void ogl_color_surface::Interpolate(i32s p1, i32s * p2, i32s * p3) { i32s tmp1[3]; i32s tmp2[3]; for (i32s n1 = 0;n1 < np[p2[0]];n1++) { tmp1[p2[0]] = tmp2[p2[0]] = n1; for (i32s n2 = 0;n2 < np[p2[1]];n2++) { tmp1[p2[1]] = tmp2[p2[1]] = n2; for (i32s n3 = 0;n3 < np[p1] - 1;n3++) { tmp1[p1] = n3; tmp2[p1] = n3 + 1; bool test1 = grid[tmp1[0] * np[1] * np[2] + tmp1[1] * np[2] + tmp1[2]]; bool test2 = grid[tmp2[0] * np[1] * np[2] + tmp2[1] * np[2] + tmp2[2]]; if (test1 == test2) continue; fGL tmp3a[3]; GetCRD(tmp1, tmp3a); fGL tmp3b[3]; GetCRD(tmp2, tmp3b); v3d tmpv1 = v3d(tmp3a); v3d tmpv2 = v3d(tmp3a, tmp3b); v3d tmpv3; fGL tmp4[2]; tmp4[0] = 0.0; tmpv3 = tmpv1 + (tmpv2 * tmp4[0]); tmp4[1] = GetSurfaceValue(ref, tmpv3.data, NULL) - svalue; fGL tmp5[2]; tmp5[0] = 1.0; tmpv3 = tmpv1 + (tmpv2 * tmp5[0]); tmp5[1] = GetSurfaceValue(ref, tmpv3.data, NULL) - svalue; // this is a "regula falsi"-type search... fGL tmp6 = 0.0; i32s tmp7 = 0; while (tmp7++ < max_cycles) { fGL tmp8 = tmp5[0] - tmp5[1] * (tmp5[0] - tmp4[0]) / (tmp5[1] - tmp4[1]); tmpv3 = tmpv1 + (tmpv2 * tmp8); tmp6 = GetSurfaceValue(ref, tmpv3.data, NULL) - svalue; if ((tmp6 < 0.0) ^ (tmp4[1] < 0.0)) { tmp5[0] = tmp8; tmp5[1] = tmp6; } else { tmp4[0] = tmp8; tmp4[1] = tmp6; } if (fabs(tmp4[1]) < fabs(tmp5[1])) { tmp6 = tmp4[0]; tmp8 = fabs(tmp4[1]); } else { tmp6 = tmp5[0]; tmp8 = fabs(tmp5[1]); } if (tmp8 < tolerance) break; else p3[1]++; } ogl_cs_vertex vertex; tmpv3 = tmpv1 + (tmpv2 * tmp6); vertex.cvalue = GetColorValue(ref, tmpv3.data, NULL); if (automatic_cv2) { avrg += vertex.cvalue; acnt++; } fGL tmp9[4]; if (!wireframe) { tmp9[3] = 0.0; GetSurfaceValue(ref, tmpv3.data, tmp9); for (i32s n4 = 0;n4 < 3;n4++) tmp9[3] += tmp9[n4] * tmp9[n4]; tmp9[3] = sqrt(tmp9[3]); } for (i32s n4 = 0;n4 < 3;n4++) { vertex.crd[n4] = tmpv3[n4]; if (!wireframe) vertex.normal[n4] = tmp9[n4] / tmp9[3]; } vertex.id = (tmp1[0] * np[1] * np[2] + tmp1[1] * np[2] + tmp1[2]); vdata.push_back(vertex); p3[0]++; } } } } /*################################################################################################*/ ogl_color_surface_object::ogl_color_surface_object(const ogl_object_location & p1, ogl_cs_param & p2, const char * p3) : ogl_smart_object(p1) { transform_in_progress = false; dim[0] = p2.dim[0]; // now we have several copies dim[1] = p2.dim[1]; // of dimension, but it should dim[2] = p2.dim[2]; // be the same everywhere... ogl_cs_param * param = & p2; while (true) { param->data = GetSafeLD(); param->my_glname = base_app::GetAppB()->RegisterGLName((ogl_dummy_object *) this); cs_vector.push_back(new ogl_color_surface(* param)); if (param->next != NULL) param = param->next; else break; } ostringstream str; str << p3 << "surface" << ends; object_name = new char[strlen(str.str().c_str()) + 1]; strcpy(object_name, str.str().c_str()); copy_of_ref = p2.ref; } ogl_color_surface_object::~ogl_color_surface_object(void) { for (i32u n1 = 0;n1 < cs_vector.size();n1++) { delete cs_vector[n1]; } delete[] object_name; } bool ogl_color_surface_object::BeginTransformation(void) { transform_in_progress = true; return true; } bool ogl_color_surface_object::EndTransformation(void) { transform_in_progress = false; Update(); // update the surfaces!!!!! return true; } void ogl_color_surface_object::OrbitObject(const fGL * p1, const ogl_camera & p2) { ogl_dummy_object::RotateObject(p1, p2); } void ogl_color_surface_object::RotateObject(const fGL * p1, const ogl_camera & p2) { ogl_dummy_object::OrbitObject(p1, p2); } void ogl_color_surface_object::TranslateObject(const fGL * p1, const ogl_obj_loc_data * p2) { fGL tmp1[3] = { p1[0], p1[1], p1[2] }; if (p2 == GetSafeLD()) { tmp1[0] = -tmp1[0]; tmp1[2] = -tmp1[2]; } ogl_dummy_object::TranslateObject(tmp1, p2); } void ogl_color_surface_object::Render(void) { if (transform_in_progress) { glPushMatrix(); SetModelView(); fGL dx[2]; dx[0] = dim[0] / 2.0; dx[1] = -dx[0]; fGL dy[2]; dy[0] = dim[1] / 2.0; dy[1] = -dy[0]; fGL dz[2]; dz[0] = dim[2] / 2.0; dz[1] = -dz[0]; glBegin(GL_LINES); glColor3f(0.0, 0.0, 1.0); glVertex3f(dx[0], dy[0], dz[0]); glVertex3f(dx[1], dy[0], dz[0]); glVertex3f(dx[0], dy[1], dz[0]); glVertex3f(dx[1], dy[1], dz[0]); glVertex3f(dx[0], dy[1], dz[1]); glVertex3f(dx[1], dy[1], dz[1]); glVertex3f(dx[0], dy[0], dz[1]); glVertex3f(dx[1], dy[0], dz[1]); glVertex3f(dx[0], dy[0], dz[0]); glVertex3f(dx[0], dy[1], dz[0]); glVertex3f(dx[1], dy[0], dz[0]); glVertex3f(dx[1], dy[1], dz[0]); glVertex3f(dx[1], dy[0], dz[1]); glVertex3f(dx[1], dy[1], dz[1]); glVertex3f(dx[0], dy[0], dz[1]); glVertex3f(dx[0], dy[1], dz[1]); glVertex3f(dx[0], dy[0], dz[0]); glVertex3f(dx[0], dy[0], dz[1]); glVertex3f(dx[1], dy[0], dz[0]); glVertex3f(dx[1], dy[0], dz[1]); glVertex3f(dx[1], dy[1], dz[0]); glVertex3f(dx[1], dy[1], dz[1]); glVertex3f(dx[0], dy[1], dz[0]); glVertex3f(dx[0], dy[1], dz[1]); glColor3f(1.0, 1.0, 1.0); glVertex3f(dx[0] / 2.0, 0.0, 0.0); glVertex3f(dx[1] / 2.0, 0.0, 0.0); glVertex3f(0.0, dy[0] / 2.0, 0.0); glVertex3f(0.0, dy[1] / 2.0, 0.0); glVertex3f(0.0, 0.0, dz[0] / 2.0); glVertex3f(0.0, 0.0, dz[1] / 2.0); glEnd(); glPopMatrix(); } else { for (i32u n1 = 0;n1 < cs_vector.size();n1++) { cs_vector[n1]->Render(); } } } void ogl_color_surface_object::Update(void) { for (i32u n1 = 0;n1 < cs_vector.size();n1++) { cs_vector[n1]->Update(); } } /*################################################################################################*/ // eof ghemical-3.0.0/src/gpcview_wcl.h0000644000175000017500000000303411634160016013453 00000000000000// GPCVIEW_WCL.H : generic protein chain view client class. // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef GPCVIEW_WCL_H #define GPCVIEW_WCL_H #include "pangofont_wcl.h" /*################################################################################################*/ class gpcview_wcl : public pangofont_wcl { protected: public: gpcview_wcl(void); virtual ~gpcview_wcl(void); void ButtonEvent(int, int); // virtual void MotionEvent(int, int); // virtual void UpdateWnd(void); // virtual void InitGL(void); // virtual void RenderGL(rmode); // virtual }; /*################################################################################################*/ #endif // GPCVIEW_WCL_H // eof ghemical-3.0.0/src/gtk_gpcview_wnd.cpp0000644000175000017500000000630311634160016014660 00000000000000// GTK_GPCVIEW_WND.CPP // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_gpcview_wnd.h" #include "gpcview_wcl.h" #include "gtk_app.h" #include "local_i18n.h" /*################################################################################################*/ GtkActionEntry gtk_gpcview_wnd::entries[] = { { "AttachDetachGPC", NULL, N_("Attach/Detach This View"), NULL, N_("Select whether this view is attached or in an independent window"), (GCallback) gtk_gpcview_wnd::popup_AttachDetach }, { "DeleteViewGPC", NULL, N_("Delete View"), NULL, N_("Delete this view"), (GCallback) gtk_gpcview_wnd::popup_DeleteView } }; const char * gtk_gpcview_wnd::ui_description = "" " " " " " " " " " " ""; gtk_gpcview_wnd::gtk_gpcview_wnd(bool det_flag) : gtk_wnd(det_flag) { GtkActionGroup * action_group = gtk_action_group_new("ggpcvActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), GTK_WIDGET(view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); GError * error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), ui_description, -1, & error)) { g_message(_("ERROR : Building popup-menu for gtk_gpcview_wnd failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } // set gtk_view::popupmenu so that gtk_ogl_view::ButtonHandler() will display it... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ popupmenu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/ggpcvMenu"); } gtk_gpcview_wnd::~gtk_gpcview_wnd(void) { } // here are the popup menu callbacks: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ void gtk_gpcview_wnd::popup_AttachDetach(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); gpcview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetAppX()->AttachDetachView(wcl); } void gtk_gpcview_wnd::popup_DeleteView(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); gpcview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetPrjX()->RemovePlottingClient(wcl); } /*################################################################################################*/ // eof ghemical-3.0.0/src/rcpview_wcl.h0000644000175000017500000000342411634160016013471 00000000000000// RCPVIEW_WCL.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef RCPVIEW_WCL_H #define RCPVIEW_WCL_H #include "p1dview_wcl.h" //#include /*################################################################################################*/ class rcpview_wcl : public p1dview_wcl { protected: bool ready; vector patoms; vector rbonds; vector pbonds; fGL r_treshold; fGL p_treshold; public: rcpview_wcl(const char *, const char *); virtual ~rcpview_wcl(void); void AddPAtom(i32u p1) { patoms.push_back(p1); } void AddRBond(bond * p1) { rbonds.push_back(p1); } void AddPBond(bond * p1) { pbonds.push_back(p1); } void Finalize(void); // virtual void ButtonEvent(int, int); // virtual void MotionEvent(int, int); // virtual }; /*################################################################################################*/ #endif // RCPVIEW_WCL_H // eof ghemical-3.0.0/src/ghemicalconfig.h.in0000644000175000017500000000626611645347723014536 00000000000000/* src/ghemicalconfig.h.in. Generated from configure.ac by autoheader. */ /* Where the data files are ; set in the configure.ac */ #undef APPDATA_PATH /* This is the releasedate of ghemical--it is set in the configure.ac */ #undef APPRELEASEDATE /* This is the version of ghemical to be built--it is set in the configure.ac */ #undef APPVERSION /* Define if you are building a GTK2 application */ #undef ENABLE_GTK /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Define if you are building a version that interfaces directly with OpenBabel */ #undef ENABLE_OPENBABEL /* Define if you are building a multithreaded application */ #undef ENABLE_THREADS /* Package name for internationalization */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_GL_GLU_H /* Define to 1 if you have the header file. */ #undef HAVE_GL_GL_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif ghemical-3.0.0/src/pangofont_wcl.h0000644000175000017500000000353511634160016014010 00000000000000// PANGOFONT_WCL.H : a wcl with added OpenGL text rendering capability. // Copyright (C) 2008 Tommi Hassinen, Naosumi Yasufuku. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef PANGOFONT_WCL_H #define PANGOFONT_WCL_H #include #include /*################################################################################################*/ class pangofont_wcl : public base_wcl { private: gchar * font_string; gint font_height; GLuint font_list_base; public: pangofont_wcl(ogl_camera *); virtual ~pangofont_wcl(void); // the OpenGL text rendering methods... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // the implementation is taken from gtkglext-1.2/examples/font.c by Naosumi Yasufuku. void ogl_InitPangoFont(const gchar *); int ogl_GetStringWidth(const char *); void ogl_WriteString2D(const char *, GLfloat, GLfloat); void ogl_WriteString3D(const char *, GLfloat, GLfloat, GLfloat); }; /*################################################################################################*/ #endif // PANGOFONT_WCL_H // eof ghemical-3.0.0/src/gtk_stereo_dialog.h0000644000175000017500000000335311634160016014633 00000000000000// GTK_STEREO_DIALOG.H : write a short description here... // Copyright (C) 2000 Tommi Hassinen, Mike Cruz. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_STEREO_DIALOG_H #define GTK_STEREO_DIALOG_H class gtk_stereo_dialog; //#include "ghemicalconfig2.h" #include "gtk_glade_dialog.h" #include "gtk_oglview_wnd.h" /*################################################################################################*/ class gtk_stereo_dialog : public gtk_glade_dialog { protected: gtk_oglview_wnd * wnd; float scaling; GtkWidget * dialog; public: gtk_stereo_dialog(gtk_oglview_wnd *); ~gtk_stereo_dialog(void); void SetScaling(float); void CloseDialog(void); static void handler_Destroy(GtkWidget *, gpointer); static void handler_SepChanged(GtkWidget *, gpointer); static void handler_DispChanged(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_STEREO_DIALOG_H // eof ghemical-3.0.0/src/oglview_wcl.h0000644000175000017500000000513111634160016013463 00000000000000// OGLVIEW_WCL.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef OGLVIEW_WCL_H #define OGLVIEW_WCL_H class oglview_wcl; #include #include "pangofont_wcl.h" #include "custom_camera.h" #include "project.h" /*################################################################################################*/ class oglview_wcl : public pangofont_wcl { protected: custom_camera * ccam; i32s my_wnd_number; i32s render; i32s label; color_mode * colormode; iGLu * select_buffer; bool enable_fog; bool accumulate; static bool quick_update; // some static flags... static bool draw_info; // some static flags... float animX; float animY; friend class custom_camera; friend class project; friend class gtk_app; friend class gtk_project; friend class gtk_oglview_wnd; // timer + ??? friend class w32_app; friend class w32_project; friend class w32_oglview_wnd; // ??? friend class w32_wnd; // timer public: enum pmode { DoNotPick = 0, pDraw = 1, pErase = 2, pSelect = 3, pMeasure = 4 }; oglview_wcl(custom_camera *); virtual ~oglview_wcl(void); custom_camera * GetCCam(void); void GetCRD(i32s *, fGL *); void ButtonEvent(int, int); // virtual void MotionEvent(int, int); // virtual void UpdateWnd(void); // virtual // here we sometimes need to pass extra parameters to UpdateWnd(). // but UpdateWnd() is defined at liboglappth and so it should be as // universal as possible -> make a separate method with extra params. void MyUpdateWnd(pmode = DoNotPick, int = 0, int = 0); void InitGL(void); // virtual void RenderGL(rmode); // virtual }; /*################################################################################################*/ #endif // OGLVIEW_WCL_H // eof ghemical-3.0.0/src/gtk_p1dview_wnd.cpp0000644000175000017500000000631711634160016014600 00000000000000// GTK_P1DVIEW_WND.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_p1dview_wnd.h" #include "p1dview_wcl.h" #include "gtk_app.h" #include "local_i18n.h" /*################################################################################################*/ GtkActionEntry gtk_p1dview_wnd::entries[] = { { "AttachDetachPlot1D", NULL, N_("Attach/Detach This View"), NULL, N_("Select whether this view is attached or in an independent window"), (GCallback) gtk_p1dview_wnd::popup_AttachDetach }, { "DeleteViewPlot1D", NULL, N_("Delete View"), NULL, N_("Delete this view"), (GCallback) gtk_p1dview_wnd::popup_DeleteView } }; const char * gtk_p1dview_wnd::ui_description = "" " " " " " " " " " " ""; gtk_p1dview_wnd::gtk_p1dview_wnd(bool det_flag) : gtk_wnd(det_flag) { GtkActionGroup * action_group = gtk_action_group_new("gp1dvActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), GTK_WIDGET(view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); GError * error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), ui_description, -1, & error)) { g_message(_("ERROR : Building popup-menu for gtk_p1dview_wnd failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } // set gtk_view::popupmenu so that gtk_ogl_view::ButtonHandler() will display it... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ popupmenu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/gp1dvMenu"); } gtk_p1dview_wnd::~gtk_p1dview_wnd(void) { } // here are the popup menu callbacks: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ void gtk_p1dview_wnd::popup_AttachDetach(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); p1dview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetAppX()->AttachDetachView(wcl); } void gtk_p1dview_wnd::popup_DeleteView(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); p1dview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetPrjX()->RemovePlottingClient(wcl); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_geomopt_dialog.cpp0000644000175000017500000001071011634160016015332 00000000000000// GTK_GEOMOPT_DIALOG.CPP // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_geomopt_dialog.h" #include "local_i18n.h" #include #include #include using namespace std; /*################################################################################################*/ gtk_geomopt_dialog::gtk_geomopt_dialog(geomopt_param * p1) : gtk_glade_dialog("glade/gtk_geomopt_dialog.glade") { param = p1; dialog = glade_xml_get_widget(xml, "geomopt_dialog"); if (dialog == NULL) { cout << _("WARNING : geomopt_dialog : glade_xml_get_widget() failed!!!") << endl; return; } // initialize the widgets... entry_nsteps = glade_xml_get_widget(xml, "entry_nsteps"); entry_grad = glade_xml_get_widget(xml, "entry_grad"); entry_delta_e = glade_xml_get_widget(xml, "entry_delta_e"); ostringstream str; str << param->treshold_nsteps << ends; gtk_entry_set_text(GTK_ENTRY(entry_nsteps), str.str().c_str()); str.str(""); // blank it... str << param->treshold_grad << ends; gtk_entry_set_text(GTK_ENTRY(entry_grad), str.str().c_str()); str.str(""); // blank it... str << param->treshold_delta_e << ends; gtk_entry_set_text(GTK_ENTRY(entry_delta_e), str.str().c_str()); // connect the handlers... glade_xml_signal_connect_data(xml, "on_dialog_destroy", (GtkSignalFunc) handler_Destroy, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_ok_clicked", (GtkSignalFunc) handler_ButtonOK, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_cancel_clicked", (GtkSignalFunc) handler_ButtonCancel, (gpointer) this); gtk_dialog_run(GTK_DIALOG(dialog)); // MODAL gtk_widget_destroy(dialog); // MODAL } gtk_geomopt_dialog::~gtk_geomopt_dialog(void) { } void gtk_geomopt_dialog::handler_Destroy(GtkWidget *, gpointer data) // not really needed... { gtk_geomopt_dialog * ref = (gtk_geomopt_dialog *) data; //cout << "handler_Destroy() : ref = " << ref << endl; } void gtk_geomopt_dialog::handler_ButtonOK(GtkWidget *, gpointer data) { gtk_geomopt_dialog * ref = (gtk_geomopt_dialog *) data; //cout << "handler_ButtonOK() : ref = " << ref << endl; // read the user's settings from widgets... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GtkWidget * cb_nsteps = glade_xml_get_widget(ref->xml, "checkbutton_nsteps"); GtkWidget * cb_grad = glade_xml_get_widget(ref->xml, "checkbutton_grad"); GtkWidget * cb_delta_e = glade_xml_get_widget(ref->xml, "checkbutton_delta_e"); const gchar * buffer; ref->param->enable_nsteps = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_nsteps)); buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_nsteps)); istringstream istr1(buffer); istr1 >> ref->param->treshold_nsteps; ref->param->enable_grad = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_grad)); buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_grad)); istringstream istr2(buffer); istr2 >> ref->param->treshold_grad; ref->param->enable_delta_e = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_delta_e)); buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_delta_e)); istringstream istr3(buffer); istr3 >> ref->param->treshold_delta_e; if (!ref->param->enable_nsteps && !ref->param->enable_grad && !ref->param->enable_delta_e) { ref->param->enable_nsteps = true; cout << "WARNING: all termination tests were disabled!!! the nsteps test is forced." << endl; } ref->param->Confirm(); } void gtk_geomopt_dialog::handler_ButtonCancel(GtkWidget *, gpointer data) // not really needed... { gtk_geomopt_dialog * ref = (gtk_geomopt_dialog *) data; //cout << "handler_ButtonCancel() : ref = " << ref << endl; } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_main.cpp0000644000175000017500000001027111634160016013267 00000000000000// GTK_MAIN.CPP // Copyright (C) 2003 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_main.h" #include "ghemicalconfig.h" #include #include "local_i18n.h" #include #include //#include /*################################################################################################*/ // define MAIN__ in case mopac7 uses f2c extern "C" { int MAIN__ (void) {return 0;} } // the main function. // ^^^^^^^^^^^^^^^^^^ static gchar * opt_f = NULL; static gchar * opt_i = NULL; static GOptionEntry option_entries[] = { { "file=filename", 'f', 0, G_OPTION_ARG_STRING, & opt_f, _("open a file"), NULL }, { "import=filename", 'i', 0, G_OPTION_ARG_STRING, & opt_i, _("import a file"), NULL }, { NULL } }; int main(int argc, char ** argv) { GError * error = NULL; #ifdef ENABLE_NLS setlocale(LC_ALL, ""); bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); #endif // ENABLE_NLS GOptionContext * option_context = g_option_context_new(_("- a GTK2 molecular modelling program")); g_option_context_add_main_entries(option_context, option_entries, NULL); g_option_context_add_group(option_context, gtk_get_option_group(TRUE)); g_option_context_parse(option_context, & argc, & argv, & error); #ifdef ENABLE_THREADS //g_thread_init(NULL); // original... if (!g_thread_supported()) g_thread_init(NULL); // robertix 2008-04-25 gdk_threads_init(); gdk_threads_enter(); #endif // ENABLE_THREADS gtk_init(& argc, & argv); gtk_gl_init(& argc, & argv); gint major; gint minor; gdk_gl_query_version (& major, & minor); g_print("\n"); g_print(_("OpenGL extension version - %d.%d\n"), major, minor); #ifndef WIN32 libghemical_init(LIBDATA_PATH); strcpy(project::appdata_path, APPDATA_PATH); #else // WIN32 gchar * modpath = g_win32_get_package_installation_directory_of_module(NULL); //g_print ("modpath = %s\n", modpath); // also see: g_win32_locale_filename_from_utf8() // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // glib-Windows-Compatibility-Functions.html char tmpstr[256]; char * tmploc; tmploc = g_stpcpy(tmpstr, modpath); tmploc = g_stpcpy(tmploc, "\\share\\libghemical"); libghemical_init(tmpstr); tmploc = g_stpcpy(tmpstr, modpath); tmploc = g_stpcpy(tmploc, "\\share\\ghemical"); strcpy(project::appdata_path, tmpstr); g_free(modpath); #endif // WIN32 singleton_cleaner app_cleaner; app_cleaner.SetInstance(gtk_app::GetAppX()); if (opt_f != NULL) { ifstream ifile; ifile.open(opt_f, ios::in); ReadGPR(* gtk_app::GetPrj(), ifile, false); ifile.close(); //char buffer[256]; //prj->ParseProjectFileNameAndPath(filename); //prj->GetProjectFileName(buffer, 256, true); } else if (opt_i != NULL) { #ifdef ENABLE_OPENBABEL gtk_app::GetPrj()->ImportFile(opt_i, 0); //gtk_app::GetPrj()->ParseProjectFileNameAndPath(filename); #else // ENABLE_OPENBABEL cout << _("Sorry! The file import feature is disabled ; you need to recompile") << endl; cout << _("libghemical with --enable-openbabel option in order to fix this.") << endl; exit(EXIT_FAILURE); #endif // ENABLE_OPENBABEL } gtk_main(); #ifdef ENABLE_THREADS gdk_threads_leave(); #endif // ENABLE_THREADS return 0; } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_oglview_wnd.cpp0000644000175000017500000007517011634160016014700 00000000000000// GTK_OGLVIEW_WND.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_oglview_wnd.h" #include "oglview_wcl.h" #include "gtk_project.h" #include "gtk_simple_dialogs.h" #include "local_i18n.h" #include /*################################################################################################*/ GtkActionEntry gtk_oglview_wnd::entries[] = { { "AttachDetachGV", NULL, N_("Attach/Detach This View"), NULL, N_("Select whether this view is attached or in an independent window"), (GCallback) gtk_oglview_wnd::popup_ViewsAttachDetach }, { "FileMenu", NULL, N_("File") }, // ^^^^^^^^ { "Open", GTK_STOCK_OPEN, N_("Open"), NULL, N_("Open a file"), (GCallback) gtk_app::mainmenu_FileOpen }, #ifdef ENABLE_OPENBABEL { "Import", GTK_STOCK_OPEN, N_("Import..."), NULL, N_("Import other file formats using libopenbabel"), (GCallback) gtk_project::popup_FileImport }, #endif // ENABLE_OPENBABEL { "SaveAs", GTK_STOCK_SAVE, N_("Save as..."), NULL, N_("Save a file"), (GCallback) gtk_app::mainmenu_FileSaveAs }, #ifdef ENABLE_OPENBABEL { "Export", GTK_STOCK_SAVE, N_("Export"), NULL, N_("Export other file formats using OpenBabel"), (GCallback) gtk_project::popup_FileExport }, #endif // ENABLE_OPENBABEL // { "ExportGraphics", GTK_STOCK_SAVE, N_("Export Graphics"), NULL, N_("Export graphics"), (GCallback) gtk_project::popup_FileExportGraphics }, { "Close", GTK_STOCK_QUIT, N_("Close"), NULL, N_("Close the file"), (GCallback) gtk_app::mainmenu_FileClose }, { "FileExtraMenu", NULL, N_("Extra Tools") }, // ^^^^^^^^^^^^^ { "FileExtra1", NULL, N_("Import PDB"), NULL, N_("Import a PDB file"), (GCallback) gtk_project::popup_FileExtra1 }, // { "FileExtra2", NULL, N_("Import ???"), NULL, N_("Import a ??? file"), (GCallback) gtk_project::popup_FileExtra2 }, { "SelectMenu", NULL, N_("Select") }, // ^^^^^^^^^^ { "SelectAll", NULL, N_("Select All"), NULL, N_("Select all atoms"), (GCallback) gtk_project::popup_SelectAll }, { "SelectNone", NULL, N_("Select None"), NULL, N_("Select nothing"), (GCallback) gtk_project::popup_SelectNone }, { "InvertSelection", NULL, N_("Invert Selection"), NULL, N_("Invert the selection"), (GCallback) gtk_project::popup_InvertSelection }, { "HideSelected", NULL, N_("Hide Selected"), NULL, N_("Hide all selected atoms"), (GCallback) gtk_project::popup_HideSelected }, { "ShowSelected", NULL, N_("Show Selected"), NULL, N_("Show all selected atoms"), (GCallback) gtk_project::popup_ShowSelected }, { "LockSelected", NULL, N_("Lock Selected"), NULL, N_("Lock all selected atoms"), (GCallback) gtk_project::popup_LockSelected }, { "UnlockSelected", NULL, N_("Unlock Selected"), NULL, N_("Unlock all selected atoms"), (GCallback) gtk_project::popup_UnlockSelected }, { "DeleteSelected", NULL, N_("Delete Selected"), NULL, N_("Delete all selected atoms"), (GCallback) gtk_project::popup_DeleteSelected }, { "SelectModeMenu", NULL, N_("Selection Mode") }, // ^^^^^^^^^^^^^^ // todo : convert these into toggle items so that the setting from project is show in each of the graphics views... { "SelectAtoms", NULL, N_("Select Atoms"), NULL, N_("Select single atoms"), (GCallback) gtk_project::popup_SelectModeAtom }, { "SelectResidues", NULL, N_("Select Residues"), NULL, N_("Select residues"), (GCallback) gtk_project::popup_SelectModeResidue }, { "SelectChains", NULL, N_("Select Chains"), NULL, N_("Select chains"), (GCallback) gtk_project::popup_SelectModeChain }, { "SelectMolecules", NULL, N_("Select Molecules"), NULL, N_("Select molecules"), (GCallback) gtk_project::popup_SelectModeMolecule }, { "RenderMenu", NULL, N_("Render") }, // ^^^^^^^^^^ // todo : convert these into toggle items so that the local setting is show in each of the graphics views... { "RenderQuickUpdate", NULL, N_("Quick Update Mode"), NULL, N_("Quick Update Mode switches into Wireframe rendering mode when doing interactive work"), (GCallback) gtk_oglview_wnd::popup_RenderQuickUpdate }, { "RendViewsMenu", NULL, N_("Views") }, // ^^^^^^^^^^^^^ { "RendViewsDeleteView", NULL, N_("Delete This View"), NULL, N_("Delete this graphics view"), (GCallback) gtk_oglview_wnd::popup_ViewsDeleteView }, { "RendViewsPushCRDSet", NULL, N_("Save a CRD-set (experimental)"), NULL, N_("Save a coordinate set"), (GCallback) gtk_oglview_wnd::popup_ViewsPushCRDSet }, { "RendViewsSuperimpose", NULL, N_("Superimpose CRD-sets (experimental)"), NULL, N_("Superimpose coordinate sets"), (GCallback) gtk_oglview_wnd::popup_ViewsSuperimpose }, { "RendViewsCreateMenu", NULL, N_("Create") }, // ^^^^^^^^^^^^^^^^^^^ { "RendViewsCreateWnd", NULL, N_("New Window"), NULL, N_("Create a new view using the current camera"), (GCallback) gtk_oglview_wnd::popup_ViewsNewWnd }, { "RendViewsCreateCam", NULL, N_("New Camera"), NULL, N_("Create a new view using a new camera"), (GCallback) gtk_oglview_wnd::popup_ViewsNewCam }, { "RendViewsCreateELD", NULL, N_("Energy-level Diagram"), NULL, N_("Create a new energy-level diagram view"), (GCallback) gtk_project::popup_ViewsNewELD }, { "RendViewsCreateSSC", NULL, N_("Secondary Structure Constraints"), NULL, N_("Create a new secondary structure constraints view"), (GCallback) gtk_project::popup_ViewsNewSSC }, { "RendLightsMenu", NULL, N_("Lights") }, // ^^^^^^^^^^^^^^ { "RendLightsNewLight", NULL, N_("Create New Light"), NULL, N_("Create a new light object"), (GCallback) gtk_oglview_wnd::popup_LightsNewLight }, // todo : convert these into toggle items so that the local setting is show in each of the graphics views... { "RendLightsEnableLocLights", NULL, N_("Enable Local Lights"), NULL, N_("Switch on/off the local light objects"), (GCallback) gtk_oglview_wnd::popup_LightsSwitchLoc }, { "RendLightsEnableGlobLights", NULL, N_("Enable Global Lights"), NULL, N_("Switch on/off the global light objects"), (GCallback) gtk_oglview_wnd::popup_LightsSwitchGlob }, { "RendRenderMenu", NULL, N_("Render Mode") }, // ^^^^^^^^^^^^^^ // todo : convert these into toggle items so that the local setting is show in each of the graphics views... { "RendRenderBallStick", NULL, N_("Ball & Stick"), NULL, N_("Display atoms and bonds using Ball & Stick mode"), (GCallback) gtk_project::popup_RModeBallStick }, { "RendRenderVanDerWaals", NULL, N_("van der Waals"), NULL, N_("Display atoms and bonds using van der Waals mode"), (GCallback) gtk_project::popup_RModeVanDerWaals }, { "RendRenderCylinders", NULL, N_("Cylinders"), NULL, N_("Display atoms and bonds using Cylinders mode"), (GCallback) gtk_project::popup_RModeCylinders }, { "RendRenderWireframe", NULL, N_("Wireframe"), NULL, N_("Display atoms and bonds using Wireframe mode"), (GCallback) gtk_project::popup_RModeWireframe }, { "RendRenderNothing", NULL, N_("Nothing"), NULL, N_("Do not display atoms and bonds"), (GCallback) gtk_project::popup_RModeNothing }, { "RendColorMenu", NULL, N_("Color Mode") }, // ^^^^^^^^^^^^^ // todo : convert these into toggle items so that the local setting is show in each of the graphics views... { "RendColorElement", NULL, N_("Element"), NULL, N_("Color atoms and bonds by element"), (GCallback) gtk_project::popup_CModeElement }, { "RendColorSecStruct", NULL, N_("Sec-Struct"), NULL, N_("Color atoms and bonds by secondary-structure state"), (GCallback) gtk_project::popup_CModeSecStruct }, { "RendColorHydPhob", NULL, N_("Hydrophobicity"), NULL, N_("Color atoms and bonds by hydrophobicity (experimental)"), (GCallback) gtk_project::popup_CModeHydPhob }, { "RendLabelMenu", NULL, N_("Label Mode") }, // ^^^^^^^^^^^^^ // todo : convert these into toggle items so that the local setting is show in each of the graphics views... { "RendLabelIndex", NULL, N_("Index"), NULL, N_("Label atoms by atom index"), (GCallback) gtk_project::popup_LModeIndex }, { "RendLabelElement", NULL, N_("Element"), NULL, N_("Label atoms by element"), (GCallback) gtk_project::popup_LModeElement }, { "RendLabelFCharge", NULL, N_("Formal Charge"), NULL, N_("Label atoms by formal charge"), (GCallback) gtk_project::popup_LModeFCharge }, { "RendLabelPCharge", NULL, N_("Partial Charge"), NULL, N_("Label atoms by partial charge"), (GCallback) gtk_project::popup_LModePCharge }, { "RendLabelAtomType", NULL, N_("Atom Type"), NULL, N_("Label atoms by atom type"), (GCallback) gtk_project::popup_LModeAtomType }, { "RendLabelBuilderID", NULL, N_("Builder ID"), NULL, N_("Label atoms by sequence builder ID"), (GCallback) gtk_project::popup_LModeBuilderID }, { "RendLabelBondType", NULL, N_("Bond Type"), NULL, N_("Label bonds by bond type"), (GCallback) gtk_project::popup_LModeBondType }, { "RendLabelResidue", NULL, N_("Residue"), NULL, N_("Label by residue"), (GCallback) gtk_project::popup_LModeResidue }, { "RendLabelSecStruct", NULL, N_("Sec-Struct"), NULL, N_("Label by secondary structure state"), (GCallback) gtk_project::popup_LModeSecStruct }, { "RendLabelNothing", NULL, N_("Nothing"), NULL, N_("Do not show labels"), (GCallback) gtk_project::popup_LModeNothing }, { "RendProjectionMenu", NULL, N_("Projection") }, // ^^^^^^^^^^^^^^^^^^ // todo : convert these into toggle items so that the local setting is show in each of the graphics views... { "RendProjOrthographic", NULL, N_("Orthographic"), NULL, N_("Use orthographic projection"), (GCallback) gtk_oglview_wnd::popup_ProjOrthographic }, { "RendProjPerspective", NULL, N_("Perspective"), NULL, N_("Use perspective projection"), (GCallback) gtk_oglview_wnd::popup_ProjPerspective }, // todo : convert these into toggle items so that the local setting is show in each of the graphics views... // todo : add more color combinations ; red/green red/blue ; any others needed??? { "RendProjSterRedBlue", NULL, N_("Red-Blue Stereo"), NULL, N_("Use red-blue stereo mode"), (GCallback) gtk_oglview_wnd::popup_ProjSterRedBlue }, { "RendProjSterRelaxed", NULL, N_("Relaxed-Eye Stereo"), NULL, N_("Use relaxed-eye stereo mode"), (GCallback) gtk_oglview_wnd::popup_ProjSterRelaxed }, { "ObjectsMenu", NULL, N_("Objects") }, // ^^^^^^^^^^^ { "ObjectsRibbon", NULL, N_("Ribbon"), NULL, N_("Create a Ribbon object for displaying peptides/proteins"), (GCallback) gtk_project::popup_ObjRibbon }, { "ObjectsEPlane", NULL, N_("ESP-plane"), NULL, N_("Create an ESP-plane object"), (GCallback) gtk_project::popup_ObjEPlane }, { "ObjectsEVolume", NULL, N_("volume-rendered ESP"), NULL, N_("Create a volume-rendered ESP object"), (GCallback) gtk_project::popup_ObjEVolume }, { "ObjectsESurface", NULL, N_("ESP-surface"), NULL, N_("Create an ESP-surface object"), (GCallback) gtk_project::popup_ObjESurface }, { "ObjectsEVDWSurface", NULL, N_("ESP-colored vdW-surface"), NULL, N_("Create an ESP-colored vdW-surface object"), (GCallback) gtk_project::popup_ObjEVDWSurface }, { "ObjectsEDPlane", NULL, N_("Electron density plane"), NULL, N_("Create an Electron density plane object"), (GCallback) gtk_project::popup_ObjEDPlane }, { "ObjectsEDSurface", NULL, N_("Electron density surface"), NULL, N_("Create an Electron density surface object"), (GCallback) gtk_project::popup_ObjEDSurface }, { "ObjectsMOPlane", NULL, N_("Molecular orbital plane"), NULL, N_("Create a Molecular orbital plane object"), (GCallback) gtk_project::popup_ObjMOPlane }, { "ObjectsMOVolume", NULL, N_("Molecular orbital volume"), NULL, N_("Create a Molecular orbital volume object"), (GCallback) gtk_project::popup_ObjMOVolume }, { "ObjectsMOSurface", NULL, N_("Molecular orbital surface"), NULL, N_("Create a Molecular orbital surface object"), (GCallback) gtk_project::popup_ObjMOSurface }, { "ObjectsMODPlane", NULL, N_("MO-density plane"), NULL, N_("Create an MO-density plane object"), (GCallback) gtk_project::popup_ObjMODPlane }, { "ObjectsMODVolume", NULL, N_("MO-density volume"), NULL, N_("Create an MO-density volume object"), (GCallback) gtk_project::popup_ObjMODVolume }, { "ObjectsMODSurface", NULL, N_("MO-density surface"), NULL, N_("Create an MO-density surface object"), (GCallback) gtk_project::popup_ObjMODSurface }, { "ObjectsDeleteCurrent", NULL, N_("Delete Current Object"), NULL, N_("Delete the currently selected object"), (GCallback) gtk_project::popup_ObjectsDeleteCurrent }, { "ComputeMenu", NULL, N_("Compute") }, // ^^^^^^^^^^^ { "CompSetup", NULL, N_("Setup..."), NULL, "Setup or change the comp.chem. method in use", (GCallback) gtk_project::popup_CompSetup }, { "CompEnergy", NULL, N_("Energy"), NULL, "Compute a single-point energy", (GCallback) gtk_project::popup_CompEnergy }, { "CompGeomOpt", NULL, N_("Geometry Optimization..."), NULL, "Do a geometry optimization run", (GCallback) gtk_project::popup_CompGeomOpt }, { "CompMolDyn", NULL, N_("Molecular Dynamics..."), NULL, "Do a molecular dynamics run", (GCallback) gtk_project::popup_CompMolDyn }, { "CompRandomSearch", NULL, N_("Random Conformational Search..."), NULL, "Do a random conformational search", (GCallback) gtk_project::popup_CompRandomSearch }, { "CompSystematicSearch", NULL, N_("Systematic Conformational Search..."), NULL, "Do a random conformational search", (GCallback) gtk_project::popup_CompSystematicSearch }, { "CompMonteCarloSearch", NULL, N_("Monte Carlo Search..."), NULL, "Do a Monte Carlo type conformational search", (GCallback) gtk_project::popup_CompMonteCarloSearch }, { "CompTorEnePlot1D", NULL, N_("Plot Energy vs. 1 Torsion Angle..."), NULL, "...todo...", (GCallback) gtk_project::popup_CompTorsionEnergyPlot1D }, { "CompTorEnePlot2D", NULL, N_("Plot Energy vs. 2 Torsion Angles..."), NULL, "...todo...", (GCallback) gtk_project::popup_CompTorsionEnergyPlot2D }, { "CompPopAnaESP", NULL, N_("Population Analysis (ESP)"), NULL, "...todo...", (GCallback) gtk_project::popup_CompPopAnaElectrostatic }, { "CompTransitionSS", NULL, N_("Transition State Search..."), NULL, "...todo...", (GCallback) gtk_project::popup_CompTransitionStateSearch }, { "CompStationarySS", NULL, N_("Stationary State Search..."), NULL, "...todo...", (GCallback) gtk_project::popup_CompStationaryStateSearch }, { "CompFormula", NULL, N_("Formula"), NULL, "...todo...", (GCallback) gtk_project::popup_CompFormula }, { "CompUC_SetFormalCharge", NULL, "UnderConstruction ; RS ; Set Formal Charge", NULL, "...todo...", (GCallback) gtk_project::popup_CompSetFormalCharge }, { "CompUC_CreateRS", NULL, "UnderConstruction ; RS ; make RS", NULL, "...todo...", (GCallback) gtk_project::popup_CompCreateRS }, { "CompUC_CycleRS", NULL, "UnderConstruction ; RS ; cycle RS", NULL, "...todo...", (GCallback) gtk_project::popup_CompCycleRS }, { "TrajView", NULL, N_("MD Trajectory Viewer..."), NULL, "...todo...", (GCallback) gtk_project::popup_TrajView }, { "SetOrbital", NULL, N_("Set Current Orbital"), NULL, "...todo...", (GCallback) gtk_project::popup_SetOrbital }, { "BuildMenu", NULL, N_("Build") }, // ^^^^^^^^^ { "BuildSolvateBox", NULL, N_("Solvate Box..."), NULL, "...todo...", (GCallback) gtk_project::popup_SolvateBox }, { "BuildSolvateSphere", NULL, N_("Solvate Sphere..."), NULL, "...todo...", (GCallback) gtk_project::popup_SolvateSphere }, { "BuildSeqBuildAmino", NULL, N_("Sequence Builder (amino)..."), NULL, "...todo...", (GCallback) gtk_project::popup_BuilderAmino }, { "BuildSeqBuildNucleic", NULL, N_("Sequence Builder (nucleic)..."), NULL, "...todo...", (GCallback) gtk_project::popup_BuilderNucleic }, { "BuildCenter", NULL, N_("Center"), NULL, "...todo...", (GCallback) gtk_project::popup_Center }, { "BuildClear", NULL, N_("Zap All"), NULL, "...todo...", (GCallback) gtk_project::popup_ClearAll }, { "BuildHydrogensMenu", NULL, N_("Hydrogens") }, // ^^^^^^^^^^^^^^^^^^ { "BuildHydrogensAdd", NULL, N_("Add"), NULL, "...todo...", (GCallback) gtk_project::popup_HAdd }, { "BuildHydrogensRemove", NULL, N_("Remove"), NULL, "...todo...", (GCallback) gtk_project::popup_HRemove }, { "EnterCommand", NULL, N_("Enter a Command..."), NULL, "...todo...", (GCallback) gtk_project::popup_EnterCommand }, }; const char * gtk_oglview_wnd::ui_description = "" " " " " " " " " " " #ifdef ENABLE_OPENBABEL " " #endif // ENABLE_OPENBABEL " " " " #ifdef ENABLE_OPENBABEL " " #endif // ENABLE_OPENBABEL //" " " " " " " " //" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "" "" "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ""; gtk_oglview_wnd::gtk_oglview_wnd(bool det_flag) : gtk_wnd(det_flag) { GtkActionGroup * action_group = gtk_action_group_new("ggvActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), GTK_WIDGET(view_widget)); // GtkUIManager * ui_manager = gtk_app::GetUIManager(); // does not give us independent menu widgets... GtkUIManager * ui_manager = gtk_ui_manager_new(); gtk_ui_manager_insert_action_group(ui_manager, action_group, 0); GError * error = NULL; if (!gtk_ui_manager_add_ui_from_string(ui_manager, ui_description, -1, & error)) { g_message(_("ERROR : Building popup-menu for gtk_oglview_wnd failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } popupmenu = gtk_ui_manager_get_widget(ui_manager, "/ggvMenu"); my_stereo_dialog = NULL; timer_id = 0; } gtk_oglview_wnd::~gtk_oglview_wnd(void) { if (my_stereo_dialog != NULL) { delete my_stereo_dialog; my_stereo_dialog = NULL; } if (timer_id != 0) SetTimerOFF(); } bool gtk_oglview_wnd::IsTimerON(void) { return (timer_id != 0); } void gtk_oglview_wnd::SetTimerON(int msec) { if (timer_id != 0) SetTimerOFF(); // G_PRIORITY_HIGH_IDLE = 100 // resizing operations = HIGH_IDLE + 10 = 110 // redrawing operations = HIGH_IDLE + 20 = 120 // G_PRIORITY_DEFAULT_IDLE = 200 = HIGH_IDLE + 100 const gint priority = G_PRIORITY_HIGH_IDLE + 50; timer_id = g_timeout_add_full(priority, msec, (GSourceFunc) TimerHandler, view_widget, NULL); } void gtk_oglview_wnd::SetTimerOFF(void) { if (timer_id != 0) { g_source_remove(timer_id); timer_id = 0; } } gboolean gtk_oglview_wnd::TimerHandler(GtkWidget * widget) { gtk_wnd * wnd = iv_Find(widget); if (!wnd) return TRUE; oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); if (!wcl) return TRUE; GLfloat anim[3] = { wcl->animX, wcl->animY, 0.0 }; custom_transformer_client * ctc = custom_app::GetAppC()->GetPrj(); if (ctc->tc_object_ref != NULL) { ctc->tc_object_ref->OrbitObject(anim, * wcl->GetCam()); wnd->RequestUpdate(true); } return TRUE; } // the popup-menu callbacks start here ; the popup-menu callbacks start here // the popup-menu callbacks start here ; the popup-menu callbacks start here // the popup-menu callbacks start here ; the popup-menu callbacks start here void gtk_oglview_wnd::popup_ProjOrthographic(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); wcl->cam->ortho = true; //wcl->cam->stereo_mode = false; //wcl->cam->stereo_relaxed = false; gtk_app::GetPrjX()->UpdateGraphicsViews(wcl->cam); } void gtk_oglview_wnd::popup_ProjPerspective(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); wcl->cam->ortho = false; //wcl->cam->stereo_mode = false; //wcl->cam->stereo_relaxed = false; gtk_app::GetPrjX()->UpdateGraphicsViews(wcl->cam); } void gtk_oglview_wnd::popup_ProjSterRedBlue(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); gtk_oglview_wnd * xwnd = dynamic_cast(wnd); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); // this works as a toggle item!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (wcl->cam->stereo_mode && !wcl->cam->stereo_relaxed) { wcl->cam->stereo_mode = false; // turn OFF.. wcl->cam->stereo_relaxed = false; if (xwnd->my_stereo_dialog) { gtk_stereo_dialog * tmpdlg = xwnd->my_stereo_dialog; xwnd->my_stereo_dialog = NULL; // disconnect... tmpdlg->CloseDialog(); delete tmpdlg; } } else { wcl->cam->stereo_mode = true; // turn ON!!! wcl->cam->stereo_relaxed = false; if (!xwnd->my_stereo_dialog) xwnd->my_stereo_dialog = new gtk_stereo_dialog(xwnd); xwnd->my_stereo_dialog->SetScaling(0.25); } gtk_app::GetPrjX()->UpdateGraphicsViews(wcl->cam); } void gtk_oglview_wnd::popup_ProjSterRelaxed(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); gtk_oglview_wnd * xwnd = dynamic_cast(wnd); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); // this works as a toggle item!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (wcl->cam->stereo_mode && wcl->cam->stereo_relaxed) { wcl->cam->stereo_mode = false; // turn OFF.. wcl->cam->stereo_relaxed = false; if (xwnd->my_stereo_dialog) { gtk_stereo_dialog * tmpdlg = xwnd->my_stereo_dialog; xwnd->my_stereo_dialog = NULL; // disconnect... tmpdlg->CloseDialog(); delete tmpdlg; } } else { wcl->cam->stereo_mode = true; // turn ON!!! wcl->cam->stereo_relaxed = true; if (!xwnd->my_stereo_dialog) xwnd->my_stereo_dialog = new gtk_stereo_dialog(xwnd); xwnd->my_stereo_dialog->SetScaling(0.50); } gtk_app::GetPrjX()->UpdateGraphicsViews(wcl->cam); } void gtk_oglview_wnd::popup_RenderQuickUpdate(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); wcl->quick_update = !wcl->quick_update; } void gtk_oglview_wnd::popup_ViewsAttachDetach(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetAppX()->AttachDetachView(wcl); } void gtk_oglview_wnd::popup_ViewsNewWnd(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); bool detached = true; gtk_app::GetPrjX()->AddGraphicsClient(wcl->ccam, detached); } void gtk_oglview_wnd::popup_ViewsNewCam(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); bool detached = true; gtk_app::GetPrjX()->AddGraphicsClient(NULL, detached); } void gtk_oglview_wnd::popup_ViewsDeleteView(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_app::GetPrjX()->RemoveGraphicsClient(wcl, false); } void gtk_oglview_wnd::popup_ViewsPushCRDSet(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); gtk_project * prjX = gtk_app::GetPrjX(); prjX->PushCRDSets(1); i32s tmp1 = ((i32s) prjX->GetCRDSetCount()) - 1; while (tmp1 > 0) { prjX->CopyCRDSet(tmp1 - 1, tmp1); tmp1 -= 1; } int last_crdset = ((int) prjX->GetCRDSetCount()) - 1; prjX->SetCRDSetVisible(last_crdset, true); prjX->UpdateAllGraphicsViews(); } void gtk_oglview_wnd::popup_ViewsSuperimpose(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); #ifdef ENABLE_OPENBABEL base_app::GetAppB()->ErrorMessage("\ FIXME : superimpose conflicts with openbabel?\n\ g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) 20050701\n\ compiler says superimpose is undeclared???"); #else f64 sum = 0.0; for (i32s n1 = 1;n1 < (i32s) custom_app::GetPrj()->GetCRDSetCount();n1++) { superimpose si(custom_app::GetPrj(), 0, n1); for (i32s n2 = 0;n2 < 100;n2++) { si.TakeCGStep(conjugate_gradient::Newton2An); } f64 rms = si.GetRMS(); sum += rms; cout << _("sets 0 <-> ") << n1 << _(" RMS = ") << rms << endl; si.Transform(); // modify the coordinates!!! } f64 average = sum / ((f64) custom_app::GetPrj()->GetCRDSetCount() - 1); cout << _("average RMS = ") << average << endl; #endif // ENABLE_OPENBABEL gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } void gtk_oglview_wnd::popup_LightsNewLight(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); oglview_wcl * wcl = dynamic_cast(wnd->GetClient()); static const char command[] = "add light"; new gtk_command_dialog(gtk_app::GetPrjX(), wcl, command); } void gtk_oglview_wnd::popup_LightsSwitchLoc(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); custom_app::GetPrj()->DoSwitchLocalLights(wnd->GetClient()->GetCam(), false); } void gtk_oglview_wnd::popup_LightsSwitchGlob(GtkWidget *, gpointer data) { gtk_wnd * wnd = iv_Find((GtkWidget *) data); custom_app::GetPrj()->DoSwitchGlobalLights(wnd->GetClient()->GetCam(), false); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_glade_dialog.cpp0000644000175000017500000000345611634160016014745 00000000000000// GTK_GLADE_DIALOG.CPP // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_glade_dialog.h" #include "project.h" #include #include using namespace std; /*################################################################################################*/ gtk_glade_dialog::gtk_glade_dialog(const char * xmlfile) { ostringstream str; str << project::appdata_path << DIR_SEPARATOR << project::appversion << DIR_SEPARATOR << xmlfile << ends; xml = glade_xml_new(str.str().c_str(), NULL, NULL); if (xml == NULL) { ostringstream msg; msg << "could not read glade XML file : " << str.str().c_str() << ends; assertion_failed(__FILE__, __LINE__, msg.str().c_str()); } } gtk_glade_dialog::~gtk_glade_dialog(void) { // need to do anything here to clean the xml object??? // need to do anything here to clean the xml object??? // need to do anything here to clean the xml object??? } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_simple_dialogs.cpp0000644000175000017500000004055311634160016015344 00000000000000// GTK_SIMPLE_DIALOGS.CPP // Copyright (C) 1999 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_simple_dialogs.h" #include #include #include "gtk_project.h" #include "gtk_trajview_dialog.h" #include "local_i18n.h" #include using namespace std; /*################################################################################################*/ gtk_element_dialog * gtk_element_dialog::current_object = NULL; GtkWidget * gtk_element_dialog::dialog = NULL; GtkWidget * gtk_element_dialog::current_element_widget = NULL; gtk_element_dialog::gtk_element_dialog(void) { current_object = this; dialog = gtk_dialog_new(); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); // request a modal window. gtk_window_set_title(GTK_WINDOW(dialog), _("Set Current Element")); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); GtkWidget * table = gtk_table_new(21, 38, TRUE); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), table); int attachdata[ELEMENT_SYMBOLS][2] = { { 1, 1 }, { 35, 1 }, { 1, 3 }, { 3, 3 }, { 25, 3 }, // B { 27, 3 }, { 29, 3 }, { 31, 3 }, { 33, 3 }, { 35, 3 }, // Ne { 1, 5 }, { 3, 5 }, { 25, 5 }, { 27, 5 }, { 29, 5 }, // P { 31, 5 }, { 33, 5 }, { 35, 5 }, { 1, 7 }, { 3, 7 }, // Ca { 5, 7 }, { 7, 7 }, { 9, 7 }, { 11, 7 }, { 13, 7 }, // Mn { 15, 7 }, { 17, 7 }, { 19, 7 }, { 21, 7 }, { 23, 7 }, // Zn { 25, 7 }, { 27, 7 }, { 29, 7 }, { 31, 7 }, { 33, 7 }, // Br { 35, 7 }, { 1, 9 }, { 3, 9 }, { 5, 9 }, { 7, 9 }, // Zr { 9, 9 }, { 11, 9 }, { 13, 9 }, { 15, 9 }, { 17, 9 }, // Rh { 19, 9 }, { 21, 9 }, { 23, 9 }, { 25, 9 }, { 27, 9 }, // Sn { 29, 9 }, { 31, 9 }, { 33, 9 }, { 35, 9 }, { 1, 11 }, // Cs { 3, 11 }, { 5, 11 }, { 9, 16 }, { 11, 16 }, { 13, 16 }, // Nd { 15, 16 }, { 17, 16 }, { 19, 16 }, { 21, 16 }, { 23, 16 }, // Tb { 25, 16 }, { 27, 16 }, { 29, 16 }, { 31, 16 }, { 33, 16 }, // Yb { 35, 16 }, { 7, 11 }, { 9, 11 }, { 11, 11 }, { 13, 11 }, // Re { 15, 11 }, { 17, 11 }, { 19, 11 }, { 21, 11 }, { 23, 11 }, // Hg { 25, 11 }, { 27, 11 }, { 29, 11 }, { 31, 11 }, { 33, 11 }, // At { 35, 11 }, { 1, 13 }, { 3, 13 }, { 5, 13 }, { 9, 18 }, // Th { 11, 18 }, { 13, 18 }, { 15, 18 }, { 17, 18 }, { 19, 18 }, // Am { 21, 18 }, { 23, 18 }, { 25, 18 }, { 27, 18 }, { 29, 18 }, // Fm { 31, 18 }, { 33, 18 }, { 35, 18 }, { 7, 13 }, { 9, 13 }, // Db { 11, 13 }, { 13, 13 }, { 15, 13 }, { 17, 13 }, { 19, 13 } }; GtkSignalFunc sf = (GtkSignalFunc) gtk_element_dialog::SignalHandler; GtkWidget * button; for (int n1 = 0; n1 < ELEMENT_SYMBOLS; n1++) { element tmp_element(n1 + 1); button = gtk_toggle_button_new_with_label(tmp_element.GetSymbol()); if (n1 + 1 == element::current_element.GetAtomicNumber()) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), true); current_element_widget = button; // do we need this??? } gtk_signal_connect(GTK_OBJECT(button), "clicked", sf, (void *) (n1 + 1)); gtk_widget_show(button); int x = attachdata[n1][0]; int y = attachdata[n1][1]; gtk_table_attach_defaults(GTK_TABLE(table), button, x, x + 2, y, y + 2); } gtk_widget_show(table); gtk_widget_show(dialog); } gtk_element_dialog::~gtk_element_dialog(void) { } void gtk_element_dialog::SignalHandler(GtkWidget *, int signal) { element::current_element = element(signal); cout << _("Current element is now ") << element::current_element.GetSymbol() << "." << endl; // which prj??? gtk_widget_destroy(dialog); delete current_object; // the object was created with new!!! } /*################################################################################################*/ gtk_bondtype_dialog * gtk_bondtype_dialog::current_object = NULL; GtkWidget * gtk_bondtype_dialog::dialog = NULL; GtkWidget * gtk_bondtype_dialog::current_bond_widget = NULL; gtk_bondtype_dialog::gtk_bondtype_dialog(void) { current_object = this; dialog = gtk_dialog_new(); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); // request a modal window. gtk_window_set_title(GTK_WINDOW(dialog), _("Set Current Bondtype")); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); GtkWidget * table = gtk_table_new((2 + 4 + 1), 6, TRUE); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), table); char bt_symbols[4] = { 'S', 'D', 'T', 'C' }; GtkSignalFunc sf = (GtkSignalFunc) gtk_bondtype_dialog::SignalHandler; GtkWidget * button; int x = 1; int y = 0; for (int n1 = 0;n1 < 4;n1++) { bondtype tmp_bondtype(bt_symbols[n1]); button = gtk_toggle_button_new_with_label(tmp_bondtype.GetString()); if (bt_symbols[n1] == bondtype::current_bondtype.GetSymbol1()) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), true); current_bond_widget = button; // do we need this?? } i32s long_bt_symbol = bt_symbols[n1]; // convert 8bit -> 32bit gtk_signal_connect(GTK_OBJECT(button), "clicked", sf, (void *) long_bt_symbol); y += 1; gtk_table_attach_defaults(GTK_TABLE(table), button, x, x + 4, y, y + 1); gtk_widget_show(button); if (n1 == 2) // add a separator ; 20050415 { button = gtk_hseparator_new(); y += 1; gtk_table_attach_defaults(GTK_TABLE(table), button, x, x + 4, y, y + 1); gtk_widget_show(button); } } gtk_widget_show(table); gtk_widget_show(dialog); } gtk_bondtype_dialog::~gtk_bondtype_dialog(void) { } void gtk_bondtype_dialog::SignalHandler(GtkWidget *, int signal) { bondtype::current_bondtype = bondtype((char) signal); cout << _("Current bondtype is now ") << bondtype::current_bondtype.GetString() << "." << endl; // which prj??? gtk_widget_destroy(dialog); delete current_object; // the object was created with new!!! } /*################################################################################################*/ const char * make_tmp_filename(gtk_project * prj) { static char tmp_filename[256]; prj->GetFullProjectFileName(tmp_filename, 256); return tmp_filename; } GtkWidget * gtk_file_dialog::dialog; gtk_file_dialog::gtk_file_dialog(const char * title, const char * filter, const char * def_fn) { dialog = gtk_file_selection_new(title); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); // request a modal window. if (filter != NULL) gtk_file_selection_complete(GTK_FILE_SELECTION(dialog), filter); if (def_fn != NULL) gtk_file_selection_set_filename(GTK_FILE_SELECTION(dialog), def_fn); gtk_signal_connect(GTK_OBJECT(dialog), "destroy", GTK_SIGNAL_FUNC(DestroyHandler), this); gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(OkButtonHandler), this); gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(CancelButtonHandler), this); gtk_widget_show(dialog); } gtk_file_dialog::~gtk_file_dialog(void) { } void gtk_file_dialog::DestroyHandler(GtkWidget *, gpointer data) { gtk_file_dialog * ref = (gtk_file_dialog *) data; delete ref; // the object was created using new!!! } void gtk_file_dialog::OkButtonHandler(GtkWidget *, gpointer data) { gtk_file_dialog * ref = (gtk_file_dialog *) data; // do not close the dialog if we had for example wrong file type... if (ref->OkEvent(gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog)))) { gtk_widget_destroy(dialog); } } void gtk_file_dialog::CancelButtonHandler(GtkWidget *, gpointer data) { gtk_file_dialog * ref = (gtk_file_dialog *) data; ref->CancelEvent(); gtk_widget_destroy(dialog); } /*################################################################################################*/ const char gtk_file_open_dialog::title[] = "Open Project File"; gtk_project * gtk_file_open_dialog::prj = NULL; gtk_file_open_dialog::gtk_file_open_dialog(gtk_project * p1) : gtk_file_dialog(title, NULL, NULL) { prj = p1; } gtk_file_open_dialog::~gtk_file_open_dialog(void) { } bool gtk_file_open_dialog::OkEvent(const char * filename) { if (prj == NULL) { gtk_app::GetAppX()->SetNewProject(); } bool open = prj->IsEmpty(); // open, not insert ifstream ifile; ifile.open(filename, ios::in); ReadGPR(* prj, ifile, !open); ifile.close(); if (open) // we're "switching" to this file { prj->ParseProjectFileNameAndPath(filename); char buffer[256]; prj->GetProjectFileName(buffer, 256, true); // the file name change here is not yet properly working. // the project notebook widget should be stored (if not already) in gtk_project and // a call of UpdateAllWindowTitles() should change the labels. custom_app::GetAppC()->UpdateAllWindowTitles(); } else // we append this file to the current project { if (prj->selected_object != NULL) // if an object was selected, remove { // that selection and leave the newly added prj->selected_object = NULL; // atoms as selection; now the mouse tools } // also affect the newly added atoms! } prj->UpdateAllGraphicsViews(); return true; } void gtk_file_open_dialog::CancelEvent(void) { } /*################################################################################################*/ const char gtk_file_save_dialog::title[] = "Save Project File"; gtk_project * gtk_file_save_dialog::prj = NULL; gtk_file_save_dialog::gtk_file_save_dialog(gtk_project * p1) : gtk_file_dialog(title, FILENAME_FILTER, make_tmp_filename(p1)) { prj = p1; } gtk_file_save_dialog::~gtk_file_save_dialog(void) { } bool gtk_file_save_dialog::OkEvent(const char * filename) { if (prj == NULL) { assertion_failed(__FILE__, __LINE__, "prj == NULL"); } // should check to see if file already exists... prj->ParseProjectFileNameAndPath(filename); char buffer[256]; prj->GetProjectFileName(buffer, 256, true); custom_app::GetAppC()->UpdateAllWindowTitles(); char tmp_filename[256]; prj->GetFullProjectFileName(tmp_filename, 256); ofstream ofile; ofile.open(tmp_filename, ios::out); WriteGPR(* prj, ofile); ofile.close(); return true; } void gtk_file_save_dialog::CancelEvent(void) { } /*################################################################################################*/ const char gtk_file_save_graphics_dialog::title[] = "Save Graphics File - ps"; gtk_project * gtk_file_save_graphics_dialog::prj = NULL; gtk_file_save_graphics_dialog::gtk_file_save_graphics_dialog(gtk_project * p1) : gtk_file_dialog(title, "ps", make_tmp_filename(p1)) { prj = p1; } gtk_file_save_graphics_dialog::~gtk_file_save_graphics_dialog(void) { } bool gtk_file_save_graphics_dialog::OkEvent(const char * filename) { if (prj == NULL) { assertion_failed(__FILE__, __LINE__, "prj == NULL"); } // write graphics event // write graphics event // write graphics event return true; } void gtk_file_save_graphics_dialog::CancelEvent(void) { } /*################################################################################################*/ const char gtk_trajfile_dialog::title[] = "Open Trajectory File - traj"; gtk_project * gtk_trajfile_dialog::prj = NULL; gtk_trajfile_dialog::gtk_trajfile_dialog(gtk_project * p1) : gtk_file_dialog(title, NULL, NULL) { prj = p1; } gtk_trajfile_dialog::~gtk_trajfile_dialog(void) { } bool gtk_trajfile_dialog::OkEvent(const char * filename) { cout << "DEBUG : trying to open \"" << filename << "\"." << endl; prj->OpenTrajectory(filename); // check if there were problems with OpenTrajectory()?!?!?! // check if there were problems with OpenTrajectory()?!?!?! // check if there were problems with OpenTrajectory()?!?!?! static gtk_trajview_dialog * tvd = NULL; if (tvd != NULL) delete tvd; // how to safely release the memory... tvd = new gtk_trajview_dialog(prj); // ...right after the dialog is closed? // the dialog will call prj->CloseTrajectory() itself when closed!!! // the dialog will call prj->CloseTrajectory() itself when closed!!! // the dialog will call prj->CloseTrajectory() itself when closed!!! gtk_widget_destroy(dialog); // close the dialog -> must return false... return false; } void gtk_trajfile_dialog::CancelEvent(void) { } /*################################################################################################*/ const char gtk_importpdb_dialog::title[] = "Import File - Brookhaven PDB/ENT"; gtk_project * gtk_importpdb_dialog::prj = NULL; gtk_importpdb_dialog::gtk_importpdb_dialog(gtk_project * p1) : gtk_file_dialog(title, NULL, NULL) { prj = p1; } gtk_importpdb_dialog::~gtk_importpdb_dialog(void) { } bool gtk_importpdb_dialog::OkEvent(const char * filename) { if (prj != NULL) { prj->WarningMessage(_("This alternative PDB reader is designed to remove any gaps that might\nexist in the structure data. Therefore the sequence might be altered!")); prj->ParseProjectFileNameAndPath(filename); prj->importpdb_mdata = prj->readpdb_ReadMData(filename); prj->readpdb_ReadData(filename, prj->importpdb_mdata, -1); prj->UpdateAllGraphicsViews(); custom_app::GetAppC()->UpdateAllWindowTitles(); } return true; } void gtk_importpdb_dialog::CancelEvent(void) { } /*################################################################################################*/ gtk_project * gtk_command_dialog::prj; oglview_wcl * gtk_command_dialog::wcl; GtkWidget * gtk_command_dialog::dialog; GtkWidget * gtk_command_dialog::entry; gtk_command_dialog::gtk_command_dialog(gtk_project * p1, oglview_wcl * p2, const char * def_str) { prj = p1; wcl = p2; dialog = gtk_dialog_new(); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); // request a modal window. gtk_window_set_title(GTK_WINDOW(dialog), _("Command Interpreter")); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(dialog), 400, 50); gtk_container_set_border_width(GTK_CONTAINER(dialog), 10); gtk_signal_connect(GTK_OBJECT(dialog), "destroy", GTK_SIGNAL_FUNC(DestroyHandler), this); GtkWidget * vbox = gtk_vbox_new(TRUE, 5); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), vbox); entry = gtk_entry_new(); if (def_str != NULL) gtk_entry_set_text(GTK_ENTRY(entry), def_str); GtkWidget * hbox = gtk_hbox_new(TRUE, 5); gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); GtkWidget * button_ok = gtk_button_new_with_label(_("Execute")); gtk_signal_connect(GTK_OBJECT(button_ok), "clicked", GTK_SIGNAL_FUNC(OkButtonHandler), this); GtkWidget * button_cancel = gtk_button_new_with_label(_("Cancel")); gtk_signal_connect(GTK_OBJECT(button_cancel), "clicked", GTK_SIGNAL_FUNC(CancelButtonHandler), this); gtk_box_pack_start(GTK_BOX(hbox), button_ok, FALSE, TRUE, 0); gtk_widget_show(button_ok); gtk_box_pack_start(GTK_BOX(hbox), button_cancel, FALSE, TRUE, 0); gtk_widget_show(button_cancel); gtk_widget_show(hbox); gtk_widget_show(vbox); gtk_widget_show(dialog); } gtk_command_dialog::~gtk_command_dialog(void) { prj = NULL; wcl = NULL; } void gtk_command_dialog::DestroyHandler(GtkWidget *, gpointer data) { gtk_command_dialog * ref = (gtk_command_dialog *) data; delete ref; // the object was created using new!!! } void gtk_command_dialog::OkButtonHandler(GtkWidget *, gpointer data) { gtk_command_dialog * ref = (gtk_command_dialog *) data; const char * command = gtk_entry_get_text(GTK_ENTRY(ref->entry)); // first get rid of the dialog... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ gtk_widget_hide(dialog); // ...and then process the command string (if given). // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (strlen(command) > 0) prj->ProcessCommandString(wcl, command); gtk_widget_destroy(dialog); } void gtk_command_dialog::CancelButtonHandler(GtkWidget *, gpointer data) { gtk_command_dialog * ref = (gtk_command_dialog *) data; gtk_widget_destroy(dialog); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_rcpview_wnd.h0000644000175000017500000000302311634160016014334 00000000000000// GTK_RCPVIEW_WND.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef GTK_RCPVIEW_WND_H #define GTK_RCPVIEW_WND_H #include "gtk_wnd.h" /*################################################################################################*/ class gtk_rcpview_wnd : public gtk_wnd { private: static GtkActionEntry entries[]; static const char * ui_description; public: gtk_rcpview_wnd(bool); ~gtk_rcpview_wnd(void); static void popup_AttachDetach(GtkWidget *, gpointer); static void popup_DeleteView(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_RCPVIEW_WND_H // eof ghemical-3.0.0/src/gtk_geomopt_dialog.h0000644000175000017500000000333211634160016015001 00000000000000// GTK_GEOMOPT_DIALOG.H : write a short description here... // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_GEOMOPT_DIALOG_H #define GTK_GEOMOPT_DIALOG_H //#include "ghemicalconfig2.h" #include "gtk_glade_dialog.h" #include /*################################################################################################*/ class gtk_geomopt_dialog : public gtk_glade_dialog { protected: geomopt_param * param; GtkWidget * dialog; GtkWidget * entry_nsteps; GtkWidget * entry_grad; GtkWidget * entry_delta_e; public: gtk_geomopt_dialog(geomopt_param *); ~gtk_geomopt_dialog(void); static void handler_Destroy(GtkWidget *, gpointer); static void handler_ButtonOK(GtkWidget *, gpointer); static void handler_ButtonCancel(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_GEOMOPT_DIALOG_H // eof ghemical-3.0.0/src/p2dview_wcl.cpp0000644000175000017500000001705711634160016013734 00000000000000// P2DVIEW_WCL.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "p2dview_wcl.h" #include "project.h" #include "custom_app.h" #include "color.h" #include "local_i18n.h" #include #include using namespace std; /*################################################################################################*/ p2dview_wcl::p2dview_wcl(const char * s1, const char * s2, const char * sv) : ac_stor_wcl(new ogl_camera(ogl_ol_static(), 1.0)) { cam->ortho = true; cam->update_vdim = false; vdim[0] = (1.0 / 0.90) * 0.5; // X-scaling ; leave 5% margins... vdim[1] = (1.0 / 0.90) * 0.5; // Y-scaling ; leave 5% margins... cam->GetLD()->crd[0] = 0.50; // X-centering cam->GetLD()->crd[1] = 0.50; // Y-centering //const ogl_obj_loc_data * d = cam->GetSafeLD(); //cout << "cam crd = " << d->crd[0] << " " << d->crd[1] << " " << d->crd[2] << endl; //cout << "cam zdir = { " << d->zdir << " }" << endl << "cam ydir = { " << d->ydir << " }" << endl; if (!s1 || !strlen(s1)) assertion_failed(__FILE__, __LINE__, "invalid s1."); else { name1 = new char[strlen(s1) + 1]; strcpy(name1, s1); } if (!s2 || !strlen(s2)) assertion_failed(__FILE__, __LINE__, "invalid s2."); else { name2 = new char[strlen(s2) + 1]; strcpy(name2, s2); } if (!sv || !strlen(sv)) assertion_failed(__FILE__, __LINE__, "invalid sv."); else { namev = new char[strlen(sv) + 1]; strcpy(namev, sv); } } p2dview_wcl::~p2dview_wcl(void) { delete[] name1; delete[] name2; delete[] namev; // problem : lifetime of the camera object needs to be longer than // lifetime of this object since it is needed at the base class dtor. // solution : ask the base class to do the cleanup work for us... delete_cam_plz = true; } void p2dview_wcl::AddData(double c1, double c2, double v) { p2d_data newdata; newdata.ac_i = StoreAC(NULL); newdata.c1 = c1; newdata.c2 = c2; newdata.v = v; dv.push_back(newdata); } void p2dview_wcl::AddDataWithAC(double c1, double c2, double v, engine * eng) { p2d_data newdata; newdata.ac_i = StoreAC(eng); newdata.c1 = c1; newdata.c2 = c2; newdata.v = v; dv.push_back(newdata); } void p2dview_wcl::Finalize(void) { if (dv.empty()) return; min1 = max1 = dv[0].c1; min2 = max2 = dv[0].c2; minv = maxv = dv[0].v; for (i32u n1 = 1;n1 < dv.size();n1++) { if (dv[n1].c1 < min1) min1 = dv[n1].c1; if (dv[n1].c1 > max1) max1 = dv[n1].c1; if (dv[n1].c2 < min2) min2 = dv[n1].c2; if (dv[n1].c2 > max2) max2 = dv[n1].c2; if (dv[n1].v < minv) minv = dv[n1].v; // for "maxv" we actually calculate the average value instead of maximum value. // the max value can be very high especially if geomopt is skipped -> unreasonable scaling. maxv += dv[n1].v; // average! } maxv /= dv.size(); // average! } void p2dview_wcl::ButtonEvent(int x, int y) { if (custom_app::GetCurrentMouseTool() == custom_app::mtZoom) { mouseinfo::latest_x = x; mouseinfo::latest_y = y; } else { base_wnd * wnd = GetWnd(); project * prj = custom_app::GetAppC()->GetPrj(); if (!(wnd->GetWidth() > 1)) return; fGL sx = 1.10 * (fGL) x / (fGL) wnd->GetWidth() - 0.05; if (sx < 0.0) return; if (sx > 1.0) return; if (!(wnd->GetHeight() > 1)) return; fGL sy = 1.10 * (fGL) y / (fGL) wnd->GetHeight() - 0.05; if (sy < 0.0) return; if (sy > 1.0) return; // WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // this is not yet a generic implementation ; it is assumed that the data points // have been added in a certain order; see project::DoEnergyPlot2D() how to add them... const int dssz = (int) sqrt((double) dv.size()); // square datasets only!!! int index = (int) (((int) (sx * dssz)) * dssz + sy * dssz); if (index < 0 || index >= (int) dv.size()) return; // ok, we have a valid selection ; show the data!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ostringstream str1; str1 << name1 << " = " << dv[index].c1 << " " << name2 << " = " << dv[index].c2 << " " << namev << " = " << dv[index].v << endl << ends; prj->PrintToLog(str1.str().c_str()); if (dv[index].ac_i != NOT_DEFINED) ShowAC(dv[index].ac_i); } } void p2dview_wcl::MotionEvent(int x, int y) { if (custom_app::GetCurrentMouseTool() == custom_app::mtZoom) { int dy = mouseinfo::latest_y - y; mouseinfo::latest_x = x; mouseinfo::latest_y = y; base_wnd * wnd = GetWnd(); project * prj = custom_app::GetAppC()->GetPrj(); const fGL scale = maxv - minv; maxv += mouseinfo::dist_sensitivity * scale * (fGL) dy / (fGL) wnd->GetHeight(); ostringstream str1; str1 << _("now scaling the colours to range ") << (maxv - minv) << _(" kJ/mol") << endl << ends; prj->PrintToLog(str1.str().c_str()); wnd->RequestUpdate(false); } else { ButtonEvent(x, y); } } void p2dview_wcl::UpdateWnd(void) { base_wnd * wnd = GetWnd(); if (!wnd || wnd->GetWidth() < 0 || !cam) return; wnd->SetCurrent(); cam->RenderScene(wnd, false, false); } void p2dview_wcl::InitGL(void) { // all classes that inherit pangofont_wcl must call ogl_InitPangoFont()!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ogl_InitPangoFont("courier 12"); } void p2dview_wcl::RenderGL(rmode) { if (dv.empty()) return; glInitNames(); // WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // this is not yet a generic implementation ; it is assumed that the data points // have been added in a certain order; see project::DoEnergyPlot2D() how to add them... const int dssz = (int) sqrt((double) dv.size()); // square datasets only!!! // 20061024 ; it seems that the X-coordinate must be inverted... // origo of the coordinate system is at the upper-left corner. for (int n1 = 0;n1 < dssz - 1;n1++) { for (int n2 = 0;n2 < dssz - 1;n2++) { glBegin(GL_QUADS); fGL x1 = 1.0 - (dv[(n1 + 0) * dssz + (n2 + 0)].c1 - min1) / (max1 - min1); // invX fGL y1 = (dv[(n1 + 0) * dssz + (n2 + 0)].c2 - min2) / (max2 - min2); fGL x2 = 1.0 - (dv[(n1 + 1) * dssz + (n2 + 1)].c1 - min1) / (max1 - min1); // invX fGL y2 = (dv[(n1 + 1) * dssz + (n2 + 1)].c2 - min2) / (max2 - min2); SetColor(dv[(n1 + 0) * dssz + (n2 + 0)].v); glVertex3f(x1, y1, 0.1); SetColor(dv[(n1 + 1) * dssz + (n2 + 0)].v); glVertex3f(x2, y1, 0.1); SetColor(dv[(n1 + 1) * dssz + (n2 + 1)].v); glVertex3f(x2, y2, 0.1); SetColor(dv[(n1 + 0) * dssz + (n2 + 1)].v); glVertex3f(x1, y2, 0.1); glEnd(); } } } void p2dview_wcl::SetColor(GLfloat v) { GLfloat color[4]; GLfloat cv = (v - minv) / (maxv - minv); GetRBRange1(cv * cv, 1.0, color); glColor3fv(color); } /*################################################################################################*/ // eof ghemical-3.0.0/src/ogl_ribbon.h0000644000175000017500000000607111634160016013262 00000000000000// OGL_RIBBON.H : ribbon models for peptides/proteins. // Copyright (C) 1998 Tommi Hassinen, Jarno Huuskonen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef OGL_RIBBON_H #define OGL_RIBBON_H //#include "ghemicalconfig2.h" class ogl_ribbon; /*################################################################################################*/ class spline; // spline.h #include "project.h" //#include "ogl_objects.h" #include #include #include /*################################################################################################*/ //#define RIBBON_USE_DISPLSTS // un-comment this to enable use of OpenGL display lists... //^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20090420 ; this seems to have problems : assertion `GTK_WIDGET_REALIZED (widget)' failed class ogl_ribbon : public ogl_smart_object { public: project * prj; color_mode * cmode; i32s extra_points; i32s chn; i32s length; fGL * cp1; // control points (three components) fGL * cp2; // control points (three components) spline * ref1; fGL * head_refs1[2]; fGL * head_points1; // (three components) fGL * tail_refs1[2]; fGL * tail_points1; // (three components) spline * ref2; fGL * head_refs2[2]; fGL * head_points2; // (three components) fGL * tail_refs2[2]; fGL * tail_points2; // (three components) fGL * data1; // places of the control points in spline fGL * data2a; // coordinates calculated using the spline (three components) fGL * data2b; // coordinates calculated using the spline (three components) fGL * data3; // colors of the points (three components) #ifdef RIBBON_USE_DISPLSTS iGLu list_id; #endif // RIBBON_USE_DISPLSTS static const i32s resol; static const fGL width; static const fGL helix; public: ogl_ribbon(project *, color_mode *, i32s, i32s); ~ogl_ribbon(void); void UpdateExtraPoints(fGL **, fGL *, fGL **, fGL *); const char * GetObjectName(void) { return "ribbon"; } // virtual void CameraEvent(const ogl_camera &) { } // virtual bool BeginTransformation(void) { return false; } // virtual bool EndTransformation(void) { return false; } // virtual void Render(void); // virtual }; /*################################################################################################*/ #endif // OGL_RIBBON_H // eof ghemical-3.0.0/src/gtk_app.cpp0000644000175000017500000021407111634160016013127 00000000000000// GTK_APP.CPP // Copyright (C) 2003 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_app.h" #include #include "gtk_setup_dialog.h" #include #ifndef WIN32 #include // DisplayString() #endif // WIN32 #include "res_gtk/draw.xpm" #include "res_gtk/erase.xpm" #include "res_gtk/select.xpm" #include "res_gtk/zoom.xpm" #include "res_gtk/clipping.xpm" #include "res_gtk/transl_xy.xpm" #include "res_gtk/transl_z.xpm" #include "res_gtk/orbit_xy.xpm" #include "res_gtk/orbit_z.xpm" #include "res_gtk/rotate_xy.xpm" #include "res_gtk/rotate_z.xpm" #include "res_gtk/measure.xpm" #include "res_gtk/element.xpm" #include "res_gtk/bondtype.xpm" #include "res_gtk/setup.xpm" #include "gtk_wnd.h" #include "local_i18n.h" #include #include using namespace std; /*################################################################################################*/ const char * tb_mousetool_labels[] = #ifdef USE_SHORT_TOOLBAR_LABELS // http://library.gnome.org/devel/glib/stable/glib-I18N.html // what about using Q_() ; tbl_s|d = toolbarlabel_short_d ??? need to cut away the prefix? // 2009-04-16 ; THERE IS NO NEED TO TRANSLATE THESE AT ALL ; just use the translated tooltips... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { "d", "e", "s", "z", "c", "t", "tz", "o", "oz", "r", "rz", "m", NULL }; #else // USE_SHORT_TOOLBAR_LABELS { "draw\n", "erase\n", "select\n", "zoom\n", "clip\n", "trans\nXY", "trans\nZ", "orbit\nXY", "orbit\nZ", "rotate\nXY", "rotate\nZ", "measure\n", NULL }; #endif // USE_SHORT_TOOLBAR_LABELS const char * tb_shortcut_labels[] = #ifdef USE_SHORT_TOOLBAR_LABELS { "el", "bt", "su", NULL }; #else // USE_SHORT_TOOLBAR_LABELS { "element\n", "bond\ntype", "setup\n", NULL }; #endif // USE_SHORT_TOOLBAR_LABELS GtkActionEntry gtk_app::entries1[] = { { "FileMenu", NULL, N_("File") }, { "HelpMenu", NULL, N_("Help") }, { "New", GTK_STOCK_NEW, N_("New"), NULL, N_("Create a new file."), (GCallback) gtk_app::mainmenu_FileNew }, //N { "Open", GTK_STOCK_OPEN, N_("Open"), NULL, N_("Open an existing file."), (GCallback) gtk_app::mainmenu_FileOpen }, //O { "SaveAs", GTK_STOCK_OPEN, N_("Save as..."), NULL, N_("Save a file."), (GCallback) gtk_app::mainmenu_FileSaveAs }, //S { "Close", GTK_STOCK_QUIT, N_("Close"), NULL, N_("Quit the program."), (GCallback) gtk_app::mainmenu_FileClose }, //C { "Help", GTK_STOCK_HELP, N_("Contents"), NULL, N_("View the User's Manual."), (GCallback) gtk_app::mainmenu_HelpHelp }, //H { "About", GTK_STOCK_ABOUT, N_("About"), NULL, N_("Information about this program."), (GCallback) gtk_app::mainmenu_HelpAbout }, //A // the rest are toolbar actions... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { "Element", "MY_ELEMENT_ICON", tb_shortcut_labels[0], NULL, N_("Set the current element."), (GCallback) gtk_app::maintb_dial_Element }, { "BondType", "MY_BONDTYPE_ICON", tb_shortcut_labels[1], NULL, N_("Set the current bondtype."), (GCallback) gtk_app::maintb_dial_BondType }, { "Setup", "MY_SETUP_ICON", tb_shortcut_labels[2], NULL, N_("Setup or change the comp.chem. method in use."), (GCallback) gtk_app::maintb_dial_Setup } }; GtkToggleActionEntry gtk_app::entries2[] = { { "Draw", "MY_DRAW_ICON", tb_mousetool_labels[0], NULL, N_("Draw ; add atoms and bonds to the model."), (GCallback) gtk_app::maintb_tool_Draw, FALSE }, { "Erase", "MY_ERASE_ICON", tb_mousetool_labels[1], NULL, N_("Erase ; remove atoms and bonds from the model."), (GCallback) gtk_app::maintb_tool_Erase, FALSE }, { "Select", "MY_SELECT_ICON", tb_mousetool_labels[2], NULL, N_("Select ; make selections in the model, and also select objects."), (GCallback) gtk_app::maintb_tool_Select, FALSE }, { "Zoom", "MY_ZOOM_ICON", tb_mousetool_labels[3], NULL, N_("Zoom ; zoom the view."), (GCallback) gtk_app::maintb_tool_Zoom, FALSE }, { "Clip", "MY_CLIPPING_ICON", tb_mousetool_labels[4], NULL, N_("Clipping ; set the near and far clipping planes for graphics rendering."), (GCallback) gtk_app::maintb_tool_Clipping, FALSE }, { "TransXY", "MY_TRANSL_XY_ICON", tb_mousetool_labels[5], NULL, N_("TranslateXY ; translate the camera or a selected object in XY-direction."), (GCallback) gtk_app::maintb_tool_TranslateXY, FALSE }, { "TransZ", "MY_TRANSL_Z_ICON", tb_mousetool_labels[6], NULL, N_("TranslateZ ; translate the camera or a selected object in Z-direction."), (GCallback) gtk_app::maintb_tool_TranslateZ, FALSE }, { "OrbXY", "MY_ORBIT_XY_ICON", tb_mousetool_labels[7], NULL, N_("OrbitXY ; orbit the camera or a selected object around the focus point in XY-direction."), (GCallback) gtk_app::maintb_tool_OrbitXY, TRUE }, { "OrbZ", "MY_ORBIT_Z_ICON", tb_mousetool_labels[8], NULL, N_("OrbitZ ; orbit the camera or a selected object around the focus point in Z-direction."), (GCallback) gtk_app::maintb_tool_OrbitZ, FALSE }, { "RotXY", "MY_ROTATE_XY_ICON", tb_mousetool_labels[9], NULL, N_("RotateXY ; turn the camera or a selected object in XY-direction."), (GCallback) gtk_app::maintb_tool_RotateXY, FALSE }, { "RotZ", "MY_ROTATE_Z_ICON", tb_mousetool_labels[10], NULL, N_("RotateZ ; turn the camera or a selected object in Z-direction."), (GCallback) gtk_app::maintb_tool_RotateZ, FALSE }, { "Measure", "MY_MEASURE_ICON", tb_mousetool_labels[11], NULL, N_("Measure ; measure distances, angles and torsions."), (GCallback) gtk_app::maintb_tool_Measure, FALSE }, }; const char * gtk_app::ui_description = "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ""; GtkUIManager * gtk_app::ui_manager = NULL; GtkWidget * gtk_app::main_window = NULL; GtkWidget * gtk_app::main_vbox = NULL; GtkWidget * gtk_app::main_menubar = NULL; GtkWidget * gtk_app::main_toolbar = NULL; GtkWidget * gtk_app::mtb_mtool_draw = NULL; GtkWidget * gtk_app::mtb_mtool_erase = NULL; GtkWidget * gtk_app::mtb_mtool_select = NULL; GtkWidget * gtk_app::mtb_mtool_zoom = NULL; GtkWidget * gtk_app::mtb_mtool_clipping = NULL; GtkWidget * gtk_app::mtb_mtool_translate_xy = NULL; GtkWidget * gtk_app::mtb_mtool_translate_z = NULL; GtkWidget * gtk_app::mtb_mtool_orbit_xy = NULL; GtkWidget * gtk_app::mtb_mtool_orbit_z = NULL; GtkWidget * gtk_app::mtb_mtool_rotate_xy = NULL; GtkWidget * gtk_app::mtb_mtool_rotate_z = NULL; GtkWidget * gtk_app::mtb_mtool_measure = NULL; GtkWidget * gtk_app::paned_widget = NULL; GtkWidget * gtk_app::notebook_widget = NULL; GtkTextBuffer * gtk_app::txt_buffer = NULL; GtkTextMark * gtk_app::end_mark = NULL; GtkWidget * gtk_app::scroll_widget = NULL; GtkWidget * gtk_app::txt_widget = NULL; GtkWidget * gtk_app::pv_view_widget = NULL; GtkWidget * gtk_app::pv_label_widget = NULL; // the views/objects-menu... // ^^^^^^^^^^^^^^^^^^^^^^^^^ GtkActionEntry gtk_app::pv_viewsobjs_entries[] = { { "viewsobjs_SetCurrent", NULL, N_("Set to Current Object"), NULL, N_("Set this object to Current Object"), (GCallback) gtk_app::viewsobjs_SetCurrent }, { "viewsobjs_Delete", NULL, N_("Delete Object/View"), NULL, N_("Delete this object or view"), (GCallback) gtk_app::viewsobjs_Delete }, }; const char * gtk_app::pv_viewsobjs_ui_description = "" " " " " " " " " " " ""; // the chains-menu... // ^^^^^^^^^^^^^^^^^^ GtkActionEntry gtk_app::pv_chains_entries[] = { { "chains_UpdateView", NULL, N_("Update View"), NULL, N_("Rebuild the chains info for this view"), (GCallback) gtk_app::chains_UpdateView }, { "chains_SelectItem", NULL, N_("Select Item"), NULL, N_("Select/unselect this chain/residue"), (GCallback) gtk_app::chains_SelectItem }, }; const char * gtk_app::pv_chains_ui_description = "" " " " " " " " " " " ""; // the atoms-menu... // ^^^^^^^^^^^^^^^^^ GtkActionEntry gtk_app::pv_atoms_entries[] = { { "atoms_SelectAtom", NULL, N_("Select Atom"), NULL, N_("Select/unselect this atom"), (GCallback) gtk_app::atoms_SelectAtom }, }; const char * gtk_app::pv_atoms_ui_description = "" " " " " " " ""; // the bonds-menu... // ^^^^^^^^^^^^^^^^^ GtkActionEntry gtk_app::pv_bonds_entries[] = { { "bonds_SelectBond", NULL, N_("Select Bond"), NULL, N_("Select/unselect this bond"), (GCallback) gtk_app::bonds_SelectBond }, }; const char * gtk_app::pv_bonds_ui_description = "" " " " " " " ""; // end of pv-pages. // ^^^^^^^^^^^^^^^^ gtk_app::gtk_app(void) : custom_app() { // register some new stock icons... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GtkIconFactory * icon_factory = gtk_icon_factory_new(); GtkIconSet * icon_set; GdkPixbuf * pixbuf; GtkIconSource * icon_source; const int num_icons = 12 + 3; const char ** icondata[num_icons] = { (const char **) draw_xpm, (const char **) erase_xpm, (const char **) select_xpm, (const char **) zoom_xpm, (const char **) clipping_xpm, (const char **) transl_xy_xpm, (const char **) transl_z_xpm, (const char **) orbit_xy_xpm, (const char **) orbit_z_xpm, (const char **) rotate_xy_xpm, (const char **) rotate_z_xpm, (const char **) measure_xpm, (const char **) element_xpm, (const char **) bondtype_xpm, (const char **) setup_xpm }; const char * icon_id[num_icons] = { "MY_DRAW_ICON", "MY_ERASE_ICON", "MY_SELECT_ICON", "MY_ZOOM_ICON", "MY_CLIPPING_ICON", "MY_TRANSL_XY_ICON", "MY_TRANSL_Z_ICON", "MY_ORBIT_XY_ICON", "MY_ORBIT_Z_ICON", "MY_ROTATE_XY_ICON", "MY_ROTATE_Z_ICON", "MY_MEASURE_ICON", "MY_ELEMENT_ICON", "MY_BONDTYPE_ICON", "MY_SETUP_ICON" }; for (int ii = 0;ii < num_icons;ii++) { pixbuf = gdk_pixbuf_new_from_xpm_data(icondata[ii]); icon_set = gtk_icon_set_new_from_pixbuf(pixbuf); icon_source = gtk_icon_source_new(); gtk_icon_source_set_pixbuf(icon_source, pixbuf); gtk_icon_set_add_source(icon_set, icon_source); gtk_icon_source_free (icon_source); gtk_icon_factory_add(icon_factory, icon_id[ii], icon_set); gtk_icon_set_unref (icon_set); } gtk_icon_factory_add_default(icon_factory); // create the main window... // ^^^^^^^^^^^^^^^^^^^^^^^^^ main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(main_window), 845, 640); gchar * tmp_title = g_strconcat(_("Ghemical"), " ", APPVERSION, NULL ); gtk_window_set_title(GTK_WINDOW(main_window), tmp_title); free(tmp_title); tmp_title = NULL; ostringstream icon_fn; icon_fn << project::appdata_path << DIR_SEPARATOR << APPVERSION << DIR_SEPARATOR << "pixmaps" << DIR_SEPARATOR << "ghemical.png" << ends; pixbuf = gdk_pixbuf_new_from_file(icon_fn.str().c_str(), NULL); if (pixbuf == NULL) printf(_("ERROR : Icon loading failed : %s\n"), icon_fn.str().c_str()); else gtk_window_set_icon(GTK_WINDOW(main_window), pixbuf); gtk_container_set_border_width(GTK_CONTAINER(main_window), 1); g_signal_connect(G_OBJECT(main_window), "delete_event", G_CALLBACK(gtk_app::DeleteEventHandler), NULL); g_signal_connect(G_OBJECT(main_window), "destroy", G_CALLBACK(gtk_app::DestroyHandler), NULL); main_vbox = gtk_vbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(main_vbox), 1); gtk_container_add(GTK_CONTAINER(main_window), main_vbox); // add the user interface elements... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GtkActionGroup * action_group1 = gtk_action_group_new("MainWindowActions"); gtk_action_group_set_translation_domain(action_group1, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group1, entries1, G_N_ELEMENTS(entries1), NULL); GtkActionGroup * action_group2 = gtk_action_group_new("MouseToolToggleActions"); gtk_action_group_set_translation_domain(action_group2, GETTEXT_PACKAGE); gtk_action_group_add_toggle_actions(action_group2, entries2, G_N_ELEMENTS(entries2), NULL); ui_manager = gtk_ui_manager_new(); gtk_ui_manager_insert_action_group(ui_manager, action_group1, 0); gtk_ui_manager_insert_action_group(ui_manager, action_group2, 0); GError * error = NULL; if (!gtk_ui_manager_add_ui_from_string(ui_manager, ui_description, -1, & error)) { g_message(_("ERROR : Building main menu failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } // todo : tooltips do not appear to the main menu?!?!? // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // but they DO appear in the toolbar??? TOOLTIPS NEEDED FOR I18N!!! // gedit shows tooltips in the statusbar. at GtkUIManager documentation // "connect-proxy" -signal is defined which may have something to do with this. main_menubar = gtk_ui_manager_get_widget(ui_manager, "/MainMenu"); gtk_box_pack_start(GTK_BOX(main_vbox), main_menubar, FALSE, FALSE, 0); main_toolbar = gtk_ui_manager_get_widget(ui_manager, "/MainTB"); gtk_box_pack_start(GTK_BOX(main_vbox), main_toolbar, FALSE, FALSE, 0); mtb_mtool_draw = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/dr"); mtb_mtool_erase = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/er"); mtb_mtool_select = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/se"); mtb_mtool_zoom = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/zm"); mtb_mtool_clipping = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/cp"); mtb_mtool_translate_xy = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/tt"); mtb_mtool_translate_z = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/tz"); mtb_mtool_orbit_xy = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/oo"); mtb_mtool_orbit_z = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/oz"); mtb_mtool_rotate_xy = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/rr"); mtb_mtool_rotate_z = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/rz"); mtb_mtool_measure = gtk_ui_manager_get_widget(ui_manager, "/MainTB/MainTools/ms"); paned_widget = gtk_vpaned_new(); notebook_widget = gtk_notebook_new(); txt_widget = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(txt_widget), false); txt_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(txt_widget)); GtkTextIter txt_iter; gtk_text_buffer_get_end_iter(txt_buffer, & txt_iter); end_mark = gtk_text_buffer_create_mark(txt_buffer, NULL, & txt_iter, FALSE); // right_gravity! scroll_widget = gtk_scrolled_window_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(scroll_widget), GTK_WIDGET(txt_widget)); gtk_widget_show(txt_widget); gtk_paned_add1(GTK_PANED(paned_widget), GTK_WIDGET(notebook_widget)); gtk_paned_add2(GTK_PANED(paned_widget), GTK_WIDGET(scroll_widget)); gtk_box_pack_start(GTK_BOX(main_vbox), paned_widget, TRUE, TRUE, 0); gtk_widget_show(notebook_widget); gtk_widget_show(scroll_widget); gtk_widget_show(paned_widget); InitPV(); // build and show the project_view... // show the widgets and enter in the main loop. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ gtk_widget_show(main_menubar); gtk_widget_show(main_toolbar); gtk_widget_show(main_vbox); gtk_widget_show(main_window); // set a new default project. // ^^^^^^^^^^^^^^^^^^^^^^^^^^ SetNewProject(); // when leaving this stage, the program // will (soon) enter in the main loop... } gtk_app::~gtk_app(void) { // need to release memory etc... } gtk_app * gtk_app::GetAppX(void) { base_app * app = base_app::GetAppB(); if (app != NULL) return dynamic_cast(app); else return new gtk_app(); } gtk_project * gtk_app::GetPrjX(void) { project * p = custom_app::GetPrj(); if (!p) return NULL; gtk_project * gp = dynamic_cast(p); return gp; } void gtk_app::AttachDetachView(base_wcl * wcl) { // this is a gtk-notebook-related special feature, // so it will duplicate some functionality from the // generic implementations (project-class???). // so also see these: // ^^^^^^^^^^^^^^^^^^ // project::AddGraphicsClient() // project::RemoveGraphicsClient() base_wnd * wndB = wcl->GetWnd(); gtk_wnd * wndX = dynamic_cast(wndB); if (wndB == NULL || wndX == NULL) { assertion_failed(__FILE__, __LINE__, "no wnd!"); } bool detached = !wndX->IsDetached(); wndX = NULL; // no longer needed... // unlink the old window, and destroy it. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ wcl->UnlinkWnd(); // then create a new window, and link it. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // determine the window class using the client... if (dynamic_cast(wcl) != NULL) { GetPrj()->DestroyGraphicsWnd(wndB); wndB = NULL; wndB = GetPrj()->CreateGraphicsWnd(detached); } else { GetPrj()->DestroyPlottingWnd(wndB); wndB = NULL; // handle the various plotting wnd types here... if (dynamic_cast(wcl) != NULL) wndB = GetPrj()->CreatePlot1DWnd(detached); else if (dynamic_cast(wcl) != NULL) wndB = GetPrj()->CreatePlot2DWnd(detached); else if (dynamic_cast(wcl) != NULL) wndB = GetPrj()->CreateEnergyLevelDiagramWnd(detached); else if (dynamic_cast(wcl) != NULL) wndB = GetPrj()->CreateReactionCoordinatePlotWnd(detached); else if (dynamic_cast(wcl) != NULL) wndB = GetPrj()->CreateGenericProteinChainWnd(detached); else { assertion_failed(__FILE__, __LINE__, "wcl class unknown."); } } wcl->LinkWnd(wndB); UpdateAllWindowTitles(); // attach/detach status texts... } void gtk_app::SetTransientForMainWnd(GtkWindow * other_window) { gtk_window_set_transient_for(other_window, GTK_WINDOW(main_window)); } void gtk_app::AddTabToNB(GtkWidget * widget, GtkWidget * label) { gtk_notebook_append_page(GTK_NOTEBOOK(notebook_widget), widget, label); // activate the last page ; makes the new view visible. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ gtk_notebook_set_page(GTK_NOTEBOOK(notebook_widget), -1); } void gtk_app::RemoveTabFromNB(GtkWidget * widget) { gint page = gtk_notebook_page_num(GTK_NOTEBOOK(notebook_widget), widget); gtk_notebook_remove_page(GTK_NOTEBOOK(notebook_widget), page); } void gtk_app::SetTabTitleNB(GtkWidget * widget, GtkWidget * label) { gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook_widget), widget, label); } void gtk_app::InitPV(void) { pv_label_widget = gtk_label_new(_("project view")); pv_view_widget = gtk_notebook_new(); gtk_widget_set_size_request(pv_view_widget, 640, 400); // minimum size... GtkCellRenderer * renderer; GtkTreeViewColumn * column; GtkActionGroup * action_group = NULL; GError * error = NULL; // "views/objects"-page pv_viewsobjs_store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_STRING); pv_viewsobjs_widget = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pv_viewsobjs_store)); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(pv_viewsobjs_widget), TRUE); // optional : draw the stripes to background. renderer = gtk_cell_renderer_text_new(); // ??? (string) column = gtk_tree_view_column_new_with_attributes(_("Object"), renderer, "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_viewsobjs_widget), column); renderer = gtk_cell_renderer_text_new(); // ??? (string) column = gtk_tree_view_column_new_with_attributes(_("Sub-Objects"), renderer, "text", 1, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_viewsobjs_widget), column); pv_viewsobjs_label = gtk_label_new(_("Views/Objects")); pv_viewsobjs_sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(pv_viewsobjs_sw), GTK_SHADOW_ETCHED_IN); // optional : ??? gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pv_viewsobjs_sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(pv_viewsobjs_sw), pv_viewsobjs_widget); gtk_notebook_append_page(GTK_NOTEBOOK(pv_view_widget), pv_viewsobjs_sw, pv_viewsobjs_label); action_group = gtk_action_group_new("gpvViewsObjsActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, pv_viewsobjs_entries, G_N_ELEMENTS(pv_viewsobjs_entries), GTK_WIDGET(pv_view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), pv_viewsobjs_ui_description, -1, & error)) { g_message(_("ERROR : Building Views/Objects menu in project view failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } pv_viewsobjs_menu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/gpvViewsObjsMenu"); g_signal_connect_swapped(GTK_OBJECT(pv_viewsobjs_widget), "button_press_event", G_CALLBACK(ViewsObjsPopupHandler), GTK_WIDGET(pv_viewsobjs_widget)); gtk_widget_show(pv_viewsobjs_widget); gtk_widget_show(pv_viewsobjs_label); gtk_widget_show(pv_viewsobjs_sw); // "chains"-page pv_chains_store = gtk_tree_store_new (5, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); pv_chains_widget = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pv_chains_store)); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(pv_chains_widget), TRUE); // optional : draw the stripes to background. renderer = gtk_cell_renderer_text_new(); // chain_info (string) column = gtk_tree_view_column_new_with_attributes(_("Chain Description"), renderer, "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_chains_widget), column); renderer = gtk_cell_renderer_text_new(); // res_num (string) column = gtk_tree_view_column_new_with_attributes(_("Residue Number"), renderer, "text", 1, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_chains_widget), column); renderer = gtk_cell_renderer_text_new(); // res_id (string) column = gtk_tree_view_column_new_with_attributes(_("Residue ID"), renderer, "text", 2, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_chains_widget), column); renderer = gtk_cell_renderer_text_new(); // res_state1 (string) column = gtk_tree_view_column_new_with_attributes(_("Sec-Str State"), renderer, "text", 3, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_chains_widget), column); renderer = gtk_cell_renderer_text_new(); // res_state2 (string) column = gtk_tree_view_column_new_with_attributes(_("Protonation State"), renderer, "text", 4, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_chains_widget), column); pv_chains_label = gtk_label_new(_("Chains")); pv_chains_sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(pv_chains_sw), GTK_SHADOW_ETCHED_IN); // optional : ??? gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pv_chains_sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(pv_chains_sw), pv_chains_widget); gtk_notebook_append_page(GTK_NOTEBOOK(pv_view_widget), pv_chains_sw, pv_chains_label); action_group = gtk_action_group_new("gpvChainsActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, pv_chains_entries, G_N_ELEMENTS(pv_chains_entries), GTK_WIDGET(pv_view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), pv_chains_ui_description, -1, & error)) { g_message(_("ERROR : Building Chains menu in project view failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } pv_chains_menu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/gpvChainsMenu"); g_signal_connect_swapped(GTK_OBJECT(pv_chains_widget), "button_press_event", G_CALLBACK(ChainsPopupHandler), GTK_WIDGET(pv_chains_widget)); gtk_widget_show(pv_chains_widget); gtk_widget_show(pv_chains_label); gtk_widget_show(pv_chains_sw); // "atoms"-page pv_atoms_store = gtk_list_store_new (3, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_BOOLEAN); pv_atoms_widget = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pv_atoms_store)); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(pv_atoms_widget), TRUE); // optional : draw the stripes to background. renderer = gtk_cell_renderer_text_new(); // index1 column = gtk_tree_view_column_new_with_attributes(_("Atom Index"), renderer, "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_atoms_widget), column); renderer = gtk_cell_renderer_text_new(); // element column = gtk_tree_view_column_new_with_attributes(_("Element"), renderer, "text", 1, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_atoms_widget), column); renderer = gtk_cell_renderer_toggle_new(); // locked g_object_set(renderer, "activatable", TRUE, NULL); g_signal_connect(GTK_OBJECT(renderer), "toggled", G_CALLBACK(atoms_ToggleLocked), (gpointer *) pv_atoms_store); column = gtk_tree_view_column_new_with_attributes(_("Locked"), renderer, "active", 2, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_atoms_widget), column); pv_atoms_label = gtk_label_new(_("Atoms")); pv_atoms_sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(pv_atoms_sw), GTK_SHADOW_ETCHED_IN); // optional : ??? gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pv_atoms_sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(pv_atoms_sw), pv_atoms_widget); gtk_notebook_append_page(GTK_NOTEBOOK(pv_view_widget), pv_atoms_sw, pv_atoms_label); action_group = gtk_action_group_new("gpvAtomsActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, pv_atoms_entries, G_N_ELEMENTS(pv_atoms_entries), GTK_WIDGET(pv_view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), pv_atoms_ui_description, -1, & error)) { g_message(_("ERROR : Building Atoms menu in project view failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } pv_atoms_menu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/gpvAtomsMenu"); g_signal_connect_swapped(GTK_OBJECT(pv_atoms_widget), "button_press_event", G_CALLBACK(AtomsPopupHandler), GTK_WIDGET(pv_atoms_widget)); gtk_widget_show(pv_atoms_widget); gtk_widget_show(pv_atoms_label); gtk_widget_show(pv_atoms_sw); // "bonds"-page pv_bonds_store = gtk_list_store_new (3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING); pv_bonds_widget = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pv_bonds_store)); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(pv_bonds_widget), TRUE); // optional : draw the stripes to background. renderer = gtk_cell_renderer_text_new(); // index1 column = gtk_tree_view_column_new_with_attributes(_("Atom Index #1"), renderer, "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_bonds_widget), column); renderer = gtk_cell_renderer_text_new(); // index2 column = gtk_tree_view_column_new_with_attributes(_("Atom Index #2"), renderer, "text", 1, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_bonds_widget), column); renderer = gtk_cell_renderer_text_new(); // bondtype column = gtk_tree_view_column_new_with_attributes(_("BondType"), renderer, "text", 2, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(pv_bonds_widget), column); pv_bonds_label = gtk_label_new(_("Bonds")); pv_bonds_sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(pv_bonds_sw), GTK_SHADOW_ETCHED_IN); // optional : ??? gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pv_bonds_sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(pv_bonds_sw), pv_bonds_widget); gtk_notebook_append_page(GTK_NOTEBOOK(pv_view_widget), pv_bonds_sw, pv_bonds_label); action_group = gtk_action_group_new("gpvBondsActions"); gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions(action_group, pv_bonds_entries, G_N_ELEMENTS(pv_bonds_entries), GTK_WIDGET(pv_view_widget)); gtk_ui_manager_insert_action_group(gtk_app::GetUIManager(), action_group, 0); error = NULL; if (!gtk_ui_manager_add_ui_from_string(gtk_app::GetUIManager(), pv_bonds_ui_description, -1, & error)) { g_message(_("ERROR : Building Bonds menu in project view failed : %s"), error->message); g_error_free(error); exit(EXIT_FAILURE); } pv_bonds_menu = gtk_ui_manager_get_widget(gtk_app::GetUIManager(), "/gpvBondsMenu"); g_signal_connect_swapped(GTK_OBJECT(pv_bonds_widget), "button_press_event", G_CALLBACK(BondsPopupHandler), GTK_WIDGET(pv_bonds_widget)); gtk_widget_show(pv_bonds_widget); gtk_widget_show(pv_bonds_label); gtk_widget_show(pv_bonds_sw); // ready... // ready... // ready... gtk_notebook_append_page(GTK_NOTEBOOK(notebook_widget), pv_view_widget, pv_label_widget); gtk_widget_show(GTK_WIDGET(pv_view_widget)); gtk_widget_show(GTK_WIDGET(pv_label_widget)); } void gtk_app::SetNewProject(void) { if (prj != NULL) { prj->ClearAll(); delete prj; prj = NULL; } custom_app::SetNewProject(); gtk_project * tmpprj = new gtk_project(); prj = tmpprj; tmpprj->DoSafeStart(); } gboolean gtk_app::DeleteEventHandler(GtkWidget * widget, GdkEvent * event, gpointer data) { if (project::background_job_running) return TRUE; // protect the model-data during background jobs... bool quit = sQuestion(_("Are you sure that you\nwant to quit the program?")); if (quit) return FALSE; else return TRUE; } void gtk_app::DestroyHandler(GtkWidget * widget, gpointer data) { prj->ClearAll(); delete prj; prj = NULL; gtk_main_quit(); } // Print the message (no problems). void gtk_app::sMessage(const char * msg) { GtkWidget * message_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", msg); gtk_dialog_run(GTK_DIALOG(message_dialog)); gtk_widget_destroy(message_dialog); } // Print the message (lower severity). void gtk_app::sWarningMessage(const char * msg) { GtkWidget * message_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, "%s", msg); gtk_dialog_run(GTK_DIALOG(message_dialog)); gtk_widget_destroy(message_dialog); } // Print the message (higher severity). void gtk_app::sErrorMessage(const char * msg) { GtkWidget * message_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", msg); gtk_dialog_run(GTK_DIALOG(message_dialog)); gtk_widget_destroy(message_dialog); } // Print the message and wait for a yes/no response. bool gtk_app::sQuestion(const char * msg) { GtkWidget * question_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", msg); gint response = gtk_dialog_run(GTK_DIALOG(question_dialog)); gtk_widget_destroy(question_dialog); switch (response) { case GTK_RESPONSE_YES: return true; default: return false; } } #define MSG_BUFF_SZ 65536 void gtk_app::sPrintToLog(const char * msg) { if (strlen(msg) > MSG_BUFF_SZ) { cout << _("gtk_app::sPrintToLog() : message is too long!") << endl; return; } static char msgbuff[MSG_BUFF_SZ]; strcpy(msgbuff, msg); GtkTextIter txt_iter; gtk_text_buffer_get_iter_at_mark(txt_buffer, & txt_iter, end_mark); gtk_text_buffer_insert(txt_buffer, & txt_iter, msgbuff, -1); gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(txt_widget), end_mark); cout << "PrintToLog : " << msg; } void gtk_app::Message(const char * msg) { sMessage(msg); } void gtk_app::WarningMessage(const char * msg) { sWarningMessage(msg); } void gtk_app::ErrorMessage(const char * msg) { sErrorMessage(msg); } bool gtk_app::Question(const char * msg) { return sQuestion(msg); } void gtk_app::PrintToLog(const char * msg) { sPrintToLog(msg); } void gtk_app::UpdateAllWindowTitles(void) { list::iterator it = pv_viewsobjs_data.begin(); while (it != pv_viewsobjs_data.end()) { if ((* it)->refV2 != NULL) { base_wcl * wcl = (* it)->refV2; ostringstream vts; // view title stream (in PV) ostringstream wts; // window title stream oglview_wcl * oglwcl = dynamic_cast(wcl); if (oglwcl != NULL) { gtk_wnd * wnd = dynamic_cast(oglwcl->GetWnd()); vts << _("window ") << oglwcl->my_wnd_number; vts << (wnd->IsDetached() ? _(" (detached)") : _(" (attached)")) << ends; wts << _("cam ") << oglwcl->GetCCam()->GetCCamI() << " "; wts << _("wnd ") << oglwcl->my_wnd_number; wts << (wnd->IsDetached() ? _(" (detached)") : "") << ends; oglwcl->SetTitle(wts.str().c_str()); } else { // it's a plotting client... // ^^^^^^^^^^^^^^^^^^^^^^^^^ bool has_name = false; if (dynamic_cast(wcl) != NULL) { if (dynamic_cast(wcl) != NULL) { if (dynamic_cast(wcl) != NULL) { has_name = true; vts << _("RC plot view") << ends; wts << _("RC plot view") << ends; } else { has_name = true; vts << _("1D plot view") << ends; wts << _("1D plot view") << ends; } } else if (dynamic_cast(wcl) != NULL) { has_name = true; vts << _("2D plot view") << ends; wts << _("2D plot view") << ends; } } else if (dynamic_cast(wcl) != NULL) { has_name = true; vts << _("energy-level diagram view") << ends; wts << _("energy-level diagram view") << ends; } else if (dynamic_cast(wcl) != NULL) { has_name = true; vts << _("generic protein chain view") << ends; wts << _("generic protein chain view") << ends; } if (!has_name) { vts << _("") << ends; wts << _("") << ends; } wcl->SetTitle(wts.str().c_str()); } gtk_tree_store_set(pv_viewsobjs_store, & (* it)->iter, 0, vts.str().c_str(), 1, FALSE, -1); } it++; } } void gtk_app::CameraAdded(custom_camera * p1) { pv_viewsobjs_record * vo_rec = new pv_viewsobjs_record; vo_rec->owner = NULL; vo_rec->refV1 = p1; vo_rec->refV2 = NULL; vo_rec->refO = NULL; gtk_tree_store_append(pv_viewsobjs_store, & vo_rec->iter, NULL); pv_viewsobjs_data.push_back(vo_rec); ostringstream name; name << _("camera ") << p1->GetCCamI() << ends; const char * name_str = name.str().c_str(); gtk_tree_store_set(pv_viewsobjs_store, & vo_rec->iter, 0, name_str, 1, FALSE, -1); } void gtk_app::CameraRemoved(custom_camera * p1) { list::iterator it = pv_viewsobjs_data.begin(); while (it != pv_viewsobjs_data.end()) { if ((* it)->refV1 == (ogl_dummy_object *) p1) break; else it++; } if (it == pv_viewsobjs_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } gtk_tree_store_remove(pv_viewsobjs_store, & (* it)->iter); pv_viewsobjs_data.erase(it); delete (* it); } void gtk_app::LightAdded(ogl_light * p1) { bool is_local_light = (p1->owner != NULL); if (is_local_light) { list::iterator it = pv_viewsobjs_data.begin(); while (it != pv_viewsobjs_data.end()) { if ((* it)->refV1 == (ogl_dummy_object *) p1->owner) break; else it++; } if (it == pv_viewsobjs_data.end()) { assertion_failed(__FILE__, __LINE__, "owner not found."); } custom_camera * ccam = dynamic_cast(p1->owner); if (!ccam) { assertion_failed(__FILE__, __LINE__, "ccam cast failed."); } pv_viewsobjs_record * vo_rec = new pv_viewsobjs_record; vo_rec->owner = ccam; vo_rec->refV1 = p1; vo_rec->refV2 = NULL; vo_rec->refO = NULL; gtk_tree_store_append(pv_viewsobjs_store, & vo_rec->iter, & (* it)->iter); pv_viewsobjs_data.push_back(vo_rec); const char * object_name = p1->GetObjectName(); gtk_tree_store_set(pv_viewsobjs_store, & vo_rec->iter, 0, object_name, 1, FALSE, -1); // expand the newly created row... GtkTreePath * path = gtk_tree_model_get_path(GTK_TREE_MODEL(pv_viewsobjs_store), & vo_rec->iter); gtk_tree_view_expand_to_path(GTK_TREE_VIEW(pv_viewsobjs_widget), path); gtk_tree_path_free(path); } else { pv_viewsobjs_record * vo_rec = new pv_viewsobjs_record; vo_rec->owner = NULL; vo_rec->refV1 = p1; vo_rec->refV2 = NULL; vo_rec->refO = NULL; gtk_tree_store_append(pv_viewsobjs_store, & vo_rec->iter, NULL); pv_viewsobjs_data.push_back(vo_rec); const char * object_name = p1->GetObjectName(); gtk_tree_store_set(pv_viewsobjs_store, & vo_rec->iter, 0, object_name, 1, FALSE, -1); } } void gtk_app::LightRemoved(ogl_light * p1) { list::iterator it = pv_viewsobjs_data.begin(); while (it != pv_viewsobjs_data.end()) { if ((* it)->refV1 == (ogl_dummy_object *) p1) break; else it++; } if (it == pv_viewsobjs_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } gtk_tree_store_remove(pv_viewsobjs_store, & (* it)->iter); pv_viewsobjs_data.erase(it); delete (* it); } void gtk_app::GraphicsClientAdded(oglview_wcl * p1) { list::iterator it = pv_viewsobjs_data.begin(); while (it != pv_viewsobjs_data.end()) { if ((* it)->refV1 == (ogl_dummy_object *) p1->GetCam()) break; else it++; } if (it == pv_viewsobjs_data.end()) { assertion_failed(__FILE__, __LINE__, "camera not found."); } custom_camera * ccam = dynamic_cast(p1->GetCam()); if (!ccam) { assertion_failed(__FILE__, __LINE__, "ccam cast failed."); } pv_viewsobjs_record * vo_rec = new pv_viewsobjs_record; vo_rec->owner = ccam; vo_rec->refV1 = NULL; vo_rec->refV2 = p1; vo_rec->refO = NULL; gtk_tree_store_append(pv_viewsobjs_store, & vo_rec->iter, & (* it)->iter); pv_viewsobjs_data.push_back(vo_rec); const char * object_name = "a graphics client ; THIS IS NEVER DISPLAYED?"; gtk_tree_store_set(pv_viewsobjs_store, & vo_rec->iter, 0, object_name, 1, FALSE, -1); // expand the newly created row... GtkTreePath * path = gtk_tree_model_get_path(GTK_TREE_MODEL(pv_viewsobjs_store), & vo_rec->iter); gtk_tree_view_expand_to_path(GTK_TREE_VIEW(pv_viewsobjs_widget), path); gtk_tree_path_free(path); } void gtk_app::GraphicsClientRemoved(oglview_wcl * p1) { list::iterator it = pv_viewsobjs_data.begin(); while (it != pv_viewsobjs_data.end()) { if ((* it)->refV2 == (base_wcl *) p1) break; else it++; } if (it == pv_viewsobjs_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } gtk_tree_store_remove(pv_viewsobjs_store, & (* it)->iter); pv_viewsobjs_data.erase(it); delete (* it); } void gtk_app::PlottingClientAdded(base_wcl * p1) { //cout << "called gtk_app::PlottingClientAdded()" << endl; //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pv_viewsobjs_record * vo_rec = new pv_viewsobjs_record; vo_rec->owner = NULL; vo_rec->refV1 = NULL; vo_rec->refV2 = p1; vo_rec->refO = NULL; gtk_tree_store_append(pv_viewsobjs_store, & vo_rec->iter, NULL); pv_viewsobjs_data.push_back(vo_rec); const char * object_name = "a plotting client ; THIS IS NEVER DISPLAYED?"; gtk_tree_store_set(pv_viewsobjs_store, & vo_rec->iter, 0, object_name, 1, FALSE, -1); } void gtk_app::PlottingClientRemoved(base_wcl * p1) { //cout << "called gtk_app::PlottingClientRemoved()" << endl; //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ list::iterator it = pv_viewsobjs_data.begin(); while (it != pv_viewsobjs_data.end()) { if ((* it)->refV2 == (base_wcl *) p1) break; else it++; } if (it == pv_viewsobjs_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } gtk_tree_store_remove(pv_viewsobjs_store, & (* it)->iter); pv_viewsobjs_data.erase(it); delete (* it); } void gtk_app::ObjectAdded(ogl_smart_object * p1) { pv_viewsobjs_record * vo_rec = new pv_viewsobjs_record; vo_rec->owner = NULL; vo_rec->refV1 = NULL; vo_rec->refV2 = NULL; vo_rec->refO = p1; gtk_tree_store_append(pv_viewsobjs_store, & vo_rec->iter, NULL); pv_viewsobjs_data.push_back(vo_rec); const char * object_name = p1->GetObjectName(); gtk_tree_store_set(pv_viewsobjs_store, & vo_rec->iter, 0, object_name, 1, FALSE, -1); } void gtk_app::ObjectRemoved(ogl_smart_object * p1) { list::iterator it = pv_viewsobjs_data.begin(); while (it != pv_viewsobjs_data.end()) { if ((* it)->refO == p1) break; else it++; } if (it == pv_viewsobjs_data.end()) { assertion_failed(__FILE__, __LINE__, "object_not_found."); } gtk_tree_store_remove(pv_viewsobjs_store, & (* it)->iter); pv_viewsobjs_data.erase(it); delete (* it); } gint gtk_app::ViewsObjsPopupHandler(GtkWidget * widget, GdkEvent * event) { if (project::background_job_running) return TRUE; // protect the model-data during background jobs... if (event->type == GDK_BUTTON_PRESS) { GdkEventButton * event_button = (GdkEventButton *) event; if (event_button->button == 3) { GtkMenu * menu = GTK_MENU(gtk_app::GetAppX()->pv_viewsobjs_menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event_button->button, event_button->time); return TRUE; } } return FALSE; } void gtk_app::viewsobjs_SetCurrent(GtkWidget * widget, gpointer data) { gtk_app * app = gtk_app::GetAppX(); // assume that tsel is in mode GTK_SELECTION_SINGLE (as it seems to be); this is the simplest case... // here the equivalence test of GtkTreeIter is a bit uncertain... need to test any other records??? GtkTreeSelection * tsel = gtk_tree_view_get_selection(GTK_TREE_VIEW(app->pv_viewsobjs_widget)); GtkTreeModel * tm = gtk_tree_view_get_model(GTK_TREE_VIEW(app->pv_viewsobjs_widget)); GtkTreeIter iter; bool has_item = gtk_tree_selection_get_selected(tsel, & tm, & iter); if (has_item) { list::iterator it = app->pv_viewsobjs_data.begin(); while (it != app->pv_viewsobjs_data.end()) { if ((* it)->iter.user_data == iter.user_data) break; else it++; } if (it == app->pv_viewsobjs_data.end()) { cout << "ERROR : gtk_app::viewsobjs_SetCurrent() failed." << endl; exit(EXIT_FAILURE); } bool is_light = ((* it)->refV1 != NULL && dynamic_cast((* it)->refV1) != NULL); bool is_obj = ((* it)->refO != NULL); if (is_light) { gtk_app::GetPrjX()->selected_object = (* it)->refV1; ostringstream mstr; mstr << _("Object ") << gtk_app::GetPrjX()->selected_object->GetObjectName() << _(" is set to current object.") << endl << ends; gtk_app::GetPrjX()->PrintToLog(mstr.str().c_str()); } else if (is_obj) { gtk_app::GetPrjX()->selected_object = (* it)->refO; ostringstream mstr; mstr << _("Object ") << gtk_app::GetPrjX()->selected_object->GetObjectName() << _(" is set to current object.") << endl << ends; gtk_app::GetPrjX()->PrintToLog(mstr.str().c_str()); } else gtk_app::GetPrjX()->Message(_("Sorry, this operation is not yet implemented.")); } } void gtk_app::viewsobjs_Delete(GtkWidget *, gpointer data) { gtk_app * app = gtk_app::GetAppX(); // assume that tsel is in mode GTK_SELECTION_SINGLE (as it seems to be); this is the simplest case... // here the equivalence test of GtkTreeIter is a bit uncertain... need to test any other records??? GtkTreeSelection * tsel = gtk_tree_view_get_selection(GTK_TREE_VIEW(app->pv_viewsobjs_widget)); GtkTreeModel * tm = gtk_tree_view_get_model(GTK_TREE_VIEW(app->pv_viewsobjs_widget)); GtkTreeIter iter; bool has_item = gtk_tree_selection_get_selected(tsel, & tm, & iter); if (has_item) { list::iterator it = app->pv_viewsobjs_data.begin(); while (it != app->pv_viewsobjs_data.end()) { if ((* it)->iter.user_data == iter.user_data) break; else it++; } if (it == app->pv_viewsobjs_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } bool is_light = ((* it)->refV1 != NULL && dynamic_cast((* it)->refV1) != NULL); bool is_view = ((* it)->refV2 != NULL); bool is_obj = ((* it)->refO != NULL); if (is_light) { ostringstream mstr; mstr << _("Object ") << (* it)->refV1->GetObjectName() << _(" is deleted.") << endl << ends; gtk_app::GetPrjX()->PrintToLog(mstr.str().c_str()); if (project::selected_object == (* it)->refV1) project::selected_object = NULL; base_app::GetAppB()->RemoveLight((* it)->refV1); gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } else if (is_view) { base_wcl * wcl = (* it)->refV2; oglview_wcl * oglwcl = dynamic_cast(wcl); if (oglwcl != NULL) { gtk_app::GetPrjX()->RemoveGraphicsClient(oglwcl, false); } else { gtk_app::GetPrjX()->RemovePlottingClient(wcl); } } else if (is_obj) { ostringstream mstr; mstr << _("Object ") << (* it)->refO->GetObjectName() << _(" is deleted.") << endl << ends; gtk_app::GetPrjX()->PrintToLog(mstr.str().c_str()); if (project::selected_object == (* it)->refO) project::selected_object = NULL; gtk_app::GetPrjX()->RemoveObject((* it)->refO); gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } else gtk_app::GetPrjX()->Message(_("Sorry, this operation is not yet implemented.")); } } void gtk_app::BuildChainsView(void) { if (pv_chains_data.size() != 0) { ClearChainsView(); } if (gtk_app::GetPrjX()->GetCI() != NULL) { vector & ci_vector = (* gtk_app::GetPrjX()->GetCI()); for (i32u n1 = 0;n1 < ci_vector.size();n1++) { pv_chains_record * c_rec1 = new pv_chains_record; c_rec1->c_r_ind = (n1 << 16) + 0xFFFF; gtk_tree_store_append(pv_chains_store, & c_rec1->iter, NULL); pv_chains_data.push_back(c_rec1); ostringstream cis; // if (ci_vector[n1].description... // this is not implemented at the moment... // show chain index 1,2,3,... to user ; it is 0,1,2,... internally! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cis << _("chain #") << (n1 + 1) << " ("; switch (ci_vector[n1].GetType()) { case chn_info::amino_acid: cis << "AA"; break; case chn_info::nucleic_acid: cis << "NA"; break; default: cis << "??"; } cis << _(" chain).") << ends; gtk_tree_store_set(pv_chains_store, & c_rec1->iter, 0, cis.str().c_str(), 1, FALSE, 2, FALSE, 3, FALSE, 4, FALSE, -1); const char * seq1_buff = ci_vector[n1].GetSequence1(); for (i32s n2 = 0;n2 < ci_vector[n1].GetLength();n2++) { pv_chains_record * c_rec2 = new pv_chains_record; c_rec2->c_r_ind = (n1 << 16) + n2; gtk_tree_store_append(pv_chains_store, & c_rec2->iter, & c_rec1->iter); pv_chains_data.push_back(c_rec2); // show residue index 1,2,3,... to user ; it is 0,1,2,... internally! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ostringstream rns; rns << (n2 + 1) << ends; char res_id[8] = "?"; res_id[0] = seq1_buff[n2]; gtk_tree_store_set(pv_chains_store, & c_rec2->iter, 0, FALSE, 1, rns.str().c_str(), 2, res_id, 3, "???", 4, "???", -1); } } } } void gtk_app::ClearChainsView(void) { list::iterator it; it = pv_chains_data.begin(); // first remove the residue records... while (it != pv_chains_data.end()) // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { if (((* it)->c_r_ind & 0xFFFF) != 0xFFFF) { gtk_tree_store_remove(pv_chains_store, & (* it)->iter); delete (* it); pv_chains_data.erase(it); it = pv_chains_data.begin(); } it++; } it = pv_chains_data.begin(); // ...and then the chain records! while (it != pv_chains_data.end()) // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { gtk_tree_store_remove(pv_chains_store, & (* it)->iter); delete (* it); pv_chains_data.erase(it); it = pv_chains_data.begin(); } } gint gtk_app::ChainsPopupHandler(GtkWidget * widget, GdkEvent * event) { if (project::background_job_running) return TRUE; // protect the model-data during background jobs... if (event->type == GDK_BUTTON_PRESS) { GdkEventButton * event_button = (GdkEventButton *) event; if (event_button->button == 3) { GtkMenu * menu = GTK_MENU(gtk_app::GetAppX()->pv_chains_menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event_button->button, event_button->time); return TRUE; } } return FALSE; } void gtk_app::chains_UpdateView(GtkWidget *, gpointer data) { gtk_app * app = gtk_app::GetAppX(); // update the data only if it's necessary ; there might be some extra info stored in the chains data! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (gtk_app::GetPrjX()->GetCI() == NULL) { gtk_app::GetPrjX()->UpdateChains(); } } void gtk_app::chains_SelectItem(GtkWidget *, gpointer data) { gtk_app * app = gtk_app::GetAppX(); // assume that tsel is in mode GTK_SELECTION_SINGLE (as it seems to be); this is the simplest case... // here the equivalence test of GtkTreeIter is a bit uncertain... need to test any other records??? GtkTreeSelection * tsel = gtk_tree_view_get_selection(GTK_TREE_VIEW(app->pv_chains_widget)); GtkTreeModel * tm = gtk_tree_view_get_model(GTK_TREE_VIEW(app->pv_chains_widget)); GtkTreeIter iter; bool has_item = gtk_tree_selection_get_selected(tsel, & tm, & iter); if (has_item) { list::iterator it = app->pv_chains_data.begin(); while (it != app->pv_chains_data.end()) { if ((* it)->iter.user_data == iter.user_data) break; else it++; } if (it == app->pv_chains_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } i32s c_ind = ((* it)->c_r_ind >> 16); i32s r_ind = ((* it)->c_r_ind & 0xFFFF); iter_al c_rng[2]; gtk_app::GetPrjX()->GetRange(1, c_ind, c_rng); if (r_ind == 0xFFFF) // select chain { for (iter_al iter = c_rng[0]; iter != c_rng[1];iter++) { (* iter).flags |= ATOMFLAG_USER_SELECTED; } } else // select residue { iter_al r_rng[2]; gtk_app::GetPrjX()->GetRange(2, c_rng, r_ind, r_rng); for (iter_al iter = r_rng[0]; iter != r_rng[1];iter++) { (* iter).flags |= ATOMFLAG_USER_SELECTED; } } gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } } void gtk_app::AtomAdded(atom * p1) { pv_atoms_record * a_rec = new pv_atoms_record; a_rec->ref = p1; gtk_list_store_append(pv_atoms_store, & a_rec->iter); pv_atoms_data.push_back(a_rec); AtomUpdateItem(p1); } void gtk_app::AtomUpdateItem(atom * p1) { list::iterator it = pv_atoms_data.begin(); while (it != pv_atoms_data.end()) { if ((* it)->ref == p1) break; else it++; } if (it == pv_atoms_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } // show atom index 1,2,3,... to user ; it is 0,1,2,... internally! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const i32s atmi = (p1->index + 1); const char * ele = p1->el.GetSymbol(); const bool locked = p1->flags & ATOMFLAG_USER_LOCKED; gtk_list_store_set(pv_atoms_store, & (* it)->iter, 0, atmi, 1, ele, 2, locked, -1); } void gtk_app::AtomRemoved(atom * p1) { list::iterator it = pv_atoms_data.begin(); while (it != pv_atoms_data.end()) { if ((* it)->ref == p1) break; else it++; } if (it == pv_atoms_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } gtk_list_store_remove(pv_atoms_store, & (* it)->iter); delete (* it); pv_atoms_data.erase(it); } gint gtk_app::AtomsPopupHandler(GtkWidget * widget, GdkEvent * event) { if (project::background_job_running) return TRUE; // protect the model-data during background jobs... if (event->type == GDK_BUTTON_PRESS) { GdkEventButton * event_button = (GdkEventButton *) event; if (event_button->button == 3) { GtkMenu * menu = GTK_MENU(gtk_app::GetAppX()->pv_atoms_menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event_button->button, event_button->time); return TRUE; } } return FALSE; } void gtk_app::atoms_SelectAtom(GtkWidget *, gpointer data) { gtk_app * app = gtk_app::GetAppX(); // assume that tsel is in mode GTK_SELECTION_SINGLE (as it seems to be); this is the simplest case... // here the equivalence test of GtkTreeIter is a bit uncertain... need to test any other records??? GtkTreeSelection * tsel = gtk_tree_view_get_selection(GTK_TREE_VIEW(app->pv_atoms_widget)); GtkTreeModel * tm = gtk_tree_view_get_model(GTK_TREE_VIEW(app->pv_atoms_widget)); GtkTreeIter iter; bool has_item = gtk_tree_selection_get_selected(tsel, & tm, & iter); if (has_item) { list::iterator it = app->pv_atoms_data.begin(); while (it != app->pv_atoms_data.end()) { if ((* it)->iter.user_data == iter.user_data) break; else it++; } if (it == app->pv_atoms_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } (* it)->ref->flags ^= ATOMFLAG_USER_SELECTED; gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } } gint gtk_app::atoms_ToggleLocked(GtkWidget * widget, gchar * path, gpointer * data) { gtk_app * app = gtk_app::GetAppX(); GtkTreeIter iter; if (!gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(data), &iter, path)) { assertion_failed(__FILE__, __LINE__, "iter search failed."); } list::iterator it = app->pv_atoms_data.begin(); while (it != app->pv_atoms_data.end()) { if ((* it)->iter.user_data == iter.user_data) break; else it++; } if (it == app->pv_atoms_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } atom * p1 = (* it)->ref; p1->SetLocked(!(p1->GetLocked())); gtk_list_store_set(GTK_LIST_STORE(data), &iter, 2, p1->GetLocked(), -1); app->AtomUpdateItem(p1); // make the list show the updated information... printf(_("Atom locking changed : %s\n"), p1->GetLocked() ? _("yes") : _("no")); return FALSE; } void gtk_app::BondAdded(bond * p1) { pv_bonds_record * b_rec = new pv_bonds_record; b_rec->ref = p1; gtk_list_store_append(pv_bonds_store, & b_rec->iter); pv_bonds_data.push_back(b_rec); BondUpdateItem(p1); } void gtk_app::BondUpdateItem(bond * p1) { list::iterator it = pv_bonds_data.begin(); while (it != pv_bonds_data.end()) { if ((* it)->ref == p1) break; else it++; } if (it == pv_bonds_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } const char * bt_strings[4] = { _("Conjugated"), _("Single"), _("Double"), _("Triple") }; // show atom index 1,2,3,... to user ; it is 0,1,2,... internally! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const i32s atmi1 = (p1->atmr[0]->index + 1); const i32s atmi2 = (p1->atmr[1]->index + 1); const char * btype = bt_strings[p1->bt.GetValue()]; gtk_list_store_set(pv_bonds_store, & (* it)->iter, 0, atmi1, 1, atmi2, 2, btype, -1); } void gtk_app::BondRemoved(bond * p1) { list::iterator it = pv_bonds_data.begin(); while (it != pv_bonds_data.end()) { if ((* it)->ref == p1) break; else it++; } if (it == pv_bonds_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } gtk_list_store_remove(pv_bonds_store, & (* it)->iter); delete (* it); pv_bonds_data.erase(it); } gint gtk_app::BondsPopupHandler(GtkWidget * widget, GdkEvent * event) { if (project::background_job_running) return TRUE; // protect the model-data during background jobs... if (event->type == GDK_BUTTON_PRESS) { GdkEventButton * event_button = (GdkEventButton *) event; if (event_button->button == 3) { GtkMenu * menu = GTK_MENU(gtk_app::GetAppX()->pv_bonds_menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event_button->button, event_button->time); return TRUE; } } return FALSE; } void gtk_app::bonds_SelectBond(GtkWidget *, gpointer data) { gtk_app * app = gtk_app::GetAppX(); // assume that tsel is in mode GTK_SELECTION_SINGLE (as it seems to be); this is the simplest case... // here the equivalence test of GtkTreeIter is a bit uncertain... need to test any other records??? GtkTreeSelection * tsel = gtk_tree_view_get_selection(GTK_TREE_VIEW(app->pv_bonds_widget)); GtkTreeModel * tm = gtk_tree_view_get_model(GTK_TREE_VIEW(app->pv_bonds_widget)); GtkTreeIter iter; bool has_item = gtk_tree_selection_get_selected(tsel, & tm, & iter); if (has_item) { list::iterator it = app->pv_bonds_data.begin(); while (it != app->pv_bonds_data.end()) { if ((* it)->iter.user_data == iter.user_data) break; else it++; } if (it == app->pv_bonds_data.end()) { assertion_failed(__FILE__, __LINE__, "object not found."); } bool both_selected = (((* it)->ref->atmr[0]->flags & ATOMFLAG_USER_SELECTED) && ((* it)->ref->atmr[1]->flags & ATOMFLAG_USER_SELECTED)); if (!both_selected) // select... { (* it)->ref->atmr[0]->flags |= ATOMFLAG_USER_SELECTED; (* it)->ref->atmr[1]->flags |= ATOMFLAG_USER_SELECTED; } else // un-select... { (* it)->ref->atmr[0]->flags &= (~ATOMFLAG_USER_SELECTED); (* it)->ref->atmr[1]->flags &= (~ATOMFLAG_USER_SELECTED); } gtk_app::GetPrjX()->UpdateAllGraphicsViews(); } } // the toolbar-button callbacks start here ; the toolbar-button callbacks start here // the toolbar-button callbacks start here ; the toolbar-button callbacks start here // the toolbar-button callbacks start here ; the toolbar-button callbacks start here static int toggle_event_ignore_counter = 0; void gtk_app::HandleToggleButtons(custom_app::mtool old_mt) { // a static event counter is set up and used so that a cascade of button events is prevented. // the same thing could be done by disabling/enabling the callbacks in GTK, but this is simpler. gboolean state = TRUE; if (old_mt != current_mouse_tool) state = FALSE; if (old_mt == custom_app::mtDraw) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_draw), state); } if (old_mt == custom_app::mtErase) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_erase), state); } if (old_mt == custom_app::mtSelect) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_select), state); } if (old_mt == custom_app::mtZoom) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_zoom), state); } if (old_mt == custom_app::mtClipping) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_clipping), state); } if (old_mt == custom_app::mtTranslateXY) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_translate_xy), state); } if (old_mt == custom_app::mtTranslateZ) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_translate_z), state); } if (old_mt == custom_app::mtOrbitXY) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_orbit_xy), state); } if (old_mt == custom_app::mtOrbitZ) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_orbit_z), state); } if (old_mt == custom_app::mtRotateXY) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_rotate_xy), state); } if (old_mt == custom_app::mtRotateZ) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_rotate_z), state); } if (old_mt == custom_app::mtMeasure) { toggle_event_ignore_counter++; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_measure), state); } } void gtk_app::maintb_tool_Draw(gpointer p1, guint p2, GtkWidget * p3) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : draw skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : draw state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_draw)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtDraw; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_Erase(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : erase skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : erase state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_erase)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtErase; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_Select(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : select skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : select state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_select)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtSelect; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_Zoom(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : zoom skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : zoom state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_zoom)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtZoom; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_Clipping(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : clipping skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : clipping state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_clipping)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtClipping; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_TranslateXY(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : transl_xy skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : transl_xy state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_translate_xy)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtTranslateXY; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_TranslateZ(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : transl_z skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : transl_z state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_translate_z)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtTranslateZ; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_OrbitXY(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : orbit_xy skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : orbit_xy state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_orbit_xy)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtOrbitXY; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_OrbitZ(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : orbit_z skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : orbit_z state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_orbit_z)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtOrbitZ; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_RotateXY(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : rotate_xy skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : rotate_xy state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_rotate_xy)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtRotateXY; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_RotateZ(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : rotate_z skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : rotate_z state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_rotate_z)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtRotateZ; HandleToggleButtons(old_mt); } } void gtk_app::maintb_tool_Measure(gpointer, guint, GtkWidget *) { if (toggle_event_ignore_counter > 0) { cout << "DEBUG : measure skipped ; counter = " << toggle_event_ignore_counter << endl; toggle_event_ignore_counter--; } else { cout << "DEBUG : measure state is " << gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(mtb_mtool_measure)) << endl; custom_app::mtool old_mt = custom_app::current_mouse_tool; custom_app::current_mouse_tool = custom_app::mtMeasure; HandleToggleButtons(old_mt); } } void gtk_app::maintb_dial_Element(gpointer, guint, GtkWidget *) { new gtk_element_dialog(); // will call delete itself... } void gtk_app::maintb_dial_BondType(gpointer, guint, GtkWidget *) { new gtk_bondtype_dialog(); // will call delete itself... } void gtk_app::maintb_dial_Setup(gpointer, guint, GtkWidget *) { if (project::background_job_running) return; // protect the model-data during background jobs... new gtk_setup_dialog(GetPrjX()); // will call delete itself... } // the main-menu callbacks start here ; the main-menu callbacks start here // the main-menu callbacks start here ; the main-menu callbacks start here // the main-menu callbacks start here ; the main-menu callbacks start here void gtk_app::mainmenu_FileNew(gpointer, guint, GtkWidget *) { if (project::background_job_running) return; // protect the model-data during background jobs... GetAppX()->SetNewProject(); } void gtk_app::mainmenu_FileOpen(gpointer, guint, GtkWidget *) { if (project::background_job_running) return; // protect the model-data during background jobs... new gtk_file_open_dialog(GetPrjX()); // will call delete itself... } void gtk_app::mainmenu_FileSaveAs(gpointer, guint, GtkWidget *) { if (project::background_job_running) return; // protect the model-data during background jobs... new gtk_file_save_dialog(GetPrjX()); // will call delete itself... } void gtk_app::mainmenu_FileClose(gpointer, guint, GtkWidget *) { if (project::background_job_running) return; // protect the model-data during background jobs... // gtk_signal_emit_by_name(GTK_OBJECT(main_window), "delete_event"); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // the above is an "elegant" solution but it segfaults ; why??? // in below the same stuff is done "manually". if (!DeleteEventHandler(NULL, NULL, NULL)) gtk_widget_destroy(main_window); } void gtk_app::mainmenu_HelpHelp(gpointer, guint, GtkWidget *) { ostringstream str; str << "mozilla "; str << project::appdata_path << DIR_SEPARATOR; str << project::appversion << DIR_SEPARATOR; str << "user-docs/index.html &" << ends; cout << _("Displaying the User's Manual using the following command:") << endl; cout << str.str().c_str() << endl; system(str.str().c_str()); } void gtk_app::mainmenu_HelpAbout(gpointer, guint, GtkWidget *) { ostringstream about_str; about_str << _("Ghemical-") << APPVERSION << _(" released on ") << APPRELEASEDATE << endl; about_str << " " << endl; about_str << _("For more information please visit:") << endl; about_str << WEBSITE << endl; about_str << " " << endl; // leave some lines out to keep the dialog size smaller... for (i32s n1 = 0;n1 < 16;n1++) about_str << get_copyright_notice_line(n1) << endl; about_str << " " << endl; about_str << _("Authors:") << endl; about_str << "\t\t" << "Tommi Hassinen" << endl; about_str << "\t\t" << "Geoff Hutchison" << endl; about_str << "\t\t" << "Mike Cruz" << endl; about_str << "\t\t" << "Michael Banck" << endl; about_str << "\t\t" << "Christopher Rowley" << endl; about_str << "\t\t" << "Jean Brefort" << endl; about_str << "\t\t" << "Daniel Leidert" << endl; about_str << "\t\t" << "Vlado Peshov" << endl; about_str << ends; static char about[2048]; strcpy(about, about_str.str().c_str()); prj->Message(about); } /*################################################################################################*/ // eof ghemical-3.0.0/src/res_gtk/0000755000175000017500000000000011645354541012521 500000000000000ghemical-3.0.0/src/res_gtk/gtk_file_export_dialog.glade0000644000175000017500000001353311563552732020151 00000000000000 True Export File True GDK_WINDOW_TYPE_HINT_DIALOG True 8 True 3 0 True True True 3 0 False False 2 True True True * 1 True True Browse... True 0 False False 2 False False 4 1 True Export File label_item 4 3 True GTK_BUTTONBOX_END True True True gtk-ok True 0 True True True gtk-cancel True 0 1 False GTK_PACK_END ghemical-3.0.0/src/res_gtk/gtk_setup_dialog.glade0000644000175000017500000006702711563552732017000 00000000000000 True Setup True GDK_WINDOW_TYPE_HINT_DIALOG True 8 True True True True 0 GTK_SHADOW_NONE True 12 True True 0 True <b>Select the Engine Class:</b> True label_item False False 1 True 2 True 0 GTK_SHADOW_NONE True 12 True True True Total Charge: False False 1 True True 6 * 2 True True Help True 0 False False 3 True <b>Set the total charge of the system:</b> True label_item 3 True 4 True 0 GTK_SHADOW_NONE True 12 True True True Spin Multiplicity: False False 1 True True 6 * 2 True True Help True 0 False False 3 True <b>Set the spin multiplicity of the system:</b> True label_item 5 True all QM tab False True True 0 GTK_SHADOW_NONE True 12 True True 0 True <b>Select the Engine Class:</b> True label_item 1 True 2 True True Enable atomtype/parameter exceptions (AMBER FF). True 0 True False False 3 1 True all MM tab 1 False True True 0 GTK_SHADOW_NONE True 12 True True 0 True <b>Select the Engine Class:</b> True label_item 1 True 2 2 True all SF tab 2 False True True 0 GTK_SHADOW_NONE True 12 True True 0 True <b>Select the Engine Class:</b> True label_item 1 True 2 True this is under construction and DISABLED currently! False False 6 3 True QM/MM tab 3 False True True 0 GTK_SHADOW_NONE True 12 True True 0 True <b>Select the Engine Class:</b> True label_item 1 True 2 True this is under construction and DISABLED currently! False False 6 4 True MM/SF tab 4 False 3 True GTK_BUTTONBOX_END True True True gtk-ok True 0 True True True gtk-cancel True 0 1 False GTK_PACK_END ghemical-3.0.0/src/res_gtk/gtk_stereo_dialog.glade0000644000175000017500000001032411563552732017125 00000000000000 True Stereo View Settings GDK_WINDOW_TYPE_HINT_DIALOG True True True True True Relaxed Separation : False False True True 0 -9 9 0 0 0 GTK_POS_RIGHT 1 1 True True True Stereo Displacement : False False True True 0 -9 9 0 0 0 GTK_POS_RIGHT 1 2 2 True GTK_BUTTONBOX_END False GTK_PACK_END ghemical-3.0.0/src/res_gtk/orbit_z.xpm0000644000175000017500000000142111634160016014623 00000000000000/* XPM */ static char * orbit_z_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #FF0000", " ", " ", " ...... ", " .. .. ", " . .. ", " . . ", " . . ", " . . ", " . . ", " . ++ ", " . @@ ", " . @@++ ", " . @@++ . ", " . @@ ... ", " . . . ..", " . . ", " . . ", " . . ", " . .. ", " .. .. ", " ...... ", " ", " ", " "}; ghemical-3.0.0/src/res_gtk/angle.xpm0000644000175000017500000000141711634160016014246 00000000000000/* XPM */ static char * angle_xpm[] = { "24 24 4 1", " c None", ". c #FFFFFF", "+ c #FF0000", "@ c #000000", " ", " ", " .. ", " ++ ", " ++.. ", " ++.. ", " @++ ", " @ ", " @ ", " @ @@@ ", " @ @@ ", " @ @ @ ", " @ @@ ", " @ @ ", " @ @ ", " @ @ ", " @ @ @ ", " ..@ @@ .. ", " ++ @@@ ++ ", " ++.. ++.. ", " ++..@@@@@@@@@@@@@++.. ", " ++ ++ ", " ", " "}; ghemical-3.0.0/src/res_gtk/gtk_file_import_dialog.glade0000644000175000017500000001353311563552732020142 00000000000000 True Import File True GDK_WINDOW_TYPE_HINT_DIALOG True 8 True 3 0 True True True 3 0 False False 2 True True True * 1 True True Browse... True 0 False False 2 False False 4 1 True Import File label_item 4 3 True GTK_BUTTONBOX_END True True True gtk-ok True 0 True True True gtk-cancel True 0 1 False GTK_PACK_END ghemical-3.0.0/src/res_gtk/erase.xpm0000644000175000017500000000141711634160016014257 00000000000000/* XPM */ static char * erase_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #808080", " ", " ", " ", " ", " .... ", " .+.++. ", " .+++.++. ", " .+++++.++. ", " .+++++++.++. ", " .+++++++++.++. ", " .+++++++++++..+. ", " .+++++++++++.++. ", " .+++++++++++.++. ", " .+++++++++++.++. ", " .+++++++++++.++. ", " .+++++++++.++. ", " .+++++++.++. ", " .+++++.++. ", " .+@@.@+. ", " .@@@@@ ", " ", " ", " ", " "}; ghemical-3.0.0/src/res_gtk/gtk_progress_dialog.glade0000644000175000017500000000744311563552732017500 00000000000000 True Background Job GDK_WINDOW_TYPE_HINT_DIALOG True 8 True True Job Title : False False 1 True True False * 2 3 True False False 4 True 0.10000000149 False False 5 True GTK_BUTTONBOX_END True True True gtk-cancel True 0 False GTK_PACK_END ghemical-3.0.0/src/res_gtk/orbit_xy.xpm0000644000175000017500000000142211634160016015013 00000000000000/* XPM */ static char * orbit_xy_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #FF0000", " ", " ", " ... ", " . . ", " . . ", " . . . . ", " ... . ", " . . ", " ....... ", " ... .. ", " .. ++ . .. ", " . @@ . . ", " . @@++ . . ", " . @@++ . . ", " . @@ . . ", " . . . . ", " .. . . . ", " .... . ", " . . ", " . . ", " . . ", " . . ", " ... ", " "}; ghemical-3.0.0/src/res_gtk/zoom.xpm0000644000175000017500000000141611634160016014143 00000000000000/* XPM */ static char * zoom_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #C0C0C0", " ", " ........ ", " .......... ", " ... .. ", " ... .. ", " .. .. ", " .. .. ", " .. .. ", " .. + .. ", " .. + .. ", " .. + .. ", " .. ++ .. ", " .. +++ .. ", " .. +++ .. ", " ..@+++++ ... ", " .. ..... ", " .............. ", " ....... ..... ", " ..... ", " ..... ", " .... ", " ... ", " ", " "}; ghemical-3.0.0/src/res_gtk/measure.xpm0000644000175000017500000000142111634160016014614 00000000000000/* XPM */ static char * measure_xpm[] = { "24 24 4 1", " c None", ". c #FF0000", "+ c #000000", "@ c #FFFFFF", " ", " ", " ", " ", " ", " ", " ", " ", " ", " .. + + .. ", " ..@@ + + ..@@ ", " ..@@++++++++++++++..@@ ", " .. + + .. ", " + + ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; ghemical-3.0.0/src/res_gtk/gtk_geomopt_dialog.glade0000644000175000017500000001517611563552732017310 00000000000000 True Geometry Optimization True GDK_WINDOW_TYPE_HINT_DIALOG True 8 True True True True Maximum # of Steps: True 0 True True False True True * 2 3 True True True True Gradient Cutoff: True 0 True True False True True * 2 4 True True True True Delta-E Cutoff: True 0 True False True True * 2 5 True GTK_BUTTONBOX_END True True True gtk-ok True 0 True True True gtk-cancel True 0 1 False GTK_PACK_END ghemical-3.0.0/src/res_gtk/rotate_z.xpm0000644000175000017500000000140311634160016015002 00000000000000/* XPM */ static char * rotate_z_xpm[] = { "24 24 3 1", " c None", ". c #000000", "+ c #FFFF00", " ", " ", " ...... ", " .. .. ", " . .. ", " . . ", " . ... . ", " . ..+++.. . ", " . .+++++++. . ", " . .+++++++++. ", " . .++.+++.++. ", " . .+++++++++++. ", " . .+++++++++++. . ", " . .++.+++.++. ... ", " . .+++...+++. . . . ", " . .+++++++. . ", " . ..+++.. . ", " . ... . ", " . .. ", " .. .. ", " ...... ", " ", " ", " "}; ghemical-3.0.0/src/res_gtk/Makefile.in0000644000175000017500000003542511645347725014525 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/res_gtk DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/ghemicalconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(gladedir)" "$(DESTDIR)$(pixmapdir)" \ "$(DESTDIR)$(xpmdir)" DATA = $(glade_DATA) $(pixmap_DATA) $(xpm_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ APPRELEASEDATE = @APPRELEASEDATE@ APPVERSION = @APPVERSION@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGHEMICAL_CFLAGS = @LIBGHEMICAL_CFLAGS@ LIBGHEMICAL_LIBS = @LIBGHEMICAL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENBABEL_CFLAGS = @OPENBABEL_CFLAGS@ OPENBABEL_LIBS = @OPENBABEL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_builddir_ = @top_builddir_@ top_srcdir = @top_srcdir@ gladedir = $(datadir)/ghemical/@APPVERSION@/glade glade_DATA = \ gtk_file_export_dialog.glade \ gtk_file_import_dialog.glade \ gtk_geomopt_dialog.glade \ gtk_moldyn_dialog.glade \ gtk_progress_dialog.glade \ gtk_setup_dialog.glade \ gtk_stereo_dialog.glade \ gtk_trajview_dialog.glade pixmapdir = $(datadir)/ghemical/@APPVERSION@/pixmaps pixmap_DATA = ghemical.png xpmdir = $(datadir)/ghemical/@APPVERSION@/pixmaps xpm_DATA = \ angle.xpm \ bondtype.xpm \ bond.xpm \ chain.xpm \ clipping.xpm \ dihedral.xpm \ distance.xpm \ draw.xpm \ element.xpm \ erase.xpm \ invert.xpm \ measure.xpm \ molecule.xpm \ orbit_xy.xpm \ orbit_z.xpm \ residue.xpm \ rotate_xy.xpm \ rotate_z.xpm \ select.xpm \ setup.xpm \ transl_xy.xpm \ transl_z.xpm \ zoom.xpm EXTRA_DIST = $(glade_DATA) $(pixmap_DATA) $(xpm_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/res_gtk/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/res_gtk/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-gladeDATA: $(glade_DATA) @$(NORMAL_INSTALL) test -z "$(gladedir)" || $(MKDIR_P) "$(DESTDIR)$(gladedir)" @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gladedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(gladedir)" || exit $$?; \ done uninstall-gladeDATA: @$(NORMAL_UNINSTALL) @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(gladedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(gladedir)" && rm -f $$files install-pixmapDATA: $(pixmap_DATA) @$(NORMAL_INSTALL) test -z "$(pixmapdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapdir)" @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapdir)" || exit $$?; \ done uninstall-pixmapDATA: @$(NORMAL_UNINSTALL) @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pixmapdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pixmapdir)" && rm -f $$files install-xpmDATA: $(xpm_DATA) @$(NORMAL_INSTALL) test -z "$(xpmdir)" || $(MKDIR_P) "$(DESTDIR)$(xpmdir)" @list='$(xpm_DATA)'; test -n "$(xpmdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(xpmdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(xpmdir)" || exit $$?; \ done uninstall-xpmDATA: @$(NORMAL_UNINSTALL) @list='$(xpm_DATA)'; test -n "$(xpmdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(xpmdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(xpmdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(gladedir)" "$(DESTDIR)$(pixmapdir)" "$(DESTDIR)$(xpmdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-gladeDATA install-pixmapDATA install-xpmDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-gladeDATA uninstall-pixmapDATA \ uninstall-xpmDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-gladeDATA install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pixmapDATA install-ps \ install-ps-am install-strip install-xpmDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-gladeDATA uninstall-pixmapDATA uninstall-xpmDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ghemical-3.0.0/src/res_gtk/select.xpm0000644000175000017500000000145611634160016014442 00000000000000/* XPM */ static char * select_xpm[] = { "24 24 6 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #F0F0F0", "# c #00C400", "$ c #FF00FF", " ", " .............. ", " .++++++++++++. ", " .+............ ", " .+. ", " ...+... ", " .+++++. ", " .+++. ", " .+++. ", " .+. ", " .+. @@ ", " . ## ", " . . . ##@@ ", " . . ##@@ ", " ++ ## ", " $$ ", " .. $$++ .. ", " $$++ @@ ", " $$ ## ", " . . ##@@ ", " . . . ##@@ ", " . ## ", " ", " "}; ghemical-3.0.0/src/res_gtk/element.xpm0000644000175000017500000000142111634160016014604 00000000000000/* XPM */ static char * element_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #FF0000", " ", " ", " ... ... ", " .+. .+. ", " .+... .....+. ", " .+++. .+@@++. ", " .+++. .+@@++. ", " .+++............+++++. ", " .++++++++++++++++++++. ", " .++++++++++++++++++++. ", " .++++++++++++++++++++. ", " .++++++++++++++++++++. ", " .++++++++++++++++++++. ", " .++++++++++........... ", " .++++++++++. ", " ............ ", " ", " ................ ", " .++++++++++++++. ", " .++++++++++++++. ", " ................ ", " ", " ", " "}; ghemical-3.0.0/src/res_gtk/draw.xpm0000644000175000017500000000141611634160016014114 00000000000000/* XPM */ static char * draw_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FF0000", "@ c #FFFF00", " ", " ", " .. ", " .++. ", " ..+++. ", " .@@.++. ", " .@@@@.. ", " .@@@@@. ", " .@@@@@. ", " .@@@@@. ", " .@@@@@. ", " .@@@@@. ", " .@@@@@. ", " .@@@@@. ", " .@@@@@. ", " .@@@@@. ", " ..@@@. ", " ....@. ", " ..... ", " .... ", " .. ", " . ", " ", " "}; ghemical-3.0.0/src/res_gtk/transl_xy.xpm0000644000175000017500000000142311634160016015200 00000000000000/* XPM */ static char * transl_xy_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #FF0000", " . ", " ... ", " . . . ", " . ", " . ", " . ", " . ", " . ", " ", " . ++ . ", " . @@ . ", "........ @@++ ........ ", " . @@++ . ", " . @@ . ", " ", " ", " . ", " . ", " . ", " . ", " . . . ", " ... ", " . ", " "}; ghemical-3.0.0/src/res_gtk/dihedral.xpm0000644000175000017500000000142211634160016014730 00000000000000/* XPM */ static char * dihedral_xpm[] = { "24 24 4 1", " c None", ". c #FFFFFF", "+ c #FF0000", "@ c #000000", " ", " .. ", " ++ ", " ++.. ", " ++.. ", " ++ ", " @ ", " @@@ @ ", " @@ @ ", " @ @ @ ", " .. @ .. ", " ++ @ ++ ", " ++.. @ ++.. ", " ++..@@@@@@@++.. ", " ++ @ ++ ", " @ @ ", " @ @ ", " @ @ @ ", " ..@ @@ ", " ++ @@@ ", " ++.. ", " ++.. ", " ++ ", " "}; ghemical-3.0.0/src/res_gtk/rotate_xy.xpm0000644000175000017500000000140411634160016015172 00000000000000/* XPM */ static char * rotate_xy_xpm[] = { "24 24 3 1", " c None", ". c #000000", "+ c #FFFF00", " ", " ", " ", " ... ", " ... .. ", " ..+++.. . . ", " .+++++++. . ", " .+++.+++.+. . ", " .+++++++++. . ", " .+++++++++++. . ", " .++++.+++.++. . ", " .++++...++. . ", " .+++++++++. . ", " .+++++++. . . ", " ..+++.. .. ", " ... ... ", " ", " ", " ... ... ", " .. .. ", " . .. .. . ", " ........ ", " ", " "}; ghemical-3.0.0/src/res_gtk/distance.xpm0000644000175000017500000000142211634160016014746 00000000000000/* XPM */ static char * distance_xpm[] = { "24 24 4 1", " c None", ". c #FF0000", "+ c #000000", "@ c #FFFFFF", " ", " ", " ", " ", " ", " ", " ", " ", " ", " .. + + .. ", " ..@@ + + ..@@ ", " ..@@++++++++++++++..@@ ", " .. + + .. ", " + + ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; ghemical-3.0.0/src/res_gtk/gtk_trajview_dialog.glade0000644000175000017500000001226511563552732017465 00000000000000 True Trajectory Viewer GDK_WINDOW_TYPE_HINT_DIALOG True 8 True True True True Begin True 0 False True True gtk-go-back True 0 False 1 True True Play True 0 False 2 True True gtk-go-forward True 0 False 3 True True End True 0 False 4 3 True GTK_BUTTONBOX_END True True True gtk-close True 0 False GTK_PACK_END ghemical-3.0.0/src/res_gtk/residue.xpm0000644000175000017500000000142111634160016014613 00000000000000/* XPM */ static char * residue_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #FF00FF", " ", " .............. ", " .++++++++++++. ", " .+............ ", " .+. ", " ...+... ", " .+++++. ", " .+++. ", " .+++. ", " .+. ", " .+. ", " . ", " . . . ", " . . ", " ", " . @@ . .. ", " . . @ @ . . . ", " . . @ @ . . . ", " ... . @@ . . . .. ", " . . @ @ . . ", " . . @ @ . . ", " . . @ @ ... . ", " ", " "}; ghemical-3.0.0/src/res_gtk/gtk_moldyn_dialog.glade0000644000175000017500000005302011563552732017126 00000000000000 True Molecular Dynamics True GDK_WINDOW_TYPE_HINT_DIALOG True 8 True True True True Number of steps : (heating) GTK_JUSTIFY_CENTER False False True True * 1 True True True Number of steps : (equilibration) GTK_JUSTIFY_CENTER False False True True * 1 1 True True True Number of steps : (simulation) GTK_JUSTIFY_CENTER False False True True * 1 2 True True True Number of steps : (cooling) GTK_JUSTIFY_CENTER False False True True * 1 3 True True True Timestep [fs] : GTK_JUSTIFY_CENTER False False True True * 1 4 True 5 True True True Temperature [K] : GTK_JUSTIFY_CENTER False False True True * 1 6 True True True T relaxation time [fs] : (heat/cool) GTK_JUSTIFY_CENTER False False True True * 1 7 True True True T relaxation time [fs] : (equil/simul) GTK_JUSTIFY_CENTER False False True True * 1 8 True 9 True True True Pressure [bar] : GTK_JUSTIFY_CENTER False False True True * 1 10 True True True P relaxation time [fs] : GTK_JUSTIFY_CENTER False False True True * 1 11 True True True Isothermal compressibility [1/bar] : GTK_JUSTIFY_CENTER False False True True * 1 12 True 13 True True Constant-T simulation (allow T-control at simulation stage) True 0 True False False 15 True True Constant-P simulation (allow P-control at simulation stage) True 0 True False False 16 True True Trajectory File : GTK_JUSTIFY_CENTER False False True True * 1 True True Browse... True 0 False False 2 19 3 True GTK_BUTTONBOX_END True True True gtk-ok True 0 True True True gtk-cancel True 0 1 False GTK_PACK_END ghemical-3.0.0/src/res_gtk/transl_z.xpm0000644000175000017500000000142211634160016015010 00000000000000/* XPM */ static char * transl_z_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #FF0000", " ", " ", " . ", " ", " . ", " ", " . ... ", " .. ", " . . . ", " ++ . ", " @@ ", " @@++ ", " . . . . @@++ . . . . ", " @@ ", " . ", " . . ", " . ", " . . . ", " .. ", " ... . ", " ", " . ", " ", " "}; ghemical-3.0.0/src/res_gtk/invert.xpm0000644000175000017500000000145611634160016014472 00000000000000/* XPM */ static char * invert_xpm[] = { "24 24 6 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #F0F0F0", "# c #FF00FF", "$ c #00C400", " ", " .............. ", " .++++++++++++. ", " .+............ ", " .+. ", " ...+... ", " .+++++. ", " .+++. ", " .+++. ", " .+. ", " .+. @@ ", " . ## ", " . . . ##@@ ", " . . ##@@ ", " ++ ## ", " $$ ", " .. $$++ .. ", " $$++ @@ ", " $$ ## ", " . . ##@@ ", " . . . ##@@ ", " . ## ", " ", " "}; ghemical-3.0.0/src/res_gtk/setup.xpm0000644000175000017500000000140011634160016014310 00000000000000/* XPM */ static char * setup_xpm[] = { "24 24 3 1", " c None", ". c #FFFFFF", "+ c #000000", " ", " ", ".................... ", "....................+ ", "....................+. ", "....................+.+ ", ".++....++..++....++.+.+.", ".++....++..++....++.+.+.", ".++ ...++..++ ...++.+.+.", ".+.+..+.+..+.+..+.+.+.+.", ".+.+..+.+..+.+..+.+.+.+.", ".+.+ .+..+.+ .+.+.+.", ".+..++..+..+..++..+.+.+.", ".+..++..+..+..++..+.+.+.", "....................+.+.", "....................+.+.", "....................+.+.", "....................+.+.", " ++++++++++++++++++++.+.", " ....................+.", " ++++++++++++++++++++.", " ....................", " ", " "}; ghemical-3.0.0/src/res_gtk/clipping.xpm0000644000175000017500000000136411634160016014766 00000000000000/* XPM */ static char * clipping_xpm[] = { "24 24 2 1", " c None", ". c #000000", " ", " ", " ", " ............. ", " . . ", " . . ", " . . ", " . .............. ", " . . . . ", " . . . . ", " . . . . ", " . . . . ", " . . . . ", " . . . . ", " . . . . ", " ............. . ", " . . ", " . . ", " . . ", " . . ", " .............. ", " ", " ", " "}; ghemical-3.0.0/src/res_gtk/bondtype.xpm0000644000175000017500000000142211634160016015000 00000000000000/* XPM */ static char * bondtype_xpm[] = { "24 24 4 1", " c None", ". c #FF0000", "+ c #FFFFFF", "@ c #000000", " ", " ", " ", " .. .. ", " ..++ ..++ ", " ..++@@@@@@@@@@@@@@..++ ", " .. .. ", " ", " ", " ", " .. .. ", " ..++@@@@@@@@@@@@@@..++ ", " ..++ ..++ ", " .. @@@@@@@@@@@@@@ .. ", " ", " ", " ", " .. .. ", " ..++@@ @@ @@ @@ @@..++ ", " ..++ ..++ ", " .. @@@@@@@@@@@@@@ .. ", " ", " ", " "}; ghemical-3.0.0/src/res_gtk/molecule.xpm0000644000175000017500000000144111634160016014762 00000000000000/* XPM */ static char * molecule_xpm[] = { "24 24 5 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #F0F0F0", "# c #FF00FF", " ", " .............. ", " .++++++++++++. ", " .+............ ", " .+. ", " ...+... ", " .+++++. ", " .+++. ", " .+++. ", " .+. ", " .+. @@ ", " . ## ", " . .##@@ ", " ..##@@ ", " ++ .. ## ", " ## .. . ", " ##++. .. ", " ##++ ..@@ ", " ## .## ", " ##@@ ", " ##@@ ", " ## ", " ", " "}; ghemical-3.0.0/src/res_gtk/chain.xpm0000644000175000017500000000141711634160016014242 00000000000000/* XPM */ static char * chain_xpm[] = { "24 24 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #FF00FF", " ", " .............. ", " .++++++++++++. ", " .+............ ", " .+. ", " ...+... ", " .+++++. ", " .+++. ", " .+++. ", " .+. ", " .+. ", " . ", " . ", " ", " ", " @@@ @@@ @@@ ", " @ @ @ @ @ @ ", " @ @ @ @ ", " @ @ @ @ ", " @ @ @ @ ", " @ @ @ @ @ @ ", " @@@ @@@ @@@ ", " ", " "}; ghemical-3.0.0/src/res_gtk/ghemical.png0000644000175000017500000005220111563552732014721 00000000000000‰PNG  IHDR&w )© pHYs  šœtIMEÖ0fu‰£tEXtCommentCreated with The GIMPïd%n IDATxÚíy¼dEy÷§÷™;wÄ5n!jc^c\¢I &€"ˆ¯DMÂ&ËÌ0ÌÃl Ãΰ 0&õ}Íf4Q“¸€úº„ÍAàÃÌáörêý£ªÎ­S]ÛYúÞsº«>Ÿóéî:§ûöí>çÛ¿çWO=øæ›o¾¬#ò’ý¿}ó̓©È0:ùä“·ÝvÛ(z”Ïóƒ¼ÀËØöRûØÀ|vË勉­&ܯ³×ê)¶.€ì°WºÝ`§°M°Û'<Án;þkÎ RVE8ýôÓéBb›Ø·mÛ6ªáhU‡x=€× ·¯eªüÜ}†Aêq?ð?lû1€Ÿ¨Îo¦’ÀhùòåJø¨ëú¯¾újªâ· ÏÛÅnß  5¤ÿïnßðm¶ý€‡„L…ѦM›Œ q’NYmÞ¼ÙƒªíW|Àïø_ÆGüóØ àßü €ð Ó,‡h[·nµ†h&ØdyÞÚµk=¨f¦Íð!G3½Ô$Æö(€ûÜ àßËúe€Ñí·ß>ãrí[¾|¹‡S~­àƒN°À«¢ÔíG®p+ =˜òÒwÜF£ *I§…„aˆ^¯‡n·‹^¯‡óÏ?ßÃ)[;ÀéNð"ÿqäÖžgpºÔH÷`J ¤[o½ÍfÍfA R©Dp7i ”æ92ÄÛ¥K—z8%oïðjhÏÔ¹ö €§Øö €gLbzxŸûOã÷@f¾½ß h:O)¨h°ûs@ÓÆÌMCðb‡x fn¤ø;—ø'¦áÚ 7Ü€V«A©Z­öÁH©¬ ²í!¤S¯×Ã’%K¼ïäÖ>`=€· èõ{ Ã?Á ô,ƒO¯ ×^‹ÁꪗxS‡èú+ç²ÏƃI¤K.¹Íf3¿­ÕjVå *˜d Ùnùýn·ëC;}{'€ Þãk† ¹>±ÛÇü4á±ì~ÛK ^:*ù¦œ”åSO˜Ri0E@Z¿~}¤ŒD•$†pIA”¨Â0ÔB'Éíyççá4ÝŽ°‘…ly´ÿà?ŒÇèdM7A“Hßà7¬²´Ÿ8À£¦X¸¶zõê>É`á’DIA壤€B»Q…Ó\8‡ù/iÛ>Ð\¯3U4 ßÀ|«·0úγ/8ÀÓæHgŸ}v„ä[¾ñn Òíç![¹jÑ¢E£ê;}ÀV¯Jùühòà¿ø>ü\2[;t0áO.ÍâgŽðµa€SO=Õ Füq½^ÏD¶Q½è Kpr…P5Bê饠ÃÓǦ|þc¾à £c¾%k Ði:ðê„Ïmƒã[‡ L”Z­–2dS‰ç+ D"D0ÉùI*è䡜ºÝ./^<ìpúhÞÌ‹S<÷ËîðCÏ–Ü®í×0õ®„Ïý€?Á,=˜œvÚiF•¤“&y€H’JºäIˆÒêÜsÏF85\ àìÏýgf¾>éY2°özÐÖÃ<ç!ïá,7˜N?ýt+ŒL¾RŠÉ$Ñô–oå>t²†zçœsÎ0ùN¿àNG&|Þ7|4ÏÈ·Á·*€ßðiФO—ö=ïÁ,˜ây]-Zäì)5›ÍØ”“,ŠI† HI $æ1™ ”6¼ã÷c¼¬púƒÒ¼Ïù>€›@G×|›ù6ùOÇ$PNïÍ/˜,^¼Ø9tÓå+% Ý’‰À™`¤Úgò’ª&y·Û-shw&€ËÙ/±KÛ àZÐR¡çì·Ã¬­ìik28=[*0-Y²$‘§Äó•ÒzH.@’»($]÷ò­Sõ}öÙe‚S…é3 žóAMñç= ÕÆAGáŽr8öÛ ée€U«V9{J­V˘¯dKŠL $¥¤0Ò™âY}'Ý1guV|§¹>Z’Ä¥= à2ÐLmߊûCs,€;ûUæSu‹ &ôgs›B7•¯ä¢š\à£ëKê+ÙúlPÊ’NðÌ3ÏðBtAA¡ô×Ì uUIÛ@³¶}+~{ €åì{6µË,ô›É2MkÖ¬qÊSÒM9I£4}(b(™õ‰û\újµZ, ÕM¡Qí×íãþ(B¿HpšàG(µY¨÷­—ª}‡ù†—À\ë\öÝÞ7h—Z-ñ$Ê9sæD÷åɇpÕjÕ¸ñ‹>kŸ &X¸ôU«UÔj5ÔëõØ&ö©öëö‰ïýÒK/-Ú Ë¡ô^‡cpš‡RiÛ/¬pÕ¶#yVùÀè".žßø”“¤Ãûi}&Brí³))~:蹨%ž–P­VÑëõ¢Ï§ ª© Z¿ç}Ž¡ÛuðsÚÊÞ~ÆÂµó Çìà¿ZB¥Ù´i“sè&¦ä Ûü7“w”Ôk2íKš&Ào;Úí6Úívì~»Ý.ÊܺÏÎ:·µÏø"Flí³!o§øË1×8u¼šJpôÑG;…nrj€¸qÕ´ÏtŒn>œK_ÒãÅû®óóÄÇaFyRòý0 qÈ!‡à;ßù\8K'æjØSB›üƒ¿Ž‡®=º^߆cÞàÿ0•5k¡€+¯¼Òº‰~Ò ò’LóßÒ„fYÃ;ñ5…x@*X‹ÙG1›!ÝG@ë(™Úó#ü¤ÛálSÖ&Å6 ×Õ µ rMšM¢˜.¸êª«Œ ‰{IÜ榴Í{Íß$ I|œ‡ Ê¢štSdÄcÄ*™&ÅÄïy䑸ÊW¾2ÓªévÀ^( èô߆·M‚VýÃ1/­„ùÍÙPLÑ(œÊìæJ›  RCIž'*—,*(«jâ}õz½ï³à^” ´ºmÿý÷ŸiÕt 35mKmoÅp¬üz€—ƒÖÖ~9h}íNr óÀh&ûnv»tu\¾Â“(éšnRû€ÿda®­­¡õÜL›ßdÛ¶m}5”Ä¡oÝ­.ÄIóX¨™4¹Óšâ²Á-ßšî·Ûm¬\¹r¦LðþØrÌý “pËhtÏðkÞÌ”áKü÷žeJ¢ìU8pÌéEW#Ù4¥ÌŠ)¦–ļ]² «—”ô±üºy© gŠ+ŽçOÕÄÏBLH²U«Õ™RM§:@é¿@sXÊ¥ h=¢÷ƒæbÕfðoº¼ùïfÀ‰AêG%û Ÿp€ZΟ|7¯/Í ¥Ûn»- OT#a&(e…‘î±É w1ÓÓf’»'ÂIç•é@$÷]tÑE±ïcíM ËùØ~ý/Ey–Eª€®$r-€Í>0ÃPR©µ£la¦òá(W»ÏªÕ¬ÌóË3¶[n¹Å¨‚\ 'ùì“AK5:(I—íÄOÔ W­ 9ÇrÜF棔¡ àv¡¼¼€ïïÍ®ÞqPI>Ó}  ´¦vÒ/>‘ L¦ù]&XÉýyÂI÷óRAiútïMTM:夃•Øÿú׿~PªéÐ œ¦v;Ê‘0ÀbÐQÌCKð~ßü›ß, œ¾óHlÀYƒ‘/<×n&”’ ¢3¡Œtéª[Ni7©4JíPÐDJSûèH]ÑÛÛ@3‘ßrµ:Sv'!ŸUvÙB·YŽùûœù½uëÖØ/|( Òc²ÁIeN‹&µªÏdfÛúl#v60¹úOp@ÞFø0×î€Î6ïøb ,pJÆ×ù!h1´ÿ¶gXø:Én« óÄæ ·Žô½•)ÏW¤üû'x-è¢E^¶ê{ é¯Ôì­+~é ÀDTê IX—·žèLM4àR)#£<Í –ø¨ÞÊ•+±nݺ†y`_8uÜm9æãyƒ \pA&Ó;Ï0.-”t€ÊC-%IÊ”ÕTR9$]&m ØóMþ Å­ÓJÛA×¾; ˜Ÿ } 4Ñò÷á6§¨pª°põa Üßse‚ä`rQD.¹Myæ)姬!]ÒÐÍÕOÊA€eË–¥ý(>m0.ÁN¶íC¥ÇþÅZTóØû¿ÞN‹1{‰¡cLe¾À'l` ðVм¶šå»Z˜—ùM\¼—²µy(¥¼ äjŠÛö¥ ±<Œp…×äúAµØ…mj¹NÆœ%(ݺ\yQ'Ñv@§pü7è„è†áØß‚¿~ÀŸíA É¨¯baþa®ýíÒŽgßEf0aéÒ¥N rQSY•RÞ`’˜+¤Â0ÌÂÉ]GáLóì–.]Š‹/¾8ÉÛù3fúš¼˜ x!×@Wæ°A©ÇŽ»åh7®tû7,<ÒµŽf] `áÕK™AýÐy„‡a0ó0ßÇà6‘L‰LïAå1 H:@ÙÔ’ FiÕS’Ü&h¥øœl³¿ï, Ê¨€¦ü¶å¸Ý Cô‡rµ¯ƒ¦|Éâ'ý)hžÕ£ °ƒAóªð:¡™ô¬x8ws&ÅtÆg¤ò—òHªTÕ3']Ø–F:¥dòò\<%U ÷Z˜ ó¿-à…û‡ÌH5µ=ÌOú:ÊÙ¾ àc #]¦ìﳘ"ìI×ðAL ‹aØ‹ ò¿ŸLI|%[þ’+ŒfZ)¹øN6è¤ Ý²¨&UX§SsÛdÁ.Ø×°ðÓÔ^µ_V(ñöEË-ŸÇ{¼^ à , +ÚT–çAËŸ<„”•-k.aœ©?Kª@Q%ÂÉä'剷iÒLaæµ1дÓÉÐ]Þú_†ä¾‚ùIïÏŽÏdë‚Ö–zˆm²ÛÇ‘q²y¤˜>ùÉO:›ÛITTQ•’NYa”ÊDI˜*À¡$üÍ¢­Ü›G;É!YUÐð3K;]ÜÍ‚½¯'$ø<Zi =ˆ?Vs ãò®Tiò•Š©,!]#ܥʥ ¥SO=×]wÝ]›x ÏLíïAç” [û1û¿VÏÒßß:Q÷AI MÌä›pSÒ9s®J©H §›È÷E(e áT¯cªÕ$®Ð«ªd0d-ðç¿Þ'cxØÜ:¥ã°þƒ †=Z„Ï5µbJ3:gSJ³ )T÷UpI£Ää¦RLòštòC§7ƒ–1µs@K’ k{´ç–œ^ïI€¾—W©É¥ëT“$I•.*”ä÷ªSQ*X ÊW‰PÊL8„PƒnÇ[öö ¤Ãж¸ö’ÇbÛ« ÃJñLÛ¶mÃ’%Krñ™Ê¤”T¶Fò{×Á*i¨%‡t&_Iµ ™·d*óK@§šŒB›­óô žt­  G󊸳 ¦1)Mq8ˆTûŠ%›j²ÁIµßæMÉ×”0ä`úCËþ;@ç—J»–}&IúhI•¡mÎ –.”kÈVT¥¤‚DRÉû\=*•j2ùJ ðÅ4Çüå˜Ë0Zí?1øE9 Ùb£Y|%ÕEc‚ÔlÂÉv1›Þ^KžÛÔ¢¬–r‚R‘Û0—Ñø*RfûVr0MMM%y/”0 c·âý"À()”L!]žðLÊË Y(÷.Ëþ«üå:¢`zúé§~ée™ $ß—ÕH‘¡”7Œ\à¤ú¼TÒd—µ5¼Ó°ÿIÐ…|E0ÝvÛmZ ‰ÑAÉtAÍæ¯½íoÙöN2ðÅÍå3üÈG>Röóð  %2tmʳ4¹o9ƒ)/Ñ€•/“"rQNâý¢©$›ß”ÔS²¯’ J6Ï©ÄͶ°WK£¬˜µ._(&Å”JâñE†’ £!ÓÐ:Cºö×(î2R¾Í˜~ñ‹_(Õ’É[2Ìé6“("”\à”D%qø$UL*ˆ—L¯´ìÿG™z0a×®]1IVK.!‹r²ª¨P2ÁÈ™Â_[ø¦úŒÏ`ûËþ÷—©îºë®èBRýªË€2…ti¹´¦xÖ‘7×ýi’+ÅÿOzÕgëªTy_‰Û« ûž-ÍáÛˆƒ)62gº`²ŽÌ™B¹¤žÓ UR¿‰?7IÈf ßTŸÿ}÷ÝWæsðpþÿð—¨SÔvîÜ©„’« nSG6¥”P³%œ²I:ë>7ñG¥„çßaL¾9éç?ÿy¦0Ã!Ó±¶áñ"@É'™ dRL*¥zçw–ùüÛæùqßõ—èh6åI±k×®X%Eù"ûø}^7Èå¾x‹• ĦÛ'†H³Þñ÷"WÈ¢’\À/o%VK€}±ùKÔƒI &±Ü«Pü–ƒ„_0:@ÉÀá}*ÉÇç1¿. ”TI—.jÈ5=@:ë<º¿üË¿Lõïèü3-‹Ý-|æ›åh»÷Þ{ÑívÑëõŒ“KHgºŸ&œs±dº|¬M%åa~ëòÄJ®–`¾aߣðóã¼b#¤×ë¡Ûíö•yuUM.¡œM-éª?šTÓL@KÒ$þ‘‹Š’÷‹PÚ¶m[ÙÕ÷˜|ç›[(?ùÉOpØa‡A”.¬ý&9\“' & ÛøkÊPHÒ¥…–k{^£p.)RK3½Á†}ôš!©[L»víŠ)&P¢Zâ·: ¥QK& ™À”w´ké–¼ÍnSÞX†Øºuë°\P&0=í¯cï1õµ­[·FS·Û<'~kšxšÔWr_—eÚŠ«Zâï…ÿïIç´eQG6Å$ýßeWKL¾%VL¢SLò¢Œò¯ºid.«RÒ)§¬ÞQÚ¿ïA˜ßª×¹ì²Tõø‹~Ìõ`ò-Q( ¦˜T€ªV«Ê°N +]ª@R %ñštÉ™¦"ÿI¶,êH— —>ðHÜl-rÙð`ò-1˜:ŽHªÇ*\·¢‡ PiW°å¯5hudznR ¥QQ„lÚ´iØÌZ˜žñ—§÷˜”mÙ²e}“Îs²Mô5åå¤Ù\«ˆÇgñŒDÏIÞ’úGißé%˜&ýåé“Õg2)&U–¸M`Ú¯€çß”“oyƒ)§¥K—•“ ']H'*)œz½ÞŒÃ‰«%˜L0Ê!™2 ˜.àù·ÓƒÉ·A€)‚ÓÅ_Œ¥K—jÃ9•bR…t*@%SÖ¢siŽó’t€2Aê¶ÛnËëû4é<ÿžó`òmP`ŠÁ‰Ï†7yLª¼&UAR8‰¡\VØ$QK6(éB»œÕ’ L‡• LûËÓƒ)78mÞ¼°bÅŠ”øœ99ŒA¥K#2up’!8(å$'«%¤äÛ©©)t:Ü}÷Ýy~Ÿ?3ì›` Å*Y»Ë°ï5þòô`ÊN@Ö¯_+VX=&Þ/ª&]¦x_†“l|Ϙdµd»/ß~á _ÈS-À£–ý L¦ô†_ñ—§(²~ýú¨,¬˜€(I†• J:8墹ç¾éns†>Á@¥¤Ò@iÆ FÉuΆJ1‘Y”ýÿfÙÿ† ,TÓi?¿ àÿúËÕƒ©èrçÓ).ÇwÆÇÇQ©Tú ¥ÒŠ+0gÎÌ;sçÎEÎ0RõqµÔjµpÌ1Ç`ÇŽ³ùYý;huH]Aÿ·¡X>ÓƒN0ì_àÁäÁTFP‘{î¹'z°páB´Z­D>ö±Å@$¯dR«Õú— Fr8×jµ¢ÛYnû| ÀïhöU°ðèGì½Ô5ûÿÀYðiLe†Ô}÷݇K/½sçÎ`d[ˆR.lÓõÐgúg˜^à»ùþ¦˜Ê{·fÿ¡ ^ÓßøKv4Zeÿ§-ZÁG Ñt«åêÔ’+  82÷O–ýï,Ø÷öUËþ3üåêÁ4pJ²l·«¯¤ë¯V«1Ÿ‰«·Yü ¾`·aÿ{T ô=d Õ>àµþ’õ`*}3-×­‚”.œsUQ¢Ïtì±ÇÎö¿ßð·†ýc(V1¶=þÑòcãU“Óp‚IVKb…ƒ,æ7ç æ3}±dáœÍCús¯ò—­S©Û¹çž‘*„“SZµLÌÈgú[Ð:]ûô)³Ñyî\ ÀÅþ²õ`*s \Ã9](—6—©@>Ó$€°„s¿^ ïŒ°­Îð¿å/]¦¡çljIL¬L ¨J¥©¥f³‰£k…ÈÆ¸Ç²¿hµ{¾{VúÖ‚)=ß<˜ÒÉudNÎ%T³ÙDsñb4·nE«Á˜‹þ¿ÀK ô•u\g9æ×\ê/_¦RƒÉ”Ã$ïÏ’ËšôGhA´ M¸ÃrÌ{ öµ}ÀZŽ9À±þö`*e[´h‘³ZJ3G.8ê(àío~ã7€w¼Í @ ˆ¶‚´m–ýÇëí «§´-ÇÜ ýäßanï®< [ IDATó`*wë3ÀmêI„“Fo~3ð–·o}+pä‘@ àû™ñÑäÛôóg»¨×7a®l9ýô•Ùj¿°ÅrÌ~¾„â­þ2¨ö2Ÿgÿ³Ó(„sªÑ9¼îuÞðo|#ð¦7Gâ“ôx_+èà˜Za¦#ÚTÓIÐO¢­ö°ç6:ýæÕC| לà0Waªx$Àd™#¿ýÛ • Âj¤R¡Àa,AUE„L+#¡ŒJ__ IˆJ5Ív» Àz/Òìèª$ÿV°¯o;ƒÎ ǼÀ—A« Û:tdÊÑué­/M¨3äÀµsæ`n¥‚¹Õ*æV*˜S©D£ûlkT*è…!BBÐ Cô¡›¦¯ÇWPa}»Ã‚‡Ã‡!>Ûéå³¾ÀÃþ'œŠâ•°ö¹rû| v³¿ í(ÐdÒ÷&xΗ\2Ëï;—•xG!”£>ß<ÄÇ¡ø˜« éø,z¬ë Xÿc­ @ÔMn본 t”Îäaq-·I«@× 3µ9>šJÐ*éùúZÐE>¿QB(y)q8Gzzú³[“‡¤ëãýU%æ5‰Êm–Û€,ÇüYñx €Nò]î'8´ZÁ{JtоÔØþhv{…=TP-0‰êÈ¢˜BÑ?à T“©¦&€ck…²ò.ƒyþ@æk±%ÓkAMñ[^àSó=þt¡Ò¼ÍÐAi¤ÀԓᣠéXŸž™ %÷E…ã˜jj'Ñ’·Ÿƒæ™ÚÇÌ8Àÿ-ÝûYÐEŠÐpSGÿ”ò‡àìs¸d¯×‘Ó¢©©xz ÅÄûzl„-ÁC „Ü%‚в¿‹­ðœaÀ‡ üu&…SÁö{ ‹0œš5Ó0:Àý~ jl¿>ÅëtÜàt ñ Å£¦>\ÒÒg‰jÉIA±+[TM¬eõÔgl°óÇ8œ¾ð|ÿ=va?à>g8ùWó<À²ÿñ¼tÒtÚØþŸ|š½ïÎÐ_°#ÒÈ•­M`)â&÷Í©T𔀩Ñq„à§BÊÀ#aˆû»Ý"}æMJf8æ'Î.øEPð Ði5YÚncº.ÔcLYîÜË~\æ²m€ý¼´€Ý+¼ty¬Csü¿Å öX ®³\Òj#¦éQ9œÔÄÄÊé˜-Ö…yòq¢b*f87`èH®½’]ð_(ø×z3ó‘>ƒôiã Ãóï-ÐÿöhÆþ÷ ¤¶}(—wSŽÀòšb¨wL€Xi@ôš‚BŠÓ;a_HòdÐ%Å‹Þþ…9_‚Sõ!¦ž Zia¤ 4r`Z<5Õç'©òšxŸË(œ\Ñœ9®Ò€Ü>Íü“ü^ŒâÍ£Sµç@MåÕ% {äö£å N#¤QS©&žž&„“Ó”æ·TU .v¿ŽBVÛã,¤3µ×€Žj•¥} tåÞU,Ä+r{ Àìó½ÀÃðm´<&`:@Ò©ú*< Üo õ™J0Ýýó,ä9ÍpÌ«@§S¬ÍB.s뀚äùà)Uk€&â~ 9ûÕ•Qü4å®§Êk@e™³Uà•¤9sE–ñçø/Ë1GÖm üµ9²í®5ísçÈh‚ &¸”Ïh<$ÓÈ\ * ¨Ú€ã˜ö8€ÉZkŠ©“ôg¦xÿ:qø1¢Â¶ÇA î}3X7jÔóMÈÕ­Vÿª)²‚ ‚è~(ª"¤îß·/tó¯\¡µ¬8ú誷/MñÜÿ5É¿‡òW, í]âëj$ÌÚö`ÊLWˆ>“F1}içNÌ ‚\@’×1b¦ú ž'—Å=©Ùøn5ÇÍà}ì`¡Þ³H³Ò&A‡ý7Á¼(ªÓ Â8¸L6À ~09‰ñ @ƒ}H.±ÂF€X–×é2 õ8uì"Ï‚:ÙþŽO°%¥zâíþÀƒ(v¡µaÒV–?3Ûo&EÀIõ:jƃoªVñ|F j¨ê@TZWþOªz?G1j'W>àpê w‚療º}v5:-á3È^}à[ ¦ë· ¤¤(ÁõIt-ÒÓE¹XƒQÒIõ:ªÆ‚ó”Z„ì ª3@ÕPR- nþO-Õse…¤¿¿›ìbpÚEˆ¸Âl|ßop€÷çôz®˜û]ÐEv ‚™ºX{’…l×±ºP- }¼^G À|D2„ê PR:é6¸)ÄB€LpÚ à9Úí"_œ]84Ér5€ßÉùuºÚÈAsk~‰ÁÔ#`ˆ®»O¸³`j:˜|²^ÇQ ‰’•’+1„³ÀÈRiUTW¨| PW—ÊwšbpÚÅÔÝÓ¡Ýl~ï¿ÃB¼A.Åý ?]ég,ü{Àn$ò~À_gL¹AéÏëu¥Rª#I)Õ0ª(À“¤T°")’Êw AMñç¡€ðùÙ7Æy{€3@GðfªàBÈB˜Ÿ1xí5Öw3¯E\ñäV}y0å¥FJ¥TÖ’Ëuc°³…t‰d“øx!xNïîŸýÐŽ·´ÿ4€7ùëÊ·¡Ó_dPJõ 0Þ)adRR}#nŽ I³o§]„à¾âÀ‰·w‚–ó=À¡þzò`µô™Fè”T¦·©AÃHæ™@:@¨+Ô•=§PØ×c1 íž#÷N¼`!ƒÔ›üuäÁTZ0}¦ÑèËCR*'Ez€.gi@ LaœTƒoØí-·Ü24×÷P€ie£aM Ы6@ ÉK=©|%ÓÜ8’B¡4gÎõ9X/øIâÚr«¦Òþ°ÊíøãG¥R‰¶z½ŽV«…z½Þ$Õíõ×__êk=†/um³©*% Ë´“¤@NVT 0™ââè[UÕžÃ_c'!ø1!ø…“Ó háÂ…1ñ­V«¡Õj¡Ùl¢Õj9IÕwÕUW•îÚ/=˜Ö6›©”RL-)¬L®I¯RRª%T¶ÄK)DËÃwꀎÖý”\>]×ÉÃi@Z°`AŸjµÚ¤V«Ûø¹•Lò¾-[¶žAÙ¿èM"˜,É“2¤’úD}ý©Ž“ã2Ñ7ש*õÔ&mæ7ýOb»érÒ1Ç£TFÜ7’Äö¬@2³aÆB2!(ó—}1á4yI:¥ä:íD ¡Ü‰IÉàJU]`À¦8‡R‡‰«¦_‚‡!î>#|V€ô'ò'JqßHÞšÍæÀ@d:æ‚ .( J ¦s ÆÑ6Rª!y¾‘*Üs9ºN¡ˆ\Ã:W8‰Yߺ*m&N/x< q½WM™€tÜqÇõÁ¨Z­*aÄ7Õh[ž ry!Ë—/ŸUNeýâ/o6Íé¤lÓNÒ¨#—ãBn£v68Ùæßñðƒ©Ã·L‚ÇáÕ<˜éÃþ°Ö7R…lªÑ¶,PxÎ8<_~ÜëõÐívñÄOˆÆyàÁd9®h6ÍépŸv d¬ášFªãÒ*"%¨•<Î5S\ßd0uü4 ±Õ«&g p 15¾Í¶%Ê Ô‡R¯×C¯×ÃÞ½{Å/ð`2œ×¶Z©”R-!h2yLAஈºèùŠ× Ô‘¸¯£ßÚ¬8œv‚Ç ÁmNF xâ‰}Cü*µZ-Ôj5ÔëuÔj5Ôj5T«UzN±-Oð$U_FL" Î?ÿüåFéÀtm«•J)Õ/ö–F%QQ6£ÛUî«­¸øN])|Ó‰÷=ICü•7Âû€tÒI'}#@ºû"”äm&Õ’!Lüö›ßü&îºë®aG­l'Dl¾€FqUÑ_yÒ”DŒtÇñ7 A€@Žê—A<‚œí‹=iú8ñ˜¾ÿ‘¾ÿ/ TA…}6Ëã<x‰çàÉ'ŸÜ7Ä_¯×#ษ^¯£R©Á”RiÂÂn·‹ bï‡ßoßö¶·á€àYådp*ÓGnC8AÕ@Ëár Õ„¾¦çÃU`ª Y’¤‹ŠRªž„F·õ˜¦x[á-©T’ì==ë“.£«üÓŸþt B"pl@ûlj)OHÙÂ7UèfRPÏ=÷Ö­[7Ðó!(Ó‰qò7[_U‘¤˜*9©(¸„l®+÷&YÊ`Šó”ˆ:†Ñ9~üOÁÍ£;BG>ñ‰O Ñh(A“D)¥QKF•JeúGQª¤Pác”ªï¼óÎKJÊ}¶ÕŠÂ *.}"\· ïŠ#›Š`Ù˜)(Ž5…uÆðNò÷ßeá[ …kU¦¤Tá[ <ØþâÿâÈ-”Úl6’+œ’B)«šR)%9|“C7U8'wÉ%—à«_ý*vìØ‘ûyQ+ˉ¡R6ÖÐ ³º}¶ÕQ ÕVRÁÃÕ#êUÐ}L™`ó¤Ï¨Â”dOØ/÷ñûcþ¬^ÇñUVFJ§œrJ*…¤RJµZ-•ZÊ+ä Ã0ò”t rñ›øýw½ë]8ðÀqóÍ7ç §  'Æõ­Ƹ©-øF5‰Ëù•Ë2©B;¡¿b0Ï¡…K»L¸±ŸlŽÇ‡a†ÖM÷Xöšö‚‹GÇkŠŒîýöÛ/µRšIµd{ %Uø–ô¾Ü÷ÔSOáâ‹/ÎíÜ(<˜5x]¥)¿T³€&-°1ìr0«c}L åq¼r_¥0 ràdS‡,½Hmñ÷Eˆ5ÓÛõñ°†sþð‡Q­V1wîÜØ´’4¡[µ”J:u¤‘ÒNDP% ÝL£x*ˆ]uÕU˜œœÄ²eˆB1ÕR <*ÏIµ\S’¨)ZŠõ³/&¦t„´‚¼¼¨è¤#P¨%î/‰}I¼&Ó¶´ÑGè†ÊWÕR–ÐÍU-%’+Du¤SMïËU5é $÷Í›7/ÕX!Ó¹ µ”6”KR6×X6µ XrRK2¸" ï)‚ƒ‘T “¬j gØ™KDTKóæÍüyó2…nâ>Õ;(ÙB8Ý>ž6¹$dòûW^y%Î:ë¬DpªñQ ÉC ŠÍ_’fü§ ãŒjÉN¹ª%B@Â0REDþÛ„ô+(®š€dÊIΩ²ÒË ¥c=¶O-e ÝljÉLi€ä©ö锑>.£u\…nÙ²‹/.o(wª¬–8(äM²‰#i•Œaœ.œTÈæ9U*ÑqÆ”WµÄ¡$™Û1 a\ß¾¤`RlŸiáÂ…1(ÉyK®êH•T-¥…‘*5 ©j’ß—Î_rM-‚½^/* “ä|©í—Ë% ³ª$¸¯Š««I)©€Å¾0§PΠ–xø¦2·cÆ7ûÛDRp|ô.©é-†w<5ák5^§É&ŸŠ ®˜¯T¯×1>>Í‹KºñÇ*µ¤ƒR‰¯£ò•’¨&ÙOb€Ë÷yˆÈ·Í›7ËË¡˜>Q¯['ËšFàlSG\Íí µ¤êà„j‰H&·ÊÜ&Š¿íFîH#œ¿·Ã+œÑhDÕ øŠ+âãìà fJ*µ”&t³©%òPG*H©TPÕ¤2Åm Ju¿×ëÅÒ’¨¦BɦtŒ“v²ÂÍmÕ•“T-YB»ÄjI5ò&øH.Æ7*•(Tæ69<&¬®8ð!x]¥‚NÄ Ô ‚¨|ïiõúô> \³­¶,XA©Ùlb||sçÎͬ”Dµ”'’„py¨&®xl#rª}aƀķM›6Éez‹¦^‚Q5—p Â8XFðÒxK®p2¥ð)&Dñ·ˆÎøÂ;b ï’NUáulj š" ZHÅ ÄŽájK®ª­XW©T©%%5Eä’Ý·j’Ã;—‘Z?ã$ª©H±?€Ï4Ñ4”yæ²é(cA€¹ˆW« Ȫ®jË ºTSO¢M×oÚ'÷Ã<…HÓJbSN˜ júbûØkô†è9NæÝ `’ì!“þ”«! .b(Ç·Ž¦/%ùu¤>€;(´Rm‘  Ñh Ñh`Þ¼yxÉK^‚C9$Uz€)™2ÏÍuÎuÙ¦4Ç릧ˆ§¦¦ŒÛ /¼À×­ Ê ˜è\U[(ç˜T™ÄÜŽúø/ƒM)٠菉“N-qÿHò†tÆ7I¨–xxh&ùÊÊTTJ§6€¦Ó¨’fD‹kF”SŸºbåc:Â1Ñqì˜3Î8ÝnN'vË·ûï¿ß¨¶Ä_sQ-¥5¹¹*Cœ™PMDUPP¡~òPT¦Loþ~ÄÏ6­j*\º@’$ÉŠ%Ìs1¼Ë{È-Œ3½«PûI—*ÈÞØGGe†+Å «`©I·ª°bìôê4 *LÝFPK Ë’á#AJÙ·m:k×öA‰ß?í´ÓúúøíŽ;¢‹ell,Q§ƒ*ÔáuZåÂénmÀIëCqU¨ú Â0ŒAH^…˜oëÖ­ÃÊ•+˓ǔÅ_ª(T  l ÊÑðNâ;õùF*ØhÔWÀ/ £œì‰åtåÌo~rŠ`ªˆÀÓ*Ö/©ª¦Am…RئSRé$@*5Õétpæ™g¢ÛíbÏž=Ǽyóú–[²A(i]¥AŒÊ¹*´Æ·iŸÊ[âý2„Ò¨¦Âièìug•Ä3™†qZ¥$„sƒ0½ŠJ¬®©  ͈ ~ú”‘& \6ÏuF¸ %Âà%ÖïSEµÔç‰(ÔVM|¾®È‡zõ«•jɵï±Ç‹Ô’jôɦˆ’@ȶ/©RJÂå#Õ>ñóàjI„¬žÄ}k×®ÅêÕ«•p*˜v‚ƒ5+–ºšJŠc\Sœ'éf ×L^”páFuÀ ¡3­Ñ€4…f:e$È”ëÁ‰-XÐQ„qgLOÌÔª"+ x¿‹Ú’úùÚ‚dþü¾÷†¡3˜ž}öÙhN\ P®t“@%ï:q_­V‹©%B*õ$ö­^½k×®-~(÷¹NkšM§PÎ%]À:ï-I2eZIR ˆø\7Õ/Ÿ'÷VM€ßV\Ñ)#Kx'›á²j"*I¬=î¶û“¨-ùï±p@üÛ|™î¾÷$¬8ËÁôÃþ­VË Bi!%_Ø®û\k,¹BÅåyÎÃçìoˆu¡›Êo’ûU!]¥€“ržœnJ¬yJ2DòPE¢ŠàÓIø}B€^nløž„!õ|øÆžÃï.ûÈT Ðj† ¡±£P¸­T*TQ TY_¬¿R1öW…þ*?i…ãtý¡_l÷ÆÆÆ0þ|Œ)“ ÓBH·î[V%_ضBmIK¬¤é“Sø‚ÍôV©¦+V_1%™3eR*€BéÂÅL’N‰M¡”T¿Wª.¦”8ŒXî’v¿ø|A­†p°¢ð•bþRBõ“Ö$×ö?ø :œt¼×]waîܹ±‹-©É­ƒ‚M ¹ìsÙ/ªQÅÈŠ&mŸíµå¥ÈMªÉä5©ŒðJÁô< O²d§QJÖNµ_öŠTªH~,*¥^D¸Û$%$ß)'Åæ¬´øcÁ€‡J|D.R0Žê'¦ròP[ T’ê>¿ÒÔGÊcDÎÕ ‘ïç­|Ò¼Ž*”vQNrŸ\岊é9Bðrƒú‘«WBºB X®Šl ªH|¬€™i±Ê˜jR¨¢.U•HI }=!t“!SS¡àðÇ¥ËREBM#£*Rcñ“ û4 ~“ ¢ý*Õ¤ÚÏnCô¡¤˜B Ú_åI &e$yMIRúúujK1"çzß6$Ÿ×–§—d>e²ûII<&ŒdÜÕo’û‹ ¦¾9sžžà-…lÕ¬ H¤Øº )e^‘kˆf;¦×뇒îH÷Hp‚!¤“S l0Õgm¨$`UÄLtMòdt¢¦H°B÷‹Ke%„“+”’(%Óˆ\Z•”R.á[ƒ[ÕLJÉ4B§3¿5ÙàÅ]¾éÄ3ÀC€N“` U’ %>¢ÊŠóùaB_ ƒ‘«RJ9òfƒR̘ϠšT0 AF=CXzÈ!ÓïSLø´ŒÎ‰‰J&È.€jÕùBQÝO«”låfgJ%Ùà”>º>Už“ê3ç}¦Í¤š ¦ Bp¸`p«.®šÄÐM†Ê)šfÁ.€HaeQJªçÿ“¸ßIDAT¨”’ Jª!aSHçjtKû‰B EЉÁJå/™Â7kú€f$'UBfFÅdRM.>S#Ü5û; ¬t¦x–¾0 ÊI÷£àš2 ÎG,<˜&…”1|«ðEm~;®/”S…wœ-¢AžNº‘7UgB¥ éˆ%¤S© ßÂ)¶)–[>½R¡ŸŸ¨¤ª*©×dRL.jÉU5eI\œ •”—ï¤Í“ë3¹†r¢r2%[Šý=ᇼ°`Ú#Œ …–­ÂTSŸÏÄúañ›DOJ¦O')‘“¤ Ýt©‘¤ó‹¤ðMìƒK§ê› Ãé²(bÖ½*ñ±0oÑYU¹¦XÒLûÎ<óLlÛ¶-wÓ;/•4ˆÐ.MH'*%[è¦SOIT“ø÷ ¦{º]üQ­Öw±¨T“!•’"ªPNð›xˆ"*1œÒúI¦ðÍd„'Èg•*Tûå<&þÜ+žz ~ÐA±¢}bÖ½XË)öXžR$öK¬ª~8±§”ÖOã;¥QIƒRRYLñ¤¡[#\Æ•A1È“„àP>±T‘lÌ*S/Éä7É@;ÃÉæ'娢TpÒ%NòÜ$›:êI!œÖI5)á#‡x²’’`$«,È*µ”6]Àä5¥Š’vDnÐ!]ß) |L]RÂ0,G(O‚—±ÚÝÜ䎔“«Š%¤ƒä7©ò¡ ›àbˆg‚“TA Ëțɋêó›,!]Àê÷…¾ªÔ‡0Žf“½ž1ŒK«œúÀfx@¨ä !WÜHI}¦¤aÜ e¹ËFªQ:“rêõzåå`´j¡ªx™|áhS ¬ì¡PN°(&ñq Jp ß²¨(Õ~[HGt#n* 9¤ ô)& DÒ*'ùXÕ¾`r²Oµ¨Vï˜i|6ÍîëD]Ëä]±¯ ` ¡ ~N˜Õ[«ì¸ãŽÃØØÆÆÆ"ŤSMÜå@’A$‚J‘ P³¥–\¡”$l§´¸¯ƒ¿ýâ¿X>Å$‡t¢râuâòt9 d•Ã7  TF¸ ,‰|$ ̬uaž¼+V©Ü`å4””³Ó×Þ4Xx8gƒ‡Š D2¤\%O ."”’¨!×TU覂“ø½UÊv¶­šB !Ó÷ÙãûÅç[Oa†›LäèijBsœ4ÕH™n¿gÙTf¶é8§‰ºÂãh9ãIv[r(ÅšÑg¡Ä"o2ˆtût›x¿/W†Ò@)ihg«¬`‚’.뻌` :|Ýf“§Ž)BЕ$”±ÁÇ6ï,Ê’ʆè¦zèŽ3æIÏs2¹ °’ûxØ6Iö²Ûí6†©É  p”l ûUrÖl˜Ü.PÊšÕ.úIª|%®’Ä­Ì`ŠàSKL)µ ê°}Ê*(t`p9®/oÈ¡6’©"€3̬` À^B°WPJOC)0íØ±£L"œÄÙí®ŠÉ¦ŠLjI†ÔL†nIT”kï*%>Ù´S‡™¸SLL ;’ÿ”JÁ\*ÄÖåò™Â5UøÙðƒ¨’&Ùã!„RÔî¼óÎ>\§’Tª)‰¿dRM:–U9eñ“\“.uI¦®~’Ò‰ ’[­Ì'ÛÅí6Îo4â…ÄÄ%À¥Q4~ñÖ¤Ô±`Ñ((YY[whPHΣvªÌmiÔmJPF²RÚG®ït0Ä-¦šÄ‹BœåΫàdKU‘xÁË¿8š'÷%M'ÈÃOÊj€›T’KHwíµ×öýýJÉO6lj·cêèA½Àû$õÔ&$òžäQ¼®F…þ“ëp}Ì{Lö$*KVpºP®D¦6WFòcJÁ0ÓéÖ[o©&Õ¯yZ<‹ZJë;Í”l`=:×MLP…q¥WLü—pc»eUâR?Òª°aDq Ó¹Nº¤Ì Ëoª¾’ʇ’TnSHRMC1¨,X/°7“RÚ'~TT¿(äjŠ& Ù²Ám“Î_Ò©(“rÊÛO²í³AI7ò梘T­2$'6¶Û1/‰+§$Ÿ©ÍöÇr¡õ¤TQ„ ›`d®+ü)|#—Q:ÒÒ©,1I2ò4J‰ßÞ>Ü!\_»þú땊ÉU9é<%—Ñ8“¿¤ë+”T€Ò…o6@‰þž”X9<“ük¸‰yNDTK¤ÜXùX6JWúª@¼ŒŠAAUTÊI8.ÕT“ŒJ«#©¢˜:úö²ÛÏH'Ÿ'¢.+&>Z'WWÛæÎñóNölþ’®Ï´šÉLK}LºéÔR·ÛÅ¥—^:´Š©ßsÒ¨¥)…zŠå<%e2ÕÓµ(¨®n„ÏA÷‹*Kz/òûâï€=„`âVTNüv¡µË/¿<¦šTêÉU5™ÔReäâ9ÍFB¦l‚§ ×tûtç`m/n·±”)'>‘|&®”jB%Ìh“Ô‘‹‚ŠFöø—ŠþÚܲGdܯèëÛÇ^#¦’0 +¨½„àá8Šª©V«E+uÈÊÉä9ér›t¹K.£qªE:]ç× BIɣТZÊ¢šóã0ì`ŠÁ V5± –Q4a¹ñÔôt€’À@QoñÊ‹*xè “@ªãùÈc @ (}.î'"”¢¶qãF¬[·.’.¬Ó¥È|M&¸+ŒD“\Ó B8ÓóT#2”Lž’Kÿ(I¼èÈEí6V61Ÿ)JH”ÔS•')²~Wõ«pÀO² r:B‰…¯$zIûÁ£­’”?^r.“ N¶Ü¦öœ=â&øJ»ÙíöNÇCIÓ.¸à‚>)Ëh]–Ñ8×m!œKˆæ2ÚfªLi¨&Œ’bêûu\ßncE£¡ å¸Jª *‰Ò‰õÄy9ß@£ ”jG1ªæì-)j7ñû/Fánòa›³jR­ «RMª\'Uø¦ ¿TŠÉ%t3yMyLc1RµÏdhÛ n*s¢ yF¡EßâªFuu–2Pg[õõùL ú2…ôâà)iû˜ám ”¶z %>'.ºè"4h«×ëÑ­¸‰}µZ-ÚªÕjd¢ëÖ£Ó=N{›F-%®¿Óé·v»íÔ¿hÑ¢‘WLJ߉·uFŸzª ŠŠ÷«”¸Ž®©àåâEñ‘Dyîòx %¤ªI‡Îo’•“h„‹ÓzI.·I¼£´Rõ§MûmPò'° ¢66›}ê©jPO NF h í¤a¿•UÒU#œ“”×9pÁô)&YEÙ”“-ÝãyݺLWÉ !U¿M1éTS»ÝF»ÝÆÙgŸít®úY\Æ UÓ„qUრ¤ûâ ¦M0=¯ eý$ÿ]æðý_xá…ÊNâ©àT­V•ËF L2œ²Bh`Ú³g“RÅPÎÐä\au+ø’Q E…[”±‚bŸÍORíë2 mð@HHÇWê5m" ä°N•P™Wè¦ åD¯iêÈ–.àº=÷Üs˜˜˜Ht¾ú“:’€5F L=Cúa••Ž µÆiàßõªU«úÂ8“zóp.«2)-¹oRõ%QL“““عs'&&&°eË–Dç­WLÉÀM.Tê?K€RE£”’ü±KÔ‹x ͰnY“C+Ñ • ŸËÂoÅ¥Ä>Ûþ™PHªü+üù矠tùå—'>wýI>UõñzÝY=m·—ñßÑ —Ë—/ךà.~÷š\•‹2Ò='I @~S»ÝF·ÛÕ¦ìÝ»7ÒÄÄ®¾úêTç±?égTG×jxÀ0aÑÅûþV¬X¡ Ýd©ŒðJ¥‚jµó£ò‚‘œÏ”8iò˜T`Úµk&&&°sçN<û쳸îºëRŸß>”›ðï?%¤ôF¸l6ËF´îT«ÕÈüV™ä.ašKh—ÔüÎ 1U^R»ÝŽ©¤‰‰ Üxã™Îy¡øæ›F5-]ºT²©ÔR£Ñˆå4‰!ÚɰÊîÉPL«†\“ÓîÝ»#•Ä¡tóÍ7gæ‹“o¾àtÞy祓҉9N*0¥ ÷ò Õ\žËÁ455Õ¤‰‰ |ö³ŸÍ…-L¾ùæ'夓%Q9éÀ”PYFÚÒxPVibbwÞyg®Lñ`òÍ7G8ý©®`’•“‹ïä*î1eŽ\OJu†!vîÜAI„Ó=÷Ü“;O<˜|ó-! –/_žL*Õ¤ ë\A%ƒ) dt…ìLûø´HÛ·oK<˜|ó-œ–-[–L*#JBÒä@ùáÁä›oàtþùçÇFäl€R…s¶ÐNå1åÛ1â|·‰‰ ÜtÓM3Æ &ß|Ë'X¹r¥˜LPr í²„e®û4“pgŒL¾ù–# V¯^mUO&(ٲŲ‰}»wtÍ5×Ì +<˜|óm€€õë×'RM:`É‹i Habrrظqã¬rƒÉ7ßfR—\r‰Sú€î¾j½º¬¾’ÜÇ¡”´¨›“o¾ ¤®¼òÊDPŸë{ë&ïfÔÞ½{±f͚°ÁƒÉ7ßfR›7o6ÂHµð€m©p¸TÚ·oÖ­[W(&x0ùæ[A ÐR+&@©d‚“i?!^xa!yàÁä›oÕ§>õ)­rr‘”Yx0ùæ[‰@µpáÂ@÷Þ{ïÐ^çL¾ùVbPùkØ7ß|óm†Úÿà yÓø§qIEND®B`‚ghemical-3.0.0/src/res_gtk/Makefile.am0000644000175000017500000000147511563552732014505 00000000000000gladedir = $(datadir)/ghemical/@APPVERSION@/glade glade_DATA = \ gtk_file_export_dialog.glade \ gtk_file_import_dialog.glade \ gtk_geomopt_dialog.glade \ gtk_moldyn_dialog.glade \ gtk_progress_dialog.glade \ gtk_setup_dialog.glade \ gtk_stereo_dialog.glade \ gtk_trajview_dialog.glade pixmapdir = $(datadir)/ghemical/@APPVERSION@/pixmaps pixmap_DATA = ghemical.png xpmdir = $(datadir)/ghemical/@APPVERSION@/pixmaps xpm_DATA = \ angle.xpm \ bondtype.xpm \ bond.xpm \ chain.xpm \ clipping.xpm \ dihedral.xpm \ distance.xpm \ draw.xpm \ element.xpm \ erase.xpm \ invert.xpm \ measure.xpm \ molecule.xpm \ orbit_xy.xpm \ orbit_z.xpm \ residue.xpm \ rotate_xy.xpm \ rotate_z.xpm \ select.xpm \ setup.xpm \ transl_xy.xpm \ transl_z.xpm \ zoom.xpm EXTRA_DIST = $(glade_DATA) $(pixmap_DATA) $(xpm_DATA) ghemical-3.0.0/src/res_gtk/bond.xpm0000644000175000017500000000141611634160016014101 00000000000000/* XPM */ static char * bond_xpm[] = { "24 24 4 1", " c None", ". c #FF0000", "+ c #FFFFFF", "@ c #000000", " ", " ", " ", " .. .. ", " ..++ ..++ ", " ..++@@@@@@@@@@@@@@..++ ", " .. .. ", " ", " ", " ", " .. .. ", " ..++@@@@@@@@@@@@@@..++ ", " ..++ ..++ ", " .. @@@@@@@@@@@@@@ .. ", " ", " ", " ", " .. .. ", " ..++@@ @@ @@ @@ @@..++ ", " ..++ ..++ ", " .. @@@@@@@@@@@@@@ .. ", " ", " ", " "}; ghemical-3.0.0/src/ac_stor_wcl.cpp0000644000175000017500000000761311634160016014003 00000000000000// AC_STOR_WCL.CPP // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ac_stor_wcl.h" #include "project.h" #include "custom_app.h" /*################################################################################################*/ ac_stor_wcl::ac_stor_wcl(ogl_camera * cam) : pangofont_wcl(cam) { } ac_stor_wcl::~ac_stor_wcl(void) { for (int i = 0;i < (int) acv.size();i++) { if (acv[i] != NULL) { delete[] acv[i]; acv[i] = NULL; } } } int ac_stor_wcl::StoreAC(engine * eng) { if (eng == NULL) return NOT_DEFINED; if (!acv.size()) // is this the 1st set??? { if (av.size() != 0) { assertion_failed(__FILE__, __LINE__, "av is not empty."); } atom ** atmtab = eng->GetSetup()->GetAtoms(); for (int i = 0;i < eng->GetSetup()->GetAtomCount();i++) { av.push_back(atmtab[i]); } } else { if (av.size() != eng->GetSetup()->GetAtomCount()) { assertion_failed(__FILE__, __LINE__, "av.size() is bad."); } } float * newXYZ = new float[av.size() * 3]; // store the atom coordinates for later viewing... // just assume that the atoms are not re-ordered. // the number of atoms is stored and checked. for (int i = 0;i < (int) av.size() * 3;i++) { newXYZ[i] = eng->ReadCRD(i); } int retval = (int) acv.size(); acv.push_back(newXYZ); return retval; } int ac_stor_wcl::StoreAC(model * mdl, int cset) { if (mdl == NULL) return NOT_DEFINED; if (!acv.size()) // is this the 1st set??? { if (av.size() != 0) { assertion_failed(__FILE__, __LINE__, "av is not empty."); } atom ** atmtab = mdl->GetCurrentSetup()->GetAtoms(); for (int i = 0;i < mdl->GetCurrentSetup()->GetAtomCount();i++) { av.push_back(atmtab[i]); } } else { if (av.size() != mdl->GetCurrentSetup()->GetAtomCount()) { assertion_failed(__FILE__, __LINE__, "av.size() is bad."); } } float * newXYZ = new float[av.size() * 3]; // store the atom coordinates for later viewing... // just assume that the atoms are not re-ordered. // the number of atoms is stored and checked. for (int i = 0;i < (int) av.size();i++) { const fGL * xyz = av[i]->GetCRD(cset); newXYZ[i * 3 + 0] = xyz[0]; newXYZ[i * 3 + 1] = xyz[1]; newXYZ[i * 3 + 2] = xyz[2]; } int retval = (int) acv.size(); acv.push_back(newXYZ); return retval; } void ac_stor_wcl::ShowAC(int index) { if (index < 0 || index >= (int) acv.size()) return; project * prj = custom_app::GetAppC()->GetPrj(); if (acv[index] != NULL && av.size() == prj->GetCurrentSetup()->GetAtomCount()) { for (int i = 0;i < (int) av.size();i++) { const float x = acv[index][i * 3 + 0]; const float y = acv[index][i * 3 + 1]; const float z = acv[index][i * 3 + 2]; const int cset = 0; // ??? av[i]->SetCRD(cset, x, y, z); } prj->UpdateAllGraphicsViews(); // also make sure that if user calculates any results, the new structure will be used! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ prj->GetCurrentSetup()->DiscardCurrentEngine(); } } /*################################################################################################*/ // eof ghemical-3.0.0/src/ogl_ribbon.cpp0000644000175000017500000003070011634160016013611 00000000000000// OGL_RIBBON.CPP // Copyright (C) 1998 Tommi Hassinen, Jarno Huuskonen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ogl_ribbon.h" // config.h is here -> we get ENABLE-macros here... #include using namespace std; #include #include #include "spline.h" /*################################################################################################*/ const i32s ogl_ribbon::resol = 10; const fGL ogl_ribbon::width = 0.15; const fGL ogl_ribbon::helix = 0.10; ogl_ribbon::ogl_ribbon(project * p1, color_mode * p9, i32s p2, i32s order) : ogl_smart_object() { prj = p1; cmode = p9; chn = p2; extra_points = order - 2; vector & ci_vector = (* prj->GetCI()); if (ci_vector[chn].GetType() != chn_info::amino_acid) { assertion_failed(__FILE__, __LINE__, "chn type != AA"); } if (ci_vector[chn].GetLength() < 3) { assertion_failed(__FILE__, __LINE__, "chn length < 3"); } const char * tmp_sss = ci_vector[chn].GetSecStrStates(); char * state = new char[ci_vector[chn].GetLength() + 1]; state[ci_vector[chn].GetLength()] = 0; // the default state is always loop. strands have the same places as in K&S. // helices are shifted: the smallest helical peptide is "4...." -> "LHHHL". setup * su = prj->GetCurrentSetup(); setup1_sf * susf = dynamic_cast(su); if (susf != NULL) // optionally, if we use SF, get the constraints... { bool error = false; if (susf->chn_vector.size() != ci_vector.size()) error = true; if (susf->chn_vector[chn].res_vector.size() != (i32u) ci_vector[chn].GetLength()) error = true; if (error) { assertion_failed(__FILE__, __LINE__, "susf error."); } for (i32u n1 = 0;n1 < susf->chn_vector[chn].res_vector.size();n1++) { state[n1] = 'L'; if (susf->chn_vector[chn].res_vector[n1].GetState() == SF_STATE_STRAND) state[n1] = 'S'; } for (i32s n1 = 0;n1 < ((i32s) susf->chn_vector[chn].res_vector.size()) - 3;n1++) { if (susf->chn_vector[chn].res_vector[n1].GetState() == SF_STATE_HELIX4) { state[n1 + 1] = 'H'; state[n1 + 2] = 'H'; state[n1 + 3] = 'H'; } } } else // normally, use the DSSP results... { for (i32s n1 = 0;n1 < ci_vector[chn].GetLength();n1++) { state[n1] = 'L'; if (tmp_sss[n1] == 'S') state[n1] = 'S'; } for (i32s n1 = 0;n1 < ((i32s) ci_vector[chn].GetLength()) - 3;n1++) { if (tmp_sss[n1] == '4') { state[n1 + 1] = 'H'; state[n1 + 2] = 'H'; state[n1 + 3] = 'H'; } } } iter_al range1[2]; prj->GetRange(1, chn, range1); length = ci_vector[chn].GetLength() - 1; cp1 = new fGL[length * 3]; cp2 = new fGL[length * 3]; data3 = new fGL[length * 3]; v3d old_tmpv7; bool flag = true; for (i32s n1 = 0;n1 < length;n1++) { fGL color1[4]; color1[3] = 1.0; fGL color2[4]; color2[3] = 1.0; if (susf != NULL) // optional constraint colours... { color1[0] = 0.5; color1[1] = 0.0; color1[2] = 0.8; if (state[n1 + 0] == 'H') { color1[0] = 0.8; color1[1] = 0.5; color1[2] = 0.0; } if (state[n1 + 0] == 'S') { color1[0] = 0.0; color1[1] = 0.8; color1[2] = 0.5; } color2[0] = 0.5; color2[1] = 0.0; color2[2] = 0.8; if (state[n1 + 1] == 'H') { color2[0] = 0.8; color2[1] = 0.5; color2[2] = 0.0; } if (state[n1 + 1] == 'S') { color2[0] = 0.0; color2[1] = 0.8; color2[2] = 0.5; } } else // the normal colours... { color1[0] = 0.0; color1[1] = 0.0; color1[2] = 1.0; if (state[n1 + 0] == 'H') { color1[0] = 1.0; color1[1] = 0.0; color1[2] = 0.0; } if (state[n1 + 0] == 'S') { color1[0] = 0.0; color1[1] = 1.0; color1[2] = 0.0; } color2[0] = 0.0; color2[1] = 0.0; color2[2] = 1.0; if (state[n1 + 1] == 'H') { color2[0] = 1.0; color2[1] = 0.0; color2[2] = 0.0; } if (state[n1 + 1] == 'S') { color2[0] = 0.0; color2[1] = 1.0; color2[2] = 0.0; } } iter_al c_alpha_1; iter_al c_alpha_2; v3d ca_to_ca; v3d normal(1.0, 0.0, 0.0); iter_al range2a[2]; prj->GetRange(2, range1, n1 + 0, range2a); iter_al range2b[2]; prj->GetRange(2, range1, n1 + 1, range2b); c_alpha_2 = range2b[0]; while (c_alpha_2 != range2b[1] && ((* c_alpha_2).builder_res_id & 0xFF) != 0x01) c_alpha_2++; if (c_alpha_2 == range2b[1]) { assertion_failed(__FILE__, __LINE__, "C_alpha_2 not found."); } c_alpha_1 = range2a[0]; while (c_alpha_1 != range2a[1] && ((* c_alpha_1).builder_res_id & 0xFF) != 0x01) c_alpha_1++; if (c_alpha_1 == range2a[1]) { assertion_failed(__FILE__, __LINE__, "C_alpha_1 not found."); } iter_al c_carboxyl = range2a[0]; while (c_carboxyl != range2a[1] && ((* c_carboxyl).builder_res_id & 0xFF) != 0x02) c_carboxyl++; if (c_carboxyl == range2a[1]) { assertion_failed(__FILE__, __LINE__, "C_carboxyl not found."); } ca_to_ca = v3d((* c_alpha_1).GetCRD(0), (* c_alpha_2).GetCRD(0)); v3d tmpv1 = v3d((* c_alpha_1).GetCRD(0), (* c_carboxyl).GetCRD(0)); normal = ca_to_ca.vpr(tmpv1); normal = normal / normal.len(); v3d tmpv7 = normal.vpr(ca_to_ca); tmpv7 = tmpv7 / tmpv7.len(); v3d midpoint = v3d((* c_alpha_1).GetCRD(0)); midpoint = midpoint + (ca_to_ca / 2.0); i32s helix_count = 0; if (state[n1 + 0] == 'H') helix_count++; if (state[n1 + 1] == 'H') helix_count++; midpoint = midpoint + (normal * ((fGL) helix_count * helix)); v3d tmpv8 = midpoint + (tmpv7 * width); v3d tmpv9 = midpoint - (tmpv7 * width); if (n1 != 0 && tmpv7.ang(old_tmpv7) > M_PI / 2.0) flag = !flag; old_tmpv7 = tmpv7; for (i32s n2 = 0;n2 < 3;n2++) { if (flag) { cp1[n1 * 3 + n2] = tmpv8[n2]; cp2[n1 * 3 + n2] = tmpv9[n2]; } else { cp1[n1 * 3 + n2] = tmpv9[n2]; cp2[n1 * 3 + n2] = tmpv8[n2]; } data3[n1 * 3 + n2] = (color1[n2] + color2[n2]) / 2.0; } } ref1 = new spline(order, length + extra_points * 2); head_points1 = new fGL[extra_points * 3]; tail_points1 = new fGL[extra_points * 3]; head_refs1[0] = & cp1[1 * 3]; head_refs1[1] = & cp1[0 * 3]; tail_refs1[0] = & cp1[(length - 2) * 3]; tail_refs1[1] = & cp1[(length - 1) * 3]; ref2 = new spline(order, length + extra_points * 2); head_points2 = new fGL[extra_points * 3]; tail_points2 = new fGL[extra_points * 3]; head_refs2[0] = & cp2[1 * 3]; head_refs2[1] = & cp2[0 * 3]; tail_refs2[0] = & cp2[(length - 2) * 3]; tail_refs2[1] = & cp2[(length - 1) * 3]; UpdateExtraPoints(head_refs1, head_points1, tail_refs1, tail_points1); UpdateExtraPoints(head_refs2, head_points2, tail_refs2, tail_points2); for (i32s n1 = 0;n1 < extra_points;n1++) { ref1->SetPoint(n1, & head_points1[(extra_points - (n1 + 1)) * 3]); ref2->SetPoint(n1, & head_points2[(extra_points - (n1 + 1)) * 3]); } for (i32s n1 = 0;n1 < extra_points;n1++) { ref1->SetPoint(extra_points + length + n1, & tail_points1[n1 * 3]); ref2->SetPoint(extra_points + length + n1, & tail_points2[n1 * 3]); } for (i32s n1 = 0;n1 < length;n1++) { ref1->SetPoint(extra_points + n1, & cp1[n1 * 3]); ref2->SetPoint(extra_points + n1, & cp2[n1 * 3]); } for (i32s n1 = 0;n1 < length + extra_points * 2 + order;n1++) { ref1->SetKnot(n1, (fGL) (n1 - extra_points) - (fGL) order / 2.0); ref2->SetKnot(n1, (fGL) (n1 - extra_points) - (fGL) order / 2.0); } #ifdef RIBBON_USE_DISPLSTS list_id = prj->GetDisplayListIDs(1); #endif // RIBBON_USE_DISPLSTS i32s np1 = resol * (length - 1); i32s np2 = np1 + 1; data1 = new fGL[np2]; data2a = new fGL[np2 * 3]; data2b = new fGL[np2 * 3]; for (i32s n1 = 0;n1 < np2;n1++) { data1[n1] = ((fGL) (length - 1) * n1) / (fGL) np1; i32s index = (i32s) floor(data1[n1] + 0.5); fGL width1 = 0.5; if (state[index + 0] == 'H' || state[index + 0] == 'S') width1 = 1.0; fGL width2 = 0.5; if (state[index + 1] == 'H' || state[index + 1] == 'S') width2 = 1.0; fGL ang = M_PI * ((data1[n1] + 0.5) - (fGL) index) / 2.0; fGL tmp1 = cos(ang); fGL w1 = width1 * tmp1 * tmp1; fGL tmp2 = sin(ang); fGL w2 = width2 * tmp2 * tmp2; fGL ribbon_width = w1 + w2; fGL pos1[3]; ref1->Compute(data1[n1], pos1); fGL pos2[3]; ref2->Compute(data1[n1], pos2); v3d v1 = v3d(pos1); v3d v2 = v3d(pos1, pos2); v2 = v2 / 2.0; v3d v3 = (v1 + v2) - (v2 * ribbon_width); v3d v4 = (v1 + v2) + (v2 * ribbon_width); for (i32s n2 = 0;n2 < 3;n2++) { data2a[n1 * 3 + n2] = v3[n2]; data2b[n1 * 3 + n2] = v4[n2]; } } delete[] state; } ogl_ribbon::~ogl_ribbon(void) { delete[] cp1; delete[] cp2; delete ref1; delete[] head_points1; delete[] tail_points1; delete ref2; delete[] head_points2; delete[] tail_points2; delete[] data1; delete[] data2a; delete[] data2b; delete[] data3; #ifdef RIBBON_USE_DISPLSTS prj->DeleteDisplayLists(list_id, 1); #endif // RIBBON_USE_DISPLSTS } void ogl_ribbon::UpdateExtraPoints(fGL ** hr, fGL * hp, fGL ** tr, fGL * tp) { v3d tmpv1; v3d tmpv2; tmpv1 = v3d(hr[1]); tmpv2 = v3d(hr[0], hr[1]); for (i32s n1 = 0;n1 < extra_points;n1++) { v3d tmpv3 = tmpv1 + (tmpv2 * ((fGL) n1 + 1)); for (i32s n2 = 0;n2 < 3;n2++) hp[n1 * 3 + n2] = tmpv3[n2]; } tmpv1 = v3d(tr[1]); tmpv2 = v3d(tr[0], tr[1]); for (i32s n1 = 0;n1 < extra_points;n1++) { v3d tmpv3 = tmpv1 + (tmpv2 * ((fGL) n1 + 1)); for (i32s n2 = 0;n2 < 3;n2++) tp[n1 * 3 + n2] = tmpv3[n2]; } } void ogl_ribbon::Render(void) { #ifdef RIBBON_USE_DISPLSTS if (glIsList(list_id) == GL_TRUE) glCallList(list_id); else { glNewList(list_id, GL_COMPILE_AND_EXECUTE); #endif // RIBBON_USE_DISPLSTS i32s np1 = resol * (length - 1); glEnable(GL_LIGHTING); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, true); glBegin(GL_TRIANGLES); for (i32s n1 = 0;n1 < np1;n1++) { v3d va = v3d(& data2a[(n1 + 0) * 3], & data2b[(n1 + 0) * 3]); v3d vb = v3d(& data2a[(n1 + 1) * 3], & data2b[(n1 + 1) * 3]); v3d vc = v3d(& data2a[(n1 + 0) * 3], & data2a[(n1 + 1) * 3]); v3d vd = v3d(& data2b[(n1 + 0) * 3], & data2b[(n1 + 1) * 3]); v3d vA1 = va.vpr(vc); v3d vA2 = vb.vpr(vc); v3d vB1 = va.vpr(vd); v3d vB2 = vb.vpr(vd); if (n1 != 0) { v3d ve = v3d(& data2a[(n1 + 0) * 3], & data2a[(n1 - 1) * 3]); v3d vf = v3d(& data2b[(n1 + 0) * 3], & data2b[(n1 - 1) * 3]); vA1 = vA1 + (ve.vpr(va)); vB1 = vB1 + (vf.vpr(va)); } if (n1 != (np1 - 1)) { v3d vg = v3d(& data2a[(n1 + 1) * 3], & data2a[(n1 + 2) * 3]); v3d vh = v3d(& data2b[(n1 + 1) * 3], & data2b[(n1 + 2) * 3]); vA2 = vA2 + (vb.vpr(vg)); vB2 = vB2 + (vb.vpr(vh)); } vA1 = vA1 / vA1.len(); vA2 = vA2 / vA2.len(); vB1 = vB1 / vB1.len(); vB2 = vB2 / vB2.len(); i32s index = (i32s) floor(data1[n1]); fGL color1[3]; fGL mod1 = data1[n1 + 0] - (fGL) index; fGL color2[3]; fGL mod2 = data1[n1 + 1] - (fGL) index; for (i32s n2 = 0;n2 < 3;n2++) { color1[n2] = data3[index * 3 + n2] * (1.0 - mod1) + data3[(index + 1) * 3 + n2] * mod1; color2[n2] = data3[index * 3 + n2] * (1.0 - mod2) + data3[(index + 1) * 3 + n2] * mod2; } glColor3fv(color2); glNormal3fv(vA2.data); glVertex3fv(& data2a[(n1 + 1) * 3]); glColor3fv(color1); glNormal3fv(vA1.data); glVertex3fv(& data2a[(n1 + 0) * 3]); glNormal3fv(vB1.data); glVertex3fv(& data2b[(n1 + 0) * 3]); glColor3fv(color1); glNormal3fv(vB1.data); glVertex3fv(& data2b[(n1 + 0) * 3]); glColor3fv(color2); glNormal3fv(vB2.data); glVertex3fv(& data2b[(n1 + 1) * 3]); glNormal3fv(vA2.data); glVertex3fv(& data2a[(n1 + 1) * 3]); } glEnd(); // GL_TRIANGLES glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, false); glDisable(GL_LIGHTING); #ifdef RIBBON_USE_DISPLSTS glEndList(); } #endif // RIBBON_USE_DISPLSTS } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_trajview_dialog.h0000644000175000017500000000354311634160016015166 00000000000000// GTK_TRAJVIEW_DIALOG.H : write a short description here... // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_TRAJVIEW_DIALOG_H #define GTK_TRAJVIEW_DIALOG_H //#include "ghemicalconfig2.h" #include "gtk_glade_dialog.h" #include "gtk_project.h" /*################################################################################################*/ class gtk_trajview_dialog : public gtk_glade_dialog { protected: gtk_project * prj; GtkWidget * dialog; public: gtk_trajview_dialog(gtk_project *); ~gtk_trajview_dialog(void); static void handler_Destroy(GtkWidget *, gpointer); static void handler_ButtonBegin(GtkWidget *, gpointer); static void handler_ButtonPrev(GtkWidget *, gpointer); static void handler_ButtonPlay(GtkWidget *, gpointer); static void handler_ButtonNext(GtkWidget *, gpointer); static void handler_ButtonEnd(GtkWidget *, gpointer); static void handler_ButtonClose(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_TRAJVIEW_DIALOG_H // eof ghemical-3.0.0/src/gtk_main.h0000644000175000017500000000241111634160016012731 00000000000000// GTK_MAIN.H : main function for the GTK version. // Copyright (C) 2003 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_MAIN_H #define GTK_MAIN_H #include "ghemicalconfig2.h" #include "gtk_app.h" #include #include /*################################################################################################*/ int main(int, char **); /*################################################################################################*/ #endif // GTK_MAIN_H // eof ghemical-3.0.0/src/gtk_wnd.h0000644000175000017500000000467711634160016012615 00000000000000// GTK_WND.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ //#include "ghemicalconfig2.h" #ifndef GTK_WND_H #define GTK_WND_H class gtk_wnd; #include #include #include #include using namespace std; /*################################################################################################*/ // gtk_wnd class encapsulates the properties of a GTK2-window. class gtk_wnd : public base_wnd { private: static vector iv; // instance vector protected: GtkWidget * view_widget; /** If the "##detached" pointer is different from NULL, it means that the view is displayed on a separate window (and not as a part of the GtkNotebook). */ GtkWidget * detached; GtkWidget * label_widget; GtkWidget * popupmenu; friend class gtk_project; public: gtk_wnd(bool); ~gtk_wnd(void); static gtk_wnd * iv_Find(GtkWidget *); static void RealizeHandler(GtkWidget *, gpointer); static gint ExposeHandler(GtkWidget *, GdkEventExpose *); static gint ButtonHandler(GtkWidget *, GdkEventButton *); static gint MotionNotifyHandler(GtkWidget *, GdkEventMotion *); static gint ConfigureHandler(GtkWidget *, GdkEventConfigure *); static gint DetachedDeleteHandler(GtkWidget *, GdkEvent *); GtkWidget * GetViewWidget(void); bool IsDetached(void); void RequestUpdate(bool); // virtual void RequestResize(int, int); // virtual bool SetCurrent(void); // virtual protected: void TitleChanged(void); // virtual }; /*################################################################################################*/ #endif // GTK_WND_H // eof ghemical-3.0.0/src/oglview_wcl.cpp0000644000175000017500000006432611634160016014031 00000000000000// OGLVIEW_WCL.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "oglview_wcl.h" #include #include #include "appdefine.h" #include "custom_app.h" /*################################################################################################*/ #define SB_SIZE 1024 // the selection buffer size. bool oglview_wcl::quick_update = false; bool oglview_wcl::draw_info = true; oglview_wcl::oglview_wcl(custom_camera * cc) : pangofont_wcl(cc) { ccam = cc; my_wnd_number = (ccam->wcl_counter++) + 1; render = RENDER_BALL_AND_STICK; label = LABEL_NOTHING; colormode = ccam->prj->GetDefaultColorMode(); enable_fog = false; accumulate = false; select_buffer = new iGLu[SB_SIZE]; } oglview_wcl::~oglview_wcl(void) { delete[] select_buffer; } custom_camera * oglview_wcl::GetCCam(void) { return ccam; // this is the same as casting base_wcl::GetCam(). } void oglview_wcl::GetCRD(i32s * p1, fGL * p2) { base_wnd * w = GetWnd(); if (w == NULL) // just return zeros if not linked to any window... { p2[0] = p2[1] = p2[2] = 0.0; return; } oglv3d xdir = (ccam->GetSafeLD()->ydir).vpr(ccam->GetSafeLD()->zdir); xdir = xdir / xdir.len(); oglv3d tmpv = oglv3d(ccam->GetSafeLD()->crd); tmpv = tmpv + (ccam->GetSafeLD()->zdir * ccam->focus); tmpv = tmpv + xdir * (2.0 * vdim[0] * (fGL) (w->GetWidth() / 2 - p1[0]) / (fGL) w->GetWidth()); tmpv = tmpv + ccam->GetSafeLD()->ydir * (2.0 * vdim[1] * (fGL) (w->GetHeight() / 2 - p1[1]) / (fGL) w->GetHeight()); for (i32s n1 = 0;n1 < 3;n1++) p2[n1] = tmpv[n1]; } static ogl_transformer tool_transformer; static const ogl_obj_loc_data * tdata = NULL; static const ogl_camera * rdata = NULL; void oglview_wcl::ButtonEvent(int x, int y) { if (GetWnd()->IsTimerON()) { bool allow_anim = false; if (custom_app::GetCurrentMouseTool() == custom_app::mtZoom) allow_anim = true; if (custom_app::GetCurrentMouseTool() == custom_app::mtClipping) allow_anim = true; if (!allow_anim) GetWnd()->SetTimerOFF(); } custom_transformer_client * ctc = custom_app::GetAppC()->GetPrj(); static i32s stored_render; static bool stored_accumulate; /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtDraw) { mouseinfo::latest_x = x; mouseinfo::latest_y = y; MyUpdateWnd(pDraw, x, y); } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtErase) { mouseinfo::latest_x = x; mouseinfo::latest_y = y; MyUpdateWnd(pErase, x, y); } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtSelect) { if (mouseinfo::state != mouseinfo::sDown) return; MyUpdateWnd(pSelect, x, y); } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtZoom) { if (quick_update) { if (mouseinfo::state == mouseinfo::sDown) { stored_render = render; stored_accumulate = accumulate; render = RENDER_WIREFRAME; accumulate = false; } else { render = stored_render; accumulate = stored_accumulate; ccam->prj->UpdateGraphicsViews(ccam); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtClipping) { if (quick_update) { if (mouseinfo::state == mouseinfo::sDown) { stored_render = render; stored_accumulate = accumulate; render = RENDER_WIREFRAME; accumulate = false; } else { render = stored_render; accumulate = stored_accumulate; ccam->prj->UpdateGraphicsViews(ccam); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtTranslateXY) { if (mouseinfo::state == mouseinfo::sDown) { if (quick_update) // if quick, change the rendering params... { stored_render = render; stored_accumulate = accumulate; render = RENDER_WIREFRAME; accumulate = false; } if (!mouseinfo::shift_down) { ctc->tc_object_ref = ccam; ctc->tc_local_object = true; } else { ctc->tc_object_ref = ccam->prj->selected_object; i32s index = base_app::GetAppB()->IsLight(ctc->tc_object_ref); ctc->tc_local_object = (index != NOT_DEFINED && dynamic_cast(ctc->tc_object_ref)->owner == ccam); if (!ctc->tc_object_ref && mouseinfo::shift_down) { tool_transformer.Init(custom_app::GetPrj()); ctc->tc_object_ref = (& tool_transformer); } if (ctc->tc_object_ref) ctc->tc_object_ref->BeginTransformation(); } // if CTRL is down, use object's own direction, not that of camera's !!!!!!!!! // if CTRL is down, use object's own direction, not that of camera's !!!!!!!!! // if CTRL is down, use object's own direction, not that of camera's !!!!!!!!! if (mouseinfo::ctrl_down) tdata = ctc->tc_object_ref->GetSafeLD(); else tdata = ccam->GetSafeLD(); } else { if (ctc->tc_object_ref) ctc->tc_object_ref->EndTransformation(); if (quick_update) // if quick, put back original params and update... { render = stored_render; accumulate = stored_accumulate; if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtTranslateZ) { if (mouseinfo::state == mouseinfo::sDown) { if (quick_update) // if quick, change the rendering params... { stored_render = render; stored_accumulate = accumulate; render = RENDER_WIREFRAME; accumulate = false; } if (!mouseinfo::shift_down) { ctc->tc_object_ref = ccam; ctc->tc_local_object = true; } else { ctc->tc_object_ref = ccam->prj->selected_object; i32s index = base_app::GetAppB()->IsLight(ctc->tc_object_ref); ctc->tc_local_object = (index != NOT_DEFINED && dynamic_cast(ctc->tc_object_ref)->owner == ccam); if (!ctc->tc_object_ref && mouseinfo::shift_down) { tool_transformer.Init(ccam->prj); ctc->tc_object_ref = (& tool_transformer); } if (ctc->tc_object_ref) ctc->tc_object_ref->BeginTransformation(); } // if CTRL is down, use object's own direction, not that of camera's !!!!!!!!! // if CTRL is down, use object's own direction, not that of camera's !!!!!!!!! // if CTRL is down, use object's own direction, not that of camera's !!!!!!!!! if (mouseinfo::ctrl_down) tdata = ctc->tc_object_ref->GetSafeLD(); else tdata = ccam->GetSafeLD(); } else { if (ctc->tc_object_ref) ctc->tc_object_ref->EndTransformation(); if (quick_update) // if quick, put back original params and update... { render = stored_render; accumulate = stored_accumulate; if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtOrbitXY) { if (mouseinfo::state == mouseinfo::sDown) { if (quick_update) // if quick, change the rendering params... { stored_render = render; stored_accumulate = accumulate; render = RENDER_WIREFRAME; accumulate = false; } if (!mouseinfo::shift_down) { ctc->tc_object_ref = ccam; ctc->tc_local_object = true; } else { ctc->tc_object_ref = ccam->prj->selected_object; i32s index = base_app::GetAppB()->IsLight(ctc->tc_object_ref); ctc->tc_local_object = (index != NOT_DEFINED && dynamic_cast(ctc->tc_object_ref)->owner == ccam); if (!ctc->tc_object_ref && mouseinfo::shift_down) { tool_transformer.Init(ccam->prj); ctc->tc_object_ref = (& tool_transformer); } if (ctc->tc_object_ref) ctc->tc_object_ref->BeginTransformation(); } rdata = ccam; } else { if (ctc->tc_object_ref) ctc->tc_object_ref->EndTransformation(); if (quick_update) // if quick, put back original params and update... { render = stored_render; accumulate = stored_accumulate; if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } // the animation switch is here... if (animX * animX + animY * animY > 7.5) { animX *= 0.25; animY *= 0.25; GetWnd()->SetTimerON(10); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtOrbitZ) { if (mouseinfo::state == mouseinfo::sDown) { if (quick_update) // if quick, change the rendering params... { stored_render = render; stored_accumulate = accumulate; render = RENDER_WIREFRAME; accumulate = false; } if (!mouseinfo::shift_down) { ctc->tc_object_ref = ccam; ctc->tc_local_object = true; } else { ctc->tc_object_ref = ccam->prj->selected_object; i32s index = base_app::GetAppB()->IsLight(ctc->tc_object_ref); ctc->tc_local_object = (index != NOT_DEFINED && dynamic_cast(ctc->tc_object_ref)->owner == ccam); if (!ctc->tc_object_ref && mouseinfo::shift_down) { tool_transformer.Init(ccam->prj); ctc->tc_object_ref = (& tool_transformer); } if (ctc->tc_object_ref) ctc->tc_object_ref->BeginTransformation(); } rdata = ccam; } else { if (ctc->tc_object_ref) ctc->tc_object_ref->EndTransformation(); if (quick_update) // if quick, put back original params and update... { render = stored_render; accumulate = stored_accumulate; if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtRotateXY) { if (mouseinfo::state == mouseinfo::sDown) { if (quick_update) // if quick, change the rendering params... { stored_render = render; stored_accumulate = accumulate; render = RENDER_WIREFRAME; accumulate = false; } if (!mouseinfo::shift_down) { ctc->tc_object_ref = ccam; ctc->tc_local_object = true; } else { ctc->tc_object_ref = ccam->prj->selected_object; i32s index = base_app::GetAppB()->IsLight(ctc->tc_object_ref); ctc->tc_local_object = (index != NOT_DEFINED && dynamic_cast(ctc->tc_object_ref)->owner == ccam); if (!ctc->tc_object_ref && mouseinfo::shift_down) { tool_transformer.Init(ccam->prj); ctc->tc_object_ref = (& tool_transformer); } if (ctc->tc_object_ref) ctc->tc_object_ref->BeginTransformation(); } rdata = ccam; } else { if (ctc->tc_object_ref) ctc->tc_object_ref->EndTransformation(); if (quick_update) // if quick, put back original params and update... { render = stored_render; accumulate = stored_accumulate; if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtRotateZ) { if (mouseinfo::state == mouseinfo::sDown) { if (quick_update) // if quick, change the rendering params... { stored_render = render; stored_accumulate = accumulate; render = RENDER_WIREFRAME; accumulate = false; } if (!mouseinfo::shift_down) { ctc->tc_object_ref = ccam; ctc->tc_local_object = true; } else { ctc->tc_object_ref = ccam->prj->selected_object; i32s index = base_app::GetAppB()->IsLight(ctc->tc_object_ref); ctc->tc_local_object = (index != NOT_DEFINED && dynamic_cast(ctc->tc_object_ref)->owner == ccam); if (!ctc->tc_object_ref && mouseinfo::shift_down) { tool_transformer.Init(ccam->prj); ctc->tc_object_ref = (& tool_transformer); } if (ctc->tc_object_ref) ctc->tc_object_ref->BeginTransformation(); } rdata = ccam; } else { if (ctc->tc_object_ref) ctc->tc_object_ref->EndTransformation(); if (quick_update) // if quick, put back original params and update... { render = stored_render; accumulate = stored_accumulate; if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtMeasure) { if (mouseinfo::state != mouseinfo::sDown) return; MyUpdateWnd(pMeasure, x, y); } } void oglview_wcl::MotionEvent(int x, int y) { custom_transformer_client * ctc = custom_app::GetAppC()->GetPrj(); /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtDraw) { } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtErase) { } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtSelect) { } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtZoom) { fGL dist[3] = { 0.0, 0.0, 0.0 }; dist[2] = mouseinfo::dist_sensitivity * vdim[1] * (fGL) (mouseinfo::latest_y - y) / (fGL) GetWnd()->GetHeight(); //cout << "AA : " << ccam->GetSafeLD()->crd[0] << " " << ccam->GetSafeLD()->crd[1] << " " << ccam->GetSafeLD()->crd[2] << endl; ccam->TranslateObject(dist, ccam->GetSafeLD()); //cout << "BB : " << ccam->GetSafeLD()->crd[0] << " " << ccam->GetSafeLD()->crd[1] << " " << ccam->GetSafeLD()->crd[2] << endl; ccam->focus += dist[2]; if (quick_update) ccam->prj->UpdateGraphicsView(this); else ccam->prj->UpdateGraphicsViews(ccam); mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtClipping) { ccam->clipping += (fGL) (mouseinfo::latest_y - y) / (fGL) GetWnd()->GetHeight(); if (ccam->clipping < 0.01) ccam->clipping = 0.01; if (ccam->clipping > 0.99) ccam->clipping = 0.99; cout << "clipping = " << ccam->clipping << " = "; cout << (ccam->clipping * (2.0 * ccam->focus)) << " nm." << endl; if (quick_update) ccam->prj->UpdateGraphicsView(this); else ccam->prj->UpdateGraphicsViews(ccam); mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtTranslateXY) { fGL dist[3] = { 0.0, 0.0, 0.0 }; if (ctc->tc_object_ref != NULL && tdata != NULL) { dist[0] = mouseinfo::dist_sensitivity * vdim[0] * (fGL) (mouseinfo::latest_x - x) / (fGL) GetWnd()->GetWidth(); dist[1] = mouseinfo::dist_sensitivity * vdim[1] * (fGL) (mouseinfo::latest_y - y) / (fGL) GetWnd()->GetHeight(); ctc->tc_object_ref->TranslateObject(dist, tdata); if (quick_update) ccam->prj->UpdateGraphicsView(this); else { if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtTranslateZ) { fGL dist[3] = { 0.0, 0.0, 0.0 }; if (ctc->tc_object_ref != NULL && tdata != NULL) { dist[2] = mouseinfo::dist_sensitivity * vdim[1] * (fGL) (mouseinfo::latest_y - y) / (fGL) GetWnd()->GetHeight(); ctc->tc_object_ref->TranslateObject(dist, tdata); if (quick_update) ccam->prj->UpdateGraphicsView(this); else { if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtOrbitXY) { fGL ang[3] = { 0.0, 0.0, 0.0 }; if (ctc->tc_object_ref != NULL) { ang[0] = mouseinfo::ang_sensitivity * (fGL) (mouseinfo::latest_y - y) / (fGL) GetWnd()->GetHeight(); ang[1] = mouseinfo::ang_sensitivity * (fGL) (x - mouseinfo::latest_x) / (fGL) GetWnd()->GetWidth(); ctc->tc_object_ref->OrbitObject(ang, * rdata); animX = ang[0]; animY = ang[1]; if (quick_update) ccam->prj->UpdateGraphicsView(this); else { if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtOrbitZ) { fGL ang[3] = { 0.0, 0.0, 0.0 }; if (ctc->tc_object_ref != NULL) { ang[2] = mouseinfo::ang_sensitivity * (fGL) (x - mouseinfo::latest_x) / (fGL) GetWnd()->GetWidth(); ctc->tc_object_ref->OrbitObject(ang, * rdata); if (quick_update) ccam->prj->UpdateGraphicsView(this); else { if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtRotateXY) { fGL ang[3] = { 0.0, 0.0, 0.0 }; if (ctc->tc_object_ref != NULL) { ang[0] = mouseinfo::ang_sensitivity * (fGL) (mouseinfo::latest_y - y) / (fGL) GetWnd()->GetHeight(); ang[1] = mouseinfo::ang_sensitivity * (fGL) (x - mouseinfo::latest_x) / (fGL) GetWnd()->GetWidth(); ctc->tc_object_ref->RotateObject(ang, * rdata); if (quick_update) ccam->prj->UpdateGraphicsView(this); else { if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtRotateZ) { fGL ang[3] = { 0.0, 0.0, 0.0 }; if (ctc->tc_object_ref != NULL) { ang[2] = mouseinfo::ang_sensitivity * (fGL) (x - mouseinfo::latest_x) / (fGL) GetWnd()->GetWidth(); ctc->tc_object_ref->RotateObject(ang, * rdata); if (quick_update) ccam->prj->UpdateGraphicsView(this); else { if (ctc->tc_local_object) ccam->prj->UpdateGraphicsViews(ccam); else ccam->prj->UpdateAllGraphicsViews(); } } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } /////////////////////////////////////////////////////////////////////////// if (custom_app::GetCurrentMouseTool() == custom_app::mtMeasure) { } } void oglview_wcl::UpdateWnd(void) { base_wnd * w = GetWnd(); if (w != NULL && ccam != NULL) { w->SetCurrent(); MyUpdateWnd(); } else cout << "DEBUG : oglview_wcl::UpdateWnd() : skipped!" << endl; } void oglview_wcl::MyUpdateWnd(pmode pm, int x, int y) { if (GetWnd() == NULL) return; // skip rendering if an invalid wnd!!! if (GetWnd()->GetWidth() < 0) return; // skip rendering if an invalid wnd!!! // A SIMPLE FRAMES-PER-SECOND COUNTER FOR GRAPHICS OPTIMIZATION // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /* const int numframes = 30; static int framecounter = 0; static double timecounter = 0.0; static long prevtime = 0; timeval tv; gettimeofday(& tv, NULL); long currtime = tv.tv_usec; // according to manpages, this should be in microseconds??? long difftime = currtime - prevtime; // the CLOCKS_PER_SEC factor works a lot better than 1.0e-06 prevtime = currtime; if (difftime > 0) // skip the frame in timer overflow situation!!! { double t_secs = (double) difftime / (double) CLOCKS_PER_SEC; // time unit??? framecounter++; timecounter += t_secs; if (framecounter >= numframes) { cout << "frame rate = " << ((double) framecounter / timecounter) << " FPS ("; cout << framecounter << " frames in " << timecounter << " seconds)." << endl; framecounter = 0; timecounter = 0.0; } } */ // A SIMPLE FRAMES-PER-SECOND COUNTER FOR GRAPHICS OPTIMIZATION // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ bool pick = (pm != DoNotPick); cam->RenderScene(GetWnd(), accumulate, pick, x, y); // if this was a selection operation, read the information from the selection buffer. if (pick) { i32s tmp1 = glRenderMode(GL_RENDER); // number of records in s-buffer. i32s tmp2 = NOT_DEFINED; // index to the beginning of the selected record. iGLu tmp3 = 0xffffffff; // original, lowest z-value... // iGLu tmp3 = 0x00000000; // alternative, highest z-value... ///////////////////////////////////////////////////////////////////////// // here we examine the selection buffer and select the hit with lowest // z-value (since we assume that this object was visible to the user). ///////////////////////////////////////////////////////////////////////// i32s tmp4[2] = { 0, 0 }; while (tmp4[0] < tmp1) { if (select_buffer[tmp4[1] + 1] < tmp3) // original, lowest z-value... // if (select_buffer[tmp4[1] + 2] > tmp3) // alternative, highest z-value... { tmp2 = tmp4[1]; tmp3 = select_buffer[tmp4[1] + 1]; // original, lowest z-value... // tmp3 = select_buffer[tmp4[1] + 2]; // alternative, highest z-value... } tmp4[0]++; tmp4[1] += select_buffer[tmp4[1]] + 3; } // now we copy all name records of the selected hit... vector name_vector; if (tmp2 != NOT_DEFINED) { for (i32u i1 = 0;i1 < select_buffer[tmp2];i1++) { name_vector.push_back(select_buffer[tmp2 + i1 + 3]); } } // "draw"- and "erase"-events are always forwarded to prj. if (pm == pDraw) ccam->prj->DrawEvent(this, name_vector); if (pm == pErase) ccam->prj->EraseEvent(this, name_vector); // "select"- and "measure"-events are forwarded only if // MODEL_DEPENDENT flag is set (an atom selection event). if (pm == pSelect && name_vector.size() > 1) { bool test = (name_vector[0] & GLNAME_MODEL_DEPENDENT); if (test) { ccam->prj->selected_object = NULL; ccam->prj->SelectEvent(this, name_vector); } else { // we are doing a light/object selection... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ base_app * app = base_app::GetAppB(); custom_app * myapp = custom_app::GetAppC(); const ogl_dummy_object * ref = NULL; switch (name_vector[0]) { case GLNAME_LIGHT: ref = (const ogl_dummy_object *) app->FindPtrByGLName(name_vector[1]); myapp->SelectLight(ref); break; case GLNAME_OBJECT: ref = (const ogl_dummy_object *) app->FindPtrByGLName(name_vector[1]); myapp->GetPrj()->SelectObject(ref); break; } } } if (pm == pMeasure && name_vector.size() > 1) { bool test = (name_vector[0] & GLNAME_MODEL_DEPENDENT); if (test) { // todo : make measurement different from // selection (do not use a selection flag but // make a separate way to show it) -> no need // to mess with selected_object here anymore... ccam->prj->selected_object = NULL; // FixMe!!! ccam->prj->MeasureEvent(this, name_vector); } } } } void oglview_wcl::InitGL(void) { const fGL background[4] = { 0.0, 0.0, 0.0, 1.0}; glClearColor(background[0], background[1], background[2], background[3]); glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 64); const fGL specular_reflectance[4] = { 0.9, 0.9, 0.9, 1.0 }; glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular_reflectance); glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); glEnable(GL_COLOR_MATERIAL); const fGL ambient_intensity[4] = { 0.2, 0.2, 0.2, 1.0 }; glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient_intensity); glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, true); glFogi(GL_FOG_MODE, GL_EXP); glFogf(GL_FOG_DENSITY, 0.15); const fGL fog_color[4] = { 0.0, 0.0, 0.0, 0.0 }; glFogfv(GL_FOG_COLOR, fog_color); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glSelectBuffer(SB_SIZE, select_buffer); // also setup the lights, just to make sure it always happens... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ base_app::GetAppB()->SetupLights(ccam); // all classes that inherit pangofont_wcl must call ogl_InitPangoFont()!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ogl_InitPangoFont("courier 12"); } void oglview_wcl::RenderGL(rmode rm) { custom_app::GetAppC()->GetPrj()->Render(this, rm); } /*################################################################################################*/ // eof ghemical-3.0.0/src/custom_lights.h0000644000175000017500000000331211634160016014025 00000000000000// CUSTOM_LIGHTS.H : extended ogl_light classes. // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef CUSTOM_LIGHTS_H #define CUSTOM_LIGHTS_H class rendered_spot_light; /*################################################################################################*/ #include #include /*################################################################################################*/ class rendered_spot_light : public ogl_spot_light { protected: iGLu my_glname; public: rendered_spot_light(const ogl_object_location &, const ogl_light_components & = ogl_light::def_components, GLfloat = ogl_spot_light::def_cutoff, GLfloat = ogl_spot_light::def_exponent); virtual ~rendered_spot_light(void); void Render(void); // virtual }; /*################################################################################################*/ #endif // CUSTOM_LIGHTS_H // eof ghemical-3.0.0/src/gtk_eldview_wnd.h0000644000175000017500000000302311634160016014314 00000000000000// GTK_ELDVIEW_WND.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef GTK_ELDVIEW_WND_H #define GTK_ELDVIEW_WND_H #include "gtk_wnd.h" /*################################################################################################*/ class gtk_eldview_wnd : public gtk_wnd { private: static GtkActionEntry entries[]; static const char * ui_description; public: gtk_eldview_wnd(bool); ~gtk_eldview_wnd(void); static void popup_AttachDetach(GtkWidget *, gpointer); static void popup_DeleteView(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_ELDVIEW_WND_H // eof ghemical-3.0.0/src/custom_camera.cpp0000644000175000017500000000271211634160016014321 00000000000000// CUSTOM_CAMERA.CPP // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "custom_camera.h" // config.h is here -> we get ENABLE-macros here... //#include "base_app.h" #include using namespace std; /*################################################################################################*/ int custom_camera::ccam_counter = 0; custom_camera::custom_camera(const ogl_object_location & p1, GLfloat p2, project * p3) : ogl_camera(p1, p2) { prj = p3; ccam_index = ++ccam_counter; wcl_counter = 0; } custom_camera::~custom_camera(void) { } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_stereo_dialog.cpp0000644000175000017500000000641311634160016015166 00000000000000// GTK_STEREO_DIALOG.CPP // Copyright (C) 2000 Tommi Hassinen, Mike Cruz. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_stereo_dialog.h" #include "gtk_app.h" #include "local_i18n.h" /*################################################################################################*/ gtk_stereo_dialog::gtk_stereo_dialog(gtk_oglview_wnd * p1) : gtk_glade_dialog("glade/gtk_stereo_dialog.glade") { wnd = p1; scaling = 1.0; dialog = glade_xml_get_widget(xml, "stereo_dialog"); if (dialog == NULL) { cout << _("WARNING : stereo_dialog : glade_xml_get_widget() failed!!!") << endl; return; } // connect the handlers... glade_xml_signal_connect_data(xml, "on_dialog_destroy", (GtkSignalFunc) handler_Destroy, (gpointer) this); glade_xml_signal_connect_data(xml, "on_hscale_separation_value_changed", (GtkSignalFunc) handler_SepChanged, (gpointer) this); glade_xml_signal_connect_data(xml, "on_hscale_displacement_value_changed", (GtkSignalFunc) handler_DispChanged, (gpointer) this); gtk_widget_show(dialog); // MODELESS } gtk_stereo_dialog::~gtk_stereo_dialog(void) { } void gtk_stereo_dialog::SetScaling(float tmpf) { scaling = tmpf; } void gtk_stereo_dialog::CloseDialog(void) { gtk_widget_destroy(dialog); dialog = NULL; } void gtk_stereo_dialog::handler_Destroy(GtkWidget *, gpointer data) { gtk_stereo_dialog * ref = (gtk_stereo_dialog *) data; cout << "DEBUG : handler_Destroy() : ref = " << ref << endl; // tell others that we are closed!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ref->wnd->my_stereo_dialog = NULL; ref->wnd = NULL; } void gtk_stereo_dialog::handler_SepChanged(GtkWidget * range, gpointer data) { gtk_stereo_dialog * ref = (gtk_stereo_dialog *) data; const float value = gtk_range_get_value(GTK_RANGE(range)) * ref->scaling; //cout << "DEBUG : gtk_stereo_dialog::handler_SepChanged() " << value << endl; ref->wnd->GetClient()->GetCam()->relaxed_separation = value; gtk_app::GetPrjX()->UpdateGraphicsViews(ref->wnd->GetClient()->GetCam()); } void gtk_stereo_dialog::handler_DispChanged(GtkWidget * range, gpointer data) { gtk_stereo_dialog * ref = (gtk_stereo_dialog *) data; const float value = gtk_range_get_value(GTK_RANGE(range)) * ref->scaling; //cout << "DEBUG : gtk_stereo_dialog::handler_DispChanged() " << value << endl; ref->wnd->GetClient()->GetCam()->stereo_displacement = value; gtk_app::GetPrjX()->UpdateGraphicsViews(ref->wnd->GetClient()->GetCam()); } /*################################################################################################*/ // eof ghemical-3.0.0/src/p1dview_wcl.h0000644000175000017500000000405011634160016013365 00000000000000// P1DVIEW_WCL.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef P1DVIEW_WCL_H #define P1DVIEW_WCL_H #include "ac_stor_wcl.h" #include /*################################################################################################*/ struct p1d_data { double c1; // coordinate 1 (say, x-coordinate) double v; // value int ac_i; // atom coordinate data bool operator<(const p1d_data & p1) const { return (c1 < p1.c1); } }; class p1dview_wcl : public ac_stor_wcl { protected: char * name1; char * namev; vector dv; f64 min1; f64 max1; f64 minv; f64 maxv; public: p1dview_wcl(const char *, const char *); virtual ~p1dview_wcl(void); void AddData(double, double); void AddDataWithAC(double, double, engine *); void AddDataWithAC(double, double, model *, int); virtual void Finalize(void); virtual void ButtonEvent(int, int); // virtual virtual void MotionEvent(int, int); // virtual void UpdateWnd(void); // virtual void InitGL(void); // virtual void RenderGL(rmode); // virtual }; /*################################################################################################*/ #endif // P1DVIEW_WCL_H // eof ghemical-3.0.0/src/gtk_simple_dialogs.h0000644000175000017500000001241311634160016015003 00000000000000// GTK_SIMPLE_DIALOGS.H : the GTK-dialogs not using GLADE/LIBGLADE. // Copyright (C) 1999 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_SIMPLE_DIALOGS_H #define GTK_SIMPLE_DIALOGS_H //#include "ghemicalconfig2.h" class gtk_project; // gtk_project.h #include #include "gtk_app.h" // the dialogs here are made modal, so that only one dialog of it's kind can exist at any // moment. therefore GtkWidgets are made static, because there is no need to store several // GtkWidgets. if modal dialogs are needed, an array/container of GtkWidgets are needed // in a similar way as in window classes... /*################################################################################################*/ class gtk_element_dialog { private: static gtk_element_dialog * current_object; static GtkWidget * dialog; static GtkWidget * current_element_widget; public: gtk_element_dialog(void); ~gtk_element_dialog(void); static void SignalHandler(GtkWidget *, int); }; /*################################################################################################*/ class gtk_bondtype_dialog { private: static gtk_bondtype_dialog * current_object; static GtkWidget * dialog; static GtkWidget * current_bond_widget; public: gtk_bondtype_dialog(void); ~gtk_bondtype_dialog(void); static void SignalHandler(GtkWidget *, int); }; /*################################################################################################*/ const char * make_tmp_filename(gtk_project *); class gtk_file_dialog { protected: static GtkWidget * dialog; public: gtk_file_dialog(const char *, const char *, const char *); virtual ~gtk_file_dialog(void); static void DestroyHandler(GtkWidget *, gpointer); static void OkButtonHandler(GtkWidget *, gpointer); static void CancelButtonHandler(GtkWidget *, gpointer); virtual bool OkEvent(const char *) = 0; virtual void CancelEvent(void) = 0; }; /*################################################################################################*/ class gtk_file_open_dialog : public gtk_file_dialog { private: static const char title[]; static gtk_project * prj; bool insert; public: gtk_file_open_dialog(gtk_project *); ~gtk_file_open_dialog(void); bool OkEvent(const char *); // virtual void CancelEvent(void); // virtual }; /*################################################################################################*/ class gtk_file_save_dialog : public gtk_file_dialog { private: static const char title[]; static gtk_project * prj; public: gtk_file_save_dialog(gtk_project *); ~gtk_file_save_dialog(void); bool OkEvent(const char *); // virtual void CancelEvent(void); // virtual }; /*################################################################################################*/ class gtk_file_save_graphics_dialog : public gtk_file_dialog { private: static const char title[]; static gtk_project * prj; public: gtk_file_save_graphics_dialog(gtk_project *); ~gtk_file_save_graphics_dialog(void); bool OkEvent(const char *); // virtual void CancelEvent(void); // virtual }; /*################################################################################################*/ class gtk_trajfile_dialog : public gtk_file_dialog { private: static const char title[]; static gtk_project * prj; public: gtk_trajfile_dialog(gtk_project *); ~gtk_trajfile_dialog(void); bool OkEvent(const char *); // virtual void CancelEvent(void); // virtual }; /*################################################################################################*/ class gtk_importpdb_dialog : public gtk_file_dialog { private: static const char title[]; static gtk_project * prj; public: gtk_importpdb_dialog(gtk_project *); ~gtk_importpdb_dialog(void); bool OkEvent(const char *); // virtual void CancelEvent(void); // virtual }; /*################################################################################################*/ class gtk_command_dialog { private: static gtk_project * prj; static oglview_wcl * wcl; static GtkWidget * dialog; static GtkWidget * entry; public: gtk_command_dialog(gtk_project *, oglview_wcl *, const char *); virtual ~gtk_command_dialog(void); static void DestroyHandler(GtkWidget *, gpointer); static void OkButtonHandler(GtkWidget *, gpointer); static void CancelButtonHandler(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_SIMPLE_DIALOGS_H // eof ghemical-3.0.0/src/gtk_file_export_dialog.h0000644000175000017500000000354211634160016015652 00000000000000// GTK_FILE_EXPORT_DIALOG.H : write a short description here... // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_FILE_EXPORT_DIALOG_H #define GTK_FILE_EXPORT_DIALOG_H //#include "ghemicalconfig2.h" #include "gtk_glade_dialog.h" #include "gtk_project.h" /*################################################################################################*/ class gtk_file_export_dialog : public gtk_glade_dialog { protected: gtk_project * prj; GtkWidget * dialog; GtkWidget * entry_trajfile; GtkWidget * button_browse; GtkWidget * file_selector; public: gtk_file_export_dialog(gtk_project *); ~gtk_file_export_dialog(void); static void handler_Destroy(GtkWidget *, gpointer); static void handler_ButtonOK(GtkWidget *, gpointer); static void handler_ButtonCancel(GtkWidget *, gpointer); static void handler_ButtonBrowse(GtkWidget *, gpointer); static void handler_FileChooser(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_FILE_EXPORT_DIALOG_H // eof ghemical-3.0.0/src/gtk_file_import_dialog.h0000644000175000017500000000354211634160016015643 00000000000000// GTK_FILE_IMPORT_DIALOG.H : write a short description here... // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_FILE_IMPORT_DIALOG_H #define GTK_FILE_IMPORT_DIALOG_H //#include "ghemicalconfig2.h" #include "gtk_glade_dialog.h" #include "gtk_project.h" /*################################################################################################*/ class gtk_file_import_dialog : public gtk_glade_dialog { protected: gtk_project * prj; GtkWidget * dialog; GtkWidget * entry_trajfile; GtkWidget * button_browse; GtkWidget * file_selector; public: gtk_file_import_dialog(gtk_project *); ~gtk_file_import_dialog(void); static void handler_Destroy(GtkWidget *, gpointer); static void handler_ButtonOK(GtkWidget *, gpointer); static void handler_ButtonCancel(GtkWidget *, gpointer); static void handler_ButtonBrowse(GtkWidget *, gpointer); static void handler_FileChooser(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_FILE_IMPORT_DIALOG_H // eof ghemical-3.0.0/src/custom_lights.cpp0000644000175000017500000000523611634160016014367 00000000000000// CUSTOM_LIGHTS.CPP // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "custom_lights.h" // config.h is here -> we get ENABLE-macros here... #include using namespace std; #include "appdefine.h" #include /*################################################################################################*/ #define SHADE_ANGLE (22.5 / 180.0 * M_PI) rendered_spot_light::rendered_spot_light(const ogl_object_location & p1, const ogl_light_components & p2, GLfloat p3, GLfloat p4) : ogl_spot_light(p1, p2, p3, p4) { my_glname = base_app::GetAppB()->RegisterGLName((ogl_dummy_object *) this); } rendered_spot_light::~rendered_spot_light(void) { // todo : unregister my_glname!!! } void rendered_spot_light::Render(void) { GLfloat r1 = tan(SHADE_ANGLE) * size; GLfloat tmp1 = 1.0 / (sin(SHADE_ANGLE) + 1.0); GLfloat tmp2 = 1.2 * size; GLfloat r2 = (1.0 - tmp1) * tmp2; GLfloat r3 = tmp1 * tmp2; glPushName(GLNAME_LIGHT); glPushName(my_glname); glPushMatrix(); SetModelView(); if (cutoff < 180.0) { glPushMatrix(); glTranslatef(0.0, 0.0, -r3); glBegin(GL_TRIANGLES); for (int n1 = 0;n1 < 8;n1++) { if (n1 & 1) glColor3fv(shade1); else glColor3fv(shade2); GLfloat ang1 = M_PI * (GLfloat) n1 / 4.0; GLfloat ang2 = M_PI * (GLfloat) (n1 + 1) / 4.0; glVertex3f(r1 * cos(ang1), r1 * sin(ang1), size); glVertex3f(r1 * cos(ang2), r1 * sin(ang2), size); glVertex3f(0.0, 0.0, 0.0); } glEnd(); // GL_TRIANGLES glPopMatrix(); } if (glIsEnabled((GLenum) number)) glColor3fv(bulb_on); else glColor3fv(bulb_off); GLUquadricObj * qo = gluNewQuadric(); gluQuadricDrawStyle(qo, (GLenum) GLU_FILL); gluSphere(qo, 0.95 * r2, 8, 4); gluDeleteQuadric(qo); glPopMatrix(); glPopName(); glPopName(); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_moldyn_dialog.cpp0000644000175000017500000002161211634160016015165 00000000000000// GTK_MOLDYN_DIALOG.CPP // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_moldyn_dialog.h" #include "local_i18n.h" #include #include #include #include using namespace std; /*################################################################################################*/ gtk_moldyn_dialog::gtk_moldyn_dialog(moldyn_param * p1) : gtk_glade_dialog("glade/gtk_moldyn_dialog.glade") { param = p1; dialog = glade_xml_get_widget(xml, "moldyn_dialog"); if (dialog == NULL) { cout << _("WARNING : moldyn_dialog : glade_xml_get_widget() failed!!!") << endl; return; } // initialize the widgets... entry_nsteps_h = glade_xml_get_widget(xml, "entry_nsteps_h"); entry_nsteps_e = glade_xml_get_widget(xml, "entry_nsteps_e"); entry_nsteps_s = glade_xml_get_widget(xml, "entry_nsteps_s"); entry_nsteps_c = glade_xml_get_widget(xml, "entry_nsteps_c"); entry_timestep = glade_xml_get_widget(xml, "entry_timestep"); entry_temperature = glade_xml_get_widget(xml, "entry_temperature"); entry_T_rt_hc = glade_xml_get_widget(xml, "entry_T_rt_hc"); entry_T_rt_es = glade_xml_get_widget(xml, "entry_T_rt_es"); entry_pressure = glade_xml_get_widget(xml, "entry_pressure"); entry_P_rtime = glade_xml_get_widget(xml, "entry_P_rtime"); entry_P_beta = glade_xml_get_widget(xml, "entry_P_beta"); checkbutton_constant_T = glade_xml_get_widget(xml, "checkbutton_constant_T"); checkbutton_constant_P = glade_xml_get_widget(xml, "checkbutton_constant_P"); //checkbutton_langevin = glade_xml_get_widget(xml, "checkbutton_langevin"); // REMOVED entry_trajfile = glade_xml_get_widget(xml, "entry_trajfile"); button_browse = glade_xml_get_widget(xml, "button_browse"); file_selector = NULL; ostringstream str; str << param->nsteps_h << ends; gtk_entry_set_text(GTK_ENTRY(entry_nsteps_h), str.str().c_str()); str.str(""); // blank it... str << param->nsteps_e << ends; gtk_entry_set_text(GTK_ENTRY(entry_nsteps_e), str.str().c_str()); str.str(""); // blank it... str << param->nsteps_s << ends; gtk_entry_set_text(GTK_ENTRY(entry_nsteps_s), str.str().c_str()); str.str(""); // blank it... str << param->nsteps_c << ends; gtk_entry_set_text(GTK_ENTRY(entry_nsteps_c), str.str().c_str()); str.str(""); // blank it... str << param->timestep << ends; gtk_entry_set_text(GTK_ENTRY(entry_timestep), str.str().c_str()); str.str(""); // blank it... str << param->target_T << ends; gtk_entry_set_text(GTK_ENTRY(entry_temperature), str.str().c_str()); str.str(""); // blank it... str << param->T_rtime_hc << ends; gtk_entry_set_text(GTK_ENTRY(entry_T_rt_hc), str.str().c_str()); str.str(""); // blank it... str << param->T_rtime_es << ends; gtk_entry_set_text(GTK_ENTRY(entry_T_rt_es), str.str().c_str()); str.str(""); // blank it... str << param->target_P << ends; gtk_entry_set_text(GTK_ENTRY(entry_pressure), str.str().c_str()); str.str(""); // blank it... str << param->P_rtime << ends; gtk_entry_set_text(GTK_ENTRY(entry_P_rtime), str.str().c_str()); str.str(""); // blank it... str << param->P_beta << ends; gtk_entry_set_text(GTK_ENTRY(entry_P_beta), str.str().c_str()); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton_constant_T), (param->constant_T ? TRUE : FALSE)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton_constant_P), (param->constant_P ? TRUE : FALSE)); //gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton_langevin), (param->langevin ? TRUE : FALSE)); // REMOVED gtk_entry_set_text(GTK_ENTRY(entry_trajfile), param->filename); // connect the handlers... glade_xml_signal_connect_data(xml, "on_dialog_destroy", (GtkSignalFunc) handler_Destroy, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_ok_clicked", (GtkSignalFunc) handler_ButtonOK, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_cancel_clicked", (GtkSignalFunc) handler_ButtonCancel, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_browse_clicked", (GtkSignalFunc) handler_ButtonBrowse, (gpointer) this); gtk_dialog_run(GTK_DIALOG(dialog)); // MODAL gtk_widget_destroy(dialog); // MODAL } gtk_moldyn_dialog::~gtk_moldyn_dialog(void) { } void gtk_moldyn_dialog::handler_Destroy(GtkWidget *, gpointer data) // not really needed... { gtk_moldyn_dialog * ref = (gtk_moldyn_dialog *) data; //cout << "handler_Destroy() : ref = " << ref << endl; } void gtk_moldyn_dialog::handler_ButtonOK(GtkWidget *, gpointer data) { gtk_moldyn_dialog * ref = (gtk_moldyn_dialog *) data; //cout << "handler_ButtonOK() : ref = " << ref << endl; // read the user's settings from widgets... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const gchar * buffer; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_nsteps_h)); istringstream istr1a(buffer); istr1a >> ref->param->nsteps_h; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_nsteps_e)); istringstream istr1b(buffer); istr1b >> ref->param->nsteps_e; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_nsteps_s)); istringstream istr1c(buffer); istr1c >> ref->param->nsteps_s; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_nsteps_c)); istringstream istr1d(buffer); istr1d >> ref->param->nsteps_c; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_timestep)); istringstream istr2(buffer); istr2 >> ref->param->timestep; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_temperature)); istringstream istr3a(buffer); istr3a >> ref->param->target_T; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_T_rt_hc)); istringstream istr3b(buffer); istr3b >> ref->param->T_rtime_hc; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_T_rt_es)); istringstream istr3c(buffer); istr3c >> ref->param->T_rtime_es; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_pressure)); istringstream istr4a(buffer); istr4a >> ref->param->target_P; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_P_rtime)); istringstream istr4b(buffer); istr4b >> ref->param->P_rtime; buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_P_beta)); istringstream istr4c(buffer); istr4c >> ref->param->P_beta; ref->param->constant_T = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ref->checkbutton_constant_T)) == TRUE ? true : false); ref->param->constant_P = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ref->checkbutton_constant_P)) == TRUE ? true : false); //ref->param->langevin = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ref->checkbutton_langevin)) == TRUE ? true : false); // REMOVED buffer = gtk_entry_get_text(GTK_ENTRY(ref->entry_trajfile)); strcpy(ref->param->filename, buffer); ref->param->Confirm(); } void gtk_moldyn_dialog::handler_ButtonCancel(GtkWidget *, gpointer data) // not really needed... { gtk_moldyn_dialog * ref = (gtk_moldyn_dialog *) data; //cout << "handler_ButtonCancel() : ref = " << ref << endl; } void gtk_moldyn_dialog::handler_ButtonBrowse(GtkWidget *, gpointer data) { gtk_moldyn_dialog * ref = (gtk_moldyn_dialog *) data; //cout << "handler_ButtonBrowse() : ref = " << ref << endl; // handle the file selection... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ref->file_selector = gtk_file_selection_new(_("Select a Trajectory File.")); g_signal_connect(GTK_FILE_SELECTION(ref->file_selector)->ok_button, "clicked", G_CALLBACK(handler_FileChooser), data); g_signal_connect_swapped(GTK_FILE_SELECTION(ref->file_selector)->ok_button, "clicked", G_CALLBACK(gtk_widget_destroy), ref->file_selector); g_signal_connect_swapped(GTK_FILE_SELECTION(ref->file_selector)->cancel_button, "clicked", G_CALLBACK(gtk_widget_destroy), ref->file_selector); gtk_dialog_run(GTK_DIALOG(ref->file_selector)); ref->file_selector = NULL; } void gtk_moldyn_dialog::handler_FileChooser(GtkWidget *, gpointer data) { gtk_moldyn_dialog * ref = (gtk_moldyn_dialog *) data; //cout << "handler_FileChooser() : ref = " << ref << endl; // save the selected filename... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const gchar * selected_filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(ref->file_selector)); gtk_entry_set_text(GTK_ENTRY(ref->entry_trajfile), selected_filename); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_p1dview_wnd.h0000644000175000017500000000302311634160016014234 00000000000000// GTK_P1DVIEW_WND.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef GTK_P1DVIEW_WND_H #define GTK_P1DVIEW_WND_H #include "gtk_wnd.h" /*################################################################################################*/ class gtk_p1dview_wnd : public gtk_wnd { private: static GtkActionEntry entries[]; static const char * ui_description; public: gtk_p1dview_wnd(bool); ~gtk_p1dview_wnd(void); static void popup_AttachDetach(GtkWidget *, gpointer); static void popup_DeleteView(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_P1DVIEW_WND_H // eof ghemical-3.0.0/src/gtk_wnd.cpp0000644000175000017500000003765111634160016013146 00000000000000// GTK_WND.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_wnd.h" #include "gtk_app.h" #include "local_i18n.h" #include #include /*################################################################################################*/ vector gtk_wnd::iv; gtk_wnd::gtk_wnd(bool det_flag) : base_wnd() { iv.push_back(this); view_widget = NULL; detached = NULL; label_widget = NULL; popupmenu = NULL; GdkGLConfigMode mode = (GdkGLConfigMode) 0; GdkGLConfig * glconfig = NULL; mode = (GdkGLConfigMode) (GDK_GL_MODE_RGB | GDK_GL_MODE_DEPTH | GDK_GL_MODE_DOUBLE); glconfig = gdk_gl_config_new_by_mode(mode); // try a double-buffered visual... if (glconfig == NULL) { g_print(_("*** Cannot find the double-buffered visual.\n")); g_print(_("*** Trying single-buffered visual.\n")); mode = (GdkGLConfigMode) (GDK_GL_MODE_RGB | GDK_GL_MODE_DEPTH); glconfig = gdk_gl_config_new_by_mode(mode); // try a single-buffered visual... if (glconfig == NULL) { g_print(_("*** No appropriate OpenGL-capable visual found.\n")); exit(EXIT_FAILURE); } } g_print (_("\nOpenGL visual configurations :\n\n")); g_print ("gdk_gl_config_is_rgba (glconfig) = %s\n", gdk_gl_config_is_rgba (glconfig) ? "TRUE" : "FALSE"); g_print ("gdk_gl_config_is_double_buffered (glconfig) = %s\n", gdk_gl_config_is_double_buffered (glconfig) ? "TRUE" : "FALSE"); g_print ("gdk_gl_config_is_stereo (glconfig) = %s\n", gdk_gl_config_is_stereo (glconfig) ? "TRUE" : "FALSE"); g_print ("gdk_gl_config_has_alpha (glconfig) = %s\n", gdk_gl_config_has_alpha (glconfig) ? "TRUE" : "FALSE"); g_print ("gdk_gl_config_has_depth_buffer (glconfig) = %s\n", gdk_gl_config_has_depth_buffer (glconfig) ? "TRUE" : "FALSE"); g_print ("gdk_gl_config_has_stencil_buffer (glconfig) = %s\n", gdk_gl_config_has_stencil_buffer (glconfig) ? "TRUE" : "FALSE"); g_print ("gdk_gl_config_has_accum_buffer (glconfig) = %s\n", gdk_gl_config_has_accum_buffer (glconfig) ? "TRUE" : "FALSE"); g_print ("\n"); view_widget = gtk_drawing_area_new(); gtk_widget_set_size_request(view_widget, 100, 100); // minimum size... gtk_widget_set_gl_capability(view_widget, glconfig, NULL, TRUE, GDK_GL_RGBA_TYPE); int events = GDK_EXPOSURE_MASK; events |= GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK; events |= GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK; gtk_widget_set_events(GTK_WIDGET(view_widget), events); gtk_signal_connect(GTK_OBJECT(view_widget), "expose_event", GTK_SIGNAL_FUNC(ExposeHandler), NULL); gtk_signal_connect(GTK_OBJECT(view_widget), "button_press_event", GTK_SIGNAL_FUNC(ButtonHandler), NULL); gtk_signal_connect(GTK_OBJECT(view_widget), "button_release_event", GTK_SIGNAL_FUNC(ButtonHandler), NULL); gtk_signal_connect(GTK_OBJECT(view_widget), "motion_notify_event", GTK_SIGNAL_FUNC(MotionNotifyHandler), NULL); gtk_signal_connect(GTK_OBJECT(view_widget), "configure_event", GTK_SIGNAL_FUNC(ConfigureHandler), NULL); gtk_signal_connect_after(GTK_OBJECT(view_widget), "realize", GTK_SIGNAL_FUNC(RealizeHandler), NULL); // after!!! gtk_widget_show(GTK_WIDGET(view_widget)); if (det_flag) { detached = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(detached), 500, 300); gtk_app::GetAppX()->SetTransientForMainWnd(GTK_WINDOW(detached)); // we could set the window title here, but at this stage // we are always unlinked and cannot get the title text... gtk_container_add(GTK_CONTAINER(detached), view_widget); gtk_signal_connect(GTK_OBJECT(detached), "delete_event", GTK_SIGNAL_FUNC(gtk_wnd::DetachedDeleteHandler), NULL); gtk_widget_show(detached); } } gtk_wnd::~gtk_wnd(void) { if (detached != NULL) { gtk_widget_destroy(GTK_WIDGET(detached)); detached = NULL; // gtk_widget_destroy(GTK_WIDGET(view_widget)); // ???crash??? view_widget = NULL; // already destroyed as a child widget? } else { // gtk_widget_destroy(GTK_WIDGET(view_widget)); // ???crash??? view_widget = NULL; // already destroyed as a child widget? } // remove the record from iv... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsigned int i = 0; while (i < iv.size()) { if (iv[i] == this) break; else i++; } if (i < iv.size()) { iv.erase(iv.begin() + i); } else { assertion_failed(__FILE__, __LINE__, "removal from iv failed!"); } } gtk_wnd * gtk_wnd::iv_Find(GtkWidget * vw) { for (unsigned int i = 0;i < iv.size();i++) { if (iv[i]->view_widget == vw) return iv[i]; } return NULL; } void gtk_wnd::RealizeHandler(GtkWidget * widget, gpointer) { //cout << "DEBUG : gtk_wnd::RealizeHandler()" << endl; //////////////////////////////////////////////////////////// // realize signal will occur when the widget is created. gtk_wnd * w = iv_Find(widget); if (w == NULL) cout << "DEBUG : gtk_wnd::RealizeHandler() : iv_Find() failed!" << endl; else { w->SetRealized(); // here it would be natural to do the things like these: // SetCurrent() + GetClient()->InitGL() + RequestUpdate(false). // the problem is that usually GetClient() will return NULL at // this stage ; if this is the case, then do nothing here and // handle the problem elsewhere (see base_wcl::LinkWnd()). // this is really a timing issue since we do not know at which // point the widget is going to be realized... if (w->GetClient() != NULL && !w->GetInitialized()) { // usually this stuff is skipped... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ w->SetInitialized(); // w->SetCurrent(); no begin/end here... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GdkGLContext * glcontext = gtk_widget_get_gl_context(w->view_widget); GdkGLDrawable * gldrawable = gtk_widget_get_gl_drawable(w->view_widget); if (!gdk_gl_drawable_make_current(gldrawable, glcontext)) { g_print("DEBUG : gtk_wnd::RealizeHandler() : gdk_gl_drawable_make_current() failed.\n"); } else { gdk_gl_drawable_gl_begin(gldrawable, glcontext); w->GetClient()->InitGL(); gdk_gl_drawable_gl_end(gldrawable); } w->RequestUpdate(false); } } // no return value for this event?!?!?! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } gint gtk_wnd::ExposeHandler(GtkWidget * widget, GdkEventExpose * event) { //cout << "DEBUG : gtk_wnd::ExposeHandler()" << endl; //////////////////////////////////////////////////////////// // expose_event will occur when the window should be re-drawn. // IS SOMETHING WRONG IN HERE??? see the comments on configure-handler... // IS SOMETHING WRONG IN HERE??? see the comments on configure-handler... // IS SOMETHING WRONG IN HERE??? see the comments on configure-handler... if (event->count > 0) return TRUE; // draw only last expose. gtk_wnd * w = iv_Find(widget); if (w == NULL) cout << "DEBUG : gtk_wnd::ButtonHandler() : iv_Find() failed!" << endl; else { if (!w->GetRealized()) { assertion_failed(__FILE__, __LINE__, "NOT REALIZED!"); } if (!w->GetInitialized()) { assertion_failed(__FILE__, __LINE__, "NOT INITIALIZED!"); } base_wcl * wcl = w->GetClient(); if (wcl != NULL) { GdkGLContext * glcontext = gtk_widget_get_gl_context(w->view_widget); GdkGLDrawable * gldrawable = gtk_widget_get_gl_drawable(w->view_widget); if (!gdk_gl_drawable_make_current(gldrawable, glcontext)) { g_print("DEBUG : gtk_wnd::ExposeHandler() : gdk_gl_drawable_make_current() failed.\n"); } else { gdk_gl_drawable_gl_begin(gldrawable, glcontext); wcl->UpdateWnd(); if (gdk_gl_drawable_is_double_buffered(gldrawable)) { gdk_gl_drawable_swap_buffers(gldrawable); } else { glFlush(); } gdk_gl_drawable_gl_end(gldrawable); } } } // return TRUE; // which one this should be??? return FALSE; // which one this should be??? scribble.c example used this. } int button_event_lost_counter = 0; gint gtk_wnd::ButtonHandler(GtkWidget * widget, GdkEventButton * eb) { //cout << "DEBUG : gtk_wnd::ButtonHandler()" << endl; //////////////////////////////////////////////////////////// // button_press/release_event(s) are triggered by mouse events. gtk_wnd * w = iv_Find(widget); if (w == NULL) cout << "DEBUG : gtk_wnd::ButtonHandler() : iv_Find() failed!" << endl; else { if (!w->GetRealized()) { assertion_failed(__FILE__, __LINE__, "NOT REALIZED!"); } mouseinfo::mi_button tmpb; i32s tmps1; switch (eb->button) { case 1: tmpb = mouseinfo::bLeft; tmps1 = GDK_BUTTON1_MASK; break; case 3: tmpb = mouseinfo::bRight; tmps1 = GDK_BUTTON3_MASK; break; default: tmpb = mouseinfo::bMiddle; tmps1 = GDK_BUTTON2_MASK; } mouseinfo::mi_state tmps2 = (eb->state & tmps1) ? mouseinfo::sUp : mouseinfo::sDown; if (tmps2 == mouseinfo::sDown) { if (mouseinfo::button == mouseinfo::bNone) { if (tmpb == mouseinfo::bRight) { if (project::background_job_running) return TRUE; // the popup menu is created here. pointer to the gtk_drawing_area // widget is given as "user_data", and it is also passed to the popup // hander callback function (instead of the original value). if (w->popupmenu != NULL) { gtk_menu_popup(GTK_MENU(w->popupmenu), NULL, NULL, NULL, NULL, eb->button, eb->time); } return TRUE; } mouseinfo::button = tmpb; mouseinfo::shift_down = (eb->state & GDK_SHIFT_MASK) ? true : false; mouseinfo::ctrl_down = (eb->state & GDK_CONTROL_MASK) ? true : false; mouseinfo::state = mouseinfo::sDown; // cout << "DEBUG : button_event_D " << mouseinfo::button << " " << mouseinfo::state << endl; w->GetClient()->ButtonEvent((i32s) eb->x, (i32s) eb->y); // this is for exceptions, see below... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ button_event_lost_counter = 0; } } else { if (mouseinfo::button == mouseinfo::bLeft && tmpb != mouseinfo::bLeft) return TRUE; if (mouseinfo::button == mouseinfo::bMiddle && tmpb != mouseinfo::bMiddle) return TRUE; if (mouseinfo::button == mouseinfo::bRight && tmpb != mouseinfo::bRight) return TRUE; mouseinfo::state = mouseinfo::sUp; // cout << "DEBUG : button_event_U " << mouseinfo::button << " " << mouseinfo::state << endl; w->GetClient()->ButtonEvent((i32s) eb->x, (i32s) eb->y); mouseinfo::button = mouseinfo::bNone; } } return TRUE; } gint gtk_wnd::MotionNotifyHandler(GtkWidget * widget, GdkEventMotion * event) { //cout << "DEBUG : gtk_wnd::MotionNotifyHandler()" << endl; //////////////////////////////////////////////////////////// // mouse movements will trigger the events here... int x; int y; GdkModifierType mbstate; if (event->is_hint) gdk_window_get_pointer(event->window, & x, & y, & mbstate); else { x = (int) event->x; y = (int) event->y; mbstate = (GdkModifierType) event->state; } // here it is good to check if we have lost a "mouse button up" message. // it can happen if a user moves the mouse outside to the graphics window, // and then changes the mousebutton state. // if we think that a mouse button should be down, but GTK+ says it's not, // then immediately send a "mouse button down" message... bool no_buttons_down = !(mbstate & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)); if (no_buttons_down && mouseinfo::button != mouseinfo::bNone) { button_event_lost_counter++; if (button_event_lost_counter > 1) { gtk_wnd * w = iv_Find(widget); if (w == NULL) cout << "DEBUG : gtk_wnd::MotionNotifyHandler() : iv_Find() failed!" << endl; else { cout << "DEBUG : WARNING ; a mouse-button-up event was lost!" << endl; mouseinfo::state = mouseinfo::sUp; // cout << "DEBUG : button_event_U " << mouseinfo::button << " " << mouseinfo::state << endl; w->GetClient()->ButtonEvent((i32s) x, (i32s) y); mouseinfo::button = mouseinfo::bNone; } } } // the normal operation starts here... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (mouseinfo::button != mouseinfo::bNone) { gtk_wnd * w = iv_Find(widget); if (w == NULL) cout << "DEBUG : gtk_wnd::MotionNotifyHandler() : iv_Find() failed!" << endl; else { // cout << "DEBUG : motion_event " << mouseinfo::button << " " << mouseinfo::state << endl; w->GetClient()->MotionEvent(x, y); } } return TRUE; } gint gtk_wnd::ConfigureHandler(GtkWidget * widget, GdkEventConfigure *) { //cout << "DEBUG : gtk_wnd::ConfigureHandler()" << endl; //////////////////////////////////////////////////////////// // configure_event will occur at each window size change, // and when the window is initially created. gtk_wnd * w = iv_Find(widget); if (w != NULL) { w->SetWidth(widget->allocation.width); w->SetHeight(widget->allocation.height); } else cout << "DEBUG : iv_Find() failed at gtk_wnd::ConfigureHandler()." << endl; // the screen is NOT always properly updated after a configure-event. // sometimes it gets rendered 100% fine, but sometimes only partially // or sometimes not at all (leaving a blank screen). it is possible to // do w->RequestUpdate(false); here but it does not affect the result... return TRUE; } gint gtk_wnd::DetachedDeleteHandler(GtkWidget *, GdkEvent *) { // when we create detached view windows as GTK_WINDOW_TOPLEVEL, the // window will have the "close" button at titlebar. now if the user // presses the "close" button, the window-closing sequence will start. // we will grab the resulting delete_event here and return TRUE, that // will deny the user's request to close the window. the user should // use the stardard popup-way of closing the window... return TRUE; } GtkWidget * gtk_wnd::GetViewWidget(void) { return view_widget; } bool gtk_wnd::IsDetached(void) { return (detached != NULL); } void gtk_wnd::RequestUpdate(bool directly) { if (directly) { gdk_window_invalidate_rect(view_widget->window, & view_widget->allocation, FALSE); gdk_window_process_updates(view_widget->window, FALSE); } else { // this is the original ; replaced 20061006 TH // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // gtk_widget_queue_draw(view_widget); gdk_window_invalidate_rect(view_widget->window, & view_widget->allocation, FALSE); } } void gtk_wnd::RequestResize(int, int) { cout << "DEBUG : gtk_wnd::RequestResize() not yet implemented!" << endl; } bool gtk_wnd::SetCurrent(void) { GdkGLContext * glcontext = gtk_widget_get_gl_context(view_widget); GdkGLDrawable * gldrawable = gtk_widget_get_gl_drawable(view_widget); if (!gdk_gl_drawable_make_current(gldrawable, glcontext)) { g_print("DEBUG : gtk_wnd::SetCurrent() : gdk_gl_drawable_make_current() failed.\n"); return false; } else { return true; } } void gtk_wnd::TitleChanged(void) { if (GetClient() == NULL) { assertion_failed(__FILE__, __LINE__, "wnd is unlinked."); } if (detached != NULL) { gtk_window_set_title(GTK_WINDOW(detached), GetClient()->GetTitle()); } else { //GtkWidget * oldlabel = label_widget; // not needed??? 20061115 TH label_widget = gtk_label_new(GetClient()->GetTitle()); gtk_widget_show(label_widget); gtk_app::GetAppX()->SetTabTitleNB(view_widget, label_widget); //if (oldlabel != NULL) gtk_widget_destroy(oldlabel); // not needed??? 20061115 TH } } /*################################################################################################*/ // eof ghemical-3.0.0/src/ogl_plane.h0000644000175000017500000001056411634160016013110 00000000000000// OGL_PLANE.H : a classes for drawing colored 3D-planes and doing volume rendering. // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef OGL_PLANE_H #define OGL_PLANE_H //#include "ghemicalconfig2.h" struct ogl_cp_param; class ogl_color_plane; class ogl_color_plane_object; class ogl_volume_rendering_object; /*################################################################################################*/ #include #include #include #include "project.h" /*################################################################################################*/ struct ogl_cp_param { project * prj; const ogl_obj_loc_data * data; // for color_plane only!!! iGLu my_glname; // for color_plane only!!! bool transparent; bool automatic_cv2; i32s np; fGL dim; engine * ref; ValueFunction * vf; ColorFunction * cf; fGL cvalue1; fGL cvalue2; fGL alpha; }; class ogl_color_plane { private: project * prj; const ogl_obj_loc_data * data; iGLu my_glname; bool transparent; bool automatic_cv2; i32s np; fGL dim; engine * ref; ValueFunction * GetValue; ColorFunction * GetColor; fGL cvalue1; fGL cvalue2; fGL alpha; /*################*/ /*################*/ fGL * dist; fGL * color4; fGL * point3; oglv3d xdir; public: ogl_color_plane(ogl_cp_param &); ~ogl_color_plane(void); void Update(void); void Render(void); protected: void SetDimension(fGL); void GetCRD(i32s *, fGL *); }; /*################################################################################################*/ class ogl_color_plane_object : public ogl_smart_object { private: ogl_color_plane * cp; engine * copy_of_ref; char * object_name; public: ogl_color_plane_object(const ogl_object_location &, ogl_cp_param &, const char *); ~ogl_color_plane_object(void); engine * GetRef(void) { return copy_of_ref; } const char * GetObjectName(void) { return object_name; } // virtual void CameraEvent(const ogl_camera &) { } // virtual bool BeginTransformation(void) { return false; } // virtual bool EndTransformation(void) { return false; } // virtual void OrbitObject(const fGL *, const ogl_camera &); // virtual void RotateObject(const fGL *, const ogl_camera &); // virtual void TranslateObject(const fGL *, const ogl_obj_loc_data *); // virtual void Render(void) { cp->Render(); } // virtual void Update(void) { cp->Update(); } }; /*################################################################################################*/ class ogl_volume_rendering_object : public ogl_smart_object { private: fGL thickness; vector cp_vector; vector data_vector; void * copy_of_ref; char * object_name; public: ogl_volume_rendering_object(const ogl_object_location &, ogl_cp_param &, i32s, fGL, ogl_camera &, const char *); ~ogl_volume_rendering_object(void); void * GetRef(void) { return copy_of_ref; } const char * GetObjectName(void) { return object_name; } // virtual void CameraEvent(const ogl_camera &); // virtual bool BeginTransformation(void) { return false; } // virtual bool EndTransformation(void) { return false; } // virtual void OrbitObject(const fGL *, const ogl_camera &); // virtual void RotateObject(const fGL *, const ogl_camera &); // virtual void TranslateObject(const fGL *, const ogl_obj_loc_data *); // virtual void Render(void); // virtual void Update(void); }; /*################################################################################################*/ #endif // OGL_PLANE_H // eof ghemical-3.0.0/src/fileio.cpp0000644000175000017500000007457511634160016012766 00000000000000// FILEIO.CPP // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "project.h" #include #include #include #include #include #include #include #include #include using namespace std; //#define VERBOSE // un-comment this to enable debug-messages... static char my_num_locale[32] = "C"; // the locale string returned by setlocale() are stored here... /*################################################################################################*/ bool ReadGPR_OLD(project & prj, istream & file, bool, bool) { static const char message[] = "Hmmm. It seems that we are trying to read a VERY OLD version of this file.\nIt's not possible to verify the type and version of the file, so this\noperation may fail. Are you sure you wish to try (Y/N) ??? "; base_app * app = base_app::GetAppB(); bool result = app->Question(message); if (!result) return false; vector tmp1; i32s tmp2[2]; char tmp3; fGL tmp4[3]; char buffer[1024]; #ifdef VERBOSE cout << "model::ReadStream_OLD() : starting file input." << endl; #endif // VERBOSE while (file.peek() != 'E') { file >> tmp2[0] >> tmp2[1]; file >> tmp4[0] >> tmp4[1] >> tmp4[2] >> tmp2[0]; file.get(); element el = element(tmp2[1]); atom newatom(el, tmp4, prj.GetCRDSetCount()); prj.AddAtom_lg(newatom); tmp1.push_back(& prj.GetLastAtom()); for (i32s n1 = 0;n1 < tmp2[0];n1++) { file >> tmp2[1] >> tmp3; if (tmp2[1] < (i32s) tmp1.size()) { bond newbond(tmp1[tmp2[1]], tmp1[tmp1.size() - 1], bondtype(tmp3)); prj.AddBond(newbond); } } file.getline(buffer, sizeof(buffer)); } return true; } bool ReadGPR_v100(project & prj, istream & file, bool selected, bool skipheader) { char buffer[1024]; if (!skipheader) { // first we have to identify the file version, and then call the matching function, // if necessary. the very first file format did not use the "!Section" idea, so // we must skip the test if no such traces are seen... int version; if (file.peek() != '!') version = -1; else { // now we expect to see "!Header" section. // next we will check the file type and version information... file >> buffer; // read "!Header". file >> buffer; // read the file type. file >> version; // read the version number; file.getline(buffer, sizeof(buffer)); } // now look at the version number, and pick a correct function if needed. /* if (version < 100) return ReadGPR_OLD(prj, file, selected, true); else if (version > 100) { static const char message[] = "Ooops. It seems that we are trying to read a FUTURE version of this file.\nIt's not sure if we can handle that. Are you sure you wish to try (Y/N) ??? "; bool result = prj.Question(message); if (!result) return false; } */ } // the "!Header" section is now processed, // and the actual file input begins!!! #ifdef VERBOSE cout << "model::ReadStream() : starting file input." << endl; #endif // VERBOSE i32u crd_set_counter = 0; vector ar_vector; // now we just read the sections, until we hit into "!End"-section and leave the loop... while (true) { file >> buffer; // read the section string. if (!strcmp(buffer, "!End")) break; // handle "!End" section. else if (!strcmp(buffer, "!Info")) // handle "!Info" section. { int n1; file >> n1; int n2 = n1 - prj.GetCRDSetCount(); if (n2 > 0) { i32u n3 = prj.GetCRDSetCount(); prj.PushCRDSets((i32u) n2); for (i32u n4 = n3;n4 < prj.GetCRDSetCount();n4++) prj.SetCRDSetVisible(n4, true); } #ifdef VERBOSE cout << "handled \"!Info\" section, added " << n2 << " coordinate sets." << endl; #endif // VERBOSE file.getline(buffer, sizeof(buffer)); // TODO : read coordinate set descriptions (if there are some)... // TODO : read coordinate set descriptions (if there are some)... // TODO : read coordinate set descriptions (if there are some)... } else if (!strcmp(buffer, "!Atoms")) // handle "!Atoms" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Atoms\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number i32s n2; file >> n2; // atomic number #ifdef VERBOSE if (n1 != ar_vector.size()) cout << "WARNING : bad atom id numbers!!!" << endl; #endif // VERBOSE element tmp_element(n2); atom newatom(tmp_element, NULL, prj.GetCRDSetCount()); if (selected) newatom.flags |= ATOMFLAG_USER_SELECTED; prj.AddAtom_lg(newatom); ar_vector.push_back(& prj.GetLastAtom()); file.getline(buffer, sizeof(buffer)); } } else if (!strcmp(buffer, "!Bonds")) // handle "!Bonds" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Bonds\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u id1; file >> id1; // 1st id number i32u id2; file >> id2; // 2nd id number char bt; file >> bt; // bond type #ifdef VERBOSE if (id1 >= ar_vector.size()) cout << "WARNING : bad atom id numbers!!!" << endl; if (id2 >= ar_vector.size()) cout << "WARNING : bad atom id numbers!!!" << endl; #endif // VERBOSE bondtype tmp_bondtype(bt); bond newbond(ar_vector[id1], ar_vector[id2], tmp_bondtype); prj.AddBond(newbond); file.getline(buffer, sizeof(buffer)); } } else if (!strcmp(buffer, "!Coord")) // handle "!Coord" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Coord\" section..." << endl; if (crd_set_counter >= prj.GetCRDSetCount()) cout << "ERROR : too many crd-sets!!!" << endl; #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number fGL xcrd; file >> xcrd; // x-coordinate fGL ycrd; file >> ycrd; // y-coordinate fGL zcrd; file >> zcrd; // z-coordinate #ifdef VERBOSE if (n1 >= ar_vector.size()) cout << "ERROR : bad atom id numbers!!!" << endl; #endif // VERBOSE atom * ar = ar_vector[n1]; ar->SetCRD(crd_set_counter, xcrd, ycrd, zcrd); file.getline(buffer, sizeof(buffer)); } crd_set_counter++; } else if (!strcmp(buffer, "!Charges")) // handle "!Charges" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Charges\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number f64 n2; file >> n2; // charge #ifdef VERBOSE if (n1 >= ar_vector.size()) cout << "WARNING : bad atom id numbers!!!" << endl; #endif // VERBOSE atom * ar = ar_vector[n1]; ar->charge = n2; file.getline(buffer, sizeof(buffer)); } } else // handle an unknown section... { file.getline(buffer, sizeof(buffer)); while (file.peek() != '!') { file.getline(buffer, sizeof(buffer)); } } } return true; } bool ReadGPR_v110(project & prj, istream & file, bool selected, bool skipheader) { char buffer[1024]; if (!skipheader) { // first we have to identify the file version, and then call the matching function, // if necessary. the very first file format did not use the "!Section" idea, so // we must skip the test if no such traces are seen... int version; if (file.peek() != '!') version = -1; else { // now we expect to see "!Header" section. // next we will check the file type and version information... file >> buffer; // read "!Header". file >> buffer; // read the file type. file >> version; // read the version number; file.getline(buffer, sizeof(buffer)); } // now look at the version number, and pick a correct function if needed. /* if (version < 110 && version >= 100) return ReadGPR_v100(prj, file, selected, true); else if (version < 100) return ReadGPR_OLD(prj, file, selected, true); else if (version > current_version_number) { static const char message[] = "Ooops. It seems that we are trying to read a FUTURE version of this file.\nIt's not sure if we can handle that. Are you sure you wish to try (Y/N) ??? "; bool result = prj.Question(message); if (!result) return false; } */ } // the "!Header" section is now processed, // and the actual file input begins!!! #ifdef VERBOSE cout << "model::ReadStream() : starting file input." << endl; #endif // VERBOSE prj.ReplaceCurrentSetup(new setup1_mm(& prj)); char su_cn[16] = "unknown"; // the setup class classname. i32s engid = NOT_DEFINED; // the engine class ID. i32u crd_set_counter = 0; vector ar_vector; vector br_vector; // now we just read the sections, until we hit into "!End"-section and leave the loop... while (true) { file >> buffer; // read the section string. if (!strcmp(buffer, "!End")) break; // handle "!End" section. else if (!strcmp(buffer, "!Info")) // handle "!Info" section. { i32s n1; file >> n1; // number of crd-sets file >> su_cn; // the setup class classname. file >> engid; // the engine class ID. int n2 = n1 - prj.GetCRDSetCount(); if (n2 > 0) { i32u n3 = prj.GetCRDSetCount(); prj.PushCRDSets((i32u) n2); for (i32u n4 = n3;n4 < prj.GetCRDSetCount();n4++) prj.SetCRDSetVisible(n4, true); } #ifdef VERBOSE cout << "handled \"!Info\" section, added " << n2 << " coordinate sets." << endl; cout << "classname = " << su_cn << " engid = " << engid << " - changing setup to these later." << endl; #endif // VERBOSE file.getline(buffer, sizeof(buffer)); // TODO : read coordinate set descriptions (if there are some)... // TODO : read coordinate set descriptions (if there are some)... // TODO : read coordinate set descriptions (if there are some)... } else if (!strcmp(buffer, "!Atoms")) // handle "!Atoms" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Atoms\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number i32s n2; file >> n2; // atomic number i32u n3; file >> n3; // the flags if (n1 != ar_vector.size()) cout << "WARNING : atom id number mismatch!!!" << endl; element tmp_element(n2); atom newatom(tmp_element, NULL, prj.GetCRDSetCount()); newatom.flags = n3; if (selected) newatom.flags |= ATOMFLAG_USER_SELECTED; prj.AddAtom_lg(newatom); ar_vector.push_back(& prj.GetLastAtom()); file.getline(buffer, sizeof(buffer)); } } else if (!strcmp(buffer, "!Bonds")) // handle "!Bonds" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Bonds\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u id1; file >> id1; // 1st id number i32u id2; file >> id2; // 2nd id number char bt; file >> bt; // bond type if (id1 >= ar_vector.size()) { cout << "ERROR : invalid atom id number!!!" << endl; exit(EXIT_FAILURE); } if (id2 >= ar_vector.size()) { cout << "ERROR : invalid atom id number!!!" << endl; exit(EXIT_FAILURE); } bondtype tmp_bondtype(bt); bond newbond(ar_vector[id1], ar_vector[id2], tmp_bondtype); prj.AddBond(newbond); br_vector.push_back(& prj.GetLastBond()); file.getline(buffer, sizeof(buffer)); } } else if (!strcmp(buffer, "!Coord")) // handle "!Coord" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Coord\" section..." << endl; if (crd_set_counter >= prj.GetCRDSetCount()) { cout << "ERROR : too many crd-sets!!!" << endl; exit(EXIT_FAILURE); } #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number fGL xcrd; file >> xcrd; // x-coordinate fGL ycrd; file >> ycrd; // y-coordinate fGL zcrd; file >> zcrd; // z-coordinate if (n1 >= ar_vector.size()) { cout << "ERROR : invalid atom id number!!!" << endl; exit(EXIT_FAILURE); } atom * ar = ar_vector[n1]; ar->SetCRD(crd_set_counter, xcrd, ycrd, zcrd); file.getline(buffer, sizeof(buffer)); } crd_set_counter++; } else if (!strcmp(buffer, "!Charges")) // handle "!Charges" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Charges\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number f64 n2; file >> n2; // charge if (n1 >= ar_vector.size()) { cout << "ERROR : invalid atom id number!!!" << endl; exit(EXIT_FAILURE); } atom * ar = ar_vector[n1]; ar->charge = n2; file.getline(buffer, sizeof(buffer)); } } else // handle an unknown section... { file.getline(buffer, sizeof(buffer)); while (file.peek() != '!') { file.getline(buffer, sizeof(buffer)); } } } // change the current_setup and current_eng using the settings from file. // try to find a new setup class; if no success use the setup1_mm as a default. setup * newsu = NULL; if (!newsu && !strcmp(setup1_qm::static_GetClassName(), su_cn)) newsu = new setup1_qm(& prj); if (!newsu && !strcmp(setup1_mm::static_GetClassName(), su_cn)) newsu = new setup1_mm(& prj); //if (!newsu && !strcmp(setup1_sf::static_GetClassName(), su_cn)) newsu = new setup1_sf(& prj, false); if (!newsu && !strcmp(setup2_qm_mm::static_GetClassName(), su_cn)) newsu = new setup2_qm_mm(& prj); if (!newsu) { prj.WarningMessage("did not find a matching setup"); newsu = new setup1_mm(& prj); } prj.ReplaceCurrentSetup(newsu); // now try to set a correct value for current_eng_index i32u index = 0; while (index < prj.GetCurrentSetup()->GetEngineCount()) { i32u id = prj.GetCurrentSetup()->GetEngineIDNumber(index); if (id == (i32u) engid) break; index++; } if (index == prj.GetCurrentSetup()->GetEngineCount()) { prj.WarningMessage("did not find a matching engid"); index = 0; } prj.GetCurrentSetup()->SetCurrEngIndex(index); // ok, we are ready now! return true; } /*################################################################################################*/ bool ReadGPR(project & prj, istream & file, bool selected, bool skipheader) { const int current_version_number = 111; // version number multiplied by 100 -> int. char buffer[1024]; // store the current (numeric) locale into my_num_locale, // and switch into the "C" numeric locale... strcpy(my_num_locale, setlocale(LC_NUMERIC, NULL)); setlocale(LC_NUMERIC, "C"); if (!skipheader) { // first we have to identify the file version, and then call the matching function, // if necessary. the very first file format did not use the "!Section" idea, so // we must skip the test if no such traces are seen... int version; if (file.peek() != '!') version = -1; else { // now we expect to see "!Header" section. // next we will check the file type and version information... file >> buffer; // read "!Header". file >> buffer; // read the file type. file >> version; // read the version number; file.getline(buffer, sizeof(buffer)); } // now look at the version number, and pick a correct function if needed. if (version == 110) { bool result = ReadGPR_v110(prj, file, selected, true); // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); return result; } if (version < 110 && version >= 100) { bool result = ReadGPR_v100(prj, file, selected, true); // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); return result; } else if (version < 100) { bool result = ReadGPR_OLD(prj, file, selected, true); // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); return result; } else if (version > current_version_number) { static const char message[] = "Ooops. It seems that we are trying to read a FUTURE version of this file.\nIt's not sure if we can handle that. Are you sure you wish to try (Y/N) ??? "; base_app * app = base_app::GetAppB(); bool result = app->Question(message); if (!result) { // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); return false; } } } // the "!Header" section is now processed, // and the actual file input begins!!! #ifdef VERBOSE cout << "model::ReadStream() : starting file input." << endl; #endif // VERBOSE prj.ReplaceCurrentSetup(new setup1_mm(& prj)); char su_cn[16] = "unknown"; // the setup class classname. i32s engid = NOT_DEFINED; // the engine class ID. i32u crd_set_counter = 0; vector ar_vector; vector br_vector; // now we just read the sections, until we hit into "!End"-section and leave the loop... while (true) { file >> buffer; // read the section string. if (!strcmp(buffer, "!End")) break; // handle "!End" section. else if (!strcmp(buffer, "!Info")) // handle "!Info" section. { i32s n1; file >> n1; // number of crd-sets file >> su_cn; // the setup class classname. file >> engid; // the engine class ID. int n2 = n1 - prj.GetCRDSetCount(); if (n2 > 0) { i32u n3 = prj.GetCRDSetCount(); prj.PushCRDSets((i32u) n2); for (i32u n4 = n3;n4 < prj.GetCRDSetCount();n4++) prj.SetCRDSetVisible(n4, true); } #ifdef VERBOSE cout << "handled \"!Info\" section, added " << n2 << " coordinate sets." << endl; cout << "classname = " << su_cn << " engid = " << engid << " - changing setup to these later." << endl; #endif // VERBOSE file.getline(buffer, sizeof(buffer)); // TODO : read coordinate set descriptions (if there are some)... // TODO : read coordinate set descriptions (if there are some)... // TODO : read coordinate set descriptions (if there are some)... } else if (!strcmp(buffer, "!Atoms")) // handle "!Atoms" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Atoms\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number i32s n2; file >> n2; // atomic number i32s n3; file >> n3; // formal charge i32u n4; file >> n4; // the flags if (n1 != ar_vector.size()) cout << "WARNING : atom id number mismatch!!!" << endl; element tmp_element(n2); atom newatom(tmp_element, NULL, prj.GetCRDSetCount()); newatom.formal_charge = n3; newatom.flags = (n4 & 0xFF); // skip internal... if (selected) newatom.flags |= ATOMFLAG_USER_SELECTED; prj.AddAtom_lg(newatom); ar_vector.push_back(& prj.GetLastAtom()); file.getline(buffer, sizeof(buffer)); } } else if (!strcmp(buffer, "!Bonds")) // handle "!Bonds" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Bonds\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u id1; file >> id1; // 1st id number i32u id2; file >> id2; // 2nd id number char bt; file >> bt; // bond type if (id1 >= ar_vector.size()) { cout << "ERROR : invalid atom id number!!!" << endl; exit(EXIT_FAILURE); } if (id2 >= ar_vector.size()) { cout << "ERROR : invalid atom id number!!!" << endl; exit(EXIT_FAILURE); } bondtype tmp_bondtype(bt); bond newbond(ar_vector[id1], ar_vector[id2], tmp_bondtype); prj.AddBond(newbond); br_vector.push_back(& prj.GetLastBond()); file.getline(buffer, sizeof(buffer)); } } else if (!strcmp(buffer, "!Coord")) // handle "!Coord" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!Coord\" section..." << endl; if (crd_set_counter >= prj.GetCRDSetCount()) { cout << "ERROR : too many crd-sets!!!" << endl; exit(EXIT_FAILURE); } #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number fGL xcrd; file >> xcrd; // x-coordinate fGL ycrd; file >> ycrd; // y-coordinate fGL zcrd; file >> zcrd; // z-coordinate if (n1 >= ar_vector.size()) { cout << "ERROR : invalid atom id number!!!" << endl; exit(EXIT_FAILURE); } atom * ar = ar_vector[n1]; ar->SetCRD(crd_set_counter, xcrd, ycrd, zcrd); file.getline(buffer, sizeof(buffer)); } crd_set_counter++; } else if (!strcmp(buffer, "!PartialCharges")) // handle "!PartialCharges" section. { file.getline(buffer, sizeof(buffer)); #ifdef VERBOSE cout << "found \"!PartialCharges\" section..." << endl; #endif // VERBOSE while (file.peek() != '!') { i32u n1; file >> n1; // id number f64 n2; file >> n2; // charge if (n1 >= ar_vector.size()) { cout << "ERROR : invalid atom id number!!!" << endl; exit(EXIT_FAILURE); } atom * ar = ar_vector[n1]; ar->charge = n2; file.getline(buffer, sizeof(buffer)); } } else // handle an unknown section... { file.getline(buffer, sizeof(buffer)); while (file.peek() != '!') { file.getline(buffer, sizeof(buffer)); } } } // change the current_setup and current_eng using the settings from file. // try to find a new setup class; if no success use the setup1_mm as a default. setup * newsu = NULL; if (!newsu && !strcmp(setup1_qm::static_GetClassName(), su_cn)) newsu = new setup1_qm(& prj); if (!newsu && !strcmp(setup1_mm::static_GetClassName(), su_cn)) newsu = new setup1_mm(& prj); //if (!newsu && !strcmp(setup1_sf::static_GetClassName(), su_cn)) newsu = new setup1_sf(& prj, false); if (!newsu && !strcmp(setup2_qm_mm::static_GetClassName(), su_cn)) newsu = new setup2_qm_mm(& prj); if (!newsu) { prj.WarningMessage("did not find a matching setup"); newsu = new setup1_mm(& prj); } prj.ReplaceCurrentSetup(newsu); // now try to set a correct value for current_eng_index i32u index = 0; while (index < prj.GetCurrentSetup()->GetEngineCount()) { i32u id = prj.GetCurrentSetup()->GetEngineIDNumber(index); if (id == (i32u) engid) break; index++; } if (index == prj.GetCurrentSetup()->GetEngineCount()) { prj.WarningMessage("did not find a matching engid"); index = 0; } prj.GetCurrentSetup()->SetCurrEngIndex(index); // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); // ok, we are ready now! return true; } /*################################################################################################*/ /*################################################################################################*/ /*################################################################################################*/ void WriteGPR_v100(project & prj, ostream & file) { const int current_version_number = 100; // version number multiplied by 100 -> int. // store the current (numeric) locale into my_num_locale, // and switch into the "C" numeric locale... strcpy(my_num_locale, setlocale(LC_NUMERIC, NULL)); setlocale(LC_NUMERIC, "C"); file << "!Header "; file << prj.GetProjectFileNameExtension() << " "; file << current_version_number << endl; // the "!Header" section is now processed, and the actual file output begins!!! // the "!Header" section is now processed, and the actual file output begins!!! // the "!Header" section is now processed, and the actual file output begins!!! // write "!Info" section. write the number of coordinate sets, // which should match to the number of "!Coord"-sections later in the file. file << "!Info "; file << prj.GetCRDSetCount() << endl; // write "!Atoms" section. write the number of atoms, // which should match to the number of records in this section. file << "!Atoms "; file << prj.GetAtomCount() << endl; prj.UpdateIndex(); // this will update the "index"-records... iter_al it1 = prj.GetAtomsBegin(); while (it1 != prj.GetAtomsEnd()) { file << (* it1).index << " "; file << (* it1).el.GetAtomicNumber() << " "; file << endl; it1++; } // write "!Bonds" section. write the number of bonds, // which should match to the number of records in this section. file << "!Bonds "; file << prj.GetBondCount() << endl; iter_bl it2 = prj.GetBondsBegin(); while (it2 != prj.GetBondsEnd()) { file << (* it2).atmr[0]->index << " "; file << (* it2).atmr[1]->index << " "; file << (* it2).bt.GetSymbol1() << " "; file << endl; it2++; } // write the "!Coord" sections... for (i32u n1 = 0;n1 < prj.GetCRDSetCount();n1++) { file << "!Coord" << endl; it1 = prj.GetAtomsBegin(); while (it1 != prj.GetAtomsEnd()) { const fGL * cdata = (* it1).GetCRD(n1); file << (* it1).index << " "; file << cdata[0] << " "; file << cdata[1] << " "; file << cdata[2] << " "; file << endl; it1++; } } // write the !Charges section. file << "!Charges" << endl; it1 = prj.GetAtomsBegin(); while (it1 != prj.GetAtomsEnd()) { file << (* it1).index << " "; file << (* it1).charge; file << endl; it1++; } // write "!End" section. file << "!End" << endl; // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); } /*################################################################################################*/ // WHAT WE NEED TO ADD WHEN WE CHANGE THE FORMAT NEXT TIME: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // [just add your ideas here] // // need to write the mol/chn/res/atm id numbers into files?!?!?! // see model::UpdateGroups() for more info; most relates to SF models and Identify/Ribbon stuff... void WriteGPR(project & prj, ostream & file) { ////////////////////////////////////////////////////////////////////////// /*prj.Message("\ PLEASE NOTE : This file format is EXPERIMENTAL!\n\n\ This file format is NOT compatible with OpenBabel-1.100.2.\n\ Please use the File/Export to generate OpenBabel-compatible files.");*/ ////////////////////////////////////////////////////////////////////////// const int current_version_number = 111; // version number multiplied by 100 -> int. // store the current (numeric) locale into my_num_locale, // and switch into the "C" numeric locale... strcpy(my_num_locale, setlocale(LC_NUMERIC, NULL)); setlocale(LC_NUMERIC, "C"); // write "!Header" section. this is for file-format definition purposes. file << "!Header "; file << "gpr "; file << current_version_number << endl; // write "!Info" section. write the number of coordinate sets, // which should match to the number of "!Coord"-sections later in the file. // also write the ClassName and current EngineID of the setup object that we use now. // the above only saves the most primitive setup information; need to add !Setup section later??? // the above only saves the most primitive setup information; need to add !Setup section later??? // the above only saves the most primitive setup information; need to add !Setup section later??? file << "!Info "; file << prj.GetCRDSetCount() << " "; file << prj.GetCurrentSetup()->GetClassName_lg() << " "; file << prj.GetCurrentSetup()->GetEngineIDNumber(prj.GetCurrentSetup()->GetCurrEngIndex()) << endl; // these values might change in future versions?!?!?! // write "!Atoms" section. write the number of atoms, // which should match to the number of records in this section. file << "!Atoms "; file << prj.GetAtomCount() << endl; prj.UpdateIndex(); // this will update the "index"-records... iter_al it1 = prj.GetAtomsBegin(); while (it1 != prj.GetAtomsEnd()) { file << (* it1).index << " "; // unsigned ints. file << (* it1).el.GetAtomicNumber() << " "; // signed ints; can be -1 for dummy atoms! file.setf(ios::showpos); file << (* it1).formal_charge << " "; // signed ints; SHOW THE SIGN!!! file.unsetf(ios::showpos); i32u tmpflags = (* it1).flags & 0xFF; file << tmpflags << " "; // unsigned ints; limited on range 0 <-> 255. // what else should we print here ?!?!?!? // what else should we print here ?!?!?!? // what else should we print here ?!?!?!? file << endl; it1++; } // write "!Bonds" section. write the number of bonds, // which should match to the number of records in this section. file << "!Bonds "; file << prj.GetBondCount() << endl; iter_bl it2 = prj.GetBondsBegin(); while (it2 != prj.GetBondsEnd()) { file << (* it2).atmr[0]->index << " "; // unsigned ints. file << (* it2).atmr[1]->index << " "; // unsigned ints. file << (* it2).bt.GetSymbol1() << " "; // single characters. // what else should we print here ?!?!?!? file << endl; it2++; } // write the "!Coord" sections... // TODO : write visible-flag and set descriptions (if there are some), for example: // 0 1 "1st coordinate set is this one, and it's visible" // 1 1 "2nd set looks like this!, and it's also visible" // 2 0 "this 3rd set is not visible" for (i32u n1 = 0;n1 < prj.GetCRDSetCount();n1++) { file << "!Coord" << endl; it1 = prj.GetAtomsBegin(); while (it1 != prj.GetAtomsEnd()) { const fGL * cdata = (* it1).GetCRD(n1); file << (* it1).index << " "; file.setf(ios::showpos); file << setprecision(15) << cdata[0] << " "; file << setprecision(15) << cdata[1] << " "; file << setprecision(15) << cdata[2] << " "; file.unsetf(ios::showpos); file << endl; it1++; } } // write the !PartialCharges section. file << "!PartialCharges" << endl; it1 = prj.GetAtomsBegin(); while (it1 != prj.GetAtomsEnd()) { file << (* it1).index << " "; file.setf(ios::showpos); file << setprecision(15) << (* it1).charge; file.unsetf(ios::showpos); file << endl; it1++; } // write "!End" section. file << "!End" << endl; // change the original locale back... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ setlocale(LC_NUMERIC, my_num_locale); } /*################################################################################################*/ // eof ghemical-3.0.0/src/Makefile.am0000644000175000017500000000311011634160016013020 00000000000000SUBDIRS = res_gtk bin_PROGRAMS = ghemical ##ghemical_LDADD = -lfoo_extra ghemical_SOURCES = \ appdefine.h \ local_i18n.h \ color.h fileio.cpp \ filetrans.h filetrans.cpp \ custom_app.h custom_app.cpp \ custom_camera.h custom_camera.cpp \ custom_lights.h custom_lights.cpp \ project.h project.cpp \ spline.h spline.cpp \ \ pangofont_wcl.h pangofont_wcl.cpp \ \ oglview_wcl.h oglview_wcl.cpp \ \ ac_stor_wcl.h ac_stor_wcl.cpp \ p1dview_wcl.h p1dview_wcl.cpp \ p2dview_wcl.h p2dview_wcl.cpp \ eldview_wcl.h eldview_wcl.cpp \ rcpview_wcl.h rcpview_wcl.cpp \ gpcview_wcl.h gpcview_wcl.cpp \ \ ogl_plane.h ogl_plane.cpp \ ogl_surface.h ogl_surface.cpp \ ogl_ribbon.h ogl_ribbon.cpp \ \ \ \ gtk_simple_dialogs.h gtk_simple_dialogs.cpp \ gtk_glade_dialog.h gtk_glade_dialog.cpp \ gtk_file_export_dialog.h gtk_file_export_dialog.cpp \ gtk_file_import_dialog.h gtk_file_import_dialog.cpp \ gtk_geomopt_dialog.h gtk_geomopt_dialog.cpp \ gtk_moldyn_dialog.h gtk_moldyn_dialog.cpp \ gtk_progress_dialog.h gtk_progress_dialog.cpp \ gtk_setup_dialog.h gtk_setup_dialog.cpp \ gtk_stereo_dialog.h gtk_stereo_dialog.cpp \ gtk_trajview_dialog.h gtk_trajview_dialog.cpp \ \ gtk_wnd.h gtk_wnd.cpp \ gtk_oglview_wnd.h gtk_oglview_wnd.cpp \ gtk_p1dview_wnd.h gtk_p1dview_wnd.cpp \ gtk_p2dview_wnd.h gtk_p2dview_wnd.cpp \ gtk_eldview_wnd.h gtk_eldview_wnd.cpp \ gtk_rcpview_wnd.h gtk_rcpview_wnd.cpp \ gtk_gpcview_wnd.h gtk_gpcview_wnd.cpp \ \ gtk_app.h gtk_app.cpp \ gtk_project.h gtk_project.cpp \ gtk_main.h gtk_main.cpp AM_CPPFLAGS = -DLOCALE_DIR=\""$(datadir)/locale"\" ghemical-3.0.0/src/custom_app.h0000644000175000017500000000766511634160016013332 00000000000000// CUSTOM_APP.H : write a short description here. // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ //#include "config.h" #ifndef CUSTOM_APP_H #define CUSTOM_APP_H class custom_app; class ogl_camera; // liboglappth/ogl_camera.h class color_mode; // libghemical/model.h #include #include "project.h" #include "oglview_wcl.h" #include using namespace std; /*################################################################################################*/ class custom_app : public base_app { public: enum mtool { mtDraw, mtErase, mtSelect, mtZoom, mtClipping, mtTranslateXY, mtTranslateZ, mtOrbitXY, mtOrbitZ, mtRotateXY, mtRotateZ, mtMeasure }; enum select_mode { smAtom, smResidue, smChain, smMolecule }; protected: static project * prj; // SetNewProject() must access this... static mtool current_mouse_tool; static select_mode current_select_mode; // friends... // ^^^^^^^^^^ friend class project; friend class gtk_project; friend class w32_project; friend class w32_tb_button; public: custom_app(void); virtual ~custom_app(void); protected: virtual void SetNewProject(void); public: static custom_app * GetAppC(void); static project * GetPrj(void); static mtool GetCurrentMouseTool(void); static select_mode GetCurrentSelectMode(void); virtual void Message(const char *) = 0; virtual void WarningMessage(const char *) = 0; virtual void ErrorMessage(const char *) = 0; virtual bool Question(const char *) = 0; virtual void PrintToLog(const char *) = 0; // camera/light-related methods (shared with base_app): // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ void AddCamera(ogl_camera *); // virtual bool RemoveCamera(ogl_camera *); // virtual bool AddGlobalLight(ogl_light *); // virtual bool AddLocalLight(ogl_light *, ogl_camera *); // virtual bool RemoveLight(ogl_dummy_object *); // virtual bool SelectLight(const ogl_dummy_object *); // here is the former project_view stuff... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ virtual void UpdateAllWindowTitles(void) = 0; protected: virtual void CameraAdded(custom_camera *) = 0; virtual void CameraRemoved(custom_camera *) = 0; virtual void LightAdded(ogl_light *) = 0; virtual void LightRemoved(ogl_light *) = 0; virtual void GraphicsClientAdded(oglview_wcl *) = 0; virtual void GraphicsClientRemoved(oglview_wcl *) = 0; virtual void PlottingClientAdded(base_wcl *) = 0; virtual void PlottingClientRemoved(base_wcl *) = 0; virtual void ObjectAdded(ogl_smart_object *) = 0; virtual void ObjectRemoved(ogl_smart_object *) = 0; virtual void BuildChainsView() = 0; virtual void ClearChainsView() = 0; virtual void AtomAdded(atom *) = 0; virtual void AtomUpdateItem(atom *) = 0; ///< updates the properties of an existing object. virtual void AtomRemoved(atom *) = 0; virtual void BondAdded(bond *) = 0; virtual void BondUpdateItem(bond *) = 0; ///< updates the properties of an existing object. virtual void BondRemoved(bond *) = 0; }; /*################################################################################################*/ #endif // CUSTOM_APP_H // eof ghemical-3.0.0/src/ogl_plane.cpp0000644000175000017500000002453611634160016013447 00000000000000// OGL_PLANE.CPP // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ogl_plane.h" // config.h is here -> we get ENABLE-macros here... #ifdef WIN32 #include // need to have this before GL stuff... #endif // WIN32 #include #include #include #include using namespace std; #include #include "project.h" #include "appdefine.h" /*################################################################################################*/ ogl_color_plane::ogl_color_plane(ogl_cp_param & p1) { prj = p1.prj; data = p1.data; my_glname = p1.my_glname; transparent = p1.transparent; automatic_cv2 = p1.automatic_cv2; np = p1.np; // now we can allocate memory... dist = new fGL[np]; color4 = new fGL[np * np * 4]; point3 = new fGL[np * np * 3]; // we must do these settings... // we must do these settings... // we must do these settings... ref = p1.ref; GetValue = p1.vf; GetColor = p1.cf; cvalue1 = p1.cvalue1; cvalue2 = p1.cvalue2; alpha = p1.alpha; // ...before trying to do this!!! // ...before trying to do this!!! // ...before trying to do this!!! SetDimension(p1.dim); Update(); // add the primitives, if this is a transparent object... // add the primitives, if this is a transparent object... // add the primitives, if this is a transparent object... base_app * app = base_app::GetAppB(); if (transparent) { for (i32s n1 = 0;n1 < np - 1;n1++) { for (i32s n2 = 0;n2 < np - 1;n2++) { i32s tmp1, tmp2, tmp3; tmp1 = n1 + 0; tmp2 = n2 + 0; tmp3 = tmp1 * np + tmp2; fGL * c1 = & color4[tmp3 * 4]; fGL * p1 = & point3[tmp3 * 3]; tmp1 = n1 + 1; tmp2 = n2 + 0; tmp3 = tmp1 * np + tmp2; fGL * c2 = & color4[tmp3 * 4]; fGL * p2 = & point3[tmp3 * 3]; tmp1 = n1 + 1; tmp2 = n2 + 1; tmp3 = tmp1 * np + tmp2; fGL * c3 = & color4[tmp3 * 4]; fGL * p3 = & point3[tmp3 * 3]; tmp1 = n1 + 0; tmp2 = n2 + 1; tmp3 = tmp1 * np + tmp2; fGL * c4 = & color4[tmp3 * 4]; fGL * p4 = & point3[tmp3 * 3]; tpd_quad_4c * tmp4; tmp4 = new tpd_quad_4c(c1, p1, c2, p2, c3, p3, c4, p4); transparent_primitive * tmp5; tmp5 = new transparent_primitive((void *) this, * tmp4); app->AddTP((void *) this, (* tmp5)); // tmp4, the tpd_quad_4c-object, will be deleted when // prj->RemoveAllTPs() is called for this object... delete tmp5; } } } } ogl_color_plane::~ogl_color_plane(void) { if (transparent) base_app::GetAppB()->RemoveAllTPs((void *) this); delete[] dist; delete[] color4; delete[] point3; } void ogl_color_plane::Update(void) { xdir = data->ydir.vpr(data->zdir); i32s tmp1[2]; // point indices... fGL * tmp2 = new fGL[np * np]; // color values... for (tmp1[0] = 0;tmp1[0] < np;tmp1[0]++) { for (tmp1[1] = 0;tmp1[1] < np;tmp1[1]++) { i32s index = tmp1[0] * np + tmp1[1]; GetCRD(tmp1, & point3[index * 3]); tmp2[tmp1[0] * np + tmp1[1]] = GetValue(ref, & point3[index * 3], NULL); } } if (automatic_cv2) { f64 avrg = 0.0; for (i32s n1 = 0;n1 < np * np;n1++) { avrg += tmp2[n1]; } // AUTO makes only partial correction -> just looks better and one can estimate the "bias". // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cvalue2 = -0.80 * avrg / (f64) (np * np); } for (tmp1[0] = 0;tmp1[0] < np;tmp1[0]++) { for (tmp1[1] = 0;tmp1[1] < np;tmp1[1]++) { i32s index = tmp1[0] * np + tmp1[1]; fGL tmp3 = tmp2[tmp1[0] * np + tmp1[1]] + cvalue2; GetColor((tmp3 / cvalue1), alpha, & color4[index * 4]); } } delete[] tmp2; // update the primitives, if this is a transparent object... // update the primitives, if this is a transparent object... // update the primitives, if this is a transparent object... if (transparent) base_app::GetAppB()->UpdateMPsForAllTPs((void *) this); } void ogl_color_plane::Render(void) { glPushMatrix(); glPushName(GLNAME_OBJECT); glPushName(my_glname); // if this is a transparent object, we will not render the quads here. // instead, the quads get rendered at project::Render(), like all other // transparent primitives. if (!transparent) { glBegin(GL_QUADS); for (i32s n1 = 0;n1 < np - 1;n1++) { for (i32s n2 = 0;n2 < np - 1;n2++) { i32s tmp1, tmp2, tmp3; tmp1 = n1 + 0; tmp2 = n2 + 0; tmp3 = tmp1 * np + tmp2; glColor4fv(& color4[tmp3 * 4]); glVertex3fv(& point3[tmp3 * 3]); tmp1 = n1 + 1; tmp2 = n2 + 0; tmp3 = tmp1 * np + tmp2; glColor4fv(& color4[tmp3 * 4]); glVertex3fv(& point3[tmp3 * 3]); tmp1 = n1 + 1; tmp2 = n2 + 1; tmp3 = tmp1 * np + tmp2; glColor4fv(& color4[tmp3 * 4]); glVertex3fv(& point3[tmp3 * 3]); tmp1 = n1 + 0; tmp2 = n2 + 1; tmp3 = tmp1 * np + tmp2; glColor4fv(& color4[tmp3 * 4]); glVertex3fv(& point3[tmp3 * 3]); } } glEnd(); } SetModelView(data); fGL tmp1 = -0.55 * dim; fGL tmp2 = -0.45 * dim; glBegin(GL_LINES); glColor3f(1.0, 1.0, 1.0); glVertex3f(tmp1, tmp1, 0.0); glColor3f(0.0, 0.0, 1.0); glVertex3f(tmp2, tmp1, 0.0); glColor3f(1.0, 1.0, 1.0); glVertex3f(tmp1, tmp1, 0.0); glColor3f(0.0, 0.0, 1.0); glVertex3f(tmp1, tmp2, 0.0); glColor3f(1.0, 1.0, 1.0); glVertex3f(tmp1, tmp1, 0.0); glColor3f(0.0, 0.0, 1.0); glVertex3f(tmp1, tmp1, 0.1 * dim); glEnd(); glPopName(); glPopName(); glPopMatrix(); } void ogl_color_plane::SetDimension(fGL p1) { dim = p1; fGL tmp1 = np - 1; for (i32s n1 = 0;n1 < np;n1++) { fGL tmp2 = (fGL) n1 / tmp1; dist[n1] = dim * (tmp2 - 0.5); } } void ogl_color_plane::GetCRD(i32s * p1, fGL * p2) { for (i32s n1 = 0;n1 < 3;n1++) { fGL tmp1 = xdir[n1] * dist[p1[0]]; fGL tmp2 = data->ydir[n1] * dist[p1[1]]; p2[n1] = data->crd[n1] + tmp1 + tmp2; } } /*################################################################################################*/ ogl_color_plane_object::ogl_color_plane_object(const ogl_object_location & p1, ogl_cp_param & p2, const char * p3) : ogl_smart_object(p1) { p2.data = GetSafeLD(); p2.my_glname = base_app::GetAppB()->RegisterGLName((ogl_dummy_object *) this); cp = new ogl_color_plane(p2); ostringstream str; str << p3 << "plane" << ends; object_name = new char[strlen(str.str().c_str()) + 1]; strcpy(object_name, str.str().c_str()); copy_of_ref = p2.ref; } ogl_color_plane_object::~ogl_color_plane_object(void) { delete cp; delete[] object_name; // TODO : unregister my_glname??? } void ogl_color_plane_object::OrbitObject(const fGL * p1, const ogl_camera & p2) { ogl_dummy_object::RotateObject(p1, p2); Update(); } void ogl_color_plane_object::RotateObject(const fGL * p1, const ogl_camera & p2) { ogl_dummy_object::OrbitObject(p1, p2); Update(); } void ogl_color_plane_object::TranslateObject(const fGL * p1, const ogl_obj_loc_data * p2) { fGL tmp1[3] = { p1[0], p1[1], p1[2] }; if (p2 == GetSafeLD()) { tmp1[0] = -tmp1[0]; tmp1[2] = -tmp1[2]; } ogl_dummy_object::TranslateObject(tmp1, p2); Update(); } /*################################################################################################*/ ogl_volume_rendering_object::ogl_volume_rendering_object(const ogl_object_location & p1, ogl_cp_param & p2, i32s p3, fGL p4, ogl_camera & p5, const char * p6) : ogl_smart_object(p1) { for (i32s n1 = 0;n1 < p3;n1++) { data_vector.push_back(new ogl_obj_loc_data); p2.data = data_vector.back(); p2.my_glname = base_app::GetAppB()->RegisterGLName((ogl_dummy_object *) this); cp_vector.push_back(new ogl_color_plane(p2)); } thickness = p4; ConnectCamera(p5); ostringstream str; str << p6 << "VR" << ends; object_name = new char[strlen(str.str().c_str()) + 1]; strcpy(object_name, str.str().c_str()); copy_of_ref = p2.ref; CameraEvent(p5); } ogl_volume_rendering_object::~ogl_volume_rendering_object(void) { for (i32u n1 = 0;n1 < cp_vector.size();n1++) { delete cp_vector[n1]; delete data_vector[n1]; // TODO : unregister my_glname??? } delete[] object_name; } void ogl_volume_rendering_object::CameraEvent(const ogl_camera & p1) { oglv3d newz = oglv3d(GetSafeLD()->crd, p1.GetSafeLD()->crd); newz = newz / newz.len(); oglv3d newx = newz.vpr(p1.GetSafeLD()->ydir); newx = newx / newx.len(); oglv3d newy = newx.vpr(newz); newy = newy / newy.len(); GetLD()->zdir = newz; GetLD()->ydir = newy; for (i32u n1 = 0;n1 < cp_vector.size();n1++) { fGL z1 = (fGL) n1 / (fGL) (cp_vector.size() - 1); fGL z2 = 2.0 * (z1 - 0.5) * thickness; oglv3d pv = oglv3d(GetSafeLD()->crd); pv = pv + (GetSafeLD()->zdir * z2); data_vector[n1]->crd[0] = pv.data[0]; data_vector[n1]->crd[1] = pv.data[1]; data_vector[n1]->crd[2] = pv.data[2]; data_vector[n1]->zdir = GetSafeLD()->zdir; data_vector[n1]->ydir = GetSafeLD()->ydir; } Update(); // update the planes!!!!! } void ogl_volume_rendering_object::OrbitObject(const fGL *, const ogl_camera &) { } void ogl_volume_rendering_object::RotateObject(const fGL *, const ogl_camera &) { } void ogl_volume_rendering_object::TranslateObject(const fGL * p1, const ogl_obj_loc_data * p2) { fGL tmp1[3] = { p1[0], p1[1], p1[2] }; if (p2 == GetSafeLD()) { tmp1[0] = -tmp1[0]; tmp1[2] = -tmp1[2]; } ogl_dummy_object::TranslateObject(tmp1, p2); Update(); } void ogl_volume_rendering_object::Render(void) { for (i32u n1 = 0;n1 < cp_vector.size();n1++) { cp_vector[n1]->Render(); } } void ogl_volume_rendering_object::Update(void) { for (i32u n1 = 0;n1 < cp_vector.size();n1++) { cp_vector[n1]->Update(); } } /*################################################################################################*/ // eof ghemical-3.0.0/src/filetrans.h0000644000175000017500000000646211634160016013141 00000000000000// FILETRANS.H : Handle import/export through use of the Babel external lib. // Copyright (C) 2000 Geoffrey Hutchison. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef FILETRANS_H #define FILETRANS_H #include "ghemicalconfig2.h" // ENABLE_OPENBABEL #ifdef ENABLE_OPENBABEL /*################################################################################################*/ #include "project.h" // OpenBabel includes... // OpenBabel includes... // OpenBabel includes... #include #include using namespace OpenBabel; #include #include #include #include using namespace std; /*################################################################################################*/ typedef struct { atom * atmr; OBAtom * oba; } atom_name_tag; typedef struct { string description; OBFormat * format; } format_record; class file_trans { private: vector imports; vector exports; int name_tag_count; atom_name_tag * tagtab; project * prj; OBMol * obm; iter_al itb; iter_al ite; public: file_trans(); virtual ~file_trans(); // these expect to be passed the filename to pick the file format int Import(const char *, istream &, ostream &); int Export(const char *, istream &, ostream &); // these check whether the format picked by the filename are valid bool CanImport(const char *); bool CanExport(const char *); // Get a listing of the number of valid import/export types unsigned int NumImports() { return imports.size(); } unsigned int NumExports() { return exports.size(); } // Get the description associated with this type string GetExportDescription(unsigned int); string GetImportDescription(unsigned int); // These take the unsigned int as a format specifier int Import(const char *, unsigned int, istream &, ostream &); int Export(const char *, unsigned int, istream &, ostream &); // some Babel compatibility methods: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /// This takes a pair of atom list iterators, and copies all atoms/bonds in this range to OBMol. OBMol * Copy(project *, iter_al, iter_al); /// This will copy a molecule (defined by the index) to OBMol. OBMol * CopyMolecule(project *, int); /// This will copy everything in this project to OBMol. OBMol * CopyAll(project *); /// This will syncronize the project and the OBMol. void Synchronize(void); }; /*################################################################################################*/ #endif // ENABLE_OPENBABEL #endif // FILETRANS_H // eof ghemical-3.0.0/src/eldview_wcl.cpp0000644000175000017500000002136111634160016014004 00000000000000// ELDVIEW_WCL.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "eldview_wcl.h" #include "custom_app.h" #include "local_i18n.h" #include #include #include using namespace std; /*################################################################################################*/ eldview_wcl::eldview_wcl(void) : pangofont_wcl(new ogl_camera(ogl_ol_static(), 1.0)) { cam->ortho = true; cam->update_vdim = false; vdim[0] = 0.75; // X-scaling cam->GetLD()->crd[0] = 0.65; // X-centering //const ogl_obj_loc_data * d = cam->GetSafeLD(); //cout << "cam crd = " << d->crd[0] << " " << d->crd[1] << " " << d->crd[2] << endl; //cout << "cam zdir = { " << d->zdir << " }" << endl << "cam ydir = { " << d->ydir << " }" << endl; reset_needed = true; SetCenterAndScale(); } eldview_wcl::~eldview_wcl(void) { // problem : lifetime of the camera object needs to be longer than // lifetime of this object since it is needed at the base class dtor. // solution : ask the base class to do the cleanup work for us... delete_cam_plz = true; } void eldview_wcl::SetCenterAndScale(void) { project * prj = custom_app::GetAppC()->GetPrj(); engine * eng = prj->GetCurrentSetup()->GetCurrentEngine(); setup1_qm * su1 = dynamic_cast(prj->GetCurrentSetup()); bool nonQM = (!su1); if (!eng || nonQM) { cam->GetLD()->crd[1] = 0.0; // center vdim[1] = 1.0; // scale reset_needed = true; // failed... } else { f64 mine = eng->GetOrbitalEnergy(0); f64 maxe = eng->GetOrbitalEnergy(eng->GetOrbitalCount() - 1); // above we assumed that the first orbital has lowest and the last orbital has highest energy... // above we assumed that the first orbital has lowest and the last orbital has highest energy... // above we assumed that the first orbital has lowest and the last orbital has highest energy... cam->GetLD()->crd[1] = (mine + maxe) / 2.0; // center vdim[1] = (maxe - mine) * 0.75; // scale reset_needed = false; // success!!! } } void eldview_wcl::ButtonEvent(int x, int y) { mouseinfo::latest_x = x; mouseinfo::latest_y = y; } void eldview_wcl::MotionEvent(int x, int y) { int dy = mouseinfo::latest_y - y; if (custom_app::GetCurrentMouseTool() == custom_app::mtZoom) { vdim[1] += mouseinfo::dist_sensitivity * vdim[1] * (float) dy / (float) GetWnd()->GetHeight(); GetWnd()->RequestUpdate(false); } if (custom_app::GetCurrentMouseTool() == custom_app::mtTranslateXY) { cam->GetLD()->crd[1] -= 2.0 * vdim[1] * (float) dy / (float) GetWnd()->GetHeight(); GetWnd()->RequestUpdate(false); } mouseinfo::latest_x = x; mouseinfo::latest_y = y; } void eldview_wcl::UpdateWnd(void) { base_wnd * wnd = GetWnd(); if (!wnd || wnd->GetWidth() < 0 || !cam) return; if (reset_needed) SetCenterAndScale(); wnd->SetCurrent(); cam->RenderScene(wnd, false, false); } void eldview_wcl::InitGL(void) { // all classes that inherit pangofont_wcl must call ogl_InitPangoFont()!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ogl_InitPangoFont("courier 12"); } void eldview_wcl::RenderGL(rmode) { base_wnd * wnd = GetWnd(); if (!wnd || wnd->GetWidth() < 0 || !cam) return; const GLfloat label_color[3] = { 1.0, 1.0, 1.0 }; glInitNames(); project * prj = custom_app::GetAppC()->GetPrj(); engine * eng = prj->GetCurrentSetup()->GetCurrentEngine(); setup1_qm * su1 = dynamic_cast(prj->GetCurrentSetup()); bool nonQM = (!su1); if (!eng || nonQM) { reset_needed = true; glColor3f(label_color[0], label_color[1], label_color[2]); GLfloat xpos; GLfloat ypos; const char * txt1 = _("No data available,"); xpos = (wnd->GetWidth() - ogl_GetStringWidth(txt1)) / 2.0; ypos = (wnd->GetHeight() - 24) / 2.0 + 14; ogl_WriteString2D(txt1, xpos, ypos); const char * txt2 = (nonQM ? _("must be a QM model!") : _("please calculate energy!")); xpos = (wnd->GetWidth() - ogl_GetStringWidth(txt2)) / 2.0; ypos = (wnd->GetHeight() - 24) / 2.0 - 14; ogl_WriteString2D(txt2, xpos, ypos); } else { const GLfloat fontsize = 10.0; const GLfloat center = cam->GetLD()->crd[1]; const GLfloat scale = vdim[1]; const GLfloat one_pixel_height = scale / (GLfloat) wnd->GetHeight(); const GLfloat diagram_line_thickness = 2.0; const GLfloat diagram_triangle_height = 45.0; const GLfloat diagram_triangle_width = 0.075; // the functions: GetOrbitalCount(), GetOrbitalEnergy(), need to separate between // alpha and beta electrons. also a simple way to determine occupation (and whether // is alpha/beta) is needed. THIS PLOT IS FOR RHF SYSTEMS ONLY!!!!!!!!!!!!!!!!!!!! // gather the degenerate energy levels (del) into groups... const GLfloat del_tolerance = 0.001; int * del_first = new int[eng->GetOrbitalCount()]; del_first[0] = 0; int dd = 1; while (dd < eng->GetOrbitalCount()) { int ind_first = del_first[dd - 1]; GLfloat ene_first = eng->GetOrbitalEnergy(ind_first); GLfloat ene_current = eng->GetOrbitalEnergy(dd); if (ene_current - ene_first < del_tolerance) { del_first[dd] = ind_first; // belongs to the previous set. } else { del_first[dd] = dd; // is the first of a new set. } dd++; } int * del_count = new int[eng->GetOrbitalCount()]; for (dd = 0;dd < eng->GetOrbitalCount();dd++) del_count[dd] = 0; dd = 0; int first = 0; while (dd < eng->GetOrbitalCount()) // calculate the group sizes... { if (del_first[dd] != del_first[first]) first = dd; del_count[first]++; dd++; } dd = 0; first = 0; while (dd < eng->GetOrbitalCount()) // ...and copy them to all group members. { if (del_first[dd] != del_first[first]) first = dd; if (first != dd) del_count[dd] = del_count[first]; dd++; } // render... for (int n1 = 0;n1 < eng->GetOrbitalCount();n1++) { GLfloat energy = eng->GetOrbitalEnergy(n1); GLfloat width = 1.0 / (fGL) del_count[n1]; GLfloat left = 0.0 + (fGL) (n1 - del_first[n1]) * width; GLfloat right = 0.0 + (fGL) (n1 - del_first[n1] + 1) * width; // draw the line... // draw the line... // draw the line... glColor3f(0.0, 1.0, 0.0); // green glBegin(GL_QUADS); glVertex3f(right - 0.05 * width, energy, 0.1); glVertex3f(left + 0.05 * width, energy, 0.1); glVertex3f(left + 0.05 * width, energy + one_pixel_height * diagram_line_thickness, 0.1); glVertex3f(right - 0.05 * width, energy + one_pixel_height * diagram_line_thickness, 0.1); glEnd(); // draw the electrons... // draw the electrons... // draw the electrons... if (n1 < eng->GetElectronCount() / 2) { glColor3f(1.0, 1.0, 0.0); // yellow glBegin(GL_TRIANGLES); glVertex3f(left + 0.3 * width - diagram_triangle_width, energy - one_pixel_height * diagram_triangle_height / 3.0, 0.0); glVertex3f(left + 0.3 * width, energy + one_pixel_height * diagram_triangle_height / 1.5, 0.0); glVertex3f(left + 0.3 * width + diagram_triangle_width, energy - one_pixel_height * diagram_triangle_height / 3.0, 0.0); glVertex3f(right - 0.3 * width - diagram_triangle_width, energy + one_pixel_height * diagram_triangle_height / 3.0, 0.0); glVertex3f(right - 0.3 * width, energy - one_pixel_height * diagram_triangle_height / 1.5, 0.0); glVertex3f(right - 0.3 * width + diagram_triangle_width, energy + one_pixel_height * diagram_triangle_height / 3.0, 0.0); glEnd(); } // print out the text... // print out the text... // print out the text... glColor3f(label_color[0], label_color[1], label_color[2]); GLfloat xpos; GLfloat ypos; ostringstream str; str << "i = " << n1 << " e = " << energy << ends; xpos = 10.0; ypos = (0.5 + (energy - center) / (scale * 2.0)) * wnd->GetHeight() - fontsize / 2.0; ypos += (fGL) (n1 - del_first[n1]) * fontsize; ogl_WriteString2D(str.str().c_str(), xpos, ypos); } delete[] del_first; delete[] del_count; } } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_app.h0000644000175000017500000002175611634160016012602 00000000000000// GTK_APP.H : a GTK2 application class. // Copyright (C) 2003 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_APP_H #define GTK_APP_H #include "ghemicalconfig2.h" struct pv_views_objs_record; struct pv_chains_record; struct pv_atoms_record; struct pv_bonds_record; #include #include #include "custom_app.h" #include "gtk_project.h" // uncomment this if you wish to have the traditional short toolbar labels. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #define USE_SHORT_TOOLBAR_LABELS /*################################################################################################*/ struct pv_viewsobjs_record { custom_camera * owner; ///< this is non-NULL for child items. ogl_dummy_object * refV1; ///< for camera/light-type objects. base_wcl * refV2; ///< for view/client-type objects. ogl_smart_object * refO; ///< for object-type objects. GtkTreeIter iter; }; struct pv_chains_record { i32s c_r_ind; GtkTreeIter iter; }; struct pv_atoms_record { atom * ref; GtkTreeIter iter; }; struct pv_bonds_record { bond * ref; GtkTreeIter iter; }; class gtk_app : public custom_app { protected: static GtkActionEntry entries1[]; static GtkToggleActionEntry entries2[]; static const char * ui_description; static GtkUIManager * ui_manager; static GtkWidget * main_window; static GtkWidget * main_vbox; static GtkWidget * main_menubar; static GtkWidget * main_toolbar; static GtkWidget * mtb_mtool_draw; static GtkWidget * mtb_mtool_erase; static GtkWidget * mtb_mtool_select; static GtkWidget * mtb_mtool_zoom; static GtkWidget * mtb_mtool_clipping; static GtkWidget * mtb_mtool_translate_xy; static GtkWidget * mtb_mtool_translate_z; static GtkWidget * mtb_mtool_orbit_xy; static GtkWidget * mtb_mtool_orbit_z; static GtkWidget * mtb_mtool_rotate_xy; static GtkWidget * mtb_mtool_rotate_z; static GtkWidget * mtb_mtool_measure; // here is the former gtk_project stuff... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ static GtkWidget * paned_widget; static GtkWidget * notebook_widget; static GtkTextBuffer * txt_buffer; static GtkTextMark * end_mark; static GtkWidget * scroll_widget; static GtkWidget * txt_widget; // here is the former gtk_project_view stuff... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ static GtkActionEntry pv_viewsobjs_entries[]; static const char * pv_viewsobjs_ui_description; static GtkActionEntry pv_chains_entries[]; static const char * pv_chains_ui_description; static GtkActionEntry pv_atoms_entries[]; static const char * pv_atoms_ui_description; static GtkActionEntry pv_bonds_entries[]; static const char * pv_bonds_ui_description; static GtkWidget * pv_view_widget; static GtkWidget * pv_label_widget; list pv_viewsobjs_data; GtkTreeStore * pv_viewsobjs_store; GtkWidget * pv_viewsobjs_widget; GtkWidget * pv_viewsobjs_label; GtkWidget * pv_viewsobjs_menu; GtkWidget * pv_viewsobjs_sw; list pv_chains_data; GtkTreeStore * pv_chains_store; GtkWidget * pv_chains_widget; GtkWidget * pv_chains_label; GtkWidget * pv_chains_menu; GtkWidget * pv_chains_sw; list pv_atoms_data; GtkListStore * pv_atoms_store; GtkWidget * pv_atoms_widget; GtkWidget * pv_atoms_label; GtkWidget * pv_atoms_menu; GtkWidget * pv_atoms_sw; list pv_bonds_data; GtkListStore * pv_bonds_store; GtkWidget * pv_bonds_widget; GtkWidget * pv_bonds_label; GtkWidget * pv_bonds_menu; GtkWidget * pv_bonds_sw; // friends... // ^^^^^^^^^^ friend class gtk_file_open_dialog; private: // the constructor is private so that only a single instance // of the class can be created (by calling GetGtkApp()). gtk_app(void); public: ~gtk_app(void); static gtk_app * GetAppX(void); static gtk_project * GetPrjX(void); void AttachDetachView(base_wcl *); void SetTransientForMainWnd(GtkWindow *); void AddTabToNB(GtkWidget *, GtkWidget *); void RemoveTabFromNB(GtkWidget *); void SetTabTitleNB(GtkWidget *, GtkWidget *); protected: void InitPV(void); void SetNewProject(void); // virtual static gboolean DeleteEventHandler(GtkWidget *, GdkEvent *, gpointer); static void DestroyHandler(GtkWidget *, gpointer); public: static void sMessage(const char *); static void sWarningMessage(const char *); static void sErrorMessage(const char *); static bool sQuestion(const char *); static void sPrintToLog(const char *); void Message(const char *); // virtual void WarningMessage(const char *); // virtual void ErrorMessage(const char *); // virtual bool Question(const char *); // virtual void PrintToLog(const char *); // virtual static GtkUIManager * GetUIManager(void) { return ui_manager; } static GtkWidget * GetMainWindow(void) { return main_window; } void UpdateAllWindowTitles(void); // virtual void CameraAdded(custom_camera *); // virtual void CameraRemoved(custom_camera *); // virtual void LightAdded(ogl_light *); // virtual void LightRemoved(ogl_light *); // virtual void GraphicsClientAdded(oglview_wcl *); // virtual void GraphicsClientRemoved(oglview_wcl *); // virtual void PlottingClientAdded(base_wcl *); // virtual void PlottingClientRemoved(base_wcl *); // virtual void ObjectAdded(ogl_smart_object *); // virtual void ObjectRemoved(ogl_smart_object *); // virtual static gint ViewsObjsPopupHandler(GtkWidget *, GdkEvent *); static void viewsobjs_SetCurrent(GtkWidget *, gpointer); static void viewsobjs_Delete(GtkWidget *, gpointer); void BuildChainsView(void); // virtual void ClearChainsView(void); // virtual static gint ChainsPopupHandler(GtkWidget *, GdkEvent *); static void chains_UpdateView(GtkWidget *, gpointer); static void chains_SelectItem(GtkWidget *, gpointer); void AtomAdded(atom *); // virtual void AtomUpdateItem(atom *); // virtual void AtomRemoved(atom *); // virtual static gint AtomsPopupHandler(GtkWidget *, GdkEvent *); static void atoms_SelectAtom(GtkWidget *, gpointer); static gint atoms_ToggleLocked(GtkWidget *, gchar *, gpointer *); void BondAdded(bond *); // virtual void BondUpdateItem(bond *); // virtual void BondRemoved(bond *); // virtual static gint BondsPopupHandler(GtkWidget *, GdkEvent *); static void bonds_SelectBond(GtkWidget *, gpointer); // the toolbar-button callbacks start here ; the toolbar-button callbacks start here // the toolbar-button callbacks start here ; the toolbar-button callbacks start here // the toolbar-button callbacks start here ; the toolbar-button callbacks start here static void HandleToggleButtons(custom_app::mtool); static void maintb_tool_Draw(gpointer, guint, GtkWidget *); static void maintb_tool_Erase(gpointer, guint, GtkWidget *); static void maintb_tool_Select(gpointer, guint, GtkWidget *); static void maintb_tool_Zoom(gpointer, guint, GtkWidget *); static void maintb_tool_Clipping(gpointer, guint, GtkWidget *); static void maintb_tool_TranslateXY(gpointer, guint, GtkWidget *); static void maintb_tool_TranslateZ(gpointer, guint, GtkWidget *); static void maintb_tool_OrbitXY(gpointer, guint, GtkWidget *); static void maintb_tool_OrbitZ(gpointer, guint, GtkWidget *); static void maintb_tool_RotateXY(gpointer, guint, GtkWidget *); static void maintb_tool_RotateZ(gpointer, guint, GtkWidget *); static void maintb_tool_Measure(gpointer, guint, GtkWidget *); static void maintb_dial_Element(gpointer, guint, GtkWidget *); static void maintb_dial_BondType(gpointer, guint, GtkWidget *); static void maintb_dial_Setup(gpointer, guint, GtkWidget *); // the main-menu callbacks start here ; the main-menu callbacks start here // the main-menu callbacks start here ; the main-menu callbacks start here // the main-menu callbacks start here ; the main-menu callbacks start here static void mainmenu_FileNew(gpointer, guint, GtkWidget *); static void mainmenu_FileOpen(gpointer, guint, GtkWidget *); static void mainmenu_FileSaveAs(gpointer, guint, GtkWidget *); static void mainmenu_FileClose(gpointer, guint, GtkWidget *); static void mainmenu_HelpHelp(gpointer, guint, GtkWidget *); static void mainmenu_HelpAbout(gpointer, guint, GtkWidget *); }; /*################################################################################################*/ #endif // GTK_APP_H // eof ghemical-3.0.0/src/spline.cpp0000644000175000017500000000371111634160016012771 00000000000000// SPLINE.CPP // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "spline.h" /*################################################################################################*/ spline::spline(i32s p1, i32s p2) { order = p1; ncp = p2; nk = order + ncp; knot = new fGL[nk]; weight = new fGL[ncp + 1]; cpcrd = new ref_fGL[ncp]; } spline::~spline(void) { delete[] weight; delete[] cpcrd; delete[] knot; } void spline::Compute(fGL p1, fGL * p2) { p2[0] = p2[1] = p2[2] = 0.0; for (i32s n1 = 0;n1 < ncp + 1;n1++) { if (p1 < knot[n1]) weight[n1] = 0.0; else if (p1 < knot[n1 + 1]) weight[n1] = 1.0; else weight[n1] = 0.0; } for (i32s n1 = 1;n1 < order;n1++) { for (i32s n2 = 0;n2 < ncp;n2++) { fGL tmp1 = (p1 - knot[n2]) / (knot[n2 + n1] - knot[n2]) * weight[n2]; fGL tmp2 = (knot[n2 + n1 + 1] - p1) / (knot[n2 + n1 + 1] - knot[n2 + 1]) * weight[n2 + 1]; weight[n2] = tmp1 + tmp2; } } for (i32s n1 = 0;n1 < ncp;n1++) { p2[0] += cpcrd[n1][0] * weight[n1]; p2[1] += cpcrd[n1][1] * weight[n1]; p2[2] += cpcrd[n1][2] * weight[n1]; } } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_file_import_dialog.cpp0000644000175000017500000001314311634160016016174 00000000000000// GTK_FILE_IMPORT_DIALOG.CPP // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "gtk_file_import_dialog.h" #include "filetrans.h" #include "local_i18n.h" #include #include #include using namespace std; /*################################################################################################*/ gtk_file_import_dialog::gtk_file_import_dialog(gtk_project * p1) : gtk_glade_dialog("glade/gtk_file_import_dialog.glade") { prj = p1; dialog = glade_xml_get_widget(xml, "file_import_dialog"); if (dialog == NULL) { cout << _("file_import_dialog : glade_xml_get_widget() failed!!!") << endl; return; } // initialize the widgets... entry_trajfile = glade_xml_get_widget(xml, "entry_filename"); button_browse = glade_xml_get_widget(xml, "button_browse"); file_selector = NULL; GtkWidget * optmenu = glade_xml_get_widget(xml, "optionmenu1"); GtkWidget * submenu = gtk_menu_new(); GtkWidget * item; item = gtk_menu_item_new_with_label(_("Automatic")); // insert item "automatic"... gtk_widget_show(item); gtk_menu_append(GTK_MENU(submenu), item); #ifdef ENABLE_OPENBABEL file_trans ft; for (unsigned int i = 0;i < ft.NumImports();i++) // insert other items... { item = gtk_menu_item_new_with_label((char *) ft.GetImportDescription(i).c_str()); gtk_widget_show(item); gtk_menu_append(GTK_MENU(submenu), item); } #endif // ENABLE_OPENBABEL gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), submenu); // connect the handlers... glade_xml_signal_connect_data(xml, "on_dialog_destroy", (GtkSignalFunc) handler_Destroy, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_ok_clicked", (GtkSignalFunc) handler_ButtonOK, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_cancel_clicked", (GtkSignalFunc) handler_ButtonCancel, (gpointer) this); glade_xml_signal_connect_data(xml, "on_button_browse_clicked", (GtkSignalFunc) handler_ButtonBrowse, (gpointer) this); gtk_dialog_run(GTK_DIALOG(dialog)); // MODAL gtk_widget_destroy(dialog); // MODAL } gtk_file_import_dialog::~gtk_file_import_dialog(void) { } void gtk_file_import_dialog::handler_Destroy(GtkWidget *, gpointer data) // not really needed... { gtk_file_import_dialog * ref = (gtk_file_import_dialog *) data; //cout << "handler_Destroy() : ref = " << ref << endl; } void gtk_file_import_dialog::handler_ButtonOK(GtkWidget *, gpointer data) { gtk_file_import_dialog * ref = (gtk_file_import_dialog *) data; //cout << "handler_ButtonOK() : ref = " << ref << endl; // do the import... // ^^^^^^^^^^^^^^^^ GtkWidget * optmenu = glade_xml_get_widget(ref->xml, "optionmenu1"); GtkWidget * submenu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); GtkWidget * item = gtk_menu_get_active(GTK_MENU(submenu)); int index = g_list_index(GTK_MENU_SHELL(submenu)->children, item); GtkWidget * entry_fn = glade_xml_get_widget(ref->xml, "entry_filename"); const gchar * filename = gtk_entry_get_text(GTK_ENTRY(entry_fn)); #ifdef ENABLE_OPENBABEL ref->prj->ImportFile(filename, index); ref->prj->ParseProjectFileNameAndPath(filename); custom_app::GetAppC()->UpdateAllWindowTitles(); #endif // ENABLE_OPENBABEL ref->prj->CenterCRDSet(0, true); ref->prj->UpdateAllGraphicsViews(); } void gtk_file_import_dialog::handler_ButtonCancel(GtkWidget *, gpointer data) // not really needed... { gtk_file_import_dialog * ref = (gtk_file_import_dialog *) data; //cout << "handler_ButtonCancel() : ref = " << ref << endl; } void gtk_file_import_dialog::handler_ButtonBrowse(GtkWidget *, gpointer data) { gtk_file_import_dialog * ref = (gtk_file_import_dialog *) data; //cout << "handler_ButtonBrowse() : ref = " << ref << endl; // handle the file selection... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ref->file_selector = gtk_file_selection_new(_("Select a file to import.")); g_signal_connect(GTK_FILE_SELECTION(ref->file_selector)->ok_button, "clicked", G_CALLBACK(handler_FileChooser), data); g_signal_connect_swapped(GTK_FILE_SELECTION(ref->file_selector)->ok_button, "clicked", G_CALLBACK(gtk_widget_destroy), ref->file_selector); g_signal_connect_swapped(GTK_FILE_SELECTION(ref->file_selector)->cancel_button, "clicked", G_CALLBACK(gtk_widget_destroy), ref->file_selector); gtk_dialog_run(GTK_DIALOG(ref->file_selector)); ref->file_selector = NULL; } void gtk_file_import_dialog::handler_FileChooser(GtkWidget *, gpointer data) { gtk_file_import_dialog * ref = (gtk_file_import_dialog *) data; //cout << "handler_FileChooser() : ref = " << ref << endl; // save the selected filename... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const gchar * selected_filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(ref->file_selector)); gtk_entry_set_text(GTK_ENTRY(ref->entry_trajfile), selected_filename); } /*################################################################################################*/ // eof ghemical-3.0.0/src/gtk_setup_dialog.h0000644000175000017500000000315611634160016014473 00000000000000// GTK_SETUP_DIALOG.H : write a short description here... // Copyright (C) 2002 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_SETUP_DIALOG_H #define GTK_SETUP_DIALOG_H //#include "ghemicalconfig2.h" #include "gtk_glade_dialog.h" #include "gtk_project.h" /*################################################################################################*/ class gtk_setup_dialog : public gtk_glade_dialog { protected: gtk_project * prj; GtkWidget * dialog; public: gtk_setup_dialog(gtk_project *); ~gtk_setup_dialog(void); static void handler_Destroy(GtkWidget *, gpointer); static void handler_ButtonOK(GtkWidget *, gpointer); static void handler_ButtonCancel(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_SETUP_DIALOG_H // eof ghemical-3.0.0/src/gtk_gpcview_wnd.h0000644000175000017500000000304011634160016014320 00000000000000// GTK_GPCVIEW_WND.H : a generic protein chain view GTK-window class. // Copyright (C) 2006 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef GTK_GPCVIEW_WND_H #define GTK_GPCVIEW_WND_H #include "gtk_wnd.h" /*################################################################################################*/ class gtk_gpcview_wnd : public gtk_wnd { private: static GtkActionEntry entries[]; static const char * ui_description; public: gtk_gpcview_wnd(bool); ~gtk_gpcview_wnd(void); static void popup_AttachDetach(GtkWidget *, gpointer); static void popup_DeleteView(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_GPCVIEW_WND_H // eof ghemical-3.0.0/src/gtk_project.h0000644000175000017500000002150111634160016013454 00000000000000// GTK_PROJECT.H : classes for GTK2 user interface. // Copyright (C) 1998 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #ifndef GTK_PROJECT_H #define GTK_PROJECT_H //#include "ghemicalconfig2.h" class gtk_project; /*################################################################################################*/ #include #include "project.h" #include "gtk_simple_dialogs.h" #include "gtk_progress_dialog.h" #include #include using namespace std; /*################################################################################################*/ /** This will contain gtk-dependent aspects of the "##project" class. */ class gtk_project : public project { protected: friend class gtk_file_open_dialog; friend class gtk_file_save_dialog; public: gtk_project(void); void DoSafeStart(void); virtual ~gtk_project(void); static oglview_wcl * GetClient(GtkWidget *); #ifdef ENABLE_THREADS void ThreadLock(void); // virtual void ThreadUnlock(void); // virtual #else // ENABLE_THREADS void NoThreadsIterate(void); // virtual #endif // ENABLE_THREADS bool SetProgress(double, double*); // virtual protected: gtk_progress_dialog * pd; public: void CreateProgressDialog(const char *, bool, int, int); // virtual void DestroyProgressDialog(void); // virtual // the GUI threading model is explained here: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // the "main thread" of the program handles gtk_main() loop and callbacks. // in ProcessCommandString() a single "sub-thread" can be started for certain // operations, if the program is compiled with ENABLE_THREADS set. therefore all // operations in the process_job_XXX() methods below must be made thread-safe // in the "gdk_threads" sense. THIS IS STILL EXPERIMENTAL STUFF!!! // the GUI non-threaded operatios is like this: // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // gtk_main_iteration() is called from libghemical level in order to keep the // GUI responding ; so this is something like "windows-95"-multitasking stuff... // but that's OK since this is a fool-proof solution and responsive enough... void start_job_GeomOpt(jobinfo_GeomOpt *); // virtual static gpointer process_job_GeomOpt(gpointer); void start_job_MolDyn(jobinfo_MolDyn *); // virtual static gpointer process_job_MolDyn(gpointer); void start_job_RandomSearch(jobinfo_RandomSearch *); // virtual static gpointer process_job_RandomSearch(gpointer); // gtk-implementations of creation/removal of views. // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ base_wnd * CreateGraphicsWnd(bool); // virtual void DestroyGraphicsWnd(base_wnd *); // virtual base_wnd * CreatePlot1DWnd(bool); // virtual base_wnd * CreatePlot2DWnd(bool); // virtual base_wnd * CreateEnergyLevelDiagramWnd(bool); // virtual base_wnd * CreateReactionCoordinatePlotWnd(bool); // virtual base_wnd * CreateGenericProteinChainWnd(bool); // virtual void DestroyPlottingWnd(base_wnd *); // virtual void Message(const char *); // virtual void WarningMessage(const char *); // virtual void ErrorMessage(const char *); // virtual bool Question(const char *); // virtual void PrintToLog(const char *); // virtual // the popup-menu callbacks start here ; the popup-menu callbacks start here // the popup-menu callbacks start here ; the popup-menu callbacks start here // the popup-menu callbacks start here ; the popup-menu callbacks start here static void popup_FileImport(GtkWidget *, gpointer); static void popup_FileExport(GtkWidget *, gpointer); static void popup_FileExportGraphics(GtkWidget *, gpointer); static void popup_FileExtra1(GtkWidget *, gpointer); static void popup_FileExtra2(GtkWidget *, gpointer); // this is just a stub for a new "extra"-item... static void popup_SelectAll(GtkWidget *, gpointer); static void popup_SelectNone(GtkWidget *, gpointer); static void popup_InvertSelection(GtkWidget *, gpointer); static void popup_HideSelected(GtkWidget *, gpointer); static void popup_ShowSelected(GtkWidget *, gpointer); static void popup_LockSelected(GtkWidget *, gpointer); static void popup_UnlockSelected(GtkWidget *, gpointer); static void popup_DeleteSelected(GtkWidget *, gpointer); static void popup_SelectModeAtom(GtkWidget *, gpointer data); static void popup_SelectModeResidue(GtkWidget *, gpointer data); static void popup_SelectModeChain(GtkWidget *, gpointer data); static void popup_SelectModeMolecule(GtkWidget *, gpointer data); static void popup_ViewsNewELD(GtkWidget *, gpointer); static void popup_ViewsNewSSC(GtkWidget *, gpointer); static void popup_RModeBallStick(GtkWidget *, gpointer); static void popup_RModeVanDerWaals(GtkWidget *, gpointer); static void popup_RModeCylinders(GtkWidget *, gpointer); static void popup_RModeWireframe(GtkWidget *, gpointer); static void popup_RModeNothing(GtkWidget *, gpointer); static void popup_CModeElement(GtkWidget *, gpointer); static void popup_CModeSecStruct(GtkWidget *, gpointer); static void popup_CModeHydPhob(GtkWidget *, gpointer); static void popup_LModeIndex(GtkWidget *, gpointer); static void popup_LModeElement(GtkWidget *, gpointer); static void popup_LModeFCharge(GtkWidget *, gpointer); static void popup_LModePCharge(GtkWidget *, gpointer); static void popup_LModeAtomType(GtkWidget *, gpointer); static void popup_LModeBuilderID(GtkWidget *, gpointer); static void popup_LModeBondType(GtkWidget *, gpointer); static void popup_LModeResidue(GtkWidget *, gpointer); static void popup_LModeSecStruct(GtkWidget *, gpointer); static void popup_LModeNothing(GtkWidget *, gpointer); static void popup_ObjRibbon(GtkWidget *, gpointer); static void popup_ObjEPlane(GtkWidget *, gpointer); static void popup_ObjEVolume(GtkWidget *, gpointer); static void popup_ObjESurface(GtkWidget *, gpointer); static void popup_ObjEVDWSurface(GtkWidget *, gpointer); static void popup_ObjEDPlane(GtkWidget *, gpointer); static void popup_ObjEDSurface(GtkWidget *, gpointer); static void popup_ObjMOPlane(GtkWidget *, gpointer); static void popup_ObjMOVolume(GtkWidget *, gpointer); static void popup_ObjMOSurface(GtkWidget *, gpointer); static void popup_ObjMODPlane(GtkWidget *, gpointer); static void popup_ObjMODVolume(GtkWidget *, gpointer); static void popup_ObjMODSurface(GtkWidget *, gpointer); static void popup_ObjectsDeleteCurrent(GtkWidget *, gpointer); static void popup_CompSetup(GtkWidget *, gpointer); static void popup_CompEnergy(GtkWidget *, gpointer); static void popup_CompGeomOpt(GtkWidget *, gpointer); static void popup_CompMolDyn(GtkWidget *, gpointer); static void popup_CompRandomSearch(GtkWidget *, gpointer); static void popup_CompSystematicSearch(GtkWidget *, gpointer); static void popup_CompMonteCarloSearch(GtkWidget *, gpointer); static void popup_CompTorsionEnergyPlot1D(GtkWidget *, gpointer); static void popup_CompTorsionEnergyPlot2D(GtkWidget *, gpointer); static void popup_CompPopAnaElectrostatic(GtkWidget *, gpointer); static void popup_CompTransitionStateSearch(GtkWidget *, gpointer); static void popup_CompStationaryStateSearch(GtkWidget *, gpointer); static void popup_CompFormula(GtkWidget *, gpointer); static void popup_CompSetFormalCharge(GtkWidget *, gpointer); // under construction... static void popup_CompCreateRS(GtkWidget *, gpointer); // under construction... static void popup_CompCycleRS(GtkWidget *, gpointer); // under construction... static void popup_TrajView(GtkWidget *, gpointer); static void popup_SetOrbital(GtkWidget *, gpointer); static void popup_HAdd(GtkWidget *, gpointer); static void popup_HRemove(GtkWidget *, gpointer); static void popup_SolvateBox(GtkWidget *, gpointer); static void popup_SolvateSphere(GtkWidget *, gpointer); static void popup_BuilderAmino(GtkWidget *, gpointer); static void popup_BuilderNucleic(GtkWidget *, gpointer); static void popup_Center(GtkWidget *, gpointer); static void popup_ClearAll(GtkWidget *, gpointer); static void popup_EnterCommand(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_PROJECT_H // eof ghemical-3.0.0/src/gtk_oglview_wnd.h0000644000175000017500000000553711634160016014345 00000000000000// GTK_OGLVIEW_WND.H : write a short description here... // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "ghemicalconfig2.h" #ifndef GTK_OGLVIEW_WND_H #define GTK_OGLVIEW_WND_H class gtk_oglview_wnd; #include "gtk_wnd.h" #include "custom_camera.h" #include "gtk_stereo_dialog.h" /*################################################################################################*/ class gtk_oglview_wnd : public gtk_wnd { private: static GtkActionEntry entries[]; static const char * ui_description; gtk_stereo_dialog * my_stereo_dialog; guint timer_id; friend class gtk_stereo_dialog; public: gtk_oglview_wnd(bool); ~gtk_oglview_wnd(void); bool IsTimerON(void); // virtual void SetTimerON(int); // virtual void SetTimerOFF(void); // virtual static gboolean TimerHandler(GtkWidget *); // the popup-menu callbacks start here ; the popup-menu callbacks start here // the popup-menu callbacks start here ; the popup-menu callbacks start here // the popup-menu callbacks start here ; the popup-menu callbacks start here static void popup_ProjOrthographic(GtkWidget *, gpointer); // toggle!!! static void popup_ProjPerspective(GtkWidget *, gpointer); // toggle!!! static void popup_ProjSterRedBlue(GtkWidget *, gpointer); // toggle!!! static void popup_ProjSterRelaxed(GtkWidget *, gpointer); // toggle!!! static void popup_RenderQuickUpdate(GtkWidget *, gpointer); // toggle!!! static void popup_ViewsAttachDetach(GtkWidget *, gpointer); static void popup_ViewsNewWnd(GtkWidget *, gpointer); static void popup_ViewsNewCam(GtkWidget *, gpointer); static void popup_ViewsDeleteView(GtkWidget *, gpointer); static void popup_ViewsPushCRDSet(GtkWidget *, gpointer); static void popup_ViewsSuperimpose(GtkWidget *, gpointer); static void popup_LightsNewLight(GtkWidget *, gpointer); static void popup_LightsSwitchLoc(GtkWidget *, gpointer); static void popup_LightsSwitchGlob(GtkWidget *, gpointer); }; /*################################################################################################*/ #endif // GTK_OGLVIEW_WND_H // eof ghemical-3.0.0/src/p1dview_wcl.cpp0000644000175000017500000001224711634160016013727 00000000000000// P1DVIEW_WCL.CPP // Copyright (C) 2005 Tommi Hassinen. // This package is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // This package is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this package; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /*################################################################################################*/ #include "p1dview_wcl.h" //#include "project.h" #include "custom_app.h" #include #include using namespace std; /*################################################################################################*/ p1dview_wcl::p1dview_wcl(const char * s1, const char * sv) : ac_stor_wcl(new ogl_camera(ogl_ol_static(), 1.0)) { cam->ortho = true; cam->update_vdim = false; vdim[0] = (1.0 / 0.90) * 0.5; // X-scaling ; leave 5% margins... vdim[1] = (1.0 / 0.90) * 0.5; // Y-scaling ; leave 5% margins... cam->GetLD()->crd[0] = 0.50; // X-centering cam->GetLD()->crd[1] = 0.50; // Y-centering //const ogl_obj_loc_data * d = cam->GetSafeLD(); //cout << "cam crd = " << d->crd[0] << " " << d->crd[1] << " " << d->crd[2] << endl; //cout << "cam zdir = { " << d->zdir << " }" << endl << "cam ydir = { " << d->ydir << " }" << endl; if (!s1 || !strlen(s1)) assertion_failed(__FILE__, __LINE__, "invalid s1."); else { name1 = new char[strlen(s1) + 1]; strcpy(name1, s1); } if (!sv || !strlen(sv)) assertion_failed(__FILE__, __LINE__, "invalid sv."); else { namev = new char[strlen(sv) + 1]; strcpy(namev, sv); } } p1dview_wcl::~p1dview_wcl(void) { delete[] name1; delete[] namev; // problem : lifetime of the camera object needs to be longer than // lifetime of this object since it is needed at the base class dtor. // solution : ask the base class to do the cleanup work for us... delete_cam_plz = true; } void p1dview_wcl::AddData(double c1, double v) { p1d_data newdata; newdata.ac_i = StoreAC(NULL); newdata.c1 = c1; newdata.v = v; dv.push_back(newdata); } void p1dview_wcl::AddDataWithAC(double c1, double v, engine * eng) { p1d_data newdata; newdata.ac_i = StoreAC(eng); newdata.c1 = c1; newdata.v = v; dv.push_back(newdata); } void p1dview_wcl::AddDataWithAC(double c1, double v, model * mdl, int cset) { p1d_data newdata; newdata.ac_i = StoreAC(mdl, cset); newdata.c1 = c1; newdata.v = v; dv.push_back(newdata); } void p1dview_wcl::Finalize(void) { if (dv.empty()) return; min1 = max1 = dv[0].c1; minv = maxv = dv[0].v; for (i32u n1 = 1;n1 < dv.size();n1++) { if (dv[n1].c1 < min1) min1 = dv[n1].c1; if (dv[n1].c1 > max1) max1 = dv[n1].c1; if (dv[n1].v < minv) minv = dv[n1].v; if (dv[n1].v > maxv) maxv = dv[n1].v; } } void p1dview_wcl::ButtonEvent(int x, int y) { base_wnd * wnd = GetWnd(); project * prj = custom_app::GetAppC()->GetPrj(); if (!(wnd->GetWidth() > 1)) return; fGL sx = 1.10 * (fGL) x / (fGL) wnd->GetWidth() - 0.05; if (sx < 0.0) return; if (sx > 1.0) return; fGL sel1 = sx * (max1 - min1); int index = NOT_DEFINED; fGL mindiff = max1 - min1; for (i32u n1 = 0;n1 < dv.size();n1++) { fGL diff = fabs(sel1 - dv[n1].c1); if (diff < mindiff) { index = n1; mindiff = diff; } } if (index < 0 || index >= (int) dv.size()) return; // ok, we have a valid selection ; show the data!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ostringstream str1; str1 << name1 << " = " << dv[index].c1 << " " << namev << " = " << dv[index].v << endl << ends; prj->PrintToLog(str1.str().c_str()); if (dv[index].ac_i != NOT_DEFINED) ShowAC(dv[index].ac_i); } void p1dview_wcl::MotionEvent(int x, int y) { ButtonEvent(x, y); } void p1dview_wcl::UpdateWnd(void) { base_wnd * wnd = GetWnd(); if (!wnd || wnd->GetWidth() < 0 || !cam) return; wnd->SetCurrent(); cam->RenderScene(wnd, false, false); } void p1dview_wcl::InitGL(void) { // all classes that inherit pangofont_wcl must call ogl_InitPangoFont()!!! // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ogl_InitPangoFont("courier 12"); } void p1dview_wcl::RenderGL(rmode) { if (dv.empty()) return; glInitNames(); // 20061024 ; it seems that the X-coordinate must be inverted... // origo of the coordinate system is at the lower-left corner. for (int n1 = 0;n1 < ((int) dv.size()) - 1;n1++) { glColor3f(0.0, 1.0, 0.0); // green fGL x; fGL y; glBegin(GL_LINES); x = 1.0 - (dv[n1 + 0].c1 - min1) / (max1 - min1); // invX y = (dv[n1 + 0].v - minv) / (maxv - minv); glVertex3f(x, y, 0.1); x = 1.0 - (dv[n1 + 1].c1 - min1) / (max1 - min1); // invX y = (dv[n1 + 1].v - minv) / (maxv - minv); glVertex3f(x, y, 0.1); glEnd(); } } /*################################################################################################*/ // eof ghemical-3.0.0/acinclude.m40000644000175000017500000000501711563552731012410 00000000000000# Michael Banck 12/26/01 # Adapted from the GTK+ work done by Owen Taylor ###################################################################### dnl @synopsis AC_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION]) dnl dnl This macro _AC_DEFINEs VARNAME to the expansion of the DIR dnl variable, taking care of fixing up ${prefix} and such. dnl dnl Note that the 3 argument form is only supported with autoconf 2.13 and dnl later (i.e. only where _AC_DEFINE supports 3 arguments). dnl dnl Examples: dnl dnl AC_DEFINE_DIR(DATADIR, datadir) dnl AC_DEFINE_DIR(PROG_PATH, bindir, [Location of installed binaries]) dnl dnl @version $Id: acinclude.m4 709 2005-06-30 13:04:14Z thassine $ dnl @author Guido Draheim , original by Alexandre Oliva AC_DEFUN([AC_DEFINE_DIR], [ test "x$prefix" = xNONE && prefix="$ac_default_prefix" test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' ac_define_dir=`eval echo [$]$2` ac_define_dir=`eval echo [$]ac_define_dir` ifelse($3, , AC_DEFINE_UNQUOTED($1, "$ac_define_dir"), AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3)) ]) ###################################################################### # # Check to make sure that the build environment is sane. # AC_DEFUN(AM_SANITY_CHECK, [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "[$]*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "[$]*" != "X $srcdir/configure conftestfile" \ && test "[$]*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "[$]2" = conftestfile ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi rm -f conftest* AC_MSG_RESULT(yes)]) ###################################################################### ghemical-3.0.0/Makefile.am0000644000175000017500000000010611634160016012233 00000000000000SUBDIRS = docs examples src po EXTRA_DIST = autogen.sh ghemical.spec ghemical-3.0.0/NEWS0000644000175000017500000000000011563552731010701 00000000000000