freexl-1.0.5/0000775000175000017500000000000013243550237010011 500000000000000freexl-1.0.5/m4/0000775000175000017500000000000013243550236010330 500000000000000freexl-1.0.5/m4/ltversion.m40000664000175000017500000000125613243550204012536 00000000000000# 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. # @configure_input@ # serial 3293 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4]) m4_define([LT_PACKAGE_REVISION], [1.3293]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4' macro_revision='1.3293' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) freexl-1.0.5/m4/ltoptions.m40000664000175000017500000002725613243550204012554 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 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 7 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 ## --------------------------------- ## ## Macros to handle LT_INIT 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], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [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], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## 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])]) freexl-1.0.5/m4/ltsugar.m40000664000175000017500000001042413243550204012167 00000000000000# 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 ]) freexl-1.0.5/m4/libtool.m40000664000175000017500000104515513243550204012164 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 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, 2009, 2010 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 57 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_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl 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 _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) 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 "$cc_temp" | $SED "s%.*/%%; 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 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])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_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])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 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 # 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_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify 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' ]) # _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 ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # 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], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _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 "$][$1" | $SED "$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 "$" | $SED "$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' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$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 \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_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]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false 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) 2010 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. 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) ])# 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 '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS 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)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) 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], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _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" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) 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" != ":" && test "$lt_cv_ld_force_load" = "no"; 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 if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _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=func_echo_all _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([TAGNAME]) # ---------------------------------- # 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. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`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 "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _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 '$LINENO' "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_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR 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 case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _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_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _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:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 "$_lt_linker_boilerplate" | $SED '/^$/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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$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 $LINENO "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 /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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:$LINENO: $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:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 m4_require([_LT_CHECK_SHELL_FEATURES])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 case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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=`func_echo_all "$lib" | $SED '\''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,$cc_basename in yes,*) # gcc 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}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # 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' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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' # or fails outright, so override atomically: install_override_mode=555 ;; 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 AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no 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], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # 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;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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' ;; 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([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _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 m4_require([_LT_PROG_ECHO_BACKSLASH])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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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*) 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_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi 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_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob 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. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi 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:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $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:$LINENO: 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_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-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 case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _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([AC_PROG_AWK])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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #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. */ LT@&t@_DLSYM_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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' 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_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _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)= 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)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $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 ;; 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). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; 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* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _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*) ;; *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* | sunCC*) # 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' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -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' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _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\ F* | *Sun*Fortran*) # 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)='' ;; *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,' ;; 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* | sunf77* | sunf90* | sunf95*) _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_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # 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]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # 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_PATH_MANIFEST_TOOL])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' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 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 # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". 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") || (\$ 2 == "W")) && ([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*) case $cc_basename in cl*) ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ 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 ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = 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.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _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/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] 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 ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; 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=' $pic_flag' 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; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; 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; func_echo_all \"$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* | bgf* | bgxlf* | mpixlf*) # 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 $linker_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 $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) 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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". 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") || (\$ 2 == "W")) && ([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 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([$1]) _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 func_echo_all "${wl}${allow_undefined_flag}"; 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([$1]) _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' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _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. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _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' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _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 `func_echo_all "$deplibs" | $SED '\''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(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; 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 $pic_flag -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 $pic_flag ${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 && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${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 && test "$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 $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${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' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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" && func_echo_all "-set_version $verstring"` -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*) 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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" && func_echo_all "-set_version $verstring"` -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} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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 $pic_flag ${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 $pic_flag ${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_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$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_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_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* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_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([], [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([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _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 ## 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... 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_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], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl 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 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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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_CFLAGS=$CFLAGS 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++"} CFLAGS=$CXXFLAGS 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 $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -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 -v "^Configured with:" | $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([$1]) _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 func_echo_all "${wl}${allow_undefined_flag}"; 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([$1]) _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' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _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*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # 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 _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _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(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _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 ;; esac ;; 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*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; 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; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${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; func_echo_all "$list"' ;; *) 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 $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${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" && func_echo_all "-set_version $verstring"` -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 $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -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; func_echo_all "$list"' _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 | sort | $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 | sort | $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 | sort | $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 | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above 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; func_echo_all \"$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=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # 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; func_echo_all \"$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='func_echo_all' # 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=func_echo_all 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" && func_echo_all "${wl}-set_version $verstring"` -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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) 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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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 -v "^Configured with:" | $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* | sunCC*) # 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='func_echo_all' # 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 $pic_flag -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 $pic_flag -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 -v "^Configured with:" | $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 -v "^Configured with:" | $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(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _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 CFLAGS=$lt_save_CFLAGS 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_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf 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). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _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 AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])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 ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; esac 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 ${prev}${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 fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} 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 prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$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 CFLAGS=$_lt_libdeps_save_CFLAGS # 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* | sunCC*) # 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_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_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS 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" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _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_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS 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 CFLAGS=$lt_save_CFLAGS 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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS 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 _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## 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... 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 CFLAGS=$lt_save_CFLAGS ])# _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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= 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 CFLAGS=$lt_save_CFLAGS ])# _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_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _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%"$_lt_dummy"}, \ = c,a/b,b/c, \ && 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_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # 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}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS freexl-1.0.5/m4/lt~obsolete.m40000664000175000017500000001375613243550204013073 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 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 5 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_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])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) freexl-1.0.5/Makefile.in0000664000175000017500000006776413243550204012014 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 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 = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = Doxyfile freexl.pc CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-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 \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.in \ $(srcdir)/config.h.in $(srcdir)/freexl.pc.in AUTHORS COPYING \ ChangeLog INSTALL NEWS README compile config.guess config.sub \ depcomp install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_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 $(distdir).zip GZIP_ENV = --best DIST_TARGETS = dist-gzip dist-zip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ 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@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ 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@ 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_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 SUBDIRS = headers src tests examples EXTRA_DIST = makefile.vc nmake.opt \ images/piazza.jpg images/piazza.eps mainpage.doxy config-msvc.h AUTOMAKE_OPTIONS = dist-zip foreign pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = freexl.pc MOSTLYCLEANFILES = freexl_cov.info all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign 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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ freexl.pc: $(top_builddir)/config.status $(srcdir)/freexl.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ 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)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # 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. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ 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" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; \ $(am__define_uniq_tagged_files); \ 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-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ 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" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files 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 \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ 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) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_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*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(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/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(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__post_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: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { 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 $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) 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-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA 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: uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-hdr 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-pkgconfigDATA \ 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-am uninstall \ uninstall-am uninstall-pkgconfigDATA .PRECIOUS: Makefile coverage-init: lcov --directory src --capture --initial --output-file freexl_cov.info coverage:: lcov --rc lcov_branch_coverage=1 --directory src --output-file freexl_cov.info --capture genhtml --rc lcov_branch_coverage=1 -o covresults freexl_cov.info # 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: freexl-1.0.5/images/0000775000175000017500000000000013243550236011255 500000000000000freexl-1.0.5/images/piazza.eps0000664000175000017500000544450313243550204013216 00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Creator: (ImageMagick) %%Title: (piazza.eps) %%CreationDate: (2011-09-09T11:58:07+10:00) %%BoundingBox: -0 -0 600 399 %%HiResBoundingBox: 0 0 600 399 %%DocumentData: Clean7Bit %%LanguageLevel: 1 %%Pages: 1 %%EndComments %%BeginDefaults %%EndDefaults %%BeginProlog % % Display a color image. The image is displayed in color on % Postscript viewers or printers that support color, otherwise % it is displayed as grayscale. % /DirectClassPacket { % % Get a DirectClass packet. % % Parameters: % red. % green. % blue. % length: number of pixels minus one of this color (optional). % currentfile color_packet readhexstring pop pop compression 0 eq { /number_pixels 3 def } { currentfile byte readhexstring pop 0 get /number_pixels exch 1 add 3 mul def } ifelse 0 3 number_pixels 1 sub { pixels exch color_packet putinterval } for pixels 0 number_pixels getinterval } bind def /DirectClassImage { % % Display a DirectClass image. % systemdict /colorimage known { columns rows 8 [ columns 0 0 rows neg 0 rows ] { DirectClassPacket } false 3 colorimage } { % % No colorimage operator; convert to grayscale. % columns rows 8 [ columns 0 0 rows neg 0 rows ] { GrayDirectClassPacket } image } ifelse } bind def /GrayDirectClassPacket { % % Get a DirectClass packet; convert to grayscale. % % Parameters: % red % green % blue % length: number of pixels minus one of this color (optional). % currentfile color_packet readhexstring pop pop color_packet 0 get 0.299 mul color_packet 1 get 0.587 mul add color_packet 2 get 0.114 mul add cvi /gray_packet exch def compression 0 eq { /number_pixels 1 def } { currentfile byte readhexstring pop 0 get /number_pixels exch 1 add def } ifelse 0 1 number_pixels 1 sub { pixels exch gray_packet put } for pixels 0 number_pixels getinterval } bind def /GrayPseudoClassPacket { % % Get a PseudoClass packet; convert to grayscale. % % Parameters: % index: index into the colormap. % length: number of pixels minus one of this color (optional). % currentfile byte readhexstring pop 0 get /offset exch 3 mul def /color_packet colormap offset 3 getinterval def color_packet 0 get 0.299 mul color_packet 1 get 0.587 mul add color_packet 2 get 0.114 mul add cvi /gray_packet exch def compression 0 eq { /number_pixels 1 def } { currentfile byte readhexstring pop 0 get /number_pixels exch 1 add def } ifelse 0 1 number_pixels 1 sub { pixels exch gray_packet put } for pixels 0 number_pixels getinterval } bind def /PseudoClassPacket { % % Get a PseudoClass packet. % % Parameters: % index: index into the colormap. % length: number of pixels minus one of this color (optional). % currentfile byte readhexstring pop 0 get /offset exch 3 mul def /color_packet colormap offset 3 getinterval def compression 0 eq { /number_pixels 3 def } { currentfile byte readhexstring pop 0 get /number_pixels exch 1 add 3 mul def } ifelse 0 3 number_pixels 1 sub { pixels exch color_packet putinterval } for pixels 0 number_pixels getinterval } bind def /PseudoClassImage { % % Display a PseudoClass image. % % Parameters: % class: 0-PseudoClass or 1-Grayscale. % currentfile buffer readline pop token pop /class exch def pop class 0 gt { currentfile buffer readline pop token pop /depth exch def pop /grays columns 8 add depth sub depth mul 8 idiv string def columns rows depth [ columns 0 0 rows neg 0 rows ] { currentfile grays readhexstring pop } image } { % % Parameters: % colors: number of colors in the colormap. % colormap: red, green, blue color packets. % currentfile buffer readline pop token pop /colors exch def pop /colors colors 3 mul def /colormap colors string def currentfile colormap readhexstring pop pop systemdict /colorimage known { columns rows 8 [ columns 0 0 rows neg 0 rows ] { PseudoClassPacket } false 3 colorimage } { % % No colorimage operator; convert to grayscale. % columns rows 8 [ columns 0 0 rows neg 0 rows ] { GrayPseudoClassPacket } image } ifelse } ifelse } bind def /DisplayImage { % % Display a DirectClass or PseudoClass image. % % Parameters: % x & y translation. % x & y scale. % label pointsize. % image label. % image columns & rows. % class: 0-DirectClass or 1-PseudoClass. % compression: 0-none or 1-RunlengthEncoded. % hex color packets. % gsave /buffer 512 string def /byte 1 string def /color_packet 3 string def /pixels 768 string def currentfile buffer readline pop token pop /x exch def token pop /y exch def pop x y translate currentfile buffer readline pop token pop /x exch def token pop /y exch def pop currentfile buffer readline pop token pop /pointsize exch def pop /Times-Roman findfont pointsize scalefont setfont x y scale currentfile buffer readline pop token pop /columns exch def token pop /rows exch def pop currentfile buffer readline pop token pop /class exch def pop currentfile buffer readline pop token pop /compression exch def pop class 0 gt { PseudoClassImage } { DirectClassImage } ifelse } bind def %%EndProlog %%Page: 1 1 %%PageBoundingBox: 0 0 600 399 userdict begin DisplayImage 0 0 600 399 12 600 399 0 0 BBD8E0BBD8E0BDD8E1BED9E2C1D9E3C1D9E3C3D9E4C3D9E4C7DBE6C8DCE7CADCE8CBDDE9CEDEEB D0E0EDD3E1EED3E1EED0E0EDD0E0EDD3E1EED4E2EFD6E2EED6E3ECD9E3EDD9E3ECDCE5ECDCE5EC DEE5EBDFE6ECE2E7EBE2E7EBE4E7ECE3E8ECE3E8EEE1E8EEE0E7EDDFE6ECDEE5EBDCE3E9DCE3E9 DBE2E8DEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDDE6EBDBE4EDDAE4EDD9E3ECD8E2EB D7E1EAD7E1EAD6E0E9D6E0E9D2DCE5D2DCE5D1DBE4D0DAE3CFD9E2CFD9E2CED8E1CED8E1CED8E2 CED8E2CBD8E1CAD7E0C9D5E1C8D6E1C7D4E4C5D5E4C5D6E6C5D6E6C4D7E8C3D6E7C1D6E9C0D5E8 C0D5E8BDD6EAB2D1E6AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8 AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ACD0E8ACD0E8ACD0E6ACD0E6ADD0E4 ADD0E4B0CFE3B0CFE3B4D1E3B4D1E3B6D1E2B7D2E3B9D3E2B9D3E2BAD4E3BAD4E3C0DAE9C0DAE9 C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7 BED8E7B9D5E1B9D5E1B9D5E1B9D5E1BAD4E1BAD4E1BCD3E1BCD3E1C2D8E6C3D9E7C7DAE9C8DBEA CBDCECCDDEEED0E0F0CFE1EFCCDEECCBDFEACBDFEACBDFEACBDFEACBDFEACBDFEACBDFEAC9DDE8 C9DDE8C9DDE8C9DDE8C9DDE8C9DDE8C9DDE8C7DDE8C8DEECC7DEECC6DDEBC6DDEBC5DCEAC4DBE9 C3DAE8C3DAE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E9BED5E7BED4E9BED4E9 BED4E9BED4E9BED4E9BED4E9BED4E9C2D8EDC2D8EDC3D9EEC4DAEFC5DBF0C5DBF0C6DCF1C6DDED C5D9E4C6DAE1C8DCE3C9DDE4C9DDE4C8DCE3C6DAE1C5D9E0C5D9E0C5D9E0C6DAE1C7DBE2C8DCE3 C8DCE3C9DDE4CADDE4D0DDE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5 D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D0DDE3D0DDE3CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1 CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1D1E0E3D1E0E3D2E0E3D2E0E3 D2E0E3D2E0E3D5DEE3D5DEE3D6DDE3D6DDE3D8DDE3D8DDE3D9DCE3D9DCE3D9DCE3D8DDE3D5DEE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5 D8DFE5D8DFE5D8DFE5DAE1E7DAE1E7DBE2E8DCE3E9DDE4EADDE4EADEE5EBDDE6EBDCE6EFDAE7EF D9E6EED9E6EED8E5EDD7E4ECD6E3EBD6E3EBD4E1E9D4E1E9D3E0E8D3E0E8D2DFE7D1DEE6D0DDE5 D0DDE6D1DFEAD1DFECD2E0EDD3E1EED4E2EFD4E2EFD5E3F0D5E3F0D5E3F0D5E3F0D4E2EFD4E2EF D3E1EED2E0EDD1DFECCFDFECCDDDEACADCE8C5D8E6C1D4E2BDD3E1BCD3E1BDD4E4BBD7E5B7D2E3 B6D3E3B3D2E4B2D3E4B1D2E5AED1E4ADD0E3ADD0E3B2D0E8B2D0E8B1CFE7B1CFE7B0CEE6AFCDE5 AECCE4AECCE4ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ADCDE2ADCDE2ABCEE2 ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4A8C8DDACCDE0B2CEE3B4CFE0B3CDDCB6CDDBBAD0DDC0D3E1 CDD9E9D0D9EAD3DCEDD5DEEFD7E0F1D7E0F1D7E0F1D7E0F1D6DFF0CCD5E6C2CBDCC1CADBCAD3E4 D4DDEEDAE3F4DDE5F2E6EBF1E7EBEEE7EBEEE7EBEEE7EBEEE7EBEEE7EBEEE7EBEEE9EDF0E9EDF0 E9EDF0E9EDF0E9EDF0E9EDF0E9EDF0E8EDF1E8EDF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E2E9F1E0E7EFDEE5EDDDE4ECDCE3EBDCE3EBDDE4ECDCE5EED9E5F3D6E3F3D3E0F0D1DEEE CFDCECCFDCECCFDCECCFDCECD9E6F6D4E1F1CDDAEAC7D4E4C6D3E3C9D6E6CEDBEBD2DEEADFE4EA E2E6E9E4E8EBE8ECEFEBEFF2EFF3F6F1F5F8F3F7FAF7FBFEF7FBFEF8FCFFF9FDFFF9FDFFFAFEFF FBFFFFFBFFFFFBFBFDFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF8F8F8F8F8F8F7F7F7F6F6F6F5F5F5F5F5F5F4F4F4F4F4F4 F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F3F5F4F5F6FAF3F7FAF3F7FAF3F7FAF3F7FA F3F7FAF3F7FAF3F7FAECF0F3EFF3F6F3F7FAF6FAFDF6FAFDF3F7FAEFF3F6ECF0F3EFF3F6EFF3F6 EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6F1F5F8F1F5F8F0F4F7EFF3F6EEF2F5EEF2F5EDF1F4 EDF1F4EDF1F4EDF1F4ECF0F3EBEFF2EAEEF1EAEEF1E9EDF0E9EDF0E5E9ECE5E9ECE5E9ECE5E9EC E5E9ECE5E9ECE5E9ECE4E9EDE6EBF1E4EBF3E3EAF2E2E9F1E1E8F0E1E8F0E0E7EFE0E7EFE2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E1EAF1DFE8F1DEE8F1DDE7F0DCE6EFDCE6EFDBE5EE DAE4EDDAE4EDBAD7DFBBD8E0BCD7E0BDD8E1C0D8E2C1D9E3C2D8E3C3D9E4C6DAE5C7DBE6C9DBE7 CADCE8CDDDEACFDFECD2E0EDD2E0EDCFDFECD0E0EDD2E0EDD3E1EED5E1EDD6E2EED8E2ECD8E2EB DBE4EDDCE5ECDDE4ECDEE5EBE1E6ECE2E7EBE3E6EBE2E7EBE0E7EDE0E7EDDFE6ECDEE5EBDDE4EA DCE3E9DCE3E9DBE2E8DEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDDE6EBDBE4EDDAE4ED D9E3ECD9E3ECD8E2EBD7E1EAD6E0E9D6E0E9D3DDE6D2DCE5D2DCE5D1DBE4D0DAE3CFD9E2CFD9E2 CED8E1CED8E2CED8E2CBD8E1CBD8E1CAD6E2C8D6E1C5D5E4C5D5E4C5D6E6C5D6E6C4D7E8C3D6E7 C0D5E8C0D5E8BFD4E7BCD5E9B2D1E6AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8 AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ACD0E8ACD0E8ACD0E6 ACD0E6ADD0E4ADD0E4B0CFE3B0CFE3B4D1E3B4D1E3B6D1E2B6D1E2B8D2E1B9D3E2BAD4E3BAD4E3 BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BDD7E6BDD7E6BDD7E6BDD7E6BDD7E6 BDD7E6BDD7E6BDD7E6B9D5E1B9D5E1B9D5E1B9D5E1BAD4E1BAD4E1BCD3E1BCD3E1C1D7E5C2D8E6 C5D8E7C7DAE9C9DAEACBDCECCDDDEDCDDFEDCCDEECCBDFEACBDFEACBDFEACBDFEACBDFEACBDFEA CBDFEAC9DDE8C9DDE8C9DDE8C9DDE8C9DDE8C9DDE8C9DDE8C7DDE8C7DDEBC6DDEBC6DDEBC5DCEA C4DBE9C3DAE8C3DAE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E9BED5E7 BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9C1D7ECC2D8EDC2D8EDC3D9EEC4DAEFC5DBF0 C5DBF0C6DDEDC5D9E4C6DAE1C7DBE2C8DCE3C8DCE3C7DBE2C6DAE1C5D9E0C5D9E0C5D9E0C6DAE1 C6DAE1C7DBE2C8DCE3C9DDE4CADDE4D0DDE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5 D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D2DCE5D0DDE3D0DDE3CFDEE1CFDEE1CFDEE1CFDEE1 CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1D1E0E3D1E0E3 D2E0E3D2E0E3D2E0E3D2E0E3D4DFE3D5DEE3D6DDE3D6DDE3D8DDE3D8DDE3D9DCE3D9DCE3D9DCE3 D8DDE3D5DEE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D8DFE5D8DFE5D8DFE5 D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5DAE1E7DAE1E7DBE2E8DBE2E8DCE3E9DDE4EADEE5EBDDE6EB DCE6EFD9E6EED9E6EED8E5EDD7E4ECD6E3EBD6E3EBD5E2EAD4E1E9D3E0E8D3E0E8D2DFE7D1DEE6 D0DDE5D0DDE5CFDCE5D1DFEAD1DFECD2E0EDD2E0EDD3E1EED4E2EFD5E3F0D5E3F0D5E3F0D5E3F0 D4E2EFD3E1EED2E0EDD2E0EDD1DFECCFDFECCDDDEACADCE8C5D8E6C1D4E2BDD3E1BCD3E1BDD4E4 BAD6E4B7D2E3B6D3E3B3D2E4B1D2E3B0D1E4AED1E4ADD0E3ADD0E3B2D0E8B2D0E8B1CFE7B0CEE6 AFCDE5AFCDE5AECCE4AECCE4ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ADCDE2 ADCDE2ABCEE2ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4A9C9DEACCDE0B2CEE3B3CEDFB3CDDCB6CDDB BBD1DEC2D4E2CFDBEBD3DCEBD5DEEFD8E1F0D9E2F3DAE3F2DAE3F4D9E2F1D8E1F2D0D9E8C8D1E2 C8D1E0D0D9EAD9E2F1DDE6F7DEE6F3E7ECF2E8ECEFE8ECEFE8ECEFE8ECEFE8ECEFE8ECEFE8ECEF EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1E9EEF2E8EDF3E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF5E2E9F1E1E8F0DFE6EEDDE4ECDCE3EBDDE4ECDDE4ECDDE6EFD9E5F3D7E4F4 D4E1F1D2DFEFD0DDEDD0DDEDD0DDEDD0DDEDD9E6F6D4E1F1CEDBEBC9D6E6C8D5E5CBD8E8CFDCEC D6E0ECE2E7EDE4E8EBE7EBEEEAEEF1EDF1F4F1F5F8F3F7FAF4F8FBF7FBFEF7FBFEF8FCFFF9FDFF F9FDFFFAFEFFFBFFFFFBFFFFFCFCFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9F8F8F8F8F8F8F7F7F7F6F6F6F5F5F5 F5F5F5F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F3F5F4F5F6FAF3F7FAF3F7FA F3F7FAF3F7FAF3F7FAF3F7FAF3F7FAEDF1F4EFF3F6F3F7FAF6FAFDF6FAFDF3F7FAEFF3F6EDF1F4 EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6F1F5F8F1F5F8F0F4F7F0F4F7EFF3F6 EEF2F5EDF1F4EDF1F4EDF1F4EDF1F4ECF0F3ECF0F3EBEFF2EAEEF1E9EDF0E9EDF0E5E9ECE5E9EC E5E9ECE5E9ECE5E9ECE5E9ECE5E9ECE4E9EDE6EBF1E4EBF3E3EAF2E3EAF2E2E9F1E1E8F0E0E7EF E0E7EFE2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E1EAF1DFE8F1DEE8F1DDE7F0DCE6EF DCE6EFDBE5EEDAE4EDDAE4EDB9D5E0BAD6E1BAD6E1BBD7E2BDD8E3BED9E4C0D8E4C1D7E4C4D7E5 C5D8E6C7D9E7C9DBE9CBDBEACDDDECCEDEEDCFDFEECEDEEBCEDEEBCFDFECD0E0EDD2E0EBD3E1EC D5E2EBD5E2EAD9E3ECDAE3EADCE3EBDDE4EADDE4EADEE5EBE1E6EAE1E6EADFE6ECDFE6ECDEE5EB DEE5EBDDE4EADCE3E9DCE3E9DCE3E9DEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDDE6EB DCE5EEDBE5EEDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD7E1EAD4DEE7D3DDE6D3DDE6D2DCE5D1DBE4 D0DAE3D0DAE3D0DAE3CDDAE3CDDAE3CCD9E2CBD8E1C9D7E2C9D7E2C6D6E5C6D6E5C6D7E7C5D6E6 C4D7E8C3D6E7C0D5E8BFD4E7BDD4E6BBD4E8B1D0E5AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7 AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ACD0E8 ACD0E8ACD0E6ACD0E6ADD0E4ADD0E4B0CFE3B0CFE3B3D0E2B3D0E2B5D0E1B6D1E2B8D2E1B8D2E1 B9D3E2B9D3E2BBD5E6BBD5E6BBD5E6BBD5E6BBD5E6BBD5E6BBD5E6BBD5E6BAD4E5BAD4E5BAD4E5 BAD4E5BAD4E5BAD4E5BAD4E5BAD4E3B9D5E1B9D5E1B9D5E1B9D5E1BAD4E1BAD4E1BCD3E1BCD3E1 BFD5E3BFD5E3C2D5E4C4D7E6C6D7E7C8D9E9CADAEAC9DBE9CADCEAC9DDE8C9DDE8C9DDE8C9DDE8 C9DDE8C9DDE8C9DDE8C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C6DCE7C6DCEAC5DCEA C4DBE9C3DAE8C3DAE8C2D9E7C1D8E6C1D8E6C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E7BDD4E6BDD3E8BDD3E8BDD3E8BDD3E8BDD3E8BDD3E8BDD3E8C0D6EBC1D7ECC1D7ECC2D8ED C3D9EEC4DAEFC4DAEFC4DBEBC5D9E4C6DAE1C7DBE2C8DCE3C8DCE3C7DBE2C6DAE1C5D9E0C4D8DF C4D8DFC5D9E0C6DAE1C7DBE2C7DBE2C8DCE3C9DCE3CFDCE4D1DBE4D1DBE4D1DBE4D1DBE4D1DBE4 D1DBE4D1DBE4D1DBE4D1DBE4D1DBE4D1DBE4D1DBE4D1DBE4D1DBE4CFDCE2D0DDE3CFDEE1CFDEE1 CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1 D0DFE2D0DFE2D0DFE2D0DFE2D1DFE2D1DFE2D3DEE2D3DEE2D5DEE3D6DDE3D8DDE3D8DDE3D8DDE3 D8DDE3D9DCE3D8DDE3D5DEE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D8DFE5 D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D9E0E6D9E0E6DAE1E7DBE2E8DCE3E9DCE3E9 DDE4EADCE5EADAE4EDD8E5EDD8E5EDD7E4ECD6E3EBD5E2EAD5E2EAD4E1E9D2DFE7D2DFE7D2DFE7 D1DEE6D0DDE5CFDCE4CFDCE4CEDBE4D0DEE9D0DEEBD1DFECD2E0EDD3E1EED3E1EED4E2EFD4E2EF D4E2EFD4E2EFD3E1EED3E1EED2E0EDD1DFECD0DEEBCEDEEBCCDCE9C9DBE7C5D8E6C2D5E3BED4E2 BCD3E1BCD3E3BAD6E4B6D1E2B5D2E2B2D1E3B1D2E3B0D1E4ADD0E3ACCFE2ACCFE2B1CFE7B1CFE7 B0CEE6B0CEE6AFCDE5AECCE4ADCBE3ADCBE3ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ADCDE2ADCDE2ABCEE2ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4A9C9DEACCDE0B2CEE3B3CEDF B3CDDCB7CEDCBDD3E0C4D6E4D3DFEDD8E0EDDAE1F1DDE5F2DEE5F5DFE7F4DFE6F6DEE6F3DBE2F2 D6DEEBD2D9E9D4DCE9DBE2F2E1E9F6E2E9F9E1E7F3EAEFF5EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2 EBEFF2EBEFF2EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4ECF1F5E9EEF4E7EEF6E7EEF6 E7EEF6E7EEF6E7EEF6E7EEF6E7EEF6E3EAF2E2E9F1E0E7EFDEE5EDDEE5EDDEE5EDDFE6EEDEE7F0 DDE7F3D9E5F3D7E3F1D4E0EED3DFEDD2DEECD2DEECD3DFEDDAE6F4D6E2F0D1DDEBCDD9E7CDD9E7 D0DCEAD4E0EED9E3EDE6EBF1E8ECEFEBEFF2EDF1F4F1F5F8F3F7FAF6FAFDF7FBFEF7FBFEF7FBFE F8FCFFF9FDFFF9FDFFFAFEFFFBFFFFFBFFFFFDFDFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD FDFDFDFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFAF9F9F9F9F9F9F8F8F8 F7F7F7F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F5F7F6F6F7FB F4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBEEF2F5F0F4F7F3F7FAF5F9FCF5F9FCF3F7FA F0F4F7EEF2F5F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7F2F6F9F2F6F9F1F5F8 F0F4F7EFF3F6EFF3F6EEF2F5EEF2F5EEF2F5EEF2F5EDF1F4ECF0F3EBEFF2EBEFF2EAEEF1EAEEF1 E7EBEEE7EBEEE7EBEEE7EBEEE7EBEEE7EBEEE7EBEEE6EBEFE7ECF2E5ECF4E4EBF3E3EAF2E2E9F1 E2E9F1E1E8F0E1E8F0E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E1EAF1DFE8F1DEE8F1 DDE7F0DCE6EFDCE6EFDBE5EEDAE4EDDAE4EDB8D4DFB8D4DFB9D5E0B9D5E0BBD6E1BCD7E2BFD7E3 BFD7E3C0D6E3C3D6E4C5D7E5C6D8E6C9D9E8CBDBEACCDCEBCCDCEBCCDCEBCCDCE9CDDDEACEDEEB D0DEEBD1DFEAD3DFEBD3E0E9D7E1EBD7E1EAD9E2E9DBE2EADBE2E8DCE3E9DFE4EADDE5E8DDE4EA DDE4EADDE4EADDE4EADCE3E9DCE3E9DCE3E9DCE3E9DEE5EBDEE5EBDEE5EBDEE5EBDEE5EBDEE5EB DEE5EBDDE6EDDCE6EFDBE5EEDBE5EEDAE4EDD9E3ECD8E2EBD8E2EBD8E2EBD5DFE8D5DFE8D4DEE7 D4DEE7D3DDE6D2DCE5D1DBE4D1DBE4CEDBE4CDDAE3CDDAE3CBD9E2CAD8E3C7D8E2C7D7E6C6D8E6 C6D7E7C4D7E6C3D6E7C0D5E6BFD4E7BCD3E5BBD2E4B8D3E6AFCFE4ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ACD0E8ACD0E8ACD0E6ACD0E6ADD0E4ADD0E4B0CFE3B0CFE3B2CFE1B3D0E2B4CFE0B5D0E1 B7D1E0B8D2E1B8D2E1B8D2E1B9D3E4B9D3E4B9D3E4B9D3E4B9D3E4B9D3E4B9D3E4B9D3E4B8D2E3 B8D2E3B8D2E3B8D2E3B8D2E3B8D2E3B8D2E3B8D2E3B9D5E3B9D5E1B9D5E1B9D5E1BAD4E1BAD4E1 BCD3E1BCD3E1BDD3E1BDD3E1C0D3E2C1D4E3C3D4E4C4D5E5C6D6E6C5D7E5C9DBE9C8DCE7C8DCE7 C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C5DBE6 C4DAE8C3DAE8C2D9E7C1D8E6C1D8E6C0D7E5BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4 BFD6E4BFD6E4BFD6E6BCD3E5BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BFD5EABFD5EA C0D6EBC0D6EBC1D7ECC2D8EDC3D9EEC3DAEAC4D8E3C5D9E0C6DAE1C7DBE2C7DBE2C6DAE1C5D9E0 C4D8DFC3D7DEC4D8DFC4D8DFC5D9E0C6DAE1C7DBE2C7DBE2C8DBE2CEDBE4D0DAE3D0DAE3D0DAE3 D0DAE3D0DAE3D0DAE3D0DAE3D0DAE3D0DAE3D0DAE3D0DAE3D0DAE3D0DAE3D0DAE3CEDBE3CFDEE3 CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1 CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1D0DEE1D0DEE1D2DDE1D2DDE1D5DEE3D5DEE3D6DDE3 D8DDE3D8DDE3D8DDE3D9DCE3D8DDE3D5DEE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D7E0E5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D9E0E6D9E0E6DAE1E7 DBE2E8DCE3E9DCE3E9DBE4EBD9E3ECD7E4ECD6E3EBD5E2EAD4E1E9D4E1E9D3E0E8D3E0E8D1DEE6 D1DEE6D0DDE5CFDCE4CEDBE3CEDBE3CDDAE2CDDAE3CFDDE8D0DEEBD0DEEBD1DFECD2E0EDD3E1EE D3E1EED3E1EED3E1EED3E1EED3E1EED2E0EDD1DFECD0DEEBD0DEEBCDDDEACBDBE8C9DBE7C6D9E7 C3D6E4BFD5E3BDD4E2BCD3E3B8D4E2B5D0E1B4D1E1B2D1E3B0D1E2AFD0E3ACCFE2ACCFE2ABCEE1 B0CEE6B0CEE6B0CEE6AFCDE5AECCE4ADCBE3ADCBE3ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ACCAE2ADCDE2ADCDE2ABCEE2ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4AACADFADCEE1 B1CDE2B2CDDEB3CDDCB8CFDDBFD5E2C7D9E5D7E3EFDCE4EFDEE6F1E1E9F4E2EAF5E3EBF6E3EBF6 E2EAF5DFE7F2DDE5F0DCE4EFE0E8F3E5EDF8E8F0FBE6EEF9E4EBF5ECF1F5EDF1F4EDF1F4EDF1F4 EDF1F4EDF1F4EDF1F4EDF1F4EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EEF3F7EAEFF5 E8EFF7E8EFF7E8EFF7E8EFF7E8EFF7E8EFF7E8EFF7E5ECF4E4EBF3E2E9F1E0E7EFDFE6EEDFE6EE E0E7EFE0E9F2DFE9F5DBE7F5D9E5F3D6E2F0D5E1EFD4E0EED4E0EED4E0EEDAE6F4D7E3F1D4E0EE D1DDEBD2DEECD5E1EFD9E5F3DEE8F2EAEFF5ECF0F3EEF2F5F1F5F8F4F8FBF6FAFDF8FCFFF9FDFF F7FBFEF7FBFEF8FCFFF9FDFFF9FDFFFAFEFFFBFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFBFBFBFBFBFB FAFAFAFAFAFAF9F9F9F8F8F8F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7 F6F8F7F7F8FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF0F4F7F2F6F9F4F8FBF5F9FC F5F9FCF4F8FBF2F6F9F0F4F7F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F3F7FA F2F6F9F2F6F9F1F5F8F0F4F7EFF3F6EFF3F6EFF3F6EFF3F6EEF2F5EEF2F5EDF1F4ECF0F3EBEFF2 EBEFF2EBEFF2E8ECEFE8ECEFE8ECEFE8ECEFE8ECEFE8ECEFE8ECEFE7ECF0E8EDF3E5ECF4E5ECF4 E4EBF3E3EAF2E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E1EAF1 DFE8F1DEE8F1DDE7F0DCE6EFDCE6EFDBE5EEDAE4EDDAE4EDB5D3DEB5D3DEB7D3DFB8D4E0B9D5E1 BAD4E1BDD4E2BDD4E2BED4E2BED4E2C1D4E3C3D6E5C6D7E7C7D8E8C8D9E9C9DBE9C9DBE9C9DBE9 CADCEACBDDE9CCDCE9CDDEE8D0DEE9D0DEE7D3E0E9D5DFE8D6E1E7D8E1E8D8E1E8D9E2E7DBE2E8 DBE2E8DBE2EADAE3EADAE3EADAE3EADBE4EBDBE4EBDBE4EBDBE4EBDDE6EDDDE6EDDDE6EDDDE6ED DDE6EDDDE6EDDDE6EDDDE6EDDCE6EFDCE6EFDCE6EFDBE5EEDAE4EDD9E3ECD9E3ECD8E2EBD7E1EA D7E1EAD6E0E9D5DFE8D4DEE7D4DEE7D3DDE6D3DDE6CEDBE4CEDBE4CDDBE4CCDAE3CBD9E4C8D9E3 C8D8E7C6D8E6C6D7E7C5D8E7C3D6E7C0D5E6BED3E6BBD2E4BAD1E3B6D1E4AFCFE4ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ACD0E8ACD0E8ACD0E6ACD0E6ADD0E4ADD0E4B0CFE3B0CFE3B2CFE1B2CFE1 B3CEDFB4CFE0B6D0DFB7D1E0B7D1E0B8D2E1B6D1E2B6D1E4B6D1E4B6D1E4B6D1E4B6D1E4B6D1E4 B6D1E4B6D1E4B6D1E4B6D1E4B6D1E4B6D1E4B6D1E4B6D1E4B6D1E2B9D5E3B9D5E1B9D5E1B9D5E1 BAD4E1BAD4E1BCD3E1BCD3E1BCD2E0BDD3E1BFD2E1C0D3E2C1D2E2C2D3E3C3D3E3C2D4E2C7D9E7 C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C7DBE6C5DBE6C2D8E6C1D8E6C0D7E5BFD6E4BFD6E4BED5E3BDD4E2BDD4E2BDD4E2BDD4E2BDD4E2 BDD4E2BDD4E2BDD4E2BDD4E2BDD4E4BCD3E5BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BDD3E8BDD3E8BED4E9BFD5EAC0D6EBC0D6EBC1D7ECC1D8E8C3D7E2C4D8E1C5D9E2C6DAE3C6DAE3 C5D9E2C4D8E1C3D7E0C3D7E0C3D7E0C3D7E0C4D8E1C5D9E2C6DAE3C6DAE3C8DBE2CDDBE4CEDBE4 CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4 CEDBE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CDDFE3CDDFE3CDDFE3CDDFE3CFDEE3CFDEE3D0DDE3D2DDE3D5DEE5 D5DEE5D6DDE5D6DDE5D8DCE5D8DCE5D8DCE5D6DDE5D5DEE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7 D7E0E7D8E1E8D9E2E9DAE3EADAE3EADAE5EBD5E2EAD4E2EBD3E1EAD3E1EAD2E0E9D1DFE8D0DEE7 D0DEE7CEDCE5CEDCE5CDDBE4CDDBE4CCDAE3CBD9E2CAD8E1CAD8E1CFDDE8CFDDEACFDDEAD0DEEB D1DFECD2E0EDD2E0EDD3E1EED3E1EED2E0EDD2E0EDD1DFECD0DEEBCFDDEACFDDEACDDDEACADAE7 C8DAE6C6D9E7C5D8E6C1D7E5BDD4E2BBD2E2B7D3E1B5D0E1B3D0E0B1D0E2AFD0E1AECFE2ABCEE1 ABCEE1ABCEE1B0CEE6AFCDE5AFCDE5AECCE4ADCBE3ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ADCDE2ADCDE2ABCEE2ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4 ABCBE0ADCEE1B1CDE2B2CDDEB3CDDCB8CFDDC1D7E4CADCE8DCE6F0E0E7F1E2E9F3E5ECF6E6EDF7 E7EEF8E7EEF8E6EDF7E4EBF5E3EAF4E5ECF6E9F0FAEDF4FEEEF5FFEAF1FBE7EEF6EDF2F6EEF2F5 EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7 EFF4F8EAEFF5E8EFF7E8EFF7E8EFF7E8EFF7E8EFF7E8EFF7E8EFF7E7EEF6E5ECF4E3EAF2E2E9F1 E1E8F0E1E8F0E2E9F1E1EAF3E1EBF7DFE8F7DDE6F5DAE3F2D9E2F1D8E1F0D8E1F0D9E2F1DCE5F4 DBE4F3D9E2F1D8E1F0D9E2F1DCE5F4E0E9F8E4ECF7EEF3F9EFF3F6F1F5F8F3F7FAF5F9FCF8FCFF F9FDFFFAFEFFF7FBFEF7FBFEF8FCFFF9FDFFF9FDFFFAFEFFFBFFFFFBFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FDFDFDFDFDFDFCFCFCFBFBFBFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9 F9F9F9F9F9F9F8FAF9F7F8FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF2F6F9F3F7FA F4F8FBF4F8FBF4F8FBF4F8FBF3F7FAF2F6F9F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8 F1F5F8F3F7FAF3F7FAF3F7FAF2F6F9F1F5F8F0F4F7F0F4F7EFF3F6EFF3F6EFF3F6EFF3F6EEF2F5 EDF1F4ECF0F3ECF0F3EBEFF2EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1E9EEF2E8EDF3 E6EDF5E6EDF5E5ECF4E4EBF3E3EAF2E3EAF2E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E1EAF1DFE8F1DEE8F1DDE7F0DCE6EFDCE6EFDBE5EEDAE4EDDAE4EDB4D2DDB4D2DDB4D2DD B6D2DEB7D3DFB8D4E0B9D3E0BCD3E1BAD1DFBCD2E0BFD2E1C1D4E3C3D4E4C5D6E6C6D7E7C6D9E8 C6D9E8C6D9E7C7DAE8C9DBE9C9DBE9CBDBE8CCDCE9CEDCE7D0DEE9D1DEE7D2DFE7D5E0E6D5E0E6 D7E0E7D8E1E8D8E1E6D8E1E8D8E1E8D9E2E9D9E2E9DAE3EADBE4EBDBE4EBDBE4EBDDE6EDDDE6ED DDE6EDDDE6EDDDE6EDDDE6EDDDE6EDDDE6EDDDE7F0DDE7F0DCE6EFDCE6EFDBE5EEDAE4EDD9E3EC D9E3ECD8E2EBD8E2EBD8E2EBD7E1EAD6E0E9D5DFE8D5DFE8D4DEE7CFDCE5CEDCE5CDDBE4CBDCE4 CADBE5C8DAE4C7D9E7C6D9E7C6D9E8C3D9E7C1D6E7BED5E5BCD3E5B8D2E3B6D0E1B4CFE2AECEE3 ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5 ACCFE5ACCFE5ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ACD0E8ACD0E8ACD0E6ACD0E6ADD0E4ADD0E4B0CFE3B0CFE3 B1CEE0B1CEE0B3CEDFB3CEDFB5CFDEB6D0DFB7D1E0B7D1E2B6D1E4B6D1E4B6D1E4B6D1E4B6D1E4 B6D1E4B6D1E4B6D1E4B7D2E5B7D2E5B7D2E5B7D2E5B7D2E5B7D2E5B7D2E5B7D2E3B9D5E3B9D5E1 B9D5E1B9D5E1BAD4E1BAD4E1BCD3E1BCD3E1BDD3E1BDD3E1BFD2E1C0D3E2C1D2E2C1D2E2C2D2E2 C1D3E1C6D8E6C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C6DAE5C6DAE5C6DAE5C6DAE5 C6DAE5C6DAE5C6DAE5C4DAE5C0D6E4BFD6E4BED5E3BDD4E2BDD4E2BCD3E1BBD2E0BBD2E0BCD3E1 BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E3BBD2E4BBD1E6BBD1E6BBD1E6BBD1E6BBD1E6 BBD1E6BBD1E6BCD2E7BCD2E7BCD2E7BDD3E8BED4E9BFD5EABFD5EAC0D7E9C2D5E3C3D7E0C4D8E3 C5D9E2C5D9E4C4D8E1C3D7E2C2D6DFC2D6E1C2D6DFC3D7E2C3D7E0C4D8E3C5D9E2C6DAE5C7D9E3 CCDAE5CDDAE3CDDAE3CDDAE3CDDAE3CDDAE3CDDAE3CDDAE3CDDAE3CDDAE3CDDAE3CDDAE3CDDAE3 CDDAE3CDDAE3CDDAE3CFDEE5CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CCDEE2CCDEE2CCDEE2CCDEE2CEDDE2CEDDE2CFDCE2 CFDCE2D4DFE5D5DEE5D5DEE5D6DDE5D6DDE5D8DCE5D8DCE5D6DDE5D5DEE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7 D6DFE6D6DFE6D7E0E7D7E0E7D8E1E8D9E2E9DAE3EAD9E3ECD4E1EAD2E0E9D2E0E9D1DFE8D0DEE7 CFDDE6CFDDE6CFDDE6CDDBE4CCDAE3CCDAE3CBD9E2CAD8E1C9D7E0C9D7E0C9D7E2CEDCE9CEDCE9 CFDDEACFDDEAD0DEEBD1DFECD2E0EDD2E0EDD2E0EDD2E0EDD1DFECD0DEEBCFDDEACFDDEACEDCE9 CCDCE9C8D8E5C8DAE6C7DAE8C6D9E7C2D8E6BED5E3BBD2E2B6D2E0B4CFE0B3D0E0B0CFE1AECFE0 ADCEE1ABCEE1AACDE0AACDE0AFCDE5AFCDE5AECCE4ADCBE3ACCAE2ACCAE2ABC9E1ABC9E1ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ADCDE2ADCDE2ABCEE2ABCEE2ABCEE4ABCEE4 ABCEE4ABCEE4ACCCE1ADCEE1B1CDE2B1CCDDB2CCDBB9D0DEC3D9E6CEE0ECDDE7F0E1E8EEE3EAF2 E6EDF3E8EFF7E8EFF5E8EFF7E8EFF5E7EEF6E8EFF5E9F0F8ECF3F9EFF6FEEFF6FCECF3FBECF1F7 EDF0F5EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EFF3F6EEF3F7EBF0F6E9F0F8E9F0F8E9F0F8E9F0F8E9F0F8E9F0F8E9F0F8E8EFF7E7EEF6 E5ECF4E3EAF2E2E9F1E2E9F1E3EAF2E4EBF5E4ECF9E1EBF7DFE8F7DCE6F2DAE3F2DAE4F0DAE3F2 DAE4F0DCE5F4DCE6F2DBE4F3DCE6F2DEE7F6E1EBF7E5EEFDE8F0FBEFF4FAF1F5F8F2F6F9F4F8FB F6FAFDF8FCFFF9FDFFFAFEFFF7FBFEF7FBFEF8FCFFF9FDFFF9FDFFFAFEFFFBFFFFFBFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD FDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFDFDFDFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAF9FBFAF8F9FDF6FAFDF6FAFDF6FAFDF6FAFDF6FAFDF6FAFDF6FAFD F4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF2F6F9F2F6F9F2F6F9F2F6F9F2F6F9 F2F6F9F2F6F9F2F6F9F4F8FBF4F8FBF3F7FAF3F7FAF2F6F9F1F5F8F0F4F7F0F4F7F0F4F7F0F4F7 EFF3F6EFF3F6EEF2F5EDF1F4ECF0F3ECF0F3EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2 EAEFF3E9EEF4E7EEF6E6EDF5E6EDF5E5ECF4E4EBF3E3EAF2E3EAF2E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E1EAF1DFE8F1DEE8F1DDE7F0DCE6EFDCE6EFDBE5EEDAE4EDDAE4EDB0D0DD B1D1DEB1D1DEB4D1DFB5D2E0B7D3E1B7D3E1B9D3E2B9D0E0B9D0E0BBD0E1BDD2E3C1D4E5C2D5E6 C3D6E7C4D7E6C5D8E7C3D9E7C3D9E7C6D9E7C7DAE8C9DBE7C9DBE7CBDCE6CDDEE8CFDDE6D0DDE6 D1DEE6D2DFE7D5E0E6D5E0E6D6E1E7D6E0E9D6E0E9D7E1EAD8E2EBD9E3ECDAE4EDDAE4EDDBE5EE DCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDEE8F1DEE8F1DDE7F0DCE6EFDBE5EE DBE5EEDAE4EDDAE4EDDAE4EDD9E3ECD9E3ECD8E2EBD7E1EAD6E0E9D6E0E9D3E0E8CFDDE6CDDEE6 CCDDE5CBDCE4CADBE5C9DBE5C8DAE8C7DAE8C6D9E8C3D9E7C0D7E7BCD6E5B9D3E4B7D1E2B5CFE0 B2CFE1ADCDE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ACD0E8ACD0E8ACD0E6ACD0E6ADD0E4ADD0E4 B0CFE3B0CFE3B0CDDFB0CDDFB2CDDEB3CEDFB5CFDEB5CFDEB6D0DFB6D0E1B6D1E4B6D1E6B6D1E6 B6D1E6B6D1E6B6D1E6B6D1E6B6D1E6B8D3E8B8D3E8B8D3E8B8D3E8B8D3E8B8D3E8B8D3E8B8D3E6 B9D5E3B9D5E1B9D5E1B9D5E1BAD4E1BAD4E1BCD3E1BCD3E1BFD5E3BFD5E3C1D4E3C0D3E2C1D2E2 C1D2E2C2D2E2C1D3E1C4D6E4C3D7E2C3D7E2C3D7E2C3D7E2C3D7E2C3D7E2C3D7E2C5D9E4C5D9E4 C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C3D9E4BFD5E3BDD4E2BDD4E2BCD3E1BBD2E0BAD1DFBAD1DF BAD1DFBAD1DFBAD1DFBAD1DFBAD1DFBAD1DFBAD1DFBAD1DFBAD1E1BAD1E3BAD0E5BAD0E5BAD0E5 BAD0E5BAD0E5BAD0E5BAD0E5BAD0E5BBD1E6BBD1E6BCD2E7BDD3E8BED4E9BED4E9BFD6E8C2D5E4 C3D7E2C4D7E5C5D9E4C5D8E6C4D8E3C3D6E4C2D6E1C1D4E2C1D5E0C2D5E3C3D7E2C4D7E5C4D8E3 C5D8E6C6D8E4C9DAE4CBD9E4CBD9E4CBD9E4CBD9E4CBD9E4CBD9E4CBD9E4CBD9E4CBD9E4CBD9E4 CBD9E4CBD9E4CBD9E4CBD9E4CBD9E2CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5 CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CBDCE3CADDE3CADDE3CADDE3CBDCE3 CBDCE3CDDCE3CEDBE3D2DFE7D4DEE7D5DEE7D5DEE7D5DEE7D6DDE7D6DDE7D6DDE7D5DEE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9D4DEE7D4DEE7D5DFE8D6E0E9D7E1EAD7E1EAD8E2EBD6E3EBD2E0E9CFE0EACFE0EA CEDFE9CDDEE8CCDDE7CCDDE7CBDCE6CADBE5C9DAE4C9DAE4C8D9E3C7D8E2C6D7E1C6D7E1C5D6E0 CDDBE8CDDBE8CEDCE9CFDDEAD0DEEBD0DEEBD1DFECD1DFECD1DFECD1DFECD0DEEBD0DEEBCFDDEA CEDCE9CDDBE8CBDBE8C8D8E5C7D9E5C7DAE8C7DAE8C3D9E7BED5E3BAD1E1B5D1DFB3CEDFB2CFDF AFCEE0AECFE0ADCEE1AACDE0A9CCDFA9CCDFAECCE4AECCE4ADCBE3ADCBE3ACCAE2ABC9E1AAC8E0 AAC8E0ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ADCDE2ADCDE2ABCEE2ABCEE2 ABCEE4ABCEE4ABCEE4ABCEE4ADCDE2AECFE2B1CDE2B0CBDCB2CCDBBAD1DFC5DBE8D0E2ECDEE7EE E3E8ECE6EBF1E8EDF1EAEFF5EAEFF3EAEFF5EAEFF3ECF1F7ECF1F5EDF2F8EEF3F7F0F5FBF0F5F9 EFF4FAEEF3F7ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3EEF2F5EEF2F5EEF2F5 EEF2F5EEF2F5EEF2F5EEF2F5EDF2F6ECF1F7EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9 E9F0F8E8EFF7E6EDF5E4EBF3E3EAF2E4EBF3E4EBF3E5ECF6E5EDF8E4ECF7E1E9F6DFE7F2DDE5F2 DCE4EFDDE5F2DDE5F0DDE5F2DEE6F1DEE6F3E0E8F3E3EBF8E6EEF9E9F1FEECF3FDF0F5F9F1F5F8 F2F6F9F4F8FBF5F9FCF7FBFEF8FCFFF8FCFFF7FBFEF7FBFEF8FCFFF9FDFFF9FDFFFAFEFFFBFFFF FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFCFCFCFCFCFCFBFBFBFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFBFDFCF9FAFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFE F7FBFEF7FBFEF6FAFDF5F9FCF4F8FBF4F8FBF4F8FBF4F8FBF5F9FCF6FAFDF3F7FAF3F7FAF3F7FA F3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF5F9FCF5F9FCF4F8FBF3F7FAF2F6F9F2F6F9F1F5F8F1F5F8 F1F5F8F1F5F8F0F4F7EFF3F6EEF2F5EEF2F5EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4 EDF1F4EDF1F4ECF1F5EAEFF5E8EFF7E7EEF6E6EDF5E5ECF4E5ECF4E4EBF3E4EBF3E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E1EAF1DFE8F1DEE8F1DDE7F0DCE6EFDCE6EFDBE5EEDAE4ED DAE4EDB0D0DDB0D0DDB1D1DEB1D1DEB4D1DFB5D2E0B7D3E1B7D3E1B6D0DFB8CFDFB9D0E0BCD1E2 BED3E4C1D4E5C2D5E6C1D6E7C2D7E8C1D8E6C3D9E7C3D9E7C4DAE8C7DAE8C8DBE9C9DBE7CBDDE9 CCDDE7CFDDE8D0DDE6D1DEE7D2DFE7D3E0E8D5DFE8D5DFE8D5DFE8D6E0E9D7E1EAD8E2EBDAE4ED DAE4EDDBE5EEDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDEE8F1DEE8F1DDE7F0 DDE7F0DCE6EFDBE5EEDAE4EDDAE4EDDAE4EDDAE4EDD9E3ECD9E3ECD8E2EBD7E1EAD6E0E9D4E1E9 CFDDE6CDDEE6CCDDE5CBDEE5CADCE6C8DCE5C7DAE8C5DBE8C4DAE8C2D9E7BED8E7BBD5E4B9D3E4 B5D0E1B3CEDFB1CEE0ADCDE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ACD0E8ACD0E8ACD0E6ACD0E6 ADD0E4ADD0E4B0CFE3B0CFE3B0CDDFB0CDDFB2CDDEB2CDDEB4CEDDB5CFDEB6D0DFB6D0E1B7D2E5 B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E7B9D5E3B9D5E1B9D5E1B9D5E1BAD4E1BAD4E1BCD3E1BCD3E1C0D6E4C0D6E4C2D5E4 C1D4E3C2D3E3C2D3E3C2D2E2C1D3E1C4D6E4C3D7E2C3D7E2C3D7E2C3D7E2C3D7E2C3D7E2C3D7E2 C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C3D9E4BED4E2BDD4E2BCD3E1BBD2E0BAD1DF BAD1DFB9D0DEB9D0DEBAD1DFBAD1DFBAD1DFBAD1DFBAD1DFBAD1DFBAD1DFBAD1E1BAD1E3BAD0E5 BAD0E5BAD0E5BAD0E5BAD0E5BAD0E5BAD0E5BAD0E5BAD0E5BBD1E6BBD1E6BCD2E7BDD3E8BED4E9 BED5E7C1D4E3C2D5E3C4D7E5C5D8E6C5D8E6C4D7E5C2D5E3C1D4E2C1D4E2C1D4E2C2D5E3C2D5E3 C3D6E4C4D7E5C5D8E6C6D8E6C9D9E6C9DAE4CBD9E6C9DAE4CBD9E6C9DAE4CBD9E6C9DAE4CBD9E6 C9DAE4CBD9E6C9DAE4CBD9E6C9DAE4CBD9E6CBD9E4CFDDE6CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5 CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CFDEE5CDDEE5CADDE3CADDE3CADDE3 CADDE3CBDCE3CBDCE3CDDCE3CDDCE3D2DFE7D2DFE7D4DEE7D5DEE7D5DEE7D5DEE7D6DDE7D5DEE7 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9D6E0E9D6E0E9D4DEE7D4DEE7D5DFE8D5DFE8D6E0E9D7E1EAD8E2EBD6E3ECCFE0EA CEE0EACEDEEBCCDEE8CCDCE9CBDDE7CBDBE8CADCE6C9D9E6C8DAE4C8D8E5C6D8E2C6D6E3C5D7E1 C5D5E2C5D5E2CDDBE8CDDBE8CEDCE9CEDCE9CFDDEAD0DEEBD1DFECD1DFECD1DFECD1DFECD0DEEB CFDDEACEDCE9CEDCE9CDDBE8CBDBE8C7D7E4C7D9E5C7DAE8C7DAE8C3D9E7BED5E3BAD1E1B5D1DF B3CEDFB2CFDFAFCEE0ADCEDFACCDE0AACDE0A9CCDFA9CCDFAECCE4AECCE4ADCBE3ACCAE2ABC9E1 ABC9E1AAC8E0AAC8E0ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ADCDE2ADCDE2 ABCEE2ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4ADCDE2AECFE2B0CCE1B0CBDCB2CCDBBAD1DFC6DCE9 D1E3EDDEE7EEE3E8ECE5EAEEE8EDF1E9EEF2EAEFF3EAEFF3EAEFF3EDF2F6EDF2F6EDF2F6EDF2F6 EEF3F7EFF4F8EFF4F8EFF4F8EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EDF1F4 EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4ECF1F5ECF1F7EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9 EAF1F9EAF1F9EAF1F9E9F0F8E7EEF6E5ECF4E4EBF3E4EBF3E5ECF4E6EDF5E6EFF8E4ECF7E2EAF5 DFE7F2DEE6F1DDE5F0DDE5F0DEE6F1DDE5F0DEE6F1E0E8F3E2EAF5E5EDF8E8F0FBEBF3FEEEF5FF F0F5F9F1F5F8F2F6F9F3F7FAF5F9FCF6FAFDF7FBFEF7FBFEF7FBFEF7FBFEF8FCFFF9FDFFF9FDFF FAFEFFFBFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFBFDFCF9FAFEF7FBFEF7FBFEF7FBFE F7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF6FAFDF4F8FBF4F8FBF4F8FBF4F8FBF6FAFDF7FBFEF3F7FA F3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF5F9FCF5F9FCF4F8FBF4F8FBF3F7FAF2F6F9 F1F5F8F1F5F8F1F5F8F1F5F8F0F4F7F0F4F7EFF3F6EEF2F5EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4 EDF1F4EDF1F4EDF1F4EDF1F4ECF1F5EAEFF5E8EFF7E7EEF6E7EEF6E6EDF5E5ECF4E4EBF3E4EBF3 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E1EAF1DFE8F1DEE8F1DDE7F0DCE6EFDCE6EF DBE5EEDAE4EDDAE4EDAFD0DFAFD0DFAFD0DFAFD0DFB0D0DFB0D0DFB2CFDFB3CEDFB5D0E1B6D0E1 B9D0E2BAD1E3BBD2E4BCD1E4BDD2E5BDD2E5BED5E7BCD6E5BFD6E6C0D7E5C1D8E6C2D8E5C3D9E6 C5D9E4C8DAE6C9DAE4CADBE5CDDBE4CEDCE5CEDCE5CFDDE6D0DDE6D2DFE8D2DFE8D3E0E9D4E1EA D5E2EBD5E2EBD6E3ECD6E3ECD6E3ECD6E3ECD7E4EDD8E5EED9E6EFD9E6EFDAE7F0DAE7F0DAE4ED DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDCE6EFDCE6EFDBE5EEDAE4EDDAE4EDD9E3EC D8E2EBD6E3EBCDDEE6CDE0E7CFE2E9D0E3EACEE0EACADEE7C7DAE8C2D8E5C2D9E7C0DAE7C0DAE9 BEDAE8BCD7E8B7D4E4B4D1E1B1D0E2ADCDE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4AACEE6AACEE6 ABCFE5ABCFE5ADD0E4AED1E5B2D1E5B2D1E5B2CFE1B2CFE1B4CFE0B4CFE0B6D0DFB7D1E0B8D2E1 B8D2E3BAD3E7BAD3E9BBD4EABBD4EABCD5EBBDD6ECBED7EDBED7EDBCD5EBBCD5EBBCD5EBBCD5EB BCD5EBBCD5EBBCD5EBBCD5E9B6D2E0B6D2DEB7D3DFB8D4E0BAD4E1BCD6E3BED5E3BFD6E4BDD3E1 BDD3E1C0D3E2C0D3E2C2D3E3C3D4E4C5D5E5C4D6E4C2D4E2C1D5E0C1D5E0C1D5E0C1D5E0C1D5E0 C1D5E0C1D5E0C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C5DBE6C6DCEAC4DBE9C2D9E7 BFD6E4BCD3E1BAD1DFB8CFDDB7CEDCBCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E3 BCD3E5BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7BCD3E5C3D6E7C3D6E5C4D7E6C5D8E7C5D8E7C6D9E8C7DAE9C7DAE9C2D5E4C1D4E3 C0D3E2BFD2E1C0D3E2C1D4E3C2D5E4C3D6E4C4D6E4C4D6E2C6D6E5C6D8E4C8D8E7C7D9E5C9D9E8 C8DAE6C7D7E6C6D8E4C8D8E7C8DAE6C9D9E8C9DBE7CBDBEACBDBE8CDDBE4CDDBE4CDDBE4CDDBE4 CDDBE4CDDBE4CDDBE4CDDBE4CFDDE6CFDDE6CEDCE5CDDBE4CDDBE4CCDAE3CBD9E2C9DAE2CEE2E9 CDE1E8CADEE5C8DCE3C8DBE2C8DBE2CADBE3CADBE3CDDBE4CEDBE4CFDCE5D2DCE6D2DCE6D3DDE7 D5DDE8D5DEE7D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DDE3D2DDE3D3DEE4D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D1DEE6D2DFE8 D2DFE8D4E1EAD5E2EBD6E3ECD7E4EDD7E4EDD4E1EAD4E1EAD3E0E9D3E0E9D2DFE8D1DEE7D0DDE6 CFDDE6CCDEEACBDFEACCDEECCBDFEACCDEECCBDFEACCDEECCBDFEAC8DAE8C7DBE6C7D9E7C5D9E4 C6D8E6C4D8E3C4D6E4C4D6E2C6D6E3CAD8E5CDDBE8D0DEEBD2E0EDD3E1EED3E1EED2E0EDCFDDEA CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACDDDEACDDDEACBDDE9C7DAE8C3D6E4BDD3E1B8CFDD B5CCDCB1CDDBB2CDDEB0CDDDADCCDEABCCDDABCCDFABCEE1ACCFE2ADD0E3ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ABCBE0ABCBE0A9CCE0A9CCE0A9CCE2A9CCE2A9CCE2A9CCE2B0D0E5AECFE2AECADFAFCADBB6D0DF C3DAE8D0E6F3DBEDF7E5EEF3E8EDF0E9EEF1EAEFF2EAEFF2EBF0F3ECF1F4ECF1F4F0F5F8F0F5F8 F0F5F8F0F5F8F0F5F8F1F6F9F1F6F9F2F7FAECF0F3ECF0F3ECF0F3EBEFF2EBEFF2EBEFF2EAEEF1 EAEEF1EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EAEFF3EEF3F9ECF3FBECF3FBECF3FB ECF3FBECF3FBECF3FBECF3FBECF3FBECF3FBEAF1F9E9F0F8E7EEF6E6EDF5E5ECF4E4EBF3E7EEF8 E6EDF7E6EDF7E5ECF6E3EAF4E2E9F3E2E9F3E1E8F2E4EBF5E4EBF5E6EDF7E7EEF8E9F0FAEAF1FB EBF2FCECF3FBF2F7FBF3F7FAF4F8FBF5F9FCF5F9FCF6FAFDF7FBFEF7FBFEF9FDFFF9FDFFF9FDFF F9FDFFF9FDFFF9FDFFF9FDFFF9FDFEFCFCFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFDFEFFFBFFFF FAFEFFF9FDFFF9FDFFF8FCFFF7FBFEF7FBFEF7FBFEF7FBFEF6FAFDF5F9FCF5F9FCF4F8FBF3F7FA F3F7FAF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF4F8FBF3F7FA F3F7FAF2F6F9F1F5F8F1F5F8EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EEF2F5EDF1F4EDF1F4ECF0F3EBEFF2EAEFF3ECF1F7EAF1F9E9F0F8E9F0F8E8EFF7E7EEF6 E6EDF5E6EDF5E6EDF5E6EDF5E5ECF4E5ECF4E4EBF3E3EAF2E2E9F1E1EAF1DFE8F1DEE8F1DDE7F0 DBE5EED9E3ECD8E2EBD7E1EAD6E0E9AFD0DFAFD0DFAFD0DFAFD0DFB0D0DFB0D0DFB2CFDFB2CFDF B5D0E1B5D0E1B7D1E2B9D0E2BAD1E3BBD2E4BDD2E5BCD3E5BBD5E6BCD6E7BCD6E7BDD7E6BED8E7 C1D8E6C1D8E6C3D9E6C6D9E7C8DAE6C8DAE6CADBE5CBDCE6CCDDE5CEDCE5CFDDE6D0DEE7D1DFE8 D2DEEAD2E0E9D4E0ECD4E2EBD5E1EDD5E3ECD5E1EDD5E3ECD6E2EED6E4EDD8E4F0D8E6EFD9E5F1 DAE7F0DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDCE6EFDCE6EFDBE5EEDAE4ED DAE4EDD9E3ECD8E2EBD6E3EBCFE0E8CFE2E9D0E3EACFE3EACEE2EBC9E0E8C5DBE8C2DAE6C1DBE8 C0DCE8C0DCEABDDAE8BAD7E7B6D3E3B3D0E0AFCEE0ADCDE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 AACEE6AACEE6ABCFE5ACD0E6AED1E5AED1E5B2D1E5B2D1E5B2CFE1B3D0E2B4CFE0B5D0E1B7D1E0 B8D2E1B8D2E1B9D3E4BCD2E7BCD2E9BDD3EABED4EBBFD5ECBFD5ECC0D6EDC0D6EDBED4EBBED4EB BED4EBBED4EBBED4EBBED4EBBED4EBBCD5E9B7D3E1B7D3DFB8D4E0B9D5E1BBD5E2BCD6E3BED5E3 BFD6E4BDD3E1BDD3E1C0D3E2C1D4E3C3D4E4C3D4E4C5D5E5C4D6E4C3D5E3C2D6E1C2D6E1C2D6E1 C2D6E1C2D6E1C2D6E1C2D6E1C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C5DBE6C7DDEB C5DCEAC3DAE8C0D7E5BED5E3BBD2E0B9D0DEB8CFDDBCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1 BCD3E1BCD3E3BCD3E5BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7BCD2E7BCD2E7BCD3E5C3D6E7C3D6E5C4D7E6C5D8E7C5D8E7C6D9E8C7DAE9C7DAE9 C2D5E4C1D4E3C0D3E2BFD2E1BFD2E1C1D4E3C2D5E4C3D6E5C4D5E5C4D6E4C5D7E5C5D7E5C6D8E6 C7D9E7C8DAE8C8DAE8C6D8E6C6D8E6C7D9E7C8DAE8C8DAE8C9DBE9CADCEACADCEACBDCE6CDDBE4 CDDBE6CDDBE4CDDBE6CDDBE4CDDBE6CDDBE4CFDDE8CFDDE6CEDCE7CDDBE4CDDBE6CCDAE3CBD9E4 C9DAE2CCE0E9C8DFE5C8DCE5C7DBE2C7D9E3C7DAE1C8D9E3C9DAE2CDDBE6CDDBE4CFDBE7D0DDE6 D2DCE8D3DDE7D4DEEAD4DEE8D4DEE7D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DDE3D2DDE3D3DEE4D4DFE5D4DFE5D5E0E6 D6E1E7D6E1E7D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E0E9 D1DEE7D1DFE8D2DEEAD2E0E9D4E0ECD4E2EBD6E2EED5E3ECD4E0ECD2E0E9D3DFEBD1DFE8D1DDE9 CFDDE6D0DCE8CEDCE7CCDEECCBDEECCBDEECCBDEECCBDEECCBDEECCBDEECCBDEECC7DAE8C7DAE8 C6D9E7C5D8E6C5D8E6C4D7E5C3D6E4C4D6E4C7D7E4CAD8E5CDDBE8CFDDEAD1DFECD2E0EDD2E0ED D2E0EDCFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACDDDEACBDBE8C9DBE7C6D9E7C3D6E4 BED4E2BAD1DFB8CFDFB3CFDDB3CEDFB1CEDEADCCDEACCDDEACCDE0ABCEE1ACCFE2ADD0E3ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ABCBE0ABCBE0A9CCE0A9CCE0A9CCE2A9CCE2A9CCE2A9CCE2AFCFE4ADCEE1ADC9DE AFCADBB6D0DFC3DAE8CFE5F2D9EBF5E5EEF3E8EDF0E9EEF1EAEFF2EAEFF2EBF0F3ECF1F4ECF1F4 EEF3F6EFF4F7EFF4F7F0F5F8F0F5F8EFF4F7EDF2F5ECF1F4E9EDF0EAEEF1EAEEF1EAEEF1EAEEF1 EBEFF2EBEFF2EBEFF2ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3EBF0F4EEF3F9ECF3FB ECF3FBECF3FBECF3FBECF3FBECF3FBECF3FBECF3FBEBF2FAEAF1F9E9F0F8E7EEF6E5ECF4E4EBF3 E4EBF3E6EDF7E6EDF7E5ECF6E4EBF5E4EBF5E3EAF4E2E9F3E2E9F3E4EBF5E5ECF6E6EDF7E7EEF8 E9F0FAEBF2FCECF3FDEEF2FBF3F6FBF3F7FAF4F8FBF5F9FCF5F9FCF6FAFDF7FBFEF7FBFEF9FDFF F9FDFFF9FDFFF9FDFFF9FDFFF9FDFFF9FDFFF9FDFEFCFCFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFE FDFEFFFBFFFFFAFEFFF9FDFFF9FDFFF8FCFFF7FBFEF7FBFEF7FBFEF7FBFEF6FAFDF5F9FCF5F9FC F4F8FBF3F7FAF3F7FAF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FC F4F8FBF3F7FAF3F7FAF2F6F9F1F5F8F1F5F8EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EFF3F6EFF3F6EEF2F5EDF1F4EDF1F4ECF0F3EBEFF2EAEFF3ECF1F7EAF1F9E9F0F8E8EFF7 E7EEF6E7EEF6E6EDF5E6EDF5E6EDF5E5ECF4E5ECF4E4EBF3E3EAF2E2E9F1E2E9F1E0E9F0DFE8F1 DDE7F0DCE6EFDAE4EDD9E3ECD7E1EAD6E0E9D5DFE8ADD1E1ADD1E1ADD1E1ADD1E1AFD0E1AFD0E1 B0CFE1B0CFE1B3D0E2B4CFE2B5D0E3B7D0E4B8D1E5B8D1E5BBD1E6BBD1E6B9D4E7BAD5E6BAD5E6 BBD6E7BCD7E8BED8E7C0D7E5C1D7E4C3D9E6C6DAE5C6DAE5C8DAE4C9DBE5CADCE6CBDCE6CBDCE6 CDDEE8CEDFE9D0DEEBCFE0EAD2E0EDD1E2ECD3E1EED1E2ECD3E1EED2E3EDD4E2EFD3E4EED6E4F1 D5E6F0D7E5F2D7E5F0D8E5EEDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDCE6EFDCE6EF DBE5EEDAE4EDDAE4EDD9E3ECD8E2EBD6E3EBD0E3EACFE3EAD0E4EBCDE4EACBE2EAC8DFE7C5DDE9 C1DCE7C3DDEAC1DDE9C0DCEABDDAE8B9D6E6B3D3E2AFCFDEACCBDDADCDE2ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5 ACCFE5ACCFE5ABCFE7ABCFE7ACD0E6ACD0E6AED1E5AFD2E6B3D2E6B3D2E6B4D1E3B4D1E3B5D0E1 B6D1E2B8D2E1B9D3E2B9D3E2BCD3E5BED3E8BED3E8BFD4E9BFD4E9C0D5EAC1D6EBC2D7ECC2D7EC C1D6EBC1D6EBC1D6EBC1D6EBC1D6EBC1D6EBC1D6EBC0D7E9B9D3E2B8D4E0B9D5E1B9D5E1BBD5E2 BCD6E3BED5E3BED5E3BED4E2BED4E2C1D4E3C1D4E3C3D4E4C4D5E5C6D6E6C5D7E5C6D8E6C5D9E4 C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C5DBE6C8DEECC6DDEBC4DBE9C2D9E7C0D7E5BED5E3BCD3E1BBD2E0BCD3E1BCD3E1BCD3E1BCD3E1 BCD3E1BCD3E1BCD3E1BCD3E3BCD3E5BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD3E5C3D6E7C3D6E7C4D7E8C5D8E9C5D8E9C6D9EA C7DAEBC7DAEBC3D6E7C2D5E6C1D4E5BFD2E3BFD2E3C0D3E4C1D4E5C2D5E4C2D5E4C2D5E4C3D6E5 C4D7E6C5D8E7C5D8E7C6D9E8C6D9E8C5D8E7C5D8E7C6D9E8C7DAE9C7DAE9C8DBEAC9DCEBCADCEA CBDBE8CDDBE6CDDBE8CDDBE6CDDBE8CDDBE6CDDBE8CDDBE6CFDDEACFDDE8CEDCE9CDDBE6CDDBE8 CCDAE5CBD9E6C9DAE4C6DCE7C4DDE4C3D9E4C2D9E1C3D7E2C4D8E1C5D7E3C6D8E2CBDBE8CBDCE6 CEDCE9CFDDE8D0DCEAD1DDE9D2DEECD4DEEAD4DEE7D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DDE3D2DDE3D3DEE4D4DFE5 D4DFE5D5E0E6D6E1E7D6E1E7D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6 D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D4E1E9D1DFEACFE0EAD1DFECD0E1EBD3E1EED1E2ECD4E2EFD2E3EDD1DFECCFE0EAD1DFEC CEDFE9CFDDEACCDDE7CEDCE9CBDBE8C9DCEAC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEB C5DBE9C5DBE9C4DAE8C3D9E7C3D9E7C2D8E6C1D7E5C3D6E4C7D7E4CAD8E5CDDBE8CFDDEAD1DFEC D1DFECD1DFECD0DEEBCEDCE9CEDCE9CEDCE9CEDCE9CEDCE9CEDCE9CEDCE9CCDCE9C8D8E5C7D9E5 C4D7E5C3D6E4BFD5E3BCD3E1BBD2E2B7D3E1B4CFE0B2CFDFAECDDFACCDDEACCDE0ABCEE1ACCFE2 ADD0E3ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ABCBE0ABCBE0A9CCE0A9CCE0A9CCE2A9CCE2A9CCE2A9CCE2AECEE3 ACCDE0ADC9DEAFCADBB6D0DFC2D9E7CEE4F1D8EAF4E4EFF3E6EEF0E7EFF1E8F0F2E8F0F2E9F1F3 EAF2F4EAF2F4EAF2F4EBF3F5EDF5F7EDF5F7ECF4F6E9F1F3E5EDEFE5EAEDE5E9ECE6EAEDE7EBEE E8ECEFEAEEF1EBEFF2ECF0F3ECF0F3EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EDF2F6 EDF2F8EBF2FAEBF2FAEBF2FAEBF2FAEBF2FAEBF2FAEBF2FAEBF2FAEBF2FAEAF1F9E8EFF7E6EDF5 E5ECF4E4EBF3E3EAF2E8ECF5E7EBF4E7EBF4E6EAF3E6EAF3E5E9F2E5E9F2E4E8F1E7EBF4E7EBF4 E8ECF5EAEEF7ECF0F9EDF1FAEEF2FBEFF4FAF3F6FBF3F7FAF4F8FBF5F9FCF5F9FCF6FAFDF7FBFE F7FBFEF8FCFFF8FCFFF8FCFFF8FCFFF8FCFFF8FCFFF8FCFFF8FCFDFBFBFDFBFBFBFBFBFBFBFBFB FBFBFBFBFBFBFBFBFBFBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFDFFFEFDFEFFFBFFFFFAFEFFF9FDFFF9FDFFF8FCFFF7FBFEF7FBFEF7FBFEF7FBFEF6FAFD F5F9FCF5F9FCF4F8FBF3F7FAF3F7FAF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FC F5F9FCF5F9FCF4F8FBF3F7FAF3F7FAF2F6F9F1F5F8F1F5F8EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EEF2F5EDF1F4EDF1F4ECF0F3EBEFF2EAEFF3EBF0F6E9F0F8 E8EFF7E8EFF7E7EEF6E6EDF5E5ECF4E5ECF4E4EBF3E4EBF3E4EBF3E3EAF2E2E9F1E1E8F0E1E8F0 DFE8EFDEE7F0DCE6EFDBE5EED9E3ECD8E2EBD6E0E9D5DFE8D4DEE7ACD1E1ACD1E1ADD1E1ADD1E1 AFD0E1AFD0E1B0CFE1B0CFE1B2CFE1B3D0E2B4CFE2B5D0E3B7D0E4B8D1E5BAD0E5B8D1E5B8D3E6 B7D4E6B8D5E7B9D4E5BAD5E6BBD6E7BDD7E6BFD6E4C1D8E6C2D8E5C5D8E6C5D9E4C7D9E5C8DAE4 C9DBE5C9DBE5CCDCE9CCDCE9CDDDEACDDDEACEDEEBCFDFECD0E0EDD0E0EDD0E0EDD0E0EDD1E1EE D1E1EED2E2EFD3E3F0D4E4F1D6E4EFD8E5EEDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4ED DCE6EFDCE6EFDBE5EEDAE4EDDAE4EDD9E3ECD8E2EBD6E3EBD2E5ECD1E5ECCEE5EBCCE3E9CAE1E9 C6DFE6C2DDE8C1DCE7C2DEEAC0DEE9BFDCEABADAE7B6D6E5B1D1E0ADCDDCAACBDCABCEE2ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ACD0E8ACD0E8ACD0E6ADD1E7AFD2E6B0D3E7B3D2E6B4D3E7B5D2E4 B5D2E4B7D2E3B8D3E4BAD4E3BAD4E3BBD5E4BDD4E4C1D3E7C1D3E9C2D2E9C2D4EAC4D4EBC4D6EC C5D5ECC5D7EDC5D5ECC4D6ECC5D5ECC4D6ECC5D5ECC4D6ECC5D5ECC2D7EABBD5E4BAD6E2BAD6E2 BAD6E2BCD6E3BCD6E3BED5E3BED5E3BFD5E3BFD5E3C1D4E3C2D5E4C4D5E5C5D6E6C6D6E6C6D8E6 C8DAE8C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C7DBE6C7DBE6C5DBE6C8DEECC6DDEBC5DCEAC3DAE8C1D8E6C0D7E5BED5E3BED5E3BCD3E1BCD3E1 BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E3BCD3E5BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7C3D5E9C3D6E7C4D7E8C5D8E9 C5D8E9C6D9EAC7DAEBC7DAEBC4D7E8C3D6E7C1D4E5C0D3E4BFD2E3BFD2E3C0D3E4C1D4E5C1D4E5 C2D5E4C2D5E4C3D6E5C4D7E6C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C6D9E8C7DAE9C7DAE9C8DBEA C9DCEBCADBEBCBDBEACDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CFDDEACFDDEACEDCE9 CDDBE8CDDBE8CCDAE7CBD9E6C9D9E6C3D9E4C1D9E3C1D7E2C0D6E1C1D5E0C2D6E1C4D6E2C5D7E3 CBDBE8CBDBE8CEDCE9CFDDEAD0DCEAD1DDEBD2DEECD2DEEAD4DEE7D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DDE3D2DDE3 D3DEE4D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D4E1E9D1DFEACFDFECCFDFECCFDFECD0E0EDD0E0EDD0E0EDD0E0EDCEDEEB CEDEEBCDDDEACCDCE9CBDBE8CBDBE8CADAE7C9DBE9C8DBEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEA C6DCEAC6DCEAC5DBE9C5DBE9C4DAE8C3D9E7C3D9E7C2D8E6C1D7E5C3D6E5C7D7E6CAD8E5CDDBE8 CFDDEAD0DEEBD0DEEBCFDDEACEDCE9CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CBDBE8 C6D6E3C5D7E3C3D6E4C3D6E4C0D6E4BFD6E4BED5E5BBD7E5B6D1E2B4D1E1B0CFE1ADCEDFADCEE1 ABCEE1ACCFE2ADD0E3ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ABCBE0ABCBE0A9CCE0A9CCE0A9CCE2A9CCE2A9CCE2 A9CCE2ADCDE2ABCCDFADC9DEB0CBDCB8D2E1C3DAE8CEE4F1D7E9F3E4EFF3E6EEF0E7EFF1E8F0F2 E8F0F2E9F1F3EAF2F4EAF2F4E8F0F2E9F1F3EBF3F5ECF4F6EAF2F4E5EDEFE0E8EADDE5E7E2E7EA E4E8EBE5E9ECE7EBEEE9EDF0EBEFF2EDF1F4EEF2F5EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EEF3F7ECF1F7EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9EBF2FAEAF1F9E9F0F8 E7EEF6E6EDF5E4EBF3E3EAF2E2E9F1E7EBF4E6EAF3E6EAF3E6EAF3E6EAF3E6EAF3E6EAF3E5E9F2 E7EBF4E8ECF5E9EDF6EBEFF8ECF0F9EEF2FBEFF3FCF0F5FBF3F6FBF3F7FAF4F8FBF5F9FCF5F9FC F6FAFDF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFCFAFAFCFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFDFFFEFDFEFFFBFFFFFAFEFFF9FDFFF9FDFFF8FCFFF7FBFEF7FBFEF7FBFE F7FBFEF6FAFDF5F9FCF5F9FCF4F8FBF3F7FAF3F7FAF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FC F5F9FCF5F9FCF5F9FCF5F9FCF4F8FBF3F7FAF3F7FAF2F6F9F1F5F8F1F5F8EFF3F6EFF3F6EFF3F6 EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EEF2F5EDF1F4EDF1F4ECF0F3EBEFF2EAEFF3 EAEFF5E8EFF7E8EFF7E7EEF6E6EDF5E5ECF4E5ECF4E4EBF3E3EAF2E3EAF2E2E9F1E1E8F0E0E7EF E0E7EFDFE6EEDEE7EEDCE5EEDAE4EDD9E3ECD8E2EBD6E0E9D4DEE7D3DDE6D3DDE6ACD1E3ACD1E3 ACD1E3ACD1E3ADD0E3ADD0E3AFD0E3AFD0E3B0CFE3B0CFE3B2CEE3B3CFE4B5D0E5B6D1E6B7D0E6 B7D2E7B5D1E6B3D2E4B4D3E5B7D4E6B8D5E5B9D4E5BAD6E4BBD5E2BFD6E4BFD7E3C1D7E4C2D8E3 C5D9E4C5D9E4C6DAE5C7D9E5CADAE7CADAE7CBDBE8CCDCE9CDDDEACDDDEACEDEEBCEDEEBCEDEEB CEDEEBCFDFECD0E0EDD1E1EED1E1EED2E2EFD4E2EDD8E5EEDAE4EDDAE4EDDAE4EDDAE4EDDAE4ED DAE4EDDAE4EDDCE6EFDCE6EFDBE5EEDAE4EDDAE4EDD9E3ECD8E2EBD6E3EBD3E6EDCEE5EBCCE3E9 C9E0E6C6DFE6C3DCE3C0DBE6BFDAE5C0DCE8BEDCE7BDDAE8B9D9E6B5D5E4B0D1E0ACCDDCAACBDC ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ACD0E8ADD1E9ADD1E7AED2E8B0D3E7B1D4E8B4D3E7 B4D3E7B7D4E6B7D4E6B9D4E5B9D4E5BBD5E4BCD6E5BDD7E6BFD6E6C1D3E7C3D4E8C4D3E8C4D5E9 C6D5EAC6D7EBC7D6EBC6D7EBC8D7ECC7D8ECC8D7ECC7D8ECC8D7ECC7D8ECC8D7ECC6D8ECBDD7E6 BCD8E4BCD8E4BCD8E4BCD6E3BCD6E3BED5E3BED5E3BFD5E3C0D6E4C2D5E4C3D6E5C5D6E6C6D7E7 C7D7E7C6D8E6C9DBE9C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C7DBE6C7DBE6C7DBE6 C7DBE6C7DBE6C7DBE6C7DBE6C5DBE6C7DDEBC5DCEAC4DBE9C3DAE8C2D9E7C0D7E5BFD6E4BFD6E4 BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E3BCD3E5BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7C3D5E9C3D5E9 C4D6EAC5D7EBC5D7EBC6D8ECC7D9EDC7D9EDC5D7EBC4D6EAC2D4E8C0D2E6BFD1E5BFD1E5BFD1E5 C0D3E4BFD4E5BFD4E5BFD4E5C0D5E6C1D6E7C2D7E8C2D7E8C3D8E9C3D8E9C3D8E9C4D9EAC5DAEB C5DAEBC6DBECC7DCEDC9DCEBCBDBEACDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CFDDEA CFDDEACEDCE9CDDBE8CDDBE8CCDAE7CBD9E6C9D9E6C1D7E2BED9E2BED6E0BED6E0BFD5E0C0D6E1 C3D7E2C5D9E4CADCE8CADCE8CCDCE9CDDDEACFDDEAD0DEEBD2DEECD2DEEAD4DEE7D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D2DDE3D2DDE3D3DEE4D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E9D1DFEACFDFECCFDFECCFDFECCEDEEBCEDEEBCEDEEB CEDEEBCCDCE9CCDCE9CBDBE8CBDBE8CADAE7C9D9E6C8D8E5C7D9E7C4DAE8C3DAEAC3DAEAC3DAEA C3DAEAC3DAEAC3DAEAC3DAEAC4DBEBC4DBEBC3DAEAC2D9E9C2D9E9C1D8E8C0D7E7C1D7E5C7D7E6 CBD9E6CCDAE7CEDCE9CFDDEACEDCE9CDDBE8CCDAE7CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8 CDDBE8CBDBE8C6D6E3C5D7E3C4D7E5C3D6E4C1D7E5C0D7E5C0D7E7BDD9E7B8D3E4B5D2E2B1D0E2 AECFE0ADCEE1ABCEE1ACCFE2ACCFE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ABCBE0ABCBE0A9CCE0A9CCE0A9CCE2 A9CCE2A9CCE2A9CCE2ADCDE2ACCDE0B0CCE1B3CEDFBBD5E4C5DCEACFE5F2D7E9F3E2EFF5E5EFF1 E6F0F2E7F1F3E7F1F3E8F2F4E9F3F5E9F3F5E6F0F2E7F1F3E8F2F4E8F2F4E6F0F2E2ECEEDEE8EA DDE5E8E3E8EBE5E9ECE6EAEDE8ECEFEAEEF1ECF0F3EEF2F5EEF2F5EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EFF3F6EFF3F6EEF3F7ECF1F7EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9EAF1F9 E9F0F8E8EFF7E6EDF5E5ECF4E3EAF2E2E9F1E1E8F0E5EAF0E7EAF1E7EAF1E7EAF1E7EAF1E7EAF1 E7EAF1E8EBF2E9ECF3EAEDF4EBEEF5EDF0F7EEF1F8F0F3FAF1F4FBF2F5FCF3F6FBF3F7FAF4F8FB F5F9FCF5F9FCF6FAFDF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFC FAFAFCFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFDFEFFFBFFFFFAFEFFF9FDFFF9FDFFF8FCFFF7FBFE F7FBFEF7FBFEF7FBFEF6FAFDF5F9FCF5F9FCF4F8FBF3F7FAF3F7FAF5F9FCF5F9FCF5F9FCF5F9FC F5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF4F8FBF3F7FAF3F7FAF2F6F9F1F5F8F1F5F8EFF3F6 EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EEF2F5EDF1F4EDF1F4ECF0F3 EBEFF2EAEFF3EAEFF5E7EEF6E7EEF6E6EDF5E5ECF4E4EBF3E4EBF3E4EBF3E1E8F0E1E8F0E0E7EF E0E7EFDFE6EEDEE5EDDDE4ECDCE5ECDAE3ECD9E3ECD8E2EBD6E0E9D4DEE7D3DDE6D2DCE5D1DBE4 ACD1E3ACD1E3ACD1E3ACD1E3ADD0E3ADD0E3AFD0E3AFD0E3AFCEE2AFCEE2B2CEE3B2CEE3B4CFE4 B5D0E5B7D0E6B6D1E6B4D0E5B2D1E5B2D1E3B3D2E4B6D3E5B7D4E4B8D3E4B9D5E3BCD6E5BED5E3 BFD5E2C0D6E3C3D7E2C4D8E3C4D8E3C5D9E4C8DAE6C9D9E6C9D9E6CADAE7CBDBE8CCDCE9CCDCE9 CDDDEACDDDEACDDDEACDDDEACEDEEBCFDFECD0E0EDD0E0EDD3E1ECD8E5EEDAE4EDDAE4EDDAE4ED DAE4EDDAE4EDDAE4EDDAE4EDDCE6EFDCE6EFDBE5EEDAE4EDDAE4EDD9E3ECD8E2EBD5E4EBD2E5EC CDE4EAC9E0E6C4DDE2C1DAE1BDD8DFBDD8E3BCD8E3BBD9E4BBD9E4B9D9E6B8D8E5B4D5E4B1D2E1 AECFDEACCDDEABCEE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7ADD1E9ADD1E9AED2E8AFD3E9B1D4E8 B1D4E8B5D4E8B5D4E8B8D5E7B9D6E8BAD5E6BBD6E7BDD7E6BED8E7BED8E7C0D7E7C3D4E8C4D3E8 C7D3E9C6D5EAC9D5EBC7D6EBCAD6ECC8D7ECCBD7EDC9D8EDCBD7EDC9D8EDCBD7EDC9D8EDCBD7ED C8D9EBC1D8E6BEDAE6BDD9E5BDD9E5BDD7E4BCD6E3BED5E3BED5E3C0D6E4C0D6E4C3D6E5C4D7E6 C6D7E7C6D7E7C8D8E8C7D9E7C8DAE8C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C5DBE6C4DAE8C3DAE8C2D9E7C1D8E6C0D7E5C0D7E5 BFD6E4BED5E3BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E3BCD3E5BCD2E7BCD2E7 BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 C3D5E9C3D5E9C4D6EAC5D7EBC5D7EBC6D8ECC7D9EDC7D9EDC6D8ECC5D7EBC2D4E8C0D2E6BFD1E5 BED0E4BFD1E5BFD1E5BED3E4BED3E4BFD4E5BFD4E5C0D5E6C1D6E7C2D7E8C2D7E8C3D8E9C3D8E9 C4D9EAC5DAEBC5DAEBC6DBECC7DCEDC9DCEBCBDBEACDDBE8CDDBE8CDDBE8CDDBE8CDDBE8CDDBE8 CDDBE8CFDDEACFDDEACEDCE9CDDBE8CDDBE8CCDAE7CBD9E6C8DAE6C1D7E2BDD8E1BED6E0BED6E0 C0D6E1C1D7E2C5D9E4C6DAE5CADCE8CADCE8CCDCE9CDDDEACFDDEAD0DEEBD2DEECD2DEEAD4DEE7 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D2DDE3D2DDE3D3DEE4D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D7E2E8D7E2E8 D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E9D1DFEACFDFECCFDFECCEDEEBCDDDEA CDDDEACCDCE9CCDCE9CBDBE8CADAE7CADAE7C9D9E6C8D8E5C7D7E4C7D7E4C6D8E6C3D9E7C2D9E9 C2D9E9C2D9E9C2D9E9C2D9E9C2D9E9C2D9E9C4DBEBC4DBEBC3DAEAC2D9E9C2D9E9C1D8E8C0D7E7 C1D7E5C8D8E7CBD9E6CCDAE7CDDBE8CEDCE9CDDBE8CCDAE7CBD9E6CCDAE7CCDAE7CCDAE7CCDAE7 CCDAE7CCDAE7CCDAE7CADAE7C7D7E4C6D8E4C5D8E6C4D7E5C2D8E6C0D7E5C0D7E7BDD9E7BAD5E6 B7D4E4B3D2E4AFD0E1AECFE2ABCEE1ACCFE2ACCFE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ABCBE0ABCBE0A9CCE0 A9CCE0A9CCE2A9CCE2A9CCE2A9CCE2AFCFE4AFD0E3B3CFE4B7D2E3BFD9E8C9E0EED1E7F4D9EBF5 E2EFF5E5EFF1E6F0F2E7F1F3E7F1F3E8F2F4E9F3F5E9F3F5E7F1F3E7F1F3E5EFF1E4EEF0E3EDEF E2ECEEE1EBEDE2EAEDE7ECEFE8ECEFE9EDF0EBEFF2ECF0F3EDF1F4EEF2F5EFF3F6EEF2F5EEF2F5 EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EDF2F6EBF0F6E9F0F8E9F0F8E9F0F8E9F0F8E9F0F8E9F0F8 E9F0F8E9F0F8E8EFF7E7EEF6E6EDF5E4EBF3E2E9F1E1E8F0E3E7F0E5E8EFE6E9F0E6E9F0E7EAF1 E7EAF1E8EBF2E8EBF2E9ECF3EAEDF4EBEEF5ECEFF6EDF0F7EFF2F9F1F4FBF2F5FCF2F5FAF3F6FB F3F7FAF4F8FBF5F9FCF5F9FCF6FAFDF7FBFEF7FBFEF6FAFDF6FAFDF6FAFDF6FAFDF6FAFDF6FAFD F6FAFDF6FAFBF9F9FBF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFDFEFFFBFFFFFAFEFFF9FDFFF9FDFF F8FCFFF7FBFEF7FBFEF7FBFEF7FBFEF6FAFDF5F9FCF5F9FCF4F8FBF3F7FAF3F7FAF5F9FCF5F9FC F5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF4F8FBF3F7FAF3F7FAF2F6F9F1F5F8 F1F5F8EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EEF2F5EDF1F4 EDF1F4ECF0F3EBEFF2EAEFF3E9EEF4E7EEF6E6EDF5E5ECF4E4EBF3E4EBF3E3EAF2E3EAF2E0E7EF DFE6EEDFE6EEDEE5EDDDE4ECDCE3EBDCE3EBDBE4EBD9E2EBD7E1EAD6E0E9D4DEE7D3DDE6D1DBE4 D0DAE3CFD9E2ABD1E4ABD1E4ACD1E4ACD1E4ACD1E4ADD0E4AFCFE4AFCFE4AECDE2AECDE2B1CDE3 B2CEE4B4CEE5B4CEE5B5CFE6B4D0E6B0CFE3B0D1E4B1D0E4B2D1E3B3D2E4B6D3E3B7D2E3B8D4E2 BAD4E3BBD5E2BDD5E1BED6E2C0D6E1C1D7E2C1D7E2C4D8E3C6D8E6C7D9E7C7D9E7C8DAE8C9DBE9 CADCEACADCEACBDDEBCADCEACBDDEBCBDDEBCCDEECCDDFEDCEE0EECEE0EED0E0EDD8E5EEDAE4ED DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDCE6EFDCE6EFDBE5EEDAE4EDDAE4EDD9E3ECD8E2EB D5E4EBD1E4EBCBE2E8C5DEE3C1DADFBDD6DDBAD5DCB9D4DFB9D5E0B7D5E0B8D6E1B6D6E3B6D6E3 B4D5E4B3D4E3AED2E0ADD1E1ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AED2EAAED2EAAFD3E9 AFD3E9B1D4E8B2D5E9B6D5E9B6D5E9B9D6E8BAD7E9BBD6E7BCD7E8BED8E7BFD9E8BFD9E8C3D8E9 C5D4E7C7D4E7C9D4E8C8D5E8CAD5E9CAD7EACCD7EBCBD8EBCED9EDCDDAEDCED9EDCDDAEDCED9ED CDDAEDCED9EDCBDAEDC2D9E7BFDBE7BEDAE6BDD9E5BDD7E4BCD6E3BED5E3BDD4E2C1D7E5C1D7E5 C4D7E6C4D7E6C6D7E7C7D8E8C9D9E9C8DAE8C7D9E7C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5 C6DAE5C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C5DBE6C2D8E6C1D8E6C0D7E5BFD6E4 BFD6E4BED5E3BED5E3BDD4E2BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E3BCD3E5 BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7C3D5E9C3D5E9C4D6EAC5D7EBC5D7EBC6D8ECC7D9EDC7D9EDC7D9EDC5D7EBC3D5E9 C0D2E6BED0E4BED0E4BED0E4BED0E4BDD2E3BDD2E3BED3E4BFD4E5C0D5E6C0D5E6C1D6E7C1D6E7 C3D8E9C3D8E9C4D9EAC5DAEBC5DAEBC6DBECC7DCEDC9DCEBCBDBEACDDAEACDDAEACDDAEACDDAEA CDDAEACDDAEACDDAEACFDCECCFDCECCEDBEBCDDAEACDDAEACCD9E9CBD8E8C8DAE8C1D7E4BED9E4 BDD8E3BDD8E3C0D8E4C2DAE6C5DBE8C8DBE9CADCEACADCEACCDCEBCDDDECCFDCECD0DDEDD1DEEE D2DEECD4DEE7D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D2DDE3D2DDE3D3DEE4D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E9D0E0EDCEE0EECEE0EE CDDFEDCCDEECCBDDEBCADCEACADCEAC9DBE9C8DAE8C8DAE8C7D9E7C6D8E6C5D7E5C5D7E5C3D6E4 C1D7E5C0D7E7C0D7E7C0D7E7C0D7E7C0D7E7C0D7E7C0D7E7C4DBEBC4DBEBC3DAEAC2D9E9C2D9E9 C1D8E8C0D7E7C1D7E5C8D8E7CBD9E6CCDAE7CDDBE8CDDBE8CCDAE7CAD8E5C9D7E4CBD9E6CBD9E6 CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6C9D9E6CADAE7C8DAE6C6D9E7C5D8E6C2D8E6C0D7E5BFD6E6 BCD8E6BBD6E7B8D5E5B4D3E5B0D1E2AECFE2ACCFE2ACCFE2ACCFE2ACCAE2ACCAE2ACCAE2ACCAE2 ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ACCAE2ABCBE0 ABCBE0A9CCE0A9CCE0A9CCE2A9CCE2A9CCE2A9CCE2B1D1E6B1D2E5B6D2E7BBD6E7C3DDECCCE3F1 D4EAF7DBEDF7E2EFF5E4EFF1E5F0F2E6F1F3E6F1F3E7F2F4E8F3F5E8F3F5E8F3F5E6F1F3E2EDEF DFEAECDFEAECE1ECEEE4EFF1E8F2F4ECF1F4EDF1F4EDF1F4EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5 ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3EBF0F4EAEFF5E8EFF7E8EFF7E8EFF7E8EFF7 E8EFF7E8EFF7E8EFF7E8EFF7E8EFF7E7EEF6E5ECF4E3EAF2E2E9F1E1E8F0E2E6EFE5E8EFE7E7EF E8E8F0E9E9F1E9E9F1EAEAF2EBEBF3EBEBF3EDEDF5EDEDF5EEEEF6F0F0F8F2F2FAF3F3FBF4F4FC F5F6FBF3F6FBF3F7FAF4F8FBF5F9FCF5F9FCF6FAFDF7FBFEF7FBFEF5F9FCF5F9FCF5F9FCF5F9FC F5F9FCF5F9FCF5F9FCF5F9FAF8F8FAF8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8FEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFDFEFFFBFFFFFAFEFF F9FDFFF9FDFFF8FCFFF7FBFEF7FBFEF7FBFEF7FBFEF6FAFDF5F9FCF5F9FCF4F8FBF3F7FAF3F7FA F5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF4F8FBF3F7FAF3F7FA F2F6F9F1F5F8F1F5F8EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6 EEF2F5EDF1F4EDF1F4ECF0F3EBEFF2EAEFF3E8EDF3E6EDF5E5ECF4E5ECF4E4EBF3E3EAF2E2E9F1 E2E9F1DFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDBE2EADBE2EAD9E2E9D8E1EAD6E0E9D5DFE8D3DDE6 D2DCE5D0DAE3CFD9E2CED8E1ACD1E4ACD1E4ACD1E4ACD1E4ADD0E4ADD0E4AFCFE4AFCFE4AECDE2 AECDE2AFCEE3B1CDE3B2CEE4B3CFE5B4D0E6B2D1E6AFD0E3ADD0E3B0D1E4B0D1E4B1D2E3B3D2E4 B6D3E5B7D2E3B9D4E5BAD4E3BBD5E4BDD4E2BED5E3C0D6E3C1D7E5C1D7E4C5D8E7C6D8E6C7D8E8 C7D9E7C8D9E9C9DBE9CADBEBCADCEACADBEBCADCEACBDCECCBDDEBCCDDEDCDDFEDCEDFEFCFDFEC D8E5EED8E5EDDAE4EDD8E5EDDAE4EDD8E5EDDAE4EDD8E5EDDCE6EFDAE7EFDBE5EED8E5EDDAE4ED D7E4ECD8E2EBD5E4EBD0E3EACAE1E7C4DBE1BED7DEBBD4DBB7D2DBB7D2DDB7D3DEB5D1DDB5D3DE B7D4E2B6D6E3B6D6E5B3D4E3B2D3E2AFD3E3ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ADCDE6ADCDE6ADCDE6ADCDE6 ADCDE6ABCDE6ADCDE4ABCEE4AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E6AFD2E8AFD2E8AFD2E8 AFD2E8B0D3E9B1D4E8B4D4E9B4D5E8B6D5E9B8D5E7BBD6E9BBD6E7BDD7E8BED8E7C1D8E8C1D8E8 C2D9E9C3D8E9C4D5E5C5D5E5C6D6E6C9D6E7CAD7E8CAD7E8CBD8E9CBD8E9CED9EBCED9EBCED9EB CED9EBCED9EBD0D8EBD0D8EBCDDAEBC4DAE7C1DCE7C2DAE6C1D9E5C0D8E4BED6E2BFD5E2BED4E1 C3D6E4C3D6E4C4D7E5C6D8E6C7D9E7C7D9E7C9D9E8C9D9E6C6D8E4C6D8E2C6D8E2C6D8E2C6D8E2 C6D8E2C6D8E4C6D8E4C8DAE6C8DAE6C8DAE6C7DBE6C8DAE6C7DBE6C7DAE8C7DAE8BFD6E4BDD7E6 BED5E5BCD6E5BDD4E4BBD5E4BDD4E4BAD4E3BCD3E3BAD4E3BCD3E3BAD4E3BCD3E3BAD4E3BCD3E3 BCD3E3BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7BCD2E7BCD2E7C1D6E9C1D6E7C4D6EAC3D8E9C5D7EBC4D9EAC7D9EDC5DAEBC8DAEE C4D9EAC3D5E9BED3E4BED0E4BBD0E1BDCFE3BCD1E2BDD2E5BCD3E3BDD4E4BDD4E4BED5E5C0D5E6 C1D6E7C1D6E7C3D8E9C3D8E9C4D9EAC7DAEBC7DAEBC8DBECC9DCEDCADBEBCDDAEACDDBE8CDDBE8 CDDBE8CDDBE8CDDAEACDDAEACDDAEACFDCECCDDDECCCDCEBCBDBEBCBDBEBCADAEAC9D9E9C8D9E9 C1D8E6BED9E4BED9E4C0D8E4C1D9E5C4DAE7C6DCE9CADDEBCADCEACADCE8CCDCE9CDDDEACFDDEA D0DEEBD1DFECD2DEEAD4DEE7D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DDE3D2DDE3D4DDE4D4DFE5D5DEE5D5E0E6D7E0E7 D6E1E7D9E2E9D8E3E9D9E2E9D8E3E9D9E2E9D8E3E9D9E2E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E9D0E0ED CDE0EECEE0EECBDEECCBDDEBC9DCEAC9DBE9C8DBE9C8DAE8C7DAE8C7D9E7C5D8E6C5D7E5C4D7E5 C4D6E4C3D6E4C1D6E7C0D7E7C0D7E7C0D7E7C0D7E7C0D7E7C0D7E7C0D7E7C4DBEBC4DBEBC3DAEA C2D9E9C2D9E9C1D8E8C0D7E7C1D7E5C8D8E7CBD9E6CCDAE7CDDBE8CCDAE7CBD9E6CAD8E5C8D6E3 CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6C9D9E6CCDCE9CADCE8C9DBE9C6D9E7C4D7E6 C1D7E5BED5E5BCD6E5BCD7E8BAD5E6B6D3E5B3D0E2AFCEE2AECFE2AECFE2AECFE2ACCBE0ACCBE0 ACCAE2ACCBE0ACCAE2ACCBE0ACCAE2ACCBE0ACCAE2ACCBE0ACCAE2ACCBE0ACCAE2ACCBE0ACCAE2 ACCBE0ABCBE2ABCBE0ABCBE0ABCBE0ABCBE2ABCBE2ABCBE0ACCBE0B3D2E6B6D2E7BAD5E8BFD9EA C7DEECCFE5F2D8EBF9DDEFF9E4EFF3E5EFF0E6F0F2E7F1F2E7F1F3E8F2F3E9F3F5E9F3F4EBF5F7 E7F1F2E2ECEEDEE8E9DFE9EBE3EDEEE9F3F5EEF6F8F0F4F7F2F3F5F2F3F5F2F3F5F1F2F4EFF3F6 EEF2F5EEF2F5EBEFF2EBEFF2EBEFF2EAEFF3EAEFF3EAEFF3EAEFF3EAEFF3E8EFF7E7F0F7E8EFF7 E7F0F7E8EFF7E7F0F7E8EFF7E7F0F7E8EFF7E6EFF6E6EDF5E4EDF4E3EAF2E1EAF1E0E7EFE0E7EF E3E7F0E5E8F1E5E8F1E6E9F0E8EBF2E9ECF3E9ECF3EAEDF4EBEEF5EEEEF6EFEFF7F0F1F6F2F3F8 F3F4F9F5F6FBF5F6FBF3F7FAF2F7FAF4F8FBF4F9FCF5F9FCF5FAFDF7FBFEF6FBFEF5F9FCF4F9FC F5F9FCF4F9FCF5F9FCF4F9FCF5F9FCF5F9FCF7F8FAF7F9F8F8F8FAF7F9F8F8F8FAF7F9F8F8F8FA F7F9F8FEFEFFFDFFFEFEFEFFFDFFFEFEFEFFFDFFFEFEFEFFFDFFFEFEFEFEFDFFFEFEFEFEFDFFFE FEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFBFFFF FBFFFFFAFEFFF9FDFFF9FDFFF8FCFFF7FBFEF7FBFEF7FBFEF7FBFEF6FAFDF5F9FCF5F9FCF4F8FB F3F7FAF3F7FAF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF4F8FB F3F7FAF3F7FAF2F6F9F1F5F8F1F5F8EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EFF3F6EEF2F5EDF1F4EDF1F4ECF0F3EBEFF2EBEFF2E8EDF3E6EDF3E5ECF4E4EBF3E3EAF2 E3EAF2E2E9F1E2E9F1DEE5EDDDE6EDDCE5EEDBE4EDDAE3ECDAE3ECD9E2EBD8E2EBD4E1EAD3E0E9 D2DFE8D1DEE7CFDCE5CDDAE3CCD9E2CCD9E2A9CCE0ABCEE2ACCFE3AED1E5B1D1E6B1D1E6B0D0E5 AFCFE4ACCCE1ACCCE1ADCDE2AFCEE3B0CFE4B2D1E6B2D1E6B2D2E7AFD2E5AED3E5AFD2E5AFD2E5 AFD2E5B1D2E5B1D2E5B2D1E3B8D5E7B9D4E7B9D4E7BAD3E7BAD3E7BCD3E5BCD2E7BDD2E5C3D6E7 C3D6E5C3D6E7C3D6E5C3D6E7C3D6E5C3D6E7C3D6E5C6D9EAC6D9E8C7DAEBC8DBEAC9DCEDC9DCEB CADDEECBDDEBD2E0E9D2E1E8D3E0E8D2E1E8D3E0E8D2E1E8D3E0E8D2E1E8D3E0E8D2E1E8D4E1E9 D4E3EAD5E2EAD5E4EBD7E4ECD6E5ECCFE2E9CBDFE8C6DAE3C0D6E1BCD2DDBAD2DEBBD3DFB9D3E0 B8D2E1B7D3E1B5D2E2B5D2E2B4D1E3B1D0E2B0CFE1AFD0E3ABCEE2ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6AFCFE8AECCE8AECBE9 AFCDE9B0CEEAB0CEEAB0CFEBB2D0EAB1D1EAAFCFE6AFCFE6ADD0E4ADD0E4ACD1E4ACD1E3ACD1E4 ADD0E4B3D3EAB3D3EAB5D3EBB6D5EAB9D5EBB9D5EABBD6EBBBD6E9BAD3E7BAD4E5BDD4E6BDD4E4 BFD4E5C0D6E4C1D7E5C1D7E5C3D9E6C3D9E6C3D9E6C5D8E6C5D8E6C6D8E6C6D8E6C7D7E6CDDAEA CEDAEACEDAEAD0D9EAD0D9EAD1D8EAD1D8EAD0D9E8C9DAE4C7DBE4C8DAE4C8DAE4C8DAE4C8DAE4 C8DAE4C8DAE4C6D8E2C6D8E2C7D9E3C8D9E3C9DAE4CADBE5CBDCE6CBDCE4CDDBE4CDDCE3CDDCE3 CDDCE3CDDBE4CDDBE4CBDCE6CBDCE6CEDEEBCCDCE9C8D8E7C4D6E4C4D4E3C3D5E3C3D4E4C3D6E5 C0D7E9BDD8EBBDD6EABCD7EABCD5E9BAD5E8BAD3E7B9D4E7BAD3E7B9D4E7BAD3E7B9D4E7BAD3E7 B9D4E7BAD3E7BAD3E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BED4E9BED4E9 BED4E9BED4E9BED4E9BED4E9BED4E9BED5E7BED5E5BED5E3C0D5E6C0D7E5C1D6E7C1D8E6C3D8E9 C2D9E7C3D8E9C0D7E5C0D5E6BDD4E2BDD2E3BCD3E1BED3E4BED5E5B8D2E3B8D2E3BAD4E5BBD5E6 BDD7E8C0D7E9C1D8E8C2D9E9C2D7E8C2D7E8C5D8E7C6D7E7C7D8E8C8D9E9C9DAEACADAE9C8D4E2 CAD6E2CDD9E5CFDBE7CFDBE7CDDBE8CAD7E7C7D7E6C9D9E9C8D9E9C9DAEACADBEDCADDEECADDEE CBDEEFC9DEEFC2D9E9C2D9E7C3DAE8C5DBE9C6DCE9C8DBE9C9DDE8CADCE8CFE1EDD0E1EBD2E0EB D1DFEAD2DFE8D2DFE8D1DEE6D1DEE6D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D5DEE5D5DEE5D7DEE6D7E0E7D8DFE7 D8E1E8DAE1E9D9E2E9DAE1E9D9E2E9DAE1E9D9E2E9DAE1E9D9E2E9DAE1E9D9E2E9D8E2EBD8E2EB D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7 D2DFE8D0E2ECCDE3EECDE1ECCAE0EBCADEE9C7DDE8C8DCE7C5DBE6C5D9E4C4DAE5C8DCE7C7DDE8 C9DDE8C6DCE7C6DAE5C3D9E6C0D7E7C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9 C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C1D6E7C4D6E4C6D6E3C7D7E4C8D8E5CADAE7CCDCE9 CDDDEACDDDEACBDBE8CBDBE8CADAE7CADAE7C9D9E6C8D8E5C7D7E4C7D7E4CADBE5C8D9E3C5D5E2 C1D3DFC0D2E0C1D4E2C3D6E5C2D8E6BBD2E2BBD2E2B8D2E3B7D1E2B4CFE2B3CEE1B1CDE2B1CDE2 B2D1E5B2D1E5B1D0E5B0CFE3B0CFE4AFCEE2AECDE2AECDE1AECDE2AECDE1AECDE2AECDE1AECDE2 AECDE1AECDE2AECDE2AECEE5AECEE5AECEE5AECCE4AECDE2AFCBE1AECADFAFCADDB4CEDFBCD3E5 C5DCECCBE1EFCFE2F0D1E3EFD4E6F2DAE8F1E2EAEDE5E9EAE6EAEDE7EBECE7EBEEE8ECEDE9EDF0 E9EDEEE6EAEDE6EAEBE8ECEFEAEEEFECF0F3EEF2F3EFF3F6F0F4F5F4F4F4F4F4F4F3F3F3F3F3F3 F2F2F2F0F1F3EFF0F2EDF1F4ECF0F3EBF0F4EAEFF3E7EEF4E7EEF4E6EDF3E5ECF2E4EDF4E5EEF5 E4EEF7E5EEF7E4EEF7E5EEF7E4EEF7E5EEF7E4EEF7E0E9F2DFE9F2DFE8F1DEE8F1DEE7F0DCE6EF DCE5EEDBE5EEDEE7F0DEE7F0DFE8F1E0E9F0E3EAF2E4EBF3E7ECF2E7ECF2EAEFF3EDF0F5EFF2F7 F0F4F7F3F4F8F3F4F8F2F3F7F0F4F7F0F5F8EEF6F8F0F5F8EEF6F8F0F5F8EEF6F8F0F5F8EEF6F8 F2F7FAF0F8FAF2F7FAF0F8FAF2F7FAF0F8FAF2F7FAF2F7FAF3F7FAF3F7F8F6F7FBF5F9FAF8F9FD F6FAFBF9FAFEF7FBFCF9FAFEF7FBFCFAFBFFF9FDFEFCFDFFFAFEFFFDFEFFFBFFFFFDFFFEFBFFFC FDFFFCFBFFFCFDFFFCFBFFFCFDFFFCFBFFFCFDFFFCFBFFFCFDFFFCFBFFFCFDFFFCFBFFFCFDFFFC FBFFFEFBFFFFFBFFFFFAFEFFFAFEFFF9FDFFF8FCFFF7FBFEF7FBFEF5F9FCF5F9FCF5F9FCF5F9FC F5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF3F7FA F3F7FAF2F6F9F2F6F9F1F5F8F0F4F7EFF3F6EFF3F6F5F6F8F5F6F8F4F5F7F4F5F7F3F4F6F2F3F5 F1F2F4F1F2F4F1F2F4F1F2F4F0F1F3EEEFF1ECEDEFEBECEEEAEBEDE7EBEEE6EBEFE6EBEFE5EAF0 E3E8EEDFE6ECDEE5EBDCE5ECDBE4EBDDE6EFDCE6EFD9E6EFD7E4EDD4E2EDD3E1ECD2E0EBD1DFEA CDDDEACCDEECCBDDEBC9DBE9C7D9E7C6D8E6C5D7E5C4D6E4AFCFE4AFCFE4B0D0E5B1D1E6B0D0E5 B0D0E5AFCFE4AECEE3ADCDE2ADCDE2AECEE3AFCFE4B0D0E5B1D1E6B1D1E6B0D3E7AED3E5ADD4E5 AED3E5AED3E5AFD2E5AFD2E5B1D2E5B2D1E5B8D4E9B8D4E9B9D4E9B9D4E9BAD3E9BAD3E9BCD2E9 BCD2E7C1D6E9C3D6E7C3D6E7C3D6E7C3D6E7C3D6E7C3D6E7C3D6E7C5D8E9C6D9EAC6D9EAC7DAEB C8DBECC9DCEDC9DCEDC9DCEBCFE0EACFE0E7D1DFE8CFE0E7D1DFE8CFE0E7D1DFE8CFE0E7D2E0E9 D0E1E8D3E1EAD2E3EAD4E2EBD3E4EBD6E4EDD4E5EDCEE0EACADEE7C6DAE5C2D6E1BDD3E0BBD1DE BAD1DFB9D3E0B8D2E1B7D3E1B5D2E2B4D1E1B3D0E2B3D0E2B0CFE3AFD0E3ADCDE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6AFCFE8 AECBE9B0CAEBB1CCEAB2CDEBB0CDEBB1CFEBB2D0EAB2D0EAAFCFE6AFCFE6ADD0E4ADD0E4ADD0E3 ACD1E3ACD1E3ADD0E3B3D2E7B4D2EAB6D2E8B7D3E9B9D4E9BAD5EABBD4E8BBD4E8BCD3E5BDD4E4 BED3E4BFD5E3C2D5E4C3D6E5C3D6E5C2D8E5C2DAE4C0DBE4C2DAE4C2DAE4C3D9E4C3D9E4C6D8E4 C6D8E4CDDBE8CDDBE8D0D9E8D0D9E8D1D8E8D1D8E8D2D8E8D0DAE6CBD9E4C9DAE2C9DAE2C9DAE2 C9DAE2C9DAE2C9DAE2C9DAE2C8D9E1C8D9E1C9DAE2C9DAE2CADBE3CBDCE4CCDDE5CCDDE4CDDCE3 CEDBE1CEDBE1CEDBE1CEDBE3CEDBE4CDDBE6CDDBE6D0DEEBCEDCE9C8D8E7C5D5E4C4D4E4C4D4E4 C3D4E4C3D6E7BED7EBBDD8EDBCD7ECBBD6EBBAD5EABAD5EAB9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED5E7BED5E5BED5E3BFD6E4C0D7E5C0D7E5 C1D8E6C2D9E7C2D9E7C2D9E7C0D7E5BFD6E4BDD4E2BCD3E1BCD3E1BDD4E2BCD6E5B8D2E3B8D3E6 B9D4E5BAD5E6BDD7E8BFD9EAC2D9E9C2D9E9C3D8E9C5D8E9C6D7E7C7D8E8C9D9E9CADAEACADAEA CDDAEAC9D5E1CDD7E1CDDAE3CFDCE5CFDBE7CCDAE5C8D8E7C7D7E6C7D8E8C8D9E9C7DAEBC8DBEC C7DCEFC8DDF0C8DDF0C9DEF1C2D9E9C2D9E9C4DAE8C4DAE8C7DAE8C8DBE9CADCE8CADCE8CFE0EA CFE0EAD1DFE8D1DFE8D2DFE7D2DFE7D1DEE4D1DEE4D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D6DDE5D6DDE5D7DEE6 D8DFE7D8DFE7D9E0E8DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9 D9E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9 D5DFE8D4DEE7D1DFE8D0E2ECCCE2EDCBE1ECCAE0EBC8DEE9C6DCE7C5DBE6C5DBE6C3D9E4C4DAE5 C5DBE6C6DCE7C6DCE7C5DBE6C4DAE5C3D9E6C0D7E7C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9 C0D7E9BFD6E8BFD6E8BFD6E8BFD6E8BFD6E8BFD6E8BFD6E8C0D5E6C3D5E3C5D5E2C6D6E3C8D8E5 C9D9E6CBDBE8CCDCE9CDDDEACBDBE8CBDBE8CADAE7C9D9E6C8D8E5C8D8E5C7D7E4C7D7E4CCDAE7 CAD8E3C5D5E2C2D2DFC1D3E1C1D3E1C2D5E4C3D6E5BACFE0B9D0E0B9D0E2B6D0E1B6CFE3B5CEE2 B4CFE4B3CFE4B4D0E5B2D1E5B1D0E4B0CFE3B0CFE3AFCEE2AECDE1AECDE1AECDE1AECDE1AECDE1 AECDE1AECDE1AECDE1AECDE1AECDE2AECEE5AECEE7AFCDE5AFCDE5B0CCE2B1CCE1B2CBDFB2CCDD B9CEE1C0D5E6CADDECD0E2F0D3E3F0D4E4F1D7E7F4DCE9F2E4E9EDE7E8EAE8E9EBE9EAECE9EAEC EAEBEDEBECEEEBECEEEAEBEDEAEBEDECEDEFEDEEF0EFF0F2F1F2F4F2F3F5F3F4F6F4F4F4F4F3F1 F4F3F1F2F2F0F1F1F1EFF1F0EFF0F2ECF0F3EBF0F4EBF0F4E8EFF5E8EFF5E6EFF6E5EEF5E4EDF4 E4EDF4E4EEF7E4EEF7E4EEF7E4EEF7E4EEF7E4EEF7E4EEF7E4EEF7DEE8F1DEE8F1DEE8F1DDE7F0 DCE6EFDBE5EEDBE5EEDAE4EDD9E6EFDAE7F0DDE7F0DFE9F2E2EBF4E4EDF4E6EDF5E7EEF4EAEFF3 EBF0F4EEF2F5F0F4F7F3F4F6F3F4F6F2F3F5EFF3F4F0F5F8EEF6F8EEF6F8EEF6F8EEF6F8EEF6F8 EEF6F8EEF6F8F0F8FAF0F8FAF0F8FAF0F8FAF0F8FAF0F8FAF0F8FAF0F8FAF3F7FAF3F7FAF4F8FB F4F8FBF5F9FCF6FAFDF7FBFEF7FBFEF7FBFEF7FBFEF8FCFFF8FCFFF9FDFFFAFEFFFBFFFFFBFFFF FBFFFEFBFFFCFBFFFCFBFFFCFBFFFCFBFFFCFBFFFCFBFFFCFBFFFCFBFFFCFBFFFCFBFFFCFBFFFC FBFFFCFBFFFCFBFFFEFBFFFFFAFEFFFAFEFFF9FDFFF8FCFFF7FBFEF7FBFEF6FAFDF5F9FCF5F9FC F5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FCF5F9FC F5F9FCF3F7FAF3F7FAF2F6F9F1F5F8F0F4F7F0F4F7EFF3F6EFF3F6F5F6F8F4F5F7F4F5F7F3F4F6 F2F3F5F1F2F4F1F2F4F0F1F3F1F2F4F0F1F3EFF0F2EDEEF0ECEDEFEAEBEDE9EAECE6EAEDE5EAEE E5EAEEE4E9EDE0E8EBDEE5EBDCE5EADBE4EBD9E4EADBE5EED9E6EFD7E5F0D5E3EED1E1EED0E0ED CFDFECCDDFEBCCDDEDCADDECC9DCEBC7DAE9C6D9E8C4D7E6C3D6E5C2D5E4B5D4E8B5D4E8B4D3E7 B3D2E6B1D0E4B0CFE3AECDE1AECDE1AFCEE2AFCEE2B0CFE3B0CFE3B1D0E4B2D1E5B2D1E5B1D2E5 AFD2E5AED3E5AFD2E5AFD2E5AFD2E5AFD2E5B1D2E5B2D1E5B7D3E8B7D3E8B8D3E8B8D3E8B9D2E8 B9D2E8B9D2E8BBD1E6BFD4E7BFD4E5BFD4E5BFD4E5BFD4E5BFD4E5BFD4E5BFD4E5C2D7E8C2D7E8 C3D8E9C4D9EAC4D9EAC5DAEBC6DBECC8DBEACBDDE9CBDEE5CCDDE7CBDEE5CCDDE7CBDEE5CCDDE7 CBDEE5CFE0EACEE1E8D0E1EBD0E3EAD2E3EDD1E4EBD3E4EED2E4EECBDFE8C9DDE8C3D9E4C0D6E1 BDD3E0BCD2DFBAD1DFB8D2DFB7D1E0B6D1E2B4D1E3B4D1E3B1D0E4B0CFE3AFCEE2AECFE2ADCDE4 ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6AFCFE8AECCE8B0CBE9B1CCEAB2CDEBB0CEEAB1CFEBB2D0EAB2D0EAB0D0E7B0D0E7B0D0E5 B0D0E5B0D1E4AED1E4AED2E2AED1E4B3D2E7B5D1E7B6D2E8B6D2E8B8D3E8B9D4E9BAD3E7BBD4E8 BED5E7BFD4E5C1D4E5C2D5E4C4D5E5C5D7E5C5D7E5C5D8E6C4DAE5C3DBE5C3DBE5C3DBE5C4DAE5 C4DAE5C7D9E5C7D9E5CDDBE8CDDBE8D0D9E8D0D9E8D1D8E8D1D8E8D1D8E8D0DAE6CBD9E4C8DBE2 C8DBE2C8DBE2C8DBE2C8DBE2C8DBE2C8DBE2C8DBE2C8DBE2C9DCE3CADDE4CBDEE5CBDEE5CCDFE6 CDDEE5CDDCE3CEDBE1CEDBE3CEDBE3CDDBE4CDDBE4CDDBE6CDDBE6CEDEEBCCDCE9C8D8E7C5D5E4 C3D4E4C3D4E4C3D4E6C3D5E9BDD6EABCD7ECBBD6EBBBD6EBBAD5EAB9D4E9B8D3E8B8D3E8B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED5E7BED5E5BED5E3BFD6E4 C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C2D9E7C0D7E5BFD6E4BDD4E2BCD3E1BCD3E1BDD4E2BCD6E5 B9D3E4B8D3E4BAD4E5BCD6E7C0D7E9C1D8EAC3D8E9C4D9EAC6D9E8C6D9E8C8D9E9C9DAEACADAE9 CBDBEACCDCEBCEDCE9CBD7E3CCD9E2CDDAE3CEDBE4CDDBE6CBD9E4C8D8E7C7D7E6C6D7E7C7D8E8 C6D9EAC7DAEBC6DBEEC7DCEFC6DDEFC6DDEFC1D8E8C1D8E8C2D9E7C3DAE8C5DBE9C5DBE8C8DCE7 C9DBE7CEDFE9CEDFE9D0DEE7D0DEE7D1DEE6D1DEE6D2DFE7D2DFE7D4DEE7D4DEE7D4DEE7D4DEE7 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D6DDE5 D6DDE5D7DEE6D8DFE7D8DFE7D9E0E8DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9D9E2E9D9E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E1EA D6E0E9D6E0E9D5DFE8D4DEE7D1DFE8CFE1EBCCE2EDCBE1ECC9DFEAC7DDE8C6DCE7C5DBE6C4DAE5 C3D9E4C4DAE5C5DBE6C6DCE7C6DCE7C5DBE6C4DAE5C3D9E6BFD6E6BFD6E8BFD6E8BFD6E8BFD6E8 BFD6E8BFD6E8BFD6E8BCD3E5BCD3E5BCD3E5BCD3E5BCD3E5BCD3E5BCD3E5BDD2E3C1D4E3C3D5E3 C4D6E4C6D8E6C7D9E7C9DBE9CADCEACBDDEBC9DBE9C9DBE9C8DAE8C8DAE8C7D9E7C6D8E6C5D7E5 C5D7E3C8D8E5C7D7E4C5D5E2C3D3E0C1D3E1C1D3E1C1D4E3C2D5E4B8CDDEB7CEE0B7CDE2B6CFE3 B6CFE5B6D1E6B6D1E6B5D1E6B4D0E5B2D1E5B1D0E4B0CFE3B0CFE3AFCEE2AECDE1AECDE1AECDE1 AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE2AFCDE5AFCDE5AFCDE5AFCDE5B2CEE4B3CEE3 B4CDE1B5CFE0BDD2E5C3D8E9CDE0EFD3E5F3D5E5F2D6E6F3DBE9F4DFECF5E4E9EDE5E9ECE6EAED E7EBEEE7EBEEE8ECEFE9EDF0E9EDF0EAEEF1EBEFF2ECF0F3EDF1F4EFF3F6F0F4F7F1F5F8F4F5F7 F2F2F2F2F2F2F2F2F2F1F1F1F0F0F2EEEFF1EEEFF3EBEFF2EBF0F4EBF0F4E8EFF5E6EFF6E6EFF6 E5EEF5E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6DDE7F0DDE7F0 DCE6EFDBE5EEDBE5EEDAE4EDD9E3ECD9E3ECD6E3ECD7E4EDD9E6EFDCE9F1E1EBF4E3EEF4E7F0F7 E9F0F6E9EEF2EBF0F4EEF2F5EFF3F6F2F3F5F2F3F5F1F2F4EFF3F4EFF4F7EDF5F7EDF5F7EDF5F7 EDF5F7EDF5F7EDF5F7EDF5F7EFF7F9EFF7F9EFF7F9EFF7F9EFF7F9EFF7F9EFF7F9EFF7F9F2F6F9 F2F6F9F3F7FAF4F8FBF5F9FCF5F9FCF6FAFDF6FAFDF6FAFDF6FAFDF7FBFEF8FCFFF9FDFFF9FDFF FAFEFFFAFEFFFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDF9FDFCF9FDFCF9FDFC F9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFEF9FDFFF9FDFFF8FCFFF7FBFEF6FAFDF6FAFDF5F9FC F4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FBF4F8FB F4F8FBF4F8FBF4F8FBF2F6F9F2F6F9F1F5F8F1F5F8F0F4F7EFF3F6EEF2F5EEF2F5F1F5F8F1F5F8 F1F5F8F0F4F7EFF3F6EEF2F5EEF2F5EDF1F4EEF2F5EDF1F4ECF0F3EAEEF1E9EDF0E7EBEEE6EAED E5E9ECE4E9EDE3E8ECE0E7EDDEE5EBDDE4ECDAE3EAD9E2EBD7E1EADAE4EED7E4EDD5E3EED3E1EC D0E0EDCEDEEBCDDDEACBDDE9CBDCECC9DCEBC8DBEAC6D9E8C5D8E7C3D6E5C2D5E4C1D4E3BBDAEE B9D8ECB7D6EAB4D3E7B1D0E4AFCEE2AECDE1ADCCE0B1D0E4B1D0E4B1D0E4B1D0E4B2D1E5B2D1E5 B2D1E5B2D1E5AFD2E5AFD2E5AFD2E5AFD2E5AFD2E5B1D2E5B2D1E5B2D1E5B6D2E7B6D2E7B7D2E7 B7D2E7B7D2E7B8D1E7B8D1E7B8D1E5BDD4E6BED3E4BED3E4BED3E4BED3E4BED3E4BED3E4BED3E4 C0D5E6C0D5E6C1D6E7C2D7E8C2D7E8C3D8E9C4D9EAC4DAE8C7DAE8C7DBE6C7DBE6C7DBE6C7DBE6 C7DBE6C7DBE6C7DBE6CBDFEACBDFEACCE0EBCDE1ECCEE2EDCEE2EDCFE3EECFE3EEC8DCE7C7DBE6 C2D8E3C0D6E1BED4E1BBD3DFB8D2DFB7D1E0B5D0E1B4D1E1B4D1E3B1D0E2B0CFE3AFCEE2AFCEE2 ADCDE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6AFCFE8AECCE8B0CBE9B1CCEAB2CDEAB0CEEAB1CFE9B2D0EAB2D0E8B2D0E8 B1D1E6B2D1E6B1D2E5B2D1E5B1D2E3B1D2E3B1D2E3B5D1E6B5D1E7B6D2E8B7D2E7B8D3E8BAD3E7 BBD4E8BDD4E6C0D5E6C0D6E4C3D6E5C4D7E5C6D8E6C6D8E6C7D9E7C6D9E7C5DBE6C4DCE6C4DCE6 C4DCE6C5DBE6C7DBE6C8DAE6C8DAE6CDDBE8CDDBE8CEDAE8D0D9E8D1D8E8D1D8E8D1D8E8CEDAE8 C9DAE4C8DBE2C8DBE2C8DBE2C8DBE2C8DBE2C8DBE2C8DBE2C9DCE3C9DCE3CADDE4CADDE4CBDEE5 CCDFE6CCDFE6CDE0E7CDDCE3CEDBE1CEDBE3CDDCE3CDDBE4CDDBE4CDDBE6CBDCE6CEDEEBCCDCE9 C8D8E7C4D6E4C3D4E4C3D4E4C3D4E6C3D5E9BCD5E9BBD6EBBBD6EBBAD5EAB9D4E9B8D3E8B8D3E8 B7D2E7B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BCD2E7BCD2E7BCD2E7BCD2E7 BCD2E7BCD2E7BCD2E7BCD2E7BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED5E7BED5E5 BED5E3BFD6E4C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C2D9E7C0D7E5BFD6E4BDD4E2BCD3E1BCD3E1 BDD4E2BED5E3B9D3E2B9D4E5BBD5E6BDD7E8C0D7E9C2D9E9C4D9EAC5DBE9C8DBEAC8DBEACADBEB CBDDEBCCDCEBCDDDECCEDEEDD0DEEBCDD9E5CDDAE3CDDAE3CCDAE3CBD9E4C8D9E3C7D7E6C6D8E6 C5D6E6C4D7E6C5D8E9C3D8E9C4D9ECC4DBEDC5DCEEC5DCEEC0D7E7C1D8E8C1D8E6C2D9E7C4DAE8 C5DBE9C7DAE8C7DBE6CBDDE9CCDDE7CFDDE6CFDDE6D1DEE6D1DEE6D2DFE7D2DFE7D4DEE7D4DEE7 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 D4DEE7D6DDE5D6DDE5D7DEE6D8DFE7D8DFE7D9E0E8DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9D9E2E9D9E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EB D8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7D2DFE8CFE1EBCBE1ECCAE0EBC8DEE9C7DDE8C5DBE6 C4DAE5C3D9E4C2D8E3C3D9E4C4DAE5C5DBE6C5DBE6C4DAE5C3D9E4C2D8E5BFD4E5BED5E7BED5E7 BED5E7BED5E7BED5E7BED5E7BED5E7BAD1E3BAD1E3BAD1E3BAD1E3BAD1E3BAD1E3BAD1E3BBD0E1 C0D3E2C1D3E1C2D4E2C4D6E4C6D8E6C7D9E7C8DAE8C9DBE9C8DAE8C8DAE8C8DAE8C7D9E7C6D8E6 C5D7E5C5D7E5C4D6E4C6D6E5C5D5E2C4D4E1C2D4E0C1D3E1C0D3E1C0D3E2BED3E4B5CCDEB5CCDE B4CDE1B5CEE2B6D1E6B7D2E7B8D3E8B7D3E8B2D1E5B2D1E5B1D0E4B0CFE3B0CFE3AFCEE2AECDE1 AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECCE4AFCDE5AFCDE5B3CFE5 B5D0E5B6D1E6B8D1E5BAD1E3C1D6E7C9DCEBD2E4F2D6E8F4D8E8F5D9EAF4DDEBF6E2ECF5E2E9EF E5E9ECE6EAEDE7EBEEE7EBEEE8ECEFE9EDF0E9EDF0EDF1F4EDF1F4EEF2F5EFF3F6F0F4F7F1F5F8 F2F6F9F2F6F9F0F1F3F1F1F1F0F0F0EEF0EFEDEEF0EBEFF0EAEEF1E9EEF2EAEFF3E8EFF5E6EFF6 E5EEF5E4EDF4E3EDF6E2ECF5E2ECF5E1EBF4E1EBF4E1EBF4E1EBF4E1EBF4E1EBF4E1EBF4E1EBF4 DBE5EEDBE5EEDAE4EDD9E3ECD9E3ECD8E2EBD7E1EAD5E2EAD3E0E9D4E1EAD7E4EDDBE8F1E0EAF4 E4EEF7E7F0F9E9F2F9E7EEF4EAEFF3EDF0F5EFF3F6F1F2F6F1F2F4F0F1F3EEF2F3EEF3F6ECF4F6 ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6EEF6F8EEF6F8EEF6F8EEF6F8EEF6F8EEF6F8EEF6F8 EEF6F8F1F5F8F2F6F9F2F6F9F3F7FAF4F8FBF5F9FCF5F9FCF5F9FCF5F9FCF6FAFDF6FAFDF7FBFE F8FCFFF9FDFFF9FDFFF9FDFEF9FDFEF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF8FCFB F8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFFF8FCFFF7FBFEF6FAFDF5F9FCF5F9FC F4F8FBF4F8FBF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FA F3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF1F5F8F1F5F8F1F5F8F0F4F7EFF3F6EEF2F5EEF2F5EDF1F4 F0F4F7F0F4F7EFF3F6EEF2F5EDF1F4EDF1F4ECF0F3ECF0F3ECF0F3EBEFF2EAEEF1E9EDF0E7EBEE E5E9ECE4E8EBE3E8EBE1E6EADFE7EADEE5EBDCE3E9D9E2E9D8E1E8D6E0E9D3E0E8D5E2EBD4E2EB D3E1ECCFE0EACDDDEACCDCE9CBDBE8C9DBE9C8DBEAC7DAE9C6D9E8C5D8E7C3D6E5C1D4E3C0D3E2 C0D3E2C1DEF0BEDBEDBAD7E9B6D3E5B3D0E2B1CEE0B1CEE0B1CEE0B5D2E4B5D2E4B5D2E4B5D2E4 B4D1E3B4D1E3B4D1E3B2D1E3B1D2E5B1D2E5B1D2E5B1D2E5B1D2E5B1D2E5B2D1E5B2D1E5B4D3E7 B4D3E7B6D2E7B6D2E7B6D2E7B7D2E7B7D2E7B8D1E5BBD2E4BBD2E4BBD2E4BBD2E4BBD2E4BBD2E4 BBD2E4BBD2E4BDD4E6BDD4E6BED5E7BFD6E8BFD6E8C0D7E9C1D8EAC1D8E8C1D7E5C1D7E4C1D7E4 C1D7E4C1D7E4C1D7E4C1D7E4C1D7E4C5DBE8C6DCE9C6DCE9C7DDEAC8DEEBC9DFECC9DFECCAE0ED C3D9E6C2D8E5C1D7E4C0D6E3BDD4E2BBD2E0B7D1E0B6D0DFB5D0E1B3D0E0B3D0E2B0CFE3AFCEE2 ADCEE1ADCDE2ADCDE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6AFCFE8AECCE8AECBE9AFCDE9B0CEEAB2CDEAB3CEE9B4CFEA B4D0E8B4D0E8B2D1E6B4D0E6B2D1E5B4D0E5B2D1E3B2D1E3B4D1E3B6D2E7B8D3E8B8D3E8BAD3E7 BBD4E8BED5E7BED5E7C0D5E6C2D7E8C4D7E6C6D7E7C6D8E6C8D8E7C9D9E6CADAE7C9DBE7C7DBE6 C5DBE6C5DBE6C5DBE6C7DBE6C7DBE6C8DAE6C8DAE6CDDBE8CDDBE8CEDAE8CEDAE8D0D9E8D0D9E8 D0D9E8CEDAE8C9DAE4C7DBE4C7DBE4C7DBE4C7DBE4C7DBE4C7DBE4C7DBE4C7DBE4C7DBE4C8DCE5 C8DCE5C9DDE6CADEE7CBDFE8CCDFE6CDDCE3CDDCE3CDDBE4CDDBE4CDDBE6CBDCE6CBDBE8CBDBE8 CEDEEDCBDDEBC7D8E8C4D5E5C3D4E6C2D5E6C2D4E8C1D6E9BCD5E9BAD5EABAD5EAB9D4E9B8D3E8 B7D2E7B7D2E7B7D2E7B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BCD2E7BCD2E7 BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9 BED5E7BED5E5BED5E3BFD6E4C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C2D9E7C0D7E5BFD6E4BDD4E2 BCD3E1BCD3E1BDD4E2BED5E3BAD4E3BBD5E4BED5E5C0D7E7C1D8E8C3DAEAC5DAEBC8DBEACBDCEC CBDDEBCDDDECCEDEEDD0DDEDD1DFECD2E0EDD2E0EDCFDBE7CEDBE4CCDAE3CBD9E2CAD8E3C7D8E2 C7D7E6C6D8E6C3D4E4C2D5E4C3D6E7C2D7E8C3D8EBC2D9EBC3DAECC1DBECC0D7E7C0D7E7C0D7E7 C1D8E8C3D9E7C4DAE8C6D9E7C7DBE6C9DBE7C9DBE5CBDCE4CCDDE5CFDDE6D0DEE7D2DFE7D2DFE7 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 D4DEE7D4DEE7D4DEE7D6DDE5D6DDE5D7DEE6D8DFE7D8DFE7D9E0E8DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9D9E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EB D8E2EBD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7D2DFE8CEE0EACCE0EBCBDFEAC9DDE8 C8DCE7C6DAE5C5D9E4C4D8E3C3D7E2C4D8E3C5D9E4C6DAE5C6DAE5C5D9E4C4D8E3C1D7E4BFD5E3 BFD4E5BFD4E5BFD4E5BFD4E5BFD4E5BFD4E5BFD4E5BACFE0BACFE0BACFE0BACFE0BACFE0BACFE0 BACFE0BACFE0BED1E0BFD2E1C0D3E2C1D4E3C3D6E5C5D8E7C6D9E8C6D9E8C7DAE9C6D9E8C6D9E8 C5D8E7C4D7E6C3D6E5C3D6E5C3D6E4C3D5E3C3D5E3C3D5E3C3D5E3C2D3E3C0D3E2BFD2E3BCD1E2 B5CCDEB5CCDEB4CDE1B4CFE4B6D1E6B7D2E7B7D3E9B7D3E9B2D1E5B2D1E5B1D0E4B0CFE3B0CFE3 AFCEE2AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECCE4AECCE4 B2CEE4B4D0E6B7D2E7B9D4E9BBD4E8BED5E7C4D9EACCDFEED4E6F4D9E9F6DCEAF7DCEAF5DFEBF7 E3EDF6E2E9EFE4E9EDE5EAEEE6EBEFE6EBEFE7ECF0E8EDF1E8EDF1EDF2F6EDF2F6EDF2F6EEF3F7 EFF4F8EFF4F8F0F5F9F1F5F8EEEFF1EEEFF1EDEEF0EDEEF0ECEDF1E9EDF0E8EBF0E7ECF0E5ECF2 E4EDF4E3ECF3E1EBF4E0EAF3DEEBF4DDEAF3DDEAF3DCE9F2DCE9F2DCE9F2DCE9F2DCE9F2DCE9F2 DCE9F2DCE9F2D7E4EDD7E4EDD6E3ECD5E2EBD5E2EBD4E1EAD3E0E9D3E0E9D2DEEAD3E1ECD5E3EE D9E7F0DDEAF3E1EEF6E6F0F9E8F1F8E6EDF3E7EFF2EBF0F4EDF2F5EFF3F6EEF2F5EEF2F5EDF1F4 EEF3F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6EEF6F8EEF6F8EEF6F8EEF6F8EEF6F8 EEF6F8EEF6F8EEF6F8F1F5F8F1F5F8F1F5F8F2F6F9F3F7FAF4F8FBF4F8FBF5F9FCF5F9FCF5F9FC F5F9FCF6FAFDF7FBFEF8FCFFF8FCFFF9FDFEF9FDFEF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFC F9FDFCF6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAFDF6FAFDF5F9FCF5F9FC F4F8FBF3F7FAF2F6F9F2F6F9F3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FA F3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF1F5F8F0F4F7F0F4F7EFF3F6EEF2F5EDF1F4 EDF1F4EDF1F4EDF2F6EDF2F6ECF1F5ECF1F5EBF0F4EAEFF3E9EEF2E9EEF2E9EEF2E9EEF2E8EDF1 E6EBEFE4E9EDE3E8ECE2E7EBE1E6EADFE4EADCE3E9DBE2EAD9E2E9D7E0E7D5DEE5D3DDE6D1DEE7 D3DFEBD1DFEAD0DEEBCDDDEACBDBEAC8DAE8C7D9E7C7D9E7C6D9E8C6D9E8C5D8E7C3D6E5C1D4E3 C0D3E2BFD2E1BED1E0C3E0F2C0DDEFBBD8EAB6D3E5B4D1E3B3D0E2B4D1E3B5D2E4B7D4E6B7D4E6 B6D3E5B6D3E5B5D2E4B4D1E3B4D1E3B4D1E3B2D1E5B1D2E5B2D1E5B1D2E5B1D2E5B1D2E5B2D1E5 B2D1E5B3D2E6B3D2E6B5D1E6B5D1E6B5D1E6B5D1E6B5D1E6B6D1E6B8D1E5BAD1E3BAD1E3BAD1E3 BAD1E3BAD1E3BAD1E3BAD1E3BBD2E4BBD2E4BCD3E5BDD4E6BDD4E6BED5E7BFD6E8BFD6E8BBD5E4 BBD5E2BBD5E4BBD5E2BBD5E4BBD5E2BBD5E4BBD5E2BED8E7BED8E5BED8E7BFD9E6C0DAE9C1DBE8 C1DBEAC4DBE9BFD6E4C0D6E3C1D7E4BFD7E3BED5E3BAD4E1B7D1E0B4CFE0B3D0E0B1D0E2B0CFE3 AECFE2ADCEE1ADCDE2ACCCE1ACCCE1ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADCFE8AECCE8AECCE8AFCDE9B0CEE8B2CDE8 B3CFE7B4D0E8B4D0E6B5D1E7B5D1E6B5D1E6B6D1E4B6D1E4B6D1E2B6D1E2B6D1E2BAD5E8BCD5E9 BCD5E9BDD7E8C0D7E9C1D8E8C2D7E8C4D7E6C5D8E7C7D9E7C7D9E7C9D9E6CADAE7CBDCE6CDDBE8 CBDBE8C8DCE7C6DCE7C8DCE7C8DCE7C8DCE7C8DCE7C9DBE7CADAE7CBDBE8CDDBE8CEDAE8CEDAE8 CEDAE8CEDAE8D0D9E8CDDBE8C8DAE6C7DBE4C7DBE6C7DBE4C7DBE6C7DBE4C7DBE6C7DBE4C5D9E4 C5D9E2C6DAE5C6DAE3C7DBE6C8DCE5C9DDE8C9DDE6CBDCE4CDDBE4CDDBE4CBDCE4CBDCE6CBDCE6 CBDBE8CADCE8CDDFEDCBDDEBC7D8E8C3D6E5C2D5E6C2D5E6C2D4E8C1D6EBBBD4EABAD5EAB9D4E9 B8D3E8B7D2E7B7D2E7B6D1E6B6D1E6B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BED4E9BED4E9BED4E9BED4E9BED4E9 BED4E9BED4E9BED5E7BED5E5BED5E3BFD6E4C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C2D9E7C0D7E5 BFD6E4BDD4E2BCD3E1BCD3E1BDD4E2BED5E3BBD5E4BCD6E5BFD6E6C0D7E7C2D9E9C5DBE9C8DBEA C8DBE9CDDFEDCDDFEDCFDFEED0E0EDD2E0EDD3E1EED4E2EFD4E2EDD1DFE8CFDDE6CCDAE3C8D9E1 C6D7E1C5D7E1C6D8E6C5D8E6C1D4E3BFD5E3BFD4E5BFD6E6C0D7E9BFD9EABFD9EAC0DAEBBFD6E6 BFD6E6C0D7E7C0D7E7C2D8E6C3D9E7C6D9E7C6D9E7C7D9E5C8DAE6CADBE5CBDCE4CFDDE6D0DEE7 D2DFE7D3E0E8D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D6DDE5D6DDE5D7DEE6D8DFE7D8DFE7D9E0E8DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9D9E2EBD8E2EBD8E2EBD8E2EBD8E2EB D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7D2DFE8CDDFE9CBDFEA CADEE9C9DDE8C7DBE6C5D9E4C4D8E3C4D8E3C2D6E1C3D7E2C4D8E3C5D9E4C5D9E4C4D8E3C3D7E2 C2D5E3C0D3E2BED3E4BED3E4BED3E4BED3E4BED3E4BED3E4BED3E4BBD0E1BBD0E1BBD0E1BBD0E1 BBD0E1BBD0E1BBD0E1BBD0E1BCCFDEBDD0DFBED1E0C0D3E2C1D4E3C3D6E5C4D7E6C5D8E7C6D9E8 C6D9E8C5D8E7C4D7E6C3D6E5C3D6E5C2D5E4C2D5E4C1D2E2C2D4E2C3D5E3C2D5E3C1D4E3BDD3E1 BBD0E1B9D0E2B7CEE0B5CEE2B4CFE4B5D0E5B5D0E5B5D1E7B5D1E7B5D1E7B2D1E5B2D1E5B1D0E4 B0CFE3B0CFE3AFCEE2AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1 ADCCE1B0CCE2B2CEE4B6D1E6B9D4E9BDD6EAC1D8EAC3D8E9C7DAE9CEE0EED6E6F3DAEBF5DCEAF5 DBE9F2DEEBF4E2ECF5E2E9EFE4E9EDE5EAEEE6EBEFE6EBEFE7ECF0E8EDF1E8EDF1EDF2F6EDF2F6 EDF2F6EDF2F6EDF2F6EDF2F6EDF2F6EDF2F6EBEFF2EAEEEFECEDF1E9EDF0E8ECEFE6EBEFE6EBEF E4EBF1E0E9F0DFE9F2DEE8F1DBE8F1DAE7F0DAE7F0D9E6EFD9E6EFD8E5EED8E5EED8E5EED8E5EE D8E5EED8E5EED8E5EED8E5EED5E2EBD5E2EBD4E1EAD3E0E9D3E0E9D2DFE8D1DEE7D0DEE7D2E0EB D3E1ECD6E4EFD8E6F1DCE8F4DFECF5E3EDF7E4EEF7E4EDF4E6EDF3E8EFF5ECF1F5EEF1F6EEF2F5 EDF1F4EBF0F3EBF3F5EBF3F5EBF3F5EBF3F5EBF3F5EBF3F5EBF3F5EBF3F5EDF5F7EDF5F7EDF5F7 EDF5F7EDF5F7EDF5F7EDF5F7EDF5F7F0F4F7F0F4F7F1F5F8F1F5F8F2F6F9F3F7FAF4F8FBF4F8FB F4F8FBF4F8FBF5F9FCF5F9FCF6FAFDF7FBFEF8FCFFF8FCFFF8FCFDF8FCFBF8FCFDF8FCFBF8FCFD F8FCFBF8FCFDF8FCFBF5F9FAF5F9F8F5F9FAF5F9F8F5F9FAF5F9F8F5F9FAF5F9FAF5F9FCF4F8FB F4F8FBF3F7FAF2F6F9F1F5F8F1F5F8F1F5F8F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9 F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F0F4F7F0F4F7EFF3F6EEF2F5 EDF1F4EDF1F4ECF0F3ECF0F3ECF1F5EBF0F4EBF0F4EAEFF3E9EEF2E8EDF1E8EDF1E8EDF1E8EDF1 E7ECF0E6EBEFE4E9EDE3E8ECE1E6EAE0E5E9DDE5E8DBE2E8D9E2E7D8E1E8D6DFE6D5DEE5D2DCE5 CFDCE5CDDBE4D0DEE9CDDEE8CCDCE9C9DBE7C8DAE8C6D8E6C5D7E5C4D6E4C5D8E7C4D7E6C3D6E5 C1D4E3C0D3E2BED1E0BDD0DFBCCFDEC4DFF0C1DCEDBCD7E8B7D2E3B5D0E1B6D1E2B8D3E4BAD5E6 B9D4E5B9D4E5B8D3E4B7D2E3B6D1E2B5D0E1B5D0E1B3D0E2B4D0E5B2D1E5B4D0E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B4D0E5B6CFE3B6CFE3 B6CFE3B6CFE3B6CFE3B6CFE3B6CFE3B6CFE3B8D1E5B8D1E5B8D1E5B9D2E6BAD3E7BBD4E8BBD4E8 BCD6E7B7D2E3B7D3E1B7D2E3B7D3E1B7D2E3B7D3E1B7D2E3B7D3E1B8D3E4B8D4E2B9D4E5BAD6E4 BBD6E7BBD7E5BCD7E8BCD8E6BCD3E1BDD4E2BFD6E4BDD7E4BCD6E5BAD4E3B6D1E2B3D0E0B2CFE1 B0CFE3AFCEE2AECEE3ADCDE2AACDE3A9CCE2A9CCE2ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6AECCE6AECCE6AFCDE7 B0CEE8B2CDE8B3CFE7B4D0E8B4D0E6B7D1E8B7D2E7B7D2E5B8D2E3B8D2E3B8D2E3B8D2E3B8D2E3 BED8E9C1D8EAC1D8EAC2D9EBC4D9ECC5DAEBC7DAEBC8DBEAC7D9E7C9D9E6C9D9E6CCDAE5CDDBE6 CEDCE5CFDBE7CFDDE8CADCE8C9DDE8CADCE8CADCE8CADCE8CADCE8CBDBE8CBDBE8CBDBE8CBDBE8 CDDBE8CDDBE8CDDBE8CDDBE8CEDAE8CBDBE8C7DBE6C5DBE6C5DBE8C5DBE6C5DBE8C5DBE6C5DBE8 C5DBE6C0D6E3C1D7E2C1D7E4C2D8E3C3D9E6C3D9E4C4DAE7C6DAE5CBDCE6CBDCE6CBDCE6CBDCE6 CBDBE8CADCE8CADCEACADCEACDDEEECADDECC6D9EAC1D6E7C0D5E8C0D5E8C0D5EAC0D6EBBAD3E9 B9D4E9B8D3E8B8D3E8B7D2E7B6D1E6B5D0E5B5D0E5B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BED4E9BED4E9BED4E9 BED4E9BED4E9BED4E9BED4E9BED5E7BED5E5BED5E3BFD6E4C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7 C2D9E7C0D7E5BFD6E4BDD4E2BCD3E1BCD3E1BDD4E2BED5E3BED5E3BED5E3C0D6E4C2D8E6C4DAE8 C7DAE9C8DBEACADCEACFDFEED0E0EDD2E0EDD3E1EED5E1EFD6E2EED6E2EED5E3EED2E0E9CEDFE7 CADBE3C7D8E0C5D6E0C4D6E0C5D7E5C5D8E6BFD2E1BED4E2BDD4E4BCD6E5BDD7E8BED8E9BED8E9 BED9EABCD6E7BCD6E7BDD7E6BED8E7C1D8E8C1D8E6C3D9E6C5D8E6C6D8E4C6D8E4C9DAE4CADBE5 CEDCE5D0DEE7D1DFE8D3E0E9D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D6DDE5D6DDE5D7DEE6D8DFE7D8DFE7D9E0E8 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9D9E2EBD8E2EBD8E2EB D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7D2DFE8 CDDEE8CCDEEACBDDE9C9DBE7C7D9E5C6D8E4C5D7E3C4D6E2C3D5E1C4D6E2C5D7E3C6D8E4C6D8E4 C5D7E3C4D6E2C2D5E3BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BED1E0BED1E0 BED1E0BED1E0BED1E0BED1E0BED1E0BED1E0B9CEDFBACFE0BBD0E1BDD2E3BED3E4C0D5E6C1D6E7 C2D7E8C3D8E9C3D8E9C2D7E8C2D7E8C1D6E7C0D5E6BFD4E5BFD5E3BFD2E1C0D3E2C2D5E4C2D5E4 C2D5E6BDD2E3BACFE2B7CEE0B7D0E4B6D1E6B6D1E6B4D0E6B4D0E6B1CFE7B1CFE7B1D0E5B2D1E5 B2D1E5B1D0E4B0CFE3B0CFE3AFCEE2AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1 AECDE1AECDE1AECADFB1CCE1B3CEE3B7D2E7BBD4E8C1D8EAC3DAECC6DBECC7DAE9CEE0EED6E6F3 DBE9F4DCE8F4DBE8F1DFE9F3E1EBF4E2E9EFE2E9EFE3EAF0E4EBF1E4EBF1E5ECF2E6EDF3E6EDF3 E9F0F6E9F0F6E9F0F6E9F0F6E9F0F6E9F0F6E9F0F6EBF0F4E9EEF2E8EDF0E9ECF1E7ECF0E6EBEF E3EAF0E3EAF0E1EAF1DCE5ECDBE5EED8E5EED6E4EFD5E3EED5E3EED4E2EDD4E2EDD4E2EDD4E2ED D4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD3E1ECD2E0EBD2E0EBD1DFEAD0DEE9CFDDE8CFDDE8 CFDDE8D4E2EFD3E3F0D4E4F1D6E7F1DAE8F3DCEAF3DEEBF4E1EBF4E3EDF6E5EEF5E8EFF5E9F1F4 ECF1F5ECF1F5EBF0F4EBF0F4EAF2F4EAF2F4EAF2F4EAF2F4EAF2F4EAF2F4EAF2F4EAF2F4ECF4F6 ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6EFF3F6EFF3F6F0F4F7F1F5F8F2F6F9F2F6F9 F3F7FAF3F7FAF3F7FAF3F7FAF4F8FBF5F9FCF6FAFDF6FAFDF7FBFEF7FBFEF7FBFEF7FBFCF7FBFE F7FBFCF7FBFEF7FBFCF7FBFEF7FBFCF3F7FAF3F7F8F3F7FAF3F7F8F3F7FAF3F7F8F3F7FAF3F7FA F4F8FBF3F7FAF3F7FAF2F6F9F1F5F8F0F4F7F0F4F7EFF3F6F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8 F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8EFF3F6EFF3F6 EEF2F5EEF2F5EDF1F4ECF0F3EBEFF2EBEFF2EBF0F4E8EFF5E8EFF5E7EEF4E6EDF3E5ECF2E5ECF2 E4EBF1E5ECF2E4EBF1E3EAF0E1E8EEE0E7EDDEE5EBDDE4EADCE3E9D9E0E8D7E0E7D6DFE8D4DEE7 D2DCE5CEDBE4CDDAE3CCDAE5CEDCE9CBDBE8CADAE9C8DAE8C6D7E7C3D6E5C2D5E4C2D5E4C4D7E6 C3D6E5C2D5E4C0D3E2BFD2E1BDD0DFBCCFDEBBCEDDC4DFF0C0DBECBBD6E7B7D2E3B6D1E2B7D2E3 BAD5E6BCD7E8BAD5E6BAD5E6B9D4E5B8D3E4B7D2E3B5D0E1B5D0E1B4CFE0B5D0E3B4D0E5B4D0E5 B4D0E5B4D0E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B1D2E5B2D1E5B2D1E5 B5D0E3B6CFE3B6CFE3B6CFE3B6CFE3B6CFE3B6CFE3B6CFE3B7D0E4B7D0E4B8D1E5B8D1E5B9D2E6 BAD3E7BBD4E8BAD5E8B5D2E4B3D3E2B5D2E4B3D3E2B5D2E4B3D3E2B5D2E4B3D3E2B4D1E3B3D3E2 B5D2E4B4D4E3B7D4E6B6D6E5B8D5E7B8D5E5B9D3E2BBD5E2BDD7E4BED8E7BDD7E6B9D4E5B5D2E2 B0CFE1B0CFE3AFD0E3AECEE3ABCEE2AACDE3AACDE3A9CCE2A9CCE2ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4ABCEE4ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADCDE6 AECCE6AFCDE7B0CEE6B2CEE6B3CFE5B4D0E6B5D0E5B7D2E7B8D1E5B8D2E3BAD1E3BAD1E3BBD0E1 BBD0E1BBD0E1C3D8E9C3DAEAC4D9ECC5DAEBC6DBECC9DCEBC9DCEBCBDDEBC9D9E6CBD9E4CCDAE5 CEDBE4CFDCE5CFDCE4D2DCE6D0DDE6CBDCE6CADCE8CBDBE8CADCE8CBDBE8CBDBE8CBDBE8CBDBE8 CBDBE8CBDBE8CBDBE8CBDBE8CDDBE8CBDBE8CDDBE8CBDBE8C7DAE8C5DBE8C5DBE8C5DBE8C5DBE8 C5DBE8C5DBE8C5DBE8BFD5E2BFD5E2BFD5E2C0D6E3C1D7E4C2D8E5C2D8E5C3D9E6CADCE8CBDCE6 CBDCE6CADCE6CADCE8CADCE8CADCEAC9DCEACCDFEEC8DDEEC4D9EAC1D6E9C0D5E8C0D5EAC0D5EA C0D6EBBAD3E9B9D4E9B8D3E8B7D2E7B6D1E6B6D1E6B5D0E5B5D0E5B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BED4E9 BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED5E7BED5E5BED5E3BFD6E4C0D7E5C0D7E5C1D8E6 C2D9E7C2D9E7C2D9E7C0D7E5BFD6E4BDD4E2BCD3E1BCD3E1BDD4E2BED5E3BED5E3C0D6E4C1D7E5 C2D8E6C6D9E8C7DAE8CADCEACADCE8D0E0EDD0E0EDD3E1EED4E2EDD6E2EED6E2EED7E3EFD7E3EF D1E2EACFE0E8CBDCE4C6D9E0C4D6E0C3D7E0C4D7E5C3D9E6BDD3E1BCD3E1BBD5E4BBD5E4BCD6E7 BCD7E8BDD8E9BDD8E9BCD6E7BCD6E7BDD7E8BDD7E6C0D7E7C1D8E8C3D9E7C3D9E6C4D7E5C6D8E4 C8D8E5CADBE5CEDCE7D0DEE7D1DFE8D2E0E9D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D6DDE5D6DDE5D7DEE6D8DFE7 D8DFE7D9E0E8DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9D9E2EB D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8 D4DEE7D2DFE8CDDEE8CBDDE9CBDBE8C9DBE7C8D8E5C6D8E4C5D5E2C4D6E2C3D3E0C3D5E1C6D6E3 C6D8E4C7D7E4C5D7E3C4D4E1C2D4E0C0D2E0BFD2E1C0D1E1BFD2E1C0D1E1BFD2E1C0D1E1BFD2E1 C0D1E1BFD2E1C0D1E1BFD2E1C0D1E1BFD2E1C0D1E1BFD2E1B9CEDFB9CEDFBACFE0BCD1E2BED3E4 BFD4E5C0D5E6C1D6E7C3D8E9C3D8E9C2D7E8C1D6E7C0D5E6C0D5E6BFD4E5BFD4E5BED1E2BFD2E1 C1D4E3C1D6E7C0D5E6BCD3E5B9D0E2B5CEE2B8D3E8B7D3E8B6D2E8B3D2E7B1CFE7B0CEE6AFCDE5 AFCDE5B2D1E6B2D1E5B1D0E4B0CFE3B0CFE3AFCEE2AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1 AECDE1AECDE1AECDE1B0CCE1AFCADFB1CCE1B4CFE4B8D1E5BED5E7C3D8E9C6DBECC9DCEBC8DAE8 CFDFECD7E5F0DAE8F1DBE8F1DAE7EFDDE7F0E0E9F0E1EAF1E2E9EFE3EAF0E4EBF1E4EBF1E5ECF2 E6EDF3E6EDF3E9F0F6E8EFF5E8EFF5E8EFF5E8EFF5E7EEF4E7EEF4E7EEF4E6EDF3E6EEF1E7ECF2 E4EBF1E3EAF0E2EBF2E1EAF1E0EAF3D9E3ECD6E3ECD5E3EED4E2EDD3E1ECD0E0EDD0E0EDCFDFEC D1E1EED1E2ECD3E1EED1E2ECD3E1EED1E2ECD3E1EED1E2ECD2E0EDD0E1EBD1DFECCEDFE9CFDDEA CDDEE8CEDCE9CCDCE9D4E4F1D4E4F1D5E5F2D6E6F3DAE8F5DBE9F4DDE9F5DDEAF3E2ECF6E3EDF6 E6EFF6E9F0F6EAF1F7ECF1F5EBF0F4EAEFF3EAF2F4EAF2F4EAF2F4EAF2F4EAF2F4EAF2F4EAF2F4 EAF2F4ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6ECF4F6EFF3F6EFF3F6F0F4F7F0F4F7 F1F5F8F2F6F9F3F7FAF3F7FAF3F7FAF3F7FAF4F8FBF4F8FBF5F9FCF6FAFDF7FBFEF7FBFEF7FBFE F7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF7FBFEF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FA F3F7FAF3F7FAF3F7FAF3F7FAF2F6F9F1F5F8F0F4F7F0F4F7EFF3F6EFF3F6F1F5F8F1F5F8F1F5F8 F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8 EFF3F6EFF3F6EEF2F5EDF1F4ECF0F3ECF0F3EBEFF2EAEFF3E8EFF5E8EFF5E7EEF4E6EDF3E5ECF2 E5ECF2E4EBF1E4EBF1E4EBF1E3EAF0E2E9EFE1E8EEDFE6ECDDE4EADCE3E9DBE4EBD7E0E7D5DFE8 D4DEE7D1DEE6CFDCE5CCDAE3CBD9E4C9DAE4CBDBE8C9DBE7C8DAE8C6D9E7C4D7E6C2D5E4C1D4E3 C1D4E3C3D6E5C2D5E4C1D4E3C0D3E2BED1E0BCCFDEBBCEDDBBCEDDC3DDECC1DBEABED8E7BBD5E4 B9D3E2B8D2E1B8D2E1B9D3E2BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E9BCD5E9 BAD5EAB8D3E8B6D1E6B3CEE3B0CCE1AECADFADC9DEB2D1E5B2D1E5B1D2E5B1D2E5B1D2E5AFD2E5 B1D2E5B1D2E5B4D0E5B5D0E5B5D0E5B5D0E5B5D0E5B5D0E5B5D0E5B5D0E5B7D2E7B7D2E7B7D2E7 B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B2D1E5B1D2E3B2D1E5B1D2E3B2D1E5B1D2E3B2D1E5B1D2E3 B4D3E7B3D4E5B4D3E7B3D4E5B4D3E7B3D4E5B4D3E7B4D3E5B5D1DFB6D0DFB6D0DFB5D0E1B5D0E1 B4D1E1B4D1E3B2D1E5B0CFE3AFCFE4AFCFE6ADD0E6ADCFE8ACD0E8ACD0E8ACD0E8ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4B1D1E8B1D1E8B2D2E9B4D2EAB6D2EAB7D3E9B9D3EAB9D4E9B7D0E4BAD1E3BBD2E4BED3E4 C2D5E6C3D6E5C5D8E7C5D8E7C6D9E8C5DBE9C7DAEBC8DBEAC9DCEBCBDDEBCBDDEBCDDDEACFDDE8 D0DDE6D0DDE6D2DCE5D2DCE5D2DDE3D3DCE5D2DCE5D1DFEAD0E0EDD3E1EED1E1EED2E0EDCEDEEB CCDCE9CBDBE8CCDCE9CCDCE9CCDCE9CADCE8CBDBE8C9DBE7CADAE7C9DBE7C5DBE8C4DBE9C3DAE8 C3DAE8C2D9E7C1D8E6C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C1D7E4 C8DAE6C9DBE7CBDDE9CBDFEACBDEECCADDEBC8DBEAC5DBE9C3D8E9C3D8E9C2D7EAC1D7ECC0D6EB BFD5ECBED4EBBED4EBBAD3E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9 BED4E9BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD3E5BBD2E2BCD3E1BED5E3C1D8E6 C3DAE8C6DDEBC8DFEDC9E0EEC3DAE8C2D9E7BFD6E4BDD4E2BBD2E0BBD2E0BBD2E0BBD2E0BFD5E2 C3D6E4C5D8E6C7DAE8CBDDEBCEE0ECD1E1EED2E2EFD4E2EFD5E3EED8E4F0D9E6EFDCE6F0DBE5EF DAE4EED7E4EDD0E1E9CDE0E7C9DCE3C6D9E0C3D5DFC0D4DDC0D3E1BED4E1BCD3E1BAD4E1BAD4E3 B9D5E3B9D4E5B8D5E5B8D5E5B8D5E5BBD6E9BBD6E7BCD6E7BCD6E7BED5E5BED5E5BFD5E3BFD5E2 C5D8E6C6DAE5C8DAE6C9DBE5CCDDE7CDDEE8D1DFE8D1DFE8D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9 D7E1EAD8E2EBD8E2EBD4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 D9E2E9DBE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD8E2EBD8E2EBD7E1EAD6E0E9 D6E0E9D5DFE8D4DEE7D2DFE8CFDDE8CDDDEACEDCE9CBDBE8CCDAE7CADAE7CBD9E6C9D9E6CBD9E6 C9D9E6CBD9E6C9D9E6CBD9E6C9D9E6CBD9E6C9D9E6C6D6E5C4D6E4C4D4E3C2D4E2C3D3E2C3D5E3 C5D5E4C5D7E5C3D3E2C2D4E2C2D2E1C1D3E1C2D2E1C3D5E3C6D6E5C6D7E7BFD4E5BDD4E6BBD2E4 BAD1E3BAD1E3BBD2E4BDD4E6BED5E7C0D7E9C0D7E9BFD6E8BFD6E8BED5E7BDD4E6BCD3E5BCD3E3 BFD4E5BFD4E5BED3E4BDD4E6BCD3E5BBD2E4B8D1E5B7D2E7B5D0E5B4D0E6B3CFE7B0CEE6B0CEE8 AECEE7ADCDE6ADCDE4B0CFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3AECDE1AECDE1 AFCEE2AFCEE2B0CFE3B1D0E4B2D1E5B4D0E5B4CFE2B6CFE3B8D1E5BDD4E6C0D7E9C4D9EAC9DCEB CBDDEBCFE1EFD2E2EFD8E6F1DCE9F2DFE9F3DFE9F2E0E9F2DFE8EFDEE7EEDEE7EEDFE8EFE0E9F0 E1EAF1E3ECF3E3ECF3E4EDF4E5EEF5E5EEF5E5EEF5E5EEF5E5EEF5E5EEF5E5EEF5E5EEF5E3ECF3 E3ECF1E3EAF2E0E9F0DEE7EEDCE6EFDBE5EED8E5EED6E3ECD3E1ECD1DFEACCDCE9CBDBE8C9DBE9 C9DBE9CADCEACFE1EFCFE1EDD1E1F0D0E2EED1E1F0CEE0ECCDDDECCBDDE9CBDBEACBDDE9CDDDEC CDDFEBD0E0EFD1E3EFD3E3F2D2E4F2D4E6F4D3E5F3D2E4F2D2E4F0D4E4F1D6E7F1DAE8F3DBE9F2 E0EDF6E2ECF5E2ECF5E4EDF4E4EDF4E6EDF3E6EDF3E6EEF1E6EEF0E6EEF0E7EFF1E8F0F2E9F1F3 E9F1F3EAF2F4EAF2F4E8F0F2E8F0F2E9F1F3EAF2F4EBF3F5EBF3F5ECF4F6ECF4F6EDF1F4EDF1F4 EEF2F5EFF3F6F0F4F7F0F4F7F1F5F8F1F5F8F3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FAF3F7FA F3F7FAF3F6FBF3F6FBF3F6FBF3F6FBF3F6FBF3F6FBF3F6FBF3F6FBF1F4F9F1F4F9F1F4F9F1F4F9 F1F4F9F1F4F9F1F4F9F1F4F9F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8EFF3F6 EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4 EDF1F4EDF1F4EDF1F4EDF1F4ECF0F3ECF0F3EBEFF2EAEEF1E9EDF0E8EDF1E6EDF3E5EEF5E4EDF4 E4EDF4E3ECF3E2EBF2E1EAF1E1EAF1E1EAF1E1EAF1DFE8EFDEE7EEDCE5ECDBE4EBDAE3EAD9E2E9 D6E0E9D4E1EAD2DFE8D1DEE7CFDBE7CDDBE6CCDAE7C9D9E6C9D9E8C8DAE8C7D8E8C6D9E8C5D8E9 C2D7E8C1D6E7C1D6E7BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1C2DCEBC1DBEA BED8E7BCD6E5BAD4E3B9D3E2B9D3E2B9D3E2BFD9E8BFD9E8BFD9E8BFD9E8BFD9E8BFD9E8BFD9E8 BFD9EABED7EBBDD6ECBBD4EAB8D3E8B5D0E5B3CEE3B0CCE1AFCBE0B2D1E5B1D2E5B1D2E5AFD2E5 AFD2E5AED3E5AFD2E5B1D2E5B4D0E5B5D0E5B5D0E5B5D0E5B5D0E5B5D0E5B5D0E5B5D0E5B7D2E7 B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B6D2E7B2D1E5B1D2E5B1D2E5B1D2E5B1D2E5B1D2E5 B1D2E5B1D2E5B3D4E7B3D4E7B3D4E7B3D4E7B3D4E7B3D4E7B3D4E7B4D3E5B5D0E1B5D1DFB5D0E1 B4D1E1B4D1E1B2D1E3B2D1E5B1D2E5AFCFE4ADD0E4ADD0E6ACD0E6ACD0E8ABD1E8ABD1E8ABD1E8 ACD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ABCEE4ABCEE4ABCEE4ABCEE4ABCEE4 ABCEE4ABCEE4ABCEE4B1D1E8B1D1E8B2D2E9B3D3E8B6D2E8B7D3E8B9D4E9BAD3E7BAD1E3BBD0E1 BDD2E3C1D4E3C3D4E4C6D6E6C8D8E8C7D8E8CADBEBC9DCEACBDCECCBDDEBCCDEECCEDEEBCFDFEC D1DFEAD1DEE7D1DEE6D3DDE6D3DEE4D4DDE4D4DDE4D4DDE4D4DDE6D3DFEBD3E1EED4E0EED4E2EF D3E1EED1DFECCFDDEACCDCE9CDDDEACBDDE9CBDDE9CADCE8CADCE8C8DCE7C9DBE7C7DAE8C4DBE9 C4DBE9C3DAE8C2D9E7C1D8E6C1D8E6C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C7DAE8C8DCE7C9DDE8CADEE9CADDEBC7DDEAC6DCEAC5DAEBC3D8E9C2D9EBC1D7EC C0D6EBBFD5ECBFD5ECBED4EBBCD5EBB9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BED4E9BED4E9BED4E9BED4E9BED4E9 BED4E9BED4E9BED4E9BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD2E7BCD3E5BBD2E2BCD3E1 BED5E3C1D8E6C3DAE8C6DDEBC8DFEDC9E0EEC3DAE8C1D8E6C0D7E5BED5E3BDD4E2BED5E3BFD6E4 C0D6E4C4D7E5C5D8E6C7DAE8C9DDE8CDDFEBCFE1EDD2E2EFD3E4EED6E4EFD8E5EEDAE7F0DDE7F1 DDE7F1DCE6F0DCE4EFDAE4EECFE0E8CCDFE6C9DCE3C5D9E0C2D6DFBFD6DEBED4E1BDD5E1BAD4E1 B9D5E1B9D5E3B8D5E3B8D5E5B8D5E5B8D5E5B8D5E5BBD6E9BBD6E9BCD6E7BCD6E7BED5E7BED5E5 BFD4E5BFD5E3C5D8E6C5D8E6C7D9E5C9DBE7CCDDE7CDDEE8D0DEE7D1DFE8D2DFE7D4DEE7D5DFE8 D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBD4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9D9E2E9DBE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD8E2EBD8E2EB D7E1EAD6E0E9D6E0E9D5DFE8D4DEE7D4DEE8D1DDE9CFDDEACFDDEACEDCE9CDDBE8CCDAE7CCDAE7 CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6CAD8E5C7D7E4C6D6E5C5D5E2 C5D5E4C6D6E3C7D7E6C8D8E5C6D6E5C6D6E3C5D5E4C5D5E2C5D5E4C6D6E3C7D7E6C7D9E7BED3E4 BCD3E5BBD2E4BAD1E3BAD1E3BBD2E4BCD3E5BDD4E6C0D7E9C0D7E9BFD6E8BED5E7BDD4E6BDD4E6 BCD3E5BCD3E5BFD4E7BED5E5BDD4E6BCD3E5BBD2E4B9D2E6B7D2E7B6D2E7B4D0E6B2D1E6B1CFE7 AFCFE6AFCFE8AECEE7ADCDE6ADCDE6B0CFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3 AECDE1AECDE1AFCEE2B0CFE3B1D0E4B1D0E4B2D1E5B4D0E5B5D0E3B7D1E2BBD2E4BED5E5C2D7E8 C7DAE9CADCEACCDCE9D0E0EDD4E2EDD9E6EFDEE8F1DFE9F2E0E9F0E0E9F0DFE8EFDFE8EFE0E9F0 E0E9F0E1EAF1E2EBF2E3ECF3E4EDF4E4EDF4E5EEF5E5EEF5E5EEF5E5EEF5E5EEF5E5EEF5E5EEF5 E5EEF5E2EBF2E2EBF2E1EAF1DEE8F1DCE6EFD9E6EFD8E5EED6E4EFD4E2EDD1E1EECEDEEBCBDDEB C9DBE9C7DAE9C8DBEAC8DBEACCDFEECEE0EECFE1EFCFE1EFCEE0EECCDEECCADCEAC9DBE9C9DBE9 CADCEACBDDEBCDDFEDCEE0EED0E2F0D1E3F1D2E4F2D3E5F3D2E4F2D2E4F2D1E3F1D3E3F2D5E5F2 D9E7F4DAE8F3DFEBF7DFECF5E1EBF5E2ECF5E4EDF6E4EDF4E6EDF5E6EDF3E6EEF1E6EEF0E7EFF1 E7EFF1E8F0F2E9F1F3EAF2F4EAF2F4E8F0F2E8F0F2E9F1F3E9F1F3EAF2F4EBF3F5ECF4F6ECF4F6 EDF1F4EDF1F4EEF2F5EEF2F5EFF3F6F0F4F7F1F5F8F1F5F8F3F7FAF3F7FAF3F7FAF3F7FAF3F7FA F3F7FAF3F7FAF3F7FAF3F6FBF3F6FBF3F6FBF3F6FBF3F6FBF3F6FBF3F6FBF3F6FBF1F4F9F1F4F9 F1F4F9F1F4F9F1F4F9F1F4F9F1F4F9F1F4F9F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8 F1F5F8EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EDF1F4EDF1F4EDF1F4EDF1F4 EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4ECF0F3EBEFF2EAEEF1EAEEF1E9EDF0E8EDF1E6EDF3 E5EEF5E4EDF4E3ECF3E2EBF2E2EBF2E1EAF1E1EAF1E1EAF1E0E9F0DFE8EFDEE7EEDCE5ECDAE3EA D9E2E9D8E2EBD4E1EAD3E0E9D2DFE8D0DEE7CEDCE7CADBE5C9D9E6C8DAE6C8DAE8C7DAE9C6D9E8 C3D8E9C2D7E8C1D8E8C0D7E9C0D7E9BDD2E3BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1 C4DBE9C3DAE8C0D7E5BED5E3BCD3E1BCD3E1BCD3E1BDD4E2C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C4DBEBC3D9EEC2D8EFC0D6EDBCD5EBB9D2E8B6D1E6B3CFE4B2CEE3B2D1E5B1D2E5 B1D2E5AFD2E5AED3E5ADD4E5AED3E5AFD2E5B2D1E6B4D0E6B4D0E6B4D0E6B4D0E6B4D0E6B4D0E6 B4D0E6B5D1E7B5D1E7B5D1E7B5D1E7B5D1E7B5D1E7B5D1E7B5D1E7B1D0E5B0D0E5B0D0E5B0D0E5 B0D0E5B0D0E5B0D0E5B0D0E5B2D2E7B2D2E7B2D2E7B2D2E7B2D2E7B2D2E7B2D2E7B3D2E6B3D0E2 B3D0E0B3D0E2B3D0E2B3D0E2B1D0E4B1D0E4B0D0E5AFCFE6ADD0E6ADCFE8ACD0E8ACD0EAABD0EA ABD0EAABD0EAACD0E8ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ACCFE5ACCFE5ACCFE5 ACCFE5ACCFE5ACCFE5ACCFE5ACCFE5AFD2E6AFD2E6B2D2E7B3D4E7B6D2E7B7D3E8B9D4E7BAD4E5 BAD1E3BCD1E2C0D1E3C4D4E4C6D6E6CAD7E7CBD8E8CCD9E9CEDEEDCEE0ECCFDFEED0E0EDD1E1EE D4E2EDD4E2EDD5E2EBD2DFE8D4DEE7D5DEE7D5DEE5D6DDE5D6DDE3D6DDE3D6DDE5D6E0ECD5E1EF D8E1F0D6E2F0D5E1EFD2E0EDD0DEEBCDDDEACEDEEBCCDEEACBDDE9CADEE9C8DCE7C6DCE7C7DBE6 C4DAE7C3DAE8C1DBEAC0DAE9C0DAE9BFD9E8BED8E7BDD7E6BDD7E6BED8E7BED8E7BED8E7BED8E7 BED8E7BED8E7BED8E7C0D7E5C7DAE8C8DBE9C9DCEAC8DEEBC8DEECC7DDEBC6DBECC4DBEBC1D8EA C1D7ECC0D6EBBED7EDBDD5EDBCD4ECBBD3EBBAD4EBB9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BED4E9BED4E9BED4E9 BED4E9BED4E9BED4E9BED4E9BED4E9BDD3E8BDD3E8BDD3E8BDD3E8BDD3E8BDD3E8BDD3E8BDD4E6 BCD3E3BDD4E2BFD6E4C1D8E6C3DAE8C5DCEAC7DEECC8DFEDC2D9E7C1D8E6C0D7E5C0D7E5C1D8E6 C2D9E7C4DBE9C6DCEAC8DBE9CADCE8CBDDE9CDDFEBD1E1EED3E4EED7E5F0D7E5F0DAE6F2DBE8F1 DEE8F2E0E9F2DFE8F1DEE7F0DEE5EFDBE5EECEDFE7CBDFE6C8DCE3C3DAE0C0D7DFBFD6DEBED6E2 BCD7E2BBD5E2BAD6E2BAD6E4B9D6E4B9D6E6B7D7E6B7D7E6B9D6E6BBD6E9BBD6E9BBD6E9BBD6E7 BCD6E7BCD6E5BED5E5BED5E3C2D8E5C5D8E6C7D9E5C8DAE6CBDCE6CDDEE8CEDFE9D0DEE7D2DFE7 D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBD5DFE8D5DFE8D5DFE8D5DFE8D5DFE8D5DFE8 D5DFE8D5DFE8DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9DBE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4ED D8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7D4DEE8D2DEEAD1DDEBD1DDEBD0DCEACFDBE9 CEDAE8CEDAE8CEDAE8CEDAE8CEDAE8CEDAE8CEDAE8CEDAE8CEDAE8CEDAE8CDDBE8CCDAE7CBD9E4 CAD8E5C9D7E2C9D7E4CAD8E3CBD9E6CCDAE5CCDAE7CCDAE5CCDAE7CBD9E4CBD9E6CBD9E4CBD9E6 C8DAE8BED3E4BAD3E7B9D2E6B8D1E5B8D1E5B9D2E6BAD3E7BBD4E8BDD6EABDD6EABCD5E9BCD5E9 BBD4E8BAD3E7B9D2E6B9D3E4BDD4E6BDD4E6BCD2E7BAD3E7B9D2E6B7D2E7B6D1E6B5D1E7B4D0E8 B2D0E8B1CFE9AFCFE8AFCEEAACCEE9ABCDE8ABCDE6AFCFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3 B0CFE3B0CFE3AFCEE2AFCEE2B0CFE3B0CFE3B1D0E4B2D1E5B3D2E6B5D1E6B8D1E5BBD2E4BED3E6 C1D6E7C5D8E9C8DBEACBDDEBCDDDEAD2E0EBD5E2EBD9E6EFDEE8F1E0E9F0E1E8EEE1E8EEDFE8EF E1EAF1E0EAF3E0EAF3E1EBF4E2ECF5E2ECF5E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6E3EDF6 E3EDF6E3EDF6E3EDF6E0EAF3DFE9F2DEE8F1DAE7F0D9E6EFD6E4EFD5E3EED2E2EFD1E1EECFE1EF CCDEECC9DCEBC7DAE9C4D9EAC4D9EAC5DAEBCADDECCADDECCBDEEDCBDEEDCADDECC9DCEBC7DAE9 C6D9E8C7DAE9C8DBEAC9DCEBCBDEEDCCDFEECEE1F0CFE2F1D0E3F2D1E4F3D0E3F2CFE2F1CFE2F0 D1E3F1D3E5F1D6E6F3D7E8F2DBE9F4DCEAF3DEEBF4DEEBF3E1EBF4E2EDF3E4EDF4E4EDF2E5EDF0 E5EDEFE6EEF0E7EFF1E8F0F2E8F0F2E9F1F3E9F1F3E7EFF1E7EFF1E8F0F2E9F1F3EAF2F4EAF2F4 EBF3F5EBF3F5ECF0F3ECF0F3EDF1F4EEF2F5EFF3F6EFF3F6F0F4F7F0F4F7F1F5F8F1F5F8F1F5F8 F1F5F8F1F5F8F1F5F8F1F5F8F1F5F8F1F4F9F1F4FBF1F4FBF1F4FBF1F4FBF1F4FBF1F4FBF1F4FB EFF2F9EFF2F9EFF2F9EFF2F9EFF2F9EFF2F9EFF2F9EFF2F7EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EFF3F6EFF3F6EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4ECF0F3ECF0F3 ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3EBEFF2EBEFF2EAEEF1E9EDF0E8ECEF E7ECF0E4EDF4E3EDF6E2ECF5E2ECF5E1EBF4E0EAF3DFE9F2DFE9F2DFE9F2DFE9F2DEE8F1DCE6EF DAE4EDD9E3ECD8E2EBD7E1EAD3E0E9D2E0EBD1DFEACFDDE8CDDBE8CADAE7C9D9E8C7D9E7C7D8E8 C6D9E8C3D8E9C2D9EBC1D8EAC0D7E9BFD5EABFD6E8BDD2E3BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1 BFD2E1BFD2E1C4DBE9C3DAE8C0D7E5BED5E3BDD4E2BDD4E2BED5E3BFD6E4C6DDEBC6DDEBC6DDEB C6DDEBC6DDEBC6DDEBC6DDEBC6DDEDC7DCF1C6DAF2C4D8F0C1D7EEBED4EBBAD3E9B7D2E7B3D2E6 B2D1E5B1D2E5AFD2E5AED3E5ADD4E5ADD4E5ADD4E5AED3E5B1D1E6B4D0E6B4D0E6B4D0E6B4D0E6 B4D0E6B4D0E6B4D0E6B4D0E6B4D0E6B4D0E6B4D0E6B4D0E6B4D0E6B4D0E6B2D1E6AFCFE4AFCFE4 AFCFE4AFCFE4AFCFE4AFCFE4AFCFE4AFCFE4B1D1E6B1D1E6B1D1E6B1D1E6B1D1E6B1D1E6B1D1E6 B1D2E5B2CFE1B2CFDFB2CFE1B0CFE1B0CFE3AFD0E3AFCFE4ADD0E4ADD0E6ACD0E6ACD0E8ABD1E8 ABD0EAA9D1EAA9D1EBABD0EAACD0E8ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6AFD2E6AFD2E6B2D3E6B3D4E7B6D2E7B8D3E6 BAD4E5BCD3E5BBD0E1BED1E0C2D2E2C7D4E4CAD7E7CDD9E9CFDBEBD0DCEAD4E2EFD2E2EFD3E3F0 D4E5EFD6E4EFD7E5EED9E6EFDBE5EED7E1EAD8E1E8D8E1E8D9E0E6D9E0E6DBE0E4DBE0E4D9E0E6 D9E1ECD8E1F0D9E2F1D9E2F1D8E1F0D5E1EFD2E0EDCEDEEBCFDFECCDDFEBCBDFEAC8DEE9C6DCE7 C5DBE6C4DAE5C2DAE6C0DAE7C0DAE9C0DAE9BFD9E8BED8E7BDD7E6BDD7E6BCD6E5BED8E7BED8E7 BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7C4DAE8C5DBE8C6DCE9C7DDEAC7DDEBC5DCEAC4DBEB C3DAECC0D6EBBED7EBBED7EDBDD6ECBCD4ECBBD3EBBAD4EBB9D3EAB9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BED4E9 BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9 BED4E9BED5E7BDD4E4BED5E3BFD6E4C1D8E6C3DAE8C5DCEAC6DDEBC7DEECC1D8E6C1D8E6C1D8E6 C1D8E6C3DAE8C6DDEBC9E0EECBE1EECCE0EBCDDFEBCFE1EDD1E3EDD3E4EED5E6F0D8E6F1D9E7F0 DCE9F2DFE9F2E1EAF3E1EAF3E1EAF3DFE8F1DEE5EFDBE5EECDDEE6CADEE5C5DCE2C2D9DFC0D7DF BFD8DFBDD8E3BDD8E3BBD7E3BAD8E3BAD7E5B8D8E5B8D8E7B8D8E7B8D8E7B8D8E7BAD7E9BBD6E9 BBD6E9BBD6E9BCD6E7BCD6E7BED5E5BED5E5C1D7E5C2D8E5C5D8E6C8DAE6CADAE7CCDDE7CDDEE8 D0DEE7D2DFE8D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBD6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9D6E0E9D6E0E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9DBE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4ED DAE4EDDAE4EDD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7D4DEE8D3DFEBD3DFEDD2DEEC D2DEECD1DDEBD0DCEACFDBE9CFDBE9CFDBE9CFDBE9CFDBE9CFDBE9CFDBE9CFDBE9CFDBE9CFDBE9 D0DCE8CEDCE7CCDAE5CBD9E4CBD9E4CCDAE5CEDCE7CFDDE8D0DEE9D0DEE9D0DEE9D0DEE9CEDCE7 CDDBE6CBD9E4C8D8E5BCD3E5B9D2E6B8D1E5B7D0E4B7D0E4B8D1E5B9D2E6BAD3E7BCD5E9BCD5E9 BCD5E9BBD4E8BAD3E7B9D2E6B9D2E6B8D1E5BCD2E7BAD4E5BAD3E7B8D3E6B7D2E7B5D1E6B5D1E7 B2D1E6B2D0E8B1D1E8B0D0E9ADCFE8ADCFEAACCEE9AACDE9ABCDE8AFCFE4B0CFE3B0CFE3B0CFE3 B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B1D0E4B2D1E5B3D2E6B3D2E6B6D3E5BBD5E6 BED5E5C1D6E7C3D9E7C7DAE9CADCEACDDDEAD0DEE9D3E0E9D5E2EBDBE5EEDFE8EFE1E8EEE1E8EE E1E8EEE0E7EDE1EBF4E1EBF4E1EBF4E1EBF4E1EBF4E1EBF4E2ECF5E2ECF5E1EBF4E1EBF4E1EBF4 E1EBF4E1EBF4E1EBF4E1EBF4E1EBF4DDE7F0DBE8F1DAE7F0D7E5EED5E3EED2E3EDD1E1EECFE1ED CFE1EFCCDFEDC9DCEBC5DBE9C3D8E9C2D9E9C2D9EBC2D9EBC6DBECC8DBEAC9DCEBC9DCEBC8DBEA C7DAE9C5D8E7C3D6E5C6D9E8C6D9E8C7DAE9C9DCEBCBDEEDCCDFEECDE0EFCCE2F0CDE2F3CDE2F3 CEE1F2CEE1F0D0E1F1D1E3F1D4E4F3D6E6F3D8E6F3D9E7F2DBE7F3DCE9F2E0EAF4E1EBF4E3ECF5 E4EDF2E4ECEFE5EDEFE5EDEFE6EEF0E7EFF1E8F0F2E8F0F2E8F0F2E6EEF0E7EFF1E7EFF1E8F0F2 E9F1F3EAF2F4EAF2F4EAF2F4EBEFF2ECF0F3ECF0F3EDF1F4EEF2F5EFF3F6EFF3F6EFF3F6F0F4F7 F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7F0F4F7F0F3F8F0F3FAF0F3FAF0F3FAF0F3FAF0F3FAF0F3FA F0F3FAF0F3FAEEF1F8EEF1F8EEF1F8EEF1F8EEF1F8EEF1F8EEF1F8EEF1F8EEF1F6EEF2F5EEF2F5 EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3 EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EAEEF1E9EDF0 E8ECEFE8ECEFE6EBEFE3ECF3E2ECF5E2ECF5E1EBF4E0EAF3DFE9F2DFE9F2DEE8F1DFE9F2DEE8F1 DDE7F0DBE5EEDAE4EDD8E2EBD7E1EAD4E1EAD2E0EBD1DFEAD0DEE9CCDDE7CBDBE8C8DAE6C7D9E7 C5D8E6C5D8E7C3D8E9C2D9EBC1D8EAC0D7E9BDD7E8BDD6EABED5E7BDD2E3BFD2E1BFD2E1BFD2E1 BFD2E1BFD2E1BFD2E1BFD2E1C5DBE8C3D9E6C2D8E5C0D6E3BFD5E2C0D6E3C1D7E4C2D8E5C8DEEB C8DEEBC8DEEBC8DEEBC8DEEBC8DEEBC8DEEBC8DEECCADCF2C7DBF3C6DAF2C2D8EFC0D6EDBCD5EB B9D4E9B5D4E8B2D1E5B1D2E5AFD2E5AED3E5ADD4E5ABD5E5ABD5E5ADD4E5B1D1E6B2D0E8B2D0E8 B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8 AFCFE4AFCFE4AFCFE4AFCFE4AFCFE4AFCFE4AFCFE4AFCFE4B1D1E6B1D1E6B1D1E6B1D1E6B1D1E6 B1D1E6B1D1E6B1D2E5B2CFE1B2CFE1B0CFE3B0CFE3B0CFE4AFCFE4AFCFE6ADD0E6ADCFE8ACD0E8 ACD0EAABD0EAABD0EBA9D1EBA9D1EBA9D1EAACD0E8ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6AED3E6AFD2E5B2D3E6B3D4E7 B6D3E5B8D3E6BAD4E5BCD3E5BED1E2C0D1E1C3D3E3C8D5E5CCD8E8D1DAE9D4DBEBD5DEEDD7E3F1 D7E5F0D7E5F0D8E6F1DAE6F2DBE8F1DDE7F1DEE8F1DAE3EADBE2E8DBE2E8DDE2E6DDE2E6DEE2E5 DEE2E5DDE2E8DBE1EDDBE2F2DCE3F3DBE4F3DAE3F2D6E2F0D3E1EED0E0EDD0E0EDCEE0ECCCE0EB C8DEE9C6DCE7C3DBE5C2DAE4C1D9E5C0DAE9BED9EABED9EABDD8E9BCD7E8BBD6E7BBD6E7BBD6E7 BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BED8E7C3D9E7C4DAE8C5DBE9C5DCEAC5DCEC C4DBEBC3DAECC0DAEBBED7EBBDD6ECBDD5EDBBD5ECBAD4EDB9D3ECB9D3ECB9D3EAB9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9 BED4E9BED4E9BED4E9BED5E7BED5E5BFD6E4C0D7E5C1D8E6C3DAE8C4DBE9C5DCEAC6DDEBC1D8E6 C0D7E5C1D8E6C2D9E7C4DBE9C7DEECCAE1EFCDE3F0D0E2EED1E2ECD2E3EDD3E4EED7E5F0D8E6EF DAE7F0DBE8F1DFE9F3E0EAF3E1EAF3E1EAF1E1E8F0DFE6EEDFE3ECDBE4EDCBDEE5C7DEE4C4DBE1 C2D9DFC0D9E0BFD8DFBED9E4BED9E4BBD7E3BAD8E3BAD7E5B8D8E5B8D8E7B7D8E7B7D8E7B8D8E7 BAD7E9BAD6EBBBD6E9BBD6E9BCD6E7BCD6E7BED5E5BED5E5C0D6E4C1D7E4C4D7E5C6DAE5C8DAE6 CADCE8CCDDE7CFDDE6D2DFE8D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBD6E0E9D6E0E9 D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9DBE4EDDAE4EDDAE4EDDAE4ED DAE4EDDAE4EDDAE4EDDAE4EDD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7D4DEE8D7E1ED D7E0EFD6DFEED5DEEDD4DDECD4DDECD3DCEBD3DCEBD3DCEBD3DCEBD3DCEBD3DCEBD3DCEBD3DCEB D3DCEBD1DDEBD0DCE8CFDCE5CEDBE4CDDAE3CDDAE3CEDBE4CFDCE5D0DDE6D3E0E9D3E0E9D4E1EA D3E0E9D1DEE7CEDBE4CAD7E0C5D5E2BBD2E4B7D2E7B6D1E6B5D0E5B5D0E5B6D1E6B7D2E7B8D3E8 BBD6EBBAD5EABAD5EAB9D4E9B8D3E8B7D2E7B7D2E7B7D2E5BAD3E7B9D2E6B9D2E8B7D2E7B6D0E7 B4D0E6B4D0E8B2D0E8B2D0EAB1D1EAB0CFEBADCFEAADCFEBABCEEAAACDE9ABCDE8AFCFE4B0CFE3 B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B1D0E4B1D0E4B2D1E5B3D2E6B4D3E7B4D3E7 B6D3E5C0D7E9C2D7E8C5D8E9C7DAE9CADBEBCCDEECCEDEEBD1DFEAD3E0E9D5E2EBDBE5EEDFE8EF E1E8EEE1E8EEE3E8ECE0E7EDE0EAF3DEEBF4DEEBF4DEEBF4DDEAF3DDEAF3DDEAF3DDEAF3DCE9F2 DCE9F2DCE9F2DCE9F2DCE9F2DCE9F2DCE9F2DCE9F2D9E6EFD7E5F0D6E4EFD5E3EED3E1EECFDFEC CEDEEDCDDFEDCDDEEECADDECC8DBECC3D8E9C2D7EAC0D7E9C0D6EBC1D8EAC5DAEBC5DAEBC6DBEC C6DBECC6DBECC4D9EAC2D7E8C1D6E7C2D7E8C3D8E9C4D9EAC5DAEBC7DCEDC9DEEFCADFF0CADFF0 CCE1F4CAE1F1CADFF0CAE0EECDE0EFCFE2F0D2E4F2D3E5F1D3E3F0D4E5EFD7E5F0D9E7F0DCE9F2 DEEBF3E1EBF4E3ECF3E4ECEFE4ECEEE4ECEEE5EDEFE6EEF0E7EFF1E7EFF1E8F0F2E6EEF0E6EEF0 E6EEF0E7EFF1E8F0F2E9F1F3E9F1F3EAF2F4EBEFF2EBEFF2EBEFF2ECF0F3EDF1F4EEF2F5EEF2F5 EFF3F6EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EEF1F6EEF1F8EEF1FAEEF1FAEEF1FA EEF1FAEEF1FAEEF1FAEEF1FAECEFF8ECEFF8ECEFF8ECEFF8ECEFF8ECEFF8ECEFF8ECEFF6ECEFF4 ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1 EAEEF1EAEEF1EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EAEEF1EAEEF1 E9EDF0E8ECEFE7EBEEE7EBEEE6EBEFE2ECF5DFECF5DFECF5DEEBF4DDEAF3DCE9F2DCE9F2DCE9F2 DCE9F2DBE8F1DAE7F0D8E5EED7E4EDD5E2EBD4E1EAD3E0E9D1DFEACEDEEBCDDDEACBDBE8CADAE9 C7D9E7C6D7E7C4D7E6C5D8E9C2D7E8C1D8EAC0D7E9BDD6EABCD5E9BCD5EBBCD5E9BDD2E3BFD2E1 BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1C4DAE7C3D9E6C2D8E5C1D7E4C0D6E3C1D7E4C2D8E5 C3D9E6C7DDEAC7DDEAC7DDEAC7DDEAC7DDEAC7DDEAC7DDEAC7DDEBCBDDF3CADCF4C8DAF2C4D8F0 C0D6EDBCD5EBB9D4E9B5D4E8B2D1E5AFD2E5AED3E5ADD4E5ABD5E5AAD5E5AAD5E5ABD4E6AFD2E8 B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B2D0E8B1CFE7B1CFE7B1CFE7B1CFE7B1CFE7B1CFE7 B1CFE7B1CFE7AECEE3AECEE3AECEE3AECEE3AECEE3AECEE3AECEE3AECEE3B0D0E5B0D0E5B0D0E5 B0D0E5B0D0E5B0D0E5B0D0E5B1D0E4AFCEE2B1CEE0AFCEE2AFCEE2AECEE3AECEE3ACCFE5ACCFE5 ACD0E8ABD1E8ABD0EAA9D1EAA9D1EBA9D1EBA8D2EBA9D1EAACD0E8ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7AED1E7AED1E5AED3E6AED3E5 B0D3E6B3D4E5B4D3E5B8D3E4BAD4E5BDD2E3BED1E0C2D2E2C6D3E3CBD7E7D0D9E8D4DBEBD8DEEE D8E0EDD8E4F0D8E6F1D8E6F1D9E7F0DBE8F1DCE9F1DEE8F1E0E9F0DEE5EBDEE5EBE0E5E9E0E5E9 E1E5E8E1E5E8E1E5E8E0E5EBDDE3EFDCE3F3DDE4F4DDE4F4DCE5F4D8E4F2D6E2F0D2E2EFD1E1EE CEE2EDCCE0EBC8DEE9C5DDE7C3DBE5C1D9E3BED9E4BEDAE8BED9EABDD8E9BCD7E8BBD6E7BBD6E7 BAD5E6BAD5E6BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BED8E7C1D8E8C3D9E7C3DAE8 C4DBE9C4DBEBC3DAEAC0DAEBBFD8ECBDD6ECBDD6ECBBD5ECBAD4EBB9D3ECB9D3ECB8D2EBB8D2E9 B9D3EAB9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BFD5EABFD5EA BFD5EABFD5EABFD5EABFD5EABFD5EABFD6E8BFD6E6C0D7E5C1D8E6C1D8E6C3DAE8C3DAE8C4DBE9 C5DCEAC1D8E6C1D8E6C1D8E6C1D8E6C3DAE8C6DDEBC9E0EECCE2EFD1E3EFD2E3EDD3E4EED4E5EF D7E5EED8E6EFD9E6EFDAE7F0DFE9F2DFE9F2E1EAF1E0E9F0E0E7EFDEE5EDDDE1EAD9E2E9CADDE3 C6DDE3C4DBE1C1DADFC0D9E0BED9E0BFDAE5BEDAE5BBD9E4BBD9E4B9D9E6B9D9E6B8D9E8B8D9E8 B8D9E8B8D9E8B8D7EBBAD6EBBBD6E9BBD6E9BCD6E7BCD6E7BED5E5BED5E5C0D6E4C0D6E4C3D6E4 C5D8E6C8DAE6C9DBE7CBDCE6CEDCE7D2DFE8D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EB D7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EADAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9DBE4EDDAE4ED DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D5DFE8D4DEE7 D4DEE8D8E2EED8E1F0D8E1F0D7E0EFD6DFEED5DEEDD5DEEDD4DDECD4DDECD4DDECD4DDECD4DDEC D4DDECD4DDECD4DDECD4DEEAD0DCE8CFDCE5CDDAE3CCD9E2CCD9E2CDDAE3CFDCE5D0DDE6D3E0E9 D3E0E9D4E1EAD3E0E9D1DEE7CCD9E2C7D4DDC1D1DEBAD1E3B6D1E6B5D0E5B4CFE4B4CFE4B5D0E5 B6D1E6B7D2E7BAD5EABAD5EAB9D4E9B8D3E8B7D2E7B7D2E7B6D1E6B6D1E6B9D2E8B9D2E6B7D2E7 B6D1E6B4D0E6B4D0E6B1CFE7B1CFE7B1D1EAB1D1EAAED0EBADCFEAACCFEBABCEEAAACDE9ABCDE8 AFCFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B1D0E4B1D0E4B2D1E5B3D2E6B4D3E7 B4D3E7B5D4E8B7D4E6C3DAECC5DAEBC8DBEAC9DCEBCCDEECCDDFEBD1DFECD1DFEAD3E0E9D7E1EA DCE5ECDFE8EDE1E8EEE1E9ECE3E8ECE0E7EDDEE8F1DCE9F2DCE9F2DBE8F1DAE7F0DAE7F0D9E6EF D9E6EFD8E5EED8E5EED8E5EED8E5EED8E5EED8E5EED8E5EED8E5EED6E4EFD5E3EED4E2EDD0E1EB CFDFECCCDEEACBDDEBC9DCEACADDECC7DDEBC4D9EAC1D8E8BFD6E8BDD7E8BDD6EABDD6EAC4DBED C6DBECC7DCEDC7DCEDC6DBECC4D9EAC2D7E8C1D6E7C0D5E6C1D6E7C2D7E8C4D9EAC5DAEBC7DCED C8DDEEC9DEEFC9E0F2C9E0F2C9DEEFC9DEEFCBDEEFCDE0EFD0E2F0D1E3F1D0E0EDD1E1EED5E3EE D7E5F0DAE7F0DCE9F2E0EAF3E1ECF2E2ECEEE3EBEDE4ECEEE4ECEEE5EDEFE6EEF0E7EFF1E7EFF1 E5EDEFE5EDEFE6EEF0E6EEF0E7EFF1E8F0F2E9F1F3E9F1F3EAEEF1EAEEF1EBEFF2EBEFF2ECF0F3 EDF1F4EEF2F5EEF2F5EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF0F5EDF0F7EDF0F9 EDF0F9EDF0F9EDF0F9EDF0F9EDF0F9EDF0F9EBEEF7EBEEF7EBEEF7EBEEF7EBEEF7EBEEF7EBEEF7 EBEEF5EBEEF3EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2E9EDF0E9EDF0E9EDF0E9EDF0 E9EDF0E9EDF0E9EDF0E9EDF0EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1EAEEF1 EAEEF1E9EDF0E8ECEFE7EBEEE7EBEEE6EAEDE5EAEEE1EBF4DFECF5DEEBF4DDEAF3DCE9F2DCE9F2 DBE8F1DBE8F1DBE8F1DAE7F0D9E6EFD8E5EED6E3ECD4E1EAD3E0E9D2E0EBCEDEEBCDDDEACCDCE9 CBDBE8C8DAE8C6D8E6C4D7E6C2D8E6C2D7E8C1D8E8C0D7E9BDD7E8BCD5E9BCD5E9BAD5EABBD4E8 BDD2E3BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1C6DAE5C5D9E4C4D8E3C3D7E2C3D7E2 C4D8E3C6DAE5C7DBE6C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DBEACBDBF2C9DBF3 C7D9F1C3D7EFBFD5ECBBD4EAB8D3E8B4D3E7B2D1E5AFD2E5AED3E5ADD4E5ABD5E5AAD5E5AAD5E5 ABD4E6AFD2E8B1D1EAB1D1EAB1D1EAB1D1EAB1D1EAB1D1EAB1D1EAAFCFE8AFCFE8AFCFE8AFCFE8 AFCFE8AFCFE8AFCFE8AFCFE6AECDE2AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1AECDE1B0CFE3 B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3AECDE1AECDE1AECDE1AECDE1ADCDE2ADCDE2 ABCEE4ABCEE4ACD0E8ABD1E8ABD0EAA9D1EBA9D1EBA8D2EBA8D1EDA9D1EBACD0E8ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E8AFD2E6 AED3E6AED3E5B0D4E4B3D4E5B4D3E5B8D3E4BAD4E5BDD2E3BFD2E1C2D2E2C7D4E4CCD8E8D2D9E9 D7DDEDDAE0EEDBE1EFDAE4F0D9E6EFD9E6EFDAE7F0DDE7F1DEE8F1DFE8F1DFE8EFDFE6ECDFE6EC E1E6EAE1E6EAE2E6E9E2E6E9E4E5E7E2E5EAE0E4F0DFE5F5DEE5F5DFE6F6DDE6F5D9E5F3D7E3F1 D3E3F0D2E2EFCFE3EECDE1ECC8DEE9C5DDE7C2DAE4BED9E2BDD8E3BDD9E7BDD8E9BCD7E8BCD7E8 BBD6E7BAD5E6B9D4E5B9D4E5BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BED8E7C1D8E8 C2D9E7C3DAEAC4DBEBC4DBEDC3DAECC0D9EDBFD8ECBBD6EBBBD6EBBAD4EBBAD4EBB8D4ECB7D3EB B6D2EAB6D2E8B9D3EAB9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9BED4E9 C0D6EBC0D6EBC0D6EBC0D6EBC0D6EBC0D6EBC0D6EBC0D7E9C0D7E7C1D8E6C1D8E6C2D9E7C2D9E7 C3DAE8C3DAE8C4DBE9C1D8E6C1D8E6C0D7E5C1D8E6C2D9E7C4DBE9C6DDEBC9DFECD1E3EDD2E3EB D3E4ECD3E4ECD6E4EDD7E5EED8E5EDDAE4EDDFE8F1DFE8F1E0E7EFE0E7EFE0E4EDDDE1EADBE0E6 D6DFE6C9DCE2C5DCE2C2DBE0C1DADFC0D9E0BED9E0BFDAE5BFDBE6BCDAE5BCDAE5BADAE7BADAE7 B9DAE9B9DAE9B7DBE9B9DAE9B8D7EBBAD6EBBBD6E9BBD6E9BBD6E7BCD6E7BED5E5BED5E5BFD5E3 C0D6E4C3D6E4C4D7E5C7D9E5C9DBE7CADCE8CBDCE6D2DFE8D4DEE7D5DFE8D6E0E9D6E0E9D7E1EA D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBDAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9 DBE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9 D5DFE8D4DEE7D4DEE8DAE4F0D9E2F1D9E2F1D8E1F0D7E0EFD6DFEED6DFEED5DEEDD6DFEED6DFEE D6DFEED6DFEED6DFEED6DFEED6DFEED6E0ECCEDAE6CDDAE3CCD9E2CBD8E1CBD8E1CCD9E2CDDAE3 CEDBE4D1DEE7D2DFE8D3E0E9D2DFE8CFDCE5C9D6DFC3D0D9BCCCD9BAD0E5B6D0E7B5CFE6B4CEE5 B4CEE5B5CFE6B6D0E7B7D1E8B9D3EAB9D3EAB8D2E9B8D2E9B7D1E8B6D0E7B5CFE6B5D0E5B7D2E7 B7D2E7B6D1E6B6D1E6B4D0E6B3CFE5B0CEE6B0CEE6B1D1EAB1D1EAAED0EBACCFEBACCFEBABCEEA A9CEEBAACEE8AFCFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B2D1E5B2D1E5B3D2E6 B3D2E6B4D3E7B5D4E8B6D5E9B8D5E7C6DDEFC7DCEDCADDECCBDEEDCDDFEDCEE0ECD2E0EDD2E0EB D3E0E9D7E1EADCE5ECE0E7EDE3E8EEE3E8ECE4E7ECE0E7EDDCE6EFD9E7F2D8E6F1D7E5F0D6E4EF D5E3EED4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD4E2EDD3E1EC D0E0EDCFDFECCDDDECCADCEAC9DAEAC8DBEAC9DCEDC6DBECC3D8EBC0D7E9BED4E9BBD4E8BCD5EB BCD5E9C6DDEFC7DCEDC8DDEEC8DDEEC7DCEDC6DBECC4D9EAC2D7E8BFD4E5C0D5E6C1D6E7C3D8E9 C4D9EAC6DBECC7DCEDC8DDEEC8DFF1C7DEF0C7DEF0C6DDEDC8DDEECCDFEECFE1EFD0E2F0CEDEEB CFDFECD3E1ECD5E3EED9E6EFDBE8F1DDEAF3E0EAF3E1EBEDE2EAECE3EBEDE4ECEEE5EDEFE5EDEF E6EEF0E6EEF0E4ECEEE4ECEEE5EDEFE6EEF0E7EFF1E7EFF1E8F0F2E8F0F2E9EDF0E9EDF0EAEEF1 EBEFF2ECF0F3ECF0F3EDF1F4EDF1F4EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEEF3 EBEEF5EBEEF7EBEEF7EBEEF7EBEEF7EBEEF7EBEEF7EBEEF7E9ECF5E9ECF5E9ECF5E9ECF5E9ECF5 E9ECF5E9ECF5E9ECF3E9ECF1E9EDF0E9EDF0E9EDF0E9EDF0E9EDF0E9EDF0E9EDF0E7EBEEE7EBEE E7EBEEE7EBEEE7EBEEE7EBEEE7EBEEE7EBEEE9EDF0E9EDF0E9EDF0E9EDF0E9EDF0E9EDF0E9EDF0 E9EDF0E9EDF0E9EDF0E8ECEFE8ECEFE7EBEEE6EAEDE5E9ECE4E9EDE0EAF3DDEBF6DCEAF5DCEAF5 DBE9F4DAE8F3D9E7F2D9E7F2D9E7F2D9E7F2D8E6F1D6E4EFD4E2EDD3E1ECD2E0EBD1DFEACDDDEA CDDDEACCDCE9CADAE7C7D9E7C6D8E6C4D7E6C1D6E7C1D6E9C0D7E9BFD5EABDD6EABCD5EBBAD5EA B9D4E9BAD3E7BDD2E3BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1C6D9E7C5D9E4C4D7E5 C3D7E2C4D7E5C5D9E4C6D9E7C8DCE7C7DAE8C7DBE6C7DAE8C7DBE6C7DAE8C7DBE6C7DAE8C7DAE8 C9DBEFC8DAF0C6D8EEC2D7ECBFD5EABAD3E7B8D3E6B6D3E5B2D1E3B1D2E5AFD2E5AED3E5ADD4E5 ABD5E5ABD5E5ADD3E6AFD2E8B1D1E8B1D1E8B1D1E8B1D1E8B1D1E8B1D1E8B1D1E8AFCFE6AFCFE6 AFCFE6AFCFE6AFCFE6AFCFE6AFCFE6AFCFE6ADCDE2ADCEE1AECDE2ADCEE1AECDE2ADCEE1AECDE2 ADCEE1B0CFE4AFD0E3B0CFE4AFD0E3B0CFE4AFD0E3B0CFE4AFD0E3AECDE2ADCEE1AECDE2ADCDE2 ADCDE2ADCDE2ABCEE4ABCEE4ACD0E8ABD1E8ABD0EAABD0EAA9D1EAA9D1EAA9D1EBABD0EAADD0E6 ADD0E4AFCFE6ADD0E4AFCFE6ADD0E4AFCFE6ADD0E4B1D1E8AFD2E6B1D1E8AFD2E6B1D1E8AFD2E6 B1D1E8AFD2E6AFD2E5AFD2E5B2D3E4B4D3E5B6D3E5B8D3E4BAD4E5BDD2E3BFD2E3C2D3E3C5D5E5 CCD8E8D2DBECD7DEEEDAE1F1DBE3F0DAE4EEDAE4EDDBE5EEDCE6EFDCE6EFDEE7EEDFE8EFDFE8EF E0E7EDE0E7EDE2E7EBE2E7EBE2E7EBE3E7EAE3E7EAE3E6EBDFE6F0DEE6F1DFE7F4DEE8F4DDE7F3 DAE6F2D7E5F0D5E3EED2E3EDD0E2ECCDE1ECCADEE9C6DCE7C3D9E4C0D8E2BFD7E3BED8E7BDD9E7 BDD7E8BBD7E5BBD5E6BAD6E4BAD4E5B9D5E3BED8E9BDD9E7BED8E9BDD9E7BED8E9BDD9E7BED8E9 BED8E7BED8E7C1D8E8C3DAEAC4DBEBC4DBEDC3DAECBFD8ECBED7EBBBD6E9BBD6EBBAD5EAB9D4E9 B8D2E9B7D3E9B7D1E8B6D2E8B9D3EAB9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9 BAD3E7BAD3E7BAD3E7BAD3E7BAD3E7BAD3E7BAD3E7BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7 BCD6E7BCD6E7BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E7C1D8E6C1D9E5C1D8E6 C2DAE6C2D9E7C3DBE7C3DAE8C3DBE7C2D9E7C1D9E5C0D7E5C0D8E4C1D8E6C2DAE6C4DBE9C6DCE9 D1E3EDD2E3EBD4E2EBD5E3ECD5E3ECD6E4EDD7E4EDD7E4EDDDE7F1DDE7F1DDE7F1DCE6F0DAE4EE D8E2ECD6DFE8D1DEE7C9DCE3C5DCE4C3DAE2C1DAE1C0D9E0BFDAE3C0DBE6BFDBE6BDD9E5BCDAE5 BCDAE5BADAE7BADAE7BADAE7B9DBE7BADAE9BAD7E7BBD6E9BCD6E7BCD6E7BCD6E5BCD6E5BED5E5 BED5E3BFD5E3BFD5E3C3D6E4C4D7E5C6DAE5C7DBE6C9DBE7CBDCE6D2DFE8D4DEE7D6DFE8D6E0E9 D7E0E9D7E1EAD9E2EBD8E2EBD9E2EBD8E2EBD9E2EBD8E2EBD9E2EBD8E2EBD9E2EBD9E2EBDAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DBE4EDDAE4EDDBE4EDDAE4EDDBE4EDDAE4EDDBE4EDDAE4EDD9E2EBD8E2EBD8E1EA D6E0E9D7E0E9D5DFE8D5DEE7D4DEE7DAE4F0DAE4F0D9E3EFD9E3EFD8E2EED7E1EDD6E0ECD6E0EC D6E0ECD6E0ECD6E0ECD6E0ECD6E0ECD6E0ECD6E0ECD4E0ECCDD9E5CBD9E4CAD8E3C9D7E2C9D7E2 CAD8E3CBD9E4CCDAE5CFDDE8D0DEE9D1DFEAD0DEE9CCDAE5C6D4DFBFCDD8B8CAD8BAD0E5B6D0E7 B4CEE5B3CDE4B3CDE4B4CEE5B6D0E7B7D1E8B9D3EAB9D3EAB8D2E9B7D1E8B6D0E7B6D0E7B5CFE6 B5CFE6B7D2E7B7D2E7B6D1E6B5D0E5B3CFE5B3CFE5B0CEE6B0CEE6B2D0E8B1D1EAAED0EBADCFEA ADCFEAACCEE9AACDE9ABCDE6B0CFE4B2CEE3B3CEE3B2CEE3B3CEE3B2CEE3B3CEE3B2CEE3B5D0E5 B4D0E5B6D1E6B6D2E7B8D3E8B7D3E8B9D4E9BAD3E7C8DDEECBDDEBCCDEECCDDFEDCFDFECCFDFEC D2E0EBD3E0E9D5DFE8D7E1EADCE5ECE0E7EDE1E8EEE1E8EEE3E8ECE0E7EDD8E5EED5E5F2D4E4F1 D3E3F0D2E2EFD1E1EED0E0EDD0E0EDD1E1EED1E1EED1E1EED1E1EED1E1EED1E1EED1E1EED1E1EE D1E1EED0E0EDCEE0EECDDFEDCADDECC8DBEAC7DAE9C5DAEBC7DCEDC5DAEBC2D9EBBFD6E8BBD4E8 BBD4E8BBD4E8BBD4E8C7DEF0C7DEF0C8DFF1C8DFF1C7DEF0C6DDEFC4DBEDC3DAECBED5E7BED5E7 BFD6E8C1D8EAC3DAECC4DBEDC5DCEEC6DDEFC7DEF0C7DEF0C6DDEFC6DDEFC8DDEEC9DFEDCEDFEF D0E2F0CDDDEACEDEEBD2E0EBD4E2EDD8E5EEDBE8F1DDEAF3E0EAF3E1EAEFE2EAEDE3EBEEE3EBEE E4ECEFE5EDF0E6EEF1E6EEF1E4ECEFE4ECEFE5EDF0E5EDF0E6EEF1E7EFF2E8F0F3E8F0F2E8EDF0 E8EDF0EAEEF1E9EEF1EBEFF2EBF0F3EDF1F4ECF1F4EBEFF2EAEFF2EBEFF2EAEFF2EBEFF2EAEFF2 EBEFF2EAEFF3EBEEF5EAEEF7EBEEF7EAEEF7EBEEF7EAEEF7EBEEF7EAEEF7E9ECF5E8ECF5E9ECF5 E8ECF5E9ECF5E8ECF5E9ECF5E8EDF3E9ECF1E8EDF1E9ECF1E8EDF1E9ECF1E8EDF1E9ECF1E8EDF1 E7EAEFE6EBEFE7EAEFE6EBEFE7EAEFE6EBEFE7EAEFE6EBEFE9ECF1E8EDF1E9ECF1E8EDF1E9ECF1 E8EDF1E9ECF1E8EDF1E9ECF1E8EDF1E8EBF0E6EBEFE6E9EEE5EAEEE5E8EDE2E9EFE0EAF3DDEBF4 DDE9F5DBE9F4DAE8F3DAE8F3D9E7F2D9E7F2D9E7F2D6E6F3D5E5F2D4E4F1D2E2EFD1E1EECFDFEC CFDFECCDDDEACBDDE9CBDBEAC9DBE9C7D9E7C5D8E7C3D6E5C1D6E7C1D6E7C0D7E9BFD6E8BED5E7 BBD4E8BBD4E8BAD3E7BCD3E5BDD2E3BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1BFD2E1C7DAE9 C7DAE8C6D9E8C5D8E6C4D7E6C4D7E5C3D6E5C3D6E4C9DCEBC9DCEAC8DBEAC8DBE9C7DAE9C6D9E7 C6D9E8C5D8E6C8DBEAC6DCEAC6DCEAC6DCEAC3DAEAC1D8E8BCD6E7BAD5E6B5D0E1B4D1E3B2D1E3 B1D2E3B1D2E5AFD2E5AFD2E5AFD2E5B1D1E6B2D1E6B2D1E6B2D1E6B2D1E6B2D1E6B2D1E6B2D1E6 B0CFE4B0CFE4B0CFE4B0CFE4B0CFE4B0CFE4B0CFE4AFCFE4AFCFE4ADD0E4AFCFE6ADD0E4AFCFE6 ADD0E4AFCFE6ADD0E4AFCFE6ADD0E4AFCFE6ADD0E4AFCFE6ADD0E4AFCFE6ADD0E4AFCFE6ADD0E4 AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ACD0E6ACD0E8ACD0E8ACD0E8ACD0E8ACD0E8 ADD0E6ADCDE2ADCEE1AFCEE3AFD0E3B0CFE4B0D1E4B2D1E6B1D2E5B2D1E6B1D2E5B2D1E6B1D2E5 B2D1E6B1D2E5B2D1E6B2D1E5B4D3E7B6D2E7B7D3E8B8D5E7B9D4E7BBD5E6BED5E7BED5E5C1D6E7 C3D6E5C5D6E6C7D9E7CBDBEAD1DFECD5E3F0D8E4F0DDE6EFDDE6EDDEE7EEDFE8EFE0E9F0E1E8EE E2E9EFE2E9EFE0E7EDE0E7EDE1E8EEE2E9EFE3EAF0E5EAEEE6EBEFE4EBF1E1EAEFE0EBEFDFEAF0 DDEAF0DCE9EFDBE8EED9E8EFD9E8EFD2E0E9CFE0E8CDDEE8C9DBE5C6D8E4C4D6E2C2D4E0C0D3E1 BDD4E2BBD5E2BDD4E4BCD6E3BED5E5BCD6E3BFD6E6BDD7E4BED5E5BCD6E3BFD6E6BDD7E4C0D7E7 BFD9E6C2D9E9C0DAE9C2DCEBC2DCEDC1DBECC0DAEBC0DAEBBFD9EABED8E9BED8E9BCD6E7BCD5E9 BCD5E9BCD5E9BCD5E9BBD6E9BCD5E9BBD6EBB4D0E6B5D1E7B8D4EABAD6ECBCD7ECBDD8EDBDD6EA BDD6EABBD4E8BED5E7BFD6E8C0D7E9C1D6E7C0D5E6C1D4E3BED4E2BFD9E6BDD9E5BBD7E3BBD7E3 BCD8E4BDD9E5BEDAE6BFDBE7BBD7E3BBD7E3BBD7E3BBD7E3BBD7E3BBD7E3BBD7E3BBD7E3BED9E4 C0D8E2C1D9E5C2DAE4C4DCE8C5DDE7C6DEEAC6DEE8C4DCE8C4DCE6C4DCE8C4DCE6C5DDE9C5DDE7 C5DDE9C6DCE7CEDFE9D1DFE8D4E1EAD6E4EDD7E5F0D8E6F1D7E5F0D7E5F0D6E6F3D6E6F3D6E8F6 D6E8F6D6E7F7D3E6F5D2E3F3D0E3F1CADCEAC9DDE8C8DCE7C5DBE6C5DBE6C4DAE7C3D9E6C2DAE6 C0D8E4BED9E4BDD8E3BBD7E3BAD6E2B9D7E2B8D6E1B9D5E1BCD6E3BED5E3BED5E3BED5E3BED5E3 BED5E3BFD5E3BFD5E2C7DDEAC7DDEAC6DCE9C5DBE8C6DCE9C7DDEACBDEECCDDFEBDAE4EDDBE4EB DCE3EBDBE4EBDCE3EBDBE4EBDCE3EBDBE4EBDCE3EBDBE4EBDBE2EAD9E2E9D9E0E8D8E1E8D8DFE7 D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7DCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDBE4EBDCE3EBDBE4EBDCE3EBDBE4EBDCE3EBDBE4EBDAE1E9 D9E2E9DAE1E9D9E2E9DAE1E9D9E2E9DAE1E9D9E2EBD8E2EBD8E2ECD8E2ECD8E2ECD8E2ECD8E2EC D8E2ECD8E2ECDAE4EEDAE4EED9E3EDD8E2ECD8E2ECD7E1EBD6E0EAD4E0ECD0E0EDCEE0EECCDEEC C9DBE9C7D9E7C4D6E4C2D4E2C1D3E1CBDDEBCADCEAC9DBE9C7D9E7C5D7E5C3D5E3C2D4E2C0D3E2 B9D2E6B7D3E8B7D3E8B6D2E7B6D2E7B5D1E6B5D1E6B5D1E6B6D2E7B6D2E7B6D2E7B6D2E7B6D2E7 B6D2E7B6D2E7B6D2E7B4D0E6B4D0E6B3CFE5B2CEE4B1CDE3B1CDE3B0CCE2B0CCE2B3CFE5B1CFE7 B1CFE7B0CEE6AFCDE5AFCDE5AECCE4B0CCE2B9D2E8BBD1E6BCD1E6BBD1E6BCD1E6BBD1E6BCD1E6 BBD1E6B9CEE3B9CFE4BCD1E6BDD3E8C1D6EBC2D8EDC5DAEFC8DAEECEDEEBD1DEE7D1DEE7D2DFE8 D2DFE8D2DFE8D2DFE8D5DFE8D9E3ECD9E3ECDBE5EEDDE6EDDDE6EDDCE5ECDAE3EAD9E3ECD4E4F1 D1E3F1CFE1EFCCDEECCADCEAC9DBE9C9DBE9C9DBE9CCDEECCCDEECCCDEECCCDEECCCDEECCCDEEC CCDEECCBDEEDC9DCEBC7DCEDC6DBECC6DBECC5DAEBC4D9EAC3D8E9C2D9EBC3DAECC1D8EABED5E7 BDD4E6BDD4E6BFD6E8C2D9EBC2DBEFC0D9EFC0D9EFBFD8EEBED7EDBDD6ECBCD5EBBBD4EABAD3E9 C2DBF1C2DBF1C2DBF1C2DBF1C2DBF1C2DBF1C2DBF1C2DBEFC6DCF1C5DCEEC4DBEDC4DBEDC6DBEC C8DEECCDDEEECEE0EED2E2EFD3E3F0D7E5F0D8E6F1DAE7F0DAE7F0D9E6EFDBE5EEE3ECF3E4EBF1 E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E6EDF3E6EDF3E6EDF3E6EDF3E6EDF3E6EDF3E6EDF3 E6EEF1E8F0F2E8F1F0EAF0F0E8F1F0EAF0F0E8F1F0EAF0F0E8F1F0EAF0F0E8F1F0EAF0F0E8F1F0 EAF0F0E8F1F0EAF0F0E8F0F2E8EDF3E6EDF5E8ECF5E6EDF5E8ECF5E6EDF5E8ECF5E6EDF5E8ECF5 E6EDF5E8ECF5E6EDF5E8ECF5E6EDF5E8ECF5E6EDF5E8EDF3E6EDF3E8EDF3E6EDF3E8EDF3E6EDF3 E8EDF3E6EDF3E8EDF3E6EDF3E8EDF3E6EDF3E8EDF3E6EDF3E8EDF3E6EDF3E6EBF1E4EBF1E6EBF1 E4EBF1E6EBF1E4EBF1E6EBF1E4EBF1E6EBF1E4EBF1E5EAF0E3EAF0E4E9EFE1E8EEE2E7EDE0E7EF E0EAF3DEEBF3DFE9F3DDEAF3DCE9F2DBE8F1D9E7F2D9E7F2D5E5F2D4E6F4D3E5F3D1E3F1CEE1F0 CDE0EFCCDFEECBDEEDC9DCEBC9DCEAC9DAEAC8DBEAC7DAE9C6D9E8C5D8E7C5D8E7C1D4E3BFD4E5 BFD4E5BFD4E5BFD4E5BFD4E5BFD4E5BFD4E5BDD2E3BDD2E3BED3E4BED3E4BFD4E5C0D5E6C1D6E7 C1D6E7C8DBEAC7DAE9C7DAE9C6D9E8C5D8E7C4D7E6C4D7E6C3D6E5C8DBEAC8DBEAC7DAE9C6D9E8 C6D9E8C5D8E7C4D7E6C4D7E5C4DAE7C5DBE6C5DBE8C4DAE7C2D9E7BFD6E4BBD5E4B9D3E2B5D0E1 B5D0E1B4D1E3B4D1E3B2D1E5B2D1E5B1D2E5B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3AFD0E3AFCFE6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E4AECDE2AECDE1AFCEE2B0CFE3B0CFE3B1D0E4B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7 BED5E7C1D6E7C1D6E7C4D7E6C6D9E8CADCEACDDFEDD2E2EFD6E4EFDCE5ECDEE5EBDEE5EBDFE6EC E0E7EDE1E8EEE1E8EEE2E9EFE0E7EDE0E7EDE1E8EEE1E8EEE2E9EFE3EAF0E4EBF1E3ECF1E1EBED E0EBEDDDEBECDCEAEBDBE9ECDBE9ECDAE7EDD9E8EDD2E1E8D1DFE8CFDDE8CBDCE6C8D8E5C6D6E3 C4D4E1C2D4E0BFD5E3BED5E3BED5E3BED5E3BFD6E4BFD6E4BFD6E4BFD6E4BED5E3BED5E3BFD6E4 C0D7E5C1D8E6C1D8E6C2D9E7C2D9E7C2DCEDC2DCEDC1DBECC0DAEBC0DAEBBFD9EABED8E9BED8E9 BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7BBD6E9B5D1E7B6D2E8B8D4EABAD5EABBD6EB BDD6EABDD6EABED5E7BBD2E4BDD2E3BFD4E5C2D5E4C2D5E4C2D4E2C0D2E0BED1DFC0DBE6BCDAE4 BCD8E3BBD9E3BDD9E4BDDBE5BEDAE5BDDBE5BDD9E4BCDAE4BDD9E4BCDAE4BDD9E4BCDAE4BDD9E4 BDD9E4BFD7E1C1D7E2C2D8E3C3D9E4C5DBE6C6DCE7C7DDE8C8DEE9C8DEE9C8DEE9C7DDE8C5DBE6 C4DAE5C3D9E4C2D8E3C4D8E1D1DFE8D3E0E9D6E3ECD8E5EED8E6F1D8E6F1D5E5F2D5E5F2D3E5F3 D4E6F4D4E7F6D2E7F8D1E6F9CEE5F7CCE3F5CCE1F2C9DCEBCADCEAC8DBE9C7DAE8C7DAE8C4DAE7 C3D9E6C2DAE6C0D8E4BED9E4BDD8E3BDD8E3BBD7E2BAD6E1B9D5E0BAD5E0BED6E2BFD5E2BFD5E2 BFD5E2BFD5E2BFD5E2BFD5E2BFD5E2C5DBE8C5DBE8C5DBE8C5DBE8C6DCE9C9DFECCBE1EECFE1ED DAE4EDDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDBE2EADBE2EADAE1E9 D9E0E8D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7DCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9D9E2EBD8E2EBD8E2EBD8E2EB D8E2EBD8E2EBD8E2EBD8E2EBDAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D4E1EACFE1EF CDE0EFCBDEEDC9DCEBC6D9E8C4D7E6C2D5E4C1D4E3CADDECC9DCEBC8DBEAC6D9E8C4D7E6C3D6E5 C1D4E3BFD4E5B8D3E6B7D3E8B6D2E7B6D2E7B5D1E6B4D0E5B4D0E5B4D0E5B5D1E6B5D1E6B5D1E6 B5D1E6B5D1E6B5D1E6B5D1E6B5D1E6B4D0E6B4D0E6B3CFE5B3CFE5B2CEE4B1CDE3B0CCE2B0CCE2 B3CFE5B3CFE5B3CFE5B3CFE5B3CFE5B2CEE4B2CEE4B3CEE3BFD4E9C1D3E7C1D3E9C1D3E7C1D3E9 C1D3E7C1D3E9C1D3E7BDCFE5BED0E4C0D2E8C2D4E8C5D7EDC7D9EDC9DBF1CBDCEED3DFEBD5DFE8 D5DFE8D5DFE8D5DFE8D5DFE8D5DFE8D5DFE8D8E2EBD9E3ECDAE4EDDBE5EEDBE5EEDAE4EDD9E3EC D6E3ECD1E3F1CEE1F0CCDFEEC9DCEBC7DAE9C6D9E8C7DAE9C7DAE9CADDECCADDECCADDECCADDEC CADDECCADDECCADDECC8DEECC6DBEEC5DCEEC4DBEDC4DBEDC3DAECC2D9EBC1D8EAC1D8EAC2D9EB C0D7E9BED5E7BCD3E5BDD4E6BED5E7C1D8EAC0D9EDBFD8EEBED8EFBDD7EEBCD6EDBBD5ECBAD4EB B9D3EAB9D3EAC1DBF2C1DBF2C1DBF2C1DBF2C1DBF2C1DBF2C1DBF2C1DCF1C4DAEFC4DBEDC3DAEC C3DAEAC5DAEBC8DBEACBDDEBCDDFEDCFDFECD0E0EDD5E3EED7E5F0DAE7F0DAE7F0DAE7F0DBE5EE E3ECF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF3E8F0F2E8F1F0E8F1F0E8F1F0E8F1F0E8F1F0E8F1F0E8F1F0E8F1F0E8F1F0 E8F1F0E8F1F0E8F1F0E8F1F0E8F1F0E8F0F2E6EDF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E4EBF3 E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E3EAF2E2E9F1E1E8F0E1E8F0 E0E7EFDFE8EFE1EAF3DFE9F2DFE9F2DEE8F1DBE8F1DAE7F0D9E7F2D6E7F1D5E5F4D3E5F3D1E4F3 CFE2F1CCE1F2CADFF0C9DEEFC8DDEEC9DCEBC9DCEBC8DBEAC7DAE9C6D9E8C6D9E8C5D8E7C5D8E7 C1D4E3C1D4E3C1D4E3C1D4E3C1D4E3C1D4E3C1D4E3C1D4E3BDD2E3BED3E4BED3E4BFD4E5C0D5E6 C1D6E7C1D6E7C2D7E8C9DCEBC8DBEAC8DBEAC7DAE9C6D9E8C5D8E7C5D8E7C5D8E7C6D9E8C6D9E8 C5D8E7C4D7E6C4D7E6C3D6E5C2D5E4C2D5E3C2D8E5C2D8E3C2D8E5C2D8E5BFD6E4BDD4E2B8D2E1 B6D0DFB5D0E1B5D0E1B4D1E3B4D1E3B2D1E5B2D1E5B1D2E5B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3AFD0E3AFCFE6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4AECDE2AECDE1AFCEE2B0CFE3B0CFE3B1D0E4B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7 BBD4E8BED5E7BED5E7C1D6E7C1D6E7C4D7E6C5D8E7C9DBE9CCDEECD1E1EED5E3EEDBE4EBDDE4EA DDE4EADEE5EBDFE6ECE0E7EDE0E7EDE0E7EDDFE6ECDFE6ECE0E7EDE1E8EEE2E9EFE2E9EFE3EAF0 E2EBF0E0EAECDFEAECDEE9EDDEE9EDDDE8EEDAE7EDD9E6EED9E6EED3E0E9D2E0E9D0DEE9CEDCE7 CCDAE7C9D7E4C6D6E3C4D6E2C1D7E5C0D7E5C0D7E5C0D7E5C0D7E5BFD6E4BFD6E4BFD6E4BFD6E4 BFD6E4C0D7E5C0D7E5C1D8E6C2D9E7C3DAE8C3DAE8C2DCEDC2DCEDC1DBECC0DAEBC0DAEBBFD9EA BED8E9BED8E9BDD7E8BDD7E8BDD7E8BDD7E8BDD7E8BDD7E8BDD7E8BDD6EAB8D3E8B8D3E8B9D4E9 BBD4E8BBD4E8BED5E7BED5E7BFD4E5BDD2E3C0D3E2C1D4E3C3D5E3C3D5E3C3D3E0C2D2DFC0D2DE C4DCE8BFDBE6BED9E4BEDAE5C0DBE6C0DCE7C0DBE6BDD9E4BFDAE5BEDAE5BFDAE5BEDAE5BFDAE5 BEDAE5BFDAE5BFDAE5BFD5E0C2D6DFC3D7E0C5D9E2C7DBE4C9DDE6CADEE7CBDFE8CEE2EBCDE1EA CBDFE8C9DDE6C7DBE4C5D9E2C3D7E0C3D5DFD5E2EBD8E2EBD8E5EED9E6EFD9E7F2D8E6F1D5E5F2 D4E4F1D1E3F1D1E3F1D1E4F3CFE5F3CEE3F4CDE2F3CAE1F3CADFF0C9DCEBC9DCEBC8DBEAC7DAE9 C5DBE9C4DAE8C3D9E7C2D9E7C1D8E6BFD9E6BED8E5BCD8E4BBD7E3BBD7E3B9D7E2BAD6E2BFD6E4 C0D6E4C0D6E4C0D6E4C0D6E4C0D6E4C0D6E4C0D6E4C2D8E6C3D9E7C3D9E7C5DBE9C8DEECCBE1EF CEE4F2D3E5F1DBE5EEDDE4ECDDE4ECDDE4ECDDE4ECDDE4ECDDE4ECDDE4ECDDE4ECDDE4ECDCE3EB DBE2EADAE1E9DAE1E9D9E0E8D9E0E8D9E0E8D9E0E8D9E0E8D9E0E8D9E0E8D9E0E8D9E0E8D9E0E8 DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9DAE3ECD9E3EC D9E3ECD9E3ECD9E3ECD9E3ECD9E3ECD9E3ECDAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9 D4E1EACFE1EFCDE0EFCBDEEDC9DCEBC7DAE9C5D8E7C3D6E5C2D5E4CADDECC9DCEBC8DBEAC7DAE9 C5D8E7C4D7E6C3D6E5C0D5E6B9D3E4B8D3E6B7D2E5B6D1E4B5D0E3B4CFE2B4CFE2B3CEE1B5D0E3 B5D0E3B5D0E3B5D0E3B5D0E3B5D0E3B5D0E3B5D0E3B6D1E6B6D1E6B5D0E5B4CFE4B3CEE3B3CEE3 B2CDE2B2CDE2B5D0E5B5D0E5B5D0E5B5D0E5B6D1E6B6D1E6B6D1E6B7D0E6C4D6EAC5D6E8C5D6EA C5D6E8C5D6EAC5D6E8C5D6EAC5D6E8C2D3E7C3D4E6C4D5E9C7D8EAC9DAEECCDDEFCDDEF2CFDFEF D5E1EDD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD8E2EBD9E3ECDAE4EDDAE4ED D9E3ECD8E2EBD5E2EBCEE0EECBDEEDC9DCEBC6D9E8C5D8E7C4D7E6C5D8E7C5D8E7C8DBEAC8DBEA C8DBEAC8DBEAC8DBEAC8DBEAC8DBEAC6DCEAC5DAEDC4DBEDC3DAECC2D9EBC1D8EAC1D8EAC0D7E9 C0D7E9C0D7E9BFD6E8BDD4E6BCD3E5BCD3E5BDD4E6BED5E7BDD6EABDD6ECBCD7ECBBD6EBBBD6EB BAD5EABAD5EAB9D4E9B9D4E9C0DBF0C0DBF0C0DBF0C0DBF0C0DBF0C0DBF0C0DBF0C0DBF0C3D9EE C2D9EBC2D7E8C2D7E8C5D8E9C7DAE9CADCEACBDDEBCBDBE8CDDDEAD2E0EBD5E3EED9E6EFDAE7F0 DDE7F0DDE7F0E3ECF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF5E6EDF5E6EDF3E7EFF2E7EFF1E7EFF1E7EFF1E7EFF1E7EFF1E7EFF1E7EFF1 E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF1E5ECF2E5ECF4E5ECF4E5ECF4E5ECF4 E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4 E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4 E5ECF4E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E2E9F1E2E9F1 E1E8F0E0E7EFDFE6EEDEE7EEDFE8F1DEE8F1DEE8F1DDE7F0DAE7F0D9E6EFD8E6F1D5E6F0D4E4F3 D2E4F2D0E3F2CEE1F0CBE0F1C9DEEFC8DDEEC7DCEDC8DBEAC8DBEAC7DAE9C7DAE9C6D9E8C5D8E7 C4D7E6C4D7E6C2D5E4C2D5E4C2D5E4C2D5E4C2D5E4C2D5E4C2D5E4C2D5E4BFD4E5BFD4E5BFD4E5 C0D5E6C1D6E7C2D7E8C2D7E8C3D8E9CADDECCADDECC9DCEBC9DCEBC8DBEAC7DAE9C6D9E8C6D9E8 C5D8E7C4D7E6C4D7E6C3D6E5C2D5E4C2D5E4C1D4E3C1D4E2C0D6E3C0D6E1C0D6E3C0D6E3BDD4E2 BAD1DFB6D0DFB4CEDDB5D0E1B5D0E1B4D1E3B4D1E3B2D1E5B2D1E5B1D2E5B1D2E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3 AFD0E3AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4AECDE2AECDE1AFCEE2B0CFE3B0CFE3B1D0E4 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8 B9D4E9BAD3E7BBD4E8BED5E7BED5E7C1D6E7C1D6E7C3D6E5C5D8E7C8DAE8CBDDEBCFDFECD3E1EC DAE3EADBE2E8DCE3E9DCE3E9DDE4EADEE5EBDFE6ECDFE6ECDEE5EBDFE6ECDFE6ECE0E7EDE1E8EE E2E9EFE2E9EFE1EAEFDFE8EDDEE9EBDEE9EDDDE8ECDCE7EDDBE6ECD9E6EED8E5EDD4E1EAD3E0E9 D1DFEACFDDE8CDDBE8CCDAE7C8D8E5C6D8E6C4DAE8C2D9E7C2D9E7C1D8E6C1D8E6C0D7E5C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5C1D8E6C2D9E7C3DAE8C3DAE8C4DBE9C2DCEBC2DCEDC1DBECC0DAEB C0DAEBBFD9EABED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BBD4E8 BBD4E8BDD3E8BDD4E6BFD4E7C0D5E6C3D6E7C4D7E6C6D7E7C7D9E7C9D9E8CADAE7CCDAE7CBD9E4 CBD7E3C7D8E2C9DFEAC6DEE8C4DCE8C5DDE7C7DFEBC7DFE9C4DCE8C1D9E3C0D8E4C0D8E2C0D8E4 C0D8E2C0D8E4C0D8E2C0D8E4C1D7E2C3D5DFC4D5DFC6D7E1C8D9E3CADBE5CCDDE7CEDFE9CFE0EA D2E3EDD2E3EDD1E2ECD0E1EBCFE0EACEDFE9CDDEE8CEDCE5D9E6EEDBE5EEDCE6F0DBE8F1DBE7F3 D8E6F1D7E5F2D4E4F1D0E0EFCFE1EFD0E1F1CFE2F1CEE1F2CBE0F1C9DEF1C7DCEDC7DCEDC9DCEB C8DBEAC5DBE9C5DBE9C4DAE8C2D9E7C2D9E7C0DAE7BFD9E6BEDAE6BDD9E5BCD8E4BBD7E3BAD8E3 BBD7E3C0D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C0D6E4C1D7E5C2D8E6C5DBE9 C9DFEDCEE4F2D2E8F6D7E9F7DCE6F0DEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5ED DDE4ECDDE4ECDCE3EBDBE2EADAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9 DBE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD9E3ECD8E2EBD8E2EB D7E1EAD6E0E9D4E1EACEE0EECDE0EFCBDEEDCADDECC8DBEAC6D9E8C5D8E7C4D7E6C9DCEBC9DCEB C8DBEAC7DAE9C6D9E8C5D8E7C4D7E6C2D8E6BAD4E5B9D4E7B8D3E6B7D2E5B5D0E3B4CFE2B3CEE1 B2CDE0B4CFE2B4CFE2B4CFE2B4CFE2B4CFE2B4CFE2B4CFE2B4CFE2B7D2E7B6D1E6B6D1E6B5D0E5 B4CFE4B3CEE3B3CEE3B3CEE3B5D0E5B5D0E5B6D1E6B7D2E7B8D3E8B9D4E9BAD5EABED4E9C8DBEC C9DAEACAD9ECC9DAEACAD9ECC9DAEACAD9ECC9DAEAC6D5E8C6D7E7C9D8EBCADBEBCDDCEFCFE0F0 D2E1F4D2E2F1D8E4F0DAE4EDD9E3ECD9E3ECD8E2EBD7E1EAD7E1EAD7E1EAD5DFE8D6E0E9D7E1EA D8E2EBD8E2EBD7E1EAD6E0E9D3E0E9CADCEAC8DBEAC6D9E8C4D7E6C3D6E5C3D6E5C4D7E6C4D7E6 C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C4D9EAC3DAECC2D9EBC2D9EBC1D8EA C0D7E9C0D7E9BFD6E8BFD6E8BFD6E8BED5E7BDD4E6BCD3E5BCD3E5BCD3E5BCD3E5BBD4E8BAD5EA BAD5EABAD5EABAD5EABAD5EAB9D4E9B9D4E9BFDAEFBFDAEFBFDAEFBFDAEFBFDAEFBFDAEFBFDAEF C0D9EDC1D8EAC1D8E8C1D6E7C1D7E5C3D6E5C5D8E6C8DAE8C9DBE7C8D8E5CBDCE6D0DEE9D4E2EB D9E6EFDBE8F0DEE8F1DFE8F1E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E6EDF5 E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF3E6EEF1E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0 E6EEF0E6EEF0E5EDEFE5EDEFE5EDEFE5EDEFE5EDEFE5EDEFE5EDEFE5EDF0E4EBF1E4EBF3E4EBF3 E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3 E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3 E4EBF3E4EBF3E4EBF3E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E1E8F0E0E7EFDFE6EEDFE6EEDDE6EDDEE7F0DDE7F0DCE6EFDBE5EED8E5EED8E5EED6E4EF D4E5EFD2E2F1D0E2F0CEE1F0CDE0EFC9DEEFC7DCEDC6DBECC6DBECC7DAE9C7DAE9C7DAE9C6D9E8 C5D8E7C4D7E6C4D7E6C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C0D5E6 C0D5E6C1D6E7C2D7E8C3D8E9C3D8E9C4D9EAC4D9EACCDFEECCDFEECBDEEDCADDECC9DCEBC9DCEB C8DBEAC8DBEAC5D8E7C4D7E6C4D7E6C3D6E5C2D5E4C2D5E4C1D4E3C1D4E2BFD5E2BFD5E0BFD5E2 BFD5E2BCD3E1BAD1DFB5CFDEB4CEDDB5D0E1B5D0E1B4D1E3B4D1E3B2D1E5B2D1E5B1D2E5B1D2E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3 B0CFE3B0CFE3AFD0E3AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4AECDE2AECDE1AFCEE2B0CFE3 B0CFE3B1D0E4B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7 B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7BED5E7C2D7E8C1D6E7C3D6E5C4D7E6C7D9E7CADCEA CDDDEAD1DFEAD7E1EAD8E1E8D9E2E9DAE3EADBE4EBDBE4EBDCE5ECDCE5ECDDE6EDDDE6EDDDE6ED DEE7EEDFE8EFE0E9F0E0E9F0E1EAEFDFE8EDDEE7ECDEE7EEDDE6EDDBE6ECDAE5EBDAE4EDDAE4EE D4E0ECD4E0ECD3DFEDD2DEECCFDCECCEDBEBCDDAEACADAE9C6DCEAC5DCEAC4DBE9C3DAE8C2D9E7 C1D8E6C1D8E6C0D7E5C0D7E5C1D8E6C1D8E6C2D9E7C3DAE8C4DBE9C4DBE9C4DBE9C2DCEBC1DDEB C0DCEABFDBE9BFDBE9BEDAE8BDD9E7BDD9E7BDD9E7BDD9E7BDD9E7BDD9E7BDD9E7BDD9E7BDD9E7 BED8E7BFD6E8BFD6E6BFD4E5BFD5E3C3D6E5C6D9E7CADCEACCDEEAD1E1EED2E3EDD5E3EED6E4ED D7E4EDD6E3EBD7E1EAD4E1E9D3E5EFCFE3ECCEE2EDD0E4EDD2E6F1D1E5EECCE0EBC7DBE4C2D6E1 C2D6DFC2D6E1C2D6DFC2D6E1C2D6DFC2D6E1C3D5DFC7D5E0C9D6DFCBD8E1CEDBE4D1DEE7D3E0E9 D5E2EBD6E3ECD7E4EDD7E4EDD8E5EED9E6EFDAE7F0DBE8F1DCE9F2DDEAF3DEE8F1DFEAF0DFE9F2 DDEAF2DCE9F2D9E7F0D6E4EFD3E4EECFDFECCEE0ECCFE1EFCEE1EFCEE1F0CAE0EEC8DDEEC7DCED C7DCEDC7DCEDC6DBECC5DAEBC5DAEBC3DAEAC2D9E9C2D9E9C0DAE9C0DAE9C0DAE9BFD9E8BDD9E7 BCD8E6BCD8E6BCD6E5C0D7E7C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C0D5E6C1D6E7 C2D7E8C6DBECCADFF0CFE4F5D3E8F9D9EBF9DCE6F0DEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5ED DEE5EDDEE5EDDEE5EDDEE5EDDDE4ECDCE3EBDBE2EADBE2EADAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9D9E2E9DBE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD9E3EC D8E2EBD8E2EBD7E1EAD6E0E9D4E1EACFDFECCDDFEDCCDEECCBDDEBCADCEAC8DAE8C7D9E7C7D9E7 CADCEACADCEAC9DBE9C9DBE9C8DAE8C8DAE8C7D9E7C6D9E8BFD6E8BDD7E8BBD5E6B9D3E4B8D2E3 B6D0E1B5CFE0B4CEDFB6D0E1B6D0E1B6D0E1B6D0E1B6D0E1B6D0E1B6D0E1B6D0E1B8D1E5B8D1E5 B8D1E5B7D0E4B6CFE3B5CEE2B5CEE2B4CDE1B6CFE3B7D0E4B8D1E5BAD3E7BCD5E9BED7EBC0D9ED C3DAECCCDDEDCDDDECCFDCEDCDDDECCFDCEDCDDDECCFDCEDCDDDECCAD7E8C9D9E8CDDAEBCDDDEC D2DFF0D2E2F1D6E3F4D7E4F4D9E5F1D9E6EFD8E5EED7E4EDD6E3ECD5E2EBD4E1EAD4E1EAD2DFE8 D3E0E9D4E1EAD5E2EBD5E2EBD4E1EAD3E0E9D1DFEAC8DAE8C6D9E8C4D7E6C3D6E5C2D5E4C3D6E5 C4D7E6C4D7E6C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C5DAEBC5DAEBC4D9EA C4D9EAC3D8E9C2D7E8C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C0D5E6BFD4E5BED3E4BDD2E3BBD2E4 BAD3E7BAD3E7BBD4E8BBD4E8BBD4E8BBD4E8BBD4E8BBD4E8C0D9EDC0D9EDC0D9EDC0D9EDC0D9ED C0D9EDC0D9EDC0D9EDC1D8EAC2D7E8C3D6E7C3D6E5C4D5E5C6D8E6C9D9E8CADAE7CBD9E6CDDBE6 D2DEEAD6E3ECDBE5EFDEE8F1E0E9F2E0E9F0E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3 E4EBF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF3E5EFF1E5EFF1E5EFF1E5EFF1 E5EFF1E5EFF1E5EFF1E5EFF1E2ECEEE2ECEEE2ECEEE2ECEEE2ECEEE2ECEEE2ECEEE2ECEEE4EBF1 E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3 E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3 E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E1E8F0E1E8F0E0E7EFDFE6EEDEE5EDDEE5EDDDE6EDDCE5EEDBE5EEDAE4EDDAE4EDD7E4ED D6E3ECD4E2EDD2E3EDD0E0EFCFE1EFCDE0EFCBDEEDC7DCEDC6DBECC5DAEBC4D9EAC7DAE9C6D9E8 C6D9E8C5D8E7C4D7E6C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5 C3D6E5C4D7E6C4D7E6C5D8E7C5D8E7C6D9E8C7DAE9C8DBEAC8DBEACDE0EFCDE0EFCDE0EFCCDFEE CBDEEDCADDECCADDECC9DCEBC6D9E8C6D9E8C5D8E7C4D7E6C4D7E6C3D6E5C2D5E4C2D5E3BFD5E2 C0D6E1C0D6E3BFD5E2BDD4E2BAD1DFB6D0DFB4CEDDB5D0E1B5D0E1B4D1E3B4D1E3B2D1E5B2D1E5 B1D2E5B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B0CFE3B0CFE3B0CFE3 B0CFE3B0CFE3B0CFE3B0CFE3AFD0E3AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4AECDE2AECDE1 AFCEE2B0CFE3B0CFE3B1D0E4B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7BED5E7C2D7E8C1D6E7C3D6E5C3D6E5 C6D8E6C8DAE8CCDCE9CFDDE8D6E0E9D7E0E7D7E0E7D8E1E8D9E2E9DAE3EADAE3EADBE4EBDCE5EC DCE5ECDDE6EDDDE6EDDEE7EEDFE8EFE0E9F0E0E9F0DEE7EEDEE7ECDDE6EDDCE5ECDAE5EBDAE4ED D9E3EDD9E3EDD5E1EDD4E0ECD4E0EED3DFEDD1DEEED0DDEDCFDCECCDDDECC9DFEDC8DFEDC6DDEB C5DCEAC4DBE9C2D9E7C1D8E6C1D8E6C1D8E6C1D8E6C2D9E7C3DAE8C4DBE9C4DBE9C5DCEAC3DDEA C2DCEBC1DDEBC0DCEABFDBE9BFDBE9BEDAE8BDD9E7BDD9E7BEDAE8BEDAE8BEDAE8BEDAE8BEDAE8 BEDAE8BEDAE8BFD9E8C1D7E5C3D6E5C3D4E4C4D6E4C8D8E7CDDDEAD5E3F0D8E6F1DEEAF6DFECF5 E2ECF6E3EDF6E4EDF6E3ECF3E2EBF2E0EBF1DEECF5D9EAF4D8E9F3DAEBF5DDEEF8DCEDF7D5E6F0 CEDFE9C6D7E1C6D7E1C6D7E1C6D7E1C6D7E1C6D7E1C6D7E1C8D6DFCDD7E1CFD8E1D2DAE5D5DEE7 D8E0EBDBE4EDDDE5F0DEE7F0DCE4EFDDE6EFDFE7F2E1EAF3E3EBF6E5EEF7E7EFFAE8F1FAE3ECF3 E3ECF3E3ECF5E1EBF4DFE9F3DAE7F0D7E3EFD4E2EDD1DFECD0E0EDD1E1F0D0E2F0CFE0F0CCDFEE CADDECC7DCEDC7DCEDC7DCEDC6DBECC5DAEBC4DBEBC3DAEAC2D9E9C2D9E9C1DBEAC1DBEAC0DAE9 C0DAE9BFD9E8BDD9E7BCD8E6BDD7E6C1D8E8C2D7E8C2D7E8C2D7E8C2D7E8C2D7E8C2D7E8C2D7E8 C2D7E8C2D7E8C4D9EAC7DCEDCBE0F1CFE4F5D4E9FAD9EBF9DDE7F1DFE6EEDFE6EEDFE6EEDFE6EE DFE6EEDFE6EEDFE6EEDFE6EEDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDBE2EADBE2EADBE2EADBE2EA DBE2EADBE2EADBE2EADBE2EADBE2EADBE2EADCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9D9E2E9DCE5EEDBE5EEDBE5EEDBE5EEDBE5EEDBE5EEDBE5EEDBE5EEDAE4ED DAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D4E1EACFDFECCDDFEDCEDEEDCCDEECCCDCEBCADCEA CADAE9C9DBE9CBDBEACADCEACADAE9C9DBE9CADAE9C9DBE9CADAE9C9DBE9C4D9EAC2D9E9C1D8EA BFD6E6BCD3E5BAD1E1B8CFE1B8CFDFBAD1E3BAD1E1BAD1E3BAD1E1BAD1E3BAD1E1BAD1E3BAD1E3 BBD2E4B9D3E4BAD0E5B8D2E3B9CFE4B6D0E1B7CDE2B5CFE0B8CEE3B7D1E2BBD1E6BCD6E7C1D7EC C2DCEDC6DCF1C8DDEECDDDEDCFDDEACFDCECCFDDEACFDCECCFDDEACFDCECCFDDEACBD8E8CCDAE7 CDDAEAD0DEEBD2DFEFD4E2EFD6E3F3D7E5F2D9E5F1D8E5EED7E4EDD6E3ECD4E1EAD3E0E9D2DFE8 D1DEE7D0DDE6D1DEE7D2DFE8D3E0E9D3E0E9D2DFE8D1DEE7CFDDE8C8DAE8C6D9E8C4D7E6C3D6E5 C3D6E5C4D7E6C5D8E7C6D9E8C8DBEAC8DBEAC8DBEAC8DBEAC8DBEAC8DBEAC8DBEAC8DBEAC7DCED C7DCEDC6DBECC6DBECC5DAEBC4D9EAC3D8E9C3D8E9C3D8E9C4D9EAC4D9EAC4D9EAC2D7E8C0D5E6 BDD2E3BCD1E2BCD3E5BAD3E7BBD4E8BBD4E8BCD5E9BCD5E9BDD6EABDD6EABFD8ECBFD8ECBFD8EC BFD8ECBFD8ECBFD8ECBFD8ECC1D8EAC4D9EAC5D8E7C4D7E6C4D7E5C6D8E6C8DAE6CBDBE8CCDDE7 CFDDE8D1DFE8D5E2EBD9E6EEDDE7F0DFEAF0E0E9F0E0E9F0E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3 E4EBF3E4EBF3E4EBF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E4EDF2E4EEF0 E4EEF0E4EEF0E4EEF0E4EEF0E4EEF0E4EEF0E1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBED E1EAEFE3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2 E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2 E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E1E8F0E1E8F0E1E8F0E1E8F0E1E8F0E1E8F0 E1E8F0E1E8F0E1E8F0E1E8F0E0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE5ECDBE4EDD9E3ECD9E3EC D8E2EBD5E2EBD4E1EAD3E1ECD1E2ECCFDFEECDDFEDCBDEEDC9DCEBC6DBECC4D9EAC3D8E9C2D7E8 C6D9E8C6D9E8C5D8E7C4D7E6C3D6E5C3D6E5C2D5E4C2D5E4C4D7E6C4D7E6C4D7E6C4D7E6C4D7E6 C4D7E6C4D7E6C4D7E6C5D8E7C6D9E8C6D9E8C7DAE9C8DBEAC9DCEBC9DCEBC9DCEBCFE2F1CEE1F0 CEE1F0CDE0EFCCDFEECBDEEDCBDEEDCADDECC8DBEAC8DBEAC7DAE9C6D9E8C6D9E8C5D8E7C4D7E6 C4D7E5C1D7E4C1D7E2C1D7E4C1D7E4BED5E3BCD3E1B7D1E0B5CFDEB5D0E1B5D0E1B4D1E3B4D1E3 B2D1E5B2D1E5B1D2E5B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B0CFE3 B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3AFD0E3AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4 AECDE2AECDE1AFCEE2B0CFE3B0CFE3B1D0E4B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7BED5E7C2D7E8C2D7E8 C3D6E5C3D6E5C5D7E5C7D9E7CADAE7CEDCE7D2DFE8D5DFE8D5DFE8D6E0E9D7E1EAD8E2EBD8E2EB D9E3ECDAE4EDDAE4EDDBE5EEDCE6EFDDE7F0DDE7F0DEE8F1DEE9EFDDE6EDDDE6EDDCE5EEDCE5EE DAE4EDD9E3EDD8E2ECD8E2EED5E1EFD5E1EFD5E1F1D4E0F0D2DFF0D2DFF0D1DEEFCFDFEFCBE1EF C9E0EEC8DFEDC6DDEBC5DCEAC3DAE8C2D9E7C1D8E6C2D9E7C2D9E7C3DAE8C3DAE8C4DBE9C5DCEA C6DDEBC4DEEBC2DCE9C1DDE9C0DCE8BFDBE7BFDBE7BEDAE6BDD9E5BDD9E5BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C4D7E5C4D6E2C5D5E2C7D8E2CEDCE7D5E3ECDDEAF3E2EFF7 E6F0F9E7F2F8E9F2F9EAF3F8EBF2F8EAF1F7E9F0F6E8EFF5E9F3FCE4F1FAE2EFF8E5F2FBE9F6FF E7F4FDDEEBF4D6E3ECCEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4CEDBE4D0DAE4D4D8E3D7DAE3 D9DBE7DCDFE8E0E2EEE3E6EFE5E7F3E7EAF3E4E6F2E4E7F0E5E7F3E7EAF3E8EAF6E9ECF5EAECF8 E9EDF6E7EEF6E6EFF4E5EEF5E3EEF4E0EAF3DAE7EFD7E4EDD4E2EBD3E1ECD1E2ECD2E2EFD1E3EF D0E2F0CFE1EFCDDFEDCADDECC7DCEDC6DDEDC5DCECC4DBEBC4DBEBC3DAEAC2D9E9C2D9E9C4DBEB C4DBEBC3DAEAC2D9E9C1D8E8BFD9E8BED8E7BED8E7C2D9E9C3D8E9C3D8E9C3D8E9C3D8E9C3D8E9 C3D8E9C3D8E9C4D9EAC4D9EAC5DAEBC7DCEDCBE0F1CFE4F5D3E8F9D8EAF8DEE8F2E0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDDE4ECDDE4ECDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9DDE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EF DCE6EFDAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D4E1EAD0DEE9CEDEEBD0DEEBCDDDEA CEDCE9CCDCE9CDDBE8CBDBE8CCDAE7CADAE7CDDBE8CBDBE8CDDBE8CBDBE8CDDBE8CBDBEACADDEC C7DDEBC5DAEBC3D9E7C0D5E6BED4E2BCD1E2BBD1DFBED3E4BED4E2BED3E4BED4E2BED3E4BED4E2 BED3E4BED3E4BDD2E3BCD3E3BCD1E4BAD1E1BACFE2B9D0E0B9CEE1B8CFDFB9CEE1BAD1E1BDD2E5 BFD6E6C4D9ECC6DDEDCADFF2CDE0EFCDDDECD0DCE8D0DCEAD0DCE8D0DCEAD0DCE8D0DCEAD0DCE8 CBD7E5CCD8E4CEDAE8D0DCE8D3DFEDD5E1EDD7E3F1D8E4F0D7E5F0D6E4EFD5E3EED3E1ECD1DFEA D0DEE9CEDCE7CEDCE7CEDCE7CFDDE8D0DEE9D1DFEAD1DFEAD0DEE9CFDDE8CCDCE9C8DAE8C7DAE9 C5D8E7C4D7E6C5D8E7C6D9E8C7DAE9C8DBEACADDECCADDECCADDECCADDECCADDECCADDECCADDEC CADDECCCDFEECBDEEDCBDEEDCADDECC9DCEBC9DCEBC8DBEAC8DBEAC8DBEAC8DBEAC9DCEBC9DCEB C8DBEAC4D7E6C1D4E3BDD2E3BCD3E5BCD3E5BDD4E6BED5E7BFD6E8C0D7E9C1D8EAC1D8EAC0D7E9 C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C7DAE9C8DAE8C7D9E7C7D9E7C9D9E8CADAE7 CEDCE9D0DEE9D5E1EDD7E4EDDBE5EFDEE8F1E0E9F2E1EAF1E1E8F0E1E8EEE4EBF3E4EBF3E4EBF3 E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E3ECF1E2EDF1E2EDF1E2EDF1E2EDF1E2EDF1E2EDF1E2EDF1DEE9EDDEE9EDDEE9EDDEE9EDDEE9ED DEE9EDDEE9EDDFE8EDE2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E0E7EFE0E7EFE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDFE6EEDEE5EDDDE4ECDCE3EBDBE4EBDAE3EC D8E2EBD8E2EBD7E1EAD4E1EAD3E0E9D2E0EBCFE0EACEDEEDCCDEECCADDECC8DBEAC5DAEBC3D8E9 C2D7E8C1D6E7C5D8E7C5D8E7C4D7E6C4D7E6C3D6E5C2D5E4C1D4E3C1D4E3C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C7D9E7C8DAE8C8DAE8C9DBE9CADCEACBDDEBCBDDEBCCDEEC CFE2F1CFE2F1CEE1F0CEE1F0CDE0EFCCDFEECBDEEDCBDEEDC9DCEBC9DCEBC8DBEAC8DBEAC7DAE9 C6D9E8C6D9E8C5D8E6C2D8E5C2D8E3C2D8E5C2D8E5BFD6E4BDD4E2B8D2E1B6D0DFB5D0E1B5D0E1 B4D1E3B4D1E3B2D1E5B2D1E5B1D2E5B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3AFD0E3AFCFE6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E4AECDE2AECDE1AFCEE2B0CFE3B0CFE3B1D0E4B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7BED5E7 C2D7E8C2D7E8C3D6E5C3D6E5C5D7E5C7D9E7CADAE7CDDBE6D2DFE8D4DEE7D5DFE8D5DFE8D6E0E9 D7E1EAD8E2EBD8E2EBDAE4EDDAE4EDDBE5EEDBE5EEDCE6EFDDE7F0DEE8F1DEE8F1DDE6EFDDE6EF DCE5EEDAE4EDD9E3EDD9E3EDD8E2EED6E2EED5E1EFD5E1EFD5E1F1D3E0F0D3E0F1D2DFF0D2DFF0 D0E0F0CCE2F0CAE1EFC9E0EEC7DEECC5DCEAC3DAE8C2D9E7C1D8E6C2D9E7C2D9E7C3DAE8C4DBE9 C5DCEAC5DCEAC6DDEBC6DDEBC2DCE9C1DDE9C0DCE8BFDBE7BFDBE7BEDAE6BDD9E5BDD9E5BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C2DAE6C5D7E3C8D6E1C8D6E1CCD9E2D2DFE8DCE6EF E4EEF7EBF4FBE9F2F9EBF2F8EDF4FAF0F5F9F0F5F9EFF4F7EEF1F6ECF1F5EFF8FFEBF4FDEAF2FD EDF6FFF1F9FFEEF7FFE5EDF8DCE5EED6DEE9D6DFE8D6DEE9D6DFE8D6DEE9D6DFE8D6DEE9D7DEE8 D7DAE3DBDBE5DDDDE7E1E1EBE4E4EEE8E8F2EAEAF4ECECF6E9E9F3E9E9F3E9E9F3E9E9F3E8E8F2 E8E8F2E8E8F2E6E9F0EAEFF5E8EFF5E7EEF4E4EDF4E1EAF1DCE6EFD9E3ECD5E2EBD5E1EDD4E2ED D5E3F0D3E3F0D2E2F1D0E2F0CEE0EECCDFEDC7DDEBC6DDEBC5DCECC4DBE9C4DBEBC3DAE8C3D8E9 C2D9E7C5DAEBC4DBE9C4D9EAC3DAE8C3D8E9C1D8E6C0D7E7C0D7E5C3D8E9C3D9E7C5D8E9C3D9E7 C5D8E9C3D9E7C5D8E9C3D9E7C8DBECC6DCEAC8DBECC8DEECCDE0F1CEE4F2D4E7F8D7E9F7DEE8F2 E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDFE6EEDEE5EDDDE4EC DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9D9E2E9DDE6EFDCE6EFDCE6EFDCE6EFDCE6EF DCE6EFDCE6EFDCE6EFDAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D6E0EAD1DDE9D0DEE9 D0DEEBCFDDE8CFDDEACEDCE7CEDCE9CEDCE7CCDAE7CCDAE5CDDBE8CDDBE6CDDBE8CEDCE7CEDCE9 CEDCE9CEE0EECBDEECCADBEBC7DAE8C5D6E6C1D4E2C0D1E1BED1DFC2D3E3C1D4E2C2D3E3C1D4E2 C2D3E3C1D4E2C2D3E3C1D4E3BFD2E1BDD3E1BED1E2BCD2E0BDD0E1BAD0DEBBCEDFB9CFDDBBCEDF BBD1DFC0D3E4C1D7E5C7DAEBC9DFEDCEE1F2D0E2F0CFDDEAD0DDE6D0DCE8D0DDE6D0DCE8D0DDE6 D0DCE8D0DDE6CBD7E3CCD9E2CDD9E5D0DDE6D2DEEAD4E1EAD6E2EED7E3EFD6E4EFD3E4EED4E2EF D0E1EBD0DEEBCCDDE7CCDAE7CADBE5CDDBE8CCDDE7D0DEEBCEDFE9D0DEEBCEDFE9CEDCE9CBDBE8 C9DBE9C7DAE9C6D9E8C5D8E7C6D9E8C7DAE9C9DCEBCADDECCBDEEDCBDEEDCBDEEDCBDEEDCBDEED CBDEEDCBDEEDCBDEEDCDE0EFCDE0EFCEDFEFCCDFEECCDDEDCADDECCBDCECC9DCEBCADBEBCADDEC CDDEEECCDFEECBDCECC6D9E8C3D4E4BFD2E1BDD2E3BDD4E6BED5E7BFD6E8C0D7E9C1D8EAC2D9EB C2D9EBC0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C0D7E9C1D6E7CADBEBC9DBE9C8DAE8C8DAE6 CADAE7CCDDE7D0DEE9D1DFE8D9E6EFDCE6EFDEE8F1E1EAF1E1EAF1E2E9EFE1E8EEE1E8EEE4EBF3 E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E5EEF5E2EDF1E2EDF1E2EDF1E2EDF1E2EDF1E2EDF1E2EDF1E2EDF1DEE9EDDEE9EDDEE9ED DEE9EDDEE9EDDEE9EDDEE9EDDEE9EDE1EAF1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDDE4ECDDE4ECDCE3EB DBE4EBD9E2EBD8E2EBD7E1EAD6E0E9D3E0E9D3E0E9D1DFEACFE0EACDDDECCBDDEBC9DCEBC8DBEA C4D9EAC2D7E8C1D6E7C1D6E7C5D8E7C5D8E7C4D7E6C3D6E5C2D5E4C2D5E4C1D4E3C1D4E3C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C8DAE8C8DAE6CADAE9CADCE8CCDCEBCBDDE9 CDDDECCCDEEACBDEEDCBDEEDCBDEEDCBDEEDCBDEEDCBDEEDCBDEEDCBDEEDCADDECCADDECCADDEC CADDECC8DBEAC5D8E7C3D6E5C1D4E2BDD3E0BDD3DEBDD3E0BDD3E0BCD3E1BCD3E1BAD4E3BAD4E3 B7D2E3B7D2E3B5D2E4B4D1E3B1D0E4B1D0E4AFD0E3AFD0E3B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B1D2E5AFCFE6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E4B0CFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8 BED5E7BED5E7C1D6E7C1D6E7C4D7E6C5D8E7C6D8E6C7D9E7C9D9E6CBD9E4D0DDE6D0DDE6D0DDE6 D0DDE6D0DDE6D0DDE6D0DDE6D0DDE6D3E0E9D4E1EAD5E2EBD6E3ECD7E4EDD8E5EED9E6EFD9E6EF DAE4EEDAE4EEDAE4EEDAE4EEDAE4F0D8E4F0D8E4F2D8E4F2D6E2F2D5E2F2D4E1F2D2E2F2D1E0F3 D0DFF2CFDEF1CEDFF1CCE2F0CAE1EFC9E0EEC7DEECC5DCEAC3DAE8C2D9E7C1D8E6C4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9BDD8E3BDD8E3BFDAE5C0DBE6C2DDE8C4DFEAC5E0EB C5E0EBC1DCE7C1DCE7BFDAE5BFDAE5BFDAE5C1DCE7C2DDE8C5DDE9CCDDE7D1DEE7D6E3ECDDE7F0 E3EDF6E9F3FCEEF7FEF1F8FEF7FEFFF9FEFFF8FDFFF8FCFFF7FBFEF6FAFBF7F8FCF5F9FCF4F8FF F1F8FFF0F7FFEFF6FEEDF4FEECF3FBEBF2FCEAF1F9EDF4FEEBF2FAE9F0FAE6EDF5E3EAF4E0E7EF DEE5EFDEE2EBE8E8F2E9E8F0EAE9F1EBEAF2ECEBF3EDECF4EEEDF5EEEDF5ECEBF3ECEBF3ECEBF3 ECEBF3ECEBF3ECEBF3ECEBF3EBEBF3E9ECF3E7ECF0E7ECF0E4EBF1E3EAF0E1EAF1E0EAF3DDEAF2 D8E5EED8E6EFD8E6F1D6E7F1D5E5F2D3E3F0D1E1EECEE0EECBDEECC5DBE8C3D9E7C7DDEACCE2F0 CEE4F1CBDEEDC3D9E6C7DAE9C5DBE8C7DAE9C5DBE8C6D9E8C4DAE7C3D9E7C5D8E6C5D8E7C4D7E5 C5D6E6C4D7E5C6D7E7C7DAE8CBDCECCBDEECC6D7E7C5D8E6C8D9E9C9DCEACEDFEFD2E5F3D7E8F8 DBEBF8D9E3ECDBE2EADCE3EBDDE4ECDEE5EDE0E7EFE0E7EFE1E8F0E0E7EFE0E7EFE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDAE1E9DAE1E9DBE2EADBE2EADCE3EBDDE4EC DEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDDE6EDDFE8F1DEE8F1DDE7F0 DDE7F0DCE6EFDBE5EEDAE4EDDAE4EDD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EB D4E1EAD4E1EAD4E0ECD4E1EAD4E0ECD4E1EAD4E0ECD4E1EAD0DCE8D0DDE6D0DCE8D0DDE6D0DCE8 D0DDE6D0DCE8CFDDE8CFDFECCDDFEBCDDDECCBDDE9CBDBEAC9DBE7C9D9E8C8DAE6CADAE9C2D4E0 BFCFDEC3D5E1CEDEEDD0E2EECADAE9C0D2E0C8DAE8C6D9E7C4D5E5C1D4E2C0D1E1BFD2E0C0D1E1 BFD2E0C0D1E1C1D4E2C4D5E5C5D8E6C9DAEACBDEECCEDFEFCFE1EDD5E3EED6E3EBD5E2EBD4E1E9 D4E1EAD3E0E8D2DFE8D2DFE7D1DEE7D1DEE6D2DFE8D4E1E9D5E2EBD6E3EBD7E4EDD6E4EDCFDFEC CEE0ECCEDEEDCDDFEBCDDDECCBDDE9CBDBEACADCE8C9D9E8CADCE8CEDEEDCFE1EDD1E1F0CEE0EC CDDDECCADCEAC3D6E5C3D6E5C4D7E6C5D8E7C5D8E7C6D9E8C7DAE9C7DAE9C9DCEBC9DCEBCADDEC CADDECCBDEEDCCDFEECDE0EFCDE0EFCEE0EECDDFEDCCDCEBCADCEACBDBEACBDDEBCEDEEDCEE0EE CEDEEDCDDFEDCEDEEDCCDEECCBDBEAC8DAE8C6D6E5C3D4E4C6DBECC5DAEBC5DAEBC3D8E9C2D7E8 C1D6E7C0D5E6C0D5E6C3D8E9C4D9EAC5DAEBC6DBECC5DAEBC4D9EAC3D8E9C2D8E6C3D5E3C5D5E2 C7D7E4CADAE7CFDDEAD1DFEAD4E0ECD6E3ECDEE8F2DEE8F1E0E9F0E2E9EFE3EAF0E6EBEFE7ECF0 E8EDF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E3EAF2E3EAF2 E2E9F1E1E8F0E0E7EFDFE8EFE0EBF1DEEBF1DDEAF0DDEAF0DCE9EFDBE8EEDAE7EDDAE7EDD9E6EC D9E6ECDAE7EDDAE7EDDAE7EDDBE8EEDBE8EEDDE8EEE1EAF1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5ED DDE4ECDCE3EBDBE4EBD7E0E9D6E0E9D5DFE8D4DEE7D2DFE8D1DEE7CFDDE8CDDEE8CDDDECCCDEEC CADDECC9DCEBC7DCEDC6DBECC5DAEBC5DAEBC1D4E3C1D4E3C2D5E4C2D5E4C3D6E5C4D7E6C5D8E7 C5D8E7C3D6E5C3D6E5C4D7E6C4D7E6C5D8E7C6D9E8C7DAE9C8DAE8CDDDEACDDEE8CFDDEACDDEE8 CFDDEACDDEE8CFDDEACDDEE8CBDEEDCBDEEDCBDEEDCBDEEDCBDEEDCBDEEDCBDEEDCBDEEDC9DCEB CADDECCADDECC9DCEBC8DBEAC5D8E7C3D6E5C1D4E2BDD3E0BDD3DEBDD3E0BDD3E0BCD3E1BCD3E1 BAD4E3BAD4E3B7D2E3B7D2E3B5D2E4B5D2E4B2D1E5B1D0E4AFD0E3AFD0E3B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B1D2E5 AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4B0CFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3 B0CFE3B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9 BAD3E7BBD4E8BED5E7BED5E7C1D6E7C1D6E7C4D7E6C5D8E7C6D8E6C7D9E7C9D9E6C9D9E6CFDDE8 CFDDE6D0DCE8CFDDE6D0DCE8CFDDE6D0DCE8CFDDE6D3DFEBD2E0E9D4E0ECD4E2EBD6E2EED6E4ED D8E4F0D8E5EED7E4EDD7E4EDD7E4EDD7E4EDD7E3EFD6E4EFD6E4F1D6E4F1D5E2F2D2E2F2D2E2F2 D0E1F3D0DFF2CEDFF1CEDFF3CCDEF2CBE0F1CAE1EFC8DFEDC7DEECC5DCEAC3DAE8C2D9E7C1D8E6 C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C2DAE6C2DAE4C3DBE7C4DCE6C6DEEA C7DFE9C8E0ECC8E0EAC3DBE7C2DAE4C2DAE6C2DAE4C3DBE7C5DDE7C7DFEBC9DFEAD6E4EDD9E6EF DFE9F2E3EDF6E8F2FBEEF7FEF2F9FFF4FBFFF7FCFFF6FBFFF7FBFEF6FAFDF7F8FAF6F7F9F5F6F8 F5F6FAF5F8FFF4F9FFF3F7FFF3F8FEF2F6FFF1F6FCF1F5FEF1F6FCF1F5FEF0F5FBEEF2FBECF1F7 EAEEF7E8EDF3E6EAF3E6E9F0EAEAF2ECEBF1ECEBF3EDECF2EEEDF5EFEEF4F0EFF7F0EFF5EEEDF5 EEEDF3EEEDF5EEEDF3EEEDF5EEEDF3EEEDF5EDEEF3EBEEF3E9EEF2E9EEF2E8EDF1E7ECF2E4EBF1 E3ECF3E1EBF4DEE8F1DBE8F1D9E5F1D7E5F0D5E3F0D1E1EED0E0EDCFDFECCDE1ECC7DDE8C7DAE8 C9DDE8CDE0EECEE2EDCADCEAC5D7E3C7D9E7C7D9E5C7D9E7C8DAE6C8DAE8C8DAE6C8DAE8C8DAE6 C7D7E6C8D8E5C8D8E7C9D9E6C9D9E8CADAE7CADAE9CADAE7C7D7E6C7D7E4C9D9E8CBDBE8CFDFEE D3E3F0D7E7F6DBE9F4DBE4EDDCE3EBDDE4ECDEE5EDDFE6EEE0E7EFE0E7EFE1E8F0E0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDAE1E9DAE1E9DBE2EADCE3EB DDE4ECDDE4ECDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDDE6EDDFE8F1 DEE8F1DDE7F0DCE6EFDBE5EEDBE5EEDAE4EDDAE4EDD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EB D8E2EBD8E2EBD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD0DDE6D0DDE6D0DDE6 D0DDE6D0DDE6D0DDE6D0DDE6D0DDE6D1DFEACFE0EAD0DEEBCDDEE8CEDCE9CBDCE6CDDBE8CADBE5 CEDCE9C7D8E2C5D3E0C8D9E3D2E0EDD3E4EECFDDEAC5D5E2CBDBE8C8DAE8C6D8E6C3D5E3C2D4E2 C1D3E1C1D3E1C2D4E2C3D5E3C4D6E4C6D8E6C8DAE8CBDDEBCDDFEDCFE1EFD1E1EED5E3ECD6E3EB D5E2EAD4E1E9D4E1E9D3E0E8D2DFE7D2DFE7D2DFE7D2DFE7D3E0E8D3E0E8D4E1E9D4E1E9D5E2EA D4E2EBCFDFECCEE0EECDDFEDCCDEECCBDDEBCBDDEBCADCEACADCEAC9DBE9CADCEACCDEECCEE0EE CDDFEDCCDEECC9DBE9C7D9E7C3D6E5C3D6E5C3D6E5C4D7E6C5D8E7C6D9E8C6D9E8C7DAE9C9DCEB C9DCEBCADDECCBDEEDCCDFEECCDFEECDE0EFCEDFEFCFDFEECEDEEBCDDDECCCDCE9CCDCEBCDDDEA CEDEEDCFDFECCBDBEACCDCE9CDDDECCEDEEBCEDEEDCCDCE9CBDBEAC9DBE9C8DBEAC5DAEBC5DAEB C4D9EAC3D8E9C2D7E8C1D6E7C1D6E7C3D8E9C3D8E9C4D9EAC5DAEBC5DAEBC4D9EAC3D8E9C4D7E6 C7D7E6C8D8E5CADAE7CDDEE8D1DFEAD4E2EBD6E3ECD9E3ECDFE9F2E0E9F0E2E9EFE3EBEEE6EBEF E7ECF0E8EDF1E8EDF1E5ECF2E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E4EBF3E3EAF2 E3EAF2E2E9F1E1E8F0E0E7EFE0E7EFDEE7EEDEEBF1DCEBF0DDEAF0DBEAEFDBE8EED9E8EDDAE7ED D8E7ECD7E4EAD7E6EBD8E5EBD8E7ECDAE7EDD9E8EDDBE8EEDBE8EEE1EAF1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EE DEE5EDDEE5EDDDE4ECDCE3EBDBE4EBD7E0E9D6E0E9D5DFE8D4DEE7D2DFE8D1DEE7CFDDE8CDDEE8 CDDDECCCDEECCADDECC9DCEBC7DCEDC6DBECC5DAEBC5DAEBC1D4E3C1D4E3C2D5E4C3D6E5C4D7E6 C4D7E6C5D8E7C5D8E7C3D6E5C4D7E6C4D7E6C5D8E7C6D9E8C7DAE9C7DAE9C9DBE9CDDDEACFDDE8 CFDDE8CFDDE8CFDDE8CFDDE8CFDDE8CFDDE8C9DCEBC9DCEBC9DCEBC9DCEBC9DCEBC9DCEBC9DCEB C9DCEBC9DCEBC9DCEBC9DCEBC9DCEBC7DAE9C5D8E7C2D5E4C0D3E1BDD3E0BDD3DEBDD3E0BDD3E0 BCD3E1BCD3E1BAD4E3BAD4E3B8D3E4B8D3E4B6D3E5B5D2E4B2D1E5B2D1E5B0D1E4B0D1E4B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B1D2E5AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4B0CFE4B0CFE3B0CFE3B0CFE3B0CFE3 B0CFE3B0CFE3B0CFE3B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7 B8D3E8B9D4E9BAD3E7BBD4E8BED5E7BED5E7C1D6E7C1D6E7C4D7E6C5D8E7C6D8E6C7D9E7C9D9E6 C9D9E6CDDDEACDDEE8CFDDEACDDEE8CFDDEACDDEE8CFDDEACDDEE8D2E0EDD0E1EBD2E0EDD1E2EC D4E2EFD2E3EDD5E3F0D5E3EED5E3EED5E3EED5E3EED5E3EED5E3F0D3E3F0D3E3F2D3E3F2D1E1F1 D0E1F1D0E1F3CEE0F4CEDFF3CCDEF2CCDEF4C9DEF1C9E0F0C8DFEDC7DEECC6DDEBC4DBE9C3DAE8 C2D9E7C1D8E6C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DCE8C6DCE7C7DEE6C7DDE8 C7DEE6C8DEE9C8DFE7C9DFEAC9E0E8C3D9E4C3DAE2C3D9E4C4DBE3C6DCE7C9E0E8CCE2EDD1E3ED E1EFF8E5EFF8E7F1FAEAF4FDEFF8FFF2FBFFF5FCFFF6FDFFF2F7FBF2F7FBF3F7FAF2F6F9F3F4F6 F3F4F6F3F3F3F2F3F5F3F6FBF3F6FBF4F7FEF4F7FCF5F8FFF6F9FEF6F9FFF6F9FEF4F7FEF3F6FB F3F6FDF2F5FAF1F4FBF0F3F8EFF2F9EFF2F7EFF0F5F0EFF4F0EFF5F1F0F5F2F1F7F2F1F6F3F2F8 F3F2F7F1F0F6F1F0F5F1F0F6F1F0F5F1F0F6F1F0F5F1F0F6F0F1F5EEF2F5EDF1F4EDF1F4EBF0F3 EAEFF3E7EEF4E7EEF4E6EFF6E4EEF7DFECF4DAE7F0D4E2EBD1DFEAD0DEE9D1DFEACFE0EAD0E2EC CCE0E9CADCE8CADCE6CCDEEACCDEE8CADAE7C6D7E1C9D9E6C9DAE4CCDAE7CDDBE6CFDDEAD0DEE9 D1DFECD1DFEACDDBE8CFDDE8D1DFECD2E0EBD2E0EDCFDDE8CCDAE7CAD8E3CBD9E6CBD9E4CBD9E6 CDDBE6D0DEEBD4E2EDD7E5F2DAE6F2DCE5EEDDE4ECDEE5EDDEE5EDDFE6EEE0E7EFE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5ED DDE4ECDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDBE2EADBE2EA DCE3EBDCE3EBDDE4ECDEE5EDDFE6EEDFE6EEDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5ED DDE6EDDEE7F0DDE7F0DCE6EFDCE6EFDBE5EEDAE4EDD9E3ECD9E3ECD8E2EBD8E2EBD8E2EBD8E2EB D8E2EBD8E2EBD8E2EBD8E2EBD6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D3DDE6 D3DDE6D3DDE6D3DDE6D3DDE6D3DDE6D3DDE6D1DEE7D3E0E9D1DFE8D2DEEAD0DEE7D1DDE9CFDDE6 D0DCE8CEDCE5D3DFEBCEDCE5CCD8E4D0DEE7D8E4F0D9E7F0D5E1EDCDDBE6CDDDEACCDCE9C9D9E6 C7D7E4C5D5E2C5D5E2C5D5E2C5D5E2C8D8E5C9D9E6CADAE7CCDCE9CFDFECD1E1EED3E3F0D3E4EE D5E3ECD5E4EBD4E3EAD3E2E9D3E2E9D2E1E8D1E0E7D1E0E7D3E2E9D2E1E8D2E1E8D2E1E8D1E0E7 D1E0E7D0DFE6CEDFE7CDDFEDCCDFEECBDEEDCBDEEDCADDECC9DCEBC8DBEAC8DBEACADDECCADDEC CBDEEDCBDEEDC9DCEBC7DAE9C4D7E6C3D6E5C2D5E4C3D6E5C3D6E5C4D7E6C5D8E7C6D9E8C6D9E8 C7DAE9CADDECCADDECCBDEEDCBDEEDCCDFEECDE0EFCEE1F0CFE1EFCFDFECD0DEE9CFDDEACEDCE7 CEDCE9CFDDE8D0DEEBD1DFEACCDAE7CEDCE7D0DEEBD1DFEAD2E0EDD2E0EBD1DFECCEDEEBC8D9E9 C7DAE9C7DAE9C6D9E8C5D8E7C5D8E7C4D7E6C4D7E6C4D7E6C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E6CCDCE9CFDDE8D1DFEAD3E1ECD6E2EED8E5EEDCE6F0DDE7F0E2EBF2E3EAF0E4EBF1 E6EBEFE8EBF0E8ECEFE9EDF0E8EDF1E5ECF2E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4 E2E9F1E2E9F1E2E9F1E1E8F0E0E7EFDFE6EEDFE6EEDDE6EDDCE9F1D9EAF1DBEAF1D8E9F0D9E8EF D6E7EED8E7EED5E6EDD4E3EAD3E4EBD5E4EBD4E5ECD7E6EDD6E7EED9E8EFDAE7EFE2EBF2E3EAF2 E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E1E8F0E1E8F0E1E8F0E1E8F0E1E8F0E1E8F0E1E8F0 E1E8F0E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EF E0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDBE4EBD7E0E9D6E0E9D5DFE8D4DEE7D2DFE8D1DEE7 CFDDE8CDDEE8CDDDECCCDEECCADDECC9DCEBC7DCEDC6DBECC5DAEBC5DAEBC2D5E4C2D5E4C3D6E5 C3D6E5C4D7E6C5D8E7C6D9E8C6D9E8C5D8E7C5D8E7C5D8E7C6D9E8C7DAE9C8DBEAC8DBEACADCEA D0DEE9D1DEE7D1DEE7D1DEE7D1DEE7D1DEE7D1DEE7D1DEE7C8DBEAC8DBEAC8DBEAC8DBEAC8DBEA C8DBEAC8DBEAC8DBEAC8DBEAC8DBEAC8DBEAC8DBEAC6D9E8C4D7E6C1D4E3C0D3E1BDD3E0BDD3DE BDD3E0BDD3E0BCD3E1BCD3E1BAD4E3BAD4E3B9D4E5B8D3E4B7D4E6B6D3E5B3D2E6B2D1E5B1D2E5 B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B1D2E5AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4B0CFE4B0CFE3B0CFE3 B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7BED5E7C1D6E7C1D6E7C4D7E6C5D8E7C6D8E6 C7D9E7C9D9E6C9D9E6CDDDEACDDDEACDDDEACDDDEACDDDEACDDDEACDDDEACDDDEACFDFECCFDFEC CFDFECD0E0EDD0E0EDD0E0EDD0E0EDD0E0EDD0E1EBD0E1EBD0E1EBCFE1EBCFE1EDCFE1EDCFE1EF CEE1EFCEE1F0CEE1F2CDDFF3CADFF2C9DEF1C9DEF1C8DDF2C7DEF0C7DEEEC7DEECC6DDEBC5DCEA C4DBE9C3DAE8C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C5DBE8C9DDE8 C9DDE6CADCE6C9DDE6CADCE6C9DDE6CADCE6C9DDE6C7D9E3C6DAE3C8DAE4C8DCE5CCDEE8CFE3EC D3E5EFD7E8F0E7F4FDEAF4FDEBF5FEEDF7FFEFF8FFF1FAFFF3FAFFF4FBFFEEF3F7EDF2F6EEF2F5 EEF2F5F0F1F3F0F1F3F0F0F0F0F0F2F0F1F5EFF2F7F0F3F8F2F5FAF4F7FCF5F8FDF7FAFFF7FAFF F3F6FBF3F6FBF3F6FBF4F7FCF4F7FCF4F7FCF4F7FCF6F7FBF3F4F8F4F5F9F5F4F9F4F5F9F5F4F9 F4F5F9F6F5FAF5F6FAF3F2F7F2F3F7F3F2F7F2F3F7F3F2F7F2F3F7F3F2F7F2F3F7F3F4F8F0F4F7 F0F4F7EFF3F6EEF1F6ECF1F5ECF1F7E9F0F6EAF3FAE4EEF7DDE7F1D5E2EBD1DDE9D0DEE9D1DFEA D3E1ECD4E5EFD2E3EBCFE0EACDDEE6CCDDE7CDDBE4CBD9E4CAD8E1D2DEEAD2DFE8D6E0ECD8E2EC DAE4F0DCE6F0DDE7F3DEE8F2D9E3EFDBE5EFDEE8F4E0EAF4DFE9F5DBE5EFD6E0ECD2DCE6D1DBE7 D1DBE5D1DBE7D2DCE6D4DEEAD7E1EBDAE4F0DCE6F0DEE7F0DFE6EEDFE6EEDFE6EEE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EE DEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDDE4ECDEE5EDDFE6EEDFE6EEE0E7EFDEE5EDDEE5EDDEE5EDDEE5EDDEE5ED DEE5EDDEE5EDDDE6EDDDE6EFDCE6EFDCE6EFDBE5EEDAE4EDD9E3ECD9E3ECD8E2EBD8E2EBD8E2EB D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D6E0EAD3E0E9D5DFE9D3E0E9 D5DFE9D3E0E9D4DEE8D2DFE8D9E3EDD5E2EBD6E0EAD7E4EDDEE8F2DEEBF4DCE6F0D5E2EBD3E1EC CFE0EACFDDEACADBE5CBD9E6C8D9E3CAD8E5C9DAE4CEDCE9CCDDE7D0DEEBD0E1EBD3E1EED3E4EE D6E4F1D5E6F0D5E3ECD3E4EBD4E3EAD1E2E9D3E2E9D0E1E8D1E0E7CFE0E7D3E2E9D0E1E8D2E1E8 CEDFE6CFDEE5CCDDE4CDDCE3CBDCE4CBDEECCBDEEDCBDEEDCADDECC9DCEBC8DBEAC8DBEAC7DAE9 CBDEEDCBDEEDCADDECC8DBEAC6D9E8C4D7E6C2D5E4C1D4E3C3D6E5C4D7E6C4D7E6C5D8E7C6D9E8 C7DAE9C7DAE9C8DBEACBDEEDCBDEEDCBDEEDCCDFEECDE0EFCEE1F0CEE1F0D0E2F0D0E0EDD1DFEA D0DEE9CFDDE8CFDDE8D0DEE9D1DFEAD2E0EBD1DFEAD2E0EBD3E1ECD3E1ECD3E1ECD1DFEAD0DEE9 CDDEE8C8DAE8C7DAE9C7DAE9C7DAE9C6D9E8C6D9E8C6D9E8C6D9E8C5D8E7C5D8E7C4D7E6C4D7E6 C5D8E7C6D9E8C7DAE9C9DBE9D3E1EED4E2EDD5E3EED7E5EEDAE7F0DCE9F1DFE9F2E1EAF1E5ECF2 E5EDF0E7ECF0E7ECEFE8ECEFE8ECEFE9EDF0E9ECF1E7ECF2E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4 E5ECF4E5ECF4E1E8F0E1E8F0E0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE5ECDAE9F0D8E9F0D7E8EF D6E7EED5E6EDD5E6EDD4E5ECD4E5ECD1E2E9D1E2E9D2E3EAD4E5ECD5E6EDD6E7EED7E8EFDAE9F0 E3ECF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDBE4EBD7E0E9D6E0E9D5DFE8D4DEE7 D2DFE8D1DEE7CFDDE8CDDEE8CDDDECCCDEECCADDECC9DCEBC7DCEDC6DBECC5DAEBC5DAEBC3D6E5 C3D6E5C3D6E5C4D7E6C5D8E7C6D9E8C6D9E8C7DAE9C6D9E8C6D9E8C7DAE9C8DBEAC9DCEBC9DCEB CADDECCBDDEBD1DFEAD2DFE8D2DFE8D2DFE8D2DFE8D2DFE8D2DFE8D2DFE8C6D9E8C6D9E8C6D9E8 C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8C7DAE9C7DAE9C8DBEAC7DAE9C5D8E7C3D6E5C0D3E2BFD2E0 BDD3E0BDD3DEBDD3E0BDD3E0BCD3E1BCD3E1BAD4E3BAD4E3B9D4E5B9D4E5B8D5E7B7D4E6B4D3E7 B3D2E6B2D3E6B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B1D2E5AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E4B0CFE4 B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7BED5E7C1D6E7C1D6E7C4D7E6 C5D8E7C6D8E6C7D9E7C9D9E6C9D9E6CDDDEACDDDEACDDDEACDDDEACDDDEACDDDEACDDDEACDDDEA CFDFECCFDFECCFDFECCEDEEBCEDEEBCEDEEBCEDEEBCEDEEBCDDFEBCDDFEBCDDFEBCCE0EBCCDFED CCDFEDCCDFEECAE0EECADFF0CADFF0C9DEF1C8DFF1C7DDF2C6DCF1C5DBF2C5DBF0C5DCECC5DCEA C4DBE9C4DBE9C3DAE8C3DAE8C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C5DBE8C8DAE4C8DBE2C9DAE2C9DCE3CBDCE4CADDE4CCDDE5CBDEE5CBDCE4CADDE4CCDDE5CCDFE6 D0E1E9D3E6EDD7E8F0D9EAF2E6F3FCE6F3FCE9F3FCEAF4FDEBF4FBECF5FCEEF5FBEEF5FBEAEFF3 EAEFF3EBEFF2EBEFF2EEEFF1EEEFF1EFEFEFEFEFF1EBECF0ECEDF1EEEFF3F0F1F5F2F3F7F5F6FA F6F7FBF7F8FCF3F4F8F4F5F9F4F5F9F5F6FAF5F6FAF6F7FBF6F7FBF7F8FCF7F8FCF5F9FAF7F8FA F5F9FAF6F7F9F4F8F9F6F7F9F4F8F9F4F5F7F2F6F7F4F5F7F2F6F7F4F5F7F2F6F7F4F5F7F4F5F7 F4F5F7F4F5F7F3F4F6F1F5F6F0F4F7EEF3F6EDF2F6EBF2F8EDF6FDE7F2F8E0EAF3D8E5EDD4E1EA D4E1EAD5E2EBD6E4EDD9E7F0D8E7EED5E3ECD1E0E7CEDCE5CEDBE3CFDCE5D1DEE6DEE8F2DFE9F2 E1E9F4E3ECF5E6ECF8E8EFF9EAF0FCEAF1FBE5EDF8E7F0F9EAF2FDECF5FEEBF3FEE7F0F9E2EAF5 DEE7F0D8E0EBD8E1EAD7DFEAD7E0E9D8E0EBDAE3ECDDE5F0DEE7F0E1E8F0E1E8F0E1E8F0E1E8F0 E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EF E0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDDE4ECDDE4ECDEE5EDDFE6EEE0E7EFE0E7EFE0E7EFDEE5EDDEE5EDDEE5ED DEE5EDDEE5EDDEE5EDDEE5EDDDE6EDDDE6EFDBE5EEDBE5EEDAE4EDD9E3ECD8E2EBD8E2EBD8E2EB D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E0E7D7E0E7D7E0E7D7E0E7D7E0E7 D7E0E7D7E0E7D7E0E7D5DEE5D5DEE5D5DEE5D5DEE5D5DEE5D5DEE5D5DEE5D5DEE5D7E0E9D7E1EA D8E1EAD7E1EAD8E1EAD7E1EAD9E2EBD8E2EBDDE6EFDCE6EFDDE6EFDFE9F2E3ECF5E2ECF5E1EAF3 DDE7F1D8E5EED5E3ECD4E0ECD0DEE7CFDBE7CEDCE5CFDBE7CEDCE5D2DEEAD1DFE8D3DFEBD3E1EA D6E2EED6E4EDD8E4F0D8E6EFD3E4ECD2E5ECD2E3EBD0E3EAD1E2EACFE2E9CFE0E8CEE1E8CFE0E8 CEE1E8CEDFE7CCDFE6CCDDE5C9DCE3CADBE3C8DAE4CBDEEDC8DDEEC8DDEEC7DCEDC6DBECC5DAEB C5DAEBC5DAEBCBE0F1C9DEEFC7DCEDC5DAEBC3D8E9C1D6E7C1D6E7C0D5E6C6D9E8C6D9E8C7DAE9 C8DBEAC8DBEAC9DCEBCADDECCADDECCBDEEDCCDFEECCDFEECDE0EFCEE1F0CFE2F1CFE2F1D0E2F0 D3E1ECD3E0E9D2DFE8D1DEE7D1DEE7D2DFE8D3E0E9D4E1EAD8E5EED8E5EED7E4EDD5E2EBD2DFE8 CFDCE5CCD9E2C8D6E1C9D9E8C8DAE8C8DAE8C8DAE8C9DBE9C9DBE9C9DBE9C9DBE9C8DAE8C7D9E7 C6D8E6C6D8E6C7D9E7C9DBE9CCDEECCEE0ECD7E5F0D9E6EFDAE7F0DBE8F1DEE8F2E0EAF3E2EBF4 E2EBF2E6EDF3E8EDF1E8EBF0E8ECEFEAEBEFEAEBEDEAEBEDE8ECEFE5EAF0E3EAF2E3EAF2E3EAF2 E3EAF2E3EAF2E3EAF2E3EAF2DFE6EEDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDBE2EADAE3EAD8E7EE D6E7EFD5E6EED5E6EED4E5EDD3E4ECD2E3EBD2E3EBD0E1E9D1E2EAD2E3EBD4E5EDD6E7EFD8E9F1 D9EAF2DCEBF2E3ECF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E0E7EFE0E7EFE0E7EFE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDBE4EBD7E0E9D6E0E9 D5DFE8D4DEE7D2DFE8D1DEE7CFDDE8CDDEE8CDDDECCCDEECCADDECC9DCEBC7DCEDC6DBECC5DAEB C5DAEBC3D6E5C4D7E6C4D7E6C5D8E7C6D9E8C7DAE9C7DAE9C7DAE9C8DBEAC8DBEAC9DCEBC9DCEB CADDECCBDEEDCCDFEECDDFEDD2DFE8D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C6D9E8C7DAE9C7DAE9C6D9E8C5D8E7C2D5E4 C0D3E2BED1DFBDD3E0BDD3DEBDD3E0BDD3E0BCD3E1BCD3E1BAD4E3BAD4E3BAD5E6BAD5E6B8D5E7 B8D5E7B5D4E8B4D3E7B2D3E6B2D3E6B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B1D2E5AFCFE6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E4B0CFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7BED5E7C1D6E7 C1D6E7C4D7E6C5D8E7C6D8E6C7D9E7C9D9E6C9D9E6CDDDEACDDDEACDDDEACDDDEACDDDEACDDDEA CDDDEACDDDEACEDEEBCEDEEBCEDEEBCDDDEACCDCE9CCDCE9CBDBE8CADCE8C9DDE8C7DDE8C9DDE8 C7DDE8C7DDEAC7DDEAC7DDEBC6DDEBC8DFEFC7DEEEC7DEF0C4DEEFC3DCF0C2DBEFC2DBF1C2DBEF C3DAEAC3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C5DBE8C7D9E3C9DAE2CCDAE3CCDDE5CFDDE6CFE0E8D2E0E9D1E2EAD1DFE8CFE0E8 D1DFE8D0E1E9D5E3ECD6E7EFDAE8F1DCEAF3E1EEF7E1EEF7E4EEF7E4EEF7E6EFF8E7F0F7E8EFF7 E8EFF5E8EDF1E8EDF1EAEEF1EAEEF1EDEEF0EDEEF0EFEFEFEFEFF1EAEBEDEBECF0EDEEF2EEEFF3 F0F1F5F2F3F7F4F5F9F4F5F9F4F5F9F4F5F9F4F5F9F4F5F9F5F6FAF5F6FAF5F6FAF5F6F8F7FBFC F6FCFCF6FAFBF5FBFBF5F9FAF4FAFAF4F8F9F3F9F9F2F6F7F1F7F7F2F6F7F1F7F7F2F6F7F1F7F7 F2F6F7F2F6F7F4F5F7F4F5F7F3F4F6F3F4F6F0F4F7EFF3F6EEF3F7EDF2F6EEF5FBEAF3FAE5EEF7 E0EAF3DDE7F1DAE7F0DAE7F0DBE8F1DCE9F1DCE9EFDAE7EFD6E3E9D2DFE7D3DEE4D7E1EADDE6ED E9F2FBEAF1F9EBF2FCEEF2FBF0F4FFF1F5FEF3F5FFF2F6FFF0F4FFF0F7FFF4F8FFF4FBFFF5F9FF F1F8FFF0F4FFECF3FBE3E7F2E0E7EFE1E5F0DEE5EDE0E4EFE0E7EFE3E7F2E2E9F1E3EAF2E3EAF2 E2E9F1E2E9F1E1E8F0E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDDE4ECDDE4ECDEE5EDDFE6EEE0E7EFE0E7EFE1E8F0E1E8F0DEE5ED DEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDDE6EDDCE5EEDBE5EEDAE4EDD9E3ECD8E2EBD8E2EB D7E1EAD7E1EAD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E0E7D7E0E7D7E0E7 D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D6DFE6D6DFE6D6DFE6D6DFE6D6DFE6D6DFE6D6DFE6D6DFE6 D8E1EAD9E2EBD9E2EBDAE3ECDAE3ECDBE4EDDBE4EDDCE5EEDFE8F1E0E9F2E2EBF4E4EDF6E5EEF7 E4EDF6E4EDF6E3ECF5DDE7F1DAE7F0D7E4EDD5E2EBD3E0E9D2DFE8D2DFE8D3E0E9D3E0E9D3E0E9 D4E1EAD5E2EBD6E3ECD7E4EDD7E4EDD7E5EED3E4ECD2E5ECD1E4EBD0E3EAD0E3EACFE2E9CEE1E8 CEE1E8CBDEE5CBDEE5CADDE4CADDE4C9DCE3C9DCE3C9DCE3C7DBE4C8DEECC8DDEEC7DCEDC6DBEC C5DAEBC5DAEBC4D9EAC4D9EACBE0F1CADFF0C7DCEDC5DAEBC4D9EAC3D8E9C4D9EAC4D9EACADDEC CADDECCADDECCBDEEDCCDFEECDE0EFCDE0EFCEE1F0CCDFEECCDFEECDE0EFCEE1F0CFE2F1CFE2F1 D0E3F2D1E3F1D4E2EDD4E1EAD3E0E9D2DFE8D2DFE8D3E0E9D4E1EAD5E2EBD9E6EFD9E6EFD7E4ED D5E2EBD1DEE7CCD9E2C8D5DEC4D2DDC9D9E6C8DAE8C8DAE8C9DBE9CADCEACADCEACBDDEBCBDDEB CCDEECCADCEAC8DAE8C8DAE8C9DBE9CDDFEDD1E3F1D4E4F1DAE8F3DBE8F1DCE9F2DDEAF2E0EAF3 E0EBF1E2EBF2E4EBF1E8EDF1E8EDF1E8ECEFE8ECEFE9EAECE9EAECE8E9EBE6EAEDE3E8EEE1E8F0 E1E8F0E1E8F0E1E8F0E1E8F0E1E8F0E1E8F0DEE5EDDDE4ECDDE4ECDCE3EBDBE2EADAE1E9DAE1E9 D9E2EBD7E5EED4E5EDD4E5EDD3E4ECD2E3EBD1E2EAD1E2EAD1E2EAD1E2EAD2E3EBD4E5EDD6E7EF D8E9F1DBECF4DCEDF5DFEDF6E4EDF6E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E5ECF4E3EAF2 E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E3EAF2E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E0E7EFE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDBE4EB D7E0E9D6E0E9D5DFE8D4DEE7D2DFE8D1DEE7CFDDE8CDDEE8CDDDECCCDEECCADDECC9DCEBC7DCED C6DBECC5DAEBC5DAEBC4D7E6C4D7E6C5D8E7C6D9E8C7DAE9C7DAE9C8DBEAC8DBEAC9DCEBCADDEC CADDECCBDEEDCCDFEECDE0EFCDE0EFCEE0EED3E0E9D5DFE8D5DFE8D5DFE8D5DFE8D5DFE8D5DFE8 D5DFE8C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C6D9E8C6D9E8C6D9E8C6D9E8 C4D7E6C2D5E4BFD2E1BDD0DEBDD3E0BDD3DEBDD3E0BDD3E0BCD3E1BCD3E1BAD4E3BAD4E3BBD6E7 BBD6E7B9D6E8B8D5E7B5D4E8B5D4E8B3D4E7B3D4E7B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B1D2E5AFCFE6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E4B0CFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B7D2E7B7D2E7B8D3E8B9D4E9BAD3E7BBD4E8BED5E7 BED5E7C1D6E7C1D6E7C4D7E6C5D8E7C6D8E6C7D9E7C9D9E6C9D9E6CCDEECCCDEECCCDEECCCDEEC CCDEECCCDEECCCDEECCCDEECCDDFEDCDDFEDCCDEECCBDDEBCADCEAC9DBE9C8DAE8C8DAE8C6DCE7 C5DDE7C6DCE7C5DDE7C5DDE9C5DDE9C5DCEAC3DDECC5DFF0C4DEEFC4DDF1C2DDF0C1DCF1C0DBF0 C0DBF0BFDAEDC0DAE9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C3DAE8C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C5DBE8CADBE5CDDBE4D0DDE6D2E0E9D6E3ECD8E6EFDCE9F2DCEAF3 D7E4EDD5E3ECD6E3ECD5E3ECD7E4EDD8E6EFDBE8F1DDEAF3DDEAF3DDEAF3DEEBF4DFECF4E2ECF5 E3EEF4E5EEF5E6EDF3E7ECF0E8EDF1E9EDF0EAEEF1EDEEF0EEEFF1EFF0F2EFF0F2EEEFF1EEEFF1 EFF0F2F0F1F3F1F2F4F3F4F6F3F4F6F4F5F7F7F8FAF7F8FAF7F8FAF6F7F9F6F7F9F5F6F8F5F6F8 F3F7F8F7FDFDF4FDFAF6FCFAF3FCF9F4FAF8F1FAF7F2F8F6F0F9F6F1F7F5EFF8F5F1F7F5EFF8F5 F1F7F5EFF8F5F1F7F5F1F7F5F2F6F7F3F4F6F3F4F6F2F3F5EFF3F6EEF2F5EDF2F6EDF2F6ECF3F9 EAF3F8E9F2F9E6F1F7E4EEF7E2ECF5DFECF5DEEBF3DDEAF0E0EBEFE0EBF1DBE6EAD6E1E7D8E1E6 DEE7EEE6EDF3F0F7FFF2F7FDF2F6FFF3F6FDF3F6FFF4F7FEF6F6FFF4F7FEF6F9FFF5FAFFF6F9FF F6FBFFF8FBFFF7FCFFF8FBFFF7FCFFEBEEF7E9EEF4E8EBF4E6EBF1E7EAF3E6EBF1E8EBF4E8ECF5 E4EBF3E4EBF3E3EAF2E2E9F1E1E8F0E0E7EFE0E7EFDFE6EEE0E7EFE0E7EFE0E7EFE0E7EFE0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDEE5EDDEE5EDDFE6EEDFE6EEE0E7EFE1E8F0E2E9F1 E2E9F1DEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDDE6EDDBE4EDDAE4EDD9E3ECD9E3EC D8E2EBD7E1EAD6E0E9D6E0E9D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD7E0E7 D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7 D7E0E7D7E0E7DAE1E9DAE1E9DBE2EADCE3EBDDE4ECDEE5EDDEE5EDDFE6EEE0E7EFE3EAF2E6EDF5 E7EEF6E6EDF5E5ECF4E6EDF5E5EEF7E0EAF4DCE9F2DAE7F0D7E4EDD5E2EBD5E2EBD5E2EBD5E2EB D3E0E9D3E0E9D4E1EAD4E1EAD5E2EBD6E3ECD6E3ECD5E3ECD2E4EED1E5EED0E4EDCFE3ECCFE3EC CEE2EBCDE1EACDE1EAC6DAE3C6DAE3C7DBE4C7DBE4C8DCE5C8DCE5C9DDE6C9DDE8C7DDEBC7DCED C6DBECC6DBECC5DAEBC4D9EAC3D8E9C3D8E9CBE0F1CADFF0C7DCEDC5DAEBC5DAEBC6DBECC8DDEE CADFF0CDE0EFCDE0EFCEE1F0CFE2F1D0E3F2D0E3F2D1E4F3D1E4F3CDE0EFCDE0EFCEE1F0CEE1F0 CFE2F1D0E3F2D1E4F3D2E4F2D4E2EDD4E1EAD3E0E9D2DFE8D2DFE8D3E0E9D4E1EAD5E2EBD5E2EB D5E2EBD4E1EAD2DFE8CFDCE5CCD9E2C8D5DEC5D3DEC8D8E5C9D9E6C9D9E6CADAE7CBDBE8CCDCE9 CDDDEACDDDEAD0E0EDCEDEEBCCDCE9CBDBE8CDDDEAD1E1EED6E6F3D9E9F6DAE8F3DCE9F2DEE8F1 DFE9F2E1EAF3E1EAF1E3EAF2E3EAF0E8EDF1E8EDF1E8ECEFE7EBEEE8E9EBE7E8EAE6E7E9E4E8EB E0E5EBDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDBE2EADAE1E9 D9E0E8D9E0E8D7E0E9D6E4EDD2E4EED2E4EED1E3EDD0E2ECCFE1EBCFE1EBCEE0EAD2E4EED3E5EF D5E7F1D7E9F3DAECF6DCEEF8DEF0FAE2F0F9E5EEF7E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E0E7EF E0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4EC DCE3EBDBE4EBD7E0E9D6E0E9D5DFE8D4DEE7D2DFE8D1DEE7CFDDE8CDDEE8CDDDECCCDEECCADDEC C9DCEBC7DCEDC6DBECC5DAEBC5DAEBC5D8E7C5D8E7C6D9E8C6D9E8C7DAE9C8DBEAC9DCEBC9DCEB CADDECCBDEEDCBDEEDCCDFEECDE0EFCEE1F0CEE1F0D0E2F0D4E1EAD6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9D6E0E9C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C3D8E9C4D9EA C4D9EAC3D8E9C2D7E8BFD4E5BDD2E3BBD1DFBCD3E1BCD4E0BCD3E1BCD3E1BCD3E3BAD4E3BAD4E3 BAD4E5BBD6E7BBD6E7B9D6E8B9D6E8B8D4E9B5D4E8B4D3E7B4D3E7B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B1D1E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6 ADD0E6ADD0E6ADD0E6ADD0E6ADD0E6AFCFE4B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3B0CFE3 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B6D2E7B6D2E7B7D3E8B9D4E9B9D4E7 BBD4E8BCD6E7BED5E7C0D7E7C1D6E7C2D8E6C5D8E7C5D8E6C7D9E7C8DAE6C8DAE6CCDEECCCDEEC CCDEECCCDEECCCDEECCCDEECCCDEECCCDEECCDDFEDCCDEECCBDDEBCADCEAC9DBE9C8DAE8C7D9E7 C6D9E7C4DCE8C2DDE8C2DDE8C2DDE8C2DCE9C2DCE9C2DCEBC2DCEBC4DEEFC4DEEFC3DCF0C2DBEF C1DAEEC1DAEEC0D9EFC0D9EDBFD9E8BFD9E6BFD9E6C0DAE7C2D9E7C2D9E7C3DAE8C4DAE8C5DBE9 C5DBE8C7DAE8C7DAE8C8DAE8C8DAE8C8DAE8C9D9E6CFDCE5D3DDE6D6E0EAD9E3ECDEE8F2E1EBF4 E4EEF8E6F0F9DCE6F0DBE5EEDAE4EED9E3ECDAE4EEDBE5EEDDE7F1DEE8F1DDE7F0DDE8EEDEE9EF E0EBF1E2EBF2E3ECF1E5ECF2E6EEF1E7ECF0E8EDF0E9EDF0EAEEEFEEEFF1EFF0F2EFF0F2F0F1F3 F1F2F4F1F2F4F2F3F5F3F4F6F3F4F6F4F5F7F4F5F7F5F6F8FAFBFDFAFBFDF9FAFCF8F9FBF7F8FA F7F8FAF6F7F9F6F7F9F7FDFBF4FDFAF6FCFAF3FCF9F3F9F7F0F9F6F2F8F6EFF8F5F0F6F4EEF7F4 F0F6F4EEF7F4F0F6F4EEF7F4F0F6F4F0F6F4F1F5F6F3F4F6F2F3F5F1F2F4EEF2F5EEF2F5ECF1F5 ECF1F5EDF2F6EBF2F8ECF3F9ECF3F9EAF3FAE8F1F8E4EEF7E4EDF4E0E9EEE3EDEFE4ECEFDFE7EA DAE2E5DBE3E6E6EBEFEEF3F7F5F8FDF5F8FDF4F7FCF6F7FCF5F6FBF5F6FBF5F6FBF5F6FBF8F9FE F6F9FEF7F8FDF5F8FDF9FAFFF9FCFFFDFEFFFCFFFFF1F2F7EEF1F6EEEFF4EAEDF2ECEDF2EAEDF2 EDEEF3ECEFF4E5ECF2E5ECF2E4EBF1E3EAF2E2E9F1E0E7EFE0E7EFDFE6EEE0E7EFE0E7EFE0E7EF E0E7F1E0E7F1E0E7F1E0E7F1E0E7F1E0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EB DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDEE5EDDDE6EDDFE6EEDFE8EFE1E8F0 E0E9F0E2E9F1E1EAF1DEE5EDDDE6EDDEE5EDDDE6EDDEE5EDDDE6EDDEE5EDDDE6EDDAE4EDDAE4ED D9E3ECD8E2EBD7E1EAD7E1EAD6E0E9D6E0E9D8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EBD8E2EB D8E2EBD7E0E9D7E0E9D7E0E9D7E0E9D7E0E9D7E0E9D7E0E9D7E0E9D7E0E9D7E0E9D7E0E9D7E0E9 D7E0E9D7E0E9D7E0E9D8DFE7DAE1E9DBE2E8DEE3E9DDE4EAE0E5EBDFE6ECE2E7EDE0E7EDE2E7ED E3EAF0E9EEF4E8EFF5E8EDF3E5ECF2E8EDF3E7EEF6E1EBF4E0EAF3DDE7F0DBE5EED9E3ECD6E3EC D7E4EDD7E4EDD3E0E9D3E0E9D3E0E9D3E1EAD4E0ECD4E2EDD4E2EDD4E2EDD2E4EED2E4EED1E3ED D0E2ECD0E2ECCFE1EBCEE0EACEE0EAC5D7E1C5D7E1C6D8E2C7D9E3C8DAE4CADCE6CBDDE7CBDDE9 C9DCEBC9DCEBC8DBEAC7DAE9C6D9E8C6D9E8C5D8E7C5D8E7CDE0EFCCDFEEC9DCEBC8DBEAC8DBEA CBDEEDCEE1F0D0E3F2D0E2F0D1E3F1D1E3F1D2E4F2D3E5F3D4E6F4D4E6F4D5E7F5CEE0EECEE0EE CFE1EFD0E2F0D1E3F1D1E3F1D2E4F2D3E3F0D5E3F0D5E1EDD3DFEBD2DEEAD2DEEAD3DFEBD5E1ED D6E2EECFDBE7D0DCE8D0DCE8D0DCE8CFDBE7CCD8E4CAD6E2C9D5E1CAD8E5C9D9E6C9D9E6CBDBE8 CCDCE9CDDDEACEDEEBCEDEEBD2E2EFD0E0EDCEDEEBCDDDEACFDFECD3E3F0D9E9F6DEECF7DCE9F2 DEE8F1DEE8F1E0E9F0E0E9F0E1EAF1E2E9EFE2E9EFE8EDF1E7ECF0E6EBEFE6EAEDE5E9ECE4E8EB E3E7EAE2E7EBDCE3EBDBE4EDDBE4EDDBE4EDDBE4EDDBE4EDDBE4EDDBE4EDDBE4EDDBE4EDDAE3EC D9E2EBD8E1EAD8E1EAD7E0E9D6E0E9D5E3EED3E4EED4E2EDD1E2ECD2E0EBD0E1E9D1DFE8CFE0E8 D6E4EDD5E6EED9E7F0DAEBF3DFEDF6DFF0F7E3F2F9E5F2FAE5EEF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF5E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E4EBF3E2E9F1E2E9F1 E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1E2E9F1 E2E9F1E0E7EFDFE8EFE0E7EFDFE8EFE0E7EFDFE8EFE0E7EFDFE8EFE0E7EFDFE8EFDFE6EEDDE6ED DEE5EDDCE5ECDCE3EBDBE4EBD6E0E9D6E0E9D5DFE8D4DEE7D2DFE8D1DEE7D0DDE6CFDDE8CDDDEA CDDDEACBDDEBCADCEACADCEAC8DBE9C8D9E9C8DAE8C6D8E6C7D7E6C8D8E7C9D9E8CADAE9CADAE9 CBDBEACBDBEACDDDECCDDDECCEDEEDCFDFEED0E0EFD0E0EFD1E1F0D3E1EED6E0EAD6E1E7D7E0E9 D6E1E7D7E0E9D6E1E7D7E0E9D6E1E7BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7 BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BCD6E7BCD6E7BCD6E7BCD6E7BCD6E7 BBD6E7BBD6E7BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D5E7B8D5E7B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B1D1E6AFD2E8AED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EA AED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EA AED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAFD2E8B1D1E6B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B5D4E8 B8D4E9B8D5E7BAD5E8BBD6E7BCD6E7BCD6E5BED5E5BFD6E4C1D7E5C1D7E4C4D7E5C5D9E4C5D9E4 C7DAE8C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9CEE1F0CEE1F0CDE0EFCCDFEECBDEED CADDECC9DCEBC6DCEABDD7E6BDD9E7BDD9E7BFDBE9C0DCEAC2DCEBC3DDEEC3DDEEC2D9EBC2D9EB C2D9EBC2D9EBC3D8EBC3D8EBC3D8EDC2D9EBBFDBE9C0DDEBC2DFEDC4E0EEC6E0EDC8DFEDC9DFEC CADDEBCCDEECCEDEEBD3DFEBD5DFEBD5DDEAD1D9E6CED4E0CCD2DED0D4DFD5D9E2DDE1ECE5E9F2 EBEFFAEEF2FBEEF2FDEEF2FBEAEEF9E9EDF6E9EDF8E8ECF5E7EBF6E6EAF3E6EAF5E5E9F2E5EAEE E5EAEDE5EAEDE5EAEDE5EAEDE5EBEBE5EBEBE5EBEBEAEEEFEAEEEFEBEFF0EBEFEEECF0EFEDF1F0 EEF2F1F0F2F1F3F5F4F4F4F4F5F5F5F6F6F6F6F6F6F7F7F7F7F7F7F8F8F8F8F8F8F9F9F9FAFAFA FBFBFBFBFBFBFAFAFAF9F9F9F7F9F8F7FBFAF6FCFAF6FAF9F5FBF9F5F9F8F3F9F7F3F7F6F2F8F6 F2F6F5F1F7F5F2F6F5F2F8F6F3F7F6F2F8F6F4F8F7F4F8F7F3F7F8F3F7FAF3F7FAF3F7FAF3F7FA F3F7FAF3F7FAF3F7FAF2F6F9F1F6FAF1F6FAF0F5F9F0F5F9EFF4F8EFF4F8EFF4F8EDF1F4EAEEEF E7E8EAE5E6E8E7E8EAECEDEFF3F4F6F7F8FAFDFEFFFDFEFFFDFEFFFEFEFFFEFEFFFEFEFFFEFEFF FEFEFFF8F8FAF7F8FAF7F7F9F5F6F8F6F6F8F7F8FAFAFAFCFAFBFDF3F3F5F2F3F5F2F2F4F0F1F3 F0F0F2EFF0F2EFEFF1ECF0F1E8F0F2E6F0F2E5EFF1E4EDF2E2EBF0E0E9EEDFE8EFDFE8EFDCE5EE DCE5EEDCE5EEDDE5F0DDE5F0DDE5F0DEE6F1DEE6F1E0E7F1E0E7EFDFE6EEDEE5EDDEE5EDDDE4EC DCE3EBDCE3EBDFE6EEDFE6EEDEE5EDDEE5EDDEE5EDDEE5EDDDE4ECDDE4ECDEE7EEDDE8EEDFE8EF DEE9EFDFE8EFDEE9EFE0E9F0DFEAF0DDE6EDDCE7EDDDE6EDDCE7EDDDE6EDDCE7EDDDE6EDDCE7ED DAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9D6E0E9D9E1ECDAE0ECDAE0ECDAE0ECDAE0ECDAE0ECDAE0ECDAE0ECDAE0ECDAE0EC DAE0ECDAE0ECDAE0ECDAE0ECDAE0ECDAE1EBDEE3E9DEE3E7E1E4E9E1E6EAE4E7ECE4E9EDE6E9EE E6EBEFE9ECF1E9EEF2EBEEF3EBF0F4EDF0F5EBF0F4EBEEF3E9EEF2E2E9EFE1EAF1E0E9F0DFE8EF DFE8EFDDE7F0DCE6EFDCE6EFD7E4EDD7E4EDD6E4EFD3E4EED5E3F0D2E2EFD2E2EFD2E2EFCFDFEC CFDFECCEDEEBCEDEEBCDDDEACCDCE9CBDBE8CBDBE8C9D9E6C9D9E6CADAE7CBDBE8CBDBE8CCDCE9 CDDDEACDDDEACDDDECCDDDECCDDDECCDDDECCDDDECCDDDECCDDDECCDDDECCBDBEACBDBEACDDDEC CEDEEDD0E0EFD1E1F0D3E3F2D3E3F0D5E3EED4E2EDD2E0EBD1DFEAD1DFEAD2E0EBD4E2EDD5E3EE D2E0EBD2E0EBD3E1ECD3E1ECD3E1ECD3E1ECD4E2EDD4E2EDD2DEEED3DFEFD4E0F0D4E0F0D3DFEF D1DDEDCFDBEBCEDAEAD0DCECD0DCECCFDBEBCEDAEACDD9E9CCD8E8CBD7E7CAD6E6C8D6E3C9D7E2 CBD9E4CDDBE6D0DEE9D3E1ECD5E3EED6E4EFD4E2EDD4E2EDD6E4EFD8E6F1DAE8F3DCEAF5DDEBF6 DFECF5E3EDF6E4EDF4E6EFF6E8EFF5E8EFF5E7EEF4E5ECF2E5ECF2E4EBF1E4EBF1E3EAF0E3E8EC E1E6EAE0E5E9DFE4E8DCE3E9D8E2ECD6E2EED6E2EED6E2EED6E2EED6E2EED6E2EED6E2EED2DEEA D2DEEAD3DFEBD4E0ECD4E0ECD5E1EDD6E2EED6E2EED6E0ECD6E0ECD7DFEAD7E1EBD8E0EBD7E1EA D9E2EBD8E2EBE3ECF3E2EDF3E4EDF2E4EFF3E5EEF3E5F0F2E7F1F3E7F1F3E6EDF3E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E5ECF4E4EBF3E4EBF3E3EAF2E2E9F1E2E9F1 E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E2E9EFE2E9EFE2E9EFE2E9EFE2E9EF E2E9EFE2E9EFE2E9F1E1EAF1E0EAF3E0E9F2DFE9F2DFE8F1DDE7F0DDE6EFDCE6EFDBE4EDDAE4ED DBE4EDDAE4EDDBE4EDDAE4EDDBE4EDDAE4EDD9E3ECD8E2EBD7E1EAD5DFE8D3DDE6D1DBE4D0DAE3 CDDAE3D0DDE6CFDCE5CFDCE5CDDAE3CCD9E2CAD8E1CAD6E2CAD7E0D1DBE5D3DDE7D5DFE9D7E1EB D7E1EBD5DFE9D3DDE7D1DBE5D6E0EAD6E0EAD6E0EAD6E0EAD6E0EAD6E0EAD6E0EAD7DFEAD9E2E9 D9E2E7DAE1E9D9E2E7DAE1E9D9E2E7DAE1E9D9E2E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7 B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B1D1E6AFD2E8AED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EA AED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EA AED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAED2EAAFD2E8B1D1E6B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B3D4E7 B3D4E7B5D4E8B6D5E9B8D5E7B9D6E8BBD6E7BBD6E7BCD6E5BCD6E5BFD6E4C0D7E5C1D7E4C2D8E5 C3D9E4C3D9E4C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9CCDFEECCDFEECBDEED CADDECC9DCEBC8DBEAC8DBEAC5DBE9BDD7E8BBD8E8BDD8E9BED9EABFDAEBC1DBECC1DBECC2DCED C2D9EBC2D9EBC3D8EBC3D8EBC5D7EBC5D7EBC5D7EBC3D8EBBFDCEABEDEEBC1DEECC3DFEBC4DEEB C6DEEAC9DCEAC9DBE7D1DFECD3DFEBD8E0EBDBE1EDDDDFECDBDDE9D9D9E5D7D7E3D6D9E2DADDE6 E1E4EDE8EBF4EDF0F9EFF2FBEFF2FBEFF2FBEDF0F9ECEFF8ECEFF8EBEEF7EAEDF6E9ECF5E9ECF5 E8EBF2E9EDEEE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEBEFEEEBEFEEEBEFEEECF0EF EDF1F0EEF2F1EEF2F1EFF3F2F3F3F3F4F4F4F4F4F4F6F6F6F7F7F7F8F8F8F9F9F9F9F9F9F9F9F9 FAFAFAFBFBFBFCFCFCFCFCFCFBFBFBFAFAFAF8FAF9F9FBFAF7FBFAF6FAF9F5F9F8F4F8F7F4F8F7 F3F7F6F3F7F6F5F9F8F4F8F7F4F8F7F4F8F7F4F8F7F3F7F6F3F7F6F3F7F6F2F6F9F2F6F9F2F6F9 F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F2F6F9F3F7FAF3F7FAF3F7FAF3F7FAF4F8FBF4F8F9 F3F3F5F1F1F1EFEFEFEEEEEEEFEFEFF3F3F3F8F8F8FBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFBFBFBFAFAFAF8F8F8F7F7F7F6F6F6F7F7F7F8F8F8F9F9F9F4F4F4F3F3F3 F3F3F3F2F2F2F1F1F1F0F0F0F0F0F0EFF1F0E9F1F3E7F1F2E6F0F2E4EEF0E3ECF1E1EAEFE0E9F0 DFE8EFDDE6EFDDE6EFDDE5F0DDE5F0DDE5F2DDE5F2DEE6F3DEE6F1E0E7F1E0E7EFDFE6EEDEE5ED DEE5EDDDE4ECDCE3EBDCE3EBDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDDE6EDDFE8EF DEE9EFDEE9EFDEE9EFDEE9EFDEE9EFDEE9EFDEE9EFDCE7EDDCE7EDDCE7EDDCE7EDDCE7EDDCE7ED DCE7EDDCE7EDDAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9DAE0ECDAE0EEDAE0EEDAE0EEDAE0EEDAE0EEDAE0EEDAE0EE DAE0EEDAE0EEDAE0EEDAE0EEDAE0EEDAE0EEDAE0EEDAE1EBDFE2E7E0E4E7E1E5E8E2E6E9E4E8EB E6EAEDE7EBEEE7EBEEE9EDF0EAEEF1EBEFF2EDF1F4EDF1F4ECF0F3EBEFF2E9EEF1E4E9EFE2E9EF E1E8EEE0E7EDDFE8EFDEE7EEDCE6EFDCE6EFD7E4EDD6E4EDD6E4F1D3E3F0D2E2EFD2E2EFD0E2F0 D0E2F0D1DFECD0DEEBD0DEEBCFDDEACEDCE9CDDBE8CDDBE8CCDAE7CBD9E6CBD9E6CCDAE7CDDBE8 CDDBE8CEDCE9CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACDDBE8 CDDBE8CFDDEAD0DEEBD2E0EDD3E1EED5E3F0D5E3EED5E1EDD4E1EAD3E0E9D2DFE8D2DFE8D3E0E9 D4E1EAD5E2EBD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E0ECD3DFEFD4DFF1D4DFF1 D5E0F2D4DFF1D2DDEFD0DBEDCFDAECCFDAECCFDAECCED9EBCDD8EACCD7E9CBD6E8CAD5E7CAD6E6 C9D7E4CAD8E3CCDAE5CEDCE7D1DFEAD3E1ECD5E3EED6E4EFD6E4EFD6E4EFD8E6F1D9E7F2DBE9F4 DDEBF6DEECF7E0EDF6E3ECF3E5ECF2E6EDF3E7EEF4E7EEF4E6EDF3E5ECF2E4EBF1E4EBF1E3EAF0 E2E9EFE0E7EDDFE6ECDDE4EADCE3E9DAE3EAD5E1EDD4E2EFD4E2EFD4E2EFD4E2EFD4E2EFD4E2EF D4E2EFD1DFECD1DFECD2E0EDD3E1EED3E1EED4E2EFD5E3F0D6E2F0D6DEEBD7DDEBD8DEEAD9DFEB DAE1EBDBE2ECDCE3EBDCE3EBE4EBF1E4EBF1E5EDF0E6EEF1E6EEF0E7EFF1E8F1F0E8F0F2E6EDF3 E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E5ECF4E4EBF3E4EBF3E3EAF2 E2E9F1E2E9F1E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E4EBF1E2E9EFE2E9EFE2E9EF E2E9EFE2E9EFE2E9EFE2E9EFE1EAEFE1EAF3E0EAF3DFE9F2DEE8F1DDE7F0DDE7F0DCE6EFDCE6EF DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD9E3ECD8E2EBD7E1EAD5DFE8D3DDE6 D1DBE4D0DAE3CFD9E2D1DBE4D1DBE4D0DAE3D0DAE3CFD9E2CFD9E2CED8E1CED8E1D4DBE5D5DCE6 D7DEE8D9E0EAD9E0EAD7DEE8D5DCE6D4DBE5D9E0EAD9E0EAD9E0EAD9E0EAD9E0EAD9E0EAD9E0EA D9E0E8DBE2EADBE2E8DBE2E8DBE2E8DBE2E8DBE2E8DBE2E8DBE2E8BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B3D2E6B3D2E6B3D2E6 B3D2E6B3D2E6B3D2E6B3D2E6B2D2E7AFD2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8 AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8 AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AFD2E8B1D1E6B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7 B4D3E7B3D4E7B3D4E7B5D4E8B6D5E9B8D5E7B9D6E8BBD6E7BBD6E7BCD6E5BCD6E5BFD6E4C0D7E5 C1D7E4C2D8E5C3D9E4C3D9E4C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8C9DCEB C9DCEBC8DBEAC8DBEAC7DAE9C6D9E8C6D9E8C4DAE8BDD7E8BCD7E8BED8E9BED8E9BFD9EAC2D9EB C2D9EBC2D9EBC2D9EBC2D9EBC3D8EBC3D8EBC3D8EBC3D8EBC3D8EBC2D9EBC2DEECC1DEECC0DEE9 C1DDE9C2DCE9C3DBE7C6D9E7C7D9E5D4E2EFD9E3EFDDE5F0E1E7F3E4E6F2E3E5F1E3E3EFE1E1EB DEE1EAE1E4EDE6E9F2EBEEF7EFF2FBF0F3FCEFF2FBEEF1FAF0F3FCEFF2FBEFF2FBEEF1FAEDF0F9 ECEFF8ECEFF8ECEFF6ECF0F1ECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EF EDF1F0EEF2F1EEF2F1EFF3F2F0F4F3F0F4F3F2F2F2F3F3F3F4F4F4F6F6F6F8F8F8FAFAFAFBFBFB FCFCFCFAFAFAFBFBFBFDFDFDFEFEFEFEFEFEFDFDFDFBFBFBF9FBFAF8FAF9F6FAF9F5F9F8F5F9F8 F4F8F7F3F7F6F2F6F5F2F6F5F9FDFCF8FCFBF7FBFAF6FAF9F4F8F7F3F7F6F2F6F5F2F6F5EFF3F6 EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6EFF3F6F0F4F7F1F5F8F2F6F9F3F7FAF4F8FBF6FAFD F7FBFEF7FBFCF5F5F7F6F6F6F6F6F6F8F8F8F9F9F9FBFBFBFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFAFAFAF8F8F8F7F7F7F6F6F6F7F7F7F7F7F7 F5F5F5F5F5F5F4F4F4F3F3F3F3F3F3F2F2F2F1F1F1F0F2F1EAF2F4E8F2F3E7F1F2E5EFF0E4EEF0 E2ECEEE1EAEFE0E9F0DEE7F0DEE7F0DEE6F1DEE6F1DEE6F3DEE6F3DDE5F2DDE5F0E0E7F1E0E7EF DFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5ED DDE6EDDFE8EFDEE9EFDEE9EFDEE9EFDEE9EFDEE9EFDEE9EFDEE9EFDBE6ECDBE6ECDBE6ECDBE6EC DBE6ECDBE6ECDBE6ECDBE6ECDAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9DAE0ECDAE0ECDAE0ECDAE0ECDAE0ECDAE0EC DAE0ECDAE0ECDBE1EDDBE1EDDBE1EDDBE1EDDBE1EDDBE1EDDBE1EDDBE2ECE0E3E8E0E4E7E1E5E8 E3E7EAE5E9ECE6EAEDE7EBEEE8ECEFEAEEF1EBEFF2ECF0F3EDF1F4EDF1F4EBEFF2EAEEF1E8EDF0 E4E9EFE2E9EFE1E8EEE0E7EDDFE8EFDEE7EEDCE6EFDCE6EFD7E4EDD5E3ECD5E3F0D2E2EFD1E1EE D0E0EDCEE0EECEE0EECFDDEACFDDEACFDDEACEDCE9CDDBE8CCDAE7CCDAE7CBD9E6CBD9E6CBD9E6 CCDAE7CDDBE8CDDBE8CEDCE9CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEA CFDDEACDDBE8CDDBE8CFDDEAD0DEEBD2E0EDD3E1EED5E3F0D5E3EED5E1EDD4E1EAD3E0E9D2DFE8 D2DFE8D3E0E9D4E1EAD5E2EBD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E1EAD4E0ECD4E0F0 D4DFF1D5E0F2D5E0F2D5E0F2D3DEF0D1DCEED0DBEDCDD8EACDD8EACCD7E9CCD7E9CBD6E8CBD6E8 CAD5E7CAD6E6CCD8E4CDDAE3CEDBE4D1DEE7D3E0E9D5E2EBD7E4EDD7E4EDD9E6EFDAE7F0DBE8F1 DCE9F2DEEBF4DFECF5E0EDF6E3EDF6E2EBF2E4EBF1E5ECF2E6EDF3E6EDF3E5ECF2E4EBF1E3EAF0 E3EAF0E2E9EFE1E8EEDFE6ECDEE5EBDCE3E9DBE2E8D9E2E9D2DEEAD1DFECD1DFECD1DFECD1DFEC D1DFECD1DFECD1DFECD1DFECD1DFECD2E0EDD3E1EED3E1EED4E2EFD5E3F0D6E2F0D5DDEAD6DCEA D8DEEADAE0ECDCE3EDDEE5EFE0E7EFE1E8F0E4EBF1E4EBF1E5EDF0E6EEF1E6EEF0E7EFF1E8F1F0 E8F0F2E6EDF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E5ECF4E4EBF3 E4EBF3E3EAF2E2E9F1E2E9F1E3EAF0E3EAF0E3EAF0E3EAF0E3EAF0E3EAF0E3EAF0E3EAF0E1E8EE E1E8EEE1E8EEE1E8EEE1E8EEE1E8EEE1E8EEE0E9EEE0E9F2DFE9F2DEE8F1DEE8F1DDE7F0DCE6EF DBE5EEDBE5EEDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD8E2EBD7E1EAD6E0E9 D5DFE8D3DDE6D2DCE5D1DBE4D0DAE3D0DAE3D0DAE3D0DAE3D1DBE4D1DBE4D2DCE5D2DCE5D2DCE5 D5DCE6D6DDE7D8DFE9D9E0EAD9E0EAD8DFE9D6DDE7D5DCE6DBE2ECDBE2ECDBE2ECDBE2ECDBE2EC DBE2ECDBE2ECDBE2EADCE3EBDCE3E9DCE3E9DCE3E9DCE3E9DCE3E9DCE3E9DCE3E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B4D3E7 B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B3D4E7AFD2E6AED2E8AED2E8AED2E8AED2E8AED2E8 AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8 AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AED2E8AFD2E6 B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7 B4D3E7B4D3E7B4D3E7B3D4E7B3D4E7B5D4E8B6D5E9B8D5E7B9D6E8BBD6E7BBD6E7BCD6E5BCD6E5 BFD6E4C0D7E5C1D7E4C2D8E5C3D9E4C3D9E4C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C6D9E8C6D9E8C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C3D9E7C0D7E7C0D7E9C1D8EAC1D8EA C1D8EAC1D8EAC1D8EAC1D8EAC2D9EBC2D9EBC3D8EBC3D8EBC3D8EBC3D8EBC3D8EBC2D9E9C4DEED C2DEEAC2DCE9C1DCE7C2DAE6C3D9E4C6D8E4C8D9E3D9E5F1DDE7F1E2EAF5E7EEF8ECEEFAECEFF8 ECECF6EBEBF5E6E9F2E8EBF4EBEEF7EEF1FAF0F3FCF0F3FCEFF2FBEEF1FAF3F6FFF2F5FEF2F5FE F1F4FDF0F3FCEFF2FBEFF2FBEEF1F8F0F4F5F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 EEF2F1EEF2F1EFF3F2F0F4F3F0F4F3F1F5F4F2F6F5F2F6F5F2F2F2F3F3F3F4F4F4F6F6F6F9F9F9 FBFBFBFDFDFDFDFDFDFBFBFBFCFCFCFDFDFDFEFEFEFEFEFEFDFDFDFCFCFCFAFCFBF7F9F8F5F9F8 F5F9F8F4F8F7F3F7F6F2F6F5F2F6F5F1F5F4FBFFFEFAFEFDF9FDFCF7FBFAF5F9F8F3F7F6F1F5F4 F0F4F3EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4ECF0F3EDF1F4EEF2F5F0F4F7 F2F6F9F4F8FBF6FAFDF6FAFBF5F5F7F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFEFEFEFDFDFDFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFCFCFCF9F9F9F7F7F7F6F6F6 F6F6F6F6F6F6F7F7F7F7F7F7F6F6F6F5F5F5F5F5F5F4F4F4F3F3F3F2F4F3EBF4F3EAF4F5E9F3F4 E7F1F2E5EFF1E4EEF0E3ECF1E2EBF0E0E9F0E0E9F2DFE7F2DFE7F2DEE6F3DEE6F3DDE5F2DDE5F0 E0E7F1E0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDCE3EBDDE4ECDDE4ECDEE5EDDEE5ED DFE6EEDFE6EEDFE8EFE1EAF1DFEAF0DFEAF0DEE9EFDEE9EFDDE8EEDDE8EEDCE7EDDAE5EBDAE5EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9 D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9DAE0ECDAE0ECDAE0ECDAE0EC DAE0ECDAE0ECDAE0ECDAE0ECDCE2EEDCE2EEDCE2EEDCE2EEDCE2EEDCE2EEDCE2EEDCE3EDE0E3E8 E1E5E8E2E6E9E4E8EBE5E9ECE7EBEEE8ECEFE9EDF0EBEFF2ECF0F3EDF1F4EDF1F4ECF0F3EBEFF2 E9EDF0E7ECEFE4E9EFE2E9EFE1E8EEE0E7EDDFE8EFDEE7EEDCE6EFDCE6EFD6E3ECD5E3ECD4E2EF D1E1EECFDFECCEDEEBCCDEECCBDDEBCEDCE9CEDCE9CDDBE8CCDAE7CBD9E6CBD9E6CAD8E5CAD8E5 CBD9E6CBD9E6CCDAE7CDDBE8CDDBE8CEDCE9CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEA CFDDEACFDDEACFDDEACDDBE8CDDBE8CFDDEAD0DEEBD2E0EDD3E1EED5E3F0D5E3F0D4E0ECD3E0E9 D2DFE8D1DEE7D1DEE7D2DFE8D3E0E9D4E1EAD6E3ECD5E2EBD5E2EBD4E1EAD4E1EAD3E0E9D3E0E9 D2DEEAD4E0F0D4DFF1D5E0F2D5E0F2D4DFF1D3DEF0D1DCEECFDAECCBD6E8CBD6E8CBD6E8CBD6E8 CBD6E8CBD6E8CAD5E7CAD6E6CEDAE6CFDCE5D1DEE7D2DFE8D4E1EAD6E3ECD7E4EDD8E5EEDCE9F2 DCE9F2DDEAF3DEEBF4DFECF5E0EDF6E1EEF7E3EDF6E0E9F0E2E9EFE3EAF0E4EBF1E4EBF1E3EAF0 E2E9EFE1E8EEE1E8EEE0E7EDDFE6ECDEE5EBDCE3E9DAE1E7D9E0E6D8E1E8D0DCE8CFDDEACFDDEA CFDDEACFDDEACFDDEACFDDEACFDDEAD1DFECD1DFECD2E0EDD3E1EED3E1EED4E2EFD5E3F0D6E2F0 D5DDEAD7DDEBD9DFEBDCE2EEDEE5EFE1E8F2E3EAF2E4EBF3E4EBF1E4EBF1E5EDF0E6EEF1E6EEF0 E7EFF1E8F1F0E8F0F2E6EDF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E5ECF4E4EBF3E4EBF3E3EAF2E2E9F1E2E9F1E2E9EFE2E9EFE2E9EFE2E9EFE2E9EFE2E9EFE2E9EF E2E9EFE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDDFE8EFDEE8F1DEE8F1DEE8F1DDE7F0 DCE6EFDBE5EEDBE5EEDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD7E1EA D6E0E9D5DFE8D5DFE8D3DDE6D3DDE6D2DCE5D1DBE4D0DAE3D0DAE3D1DBE4D2DCE5D4DEE7D5DFE8 D6E0E9D6E0E9D6DFE8D7DEE8D8DFE9D8DFE9D8DFE9D8DFE9D7DEE8D7DEE8DCE3EDDCE3EDDCE3ED DCE3EDDCE3EDDCE3EDDCE3EDDCE3EDDDE4ECDDE4EADDE4EADDE4EADDE4EADDE4EADDE4EADDE4EA BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B3D4E7AFD2E6AFD2E6AFD2E6AFD2E6 AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6 AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6AFD2E6 AFD2E6AFD2E6B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B4D3E7B4D3E7B4D3E7 B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B3D4E7B3D4E7B5D4E8B6D5E9B8D5E7B9D6E8BBD6E7BBD6E7 BCD6E5BCD6E5BFD6E4C0D7E5C1D7E4C2D8E5C3D9E4C3D9E4C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C4D7E6C4D7E6C4D7E6C4D7E6C4D7E6C5D8E7C5D8E7C5D8E7C4D9EAC4D9EA C4D9EAC4D9EAC3D8E9C3D8E9C3D8E9C3D8E9C3D8E9C3D8E9C2D9E9C2D9E9C2D9E9C2D9E9C2D9E9 C2D9E9C7DEECC3DEE9C3DBE7C3D9E6C3D9E6C6DAE5CADAE7CDDBE6DDE9F5E2ECF6E7F0F9ECF3FB F2F5FEF2F5FEF3F3FDF2F2FAEBEEF5ECEFF6EDF0F7EFF2F9F0F3FAF0F3FAEFF2F9EFF2F9F4F7FE F4F7FEF3F6FDF3F6FDF2F5FCF1F4FBF0F3FAF0F3F8F3F7F8F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F0F4F3F0F4F3F1F5F4F2F6F5F2F6F5F3F7F6F4F8F7F4F8F7F4F4F4F4F4F4F6F6F6 F7F7F7F9F9F9FBFBFBFCFCFCFDFDFDFAFAFAFBFBFBFDFDFDFEFEFEFEFEFEFDFDFDFBFBFBF9FBFA F7F9F8F4F8F7F4F8F7F3F7F6F2F6F5F1F5F4F1F5F4F1F5F4FAFEFDF9FDFCF8FCFBF6FAF9F4F8F7 F2F6F5F0F4F3F0F4F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3E8ECEFE8ECEF EAEEF1ECF0F3EEF2F5F0F4F7F1F5F8F2F6F7F3F3F5F6F6F6FAFAFAFEFEFEFFFFFFFFFFFFFDFDFD FBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFDFDFDFAFAFA F8F8F8F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F8F8F8F7F7F7F7F7F7F6F6F6F5F5F5F4F6F5EFF5F5 ECF5F4EBF4F3EAF3F2E8F0F2E6EEF0E5EDF0E5ECF2E3EAF2E3EAF2E2E9F3E1E8F2E0E6F2DFE5F1 DEE4F0DEE4F0E0E7F1E0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDBE2EADCE3EBDDE4EC DDE4ECDFE6EEDFE6EEE0E7EFE0E9F0E2EBF2E0EBF1DFEAF0DFEAF0DDE8EEDDE8EEDCE7EDDBE6EC DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE4EDDAE4EDD9E3ECD8E2EBD8E2EB D7E1EAD6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9DAE1EBDAE1EB DAE1EBDAE1EBDAE1EBDAE1EBDAE1EBDAE1EBDCE3EDDCE3EDDCE3EDDCE3EDDCE3EDDCE3EDDCE3ED DCE3EBE1E4E9E2E6E9E3E7EAE5E9ECE6EAEDE8ECEFE9EDF0EAEEF1ECF0F3EDF1F4EDF1F4EDF1F4 ECF0F3EAEEF1E8ECEFE6EBEEE4E9EFE2E9EFE1E8EEE0E7EDDFE8EFDEE7EEDCE6EFDCE6EFD6E3EC D4E2EBD3E1EECFDFECCDDDEACCDCE9C9DBE9C8DAE8CCDAE7CCDAE7CBD9E6CBD9E6CAD8E5C9D7E4 C8D6E3C8D6E3CBD9E6CBD9E6CCDAE7CDDBE8CDDBE8CEDCE9CFDDEACFDDEACFDDEACFDDEACFDDEA CFDDEACFDDEACFDDEACFDDEACFDDEACDDBE8CDDBE8CFDDEAD0DEEBD2E0EDD3E1EED5E3F0D5E3F0 D2E0EBD1DFEAD0DEE9CFDDE8CFDDE8D0DEE9D1DFEAD2E0EBD6E4EFD5E3EED4E2EDD4E2EDD2E0EB D2E0EBD1DFEAD0DEEBD1DEEED2DFF0D2DFF0D3E0F1D2DFF0D0DDEECEDBECCDDAEBC9D6E7C9D6E7 CAD7E8CAD7E8CAD7E8CAD7E8CAD7E8CBD7E7D1DEE7D4DEE7D5DFE8D6E0E9D8E2EBD9E3ECDAE4ED DAE4EDDFE9F2DFE9F2DFE9F2E0EAF3E1EBF4E1EBF4E2ECF5E2ECF5DFE8EFE0E9F0E1EAF1E2EBF2 E2EBF2E1EAF1E0E9F0DFE8EFDEE7EEDEE7EEDDE6EDDBE4EBD9E2E9D8E1E8D7E0E7D5DFE8CFDBE7 CEDCE9CEDCE9CEDCE9CEDCE9CEDCE9CEDCE9CEDCE9D1DFECD1DFECD2E0EDD3E1EED3E1EED4E2EF D5E3F0D6E2F0D7DFECD9DFEDDBE1EDDEE4F0E0E7F1E3EAF4E5ECF4E6EDF5E4EBF1E4EBF1E5EDF0 E6EEF1E6EEF0E7EFF1E8F1F0E8F0F2E6EDF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E5ECF4E4EBF3E4EBF3E3EAF2E2E9F1E2E9F1E1EAF1E1EAF1E1EAF1E1EAF1E1EAF1 E1EAF1E1EAF1E1EAF1DFE8EFDFE8EFDFE8EFDFE8EFDFE8EFDFE8EFDFE8EFDFE8EFDEE8F1DDE7F0 DDE7F0DCE6EFDBE5EEDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4ED DAE4EDD6E0E9D5DFE8D5DFE8D4DEE7D4DEE7D3DDE6D3DDE6D2DCE5D2DCE5D2DCE5D3DDE6D4DEE7 D6E0E9D7E1EAD8E2EBD8E2EBD8E1EAD8E1EAD7E0E9D7E0E9D7E0E9D7E0E9D8E1EAD8E1EADBE4ED DBE4EDDBE4EDDBE4EDDBE4EDDBE4EDDBE4EDDBE4EDDBE4EBDBE4EBDBE4EBDBE4EBDBE4EBDBE4EB DBE4EBDBE4EBBBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BAD5E8BAD5E8BAD5E8 BAD5E8BAD5E8BAD5E8BAD5E8BAD5E8BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B5D4E8B5D4E8B5D4E8B5D4E8B5D4E8B5D4E8B5D4E8B5D4E8B1D1E6AFD2E6 B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6 AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6B1D1E6AFD2E6 B1D1E6AFD2E6B1D1E6B1D1E6B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B4D3E7 B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B3D4E7B3D4E7B5D4E8B6D5E9B8D5E7B9D6E8 BBD6E7BBD6E7BCD6E5BCD6E5BFD6E4C0D7E5C1D7E4C2D8E5C3D9E4C3D9E4C4D7E6C4D7E6C4D7E6 C4D7E6C4D7E6C4D7E6C4D7E6C4D7E6C3D6E5C3D6E5C4D7E6C5D8E7C5D8E7C6D9E8C6D9E8C7DAE9 CBDCEECBDCEECADBEDCADBEDC9DAECC7DAEBC7DAEBC5DAEBC3D8E9C3D8E9C3D8E9C2D9E9C2D9E9 C2D9E9C2D9E9C2D9E7C8DEEBC7DDEAC6D9E7C5D9E4C7D9E5CADCE6D1DFEAD4E1EAE3EDF7E6EFF8 ECF3FBF1F5FEF4F7FFF4F7FEF5F5FDF4F4FCEDF0F7EDF0F7EDF0F7EEF1F8EEF1F8EFF2F9F0F3FA F0F3FAF4F7FEF4F7FEF3F6FDF3F6FDF2F5FCF1F4FBF1F4FBF0F3F8F3F7F8F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F2F6F5F2F6F5F3F7F6F4F8F7F4F8F7F5F9F8F6FAF9F6FAF9F7F7F7 F8F8F8F8F8F8F9F9F9FAFAFAFAFAFAFBFBFBFBFBFBF8F8F8F9F9F9FAFAFAFBFBFBFBFBFBFAFAFA F9F9F9F7F9F8F6F8F7F4F8F7F3F7F6F2F6F5F1F5F4F1F5F4F0F4F3F0F4F3F6FAF9F6FAF9F5F9F8 F3F7F6F2F6F5F1F5F4F0F4F3EFF3F2EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4EDF1F4 E7EBEEE7EBEEE8ECEFEAEEF1EBEFF2ECF0F3EDF1F4EEF2F3F3F3F5F5F5F5F9F9F9FCFCFCFEFEFE FEFEFEFCFCFCFBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF FCFCFCFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFAFAFAF9F9F9F9F9F9F8F8F8F7F7F7 F6F8F7F1F7F7EEF7F6EDF6F5EBF4F3EAF2F4E8F0F2E7EFF2E6EEF1E5ECF2E4EBF3E3EAF2E2E9F3 E0E6F2DFE5F1DEE4F0DDE4EEE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EBDCE3EBDAE1E9 DBE2EADCE3EBDDE4ECDFE6EEE0E7EFE1E8F0E1EAF1E3ECF3E1ECF2E0EBF1DFEAF0DDE8EEDCE7ED DBE6ECDAE5EBD9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD9E4EADAE4EDDAE4EDD9E3EC D8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9 DAE1EBDAE1EBDAE1EBDAE1EBDAE1EBDAE1EBDAE1EBDAE1EBDDE4EEDDE4EEDDE4EEDDE4EEDDE4EE DDE4EEDDE4EEDDE4ECE2E5EAE3E7EAE4E8EBE5E9ECE7EBEEE9EDF0EAEEF1EAEEF1EDF1F4EDF1F4 EEF2F5EDF1F4ECF0F3EAEEF1E7EBEEE5EAEDE4E9EFE2E9EFE1E8EEE0E7EDDFE8EFDEE7EEDCE6EF DCE6EFD5E2EBD4E2EBD2E0EDCEDEEBCCDCE9C9D9E6C7D9E7C6D8E6CBD9E6CAD8E5CAD8E5C9D7E4 C8D6E3C7D5E2C7D5E2C7D5E2CBD9E6CBD9E6CCDAE7CDDBE8CDDBE8CEDCE9CFDDEACFDDEACFDDEA CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACDDBE8CDDBE8CFDDEAD0DEEBD2E0EDD3E1EE D5E3F0D5E3F0D1DFECD0DEE9CFDDEACEDCE7CEDCE9CFDDE8D0DEEBD1DFEAD7E5F2D6E4EFD5E3F0 D4E2EDD2E0EDD1DFEAD0DEEBCFDDEACEDBEBCFDCEDCFDCEDD0DDEECFDCEDCDDAEBCBD8E9CAD7E8 C9D6E7C9D6E7CAD7E8CAD7E8CBD8E9CBD8E9CCD9EACCD9E9D4E1EAD6E0E9D7E1EAD8E2EBD9E3EC DAE4EDDAE4EDDBE5EEDFE9F2DFE9F2DFE9F2DFE9F2DFE9F2DFE9F2DFE9F2DFE9F2DDE6EDDEE7EE DFE8EFE0E9F0E0E9F0DFE8EFDEE7EEDDE6EDDDE6EDDCE5ECDBE4EBD9E2E9D8E1E8D6DFE6D5DEE5 D3DDE6D0DCE8CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEAD1DFECD1DFECD2E0EDD3E1EE D3E1EED4E2EFD5E3F0D6E2F0DAE2EFDCE2F0DEE4F0E0E6F2E2E9F3E4EBF5E6EDF5E6EDF5E4EBF1 E4EBF1E5EDF0E6EEF1E6EEF0E7EFF1E8F1F0E8F0F2E6EDF3E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF5E6EDF5E5ECF4E4EBF3E4EBF3E3EAF2E2E9F1E2E9F1E0E9F0E0E9F0E0E9F0 E0E9F0E0E9F0E0E9F0E0E9F0E0E9F0DEE7EEDEE7EEDEE7EEDEE7EEDEE7EEDEE7EEDEE7EEDEE7EE DDE7F0DDE7F0DCE6EFDBE5EEDAE4EDDAE4EDD9E3ECD9E3ECDAE4EDDAE4EDDAE4EDDAE4EDDAE4ED DAE4EDDAE4EDDAE4EDD4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D6E0E9D6E0E9 D6E0E9D7E1EAD7E1EAD8E2EBD8E2EBD8E2EBDAE3ECD9E2EBD7E0E9D6DFE8D6DFE8D7E0E9D9E2EB DAE3ECDAE3ECDAE3ECDAE3ECDAE3ECDAE3ECDAE3ECDAE3ECDAE3ECD9E2E9D9E2E9D9E2E9D9E2E9 D9E2E9D9E2E9D9E2E9D9E2E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5 B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B1D2E5 B2D1E5B1D2E5B2D1E5B1D2E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B3D4E7B3D4E7B5D4E8B6D5E9 B8D5E7B9D6E8BBD6E7BBD6E7BCD6E5BCD6E5BFD6E4C0D7E5C1D7E4C2D8E5C3D9E4C3D9E4C3D6E5 C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C4D7E6C4D7E6C5D8E7C6D9E8C7DAE9C8DBEA C8DBEACADBEBD0E0F0D0E0F0CFDFEFCEDEEECDDDEDCBDCECCADBEBC9DCEBC5D8E7C3D9E7C3D9E7 C3D9E7C2D9E7C2D9E7C0DAE7C2D9E7CADDEBC9DDE8C8DAE6C7D9E3CBDCE6D1DFE8D7E4EDDDE7F0 E6F0F9E9F2F9EEF5FDF3F8FEF5F8FFF4F7FCF4F5FAF3F4F9ECEFF4ECEFF4ECEFF4ECEFF4EDF0F5 EFF2F7F0F3F8F1F4F9F4F7FCF3F6FBF3F6FBF2F5FAF1F4F9F0F3F8F0F3F8F0F4F7F3F7F8F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F4F8F7F4F8F7F5F9F8F6FAF9F7FBFAF7FBFA F7FBFAFBFBFBFBFBFBFBFBFBFAFAFAF9F9F9F9F9F9F8F8F8F8F8F8F6F6F6F7F7F7F8F8F8F9F9F9 F9F9F9F8F8F8F7F7F7F5F7F6F5F7F6F3F7F6F2F6F5F2F6F5F1F5F4F0F4F3EFF3F2EFF3F2F1F5F4 F1F5F4F1F5F4F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5EEF2F5 EEF2F5EEF2F5EAEEF1EAEEF1EBEFF2EBEFF2EBEFF2EBEFF2ECF0F3ECF0F1F5F5F7F6F6F6F9F9F9 FBFBFBFDFDFDFDFDFDFEFEFEFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFDFDFDFCFCFCFAFAFAFAFAFAFBFBFBFCFCFCFDFDFDFCFCFCFCFCFCFCFCFCFBFBFBFAFAFA F9F9F9F9F9F9F7F9F8F3F7F6F1F7F5F0F6F4EEF4F2EDF3F3EBF1F1EAEFF2E9EEF2E8EDF1E8EDF3 E6EAF3E5E9F2E3E7F2E1E5F0E0E4EFDFE3EEE0E7EFE0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE3EB DCE3EBD9E0E8DAE1E9DBE2EADDE4ECDFE6EEE1E8F0E2E9F1E2EBF2E4EDF4E2EDF3E1ECF2DFEAF0 DDE8EEDBE6ECDAE5EBD9E4EAD8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9DAE4ED DAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DEE5EDDEE5EDDEE5ED DEE5EDDEE5EDDEE5EDDEE5EDDEE5EBE3E6EBE3E7EAE4E8EBE6EAEDE8ECEFE9EDF0EAEEF1EBEFF2 EEF2F5EEF2F5EEF2F5EEF2F5ECF0F3E9EDF0E7EBEEE4E9ECE4E9EFE2E9EFE1E8EEE0E7EDDFE8EF DEE7EEDCE6EFDCE6EFD5E2EBD3E1EAD1DFECCDDDEACADAE7C8D8E5C5D7E5C4D6E4CAD8E5C9D7E4 C9D7E4C8D6E3C7D5E2C6D4E1C6D4E1C5D3E0CBD9E6CBD9E6CCDAE7CDDBE8CDDBE8CEDCE9CFDDEA CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACDDBE8CDDBE8CFDDEAD0DEEB D2E0EDD3E1EED5E3F0D5E3F0CFDFECCEDEEBCDDDECCCDCE9CCDCEBCDDDEACEDEEDCFDFECD6E6F5 D5E5F2D4E4F3D2E2EFD0E0EFCEDEEBCDDDECCCDCEBC9D9E9CADAEACADAEACBDBEBCADAEAC8D8E8 C6D6E6C5D5E5C7D7E7C7D7E7C8D8E8C9D9E9CADAEACBDBEBCCDCECCEDBEBD6E3ECD8E2EBD9E3EC D9E3ECDAE4EDDBE5EEDBE5EEDBE5EEDDE7F0DDE7F0DDE7F0DDE7F0DDE7F0DDE7F0DDE7F0DDE7F0 DBE5EEDCE6EFDDE7F0DEE8F1DEE8F1DDE7F0DCE6EFDBE5EEDBE5EEDAE4EDD9E3ECD7E1EAD6E0E9 D4DEE7D3DDE6D2DCE6D1DDE9D0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD1DFECD1DFEC D2E0EDD3E1EED3E1EED4E2EFD5E3F0D6E2F0DFE7F4E0E6F4E1E7F3E2E8F4E3EAF4E4EBF5E5ECF4 E5ECF4E4EBF1E4EBF1E5EDF0E6EEF1E6EEF0E7EFF1E8F1F0E8F0F2E6EDF3E6EDF5E6EDF5E6EDF5 E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E5ECF4E4EBF3E4EBF3E3EAF2E2E9F1E2E9F1DFE8F1 DEE8F1DEE8F1DEE8F1DEE8F1DEE8F1DEE8F1DEE8F1DCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EF DCE6EFDCE6EFDCE6EFDCE6EFDBE5EEDBE5EEDAE4EDD9E3ECD8E2EBD8E2EBDAE4EDDAE4EDDAE4ED DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7 DAE4EDDAE4EDD9E3ECD9E3ECD8E2EBD8E2EBD7E1EAD7E1EADAE4EDD9E3ECD7E1EAD5DFE8D5DFE8 D7E1EAD9E3ECDAE4EDD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD7E1EAD5DFE8D5DFE8 D5DFE8D5DFE8D5DFE8D5DFE8D5DFE8D5DFE8BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5B2D1E5 B2D1E5B2D1E5B2D1E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B3D4E7B3D4E7 B5D4E8B6D5E9B8D5E7B9D6E8BBD6E7BBD6E7BCD6E5BCD6E5BFD6E4C0D7E5C1D7E4C2D8E5C3D9E4 C3D9E4C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C4D7E6C5D8E7C6D9E8C7DAE9 C8DBEAC9DCEBCADDECCBDCECD2E2F2D4E1F2D3E0F1D2DFF0D1DEEFCEDEEECDDDEDCCDDEDC6D7E7 C5D8E7C5D8E7C3D9E7C3D9E7C2D9E7C2D9E7C3D9E6CBDDE9CADBE5CBD9E4CBD9E2CFDCE5D5E2EA DDE7F0E2EBF2E8F1F8EBF2F8F0F5FBF3F8FCF5F8FDF3F7FAF3F4F8F2F3F7EBEFF2EAEDF2EAEDF2 EBEEF3ECEFF4EEF1F6F1F4F9F2F5FAF3F6FBF3F6FBF2F5FAF1F4F9F0F3F8F0F3F8EFF2F7EFF3F6 F3F7F8F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F4F8F7F4F8F7F5F9F8F6FAF9F7FBFA F7FBFAF8FCFBF8FCFBFEFEFEFDFDFDFCFCFCFBFBFBF9F9F9F8F8F8F7F7F7F6F6F6F4F4F4F5F5F5 F6F6F6F7F7F7F7F7F7F6F6F6F5F5F5F3F5F4F5F7F6F3F7F6F2F6F5F1F5F4F0F4F3F0F4F3EFF3F2 EFF3F2EEF2F1EEF2F1EEF2F1EEF2F1EFF3F2EFF3F2F0F4F3F0F4F3EFF3F6EFF3F6EFF3F6EFF3F6 EFF3F6EFF3F6EFF3F6EFF3F6EEF2F5EEF2F5EEF2F5EDF1F4EDF1F4ECF0F3ECF0F3ECF0F1F8F8FA F8F8F8F9F9F9FBFBFBFCFCFCFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFDFDFDFCFCFCFBFBFBFAFAFAFBFBFBFCFCFCFEFEFEFFFFFFFDFDFDFDFDFDFCFCFC FCFCFCFBFBFBFAFAFAF9F9F9F8FAF9F3F7F6F2F8F6F1F7F5EFF5F3EDF3F3ECF2F2EBF0F3EAEFF2 E9EEF2E8EDF1E7ECF2E5E9F2E3E7F0E1E5F0E0E4EFDFE3EEE0E7EFE0E7EFDFE6EEDEE5EDDEE5ED DDE4ECDCE3EBDCE3EBD9E0E8DAE1E9DBE2EADDE4ECDFE6EEE1E8F0E2E9F1E2EBF2E4EDF4E2EDF3 E1ECF2DFEAF0DDE8EEDBE6ECDAE5EBD9E4EAD8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9DAE4EDDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9 D6E0E9D6E0E9D6E0E9D6E0E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9DEE5ED DEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EBE3E6EBE4E8EBE5E9ECE6EAEDE8ECEFE9EDF0 EBEFF2EBEFF2EEF2F5EFF3F6EFF3F6EEF2F5ECF0F3E9EDF0E6EAEDE3E8EBE4E9EFE2E9EFE1E8EE E0E7EDDFE8EFDEE7EEDCE6EFDCE6EFD5E2EBD3E1EAD1DFECCCDCE9C9D9E6C7D7E4C4D6E4C3D5E3 C9D7E4C9D7E4C8D6E3C7D5E2C6D4E1C6D4E1C5D3E0C5D3E0CBD9E6CBD9E6CCDAE7CDDBE8CDDBE8 CEDCE9CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACDDBE8CDDBE8 CFDDEAD0DEEBD2E0EDD3E1EED5E3F0D5E3F0CFDFEECDDFEDCCDCEBCADCEACBDBEACBDDEBCEDEED CEE0EED6E6F5D4E6F4D4E4F3D1E3F1D0E0EFCDDFEDCDDDECCBDDEBC7D7E7C7D8E8C8D8E8C8D9E9 C8D8E8C5D6E6C4D4E4C2D3E3C7D7E7C7D8E8C9D9E9C9DAEACBDBEBCBDCECCDDDEDCDDDECD7E3EF D7E4ECD9E3EDD8E5EDDAE4EED9E6EEDBE5EFD9E6EEDDE7F1DAE7EFDCE6F0DAE7EFDCE6F0D9E6EE DBE5EFDBE5EEDAE4EDDBE5EEDDE7F0DDE7F0DDE7F0DDE7F0DBE5EEDAE4EDDAE4EDD9E3ECD8E2EB D7E1EAD5DFE8D3DDE6D2DCE5D0DDE6D1DFEAD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFEC D1DFECD1DFECD2E0EDD3E1EED3E1EED4E2EFD5E3F0D6E2F0E1E9F6E2E8F6E3E9F5E3E9F5E3EAF4 E4EBF5E4EBF3E4EBF3E4EBF1E4EBF1E5EDF0E6EEF1E6EEF0E7EFF1E8F1F0E8F0F2E6EDF3E6EDF5 E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E6EDF5E5ECF4E4EBF3E4EBF3E3EAF2E2E9F1 E1EAF1DEE8F1DEE8F1DEE8F1DEE8F1DEE8F1DEE8F1DEE8F1DEE8F1DCE6EFDCE6EFDCE6EFDCE6EF DCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDCE6EFDBE5EEDAE4EDD9E3ECD9E3ECD8E2EBD8E2EBDAE4ED DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDD3DDE6D3DDE6D4DEE7D4DEE7D4DEE7D4DEE7 D5DFE8D5DFE8DCE6EFDCE6EFDBE5EEDAE4EDD9E3ECD7E1EAD7E1EAD6E0E9DBE5EED9E3ECD7E1EA D5DFE8D5DFE8D7E1EAD9E3ECDBE5EED6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9D6E0E9 D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B4D1E3B4D1E3B4D1E3B4D1E3B4D1E3B4D1E3B4D1E3B4D1E3B6D3E5 B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B4D1E3B4D1E3B4D1E3B4D1E3B4D1E3B4D1E3 B4D1E3B4D1E3B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B4D3E7B4D3E7B4D3E7 B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B5D6E9B5D6E9B6D5E9B6D5E9B8D5E7B8D5E7B9D4E5B9D4E5BCD6E5BCD6E5BFD6E4BFD6E4C1D7E4 C2D8E5C3D9E4C3D9E4C3D6E5C3D6E5C4D7E6C4D7E6C5D8E7C6D9E8C7DAE9C7DAE9C4D7E6C4D7E6 C5D8E7C6D9E8C7DAE9C8DBEAC9DCEBCBDCECD3E0F0D4E0F0D3DFEFD2DFEFD1DEEECEDEEDCDDDEC CCDEECC7D9E7C6D9E7C5D8E6C4DAE7C5DBE8C7DDEACAE0EDCDE0EEC7D5E0CBD8E1D2DCE6D9E3EC DFE9F2E5EEF5E7F0F7EAF1F7EEF5FBF1F6FAF4F9FDF6FAFDF6FAFDF3F7F8F3F4F6F1F2F4EDF1F4 EDF1F4EEF2F5EEF2F5EFF3F6F0F4F7F1F5F8F1F5F8F8FCFFF7FBFEF7FBFEF5F9FCF4F8FBF3F7FA F2F6F9F2F6F9F3F7F8F4F8F7F4F8F7F5F9F8F6FAF9F7FBFAF8FCFBF8FCFBF9FDFCF9FDFCF9FDFC F9FDFCF9FDFCF9FDFCF9FDFCF9FDFCFCFCFCFCFCFCFBFBFBFAFAFAF9F9F9F9F9F9F8F8F8F8F8F8 F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F5F7F6F5F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7FAF3F7FA F2F6F9F1F5F8F0F4F7F0F4F7EFF3F6EFF3F6ECF0F3ECF0F3EBEFF2EBEFF2ECF0F3EDF1F4EFF3F6 F0F4F5FAFAFCFAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF FFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFBFDFCFAFFFBF9FEFAF7FCF8F4F9F5F2F6F5EFF3F2 EDF1F2ECF0F1EAEEF1EBEEF3EDF0F5EDF0F7EBEEF5E8EBF4E4E7F0E0E4EDDBE2EADBE2EADBE2EA DBE2EADCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDDE4ECDEE5EDDFE6EEE0E7EFE1E8F0E1EAF1 E4EDF4E2EDF3E1ECF2DFEAF0DDE8EEDBE6ECDAE5EBD9E4EADAE5EBDAE5EBDAE5EBDAE5EBDAE5EB DAE5EBDAE5EBDAE5EBDAE4EDDAE4EDD9E3ECD9E3ECD8E2EBD7E1EAD6E0E9D6E0E9D4DEE7D4DEE7 D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBDAE1E9DAE1E7DBE2E8DBE2E8DCE3E9DDE4EADEE5EB DEE5EBE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE2E5EAE4E8EBE7EBEEE9EDF0 EBEFF2ECF0F3ECF0F3ECF0F3EFF3F6EFF3F6EDF1F4ECF0F3EAEEF1E9EDF0E8ECEFE6EBEEE7ECF2 E4EBF1E2E9EFE0E7EDDCE5ECDAE3EAD7E1EAD6E0E9D1DEE7CEDCE5CAD8E5C5D5E2C4D4E1C5D5E2 C5D7E5C7D9E7D0DEEBCDDBE8C8D6E3C5D3E0C5D3E0C7D5E2CBD9E6CEDCE9CEDCE9CEDCE9CEDCE9 CFDDEACFDDEACFDDEAD0DEEBD0DEEBCDDBE8CEDCE9CFDDEAD0DEEBD0DEEBCFDDEACEDCE9CDDBE8 CEDCE9D0DEEBD2E0EDD3E1EED2E0EDCFDDEACCDAE7C8D8E5C8DAE8C7DAE9C9DAEAC9DCEBCBDCEC CADDECCCDDEDCBDEEDD1E2F2D1E4F3D3E4F4D1E4F3CFE0F0CADDECC6D7E7C2D5E4C5D6E6C4D7E6 C4D5E5C3D6E5C4D5E5C3D6E5C3D4E4C2D5E4C5D6E6C5D8E7C8D9E9CADDECCDDEEECFE2F1D2E3F3 D3E5F3D7E5F0D7E5EED8E4F0D7E5EED8E4F0D7E5EED8E4F0D7E5EED8E4F0D7E5EED8E4F0D7E5EE D8E4F0D7E5EED8E4F0D8E5EED6E3ECD6E3ECD6E3ECD6E3ECD6E3ECD6E3ECD6E3ECD6E3ECD2DFE8 D3E0E9D5E2EBD6E3ECD6E3ECD5E2EBD3E0E9D2DFE8D1DFEAD1DFECD1DFECD1DFECD1DFECD1DFEC D1DFECD1DFECCFDDEACFDDEAD0DEEBD2E0EDD4E2EFD5E3F0D6E4F1D8E4F2E3EBF8E4EAF8E5EBF7 E6ECF8E7EEF8E7EEF8E8EFF7E8EFF7E6EDF3E6EDF3E6EEF1E6EEF1E6EEF0E6EEF0E6EFEEE6EEF0 E8EFF5E8EFF7E7EEF6E7EEF6E6EDF5E5ECF4E4EBF3E4EBF3E4EBF3E4EBF3E3EAF2E3EAF2E2E9F1 E1E8F0E0E7EFDFE8EFDFE9F2DEEBF4DEEBF4DEEBF4DEEBF4DFECF5DFECF5DFECF5DFECF5DDEAF3 DAE7F0D8E5EED6E3ECD5E2EBD5E2EBD5E2EBD6E0E9D6E0E9D7E1EAD8E2EBD9E3ECD9E3ECDAE4ED DAE4EDDBE5EEDBE5EEDCE6EFDCE6EFDBE5EEDAE4EDD8E2EBD6E0E9D4DEE7D4DEE7D5DFE8D6E0E9 D6E0E9D7E1EAD8E2EBD8E2EBDAE4EDDAE4EDD9E3ECD9E3ECD8E2EBD7E1EAD6E0E9D6E0E9D6E3EB D6E3EBD6E3EBD6E3EBD6E3EBD6E3EBD6E3EBD6E3EBD6E3EBD6E3EBD5E2EAD5E2EAD4E1E9D3E0E8 D2DFE7D2DFE7D0DDE6D0DDE6D0DDE6D0DDE6D0DDE6D0DDE6D0DDE6D0DDE6BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B3D0E2B3D0E2B3D0E2B3D0E2B3D0E2B3D0E2B3D0E2 B3D0E2B5D2E4B5D2E4B5D2E4B5D2E4B5D2E4B5D2E4B5D2E4B5D2E4B4D1E3B4D1E3B4D1E3B4D1E3 B4D1E3B4D1E3B4D1E3B4D1E3B5D2E4B5D2E4B5D2E4B5D2E4B5D2E4B5D2E4B5D2E4B5D2E4B4D3E7 B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B5D6E9B5D6E9B6D5E9B6D5E9B8D5E7B8D5E7B9D4E5B9D4E5BCD6E5BCD6E5BFD6E4 C0D7E5C2D8E5C2D8E5C3D9E4C3D9E4C3D6E5C4D7E6C4D7E6C5D8E7C6D9E8C7DAE9C7DAE9C8DBEA C6D9E8C6D9E8C7DAE9C8DBEAC9DCEBCADDECCADDECCCDDEDD3E0F0D4E0EED3DFEFD2DEECD0DDED D0DEEBCDDDECCDDDEAC9D9E8C7D9E5C7D9E7C6DAE5C7DAE8C9DDE8CBDEECCDDFEBCBD8E1D2DBE4 D8DFE9DEE5EDE4EBF3E8EFF5EBF2F8EEF3F7F3F8FCF4F9FCF7FBFEF7FBFCF6FAFBF4F8F7F3F5F4 F1F3F2EDF1F2EEF2F3EEF2F5EFF3F4F0F4F7F1F5F6F1F5F8F2F6F7F8FCFFF7FBFCF7FBFEF6FAFB F5F9FCF4F8F9F3F7FAF3F7F8F4F8F7F4F8F7F5F9F8F6FAF9F7FBFAF8FCFBF8FCFBF9FDFCF9FDFC F9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAF9F9F9 F8F8F8F8F8F8F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F5F7F6F5F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F4F8FBF3F7FAF3F7FAF2F6F9F1F5F8F0F4F7F0F4F7EFF3F6EDF1F4EDF1F4ECF0F3ECF0F3ECF0F3 EEF2F5F0F4F7F1F5F6FAFAFCFAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFCFCFCFCFEFBF9FEFAF9FBF8F5FAF6 F4F6F5F0F4F3F0F1F3EDF1F2EDEEF2ECF0F3EFF0F5EDF0F5EDEDF5E8EBF2E7E7F1E3E6EFDFE3EC DDE4ECDDE4ECDDE4ECDEE5EDDEE5EDDEE5EDDEE5EDDDE4ECDDE4ECDEE5EDDFE6EEE0E7EFE1E8F0 E2E9F1E1EAF1E3ECF3E2EDF3E0EBF1DFEAF0DDE8EEDBE6ECDAE5EBD9E4EADAE5EBDAE5EBDAE5EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE4EDDAE4EDD9E3ECD8E2EBD7E1EAD7E1EAD6E0E9D6E0E9 D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E3E9DAE1E7DBE2E8DBE2E8DCE3E9DDE4EA DEE5EBDEE5EBDFE6ECE1E8EEE1E8EEE1E8EEE1E8EEE1E8EEE1E8EEE1E8EEE1E9ECE4E8EBE6EAED E8ECEFEBEFF2EDF1F4EDF1F4EDF1F4EDF1F4EFF3F6EEF2F5EDF1F4ECF0F3EAEEF1E8ECEFE7EBEE E6EBEEE5EAF0E2E9EFE0E7EDDEE5EBDBE4EBD8E1E8D6E0E9D5DFE8D0DDE6CDDBE4CAD8E5C6D6E3 C6D6E3C7D7E4C8DAE8C9DBE9CEDCE9CCDAE7C8D6E3C6D4E1C6D4E1C9D7E4CDDBE8D0DEEBCFDDEA CFDDEACFDDEACFDDEACFDDEACFDDEAD0DEEBD0DEEBCEDCE9CFDDEAD1DFECD2E0EDD2E0EDD1DFEC CFDDEACEDCE9CEDCE9CFDDEAD1DFECD2E0EDD1DFECCFDDEACCDAE7C8D8E7C8D9E9C7DAE9C8DBEA C8DBEAC9DCEBCADDECCBDEEDCBDEEDCFE2F1D0E3F2D0E3F2CFE2F1CDE0EFC9DCEBC5D8E7C2D5E4 C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C3D6E5C4D7E6C5D8E7C7DAE9C9DCEBCCDFEE CEE1F0D0E3F2D1E4F2D4E4F1D4E5EFD6E4F1D4E5EFD6E4F1D4E5EFD6E4F1D4E5EFD6E4F1D4E5EF D6E4F1D4E5EFD6E4F1D4E5EFD6E4F1D6E4EFD5E3EED5E3ECD6E2EED5E3ECD6E2EED5E3ECD6E2EE D5E3ECD2DEEAD2E0E9D4E0ECD4E2EBD5E1EDD3E1EAD3DFEBD1DFEAD1DFECD1DFECD1DFECD1DFEC D1DFECD1DFECD1DFECD1DFECD0DEEBD1DFECD2E0EDD3E1EED5E3F0D6E4F1D8E6F3D9E5F3E3EBF8 E4EAF8E5EBF7E5EBF7E6EDF7E7EEF8E8EFF7E8EFF7E6EDF3E6EDF3E6EEF1E6EEF1E6EEF0E6EEF0 E6EFEEE6EEF0E8EFF5E7EEF6E7EEF6E6EDF5E5ECF4E4EBF3E4EBF3E3EAF2E4EBF3E4EBF3E3EAF2 E2E9F1E1E8F0E1E8F0E0E7EFDFE8F1DDEAF3DCEAF3DDE9F5DCEAF3DDE9F5DCEAF3DEEAF6DDEBF4 DDE9F5DBE9F2D9E5F1D6E4EDD5E1EDD3E1EAD4E0ECD4E1EAD6E0E9D6E0E9D7E1EAD7E1EAD8E2EB D9E3ECDAE4EDDAE4EDDAE4EDDBE5EEDCE6EFDCE6EFDBE5EED9E3ECD7E1EAD6E0E9D4DEE7D4DEE7 D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBDAE4EDDAE4EDD9E3ECD8E2EBD7E1EAD7E1EAD6E0E9 D6E0E9D6E3EBD5E4EBD6E3EBD5E4EBD6E3EBD5E4EBD6E3EBD5E4EBD6E3EBD4E3EAD5E2EAD3E2E9 D3E0E8D1E0E7D2DFE7D0DFE6D0DDE6CFDDE6D0DCE8CFDDE6D0DCE8CFDDE6D0DCE8CFDDE6BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EAB9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B3D0E2B4CFE0B4CFE0B4CFE0B4CFE0 B4CFE0B4CFE0B4CFE0B6D1E2B6D1E2B6D1E2B6D1E2B6D1E2B6D1E2B6D1E2B6D1E2B5D0E1B5D0E1 B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1 B4D1E3B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D7EAB6D7EAB7D6EAB7D6EAB9D6E8B9D6E8BAD5E6BAD5E6BDD7E6 BDD7E6C0D7E5C0D7E5C2D8E5C3D9E6C4DAE5C4DAE5C5D8E7C5D8E7C5D8E7C6D9E8C7DAE9C8DBEA C8DBEAC9DCEBC9DCEBC9DCEBCADDECCADDECCBDEEDCCDFEECCDFEECDDFEDD2E0EDD3DFEBD2DEEC D2DEEAD0DEEBCFDDE8CEDCE9CCDDE7CADAE7C9DAE4C8D8E5C7D9E3C8DAE6C9DBE5CBDDE9CDDEE8 D5DEE7DBDFE8E0E4EDE6EBF1EBF0F6EEF3F9F0F5F9F2F6F9FAFEFFFAFEFFFAFEFFF9FDFCF7FBFA F4F9F5F1F6F2EFF3F2EFF3F2EFF3F2EFF3F4F0F4F3F1F5F6F2F6F5F2F6F7F3F7F6F7FBFCF7FBFA F7FBFCF6FAF9F5F9FAF5F9F8F4F8F9F4F8F7F5F9F8F6FAF9F6FAF9F7FBFAF8FCFBF8FCFBF9FDFC F9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCFDFDFDFDFDFDFCFCFCFBFBFB FAFAFAFAFAFAF9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F7F9F8F7F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7 F4F8F7F4F8F7F5F9FCF4F8FBF4F8FBF3F7FAF2F6F9F1F5F8F1F5F8F1F5F8EFF3F6EEF2F5EEF2F5 EDF1F4EEF2F5F0F4F7F2F6F9F3F7F8FAFAFCFAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFE FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFCFCFAFDFEF9FBFDF8 FAFBF6F7F9F4F6F6F4F3F5F2F2F2F2F0F2F1F0F0F2EFF0F2F1F0F5EFF0F4EFEEF4EBECF1E9E8F0 E7E7EFE3E7F0E1E8F0E1E8F0E1E8F0E1E8F0E0E7EFE0E7EFE0E7EFDFE6EEDFE6EEE0E7EFE0E7EF E1E8F0E1E8F0E2E9F1E1EAF1E2EBF2E0EBF1DFEAF0DEE9EFDCE7EDDBE6ECDAE5EBD9E4EADAE5EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBD9E3ECD9E3ECD8E2EBD8E2EBD7E1EAD6E0E9 D5DFE8D5DFE8D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E3E9DCE3E9DCE4E7DCE4E7 DDE5E8DEE6E9DFE7EADFE7EAE0E8EBE4ECEFE4ECEFE4ECEFE4ECEFE4ECEFE4ECEFE4ECEFE4ECEF E7EBEEE8ECEFEBEFF2EDF1F4EEF2F5EFF3F6EEF2F5EEF2F5EEF2F5EEF2F5EDF1F4EBEFF2E9EDF0 E8ECEFE7EBEEE5EAEDE3E8EEE0E7EDDFE6ECDCE3E9D9E2E9D7E0E7D4DEE7D3DDE6CEDBE4CDDBE4 CBD9E6C9D9E6C9D9E6CBDBE8CCDEECCDDFEDCCDAE7CBD9E6C9D7E4C8D6E3C9D7E4CDDBE8D0DEEB D3E1EED0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD0DEEBCFDDEACFDDEAD0DEEBD1DFECD3E1EED4E2EF D4E2EFD3E1EED1DFECD0DEEBCEDCE9CFDDEAD0DEEBD0DEEBD0DEEBCEDCE9CCDAE7C8D8E7C6D9E8 C4D9EAC5DAEBC6DBECC7DCEDC7DCEDC8DDEEC8DDEECCE1F2CCE1F2CCE1F2CBE0F1C9DEEFC5DAEB C2D7E8C0D5E6C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C2D8E6C3D9E7C5DBE9 C7DDEBC9DFEDCBE1EFCDE3F1D0E3F2D2E4F2D2E4F0D3E3F2D2E4F0D3E3F2D2E4F0D3E3F2D2E4F0 D3E3F2D2E4F0D3E3F2D2E4F0D3E3F2D2E4F0D3E3F2D3E3F0D1E1EED1E2ECD3E1EED1E2ECD3E1EE D1E2ECD3E1EED1E2ECD1DFECD0E1EBD3E1EED2E3EDD4E2EFD1E2ECD2E0EDD1DFECD1DFECD1DFEC D1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD2E0EDD2E0EDD4E2EFD5E3F0D7E5F2D8E6F3D9E7F4 DBE7F5E2EAF7E3E9F7E4EAF6E5EBF7E6EDF7E6EDF7E7EEF6E7EEF6E5ECF2E5ECF2E5EDF0E5EDF0 E5EDEFE5EDEFE5EEEDE5EDEFE6EDF3E6EDF5E6EDF5E5ECF4E4EBF3E3EAF2E3EAF2E2E9F1E3EAF2 E3EAF2E2E9F1E2E9F1E1E8F0E0E7EFDFE6EEDEE7F0DCE8F4D9EAF4DBE9F6D9EAF4DAE8F5D8E9F3 DAE8F5D8E9F3DAE8F5D6E7F1D6E4F1D2E3EDD2E0EDD0E1EBD2E0EDD2E0EBD3E0E9D5DFE8D6E0E9 D7E1EAD8E2EBD8E2EBD9E3ECD9E3ECDAE4EDDAE4EDDBE5EEDBE5EEDAE4EDD9E3ECD7E1EAD5DFE8 D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBD9E3ECD9E3ECD8E2EBD8E2EBD7E1EA D6E0E9D5DFE8D3E0E8D3E2E9D1E2E9D3E2E9D1E2E9D3E2E9D1E2E9D3E2E9D1E2E9D3E2E9D1E2E9 D3E2E9D0E1E8D1E0E7CEDFE6D0DFE6CDDEE6CDDBE6CBDCE6CDDBE8CBDCE6CDDBE8CBDCE6CDDBE8 CBDCE6BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBB9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B8D5E7B4CFE0B4CFE0B4CFE0 B4CFE0B4CFE0B4CFE0B4CFE0B4CFE0B6D1E2B6D1E2B6D1E2B6D1E2B6D1E2B6D1E2B6D1E2B6D1E2 B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B5D0E1B4CFE0B4CFE0B4CFE0B4CFE0B4CFE0 B4CFE0B4CFE0B4CFE0B6D3E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B7D8EBB7D8EBB8D7EBB8D7EBBAD7E9BAD7E9BBD6E7 BBD6E7BED8E7BED8E7C0D7E5C1D8E6C3D9E6C4DAE7C4DAE5C5DBE6C6D9E8C6D9E8C7DAE9C8DBEA C9DCEBC9DCEBCADDECCADDECCCDFEECCDFEECDE0EFCDE0EFCDE0EFCDE0EFCDE0EFCEE0EED1DFEC D2DEEAD2DEEAD1DDE9CFDDE8CEDCE7CEDCE7CDDBE6CDDBE6CADBE5CBD9E4CBD9E4CCDAE5CEDCE7 CEDFE9D2DFE8E0E4EFE5E5EDEAEAF2EFEFF7F3F3FBF4F7FCF7F8FCF6FAFBFCFFFFFCFFFFFCFFFF F9FEFAF6FBF7F3F8F4F1F6F2EFF4F0F0F4F3F0F4F3F1F5F4F2F6F5F3F7F6F3F7F6F4F8F7F4F8F7 F7FBFAF7FBFAF7FBFAF7FBFAF6FAF9F6FAF9F6FAF9F6FAF9F7FBFAF7FBFAF8FCFBF8FCFBF9FDFC F9FDFCFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFEFEFEFDFDFD FDFDFDFCFCFCFBFBFBFAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9 F8FAF9F8FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F6FAFDF6FAFDF5F9FCF5F9FCF4F8FBF3F7FAF2F6F9F2F6F9F1F5F8 F1F5F8F0F4F7F0F4F7F1F5F8F2F6F9F4F8FBF5F9FAFAFAFCFAFAFAFBFBFBFCFCFCFCFCFCFDFDFD FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFCFCFA FCFDF8FCFDF7FAFBF6F9FAF5F7F7F5F5F5F3F4F4F4F3F3F3F3F3F5F2F2F4F2F1F6F1F0F5EFEEF4 EDECF2EBEAF2E9E9F1E7EBF4E5ECF4E4EBF3E4EBF3E3EAF2E3EAF2E2E9F1E2E9F1E1E8F0E1E8F0 E1E8F0E1E8F0E1E8F0E1E8F0E2E9F1E1EAF1E0E9F0DFEAF0DEE9EFDDE8EEDCE7EDDBE6ECDAE5EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBD8E2EBD8E2EBD8E2EBD7E1EA D6E0E9D5DFE8D5DFE8D4DEE7D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E3E9DDE4EA DDE5E8DEE6E9DFE7EAE0E8EBE0E8EBE1E9ECE1E9ECE6EEF1E6EEF1E6EEF1E6EEF1E6EEF1E6EEF1 E6EEF1E6EEF1E9EDF0EAEEF1ECF0F3EEF2F5EFF3F6EFF3F6EFF3F6EEF2F5EEF2F5EDF1F4ECF0F3 EAEEF1E9EDF0E7EBEEE6EAEDE4E9ECE2E7EDDFE6ECDDE4EADBE2E8D7E0E7D5DEE5D2DCE5D1DBE4 CEDBE4CDDBE4CEDCE9CCDCE9CEDEEBCFDFECCFE1EFD0E2F0CBD9E6CAD8E5CAD8E5CBD9E6CDDBE8 D0DEEBD3E1EED5E3F0D2E0EDD2E0EDD1DFECD1DFECD0DEEBD0DEEBCFDDEACFDDEAD2E0EDD3E1EE D4E2EFD5E3F0D5E3F0D4E2EFD3E1EED2E0EDCFDDEACFDDEACFDDEACEDCE9CEDCE9CCDAE7CBD9E6 C9D9E8C5D8E7C4D9EAC4D9EAC5DAEBC6DBECC7DCEDC7DCEDC7DCEDCADFF0CADFF0C9DEEFC8DDEE C6DBECC4D9EAC2D7E8C1D6E7BFD5E3C0D6E4C0D6E4C1D7E5C1D7E5C2D8E6C2D8E6C3D9E7C3D9E7 C3D9E7C5DBE9C6DCEAC8DEECCAE0EECBE1EFCCE2F0CEE1F0CEE1EFCFE0F0CEE1EFCFE0F0CEE1EF CFE0F0CEE1EFCFE0F0CEE1EFCFE0F0CEE1EFCFE0F0CEE1EFCFE0F0CFE1EFD0E0EDD0E0EDD0E0ED D0E0EDD0E0EDD0E0EDD0E0EDD0E0EDCEDEEBCFDFECD0E0EDD1E1EED1E1EED0E0EDCFDFECCEDEEB D1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD3E1EED4E2EFD5E3F0D6E4F1D8E6F3 DAE8F5DBE9F6DCE8F6E1E9F6E3E9F7E3E9F5E4EAF6E5ECF6E6EDF7E6EDF5E6EDF5E4EBF1E4EBF1 E4ECEFE4ECEFE4ECEEE4ECEEE4EDECE4ECEEE5ECF2E5ECF4E4EBF3E3EAF2E2E9F1E2E9F1E1E8F0 E1E8F0E2E9F1E2E9F1E2E9F1E1E8F0E0E7EFDFE6EEDFE6EEDDE6EFDAE8F3D8E8F5D7E7F4D7E7F4 D6E6F3D5E5F2D5E5F2D5E5F2D5E5F2D3E3F0D1E1EECFDFECCEDEEBCEDEEBCFDFECD1DFEAD2DFE8 D5DFE8D5DFE8D6E0E9D7E1EAD8E2EBD8E2EBD8E2EBD9E3ECD9E3ECDAE4EDDAE4EDDAE4EDD8E2EB D6E0E9D5DFE8D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBD8E2EBD8E2EBD8E2EB D7E1EAD6E0E9D5DFE8D5DFE8D2DFE7D2E1E8D0E1E8D0E1E8D0E1E8D0E1E8D0E1E8D0E1E8D0E1E8 D0E1E8D0E1E8CFE0E7CEDFE6CDDEE5CDDEE5CCDDE4CCDDE5CADBE5CADAE7CADAE7CADAE7CADAE7 CADAE7CADAE7CADAE7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBB9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B8D5E7B6D1E2 B7D1E0B7D1E0B7D1E0B7D1E0B7D1E0B7D1E0B7D1E0B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2 B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B6D0DFB6D0DFB6D0DF B6D0DFB6D0DFB6D0DFB6D0DFB5D0E1B6D3E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B7D8EBB7D8EBB8D7EBB8D7EBBAD7E9 BAD7E9BBD6E7BBD6E7BED8E7BFD9E8C1D8E6C2D9E7C4DAE7C5DBE8C5DBE6C5DBE6C8DBEAC8DBEA C9DCEBC9DCEBCADDECCBDEEDCCDFEECCDFEECEE1F0CEE1F0CEE1F0CEE1F0CEE1F0CDE0EFCDE0EF CEE0EECFE0EAD0DEE7D0DEE7CFDDE6CEDCE5CDDBE4CDDBE4CDDBE4CEDCE5CDDBE4CEDBE4CFDCE5 D0DDE6D3E0E9D5E2EBDAE3ECE8EBF4EDECF4F1F0F8F5F4FAF8F7FDF9FAFEFBFAFFFAFBFDFEFFFF FEFFFFFDFFFEFAFCF9F5FAF6F3F8F2F1F6F0F1F6F0F2F7F3F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8 F6FAF9F6FAF9F7FBFAF7FBFAF7FBFAF7FBFAF8FCFBF8FCFBF8FCFBF8FCFBF9FDFCF9FDFCF9FDFC F9FDFCFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFD FEFEFEFEFEFEFEFEFEFDFDFDFCFCFCFBFBFBFBFBFBFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB FBFBFBFBFBFBFAFCFBFAFCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F8FCFFF8FCFFF7FBFEF6FAFDF5F9FCF5F9FCF4F8FB F4F8FBF4F8FBF3F7FAF2F6F9F2F6F9F3F7FAF5F9FCF7FBFEF8FCFDFAFAFCFAFAFAFBFBFBFCFCFC FCFCFCFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFD FCFCFCFCFCFAFCFDF7FBFCF4FAFBF5F9FAF4F8F9F4F6F7F2F5F5F3F5F5F3F6F6F6F5F5F5F3F3F5 F1F1F3EFEEF3EEEDF2EEEDF3ECECF4EAEEF7E7EEF6E7EEF6E6EDF5E5ECF4E4EBF3E3EAF2E2E9F1 E2E9F1E2E9F1E1E8F0E1E8F0E1E8F0E1E8F0E1E8F0E0E9F0DEE7EEDDE8EEDCE7EDDCE7EDDBE6EC DBE6ECDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBD8E2EBD7E1EA D7E1EAD6E0E9D5DFE8D4DEE7D4DEE7D4DEE7D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EB D8E3E9DFE7EADFE7E9E0E8EAE0E8EAE1E9EBE2EAECE3EBEDE3EBEDE7EFF1E7EFF1E7EFF1E7EFF1 E7EFF1E7EFF1E7EFF1E7EFF1EAEEF1EBEFF2EDF1F4EFF3F6EFF3F6EFF3F6EEF2F5EDF1F4EDF1F4 ECF0F3EBEFF2E9EDF0E8ECEFE6EAEDE5E9ECE3E8EBE2E7EDDFE6ECDDE4EADBE2E8D7E0E7D5DEE5 D2DCE5D1DBE4D0DDE6D0DEE7D1DFECD0E0EDD2E2EFD2E2EFD2E4F2D2E4F2CCDAE7CCDAE7CDDBE8 CEDCE9D0DEEBD3E1EED5E3F0D6E4F1D4E2EFD4E2EFD3E1EED2E0EDD1DFECD0DEEBCFDDEACFDDEA D2E0EDD3E1EED4E2EFD5E3F0D5E3F0D4E2EFD3E1EED2E0EDCFDDEACFDDEACEDCE9CCDAE7CCDAE7 CBD9E6CBD9E6C9D9E8C3D8E9C2D9EBC2D9EBC3DAECC4DBEDC5DCEEC5DCEEC6DDEFC7DEF0C6DDEF C5DCEEC3DAECC2D9EBC1D8EAC0D7E9C0D7E7BDD4E2BED5E3BFD6E4BFD6E4C1D8E6C1D8E6C2D9E7 C3DAE8C2D9E7C3DAE8C4DBE9C5DCEAC6DDEBC8DFEDC9E0EECAE0EECAE0EECAE0EECCDFF0CAE0EE CCDFF0CAE0EECCDFF0CAE0EECCDFF0CAE0EECCDFF0CAE0EECCDFF0CAE0EECCDFF0CCDFEECDDFED CEDEEBCEDEEBCEDEEBCEDEEBCEDEEBCEDEEBCEDEEBCDDDEACEDEEBCFDFECD0E0EDD0E0EDCFDFEC CEDEEBCDDDEAD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD3E1EED4E2EFD5E3F0 D6E4F1D8E6F3DAE8F5DBE9F6DCE8F6E1E9F6E2E8F6E2E8F4E3E9F5E4EBF5E5ECF6E5ECF4E6EDF5 E4EBF1E4EBF1E4ECEFE4ECEFE4ECEEE4ECEEE4EDECE4ECEEE3EAF0E3EAF2E2E9F1E2E9F1E1E8F0 E0E7EFDFE6EEDFE6EEE2E9F1E1E8F0E1E8F0E0E7EFDFE6EEDEE5EDDEE5EDDDE6EFD8E6F1D6E6F3 D5E5F2D4E4F1D3E3F0D2E2EFD2E2EFD1E1EED1E1EED0E0EDCEDEEBCCDCE9CCDCE9CCDCE9CDDDEA D0DEE9D2DFE8D4DEE7D4DEE7D5DFE8D6E0E9D7E1EAD7E1EAD8E2EBD8E2EBD9E3ECD9E3ECDAE4ED D9E3ECD7E1EAD5DFE8D4DEE7D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E2EBD8E2EB D7E1EAD7E1EAD6E0E9D5DFE8D4DEE7D4DEE7D2DFE7D0DFE6CEDFE6CEDFE6CEDFE6CEDFE6CEDFE6 CEDFE6CEDFE6CEDFE6CEDFE6CDDEE5CDDEE5CCDDE4CBDCE3CADBE2CADBE3C8D9E3C8D8E5C8D8E5 C8D8E5C8D8E5C8D8E5C8D8E5C8D8E5BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BED9ECBED9ECBED9ECBED9ECBED9EC BED9ECBED9ECBED9ECB9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7B8D4E9B6D5E9 B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B8D5E7B8D3E4B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2B9D3E2BBD5E4BBD5E4BBD5E4BBD5E4 BBD5E4BBD5E4BBD5E4BBD5E4BDD7E6BDD7E6BDD7E6BDD7E6BDD7E6BDD7E6BDD7E6BDD7E6B8D2E1 B8D2E1B8D2E1B8D2E1B8D2E1B8D2E1B8D2E1B7D2E3B6D3E5B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7 B4D3E7B4D3E7B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B8D9ECB8D9ECB9D8EC B9D8ECBBD8EABBD8EABCD7E8BCD7E8BFD9E8BFD9E8C2D9E7C3DAE8C5DBE8C5DBE8C6DCE7C6DCE7 C9DCEBCADDECCADDECCBDEEDCCDFEECDE0EFCDE0EFCDE0EFCFE2F1CFE2F1CEE1F0CDE0EFCDE0EF CCDFEECCDFEECBDEECCDDFE9CEDFE7CFDDE6CEDCE5CDDBE4CDDBE4CCDAE3CCDAE3CFDCE5CFDCE5 D0DDE6D4DEE8D7E1EBDBE5EFDFE9F3E3EAF4F0EEF9F3F0F7F6F3FAF9F6FDFBF9FEFCFBFFFCFCFE FCFCFCFFFFFFFDFFFCFAFCF9F7F9F4F3F8F2F2F7F1F2F7F0F2F7F1F3F8F4F4F8F7F4F8F7F5F9F8 F6FAF9F7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF8FCFBF9FDFCF9FDFCFAFEFDFAFEFDFBFFFE FBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFE FBFFFEFBFFFEFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFBFBFBFBFBFBFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFBFDFCFBFDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFC F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F9FDFFF9FDFFF9FDFFF8FCFFF7FBFE F6FAFDF6FAFDF5F9FCF6FAFDF5F9FCF5F9FCF4F8FBF5F9FCF7FBFEF9FDFFFAFEFFFAFAFCFAFAFA FBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFE FEFEFEFDFDFDFCFCFCFCFCFAFCFDF7FBFCF4FBFCF6FAFBF5F9FAF5F8F9F4F7F7F5F7F7F5F8F8F8 F7F7F7F4F4F6F1F1F3F0EFF4EFEEF3F0EFF5EFF0F5EBF0F6E8EFF7E7EEF6E6EDF5E5ECF4E3EAF2 E2E9F1E2E9F1E2E9F1E2E9F1E1E8F0E1E8F0E0E7EFE0E7EFDFE6EEDEE7EEDCE5ECDBE6ECDBE6EC DBE6ECDBE6ECDBE6ECDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EB D7E1EAD7E1EAD6E0E9D5DFE8D4DEE7D4DEE7D3DDE6D3DDE6D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9 D7E1EAD8E2EBD8E3E9E0E8EBE1E9EBE1E9EBE2EAECE3EBEDE4ECEEE4ECEEE4ECEEE6EEF0E6EEF0 E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0EAEEF1EBEFF2ECF0F3EDF1F4EEF2F5EDF1F4ECF0F3 EBEFF2ECF0F3EBEFF2EAEEF1E9EDF0E7EBEEE5E9ECE4E8EBE3E8EBE3E8EEE0E7EDDFE6ECDCE3E9 D9E2E9D7E0E7D4DEE7D3DDE6D3E0E9D3E1EAD5E3F0D5E5F2D5E5F2D5E5F2D2E4F2D2E4F2CEDCE9 CFDDEAD0DEEBD1DFECD3E1EED4E2EFD5E3F0D5E3F0D6E4F1D5E3F0D4E2EFD3E1EED1DFECD0DEEB CFDDEACEDCE9D0DEEBD1DFECD3E1EED4E2EFD4E2EFD3E1EED1DFECD0DEEBD0DEEBCEDCE9CCDAE7 CAD8E5CAD8E5CAD8E5CBD9E6CADAE9C2D7E8C1D8EAC2D9EBC2D9EBC3DAECC4DBEDC5DCEEC5DCEE C5DCEEC4DBEDC2D9EBC0D7E9BFD6E8BFD6E8C0D7E9C0D7E7BCD3E3BDD4E2BED5E3BFD6E4C1D8E6 C2D9E7C3DAE8C4DBE9C2D9E7C3DAE8C3DAE8C4DBE9C5DCEAC6DDEBC7DEECC7DEECC6DDEDC6DDED C7DCEFC6DDEDC7DCEFC6DDEDC7DCEFC6DDEDC7DCEFC6DDEDC7DCEFC6DDEDC7DCEFC6DDEDC7DCEF C7DCEDCCDEECCDDDEACDDDEACDDDEACDDDEACDDDEACDDDEACDDDEACCDCE9CDDDEACEDEEBCFDFEC CFDFECCEDEEBCDDDEACCDCE9D1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD2E0ED D2E0EDD4E2EFD5E3F0D7E5F2D8E6F3D9E7F4DBE7F5E0E8F5E1E7F5E2E8F4E2E8F4E3EAF4E4EBF5 E5ECF4E5ECF4E3EAF0E3EAF0E3EBEEE3EBEEE3EBEDE3EBEDE3ECEBE3EBEDE2E9EFE1E8F0E1E8F0 E0E7EFDFE6EEDEE5EDDEE5EDDEE5EDE1E8F0E1E8F0E0E7EFDFE6EEDEE5EDDEE5EDDDE4ECDCE5EE D7E5F0D5E5F2D4E4F1D2E2EFD1E1EECFDFECCEDEEBCEDEEBCEDEEBCDDDEACBDBE8CADAE7CADAE7 CBDBE8CCDCE9CFDDE8D1DEE7D3DDE6D4DEE7D4DEE7D5DFE8D6E0E9D7E1EAD7E1EAD7E1EAD8E2EB D9E3ECD9E3ECD8E2EBD6E0E9D4DEE7D3DDE6D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EB D8E2EBD7E1EAD7E1EAD6E0E9D5DFE8D4DEE7D4DEE7D3DDE6D1DEE6CFDEE5CDDEE5CDDEE5CDDEE5 CDDEE5CDDEE5CDDEE5CDDEE5CDDEE5CCDDE4CCDDE4CBDCE3CADBE2C9DAE1C9DAE1C9DAE2C7D8E2 C7D7E4C7D7E4C7D7E4C7D7E4C7D7E4C7D7E4C7D7E4BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BFDAEDBFDAEDBFDAED BFDAEDBFDAEDBFDAEDBFDAEDBFDAEDB9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7 B8D4E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9 B6D5E9B6D5E9B8D5E7BBD6E7BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5BED8E7BED8E7 BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9 C0DAE9BBD5E4BBD5E4BBD5E4BBD5E4BBD5E4BBD5E4BBD5E4BAD5E6B6D3E5B4D3E7B4D3E7B4D3E7 B4D3E7B4D3E7B4D3E7B4D3E7B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B6D5E9B9DAED B9DAEDBAD9EDBAD9EDBCD9EBBCD9EBBDD8E9BDD8E9C0DAE9C0DAE9C3DAE8C3DAE8C5DBE8C6DCE9 C7DDE8C7DDE8CADDECCBDEEDCBDEEDCCDFEECDE0EFCEE1F0CEE1F0CFE2F1CEE1F0CEE1F0CDE0EF CCDFEECBDEEDCADDECCADDECC9DCEACCDEE8CCDFE6CCDDE5CCDDE5CBDCE4CADBE3CBD9E2CBD9E2 CEDBE4D1DBE5D3DDE7D8E0EBDDE5F0E2EAF5E7EFFAEDF1FCF3F2FAF7F2F9FAF5FCFAF8FDFCFAFF FDFBFFFDFBFEFCFCFCFDFDFDFBFBF9F7F9F6F4F6F1F1F6F0F1F6EFF3F8F1F4F9F3F4F9F5F5FAF6 F5FAF6F6FBF7F7FCF8F8FDF9F8FDF9F9FEFAF6FBF7F7FCF8F7FCF8F8FDF9F9FEFAFAFFFBFBFFFC FBFFFCFCFFFFFCFFFFFCFFFFFCFFFFFCFFFFFCFFFFFCFFFFFBFFFEFBFFFEFBFFFEFBFFFEFBFFFE FBFFFEFBFFFEFBFFFEFBFFFEFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFDFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFE FBFFFEFBFFFEF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAFBFFFFFAFEFFFAFEFF F9FDFFF8FCFFF7FBFEF7FBFEF6FAFDF8FCFFF7FBFEF6FAFDF6FAFDF7FBFEF9FDFFFBFFFFFCFFFF FAFAFCFAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF FFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFCFCFAFCFBF6FCFCF4FCFCF4FBFBF3FAF9F4FAF9F5F9F8F6 F9F8F6FBF9FAF9F7F8F6F4F7F3F1F4F1EFF4F1EFF4F2F0F5F2F1F7EBF0F6E8EFF7E7EEF6E5ECF4 E4EBF3E2E9F1E1E8F0E0E7EFE2E9F1E2E9F1E1E8F0E0E7EFDFE6EEDEE5EDDDE4ECDCE5ECDBE4EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDBE6ECDBE6ECDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EB DAE5EBDAE5EBD6E0E9D6E0E9D5DFE8D5DFE8D4DEE7D3DDE6D2DCE5D2DCE5D4DEE7D4DEE7D5DFE8 D6E0E9D6E0E9D7E1EAD8E2EBD8E3E9E1E9EBE2EBEAE2EBEAE3ECEBE4EDECE5EEEDE5EEEDE6EFEE E5EEEDE5EEEDE5EEEDE5EEEDE5EEEDE5EEEDE5EEEDE5EEEDE9EDF0EAEEF1EBEFF2ECF0F3ECF0F3 EBEFF2E9EDF0E8ECEFEBEFF2EBEFF2EAEEF1E8ECEFE6EAEDE5E9ECE4E8EBE2E7EAE5EAF0E2E9EF E0E7EDDEE5EBDBE4EBD8E1E8D6E0E9D5DFE8D7E4EDD7E5EED9E7F4D8E8F5D8E8F5D6E6F3D2E4F2 D0E2F0D2E0EDD2E0EDD3E1EED4E2EFD5E3F0D4E2EFD4E2EFD3E1EED7E5F2D7E5F2D5E3F0D4E2EF D2E0EDD0DEEBCFDDEACEDCE9CEDCE9CFDDEAD1DFECD2E0EDD2E0EDD1DFECCFDDEACEDCE9D0DEEB CEDCE9CBD9E6C9D7E4C8D6E3C9D7E4CBD9E6CADAE9C1D6E7C0D7E9C1D8EAC2D9EBC3DAECC3DAEC C4DBEDC4DBEDC4DBEDC2D9EBBFD6E8BDD4E6BDD4E6BDD4E6BFD6E8C1D8E8BBD2E2BCD3E1BDD4E2 BFD6E4C1D8E6C3DAE8C4DBE9C5DCEAC3DAE8C3DAE8C3DAE8C4DBE9C5DCEAC5DCEAC6DDEBC6DDED C5DCEEC3DDEEC5DBF0C3DDEEC5DBF0C3DDEEC5DBF0C3DDEEC5DBF0C3DDEEC5DBF0C3DDEEC5DBF0 C3DDEEC5DBF0C5DCEEC9DCEBCADCEACADCEACADCEACADCEACADCEACADCEACADCEACBDDEBCCDEEC CDDFEDCEE0EECEE0EECDDFEDCCDEECCCDCEBD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFEC D1DFECD0DEEBD1DFECD2E0EDD3E1EED5E3F0D6E4F1D8E6F3D9E5F3DFE7F4E0E6F4E1E7F3E2E8F4 E3EAF4E3EAF4E4EBF3E4EBF3E2E9EFE2E9EFE2EAEDE2EAEDE2EAECE2EAECE2EBEAE2EAECE1E8EE E0E7EFE0E7EFDFE6EEDEE5EDDDE4ECDDE4ECDCE3EBE0E7EFE0E7EFDFE6EEDFE6EEDEE5EDDDE4EC DCE3EBDBE4EDD6E4F1D3E5F3D1E3F1D0E2F0CEE0EECCDEECCBDDEBCADCEACADCEAC9DBE9C8DAE8 C7D9E7C7D9E7C8DAE8CADCEACCDCE9D0DDE6D2DCE5D3DDE6D4DEE7D5DFE8D5DFE8D6E0E9D6E0E9 D7E1EAD7E1EAD8E2EBD8E2EBD7E1EAD6E0E9D4DEE7D3DDE6D4DEE7D4DEE7D5DFE8D6E0E9D6E0E9 D7E1EAD8E2EBD8E2EBD6E0E9D6E0E9D5DFE8D5DFE8D4DEE7D3DDE6D2DCE5D0DDE5CBDCE3CADDE3 CADDE3CADDE3CADDE3CADDE3CADDE3CADDE3CBDEE4CADDE3CADDE3C9DCE2C8DBE1C7DAE0C7DAE0 C6D9E0C4D6E2C4D6E4C4D6E4C4D6E4C4D6E4C4D6E4C4D6E4C4D6E4BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BFDAED BFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDB9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E7 B9D4E7B8D5E7B8D5E7B8D5E7B8D5E7B8D5E7B8D5E7B8D5E7B8D5E7B8D5E7B8D5E7B8D5E7B8D5E7 B8D5E7B8D5E7B8D5E7B8D5E7B9D4E5BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7 C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C5DCECC5DCECC5DCECC5DCECC5DCEC C5DCECC5DCECC5DCECBED5E5BED5E5BED5E5BED5E5BED5E5BED5E5BED5E5BCD6E7B6D3E5B4D3E7 B6D2E7B4D3E7B6D2E7B4D3E7B6D2E7B4D3E7B8D4E9B6D5E9B8D4E9B6D5E9B8D4E9B6D5E9B8D4E9 B6D5E9B9DAEBB9DAEBBAD9EBBAD9EBBCD9E9BCD9E9BDD8E9BDD9E7C0DAE9C0DAE9C3DAE8C4DBE9 C6DCE9C6DCE9C7DDEAC7DDEACBDEECCBDEECCCDFEECDE0EECEE1F0CEE1EFCFE2F1CFE2F0CEE1F0 CDE0EECCDFEECBDEECCADDECC9DCEAC8DBEAC8DBE9CCDEEACCDEE8CCDDE7CBDCE6CADBE5CADBE3 CBD9E2CCD9E2D0DAE4D1DBE5D5DDE8DAE2EDE0E8F3E6EFF8EDF3FFF2F6FFF4F3F9F6F4F9F9F7FC FBF9FCFCFBFFFCFCFEFCFCFCFBFBFBFAFAF8F7F9F6F4F6F3F2F4EFEFF4EEF1F6F0F3F8F2F5FAF4 F5FAF6F5FAF6F8FAF7F7FCF8FAFCF9F8FDF9FBFDFAF9FEFAF8FAF7F7FCF8F9FBF8F9FEFAFCFEFB FBFFFCFEFFFDFCFFFDFEFFFFFCFFFFFEFFFFFCFFFFFEFFFFFCFFFFFEFFFFFCFFFFFDFFFEFBFFFE FDFFFEFBFFFEFDFFFEFBFFFEFDFFFEFDFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFCFCFC FCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFBFFFEFDFFFEFBFFFE FDFFFEFBFFFEFDFFFEFBFFFEF9FBFAF7FBFAF9FBFAF7FBFAF9FBFAF7FBFAF9FBFAF7FBFAFDFEFF FBFFFFFCFDFFFAFEFFFBFCFFF8FCFDF9FAFEF7FBFCFBFCFFF8FCFDF9FAFEF7FBFCFAFBFFFAFEFF FEFFFFFEFFFFFAFAFAFAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFE FFFFFFFEFFFFFFFFFFFDFFFEFEFEFEFCFEFDFCFCFCFCFCFAFBFCF7FBFCF6FBFCF6FAFBF5FAFBF6 F9FAF5F9F9F7F9F9F7FCFCFCF9F9F9F5F5F7F2F2F4F0F0F2F0F0F2F2F1F6F2F3F7EBF0F6E7F0F7 E7EEF6E4EDF4E3EAF2E0E9F0E0E7EFDEE7EEE2E9F1E0E9F0E0E7EFDEE7EEDEE5EDDCE5ECDCE3EB DBE4EBDAE3EAD9E4EADAE3EADAE5EBDBE4EBDAE5EBDCE5ECDBE6ECDBE4EBDAE5EBDBE4EBDAE5EB DBE4EBDAE5EBDBE4EBDAE5EBD6E0E9D6E0E9D5DFE8D4DEE7D3DDE6D3DDE6D2DCE5D2DCE5D4DEE7 D4DEE7D5DFE8D6E0E9D6E0E9D7E1EAD8E2EBD8E3E9E2EAEDE2EAECE3EBEDE4ECEEE5EDEFE5EDEF E6EEF0E6EEF0E4ECEEE4ECEEE4ECEEE4ECEEE4ECEEE4ECEEE4ECEEE4ECEEE7ECEFE9EDF0EAEEF1 EBEFF2EAEEF1E9EDF0E7EBEEE6EAEDEBEFF2EAEEF1E9EDF0E8ECEFE6EAEDE5E9ECE3E7EAE2E7EB E5ECF2E4EBF1E2E9F1E0E7EFDCE5ECDAE3EAD8E1EAD6E0E9DBE5EFDBE8F1DCE8F4DCEAF5DBE9F4 D8E6F1D4E2EFD2E0EDD5E1EDD5E1EDD6E2EED7E3EFD7E3EFD5E1EDD4E0ECD2E0EBD8E6F1D7E5F0 D6E4EFD2E3EDD0E1EBCEDFE9CDDEE8CCDDE7CDDBE8CEDCE9CFDDEAD0DEEBD0DEEBCDDDEACCDCE9 CBDBE8CEDEEBCCDCEBC9D9E8C5D7E5C4D6E4C5D7E5C7D9E7C8DBEAC0D7E9BED8E9C1D7ECBFD9EA C2D8EDC1DBECC4DAEFC2DCEDC3D9EEBFD9EABED4E9BAD4E5BBD1E6BBD5E6BFD5EABFD9EABBD2E2 BAD4E3BDD4E4BDD7E6C1D8E8C1DBEAC4DBEBC3DDECC3DAEAC1DBEAC3DAEAC2DCEBC4DBEBC3DDEC C5DCECC3DDECC2DBEFC2DBEFC2DBEFC2DBEFC2DBEFC2DBEFC2DBEFC2DBEFC2DBEFC2DBEFC2DBEF C2DBEFC2DBEFC2DBEFC2DBEFC4DBEDC7DDEBC9DCEAC9DCEAC9DCEAC9DCEAC9DCEAC9DCEAC9DCEA C9DCEACADDEBCCDFEDCDE0EECDE0EECCDFEDCADDEBCADCEACFDFEECFDFECCFDFEECFDFECCFDFEC CFDFECCFDFECD1DFECCFDDEACFDDEAD0DEE9D2E0EBD4E2EDD5E3EED6E4EFD8E4F0DFE7F2E0E6F2 E1E8F2E1E8F2E2E9F3E3EAF2E4EBF3E4EBF3E2E9EFE1EAEFE2EAEDE1EBEDE1EBEDE1EBECE1EBEC E1EBEDDFE8EFDFE8EFDEE7F0DDE6EDDCE5EEDCE5ECDBE4EDDBE4EBDFE8F1DFE8EFDEE7F0DDE6ED DCE5EEDCE5ECDBE4EDDAE4EED4E4F1D1E4F2D1E3F1CEE1EFCDDFEDCADDEBCADCEAC8DBE9C9DBE9 C7DAE8C7D9E7C5D8E6C6D8E6C7DAE8C9DBE9CADCE8D0DCE8D0DDE6D3DDE7D1DEE7D4DEE8D3E0E9 D6E0EAD4E1EAD6E0EAD5E2EBD8E2ECD6E3ECD7E1EBD3E0E9D3DDE7D2DCE6D4DEE8D4DEE8D5DFE9 D6E0EAD6E0EAD7E1EBD8E2ECD8E2ECD6E0EAD6E0EAD5DFE9D4DEE8D3DDE7D3DDE7D2DCE6D0DDE6 CBDCE4C9DDE4CADDE4C9DDE4CADDE4C9DDE4CADDE4C9DDE4CADDE4C9DDE4C9DCE3C7DBE2C7DAE1 C6DAE1C6D9E0C5D9E2C4D6E4C3D6E4C4D6E4C3D6E4C4D6E4C3D6E4C4D6E4C3D6E4BCD7E8BCD7E8 BDD8E9BDD8E9BDD8E9BDD8E9BED9EABED9EABBD6E7BBD6E7BCD7E8BDD8E9BDD8E9BED9EABFDAEB BFDAEBC0DAEBC0DAEBC0DAEBC0DAEBBFDAEBBFDAEBBFDAEBBFDAEBBAD7E7BAD7E7BAD7E7BAD7E7 BAD7E7B8D8E7BAD7E7BAD7E7BBD7E5BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5 BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5BCD6E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5C1D8E6C1D8E6C2D9E7C3DAE8C4DBE9C4DBE9C1D7E5C1D7E5C1D7E5 C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C5DBE9C4DAE8C4DAE8C3D9E7C2D8E6C2D8E6C1D7E5C0D7E7 BBD6EBBAD6ECBAD4EBB9D5EBB9D3EAB7D3E9B7D1E8B6D2E8B9D3EAB8D4EAB9D3EAB8D4EAB9D3EA B8D4EAB9D3EAB8D4E9BADAE9B9DBE7BADAE7BADAE7BCD9E7BCD9E7BDD9E7BDD9E5BED8E5BED8E5 C1D8E6C2D9E7C3D9E7C4DAE8C5DBE9C5DBE8C9DCEAC9DDE8CADDEBCBDFEACBDEECCCE0EBCDE0EE CDE1ECCBDEECCBDFEACBDEECCBDFEACBDEECCBDFEACBDEECCBDEECCBDDEBCADCEACBDBE8CBDBE8 CBDBE8CADBE5CCDAE5CDD9E5D5DFE9D7E1EBDBE4EDDFE8F1E4EBF5E7EEF6EAF1FBEEF3F9F2F6F9 F4F5F7F5F6F8F6F8F7F8F9FBF9FBFAFAFCFBFAFCFBF3F5F4F1F5F4F2F6F5F2F7F3F3F8F4F4F9F5 F5FAF6F5FAF6F6F8F7F7F9F8F8F8F8F8FAF9FBFBFBFBFDFCFCFCFCFCFEFDFAFAFAF9FBFAFBFBFB FBFDFCFCFCFCFCFEFDFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFE FEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFE FEFEFEFDFFFEFEFEFEFDFFFEFEFEFEFDFFFEFCFCFCFBFDFCFCFCFCFBFDFCFCFCFCFBFDFCFCFCFC FBFDFCFCFCFCFBFDFCFCFCFEFBFDFCFCFCFEFBFDFCFCFCFEFBFDFCFCFCFEFBFDFCFCFCFEFBFDFC FCFCFEFBFDFCFCFCFEFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFBFFFEFDFFFEFBFFFEFDFFFEFBFFFE FDFFFEFBFFFEFDFFFEFBFFFEFDFFFEFBFFFEFDFFFEFBFFFEFDFFFEFDFFFEF9FBF8F9FBF8F9FBF8 F9FBF8F9FBF8F9FBF8F9FBFAF9FBFAF4F6F5F4F6F5F3F5F4F3F5F4F3F5F4F2F4F3F2F3F5F0F4F7 E7EEF4E4EFF5E3ECF3E0EBF1E0E9F0DFEAF0E1EAF1E1ECF2DCE5ECDBE6ECDBE4EBD9E4EAD9E2E9 D8E3E9D8E1E8D8E1E8E0E9F2DFE8F1E0E7F1DEE7F0DDE4EEDBE4EDDCE3EDDAE3ECDEE5EFDDE6EF DEE5EFDDE6EFDEE5EFDDE6EFDEE5EFDDE6EFD6E0E9D6E0E9D5DFE8D4DEE7D3DDE6D3DDE6D2DCE5 D2DCE5DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE5EBE0E7EDE1E9ECE3EBEEE5EDF0 E6EEF1E6EEF1E6EEF1E5EDF0E2EAEDE2EAEDE3EBEEE3EBEEE4ECEFE5EDF0E6EEF1E6EEF1EAEFF2 EAEFF2E9EEF1E9EEF1E8EDF0E7ECEFE6EBEEE6EBEEE6EBEEE6EBEEE6EBEEE6EBEEE6EBEEE6EBEE E6EBEEE6EBEFDFE6EEDEE5EDDEE5EFDDE4EEDCE3EDDBE2ECDBE2ECDAE3ECDFE8F1DFE8F1DEE6F1 DDE5F0DCE4EFDCE4EFDBE3EEDBE3EEDCE2EEDCE2EEDCE2EEDCE2EEDBE3EEDBE3EEDAE4EED8E5EE D7E5EED5E3ECD1E2EACDE0E7CCDFE6CBDEE5CADEE5CCDFE6C7D8E2C8D9E3C9DAE4CADBE5CCDCE9 CCDEEACEE0EECDE0EEC3D6E4C1D7E5C1D6E7C0D7E7C0D7E7C0D7E7C0D7E9BED8E9BCD5E9BBD6E9 BCD5EBBBD6E9BCD5EBBBD6E9BCD5EBBBD6E9BCD5EBBBD6E9BCD5EBBBD6E9BCD5EBBBD6E9BCD5EB BBD6E9BED7EBBDD8EBBED7EBBDD8EBBED7EBBDD8EBBED7EBBDD8EBC0D9EDBFDAEDC0D9EDBFDAED C0D9EDBFDAEDC0D9EDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAED BFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDC0DAEBC2D9E9C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7 C3D9E7C3D9E7C7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC9DCEBC9DCEACADDEC CBDEECCDDFEDCDDFEDCEE0ECCFDFECCFE0EAD2E0EBD3E1EAD5E2EBD7E4ECD9E6EEDAE7EFDCE6EF DFE8EFE0E7EFE0E7EFE0E7EFDFE8EFDFE8EDDFE8EDDFE8EDE0E9EEDFEAEEDFE8EDDEE9EDDDE8EC DCE7E9DCE7E9DBE6EADFE9F2DFE9F2DEE8F2DDE7F0DCE6F0DBE5EEDAE4EEDAE4EDDBE5EFDAE4ED DAE4EED9E3ECD8E2ECD7E1EAD7E1EBD3E1ECCFE1EFCBE1EFCCDFEEC8DEECC8DBEAC4DAE8C5D8E7 C2D8E6C5D8E7C3D9E7C5D8E7C3D9E7C5D8E7C3D9E7C5D8E7C5D8E6CFDDEACFDDE8D1DDE9D2E0EB D4E0ECD3E1ECD2DEEAD0DEE9D6E2EED5E3EED5E1EDD4E2EDD4E0ECD2E0EBD2DEEAD2DEECCDD9E7 CEDAEACFDBEBD1DDEDD3DFEFD5E1F1D6E2F2D7E3F3D2DEEED2DEEED1DDEDD1DDEDD0DCECCFDBEB CEDAEACDDAEAC8DAE8C5DBE8C7DAE8C5DBE8C7DAE8C5DBE8C7DAE8C5DBE8C5D8E6C3D9E6C5D8E6 C3D9E6C5D8E6C3D9E6C5D8E6C3D9E6C5D8E7C3D9E7C5D8E7C3D9E7C5D8E7C3D9E7C5D8E7C3D9E7 BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BBD6E7BBD6E7BCD7E8BDD8E9BDD8E9 BED9EABFDAEBBFDAEBC0DAEBC0DAEBC0DAEBC0DAEBBFDAEBBFDAEBBFDAEBBFDAEBBAD7E7BAD7E7 BAD7E7BAD7E7B8D8E7B8D8E7B8D8E7BAD7E5BCD6E5BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3 BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C1D8E6C2D9E7C3DAE8C3DAE8C4DBE9C4DBE9C4D7E6 C4D7E6C4D7E6C4D7E6C4D7E6C4D7E6C4D7E6C4D7E6C8DBEAC8DBEAC7DAE9C6D9E8C6D9E8C5D8E7 C4D7E6C2D7E8BBD4EABAD4EBBAD4EBB9D3EAB8D2E9B7D1E8B7D1E8B6D0E7B9D3EAB9D3EAB9D3EA B9D3EAB9D3EAB9D3EAB9D3EAB8D4E9BADAE7B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5 BED8E5BED8E5C1D8E6C2D9E7C3D9E7C4DAE8C5DBE9C5DBE8C9DCEAC9DDE8CADEE9CBDFEACBDFEA CCE0EBCDE1ECCDE1ECCCE0EBCCE0EBCCE0EBCCE0EBCCE0EBCCE0EBCCE0EBCCE0EBCBDDEBCBDCEC CCDCEBCCDCEBCCDCE9CCDCE9CEDAE6CEDAE6D8E2ECD9E3EDDDE6EFE0E9F2E5ECF4E9F0F8ECF3FB EDF4FAF3F7F8F4F8F7F4F8F7F4F8F7F5F9F8F5F9F8F6FAF9F6FAF9F1F5F4F1F5F4F2F6F5F3F7F6 F4F8F7F4F8F7F5F9F8F5F9F8F8F8F8F8F8F8F9F9F9FAFAFAFAFAFAFBFBFBFCFCFCFCFCFCFAFAFA FAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFDFFFEFBFFFEFBFFFEFBFFFE FBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEF7FBFA F7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF4F8F7F4F8F7F3F7F6F2F6F5F1F5F4F0F4F3 EFF3F2EDF3F3E5EEF3E2EDF3E0EBF1DFEAF0DEE9EFDEE9EFDFEAF0DFEAF0DCE7EDDBE6ECDBE6EC DAE5EBD9E4EAD8E3E9D8E3E9D8E3E9E0E7F1E0E7F1DFE6F0DEE5EFDEE5EFDDE4EEDCE3EDDCE3ED DEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDDE6EFD8E1EAD6E0E9D6E0E9D5DFE8D4DEE7 D3DDE6D3DDE6D2DCE5DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE5EBDFE6EEE1E8EE E3EAF0E5ECF2E6EDF3E6EDF3E5ECF2E4EBF1E3EAF0E3EAF0E3EAF0E4EBF1E5ECF2E6EDF3E6EDF3 E7EEF4EAEFF3E9EEF1E9EEF1E8EDF0E7ECEFE6EBEEE6EBEEE5EAEDE6EBEEE6EBEEE6EBEEE6EBEE E6EBEEE6EBEEE6EBEEE4ECEFE0E7EFE0E7F1E0E7F1DFE6F0DEE5EFDDE4EEDDE4EEDCE3EDE1E8F2 E0E7F1E0E7F1DFE6F0DEE5EFDDE4EEDDE4EEDDE4EEDFE3EEDFE3EEDFE3EEDDE4EEDDE4EEDCE5EE DBE5EED9E6EED6E5ECD3E4EBD0E1E8CDE0E6CADFE4C9DEE3C8E0E4CADEE5C8DAE4C9DAE4CADBE5 C9DBE5CADCE8C9DDE8CADDEBC8DEEBC0D7E5C0D7E7BED8E9BDD8E9BDD8E9BDD8E9BDD8EBBDD8EB BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBFDAEFBFDAEF BFDAEFBFDAEFBFDAEFBFDAEFBFDAEFBFDAEFBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAED BFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEBC2D9E9C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DCEA C7DDEBC7DDEBC8DEECCBDEECCCDFEDCDDFEBCEE0ECCEDFE9CFE0EAD2E0E9D5E2EAD6E3EBD8E5EB DBE6ECDCE7EDDFE8EDE0E7EDE0E7EDE0E7EDDFE8EDDFE8EDDFE8EDDFE8EDDEE9EDDEE9EDDDE8EC DDE8ECDAE8EBD9E7EAD8E6E9D8E5EBDBE8F0DAE7F0DAE7F0D9E6EFD8E5EED7E4EDD6E3ECD6E3EC D7E4EDD6E3ECD6E3ECD5E2EBD4E1EAD3E0E9D3E0E9D1DFEACDE0EECAE0EEC9DFEDC7DDEBC6DCEA C4DAE8C3D9E7C2D8E6C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C5D8E6CBDBEACDDBE8 CFDDEAD0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD5E3F0D4E2EFD4E2EFD3E1EED2E0EDD1DFECD1DFEC D0DEEBCDD8EACED9EBCFDAECD1DCEED2DDEFD4DFF1D5E0F2D6E1F3D2DDEFD1DCEED1DCEED0DBED CFDAECCED9EBCED9EBCCD9EAC7DAE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C4DAE8 C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8 C4DAE8C4DAE8BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BBD6E7BBD6E7BCD7E8 BDD8E9BDD8E9BED9EABFDAEBBFDAEBC0DAEBC2D9EBC0DAEBC0DAEBC0DAEBC0DAEBBFDAEBBFDAEB BCD7E8BCD7E8BBD8E8BBD8E8BBD8E8BBD8E8B9D9E8BBD8E6BDD7E6BFD6E4BFD6E4BFD6E4BFD6E4 BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4BFD6E4C1D8E6C1D8E6 C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C2D9E7C2D9E7C3DAE8C4DBE9C5DCEA C5DCEAC7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9C7DAE9CADDECCADDECC9DCEBC8DBEA C8DBEAC7DAE9C6D9E8C4D9EABBD4E8B9D4E9B9D4E9B8D3E8B7D2E7B7D2E7B6D1E6B6D1E6B9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B8D5E7BADAE7B9DBE5BADAE5BADAE5BCDAE5BCDAE5 BDD9E5BDD9E5BED8E5BED8E5C1D8E6C2D9E7C3D9E7C4DAE8C5DBE9C5DBE8C9DCEAC9DDE8CADEE9 CBDFEACBDFEACCE0EBCDE1ECCDE1ECCEE2EDCEE2EDCEE2EDCEE2EDCEE2EDCEE2EDCEE2EDCEE2ED CCDEECCCDEECCDDDECCDDDECCEDEEBCEDEEBD1DDE9D1DDE9DBE5EFDCE6F0E0E9F2E3ECF3E8EFF7 EBF2FAEDF4FAEFF7FAF5F9FAF5F9F8F5F9F8F4F8F7F4F8F7F3F7F6F3F7F6F3F7F6F2F6F5F2F6F5 F3F7F6F3F7F6F4F8F7F5F9F8F6FAF9F6FAF9F8F8F8F9F9F9F9F9F9FAFAFAFAFAFAFBFBFBFBFBFB FCFCFCFAFAFAFAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFDFFFEFBFFFE FBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFBFFFEFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFD FAFEFDF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF6FAF9F5F9F8F3F7F6 F1F5F4EFF3F2EDF1F0EBF1F1E3ECF1E1ECF2DFEAF0DDE8EEDCE7EDDCE7EDDDE8EEDEE9EFDDE8EE DDE8EEDCE7EDDBE6ECDBE6ECDAE5EBD9E4EAD9E4EAE0E7F1DFE6F0DFE6F0DEE5EFDEE5EFDDE4EE DDE4EEDCE3EDDEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDDE6EFD9E2EBD7E1EAD7E1EA D6E0E9D5DFE8D4DEE7D4DEE7D4DEE7DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE5EB DFE6EEE0E7EDE2E9EFE4EBF1E4EBF1E4EBF1E3EAF0E2E9EFE3EAF0E4EBF1E4EBF1E5ECF2E6EDF3 E6EDF3E7EEF4E7EEF4E6EEF1E6EEF1E6EEF1E5EDF0E4ECEFE3EBEEE3EBEEE2EAEDE3EBEEE3EBEE E3EBEEE3EBEEE3EBEEE3EBEEE3EBEEE3EAF0E3EAF2E1EAF3E1EAF3E0E9F2DFE8F1DEE7F0DEE7F0 DEE7F0E0E9F2E0E9F2DFE8F1DFE8F1DEE7F0DDE6EFDDE6EFDDE4EEDFE3EEDFE3EEDFE3EEDDE4EE DDE4EEDCE5EEDBE5EED9E6EED5E4EBD2E3EACFE0E7CCDFE5C9DEE3C8DDE2C6DEE2C9DDE4CADCE6 CADCE8C9DBE7C9DBE7C8DAE8C6D9E7C6D9E8C4DAE8BFD6E6BFD6E6BDD7E8BCD7EABCD7EABBD8EA BBD7ECBBD7ECBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBAD5EABAD5EABAD5EA BAD5EABAD5EABAD5EABAD5EABAD5EABCD7ECBCD7ECBCD7ECBCD7ECBCD7ECBCD7ECBCD7ECBCD7EC BED9EEBED9EEBED9EEBED9EEBED9EEBED9EEBED9EEBED9EEBED9ECBED9ECBED9ECBED9ECBED9EC BED9ECBED9ECBED9ECBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEBC2D9E9C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBEBC5DCECC6DCEAC7DDEBCADDEBCBDEECCCDEEACCDEEACDDEE8CEDFE9D1DFE8D3E2E9 D5E2EAD7E4ECD8E5EBDBE6ECDDE6EDDDE6EDDDE6EDDDE6EDDDE6EDDDE6EDDCE7EDDCE7EDDCE7ED DCE7EDD9E6ECD9E6ECD8E5EBD7E4EAD5E4E9D5E4E9D6E3EBD6E3ECD6E3ECD5E2EBD4E1EAD4E1EA D3E0E9D3E0E9D3E0E9D3E0E9D3E0E9D2DFE8D1DEE7D0DDE6D0DDE6CEDCE7CBDEECC9DFEDC7DDEB C6DCEAC5DBE9C3D9E7C2D8E6C2D8E6C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C6D9E7 C8D8E7CCDAE7CEDCE9CFDDEACFDDEACFDDEAD0DEEBD1DFECD3E1EED3E1EED3E1EED2E0EDD1DFEC D0DEEBD0DEEBCFDDEACDD8EACDD8EACED9EBD0DBEDD1DCEED2DDEFD4DFF1D4DFF1D0DBEDD0DBED D0DBEDCFDAECCED9EBCDD8EACDD8EACBD8E9C6D9E8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8 C4DAE8C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9 C5DBE9C5DBE9C5DBE9C5DBE9BFDAEBBED9EABED9EABDD8E9BDD8E9BCD7E8BCD7E8BBD6E7BBD6E7 BBD6E7BCD7E8BDD8E9BDD8E9BED9EABFDAEBC0DAEBC2D9EBC2D9EBC0DAEBC0DAEBC0DAEBC0DAEB C0DAEBBFDAEBBDD8E9BDD8E9BDD8E9BCD9E9BCD9E9BCD9E9BCD9E9BCD9E7BED8E5C0D7E5C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C4DBE9 C5DCEAC5DCEAC6DDEBC9DCEBC9DCEBC9DCEBC9DCEBC9DCEBC9DCEBC9DCEBC9DCEBCBDEEDCBDEED CADDECCADDECC9DCEBC8DBEAC8DBEAC5DAEBBBD4E8BAD5EAB9D4E9B8D3E8B7D2E7B7D2E7B6D1E6 B6D1E6B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B8D5E7BADAE7B9DBE5BADAE5BADAE5 BCDAE5BCDAE5BDD9E5BDD9E5BED8E5BED8E5C1D8E6C2D9E7C3D9E7C4DAE8C5DBE9C5DBE8C9DCEA C9DDE8CADEE9CBDFEACBDFEACCE0EBCDE1ECCDE1ECCFE3EECFE3EECFE3EECFE3EECFE3EECFE3EE CFE3EECFE3EECDDFEDCDDFEDCFDFEECFDFECD0E0EDD1E2ECD4E0ECD4E1EADEE8F2DFE9F2E2EBF2 E5EEF5E9F0F8ECF3F9EFF6FCF0F8FBF7FBFCF6FAF9F5F9F8F4F8F7F3F7F6F2F6F5F1F5F4F0F4F3 F3F7F6F3F7F6F3F7F6F4F8F7F5F9F8F6FAF9F6FAF9F7FBFAF9F9F9FAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFBFBFBFAFAFAFAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFE FCFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDF9FDFCF9FDFCF9FDFCF9FDFCF9FDFC F9FDFCF9FDFCF9FDFCF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAFAFEFDF9FDFC F7FBFAF4F8F7F1F5F4EEF2F1ECF0EFEAF0F0E2EBF0E0EBF1DEE9EFDDE8EEDCE7EDDCE7EDDDE8EE DDE8EEDFEAF0DFEAF0DEE9EFDDE8EEDDE8EEDCE7EDDBE6ECDCE5ECDFE6F0DEE5EFDEE5EFDEE5EF DEE5EFDEE5EFDEE5EFDDE4EEDEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDEE5EFDDE6EFDAE3EC D9E3ECD8E2EBD8E2EBD7E1EAD6E0E9D5DFE8D5DFE8DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4ED DAE4EDDAE4EDDEE7EEE0E7EDE1E8EEE2E9EFE3EAF0E2E9EFE1E8EEE0E7EDE3EAF0E3EAF0E4EBF1 E5ECF2E6EDF3E6EDF3E7EEF4E7EEF4E5ECF2E5EDF0E4ECEFE3EBEEE2EAEDE2EAEDE1E9ECE1E9EC E2EAEDE2EAEDE2EAEDE2EAEDE2EAEDE2EAEDE2EAEDE1EAEFE3ECF5E3ECF5E2EBF4E1EAF3E0E9F2 E0E9F2DFE8F1DFE8F1E0E9F2E0E9F2DFE8F1DFE8F1DEE7F0DDE6EFDCE5EEDCE5EEDDE4EEDDE4EE DDE4EEDCE5EEDCE5EEDBE5EED9E6EED8E7EED4E3EAD0E1E8CCDFE5CADDE3C7DCE1C7DCE1C5DDE1 C7DBE2CADEE9CBDDE9C9DBE7C7DBE6C5D8E6C1D7E4C0D6E4BED5E5BED5E5BCD6E7BBD6E9BAD7E9 BAD7E9BAD6EBBAD6EBBAD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBB9D4E9 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEB C2D9E9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8 C3DAE8C3DAE8C3DAE8C3DAEAC3DAEAC5DAEBC5DBE9C8DBEAC9DCEACBDDEBCBDDE9CCDCE9CCDDE7 CFDDE8D1DFE8D4E1EAD5E2EAD6E3EBD7E4EADBE6ECDCE5ECDCE5ECDCE5ECDCE5ECDBE6ECDBE6EC DBE6ECDAE5EBD7E4EAD7E4EAD6E3E9D5E2E8D3E2E7D3E2E7D2E1E8D2DFE8D1DEE7D1DEE7D1DEE7 D1DEE7D1DEE7D0DDE6D0DDE6D1DEE7D0DDE6D0DDE6CFDCE5CEDBE4CDDAE3CDDAE3CBD9E4C8DBE9 C6DCEAC5DBE9C4DAE8C3D9E7C2D8E6C2D8E6C1D7E5C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9 C5DBE9C7DAE8C6D6E5CBD9E6CEDCE9D0DEEBD1DFECD0DEEBD1DFECD1DFECD2E0EDD2E0EDD1DFEC D0DEEBCFDDEACFDDEACEDCE9CEDCE9CCD7E9CDD8EACDD8EACED9EBCFDAECD0DBEDD1DCEED1DCEE CFDAECCFDAECCED9EBCDD8EACCD7E9CCD7E9CBD6E8CAD7E8C5D8E7C3D9E7C3D9E7C3D9E7C3D9E7 C3D9E7C3D9E7C3D9E7C6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEA C6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC1DBEAC0DAE9BFD9E8BFD9E8BDD7E6BDD7E6BCD6E5 BBD5E4BCD6E5BCD6E5BDD7E6BED8E7BED8E7BFD9E8C0DAE9C0DAE9C2D9E9C2D9E9C2D9E9C2D9E9 C2D9E9C0DAE9C0DAE9C0DAE9BED8E7BDD9E7BDD9E7BDD9E7BDD9E7BCD9E7BCD9E7BDD9E7BED8E5 C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C3DAE8 C4DBE9C5DCEAC6DDEBC6DDEBC6DDEBCADDECCADDECCADDECCADDECCADDECCADDECCADDECCADDEC CBDEEDCBDEEDCADDECCADDECC9DCEBC8DBEAC8DBEAC5DAEBBDD7E8BBD6E9BBD6E9BAD5E8B9D4E7 B8D3E6B8D3E6B7D2E5B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E5BADAE7B9DBE5 BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5BED8E5BED8E5C1D8E6C2D9E7C3D9E7C4DAE8C5DBE9 C5DBE8C9DCEAC9DDE8CADEE9CBDFEACBDFEACCE0EBCDE1ECCDE1ECCFE3EECFE3EECFE3EECFE3EE CFE3EECFE3EECFE3EECFE3EECFE1EDCFE1EDD1E1EED2E2EFD3E3F0D4E5EFD7E3EFD8E5EEE0EAF4 E1EBF4E4EDF4E6EFF6EAF1F7ECF3F9EEF5FBEFF7F9F6FAFBF5F9F8F4F8F7F3F7F6F2F6F5F1F5F4 F0F4F3EFF3F2F3F7F6F4F8F7F4F8F7F5F9F8F6FAF9F7FBFAF7FBFAF7FBFAFBFBFBFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAF9F9F9FAFAFAFAFAFAFBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFDFFFEFCFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDFAFEFDF9FDFCF9FDFCF9FDFC F9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFA FBFFFEFAFEFDF8FCFBF5F9F8F2F6F5EFF3F2EDF1F0EBF1F1E5EDF0E3ECF1E1EAEFDFE8EDDEE7EC DFE8EDDFE8EDE0E9EEE2EBF0E2EBF0E1EAEFE0E9EEE0E9EEDFE8EDDEE7ECDEE7ECDDE4ECDEE5ED DEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDFE6EEDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5ED DDE6EDDCE5EEDBE5EEDAE4EDD9E3ECD8E2EBD8E2EBD7E1EAD7E1EADAE4EDDAE4EDDAE4EDDAE4ED DAE4EDDAE4EDDAE4EDDAE4EDDDE6EDDEE7EEDFE8EFE0E9F0E0E9F0DFE8EFDDE6EDDCE5ECE0E9F0 E1EAF1E1EAF1E2EBF2E3ECF3E4EDF4E4EDF4E5EEF3E2EBF0E2EBF0E1EAEFE1EAEFE0E9EEDFE8ED DEE7ECDEE7ECE1EAEFE1EAEFE1EAEFE1EAEFE1EAEFE1EAEFE1EAEFE1EAEFE2EBF4E1EBF5E0EAF4 DFE9F3DFE9F3DEE8F2DDE7F1DDE7F1DEE8F2DDE7F1DDE7F1DCE6F0DBE5EFDAE4EEDAE4EEDAE2ED DAE2EDDAE2EDDAE2EDD9E3EDD9E3EDD7E4EDD7E4EDD6E4EDD2E0E9CEDFE7CBDEE5C8DBE2C6DAE1 C5D9E0C5D9E0C6DAE1CADEE9C9DCEAC7DAE8C5D8E6C3D6E5BFD5E3BDD2E3BBD2E2BCD6E7BBD6E9 BBD6E9BAD6EBBAD6EBB8D7ECB8D7ECBAD6ECBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EB BBD6EBB9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BBD6EBBBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBBD6EBBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EDBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAED BFDAEDBFDAEBC2D9E9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C1D8E6C1D8E6C1D8E6 C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6BFD9E8BFD9E8C2D9E9C3DAE8C5DBE9C5DBE8C8DBE9C8DCE7 C9DBE7CADCE6CCDDE7CDDEE6D1DFE8D3E2E9D5E2EAD5E2EAD9E3ECD9E3ECD9E3ECD9E3ECD9E3EC D7E4ECD7E4ECD7E4ECD5E2EAD3E2E9D3E2E9D2E1E8D1E0E7CEDFE6CEDFE6CDDEE5CDDBE4CDDBE6 CDDBE6CDDBE6CEDCE7CEDCE7CEDCE7CEDCE7CEDCE7CEDCE7CDDBE6CCDAE5CBD9E4CBD9E4CAD8E3 C8D8E5C6D9E7C3D9E7C3D9E7C2D8E6C2D8E6C1D7E5C1D7E5C1D7E5C5DBE9C5DBE9C5DBE9C5DBE9 C5DBE9C5DBE9C5DBE9C7DAE8C7D7E6C9D7E4CBD9E6CFDDEAD2E0EDD3E1EED2E0EDD1DFECD0DEEB D0DEEBCFDDEACFDDEACEDCE9CDDBE8CCDAE7CCDAE7CBD8E9CBD8E9CBD8E9CCD9EACCD9EACDDAEB CDDAEBCEDBECCCD9EACCD9EACBD8E9CBD8E9CAD7E8C9D6E7C8D5E6C6D6E6C5D8E7C3D9E7C3D9E7 C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9 C7DAE8C7DAE8C7DAE8C7DAE8C7DAE8C7DAE8C7DAE8C7DAE8C2DCEBC1DBEAC0DAE9BFD9E8BDD7E6 BCD6E5BBD5E4BAD4E3BCD6E5BCD6E5BDD7E6BED8E7BED8E7BFD9E8C0DAE9C2D9E9C2D9E9C2D9E9 C2D9E9C2D9E9C2D9E9C2D9E9C2D9E9C0DAE9BFD9E8BFD9E8BFD9E8BEDAE8BEDAE8BEDAE8BEDAE8 BEDAE8BFD9E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6 C1D8E6C1D8E6C1D8E6C1D8E6C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8 C3DAE8C4DBE9C5DCEAC6DDEBC6DDEBC7DEECC7DEECC7DDEBC9DCEBC9DCEBC9DCEBC9DCEBC9DCEB C9DCEBC9DCEBCADDECCADDECC9DCEBC8DBEAC8DBEAC7DAE9C6D9E8C4D9EABFD9EABED9ECBED9EC BDD8EBBCD7EABBD6E9BBD6E9BAD5E8B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B8D5E5 BADAE7B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5BED8E5BED8E5C1D8E6C2D9E7C3D9E7 C4DAE8C5DBE9C5DBE8C9DCEAC9DDE8CADEE9CBDFEACBDFEACCE0EBCDE1ECCDE1ECCEE2EDCEE2ED CEE2EDCEE2EDCEE2EDCEE2EDCEE2EDCEE2EDD0E2EED0E2EED2E2EFD4E5EFD5E6F0D7E8F0DBE8F1 DBE8F0E0EAF3E1ECF2E4EDF4E6EFF4E9F0F6EBF3F6EDF5F8EEF6F8F3F7F8F3F7F6F3F7F6F2F6F5 F2F6F5F1F5F4F1F5F4F1F5F4F4F8F7F4F8F7F5F9F8F6FAF9F7FBFAF7FBFAF8FCFBF8FCFBFCFCFC FBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9F9F8F8F8FAFAFAFAFAFAFBFBFBFCFCFCFCFCFCFDFDFD FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFDFFFEFBFDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF8FCFB F8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFA F7FBFAF7FBFAFAFEFDF9FDFCF7FBFAF5F9F8F3F7F6F1F5F4F0F4F3EEF4F4E9F1F4E6EFF4E4EDF2 E3ECF1E2EBF0E2EBF0E3ECF1E3ECF1E4EDF2E4EDF2E3ECF1E2EBF0E2EBF0E1EAEFE0E9EEE0E9EE DCE3EBDDE4ECDDE4ECDEE5EDDEE5EDDFE6EEDFE6EEE0E7EFDEE5EDDEE5EDDEE5EDDEE5EDDEE5ED DEE5EDDEE5EDDDE6EDDDE6EFDCE6EFDCE6EFDBE5EEDAE4EDD9E3ECD9E3ECD8E2EBDAE4EDDAE4ED DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDDE6EDDDE6EDDEE7EEDFE8EFDEE7EEDCE5ECDBE4EB D9E2E9DEE7EEDEE7EEDEE7EEDFE8EFE0E9F0E1EAF1E1EAF1E2EBF2E1EAF1DFEAEEE0E9F0DEE9ED DEE7EEDCE7EBDDE6EDDCE7EBE0E9F0DFEAEEE0E9F0DFEAEEE0E9F0DFEAEEE0E9F0DFEAF0DEE8F2 DCE9F2DDE7F1DBE8F1DCE6F0D9E6EFDAE4EED8E5EEDBE5EFD8E5EEDAE4EED7E4EDD8E2ECD5E2EB D7E1EBD7E1EBD7E1EBD7E1EBD7E1EBD5E2EBD5E2EBD4E2EBD4E2EBD2E3EBCEDFE7CDDEE6C9DCE3 C7DAE1C4D8DFC4D8DFC4D8DFC4D8E1C8DCE7C7DAE8C6D9E7C2D8E5C0D6E4BDD4E2BBD2E2B9D3E4 BAD5E8BAD5E8B9D5EAB9D5EAB7D6EBB7D6EBB7D6EBB7D6EBBAD6EBBBD6EBBBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBB8D3E8B8D3E8B8D3E8B8D3E8B8D3E8B8D3E8B8D3E8B8D3E8BAD5EABAD5EA BAD5EABAD5EABAD5EABAD5EABAD5EABAD5EABCD7ECBCD7ECBCD7ECBCD7ECBCD7ECBCD7ECBCD7EC BCD7ECBCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABFDAEDBFDAEDBFDAEDBFDAED BFDAEDBFDAEDBFDAEDBFDAEBC2D9E9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E7BED8E9BED8E9C0D7E9C1D8E8C2D9E9C4DAE8 C4DAE8C7DAE8C7D9E7C8DAE6CADAE7CCDDE7CFDDE8D1DFE8D2E0E9D4E1E9D6E3ECD6E3EBD8E2EC D6E3EBD6E3ECD6E3EBD6E3ECD5E4EBD1DFE8D1E0E7D0DEE7CDDEE5CCDDE5CBDEE4CBDCE4CBDCE4 C9DAE4CBD9E4CCDAE7CCDAE5CDDBE8CDDBE6CEDCE9CEDCE7CEDCE9CDDBE6CDDBE8CCDAE5CBD9E6 CBD9E4CAD8E5C8D8E5C3D6E4C1D7E5C1D7E5C1D7E5C1D7E5C0D6E4C0D6E4C0D6E4C6DCEAC6DCEA C6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC8DBE9CADAE9C6D4E1C2D0DDC4D2DFCBD9E6D1DFECD2E0ED D0DEEBCFDDEACEDCE9CEDCE9CDDBE8CCDAE7CBD9E6CBD9E6CBD9E6CAD7E8CAD7E8CAD7E8CBD8E9 CBD8E9CBD8E9CBD8E9CBD8E9CBD8E9CAD7E8CAD7E8C9D6E7C8D5E6C7D4E5C7D4E5C5D5E5C4D7E6 C2D8E6C2D8E6C2D8E6C2D8E6C2D8E6C2D8E6C2D8E6C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7 C3D9E7C3D9E7C5D8E6C5D8E6C5D8E6C5D8E6C5D8E6C5D8E6C5D8E6C5D8E6C5DCEAC4DBE9C3DAE8 C1D8E6BFD6E4BDD4E2BCD3E1BBD2E0BED5E3BED5E3BFD6E4C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7 C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0DAE7C0DAE7C0DAE7C0DAE7 BFDBE7BFDBE7BFDBE7C0DAE7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C5DCEAC5DCEAC6DDEBC7DEECC8DFEDC8DFEDC6DCEAC6DCEAC6DCEAC6DCEA C6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC5DBE9C4DAE8C4DAE8C3D9E7C2D8E6C1D8E8C3DDEE C1DCEDC1DCEDC0DBECBFDAEBBED9EABED9EABDD8E9B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5 B9D4E5B8D5E5BADAE7B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5BED8E5BED8E5C1D8E6 C2D9E7C3D9E7C4DAE8C5DBE9C5DBE8C9DCEAC9DDE8CADEE9CBDFEACBDFEACCE0EBCDE1ECCDE1EC CCE0EBCCE0EBCCE0EBCCE0EBCCE0EBCCE0EBCCE0EBCCE0EBD1E3EDD1E3EDD4E5EFD5E6F0D7E8F2 D9EAF2DDEAF3DEEBF3E0EAF3E1ECF2E3ECF1E5EFF1E8F0F3EAF2F4EBF3F5ECF4F6F0F4F5F0F4F3 F1F5F4F1F5F4F2F6F5F2F6F5F2F6F5F3F7F6F5F9F8F5F9F8F6FAF9F6FAF9F7FBFAF8FCFBF9FDFC F9FDFCFCFCFCFCFCFCFBFBFBFAFAFAFAFAFAF9F9F9F8F8F8F8F8F8FAFAFAFAFAFAFBFBFBFCFCFC FCFCFCFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFBFDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFC F9FDFCF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFA F7FBFAF7FBFAF7FBFAF7FBFAF8FCFBF7FBFAF6FAF9F5F9F8F4F8F7F3F7F6F2F6F5F1F7F7EDF5F7 EAF4F6E8F2F4E7F1F3E6F0F2E6F0F2E7F1F3E7F1F3E5EFF1E5EFF1E5EFF1E4EEF0E3EDEFE2ECEE E2ECEEE1EAEFDCE3EBDCE3EBDDE4ECDEE5EDDEE5EDDFE6EEE0E7EFE0E7EFDEE5EDDEE5EDDEE5ED DEE5EDDEE5EDDEE5EDDEE5EDDDE6EDDFE8F1DDE7F0DDE7F0DCE6EFDBE5EEDAE4EDDAE4EDD9E3EC DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDBE5EEDCE6EFDDE7F0DDE7F0DCE6EF DAE4EDD8E2EBD6E0E9D9E3ECDAE4EDDAE4EDDBE5EEDCE6EFDDE7F0DDE7F0DEE8F1DFE9F2DCE9EF DEE8F1DBE8EEDCE6EFD9E6ECDBE5EED8E5EBDEE8F1DCE9EFDEE8F1DCE9EFDEE8F1DCE9EFDEE8F1 DCE9F1D9E6EFD8E6F1D8E4F0D6E4EFD6E2EED5E3EED5E1EDD4E2EDD6E2EED4E2EDD5E1EDD3E1EC D3DFEBD1DFEAD2DEEAD1DDE9D2DEEAD1DFEAD1DFEAD1DFEAD1DFEACFE0EACFE0EACFE0EACDDEE8 CBDDE7C8DAE4C6D8E2C4D6E0C3D5DFC3D7E0C3D7E0C3D9E4C2D8E5C1D7E5C0D6E4BFD4E5BDD4E4 BCD3E5B9D3E4B9D4E7B9D4E7B8D4E9B8D4E9B6D5EAB6D5EAB5D5ECB6D5EABAD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBB7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7 B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BBD6EBBBD6EBBBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BFDAEDBFDAED BFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEBC2D9E9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED5E5BCD6E7BCD7E8BDD7E8BED8E7 BFD9E8C2D9E7C3D9E7C4DAE7C5D8E6C6DAE5C8DAE6CADCE6CCDDE7CEDFE9CFE0EAD2E0E9D3E1EC D3E1EAD4E0ECD3E1EAD3E1ECD3E1EAD3E1ECD1E2EACDDEE8CDDEE6CCDDE7CADDE4C9DBE5C8DCE3 C8DAE4C8DAE4C8D8E5C9D9E6C9D9E8CADAE7CBDBEACCDCE9CDDDECCDDDEACCDCEBCCDCE9CCDCEB CBDBE8CADAE9C9D9E6C9D9E8C7D9E7C1D4E3BFD5E3BFD5E3BFD5E3C0D6E4C0D6E4C0D6E4C0D6E4 C7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC9DCEACEDEEDC2D0DDB3C1CEB2C0CDBECCD9 CBD9E6D0DEEBCFDDEACEDCE9CDDBE8CDDBE8CCDAE7CBD9E6CAD8E5CAD8E5C9D7E4C8D8E8C8D8E8 C8D8E8C8D8E8C7D7E7C7D7E7C7D7E7C7D7E7C8D8E8C7D7E7C7D7E7C6D6E6C5D5E5C4D4E4C4D4E4 C2D3E3C3D6E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C0D6E4C0D6E4C0D6E4C0D6E4 C0D6E4C0D6E4C0D6E4C0D6E4C2D5E3C3D5E1C3D5E1C3D5E1C3D5E1C3D5E1C3D5E1C3D5E1C5DCEA C4DBE9C3DAE8C1D8E6BFD6E4BDD4E2BCD3E1BBD2E0BED5E3BED5E3BFD6E4C0D7E5C0D7E5C1D8E6 C2D9E7C3D9E7C5D8E7C5D8E7C5D8E7C3D9E7C3D9E7C3D9E7C3D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C5DCEAC6DDEBC7DEECC7DEECC8DFEDC8DFEDC5DBE9C5DBE9 C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C4DAE8C4DAE8C3D9E7C2D8E6C2D8E6C1D7E5 C0D7E5C5DFEEC3DEEFC3DEEFC2DDEEC1DCEDC0DBECC0DBECBFDAEBB9D4E5B9D4E5B9D4E5B9D4E5 B9D4E5B9D4E5B9D4E5B8D5E3BADAE5B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5BED8E5 BED8E5C1D8E6C2D9E7C3D9E7C4DAE8C5DBE9C5DBE8C9DCEAC9DDE8CADEE9CBDFEACBDFEACCE0EB CDE1ECCDE1ECCBDFEACBDFEACBDFEACBDFEACBDFEACBDFEACBDFEACBDFEAD1E3EDD2E4EED4E5EF D6E7EFD8E9F1DAEBF2DEEBF3DFECF2DFEAF0E0EBEFE2ECEEE4EEEFE7EFF1E8F0F2E9F1F3EAF3F2 EEF2F1EEF2F1EFF3F2F0F4F3F2F6F5F3F7F6F4F8F7F4F8F7F5F9F8F5F9F8F6FAF9F7FBFAF8FCFB F8FCFBF9FDFCF9FDFCFDFDFDFCFCFCFCFCFCFBFBFBF9F9F9F8F8F8F8F8F8F7F7F7FAFAFAFAFAFA FBFBFBFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFFFEFBFDFCF9FDFCF9FDFCF9FDFCF9FDFC F9FDFCF9FDFCF9FDFCF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFA F7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF6FAF9F6FAF9F6FAF9F5F9F8F5F9F8F5F9F8F4F8F7 F3F9F9EFF7F9EDF7F9EBF5F7E9F3F5E9F3F5E9F3F5EAF4F6EAF4F6E6F0F2E6F0F2E5EFF1E5EFF1 E4EEF0E3EDEFE2ECEEE2ECEEDBE2E8DCE3EBDCE3EBDDE4ECDFE6EEE0E7EFE0E7EFE1E8F0DEE5ED DEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDEE5EDDDE6EDDFE8F1DEE8F1DDE7F0DDE7F0DCE6EFDBE5EE DAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDAE4EDDBE5EEDCE6EFDCE6EF DCE6EFDBE5EED9E3ECD7E1EAD5DFE8D7E1EAD8E2EBD8E2EBD9E3ECDAE4EDDBE5EEDBE5EEDAE7EF DCE9F1DBEAF1DBE8F1D9E8EFD9E6EFD8E7EED8E5EED7E6EDDCE9F2DBEAF1DCE9F2DBEAF1DCE9F2 DBEAF1DCE9F2DBE9F2D6E4EFD3E4EED5E3F0D2E3EDD3E1EED0E1EBD2E0EDCFE0EAD3E1EED0E1EB D2E0EDCFE0EAD0DEEBCDDEE8CFDDEACCDDE7CDDDEACDDEE8CCDEEACCDEE8CCDEEACCDEE8CDDDEA CCDEE8CCDEEACADCE6C8DAE6C5D7E1C3D5E1C3D5DFC2D6E1C2D6E1C3D6E4C0D6E3C0D6E4BFD5E3 BED3E4BDD4E4BCD3E5BAD4E5B9D4E7B9D4E7B8D4E9B8D4E9B6D5EAB6D5EAB5D5ECB6D5EABAD6EB BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBB7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7 B7D2E7B7D2E7B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9B9D4E9BBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEBC2D9E9C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BCD6E5BBD6E7BBD6E9 BCD7EABDD7E8BED8E9BFD9E8C2D9E9C3D9E7C3D9E7C5D8E6C7D9E7C9DBE7CCDCE9CDDEE8CEDFE9 CFE0EAD1E2ECD1E2ECD3E1EED1E2ECD3E1EED1E2ECD1E1EED0E2ECCCDCE9CADCE6CADCE8C8DCE5 C7DBE6C7DBE4C6DAE5C6DAE5C7D9E7C8DAE8C9D9E8C9DBE9CCDCEBCCDEECCDDDECCDDFEDCDDDEC CCDEECCCDCEBCBDDEBCBDBEAC9DBE9C9D9E8C8DAE8C0D3E2BED4E2BED4E2BFD5E3BFD5E3BFD5E3 C0D6E4C0D6E4C7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC9DCEAD0E0EFBECCD9A8B6C3 A5B3C0B3C1CEC5D3E0CEDCE9CFDDEACDDBE8CDDBE8CCDAE7CBD9E6CAD8E5CAD8E5C9D7E4C9D7E4 C8D8E8C7D8E8C7D7E7C6D7E7C7D7E7C5D6E6C6D6E6C5D6E6C7D7E7C6D7E7C6D6E6C4D5E5C4D4E4 C3D4E4C3D3E3C2D3E3C3D6E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5BFD5E3BFD5E3 BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3C1D4E2C2D4E0C2D4DEC3D3E0C2D4DEC3D3E0C2D4DEC3D3E0 C2D4DECAE0EDC9DFECC7DDEAC4DAE7C1D7E4BFD5E2BDD3E0BBD1DEC0D6E3C1D7E4C3D9E6C6DCE9 C9DFECCBE1EECDE3F0CEE4F1C7DAE8C7D9E7C7D9E7C5D8E6C4D7E5C3D6E4C3D6E4C0D6E3C5DBE8 C4DCE8C3DBE7C2DAE6C2DAE6C1D9E5C0D8E4C0D8E4C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEB C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2DCEBC1DDEBC1DDEBC1DDEBC1DDEBC1DDEBC1DDEBC1DDEBBBD7E5BBD7E5 BBD7E5BBD7E5BBD7E5BBD7E5BBD7E5BAD7E5BADAE5B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5 BDD9E5C0DAE7C0DAE7C3DAE8C4DBE9C5DBE9C6DCEAC7DDEBC7DDEAC9DCEAC9DDE8CADEE9CBDFEA CCE0EBCCE0EBCDE1ECCDE1ECCBDFEACADEE9C9DDE8C9DDE8CADEE9CCE0EBCDE1ECCFE3EED2E4EE D2E5ECD5E6EED8E9F1DAEBF3DCEDF4E1EEF4E2F0F3E4EFF3E4EFF1E7F1F3E8F2F3EBF3F5ECF5F4 EEF7F6EEF7F6F1F5F4F1F5F4F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8F5F9F8F9FDFCF9FDFCF9FDFC F9FDFCF9FDFCF9FDFCF9FDFCF9FDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFCFCFCFBFDFCF9FBFAF7FBFAF7FBFA F7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F4FAFAEEF6F8EEF6F8EEF6F8EEF6F8EEF6F8EEF6F8EEF6F8EEF6F8EAF2F4EBF3F5 ECF4F6ECF4F6EAF2F4E6EEF0E2EAECE0E8EBDBE2E8DBE2E8DBE2E8DCE3E9DCE3E9DCE3E9DCE3E9 DDE4EAE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDDFE8EFDFE8F1DEE8F1DDE7F0DCE6EF DBE5EEDBE5EEDAE4EDDAE4EDDCE6EFDCE6EFDCE6EFDCE6EFDDE7F0DDE7F0DDE7F0DDE7F0D6E3EC D6E3ECD5E2EBD5E2EBD4E1EAD3E0E9D2DFE8D2DFE8D8E5EED8E5EED8E5EED8E5EED8E5EED8E5EE D8E5EED8E5EEDAE8F1D7E8F0D9E7F2D6E7EFD7E5F0D4E5EDD6E4EFD3E4ECD3E1ECD1E2EAD3E1EC D1E2EAD3E1ECD1E2EAD3E1ECD1E2ECD1E1EED0E2EED0E0EFCFE1EDCFDFEECDDFEBCDDDECCCDEEA CDDDECCCDEEACDDDECCCDEEACDDDECCCDEEACDDDECCCDEEAC5D8E6C5D9E4C5D8E6C5D9E4C5D8E6 C5D9E4C6D8E6C5D9E4C8DBE9C8DCE7C9DBE9C8DAE6C8DAE8C8DAE6C8DAE8C6D9E7C7DAE8C6D9E7 C5D8E6C1D7E4BED4E2BBD2E0B9D0E0B6D0E1BBD6E9BBD6E9BAD6EBBAD6EBB8D7ECB7D6EBB7D6EB B7D6EBBAD6EBBBD6EBBAD5EAB9D4E9B9D4E9B8D3E8B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7 B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B8D3E8B9D4E9B9D4E9BAD5EABBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBED9ECBFDAEDBFDAEDC0DBEEC1DCEFC1DCEDC0D7E7C1D8E6C2D9E7 C2D9E7C1D8E6BFD6E4BDD4E2BCD3E1BDD4E2BDD4E2BDD4E2BED5E3BED5E3BED5E3BFD6E4BDD7E6 BBD6E9BAD6EBBAD6EBBBD6E9BBD6E9BCD6E7BCD6E5BED5E3C5DBE9C5DBE8C8DBE9C9DDE8CBDDE9 CBDDE9CCDEEACCDEEACEE0ECCEE0ECCEDEEDCDDFEBCDDDECCBDDE9CADCEAC9DDE8C6D8E6C5D9E4 C5D8E6C3D9E4C3D9E6C3D9E4C3D9E6C3D9E6C2D5E3C3D6E5C5D6E6C6D9E8C9DAEACADDECCCDDED CCDFEEC6D7E7C5D8E7C6D7E7C5D8E7C6D7E7C5D8E7C6D7E7C5D8E7C1D7E5C1D7E5C2D8E6C3D9E7 C4DAE8C4DAE8C5DBE9C5DBE9C9DFEDCAE0EECBE1EFCAE0EEC7DDEBC1D7E5BCD2E0BACDDBABBBCA B2C0CDB7C5D2BBC9D6BFCDDAC5D3E0CDDBE8D3E1EED3E1EED0DEEBCCDAE7C8D6E3C6D4E1C6D4E1 C7D5E2C7D7E4CADBEBC9DCEBC9DAEAC8DBEAC8D9E9C6D9E8C6D7E7C5D8E7C4D5E5C3D6E5C3D4E4 C1D4E3C2D3E3C0D3E2C0D1E1BFD2E1BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3 C0D6E4C0D6E4C0D6E4BFD5E3BFD5E3BFD5E3BED4E2C0D3E1C1D2DCC2D3DBC5D3DEC5D6DEC8D6E1 C8D9E1CBD9E4CADBE3CBE1EECAE0EBC8DEEBC6DCE7C3D9E6C1D7E2BFD5E2BED4DFC0D6E3C1D7E2 C3D9E6C5DBE6C8DEEBCAE0EBCCE2EFCFE3EECADCEAC9DBE7C9DBE9C8DAE6C7D9E7C5D9E4C5D8E6 C4D8E3C7DAE8C5DBE6C4DAE7C2DAE4C2DAE6C1D9E3C0D8E4C0D8E4C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEB C6DDEBC6DDEBC4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C0DAE7C2DCEBC1DDEBC1DDEBC1DDEBC1DDEBC1DDEBC1DDEBC1DDEB BBD7E5BBD7E5BBD7E5BBD7E5BBD7E5BBD7E5BBD7E5BAD7E5BADAE5B9DBE5BADAE5BADAE5BCDAE5 BCDAE5BDD9E5BDD9E5C0DAE7C0DAE7C3DAE8C4DBE9C5DBE9C6DCEAC7DDEBC7DDEAC9DCEAC9DDE8 CADEE9CADEE9CBDFEACCE0EBCDE1ECCDE1ECCBDFEACADEE9C9DDE8C9DDE8CADEE9CCE0EBCDE1EC CFE3ECD3E6EDD4E7EED6E7EFD9EAF1DBECF3DDEFF3E2F0F3E3F1F2E4EFF1E4F0F0E7F1F2E8F2F1 EBF4F3ECF5F4EEF7F6EEF7F6F1F5F4F1F5F4F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8F5F9F8F9FDFC F9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCF9FDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFCFCFCFBFDFCF9FBFA F7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F4FAF8F0F6F6EEF7F6EEF6F8EEF7F6EEF6F8EEF7F6EEF6F8EEF7F6 EDF5F7EEF7F6EFF7F9EEF7F6ECF4F6E9F2F1E5EDEFE3EBEDDCE4E7DCE3E9DDE4EADDE4EADDE4EA DDE4EADDE4EADDE4EAE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDE0E7EDDFE8EDDFE8F1DEE8F1 DDE7F0DDE7F0DCE6EFDBE5EEDAE4EDDAE4EDDAE4EDDAE4EDDBE5EEDBE5EEDBE5EEDBE5EEDBE5EE DBE5EED6E3ECD5E3ECD5E1EDD3E1EAD3DFEBD2E0E9D2DEEAD1DFE8D6E2EED5E3ECD6E2EED5E3EC D6E2EED5E3ECD6E2EED5E3EED6E7F1D4E6F0D5E6F0D3E5EFD3E4EED1E3EDD2E3EDD0E2ECD1E2EC D0E2ECD1E2ECD0E2ECD1E2ECD0E2ECD1E2ECD0E2EED0E2F0CEE1EFCFE1EFCDE0EECDDFEDCBDEEC CCDEECCADDEBCCDEECCBDEECCCDEECCBDEECCCDEECCBDEECCCDEECCBDEECC3D9E6C2DAE6C2DAE6 C3D9E6C3D9E6C3D9E6C3D9E6C5D8E6C7DAE8C6D9E7C7D9E7C7D9E7C7D9E7C7D9E7C7D9E7C7D9E7 C9DBE9C7DAE8C6D9E7C5D8E6C3D6E4C0D6E4BFD5E3BDD4E4BED8E9BDD8EBBCD7EABBD7ECBAD6EB B8D7EBBAD6ECB9D5EABBD6EBBBD6EBBAD5EAB9D4E9B9D4E9B8D3E8B7D2E7B7D2E7B7D2E7B7D2E7 B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B8D3E8B9D4E9B9D4E9BAD5EABBD6EB BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBED9ECBED9ECBED9ECBFDAEDBFDAEDC0DBEEC0DBEEC0DBECC1D8E8 C2D9E7C3DAE8C3DAE8C3DAE8C2D9E7C0D7E5BFD6E4BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3 BFD6E4BDD7E6BBD6E9BAD6EBBAD6EBBAD6EBBBD6EBBBD6E9BCD6E7BCD6E5C4DBEBC5DBE9C6DCEA C8DBE9C9DCEACBDDE9CCDEEACCDEECCEE0EECDDFEDCDDEEECCDEECCBDCECC9DCEAC9DCEBC8DBE9 C5D8E7C3D9E6C3D9E7C2DAE6C3D9E7C2DAE6C2D9E7C2D9E7C0D6E4C3D6E5C4D7E6C6D9E8C7DAE9 C9DCEBCADDECCBDEEDC5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C1D7E5C1D7E5 C2D8E6C2D8E6C3D9E7C4DAE8C5DBE9C5DBE9C2D8E6C0D6E4BED4E2BCD2E0B9CFDDB8CEDCB6CCDA B8CBD9B7C7D6BCCAD7C0CEDBC1CFDCC2D0DDC5D3E0CBD9E6D0DEEBD2E0EDD0DEEBCDDBE8CAD8E5 C9D7E4C9D7E4CBD9E6CADAE7CADBEBC9DCEBC8DBEAC7DAE9C6D9E8C6D9E8C5D8E7C5D8E7C3D6E5 C3D6E5C2D5E4C1D4E3C1D4E3C0D3E2BFD2E1BFD2E1BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3 BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BED4E2BED4E2BED4E2BED4E2C0D3E1C3D4DEC6D4DDC7D5DE C9D7E0CAD8E1CCDAE3CDDBE4CEDCE5CFE3EECFE3ECCDE1ECCBDFE8C8DCE7C6DAE3C5D9E4C4D8E1 C2D6E1C3D7E0C4D8E3C7DBE4C9DDE8CBDFE8CDE1ECCDE1EACDDFEBCDDEE8CDDDEACBDDE7CADCE8 C9DBE5C9DBE7C8DCE5C7DBE6C7DBE4C6DAE5C3DAE2C3D9E4C2D9E1C1D7E2C1D7E2C0D8E4C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C1D8E6 C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6BFD9E6C1DBE8C0DCE8C0DCE8C0DCE8C0DCE8C0DCE8 C0DCE8C0DCE8BCD8E4BCD8E4BCD8E4BCD8E4BCD8E4BCD8E4BCD8E4BBD9E4BADAE5B9DBE5BADAE5 BADAE5BCDAE5BCDAE5BDD9E5BDD9E5C0DAE7C0DAE7C3DAE8C4DBE9C5DBE9C6DCEAC7DDEBC7DDEA C8DBE9C8DCE7C9DDE8CADEE9CBDFEACBDFEACCE0EBCCE0EBCBDFEACADEE9C9DDE8C9DDE8CADEE9 CCE0EBCDE1ECCFE3ECD4E7EED5E8EED8E9F0DAECF0DCEEF2DFF1F3E3F1F4E4F2F3E4EFF1E4F0F0 E7F1F2E8F2F1EBF4F3ECF5F2EEF7F4EEF7F4F1F5F4F1F5F4F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8 F5F9F8F8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBF8FCFBFBFBFBFBFBFBFBFBFBFBFBFB FBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFBFBFB FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFB FBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFBFBFB FAFCFBF8FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F4F8F7F4F8F7F4F8F7F4F8F7 F4F8F7F4F8F7F4F8F7F4F8F7F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F4FAF8F0F6F4EEF7F4EEF7F6EEF7F4EEF7F6EEF7F4 EEF7F6EEF7F4F0F9F8F0F9F6F0F9F8EFF8F5EDF6F5EAF3F0E7F0EFE5EEEDDFE7EADFE6ECDFE6EC DFE6ECDEE5EBDEE5EBDEE5EBDEE5EBE1E8EEE1E8EEE1E8EEE1E8EEE1E8EEE1E8EEE1E8EEE0E9EE E0E9F2DFE9F2DEE8F1DDE7F0DCE6EFDCE6EFDBE5EEDBE5EED9E3ECD9E3ECD8E2EBD8E2EBD8E2EB D8E2EBD8E2EBD6E3ECD4E2EDD2E3EDD3E1EED1E2ECD2E0EDCFE0EAD0DEEBCEDFE9D2E0EDD0E1EB D2E0EDD0E1EBD2E0EDD0E1EBD2E0EDD0E0EDD1E3EFD0E4EFD1E3EFCFE3EECFE1EDCDE1ECCEE0EC CCE0EBCEE0ECCDE1ECCEE0ECCDE1ECCEE0ECCDE1ECCEE0ECCDE1ECCDE0EECBE1EFCDE0EFCAE0EE CBDEEDC8DEECCADDECC7DDEBC9DCEBC7DDEBC9DCEBC7DDEBC9DCEBC7DDEBC9DCEBC7DDEBC0DAE7 C0DAE7C0DAE7C2D9E7C2D9E7C2D9E7C2D9E7C3D9E7C4D7E6C5D8E7C6D7E7C6D7E7C7D7E7C7D7E7 C7D7E7C7D7E6CBDBE8CADCE8CADCE8C9DDE8C9DDE8C6DCE9C6DCEAC5DCECC3DAEAC1DBECC0DAEB BED9ECBDD8EBBBD8EABBD6EBBAD5EABBD6EBBBD6EBBAD5EAB9D4E9B9D4E9B8D3E8B7D2E7B7D2E7 B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B8D3E8B9D4E9B9D4E9 BAD5EABBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBC0DBEEC0DBEEBFDAEDBFDAEDBFDAEDBFDAEDBED9EC BED9EAC2D9E9C3DAE8C5DCEAC6DDEBC6DDEBC6DDEBC5DCEAC4DBE9BFD6E4BFD6E4BFD6E4BFD6E4 BFD6E4BFD6E4BED5E3BCD6E5BAD6EBB8D7ECB8D7ECB8D7EBBAD6EBBAD7E9BBD6E9BCD6E7C1DBEA C3DAE8C5DBE9C6DCE9C7DDEAC9DCEACADDEBCADDEBCBDEEDCBDEEDCBDEEFCADDECC9DCEDC6DCEA C6DBECC5DBE9C2D7E8C1D8E6C1D8E8BFD9E6C1D8E8BFD9E6BFD9E8C1D8E8C0D5E6C0D5E6C1D6E7 C3D8E9C4D9EAC5DAEBC7DCEDC7DCEDC2D7E8C2D7E8C2D7E8C2D7E8C2D7E8C2D7E8C2D7E8C2D7E8 C0D6E4C0D6E4C1D7E5C2D8E6C3D9E7C3D9E7C4DAE8C4DAE8C1D7E5BED4E2B8CEDCB4CAD8B3C9D7 B6CCDAB9CFDDBED1DFC4D4E3C8D6E3C9D7E4C8D6E3C5D3E0C6D4E1CAD8E5CEDCE9D1DFECD0DEEB CEDCE9CDDBE8CDDBE8CEDCE9CFDDEACEDEEBC8DBEAC6DCEAC5DBE9C5DBE9C4DAE8C3D9E7C2D8E6 C2D8E6C1D7E5C1D7E5C0D6E4BFD5E3BFD5E3BED4E2BDD3E1BDD3E1BFD5E3BFD5E3BFD5E3BFD5E3 BFD5E3BFD5E3BFD5E3BFD5E3BDD3E1BDD3E1BDD3E1BED4E2BED4E2BED4E2BED4E2C0D3E1C9D7E0 CAD7DFCCD9E1CDDAE2CFDCE4D0DDE5D2DFE7D2DFE7D1E5EED0E4EDCFE3ECCDE1EACCE0E9CADEE7 C8DCE5C8DCE5C3D7E0C4D8E1C5D9E2C7DBE4C9DDE6CBDFE8CCE0E9CEE0EAD1E2ECD0E1EBD0E1EB CFE0EACEDFE9CCDEE8CCDEE8CBDDE7C8DAE4C7DBE4C6DAE3C5D9E2C3DAE2C2D9E1C1D8E0C1D7E2 C0D8E4C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C3DAE8 C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5BED8E5BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BCDAE5BADAE5 B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5C0DAE7C0DAE7C3DAE8C4DBE9C5DBE9C6DCEA C7DDEBC7DDEAC7DAE8C8DCE7C8DCE7C9DDE8CADEE9CBDFEACBDFEACBDFEACBDFEACADEE9C9DDE8 C9DDE8CADEE9CCE0EBCDE1ECCFE3ECD4E7EED5E8ECD8EAEEDAECF0DDEFF1DFF1F3E4F2F3E5F3F3 E4F0F0E4F0EEE7F1F0E8F3EFEBF4F1ECF5F2EEF7F4EEF7F4F1F5F4F1F5F4F2F6F5F3F7F6F3F7F6 F4F8F7F5F9F8F5F9F8F7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAF8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8FAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFDFDFDFCFCFC FBFBFBFBFBFBF9FBFAF7F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F0F6F4EEF7F4EEF7F4EEF7F4 EEF7F4EEF7F4EEF7F4EEF7F4F0F9F6F0F9F6EFF8F5EDF6F3EBF4F1E9F2EFE7F0EDE6EFEEE2EAED E2E9EFE2E9EFE1E8EEE0E7EDE0E7EDDFE6ECDFE6ECE2E9EFE2E9EFE2E9EFE2E9EFE2E9EFE2E9EF E2E9EFE1EAEFE1EAF1DFE9F2DFE9F2DEE8F1DDE7F0DCE6EFDCE6EFDCE6EFD8E2EBD7E1EAD7E1EA D6E0E9D6E0E9D5DFE8D5DFE8D3E0E9D3E1ECD1E1EED1E1EED0E0EDCFDFECCEDEEBCEDEEBCDDDEA CEDEEBCEDEEBCEDEEBCEDEEBCEDEEBCEDEEBCEDEEBCDDFEBCEE2EDCDE1ECCDE0EECCE0EBCBDEEC CADEE9CADDEBC9DDE8CCDFEDCCE0EBCCDFEDCCE0EBCCDFEDCCE0EBCCDFEDCAE0EDCAE0EECAE0EE C9DFEDC8DEECC7DDEBC7DDEBC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEAC6DCEA C5DCEABFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C2D9E7C2D9E7C1D7E5C3D6E5C4D5E5C5D6E6 C7D7E7C7D7E7C8D8E8C8D8E7CDDEE8CDDEE8CEDFE9CEE0EACFE1EBCFE3EED0E3F1CEE4F2C9DFED C7DEEEC6DDEDC2DCEDC0DAEBBDD8E9BCD5E9BBD6E9BBD6EBBBD6EBBAD5EAB9D4E9B9D4E9B8D3E8 B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B8D3E8 B9D4E9B9D4E9BAD5EABBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBC1DCEFC0DBEEC0DBEEBFDAEDBFDAED BED9ECBED9ECBDD8E9C4DBEBC5DCEAC7DEECC9E0EEC9E0EEC9E0EEC8DFEDC7DEECC1D8E6C1D8E6 C0D7E5C0D7E5BFD6E4BFD6E4BED5E3BCD6E5BAD6EBB8D7ECB8D7ECB8D7ECBAD6ECBAD6EBBBD6EB BBD6E9C0DAEBC1DBEAC3DAEAC5DBE9C6DCEAC7DDEAC9DCEAC9DCEBCADDEEC8DDEEC9DCEDC6DBEC C5DAEBC5DAEBC4D9EAC3DAEAC0D7E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED5E5 C0D5E6C0D5E6C1D6E7C2D7E8C3D8E9C4D9EAC4D9EAC1D6E7C1D6E7C1D6E7C1D6E7C1D6E7C1D6E7 C1D6E7C1D6E7BFD5E3C0D6E4C0D6E4C1D7E5C2D8E6C3D9E7C3D9E7C3D9E7C7DDEBC3D9E7BED4E2 BAD0DEBBD1DFBFD5E3C4DAE8CADDEBC7D7E6CBD9E6CCDAE7CAD8E5C7D5E2C6D4E1CAD8E5CEDCE9 D0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD1DFECD2E0EDD1E1EEC7DAE9C5DBE9C5DBE9C4DAE8C3D9E7 C2D8E6C2D8E6C1D7E5C1D7E5C1D7E5C0D6E4BFD5E3BFD5E3BED4E2BDD3E1BDD3E1BFD5E3BFD5E3 BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BCD2E0BDD3E1BDD3E1BED4E2BED4E2BFD5E3BFD5E3 C1D4E2CCDAE3CEDBE3CFDCE4D0DDE5D2DFE7D4E1E9D5E2EAD5E2EAD3E6EDD2E5ECD1E4EBD0E3EA CEE1E8CDE0E7CCDFE6CCDFE6C7DAE1C7DAE1C8DBE2CADDE4CBDEE5CDE0E7CEE1E8CEE1E8D2E3EB D4E2EBD3E1EAD1E2EAD0E1E9CFE0E8CEDFE7CDE0E7C8DBE2C8DBE2C6DAE1C5D9E0C5D9E0C4D8DF C3D7DEC1D8E0C0D8E4C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7 C0DAE7C0DAE7C0DAE7BED8E5BED8E5BED8E5BED8E5BED8E5BED8E5BED8E5BED8E5BFDBE6BFDBE6 BFDBE6BFDBE6BFDBE6BFDBE6BFDBE6BFDBE6BDD9E4BDD9E4BDD9E4BDD9E4BDD9E4BDD9E4BDD9E4 BCDAE4BADAE5B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5C0DAE7C0DAE7C3DAE8C4DBE9 C5DBE9C6DCEAC7DDEBC7DDEAC7DAE8C7DBE6C7DBE6C8DCE7C9DDE8CADEE9CADEE9CBDFEACBDFEA CADEE9C9DDE8C9DDE8CADEE9CCE0EBCDE1ECCFE3ECD4E7EDD5E8ECD7E9EDDAECEEDCEEF0DEF0F2 E3F1F2E4F2F2E4F0F0E4F0EEE7F1F0E8F3EFEBF4F1ECF5F0EEF7F2EEF7F2F1F5F4F1F5F4F2F6F5 F3F7F6F3F7F6F4F8F7F5F9F8F5F9F8F7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAF8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8FAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFDFDFDFDFDFD FCFCFCFBFBFBFAFAFAFAFAFAF9FBFAF7F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F0F6F4F0F6F4 F0F6F4F0F6F4F0F6F4F0F6F4F0F6F4F0F6F4F0F6F4EFF5F3EDF3F1EBF1EFE9EFEDE7EDEBE6ECEA E6ECECE6EEF0E5EDF0E5EDF0E4ECEFE3EBEEE2EAEDE1E9ECE1E9ECE2EAEDE2EAEDE2EAEDE2EAED E2EAEDE2EAEDE2EAEDE1EAEFE1EAF1E0EAF3E0EAF3DFE9F2DEE8F1DDE7F0DDE7F0DCE6EFD8E2EB D8E2EBD7E1EAD6E0E9D5DFE8D4DEE7D3DDE6D1DEE7D3E1ECD0E0EDD0E0EDCFDFECCEDEEBCDDDEA CDDDEACDDDEACCDCE9CCDCE9CCDCE9CCDCE9CCDCE9CCDCE9CCDCE9CBDDE9CCDFEDCAE0EDC9DFED C8DEEBC7DDEBC7DDEAC6DCEAC6DCE9C8DEECC8DEEBC8DEECC8DEEBC8DEECC8DEEBC8DEECC8DEEC C8DEECC7DEEEC6DDEDC6DDEDC5DCECC4DBEBC3DAEAC3DAEAC3DAEAC3DAEAC3DAEAC3DAEAC3DAEA C3DAEAC3DAEAC1DBEABEDBE9BEDBE9BEDBE9BEDBE9BFDBE9BFDBE9C0DAE9C2D9E9C0D5E6C3D6E7 C5D6E8C6D7E9C8D7EAC9D8EBCBD8EBCCD9E9D1DFEAD2E0E9D3E1EAD2E3EBD4E5EDD5E6F0D5E7F3 D5E8F6D0E3F1CCE2F0CAE0EEC7DEEEC4DBEBBFD9E8BFD6E8BCD6E7BBD6E9BBD6EBBAD5EAB9D4E9 B9D4E9B8D3E8B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7 B7D2E7B8D3E8B9D4E9B9D4E9BAD5EABBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBC0DBEEBFDAEDBFDAED BFDAEDBFDAEDBFDAEDBFDAEDBED9EAC7DEEEC8DFEDCAE1EFCBE2F0CBE2F0CAE1EFC9E0EEC8DFED C3DAE8C3DAE8C2D9E7C1D8E6C0D7E5BFD6E4BED5E3BCD6E5B8D7EBB7D7EEB7D7EEB7D7ECB8D7EC B8D7EBBAD6EBBBD6E9C0DAEBC0DAE9C2D9E9C3DAE8C5DBE9C6DCEAC6DCEAC7DDEBC6DBECC5DCEE C5DAEDC4DBEDC3DAECC2D9EBC1D8EABFD9EABED8E9BED8E9BED8E9BDD8E9BDD8E9BDD8E9BDD8E9 BDD8E9BED5E7BED5E7BED5E7BFD6E8BFD6E8C0D7E9C0D7E9C1D8EAC0D7E9C0D7E9C0D7E9C0D7E9 C0D7E9C0D7E9C0D7E9C0D7E7BFD5E3BFD5E3BFD5E3C0D6E4C1D7E5C2D8E6C2D8E6C3D9E7C6DCEA C4DAE8C1D7E5C0D6E4C0D6E4C3D9E7C7DDEBCBDEECC4D4E3C8D6E3CAD8E5C8D6E3C6D4E1C7D5E2 CBD9E6CFDDEAD0DEEBD1DFECD1DFECD2E0EDD3E1EED3E1EED2E0EDD0E0EDC5DBE9C3DAE8C3DAE8 C2D9E7C1D8E6C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5BFD6E4BED5E3BED5E3BDD4E2BCD3E1BCD3E1 BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BDD3E1BDD3E1BED4E2BFD5E3C0D6E4 C1D7E5C2D8E6C4D7E5CEDCE5D2DDE3D3DEE4D4DFE5D6E1E7D8E3E9D9E4EAD9E4EAD2E5ECD1E4EB D1E4EBD0E3EACFE2E9CEE1E8CDE0E7CDE0E7CBDEE5CBDEE5CCDFE6CDE0E7CEE1E8CFE2E9D0E3EA D1E2EAD4E2EBD4E2EBD3E1EAD3E1EAD0E1E9CFE0E8CFE0E8CEDFE7C8DBE2C8DBE2C6DAE1C5D9E0 C5D9E0C4D8DFC3D7DEC1D8E0C1D7E4C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6 C1D8E6C1D8E6C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5BFD9E6BFD9E6BFD9E6 BFD9E6BFD9E6BFD9E6BFD9E6BFD9E6BDD7E4BDD7E4BDD7E4BDD7E4BDD7E4BDD7E4BDD7E4BDD7E4 BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5BEDAE5 BEDAE5BEDAE5BDDBE5BADAE5B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5C0DAE7C0DAE7 C3DAE8C4DBE9C5DBE9C6DCEAC7DDEBC7DDEAC6D9E7C6DAE5C7DBE6C7DBE6C8DCE7C9DDE8CADEE9 CADEE9CBDFEACADEE9C9DDE8C9DDE8CADEE9CCE0EBCDE1ECCFE3ECD2E5EBD2E5E9D5E7E9D8EAEC DAECEEDCEEEEE1EFEFE2F0F0E4F0EEE4F0EEE7F2EEE8F3EFEBF4EFECF5F0EEF7F2EEF7F2F1F5F4 F1F5F4F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8F5F9F8F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9F6FAF9 F6FAF9F6FAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFB FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9 F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9 F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9 F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7 F7F7F7F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFBFBFB FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFD FDFDFDFCFCFCFBFBFBFAFAFAFAFAFAF9F9F9F8FAF9F6F8F7F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7 F4F8F7F4F8F7F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F0F6F4F0F6F4F0F6F4F0F6F4F0F6F4F0F6F4F0F6F4F0F6F4F1F7F5EFF5F3ECF2F0E9EFEDE7EDEB E6ECEAE6ECEAE6ECECE9F1F3E9F1F4E8F0F3E6EEF1E5EDF0E3EBEEE2EAEDE2EAEDE3EBEEE3EBEE E3EBEEE3EBEEE3EBEEE3EBEEE3EBEEE2EBF0E2EBF2E1EBF4E0EAF3E0EAF3DFE9F2DEE8F1DDE7F0 DDE7F0DAE4EDD9E3ECD8E2EBD7E1EAD5DFE8D4DEE7D3DDE6D0DDE6D2E0EBD0E0EDCFDFECCEDEEB CDDDEACDDDEACCDCE9CCDCE9CCDCE9CCDCE9CCDCE9CCDCE9CCDCE9CCDCE9CCDCE9CBDDEBCCDFEE C9DFEDC9DFEDC8DEECC7DDEBC7DDEBC6DCEAC6DCEAC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEB C7DDEBC6DDEBC6DDEDC5DCECC5DCECC4DBEBC3DAEAC2D9E9C2D9E9C2D9E9C2D9E9C2D9E9C2D9E9 C2D9E9C2D9E9C2D9E9C2D9E9C0DAE9BEDBE9BCDCE9BCDCE9BCDCE9BEDBE9BFDBE9C0DAE9C0DAE9 C1D6E7C2D7E8C6D7E9C7D8EACAD9ECCBDAEDCEDBEECFDCECD5E2EBD6E3EBD7E4ECD7E6EDD8E6EF D9E7F0D8E9F3D7E9F5D5E7F3D3E6F4D0E3F1CAE0EEC7DDEBC2D9E9BFD6E6BED5E7BCD5E9BBD6EB BAD5EAB9D4E9B9D4E9B8D3E8B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7 B7D2E7B7D2E7B7D2E7B8D3E8B9D4E9B9D4E9BAD5EABBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBBD6EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBED9ECBFDAEDBFDAEDC0DBEEC1DCEFC1DCEDCAE1F1CBE2F0CBE2F0CBE2F0CAE1EFC9E0EE C7DEECC5DCEAC5DCEAC4DBE9C3DAE8C2D9E7C0D7E5BFD6E4BED5E3BBD5E4B8D7ECB7D7EEB7D7EE B7D7EEB8D7ECB8D7ECBAD6EBBAD6EBBED9ECBFD9EAC2D9EBC2D9E9C4D9EAC5DBE9C6DCEAC6DBEC C4DBEDC3DAECC3DAECC2D9EBC1D8EABED8E9BED8E9BED8E9BDD7E8BCD7E8BCD7E8BCD7E8BCD7E8 BCD7E8BBD8E8BCD7E8BBD5E6BDD4E6BDD4E6BED5E7BED5E7BED5E7BED5E7BED5E7BFD6E8BFD6E8 BFD6E8BFD6E8BFD6E8BFD6E8BFD6E8BFD6E6BED3E4BED4E2BFD5E3BFD5E3C0D6E4C1D7E5C2D8E6 C2D8E6BED4E2BED4E2BDD3E1BDD3E1BED4E2BED4E2BFD5E3C2D5E3C1D1E0C6D4E1C8D6E3C7D5E2 C5D3E0C7D5E2CBD9E6D0DEEBD0DEEBD1DFECD2E0EDD3E1EED3E1EED1DFECD0DEEBCDDDEAC4DAE8 C3DAE8C2D9E7C1D8E6C0D7E5C0D7E5BFD6E4BFD6E4C0D7E5C0D7E5BFD6E4BED5E3BED5E3BDD4E2 BCD3E1BCD3E1BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3C0D6E4 C2D8E6C3D9E7C5DBE9C6DCEAC8DCE7D0DDE6D2DDE3D4DFE5D5E0E6D7E2E8D8E3E9D9E4EADAE5EB D1E2EAD1E2EAD1E2EAD0E1E9CFE0E8CFE0E8CEDFE7CEDFE7D0E1E9D0E1E9D0E1E9D1E2EAD2E3EB D2E3EBD3E4ECD3E4ECD4E2EBD3E1EAD3E1EAD2E0E9D1DFE8D0DEE7CEDFE7CEDFE7C8DBE2C8DBE2 C7DAE1C6D9E0C5D9E0C4D8DFC3D7DEC1D8E0C1D7E4C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED5E3BED8E5 BED8E5BED8E5BED8E5BED8E5BED8E5BED8E5BED8E5BCD6E3BCD6E3BCD6E3BCD6E3BCD6E3BCD6E3 BCD6E3BCD6E3BDD9E4BDDAE2BDDAE2BDDAE2BDDAE2BDDAE2BDDAE2BDDAE2BFDCE4BFDCE4BFDCE4 BFDCE4BFDCE4BFDCE4BFDCE4BEDCE6BADAE5B9DBE5BADAE5BADAE5BCDAE5BCDAE5BDD9E5BDD9E5 C0DAE7C0DAE7C3DAE8C4DBE9C5DBE9C6DCEAC7DDEBC7DDEAC5D8E6C5D9E4C6DAE5C7DBE6C8DCE7 C8DCE7C9DDE8C9DDE8CBDFEACADEE9C9DDE8C9DDE8CADEE9CCE0EBCDE1ECCFE3ECCFE2E6D0E4E5 D3E5E7D5E7E9D8EAEADAECECDFEDEDE0EEEEE4F0EEE4F0EEE7F2EEE8F3EFEBF4EFECF5F0EEF8F0 EEF7F2F1F5F4F1F5F4F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8FAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8 F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8 F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8 F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6 F6F6F6F6F6F6F6F6F6F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8FAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAF9F9F9F8F8F8F7F9F8F5F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F0F6F2F0F6F2F0F6F2F0F6F2F0F6F2F0F6F2F0F6F2F0F6F2F3F9F5F1F7F3EDF3EF EAF0ECE8EEEAE7EDE9E8EEEAE9EFEDECF4F6EBF3F6EAF2F5E8F0F3E6EEF1E5EDF0E3EBEEE3EBEE E4ECEFE4ECEFE4ECEFE4ECEFE4ECEFE4ECEFE4ECEFE3ECF1E3ECF3E2ECF5E1EBF4E0EAF3DFE9F2 DFE9F2DEE8F1DEE8F1DCE6EFDBE5EEDAE4EDD8E2EBD6E0E9D5DFE8D3DDE6D1DEE7CFDFECCEE0EE CDDFEDCDDFEDCCDEECCBDDEBCADCEACADCEACBDDEBCBDDEBCBDDEBCBDDEBCBDDEBCBDDEBCBDDEB CADDEBCAE0EEC9E0EEC9E0EEC8DFEDC7DEECC6DDEBC6DDEBC5DCEAC4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C5DCECC2DCEBC2DCEBC1DBEAC0DAE9BFD9E8BFD9E8BED8E7BED8E7 BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BDD9E7BCDCE9BBDDE9BBDDE9BCDCE9BEDBE9BFDBE9 C0DAE9C0DAE9C3D8E9C4D9EAC8D9EBCADBEDCDDCEFCEDDF0D2DFF2D2DFEFD8E5EEDAE5EBDAE5EB D9E6ECD9E6EED9E7F0D9E7F0D7E8F2D9EAF4D7E9F5D3E7F2CEE1EFCADDEBC4DAE8C1D7E5BED5E5 BCD5E9BBD6EBBAD5EAB9D4E9B9D4E9B8D3E8B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7 B7D2E7B7D2E7B7D2E7B7D2E7B7D2E7B8D3E8B9D4E9B9D4E9BAD5EABBD6EBBBD6EBBBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBB9D4E7BAD5E8BCD7EABED9ECC0DBEEC2DDF0C4DFF2C5E0F1CDE4F4CDE4F2CDE4F2CBE2F0 C9E0EEC6DDEBC3DAE8C1D8E6C6DDEBC6DDEBC4DBE9C3DAE8C1D8E6BFD6E4BED5E3BBD5E4B8D7EC B5D8EEB7D7EEB7D7EEB8D7ECB8D7ECBAD6EBBAD6EBBDD8EBBDD8E9BFD9EAC0DAE9C3DAEAC3DAEA C5DBE9C5DAEBC3DAECC2D8EDC2D8EDC1D7ECBED7EBBDD6EABDD6EABBD6E9BBD6E9BBD6E9BBD6E9 BAD7E9BAD7E9BAD7E9BAD7E9BBD6E9BBD5E6BDD4E6BDD4E6BDD4E6BCD3E5BCD3E5BCD3E5BCD3E5 BED5E7BED5E7BED5E7BED5E7BED5E7BED5E7BED5E7BED5E5BDD2E3BDD3E1BED4E2BFD5E3C0D6E4 C0D6E4C1D7E5C1D7E5BDD3E1BDD3E1BDD3E1BDD3E1BCD2E0BCD2E0BBD1DFBDD0DEC5D5E4C9D7E4 CAD8E5C9D7E4C6D4E1C6D4E1CAD8E5CFDDEAD0DEEBD2E0EDD3E1EED3E1EED2E0EDCFDDEACCDAE7 C8D8E5C3D9E7C2D9E7C1D8E6C1D8E6C0D7E5BFD6E4BED5E3BED5E3C0D7E5C0D7E5BFD6E4BED5E3 BED5E3BDD4E2BCD3E1BCD3E1BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3BFD5E3C1D7E5 C2D8E6C3D9E7C5DBE9C6DCEAC8DEECC9DFEDCCE0EBCFDCE5D2DDE3D3DEE4D5E0E6D6E1E7D8E3E9 D9E4EADAE5EBD0E1EBD0E1EBD0E1EBCFE0E8CFE0EACEDFE7CEDFE7D0DEE7D4E2EBD4E2EBD5E3EC D5E4EBD6E5ECD6E5ECD7E6EDD7E6EDD3E1EAD3E1EAD3E0E9D1DFE8D0DEE7D0DEE7CFDDE6CDDEE6 C8DAE4C8DAE4C7D9E3C5D9E2C5D9E2C4D8E1C3D7E0C1D7E2C0D8E4BED8E5C0D7E5BED8E5C0D7E5 BED8E5C0D7E5BED8E5C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C0D7E5BED8E5 C0D7E5BED8E5C0D7E5BED8E5C0D7E5BED8E5BED5E3BCD6E3BED5E3BCD6E3BED5E3BCD6E3BED5E3 BCD6E3BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BED8E7BCD6E5BCD6E5BCD6E5BCD6E5 BCD6E5BCD6E5BCD6E5BCD6E3BDD9E4BDDAE2BDD9E4BDDAE2BDD9E4BDDAE2BDD9E4BDDAE2BFDBE6 BFDCE4BFDBE6BFDCE4BFDBE6BFDCE4BFDBE6BEDCE6BADAE5BADAE5BADAE5BCDAE5BCDAE5BCDAE5 BDD9E5BDD9E5C0DAE7C0DAE7C1DBE8C4DBE9C4DBE9C5DCEAC6DDEBC6DDEBC2D9E7C3D9E6C4DAE7 C4DAE7C5DBE8C6DCE9C7DDEAC7DDEAC9DFECCADEE9C9DDE8C9DDE8CADEE9CCE0EBCDE1ECCFE3EC CDE0E6CEE1E5D1E3E7D3E5E9D6E8EAD8EAECDCECECDEECEDE4F0F0E4F0F0E7F1F0E8F2F1EBF4F1 ECF5F2EEF7F2EEF7F2F0F6F4F1F5F4F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F7F9F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8 F7F9F8FAFAFAF9FBFAFAFAFAF9FBFAFAFAFAF9FBFAFAFAFAF9FBFAF8F8F8F7F9F8F8F8F8F7F9F8 F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8 F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8 F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F6F6F6F5F7F6F6F6F6 F5F7F6F6F6F6F5F7F6F6F6F6F5F7F6F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8F8F8F8F7F9F8 FAFAFAF9FBFAFAFAFAF9FBFAFAFAFAF9FBFAFAFAFAF9FBFAFAFAFAF9FBFAFAFAFAF9FBFAFAFAFA F9FBFAFAFAFAF9FBFAFCFCFCFBFDFCFBFBFBF9FBFAF9F9F9F8FAF9F8F8F8F7F9F8F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F0F6F2F0F6F2F0F6F2F0F6F2F0F6F2F0F6F2F0F6F2F0F6F2F6FCF8 F4FAF6F0F6F2ECF2EEEAF0ECEAF0ECEBF1EDECF2F0EFF5F5ECF4F6EBF3F5E9F1F3E7EFF1E5EDEF E4ECEFE3EBEEE4ECEFE4ECEFE4ECEFE4ECEFE4ECEFE3EDEFE4EBF1E3ECF1E3ECF3E3ECF3E2EBF2 E2EBF2E1EAF1E0E9F0DEE8F1DEE8F1DDE7F0DCE6EFDBE5EED9E3ECD7E1EAD3E0E8D4DEE8D1DEE7 CFDFECCEE0EECEDEEDCCDEECCCDCEBCBDDEBCBDBEACADCEACDDDECCCDEECCDDDECCCDEECCDDDEC CCDEECCDDDECCCDEECCBE1EFCAE1EFC9E0EEC9E0EEC8DFEDC7DEECC6DDEBC6DDEBC4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBEBC2DCEBC3DAEAC0DAE9C1D8E8BFD9E8C0D7E7 BED8E7C0D7E7BED8E7C0D7E7BED8E7C0D7E7BED8E7C0D7E7BDD9E7BCDCE9BBDDE9BCDCE9BCDCE9 BEDBE9BFDBE9C0DAE9C2D9E9C4D9EAC7DAEBCADBEDCCDBEED0DDF0D2DFF2D5E0F4D5E1F1DBE5EF DBE6ECDBE6ECDBE6ECD9E6EED9E6EED8E6EFD6E7EFDBECF6D8EAF4D4E8F3D0E4EFCBDEECC6D9E7 C1D7E5BED5E5BBD6E9BAD6EBB9D5EAB8D4E9B8D4E9B7D3E8B6D2E7B6D2E7B6D2E7B6D2E7B6D2E7 B6D2E7B6D2E7B6D2E7B6D2E7B6D2E7B6D2E8B6D2E8B7D3E9B8D4EAB8D4EABAD5EABBD6EBBBD6EB BBD6EBBBD6EBBBD6EBBBD6EBBBD6EBBCD5E9BCD5E9BCD5E9BDD8EDBDD8EDBDD8EDBDD8EBBDD8EB BDD8EBBDD8EBBED7EBB8D1E5B9D2E6BBD4E8BED8E9C2DCEDC5DFF0C9E0F2CAE1F3CEE5F5CEE5F3 CEE4F2CBE2F0C9DFEDC4DBE9C1D7E5BED5E3C8DEECC6DDEBC6DCEAC3DAE8C2D8E6BFD6E4BFD5E3 BBD5E6BAD6ECB8D6EEB8D6EEB8D6EEB8D6EEB8D6EEB8D7ECBAD6ECBCD8EEBDD8EDBED9ECBFD9EA C2D9EBC3DAEAC5DBE9C5DAEBC2D9EBC0D9EDC1D7ECBED7EBBDD6EABDD6EABBD6E9BBD6E9BBD6E9 BBD6E9BAD7E9BAD7E9BAD7E9BAD7E9BAD7E9BBD6E9BBD5E6BBD5E6BCD3E5BAD4E5BCD3E5B9D3E4 BBD2E4B9D3E4BED5E7BCD6E7BED5E7BCD6E7BED5E7BCD6E7BED5E7BED5E7BCD3E3BCD3E3BDD4E4 BDD4E4BED5E5BFD6E6C0D7E7C0D7E7C2D9E9C1D8E8C1D8E8BFD6E6BFD6E6BED5E5BDD4E4BED4E2 C9DBE9CCDCEBCCDCEBC9D9E8C5D5E4C4D4E1C7D7E4CBDBE8CFDFECD2E0EDD3E1EED3E1ECD1DFEA CDDBE6C9D7E2C4D4E1C5D8E7C2D9E7C1D8E6C0D7E5BFD6E4BFD6E4BED5E3BED5E3C0D7E5C0D7E5 BFD6E4BED5E3BED5E3BDD4E2BCD3E1BDD3E1BFD5E3BFD5E2C1D4E2BFD5E2C1D4E2BFD5E2C1D4E2 BFD5E2C4D7E5C3D9E6C7DAE8C6DCE9CADDEBCAE0EDCEE1EFCFE1EDCFDCE4D1DCE2D4DDE4D4DFE5 D7E0E7D7E2E8D9E2E9D9E4EACEE0ECCEE0ECD0E0EDD1E2ECD2E2EFD2E3EDD5E3ECD6E3ECD6E3EB D6E3EBD9E3ECDAE5EBDBE4EBDCE5ECDDE6EDDCE7EDDAE4EDD8E5EDD8E2EBD5E2EAD3E0E9D1DFE8 CFDDE8CDDEE8C8DAE6C7D9E5C4D7E5C3D6E4C3D6E5C2D8E6C4DAE8C5DBE9C2DCE9C1DDE9C1DBE8 BFDBE7C0DAE7BEDAE6BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5 BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5 BDD9E5BED8E5BDD9E7BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9 BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD8E9BDD9E5BDD9E4BDD9E5BDD9E4BDD9E5BDD9E4BDD9E5 BDD9E4BFDBE7BFDBE6BFDBE7BFDBE6BFDBE7BFDBE6BFDBE7BFDBE7BEDCE7BEDCE7BEDCE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7C1DDE9C1DDE9C1DDE9C2DCE9C2DCE9C2DCE9C2DCE9C1DDEBC0DBEC C0DBECC0DBECC1DCEDC2DCEBC3DDECC5DCEAC5DCEAC6DDEBC6DCE9C5DBE8C4DAE7C7DBE6C8DCE7 C9DDE6CBDFE8CADEE5CBDFE6CEE1E8D0E3EAD4E5ECD7E8EFDBEAEFDCEBF0DEECEFDEECEFE2EDEF E3EEF0E6F0F1E7F1F2E8F2F1EAF3F2EEF4F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F5F7F6F3F7F6F5F7F6 F3F7F6F5F7F6F3F7F6F7F9F8F5F9F8F7F9F8F5F9F8F7F9F8F5F9F8F7F9F8F5F9F8F7F9F8F5F9F8 F7F9F8F5F9F8F7F9F8F5F9F8F7F9F8F5F9F8F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6 F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6 F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6 F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6 F5F7F6F3F7F6F9FBFAF7FBFAF9FBFAF7FBFAF9FBFAF7FBFAF9FBFAF7FBFAF7F9F8F5F9F8F7F9F8 F5F9F8F7F9F8F5F9F8F7F9F8F5F9F8F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6F5F7F6F3F7F6 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F4F8F7F4F8F7 F3F7F6F3F7F6F3F7F6F3F7F6F2F6F5F2F6F5F0F4F3F2F6F5F3F7F6F4F8F7F5F9F8F4F8F7F3F7F6 F2F6F5F1F5F4F1F5F4F0F4F3EFF3F2EEF2F1EEF2F1EDF1F0ECF2F0F0F6F4F0F6F4EFF5F5EEF4F4 ECF5F4EBF4F3EAF2F4EAF2F4E9F3F5E7F1F3E5EEF3E2EBF0E1EAEFDFEAEEE0E9F0E1EAEFE4ECEF E6EBEFE4EBF1E4EBF1E4EBF1E4EBF1E3ECF3E3ECF3DCE6EFDBE5EED9E6EFD8E5EED7E4EDD6E4ED D6E2EED5E3EED4E2EFD1E1EED0DEEBCCDCE9CCDAE7CADAE7CCDAE7CADAE7CFDDEACDDDEACFDDEA CDDDEACFDDEACDDDEACFDDEACDDDECCFE2F1CCE1F2CADFF0C8DDEEC7DCEDC7DCEDC8DDEEC9DEEF C7DCEDC7DCEDC6DBECC6DBECC5DAEBC4D9EAC3D8E9C3D8E9C1D7E5C0D7E5C1D7E5C0D7E5C1D7E5 C0D7E5C1D7E5C0D7E5BFD5E3BED5E3C0D6E4C0D7E5C1D7E5C1D8E6C3D9E7C2D9E7BEDAE6BDDBE6 BCDAE5BDD9E5BED8E5BFD6E4C0D6E4C2D5E4C9DAEACBDBEBCEDBECD0DDEED3DEF0D5E0F2D8E0F3 D9E2F3DBE5EFDBE6ECD8E5EBD8E5EBD7E4ECD6E3EBD4E2EBD2E3EDD3E3F0D3E5F1D2E5F3D0E3F1 CBE1EFC5DBE9C0D6E4BCD3E3B6D2E7B4D3E8B4D3E8B4D3E8B4D3E8B4D3E8B4D3E8B4D3E8B2D1E6 B2D1E6B2D1E6B2D1E6B2D1E6B2D1E6B2D1E6B2D1E6B5D5ECB5D5EEB6D4ECB6D4ECB6D4ECB8D4EA B8D4EAB8D4EABAD5EABAD5EABBD4E8BCD5E9BCD5E9BFD6E8BFD6E8BFD5EAC0D9EFBED8EFBDD7EE BCD7ECBBD4EABAD3E9B9D2E6BAD0E5BED5E7BFD4E7BFD4E7C3D6E7C6D9EACADDEECFE0F2D0E3F4 CEE1F2CBE0F1CCDFF0C8DDEEC8DBECC4D9EAC5D8E9C2D7E8CCDFF0C9DEEFC8DBECC3D8E9C2D5E6 BDD2E3BDD0E1BACFE2C1D7EFC1D9F3AEC8E3BCD5F3BFDAF7B2D0ECBEDCF8B5D3EDB8D6F0B8D6EE BAD6ECBBD6EBBCD6E7BED5E5BFD5E3BFD5E3BED8E9BDD8EBBED7EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBB9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BAD3E7B9D4E7 BAD3E7B9D4E7BAD3E7B9D4E7BCD5E9BBD6E9BCD5E9BBD6E9BCD5E9BBD6E9BCD5E9BCD5E9BAD4E5 BAD4E5BAD4E5BAD4E5BAD4E5BAD4E5BAD4E5BAD4E5BAD4E5BAD4E5BBD5E6BCD6E7BCD6E7BDD7E8 BED8E9BED8E9C2D7E8CBE1EFC2D8E6D0E6F4CDE0EFBBCEDCCDDFEDCEE0ECD1E3EFD2E3EDD4E2ED D2E0E9D0DDE6CDDAE3C9D6DFC4D5DFC5D8E7C3D8E9C4D9EAC5DAEBC5DAEBC6DBECC7DCEDC7DCED C1D6E7C0D5E6C0D5E6BFD4E5BED3E4BED3E4BDD2E3BDD3E1BCCFDDBFD3DEC4D6E2C7DBE6C9DBE7 C6DAE5C3D5E1C0D4DFC7D9E5C6DAE5C9DBE7CADEE9CDDFEBCDE1ECD0E2EED2E3EDD6E0E9D7E0E7 D9E0E8D9E2E9DAE1E9DAE3EADCE3EBDBE4EBCEE0EECEE0EED0E0EDD0E0EDD1E1EED2E3EDD6E2EE D6E3ECD8E2EBD8E2EBDAE3EADBE4EBDCE3E9DDE4EADEE5EBDDE6EBDBE4EDDAE4EDD8E2EBD7E1EA D3E0E9D2DFE8CFDDE8CDDEE8C9D9E8C7D9E7C4D7E6C3D6E5C1D6E7C2D7E8C4D9EAC4DBEBC2DCE9 C1DDE9C0DCE8BFDBE7BFDBE7BEDAE6BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E7BDD8E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8E9BDD9E7BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C1DDE9C1DDE9C1DDE9C1DDE9C1DDE9C1DDE9C1DDE9 C1DDEBBEDBEDBCDBEDBEDBEDBFDCECC1DCEDC1DDEBC3DDECC3DDEAC4DBE9C3DBE7C4DAE7C4DAE5 C7DBE6C9DDE8CBDFE8CCE0E9CBDFE8CCE0E9CFE1EBD1E3EDD5E6EED7E8F0DBEAF1DCEBF2DEEBF1 DFEDF0E2EDF1E3EEF0E6F0F2E8F2F4E9F3F4EAF3F2EEF4F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF7FBFAF5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F1F5F4F2F6F5F4F8F7F5F9F8F5F9F8 F4F8F7F3F7F6F2F6F5F1F5F4F1F5F4F0F4F3F0F4F3EFF3F2EEF2F1EDF1F0EDF1F0F0F6F2F0F6F2 EFF5F3EEF4F2ECF5F2EBF4F1EAF2F4EAF2F4E8F2F4E6F0F2E4EDF2E1EAEFDFEAF0DEE9EFDEE9EF E0E9EEE6EBEFE7EBEEE6EBEFE6EBEFE6EBEFE4EBF1E3ECF3E3ECF3DDE7F0DDE7F0DAE7F0D9E6EF D8E6F1D7E5F0D6E4EFD6E4EFD6E4F1D4E2EFD2E0EDCFDDEACEDCE9CDDBE8CDDBE8CEDCE9CFDDEA CFDDEACFDDEACFDDEACFDDEACFDDEACFDDEACDDDECCEE1F0CBE0F1C9DEEFC7DCEDC6DBECC6DBEC C7DCEDC8DDEEC6DBECC6DBECC6DBECC5DAEBC4D9EAC3D8E9C3D8E9C2D7E8C1D7E5C1D7E5C1D7E5 C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5BFD5E3BFD5E3C0D6E4C1D7E5C1D7E5C2D8E6C3D9E7C2D9E7 BFD9E6BEDAE6BDD9E5BED8E5C0D7E5C0D7E5C3D6E5C3D6E5CADAEACBDBEBCEDBECD1DCEED5DDF0 D7DFF2D9E0F3D9E2F1DAE4EEDAE5EBD8E5EBD7E4EAD6E3EBD4E2EBD2E3EDD1E2ECD1E3EFD2E4F0 D0E3F1CFE2F0C9DFEDC4DAE8C0D6E4BAD4E3B6D2E7B3D3E8B3D3E8B3D3E8B3D3E8B3D3E8B3D3E8 B3D3E8B1D1E6B1D1E6B1D1E6B1D1E6B1D1E6B1D1E6B1D1E6B1D1E6B5D5EEB3D5F0B5D5EEB5D5EE B6D4ECB6D4ECB8D4EAB8D4EABAD5EABAD5E8BBD4E8BCD6E7BFD6E8BFD6E8C1D6E7C0D7E9BCD4EC BBD5EEBBD5ECBBD5ECBDD6ECBDD6ECBFD5EABFD5EABFD4E7C2D5E6C5D6E8C8D9E9CCDCECCEDEEE D0E0F0D0E1F1CFE0F2CDE0F1CCDFF0CADDEEC8DBECC6D9EAC5D8E9C4D7E8C1D4E5C3D6E7C4D7E8 C6D9EAC8DBECC9DCEDCADDEECADCF0C1D5EDC5D9F4B7CCE9C1D9F5C2DBF9B7D2EFBBD9F5ADCCE8 B7D6F2B8D6F0BAD6EEBBD6EBBCD5E9BED5E7BFD5E3BFD5E3BED8E9BDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBB9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BAD5E8BBD6E9 BBD6E9BCD7EABDD8EBBDD8E9C2D9EBC8DFEFBFD6E6CBE2F2C8DEECBAD0DECCDFEDCFE3EED1E3EF D1E3EDD3E1EAD2E0E9D0DDE5CDDAE2CAD7DFC7D5DEC5D8E7C3D8E9C4D9EAC5DAEBC5DAEBC6DBEC C7DCEDC7DCEDC3D8E9C2D7E8C1D6E7C0D5E6BFD4E5BED3E4BDD2E3BED1E0BFD1DDC2D4DEC6D8E2 CADCE6CADCE6C9DBE5C6D8E2C4D6E0C9DBE5C9DBE5CBDDE7CCDEE8CEE0EAD0E2ECD1E3EDD5E3EC D7E0E9D8DFE7D9E0E8DAE1E9DAE1E9DBE2EADCE3EBDCE3EBCDDFEDCDDFEDCFDFECD0E0EDD1E1EE D1E2ECD5E1EDD5E2EBD8E2EBD8E2EBDAE3EADBE4EBDCE3E9DDE4EADEE5EBDDE6EBDBE4EDDAE4ED D8E2EBD7E1EAD3E0E9D2DFE8CFDDE8CDDEE8C9D9E8C7D9E7C4D7E6C3D6E5C1D6E7C2D7E8C4D9EA C4DBEBC2DCE9C1DDE9C0DCE8BFDBE7BFDBE7BEDAE6BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E7BDD8E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8E9BDD9E7BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C1DDE9C1DDE9C1DDE9C1DDE9C1DDE9 C1DDE9C1DDE9C1DDEBBCD9E9BDDAECBDDAECBEDBEBC0DBECC1DDEBC3DDECC3DDEAC2D9E7C3D9E6 C5D8E6C6DAE5C9DBE7CCDEE8CFE1EBD1E3EDCEE0EACFE1EBD0E2ECD3E5EFD6E7EFD8E9F1DCEBF2 DCEBF2DFECF2DFEDF0E2EDF1E5EFF1E7F1F3E8F2F3EAF2F4EBF4F3EEF4F4EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7 F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8 F5F9F8F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F4F8F7F5F9F8 F6FAF9F5F9F8F4F8F7F3F7F6F2F6F5F2F6F5F2F6F5F1F5F4F0F4F3EFF3F2EFF3F2EEF2F1EEF2F1 F0F6F2F0F6F2EFF5F3EEF4F2ECF5F2EBF4F1EAF2F4EAF2F4E7F1F3E5EFF1E3ECF1E0E9EEDDE8EE DDE8EEDDE8EEDEE7ECE5EAEEE6EAEDE5EAEEE5EAEEE3EAF0E3EAF0E2EBF2E2EBF2DFE9F2DFE9F2 DCE9F2DBE8F1DAE8F3D9E7F2D6E6F3D6E6F3D9E7F4D7E5F2D4E2EFD2E0EDD0DEEBD0DEEBD0DEEB D0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD0DEEBD0DEEBCEDEEDCDE0EFC9DEEFC7DCEDC6DBEC C5DAEBC5DAEBC6DBECC6DBECC6DBECC5DAEBC5DAEBC4D9EAC3D8E9C3D8E9C2D7E8C2D7E8C1D7E5 C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5BFD5E3BFD5E3C0D6E4C1D7E5C1D7E5C2D8E6 C3D9E7C2D9E7BED8E5BDD9E5BFD9E6BFD9E6C1D8E6C1D8E6C4D7E6C4D7E6CBDBEBCCDCECCFDCED D1DCEED5DDF0D6DEF1D7DFF2D8E1F0D9E3EDD7E4EAD6E3EBD5E2EAD4E2EBD3E1EAD0E1EBD0E1EB D0E2EECFE1EDCEE1EFCCDFEDC7DDEBC3D9E7BED5E5BAD4E5B6D3E5B4D3E7B4D3E7B4D3E7B4D3E7 B4D3E7B4D3E7B4D3E7B3D2E6B3D2E6B3D2E6B3D2E6B3D2E6B3D2E6B3D2E6B2D2E7B5D5EEB5D5EE B5D5EEB5D5EEB6D4ECB6D4ECB8D4EAB8D4EAB9D4E9BBD4E8BDD3E8BED5E7C0D5E8C1D6E7C2D7E8 C1D8EAB9D2E8B9D3EABBD3EBBDD5EDC1D7EEC2D8EFC4D9EEC5DAEFC2D4E8C5D8E9CADBEDCEDFEF D1E1F1D1E1F0D0E0EFCEE0EECEDFEFCCDFEECBDEEDCADDECC8DBEAC7DAE9C6D9E8C5D8E7C9DCEB C8DBEAC7DAE9C4D7E6C1D4E3BED1E0BBCEDDB9CCDDC1D3E9C3D7EFB7CDE5B8D0E8BAD4EDB7D2ED BBD9F3B2D0EAB8D6F0B8D6F0BAD6EEBBD6EBBCD5E9BED5E7BFD4E5BED5E5BDD7E8BCD7EABCD7EA BCD7EABCD7EABCD7EABCD7EABCD7EAB9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 BAD5E8BBD6E9BBD6E9BCD7EABDD8EBBDD8E9C3DAECC4DBEBBDD4E4C7DEEEC5DBE9BBD1DFCADDEB CFE3EED0E2EED0E2ECD3E1EAD2E0E9D0DDE5CDDAE2CAD7DFC8D6DFC5D8E7C3D8E9C4D9EAC5DAEB C5DAEBC6DBECC7DCEDC7DCEDC6DBECC5DAEBC4D9EAC2D7E8C0D5E6BED3E4BCD1E2BED1E0C4D6E0 C7D8E0CBDCE4CDDEE6CEDFE7CDDEE6CBDCE4C9DAE2CDDEE6CEDFE7CFE0E8D0E1E9D2E3EBD3E4EC D4E5EDD7E5EED7E0E9D8DFE7D9E0E8DAE1E9DAE1E9DBE2EADCE3EBDCE3EBCCDEECCDDFEDCEDEEB CFDFECD0E0EDD1E2ECD4E0ECD4E1EAD8E2EBD8E2EBDAE3EADBE4EBDCE3E9DDE4EADEE5EBDDE6EB DBE4EDDAE4EDD8E2EBD7E1EAD3E0E9D2DFE8CFDDE8CDDEE8C9D9E8C7D9E7C4D7E6C3D6E5C1D6E7 C2D7E8C4D9EAC4DBEBC2DCE9C1DDE9C0DCE8BFDBE7BFDBE7BEDAE6BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E7BDD8E9BDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8E9BDD9E7 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C1DDE9C1DDE9C1DDE9 C1DDE9C1DDE9C1DDE9C1DDE9C1DDEBBCD7E8BCD9E9BDDAEABFDBE9C1DDEBC3DDEAC4DEEBC6DEEA C3D9E6C3D9E4C6DAE5C8DCE5CCDEE8CFE1EBD3E5EFD5E7F1D0E2ECD1E3EDD3E5EFD4E7EED7E8F0 D9EAF1DCEBF2DDECF1DFEDF0E2EDEFE4EEF0E6F0F1E7F1F2E9F3F4EBF3F5EEF4F4EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7 F4F8F7F4F8F7F4F8F7F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F2F6F5F2F6F5F3F7F6F3F7F6F4F8F7F4F8F7F5F9F8F4F8F7 F5F9F8F6FAF9F7FBFAF6FAF9F4F8F7F3F7F6F1F5F4F3F7F6F2F6F5F2F6F5F1F5F4F0F4F3EFF3F2 EFF3F2EFF3F2F0F6F2F0F6F2EFF5F3EEF4F2ECF5F2EBF4F1EAF2F4EAF2F4E6F0F2E5EFF1E2EBF0 E0E9EEDDE8EEDCE7EDDCE7EDDEE7ECE4E9EDE5E9ECE4E9EDE4E9EDE2E9EFE2E9EFE1EAF1E1EAF1 E0EAF3E0EAF3DDEAF3DCEAF3DBE9F4DAE8F3D8E8F5D7E7F4DBE9F6D9E7F4D7E5F2D4E2EFD2E0ED D2E0EDD2E0EDD2E0EDD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECCFDFEECCDFEEC9DEEF C7DCEDC5DAEBC4D9EAC4D9EAC5DAEBC6DBECC6DBECC6DBECC5DAEBC4D9EAC3D8E9C3D8E9C2D7E8 C2D7E8C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5BFD5E3BFD5E3C0D6E4C1D7E5 C1D7E5C2D8E6C3D9E7C2D9E7BED8E5BED8E5BFD9E6BFD9E6C2D9E7C3D9E7C6D9E8C6D9E8CBDCEC CDDDEDD0DDEED0DDEED3DEF0D5DDF0D6DEF1D7E0F1D5E2EBD5E2E8D4E1E9D2E1E8D2E0E9CFE0E8 CEDFE9CDDFE9CDDFEBCCE0EBCADDEBC6DCE9C4DAE8C0D7E5BDD4E4BAD4E5B6D3E5B4D3E7B4D3E7 B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7B4D3E7 B6D4ECB5D5EEB5D5EEB5D5ECB6D4ECB6D5EAB8D4EAB9D4E9BAD3E7BBD4E8BED5E7BFD6E8C1D6E7 C3D8E9C4D9EAC3DAECBDD6ECBCD6EDBED6EEBFD8EEC2D8EFC3D9EEC4D9EEC5DAEDC5D8E9C8DBEA CEDFEFD2E4F2D5E5F4D3E3F2CFDFEECDDDECCDDFEDCBDEECCADDECCADDEBC8DBEAC8DBE9C7DAE9 C6D9E7CCDFEECBDEECC9DCEBC7DAE8C6D9E8C6D9E7C6D9E8C6D9E8B9CCDDBED0E4BBD0E5BBD1E6 B9D2E8B9D3EABBD7EFB7D3EBBAD6EEBAD6EEBBD5ECBCD4ECBCD5EBBED4E9BFD4E7BED5E7BCD5E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7BAD5E8BBD6E9BBD6E9BCD7EABDD8EBBDD8E9C1D8EABED5E5BCD3E3C4DBEBC5DBE9 BED4E2C4D7E5CADEE9CFE1EDCFE1EBD2E0E9D2E0E9D1DEE6CEDBE3CBD8E0C9D7E0C5D8E6C3D8E9 C4D9EAC5DAEBC5DAEBC6DBECC7DCEDC7DCEDC8DDEEC7DCEDC5DAEBC3D8E9C1D6E7BFD4E5BDD2E3 BED1DFC9DBE5CBDCE4CEDFE7D0E1E9D1E2EAD0E1E9CFE0E8CEDFE7D0E1E9D1E2EAD1E2EAD2E3EB D3E4ECD4E5EDD5E6EED8E7EED7E0E7D8DFE7D9E0E8DAE1E9DAE1E9DBE2EADCE3EBDCE3EBCCDEEC CCDEECCDDDEACEDEEBCFDFECD0E1EBD3DFEBD4E1EAD8E2EBD8E2EBDAE3EADBE4EBDCE3E9DDE4EA DEE5EBDDE6EBDBE4EDDAE4EDD8E2EBD7E1EAD3E0E9D2DFE8CFDDE8CDDEE8C9D9E8C7D9E7C4D7E6 C3D6E5C1D6E7C2D7E8C4D9EAC4DBEBC2DCE9C1DDE9C0DCE8BFDBE7BFDBE7BEDAE6BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E7BDD8E9BDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8E9BDD9E7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7C2DCE9 C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C1DDEBBDD8E9BED9EABFDAEBC2DCEBC3DDECC7DEEC C9E0EECAE0EDC7DDEAC9DDE8CBDDE9CCDEE8D0E1EBD4E5EDD7E8F0DAEBF3D4E5EDD5E6EED6E7EF D7E8F0DBE9F2DCEBF2DEEBF3DEEBF1E2EDF1E3EEF0E5EFF1E7F1F2E9F1F3EBF4F3EEF4F4EFF5F5 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F0F4F3F1F5F4F2F6F5F2F6F5F4F8F7F4F8F7F5F9F8 F6FAF9F6FAF9F7FBFAF8FCFBF8FCFBF7FBFAF5F9F8F2F6F5F1F5F4F3F7F6F3F7F6F3F7F6F2F6F5 F1F5F4F0F4F3F0F4F3EFF3F2F0F6F2F0F6F2EFF5F3EEF4F2ECF5F2EBF4F1EAF2F4EAF2F4E7F1F3 E5EFF1E3ECF1E0E9EEDEE9EFDDE8EEDDE8EEDFE8EDE2EAEDE4E9EDE4E9EDE4E9EDE2E9EFE2E9EF E1EAF1E1EAF1E0EAF3E0EAF3DDEAF3DCEAF5DBE9F6D8E8F5D8E8F5D7E7F4DBE9F6DAE8F5D7E5F2 D5E3F0D3E1EED3E1EED3E1EED3E1EED1DFECD1DFECD1DFECD1DFECD1DFECD1DFECD1DFECCFDFEE CEDFEFCCDFEECADDECC8DBEAC7DAE9C7DAE9C8DBEAC9DCEBCADDECC9DCEBC9DCEBC8DBEAC7DAE9 C6D9E8C6D9E8C5D8E7C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5BFD5E3BFD5E3 C0D6E4C1D7E5C1D7E5C2D8E6C3D9E7C3D9E7C0D7E5C0D7E5C1D8E6C2D9E7C4DAE8C5DBE9C8DBEA C8DBEACCDDEDCEDEEED0DDEED1DEEFD1DEEFD3DEF0D3DEF0D4E0F0D3E0E9D3E0E8D1DFE8D0DEE7 D0DEE9CDDEE8CCDCE9CBDDE9CBDDEBC9DCEAC7DAE9C2D8E6C0D5E6BDD4E4BCD3E5BAD4E5B6D3E5 B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5 B6D3E5B4D3E7B6D4ECB6D4ECB6D4ECB6D4ECB8D4ECB8D4EAB9D3EAB9D4E9BAD3E7BAD3E7BED5E7 C0D5E6C2D7E8C4D9EAC7DAE9C6DBECC5DBF0C3DCF2C4DAF1C3D9EEC2D8EDC1D8EAC2D7EAC3D6E7 C9DAECCCDDEDD1E1F1D5E5F4D7E4F4D4E2EFD0DEEBCCDCE9CCDEEACBDDE9CBDDEBCADCE8CADCEA C9DBE7C9DBE9C8DAE6CBDDEBC9DBE7C6D8E6C4D6E2C3D5E3C3D5E1C4D6E4C5D7E5CBDDEBCDDFED D1E4F3CBE0F1C3DAECBDD6EABED7EDC5DFF6BBD5ECBBD5ECBBD5ECBCD4ECBCD5EBBCD5EBBED4E9 BED4E9BCD5E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7BAD5E8BBD6E9BBD6E9BCD7EABDD8EBBDD8E9BFD6E8B9D0E0BED5E5 C4DBEBC6DCEAC1D7E5BCCFDDC1D5E0CEE0ECCEE0EAD2E0E9D1DFE8D1DEE6CFDCE4CCD9E1CAD8E1 C6D8E6C5D8E7C6D9E8C7DAE9C7DAE9C8DBEAC9DCEBC9DCEBCADDECCADDECC8DBEAC7DAE9C5D8E7 C3D6E5C2D5E4C1D4E2CCDEE8CEDFE6D0E1E8D1E2E9D2E3EAD2E3EAD2E3EAD2E3EAD2E3EAD2E3EA D3E4EBD3E4EBD4E5ECD5E6EDD5E6EDD7E6EDD7E0E7D8DFE7D9E0E8DAE1E9DAE1E9DBE2EADCE3EB DCE3EBCBDDEBCBDDEBCDDDEACDDDEACEDEEBCFE0EAD3DFEBD3E0E9D8E2EBD8E2EBDAE3EADBE4EB DCE3E9DDE4EADEE5EBDDE6EBDBE4EDDAE4EDD8E2EBD7E1EAD3E0E9D2DFE8CFDDE8CDDEE8C9D9E8 C7D9E7C4D7E6C3D6E5C1D6E7C2D7E8C4D9EAC4DBEBC2DCE9C1DDE9C0DCE8BFDBE7BFDBE7BEDAE6 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E7 BDD8E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8E9BDD9E7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7 C0DAE7C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C0DAE9C0DAE9C2DCEBC4DEEB C9E0EECBE3EFCDE3F0D0E4EFD0E4EFD0E2ECD1E3EDD3E4ECD5E6EED8E9F0DDECF3DCEDF4D7E8F0 D7E8F0D8E9F1D9EAF1DCEBF2DDECF1DEEBF1DFEDF0E3EEF0E5EFF0E6F0F1E8F1F0EAF3F2EEF4F4 EFF5F5EFF5F5EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F2F6F5F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EEF2F1EEF2F1EEF2F1 EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3EFF3F2F0F4F3F1F5F4F2F6F5F4F8F7 F5F9F8F6FAF9F7FBFAF8FCFBF9FDFCF9FDFCF9FDFCF7FBFAF5F9F8F2F6F5F1F5F4F4F8F7F4F8F7 F3F7F6F3F7F6F2F6F5F1F5F4F0F4F3F0F4F3F0F6F2F0F6F2EFF5F3EEF4F2ECF5F2EBF4F1EAF2F4 EAF2F4E9F3F5E7F1F3E5EEF3E2EBF0E0EBF1DFEAF0DFEAF0E1EAEFE1E8EEE3E8ECE3E8ECE1E9EC E1E8EEE0E9EEE0E9F0DFEAF0DFE9F2DDEAF3DBE9F4DAE8F3D8E8F5D7E7F4D6E6F3D6E6F3DBE9F6 D9E7F4D7E5F2D4E2EFD3E1EED2E0EDD2E0EDD3E1EED2E0EDD2E0EDD2E0EDD2E0EDD2E0EDD2E0ED D2E0EDD0E0EDD0E2F0CEE1F0CCDFEECADDECC9DCEBC9DCEBCADDECCBDEEDCCDFEECCDFEECCDFEE CBDEEDCADDECC9DCEBC9DCEBC8DBEAC1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5 BFD5E3BFD5E3C0D6E4C1D7E5C1D7E5C2D8E6C3D9E7C3D9E7C0D6E4C0D7E5C2D8E6C3D9E7C5DBE9 C6DCEAC9DCEBCADDECCEDFEFCEDFEFCFDFEFD1DEEFD1DEEFD1DEEFD1DEEFD1DEEED1DDE9D0DEE7 CFDDE6CCDDE5CCDDE7CADCE6C9DBE7C8DCE7C8DBE9C4DAE7C1D7E5BED5E3BCD3E3B9D3E2B9D3E4 B9D4E5B7D2E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B6D3E5B7D4E6B7D4E6B7D4E6B7D4E6 B7D4E6B7D4E6B7D4E6B7D4E6B8D4EAB6D4ECB6D4ECB6D5EAB8D4EAB8D4E9B9D4E9BAD3E7B9D2E6 BCD3E5BFD4E5C1D6E7C3D8E9C7DAE9C9DCEBC8DDEEC9DFF4C6DFF3C7DDF2C5DCEEC3DAECC3D8E9 C4D7E8C3D6E5CCDDEDCEE0EED1E1F0D2E2EFD4E2EFD2E0EBCFDDEACDDBE6CBDBE8CADCE6CBDBE8 CADCE6CBDBE8CADCE6CBDBE8CADCE6C8D8E5C6D8E2C7D7E4C5D7E1C6D6E3C5D7E1C6D6E3C6D7E1 CEDFE9BDCED8B7C9D3A3B7C290A6B391A7B5A1B8CAC4DDF1BCD5EBBCD5EBBCD4ECBCD4ECBCD5EB BCD5EBBED4EBBCD5EBBAD5E8BAD5E8BAD5E8BAD5E8BAD5E8BAD5E8BAD5E8BAD5E8B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BAD5E8BBD6E9BBD6E9BCD7EABDD8EBBDD8E9C1D8EA B6CDDDBFD6E6C3DAEAC6DCEAC1D7E5B3C6D4B8CCD7CDDFEBCDDFE9D1DFE8D1DFE8D1DEE6CFDCE4 CDDAE2CBD9E2C6D8E6C5D8E7C6D9E8C7DAE9C7DAE9C8DBEAC9DCEBC9DCEBC9DCEBC9DCEBC8DBEA C8DBEAC7DAE9C6D9E8C6D9E8C7D9E5D0E1E9D0E1E8D2E1E8D1E2E9D4E3EAD3E4EBD5E4EBD4E5EC D5E4EBD3E4EBD5E4EBD3E4EBD5E4EBD3E4EBD5E4EBD7E4ECD7E0E7D8DFE7D9E0E8DAE1E9DAE1E9 DBE2EADCE3EBDCE3EBCADCEACADCEACCDCE9CDDDEACEDEEBCEDFE9D2DEEAD2DFE8D8E2EBD8E2EB DAE3EADBE4EBDCE3E9DDE4EADEE5EBDDE6EBDBE4EDDAE4EDD8E2EBD7E1EAD3E0E9D2DFE8CFDDE8 CDDEE8C9D9E8C7D9E7C4D7E6C3D6E5C1D6E7C2D7E8C4D9EAC4DBEBC2DCE9C1DDE9C0DCE8BFDBE7 BFDBE7BEDAE6BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E7BDD8E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8E9BDD9E7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C5DCEA C7DEECC9E1EDCDE3F0CFE5F0D3E7F2D4E8F1D8EAF4D8E9F1D8E9F1DAE9F0DBEAF1DDECF1E0EDF3 E0EFF4DBEAF1DBEAF1DCEBF2DCEBF2DEEBF3DFECF2E1ECF0E1ECEEE5EFF1E5EFF0E7EFF1EBF1F1 EDF3F3EFF3F2F0F4F3F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EEF2F1EFF3F2F0F4F3 F2F6F5F4F8F7F6FAF9F7FBFAF8FCFBFAFEFDFAFEFDFAFEFDF9FDFCF7FBFAF5F9F8F2F6F5F1F5F4 F5F9F8F5F9F8F4F8F7F3F7F6F2F6F5F2F6F5F1F5F4F1F5F4F0F6F2F0F6F2EFF5F3EEF4F2ECF5F2 EBF4F1EAF2F4EAF2F4ECF6F8EAF4F6E7F0F5E5EEF3E2EDF3E2EDF3E2EDF3E3ECF1E0E7EDE2E7EB E0E7EDE0E7EDE0E7EFDFE8EFDFE8F1DEE8F1DDE7F1DBE8F1D9E7F2D8E6F1D6E6F3D5E5F2D3E5F3 D4E4F3DAE8F5D8E6F3D5E3F0D3E1EED1DFECD1DFECD1DFECD1DFECD3E1EED3E1EED3E1EED3E1EE D3E1EED3E1EED3E1EED1E1EED2E4F2D1E3F1CFE1EFCDDFEDCDDFEDCDDFEDCEE0EECEE0EED1E3F1 D0E2F0D0E2F0CFE1EFCEE0EECDDFEDCDDFEDCBDEECC1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5 C1D7E5C1D7E5BFD5E3BFD5E3C0D6E4C1D7E5C1D7E5C2D8E6C3D9E7C3D9E7C0D6E4C1D7E5C4D7E6 C6D9E8C8DBEAC9DCEBCCDDEDCCDDEDCEDFEFCEDFEFCEDFEFCFDFEFCFDFEFCFDFEFCFDFEFCFDFEE CFDDE8CCDDE7CCDDE7CBDCE6CADAE7C8DAE6C8DAE8C7DAE8C6D9E8C2D8E6BED5E5B9D3E2B7D1E2 B7D1E2B9D2E6B9D4E7B7D2E3B7D2E3B7D2E3B7D2E3B7D2E3B7D2E3B7D2E3B7D2E3B9D4E5B9D4E5 B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B8D5E7B8D4EAB8D4EAB8D4EAB8D4EAB9D3EAB9D4E9BAD3E9 BAD3E7BBD2E4BDD2E3BFD4E5C3D6E5C6D9E8C9DBE9CBDDEBCBDEEDC7DCEFC6DDEFC7DCEFC7DCEF C6DBEEC8DBECC8DBECC9DAEAD0E0EFD0E0EDD1DFECD1DFEAD0DCE8CFDCE5CEDAE6CDDBE4CDDBE6 CBDCE4CDDBE6CBDCE4CDDBE6CBDCE4CDDBE6CBDCE4C6D4DFC7D8E0CCDAE5CDDEE6CEDCE7C8D9E1 C5D3DEC1CFD8A2B1B68C9BA08F9EA57E8F97697B85697B878093A2B7CCDDBFD4E7BED4E9BED4EB BED4EBBCD4ECBCD4ECBCD4ECBCD4ECB9D4E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BAD5E8BBD6E9BBD6E9BCD7EABDD8EB BDD8E9C7DEF0B6CDDDC0D7E7BFD6E6C2D8E6C0D6E4ADC0CEB3C7D2CCDEEACDDFE9D1DFE8D1DFE8 D1DEE6D0DDE5CEDBE3CCDAE3C7D7E4C6D8E6C7D9E7C8DAE8C8DAE8C9DBE9CADCEACADCEAC8DAE8 C8DAE8C9DBE9C9DBE9CADCEACADCEACBDDEBCBDDE9D2E0E9D2E1E6D3E0E6D2E1E6D4E1E7D4E3E8 D7E4EAD6E5EAD5E2E8D4E3E8D5E2E8D4E3E8D5E2E8D4E3E8D5E2E8D4E1E7D7E0E7D8DFE7D9E0E8 DAE1E9DAE1E9DBE2EADCE3EBDCE3EBCADCEACADCEACCDCE9CCDCE9CDDDEACEDFE9D2DEEAD2DFE8 D8E2EBD8E2EBDAE3EADBE4EBDCE3E9DDE4EADEE5EBDDE6EBDBE4EDDAE4EDD8E2EBD7E1EAD3E0E9 D2DFE8CFDDE8CDDEE8C9D9E8C7D9E7C4D7E6C3D6E5C1D6E7C2D7E8C4D9EAC4DBEBC2DCE9C1DDE9 C0DCE8BFDBE7BFDBE7BEDAE6BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E7BDD8E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8E9BDD9E7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C5DCEAC6DEEAC9DFECCCE2EDCFE5F0D3E7F0D5E9F2D8EBF2DDEEF6DEEDF4DDECF3DEEBF1DEEBF1 E0EEF1E3EEF4E2EFF5DDEAF0DCEBF2DCEBF2DDECF1DEEBF1E1ECF0E1ECEEE2ECEDE5EFF0E7F0EF EAF0F0EBF1EFEEF2F1EFF3F2F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EEF2F1 EFF3F2F0F4F3F2F6F5F4F8F7F6FAF9F7FBFAF8FCFBFAFEFDFBFFFEFBFFFEFAFEFDF8FCFBF5F9F8 F2F6F5F0F4F3F5F9F8F5F9F8F4F8F7F4F8F7F3F7F6F2F6F5F1F5F4F1F5F4F0F6F2F0F6F2EFF5F3 EEF4F2ECF5F2EBF4F1EAF2F4EAF2F4EDF7F9ECF6F8E9F2F7E7F0F5E4EFF5E3EEF4E4EFF5E5EEF5 E0E7EDE2E7EBE0E7EDE0E7EDDFE8EFDFE8EFDEE8F1DEE8F1DAE7F0D8E6EFD8E6F1D5E6F0D4E4F1 D4E4F1D2E4F2D2E4F2D9E7F4D7E5F2D4E2EFD2E0EDD0DEEBD0DEEBD0DEEBD0DEEBD3E1EED3E1EE D3E1EED3E1EED3E1EED3E1EED3E1EED3E1EED5E5F2D3E5F1D2E2F1CFE1EDCFDFEECFE1EDD0E0EF D0E2EED4E4F3D2E4F0D3E3F2D1E3EFD1E1F0CFE1EDD0E0EFCEE0EEC3D6E5C1D7E5C1D7E5C1D7E5 C1D7E5C1D7E5C1D7E5C1D7E5BFD5E3BFD5E3C0D6E4C1D7E5C1D7E5C2D8E6C3D9E7C3D9E7C2D5E4 C3D6E5C5D6E6C6D9E8C8DBEACADDECCCDDEDCDDEEECFE0F0CFE0F0CEDFEFCEDFEFCEDFEFCEDFEF CEDEEECEDEEDCCDCE9CCDDE7CBDCE6C9DBE5C8DAE6C7DBE6C6D9E7C4DAE7C3D9E7C0D7E7BAD4E3 B7D1E2B6D0E1B6D1E4B7D2E5B9D4E7B7D2E3B7D2E3B7D2E3B7D2E3B7D2E3B7D2E3B7D2E3B7D2E3 B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E9B8D4EAB8D4EAB9D4E9B9D4E9 BAD3E7BAD3E7BCD3E5BCD1E2BDD3E1C1D4E3C4D7E5C7D9E7CADCEACCDEECCDDFEDC3D8E9C4D9EA C5DAEDC6DBECCADDEECBDEEDCDDEEECEE0EED2E2EFD1E2ECD0DEE9CEDCE5CDDAE3CDDAE2CDDAE3 CEDBE3CDDAE2CCDBE2CDDCE3CDDCE3CDDCE3CDDCE3CEDDE4CEDDE4D6E5ECD4E3EACDDCE3BFCED5 AAB9C0909FA678878E6B787E899798839191A7B5B6B1C0C3A1B0B58FA0A793A5AFC9DBE7C1D4E3 BFD4E5BFD4E9BED4EBBCD5EBBCD4ECBCD4EEBCD4ECB9D4E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BAD5E8BBD6E9BBD6E9 BCD7EABDD8EBBDD8E9CCE3F5B7CEDEC0D7E7BCD3E3BED4E2BED4E2A9BCCAB1C5D0CCDEEACCDEE8 D0DEE7D1DFE8D1DEE6D0DDE5CEDBE3CCDAE3C7D7E4C6D8E4C8D8E7C8DAE6C9D9E8C9DBE7CBDBEA CADCE8C7D7E6C7D9E5C9D9E8C9DBE7CCDCEBCCDEEACFDFEECFE0EAD3E0E8D3E0E6D2DFE5D2DFE5 D3E0E6D5E2E8D6E3E9D8E5EBD5E2E8D4E1E7D4E1E7D4E1E7D4E1E7D3E0E6D3E0E6D5E0E6D7E0E7 D8DFE7D9E0E8DAE1E9DAE1E9DBE2EADCE3EBDCE3EBCCDEECCCDEECCEDEEBCFDFECCFDFECD0E1EB D4E0ECD4E1EADAE4EDDAE4EDDBE4EBDBE4EBDCE3E9DCE3E9DCE3E9DBE4E9DBE4EDDAE4EDD9E3EC D8E2EBD6E3ECD5E2EBD3E1ECD1E2ECCDDDECCADCEAC8DBEAC6D9E8C3D8E9C3D8E9C4D9EAC4DBEB C0DAE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BBD7E3BBD7E3 BBD7E3BBD7E3BBD7E3BBD7E3BBD7E3BBD7E5BBD6E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E7BFDBE9BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C3DAE8 C4DAE8C3D9E7C3D9E7C3D9E7C2D8E6C2D8E6C2D8E6C2D8E6C2D8E6C2D8E6C2D8E6C4DAE8C7DDEB C9DFEDCBE1EFCFE5F2CFE5F0D3E7F2D4E8F1D6EAF3D8EAF4D9ECF3DBECF3DBEAF1DCE9EFDDEAF0 DFEAEEE0EBEFE1ECEEE3ECF1E2EDF1E0EDF3E0EDF3E1EEF4E1EFF2E4EFF3E5F0F2E7F1F3E8F0F2 EAF2F4ECF2F2EDF3F3EEF2F1F1F3F2F2F4F1F3F5F2F3F5F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EEF2F1EFF3F2F0F4F3F0F4F3F1F5F4 F1F5F4F3F7F6F3F7F6F4F8F7F5F9F8F6FAF9F6FAF9F7FBFAF7FBFAF8FCFBF8FCFBF7FBFAF6FAF9 F5F9F8F4F8F7F3F7F6F2F6F5F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F0F6F2 F0F6F2EEF4F2EDF3F1E9F2EFE8F1EEE7EFF1E6EEF0E7F1F3E7F1F3E6EFF4E4EDF2E1ECF2E0EBF1 DFEAF0DFE8EFE2E9EFE2E9EFE2E9EFE2E9EFE1EAF1E1EAF1E0EAF3E0EAF3DDEAF3DAE8F3D8E6F3 D4E4F1D1E1F0CDDFEDCBDDEBCADCEAD4E2EFD4E2EFD3E1EED2E0EDD1DFECD0DEEBCFDDEACEDCE9 D0DEEBCEDCE9CDDBE8D0DEEBD6E4F1D9E7F4D8E6F3D6E4F1D5E3F0D2E3EDD2E0EDCFE0EAD1DFEC D0E1EBD4E2EFD3E4EED5E3F0D2E3EDD3E1EED0E1EBD0DEEBCCDDE7CDDBE8CBDBE8C7DAE8C3D9E7 C1D7E5C0D6E4BFD5E3BFD5E3C0D6E4C0D6E4C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5 C3D6E5C6D7E7C6D7E7C8D8E8C8D9E9C9DAEACADBEBCBDCECCCDDEDCCDDEDCCDDEDCADDECCADDEC C9DCEBC8DBEAC8D9E9C8DAE8C6D8E4C6D8E4C6D8E4C6D8E4C6D8E6C5D8E6C5D8E7C3D9E7C0D7E7 BED8E7BDD7E8BBD6E9BBD6E9B9D5EAB8D4E9B9D4E7B7D2E3B8D2E1B8D2E1B8D2E1B8D2E1B8D2E1 B8D2E1B8D2E1B9D3E2B8D2E1B8D2E1B9D3E2BBD5E4BED8E7C1DBEAC2DDEEBAD5EABAD5EAB9D4E9 BAD3E7BBD4E8BCD5E9C0D7E9C3D8E9BACFE0BED1E0C3D4E4C7D9E7CBDBEACBDBE8CBDBE8C9DBE9 CFE2F1CBDEEDC5D8E9C1D4E3C2D3E3C6D8E6CDDDECD1E1EECCDAE5CDDBE4E2EFF8D1DEE6D5DFE8 CAD5DBD1DBE4D8E3E9D5E2E8CCD9DFDAE7EDCCD9DFCFDCE2D8E5EBCAD7DDCDDAE0ADBAC0869399 78858B6A777D67747A7B888E93A0A6B2C0C3B0BAB9CFDAD6BFC9C8BAC6C6B5C0C2A0AEB1AEBDC4 B9CAD2C9DBE7CADDEBB9CEDFB3CADCC1DAF0BFD7EFB5CFE8BED8EFB9D4E9B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E5C0D7E9C2D9E9C4DBEBC2D9E9BFD5E3BED4E2C1D4E2C3D7E2 D1E3EFD1E3EDD3E1EAD2E0E9D2DFE7D0DDE5D0DDE5CFDCE5CBD9E4C9DAE4CCDAE7CADBE5CDDBE8 CCDDE7CEDCE9CDDEE8CFDDEACDDEE8D0DEEBCEDFE9D1DFECD0E1EBD3E1EED3E1EAD4E1E7D6E1E5 D6E1E5D6E1E5D6E1E5D6E1E5D6E1E5D6E1E5D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7 D8E3E7DBE4EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBCCDEECCCDEECCEDEEBCFDFEC CFDFECD0E1EBD4E0ECD4E1EADAE4EDDAE4EDDBE4EBDBE4EBDCE3E9DCE3E9DCE3E9DBE4E9DBE4ED DAE4EDD9E3ECD8E2EBD6E3ECD5E2EBD3E1ECD1E2ECCDDDECCADCEAC8DBEAC6D9E8C3D8E9C3D8E9 C4D9EAC4DBEBC0DAE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BBD7E3BBD7E3BBD7E3BBD7E3BBD7E3BBD7E3BBD7E3BBD7E5BBD6E7BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E9BBD6E7BFDBE9BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 C0DAE7C3DAE8C4DAE8C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C2D8E6C3D9E7 C5DBE9C7DDEBCAE0EECDE0EED1E5F0D2E6EFD4E6F0D5E7F1D7E9F3DAEBF3DBECF3DDECF1DCE9EF DCEAEDDFEAEEE0EBEDE2ECEEE2ECEDE3EDEFE3EDEFE2EDF1E0EEF1E1EFF2E4EFF1E5F0F2E6F0F1 E8F0F2E8F1F0ECF2F2ECF2F0EEF2F1EFF4F0F2F4F1F2F4F1F3F5F2F3F5F2F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1 EEF2F1EEF2F1EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EEF2F1EEF2F1EFF3F2 F0F4F3F1F5F4F1F5F4F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8F6FAF9F6FAF9F7FBFAF7FBFAF7FBFA F6FAF9F5F9F8F4F8F7F3F7F6F2F6F5F2F6F5F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F0F6F2EFF5F1EEF4F2EDF3F1E9F2EFE7F0EDE6EEF0E6EEF0E6F0F2E5EFF1E4EDF2E3ECF1 E0EBF1DFEAF0DDE8EEDDE8EEDCE5EADDE4EADDE4EADCE5EADCE5ECDBE6ECDBE5EED9E6EFD9E7F2 D8E6F1D4E4F1D2E2EFCFE1EFCDDFEDCCDEECCBDDEBD0E0EDD2E0EDD1DFECD0DEEBCFDDEACEDCE9 CEDCE9CDDBE8D0DEEBCEDCE9CDDBE8D0DEEBD6E4F1D9E7F4D8E6F3D6E4F1D5E3EED4E2EDD3E1EC D2E0EBD2E0EBD3E1ECD4E2EDD5E3EED6E4EFD6E4EFD4E2EDD3E1ECD1DFEAD0DEE9CFDDE8CCDCE9 C7DAE8C4DAE8C2D8E6C0D6E4BFD5E3BFD5E3C0D6E4C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5C1D7E5 C1D7E5C1D7E5C3D6E5C8D8E8C8D8E8C9D9E9CADAEACBDBEBCBDCECCCDDEDCCDDEDCCDDEDCBDEED CADDECC9DCEBC8DBEAC6DCEAC7DAE9C7DAE9C5D8E6C6D8E4C6D8E4C5D9E4C5D8E6C3D9E6C3D9E7 C2D9E9BED8E7BDD8E9BCD7EABAD7E9BAD6EBB9D5EAB8D4E9B8D5E7B8D2E3B8D2E1B8D2E1B8D2E1 B8D2E1B8D2E1B8D2E1B8D2E1B8D2E1B8D2E1BAD4E3BCD6E5BDD7E6BFD9E8C0DAE9C1DBEABCD5E9 BAD5E8BAD3E7BAD3E7BBD4E8BFD6E8C2D7E8C3D9E7C3D6E5C2D5E3C2D4E2C2D4E0C5D5E2C8D8E5 CBDBE8CDDDEAC3D5E3C8DBE9D0E3F2D7EAF8D9EBF9D5E7F3D0E0EDCCDDE7D8E6EFD2DFE7DAE7EF CDD8DED4DFE5CBD6DCD1DAE1D1DADFD3DEE2CAD8D9D6E4E7C8D6D7BBC9CCAAB8B9808E91707E7F 6F7D8079878892A0A3A7B5B6C0CED1C5D3D4BCCACDD6E2E2B5BEBBCFD8D3C0C9C4B2BBB8A6B0AF 959FA08994966B787EA0AEB7C0D2DECDE0EEC0D5E6BBD4E8BFDAEFBCD6EDB7D1E8B9D4E9B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BBD6E9BBD6E9BBD6E9BBD6E9 BBD6E9BBD6E9BBD6E9BBD6E9B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E5C0D7E9C2D9E9C3DAEAC2D9E9C0D6E4BED4E2 C0D3E1C2D6E1D0E2EED0E2ECD2E0E9D1DFE8D1DEE6D0DDE5D0DDE5CFDCE4CCDAE3CCDAE5CDDBE6 CEDCE7CEDCE7CFDDE8D0DEE9D0DEE9CFDDE8CFDDE8D0DEE9D1DFEAD2E0EBD2E0EBD3E1ECD4E1EA D6E1E7D6E1E5D6E1E5D6E1E5D6E1E5D6E1E5D6E1E5D6E1E5D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7 D8E3E7D8E3E7D9E2E7DCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBDCE3EBCCDEECCCDEEC CEDEEBCFDFECCFDFECD0E1EBD4E0ECD4E1EADAE4EDDAE4EDDBE4EBDBE4EBDCE3E9DCE3E9DCE3E9 DBE4E9DBE4EDDAE4EDD9E3ECD8E2EBD6E3ECD5E2EBD3E1ECD1E2ECCDDDECCADCEAC8DBEAC6D9E8 C3D8E9C3D8E9C4D9EAC4DBEBC0DAE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BCD8E4BCD8E4BCD8E4BCD8E4BCD8E4BCD8E4BCD8E4BCD8E6BCD7E8BCD7EABCD7EA BCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7EABCD7E8 BFDBE9BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7C0DAE7C3D9E7C5D8E7C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8C6D9E8 C6D9E8C6D9E8C8DBEACADDECCDE0EFCEE1EFD3E5EFD3E6EDD5E6EED7E8F0D9EAF2DCEBF2DDECF3 DFECF2DDEBEEDFEAECE1EBEDE1EBECE3EBEDE4EDECE5EDEFE5EDEFE3EEF2E3EEF2E4EFF3E5EFF1 E6F0F2E8F0F2E9F1F3EBF1F1EEF2F3EEF2F1F1F3F2F1F3F0F3F3F1F4F5F0F5F6F1F4F6F1F1F6F2 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EEF2F1EEF2F1 EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1ECF0EFECF0EFECF0EFECF0EF ECF0EFECF0EFECF0EFECF0EFEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1ECF0EFECF0EFEDF1F0 EEF2F1EFF3F2EFF3F2F0F4F3F0F4F3F1F5F4F2F6F5F2F6F5F3F7F6F4F8F7F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F4F8F7F4F8F7F3F7F6F2F6F5F2F6F5F2F6F5F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3EFF5F1EFF5F1EEF4F2ECF2F0E8F1EEE7F0EDE6EEF0E5EDEFE4EEF0E4EEF0 E2EBF0E1EAEFDEE9EFDDE8EEDCE7EDDBE6ECD7E0E7D7E0E7D7E0E7D7E0E7D7E0E9D6E0E9D6E0EA D4E1EAD5E3EED4E2EDD1E1EED0E0EDCEE0EECDDFEDCBDEEDCCDEECCDDDEACFDDEACEDCE9CEDCE9 CDDBE8CCDAE7CCDAE7CCDAE7D0DEEBCEDCE9CDDBE8D0DEEBD6E4F1D9E7F4D8E6F3D6E4F1D6E2EE D5E2EBD4E1EAD3E0E9D3E0E9D4E1EAD5E2EBD6E3ECD9E6EFD8E5EED7E4EDD6E3ECD4E1EAD3E0E9 D1DEE7D0DEE9C8DBE9C4DAE8C2D8E6C1D7E5C0D6E4C0D6E4C1D7E5C1D7E5C2D8E6C2D8E6C2D8E6 C2D8E6C2D8E6C2D8E6C2D8E6C4D7E6CADAEACCD9EACDDAEBCDDAEBCEDBECCCDCECCCDDEDCCDDED CADDECCADDECC9DCEBC7DDEBC6DCEAC4DBE9C4DAE8C4DAE8C4D7E5C4D7E5C4D7E5C2D8E5C2D8E6 C2D8E6C1D8E8BFD9E8BED8E9BDD8EBBCD7EABAD6EBBAD6ECB7D6EBB6D5EAB8D4E9B9D3E2BBD2E0 BBD2E0BBD2E0BBD2E0BBD2E0BBD2E0BBD2E0B8CFDDBAD1DFBED5E3C1D8E6C3DAE8C2D9E7C1D8E6 BDD7E6BCD5E9BCD5E9BDD3E8BDD4E6BED5E7C0D5E6C2D7E8C6D9E8C6D7E7C6D8E6C7D7E6C9D9E6 CDDBE8D1DFEAD5E3EED8E6F1DAECF8D7E9F5D2E4F2CFE1EDCFDFECD1E2ECD7E5F0D9E7F0D6E3EC CDDAE2D3DDE6CFD8DFE2EBF2DCE5EAE4EBF1DBE5E7C5D0D2AAB6B6909B9D7884846F7A7C808C8C 86919398A4A4B2BDBFC7D3D3C3CED0BAC6C6D3DEE0C9D5D5B0BBBDD8E2E1C4CAC6D5DAD4C8CDC7 B3B9B5A8AEAAAAB0AE98A1A0606B6D5A676D8FA0A8C8DAE6D0E6F4B9D3E4B4CFE2BAD6EBBAD6EB B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7BAD5E8BAD5E8 BAD5E8BAD5E8BAD5E8BAD5E8BAD5E8BAD5E8B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E5BFD6E8C1D8E8C2D9E9C2D9E9 C0D6E4BED4E2C0D3E1C0D4DFCFE1EDCFE1EBD1DFE8D1DFE8D1DEE6D0DDE5D0DDE5D0DDE5CFDCE5 CFDCE5D0DDE6D1DEE7D1DEE7D2DFE8D3E0E9D3E0E9D1DEE7D1DEE7D2DFE8D2DFE8D3E0E9D4E1EA D5E2EBD5E2EAD7E2E6D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D9E3E5D9E3E5D9E3E5 D9E3E5D9E3E5D9E3E5D9E3E5D9E2E7DBE2EADBE2EADBE2EADBE2EADBE2EADBE2EADBE2EADBE2EA CCDEECCCDEECCEDEEBCFDFECCFDFECD0E1EBD4E0ECD4E1EADAE4EDDAE4EDDBE4EBDBE4EBDCE3E9 DCE3E9DCE3E9DBE4E9DBE4EDDAE4EDD9E3ECD8E2EBD6E3ECD5E2EBD3E1ECD1E2ECCDDDECCADCEA C8DBEAC6D9E8C3D8E9C3D8E9C4D9EAC4DBEBC0DAE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E7BDD8E9 BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8E9BFDBE9BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C3D9E7C5D8E7C6D9E8C6D9E8C7DAE9C7DAE9C8DBEAC8DBEA C8DBEAC7DAE9C7DAE9C8DBEAC9DCEBCCDFEECEE1F0D1E3F1D4E5EFD5E6EED6E7EFD8E9F0DBEAF1 DDECF1DFECF2E2EDF1E0EBEDE1EBECE1EBECE3ECEBE4EDECE7EDEDE7EDEDE6EFEEE5EFF1E4EFF1 E5EFF1E6F0F1E8F0F2E9F2F1EBF1F1ECF2F0EFF3F2EFF4F0F1F3F0F2F4EFF4F5F0F5F6F0F5F6F0 F6F7F2F3F5F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEE ECF0EFECF0EFEDF1F0EEF2F1EFF3F2EFF3F2EFF3F2F0F4F3F0F4F3F1F5F4F1F5F4F2F6F5F3F7F6 F4F8F7F4F8F7F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF5F1EEF4F0EDF3F1EBF1EFE8F1EEE6EFECE5EDEFE4ECEE E3EDEFE2ECEEE1EAEFE0E9EEDDE8EEDBE6ECDAE5EBDAE5EBD6DFE6D6DFE6D6DFE6D6DFE6D5DFE8 D5DFE8D3E0E9D3E0E9D1DFEACFE0EACFDFECCDDFEBCDDFEDCDDFEDCBDEEDCCDEECCADAE9CCDAE7 CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6CBD9E6D0DEEBCEDCE9CDDBE8D0DEEBD6E4F1D9E7F4D8E6F3 D6E4EFD7E4EDD6E3ECD5E2EBD4E1EAD4E1EAD5E2EBD6E3ECD7E4EDDAE7F0DAE7F0D9E6EFD7E4ED D5E2EBD4E1EAD3E0E9D1DFEAC8DBE9C5DBE9C3D9E7C1D7E5C1D7E5C1D7E5C2D8E6C2D8E6C3D9E7 C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C5D8E7CEDBECCFDAECCFDAECCEDBECCEDBECCEDBEC CDDDEDCCDDEDC9DCEBC9DCEBC7DDEBC5DCEAC4DBE9C3DAE8C3DAE8C2D9E7C1D7E4C3D6E4C1D7E4 C1D7E4C1D7E5C0D7E5BED8E7BED8E9BDD8EBBCD9EBBBD7ECB8D7EBB8D7ECB7D6EBB6D5EAB8D4E9 BAD4E3BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1BCD3E1B8CFDDBBD2E0C0D7E5C4DBE9C5DCEA C3DAE8C0D7E5BDD4E2BFD6E8BDD7E8BED5E7BED5E5BFD4E5C1D7E5C5D8E7C6D9E7C4D6E4C6D8E4 CADAE7CDDEE8D0DEE9D0DEE9D1DEE7CFDDE6C7D8E2C7D9E5C8DAE6CBDDE7CFE0EAD4E5EDD9E7F0 DBEAF1DCE9F1DFEAF0E2EBF2D7E0E5D2DBE0A8B2B4979FA27A828468727374807E869292A2AEAC A7B3B3BAC6C4C3CFCFD8E4E2A9B5B5D1DDDBCAD6D6BBC7C5E0ECECD1DDDBAEBABADFEAE6B8BDB7 C4C7C0CACCC7BDBFBAAEB0ABB6BBB7AFB5B3818A894A555751606584979EB8CED9BED8E5B8D5E5 BBDAECB9D8EAB8D5E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E5BDD4E6BFD6E6 C1D8E8C2D9E9C1D7E5BFD5E3BED1DFBDD1DCCDDFEBCDDFE9D0DEE7D0DEE7D0DDE5D0DDE5D0DDE5 D0DDE5D0DDE6D1DEE7D1DEE7D2DFE8D3E0E9D3E0E9D4E1EAD4E1EAD2DFE8D2DFE8D2DFE8D3E0E9 D4E1EAD5E2EBD5E2EBD8E2EBD9E2E7D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5 D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5DAE1E7DAE1E9DAE1E9DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9CCDEECCCDEECCEDEEBCFDFECCFDFECD0E1EBD4E0ECD4E1EADAE4EDDAE4EDDBE4EB DBE4EBDCE3E9DCE3E9DCE3E9DBE4E9DBE4EDDAE4EDD9E3ECD8E2EBD6E3ECD5E2EBD3E1ECD1E2EC CDDDECCADCEAC8DBEAC6D9E8C3D8E9C3D8E9C4D9EAC4DBEBC0DAE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E7BDD8E9BDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EBBDD8EB BDD8EBBDD8EBBDD8EBBDD8E9BFDBE9BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C5D8E7C6D7E7C7D8E8C8D9E9C9DAEACADBEB CBDCECCBDCECCADBEBCADBEBCADBEBCADBEBCCDDEDCEDFEFD1E2F2D3E5F3D5E6EED8E7EED9E8EF DBEAEFDDEAF0DFECF2E2EDF1E3EEF0E1EBEDE3EBEDE3EBEDE6ECECE7EDEDE9EDECE9EDECE8EEEE E6EEF1E6F0F2E7EFF2E8F0F2E9F1F3EAF3F2ECF2F2EDF1F0F1F3F2F2F4F1F3F3F1F4F5F0F6F5F1 F7F6F1F7F6F1F6F7F1F3F5F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EBEFEEEBEFEEEBEFEEECF0EFEDF1F0EEF2F1EEF2F1EFF3F2EEF2F1EEF2F1EFF3F2F0F4F3 F1F5F4F1F5F4F2F6F5F2F6F5F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F1F5F4F1F5F4F1F5F4EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EEF4F0EDF3EFECF2F0EAF0EEE7F0EDE5EEEB E4ECEEE3EBEDE3EDEFE2ECEEE1EAEFE0E9EEDDE8EEDBE6ECDAE5EBDAE5EBD9E2E9D9E2E9D9E2E9 D9E2E9D8E2EBD8E2EBD6E3ECD6E3ECD0DEE9CEDEEBCEDEEDCDDFEDCCDDEDCBDEEDCBDEEDCBDDEB C8D8E7CAD8E5CAD8E5CAD8E5CAD8E5CBD9E6CBD9E6CBD9E6D0DEEBCEDCE9CDDBE8D0DEEBD6E4F1 D9E7F4D8E6F3D6E4EFD8E5EED9E3ECD8E2EBD7E1EAD7E1EAD8E2EBD9E3ECDAE4EDDCE6EFDCE6EF DBE5EED9E3ECD7E1EAD6E0E9D5DFE8D1DFE8C9DCEAC6DCEAC4DAE8C2D8E6C1D7E5C2D8E6C2D8E6 C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C3D9E7C5D8E7CFDCEDD2DAEDD1D9ECCFDAEC CEDBECCEDBECCCDCECCBDCECC9DCEBC8DBEAC6DCEAC4DBE9C3DAE8C0DAE7C0DAE7C0DAE7C1D7E5 C1D7E5C1D7E5C1D7E5C0D7E7C0D7E7BED8E9BED8E9BDD8EBBCD8EDBBD7EDB8D7ECB8D6EEB6D6ED B5D5ECB8D4E9BAD4E3BDD3E0BDD3E0BDD3E0BDD3E0BDD3E0BDD3E0BDD3E0BBD1DEBED4E1C3D9E6 C6DCE9C7DDEAC4DAE7C1D7E4BDD4E2C0D7E9BFD6E8C0D5E8BFD4E5C2D5E6C4D7E6C7D8E8C8DAE8 C8D8E7C8D8E5CAD8E5CAD8E3CAD6E2C9D6DFC8D5DEC6D4DDCEDFE9D0E1EBD2E3EDD5E6F0D9E7F2 DAE8F1DCE9F2DCE9F1CED9DFBFCACE9FA8AD7F898B7C84876E767894999C949C9EBDC7C6C7D2CE C0CAC9C9D4D0A7B1B0A5B0ACAEB8B7CCD7D3B8C2C1E1ECE8D5DFDEBBC6C2D7E1E0C4CFCB9AA4A3 C3CCC9B6B8B3BCBDB7D1D2CCC9CAC4ADAEA8A9ABA6A6ABA5999F9D828C8B4B595A46575E7D919A AAC5D0C3E1ECC6E6F5B9D8EAB8D5E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E5 BCD3E5BED5E5C0D7E7C2D9E9C2D8E6BFD5E3BDD0DEBACED9CBDDE9CBDDE7CEDCE5CEDCE5D0DDE5 D0DDE5D0DDE5D0DDE5D2DCE5D3DDE6D3DDE6D4DEE7D5DFE8D5DFE8D6E0E9D6E0E9D4DEE7D5DFE8 D5DFE8D6E0E9D7E1EAD8E2EBD8E2EBD8E3E9D9E3E5DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E5DAE1E7DAE1E9DAE1E9DAE1E9 DAE1E9DAE1E9DAE1E9DAE1E9CCDEECCCDEECCEDEEBCFDFECCFDFECD0E1EBD4E0ECD4E1EADAE4ED DAE4EDDBE4EBDBE4EBDCE3E9DCE3E9DCE3E9DBE4E9DBE4EDDAE4EDD9E3ECD8E2EBD6E3ECD5E2EB D3E1ECD1E2ECCDDDECCADCEAC8DBEAC6D9E8C3D8E9C3D8E9C4D9EAC4DBEBC0DAE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BEDAE6BEDAE6BEDAE6BEDAE6BEDAE6 BEDAE6BEDAE6BEDAE8BED9EABED9ECBED9ECBED9ECBED9ECBED9ECBED9ECBED9ECBED9ECBED9EC BED9ECBED9ECBED9ECBED9ECBED9ECBED9EABFDBE9BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C4D7E6C6D7E7C7D8E8C8D9E9 CADBEBCBDCECCCDDEDCDDEEECCDDEDCBDCECCBDCECCCDDEDCEDFEFD0E1F1D3E4F4D5E5F4D8E6EF D9E8EFDAE9EEDBEAEFDEEBF1E0EEF1E3EEF0E4EEF0E3EBEDE3ECEBE6ECECE7EDEBE9EDECE9EDEC EAEEEDE9EFEDE7EFF1E6F0F2E8F0F2E9F1F3EAF3F2ECF2F2EEF2F1EEF2F1F2F4F1F2F4F1F4F5F0 F5F6F0F7F6F1F7F6F1F8F8F0F7F8F2F3F5F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2ECF0EFECF0EFECF0EFECF0EFECF0EF ECF0EFECF0EFECF0EFEEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0ECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFEDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1 EEF2F1EEF2F1ECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0ECF0EFECF0EFECF0EFECF0EFECF0EF ECF0EFECF0EFECF0EFEAEEEDEAEEEDEBEFEEEBEFEEECF0EFEDF1F0EEF2F1EEF2F1EDF1F0EDF1F0 EDF1F0EEF2F1EFF3F2F0F4F3F0F4F3F1F5F4EDF1F0EDF1F0EEF2F1EEF2F1EFF3F2F0F4F3F0F4F3 F0F4F3EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EDF3EFECF2EEEBF1EFEAF0EE E6EFECE4EDEAE3EBEDE3EBEDE4EEF0E4EEF0E2EBF0E1EAEFDEE9EFDDE8EEDCE7EDDBE6ECDCE5EC DCE5ECDCE5ECDBE6ECDBE5EED9E6EED9E6EFD8E6F1D0E0EDD0E0EDCEE0EECDDFEDCBDEEDCADDEC C9DCEBC9DBE9C7D7E6C9D7E4CAD8E5CBD9E6CBD9E6CCDAE7CCDAE7CDDBE8D0DEEBCEDCE9CDDBE8 D0DEEBD6E4F1D9E7F4D8E6F3D6E4EFDBE5EFDAE4EDD9E3ECD8E2EBD8E2EBD9E3ECDAE4EDDBE5EE DBE5EEDAE4EDD9E3ECD8E2EBD6E0E9D5DFE8D3DDE6D0DEE7CBDDEBC7DDEBC5DBE9C3D9E7C2D8E6 C2D8E6C3D9E7C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C4DAE8C7D8E8D0DBEDD2DAED D1D9ECD1D9ECCED9EBCDDAEBCADAEAC9DAEAC9DAEAC6DCEAC5DBE9C3DAE8C0DAE7C0DAE7BEDAE6 BFD9E6BFD6E4C0D6E4C0D6E4BFD6E4BFD6E6BDD7E6BDD7E8BCD7EABCD8EDBCD8EDB9D8EDB8D7EC B7D7EEB6D6EDB5D5ECB6D5E9BDD4E4BED4E1BED4E1BED4E1BED4E1BED4E1BED4E1BED4E1BFD5E2 C1D7E4C3D9E6C5DBE8C5DBE8C4DAE7C1D7E4C0D6E3C2D7E8C0D7E9C0D5E6C0D5E6C3D6E5C5D8E7 C8DAE8C9DBE9CFDFECCDDDEACDDBE6CDDBE6D0DDE6D3E0E9D8E5EEDAE7F0D2E0EBD7E8F2DFF0FA DDEEF6CEDCE5B0BFC6919EA67C898F6D787C7E898D87919399A3A5B3BBBDAAB2B4CED3D6C2CBCA C3CCC9CED9D5BFCAC6D4DFDBAEB9B5A8B3AFB2BDB9D0DBD7B0BBB7C8D3CFBAC5C1A0ABA7BAC5C1 C1CCC8B2BDB9D7E0DBB8BAB5B0AFAAB8B7B2A6A5A089888382837D8A8C879EA59EABB4B1808C8C 5F717363787D79949D9DBBC5B9D9E6C3E3F2B8D5E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B8D3E6B8D3E6B8D3E6B8D3E6B8D3E6B8D3E6B8D3E6B8D3E6B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E5BBD2E4BCD3E3BFD6E6C2D9E9C3D9E7C0D6E4BCCFDDB8CCD7C9DBE7C9DBE5CDDBE4 CDDBE4CFDCE4D0DDE5D0DDE5D0DDE5D1DBE4D1DBE4D2DCE5D3DDE6D3DDE6D4DEE7D5DFE8D5DFE8 D5DFE8D5DFE8D6E0E9D7E1EAD8E2EBD8E2EBD9E3ECD9E4EADBE3E6DBE3E5DBE3E5DBE3E5DBE3E5 DBE3E5DBE3E5DBE3E5DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E5D9E0E6D9E0E8 D9E0E8D9E0E8D9E0E8D9E0E8D9E0E8D9E0E8CCDEECCCDEECCEDEEBCFDFECCFDFECD0E1EBD4E0EC D4E1EADAE4EDDAE4EDDBE4EBDBE4EBDCE3E9DCE3E9DCE3E9DBE4E9DBE4EDDAE4EDD9E3ECD8E2EB D6E3ECD5E2EBD3E1ECD1E2ECCDDDECCADCEAC8DBEAC6D9E8C3D8E9C3D8E9C4D9EAC4DBEBC0DAE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5 BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BDD9E5BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE9BFDAEBBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAED BFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEDBFDAEBBFDBE9BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C4D7E6C7D7E7 C8D8E8CADAEACCDCECCDDDEDCFDFEFCFDFEFCEDEEECEDEEECDDDEDCEDEEED0E0F0D2E2F2D5E5F5 D6E6F5D9E7F0DAE7EDDBE8EEDDEAF0E1ECF0E2EDF1E4EEF0E5EFF1E4ECEEE4EDECE7EDEDE7EDEB E9EDECEAEFEBEDEFECEBEFEEEAEFF2E8F0F2E9F1F3E9F1F3ECF2F2EDF3F3EFF3F2EFF3F2F3F5F2 F3F5F2F5F6F1F5F6F0F7F6F1F8F8F0FBF8F1F9F8F3F3F5F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0F0F4F3F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECEAEEEDEBEFEEECF0EFECF0EFEDF1F0EDF1F0 EBEFEEECF0EFECF0EFEDF1F0EEF2F1EFF3F2EFF3F2F0F4F3EBEFEEEBEFEEECF0EFEDF1F0EEF2F1 EFF3F2F0F4F3F0F4F3EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0ECF2EEECF2EE EBF1EFE9EFEDE5EEEBE4EDEAE3EBEDE2EAECE6F0F2E5EFF1E4EDF2E3ECF1E0EBF1DFEAF0DDE8EE DDE8EEDDE6EDDDE6EDDCE6EFDCE6EFDCE6F0DAE7F0DAE6F2D9E7F2D3E3F0D2E2EFD0E2F0CEE0EE CBDEEDC9DCEBC7DAE9C7D9E7C8D8E7CAD8E5CBD9E6CCDAE7CDDBE8CEDCE9CEDCE9CFDDEAD0DEEB CEDCE9CDDBE8D0DEEBD6E4F1D9E7F4D8E6F3D6E4EFDBE5EFDAE4EDD9E3ECD8E2EBD8E2EBD9E3EC DAE4EDDBE5EED9E3ECD9E3ECD7E1EAD6E0E9D4DEE7D3DDE6D2DCE5CEDCE5CBDDEBC7DDEBC5DBE9 C4DAE8C3D9E7C3D9E7C4DAE8C4DAE8C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C8D9E9 D0DBEDD3DAEDD1D9ECD0D8EBCDD8EACBD8E9C8D8E8C7D8E8C8D9E9C5DBE9C4DAE8C3DAE8C0DAE7 BEDAE6BDD9E5BED8E5BED5E3BFD5E3BED5E5BED5E5BED5E7BCD6E7BCD5E9BBD6E9BCD8EDBCD8ED B9D8EDB8D7ECB7D7EEB6D6EDB3D6ECB6D5E9BED5E3C1D5E0C1D5E0C1D5E0C1D5E0C1D5E0C1D5E0 C1D5E0C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C4D8E3C2D8E5C2D7E8C2D7E8C1D6E7C1D6E7 C4D7E6C5D8E7C8DAE8C9DBE9CEDEEBCFDFECD3E1ECD5E2EBD5E2EBD3E0E9D3DDE6D0DDE5D3E1EA BBCCD49AABB37C8D95707E8774838A828F978F9AA0ABB4B9B2BBC0A9B1B4BAC2C5D8DDE0C8CDD0 DDE3E3C0C9C8D6DFDCD3DED8AFBAB4CED9D3B1BCB6B1BCB6B6C1BBCBD6D09EA9A3AAB5AFAEB9B3 9CA7A1A1ACA6A8B3AD98A39DA1A7A391928D827F7A7B787163635B5B5B535D5E565C5F587A7F79 9EA4A2A0ACAA97A9A984999C68838A5F7D8580A0ABB4D4E1B8D5E5B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B7D2E5B7D2E5B7D2E5B7D2E5B7D2E5B7D2E5B7D2E5 B7D2E5B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7B9D4E7 B9D4E7B9D4E7B9D4E7B9D4E5BAD1E3BBD2E2BED5E5C1D8E8C4DAE8C1D7E5BBCEDCB5C9D4C8DAE6 C8DAE4CCDAE3CDDBE4CFDCE4D0DDE5D0DDE5D1DEE6CFD9E2CFD9E2D0DAE3D1DBE4D1DBE4D2DCE5 D3DDE6D3DDE6D6E0E9D6E0E9D7E1EAD7E1EAD8E2EBD9E3ECDAE4EDDAE5EBDCE4E6DCE5E4DCE5E4 DCE5E4DCE5E4DCE5E4DCE5E4DCE5E4DAE3E2DAE3E2DAE3E2DAE3E2DAE3E2DAE3E2DAE3E2DAE2E4 D8DFE5D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7D8DFE7CDDDEACDDDEAD0DEE9D1DFEAD1DFEA D2E0EBD4E1EAD4E1E9DAE4EDDAE4EDDBE4EBDBE4EBDBE4E9DBE4E9DCE3E9DBE4EBDAE5EBDAE5EB D9E3ECD6E3EBD6E3EBD4E2EBD3E1EAD1E2ECCCDEEAC9DCEAC8DBE9C4DAE8C3D9E7C3D9E7C4DAE8 C4DBE9C0DAE7BFDBE7C0DAE7BFDBE7C0DAE7BFDBE7C0DAE7BFDBE7BED8E5BDD9E5BED8E5BDD9E5 BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5BED8E5BDD9E5C0DAE7 BFDBE7C0DAE7BFDBE7C0DAE7BFDBE7C0DAE7BFDBE9C0DAEBBFDAEBC0DAEBBFDAEBC0DAEBBFDAEB C0DAEBBFDAEBC0DAEBBFDAEBC0DAEBBFDAEBC0DAEBBFDAEBC0DAEBBFDAEBBFDBE9BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7 C4D7E6C6D7E7C7D8E8C9DAEACBDCECCDDEEECEDFEFD0E0F0CFDFEECEDEEDCEDEEDCFDFEED0E0EF D3E3F2D7E4F4D9E7F2DAE7EDDBE9ECDCEAEDDDEBEEE1ECEEE2EDEFE5EFF1E5EFF0E4EDECE4EDEC E7EDEBE8EEECEAEEEDEAEFEBEDEFEEEBEFEEEAF0F0E8F1F0EBF0F3ECF2F2EDF3F3EDF3F3EFF3F2 EFF3F2F3F5F2F3F5F2F4F6F1F6F7F2F7F8F2F7F8F2F9F8F3F8F9F4F3F5F2F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0F1F5F4F1F5F4 F3F5F4F1F5F4F3F5F4F1F5F4F3F5F4F1F5F4F1F3F2EFF3F2F1F3F2EFF3F2F1F3F2EFF3F2F1F3F2 EFF3F2EDEFEEEBEFEEEDEFEEEBEFEEEDEFEEEBEFEEEDEFEEEBEFEEEDEFEEEBEFEEEDEFEEEBEFEE EDEFEEEBEFEEEDEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECEAEEEDEAEEEDEBEFEEECF0EF EDF1F0EDF1F0EBEFEEEBEFEEECF0EFECF0EFEDF1F0EEF2F1EFF3F2EFF3F2EAEEEDEAEEEDEBEFF0 ECF0EFEDF1F2EEF2F1EFF3F4F0F4F3EDF1F2EDF1F0EDF1F2EDF1F0EDF1F2EDF1F0EDF1F2EDF1F0 ECF2F0EBF1EFEAF0EEE9EFEDE5EEEBE4EDECE2EBEAE2EAECE7F1F2E7F1F3E6F0F2E4EEF0E2EBF0 E0EBEFE0E9EEDFE8EDDCE5EADCE5EADCE5ECDBE6ECDBE5EED9E6EED9E6EFD8E6EFD7E5F0D4E5EF D2E2EFCFE1EDCCDEECC8DBE9C6D9E7C6D8E6CAD8E5CBD9E4CCDAE5CDDBE6CEDCE7CFDDE8D0DEE9 D0DEE9D0DEE9CEDCE7CDDBE6D0DEE9D6E4EFD9E7F2D8E6F1D7E4EDDCE6EFDBE6ECD9E4EAD8E3E9 D8E3E9D9E3ECDBE5EEDAE7EFD6E3EBD5E2EAD4E1E9D3E0E9D1DEE7CFDCE5CEDBE4CBDCE6CBDEEC C7DEECC5DCEAC3DAE8C2D9E7C3D9E7C4DAE8C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C7DAE9 C7DAE9C8D9E9CFDCEDCFDAECCDDAEBCCD9EAC9D9E9C8D8E8C6D7E7C5D8E7C7DAE9C5DBE9C3DAE8 C0DAE7BFD9E6BEDAE6BDD9E5BED8E5BCD6E3BED5E5BCD6E5BCD6E5BCD6E7BBD6E7BBD6E7BBD6E7 BCD9EBBCD9EBBBD8EAB8D7E9B8D7E9B7D6E8B5D6E9B8D5E5BED6E2BFD5E0C1D5E0C1D5E0C1D5E0 C1D5E0C1D5E0C1D5E0C8DCE7C7DBE6C6D8E4C4D6E2C4D6E2C5D7E3C6D8E4C6DAE5C5D8E7C2D8E6 C1D7E5C1D7E5C4D7E6C6D9E7C9DBE9CBDBE8C8D8E5CEDCE7D4E1EAD5DFE8CCD6DFBBC6CCAAB3BA 9EA9AF65727A6F7E8582919897A6ADAAB9BEB7C4CAC0CBD1C3CED2D6DFE4C8D1D6A3ADAFADB5B8 CED6D8C4CCCEDDE5E7BCC5C4CDD6D1C6D0C89DA6A1CAD4CCB6BFBAB0BAB29FA8A3A0AAA29BA49F 97A1999DA6A188928A7B847F848E8679827D7077706B6A6564615C63605957544D65625B65655D 45464050534C868D8696A19DA8B7B4ABBFBE879C9D4962664B676B8BA8B0B9D5E1B9D4E5B9D4E5 B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B8D5E5B9D4E5B9D4E7 B9D4E7B9D4E9B9D4E9B9D4E7B9D4E9B9D4E7B9D4E7B9D4E7B7D2E5B7D2E5B7D2E5B7D2E5B7D2E5 B7D2E5B7D2E5B7D2E3B9D4E7B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B9D4E5B8D5E5 B8D5E5B8D5E5B8D5E5B8D5E5B8D5E5B9D4E5B8D2E1BBD2E0BED4E1C4D8E3C7D9E3C5D6E0BDCED8 B6C7D1C8D9E3C8D9E3C9DAE4CADBE5CBDCE4CFDDE6CFDEE5D0DFE6CCD9E1CCD9DFCFDAE0CFDAE0 D0DBE1D1DCE2D1DCE2D3DCE3D7E0E7D7E0E7D8E1E8DAE1E9DBE2EADBE2EADCE3EBDCE3E9DCE4E7 DCE4E6DEE3E6DCE4E6DEE3E6DCE4E6DEE3E6DCE4E6DCE1E4DAE2E4DCE1E4DAE2E4DCE1E4DAE2E4 DCE1E4DAE2E4D8E0E3D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D2DFE7D2DFE7D2DFE7 D2DFE7D2DFE7D2DFE7D4DEE7D4DFE5D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D9E2E9D8E3E9 D8E3E9D6E4E7D5E2E8D5E2E8D4E1E7D2E1E8CFE0E7CEE1E8CADDE4C9DDE6C8DCE7C5DBE8C5DBE8 C3DBE7C2DAE6C2D9E7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7 C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7 C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E7C0DAE7C2D9E9C0DAE9C2D9E9C0DAE9 C2D9E9C0DAE9C2D9E9C0DAE9C2D9E9C0DAE9C2D9E9C0DAE9C2D9E9C0DAE9C2D9E9C0DAE9BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7C0DAE7C2D9E9C3D8E9C4D9EAC4D9EAC7DAE9C8DBEAC9DCEACADCEACBDDE9CCDCE9CCDDE7 D0DEE9D3E1EAD6E4EDDBE8F1DDEAF2DCEAEBDCEAEADFEBEBDFEBEBE1EBECE2ECEDE4ECEEE4EDEC E6ECECE6ECECE8ECEDE9EDEEEBECEEECEEEDEDEEF0EDEFEEEDF1F2ECF2F0EEF2F3EFF3F2EFF3F2 F0F4F3F1F5F4F1F5F4F3F7F6F3F7F6F3F8F4F5F7F4F5F7F4F5F7F4F5F7F4F5F7F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F0F4F3EFF3F2EFF3F2EEF2F1EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0E9EDECE9EDECEAEEEDEBEFEE EBEFEEECF0EFEDF1F0EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2ECF0EF ECF0EFEDF1F0EEF2F1F0F4F3F1F5F4F2F6F5F2F6F5EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 F1F3F2F1F3F2F3F3F3F3F5F4F4F4F4F4F6F5F6F6F6F5F7F6F4F4F4F3F5F4F4F4F4F3F5F4F4F4F4 F3F5F4F4F4F4F3F5F4F4F4F4F2F4F3F3F3F3F1F3F2F1F1F1EFF1F0F0F0F0EFF1F0F2F2F2F1F3F2 F2F2F2F1F3F2F2F2F2F1F3F2F2F2F2F1F3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEFF0F2 EFF0F2EFF0F4EFF0F2EFF0F4EFF0F2EFF0F4EFF0F2EFF0F4EFF0F2EFF0F4EFF0F2EFF0F4EFF0F2 EFF0F4EDF1F2EAF0F0E8F1F0E7F0EFE7F0EFE6EFEEE5EEEDE4EDECE4EDECE2EBEAE2EAECE2EAEC E2EAECE2EAECE1EBECE2EAECE2EAECE0E8EAE0E8EAE0E8EBDFE9EBDFE8EDDEE9EDDEE9EFDCE9EF DCE9F1DAE9F0D7E8F0D4E5EDD2E3EDCEE0EACDDFEBCCDEE8CAD8E1CCD9E2CDDAE3CFDCE5D1DEE7 D3E0E9D4E1EAD5E2EBD6E3ECD6E3ECD7E4EDD8E5EED9E6EFD9E6EFDAE7F0DAE7EFD8E3E9D9E2E7 D9E2E7D9E2E7D8E3E7D8E3E9D6E3E9D5E4E9D5E4EBD5E4EBD1E2EAD0E1EBCDDFE9CCDEE8CBDDE7 C9DDE8C2DAE6C0DAE7C0DAE7C0DAE7C0DAE7C2D9E7C2D9E7C2D9E7C3D9E7C3D9E7C5D8E7C5D8E7 C5D8E7C6D7E7C6D7E7C6D7E7C7DAE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C4DBE9C4DBE9C2D9E7 C2D9E7BFD9E6BED8E5BED8E5BDD7E4BCD6E3BBD7E3BBD7E5BAD7E7BBD8E8BCD9E9BCD9E7BDDAE8 BEDBE9BEDBE9BDD9E5BEDAE6C0DCE7C0DCE7C0DCE7C0DDE5BEDAE5BDDAE2C0D8E2C0D8E2C2D8E3 C2D8E3C3D9E4C4DAE5C7DBE6C7DBE6CADCE8C8DAE6C8D8E5C7D7E4CBD9E6CEDCE9D2E0EDD2E2EF C8DCE7C3D9E4BED4E1BBD1DEBFD2E0C4D6E2CCDCE9D0E1EBD0DEE7C6D3DBC2CDD3929BA0949EA0 7E88893D4645707A7B9FAAACD3E1E4ABB9BCD7E5E8C9D7DACFDADECDD8DCBFCACCD2DDDFB2BDBF ABB6B8BAC4C6CFD9DBA0AAACC5CFD1A4AEADB1B7B3BDC4BCB7BEB7BDC4BCC3CAC3B8BFB7A0A7A0 767D758E958E7D847C737A73737A726D746D5F665E59605960635C66635E77726E9E9995A3A09B A6A39C8F8F8783847C65685F5B6059858C8497A29A97A49B96A59E7E8F87576A64465A58718890 ABC6D1C8E2EFBFD9E6BBD5E2B8D2DFB3CFDBBAD6E2B5D1DFB2CEDCB2CFDDBAD7E5BEDBE9BADAE7 B8D5E3B8D5E5B9D4E9B9D3EAB9D3EAB9D4E9B9D3EAB9D4E9B9D4E9B9D4E9B9D4E7B9D4E7B9D4E5 B9D4E5B9D4E5B9D4E5B9D4E5B9D5E3B8D2E3B8D2E1B7D3E1B7D3E1B7D3E1B7D3E1B6D3E1B6D3E1 B6D3E1B4D4E1B4D4E1B4D4E1B4D4E1B4D4E1B3D5E1B4D4DFB2D0DAC1DCE3C2D7DCCADCDEC6D1D3 CCD4D6D9E1E4AAB3B8A3B0B8CCDDE7C2D4E0C1D4E2CADEE9C5D9E2CEE2E9C7DAE0D2E1E6D1E0E3 D1DFE2D0DEE1D2DDE1D3DEE2D5DEE3D7DEE4DBE0E6DCE1E7DDE0E7DFDFE7E0E0E8E0E0E8E1E0E8 E0E0E8DBDEE5DDE2E8E1E4EBDFE4EADEE1E8DADFE5DBDEE5DBE0E6DFE2E9DCE1E7DBDEE5DBE0E6 DFE2E9DDE2E8DADDE4D5DADED1D9DBD3DCDBD7E0DFDDE6E5E1EAE9DFE8E7D8E1E0D1DAD9D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D6E4E7D6E4E7D5E3E6D4E2E5D2E1E6D0E2E6CFE0E7CEE1E7C9DDE4C9DDE4C6DCE7 C5DBE6C4DCE6C3DBE5C2DAE6C2DAE6C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C0DAE7C0DAE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 BFDBE7BFDBE7BFDBE7BFDBE7C2D9E9C2D9E9C3DAEAC4DBEBC6DCEAC6DCEAC9DCEAC9DDE8CBDDE9 CBDDE7CFDDE6D0DEE7D4E1E9D7E4ECDAE7EFDCE9EFDDEBEBDDECE9E0ECEAE0ECEAE2ECEBE3EDEC E5EEEDE5EEEDE6ECECE6ECECE8ECEDE9EDEEEBECEEECEDEFEDEEF0EDEEF0EDF1F0EDF1F0EEF2F1 EFF3F2EFF3F2F0F4F3F1F5F4F1F5F4F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F0F4F3EFF3F2EFF3F2 EEF2F1EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0E9EDECE9EDEC EAEEEDEBEFEEEBEFEEECF0EFEDF1F0EDF1F0F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 F0F4F3EEF2F1EEF2F1EFF3F2EFF3F2F0F4F3F0F4F3F0F4F3F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2F2F2F2F2F2F2F3F3F3F4F4F4F4F4F4F5F5F5F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5 F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F4F4F4F4F4F4F3F3F3F2F2F2F2F2F2F1F1F1 F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F3F2EFF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEFF0F4EFF0F4EFF0F4EFF0F4EFF0F4EFF0F4EFF0F4EFF0F4EFF0F4EFF0F4EFF0F4EFF0F4 EFF0F4EFF0F4EFF0F4EDF1F4EAF0F0E8F1F0E7F0EFE6EFEEE5EEEDE5EEEDE4EDECE4EDECE2EBEA E2EBEAE2EBEAE2EBEAE2EBEAE2EBEAE2EBEAE2EBEAE0E9E8E0E9E8E0E8EAE0E8EADFE9EBDFE9EB DEE9EDDEE9EDDCE9EFDAE9EED9E8EFD4E5ECD2E3EBCFE0E8CDDFE9CDDEE6CBD9E2CDDAE2CEDBE3 D0DDE5D2DFE7D3E0E8D5E2EAD5E2EAD5E2EAD6E3EBD6E3EBD7E4ECD8E5EDD9E6EED9E6EEDAE7ED DAE3E8DAE4E6DAE4E6D9E4E6D9E4E8D7E5E8D6E5EAD6E5EAD3E4EBD2E3EBD0E2ECCFE1EBCCE0EB CADEE9C9DDE8C7DDE8C0DAE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C2D9E7C2D9E7C3D9E7C3D9E7 C5D8E7C5D8E7C6D7E7C6D7E7C7D7E7C6D7E7C4DBE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9 C2DCE9C0DAE7C0DAE7BFD9E6BED8E5BED8E5BDD7E4BCD6E3BBD7E5BAD7E7B8D8E7B9D9E8BADAE9 BCD9E7BDDAE8BEDCE7BEDCE7BEDAE5BFDCE4C0DDE5C1DEE4C2DEE2C1DDE1C0DCE0BFDBDFC0D8E2 C0D8E2C1D9E3C2DAE4C4DAE5C4DAE5C7DBE6C7DBE6CCDEEACBDDE9CBD9E6C9D7E4CAD6E4CBD7E5 CDD9E7CEDCE9C8DCE5C4DBE3C1D7E2C2D6E1C4D6E2C7D9E5CCDDE7D1DFE8D4E1EACED9DFCDD6DB A6B0B2AFB7B99EA7A46167638E9492BAC4C5C6D2D2C3CDCFE2EEEEC9D3D5C8D4D4DAE4E6C0CCCC D6E0E2B3BFBFA6B0B2AEBABAC7D1D3A6B2B2D4DEE0BFC9C8C5CCC5C5CAC3A7ACA591968F81867F 797E777A7F78696E6770756E6267605F645D6D726B7E837C8C918AA0A59EB4B7B0C0BDB8B2ADA9 A19C986B68634C494437372F53544C62635B585B52767C728D958A9CA69BAEB8ADAAB6A8889488 65746D3F5457617A8193ABB5BDD5DFCDE5EFBED9E2B3CED9B8D4DFBCD8E4BDD9E5BDDBE6BEDBE9 BADAE7B7D7E4B7D7E6B9D8EAB9D4E9B9D3EABAD3E9B9D4E9BAD3E9B9D4E9BAD3E9B9D4E7B9D2E6 B8D3E4B9D3E4B8D4E2B9D3E4B8D4E2B9D3E2B8D4E2B8D2E1B7D3E1B7D3E1B7D3DFB7D3E1B6D4DF B6D3E1B4D4DFB4D4DFB4D4DFB3D5DFB3D5DFB3D5DFB3D5DFB1D6DFB3D5DFB9D7DFB2CBD0B7CACE CED9DBD4DADADADCDBC4C5C78184898D969FB4C2CFC3D4E4C2D8E6C3D9E7C1D9E5C6DCE7C0D4DB C8DADEC9D8DBCAD9DCCAD9DCCCDADDD0DBDFD3DCE1D5DCE2E0E5EBE0E3EAE2E2EAE1E1E9E2E1E9 E3E2EAE5E2EBE4E3EBD8D8E0D9DCE3DDE0E9E0E3EAE0E3ECE0E3EAE2E5EEE3E6EDEAEDF6E4E7EE DDE0E9D7DAE1D5D8E1D6D9E0D7DAE3D8DBE0E5E9EADFE5E3D8DEDCD2D8D6CDD3D1CAD0CEC7CDCB C6CCCAD5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D5E3E6D5E3E6D4E2E5D4E2E5D2E1E6CFE1E5CEDFE6CDE0E6C9DDE4 C9DDE4C6DCE7C5DBE6C4DCE6C3DBE5C2DAE6C2DAE6C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C0DAE7C0DAE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7C0DCE8C0DCE8 C0DCE8C0DCE8C0DCE8C0DCE8C0DCE8C0DCE8C3DAEAC3DAEAC4DBEBC4DBEBC6DCEAC7DDEBCADDEB CADEE9CCDEEACCDEE8CFDDE6D0DEE7D4E1E9D7E4ECDAE7EFDBE8EEDEECEDDEECECDFEDEDE0EEEE E3EFEFE3EFEFE5EFF0E6EEF0E6EBEEE6EBEEE8ECEFE9EDF0EBECF0ECEDF1EDEEF2EDEEF0EDF1F0 EDF1F0EEF2F1EFF3F2EFF3F2F0F4F3F1F5F4F1F5F4F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F1F5F4F1F5F4F0F4F3 EFF3F2EFF3F2EEF2F1EDF1F0EDF1F0ECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EF E9EDECE9EDECEAEEEDEBEFEEEBEFEEECF0EFEDF1F0EDF1F0F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5 F2F6F5F2F6F5F2F6F5F1F5F4F1F5F4F1F5F4F0F4F3F0F4F3EFF3F2EFF3F2EFF3F2F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1 EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2F2F2F2F2F2F2F3F3F3F4F4F4F4F4F4F5F5F5F6F6F6F6F6F6F8F8F8 F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F7F7F7F6F6F6F5F5F5F5F5F5 F4F4F4F4F4F4F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F3F2EFF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE ECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFEAEEEDEAEEEDEAEEEDEAEEEDEAEEED EAEEEDEAEEEDEAEEEDECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3 ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3ECF0F3E9EEF1E7EFF1E6EEF0E6EEF0E5EDEFE4ECEEE3EBED E3EBEDE2EAECE2EAECE2EAECE2EAECE2EAECE2EAECE2EAECE2EAECE0E9E8E0E9E8E0E8EAE0E8EA DFE9EBDFE9EBDEE9EDDEE9EDDCE9EFDAE9EED9E8EFD4E5ECD2E3EBCFE0E8CDDFE9CDDEE6CDDBE4 CFDCE4D0DDE5D1DEE6D3E0E8D4E1E9D5E2EAD6E3EBD4E1E9D5E2EAD5E2EAD6E3EBD7E4ECD8E5ED D8E5EDD8E5EBDBE4E9DBE5E7DAE5E9DAE5E9DAE5EBD8E5EBD7E6EDD7E6EDD2E3EBD2E3EBD0E2EC CEE0EACBDFEACADEE9C7DDE8C5DDE7C0DAE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C2D9E7C2D9E7 C3D9E7C3D9E7C5D8E7C5D8E7C6D7E7C6D7E7C7D7E7C6D7E7C3DAEAC1DBEAC1DBEAC1DBEAC1DBEA C1DBEAC1DBEAC1DBEAC0DAE9C0DAE9BFD9E8BED8E7BED8E7BDD7E6BCD6E5BBD7E5BAD7E7B8D8E7 BBD8E8BCD9E9BCD9E7BDDAE8BFDBE7BFDBE7BFDBE6C0DDE5C2DDE6C3DEE5C3DFE3C2DEE2C3DCE1 C2DBE0C1D9E3C1D9E3C2DAE4C2DAE4C4DAE5C5DBE6C8DCE7C8DCE7CDDFEBCBDDE9CCDAE7C9D7E4 C8D4E2C8D4E2C8D4E2C8D6E3C8DCE5C6DDE5C9DDE6C9DDE6CBDDE7CBDDE7CDDEE8D0DEE7D6E3EC D3DEE4D3DCE1B5BFC0C2CBCAB8BEBC7E837F9FA5A1788180798382C6CED0DFE9E8C1C9CBB0BAB9 C7CFD19FA9A8CBD3D5B3BDBCAEB6B8B6C0BFC8D0D2A3ADACBCC4C6A4ADAA858C85868B84727770 6D726B6E736C6D726B70756E5F645D5E635C6E736C8F948DB2B7B0BEC3BCAFB4AD979C958B8E87 6C6B676D696665615E37342F1F1C170E0D0840413973746C5D605761675D7C827698A093A2AA9D A1AC9C9EA99B96A399576B6A475F615D757994ABB1BDD4DAC7E0E7BED9E2B1CCD7B9D5E1BDD9E5 BFDCEABEDBEBB8D8E7B6D6E5B5D6E7B6D5E7B9D4E7BAD3E7BCD2E7BAD3E7BCD2E7BAD4E5BCD3E5 BAD4E5BBD2E4B9D3E2BBD2E2B9D3E0BBD2E2B9D3E0BBD2E0B9D3E0B7D2E3B6D3E3B6D3E3B6D3E1 B6D3E3B4D4E1B4D4E3B4D4E1B4D4E1B3D5E1B3D5E1B3D5E1B1D5E1B1D5E1B1D5E1B4D4DFD3EDFA BACED9D0DEE7D5DCE2A6A7AB78777C59585E44444E5A606E838F9FBBCCDEC3D8EBBDD2E5C8DEEC CBDEECC7DBE4CCDFE5CEE0E4D0E2E6D5E4E9D8E7ECDCE9EFE0EBF1E2EBF2D6DFE6D6DDE5D8DCE5 D9DCE5DCDCE6DDDDE7E0DEE9E0E0EADEDEE6DEDFE4DFDFE7E0E1E6DFDFE7DDDEE3DBDBE3DADBE0 D5D5DDDADBE0DFDFE7E3E4E9E4E4ECE3E4E9E3E3EBE2E3E8CBCBCDBDBDBDA5A5A5898989717171 6262625C5C5C5B5B5BD6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D4E2E5D4E2E5D4E2E5D3E1E4D1E0E5CEE0E4CEDFE6 CCDFE5C9DDE4C9DDE4C6DCE7C5DBE6C4DCE6C3DBE5C2DAE6C2DAE6C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0DAE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7BFDBE7 C1DDE9C1DDE9C1DDE9C1DDE9C1DDE9C1DDE9C1DDE9C2DCE9C4DBEBC4DBEBC4DBEBC5DCECC7DDEB C8DEECCADDEBCBDFEACDDFEBCDDFE9D0DEE7D0DEE7D3E0E8D6E3EBD9E6EEDAE7EDDFEDEEDFEDED E0EEEEE0EEEEE3EFEFE4F0F0E5EFF0E6F0F1E4ECEEE6EBEEE8ECEFE9EDF0EBECF0ECEDF1EDEEF2 EDEEF2EDF1F2EDF1F0EEF2F1EFF3F2EFF3F2F0F4F3F1F5F4F1F5F4F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F1F5F4 F1F5F4F0F4F3EFF3F2EFF3F2EEF2F1EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEE9EDECE9EDECEAEEEDEBEFEEEBEFEEECF0EFEDF1F0EDF1F0F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F4F8F7F3F7F6F2F6F5F1F5F4F0F4F3EFF3F2EEF2F1EDF1F0 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F2F2F2F2F2F2F3F3F3F4F4F4F4F4F4F5F5F5F6F6F6 F6F6F6FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9F8F8F8 F7F7F7F7F7F7F6F6F6F6F6F6F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F3F2EFF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECEBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2 EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EBEFF2EAEFF2E6EEF0E6EEF0E6EEF0E5EDEFE4ECEE E3EBEDE3EBEDE2EAECE2EAECE2EAECE2EAECE2EAECE2EAECE2EAECE2EAECE2EAECE0E9E8E0E9E8 E0E8EAE0E8EADFE9EBDFE9EBDEE9EDDEE9EDDCE9EFDAE9EED9E8EFD4E5ECD2E3EBCFE0E8CDDFE9 CDDEE8CFDDE6D0DDE5D1DEE6D2DFE7D3E0E8D4E1E9D5E2EAD5E2EAD3E0E8D3E0E8D4E1E9D4E1E9 D5E2EAD6E3EBD7E4ECD7E4EADBE6EADBE6E8DBE6EAD9E7EAD9E6ECD8E7ECD8E7EED6E7EED2E3EB D0E3EACFE1EBCCE0E9CBDFEAC7DDE8C6DCE7C4DCE8C0DAE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7 C2D9E7C2D9E7C3D9E7C3D9E7C5D8E7C5D8E7C6D7E7C6D7E7C7D7E7C6D7E7C2D9E9C0DAE9C0DAE9 C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9C0DAE9BFD9E8BED8E7BED8E7BDD7E6BCD6E5BBD7E5 BAD7E7B8D8E7BBD8E8BCD9E9BCD9E7BDDAE8BFDBE7BFDBE7C1DDE8C2DFE7C4DFE8C5E0E7C5E1E5 C4E0E4C5DEE3C4DDE2C2DAE4C2DAE4C2DAE4C3DBE5C5DBE6C6DCE7C8DCE7C9DDE8C9DBE7C8DAE6 CAD8E5C9D7E4C9D5E3C8D4E2C8D4E2C7D5E2C9DDE6C9E0E8CDE1EACFE3ECD0E2ECD0E1EBD0DEE9 CFDCE5D6E0E9D1DCE2CFD8DDB5BDBFC3C9C9B9BFBB858A84999E98808684606966A3A9A9929B98 9DA3A3AAB3B0D0D6D6B0B9B6C4CACAACB5B29BA1A1919A97999F9F767F7C858B8B757B796C716B 6D726B61665F6D726B7F847D8F948DA4A9A2A1A69FBCC1BAAAAFA890958E767B745B605940453E 2B302922251E64656065646057565232312D2B2A251E1D18595A52A8A9A16D6E66494C4155584D 7F8375868C7E848B7B969D8DA5B0A29EAFA9788C8A667A796A7E7F7C9194A6BEC2C6DFE6C2DDE6 B6D1DCB8D4E0B7D4E4B6D3E5B7D6EABBDAEEB6D6EBAECDE1BAD4E5BCD3E3BDD2E3BCD3E3BDD2E3 BCD3E3BDD2E3BCD3E1BCD1E2BBD2E0BCD2E0BBD2E0BCD2E0BBD2E0BCD2DFB9D3E0B7D2E3B4D3E5 B6D3E5B4D4E3B4D3E5B4D4E3B4D4E3B4D4E3B3D4E3B3D5E1B3D5E1B3D5E1B1D5E1B1D5E1B1D5E1 B6D3E1B1C7D5B3C0D0DAE2EFBBBEC777747B635E6566606A76748136394A60687BB5C4D9C6D8EE BBCDE3CEE1F2CCDFEECBDDE9C7DAE1C8DBE1CBDCE3CDDEE5D0DFE6D0DFE6D1DEE6D3DDE6DFE8F1 DEE7F0DEE5EFDFE3EEDEE0ECDBDDE9D8DAE6D9D9E3E1E2E7E1E2E6E2E1E7E3E4E8E7E6ECE6E7EB E5E4EAE1E2E6E3E2E8E0E1E5D8D7DDC4C5C9AAA9AF8E8F937B7A80717075504E51504C4D4C4849 464243433F40474344504C4D585455D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D4E2E5D3E1E4D3E1E4D2E0E3D0DFE4 CDDFE3CDDEE5CCDFE5C9DDE4C9DDE4C6DCE7C5DBE6C4DCE6C3DBE5C2DAE6C2DAE6C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7 C0DAE7C0DAE7C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C2DCE9C4DBEBC5DCECC5DCEC C6DDEDC8DEECC9DFEDCBDEECCBDFEACEE0ECCEE0EAD0DEE7D1DFE8D3E0E8D5E2EAD8E5EDD9E6EC DDECEFDDEDEDDEEEEEDEEEEEE0EEEFE1EFF0E4EFF1E5EFF1E4ECEFE4ECEFE7ECF0E8EDF1E9ECF1 EAEDF2EBEEF3EBEFF2EDF1F2EDF1F0EEF2F1EFF3F2EFF3F2F0F4F3F1F5F4F1F5F4F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F1F5F4F1F5F4F0F4F3EFF3F2EFF3F2EEF2F1EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECEAEEEDEBEFEEEBEFEEECF0EFEDF1F0EDF1F0F3F7F6 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F5F9F8F4F8F7F3F7F6F2F6F5F1F5F4F0F4F3 EFF3F2EEF2F1F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F2F2F2F2F2F2F3F3F3F4F4F4F4F4F4 F5F5F5F6F6F6F6F6F6FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFA FAFAFAF9F9F9F8F8F8F8F8F8F7F7F7F7F7F7F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2 F1F3F2EFF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEAEFF2EAEFF2EAEFF2EAEFF2EAEFF2EAEFF2 EAEFF2EAEFF2EAEFF2EAEFF2EAEFF2EAEFF2EAEFF2EAEFF2EAEFF2EAEFF2E6EEF1E4EEF0E4EEF0 E3EDEFE2ECEEE1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBEC E0E9E8E0E9E8E0E8EAE0E8EADFE9EBDFE9EBDEE9EDDEE9EDDCE9EFDAE9EED9E8EFD4E5ECD2E3EB CFE0E8CDDFE9CDDEE8CFDDE6D0DEE7D0DEE7D1DFE8D1DFE8D2E0E9D2E0E9D2E0E9D0DEE7D0DEE7 D1DFE8D2E0E9D3E1EAD3E1EAD4E2EBD5E2EADAE5EBDAE5E9DAE5EBD8E5EBD8E5EBD7E6EBD7E6ED D5E6EED1E2ECCFE1EBCEE0ECCBDFEACADDEBC6DCE9C5DBE8C3DBE7C0DAE7BFDBE7BFDBE7BFDBE7 C0DAE7C0DAE7C2D9E7C2D9E7C3D9E7C3D9E7C5D8E7C5D8E7C6D7E7C6D7E7C7D7E7C6D7E7C2D9E9 BFDAEBBFDAEBBFDAEBBFDAEBBFDAEBBFDAEBBFDAEBBFDAEBBFDAEBBED9EABDD8E9BDD8E9BCD7E8 BBD6E7BBD6E7BAD7E7BAD7E7BCD7E8BDD8E9BDD9E7BEDAE8C0DAE7C0DAE7C3DEE9C4DFE8C7DFE9 C8E1E8C8E1E6C7E0E5C6DFE4C5DEE3C2DAE4C3DBE5C3DBE5C4DCE6C6DCE7C7DDE8C9DDE8C9DDE8 C3D5E1C3D5E1C8D6E3C9D7E4CBD7E5CBD7E5CCD8E6CBD9E6CCDEE8CDE1E8D1E4EBD3E6EDD4E5ED D1E2EAD0DEE7CFDCE5D0DAE3CED7DCC9D1D4B1BAB9BCC2C0B6BBB78A8F89929791B4B9B5858B87 898D8C525854858988A8AEAAB3B7B6979D997F8382747A766A6E6D656B677175745F6561676B6A 616662787D778E938CA0A59EBDC2BBC2C7C0ACB1AA9CA19A858A83585D56464B442B3029181D16 181D16272C25383D364247402628232B2B2926262423241F46474142433D7B7C74D7D8D08E9085 4F5144383A2D5355476C6D5D818272929383929687A6B2A89BAAA393A49E74857F4F6260667A7B A7BCC1CDE4ECC4DFE8C0DCE8B6D3E3B0CCE1B6D5EAC1DFF7BBDBF4AFCBE1BCD3E5BDD3E1BFD2E1 BDD3E1BFD2E1BDD3E1BFD2E1BDD3E0C0D3E2BED4E1C0D3E1BED4E1C0D3E1BED4E1C0D3E1BDD4E2 B6D3E5B3D4E7B4D3E7B3D4E5B3D4E7B3D4E5B3D4E5B3D4E5B3D4E5B3D4E3B3D4E3B3D4E3B3D4E3 B3D4E3B3D5E1B7D3E1CAD9ECCFD4E7C5C4D478728053495471656F6A606B544E5C3A394B63687C BAC4DDC8D7EEBBCBE2CBDCF0C6D5E8C3D3E2CBDCE4CCDDE4CFE0E7D1E2E9D4E3EAD3E2E9D3E0E8 D4DEE7CED7E0D0D9E2D5DCE6D9E0EADEE2EDDFE3EEDFE3EEDFE2EBECEBF1E4E4E6DCDADFD3D3D5 CCCACFC1C1C3B6B4B9ACACAE8280857B7B7D6F6D725D5D5F4E4C51444446444247464447433D3F 4741434A44464A4446464042443E40453F41474143D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8 D7E2E8D7E2E8D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D3E1E4D3E1E4D2E0E3 D1DFE2CFDEE3CDDFE3CCDDE4CBDEE4C9DDE4C9DDE4C6DCE7C5DBE6C4DCE6C3DBE5C2DAE6C2DAE6 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0DAE7C0DAE7C0DAE7C0DAE7 C0DAE7C0DAE7C0DAE7C0DAE7C3DDEAC3DDEAC3DDEAC3DDEAC3DDEAC3DDEAC3DDEAC3DDEAC5DCEC C5DCECC6DDEDC7DEEEC9DFEDC9DFEDCCDFEDCCE0EBCFE1EDCFE1EBD1DFE8D1DFE8D3E0E8D5E2EA D7E4ECD8E5EBDBEAEDDBEBEBDCECECDCECECDEECEDDFEDEEE2EDEFE2EDEFE3EDEFE4ECEFE5EDF0 E8EDF1E9ECF1EAEDF2EBEEF3EBEFF2EDF1F2EDF1F0EEF2F1EFF3F2EFF3F2F0F4F3F1F5F4F1F5F4 F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F4F8F7F4F8F7F4F8F7F4F8F7F4F8F7 F4F8F7F4F8F7F4F8F7F1F5F4F1F5F4F0F4F3EFF3F2EFF3F2EEF2F1EDF1F0EDF1F0EAEEEDEAEEED EAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDE9EDECE9EDECEAEEEDEBEFEEEBEFEEECF0EFEDF1F0 EDF1F0F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F3F7F6F3F7F6F3F7F6F2F6F5 F2F6F5F1F5F4F1F5F4F1F5F4F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F2F6F5F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F2F2F2F2F2F2F3F3F3 F4F4F4F4F4F4F5F5F5F6F6F6F6F6F6FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA FAFAFAFAFAFAF9F9F9F9F9F9F8F8F8F7F7F7F6F6F6F6F6F6F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2 F2F2F2F2F2F2F1F3F2EFF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEED EAEEEDE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE9EEF1E9EEF1E9EEF1E9EEF1 E9EEF1E9EEF1E9EEF1E9EEF1E9EEF1E9EEF1E9EEF1E9EEF1E9EEF1E9EEF1E9EEF1E7EFF1E4EEF0 E4EEF0E3EDEFE2ECEEE1EBEDE1EBEDE0EAECE0EAECE1EBEDE1EBEDE1EBEDE1EBEDE1EBEDE1EBED E1EBEDE1EBEDE0E8EAE0E9E8E0E8EAE0E8EADFE9EBDFE9EBDEE9EDDEE9EDDCE9EFDAE9EED9E8EF D4E5ECD2E3EBCFE0E8CDDFE9CCDEE8CCDDE5CEDCE5CFDDE6CFDDE6CFDDE6CFDDE6CFDDE6CFDDE6 CFDDE6CFDDE6CFDDE6D0DEE7D1DFE8D2E0E9D2E0E9D3E2E9D6E3E9D6E4E7D6E3E9D5E4E9D5E4E9 D3E4EBD3E4ECD2E5ECCFE1EBCDE1EACCE0EBC9DFEAC7DDEAC4DCE8C3DBE7C1DCE7BFDBE7BFDBE7 BFDBE7BFDBE7C0DAE7C0DAE7C2D9E7C2D9E7C3D9E7C3D9E7C5D8E7C5D8E7C6D7E7C6D7E7C7D7E7 C6D7E7C1D8EABED9EABED9EABED9EABED9EABED9EABED9EABED9EABFDAEBBFDAEBBED9EABDD8E9 BDD8E9BCD7E8BBD6E7BBD6E7BBD6E7BAD7E7BCD7E8BDD8E9BDD9E7BEDAE8C0DAE7C0DAE7C5E0EB C6E1EAC9E1EBCAE3EACAE3E8C9E2E7C8E1E6C7E0E5C3DBE5C3DBE5C4DCE6C5DDE7C7DDE8C7DDE8 CADEE9CADEE9C1D3DFC3D5E1C8D6E3CBD9E6CEDAE8CEDAE8CEDAE8CDDBE6CEE1E8CEE2E9D2E5EC D3E6EDD3E4ECD3E1EAD1DEE7D0DAE3CCD5DCCFD6DCC9D1D4B6BCBCBCC0BFB7BCB6959A93939891 B2B7B1B0B5AFA6ABA57378728D928C979C96797E786C716B70756F6D726C64696364696380857F 929791A6ABA5B8BDB7C8CDC6B1B6AF90958E94999291968F6F746D4B50492328210F140D191E17 2429222E332C3A3F3844494241463F383D373338343F44404749465A5C57898B8665666072736B C2C2B8BFBFB39795886563564543344744336865528784718C8D7B8991828F9B8F9FAB9F96A399 69787150635F6D7F8192A7ACC6DDE5C7E2EDBFDAEBB2CEE3B5D1E9C2E0FAC1DFFBB6D2EABCD3E3 BFD2E0BFD2E0BFD2E0BFD2E0BFD2E0BFD2E0BFD2E0C2D5E3C2D5E3C2D5E3C2D5E3C2D5E4C2D5E4 C2D5E4BFD6E6B6D2E7B3D3E8B3D4E7B3D4E7B3D4E7B3D4E5B3D4E5B4D3E5B4D3E5B4D4E3B4D4E3 B4D4E1B4D4E3B4D4E1B4D4E1BAD1DFC1C9DCA1A0B26962723F334151414C6958625949544E4351 504C5B7C7F92B9C1D6C7D3E9C1D0E5CAD9ECCBD6E8C5D1DDC1CED6C5D2D8CBD8DED1DEE4D5E2E8 D9E4EADAE5EBDAE3EAEAF1F9E8EFF7E6EAF3E1E5EEDCDFE8D7DAE3D2D5DED1D1D9AFAEB3A4A2A3 94929585838479777A6866675553564745464442454341423F3D403B393A3836393836373B393C 3F3B3C3731333E383A473E414A44464C4346453F4142393C3D3739D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D2E0E3 D2E0E3D1DFE2D1DFE2CFDEE3CCDEE2CBDCE3CADDE3C9DDE4C9DDE4C6DCE7C5DBE6C4DCE6C3DBE5 C2DAE6C2DAE6C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEBC6DDEB C6DDEBC6DDEDC6DDEDC7DEEEC7DEEEC9DFEDCAE0EECDE0EECDE1ECD0E2EECFE1EBD1DFE8D1DFE8 D3E0E8D4E1E9D6E3EBD7E4EAD8E7EAD7E9EBD7E9EBD8EAECDBEAEDDBEAEDDDEBEEDFEAEEE2EDF1 E3ECF1E5ECF2E6EDF3E8EDF3E9EEF4EAEFF5EAEFF3EDF1F2EDF1F0EEF2F1EFF3F2EFF3F2F0F4F3 F1F5F4F1F5F4F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F5F9F8F5F9F8F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F1F5F4F1F5F4F0F4F3EFF3F2EFF3F2EEF2F1EDF1F0EDF1F0 E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEAEEEDEBEFEEEBEFEE ECF0EFEDF1F0EDF1F0F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F0F4F3F1F5F4F2F6F5 F2F6F5F2F6F5F3F7F6F3F7F6F4F8F7F4F8F7F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F2F2F2 F2F2F2F3F3F3F4F4F4F4F4F4F5F5F5F6F6F6F6F6F6F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9 F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F2F2F2F2F2F2F2F2F2 F2F2F2F2F2F2F2F2F2F2F2F2F1F3F2EFF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE8EDF0E6EEF0 E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0 E6EEF0E3EDEFE2EDF1E1ECF0E1ECF0E0EBEFDFEAEEDEE9EDDEE9EDE0EBEFE0EBEFE0EBEFE0EBEF E0EBEFE0EBEFE0EBEFE1EBEDE0E8EAE0E9E8E0E8EAE0E8EADFE9EBDFE9EBDEE9EDDEE9EDDCE9EF DAE9EED9E8EFD4E5ECD2E3EBCFE0E8CDDFE9CCDEE8CBDCE6CBDCE6CADBE5CADBE5CADBE5CADBE5 CADBE5CADBE5CBDCE6CCDDE7CCDDE7CDDEE8CEDFE9CFE0EACFE0EAD2E0E9D2E1E8D2E1E6D2E1E8 D2E1E8D2E1E8D0E1E9D0E1E9CFE1EBCEE0ECCDE1ECCCDFEDC8DEEBC6DCEAC4DBE9C3DAE8C0DAE7 BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C2D9E7C2D9E7C3D9E7C3D9E7C5D8E7C5D8E7C6D7E7 C6D7E7C7D7E7C6D7E7C0D7E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9BED8E9C0DAEBC0DAEB BFD9EABED8E9BED8E9BDD7E8BCD6E7BBD6E7BBD6E7BBD6E7BDD7E8BED8E9BED8E7BFD9E8C2D9E7 C2D9E7C8E0ECC9E1EBCBE1ECCCE3EBCCE3E9CBE2E8CAE1E7C9E0E6C4DCE6C4DCE6C5DDE7C5DDE7 C7DDE8C8DEE9CBDFEACBDFEAC5D7E3C7D9E5CDDBE8CEDCE9D0DCEACFDBE9CDD9E7CAD8E3D1E2EA D0E3E9D1E2E9D1E2E9D2E1E8D1E0E7D0DDE5D1DBE4CED7DED5DDE0D2D7DABDC1C0BABFBBB3B5B0 93968F888B82797C75878A83757871676A6360635C6C6F685B5E576E716A71746D8E918AA6A9A2 B7BAB3C5C8C1B5B8B18F928B84878041463F31362F262B244D524B6C716A6368614C514A2C312A 373C35393E373338312E332C383D364E534C5A5F58585D57696E6A7076746C716D7B807AAAACA7 74756F74756DCBCBC1D6D4C8D0CCC0ADAA997C7764564F3D4A4330635B4885806C7D806D868F7C 949D8C9EA99999A5997988815E6C6C56686A90A3AAAFC5D0C4DBEBBCD5E9B5CFE6BCD7F2BEDCF8 B9D5EBBCD3E1BDD3DEBDD3DEBDD3DEBDD3DEBDD3DEBDD3E0BDD3E0C3D9E7C3D9E7C3D9E7C3D9E7 C3D8E9C3D8E9C3D8E9C2D9EBB6D2E7B3D4E7B4D3E7B4D3E7B4D3E5B4D3E5B4D3E5B6D3E3B6D3E3 B6D3E1B6D3E1B6D4DFB7D3E1B7D3DFB7D3DFBDD0DECECFE1ADA4B55A4C5B46353F655057554045 4B383E61545D726C78A1A0AEB9BFCFC5CEDFCBD7E7CCD8E6D1D9E6C8D1DAD8DFE5D9E1E3DAE2E4 DAE2E4D7DFE1D3D8DBCDD2D5CACFD2BBBFC2B1B5B89FA3A68B8F927A7B7F6C6D71636468605F64 4C4A4B474342403C3D413D3C4642434541403C3839332F2E3A36373D3938433F404945444D494A 4C4847484445454142343031353132383234393536393335332F302C2628262223D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D2E0E3D2E0E3D1DFE2D0DEE1CEDDE2CCDEE2CBDCE3CADDE3C9DDE4C9DDE4C6DCE7C5DBE6 C4DCE6C3DBE5C2DAE6C2DAE6C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C6DDEBC6DDEBC6DDEBC6DDEBC6DDEB C6DDEBC6DDEBC6DDEBC6DDEDC6DDEDC7DEEEC8DFEFCAE0EECAE0EECDE0EECDE1ECD0E2EED0E2EC D2E0E9D1DFE8D3E0E8D4E1E9D6E3EBD6E5ECD5E7EBD5E7E9D5E7E9D6E8EAD9E8EBDAE9ECDBE9EC DCEAEDE2EDF1E2EDF1E4EDF2E6EDF3E6EDF3E9EEF4EAEFF5EAEFF3EDF1F2EDF1F0EEF2F1EFF3F2 EFF3F2F0F4F3F1F5F4F1F5F4F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6F5F9F8 F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F5F9F8F1F5F4F1F5F4F0F4F3EFF3F2EFF3F2EEF2F1 EDF1F0EDF1F0E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEAEEED EBEFEEEBEFEEECF0EFEDF1F0EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 F0F4F3F0F4F3F1F5F4F2F6F5F4F8F7F5F9F8F6FAF9F6FAF9F3F7F6F3F7F6F3F7F6F3F7F6F3F7F6 F3F7F6F3F7F6F3F7F6F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2F2F2F2F2F2F2F3F3F3F4F4F4F4F4F4F5F5F5F6F6F6F6F6F6F8F8F8F8F8F8F8F8F8F8F8F8 F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F7F7F7F6F6F6F5F5F5F5F5F5F4F4F4F4F4F4F2F2F2 F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F3F2EFF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE6ECEA E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0E6EEF0 E6EEF0E6EEF0E5EFF1E2EDF1E2EDF1E1ECF0E0EBEFDFEAEEDFEAEEDEE9EDDEE9EDE0EBEFE0EBEF E0EBEFE0EBEFE0EBEFE0EBEFE0EBEFE0EBEDDFE9EAE0E9E8E0E8EAE0E8EADFE9EBDFE9EBDEE9ED DEE9EDDCE9EFDAE9EED9E8EFD4E5ECD2E3EBCFE0E8CDDFE9CCDEE8C8DAE4C8DAE4C9D9E6C8DAE4 C8D8E5C7D9E3C8D8E5C7D9E3CBDBE8CADCE6CCDCE9CBDDE7CDDDEACDDFE9CFDFECCFE0EACFE0E7 D1E0E7D1E0E7CFE0E7CFE0E8CEE1E8CEE0EACDE1EACDE1ECCAE0EBC9DFECC7DFEBC5DCEAC2DCE9 C0DAE7C0DAE7BFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C2D9E7C2D9E7C3D9E7C3D9E7C5D8E7 C5D8E7C6D7E7C6D7E7C7D7E7C6D7E7C1D6E7BED8E7C0D7E9BED8E7C0D7E9BED8E7C0D7E9BED8E7 C2D9EBC0DAE9C1D8EABED8E7C0D7E9BDD7E6BED5E7BCD6E7BCD6E7BCD6E7BDD7E8BED8E9BED8E7 BFD9E8C2D9E7C2D9E7C9E1EDCAE0EBCCE2EDCDE4ECCDE4EACEE2E9CCE0E7CCE0E7C5DBE6C4DCE6 C5DDE7C6DEE8C8DEE9C8DEE9CBDFEACBDFEACBDDE9CCDEEAD1DFECD1DFECD1DDEBCEDAE8CAD6E4 C6D4DFD2E3EAD0E3E9D0E1E8CFE0E7D0DFE6D0DDE5D2DCE5D2DBE2D2D9DFDDE2E6D8DCDFC0C4C3 B6B8B5A7AAA386877F73746C74756D6E716855584F82857C84877EA8ABA29DA097AFB2A9B9BCB3 B2B5AC8F928964675E4F52493C3F361E211823261D292E272C312A282D26373C35333831222720 2F342D373C3530352E3C413A454A434C514A5F645D777C757F847D797E788E94909AA09C959B97 A1A8A1C9CCC57F827974746ACECCC0C8C4B8CFC9BBCEC9B6C4BDAA99917E5146323E311E635B46 75745F939681999E8A969D8BA8B0A1A3ADA27B86805A68684C5B60899CA3C1D4E2C6DBECB9CFE4 B7CFE7BAD4EDB7D2E7BCD4E0BDD4DCBDD4DCBDD3DEBDD3DEBDD3DEBDD3E0BDD3E0C5DBE9C5DBE9 C5DAEBC5DAEBC5DAEBC5DAEDC5DAEDC4DBEDB6D3E5B4D3E5B6D3E5B6D3E5B6D3E3B7D2E3B7D3E1 B8D2E1B8D2DFBAD2DEBAD2DEBAD2DEBBD1DEBBD1DCBBD1DCC1CFDAD1CDDBE0D3DD7E6A73462F35 644C4C644C4A5E4A4B615152968C94C3C2CAC0C4CFC6CCD8D1D9E4C9D0DACFD3DCC2C5CAC1C2C4 BDBDBBB3B3B3A2A2A08E8E8E7878766565655A5A585050504A4A484240413C3B393C3A3B42413F 4A4849504F4D4541403F3B383C3837423E3B4D4948524E4B4C484744403D4B474646423F3E3A39 3A363337333234302D2F2B2A2B27261E1C1D1C1A1B1917181A18191C1A1B1D1B1C1A1819171516 DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBD8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D4E2E5D3E1E4D2E0E3D1DFE2CEDDE2CBDDE1C9DAE1C8DBE1C7DBE2C7DBE2 C5DBE6C5DBE6C4DCE6C4DCE6C4DCE8C4DCE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C3DAE8C4DBE9C4DBE9C5DCEAC6DDEBC6DDEBC4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C3D9E7C3D9E7C4DAE8C5DBE9C5DBE9C6DCEAC7DDEBC7DDEBC8DEECC8DEECC7DDEB C7DDEBC7DDEBC6DCEAC6DCEAC6DCEAC3DAEAC3DAEAC4DBEBC5DCECC7DDEBC9DFEDCBDEECCCE0EB CCDEEACCDEE8D0DEE7D1DFE8D2DFE7D3E0E8D4E1E9D3E2E9D5E7EBD4E7EBD4E7EBD4E7EBD5E7EB D5E7EBD7E6EBD7E6EBD8E5EBDBE6ECDDE8EEE0E9F0E2EBF2E6EDF5E7EEF6EAEFF5EDF1F2EDF1F0 EEF2F1EFF3F2F0F4F3F0F4F3F1F5F4F1F5F4F1F5F4F1F5F4F2F6F5F3F7F6F4F8F7F4F8F7F5F9F8 F5F9F8F1F5F4F1F5F4F2F6F5F2F6F5F3F7F6F4F8F7F5F9F8F5F9F8F6FAF9F5F9F8F4F8F7F2F6F5 F0F4F3EEF2F1EDF1F0ECF0EFEDF1F0EDF1F0ECF0EFEBEFEEEAEEEDEAEEEDE9EDECE9EDECE8ECEB E9EDECE9EDECEAEEEDECF0EFEDF1F0EDF1F0EEF2F1EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2F0F4F3F2F6F5F4F8F7F5F9F8F5F9F8F5F9F8F4F8F7F3F7F6F3F7F6F2F6F5 F2F6F5F1F5F4F0F4F3EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6F6F6F6F6F6 F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6 F6F6F6F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F3F2EFF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE6ECEAE4ECEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEE E3EDEEE3EDEEE3EDEEE3EDEEE3EDEFE3EEF2E1EEF4E0EDF3E0EDF3DFECF2DEEBF1DDEAF0DDEAF0 DEEBF1DDEAF0DCE9EFDCE9EFDDEAF0DFECF2E1EEF4E4EFF3E0EAEBE1EAE9E1E9EBE2EAECE1EBED E1EBEDE1ECF0E1ECF0DFECF2DDECF1DCEBF2D7E8EFD4E5EDD0E1E9CBDDE7C8DAE4C8DAE6C7DBE6 C8DAE8C7DBE6C8DAE8C7DBE6C8DAE8C7DBE6CADCEAC9DDE8CADCEAC9DDE8CADCEAC9DDE8CADCEA CADCE8CBDCE4CBDCE4CBDCE4CBDCE4CBDCE6CADCE6CADCE8C9DDE8C7DAE8C5DBE8C4DBE9C2DCE9 C2DCEBC1DDEBC1DDEBC1DDEBBFDBE7BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C2D9E7C3DAE8BFD5E3 C0D6E4C4D7E6C5D8E7C7D8E8C6D7E7C6D6E6C4D5E5C9DFEDC5DCEAC3D8E9BED5E3BED3E4BDD4E2 C0D5E6C0D7E5C2D7E8C1D8E6C3D8E9C2D9E7C3D8E9C0D7E5BFD4E5BDD4E4BDD4E6BDD4E6BED5E7 BFD6E8C0D7E7C2D9E9C3D9E7C4DAE8C9DFECCBDFEACBDFEACBDFE8CBDFE6CCDFE6CCDFE6CBDFE6 C5DBE6C4DCE6C4DCE6C4DCE6C5DBE6C5DBE6C7DBE6C7DBE6C5D7E3C8DAE6CBD9E6CBD9E6D1DDEB D6E2F0CDD9E7BDCBD6CFE0E7D0E2E6D4E3E8D5E4E9D6E3E9D5E2E8D5E0E6D5DEE5DDE4EAE0E5E8 B0B4B57D7F7C7576716F706A6B6B637B7D7283857A919388ADAFA4C6C8BDC2C4B9A6A89D929489 8F9186989A8F6A6C613A3C3126281D23251A27291E34362B41443B4F544D34393240453E393E37 3B40395A5F58565B54686D6661665F626760686D66797E778F948D9A9F988E938C969B959BA19D ABB4AFBAC0BCA3AAA3C2C5BE96999057574DB3B1A5C6C3B4D2CCBCDAD1C0D9CEBCD1C4B1B2A690 7869543F331D45402A6D6D558E907A9295829195849AA0929DA49C939C976872736C797F697780 A9BBC7D6E9F8CDE2F3A5BCCEC2D9E9C8E1E8B3CCD1B1CACFBBD4DBC4DDE4D3ECF3C6DEE89DB5C1 A2B9C7D3EAF8D4EBFBBFD6E8C8DFF1C7DDF2BBD1E6C7DEF0BDD7E8B5D0E1C0DAE9C1DBEAB1C8D6 B2C9D7BCD2DFB6C9D7C6DAE5C3D5DFC2D3DDC3D4DCC0CED7B1C0C7A3B0B89FA6AC857B838F7C80 7761635E45415E433C5E463C59453E5F4E47998F8EACA8A996979B989DA19BA0A37A7E7F686A69 5A595755504C514A44564E4B4B443E473F3C4D464048433F544F4955504C524D474F474448433D 46413D48433D4A45414C474345423D423F3A3D39363936313733303936313C38353E3B362B2724 2B28232B27242A272227232024211C201C191C1B171E1E1C1D1F1E1D1F1E1C1E1D1C1E1D1C1E1D 1B1D1C1B1D1CDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBD8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D4E2E5D4E2E5D3E1E4D1DFE2CEDDE2CBDDE1CADBE2C8DBE1 C7DBE2C7DBE2C5DBE6C5DBE6C4DCE6C4DCE6C4DCE8C4DCE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C3DAE8C4DBE9C4DBE9C5DCEAC6DDEBC6DDEBC4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C3D9E7C3D9E7C4DAE8C5DBE9C5DBE9C6DCEAC7DDEBC7DDEBC8DEEC C8DEECC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC7DDEBC4DBEBC4DBEBC5DCECC6DDEDC8DEECC9DFED CBDEECCCE0EBCCDEEACCDEE8D0DEE7D1DFE8D2DFE7D3E0E8D4E1E9D3E2E9D4E7EBD4E7EBD4E7EB D4E7EBD5E7EBD5E7EBD7E6EBD7E6EBD7E4EAD8E5EBDCE7EDDEE9EFE2EBF2E4EDF4E7EEF6E8EFF5 EBF1F1EDF1F0EDF1F0EEF2F1EFF3F2F0F4F3F0F4F3F1F5F4F1F5F4F1F5F4F2F6F5F2F6F5F3F7F6 F4F8F7F5F9F8F5F9F8F2F6F5F2F6F5F3F7F6F3F7F6F4F8F7F5F9F8F6FAF9F6FAF9F6FAF9F5F9F8 F4F8F7F2F6F5F0F4F3EEF2F1EDF1F0ECF0EFEDF1F0EDF1F0ECF0EFECF0EFEBEFEEEAEEEDE9EDEC E9EDECE9EDECE9EDECEAEEEDEBEFEEEBEFEEECF0EFEDF1F0EDF1F0EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F0F4F3F2F6F5F4F8F7F5F9F8F5F9F8F4F8F7F4F8F7F3F7F6 F3F7F6F2F6F5F1F5F4F0F4F3F0F4F3EFF3F2EFF3F2F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4 F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6 F6F6F6F6F6F6F6F6F6F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F3F2EFF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE6ECEAE4ECEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEE E3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE3EDEEE2EDEFE0EEF1DFEEF3E0EDF3DEEDF2DEEBF1DCEBF0 DDEAF0DBEAEFDDEAF0DBEAEFDCE9EFDAE9EEDCE9EFDDECF1E0EDF3E1EFF2E1EBECE2EBEAE2EAEC E3EBEDE2ECEEE2ECEEE1ECF0E1ECF0DEEBF1DDECF1DCEBF2D7E8EFD4E5EDD0E1E9CBDDE7C9DBE7 C7DAE8C7DAE8C7DAE8C7DAE8C7DAE8C7DAE8C7DAE8C7DAE8C9DCEAC9DCEAC9DCEAC9DCEAC9DCEA C9DCEAC9DCEAC9DDE8CADCE6CBDCE4CBDCE4CADDE4CADCE6C9DDE6C9DDE8C7DDE8C5DBE8C4DBE9 C2DCE9C1DDEBC1DDEBC1DDEBC1DCEDC1DCEDBFDBE9BFDBE7BFDBE7BEDAE6BFD9E6BFD9E6C0D7E5 C0D7E5BED4E2C0D6E4C4D7E6C6D9E8C8D9E9C8D9E9C9D9E9C7D8E8C9DCEBC8DBE9C5D8E7C3D6E4 C2D5E4C3D6E4C5D8E7C6D9E7C7DAE9C7DAE8C8DBEAC8DBE9C8DBEAC6D9E7C4D7E6C1D7E5BFD4E5 BED5E7BFD6E8C0D7E9C1D8E8C3D8E9C3D9E7C4DAE8CBDEECCBDFEACBDFEACBDFE8CCDFE6CCDFE6 CCDFE6CBDFE6C5DBE6C4DCE6C4DCE6C4DCE6C5DBE6C5DBE6C7DBE6C7DBE6C6D8E4C9DBE7CDDBE8 CCDAE7D3DFEDD6E2F0CBD7E5BAC6D2D1E0E5D2E1E4D4E3E8D6E3E9D6E3E9D7E2E8D6DFE6D6DDE3 C8CDD1BDC1C48D8F8E6668657A7B769D9E96B2B2A8C0C0B6BABCB1A0A29780827764665B4A4C41 3A3C3141433853554A707267585A4F40423736382D33352A35372C45473C56594E4247403F443D 636861727770797E77828780757A73848982929790959A93989D969CA19AACB1AAB7BCB5AEB3AC ACB1AA6067606A746C848B847F847DA5A89F8B8D825B5B4FC7C5B8C2BCAEC8C1AFCEC2B2D1C4B3 D8C9B6D3C4AFB9A894988974534B344C463059544079766391907E93948695978C9EA19AC7CDC9 969F9E5E696B6E7B818F9EA5BFD0D8C7D9E3CDDFE9CBE0E3C2DADACADFE2BBD3D58BA0A5546B71 263A4100111950646F95ABB8DBEEFDDFF4FFCADDEEC8DDF0D0E2F6C5DAEBCDE3F1BDD3E0BED1DF C1D5E0BCCEDAC4D6E0D0DEE7C7D6DDC0CDD5AFBAC0969FA47D8588676F72565B5E494D50474546 55494965524E79625C7459505B3F33593F30604A3C5545384A403756514D3E3E3C44464350524F 45464147464147433A50453F4E4139574A4250433B4E4139544A4152483F5D534A5C5249564D44 50473E4A4138453C33433C32443D33453E364D4A4347443F3D3A35322F2A29262123201B201D18 1F1C171F1C171F1C171F1C171F1C171D1A151C19141B18131817131B1D1A181E1C1B1F1E1D2321 202423212725242827242A28D9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D5E3E6D4E2E5D3E1E4D2E0E3CFDEE3CBDDE1 CADBE2C9DCE2C7DBE2C7DBE2C5DBE6C5DBE6C4DCE6C4DCE6C4DCE8C4DCE8C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C4DBE9C4DBE9C5DCEAC6DDEBC6DDEBC4DBE9C4DBE9 C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C3D9E7C5D8E7C6D9E8C7DAE9C7DAE9C8DBEAC9DCEB C9DCEBC9DCEBC9DCEBCADDECCADDECCADDECCADDECCADDECC8DEECC5DCECC5DCECC6DDEDC6DDED C8DEECC9DFEDCBDEECCBDFEACCDEEACCDEE8D0DEE7D1DFE8D2DFE7D3E0E8D4E1E9D3E2E9D3E6EC D2E7ECD2E7ECD2E7ECD3E6ECD3E6ECD4E5ECD4E5ECD5E4EBD6E5ECD9E6EEDBE8F0E0EAF3E2ECF5 E5EEF7E7EEF4EAF0F0ECF0EFECF0EFEDF1F0EEF2F1EFF3F2EFF3F2EFF3F2F0F4F3F0F4F3F1F5F4 F2F6F5F3F7F6F3F7F6F4F8F7F4F8F7F3F7F6F3F7F6F4F8F7F5F9F8F6FAF9F6FAF9F7FBFAF7FBFA F5F9F8F4F8F7F3F7F6F2F6F5F0F4F3EFF3F2EEF2F1EDF1F0EEF2F1EEF2F1EDF1F0ECF0EFEBEFEE EBEFEEEAEEEDEAEEEDE9EDECEAEEEDEAEEEDEBEFEEEBEFEEECF0EFECF0EFEDF1F0EEF2F1EEF2F1 EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EFF3F2F0F4F3F2F6F5F3F7F6F4F8F7F4F8F7F3F7F6 F2F6F5F2F6F5F2F6F5F1F5F4F1F5F4F0F4F3EFF3F2EEF2F1EEF2F1F0F4F3F0F4F3F0F4F3F0F4F3 F0F4F3F0F4F3F0F4F3F0F4F3EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1ECF0EF ECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFF2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2 F2F2F2F2F2F2F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4 F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F0F2F1 EEF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFEAEEEDEAEEEDEAEEEDEAEEEDEAEEED EAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE6ECEAE2ECEDE1EDEDE1EDEDE1EDEDE1EDEDE1EDEDE1EDED E1EDEDE1EDEDE1EDEDE1EDEDE1EDEDE1EDEDE1EDEDE1EDEDE1ECEEDEEDF2DCEDF4DDECF3DAEBF2 DCEBF2D9EAF1DAE9F0D8E9F0DBEAF1D8E9F0D9E8EFD7E8EFDAE9F0DAEBF2DEEDF4E0EDF3E3EDEE E4EDECE4ECEEE3EBEDE2ECEEE2ECEEE1ECF0E1ECF0DDEAF0DCEBF0DBEAF1D7E8EFD4E5EDD0E1E9 CBDDE7C9DBE7C7DAE8C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C6DCEAC6DCEAC6DCEA C6DCEAC6DCEAC6DCEAC6DCEAC8DBE9C9DBE7C9DBE5C9DBE5C9DBE5C9DBE7C8DCE7C8DBE9C6DCE9 C3DAE8C1DBE8C1DBEAC0DBECC0DBECBFDCECBFDCEEBFDCECC0DCEABFDBE7BFDBE7BDD9E5BDD7E4 BCD6E3BDD4E2BDD4E2BED4E2C0D6E4C4D7E6C7DAE9CBDCECCCDDEDCDDDEDCDDDEDC9DBE9C8DAE6 C7D9E7C7D9E5C7D9E7C9DBE7CBDDEBCCDEEACCDEECCDDFEBCEE0EECEE0ECCDDFEDCBDDE9C9DBE9 C8DAE8C0D5E6C0D5E8C1D6E9C1D6E9C2D7E8C5D8E9C5D8E7C5D8E7CBDDEBCBDDE9CBDDE9CBDDE7 CCDDE5CCDDE5CCDDE5CBDEE5C5DBE6C4DCE6C4DCE6C4DCE6C5DBE6C5DBE6C7DBE6C7DBE6C6D8E4 CBDDE9CFDDEACFDDEAD4E0EED5E1EFC8D4E2B6C2CED2DFE5D3E1E2D5E3E6D6E4E7D8E3E7D8E1E6 D6DFE4D6DEE1888D909B9FA0AAACABB2B3AEBCBBB6B5B5AD918E8566665A3B3D3234372C32352A 33362B313429303328393C3146493E272A1F2C2F24383B30474A3F4F524754574C62655A717469 8F948D8B90899BA0999CA19A9DA29B989D96959A93A1A69FA6ABA4A9AEA7A7ACA5969B94828780 5B605932373011160F2229213B433883897FA8AEA2CBCEC3A2A497565447B3B0A1CAC4B4CBC4B2 CCC0B0CDC0AFD7C8B5E0CFBDDDCBB7D1C0ACADA08D84796559513E5049376A6454888576949285 909086ABACA48E918A717773646D6A6069689EA8A7BFCBCBAEBCBC849491738680657572435652 152524001111122124213337000B121B2C3482909BC8D8E5C5D2E2CCDCEBDBE8F9BECBDBDAE8F3 CEDDE4CEDDE4D0DDE3C6D1D7B7C2C6A1A9AC868B8E6D71746364665252524645434642414C4845 534E4B59504B50413C544039775F557A6051553A275E4330735C4A5E4D3D55493D5A5349484840 4A4B4552514C49463D494238463C324D3C344B383155443C4D3C34483A314D3F364739304F4239 584B4251473D4A403641392E3B3328383025362E23352E242D2A2328272224231E201F1A1D1C17 1D1C171D1C171D1C171817121817121817121918131A19141B1A151D1C171D1E192025211E2724 212725212A27252B29252E2B292F2D28312ED8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D6E4E7D5E3E6D4E2E5D2E0E3 D0DFE4CCDEE2CBDCE3C9DCE2C7DBE2C7DBE2C5DBE6C5DBE6C4DCE6C4DCE6C4DCE8C4DCE8C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C4DBE9C4DBE9C5DCEAC6DDEBC6DDEB C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C5DBE9C5D8E7C5D8E7C6D9E8C7DAE9C7DAE9 C8DBEAC9DCEBC9DCEBC9DCEBC9DCEBCADDECCADDECCBDEEDCBDEEDCCDFEECCDFEEC8DDEEC7DEEE C7DEEEC7DEEEC9DFEDC9DFEDCBDEECCBDFEACCDEEACCDEE8D0DEE7D1DFE8D2DFE7D3E0E8D4E1E9 D3E2E9D1E6EBCFE7EBD1E6EBD1E6EBD2E5EBD2E5EBD3E4EBD3E4EBD4E3EAD5E4EBD7E4ECDAE7EF DEE8F1E0EAF3E3ECF5E5ECF4E9EEF1EAEEEDEBEFEEEBEFEEECF0EFEDF1F0EEF2F1EEF2F1EFF3F2 F0F4F3F0F4F3F1F5F4F2F6F5F3F7F6F3F7F6F3F7F6F4F8F7F4F8F7F5F9F8F5F9F8F6FAF9F7FBFA F7FBFAF8FCFBF4F8F7F3F7F6F2F6F5F2F6F5F0F4F3F0F4F3EFF3F2EEF2F1EFF3F2EEF2F1EEF2F1 EDF1F0ECF0EFEBEFEEEBEFEEEBEFEEEAEEEDEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEECF0EF EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EFF3F2F0F4F3F2F6F5F3F7F6F3F7F6 F2F6F5F1F5F4F0F4F3F1F5F4F1F5F4F1F5F4F0F4F3EFF3F2EEF2F1EEF2F1EDF1F0EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEF1F1F1F1F1F1F1F1F1F1F1F1 F1F1F1F1F1F1F1F1F1F1F1F1F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3 F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 F0F0F0EFF1F0EDEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE6ECEAE1EBECE0ECECE0ECECE0ECECE0ECEC E0ECECE0ECECE0ECECE0ECECE0ECECE0ECECE0ECECE0ECECE0ECECE0ECECDEECEDDCEBF0DAEBF2 D9EAF1D8E9F0D8E9F0D7E8EFD6E7EED6E7EED7E8EFD7E8EFD6E7EED6E7EED7E8EFD8E9F0DAEBF2 DEEDF2E4EEEFE4EDECE4ECEEE3EBEDE2ECEEE1EBEDE0EBEFE0EBEFDBE8EEDAE9EEDAE9F0D6E7EE D3E4ECD0E1E9CCDEE8C9DDE8C5DBE8C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9 C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE9C5DBE8C7DBE6C8DAE4C8DAE4C7DBE4C7DBE6C5DBE6 C5DBE8C4DCE8C0DAE7BFDBE9BFDAEBBEDBEBBEDBEBBEDBEBBEDBEDBEDBEBC0DCEABFDBE7BEDAE6 BDD9E5BDD7E4BBD5E2BCD3E1BCD3E1BFD5E3C1D7E5C6D9E8CADDECCEDFEFCFE0F0D1E1F1D1E1F0 CBD9E6CBD9E4CCDAE7CEDCE7CFDDEAD2E0EBD3E1EED4E2EDD4E2EFD4E2EDD5E3F0D5E3EED4E2EF D3E1ECD1DFECCDDDECC4D7E8C2D7EAC2D7EAC2D7EAC5D8E9C5D8E9C5D8E7C5D8E7CADCEACADCE8 CADCE8CADCE6CBDCE4CBDCE4CBDCE4CADDE4C5DBE6C4DCE6C4DCE6C4DCE6C5DBE6C5DBE6C7DBE6 C7DBE6C7D9E5CCDEEAD1DFECD0DEEBD4E0EED4E0EEC6D2E0B3C0C9D2E0E3D3E1E2D5E3E6D8E3E7 D9E2E7D8E2E4D7DFE2D8DDE0BABEBF9B9D9C8383817F807B7F7E7974746A53514527271B2A2C21 2F32273C3F34494C414E51464D50454B4E434B4E4362655A676A5F72756A7F8277888B808C8F84 90938894978E989D969BA099A3A8A1A5AAA3B8BDB6B9BEB7BEC3BCABB0A9868B845E635C353A33 171C150F140D080D0630352E41463F52584E53594D989E92C4C8BAD5D7CAABAC9E575445B4AE9E D0C9B9D1C8B7D2C5B5D2C2B2D3C2B2D4C3B1D2BFAECDBCAADACABABEB1A0908373645848574E3F 6D64558A8275999385989488AAA89CABADA08083784A4D424F55495A6054434B3E3E493B4B5648 576156566055545E55646E667E87828C959461696B3E46497C8389DBE2EAE8EFF9DEE4F0E4EAF6 DAE1EBCAD1D7B5BDC09BA3A582878A676B6C5153523C3C3C2C2B274B46424F4842504740534940 5F524A6D5F5673655C726159604D465C483F6D55496D53425A3F2A654A35715B465D4C385A4E40 5852464F4C434F4C45514D444A4339443A303F31266251495E4B4466534C5A4941503F374D3F36 41332A45382F41372D3E342A372F24302A1E2B2519272115262014231F141D1D151B1C161A1914 1718121716111516101615101516101C1B161B1C161E1D181F201A23221D2627212A29242A2B26 2C312D2B312F2A302E292F2D272D2B262C2A252B29252B29D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D7E5E8D6E4E7 D5E3E6D3E1E4D1E0E5CDDFE3CCDDE4CADDE3C7DBE2C7DBE2C5DBE6C5DBE6C4DCE6C4DCE6C4DCE8 C4DCE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C4DBE9C4DBE9C5DCEA C6DDEBC6DDEBC4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C5DBE9C5D8E7C6D7E7C7D8E8 C8D9E9C8D9E9C9DAEACADBEBCADBEBCADBEBCADBEBCBDCECCCDDEDCDDEEECEDFEFCFE0F0CEE1F0 CADFF0C9E0F0C9E0F0C9E0F0C9DFEDC9DFEDCBDEECCBDFEACCDEEACCDEE8D0DEE7D1DFE8D2DFE7 D3E0E8D4E1E9D3E2E9D1E5ECCEE7ECCFE6ECCFE6ECD1E5ECD1E5ECD2E5ECD2E5ECD0E1E9D1E2EA D5E3ECD7E5EEDAE7F0DDEAF3E0EAF4E2EBF2E7ECEFE8ECEBE9EDECEAEEEDEBEFEEEBEFEEECF0EF ECF0EFEFF3F2EFF3F2EFF3F2F0F4F3F1F5F4F2F6F5F2F6F5F3F7F6F3F7F6F3F7F6F4F8F7F4F8F7 F5F9F8F6FAF9F7FBFAF7FBFAF3F7F6F2F6F5F2F6F5F1F5F4F1F5F4F0F4F3F0F4F3EFF3F2EFF3F2 EFF3F2EFF3F2EEF2F1EDF1F0ECF0EFECF0EFEBEFEEECF0EFEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEAEEEDEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0F0F4F3F0F4F3F2F6F5 F2F6F5F2F6F5F1F5F4EFF3F2EEF2F1F1F5F4F0F4F3F0F4F3EFF3F2EEF2F1EDF1F0EDF1F0EDF1F0 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEFEFEFEFEFEF EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1 F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F0F0F0F0F0F0F0F0F0F0F0F0 F0F0F0F0F0F0F0F0F0EFF1F0EDEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE6ECEAE0ECECDEECECDEECEC DEECECDEECECDEECECDEECECDEECECDEECECDEECECDEECECDEECECDEECECDEECECDEECECDEECED DAE9F0D8E9F1D7E8F0D6E7EFD6E7EFD5E6EED4E5EDD4E5EDD6E7EFD5E6EED4E5EDD4E5EDD5E6EE D7E8F0D9EAF2DCEBF0E3EDEEE4EDECE3EBEDE2EAECE0EAECDFE9EBDDE8ECDDE8ECD8E5EBD7E6EB D7E6EDD4E5ECD2E3EBCFE0E8CBDDE7C8DCE7C5DBE9C4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC4DBEB C4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC5DBE9C7DAE8C7DBE6C7DBE6C7DBE6 C7DAE8C5DBE8C5DBE9C4DBE9C0DAE9BFDBE9BFDAEBBEDBEBBEDBEDBCDBEDBCDBEFBEDBEDC0DCEA BFDBE7BFDBE7BEDAE6BED8E5BDD7E4BED5E3BED5E3C1D7E5C4DAE8C9DCEBCDE0EFD1E2F2D2E3F3 D4E4F4D6E3F3CDD9E5CFDCE5D1DDE9D3E0E9D6E2EED7E4EDD9E5F1D9E6EFD7E3EFD8E5EED9E5F1 D9E6EFD8E4F0D6E3ECD4E0ECD2E0EDC7D8EAC6D8ECC6D8ECC6D8ECC5D8E9C5D8E9C6D7E7C6D7E7 CBDBEACBDBE8CBDBE8CBDCE6CDDBE4CDDBE4CDDBE4CBDCE4C5DBE6C4DCE6C4DCE6C4DCE6C5DBE6 C5DBE6C7DBE6C7DBE6C9DBE7CDDFEBD0DEEBCFDDEAD3DFEDD4E0EEC6D2E0B4C1CAD2E0E3D3E1E1 D7E2E4D8E3E5D9E3E5D9E1E4D9DEE2D8DDE0B2B6B76A6C6B3636343E3D3857544D5D5A514F4B40 3A382C3E4136444A4050564C5D63596B7167787E747D83797E847A868C82858B81878D8390968C A1A79DAFB5ABB2B8AEAEB4AABABFB8ADB2AB9499927A7F78868B848E938CA4A9A26B70693F443D 20251E252A23434841555A53444942828780A2A89E8B91856A6E5F9B9F90C0C2B4C2C4B6A7A898 524F40AEA898C7C0B0C9C0AFD0C3B3D4C4B4D3C2B2CEBDADCDBAABCEBBACD0BEB0CBBBAECABAAD B9A99C827467504235544838786F5E8C8573A7A28FA8A39078766158564153523D63624D686A52 61634B7779617A7C6672745F858674A4A595A5A6989191879D9D9585847FA4A3A1DEDCDDD7D5D8 A09EA38684898E8C9157575757595653544F4C4B474D4A45544F49625B557269605F52496A5C51 715F536E5B4D715B4E735C4E675042563E32533F36624E456650436248396348356249335B4530 5544305E524451493E4E4A414D4842524B455C514B62534C64534B5C4B445745415D4B474D3E39 41342E3B302A2D221C312821251E16241D15201C131D1A111B180F18180E17170D17170F14150F 141611161712171914191A15181A15191A15181A151A1B161B1D1820211C2325202829242A2C27 2D2E292D2F2A2E302D2B2F2E2A2E2D282C2B262A29252928242827232726D7E2E8D7E2E8D7E2E8 D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D7E5E8D7E5E8D6E4E7D4E2E5D1E0E5CEE0E4CDDEE5CBDEE4C7DBE2C7DBE2C5DBE6C5DBE6C4DCE6 C4DCE6C4DCE8C4DCE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C3DAE8C4DBE9 C4DBE9C5DCEAC6DDEBC6DDEBC4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C5DBE9C5D8E7 C6D7E7C7D8E8C8D9E9C8D9E9C9DAEACADBEBCADBEBC9DAEACADBEBCBDCECCCDDEDCEDFEFCFE0F0 D0E1F1D0E3F2CCE1F2CBE2F2CAE1F1CAE1F1CAE0EEC9DFEDCBDEECCBDFEACCDEEACCDEE8D0DEE7 D1DFE8D2DFE7D3E0E8D4E1E9D1E2E9D0E4EBCDE6EBCEE5EBCEE5EBD0E4EBD0E4EBD1E4EBD1E4EB CEDFE7CFE0E8D3E1EAD5E3ECD9E6EFDBE8F1DFE9F3E1EAF1E6EBEEE7EBEAE7EBEAE8ECEBE9EDEC EAEEEDEAEEEDEBEFEEEEF2F1EEF2F1EFF3F2EFF3F2F0F4F3F1F5F4F2F6F5F2F6F5F1F5F4F1F5F4 F2F6F5F2F6F5F3F7F6F4F8F7F5F9F8F5F9F8F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F0F4F3F0F4F3EFF3F2EFF3F2EEF2F1EDF1F0ECF0EFECF0EFEDF1F0ECF0EFECF0EFEBEFEE EBEFEEEAEEEDEAEEEDE9EDECECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFF0F4F3 F1F5F4F1F5F4F2F6F5F1F5F4F0F4F3EEF2F1EDF1F0F0F4F3F0F4F3EFF3F2EEF2F1EDF1F0EDF1F0 ECF0EFECF0EFEEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1EEF2F1ECF0EFECF0EFECF0EF ECF0EFECF0EFECF0EFECF0EFECF0EFEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEED EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0EFEFEFEFEFEF EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEF0EFECEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEED EAEEEDE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEB E8ECEBE8ECEBE8ECEBE8ECEBE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE6ECEADFEBEB DDEBEBDDEBEBDDEBEBDDEBEBDDEBEBDDEBEBDDEBEBDDEBEBDDEBEBDDEBEBDDEBEBDDEBEBDDEBEB DDEBEBDCECECD6E7EED6E7EFD5E6EED4E5EDD4E5EDD3E4ECD2E3EBD2E3EBD4E5EDD4E5EDD3E4EC D3E4ECD3E4ECD5E6EED7E8F0DAE9F0E1EBEDE2EBEAE1E9EBDFE7E9DDE7E9DBE5E7D9E4E8D9E4E8 D5E2E8D4E3E8D4E3EAD2E3EAD0E1E9CDDEE6CADCE6C7DBE6C5DBE9C4DBEBC4DBEBC4DBEBC4DBEB C4DBEBC4DBEBC4DBEBC3DAEAC3DAEAC3DAEAC3DAEAC3DAEAC3DAEAC3DAEAC3DAE8C6D9E7C6DAE5 C6DAE5C4DAE5C4DAE7C3DBE7C3DAE8C1DBE8BEDAE8BEDAE8BDDAEABDDAEABBDAECBBDAECBBDAEE BBDAECBFDBE9BFDBE7BFDBE7BFDBE7C0DAE7C0DAE7C2D9E7C3DAE8C6DCEAC8DEECCDE0EFD0E3F2 D3E4F4D4E5F5D5E5F5D7E4F4D0DCE8D4DEE7D7E1EBDAE4EDDCE6F0DDE7F0DDE7F1DDE7F0D9E3ED DAE4EDDBE5EFDBE5EEDAE4EED8E2EBD7E1EBD3DFEBC9DAEAC8DAEEC7D9EDC7D9EDC6D9EAC5D8E9 C6D7E7C6D7E7CADAE9CADAE7CADAE7CADBE5CCDAE3CCDAE3CCDAE3CADBE3C5DBE6C4DCE6C4DCE6 C4DCE6C5DBE6C5DBE6C7DBE6C7DBE6CADCE8CCDEEACEDCE9CBD9E6D0DCEAD4E0EEC9D5E3B9C6CF D2E0E3D3E1E1D7E2E4D9E3E5DAE2E5D9E1E4D9DEE1D9DDE0FCFDFFB9B9B973727052514C46433C 3A382C403C305250446C6F6472786E797F7580867C8E948A9CA2989EA49A999F95A4AAA0ADB3A9 B1B7ADACB2A8A4AAA09AA096898F85797F7540453E2F342D1E231C121710262B24484D46989D96 5B60595D625B454A43646962989D969FA49D6469629A9F98B3B9AF969A8B5F6352959887C7CAB7 CACBBBBDBCAA53503F9A9484CAC1B0CABEAECEC1B1D6C6B7D6C5B5D1C0B0D5C2B3DDCABCD1BDB4 D5C2BBDDCAC3D9C7BDBBA99D8A7A6B635343504330776C568F846E9B947A8881658D886A908B6D A6A382B6B191CCC6A4D7D1AFB5AC8D7F785B83795E9F987E9F9480877F6C7F736572685C64574F 60554F645653544947534545645A5856514B65615867635A635C526359505F524963554A756558 5F4C3D6E5948755B4A7055427255437A5B4771503D5B3E2E523B336A57506C564B5E4737614736 5F46325D47326A59476054464D443B544D474F4744493E3C50423F4C3933473430362724302221 3729282A1F1D221715221816170F0C1C171314110C13120D13140E13160F151811161912161912 171A131416111719141A1C171E201B20221D20221D1F211C1F211C11130E1517121C1E1922241F 262823262823252722242623212121222222222222232323242424252525252525262626D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E6E9D7E5E8D6E4E7D5E3E6D2E1E6CEE0E4CDDEE5CCDFE5C7DBE2C7DBE2C5DBE6 C5DBE6C4DCE6C4DCE6C4DCE8C4DCE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C3DAE8C4DBE9C4DBE9C5DCEAC6DDEBC6DDEBC4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C5DBE9C6D7E7C7D7E7C8D8E8C9D9E9C9D9E9CADAEACBDBEBCBDBEBCADAEACBDBEBCCDCECCEDEEE D0E0F0D1E1F1D3E3F3D2E3F3CDE2F3CCE3F3CBE2F2CAE1F1CAE0EEC9DFEDCBDEECCADEE9CCDEEA CCDEE8D0DEE7D1DFE8D2DFE7D3E0E8D4E1E9D1E2E9CFE3EACCE5ECCCE5ECCCE5ECCDE4ECCFE3EC D0E2ECD0E2ECCDDEE8CEDFE9D2E0EBD4E2EDD8E4F0DAE6F2DCE8F4DFE9F2E4E9ECE6EAE9E6EAE9 E7EBEAE8ECEBE9EDECE9EDECEAEEEDEDF1F0EDF1F0EEF2F1EFF3F2F0F4F3F0F4F3F1F5F4F1F5F4 EEF2F1EFF3F2EFF3F2F0F4F3F1F5F4F1F5F4F2F6F5F2F6F5F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4 F1F5F4F1F5F4F1F5F4F1F5F4F1F5F4F0F4F3EFF3F2EEF2F1EEF2F1EDF1F0EDF1F0EDF1F0EDF1F0 ECF0EFEBEFEEEBEFEEEAEEEDE9EDECE9EDECEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEF0F4F3F1F5F4F1F5F4F1F5F4F0F4F3EFF3F2EDF1F0EBEFEEEFF3F2EFF3F2EEF2F1EEF2F1 EDF1F0ECF0EFEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECECECECECECECECECECECECECECECECECECECECECECECECECEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDEFEEEBEDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E6ECEADEEAEADBEBEADBEBEADBEBEADBEBEADBEBEADBEBEADBEBEADBEBEADBEBEADBEBEADBEBEA DBEBEADBEBEADBEBEADBEBEBD5E6EDD3E5EFD3E5EFD2E4EED1E3EDD0E2ECD0E2ECD0E2ECD2E4EE D1E3EDD1E3EDD0E2ECD1E3EDD3E5EFD5E7F1D9E8EFDFE9EBDFE8E7DEE6E8DCE4E6DAE4E6D8E2E4 D6E1E5D5E0E4D2DFE5D2E1E6D2E1E8CFE0E7CEDFE7CCDDE5C8DAE4C6DAE5C5DBE9C4DBEBC4DBEB C4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC2D9E9C2D9E9C2D9E9C2D9E9C2D9E9C2D9E9C2D9E9C2D9E7 C5D8E6C5D9E4C3D9E4C3D9E4C3D9E6C2DAE6C2D9E7C0DAE9BDD8E9BDD8E9BCD9EBBCD9EBBAD9ED BAD9EDBAD9EDBAD9EBBEDAE8BFDBE7C0DCE8C1DDE9C3DDEAC5DFECC8DFEDC8DFEDCBE1EFCCE2F0 D0E3F2D2E5F4D4E5F5D4E5F5D5E5F5D6E3F3D6E0EAD9E2E9DCE5EEDFE8EFE0E9F2E0E9F0DFE8F1 DDE6EDD9E2EBDAE3EADBE4EDDBE4EBDAE3ECD8E1E8D6DFE8D2DFE8CADBEBC9DBEFC8DAEEC7D9ED C7D8EAC6D7E9C6D7E7C5D6E6C9D9E8C9D9E6CBD9E6CBD9E4CBD9E2CBD9E2CBD9E2C9DAE2C5DBE6 C4DCE6C4DCE6C4DCE6C5DBE6C5DBE6C7DBE6C7DBE6CBDDE9CCDEEACBD9E6C7D5E2CDD9E7D4E0EE CDD9E7C0CDD6D4DFE3D5E1E1D8E2E3D9E3E4DAE2E5D9E1E4D9DEE1D9DDE0DEDFE1D7D7D5B7B6B2 9999918B887F7874697975699492859A9D949EA59DA0A79FA2A9A1AEB5ADBDC4BCBFC6BEB5BCB4 A7AEA6BCC3BBBCC3BB929991585F572D342C181F170E150D161B14191E173D423B5459524F544D 535851B4B9B271766F51564F484D467C817AB7BCB5B8BDB66E736CA5AAA3B3B9ADAFB3A2616451 8A8B79BCBEA9C6C5B3D0CFBB64614EA09B88D3CAB9CFC3B3CFC2B2D6C6B7D5C3B5CEBCAED4C1B3 DFCBC0CFBBB4D6C1BCD1BCB7CAB6AFD5C1B8DBC9BBBAA9978A7B6655462F514328766B4D988E6B C5BD98D8D0ABD9D1AAADA47BB0A379E0D1A8DFCDA7AB9C758F7C5B7D6D4C6551364F3E244F3A25 5644306650427865578E776F89756C70595354413A5E544A645C51594F454F4337544639554536 5845366B56456C5241785D4A795A466D4D38714D377D594179533C63422F5E474166534F705951 6851435F4536614A3868534265534563564D4C433C59514E514746423434413131301B1A220E0D 27181B1F1418261B1F1B1215170E111B15171612131E1C1D151515151716161A19181E1C1A201E 1A23201A23201B241F2C312D2C312D2B302C282D29212622191E1A1116120D120E0C110D121713 1B201C232824262B272328241E231F1C1E1B1C18191E181A1E181A1E181A1F191B1F191B201A1C 201A1CD6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E6E9D8E6E9D6E4E7D5E3E6D3E0E6D1E0E5CEDFE6CCDFE5C8DBE2 C7DBE2C7DBE6C5DBE6C5DBE6C4DCE6C4DCE8C4DCE8C2DAE6C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6 C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7 C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7C0DBE6C2D9E7C2DAE6 C2D9E7C2DAE6C4DAE8C4DCE8C5DBE9C5DDE9C7DDEBC6DEEAC5DBE9C4DCE8C5DBE9C4DCE8C5DBE9 C4DCE8C5DBE9C5DBE8C6D8E6C7D7E6C8D8E7C9D9E8C9D9E8CADAE9CBDBEACBDBEACADAE9CBDBEA CCDCEBCEDEEDD0E0EFD2E2F1D3E3F2D3E5F3D0E3F2CEE4F2CDE2F3CCE2F0CBE1EFCBDEEDCBDEEC CADDEBCCDEEACCDEE8CEDFE9D1DFEAD1DFE8D2E0E9D3E1EAD1E2EACFE3EACDE4EACDE4ECCDE4EA CFE3ECCFE3EAD0E2ECD1E2EACDDEE8CEDFE7D1DFEAD4E2EBD7E3EFD9E6EFDBE7F3DEE8F1E2EAED E4EAEAE5EBEBE5EBEBE6ECECE7EDEDE8EEEEE8EEEEECF2F2EDF1F0EEF2F1EEF2F1EFF3F2F0F4F3 F1F5F4F1F5F4EDF1F0EDF1F0EDF1F0EEF2F1EFF3F2F0F4F3F0F4F3F1F5F4F0F4F3F0F4F3F1F5F4 F1F5F4F1F5F4F1F5F4F2F6F5F2F6F5F3F5F4F3F5F4F2F4F3F2F4F3F1F3F2F0F2F1EFF1F0EFF1F0 F0F2F1EFF1F0EFF1F0EEF0EFECEEEDEBEDECEBEDECEAECEBEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEF0F4F3F1F5F4F1F5F4F1F5F4F0F4F3EEF2F1ECF0EFEAEEEDEFF3F2EFF3F2 EEF2F1EDF1F0ECF0EFECF0EFEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECEBEDECEBEDECECECECEBEDECECECECEBEDECECECECEBEDECEEEEEE EDEFEEEEEEEEEDEFEEEEEEEEEDEFEEEEEEEEEDEFEEEEEEEEEDEFEEEEEEEEEDEFEEEEEEEEEDEFEE EEEEEEEDEFEEEEEEEEEDEFEEEEEEEEEDEFEEEEEEEEEDEFEEEEEEEEEDEFEEE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBECE7EBECE9EAECE7EBECE9EAECE7EBECE9EAECE7EBECE9EAECE7EBECE9EAECE7EBECE9EAEC E7EBECE9EAECE6ECECDEEAEADCEAEADCEAEADCEAEADCEAEADCEAEADCEAEADCEAEADCEAEADCEAEA DCEAEADCEAEADCEAEADCEAEADCEAEADBEAEDD4E5EDD3E5EFD2E4EED1E3EDD0E2ECD0E2ECCFE1EB CFE1EBD1E3EDD1E3EDD0E2ECD0E2ECD1E3EDD2E4EED4E6F0D7E8F0DDE8ECDDE7E9DBE5E7D9E4E6 D7E2E6D3E0E6D1DEE4D0DFE6CFDEE5CEDFE7CDE0E7CDDFE9CCDEE8C8DCE7C6DAE5C3D9E6C4DBE9 C4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC4DBEBC2D9E9C2D9E9C2D9E9C2D9E9C2D9E9C2D9E9 C2D9E9C2D9E7C3D9E6C3D9E4C3D9E6C3D9E6C2DAE6C2D9E7C0DAE7C0DAE9BED8E7BDD8E9BDD8E9 BDD8E9BCD9EBBCD9EBBCD9EBBDD8E9BED8E5BFDAE5C3DBE7C5DDE9C8E0ECCBE1ECCDE3EECFE3EE D1E3EFD2E4F0D4E4F1D6E6F3D8E6F3D8E6F1D6E4F1D7E4EDD9E2E9DCE5EAE0E7EDE1EAEFE2EBF0 E1EAEFDFE8EDDDE6EDD8E1E8D9E2E9D9E4EAD9E4EAD8E3E9D6E1E7D4DFE5D1DEE7CBDCECCADDEE C9DBEFC8DBECC8D9EBC6D7E9C6D7E7C5D6E6C8DAE8C9D9E8C9D9E6C9D9E6C9DAE4C9DAE4C9DAE4 C8DAE4C7DBE4C5DCE4C5DCE4C5DCE4C7DBE4C7DBE4C8DAE4C8DAE4CCDEE8CCDDE7C7D8E2C4D2DD CAD8E3D3E1EECFDDEAC3D1DAD2E0E3D3E1E2D7E2E4D8E3E5D8E3E7D8E1E6D7DEE4D8DDE1D6DADD DCDEDDBCBDB8A6A5A0B7B4ABB5B3A6A5A293A8A99BA7ACA5B7BEB7C5CCC5C5CCC5C0C7BFAFB4AD 8A9086666C62646A60858D828E968B61695E2832271E281F3F4940636A62686B64686961979892 A9ACA37477704D5349B9BEB77C84795D645C596156899088B8BEB4B4B9B270766CB7BAB3C4C7BC B7BBAA61644F888A75BFBEA9C9C7B2DCD7C3665F4C918976D3CBB8CBC3B0CCC1AFD3C8B6D1C4B4 C9B9AACCBAACD8C6BCD8C5BFD8C5C1D8C5C1D7C4BED2BFB8CEBCB0CEBEAED1C2ADAD9E875F5136 6558388B7E5BC4B892D7CBA1A59A6D1E11007B6A3EBDAA7FCCB98E9E8B61755F38614A28664D2E 7B6146856B52705840735A467E67557D66587B6456725C4F5C493B574636675646695846725F4E 867460806B586D5742705743785D488266517C5D486A4A356A473177543E7450385D3E2C58443D 4B3C3765544C726054604D3F6250425B4B3E2F23173A312A1E16132A2522211B1B180E0F281C1C 2414142012121B1217130C131912190E080C0A05090F0D100C0C0E1717191C1D1F1C20211E2424 212725212A27222B28232C29232C27242925262B252B2D282A2F292A2C2723282220221D1A1F19 12140F171C162426212B302A2F312C282D2722241F1D1D1B1E1A1B1E181A1C16181A1416171113 150F11130D0F120C0ED4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5DAE5EBDAE5EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5E9D9E4E8D8E3E7D5E3E6D3E0E6D0DFE4CFDEE5 CDDEE5CCDFE6CBDFE6CADEE9C7DDE8C7DDE8C6DCE7C5DBE8C4DCE8C0DBE6BFDCE4C0DBE6BFDCE4 C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6 BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4C0DBE6BFDCE4 C0DBE6C0DBE4C5DBE8C5DBE6C7DAE8C5DBE6C7DAE8C5DBE6C7DAE8C5DBE6C7DAE8C5DBE6C8DBE9 C7DDE8C9DCEAC8DEE9CBDEECCBDFEAC9DAE4CBD9E2CBD9E2CBD9E2CBD9E2CBD9E2CBD9E2CBD9E2 CCDAE3CDDBE4CEDCE5D0DEE7D2E0E9D4E2EBD5E3ECD4E5EFD5E7F5D3E6F4D2E5F4D0E3F1CEE1EF CDDFEDCCDEECCBDDEBCEE0EECEE0ECCEE0ECCFDFECCFDFECCFDFECCFDFECCFE0EACFE0E8CFE0E7 CFE0E8CFE0E7CFE0E8CFE0E7CFE0E8D1E0E7D3E1EAD3E2E9D4E2EBD5E4EBD5E3ECD6E5ECD7E5EE D8E5EDDCEAEDDEE9EDDFEAEEE0EBEFE2ECEEE2ECEEE4ECEEE4ECEEE6EEF0E8EEEEE9EFEDEAF0EE ECF0EFECF0EFEFF1EEEFF1EEEFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F1F3F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2 F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2EDEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0E9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEBEDECE9EDECEBEDECE9EDECEBEDEC E9EDECEBEDECE9EDECEBEDECE9EDECEBEDECE9EDECEBEDECE9EDECEBEDECE9EDECEBEDECE9EDEC EBEDECE9EDECEBEDECE9EDECEBEDECE9EDECEBEDECE9EDECEBEDECE9EDECEBEDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDEEE9EAEEE9EAEEEAE9EEE9EAEEEAE9EEE9EAEEEAE9EEE9EAEEEAE9EEE9EAEEEAE9EE E9EAEEEAE9EEE9EAEEEAE9EEE7EBEEE0E8EBDEE9EBDEE9EBDEE9EBDEE9EBDEE9EBDEE9EBDEE9EB DCE7E9DDE8EADEE9EBDFEAECE0EBEDDFEAECDEE9EBDBE9ECD3E4ECD0E4EDCFE3ECCEE2EBCCE0E9 CBDFE8C9DDE6C9DDE6D1E5EED2E6EFD2E6EFD3E7F0D4E8F1D5E9F2D5E9F2D6E9F0D1E0E7D1E0E7 D0DFE6CEDFE6CDDEE6CBDEE5CADCE6C9DDE8C9DDE8C7DDEAC7DDEAC6DDEBC6DDEBC4DEEDC4DEED C4DEEDC2D9E7C0D7E5BFD6E4C2D9E7C6DDEBC6DDEBC2D9E7BED5E3CBE2F0C4DBE9BFD6E4C0D7E5 C5DCEAC8DFEDC5DCEAC1D8E6C2D9E7C2DAE6C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0D7E5 BED8E7BFD9E8C0DAE9C0DAE9C1DBEAC2DCEBC4DBE9C4D8E3C5D9E2C8DBE2CADDE4CDE0E7D0E1E8 D4E3EAD5E4EBDAE7EDDAE7EDDCE7EBDCE7EBDDE6EBDDE7E9DDE6EBDEE6E9E0E8EAE0E8EAE1E6E9 DEE6E8DDE5E8DDE5E8DBE5E7DBE4E9DCE7EBDCE7EBD9E6ECD9E6ECD7E6EDD6E5ECD5E4EBD3E4EE CCDEECCBDEEDCADDEECADDECC9DCEBC8DBEAC7DAE9C7DAE9C5D8E7C6D7E7C6D8E6C6D8E6C6D8E6 C6D8E6C6D8E6C6D8E4C6D8E2C6D9E0C7D8E0C7D8E0C7D8E0C7D8E0C9D8DFC9D8DFCEDDE4C3D4DB C0D1D9C0D1D9C5D6DECDDEE8C5D6E0ACBDC5B5C6CDCADCE0D1E2E9CDDEE5CFE0E8D2E0E9CFDDE6 D3E0E8D1DADFD4DCDED1D7D5CBCEC7C9CBC0CACBBDC2C0B1B2B2A6C3C8C28C9290787E7C575C58 40453F1E211815180D171A0F4145373F453799A192505B4B4F5B4D5361547B8B7EAEB8ADA09D96 6A635BB4AFA9B7B4AB7A7B73545A4EB2BAAF8691836874685F6B5D8D978CC6CEC1BFC5BB7F8277 AAABA3C9CBBEAFB7A26F776080826CBEB9A3D7CFB8E2D6C0796D558D8169D1C7AEC6BFA5C6C0A8 CFC9B3D1C9B6CABEAECBBEAED4C6BBD0C2BFD2C4C3D4C6C5C9BBB8C0B3ADCCBFB7D5C7BCCABDAD D5C8B5D9CAB3AD9F82645534998B66CDC096BBAE82938659B8AB7ED1C297D5C69BB3A1798B7550 7C6442826749886D5283674F7E644D785F496F5A456C5A466F5E4C7667547E6D5980685081664B 7E6348785E437359406D533A694F38664E36795E496A513B5E4531634A36715844775E4A6C5543 5D4A3B55483F483F383C332A352C23332A2130271E29221A211C16161510151611131311121210 10100E0E0E0C0E0D0B0D0B0C16141914111814111817151A1C1A1F201F24222224222224252525 242625252726252724262825272926282A25282B2431342D31342B31322A2F32292F30282D3027 2D2E262C2F262C2D2525281F2A2B2336393036372F272A2120211923241E1515151717191A1A1C 1212140B0B0D14141619191B0D0D0FD4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDBE6EADAE5E9D9E4E8D8E3E7D4E1E7 D2DFE5D0DFE6CEDFE6CDDEE6CCDFE6CADEE9C9DDE8C7DDE8C6DCE7C5DBE8C4DCE8C0DBE4BFDCE4 BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4 BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4 BFDCE4BFDCE4BFDCE4C0DBE4C5DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C7DBE6C8DCE7C9DDE8C9DDE8CADEE9CBDFEACCDEE8CBDCE4CDDCE3CDDCE3CDDCE3CDDCE3CDDCE3 CDDCE3CDDCE3CCDBE2CDDCE3CEDDE4D0DFE6D2E1E8D4E3EAD5E4EBD6E4EDD6E6F3D4E6F4D3E5F3 D1E3F1CFE1EFCDDFEDCCDEECCBDDEBCEE0EECEE0EECEE0EECEE0EECEE0EECEE0EECEE0EECFDFEC D1DFE8D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D3E2E9D3E2E9D4E3EAD5E4EBD5E4EB D6E5ECD7E6EDD7E6EDDBEAEFDBEAEFDDEAF0DDEAF0E0EBEFE1ECF0E3EDEFE3EDEFE6EEF0E6EFEE E9EFEFE9EFEDEBEFEEECF0EFEFF1EEEFF1EEEFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2 EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2EFF3F2F1F3F2F2F2F2F3F1F2F3F1F2F3F1F2 F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F2F2F2EDEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDEEEAE9EEEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EF EAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFE9EAEFE0E8EBDFE9EBDFE9EBDFE9EBDFE9EBDFE9EB DFE9EBDFE9EBDEE8EADEE8EADFE9EBE0EAECE0EAECE0EAECDFE9EBDBE9ECD3E4ECD1E5EED0E4ED CEE2EBCCE0E9CBDFE8CADEE7C9DDE6D0E4EDD0E4EDD1E5EED1E5EED2E6EFD3E7F0D3E7F0D4E8F1 CFE0E8CFE0E8CDE0E7CCDFE6CADEE7CADEE7C7DDEAC7DDEAC6DDEBC6DDEBC4DEEDC4DEEDC3DEEF C3DEEFC3DEEFC3DFEDC6DDEDC4DBE9C2D9E7C3DAE8C4DBE9C4DBE9C1D8E6BED5E3C9E0EEC4DBE9 BFD6E4C0D7E5C5DCEAC7DEECC5DCEAC1D8E6C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C3DAE8C4DBE9C5DBE8C7D9E3C9DAE2CBDCE3CDDEE5 D1E0E7D4E3E8D6E3E9D9E4E8DEE8EADEE8EADFE7E9DFE7E9E1E7E7E1E7E7E1E7E7E1E7E7E3E9E9 E3E9E9E2E8E8DFE8E7DEE6E8DDE7E8DCE6E8DBE6E8DCE7EBD9E7EAD8E7ECD7E6EBD4E5ECD3E4EB D3E4ECD1E3EDCCDEECCBDEEDCADDECC9DCEBC8DBEAC8DBEAC7DAE9C7DAE9C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E6C6D8E4C6D8E2C7D8E0C7D8E0C7D8E0C7D8E0C9D8DFC9D8DF C6D7DEC7D8DFCEE1E8CFE2E9CCDEE8CEE2EBC8DCE7B3C7D0B7CAD1CCDFE5D2E5ECCCDFE6CDDFE9 CCDEE8C9DAE4CEDCE5CBD8E0D1DBDDD1DAD9CDD2CCC9CCC1BEBFB1A6A4958A8A7E474C48202928 2127252B302C3B3E3736393063655A7E82746C70615D6454B5BEAD6A77665967585B6D5D899B8D B7C3B7A6A299726761BDB4ADC2BEB5888A7F5D6357B3BEB08D998B4B594A546253879284C0C8BB BFC5B982847998988EADAFA2919A87616A55767964B0AE99C9C1ACDFD3BD80715A82765ED0C9AF C6C2A7C4C2A9CBC9B2CEC9B5C9C2B0CDC1B3D5C8BFCDC2BED2C7C5D9CECCD5CAC6CEC3BFD8CBC5 DACDC4CBBFB1D5C8B7D8C9B4B9AB907E6F50A79976CFC19ADBCCA1E2D5A9D4C79BE6D9ADE4D5AC BCA981856D496248275F422466482C81614880624A7E634E7E68517D6B55756651665B455F5137 755B427D5F4385674B886D52876B5380664D775E486F59426E57455E49364F3C2B4B3A2A513F31 51413248382B3A2E22352F232B271C221E151E1A111D1A131C191216151011120C0F100B0F110C 0F1410121713141A18161C1A181E1C1A1E1F18191E16151B13121816151A1C1B20222224242426 2323232929292A2A282A2A282C2D282D2E292E2F292E2F292F30282D2F242D2F242D2F242D2F24 2D2F242D2F242D2F242D2F2434362B2F312633352A3E40353E4035313328282A1F2829211B1D1A 161719111214101113111214111214111214141517D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6 D5E0E6D5E0E6DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDCE7EBDCE7EBDAE5E9 D9E4E8D5E2E8D4E1E7D2E1E8CFE0E7CDDEE6CCDFE6CADEE9C9DDE8C7DDE8C6DCE7C5DBE8C4DCE8 C0DBE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4 BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4 BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4C0DBE4C5DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C7DBE6C7DBE6C7DBE6C8DCE7C9DDE8C9DDE8CADEE9CBDFEACCDEE8CEDFE7D0DFE6D0DFE6D0DFE6 D0DFE6D0DFE6D0DFE6D0DFE6CDDCE3CEDDE4CFDEE5D0DFE6D2E1E8D3E2E9D4E3EAD5E3ECD5E6F0 D4E4F1D3E3F0D2E2EFD0E0EDCFDFECCEDEEBCDDDEACFDFECCFDFECCFDFECCFDFECCFDFECCFDFEC CFDFECCFE0EAD1DFE8D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D3E2E9D3E2E9D4E3EA D5E4EBD5E4EBD6E5ECD7E6EDD7E6EDDAE9EEDAE9EEDCE9EFDDEAF0E0EBEFE0EBEFE2ECEEE2ECEE E5EDEFE5EEEDE8EEEEE9EFEDEBEFEEEBEFEEEEF0EDEEF0EDEEF2F1EEF2F1EEF2F1EEF2F1EEF2F1 EEF2F1EEF2F1EEF2F1EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EFF1F0F0F0F0F0F0F0 F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 F0F0F0ECEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDECF0EF ECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EF ECF0EFECF0EFE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEAEEEDEAEEED EAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEFEAE9EEEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EF EAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFE9EAEFE0E8EBDFE9EBDFE9EBDFE9EB DFE9EBDFE9EBDFE9EBDFE9EBDFE9EBDFE9EBDFE9EBDFE9EBDFE9EBDFE9EBDFE9EBDBE9ECD4E5EC D1E5ECD0E4EBCFE3EACDE1E8CBDFE6CADEE5CADEE5CDE1E8CDE1E8CEE2E9CFE3EAD0E4EBD0E4EB D1E5ECD1E5ECCEDFE7CEDFE7CCDFE6CCDFE6CADEE7C9DDE6C6DCE9C6DCE9C5DCEAC5DCEAC3DDEC C3DDECC2DDEEC2DDEEC2DDEEC2DEECC8DFEFC6DDEBC4DBE9C3DAE8C2D9E7C1D8E6C1D8E6C1D8E6 C5DCEAC2D9E7C0D7E5C1D8E6C5DCEAC6DDEBC4DBE9C1D8E6C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C3DAE8C4DBE9C5DBE8C9DBE5CBDCE4 CCDDE5CFE0E7D3E2E9D5E4E9D8E5EBD9E7EADFEAECDFEAECE0EAEBE0EAEBE1EAE9E1EAE9E3E9E9 E3E9E9E4EAEAE4EAEAE1EAE9E1EAE9E0E8EADEE8E9DDE7E9DCE7E9DAE5E9D8E5EBD7E6EDD6E5EC D3E4ECD2E3EBD2E3EBD0E2ECCBDDEBCADDECC9DCEBC9DCEBC8DBEAC7DAE9C6D9E8C6D9E8C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C3D9E6C3D9E6C3D9E6C3D9E6C5D9E4C5D9E4 C5D9E4C5D9E4BFD3DEC6DAE5D2E6F1CFE5F0C7DDE8CAE0EBC9DFECBBD1DCB9CDD4CEE1E7D3E6ED CCDFE6CCDEE8CADCE6C6D7E1CAD8E1CCD9E1D2DCDED2DBDAD1D6D0CED1C6BEBFB19B998A757668 4A4F493B44414B514D737A7380857E62685E999C91B6BAAC838778646B5BBEC6B77C89785A6859 61736598AA9EC1CDC1B7B4AB7E756EBEB7AFC2BFB68F91865C6256B0BBAD98A496526051596758 7681739DA598A1A79B6E706578786E94978C93A08F6B78667B8272B2B3A3C6C1AEDFD8C5867E6B 6E6852CFCAB4C5C5ADC2C4AEC7C9B4CAC9B7C8C5B6CEC6B9D6CCC2D4C9C3D5C7C4D9CBC8D8CBC5 D4C7C1DCCDC6DED0C7D1C3B6C1B1A192836E67593F5F5134C0B190ECDEB9E1D4AADACDA1CBBC91 D6C59AD9C69EC5AF889D83607A5D3D7253367A5B3F7C5A4173533C6B4F3A6B523C6E59446C5C45 665742605039725D487D644E89705C8E78638A73617C67546956475C4B3B513F3345352836281D 2F23172E21182A2016241A111D140B1B140C151108110C06110C0613100915120B12110C0F100B 141412141613151918191D1C1C22221F252522282825292A1C1D2118171C1413181514191D1C21 2424262626282525252D2D2B2E2F2A2F302B30312B32332D33342C34352D35362E303227313326 32342734362935372A37392C383A2D393B2E4042353D3F324143364A4C3F4B4D403F4134343629 2F30281517140E12110004030206051014130A0E0D0B0F0E232726D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDDE8EC DCE7EBDBE6EADAE5E9D6E3E9D4E1E7D2E1E8D0E1E8CDDEE6CCDFE6CADEE9C9DDE8C7DDE8C6DCE7 C5DBE8C4DCE8C0DBE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4 BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4 BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4BFDCE4C0DBE4C5DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C8DCE7C9DDE8C9DDE8CADEE9CBDFEACCDEE8D0E1E9D2E1E8 D2E1E8D2E1E8D2E1E8D2E1E8D2E1E8D2E1E8CEDDE4CFDEE5D0DFE6D0DFE6D2E1E8D2E1E8D3E2E9 D4E2EBD4E5EFD3E3F0D2E2EFD2E2EFD0E0EDD0E0EDCFDFECCEDEEBCFDFECCFDFECCFDFECCFDFEC CFDFECCFDFECCFDFECCFE0EAD1DFE8D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D3E2E9 D3E2E9D4E3EAD5E4EBD5E4EBD6E5ECD7E6EDD7E6EDD9E8EDDAE9EEDBE8EEDCE9EFDFEAEEE0EBEF E1EBEDE1EBEDE4ECEEE5EEEDE7EDEDE8EEECEAEEEDEBEFEEEDEFECEDEFECEDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0ECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EF EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF EFEFEFEFEFEFEEF0EFEBEDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEAEEEDEAEEED EAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFF0EAE9EEEAE9EFEAE9EFEAE9EFEAE9EF EAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFEAE9EFE9EAEFE0E8EBDFE9EB DFE9EBDFE9EBDFE9EBDFE9EBDFE9EBDFE9EBE2ECEEE1EBEDDFE9EBDEE8EADEE8EADEE8EADEE8EA DEE9EDD5E6EDD2E6EDD2E5ECCFE3EACFE2E9CCE0E7CCDFE6CADEE5CCDFE6CBDFE6CDE0E7CDE1E8 CFE2E9CEE2E9D0E3EAD0E3EACDDEE6CDDEE6CCDFE6CBDEE5C9DDE6C8DCE5C6DCE9C5DBE8C4DBE9 C4DBE9C2DCEBC2DCEBC1DCEDC1DCEDC1DCEDC1DDEBC5DCECC4DBE9C3DAE8C2D9E7C2D9E7C2D9E7 C3DAE8C4DBE9C1D8E6C1D8E6C1D8E6C3DAE8C4DBE9C5DCEAC3DAE8C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C3DAE8C4DBE9C5DBE8 CADCE6CCDDE5CEDFE7D0E1E9D5E3ECD7E6EDDAE7EFDBE8EEE0EBEFE0EBEDE1EBEDE1EBECE2EAEC E2EBEAE4EAEAE4EAEAE5EBEBE2EBEAE2EBEAE1EAE9DFE9EADFE9EADDE8EADBE9ECD7E4EAD6E5EA D5E4EBD2E3EAD1E2EAD1E2EAD0E1E9CFE1EBC9DCEAC9DCEBC9DCEBC8DBEAC7DAE9C6D9E8C6D9E8 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C3D9E7C2D9E9C0DAE9C0DAE9C0DAE9 C2D9E7C2D9E7C2D9E7C2D9E7BFD6E4C0D7E5C5DCEAC3DBE7BDD5E1C5DDE9C9E0EEBED4E1B5C9D0 CBDEE4D1E4EBCBDEE5CCDEE8CBDDE7C8D9E3CDDBE4D0DDE5D2DCDED0D9D8D3D8D2D7DACFCECFC1 ADAB9C88897B545952576159717871AAB1A9A9AFA5686E62959B8DABB1A3818878565F4EB7C2B2 88948659675A67776AA2B4A8C9D5CBC4C1BA837A73B0ACA3B4B1A8888A7F4E5448A2AD9F9FAB9D 5A68595965576A7567969E91A7ADA18184798A8A80BABDB2ABB9AC77877A788375B9BDAFCAC8BB E2DFD0928C7C5F5C4BCAC9B5C5C7B2C3C6B3C4C7B4C7C8B8CBC7BBD0CABED6CCC2D2C5BDCFC0B9 D4C5BED7C8C1D3C2BACDBFB6C4B3A9B1A1948272626859445E50366C5E43C5B898DFD2AFD2C49F D6C8A1D9C79FD6C39BDAC49FD7BF9BBBA18095785884624687654A85624C7E5E49785945725744 715C4778665282715D897A677867577B695B7D6B5D7A685A6C5A4E56453B3F312831241B2E2119 271C161F161119120C170F0C18100D18100E16110D130E08130F06140F0917120C1A17101E1B16 1E1D191D1E192424222325222125242024231F25251F25251E24241F23241C1D2118181A141416 1616181E1E202525252828282828262E2F2A2F302A30312B32332B34352D36382D37392E383A2F 3C3E313D3F3140423543453746483B494B3D4B4D404D4F414E50434D4F41505245585A4C5A5C4F 50524441433635382D040903222625313534424645585C5B4549482E32313C403FD6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EB DAE5EBDCE7EBDBE6EADAE5E9D9E4E8D5E2E8D4E1E7D1E0E7CFE0E7CDDEE6CCDFE6CADEE9C9DDE8 C7DDE8C6DCE7C5DBE8C4DCE8C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4 C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4 C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C2DAE4C5DBE6C7DBE6C7DBE6 C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C8DCE7C9DDE8C9DDE8CADEE9CBDFEACCDEE8 D2E3EBD4E3EAD4E3EAD4E3EAD4E3EAD4E3EAD4E3EAD4E3EACFDEE5D0DFE6D0DFE6D1E0E7D1E0E7 D2E1E8D2E1E8D3E1EAD3E4EED2E2EFD2E2EFD1E1EED1E1EED0E0EDD0E0EDCFDFECCFDFECCFDFEC CFDFECCFDFECCFDFECCFDFECCFDFECCFE0EAD1DFE8D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7 D1E0E7D3E2E9D3E2E9D4E3EAD5E4EBD5E4EBD6E5ECD7E6EDD7E6EDD9E8EDD9E8EDDAE7EDDBE8EE DEE9EDDFEAEEE0EAECE1EBEDE4ECEEE4EDECE6ECECE7EDEBE9EDECEAEEEDECEEEBEDEFECEDF1F0 EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEED EAEEEDEAEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED EDEDEDEDEDEDEDEDEDEDEDEDECEEEDEBEDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFF0EDECF1EDECF1EDECF1 EDECF1EDECF1EDECF1EDECF1EDECF1EDECF1EDECF1EDECF1EDECF1EDECF1EDECF1EDECF1ECEDF1 E5EAEDE3EBEDE3EBEDE3EBEDE3EBEDE3EBEDE3EBEDE3EBEDE5EDEFE3EBEDE1E9EBDEE6E8DDE5E7 DEE6E8DFE7E9DEE9EBD8E7ECD4E7EDD4E5ECD1E4EAD1E2E9CEE1E7CEDFE6CCDFE5CCDDE4CCDFE5 CDDEE5CDE0E6CFE0E7CEE1E7D0E1E8D0E1E8CDDEE6CCDDE5CBDEE5CADDE4C8DCE5C7DBE4C5DBE8 C5DBE8C4DBE9C4DBE9C2DCEBC2DCEBC1DCEDC1DCEDC1DCEDC1DDEBBFD6E6BFD6E4C0D7E5C2D9E7 C3DAE8C3DAE8C3DAE8C2D9E7BCD3E1BFD6E4C2D9E7C4DBE9C4DBE9C3DAE8C3DAE8C3DAE8C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C3DAE8 C4DBE9C5DBE8C9DDE8CBDDE7CDDFE9CFE2E9D3E4ECD5E6EDD9E8EFDAE9EEDEECEFE0EBEDE1EBED E1EBECE1EBECE1EBECE2EAECE2EAECE2EAECE2EAECE1E9EBDFE9EADEE8EADEE8EADCE7EBDAE8EB D5E2E8D4E3EAD3E1EAD1E2EAD0E1EBCEE0EACDDFE9CDDFEBC9DCEAC8DBEAC8DBEAC7DAE9C6D9E8 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C3D8E9C0DAEBBFDAEB BFDAEBBFDAEBBFDAEBBFDAEBBFDBE9BFDBE9C4DEEDBFD9E8BED8E7BFD6E4C0D7E5CBE2F0CBE2F0 BCD2DFAEC2C9C5D8DECDE0E7C9DCE3CCDEE8CDDFE9CDDEE8D2E0E9CFDCE4CFD9DBCDD6D5D3D8D2 DDE0D5DADBCDBBB9AA96978760685B626E627F897EBCC7B9BBC3B6788071AAB2A3C9D2C1889081 596152BAC5B796A29459675A63736897A89EBDC9BFB5B5AD746D679C9791A5A59D888B82454D42 97A196A6B2A65E6A5E596559747E73B2BAAFC3C9BF9C9F96919189C3C9BFB6C6BC71857A68756B B9C1B6C9CBC0DFDDD19C988C585649C2C3B3C2C6B5C1C8B6C2C6B7C5C7B9CCCABED1CAC0D3C9BF D0BFB5C8B6AACCBAB0CFBEB4C2B0A6A9998C8C7A6E6D5D4E615141695A477869527C6E54BDAF92 CFC4A4CDC09EDCCEABD8C6A2D6C29FDCC5A3D8BFA0B4997C836549704E3576533D6D4D38785744 80614F785D4C68513F5F4C3B6655436F5F5064564D5F524C584B454B403A3C312D2B221D1D1311 140C091A1210181212151112110F100F0D0E0F0D0E12101315131415120D19140E1D1814211C18 23201B26221F2726222828262A2A2A282A292428292226271E23261B2023191E21191D20191A1C 1818181818181C1C1A2323212A2B262E2F2A2F302A31322C32332B34352D36382D383A2F3A3C2F 3C3E313D3F3146483A484B3A4B4D3F4F5241535547575A495A5C4E5B5E4D5D5F515E6150616355 666958696B5D6265544F51433C4032282D27636967878D8B949A98979D9B6F7573393F3D2A302E D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8DAE5EBDAE5EBDAE5EBDAE5EBDAE5EB DAE5EBDAE5EBDAE5EBDAE5E9D9E4E8D8E3E7D7E2E6D3E0E6D1DEE4CFDEE5CDDEE5CDDEE6CCDFE6 CADEE9C9DDE8C7DDE8C6DCE7C5DBE8C5DBE8C2DAE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4 C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4 C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C0DBE4C2DAE4C5DBE6 C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C8DCE7C9DDE8C9DDE8CADEE9 CBDFEACCDEE8D2E3EBD4E3EAD4E3EAD4E3EAD4E3EAD4E3EAD4E3EAD4E3EAD1E0E7D1E0E7D1E0E7 D1E0E7D1E0E7D1E0E7D1E0E7D1DFE8D3E1ECD1E2ECD3E1EED1E2ECD3E1EED1E2ECD3E1EED1E2EC D1DFECCFE0EAD1DFECCFE0EAD1DFECCFE0EAD1DFECD1DFEAD1DFE8D1E0E7D1E0E7D1E0E7D1E0E7 D1E0E7D1E0E7D1E0E7D3E2E9D3E2E9D4E3EAD5E4EBD5E4EBD6E5ECD7E6EDD7E6EDD8E7ECD8E7EC DAE7EDDAE7EDDDE8ECDEE9EDE0EAECE0EAECE3EBEDE3ECEBE6ECECE6ECEAE8ECEBE9EDECECEEEB ECEEEBECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECEBEDECEBEDECECECECEBEDECECECECEBEDECECECECEBEDECECECEC EBEDECECECECEBEDECECECECEBEDECECECECEBEDECE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEB E8ECEBE8ECEBE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE8ECEBE8ECEBE8ECEB E8ECEBE8ECEBE8ECEBE8ECEBE8ECEBEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEED EAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFECF0EFF1F1F3 F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5F1F0F5 F1F0F5F0F1F5E9EEF1E7EFF1E7EFF1E7EFF1E7EFF1E7EFF1E7EFF1E7EFF1E7EFF1E5EDEFE1E9EB DDE5E7DCE4E6DCE4E6DEE6E8DFE9EBD9E6ECD6E7EED5E6EDD3E4EBD1E2E9D0E1E8CFE0E7CEDFE6 CDDEE5CDDEE5CEDFE6CEDFE6CFE0E7D0E1E8D1E2E9D1E2E9CCDDE5CCDDE5CADDE4C9DCE3C7DBE4 C7DBE4C4DAE7C4DAE7C3DAE8C3DAE8C1DBEAC1DBEAC0DBECC0DBECC0DBECC0DCEABED5E5BDD4E2 BED5E3C2D9E7C5DCEAC3DAE8BCD3E1B6CDDBB7CEDCBDD4E2C3DAE8C5DCEAC3DAE8C2D9E7C2D9E7 C3DAE8C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0D7E5C0D7E5C1D8E6C2D9E7 C2D9E7C3DAE8C4DBE9C5DBE8C8DCE7CADCE6CBDDE7CEE0EAD1E2ECD3E4ECD7E5EED8E7EEDDEAF0 DDEBEEDFEAEEE0EAECE0EAECE0EAEBE1E9EBE1E9EBE0E8EADFE9EADEE8E9DDE7E8DCE6E8DBE6EA D8E6E9D7E6EBD3E2E9D0E1E8D0E1E9CEE1E8CDDFE9CCDEE8CCDEE8CCDEEAC8DBE9C8DBEAC7DAE9 C6D9E8C5D8E7C5D8E7C4D7E6C4D7E6C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C3D8E9 C0DAEBBEDBEBBFDAEDBEDBEBBEDBEDBEDBEBBEDBEBBFDAEBC6E2F0C3DDECC6DDEBC3DAE8C3D9E6 CDE3F0CEE4F1C0D4DFABBEC5C2D5DBCADDE4C7DAE1CCDEE8CEE0EACEDFE9D4E2EBC9D6DECBD5D7 CCD5D4D4D9D3DEE1D6D9DACCB8B6A79192826069585C6958828D7DBAC5B5BAC2B37C8574A0A998 C0C9B88F97885C6757B8C4B69AA698525F5551615677877D9FABA1A3A39B65605A918E87A9A9A1 9A9D944C5248919B90ADB9AD6D776C626C61808A7FBCC4B9C2C5BCA5A69E909088BBC0B9BDCDC3 7B8F86707B73C6CDC5C6C7BFD6D3CAA5A397575548B9BBADBFC3B4C1C8B8C2C6B7C6C7B9CFCBBF D1C9BECEC2B6DCCABCC1AE9FAE9B8DA39183907E727A685C6452444F3D2F6656466252425F503B 5D5139B4A98DDFD4B6D8CDADD6C9A9D8C7A9DBC8AAE3CBAFD7BFA3AA9077765A44694A36785945 785947826555886C5E795F525C46384937294A382A514338362B273028262B2120231B191D1415 17111116101014101115111216141717161B16151A1211160F0E130E0F1410101216120F1B1610 211C18231E1A211D1A211D1A21201E2323212020201F21201C20211B1F20191E21191E21181D21 191D201517161B1B19222220292A252E2F2A33342E3839333B3C343D3E363E4035404237424437 45473A47493B494B3D4A4D3C505342525544555847595C4B5D604F6164536467566669586E7160 7174637376657679687A7D6C7578675F625145493B3D423C6066626A706E5E64605A605E4E5450 3D43413B413DD8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9DAE5EBDAE5EBDAE5EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBD7E2E6D7E2E6D6E1E5D4DFE3D0DDE3CFDCE2CDDCE3CADBE2 CDDEE6CCDFE6CADEE9C9DDE8C7DDE8C6DCE7C5DBE8C5DBE8C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4 C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4 C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4 C2DAE4C5DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C8DCE7C9DDE8 C9DDE8CADEE9CBDFEACCDEE8D2E3EBD4E3EAD4E3EAD4E3EAD4E3EAD4E3EAD4E3EAD4E3EAD1E0E7 D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D3E1EAD3E1EAD4E0ECD3E1EAD4E0ECD3E1EA D4E0ECD3E1EAD2DEEAD1DFE8D2DEEAD1DFE8D2DEEAD1DFE8D2DEEAD1DFE8D1E0E7D1E0E7D1E0E7 D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D3E2E9D3E2E9D4E3EAD5E4EBD5E4EBD6E5ECD7E6EDD7E6ED D7E6EBD7E6EBD9E6ECDAE7EDDDE8ECDDE8ECDFE9EBDFE9EBE2EAECE2EBEAE5EBEBE6ECEAE8ECEB E8ECEBEBEDEAEBEDEAEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EBEAE7EBEAE9EBEAE7EBEAE9EBEA E7EBEAE9EBEAE7EBEAE9EBEAE7EBEAE9EBEAE7EBEAE9EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0F4F4F6F4F4F6F4F4F6F4F4F6F4F4F6F4F4F6F4F4F6F4F4F6F4F4F6F4F4F6F4F4F6F4F4F6 F4F4F6F4F4F6F4F4F6F3F4F6EDF1F2ECF2F2ECF2F2ECF2F2ECF2F2ECF2F2ECF2F2ECF2F2EBF1F1 E8EEEEE3E9E9DFE5E5DDE3E3DEE4E4E0E6E6DFE9EADAE8EBD8E7ECD7E6EBD6E5EAD4E3E8D2E1E6 D1E0E5D1E0E5D0DFE4D0DFE4D1E0E5D2E1E6D3E2E7D3E2E7D4E3E8D4E3EACBDCE4CBDCE4C9DCE3 C9DCE3C7DBE4C6DAE3C3D9E6C3D9E6C2D9E7C2D9E7C0DAE9C0DAE9BFDAEBBFDAEBBFDAEBBFDBE9 C2D9E9BFD6E4BFD6E4C3DAE8C6DDEBBFD6E4B1C8D6A4BBC9B4CBD9BBD2E0C4DBE9C6DDEBC3DAE8 C1D8E6C1D8E6C4DBE9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0D7E5C0D7E5 C1D8E6C2D9E7C2D9E7C3DAE8C4DBE9C5DBE8C6DAE5C7DBE6C9DDE8CBDFE8CEE0EAD1E4EBD3E4EC D4E5ECDAE9F0DBE8EEDBE9ECDDE8EADDE8EADDE8EADEE8EADEE8EADCE6E8DCE6E8DBE5E7DAE5E7 D9E4E8D6E4E7D6E3E9D4E3EAD2E1E8CFE0E8CFE0EACDDFE9CCDEEACADEE9CADEE9C9DDE8C7DAE8 C7DAE9C6D9E8C6D9E8C5D8E7C4D7E6C3D6E5C3D6E5C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C3D9E7C0DAE9BFDBE9C0DAEBBFDBE9BFDAEBBFDBE9BFDBE9C0DAE9C3DDEAC5DDE9C6DCE7 BBCFDAAFC1CBBACBD3C9DAE2C9DAE1ADC0C6C3D6DCCBDEE5C7DAE1CBDDE7CCDEE8CBDCE6D1DFE8 CAD7DFCDD7D9CDD6D5D4D9D3DEE1D6D9DACCBAB8A99495835E675454614D8A9785BECBB9C1CCBB 8A958495A08FAFBAA9848F7F586353B0BCAE98A496546157525F55717E74A1ABA2AFB0A8716E65 9A978EB6B6ACACAFA452584C90988BB3BEB06B73665D6558777F729CA2968F92878C8E837E7E74 9C9F96AAB7AD84948A848B83D1D4CDB8B5AEC7C3BAADA99E575347B1B2A4BDC0AFC4C7B6C3C6B5 C9C7B8D2CCBED0C7B8C8BBABD2BFB0A893828670627764556B584A6552446250425C4A3C615142 6252425E513E5A4E38ACA088D6CCB1D5CCAFD6CDB0DBCCB5CEBEA7C5B09BB6A18C957E6C6F5546 5E4437644A3D573C31583D3451392F3F2B222C1A101F110822140B261B1518100E161010170E11 150F11161012161213171314181317100B0F13111618171C19181D15161A1011150D0E130D0D0F 1814111E1915231E1A231E1A1C181518141117161418181616161615161813171A13171A12171B 13181C13181C14181B14161321221D30312C393A343C3D373F403845463E4A4C41505247515346 53554756584A595B4D5C5F4E5E61505F624F646754656855686B586C6F5C707360737663767966 777A677E816E8386738588758588758B8E7B888B786E715E5054453C413A3E453E3B413D394039 434945596059747A76878E87D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9DAE5EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBD6E1E5D5E0E4D4DFE3D2DDE1CFDCE2CDDAE0 CBDAE1C8D9E0CDDEE6CCDFE6CADEE9C9DDE8C7DDE8C6DCE7C5DBE8C5DBE8C2DAE4C2DAE4C2DAE4 C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4 C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4C2DAE4 C2DAE4C2DAE4C3D9E4C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C8DCE7C9DDE8C9DDE8CADEE9CBDFEACCDEE8D1E2EAD3E2E9D3E2E9D3E2E9D3E2E9D3E2E9D3E2E9 D3E2E9D2E1E8D2E1E8D1E0E7D1E0E7D1E0E7D1E0E7D0DFE6D0DFE6D3E0E9D3E0E9D4E1EAD4E1EA D4E1EAD4E1EAD5E2EBD5E2EBD2DFE8D2DFE8D2DFE8D2DFE8D2DFE8D2DFE8D2DFE8D2DFE8D1E0E7 D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D3E2E9D3E2E9D4E3EAD5E4EBD5E4EBD6E5EC D7E6EDD7E6EDD7E6EBD7E6EBD9E6ECD9E6ECDCE7EBDDE8ECDFE9EBDFE9EBE2EAECE2EBEAE5EBEB E5EBE9E7EBEAE8ECEBEBEDEAEBEDEAEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8 E5E9E8E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEDF1F0EDF1F0EDF1F0EDF1F0EDF1F0 EDF1F0EDF1F0EDF1F0F7F7F7F7F7F7F7F7F9F7F7F7F7F7F9F7F7F7F7F7F9F7F7F7F7F7F9F7F7F7 F7F7F9F7F7F7F7F7F9F7F7F7F7F7F9F6F8F7F0F4F5EFF5F3EFF5F5EFF5F3EFF5F5EFF5F3EFF5F5 EFF5F3ECF2F2E8EEECE3E9E9DEE4E2DCE2E2DDE3E1E0E6E6E0E8EADCE7EBD9E8EDD8E5EBD6E5EA D5E2E8D3E2E7D3E0E6D1E0E5D2DFE5D1E0E5D3E0E6D3E2E7D5E2E8D4E3E8D6E3E9D5E4E9CBDCE3 CBDCE4C9DCE3C8DBE2C6DAE3C6DAE3C3D9E6C3D9E6C2D9E7C2D9E7C0DAE9C0DAE9BFDAEBBFDAEB BFDAEBBFDBE9C7DEEEC3DAE8C1D8E6C4DBE9C6DDEBBCD3E1A7BECC95ACBAB2C9D7BBD2E0C4DBE9 C6DDEBC3DAE8C0D7E5C1D8E6C4DBE9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C0D7E5C0D7E5C1D8E6C2D9E7C2D9E7C3DAE8C4DBE9C4DBE9C2D8E5C5D9E4C7DBE6C9DDE8CDDFEB CFE1EBD2E3EDD3E4ECD9E7F0D9E8EFDAE7EDDAE8EBDCE7EBDCE7E9DCE7E9DCE7E9DBE5E7D9E4E6 D9E4E6D6E4E7D5E3E6D3E2E7D3E2E9D1E2E9CFE0E8CEE1E8CDDFE9CBDFE8CADEE9CADEE9C9DDE8 C9DCEAC7DAE9C7DAE9C6D9E8C5D8E7C4D7E6C4D7E6C3D6E5C3D6E5C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C3D9E7C2D9E7C2D9E7C2D9E7C0DAE7C0DAE7C2D9E7C2DAE6BFD5E0 C4D8E1C3D4DCABBAC1929FA5A0ABAFC4CED0D5E0E4B2C4C8C6D9DFCDE0E7C8DBE2CADCE6CADCE6 C8D9E3CCDAE3D2DFE7D2DCDECFD8D7D4D9D3DEE1D6DEDFD1C6C4B5A6A795636C574E5C45829079 A7B4A0A9B5A178847075806F8F9A897A8575556050ADB9AB9FAB9D6773676A766A89958BC5CDC2 CCCEC38A887CA7A79DC0C0B4B5B7AC54584A8D9387B9BFB160665A53594B65685D6A6E603C3E33 3A3A2E1C1C122123187F877A79817486887DCBC8BFA39C92B9B1A6B2AA9F585244AEAB9CBDBCAA C5C6B4C7C6B2CCC7B4D4CBBAD1C4B3C6B5A3A99685846F5C6D58476D5A496D5A4C6C5A4C6C5A4C 6656476656495A4D3D534635544935AA9F89C8C0A9B3AC92A69E879287757265555A4A3B584839 5A483C4D3B2F3C281F321E172D191229161025120C20110C1E110B1B100C180F0A160E0B150C0D 150F111A11141A14161A1416181214150F11110D0E0601050B090C1513161A181919191B151517 1010120F0D0E1D1916241F1B28231F25201C1C181515110E12110F131311141414121315101417 0E12150C11150B10140A0F130B0F101416112627213A3B3545463E46473F484A3F4E504555574A 5F6154606254636655666958696C5B6C6F5C6E715E6F725F787B68797C697C7F6C7F826F838673 868976888B788A8D7A888B788E917E909380909380959885939683797C69585C4D797F75737A73 858A849BA29B9EA39D99A0999A9F99989F98D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E7D8E3E7D7E2E6D6E1E5 D4E1E7D3E0E6D1E0E7CFE0E7CFE0E8CEE1E8CCE0EBCBDFEAC9DFEAC8DEE9C7DDEAC7DDEAC3D9E4 C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4 C3D9E4C3D9E4C3D9E4C3D9E4C4DAE5C4DAE5C5DBE6C6DCE7C7DDE8C7DDE8C3D9E4C3D9E4C3D9E4 C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4 C9DDE8CFE3EECEE2EDC8DCE7C8DCE7CEE2EDCEE2EDC8DAE4CDDEE6D3E2E9D8E7EED8E7EED6E5EC D4E3EAD6E5ECD8E7EED0DFE6D0DFE6D1E0E7D2E1E8D3E2E9D4E3EAD4E3EAD5E4EBD3E0E8D3DDE6 D1DBE4D0DAE3D1DBE4D4DEE7D7E1EAD9E3ECDBE5EEDDE7F0E1EBF4E3EDF6E2ECF5DEE8F1DAE4ED D5E2EAD0DFE6CFDEE5CEDDE4CDDCE3CDDCE3CFDEE5D0DFE6D1E0E7D5E4EBD5E4EBD5E4EBD5E4EB D5E4EBD5E4EBD5E4EBD5E4EBD5E4E9D5E4E9D7E4EAD8E5EBDAE5E9DBE6EADDE7E9DDE7E9E0E8EA E0E9E8E3E9E9E4EAE8E5E9E8E6EAE9E9EBE8E9EBE8E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE9EDECE9EDECE8ECEBE7EBEAE7EBEAE6EAE9E5E9E8E5E9E8E4EAE8E4EAE8E4EAE8 E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8 E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E3E7E6E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEE9EDECE9EDECEAEEEDEBEFEEECF0EFECF0EFEDF1F0EDF1F0EFF3F2EFF3F2F0F4F3 F1F5F4F2F6F5F2F6F5F3F7F6F3F7F6F5F5F5F7F7F5FAFAFAFDFDFBFDFDFDFCFCFAFAFAFAF9F9F7 FEFEFEFEFEFCFDFDFDFCFCFAFCFCFCFBFBF9FAFAFAF9FBF8F4F8F7F3F8F4F1F5F4EFF4F0EFF3F2 EFF4F0F0F4F3F0F5F1ECF0EFEBF0ECE8ECEBE6EBE7E4E8E7E4E9E5E4E8E7E3E9E9E5EFF1E1EFF2 E1ECF0DDEBEEDCE7EBD8E6E9D8E3E7D5E3E6D6E1E5D7E5E8DEE9EDDFEDF0E1ECF0DDEBEEDBE6EA D6E3E9CFDEE5CBDCE4C7DAE1C5D8DFC3D7E0C5D9E2C5DBE8C7DDEAC2D9E7C2D9E7C0DAE9C0DAE9 BFDAEBBFDAEBBFDAEBBFDBE9C3DAEAC3DAE8C3DAE8C3DAE8C1D8E6BED5E3BBD2E0B9D0DEBDD4E2 C1D8E6C4DBE9C3DAE8C0D7E5BDD4E2BED5E3C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C1D9E5C3D9E6C4DAE7 C6DCE7CADEE9CCE0E9CEE0EACFE2E9D6E7EFD6E7EED8E7EED8E7ECD9E6ECD9E7EAD9E7EAD9E7EA D6E1E5D4E2E5D3E1E4D3E0E6D2DFE5D0DFE6CFDEE5CDDEE6C9DAE4C8DAE4C8DAE6C7DBE6C7DAE8 C5DBE8C5DBE8C5DBE8C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E6C6D8E4C6D8E2C5D9E4C5D9E4C5D9E4C5D9E4C5D9E2 C6D8E2C4D5DDD7E6EDB6C1C5AEB8BAB9BFBF8D91904244416A706E8B9A9DBBCED4DBEEF5CCDFE6 BED0DAC8DAE4D0E1EBC9D7E0C3D0D8CBD5D7D1DAD9D5DAD4D7DACFD3D4C6C8C6B7B9BAA85F6750 58644C5460488A968099A58F6C7864828D7CBBC6B59CA7975964549FAA9CB2BDAF657062636E60 929C91C0C6BABABAAE9F9D90949488BABBADAFB1A45D5F5194988ACED2C384887A54584927291C 17180A1111051412052A281C4846398E8F818E8C7DA29C8EA3998D7C6E617E70638E8073574B3B 9F9886D8D3BFBFBDA8C0BBA5CCC4AFB7AB95B3A18D9B86736A584465533F5C4938554231503D2F 4F3D2F513F335242355C4B41695B4E6F635569604F675F4C69614E5F57424E47343F372A393126 31271E281E1523160E1F120C1F120C1F110E1608051B100E180D0B0D03020E06041B1515231D1D 1F1919261D1E2017181D131420171828201E28201E1F1715120D0A100B08100B08221D1A120F0A 1E1A17302C29130F0C1916112924202D28222D2824231E1A14100D0D09060F0E0C141412070707 070908070B0C0B0F100B10130B10130A0F130A0E0F181A152C2D2544453D56574F5C5D555F6156 616358646659747668757867777A697A7D6A7D806D7F826D81846F828570878A77888B788A8D7A 8D907D8F927F929582949784959885979A879093809295829EA18E9FA28F979A879699869EA092 989B929CA19AA2A59E9FA49DA1A49DA1A69FA4A7A0A1A69FD8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E7D8E3E7 D7E2E6D6E1E5D4E1E7D3E0E6D1E0E7CFE0E7CFE0E8CEE1E8CCE0EBCBDFEAC9DFEAC8DEE9C7DDEA C7DDEAC3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4 C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C4DAE5C5DBE6C6DCE7C6DCE7C7DDE8C7DDE8C3D9E4 C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C3D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4C5D9E4 C5D9E4C5D9E4C2D6E1C8DCE7CADEE9C6DAE5C9DDE8D1E5F0D1E5F0CCDEE8CCDDE5D2E1E8D6E5EC D7E6EDD4E3EAD3E2E9D4E3EAD7E6EDD0DFE6D0DFE6D0DFE6D1E0E7D1E0E7D1E0E7D2E1E8D3E0E8 D3DDE6D2DCE5D1DBE4D1DBE4D3DDE6D6E0E9DAE4EDDCE6EFDDE7F0DFE9F2E2ECF5E4EEF7E3EDF6 E0EAF3DCE6EFD9E3ECD2DFE7D0DFE6CFDEE5CEDDE4CEDDE4CFDEE5D0DFE6D1E0E7D5E4EBD5E4EB D5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4E9D5E4E9D7E4EAD8E5EBDAE5E9DBE6EADDE7E9 DDE7E9E0E8EAE0E9E8E3E9E9E4EAE8E5E9E8E6EAE9E9EBE8E9EBE8E7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE8ECEBE7EBEAE7EBEAE6EAE9E5E9E8E5E9E8E3E9E7 E3E9E7E3E9E7E3E9E7E3E9E7E3E9E7E3E9E7E3E9E7E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8 E4EAE8E4EAE8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDEC E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECEBEFEEEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEE9EDECE9EDECEAEEEDEAEEEDEBEFEEECF0EFEDF1F0EDF1F0EFF3F2 EFF3F2F0F4F3F0F4F3F1F5F4F2F6F5F3F7F6F3F7F6F6F6F4F8F8F6FBFBF9FDFDFBFEFEFCFDFDFB FBFBF9FAFAF8FEFEFCFEFEFCFDFDFBFCFCFAFCFCFAFBFBF9FAFAF8FAFAF8F8FAF7F5FAF6F5F7F4 F1F6F2F2F4F1F0F5F1F3F5F2F2F7F3F0F2EFECF1EDECEEEBE7ECE8E8EAE7E5EAE6E7E9E6E5EBE9 E5EDF0E3EEF2E3ECF1E0EBEFE0E9EEDDE8ECDDE6EBDCE7EBE2EBF0E3EEF2E7F0F5E8F3F7E9F2F7 E6F1F5E5EEF3E2EDF3D3E2E9CFE0E8CADDE4C7DAE1C4D8E1C5D9E2C5DBE8C6DCE9C2D9E7C2D9E7 C0DAE9C0DAE9BFDAEBBFDAEBBFDAEBBFDBE9C3DAEAC3DAE8C3DAE8C3DAE8C1D8E6BED5E3BCD3E1 BAD1DFBBD2E0BFD6E4C3DAE8C3DAE8C0D7E5BED5E3BFD6E4C1D8E6C0D7E5C0D7E5C0D7E5C0D7E5 C0D7E5C0D7E5C0D7E5C0D7E5C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C1D8E6 C2DAE6C4DAE7C6DCE9C8DEEBCBDFEACDE1ECCEE0EAD3E4EED3E4ECD5E3ECD5E4EBD6E3EBD6E3E9 D6E3E9D6E4E7D4E2E5D3E1E4D3E0E6D1E0E5D0DFE6CDDEE5CDDEE6CBDEE5C8DAE4C7DBE4C7DBE6 C5DBE6C5DBE8C4DCE8C4DCE8C4DBE9C3D9E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C6D8E6C7D8E2C7D8E0C7D8E0C6D8E2C6D8E2 C6D9E0C6D9E0C7D8DFD1DEE4ADB8BC525A5C3A3E3D60615C58554E0E0A011E1F1964727397AAB0 C6D9E0CEE1E8CADCE6D0E2ECCFE0EAC5D3DCD2DFE7D4DEE0D2DBDAD4D9D3DBDED3DCDDCFCCCABB B5B7A26D755E6771586F7961B2BEA6C9D5BF95A18B949F8EB8C3B2B5C0B05C67578F9788ABB3A4 6F75675F65577177698A8E806E6F614B493A403E2F7A7B6B9E9F8F767767A9AA9ACFD0C0909181 6869594947384341324B48395855467A74669C968887806E756D5A685B4A5B4B3B503D2E7E6B5C 988777514433938B78CEC7B4BFB9A3B8B29AB5AA9494856E8B7661745F4A62503C5F4E3C5B4A3A 5A49395B4B3C60504364564B685A5151433A574B3F52483C443B2C3A3122352C1B28210F191202 211A101F18101C150F19120C17100A17100A18100D19110E1008061C14121F19191915141A1617 201E1F211F221D191A2A2220261C1A221816231917271E19271E191F181218110B130C06160F07 251E16161207261F153B372C2D261C2F2B2239352C37322C322D272924201D1A15130F0C090804 0505030E0E0C1113120F1312090D0E040A0A04090C04090C03070822241F33342C4F50486A6B63 77796E797B707C7E718183757E80727F8271818471848774868974898C778B8E798C8F7A8E917E 8F927F919481939683969986989B889A9D8A9B9E8B9FA28F989B88989B88A1A491A3A6939DA08D 9DA08DA4A698A1A398A8ABA4ACADA7A5A8A1A4A59FA7AAA3A9AAA4A5A8A1D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E7D8E3E7D7E2E6D6E1E5D4E1E7D3E0E6D1E0E7CFE0E7CFE0E8CEE1E8CCE0EBCBDFEAC9DFEA C8DEE9C7DDEAC7DDEAC7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C6DAE5C6DAE5 C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C7DBE6C7DBE6C8DCE7C9DDE8CADEE9 CADEE9C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5C6DAE5 C6DAE5C6DAE5C6DAE5C6DAE5C7DBE6CCE0EBCBDFEAC6DAE5C7DBE6CCE0EBC9DDE8C2D4DEC9DAE2 CFDEE5D3E2E9D4E3EAD2E1E8D0DFE6D2E1E8D4E3EAD0DFE6D0DFE6D0DFE6CFDEE5CFDEE5CFDEE5 CEDDE4CFDCE4D0DBE1D1DAE1D2DBE2D4DDE4D7E0E7DBE4EBDFE8EFE1EAF1E1EAF1E3ECF3E5EEF5 E7F0F7E6EFF6E3ECF3E0E9F0DCE7EDD4E1E9D2E1E8D0DFE6CFDEE5CFDEE5D0DFE6D1E0E7D2E1E8 D5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4E9D5E4E9D7E4EAD8E5EBDAE5E9 DBE6EADDE7E9DDE7E9E0E8EAE0E9E8E3E9E9E4EAE8E5E9E8E6EAE9E9EBE8E9EBE8E7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE8ECEBE7EBEAE7EBEAE6EAE9E5E9E8 E5E9E8E1E7E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5E1EAE7E1EAE7E1EAE7E1EAE7 E1EAE7E1EAE7E1EAE7E3E9E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E3E7E6 E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9 E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9 E8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEB E8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBEAEEEDEAEEED EAEEEDEAEEEDEAEEEDEAEEEDEAEEEDEAEEEDE8ECEBE8ECEBE9EDECEAEEEDEBEFEEEBEFEEECF0EF ECF0EFEEF2F1EEF2F1EFF3F2F0F4F3F1F5F4F1F5F4F2F6F5F2F6F5F7F7F5F9FAF5FBFCF7FDFEF9 FEFFFAFDFEF9FCFDF8FCFDF8FEFFFAFEFFFAFDFEF9FCFDF8FCFDF8FBFCF7FAFBF6FAFBF6FBFCF7 F8FAF5F7F8F3F5F7F2F5F6F1F4F6F1F6F7F2F5F7F2F4F5F0F1F3EEEFF0EBECEEE9EBECE7EAECE7 EBECE7E8EDE9E7ECEFE4EEF0E5EDF0E4EEF0E5EDF0E3EDEFE4ECEFE3EDEFE9F1F4E8F2F4E9F1F4 E8F2F4E9F1F4E8F2F4E9F1F4E7F2F6D9E8EFD4E5EDCEE1E8CADDE4C6DAE3C5D9E2C4DAE7C5DBE8 C2D9E7C2D9E7C0DAE9C0DAE9BFDAEBBFDAEBBFDAEBBFDBE9C3DAEAC3DAE8C4DBE9C3DAE8C2D9E7 BFD6E4BDD4E2BBD2E0B9D0DEBDD4E2C2D9E7C3DAE8C1D8E6C0D7E5C2D9E7C4DBE9C1D8E6C1D8E6 C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C1D8E6C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7BFD9E6C0DAE7C3DAE8C4DCE8C6DEEAC8DEE9CBDFEACCE0E9CFE1EBCFE2E9D0E1E9D0E1E8 D2E1E8D2E1E6D2E1E6D2E1E6D1E0E5D1E0E5D1E0E7D0DFE6CFDDE6CCDDE5CCDDE7CADCE6C7D9E5 C6DAE5C4DAE7C3DBE7C3DAE8C3DAE8C3DAE8C3DAE8C3D9E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C6D8E6C9D7E0C9D8DFC9D8DF C7D8E0C7D8E0C7D8E0C7D8E0C9D8DFD9E4E8C3CBCD777B7A5556516C685F766F654B4135636057 AFBBBBC2D5DBD4E7EECEE1E8C5D7E1C8DAE4D0E1EBD3E1EACEDBE3CDD7D9C6CFCEC7CCC6D3D6CB DBDCCECBC9BAB1B09C6C715B616951707861B1BBA3C3CCB7929B868F9887B2BBAAA5AE9D586150 8D9484B8BCAD8385775456483A3B2B333424292816110E00100D005453418B8A787D7C6A9F9C8B ACA998ACA998959281837D6D7A7464696353534D3D5049395A51404F422F6C5D488B796597826F 9F8878CEB7A7CDBAA96E5E4E948977BFB8A5ABA58F989079887C666C5C456E5841644F3A6E5F4C 6659485D5040524437483C3042352C40332B3F322A21140C2319102319101C14091B130820180B 20180B1B1306160F0715100A16110D17120E17120E17120E16110E15100D0E0A071A1613231F1E 21201E201F1D21211F2020201C1B192B232029201B251C15241B14241B12231A11221A0F20180D 221A0F271F122E2619221C0C2C2515443E2E474030464032454136403C333B372E36312B2E2B24 23201B13120D0809040708030E100D0A0F0B000100000200050B0B0C12120A0E0D373A3341423A 5D5E567F80788E90858A8C81898B7E9092848D8F818E91808F927F929582949782969984989B86 989B86989B88989B8A9A9D8C9C9F8E9EA190A1A493A2A594A3A695AAAD9CA3A695A0A392A6A998 A8AB9AA5A897A5A897AAAC9EA1A398ACADA5B0B0A8A7A8A0A5A59DABACA4ADADA5A7A8A0D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E7D8E3E7D7E2E6D6E1E5D4E1E7D3E0E6D1E0E7CFE0E7CFE0E8CEE1E8CCE0EB CBDFEAC9DFEAC8DEE9C7DDEAC7DDEAC8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7 C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C8DCE7C9DDE8 CADEE9CADEE9CBDFEAC7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6 C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6CADEE9CEE2EDCCE0EBC6DAE5C6DAE5C9DDE8C3D7E2 B9CBD5C7D8E0CDDCE3D1E0E7D2E1E8D0DFE6CEDDE4D0DFE6D2E1E8D0DFE6D0DFE6D0DFE6CFDEE5 CEDDE4CEDDE4CDDCE3CEDBE3D0DBE1D2DBE2D4DDE4D7E0E7DBE4EBDFE8EFE2EBF2E4EDF4E5EEF5 E6EFF6E7F0F7E8F1F8E7F0F7E5EEF5E2EBF2E0EBF1D6E3EBD4E3EAD2E1E8D1E0E7D0DFE6D1E0E7 D2E1E8D2E1E8D5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4E9D5E4E9D7E4EA D8E5EBDAE5E9DBE6EADDE7E9DDE7E9E0E8EAE0E9E8E3E9E9E4EAE8E5E9E8E6EAE9E9EBE8E9EBE8 E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE8ECEBE7EBEAE7EBEA E6EAE9E5E9E8E4EAE8DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4E0E9E6E0E9E6 E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E2E8E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E5E9E8E5E9E8E5E9E8E5E9E8 E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E6EAE9 E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8 E5E9E8E5E9E8E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE7EBEAE8ECEBE8ECEBE9EDECEAEEED EBEFEEEBEFEEEBEFEEEDF1F0EEF2F1EEF2F1EFF3F2F0F4F3F1F5F4F1F5F4F1F6F2F8F9F4F9FAF5 FAFBF6FBFCF7FCFDF8FDFEF9FDFEF9FDFEF9FEFFFAFEFFFAFDFEF9FCFDF8FCFDF8FBFCF7FAFBF6 FAFBF6FCFDF8FBFCF7F9FAF5F7F8F3F6F7F2F6F7F2F7F8F3F8F9F4F6F7F2F4F5F0F2F3EEEFF0EB EDEEE9EDEEE9EDEEE9ECEEEBE7ECEFE5EDF0E6EEF1E7EFF2E8F0F3E9F1F4EAF2F5EAF2F5E8F0F3 E7EFF2E5EDF0E3EBEEE2EAEDE3EBEEE4ECEFE4EDF2DEEDF4D9EAF2D2E5ECCDE0E7C8DCE5C6DAE3 C4DAE7C4DAE7C2D9E7C2D9E7C0DAE9C0DAE9BFDAEBBFDAEBBFDAEBBFDBE9C3DAEAC3DAE8C4DBE9 C4DBE9C3DAE8C1D8E6BFD6E4BDD4E2B7CEDCBBD2E0C0D7E5C2D9E7C1D8E6C1D8E6C3DAE8C6DDEB C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C0DAE9C0DAE9C3DAEAC4DBE9C5DCEAC6DEEAC8DEEBCADEE9CBDDE9CBDDE7 CCDDE7CCDDE5CEDCE5CEDDE4CEDDE4CEDDE2D0DFE4D0DFE4CFDEE5CCDDE4CBDCE4CADDE4C9DBE5 C8DCE5C5D9E4C3D9E4C2DAE6C2DAE6C2D9E7C0DAE7C0DAE9C2D9E9C3D9E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C6D8E6C7D8E0 C9D8DFC9D7E0C7D8E0C6D8E2C6D8E2C7D8E0C9D8DFC7D4DAE9F1F3D5D9D8AEADA88F8B8282786C 635749827E73CBD5D6C9DCE2C9DCE3C1D4DBBBCDD7BFD1DBCEDFE9DBE9F2C9D6DECCD6D8C8D1D0 C7CCC6D2D5CADDDED0D3D1C2BEBDA9727560656A53767B659EA68F9BA38E727B687A8372A7B09F B1BAA9828979ADB1A2BFC2B17C7D6D43423024210E17140127251034321D4F4D388A8571A19C88 87826E89826F867F6C625B4857503D554D3A5C5441645C496D6552857A689C8F7CB1A18ACAB8A0 DDC7B2DCC3AFD1B7A6E0C6B7C7B1A3625242847B6A9C9583847F6B7069566459455546315B4935 574433473B2B403728392F2330261A271E1521180F1D140D1B120D19100B1A110A191009180F06 1A11081F170C231B10231B10251E14261F17282119282119231F161E191319140E14110A0F0C05 18150E1F1C171F1C171A19141A19141C1B17201D18241F19261F17251E14221B11201A0E211B0F 2620122A24143731213E39263A3522312C18312A17423D2758523C534E3B5A564A59554A514D44 413D342B281F16130C060600000100000100090B060D120C0F1410252B274D5351656B69686D69 43463F48494162635B87888097998E8F91868C8E81949689999B8D9A9D8C9B9E8D9DA08D9FA28F A1A48FA2A590A3A6939FA291A0A392A1A395A3A695A5A799A7AA99A8AA9CA9AC9BB1B3A5ABAE9D A7A99BA8AB9AABAD9FABAE9DABAD9FABAD9FA6A69CB1B1A9B6B3ACACACA4ACA9A2B1B1A9B2AFA8 A8A8A0D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E7D8E3E7D7E2E6D6E1E5D4E1E7D3E0E6D1E0E7CFE0E7CFE0E8 CEE1E8CCE0EBCBDFEAC9DFEAC8DEE9C7DDEAC7DDEACADEE9CBDDE9CBDDE9CBDDE9CBDDE9CBDDE9 CBDDE9CBDDE9C8DAE6C8DAE6C8DAE6C8DAE6C8DAE6C8DAE6C8DAE6C8DAE6C8DAE6C9DBE7C9DBE7 CADCE8CBDDE9CCDEEACCDEEACCDEEAC8DAE6C8DAE6C8DAE6C8DAE6C8DAE6C8DAE6C8DAE6C8DAE6 C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C7DBE6C4D8E3C9DDE8C9DDE8C6DAE5C9DDE8 CEE2EDC7DBE6BCCED8C6D7DFCCDBE2D1E0E7D1E0E7CFDEE5CDDCE3CFDEE5D1E0E7D1E0E7D1E0E7 D1E0E7D1E0E7D0DFE6D0DFE6D0DFE6D1DEE6D5DEE5D7DEE4DAE1E7DEE5EBE1E8EEE4EBF1E6EDF3 E6EDF3E8EFF5E8EFF5E8EFF5E8EFF5E7EEF4E6EDF3E5ECF2E3ECF3D9E6EED7E6EDD5E4EBD3E2E9 D2E1E8D2E1E8D2E1E8D3E2E9D5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4E9 D5E4E9D7E4EAD8E5EBDAE5E9DBE6EADDE7E9DDE7E9E0E8EAE0E9E8E3E9E9E4EAE8E5E9E8E6EAE9 E9EBE8E9EBE8E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDECE9EDECE8ECEB E7EBEAE7EBEAE6EAE9E5E9E8E4EAE8DEE7E4DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4 DFEAE6DFEAE6DFEAE6DFEAE6DFEAE6DFEAE6DFEAE6E0E9E6E2E8E6E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E5E9E8E5E9E8 E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8 E5E9E8E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E5E9E8E5E9E8E5E9E8E5E9E8 E5E9E8E5E9E8E5E9E8E5E9E8E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE9EDECE7EBEAE7EBEAE7EBEA E8ECEBE9EDECEAEEEDEAEEEDEBEFEEEDF1F0EDF1F0EDF1F0EEF2F1EFF3F2F0F4F3F0F4F3F1F6F2 F8F9F4F8F9F3F8F9F3F8F9F3F9FAF4FAFBF5FBFCF6FCFDF7FEFFF9FEFFF9FDFEF8FCFDF7FCFDF7 FBFCF6FAFBF5FAFBF5FCFDF7FBFCF6F9FAF4F7F8F2F6F7F1F6F7F1F7F8F2F8F9F3F6F7F1F5F6F0 F2F3EDF0F1EBEEEFE9EEEFE9EEEFE9EDEFEAE8ECEDE8EDF0E9EEF1EAEFF2ECF1F4EDF2F5EEF3F6 EFF4F7ECF1F4EAEFF2E8EDF0E6EBEEE5EAEDE5EAEDE6EBEEE3EDEFE0EFF6DAEBF3D4E7EECEE1E8 C8DCE5C6DAE3C4DAE7C4DAE7C2D9E7C2D9E7C0DAE9C0DAE9BFDAEBBFDAEBBFDAEBBFDBE9C2D9E9 C3DAE8C4DBE9C4DBE9C4DBE9C2D9E7C0D7E5BFD6E4B7CEDCBBD2E0C0D7E5C2D9E7C1D8E6C1D8E6 C3DAE8C6DDEBC2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0DAE9BFDBE9C1DBEAC1DBE8C4DBE9C4DCE8C6DCE9C6DCE7 C7DBE6C7DBE4C8DAE4C8DBE2C9DAE2C9DAE1C9DAE1C9DAE1CCDDE4CCDDE4CBDCE4CBDCE4CADBE5 C8DAE4C7D9E5C6DAE5C5D8E6C3D9E6C2D9E7C2D9E7C0DAE9C0DAE9C0DAEBC0DAE9C3D9E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E6C6D8E2C6D9E0C6D8E2C5D9E2C3D9E4C3D9E4C5D9E4C6D8E2AEBDC4D8E3E7E3E9E9D2D3CE B9B5ACBAB2A7A4988AB6B2A7B1BBBCB5C8CEC4D7DECFE2E9CDDFE9C5D7E1C1D2DCC4D2DBC7D4DC CED8DACFD8D7CED3CDCFD2C7D2D3C5CDCBBCC3C2AE80826D62664F5E614C6267534A4E3D262D1B 2B32225057478B92828A8E7FBABDACC9CAB8A09D8A837E6A76705A69634D544F395F5A44605B45 69634D59533D4B452F574F3A645C47837864908571AA9D8AC3B6A3CEC1AECEC1AECFC2AFD6C7B2 E8D6BEE0CAB3D8BFABDEC4B3DDC3B4DEC7B9C2AFA1716356574F425C594A4D4B3C474634464030 3D3423382B1B2B1E0E1C1407181408171308151106160F09150E08150D0A150D0A1E16131C1411 1D1512201913221B13221B11241D132921162D23172F251931271B31271B2D2518261E131E180C 191307110B00171307211D122420151E1A0F1814091B170C211D12222014252317282419272318 2521152824182F2C1D36332244412E4C4A3542402944422939351C3D3B2268644B64624B696657 726E62716D625C584D3B392D27241B25251B2D2E2642433B4447403A3F3830352F3F463F5F6561 6D736F696E6A51544D53544E6B6C648E8F879EA095989A8F989A8DA2A497A2A496A2A594A3A695 A5A895A6A996A7AA97A8AB98A9AC99A5A799A5A799A6A89BA8AA9CA9AB9EAAAC9EABADA0ACAEA0 B4B6A9B1B3A5ADAFA2AAAC9EADAFA2AFB1A3ADAFA2A9A99DB4B1A8B6B3AAB3AFA6A9A69DA6A299 A4A1989E9A91949188D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E7D8E3E7D7E2E6D6E1E5D4E1E7D3E0E6D1E0E7 CFE0E7CFE0E8CEE1E8CCE0EBCBDFEAC9DFEAC8DEE9C7DDEAC9DCEACCDEEACCDEEACCDEEACCDEEA CCDEEACCDEEACCDEEACCDEEAC9DBE7C9DBE7C9DBE7C9DBE7C9DBE7C9DBE7C9DBE7C9DBE7C9DBE7 C9DBE7CADCE8CBDDE9CCDEEACCDEEACDDFEBCDDFEBC9DBE7C9DBE7C9DBE7C9DBE7C9DBE7C9DBE7 C9DBE7C9DBE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7C8DCE7CADEE9CEE2EDCDE1EC C9DDE8CBDFEACEE2EDC4D8E3B7C9D3C7D8E0CDDCE3D1E0E7D2E1E8CFDEE5CEDDE4CFDEE5D2E1E8 D2E1E8D2E1E8D3E2E9D3E2E9D4E3EAD5E4EBD6E5ECD7E4EADCE5ECDEE5EBE1E8EEE4EBF1E6EDF3 E6EDF3E6EDF3E6EDF3E8EFF5E8EFF5E7EEF4E6EDF3E6EDF3E5ECF2E4EBF1E3ECF1DCE9F1D9E8EF D7E6EDD4E3EAD3E2E9D3E2E9D3E2E9D3E2E9D5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EBD5E4EB D5E4EBD5E4E9D5E4E9D7E4EAD8E5EBDAE5E9DBE6EADDE7E9DDE7E9E0E8EAE0E9E8E3E9E9E4EAE8 E5E9E8E6EAE9E9EBE8E9EBE8E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE9EDEC E9EDECE8ECEBE7EBEAE7EBEAE6EAE9E5E9E8E4EAE8DFE8E5DEE9E5DEE9E5DEE9E5DEE9E5DEE9E5 DEE9E5DEE9E5DEE9E5DEE9E5DEE9E5DEE9E5DEE9E5DEE9E5DEE9E5DFE8E5E1E7E5E2E6E5E2E6E5 E2E6E5E2E6E5E2E6E5E2E6E5E2E6E5E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6 E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7 E4E8E7E4E8E7E4E8E7E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E4E8E7E4E8E7 E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9 E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9E6EAE9 E6EAE9E6EAE9E6EAE9E6EAE9E8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE8ECEBE6EAE9 E6EAE9E7EBEAE7EBEAE8ECEBE9EDECEAEEEDEAEEEDECF0EFECF0EFEDF1F0EDF1F0EEF2F1EFF3F2 F0F4F3F0F5F1F6F7F2F6F7F1F5F6F0F4F5EFF5F6F0F7F8F2F9FAF4FAFBF5FEFFF9FEFFF9FDFEF8 FCFDF7FCFDF7FBFCF6FAFBF5FAFBF5FBFCF6F9FAF4F7F8F2F6F7F1F5F6F0F5F6F0F6F7F1F6F7F1 F6F7F1F4F5EFF2F3EDEFF0EAEEEFE9EDEEE8EDEEE8EDEFEAE9EDEEE9EEF1EAEFF2EBF0F3ECF1F4 EDF2F5EEF3F6EEF3F6F1F6F9F1F6F9F0F5F8EEF3F6EDF2F5EBF0F3EAEFF2E8F0F3E0EDF5D9EAF2 D3E6EDCDE0E7C8DCE5C6DAE3C4DAE7C4DAE7C2D9E7C2D9E7C0DAE9C0DAE9BFDAEBBFDAEBBFDAEB BFDBE9C2D9E9C3DAE8C4DBE9C5DCEAC5DCEAC4DBE9C2D9E7C1D8E6B9D0DEBDD4E2C2D9E7C3DAE8 C1D8E6C0D7E5C2D9E7C4DBE9C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C3DAE8C2D9E7 C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0DAE7C0DAEBBFDAEBC1DBEAC1DBEAC3DAEAC3DAE8 C4DAE7C4DAE7C7DBE6C7DBE6C8DAE4C8DAE4C9DAE2C9DAE2C9DAE1C9DAE1CBDCE3CADBE2CADBE3 C9DAE2C7D9E3C6D8E2C5D9E4C3D9E4C2D8E5C1D9E5C1D8E6BFD9E6BFD9E8BFD9E8BED9EABFD9E8 C3D8E9C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E6C5D8E6C5D9E4C3D9E6C2DAE6C0DAE7C0DAE7C2D9E7C3D9E6CADCE6D9E8ED D6DEE1C6C8C5B0ADA6BDB6ACADA397B5B1A6C2CECEC3D6DCCCDFE6D2E5ECCFE1EBC8DAE4C6D7E1 C9D7E0D3E0E8D4DEE0D5DEDDDADFD9D8DBD0D0D1C3C9C7B8C6C3B281806C4A4C37323321222512 171A091D21102C3021434A3A9A9E8F9A9D8CA4A5939B9A867D78646F6953675F48544D33585238 625E43655F47766F557B735C9E947BBBB09AD8CCB4D2C6B0D4C5AED3C4AFD2C3ACD4C3AFD7C8B1 E1D0BCE9D9C2E8D4BCE4CEB7E9D0BCF5DBCCD3B9AC9A84796A594F2F251B332F2425271A191C11 161A0C19190D1C180C170F040C04001A160B17170D18180E1818101A1712191512181411181310 0E09060E0604140C0A1F1714261F19261F172A231B322A1F2B1F0F2F220F322514352817332816 30251329210E261E0B1D160327200D362F1D3E3725362F1D28210F28210F2F2919313224343629 39392D39392D38382C393A2C404131464735484A3553553F4B4B335C5C424545293B3B1F78785C 7B7B63757261827E72868276706C604E4C3F3F3D3149493D5C5E5364655D60635A51564F434841 454C45545B54575E5750554F777A737A7B75898A829FA098A7A8A0A2A499A3A59AACAEA1A8AA9D A8AA9CA9AB9DAAAD9CABAE9DACAF9CACAF9CADB09FAAAC9EAAAC9FABADA0ACAEA1ADAFA2AEB0A3 AFB1A4AFB1A4B4B6A9B6B8ABB2B4A7AEB0A3B1B3A6B5B7AAAEB0A3A4A498AAA69D9B978E8D867E 837F767F7870736F666A635B615D54D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E7D8E3E7D7E2E6D6E1E5D4E1E7 D3E0E6D1E0E7CFE0E7CFE0E8CEE1E8CCE0EBCBDFEAC9DFEAC8DEE9C7DDEAC9DCEACEE0ECCFDFEC CFDFECCFDFECCFDFECCFDFECCFDFECCFDFECCBDBE8CBDBE8CBDBE8CBDBE8CBDBE8CBDBE8CBDBE8 CBDBE8CBDBE8CBDBE8CCDCE9CCDCE9CDDDEACEDEEBCFDFECCFDFECCBDBE8CBDBE8CBDBE8CBDBE8 CBDBE8CBDBE8CBDBE8CADCE8C9DDE8C9DDE8C9DDE8C9DDE8C9DDE8C9DDE8C9DDE8C9DDE8D2E6F1 D5E9F4D2E6F1CDE1ECCDE1ECCDE1ECC0D4DFB1C3CDC8D9E1CEDDE4D2E1E8D3E2E9D1E0E7CFDEE5 D1E0E7D3E2E9D2E1E8D3E2E9D5E4EBD7E6EDD9E8EFDBEAF1DDECF3DFECF2E3ECF3E6EDF3E8EFF5 E9F0F6E9F0F6E7EEF4E5ECF2E3EAF0E8EFF5E7EEF4E6EDF3E4EBF1E3EAF0E3EAF0E3EAF0E3ECF1 DEEBF3DBEAF1D8E7EED6E5ECD4E3EAD3E2E9D3E2E9D4E3EAD5E4EBD5E4EBD5E4EBD5E4EBD5E4EB D5E4EBD5E4EBD5E4EBD5E4E9D5E4E9D7E4EAD8E5EBDAE5E9DBE6EADDE7E9DDE7E9E0E8EAE0E9E8 E3E9E9E4EAE8E5E9E8E6EAE9E9EBE8E9EBE8E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE9EDECE9EDECE8ECEBE7EBEAE7EBEAE6EAE9E5E9E8E4EAE8E1EAE7E0EBE7E0EBE7E0EBE7 E0EBE7E0EBE7E0EBE7E0EBE7DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4DEE7E4E0E6E4 E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4 E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8 E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8 E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE5E9E8E5E9E8E6EAE9E7EBEAE8ECEBE8ECEBE9EDECE9EDECEBEFEEEBEFEEECF0EFEDF1F0 EEF2F1EEF2F1EFF3F2EFF4F0F4F5F0F3F4EEF1F2ECF0F1EBF1F2ECF4F5EFF6F7F1F8F9F3FEFFF9 FEFFF9FDFEF8FCFDF7FCFDF7FBFCF6FAFBF5FAFBF5FAF9F4F9F8F3F7F6F1F5F4EFF4F3EEF4F3EE F5F4EFF6F5F0F6F5F0F4F3EEF1F0EBEFEEE9EDECE7EDECE7EDECE7ECEDE8ECEEEDEBEFF0EBEFF0 EBEFF0ECF0F1ECF0F1EDF1F2EDF1F2EFF3F4F0F4F5F1F5F6F1F5F6EFF3F4ECF0F1E8ECEDE3EBEE DCE9F1D6E7EFD0E3EACBDEE5C7DBE4C6DAE3C4DAE7C5DBE8C2D9E7C2D9E7C0DAE9C0DAE9BFDAEB BFDAEBBFDAEBBFDBE9C2D9E9C3DAE8C4DBE9C5DCEAC5DCEAC5DCEAC3DAE8C2D9E7BBD2E0BFD6E4 C3DAE8C3DAE8C0D7E5BED5E3BFD6E4C1D8E6C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9C4DBE9 C4DBE9C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C2D9E7C0DAE7C1DBECC0DBECBFDAEBBFDBE9 C0DAE9C0DAE7C2DAE6C2DAE6C5DBE6C7DBE6C8DAE4C8DAE4C9DAE2C9DAE2C9DAE2C9DAE2CADBE3 C9DAE2C9DAE2C8D9E1C6D8E2C5D7E1C4D8E3C1D7E2C1D7E4C0D8E4C0D7E5BED8E7BED8E9BDD8E9 BDD8E9BED8E7C3D8E9C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C3D9E7C3D9E7C2D9E7C0DAE9BFDAEBBEDBEDBEDBEDBFDAEBC0DAE9 C3D9E6CCDFE6D4DFE5CBD1D1ADAEA9BAB6ADADA59AB1AEA5B9C5C5B9CCD2BED1D8C0D3DAC1D3DD C6D8E2CFE0EAD6E4EDD2DFE7C5CFD1C4CDCCD9DED8E4E7DCD9DACCCBC9BAC6C3B28B88755D5C48 52513F41423042453465695A787C6E868A7B7B7D6F6F72615F5E4C54523D534D37625B417B7156 7F755A928D70A5A083B8B197D2CBAFD2C8AFE2D6BCD2C6AED3C5ABE0D1BAE5D5BCE7D7C0E4D4BB E0CEB8DACAB1D5C3ADD0BEA6D5C0ABD9C3AEDEC7B7DAC3B598807646322B271811130C061D1E18 0B1009050F07020C030409020E0F0715120B18140B15150D1718101B1C1620211C24231F262523 272624292524151110110C0915100D221D1929221C251E1629201933291D3D2E1B412F1745331D 47372047382147382144382043371F42361E4A3E26584C3461553D564A32473B23493D27524B38 4F514350564A545A4E545A4C54584A525647545847575C48555A445F644D575B4275795E515638 34391B7D826486896E8B8A76928F808E8B7C747162525041413F3247473B56584B505247585B50 61675D6C72687B827A8F968E9BA29AA0A59E9DA099A1A29CA7A8A2ACADA5AAABA3A6A89DA9ABA0 B0B2A5ADAFA2ADAFA1ADAFA1AEB1A0AFB2A1AFB2A1B0B3A0B0B3A2B0B2A5B0B2A7B1B3A8B1B3A8 B2B4A9B3B5AAB3B5AAB3B5AAB6B8ADBABCB1B9BBB0B5B7ACB7B9AEBBBDB2B1B3A8A0A096928E85 746D655A514A564F47564D464A433B443B34453E36D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E7D6E4E7D7E2E6 D4E2E5D4E1E7D3E0E6D1E0E7D1E0E7CFE0E7CEE1E8CDDFE9CCDEE8CBDFE8CADEE7C9DDE8CADCE8 CFE0EAD1DFEAD1DFEAD1DFEAD1DFEAD1DFEAD1DFEAD1DFEACDDBE6CDDBE6CDDBE6CDDBE6CDDBE6 CDDBE6CDDBE6CBDCE6CBDCE6CADCE6CCDCE9CCDEE8CEDEEBCDDFE9CFDFECCEE0EACBDBE8CADCE6 CBDBE8CADCE6CBDBE8CADCE6CBDBE8CADCE6C9DDE6C7DEE6C7DEE6C9DDE6C9DDE6C9DDE6C9DDE6 C9DDE6CEE2EBD1E5EED0E4EDCBE2EACEE5EDD0E7EFC4DBE3B6CAD1C9DAE1CFDEE3D3E2E7D4E3E8 D2E1E6D1DEE4D3E0E6D5E2E8D3E0E6D5E2E8D7E4EADAE7EDDDEAF0E2EDF3E5F0F6E6F1F5E9F1F4 ECF1F5EEF3F7ECF4F7EBF3F6E8F0F3E4ECEFE2E9EFE7EEF4E6EDF3E4EBF1E2EBF0E1EAEFE1EAEF E2EBF0E1ECF2DEEDF4DAEBF2D9E7F0D5E6EDD5E3ECD2E3EAD4E2EBD2E3EAD5E3ECD3E4EBD5E3EC D3E4EBD5E3ECD3E4EBD5E3ECD5E4EBD5E4E9D6E3E9D7E4EAD8E5EBDAE5E9DBE6EADDE6EBDDE7E9 DFE9EBE0E8EAE1E9EBE2EBEAE4EAEAE5EBEBE7EBECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE9EDECE9EDECE8ECEBE7EBEAE7EBEAE6EAE9E5E9E8E4EAE8E2EBE8E1ECE8 E1ECE8E1ECE8E1ECE8E1ECE8E1ECE8E1ECE8DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4DDE8E4 DEE7E4E0E6E4E0E6E4E1E5E4E0E6E4E1E5E4E0E6E4E1E5E4E0E6E4E3E7E6E2E8E6E3E7E6E2E8E6 E3E7E6E2E8E6E3E7E6E2E8E6E3E7E6E2E8E6E3E7E6E2E8E6E3E7E6E2E8E6E3E7E6E2E8E6E3E7E6 E2E8E6E3E7E6E2E8E6E3E7E6E2E8E6E3E7E6E2E8E6E1E5E4E0E6E4E1E5E4E0E6E4E1E5E4E0E6E4 E1E5E4E0E6E4E3E7E6E2E8E6E3E7E6E2E8E6E3E7E6E2E8E6E3E7E6E3E7E6E5E9E8E5E9E8E5E9E8 E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8 E5E9E8E4EAE8E5E9E8E4EAE8E5E9E8E4EAE8E5E9E8E4EAE8E7EBEAE6ECEAE7EBEAE6ECEAE7EBEA E6ECEAE7EBEAE7EBEAE5E9E8E5E9E8E6EAE9E6EAE9E7EBEAE8ECEBE9EDECE9EDECEBEFEEEBEFEE ECF0EFECF0EFEDF1F0EEF2F1EFF3F2F1F3F0F3F4EFF1F2EDEFF0EBEEEFEAEFF0EBF1F2EDF5F6F1 F7F8F3FEFFFAFEFFFAFDFEF9FCFDF8FCFDF8FBFCF7FAFBF6FAFBF6F8F7F3F7F6F2F5F4F0F3F2EE F3F2EEF3F2EEF4F3EFF4F3EFF5F4F0F3F2EEF0EFEBEEEDE9ECEBE7ECEBE7ECEBE7EBEBE9EBEFF0 EAF0F0EBEFF2EAF0F0EBEFF2EAF0F0EBEFF2EAF0F0E5E9ECE7EDEDEAEEF1EAF0F0E9EDF0E4EAEA DFE3E6D8E0E3DAE7EDD4E5EDCEE1E8C9DDE4C4DBE3C3D9E4C3DBE7C4DCE8C2D9E7C2D9E7C0DAE7 C0DAE9BFDBE9BEDBE9BCDCE9BCDCE9BEDCE7C0DCE8C1DDE9C3DFEBC3DFEBC2DEECC1DDEBC0DCEA BAD6E4BEDAE8C1DDEBC0DCEABDD9E7BAD5E6BBD6E7BDD8E9C1DCEDC1DDEBC2DCEBC4DBEBC4DBEB C4DBEBC5DAEBC4DBE9C2D9E7C2D9E7C2D9E7C2DAE6C3D9E6C3D9E6C5D8E6C3D9E7C1DBEAC0DBEC BFDAEBBFDAEBC0DAE9BFD9E8BFD9E6BFDAE5C4DCE8C4DCE8C5DBE6C5DBE6C7DBE4C7DBE4C7DBE4 C7DBE4C7DBE4C7DBE4C7D9E3C6D9E0C5D8DFC5D8DFC4D7DEC4D7DEC3D7E0C3D7E2C1D7E4C0D7E5 BED8E9BDD8E9BDD8EBBED8E9C2D9E9C3D8E9C3D8E9C3D8E9C3D8E9C5D8E7C5D8E7C5D8E7C5D8E7 C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C5D8E7C2D9E9C0DAEBBFDAEDBFDAEFBEDAEFBEDAEF BFDAEDC0DAEBBED4E2C5D7E1D2DFE5CBD3D59D9F9C8B88815E574D4B473EAEB0AFC0C5C9D7DCE0 E1E6EADFE3E6D4D8DBC7C8CCBABBBDB0B0B0959490919189B5B2A9D0CEC2C7C3B7B1AE9FAAA592 AAA28F938B769B937E7F7865605B48605D4A4F4C3B423F2E514E3B63614C7B76629C9680AFA88E B5AB90C1B79CC5BC9FD5CEB2D8D1B5D4CAAFD9CDB3CEC0A6E4D6BCDCCEB4E7D9BFDECFB8DBCFB7 D5C9B1CFC3ADD3C4AFDCCDB8E2D3C0E4D5C0DCCDB6D3C4AFC8B9A6BCAC9D7C6E6332251D1D140D 1310090B0C04060902171C151D221B1B1C16201F1A25221D2A272223241C24251D252620242520 23221E1F1E1A1D19161A1613130E081009011710062A2217352D22362C223E342A4D41315A4A30 5B4C2D5E4D2F5E4F305E51315D50305B50305A4F2F645A37665C396F644473684A685D415B4F35 645840756D5A686A5D686F676B73686B7368676F62646A5C616858636854676B5471735B68684E 8B8B6F5B5E412F32157B7F64878973928F7E959185928E82837F737270636C6A5E7474687F8176 8D9085989B90A3A99DA8AEA2A3ABA0A0A89DA1A99EA6ACA2A8A9A3AEADA8B0B1ABADAEA8A7AAA1 A8ABA2AFB2A7B7B9AEB0B2A7B1B1A5B2B2A6B2B2A6B2B4A6B2B4A6B1B5A4B2B6A7B4B6A9B4B6AB B5B7ACB5B7ACB6B8ADB6B8ADB7B9AEB7B9AEB7B9AEBEC0B5BEC0B5BABCB1BCBEB3C0C2B7B3B5AA A19F938A817863564D44372F473A314E4139473A31473A3251443BD6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D2DFE5 D1E0E5D2DFE5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFDEE3CDDEE5CDDEE5CDDEE5CDDEE5CDDEE5 CDDEE5CFDEE5D2DFE7D2DFE7D3E0E8D4E1E9D4E1E9D5E2EAD6E3EBD6E3EBD4E1E9D4E1E9D3E0E8 D2DFE7D1DEE6D1DEE6D0DDE5CFDEE5C9DCE3C9DDE4CCDEE8CDE1E8CFE1EBCEE2E9CEE0EACDE1E8 C7D9E3C6DAE1C7D9E3C6DAE1C7D9E3C6DAE1C7D9E3C6DAE1C4DDE1C5DEE2C6DFE3C9E1E5CBE3E7 CDE5E9D0E5EAD1E6EBCBE3E7D2EAEECBE3E7D0E9EDCAE6E9CCEAECCEECEE9AB6B7D0E4E5D3E3E3 D4E2E3D4E2E3D3E1E2D3DEE0D2DDDFD3DEE0DCE6E8DDE7E9E0E8EBE3EBEEE5EDF0EAEFF3ECF1F5 EDF2F5EBEFF0EBEFEEEBEFF0EAF0F0EAF0F0EAF0F0E8F0F2E8F0F3E5EFF1E5EFF1E3ECF1E1ECF0 DFEAF0DEE9EFDAE7EDD9E8EDD5E6EED2E5ECD2E3EDCFE2E9CFE0EACEE1E8D0E1EBD0E3EAD1E2EC D0E3EAD1E2ECD0E3EAD1E2ECD0E3EAD1E2ECD1E2EAD6E3EBD8E3E9D9E4EADAE5EBDAE5EBDBE6EC DCE7EDDCE7EBDEE9EDDFE8EDE0E9EEE1EAEFE1EAEFE2EBF0E3ECF1E4ECEFE7EBECE9EBEAE9EBEA E9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE7EBEA E6ECEAE4EDEAE3ECE9E2EBE8E2EBE8E1EAE7E0E9E6E0E9E6E2EBE8E2EBE8E2EBE8E2EBE8E2EBE8 E2EBE8E2EBE8E2EBE8E0E9E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6 E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6 E0E9E6E0E6E4DEE7E4E0E6E4DEE7E4E0E6E4DEE7E4E0E6E4DEE7E4DEE4E2DCE5E2DEE4E2DCE5E2 DEE4E2DCE5E2DEE4E2DCE5E2E0E6E4DEE7E4E0E6E4DEE7E4E0E6E4DEE7E4E0E6E4E0E6E4E1E5E4 E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6E0E9E6E2E8E6 E0E9E6E2E8E6E0E9E6E2E8E6E2E8E6E5E9E8E5E9E8E6EAE9E7EBEAE8ECEBE8ECEBE9EDECE9EDEC E9EDECE9EDECEAEEEDEBEFEEECF0EFECF0EFEDF1F0EFF1F0EEEEECEFEEECF0EFEDF1F0EEF2F1EF F2F1EFF3F2F0F3F2F0F7F6F4F8F7F5F8F7F5F9F8F6FAF9F7FBFAF8FBFAF8FCFBF9F3F2F0F3F2F0 F3F2F0F3F2F0F3F2F0F3F2F0F3F2F0F3F2F0EFEEECF0EFEDF1F0EEF1F0EEEFEEECEBEAE8E7E6E4 E3E3E3EAEEF1E7EFF1E9EEF2E7EFF1E9EEF2E7EFF1EAEFF3E8F0F2E5EAEEE4ECEEE6EBEFE3EBED E4E9EDE0E8EADFE4E8DCE4E7D5E0E6D3E2E9C7DAE1BBD2D8B8D3DAB4D1D9B9D5E0CBE7F3D4EBF9 C0D7E5C6DDEBD2EDF8C9E7F1C5E7F0C5ECF1BCE5EBBDE3ECB8DEE7B1D7E2ACD2DDACD2DDB3D9E6 BEE4F1C5EBF8B0D5E5AFD4E4AFD4E6B3D8EAB8DDEFBADFF2B7DCEFB4D9ECADD0E4BDDEF1C9E5FA C6DFF5C1D6EBC1D6EBC9DBEFCCE1F2C2D9E7C0DAE7C0DBE6C2DAE4C5D9E4C7D7E4CAD6E2C9D7E4 C2D9E7BFDBE9BFDBE9BFDBE9BFDBE9BFDBE9BFDBE9BFDBE7BEDCE7BEDCE7BFDBE7BFDBE7BEDCE7 BEDCE7BEDCE7BEDCE7B3D1DCB8D4DFC5DDE7C6DDE5C3D6DCC9DBDFD2E0E3CCDADDC8D5DBC7D6DD C5D6E0C3D6E4C1D6E7BED7EBBDD8EDBDD8EDBED7EBC0D7E9C0D7E9C0D7E9C0D7E9C1D6E7C1D6E7 C1D6E7C0D3E2C0D3E2C0D2E0BDCFDDBBCDDBBDCFDDC4D6E4C9DAEAC2D4EAC8DCF4BBD1E8B4CAE2 C1D7EFC1D7EEC0D5EAD1E4F5C7D9E7CFDDE8DAE5EBC3C8CB959794898981938F848E857CD4C2C0 C5B0AFBEA9A6C0A9A3AF968F957A6F94786CA68A7C8B71606F5846665140AA9989E0D3C3AEA294 6F65596F6353705E46655035604B306A563B77634A806F5593836AA7997FC5B79DCDC1A7D8CCB2 DED4B9DED2B8D9CFB4D4CAAFD2C8ADD5CBB2E4D8C0D9CAB3DBCBB4E4D2BCDECCB6E0D0B9D8CCB4 DFD7C0D1CCB6D9D7C2DEDBC8CBC5B5BBB3A6AFA59B988F8089856C8685696E6D585A5B49616355 5C5E5136382B121206130F03110B002D25182B23181E150C29221C2A252226231E2A281C1D1D11 28251C28251E292420292420221B132E261B180F002018032E240B3D3117493D2553442F574835 594B316C633C6C65396F663D716942746C457770467A73497B74487C75477F784A7E774B908863 7A71525E543B736856756D627B7B73696E68747A76767D76777E767E867B7478696F6E5A827E63 817A5D776E4F978E6F837C602C280D63624D9F9E8C928B839D9690A8A19BA7A29CA19E97A19E97 A8A8A0B0B2A7ABAEA3ABB1A5ACB2A4A8AEA0A2AA9B9FA798A0A797A5A99BA6A39CBAB7B0B4B5AD ACAFA6B4BAB0AFB7ACA9AFA5B5B8AFB7B7AFB9B6ADBAB6ADB9B6ADB7B7ADB6B8ADB3B9ADB3B9AD B7BBADB9BBAEB9BBAEBABCAFBBBDB0BCBEB1BCBEB1BDBFB2BCBEB1C1C3B6C1C3B6BCBEB1BCBEB1 BEC0B3B6B8ABADA99D99897C5A4437513D3258453754403554413349372B534133D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D4E1E7D2DFE5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9D6E1E7 D6E1E7D5E0E6D5E0E6D4DFE5D3DEE4D2DDE3D0DDE3CBDCE3CADEE5CDE0E7CDE1E8CEE1E8CDE1E8 CDE0E7CBDFE6C9DCE3C8DCE3C9DCE3C8DCE3C9DCE3C8DCE3C9DCE3C8DDE2C5DDDFC5DFE0C7DFE1 C9E1E3CDE2E5CEE3E6D1E4E8D1E4E8D7EAEECDE2E5C1D9DBCEE8E9C2DEDFABC9C99AB8B86B8886 BFD3D2D0E0DFDBE9E9DAE8E8D6E2E2D5E1E1D9E3E4DBE5E6DDE5E7DEE6E8E2E7EAE5EAEDE8ECEF EBEFF2EFF0F4F0F1F3EDEFEEEDEFECEBEFEEEBEFEEEAF0EEEAF0EEE8F0F2E8F0F2E5EFF1E5EFF1 E2EDF1E1ECF0DDEAF0DCE9EFD9E8EDD9E8EFD5E6EED2E4EED1E3EDCFE1EBCEE0EACEE0EACFE1EB D0E2ECD0E2ECD0E2ECD0E2ECD0E2ECD0E2ECD0E2ECD0E2ECD1E2EAD6E3EBD8E3E9D9E4EADAE5EB DAE5EBDBE6ECDCE7EDDCE7EDDEE9EFDEE9EFDFEAF0E0EBF1E0EBF1E1ECF2E2EDF3E3ECF1E7EBEC E9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEAE9EBEA E9EBEAE7EBEAE6ECEAE4EDEAE3ECE9E2EBE8E2EBE8E1EAE7E0E9E6E0E9E6E2EBE8E2EBE8E2EBE8 E2EBE8E2EBE8E2EBE8E2EBE8E2EBE8E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 E0E9E6E0E9E6E0E9E6DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E3E7E6E2E8E6E2E8E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E4E8E7E5E9E8E5E9E8E6EAE9E7EBEAE8ECEB E8ECEBE9EDECE8ECEBE9EDECE9EDECEAEEEDEBEFEEECF0EFECF0EFEFF1F0EDEDEDEFEDEEEFEDEE F0EEEFF1EFF0F2F0F1F2F0F1F3F1F2F5F3F4F5F3F4F6F4F5F7F5F6F8F6F7F8F6F7F9F7F8F9F7F8 F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F3F1F2F0EEEFF0EEEFF0EEEFF0EEEFEFEDEE ECEAEBEAE8E9E8E8EAE0E5E8DFE7EAE0E8EBE2EAEDE3EBEEE3EBEEE3EBEEE3EBEEE3EBEEE4ECEF E5EDF0E5EDF0E5EDF0E3EBEEE2EAEDE1E8EECED7DECEDBE3BFD0D8AFC3CCACC7D0B1CED6B4D0DB B8D3DEAFC6D4BBD1DEC6DCE9BBD3DDA5C2C8A2C5C7ACD4D4AED8D7B8DFE4BDE4EBC3E9F2C5EBF4 C1E7F2B7DDE8ADD3E0A6CCD9ADD2E2AFD4E4B3D8EAB9DEF0BDE2F5BFE4F7BEE2F8BCE0F6B2D8ED B7DBF1BEDDF2C2DCF3C5DBF3C8DCF4C9DEF3C9E0F2C0DAE9BFDBE7BFDBE6C0DBE6C5D9E4C7D7E4 CCD6E2CAD6E4C3D9E6C0DAE7C0DAE7C0DAE7C0DAE7C0DAE7BFDBE7BFDBE7BEDCE7BEDCE7BEDCE7 BEDCE7BCDCE7BCDCE7BCDCE7BCDCE7C7E7F2CAE8F3CBE7F2CAE3EAC7DBE2C6D8DCC9D7DACAD5D9 CAD5D9C8D5DDC7D5E0C4D6E4C1D6E7BED7EBBDD7EEBDD7EEBDD8EDBDD8EBBED7EDBED7EBBED7EB C0D7E9C0D7E9C1D6E7C4D9EAC9DCEBCBDEEDCCDEECCADCEAC9DBE9CBDBE8CBDDEBC4D9EACDE4F6 C6DCF1C2D9EBCBE0F5C6D8ECBDCEDEC7D4E4CBD5E1CCD3DBDCDDE2D8D6D7C3BBB8B7ACA6B0A299 A08C85896C687E5C5A7C59538A655C8F695C89625188624F906A558D6A54886851816550BAA08F E2CFC0B3A3947D71657262528F775D967B5EAC9174C5AC8ECEB597CCB498D9C4A7EEDABFE1D0B4 D7C7ADCDBFA4CABEA4D3C7ADDCD2B7E3D9C0E5DBC2D1C7AEE3D7BFDECEB7E4D2BCEAD5C0E1CCB7 DAC8B2C7BBA5B6B09A9C9B869194818B8E7D7C7C707E7B72857E787C756B6A6A52767A5F798169 7F8B758E99897B867643493B17180A171101150900271A0A26180B25170E2B201A221A171F1A16 29271A201E0F2A281C28241B241F19272018261E133A3120413A20494021554B286356336E5F3E 75664779684E7A6B4C7770447672427874457B774A7E7A4D817D50837F5084814E868350888552 868252969167827C5C655D46756C5D7972686E6F6A696D6C7F85857E8784747F79747E756D7163 6C6B578B856B8E836587795CA4967992886D38321C636250A2A093ADA5A2AFA7A5B2AAA8B1ACA9 B0ADA8AFACA7AEAEA6ADAFA4A0A398A3A799A7AB9CABAFA0ABB2A2ACB3A3B0B4A3B3B5A7B6B2A9 BBB6B0ACADA5A5ABA1B4BCB1B5BFB4B0B6ACB8BBB2BABAB2BCB9B2BFB8B2BDB8B2BCB9B2B9BAB2 B5BDB2B5BDB0BABDB2BBBDB0BCBEB1BCBEB1BDBFB2BEC0B3BFC1B4BFC1B4BEC0B3C3C5B8C3C5B8 BEC0B3BEC0B3C1C3B6B9BBAEB1ADA19C8A7C604639523B2D5841335942345D4638553F315F493B D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6 D5E0E6D5E0E6D3E0E6D2DFE5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9 D8E3E9D7E2E8D7E2E8D6E1E7D5E0E6D4DFE5D4DFE5D3DEE4D1DEE4CCDDE4CCDFE5CEDFE6CEE1E7 CFE0E7CCDFE5CCDDE4CADDE3CADBE2C9DCE2CADBE2C9DCE2CADBE2C9DCE2CADBE2C9DCE2C9DCE0 CADDE1CCDEE2CDDFE3D1E0E5D2E1E6D4E1E7D4E3E8CFDEE3CADCE0CDE0E4DCF1F4C2DADC9CB6B7 97B1B28EA6A68B9D9DB5C5C4D9E7E7DEECECD8E4E4D9E5E5DEE8E9DEE8E9DEE6E8DFE7E9E3E8EB E5EAEDE8ECEFEAEEF1EEEFF3EFF0F2EDEFEEEDEFECEBEFEEEBEFEEEAF0EEEAF0EEE8F0F2E8F0F2 E5EFF1E5EFF1E2EDF1E1ECF0DDEAF0DCE9EFD9E8EDD9E8EFD5E6EED3E4ECD2E3EBD0E1E9CFE0E8 CFE0E8D0E1E9D1E2EAD1E2EAD1E2EAD1E2EAD1E2EAD1E2EAD1E2EAD1E2EAD3E1EAD6E3EBD8E3E9 D9E4EADAE5EBDAE5EBDBE6ECDCE7EDDCE7EDDEE9EFDEE9EFDFEAF0E0EBF1E0EBF1E1ECF2E2EDF3 E3ECF1E6ECECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE6ECEAE4EDEAE3ECE9E2EBE8E2EBE8E1EAE7E0E9E6E0E9E6E1EAE7 E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5 DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5 DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3 DDE6E3DDE6E3DDE6E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E2E6E5E2E6E5 E2E6E5E2E6E5E2E6E5E2E6E5E2E6E5E1E7E5E1E7E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5 DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5E3E7E6E4E8E7E4E8E7E5E9E8 E6EAE9E7EBEAE7EBEAE7EBEAE7EBEAE8ECEBE8ECEBE9EDECEAEEEDEBEFEEEBEFEEEDEFEEECECEC EDEDEDEDEDEDEEEEEEEFEFEFF0F0F0F0F0F0F0F0F0F1F1F1F1F1F1F1F1F1F2F2F2F3F3F3F4F4F4 F4F4F4F5F5F5F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F0F0F0EFEFEFEEEEEE EDEDEDEDEDEDEDEDEDEEEEEEEEEFF1DEE3E6DEE6E9E1E9ECE3EBEEE4ECEFE4ECEFE2EAEDE1E9EC E6EEF1E5EDF0E4ECEFE2EAEDDEE6E9DAE2E5D6DEE1D4DBE1CFD6E0D3DDE7C8D6E1B7C9D3B5CBD6 BFD7E1BFD7E1B4CAD5BBCDDBCFDFECBCCDD782959C526A6E425E5F4565644D6F6E5D7C7F69868A 7D9AA095B2B8ABC8D0BCD9E1C8E4EFCFEBF6C3DFEBC3DFEBC3DFEDC1DDEBBFDAEBBED9EABFDAED BDDCF0C2E7FAB9DFF4B6D6EDB9D5EBBDD5EDBED4EBBDD3EABAD3E7BFDAEDBEDBEBBCDCE9BEDBE9 C0DAE7C3D9E7C7D7E7C7D7E6C5D9E4C3D9E4C3D9E4C3D9E4C2DAE4C2DAE4C2DAE4C2DAE4C0DBE4 C0DBE4C0DBE4C0DBE4BFDCE4BFDCE4BFDCE4BFDCE4B8D6E0BCD8E3B8D3DCB9D1DBC1D8E0C2D6DD C4D5DCCEDFE6C5D6DEC5D6E0C4D6E4C1D7E5C0D7E9BED7EBBDD7EEBDD7EEBDD7EEBCD8EDBDD7EE BDD8EDBDD8EDBED7EBBED7EBC0D7E9BDD4E6C1D6E7C6D9E8C6D9E8C6D8E6C4D6E4C4D6E4C3D7E2 BFDAE3C4E1E7BEDBE3BBD6DDC3D9E4C3D5DFC1CFD8CAD3DAE0E1E6D2CCD0D1C2C5D3BFBECAAEAB B695909B766E7C574F7C5B567758537958517C5B527D5B4F7A594A775645765743765A45917661 987F6BC4AF9CE4D3C3CEBEAFC2B6A6C3B4A1D6C0A8D8C0A4E2CAAEE6D1B4D3BEA1BCA88DC4B095 DDCCB2D8C8AEDDCFB5E0D4BADDD3BAD6CCB3D3CCB2D9D1BAE0D8C1D8D0B9E7DCC6E2D3BEE5D3BF E7D2BFDCCAB6D3C2AEB6AB9576715B6B6D577075617B7F6E838377928F869D9690949085B6B5A1 ABAF96939B8485917D8590826A7567373D2F1516081C16061E1202271A0926190930221730261D 1D1610201B15201E0F181A052526162523162420152D271B363020514B35625B3E68603C71683F 7A714883774F887C568B7C5B8B7E5B8982548884548A86578C885B8F8A60928E6194906195925F 969360979461969262A09B718F8967726B51786F5E7F786E6D6F6C6B7473858F90808C8C6E7A78 6B766E666E616D705D93917A989175978D72ABA488A19B8545422F5E6052A4A69BB5B0ACB2AAA8 AFA7A4B0ABA7B4B1ACB6B3AEB2AFA8ABABA1B6B6ACB5B7AAB5B7A9B5B7A9B5B8A7B1B4A3ACAF9E A9AA9CB4B0A7AFAAA49E9F97A0A69CB6BEB3BCC6BBB9BFB5BCBFB6BFBFB7C1BEB7C4BDB7C2BDB7 C1BEB7BEBFB7BAC2B7BAC2B5BEC1B6BFC1B4C0C2B5C0C2B5C1C3B6C2C4B7C3C5B8C3C5B8C3C5B8 C7C9BCC6C8BBC1C3B6C2C4B7C5C7BABEC0B3B6B2A6AE9C8E725B4D574032563F315A43355C4537 553F315C4638D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D2DFE5D2DFE5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7 D7E2E8D8E3E9D8E3E9D8E3E9D7E2E8D7E2E8D6E1E7D5E0E6D4DFE5D4DFE5D2DFE5D0DFE6D0DFE6 D1E0E7D2E1E8D1E0E7CFDEE5CEDDE4CCDBE2CCDBE2CCDBE2CCDBE2CCDBE2CCDBE2CCDBE2CCDBE2 CCDBE0CFDEE3CFDEE3D1DEE4D2DFE5D5E0E6D6E1E7D7E0E7D8E1E8E0EBF1DDE8EEDBE8EED3E2E7 A5B7BB687B7F485D6040545551636393A3A2D0DEDEDFEDEDDCE8E8DCE8E8DFE9EADCE6E7DFE7E9 E0E8EAE3E8EBE5EAEDE8ECEFEAEEF1EDEEF2EEEFF1EDEFEEEDEFECEBEFEEEBEFEEEAF0EEEAF0EE E8F0F2E8F0F2E5EFF1E5EFF1E2EDF1E1ECF0DDEAF0DCE9EFD9E8EDD9E8EDD5E6EDD3E4ECD2E3EB D0E1E9CFE0E8CFE0E8D0E1E9D1E2EAD1E2EAD1E2EAD1E2EAD1E2EAD1E2EAD1E2EAD1E2EAD3E2E9 D6E3E9D8E3E9D9E4EADAE5EBDAE5EBDBE6ECDCE7EDDCE7EDDEE9EFDEE9EFDFEAF0E0EBF1E0EBF1 E1ECF2E2EDF3E3ECF1E6ECECE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7EBEAE7EBEAE7EBEAE6ECEAE4EDEAE4EDEAE3ECE9E2EBE8E2EBE8E1EAE7E0E9E6 E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E0E6E4E0E6E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4E2E6E5E2E6E5 E3E7E6E3E7E6E4E8E7E5E9E8E6EAE9E6EAE9E6EAE9E6EAE9E7EBEAE7EBEAE8ECEBE9EDECEAEEED EAEEEDEBEBEBEBEBEBECECECECECECEDEDEDEEEEEEEFEFEFEFEFEFEDEDEDEDEDEDEEEEEEEFEFEF EFEFEFF0F0F0F1F1F1F1F1F1F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F1F1F1 EFEFEFEDEDEDEBEBEBEBEBEBEEEEEEF1F1F1F2F3F5E8EDF0E7EFF2E9F1F4EAF2F5E9F1F4E7EFF2 E4ECEFE2EAEDDDE5E8DDE5E8DBE3E6D9E1E4D6DEE1D1D9DCCED6D9CBD2D8D0D7E1D4DCE9D3DFEB C8D9E3C0D4DFC7DBE6CADEE9C0D2DCD9E7F2D1DBE5959FA8505B612F3F3F2236341F3A332D4843 2D43412D41422D404435484C4A5D63697C828B9EA5A0B3BABDCFD9C4D6E0CBDDE9CEE0ECCBDDEB C5D7E5C2D3E3BDD4E4AACBDEABD0E3B8D7ECC6E0F7CBE1F9C6DCF3BDD6ECBAD5EABCDBEDBBDCED BBDCEDBBDCEDBEDBEBC0DAEBC5D7EBC6D7E9C6D8E4C6D9E0C6D9E0C5D9E0C5D9E0C5D9E0C5D9E0 C3DAE0C3DAE0C3DAE0C3DAE0C2DBE0C2DBE0C2DBE0C2DBE0C2DBE2BBD6DDBFDAE3BAD5DEBCD5DC C6DEE8C3DAE2BED4DFC8DEE9C1D7E4C1D7E5C0D7E7C0D7E7BED7EBBED7EBBED7EDBDD8EDBCD8EE BCD8EEBCD8EEBCD8EDBDD8EDBDD8EBBED7EBC0D7E9BFD6E8C0D5E6C2D5E4C3D5E3C4D6E4C5D7E3 C8D8E7C7DBE4BED6D8C1DBD8C4DDDAC8DEDCCDDFDFD1DCDED3D8DBD8D8D8B6ADAEA29090947A79 9C7A78A0777397686285534C72433B704E457B5E5683665E775A52664A3F5F4337604639604939 65503F725D4C6C5948948371C1B1A1CABDACDBCEBDE2D3C0E4D2BADDC9AEDCC8AFDECAB1CCBBA1 B9A88EC2B299DDCFB5DED2BAE2D6BEE3D8C2E0D8C1DCD4BFD9D3BDDDD7C1E1DBC5DDD7C1E6DBC5 DECFBCDECDB9DFCDB9E1CFBBDFD0BBBDB29E8E8C77949681A0A493AAB1A1B4B6ABB9B9B1B3AEAA A39F967877655E614C39402E2C3727384237333D321C22160F1002241E0E3227154033223F3221 46382B3C32262720183A382C4142303B3D27494A384A4B3B4C4A3B5653425F5D487B775C74704D 78734B7F784A857D4E8A82538E835690845C90845A9A94649995659A96679C986B9F9A70A19D70 A29E6FA39F6FA4A16EA5A26FA4A070A9A47A9C96747E775D786F5E817D727C817D737D7E848F91 7B898A6A78786A79746A74697178689B9A85A09C83A39D83AEAA91ABA895505141555B4FA9ACA5 AFACA7AEA9A6AEA9A5B1ACA8B6B3AEB9B6AFB9B5ACB7B3AAB9B7ABB6B4A7B4B2A5B2B0A1B0AD9E AAA798A19E8F9995899089818D88828F9088A1A79DB7BFB4BBC5BABCC2B8BFC2B9C3C3BBC5C2BB C8C1BBC6C1BBC5C2BBC2C3BBBEC6BBBEC6B9C2C5BAC3C5B8C4C6B9C4C6B9C5C7BAC6C8BBC7C9BC C7C9BCC7C9BCCACCBFC9CBBEC3C5B8C5C7BAC9CBBEC3C5B8BDB9ADBEAC9E8770625C4537543D2F 5A43355A44365640325A4436D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DFE5D2DFE5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 D1E0E5D1E0E5CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D4DFE5D4DFE5D5E0E6 D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D7E2E8D6E1E7D5E0E6D5E0E6D4DFE5 D2DFE5D3E0E6D4E1E7D4E1E7D4E1E7D3E0E6D2DFE5D1DEE4CCD9DFCCD9DFCCD9DFCCD9DFCCD9DF CCD9DFCCD9DFCCD9DFD6E1E7D6E1E5D7E0E5D8E1E6D9E0E6DAE1E7DCE1E7DDE2E8D6DDE3D3DAE0 D6DFE4DCE7EBD8E6E9B6C5C87B8D8F586A6C53636392A2A1D0DEDEE0EEEEDDE9E9DDE9E9E1EBEC DEE8E9E0E8EAE1E9EBE4E9ECE5EAEDE8ECEFE9EDF0ECEDF1EDEEF0EDEFEEEDEFECEBEFEEEBEFEE EAF0EEEAF0EEE8F0F2E8F0F2E5EFF1E5EFF1E2EDF1E1ECF0DDEAF0DCE9EFD9E8EDD9E8EDD5E6ED D3E4EBD2E3EAD0E1E8CFE0E7CFE0E7D0E1E8D1E2E9D1E2E9D1E2E9D1E2E9D1E2E9D1E2E9D1E2E9 D1E2E9D3E2E9D6E3E9D8E3E9D9E4EADAE5EBDAE5EBDBE6ECDCE7EDDCE7EDDEE9EFDEE9EFDFEAF0 E0EBF1E0EBF1E1ECF2E2EDF3E3ECF1E4EDECE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEA E6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE4EDEAE4EDEAE3ECE9E2EBE8E2EBE8 E1EAE7E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DFE3E2DFE3E2E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E0E6E4E0E6E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 E0E4E3E0E4E3E1E5E4E2E6E5E3E7E6E3E7E6E4E8E7E4E8E7E4E8E7E4E8E7E5E9E8E6EAE9E7EBEA E7EBEAE8ECEBE8ECEBE9E9E9E9E9E9EAEAEAEBEBEBECECECECECECEDEDEDEDEDEDEAEAEAEBEBEB EBEBEBECECECEDEDEDEEEEEEEEEEEEEFEFEFF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 F0F0F0F0F0F0EEEEEEECECECEAEAEAEBEBEBEDEDEDF0F0F0F1F2F4EAF2F5E9F2F7E7F0F5E4EDF2 E1EAEFDEE7ECDBE4E9D9E2E7D0D9DED1DADFD4DDE2D7E0E5D8E1E6D9E2E7D9E2E7DAE1E9D3D9E5 D0D6E6D3DCEBCAD8E5B9CBD7BED0DCCBDCE6C9D7E0CED7E099A0A84D52562D32353A45413E4E44 3C50444B5F544A575047524E3C46452F3938242E2F232D2E2B3537333D3F525B60666F74858E95 A3ACB3B9C2CBC9D2DBD3DBE6D4E2EFC9E4F5C8E9FCCBE7FCC5DEF4BFD3EBBFD3EBC5DBF2C9E4F9 BCDBEFB9DCEFB8DDEFB9DCEFBBDCEFBEDAEFC0D9EFC3D8EBC6D8E2C7D8DFC7D8DFC7D8DFC7D8DF C6D9DFC6D9DFC6D9DFC6D9DFC5DADFC5DADFC5DADFC5DADFC3DBDFC3DBDFC3DBDFB9CED3C1D8DE C6DDE3C9E2E9CDE5EFC9E4EFC3DDEAC0DCEABDD8E9BDD8EBBDD8EBBDD8EBBED7EBBED7EBBED7EB BED7EBBDD8EDBCD8EEBDD8EDBDD8EDBED7EDBED7EBC0D6EBC0D7E9BED3E4C1D4E3C4D6E4C7D7E4 C9D9E6C9DAE4CAD8E5C9D8DFCFDED9CFDCD2CDDAD0C6D0C7B5BAB3A3A49E948F89897E7888756F 7A615C704F48784F4986574F87554C88524888584C7A584E896E6591796F856D63776058766259 79675D78675D7D6F646052454E4131706454B0A392D4C7B6D9CCB9D6CAB4DDCDB6D5C5AED9C9B2 E6D7C0E6D7C2D9CAB5D4C8B2DCD1BBCFC7B2B3AB9699937D9F9A84C0BBA7DED9C5E4DFCBDED9C5 D9D2BFDED6C1D9CCBBDCCDBAE0CDBCEBDAC8EADDCABFB7A4BEBDA9B6B9A6989F8F707668565950 41423C2A272218130D0C0A00060900040B001C2719444E454C564D373D3128291B2B2515483D2B 665A44685C466457464E4536413B2F6260536D705B64685170736070715F6E6F5D73725E74725B 8985688B87618E8A5D908D5A95905999925C9B94609C94659C9465A6A06EA4A070A6A273A7A376 A9A47AABA67CACA87BADA979AEAB78AEAB78AEAA7AAEA97FA7A17D8A8367776F5C8480748B908C 7985858290917B8B8B728281768781707C727078699B9E8BA1A08BA8A68FABA994B1B2A25A5E50 49534AABB2ABB3B2AEB9B6B1BEBBB6BEBBB6BBB6B0B6B1ABB6AFA7B6AFA7ABA299A49C919B9388 91897C877D717A71626C635462584C5B524B635E5882837BA7ADA3B8C0B5B7C1B6BCC2B8C2C5BC C7C7BFC9C6BFCCC5BFCAC5BFC9C6BFC6C7BFC2CABFC2CABDC5C8BDC6C8BBC7C9BCC7C9BCC8CABD C9CBBECACCBFCACCBFCACCBFCDCFC2CACCBFC5C7BAC7C9BCCCCEC1C8CABDC2BEB2BEAEA1917B6E 5B4538503A2D5B45385B45385C46395D4A3CD3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4 D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D1DEE4D2DFE5D1E0E5D1E0E5D1E0E5 D1E0E5D1E0E5D1E0E5D1E0E5CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D4DFE5 D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9D9E4EAD9E4EAD8E3E9D8E3E9D7E2E8D6E1E7 D5E0E6D5E0E6D5DEE5D6DFE4D8E1E8DAE3E8DBE4EBDBE4E9DAE3EADAE3E8D3DCE3D3DCE1D3DCE3 D3DCE1D3DCE3D3DCE1D3DCE3D3DCE1DCE5EADCE5EADDE4EADDE4EADFE4EADFE4EAE1E4EBE1E4EB D8DDE3DADFE5DAE1E7D3DCE1DDE8ECD3E1E4A1B0B38797978D9D9CB5C5C4DAE8E8E0EEEEDBE7E7 DDE9E9E3EDEEE4EEEFE1E9EBE2EAECE5EAEDE5EAEDE8ECEFE8ECEFEBECF0ECEDEFEDEFEEEDEFEC EBEFEEEBEFEEEAF0EEEAF0EEE8F0F2E8F0F2E5EFF1E5EFF1E2EDF1E1ECF0DDEAF0DCE9EFD9E8ED D9E8EDD7E6EDD3E4EBD4E3EAD0E1E8D1E0E7CFE0E7D2E1E8D1E2E9D3E2E9D1E2E9D3E2E9D1E2E9 D3E2E9D1E2E9D3E2E9D3E2E9D6E3E9D8E3E9D9E4EADAE5EBDAE5EBDBE6ECDCE7EDDCE7EDDEE9EF DEE9EFDFEAF0E0EBF1E0EBF1E1ECF2E2EDF3E3ECF1E4EDECE6ECEAE6ECEAE6ECEAE6ECEAE6ECEA E6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE6ECEAE4EDEAE4EDEAE3ECE9 E2EBE8E2EBE8E1EAE7E0E9E6E0E9E6DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5 DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3 DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DEE2E1DEE2E1DEE2E1DEE2E1 DEE2E1DEE2E1DEE2E1DEE2E1E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3DFE5E3DFE5E3 DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3 DDE6E3DDE6E3DFE3E2DFE3E2DFE3E2E0E4E3E1E5E4E2E6E5E2E6E5E3E7E6E3E7E6E3E7E6E3E7E6 E4E8E7E5E9E8E6EAE9E6EAE9E7EBEAE7E9E8E7E9E8E8E8E8E8EAE9EAEAEAEAECEBEBEBEBEBEDEC E9E9E9E9EBEAEAEAEAEAECEBECECECECEEEDEDEDEDEDEFEEEFEFEFEEF0EFEFEFEFEEF0EFEFEFEF EEF0EFEFEFEFEEF0EFEEEEEEECEEEDECECECEAECEBEAEAEAEAECEBECECECE9EDEEE3EBEEDFE8ED DAE3E8D5DEE3D1DADFCFD8DDCFD8DDCFD8DDD7E0E5D9E2E7DBE4E9DEE7ECE0E9EEE1EAEFE1EAEF E1EAF1E0E6F4D4DBEBD0DCEAC3D3E0B3C5D1C1D3DDCCDDE5BCC9D18990984B4E531B1C1E2E302D 575E56606B5D5866555E6C5B575F5471746B8A8D8690938C7E807B60625D484A473C3E3B212322 2729283233354344465A5B5F75767A8F909599A2A9B3C9D4BFDBE9CAE1F1C5D8E9C0D1E3C5D6E8 C5DAEDBED8E9BEDBEDBBDCEDB8DDEFB8DDEFBBDCEFBCDBEFC0D9EFC3D8EBC6D8E2C9D8DDC9D8DD C7D9DDC7D9DDC7D9DDC7D9DDC6D9DDC6D9DDC6D9DDC6D9DDC5DADDC5DADDC5DADDC5DADDC5DADD C6DADBCADDE1D1E6EBC8DFE5B9D4DDC2DEEAC9E6F6BAD9EBBAD9EDBAD9EDBCD8EDBDD8EDBED7EB C0D7E9C1D6E7C1D6E9BED7EBBED7EBC0D6EBC0D7E9C1D6E9C1D6E7C3D6E7C3D6E5C7D9E7CADAE7 CFDDE8D4E1EAD3E0E9D0DAE3C8D2DBC4CCCFC4C4BCB6B2A6A8A498958F83787065695C53615348 56443A7E665C80645979594E7B554A865C5084584B8355468A605275584A765E52705A4F604E44 5948405748414D423C4037303E352E271E1541392C5B5444918877C7BCA8C6BAA4D3C7B1DFD2BF D1C6B2C5BAA6C0B5A1BAAF9DA8A08D968F7C8C857287826F7B76637A756294917EC0BDACDCDBC9 DEDBCAD2CFBCDED9C6E3DCC9E3D8C6E5D8C7E3D2C2E9D8C8DDD0BF9E9785585745575B4A373D2F 0E1609010600040500030000030000010100030500020800182219404A4249534B2F352B18180C 2E29164F443081755D8D81697D705D645C495E584881806E7A7D687176607F826F7F82717E7F6F 7D7F6A7878608988699997709B99699C9B659F9D64A39E66A69F69A8A16DA7A16FACA976ADA979 AEAA7BAFAA80B1AC84B2AD85B3AF82B3AF80B5B181B4B17EB6B282B2AE81B1AB87948D70766E59 8A84768D8F8A7B85848894928493907D8D8A808F887480746F7768989B88A09F8AAEAC95A7A691 B7BAA962685C414B43AEB7B2BABBB6C2BFBAC6C3BEC2BFB8B6B1ABA49D95938A83897F767C6F66 75695D6C5E5361534655473A4C3C2F4333263B2D223B322B47423C777870ABB1A7BBC3B8B8C2B7 BFC5BBC5C8BFC9C9C1CBC8C1CEC7C1CCC7C1CBC8C1C8C9C1C4CCC1C4CCBFC6C9BEC7C9BCC8CABD C9CBBEC9CBBECACCBFCBCDC0CBCDC0CBCDC0CED0C3CBCDC0C5C7BAC7C9BCCDCFC2CBCDC0C5C1B5 C4B4A7A18B7E604A3F503A2D594338523F31554136564335D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3 D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D0DDE3D2DFE5D1E0E5 D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9DAE5EBDAE5EBD9E4EAD8E3E9 D7E2E8D7E2E8D6E1E7D7E0E7D6DDE3D8E0E3DBE2E8DEE6E9E0E7EDE1E9ECE2E9EFE2EAEDDAE1E7 DAE2E5DAE1E7DAE2E5DAE1E7DAE2E5DAE1E7DAE2E5E0EAECE0EAECE1E9ECE1E9ECE3E8ECE3E8EC E3E8ECE3E8ECDADFE3E2E7EBE8F0F3D6E0E2D7E2E4D1DFE0AEBEBEAFC1C1C1D1D0CFDFDEDCEAEA DCEAEADAE6E6DCE8E8E1EBECE3EDEEE2EAECE3EBEDE5EAEDE6EBEEE7EBEEE8ECEFEAEBEFEBECEE EDEFEEEDEFECEBEFEEEBEFEEEAF0EEEAF0EEE8F0F2E8F0F2E5EFF1E5EFF1E2EDF1E1ECF0DDEAF0 DCE9EFD9E8EDD9E8EDD7E6EBD5E4E9D5E2E8D2E1E6D2DFE5D1E0E5D3E0E6D3E2E7D4E1E7D3E2E7 D4E1E7D3E2E7D4E1E7D3E2E7D4E1E7D4E1E7D8E3E9D8E3E9D9E4EADAE5EBDAE5EBDBE6ECDCE7ED DCE7EDDEE9EFDEE9EFDFEAF0E0EBF1E0EBF1E1ECF2E2EDF3E3ECF1E4EDECE4EDEAE4EDEAE4EDEA E4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEA E4EDEAE3ECE9E2EBE8E2EBE8E1EAE7E0E9E6E0E9E6DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DEE4E2DEE4E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DDE1E0DEE2E1DEE2E1DFE3E2E0E4E3E1E5E4E1E5E4E2E6E5E1E5E4 E2E6E5E2E6E5E3E7E6E4E8E7E5E9E8E5E9E8E6EAE9E3E7E6E4E8E7E6E8E7E5E9E8E8EAE9E7EBEA E9EBEAE8ECEBE9EBEAE7EBEAE9EBEAE8ECEBEBEDECEAEEEDECEEEDEBEFEEEDEFEEEBEFEEEDEFEE EBEFEEEDEFEEEBEFEEEDEFEEEBEFEEEAECEBE9EDECEBEDECE8ECEBE9EBEAE5E9E8E5E7E6E0E6E6 DBE5E7D6E1E5CFDADEC9D4D8C7D2D6CAD5D9CFDADED2DDE1DDE8ECDDE8ECDEE9EDDEE9EDDCE7EB DAE5E9D8E3E7D7E2E8DDE7F3D2DFEFCCDCE9BBCFDAB3CAD2CFE3ECC0D3D9839096424A4D272B2C 393A3574756D95998B8B948176846D6E7A64555948838476BABBADD7D8CAD1D1C5B7B7AB9F9F95 93938983837B72716C575652403F3B33323031302E35343235393A3A494E5B6E758091999AA7B0 BBC5D1D5E1EDCEDEEBB4C7D5C0DAE7BEDBE9BBDCEBBBDCEBBCDBEDBEDBEDC2D8EDC3D8E9C6D8E2 C7D8DFC7D8DFC7D8DFC7D8DFC6D9DFC6D9DFC6D9DFC6D9DFC5DADFC5DADFC3DBDFC3DBDFC3DBDF C3DBDFC5DADDD5E5E5C4D4D4B5C8CC8FA6AC6D889192AFBDBCDBEDB1D1E6B9D9EEB9D9EEBAD9ED BDD8EBC0D7E9C3D6E7C4D5E5C4D6E4C4D5E5C3D6E4C4D6E4C4D6E2C5D5E2C5D6E0C7D5E0C8D5DE CCD6DFC9D2D9C5CED5C1C8CEBFC4C8B8BDC1B0B5B9B1ADAE97837C8B6F64856A5F7F64596F574B 755D51836B5F7F675B6B5446765F4F6F58486B5140755B4A715844644936654C38594232534032 46342835271E2A1F19261D181A15110D0A05100D080E0B045854495F594B837C6AC9BEA8B5A991 C4BAA1A29B889A94848C86767E78687C7666807D6C807D6C7A77667D7A6B898778A19F90BEBCAD D6D4C5DEDFCFDDDBCCD6D4C5E2DDCAE7E0CEEADECEEADDCDE0D0C1E2D2C3CCC0B07F7A67575846 616856464E3F1B23160F140D12140F100F0D13120E19191117190E090E07101A1238413C4D5651 3C413A26261A2B2613453A2484785E9F93798D8169756D58726D598A89758388747E8573929687 9296878D8F818B8C7C8887729B9A7C9FA078A1A070A3A26CA5A26BA8A56EACA770AFA975B0AA78 B3B07DB3AF7FB4B081B5B086B6B189B7B28AB8B389B9B588BBB787B9B683BDB989B6B285BAB490 9F987B787059908A7A8A8A8080857E9198918A958D7C89807E8A807880717B7F6E95947FA19D84 B4B097A9A790C2C3B36E74683C463EB1BBB3BEC1BABFBFB7C1BEB7C1BDB4B7B0A8988F886E6159 4E403745342C45342A4533294632274834294F392C553F3257453B443933433E38707169ABB1A7 BFC7BCC0CABFC7CDC3C7CAC1CACAC2CCC9C2CFC8C2CDC8C2CCC9C2C9CAC2C5CDC2C5CDC0C6C9BE C7C9BCC8CABDC9CBBECACCBFCACCBFCBCDC0CBCDC0CBCDC0CED0C3CACCBFC4C6B9C6C8BBCED0C3 CCCEC1C7C3B7C5B7ACAC988D6551484F3B305541384A362B4C382F4A382CD2DDE3D2DDE3D2DDE3 D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D0DDE3 D2DFE5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9DAE5EBDAE5EB D9E4EAD9E4EAD8E3E9D7E2E8D6E1E7D7E0E5D6DEE1DADFE2DEE3E7E2E7EAE5EAEEE7ECEFE8EDF1 E8EDF0E2E7EBE2E7EAE2E7EBE2E7EAE2E7EBE2E7EAE2E7EBE0E8EBE3EDEFE2EDEFE3EDEFE3EDEF E3EBEEE3EBEEE3EBEEE3EBEEDDE5E8DEE8EAE9F3F5DEECEDE4F2F3CFDFDF95A7A790A2A2D2E2E1 D2E2E1D5E3E3D7E5E5DBE7E7DBE7E7DDE7E8DDE7E8E3EBEDE3EBEDE5EAEDE6EBEEE7EBEEE8ECEF EAEBEFEAEBEDEDEFEEEDEFECEBEFEEEBEFEEEAF0EEEAF0EEE8F0F2E8F0F2E5EFF1E5EFF1E2EDF1 E1ECF0DDEAF0DCE9EFD9E8EDD9E8EDD8E5EBD6E3E9D5E2E8D3E0E6D2DFE5D2DFE5D3E0E6D4E1E7 D4E1E7D4E1E7D4E1E7D4E1E7D4E1E7D4E1E7D4E1E7D4E1E7D8E3E9D8E3E9D9E4EADAE5EBDAE5EB DBE6ECDCE7EDDCE7EDDEE9EFDEE9EFDFEAF0E0EBF1E0EBF1E1ECF2E2EDF3E2EDF1E3EDECE4EDEA E4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEAE4EDEA E4EDEAE4EDEAE4EDEAE3ECE9E2EBE8E2EBE8E1EAE7E0E9E6E0E9E6DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0 DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DFE3E2DFE3E2DEE4E2DEE4E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DDE1E0DDE1E0DEE2E1DEE2E1DFE3E2E0E4E3E1E5E4 E1E5E4E1E5E4E1E5E4E2E6E5E2E6E5E3E7E6E4E8E7E5E9E8E5E9E8E3E7E6E3E7E6E4E8E7E4E8E7 E5E9E8E6EAE9E7EBEAE7EBEAE7EBEAE7EBEAE8ECEBE9EDECE9EDECEAEEEDEBEFEEEBEFEEEBEFEE EBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEEBEFEEE6EAE9E8ECEBE9EDECE9EDECE7EBEAE3E7E6 DFE3E2DBE1E1DCE6E8D5E0E4CDD8DCC8D3D7C9D4D8D0DBDFD8E3E7DEE9EDD1DCE0D2DDE1D4DFE3 D4DFE3D4DFE3D3DEE2D2DDE1CFDCE4C5D3DEC2D4E0C0D4DFACC5CCAFCAD1D1EAEFA8BDC03E4E4E 323C3D3C423E7C7F78BFC1B4BDC1B0939B846B785E525F4542453072715DACAB97D0CFBBD7D6C4 D3D2C0D4D2C3DAD8C9CDCBBEC2C0B4B0ADA49A978E83807969665F514E473E3F392D36332E3A38 262E30282D315E6166ADB2B8D3DCE3CDDAE2C6D9E0C2DBE2BFDCE4BEDCE6BFDBE7C2D9E7C5D8E9 C6D7E7C6D8E2C6D9E0C6D9E0C6D9E0C6D9E0C5D9E0C5D9E0C5D9E0C5D9E0C3DAE0C3DAE0C2DBE0 C2DBE0C2DBE0C2DBE0C5DADD8B99996C787653636325383E08202A587480B3D2E4B9DAEDB9D9EE BAD9EDBDD8EBC0D7E9C3D6E5C5D5E2C8D4E0CAD4DECAD4DECAD4DDCBD4DDCBD4DBCBD4DBCCD3D9 CCD3D9CED3D7ABAFB2A0A4A79192948283857B7B7B7776747574727A6F6D856862825C538B665E 8D6B617C5B5277594E775B50664C3F6B5446725F50604F3D4D3E2B524330433623271A071C0F00 1909001F0F001E1005150B020F08020F0B08141311181816161614060701514E453E3B2C625B49 AFA79071674C5E573D5F5C4B6B695C7270637371648182749FA092B3B4A6B6B7A9B5B5A9AAAA9E A2A296A8A99BBABAAECACBBDD0D0C4D2D0C3D7D4C3DDD6C4E0D7C6E3D7C7DCCCBDE0D3C3CFC3B3 807B685D5E4E6A71614B5344162015080D06070904030303090806010000060700040903121B16 40494659625D464B4429291D282310372C167C7056A3987C93876D7F785E7A755F878672868A79 858B7D9A9D9295988D898B8081837681806E96967CA9A985A9AA7EACAA79AEAD77B2AF7AB5B27F BAB484BCB686B7B481B8B484B8B485B9B48ABAB58FBBB690BBB68EBCB88BBEBA8ABDBA87C1BD8D BAB689C0BB95A6A0807B745A968F7C8A8776868779999B8E8B9185747C6F777D6F7D806D8C8B76 938F769F9A7DBAB397AFA991CCCBB7787A6D3C433BB5BCB5C7CAC1C0C2B7BFBFB5C7C3BAC5BEB6 A1978E64564D322117534137533F34533B314F372B4F342952372C5A3F345C483D594F4649443E 6D6E66A9AFA5C3CBC0C8D2C7CED4CAC9CCC3CACAC2CCC9C2CFC8C2CDC8C2CCC9C2C9CAC2C5CDC2 C5CDC0C6C9BEC7C9BCC8CABDC9CBBEC9CBBECACCBFCBCDC0CBCDC0CBCDC0CDCFC2C9CBBEC3C5B8 C6C8BBCDCFC2CCCEC1C8C4B9BCAEA5AA968D634F464D393055413849372D4E3C324D3B31D4DFE5 D4DFE5D3DEE4D2DDE3D1DCE2D1DCE2D0DBE1D0DBE1D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3 D2DDE3D0DDE3D0DDE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9 D4DFE5D4DFE5D5E0E6D7E2E8D9E4EADAE5EBDBE6ECDDE6EBE0E5E8E3E7E8E7EBEEEAEEEFEBEFF2 EAEEEFE8ECEFE7EBECEAEEF1E2E6E7E3E7EAEAEEEFE7EBEEDDE1E2DEE2E5E5EDEFDCEAEAE5F5F4 DDEBEBD2E0E0DEEAEAE9F5F5E8F2F3E4EEEFE7F3F3E3F1F1E3F1F1E3F6F4DEF1EFC9DDDBA9BFBC 92A6A4CCDFDDD4E4E3DBE9E9DDEBEBDEEAEADCE8E8DEE8E9E0EAEBE6EEF0DFE7E9E1E6E9E7ECEF E4E8EBDCE0E3E4E5E9F3F4F6EFF1F0EFF1EEECF0EFECF0EFEAF0EEE9EFEDE6EEF0E6EEF0E3EDEF E3EDEFE1ECF0E1ECF0DEEBF1DDEAF0DBEAEFDBEAEFD6E4E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7 D8E3E7D8E3E7DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9D9E4EAD9E4EADAE5EB DAE5EBDAE5EBDAE5EBDBE6ECDBE6ECDCE7EDDCE7EDDDE8EEDEE9EFDFEAF0DFEAF0E0EBF1E0EBEF DFE9E8DFEAE6E0EBE7E1ECE8E2EDE9E2EDE9E3EEEAE3EEEAE1ECE8E1ECE8E1ECE8E1ECE8E1ECE8 E1ECE8E1ECE8E1ECE8E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DAE3E0DAE3E0DAE3E0DAE3E0 DAE3E0DAE3E0DAE3E0DAE3E0E0E9E6E0E9E6DFE8E5DEE7E4DEE7E4DDE6E3DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DDE1E0DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DDE1E0DCE2E0DCE2E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2E0E6E4E0E6E4 E0E6E4E0E6E4E0E6E4E0E6E4E0E6E4E0E6E4E2E8E6E2E8E6E3E9E7E4EAE8E5EBE9E5EBE9E6ECEA E6ECEAE9EFEDE3E9E7E7EDEBECF2F0EAF0EEEDF3F1EFF5F3E7EDEBF0F6F4ECF2F0E6ECEADFE5E3 DBE1DFD8DEDCD8DEDCD6DFDEDDE8ECD7E4EADBE8EECBD8DECBD8DEDAE7EDD6E3E9D9E6ECD8E5EB D0DDE3D1DEE4C8D5DBC7D4DAC2CFD5B8C5CBCBDAE1CFE1EBBBD4DBCBE6EDC4E1E5A6C5C8BCDBDD B2CCCB5C706E3645424D574F777D737A7E6F4F57426F79618E9D804A573B3E422934361E868870 DFE1C9D9DBC5CBCDB7DADCC7D7D9C4D4D5C3D4D5C3D7D8C8D8D9C9CFD0C2BCBDAFAAAA9EA1A195 7D80756E716843423D312E29544F4C807C7BA2A2A4C0C5C8C8D3D5BED0D2C2DADCBED6DAD1E5EC C8DAE4CEDCE9C8D6E3C5D7E1C8DCE5C2D6DFCBE2EAC9E0E8BCD3DBC3DAE2C0D9E0C2DBE2C2DBE2 C3DCE3C1DCE3C0DBE2BFDAE1BDD8DFBFD7DB4B57550D1814232F2F4554572A3E45506872A6C0CD BFDBE9BED9EAB5CFE0B5CBD9C0D2E0C9D5E1C8D1DACCD0D9D2D5DAD9DADED4D6D5CFCFCFC7C7C7 BDBDBDADACAA9998968D89866E6A67706B67746F6B7D7874857E78827B75766F6970615A81645E 7B59506F4C4668473E64463E604439573F35503A2D321F112F1F1025190B1A1102150E00161000 171101150F000E0500120900150D02150E06130E0A11100C1414121719161D1D1B20211C26231A 3A3728787360A19982A1977C9189729A9B8B9C9F94BEC1B6ADB0A5A7AA9F95988D81837866685D 3D3F3455574C595B506D6F62888A7FC8CABDD6D8CDD2D3C5D5D2C1DAD3C1DCD3C2DDD1C1D6C6B7 E0D3C3D7CBBB8D8875606151646B5B4D55462D372C20251E0C0E0903030313121015140F0A0B05 060B070C1512323B3A48514E3338312E2E222823101F1400695E429C91759C91759D967A757158 94937F8D918391978D90938C989A9580817C7E7F77828073979681ABAA8BAEAF87B6B386BAB888 BEBA8ABDB98ABEB78BBDB68ABCB888BCB888BCB88BBCB78DBCB791BCB791BCB78FBCB78DBEBA8B C1BD8DC3BF8FC0BC8FB5B08AA49E7E938C70888069827A63847E688683708C8B7792947F999B85 A2A089A8A288B2A98CB8AD8FC7B99CB5AB90C6C1AB9B998A373A2FA8AEA4C4CAC0B9BCB1C7C7BD C9C7BBC8BFB6A4978E5C4B434A382E563F37553D3356393154382D54382D563A2E583C30564033 52453D4C4741878880BBC1B7B3BBB0CAD4C9C4CAC0CCCFC6CFCFC7D1CEC7D4CDC7D2CDC7D1CEC7 CECFC7CAD2C7CAD2C5CBCEC3CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1 CBCDC0CACCBFC9CBBEC9CBBEC8CABDCCC8BDC3B5ACB8A59E725F58503D3654413A594840615048 4A3931D4DFE5D4DFE5D3DEE4D3DEE4D2DDE3D1DCE2D0DBE1D0DBE1D2DDE3D2DDE3D2DDE3D2DDE3 D2DDE3D2DDE3D2DDE3D0DDE3D0DDE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8 D8E3E9D8E3E9D4DFE5D5E0E6D6E1E7D8E3E9D9E4EADBE6ECDCE7EDDEE7ECE1E6E9E4E8E9E7EBEC E9EDEEEAEEEFE9EDEEE8ECEDE7EBECEBEFF0E4E8E9E5E9EAEAEEEFE8ECEDE0E4E5E3E7E8EBF4F3 E1F0EDDCEFEBC6D6D5AFBFBCB8C6C6C8D7D4D4E0E0D8E7E4D8E6E6D4E4E1D0E3E1D0E5E0CDE1DF BBD2CCA0B9B58DA3A0CCDFDDD3E3E2D9E7E7DBE9E9DCE8E8DBE7E7DFE9EAE2ECEDE2EAECDBE3E5 E0E5E8ECF1F4F1F5F8EBEFF2EAEBEFEFF0F2EFF1F0EFF1EEECF0EFEBEFEEE9EFEDE9EFEDE6EEF0 E6EEF0E3EDEFE3EDEFE1ECF0E0EBEFDDEAF0DDEAF0DBEAEFDCE9EFD9E4E8D9E4E8D9E4E8D9E4E8 D9E4E8D9E4E8D9E4E8D9E4E8DBE6EADBE6EADBE6EADBE6EADBE6EADBE6EADBE6EADBE6EADAE5EB DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDBE6ECDCE7EDDCE7EDDDE8EEDEE9EFDFEAF0 DFEAF0E0EBEFDEE8E7DFEAE6DFEAE6E0EBE7E1ECE8E2EDE9E2EDE9E3EEEAE1ECE8E1ECE8E1ECE8 E1ECE8E1ECE8E1ECE8E1ECE8E1ECE8E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DBE4E1DBE4E1 DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1E0E9E6E0E9E6DFE8E5DEE7E4DEE7E4DDE6E3DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DDE1E0 DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DCE2E0DCE2E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0 DAE3E0DAE3E0DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DBE4E1DDE1E0DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 E0E6E4E0E6E4E0E6E4E0E6E4E0E6E4E0E6E4E0E6E4E0E6E4E1E7E5E2E8E6E2E8E6E3E9E7E4EAE8 E5EBE9E5EBE9E6ECEAEBF1EFE4EAE8E7EDEBE9EFEDE3E9E7E4EAE8E5EBE9DDE3E1D8DEDCD8DEDC D9DFDDDAE0DEDBE1DFDDE3E1DFE5E3DEE7E6DBE6EAD5E4E9D9E6ECC8D7DCC8D5DBD6E5EAD3E0E6 D5E4E9D7E4EAD0DFE4D5E2E8CFDEE3D2DFE5CCDBE0C1CED4D1E3E7CBE2E8B9D5D9A3C1C3749697 62868699BBBABAD7D397ADAAAFC0BA9CA79F6C72684C53434D56436A765E7E8D70626F5140462A 393D22898D72DDE1C6DBDFC6D2D6BDDEE2CBD3D7C0DFE2CDDBDEC9D8DBC8D6D9C6D3D6C5D0D3C2 D0D2C4D3D4C4D3D1C2D4D1C2AAA2956B61574B3E36443933544C496E6D69929894C8D4D0C7D7D6 B3C5C5D6E5E897A4AA788188AAB7BFBFD1DBC7DDE8C2D8E3CAE0EBCDE3EEC4DCE6C2DAE4B0C8D2 BCD4DEBBD6DFBED9E2C1DCE5C3DEE7C3E0E8C4E1E9C8E0E4ABB7B57D837F8A959196A2A26F7E81 85989EC1D5DEC2D6DFC7DBE6C5D7E1CAD8E1D3DEE4DADFE3D8D9DDD3D1D2D2CECDBFB7B4B5AEA8 A69D96958C85867D767C736C756C657269628379707F756C7C72697B7168796F6671675E62584F 5A4C4355413A4D362E402921361F172E1A1128140B1E0C021806002312082012071A0D04130900 100800110B00130C02110D0216120618140819150A1A160D1815101716121817151818161A1915 1D1A152723183F392B8B8471C0B8A1AEA489A19B85A1A39670776F616860383F372E352D283025 30352E2D33294D504760635A5D60576E71668A8C81CACCC1D8DACFD3D3C7D7D4C3DBD4C2DED2C2 E0D3C3D8C8B9E3D3C4D9CDBD928D7A5E5F4D646B594F5748323A2D252A230E100B0100000D0C0A 090804040500000400050E0B363F3E545D5A454A4349493D4C47342C210B665B3FA29779A1967A A29B7F7E7A5F93927D84877C8B90898F918E9C9E9B87878587868288857C9C9988B6B599B9B693 BBB88FBDB98CBEBA8DBFB88EBFB790BEB78DBFBB8BBFBB8BBFBB8EBFBA92BFBA94BFB995BFBA94 BFBA90C2BE8FC3BF8FC3BF8FC0BC8DB9B48CAFA987A49D809F957AB6AB8FB6AB8FB5AE94B5AF97 B6B299B7B398BAB598BDB495C2B593C3B493CEBF9EC0B295CDC5AEA29F8C3C3C30AAADA2C7CDC1 C0C4B6CACCBFCBC9BCCBC3B8AEA29669584E4D392E5B40375A3E33593B3157392E57392E593C2E 5B3E3059413552453D4B464083847CBAC0B6B4BCB1C9D3C8C5CBC1CCCFC6CFCFC7D1CEC7D4CDC7 D2CDC7D1CEC7CECFC7CAD2C7CAD2C5CBCEC3CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1 CCCEC1CCCEC1CBCDC0CBCDC0CACCBFC9CBBEC8CABDCBC9BDCDC0B7C0ADA67A6760503F374C3B33 4E3D355140383B2A22D5E0E6D5E0E6D4DFE5D3DEE4D2DDE3D2DDE3D1DCE2D1DCE2D2DDE3D2DDE3 D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D0DDE3D0DDE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3D0DFE4D0DFE4D0DFE4D0DFE4D0DFE4D0DFE4D0DFE4D0DFE4D4DFE5D4DFE5D5E0E6D6E1E7 D6E1E7D7E2E8D8E3E9D8E3E9D5E0E6D6E1E7D7E2E8D9E4EADAE5EBDCE7EDDDE8EEDFE8EDE4E8E9 E7E9E8E9EBEAEAECEBEBEDECEBEDECEAECEBE9EBEAF1F3F2ECEEEDEBEDECEDEFEEEAECEBE4E6E5 E8EAE9EEF4F2EBFCF6D9EEE7B1C4C08D9E988796938E9D9894A3A09CABA6A8B7B4A7B8B2AABDB9 B3C8C1BCD1CCBAD1C9ADC6C0A3BCB6A9BCBAB8C8C7CBD9D9DAE8E8E4F0F0E7F3F3E9F3F4EAF4F5 EAF2F4E0E8EADDE2E5E5EAEDECF0F3EBEFF2EBECF0EDEEF0EEF0EFEEF0EDEBEFEEEBEFEEE9EFED E8EEECE5EDEFE5EDEFE2ECEEE2ECEEE0EBEFE0EBEFDDEAF0DCE9EFDAE9EEDBE8EEDBE6EADCE6E8 DCE6E8DCE6E8DCE6E8DCE6E8DCE6E8DCE6E8DEE8EADEE8EADEE8EADEE8EADEE8EADEE8EADEE8EA DEE7ECDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDBE6ECDBE6ECDCE7ED DDE8EEDEE9EFDEE9EFDEE9EDDCE8E6DDE9E5DDE9E5DEEAE6DFEBE7E0ECE8E0ECE8E0ECE8DFEBE7 DFEBE7DFEBE7DFEBE7DFEBE7DFEBE7DFEBE7E0EBE7E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 E0E9E6E0E9E6DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3 DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4E0E9E6E0E9E6DFE8E5DEE7E4DEE7E4 DDE6E3DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DFE3E2DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DCE2E0DCE2E0DAE3E0DAE3E0DAE3E0 DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DEE2E1 DEE2E1DEE2E1DEE2E1DEE2E1DEE2E1DEE2E1DEE2E1DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DFE3E2DFE3E2DFE5E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DDE6E3DEE7E4DFE8E5DFE8E5 E0E9E6E1EAE7E2EBE8E2EBE8E2EBE8E9F2EFE2EBE8E4EDEAE3ECE9D9E2DFD7E0DDD9E2DFD2DBD8 E0E9E6E1EAE7E1EAE7E1EAE7DFE8E5DCE5E2D8E1DED5DFDEDAE8EBD3E5E9D7E6EBC3D5D9C2D1D6 CDDFE3CAD9DECADCE0D4E3E8CDDFE3D5E4E9CFE1E5D2E1E6C9DBDFBCCBD0C9DCE096AEB09CBABA 7D9D9C4C6E6D4D716F7195917796915F7872B5C6C0AAB5AD565E533137295059484D5943404E35 455437414A2D3E452682896ACCD3B4D3D9BDD8DEC4E4E9D2D5DAC3D8DDC7DBE0CADCE1CDDCE1CD DBDFCEDBDFCEDCE0CFDDE0CDDAD5C1E4DCC9C9BCAB9484757161545F4E4451443C4C453D2F302A 879189D0DDD6D1E0DBBECAC85D67683B40435B646961727A7C90998EA2ABA5BCC4BCD3DBCBE2EA D9F0F8CAE3EACBE4EBC5DEE5BDD6DDB4CFD6B3CED5B7D2D9BDD8DFC7DCDFB9C4C09EA59EADB3AF AFB8B5909A99ABB7B7D8E3E5CCD6D8DEE8EADDE2E5D4D8D9C9C9C9BFBBB8B2ADA9A49B96978D84 998B8091817483756A7C6E637A6C6176685D6E605567594E6153485A4C414F4239483B3241342B 382B222C1F1620170E1311050C0E030A0A000C0A000F0B00140E02140C01130900190C03190B02 190A03190A051A0B061B0C091D0D0D1C110D2320171F1F131D1D131F1C15201D16211E19211C18 201B17312A242C251B322A1F342D1D766E5BA9A18A726B5166644F4B51452C372F4E59515F6A62 747E76717B72717871666D65686D6671776D66696070736A8C8D85CDCEC6DADBD3D3D3C7DBD5C5 DBD4C1DFD4C2E2D5C4DBCABAE4D3C3DDD0BF9A93815655436266554E5446353D302F342D171813 030000100C09050400090A05000501020B083D4645636C695A5F5869695D807B6840351F5F5438 ABA082A89D81AAA3878A866B8F8E79898B8092958E969694A6A6A49290918F8E8A8B887F9B9887 C1BDA4C2BD9DC0BC96C0BB93C1B992C2B894C2B895C1B992C4C091C4C090C4C093C4BF97C4BE9A C4BE9AC4BF99C4BF97C7C396C6C293C4C090C1BD8EBEB98FBBB591B9B393BAB192C3B495C4B493 C2B497C0B79ABEB79ABEB79AC1B899C2B895C7B996C5B591CDBD9BC4B797D1C7AEADA895404034 A6A99ECBD1C3C8CCBDCFD1C3CCCABDCFC7BCBDAFA47E6C62503A2F5C3F375C3E345A3C325B3B30 593B305A3D2F5B3F3158423451443C47423C7A7B73B8BEB4B5BDB2C7D1C6C7CDC3CCCFC6D0D0C8 D2CFC8D5CEC8D3CEC8D2CFC8CFD0C8CBD3C8CBD3C6CCCFC4CDCFC2CDCFC2CDCFC2CDCFC2CDCFC2 CDCFC2CDCFC2CDCFC2CDCFC2CCCEC1CBCDC0CACCBFCACCBFC9CBBECCCABECBBEB6BEADA6806F68 56453E54433C5A4B445D4E474D3E37D6E1E7D5E0E6D5E0E6D4DFE5D3DEE4D2DDE3D2DDE3D2DDE3 D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D0DDE3D0DDE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D4DFE5D4DFE5 D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9D7E2E8D8E3E9D9E4EADAE5EBDCE7EDDEE9EFDFEAF0 E0E9EEE6EAEBE8EAE7E9EBEAEAECE9EAECEBEAECE9E9EBEAE9EBE8EAECEBEAECE9EAECEBECEEEB EBEDECEBEDEAEEF0EFF0F6F4CBDAD5BED1CBA4B5AF8E9D98909C98939F9B96A29E9EAAA696A5A0 95A49F96A7A198ABA59BAEA897ACA58CA39B849B938C9F9D9AAAA9ACBABABAC8C8C7D3D3CEDADA D6E0E1DBE5E6EAF2F4E8F0F2E9EEF1E8EDF0E7EBEEE5E9ECE8E9EDEBECEEEDEFEEEDEFECEBEFEE EAEEEDE8EEECE7EDEBE5EDEFE4ECEEE1EBEDE1EBEDE0EBEFDFEAEEDCE9EFDBE8EEDAE9EEDAE8EB DCE7E9DDE7E9DDE7E9DDE7E9DDE7E9DDE7E9DDE7E9DDE7E9DFE9EBDFE9EBDFE9EBDFE9EBDFE9EB DFE9EBDFE9EBDFE9EBDCE7EBDBE6ECDBE6ECDAE5EBDAE5EBD9E4EAD9E4EAD8E3E9D9E4EAD9E4EA DAE5EBDAE5EBDBE6ECDCE7EDDDE8EEDDE8ECDBE7E5DBE7E3DCE8E4DCE8E4DDE9E5DEEAE6DFEBE7 DFEBE7DEEAE6DEEAE6DEEAE6DEEAE6DEEAE6DEEAE6DEEAE6DEEAE6DFEAE6E0E9E6E0E9E6E0E9E6 E0E9E6E0E9E6E0E9E6E0E9E6DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4E2EBE8E2EBE8E2EBE8E2EBE8E2EBE8E2EBE8 E2EBE8E2EBE8E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6DFE8E5 DEE7E4DEE7E4DDE6E3DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DFE3E2DFE3E2DFE3E2DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DCE2E0DCE2E0DAE3E0 DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0D9E2DFD9E2DFD9E2DFD9E2DFD9E2DFD9E2DFD9E2DF D9E2DFDFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DFE3E2DFE3E2DFE3E2DEE4E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DDE6E3 DDE6E3DEE7E4DEE7E4DFE8E5E0E9E6E1EAE7E1EAE7E7F0EDE1EAE7E3ECE9E0E9E6D4DDDAD3DCD9 D7E0DDD2DBD8D7E0DDD9E2DFDCE5E2DFE8E5E0E9E6E0E9E6DFE8E5DEE8E7D1E0E3CBDDE1CEE0E4 BED0D4BDCFD3CCDEE2C8DADECBDDE1CEE0E4C8DADECBDDE1C6D8DCC6D8DCBED0D4ACBEC2BACDD1 98B1AEA3C0BC72918C3959543E615B51746E617E797D948E9EADA8A3ACA7565B542B2E25383E30 262F1E1E2A163D49313D472C374021677053A1AA8DB4BDA0CED7BCE4ECD4D9E1CAD2DAC3D9E1CC DDE5D0DBE2D0DBE2D0DDE4D2DBE2D2D8DBC8D7D2BEF3E8D2ECDDCAB6A595816F616C5A4E6B5D52 6C635A5353498C9288C8D3CBABB8AF7079762C323022262720252823303623363C1A2B3326393F 3E515864777D9DB0B7B6CBD0C1D5DCC6DBE0CBDFE6CDE5E9CDE4EAC7E0E4C1D8DEC0D4D5AAB5AF 999E97A3A8A1A5AAA3939892AFB1ACD4D5CFCDCCC7B5B2ADB2ADA7A59C959389808C7F768C7E73 87766C7D6B5F8471627562536552435E4C3E5E4C3E58463847372A38281B35271C2E201524170E 1F12091B1108190F06150B020D0A010913080614070713070914060E14081315081715091A1309 1F150C1E110922130E291A152C1C1C2818182B181A2A1E1E25241F1D23191D1E161E1E1625221B 2C251D2E251E2F251C44372E44382C4D41333F34226D6552A49C875F59415F5E4A5E685D536059 909D96AAB7B0B7C2BCADB8B0A4AEA68C968E868D85868B846D706770736A8B8C84CECFC7DBDCD4 D3D3C7DED9C6DCD4BFDFD2C1E6D7C4DECBBAE5D4C2E0D3C0A39B884E4D396164514D54443A4032 3D403722231D08050016110E0D0A0513140F060B07010A073E47466B7471686D667B7B6FACA794 554A34564B2FB6AB8DB2A78BB2AB8F9490778988739597899C9D959B9C96AAA9A5949391918E89 89857A989282C1BBA1C2BC9CC2BD97C4BC95C5BC95C5BB97C5BB98C4BA96C8C193C6C292C6C295 C6C199C6C09CC6C09EC6C09CC6C199CAC699C8C495C6C292C3BF90C2BD93C3BE98C4BE9CC8BD9D C2B290C5B291C2B392C0B595C0B798C1B899C2B998C3B996C4B691C1B18DC7B795C5B79ACDC5AE B5B2A14444389DA095CBD1C3CDD1C2CFD1C3CBC9BAD0C6BAC9BBAE917D7251392D583C31583A2F 5A3A2F583B2D583B2D573C2B573C2B543E304F423A433E386F7068B5BBB1B6BEB3C4CEC3C9CFC5 CDD0C7D1D1C9D3D0C9D6CFC9D4CFC9D3D0C9D0D1C9CCD4C9CCD4C7CDD0C5CED0C3CED0C3CED0C3 CED0C3CED0C3CED0C3CED0C3CED0C3CDCFC2CDCFC2CCCEC1CBCDC0CACCBFCACCBFCDCBBFCEC1B9 C0AFA887766F54453E4D3E3754453E52433C483932D6E1E7D6E1E7D6E1E7D5E0E6D4DFE5D3DEE4 D3DEE4D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D0DDE3D0DDE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9D9E4EAD9E4EADAE5EBDCE7EDDEE9EF DFEAF0E0EBF1E2ECEEE8ECEBEAECE7E9EBE8E8EAE5E8EAE7E8EAE5E9EBE8E9EBE6E1E3E0E4E6E1 E7E9E6E9EBE6EDEFECF0F2EDEEF0EDE8EDE9A1ACA89FABA797A29E95A09C9FA8A59EA7A49BA4A1 A2ABA89FA8A59DA8A49BA7A397A6A194A39E8C9D9781948E7A8D877383827787867F8D8D889696 98A4A4ACB8B8C3CDCED1DBDCC7CFD1D6DEE0E5EAEDE3E8EBDBDFE2D9DDE0E2E3E7EAEBEDEDEFEE ECEEEBEAEEEDE9EDECE7EDEBE6ECEAE4ECEEE4ECEEE1EBEDE0EAECDFEAEEDEE9EDDBE8EEDAE7ED D9E8EDDAE8EBDDE7E9DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8E0E8EAE0E8EAE0E8EA E0E8EAE0E8EAE0E8EAE0E8EADFE9EBDDE8ECDCE7EDDBE6ECDBE6ECD9E4EAD9E4EAD8E3E9D7E2E8 D7E2E8D7E2E8D8E3E9D9E4EADAE5EBDAE5EBDBE6ECDBE6EAD7E6E3D7E6E1D8E7E2D9E8E3DAE9E4 DAE9E4DBEAE5DBEAE5DCEBE6DCEBE6DCEBE6DCEBE6DCEBE6DCEBE6DCEBE6DEEAE6DFEAE6E0E9E6 E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4 DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4DEE7E4E3ECE9E3ECE9E3ECE9E3ECE9 E3ECE9E3ECE9E3ECE9E3ECE9E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E0E9E6 E0E9E6DFE8E5DEE7E4DEE7E4DDE6E3DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DFE3E2DFE3E2DFE3E2 DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DCE2E0 DCE2E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0 DAE3E0DAE3E0DAE3E0DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DEE4E2DCE5E2DBE6E2DBE6E2DBE6E2DBE6E2DBE6E2DBE6E2 DBE6E2DAE5E1DAE5E1DBE6E2DCE7E3DDE8E4DDE8E4DEE9E5DEE9E5E1ECE8DDE8E4E1ECE8DFEAE6 D3DEDAD3DEDADBE6E2DAE5E1D3DEDAD3DEDAD3DEDAD3DEDAD2DDD9D1DCD8CFDAD6CEDAD8C6D5D8 C2D3DAC7D8DFBACBD2BCCDD4CDDEE5CBDCE3CFE0E7C8D9E0C0D1D8C3D4DBBECFD6C1D2D9BCCDD4 ACBDC4BBCDCFB1C5C3AAC1B968817B2B494128474133504B637C78B8CBC9C2CCCBB5B9B8737371 474641383931252B1F293122333C29323A22282E12454B3172785E90967CBABFA8DDE2CBDCE1CB DDE2CEE2E6D5DEE2D1D5D9CAD7DBCCE3E7D8E6EADCE1E4D3EEE9D5DFD7C2BBAE9D8A7A6A705E50 77675A7E7266766F6574766B9FA79C9BA69E4E5B522F3835121816121617161A1D2D3739162425 020D11111F201D2B2E1C2A2B334144405050748386889898A8B7BAC4D6D6D4E6E8D4E8E7CDDFE1 C7D7D6BAC3BEAAAFA8ABAEA5A7A99E939185969084A59D90A397898B7B6C8B7A6A826F60786352 7A6554866F5F897262846D5D634C3C574231442F1E301D0E210F011B09001B0B001A0C011E1108 180E05120902120902140D0716110D1914101516100A170E091B0F0C1C11101C10141C0F171A0F 1B1B0F1E1C10261F15221910281D173528223628272C1E1D291B1B2A21221B201A141E16161B14 1D1D152B241C352B223F2E24412F23523F315C493A685745524330665B47A19B8568634D6F705E 5A665C5E6D68A3B2ADAFBEB7AEBBB4B4BFB9BFC9C1A8B2AA9FA69E969B9471746D6C6F6885867E CACBC3DBDBD3D6D4C8E0D9C7DCD1BBDFD0BDE8D7C3DFCDB9E4D2BEE3D4BFADA28E5957426E705B 565A493F4636484A3F282820060100130E0A0A070210110C060B07000704353E3D6A73706F746D 7F7F73C3BEAB665B454F4428BEB395BBB094B8B1959D998088877294958397988A9393899F9F95 8F8C858F8B8288857697927EB9B497BDB793C3BB94C7BE95C9C097CBBF99CABD9BC9BC99C8C193 C6C292C6C295C6C199C6C09EC6C09EC6C09CC6C19BCAC59BC9C596C7C393C5C192C4C093C4BF97 C4BE9AC8BD9DCBBB99CABA98C8BB99C5BA9AC1BB9BC0BA9ABFB997C1B995CBBE9BC7BA97C8BB9B C4BB9EC8C3AFBEBFB14649408B928AC9CFC1CED2C3CDD0BFCBC9BACFC5B9CEC0B3A08C8154392E 52362B54362B54362B5437295437295338275238274C392A4C42393F3A3462635BB2B8AEB8C0B5 C2CCC1CCD2C8CDD0C7D1D1C9D3D0C9D6CFC9D4CFC9D3D0C9D0D1C9CCD4C9CCD4C7CDD0C5CED0C3 CED0C3CED0C3CED0C3CED0C3CED0C3CED0C3CED0C3CED0C3CED0C3CDCFC2CCCEC1CBCDC0CBCDC0 CDCBBFCDC2BCBDAEA98C7D785647424B3C375447414F423C4B3E38D7E2E8D7E2E8D6E1E7D6E1E7 D5E0E6D4DFE5D3DEE4D3DEE4D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D0DDE3D0DDE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D2E1E6D2E1E6D2E1E6D2E1E6D2E1E6D2E1E6 D2E1E6D2E1E6D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9DAE5EBDBE6ECDCE7ED DEE9EFDFEAF0E1ECF2E2EDF3E4EEF0EAEEEDEBEDE8E9EBE6E8EAE5E7E9E4E7E9E4E8EAE5E9EBE6 E9EBE6ECEEE9ECEEE9EAECE7EBEDE8E8EAE5D7D9D4C2C7C19AA09C97A09D949A98989E9CA0A4A3 959998898D8C8E9291939796949897969C9A97A09D97A29E97A39F94A39E94A39E95A5A296A6A5 97A5A594A2A2919D9D8E9A9A919B9C939D9E9BA3A5AAB2B4B4B9BCACB1B4AAAEB1BCC0C3DBDCE0 EFF0F2ECEEEDECEEEBE9EDECE8ECEBE6ECEAE6ECEAE3EBEDE3EBEDE0EAECE0EAECDEE9EDDDE8EC DAE7EDDAE7EDD8E7ECD9E7EADCE6E8DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DFE7E9 DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DEE8EADFE8EDDDE8EEDCE7EDDBE6ECD9E4EAD8E3E9 D7E2E8D6E1E7D6E1E7D6E1E7D6E1E7D7E2E8D8E3E9D9E4EAD9E4EADAE5E9D6E5E2D6E5E0D6E5E0 D7E6E1D8E7E2D9E8E3D9E8E3DAE9E4DBEAE5DBEAE5DBEAE5DBEAE5DBEAE5DBEAE5DBEAE5DDE9E5 DFEAE6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5 DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5E2EBE8E2EBE8 E2EBE8E2EBE8E2EBE8E2EBE8E2EBE8E2EBE8E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 E0E9E6E0E9E6E0E9E6DFE8E5DEE7E4DEE7E4DDE6E3DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DFE3E2 DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0 DDE1E0DCE2E0DCE2E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3E0E4E3 DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DEE4E2DBE4E1DAE5E1DAE5E1DAE5E1DAE5E1 DAE5E1DAE5E1DAE5E1D9E4E0D9E4E0D9E4E0DAE5E1DBE6E2DCE7E3DCE7E3DDE8E4DDE8E4DCE7E3 E1ECE8DEE9E5D2DDD9D3DEDADEE9E5E1ECE8E4EFEBE2EDE9DEE9E5D8E3DFD1DCD8CAD5D1C5D0CC C1CDCBCFDEE3C9DAE1CCDDE4BACBD2B8C9D0C6D7DEC1D2D9C3D4DBC3D4DBBCCDD4BFD0D7BECFD6 C4D5DCC2D3DAB3C4CBC2D4D6BDCEC893A49C4E635A2F463E304A41223B352F4341637171CAD0D0 9A9A9C615D5E48444335312E292A242F3229191F112C311B1F250B363A2360654E858972AFB49E D3D6C1D7DCC8DBDECDE1E5D4DFE1D3D4D8C9D7D9CCDFE3D5D8DACDC6C7B98B88755B54412E2514 2D20105040337B6D627E746A5F5B506D7067848E8589948C45524B16211D07100F2D3132404445 2B3131242A28343A38717A778D939167706D464F4C2C37331B2421202B272E39354854506D7975 99A5A1C0CCC8D7E4DDA7B1A9A8ADA6AFB1A6ACAA9D9C95858F84728C7B678A765E91796192765E 91735B8E705890725A92766090745F8A6F5C715A48735E4D6B56454D3A2B2917091707001B0D02 281B12190F06150E08110C08110D0A12110F1515151717171418170D1812121D151822191D251A 2023182123162525192A281B2B271C231F14272318343027312C261E1B1615110E1719160B1610 0D1812141B1421211931281F3D2F244933264E34255A402F684E3D6D56445846325043308B856F 66614D63665558635B677872BECDC8CBDAD5BCC9C2B9C6BFBEC9C19EA8A0ADB4AC9DA49C71746D 6467607B7C74C2C3BBD8D8D0D8D4C8E0D9C6D9CEB8DCCDB8E9D7C3E0CBB8E1CFBBE4D3BFB3A892 6F6A5482846E626753464A394F4F432C29200600000F0A06050200060701060B070008052A3332 67706D757A737A7A6EC7C2AF786D574C4125C2B79BC2B69CBDB69CA6A28994927D92917C90927D 8A8B7B9B998C908C80999385989380A8A28AB9B393BFB792C5BC91CAC196CEC298CEC29ACDBF9C CBBF99CAC395C8C494C8C497C8C39BC8C2A0C8C2A2C8C2A0C8C39DC8C399C8C495C7C394C6C293 C5C194C3BE96C3BD99C4BC98CFC19ECFC19ECCC1A1C9C3A3C7C2A4C6C3A4C7C2A2C7C19FCCC3A2 CBC0A0C2B99AB8B298B7B6A4C4C7BC4650487B857DC7CFC2CDD1C2CACDBCCECBBCCFC6B7D1C1B4 AD978A583D324E32265033255235275237265237265036254C36214835244A40373A352F575850 AFB5ABB9C1B6BFC9BECED4CACED1C8D2D2CAD4D1CAD7D0CAD5D0CAD4D1CAD1D2CACDD5CACDD5C8 CED1C6CFD1C4CFD1C4CFD1C4CFD1C4CFD1C4CFD1C4CFD1C4CFD1C4CFD1C4CED0C3CED0C3CDCFC2 CCCEC1CBCDC0CECCC0CBC0BABAABA690817C564742473A345346404B3E384E413BD8E3E9D8E3E9 D7E2E8D6E1E7D5E0E6D5E0E6D4DFE5D4DFE5D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3 D0DDE3D0DDE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D3E2E7D3E2E7D3E2E7D3E2E7 D3E2E7D3E2E7D3E2E7D3E2E7D4DFE5D4DFE5D5E0E6D6E1E7D6E1E7D7E2E8D8E3E9D8E3E9DBE6EC DCE7EDDDE8EEDFEAF0E0EBF1E2EDF3E3EEF4E5EFF1EBF1EFEAEFE9E7ECE6E5EAE4E4E9E3E5EAE4 E6EBE5E7ECE6EAEFE9EDF2ECECF1EBE8EDE7E8EDE7DFE4DEC1C6C0A0A59F9B9D9A9D9F9CA0A29F AEB0ADBBBBB9AFAEACA3A2A0A8A7A59998969797959395928E938F8A908C88918C8A958F8B9793 79888582929192A0A09CAAAAA3AFAFA5B1B1A7B1B2A8B2B38A929490989A8F9497888D9095999C B8BCBFDFE0E4F1F2F4EBEDECEBEDEAE8ECEBE8ECEBE6ECEAE5EBE9E2EAECE2EAECDFE9EBDFE9EB DDE8ECDDE8ECDAE7EDD9E6ECD7E6EBD8E6E9DAE4E5DBE4E3DBE4E3DBE4E3DBE4E3DBE4E3DBE4E3 DBE4E3DDE6E5DDE6E5DDE6E5DDE6E5DDE6E5DDE6E5DDE6E5DCE6E7E0E9EEDEE9EFDDE8EEDBE6EC D9E4EAD7E2E8D6E1E7D5E0E6D4DFE5D5E0E6D5E0E6D6E1E7D7E2E8D8E3E9D8E3E9D9E4E8D4E3E0 D4E5DFD4E5DFD5E6E0D6E7E1D7E8E2D7E8E2D8E9E3D9EAE4D9EAE4D9EAE4D9EAE4D9EAE4D9EAE4 D9EAE4DAE9E4DFEAE6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6 E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7E1EAE7DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5 DFE8E5DFE8E5DFE8E5E0E9E6E0E9E6DFE8E5DEE7E4DEE7E4DDE6E3DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DDE1E0DDE1E0DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DCE2E0DCE2E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DFE8E5 DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4E1E5E4 E1E5E4E1E5E4DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DEE4E2DAE3E0D9E4E0D9E4E0 D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0D7E2DED8E3DFD8E3DFD9E4E0DAE5E1DBE6E2DBE6E2DCE7E3 DDE8E4DBE6E2E1ECE8DDE8E4CED9D5D0DBD7DCE7E3E0EBE7DBE6E2DCE7E3DFEAE6E0EBE7DFEAE6 DCE7E3D8E3DFD4E0DED2E4E8CDE0E6CDE0E6BACDD3B6C9CFC2D5DBBBCED4BDD0D6C2D5DBBACDD3 BED1D7BBCED4C0D3D9B9CCD2A6B9BFB4C3C6B7C4BD75817739493F2F433A374A442F423C2B3A37 363F3E8B8C905D585C3E353A433A3D3027281C18172D2C282B2C243538272F331C4D4F3A7D806B A3A590C0C3B0D5D6C4D7DAC9D8D9C9E1E3D5E1E1D5D8DACDDDDDD3E2E4D9CFCFC5B1B1A5282617 1C1908211A0A271D11281B12392F265047404E4B44353A33515C5499A69FB5C4BF9CA8A6475152 24292C1B1F20343530393A3450514B8E918AAFB0AA9EA19A93968F868B847E817A656A63434841 262D251D241C2930283E453D4E554D858C85A1A69FB1B3A8ACA99AA99E8CA6967FA0886E997B5F 927152916E50946F529D785BA17E629F7D62997960947862A58E7C9F8C7D8F7C6D6D5B4D443427 281A0F1E140B211811241D17211D1A201F1D2020201E22251D22261C21251B1F22282725302C29 35302C362F292F28202B241A2B25192B2819363427292A1C2A2E1F343A2C2A35270D1B0E000E03 011208000E080716111B211D2C2C243B31274533274C32234F32205C3D29694A36654A35614C37 50412C938B78807D6A696D5E59665D576A66AEBFB9C8D9D3C1D0C9C7D4CDD6E1D9BDC7BFB3BAB2 A0A79F6E71685C5F56707169BBBBB3D7D4CBD8D4C8E0D8C5D7CBB3D9C9B2E7D5BFDFCAB5E1CCB7 E4D2BCB7AB957A745E8E8D78666956484B3A5555493330270902001A130D1310090C0D07151A16 0E171227302D666F6A7A7F786F6F63C2BDAA887D674D4127C4B99DC7BBA1C2BBA1B0AB95A7A58E A7A78DA5A58B9E9D88AFAC99A7A493B2AD9AB4AE98C5BEA1C3BD99C6BF95CAC294CEC395D0C397 D0C399D0C09CCFC19ACFC999CDC999CDC89ECDC8A2CDC7A5CDC7A7CDC7A5CDC7A3C6C197C6C293 C5C192C5C192C5C194C5C098C5BF9BC7BE9DD0C3A1CFC2A0CBC2A3C7C2A4C2C1A5C0C0A4BFBEA0 C1BE9FAEA98BB1AA8DA39E8194927B96988ABEC5BD475351717D79C8D0C3CDD1C0CACDBCD4D1C2 D1C8B9D2C2B5B7A1945F44394E32265134265236285439285339284F39244D3722473624493F36 37322C4E4F47ADB3A9BAC2B7BDC7BCD0D6CCCED1C8D3D3CBD5D2CBD8D1CBD6D1CBD5D2CBD2D3CB CED6CBCED6C9CFD2C7D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5CFD1C4 CED0C3CDCFC2CDCFC2CCCEC1CFCDC1CEC5BEBDB0AA998C865D504A4E413B5E514B5348425B504A D8E3E9D8E3E9D7E2E8D7E2E8D6E1E7D5E0E6D4DFE5D4DFE5D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3 D2DDE3D2DDE3D2DDE3D0DEE1D0DEE1D0DEE1D0DEE1D0DEE1D0DEE1D0DEE1D0DEE1D4E2E5D4E2E5 D4E2E5D4E2E5D4E2E5D4E2E5D4E2E5D4E2E5D5DEE3D5DEE3D7DEE4D7E0E5D8DFE5D8E1E6DAE1E7 D9E2E7DEE5EBDEE7ECE0E7EDE0E9EEE3EAF0E4EDF2E6EDF3E6EEF0ECF2F0EBF0EAE7ECE8E4E9E3 E3E8E4E4E9E3E6EBE7E7ECE6DBE0DCE0E5DFE2E7E3E4E9E3EBF0ECE5EAE4C3C8C49CA19D9B9D9A 9F9F9DA7A9A6BABCB9C7C7C5B6B6B6A5A5A5A7A9A8ACACACA8AAA9A3A5A49A9F9B969B97989E9A 9EA4A0A2ABA89AA4A597A2A4959FA18F999A8A94958C9496939B9D99A1A38E9396969B9E999EA1 9EA3A6B5BABDD7DBDEE8ECEFE7EBEEE9EDECE9EDECE8ECEBE6ECEAE5EBEBE5EBEBE2EAECE2EAEC DFE9EBDFE9EBDEE8EADCE7EBDBE6EADBE6EAD8E6E9DAE5E9D9E3E5D9E3E4DAE2E4D9E3E4DAE2E4 D9E3E4DAE2E4D9E3E4DCE4E6DBE5E6DCE4E6DBE5E6DCE4E6DBE5E6DCE4E6DBE5E7DFEAEEDCE9EF DDE8EED9E6ECD9E4EAD5E2E8D6E1E7D3E0E6D4DFE5D2DFE5D5E0E6D3E0E6D6E1E7D5E2E8D8E3E9 D6E4E7D4E2E2D4E3E0D5E4E1D5E4E1D6E5E2D7E6E3D8E7E4D8E7E4DAE9E6DAE9E6DAE9E6DAE9E6 DAE9E6DAE9E6DAE9E6DCE8E6DFE9E8E0E9E8E0E9E8E0E9E8E0E9E8E0E9E8E0E9E8E0E9E8E0E9E8 E0E9E8E0E9E8E0E9E8E0E9E8E0E9E8E0E9E8E0E9E8E0E9E8E0E9E6E0E9E8E0E9E6E0E9E8E0E9E6 E0E9E8E0E9E6E0E9E8E0E9E6E0E9E8E0E9E6E0E9E8E0E9E6E0E9E8E0E9E6E0E6E6E0E6E4E0E6E6 E0E6E4E0E6E6E0E6E4E0E6E6E0E6E4E2E8E8E2E8E6E1E7E7E0E6E4E0E6E6DFE5E3DEE4E4DEE4E2 DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2 DEE4E2DEE4E2DEE4E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0 DCE2E0E2E8E6E2E8E6E2E8E6E2E8E6E2E8E6E2E8E6E2E8E6E2E8E6E1E5E4E1E5E4E1E5E6E1E5E4 E1E5E6E1E5E4E1E5E6E1E5E4DFE3E4DFE3E2DFE3E4DFE3E2DFE3E4DFE3E2DFE3E4DEE4E2DAE3E0 D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0DAE3E0D8E1DED8E1DED9E2DFD9E2DFDAE3E0DBE4E1 DCE5E2DCE5E2DDE7E6DCE6E5E1EBEADBE5E4CBD5D4CBD6D2D8E3DFDDE8E4DDE8E4DFEAE6E2EDE9 E2ECEBDEE8E7D6E0DFCDD7D6C4D2D3C3D6DCBED5DBC4D8DFB5CCD2B8CCD3C7DEE4C7DBE2C9E1E5 C3D8DDB8D0D4BCD1D6B4CCCEB6CBCEA6BEC08DA2A596AAA9616E653A463A2D3B2E39463C3A453D 434D455A5F5B656764292524302A2A564D4E877E7F6A626029242126221F35322B474536494834 6E6D59A7A692CBCAB8DAD9C7E0DECFDEDCCDE5E6D8E9EADCE1E1D5D5D5C9E0E0D6F1F1E7E7E7DF CCCCC05654454E4B3A5751434F473A2C231A231A1336312B3E3D38464B454049442E3B3469766F CEDAD675807C222B285359554D524C62645F74777091948D96978F8A8C81999B90A2A296969789 9593868E8C7F807E6F6C695A524F4039372828291B797B6EA4A699B2B0A19E99869B8F79A18F77 9880648A6C509576578E6D4E8D6A4C93715592735789695282634E8067538E7C6E73655A514338 382A1F2E20152B1D14291C13251B12251C15241F1B25211E2525252425291F24281A21271B1F22 161211241A18302521392C263B2E253D312544382A463F2F4640303536263438293D45362F3C2B 0F1D0E000D000010030009000B170D22292136362C423A2D47372749331E4B2F176D4B30735135 6445286B5035503E2693877185806D56584B6E7A76576A68A5B5B2C7D6D3C1D0CBC1CEC7CDDAD3 B6C1B9B1BDB39EA89D697166575A4F6A6C61B7B5A9D5D1C6DBD3C6E2D7C3D7C8B3D7C6B2E6D4BE DDC8B5DDCBB5E4D2BCBBAC97776F588E89736964504A47345F594940382B170D012D23192E271D 211F132E2F2723291F2D342C6971667E8274686657BFB8A5938872514329C6B89DC9BFA4C5BEA4 B8B49BB6B49BC8C7A8C5C4A5BEBA9DCDC9AEC4BEA6CEC7ADCEC5A8DCD3B2D0C6A2D0C79ED1C59B D0C49AD1C39CD0C29DD0C29FCFC39DD2CB9DD0CC9DD0CBA1D0CBA5D0CAA8D0CAAAD0CAA8D0CAA6 C4BF97C4C093C3BF92C3BF92C5C09AC7C19FC9C2A5CBC4A8BBB498B8B195B1AD92A8A68F9D9F89 9599828F937C8C907783866B888B707A7C646D715A797D6EB7BFB24B554D717B73CAD2C3CCD3C1 CBCCBCD8D5C6D6CABCD4C2B4BCA699634C3E4F3526513728533928553B2A533C2A513A284F3826 4A3728493F3634312A4A4B43ADB0A7BCC2B8BEC6BBD1D7CDCED1C8D3D3CBD5D2CBD6D1CBD5D2CB D3D3CBD2D3CBCFD5CBCFD5CBCFD2C7D0D2C5D0D2C7D0D2C5D0D2C7D0D2C5D0D2C7D0D2C5D0D2C7 D0D2C5CFD1C6CFD1C4CED0C5CDCFC2CCCEC3CDCDC3C2BBB3B7AEA7A79C967B726B827771A59C95 AAA19ABDB4ADD7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D3DCE3D3DCE3D3DCE3 D3DCE3D2DBE2D2DBE2D2DBE2D2DBE0D8E4E4D8E4E2D8E4E2D8E4E2D8E4E2D8E4E2D8E4E2D8E4E2 D5E1DFD5E1DFD4E0DED4E0DED5E1DFD6E2E0D8E4E2DBE5E4D6DCDCD8DCDDDCDDDFDBDFE0DFE0E2 DFE3E4E3E4E6E1E5E6E6E7E9E4E8E9E7E8EAE6EAEBE9EAECE9EDEEEBECEEEAEEEFE7EBEAE7ECE8 E6EAE9E5EAE6E5E9E8E4E9E5E3E7E6E3E8E4E7EBEAE7ECE8E7EBEAE7ECE8E7EBEAE7ECE8E7EBEA E7ECE8A2A4A1A0A29DBEC3BFBCC2BEADB6B3B3BCBBADB7B6BAC6C4AFB9B8A5AFAE9DA7A69FA8A5 A2A8A49EA4A09A9F99989C9B9DA0A5A8ABB4ABAEB5A1A4A99A9EA19D9EA29A9B9D929395989C9D 8C90918F9394ACB2B2CED3D6DDE5E7E0E8EBE0E8EAE4E9ECE4EAEAE4EAEAE2EBEAE2EAECE2EAEC E2EAECE2EAECE0E8EAE0E8EADFE7E9DEE8EADDE7E9DCE6E8DCE6E8DBE5E7D9E2E7D8E3E7D9E2E7 D8E3E7D9E2E7D8E3E7D9E2E7D8E3E7D7E0E5D6E1E5D7E0E5D6E1E5D7E0E5D6E1E5D7E0E5D6E1E5 D6E3E9D5E4E9D6E3E9D5E4E9D6E3E9D5E4E9D6E3E9D5E4E9D4E1E7D3E2E7D4E1E7D3E2E7D4E1E7 D3E2E7D4E1E7D4E1E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7DAE5E9DAE5E9 DBE6EADCE7EBDDE8ECDDE8ECDEE9EDDFE9EBDEE6E9DEE6E8DFE7E9E0E8EAE1E9EBE1E9EBE2EAEC E2EAECE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E9E8E0E8EAE0E9E8 E0E8EAE0E9E8E0E8EAE0E9E8E0E8EAE0E9E8E0E8EAE0E9E8E0E8EAE0E9E8E0E8EAE2E8E8E3E7EA E3E7E8E2E6E9E2E6E7E1E5E8E0E4E5DFE3E6DFE3E4DDE1E4DDE1E2DDE1E4DDE1E2DDE1E4DDE1E2 DDE1E4DDE1E2DDE1E0DDE2DEDDE2DEDDE2DEDDE2DEDDE2DEDDE2DEDDE2DEDFE4E0DFE4E0DFE4E0 DFE4E0DFE4E0DFE4E0DFE4E0DFE4E0DFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DE DFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE3E2DFE3E2DFE3E2DFE3E2DFE3E2 DFE3E2DFE3E2DFE3E2E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E6E8E5E6E8 E5E6EAE5E6E8E5E6EAE5E6E8E5E6EAE5E6E8E3E4E8E3E4E6E3E4E8E3E4E6E3E4E8E3E4E6E3E4E8 E1E5E6DCE5E2DBE6E2DBE6E2DBE6E2DCE5E2DCE5E2DCE5E2DEE4E2DFE5E3E0E4E3E0E4E3E1E3E2 E1E3E2E1E3E2E1E3E2DEE2E3DCE4E7D5DEE3DAE4E6D1DBDDADB7B8C8D2D1F5FFFED0DAD9E9F3F2 DBE5E4D9E3E2D8E2E3C8D2D4BFC9CBC7D0D5CBD8DEC8DFE7CCE8F3A0BBC485A2AAA0BBC296B3B9 85A0A79EBBBF91ADB0819FA195B1B29AB8B674918F5B79775A77734F6A632E44372536242E3B2A 2F35273A3A2E332F244B443A4B42392C251B28211749453A706E626F6C633E3B321C1910353126 524C3C47402D817C68CEC9B5D9D4C1D2CDBADBD8C7E1DECDDEDCCDE5E3D4ECEDDFF0F1E3E7E9DC D0D2C5B3B5AA9FA0927A75628E87748D8676978F8257504638332D8B8683969593C1C1BFC4C9C5 9FA69F5A645B3D473C758173434E3D626E60515D5B404E4F5E6A6A8A95919198918E9188929286 929081898471918976978C789586718D7C688A796593816D998A75918C76A19F88ABA690948E76 6F654C5E50366D5D4387735A927C648670588C765F8D77627B66537964537A67586A5A4D595049 3F3A36241D171B100A22150C2113082A190F40302327160C36281F40332B2219141915122A2A2A 1F20221213152D2C283B3630473E3545392B3D2D1D3B2A184635235043304135253A34243D3B2E 4343373B3B2F27281A1F1D0E2322102426112B2E193F42314043303534203F3921483A1D392300 604017886337AE875C95724C6247299A896F9489775F5F555F6B6B657477A3B1B2C0CBCDB4BEBF BBC5C4BAC7C0ABBBB19BABA094A4975764535F68576E7160A9A695E4DBCCD8CCBCDDD0BFD9CCB9 DACBB8DCCDB8E0CFBDDDCCB8D3C2AEC9B8A480715C9788717A6B564F40294F3E2A4C3C253D2B15 3E2D193E31204A41304843303E3D29464934535641595B45605E47C1B9A2A1957D43351BB5A78D BEB499C4BFA2CECDB1BEBD9EC4C09BCAC59FD1C9A4D2CAA6D2C8A5D0C6A3D3C6A4D5C8A5D1C4A1 D0C3A0C3B493D3C4A3DCCFAFCCBEA1D1C3A8D8CDADE1DAB0C0BC8FA9A47CA49E7AACA684B1AB8B C4BE9CD6D0ACBFBA94C3BE96CDC8A0D1CBA7B6AF929D957E968D7C837C6C7D7A6B8889798C8D7F 7C7D6F686A5D626658666E5F6A776571806B5F6E577C8A717F8B73BCC1ABD1D3BE73705F666455 D2D6C7C8CFBFD8D9C9E5DFD1CFC1B4D3C1B3C7B1A36F5A494A3524523F2E523F2E4B36254B3426 543A2D54362C452D234B42393D3D3553544C8C8D85B9BCB3C7CAC1CCCFC6D5D6CED2D3CBD3D3CB D3D3CBD3D3CBD2D3CBD2D3CBD1D4CBD1D4CBD2D3CBD2D4C9D2D3CBD2D4C9D2D3CBD2D4C9D2D3CB D2D4C9D3D4CCD2D4C9D1D2CACFD1C6CDCEC6CBCDC2CACBC3CACAC0BBB8AFBCBAAEBEBAAFC0BEB2 C5C1B6C8C6BACCCABECFCDC1D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D5DEE5 D5DEE5D5DEE5D5DEE5D4DDE4D4DDE4D4DDE4D4DDE2D9E3E2D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0 D9E4E0D9E4E0D7E2DED6E1DDD6E1DDD5E0DCD6E1DDD8E3DFDAE5E1DCE5E2DCDEDDDEDEDEDFDFDF E1E1E1E3E3E3E4E4E4E6E6E6E6E6E6E8E8E8E8E8E8E9E9E9EAEAEAEBEBEBECECECECECECECEEED E9EBEAE7EBEAE6EAE9E5E9E8E5E9E8E4E8E7E3E7E6E3E7E6E7EBEAE7EBEAE7EBEAE7EBEAE7EBEA E7EBEAE7EBEAE7ECE8DADCD9BBC0BAC1C6C2BDC6C1BCC6C5C0CFCCB0BEBEAEBEBDBACAC9C6D6D5 CBD7D5C0CBC7B8C1BEB7BDB9B1B3AEA4A6A5AAAAB2B2B0BBAEACB7A3A2A8A09FA5A9A8ADACACAE A8A8AA9FA1A09B9D9CA7ABACC9CFCFE7ECEFEFF7F9E9F3F5E4EEF0E1E9EBE1E9EBE1E9EBE1E9EB E1E9EBE1E9EBE1E9EBE1E9EBDFE7E9DFE7E9DEE6E8DDE5E7DDE5E7DCE4E6DBE3E5DAE4E6D9E2E7 D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D4E1E7D6E3E9D5E4E9D5E4E9D5E4E9D5E4E9D5E4E9D5E4E9D5E4E9D3E2E7D3E2E7D3E2E7 D3E2E7D3E2E7D3E2E7D3E2E7D4E1E7D8E3E9D9E2E9D9E2E9D9E2E9D9E2E9D9E2E9D9E2E9D9E2E9 DAE3EADBE4EBDBE4EBDCE5ECDDE6EDDEE7EEDEE7EEDFE8EDDDE4EADEE6E9DEE6E9DFE7EAE0E8EB E1E9ECE1E9ECE2EAEDE0E8EBE0E8EBE0E8EBE0E8EBE0E8EBE0E8EBE0E8EBE0E8EBE0E8EAE0E8EA E0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EAE0E8EA E2E7EAE3E7EAE5E6EAE4E5E9E3E4E8E2E3E7E2E3E7E1E2E6E1E2E6DFE0E4DFE0E4DFE0E4DFE0E4 DFE0E4DFE0E4DFE0E4DFE0E2DFE1E0DFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEE1E3E0 E1E3E0E1E3E0E1E3E0E1E3E0E1E3E0E1E3E0E1E3E0DFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DE DFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEDFE1DEE1E3E2E1E3E2E1E3E2 E1E3E2E1E3E2E1E3E2E1E3E2E1E3E2E7E9E8E7E9E8E7E9E8E7E9E8E7E9E8E7E9E8E7E9E8E7E9E8 E5E6EAE5E6EAE5E6EAE5E6EAE5E6EAE5E6EAE5E6EAE5E6EAE3E4E8E3E4E8E3E4E8E3E4E8E3E4E8 E3E4E8E3E4E8E1E5E6DCE5E4DBE6E2DBE6E2DBE6E2DCE5E2DCE5E2DEE4E2DEE4E2DFE3E2DEE2E1 E1E1E1E1E1E1E1E1E1E1E1E1E2E0E1E0E1E3D5DADED3DCE1DFE8EDCED8DA8F999A97A1A0D8E2E1 DAE5E1D4DEDDE2ECEBDEE8E7C3CDCEBFC9CBD6DFE4C8D1D694A1A99AB1B98FACB45D788137545A 3F5A61324F532440443553554662633E5C5A4C696546656026433E1F3E3825433B143228324D3E 2136252533224E54469894889F958B988B827A7066574F443733272223152B2D1F2D2F22242418 2A271E3430255A54444C4533807B68CFCAB7E6E0D0E5DFCFE9E6D7E9E6D7D0CEC1C0C1B3A7A79B 888A7D6A6C5F4F5146393B302E2F2195907CA6A08A98917E948E7E756E646B6660BDB8B4F4F0ED E5E1DEFDFCF8FFFFF7CDCFC48D9182878C783338224B52405F686551595C6A70708E938F93948E 8E8C80918B7D908776988B789B8A769A8570917B6689705A886D588E7360927D689890799B9980 9C987F8D876F766E57695F466B5F4972665080715C7768557B6B5B7767585D4F444E403742352C 2B221B1D19161D1C18201B17231A1322150C2010032F1C0E4A3728402D1E4C3A2C52413733261E 2A231D3C38353333332A2C2B3536313A3A30433B2E473C2A4B3A264E3C2653412B5746324C3F2E 443B2C474135524E42554F434A4235433A2B453D2A4D472F4C4A314C4E384649344346314E4E34 5449294A370D725223926D39B389579E784B684A268E795E877A69535047596362576568A0ABAD CFD7D9CAD0D0D1D7D5C7D0CBADBAB0AABAADA4B5A5677663666F5C70735EAEA996E8DDCBDECEBE E0D3C2DCCFBED8CBB8DACDBADFD0BDDDCEBBD5C4B0CEBDA984725C917F69735F474E3A224F3921 4C361E402B104531184534203F321F362E173E3A2155553B63664B6D6C5079755ACBC1A8AA9E86 4D3D24BDAF95CBC1A6C8C3A6CCCBADBBBB99CDC7A3CFC7A0CEC69FCCC39CCAC09CCABD9ACBBE9B CCBF9CCFC2A0D9CCACCCBDA0CBBDA0CBBDA2C3B89CCEC2A8D0C7A8ACA77DA8A477ABA67EB1AB87 B1AB89A8A282A8A280AEA884CDC7A3D9D4AEAEA8847973536B644A655D4A5E544A5B544A5B5B53 5C5F5668696178797181847D848982849084869787819685738B759EB19BA3B399C9CEB7D6D4BD 80755F655D4ACDD1C0C4CCBDD3D4C6E2DCCED3C5B8D8C6B8C5B2A36E5B4A4534224D3E2B51402E 4B3A2A4F392C5A3F345B3D354F362F4D463E36372F43443C7A7B73B1B2AAC8C9C1CECFC7D3D4CC D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD3D4CCD2D3CBD1D2CACFD0C8CDCEC6CCCDC5CACBC3CACCC1C5C5BBC5C5B9 C4C4B8C4C4B8C5C5B9C8C8BCCACABECBCBBFD7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7D7E0E7 D7E0E7D7E0E7D7E0E7D7E0E7D8E1E8D8E1E8D8E1E8D8E1E8D8E1E6DBE5E4DBE6E2DBE6E2DBE6E2 DBE6E2DBE6E2DBE6E2DBE6E2D8E3DFD8E3DFD7E2DED7E2DED7E2DED9E4E0DBE6E2DDE6E3E1E3E2 E2E2E2E3E3E3E5E5E5E6E6E6E8E8E8E9E9E9E9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEBEBEBECECEC ECECECEBEDECE9EBEAE7EBEAE6EAE9E5E9E8E5E9E8E4E8E7E3E7E6E3E7E6E6EAE9E6EAE9E6EAE9 E6EAE9E6EAE9E6EAE9E6EAE9E6EBE7F0F2EFC5CAC4BABFBBB6BFBAB8C2C1B7C6C3A6B4B49DADAC 8E9E9D97A7A6A3AFADA7B2AEABB4B1B7BDB9C8CAC5D2D4D3BFBFC7BABAC4BBBBC5C1C2C7C0BFC5 B5B4B9ADADAFACACAEA6A8A7A8AAA9B7BBBCD6DCDCEDF2F5ECF4F6E2ECEEDDE7E9DFE7E9DFE7E9 DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DDE5E7DDE5E7DCE4E6DBE3E5DBE3E5DAE2E4D9E1E3 D8E2E4D8E1E6D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D4E1E7D5E2E8D4E3E8D4E3E8D4E3E8D4E3E8D4E3E8D4E3E8D4E3E8D3E2E7 D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D4E1E7D7E2E8D8E1E8D8E1E8D8E1E8D8E1E8D8E1E8 D8E1E8D8E1E8D9E2E9DAE3EADAE3EADBE4EBDCE5ECDDE6EDDDE6EDDDE6EBDCE3E9DDE5E8DDE5E8 DEE6E9DFE7EAE0E8EBE0E8EBE0E8EBDFE7EADFE7EADFE7EADFE7EADFE7EADFE7EADFE7EADFE7EA DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9 DFE7E9DFE7E9E1E6E9E2E6E9E2E6E9E1E5E8E1E5E8E0E4E7DFE3E6DEE2E5DEE2E5DDE1E4DDE1E4 DDE1E4DDE1E4DDE1E4DDE1E4DDE1E4DDE1E2DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0 DDE1E0DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DDE1E0DDE1E0DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DFE3E2 DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E1E5E8E1E5E8E1E5E8E1E5E8E1E5E8E1E5E8E1E5E8E1E5E8E0E4E7E0E4E7E0E4E7 E0E4E7E0E4E7E0E4E7E0E4E7DFE5E5DBE4E3DAE5E1DAE5E1DAE5E1DBE4E1DBE4E1DDE3E1DDE3E1 DCE0DFDDE1E0E0E0E0E0E0E0E0E0E0E0E0E0E1DFE0DFE0E2E7ECF0E1EBEDE3EDEFC0CACB616B6A 444F4B7E8985929D979FAAA6C4CFCBD5E0DCC8D2D1CFD9DAE3EDEFB0BABC4F5D6034474D364E52 33484D354D4F485D60475F5F3E53543D5653314745314A463F5650344D4720372F223C33294038 122C21213D2F172F2119291C666E63E6E3DAF9F2EAEBE2D9D0C7BED8D1C7C5C3B79C9E9383867B 575A513A3D344647412F2F2729271B2B291C6E6C5FC3C1B4D8D6C9BFBDB09C9C907F7F73616155 53554843453A3B3D3245473C5F625981847B9A9C8FA4A28DB4B097B1AC96A9A4919E9888918B7F B2ABA1F2EBE1EDE6DEE4DBD2DAD2C7C8C0B3AEA797B0A9976A6350837A697A706771636081746E 9D8F86A08F85978577948172927D6C8D76648D73628A6F5E8467577E61537B5E507C5E537A6256 746D5D6D6C5A6C69586E6B5875705D77705D746B5A726656574B3B463A2C3A2D242D20181C110B 1D120E251B19221A17282320201B171D140F1F150C25170C2B190B3A2416493423523D2C584536 5D4D4041342B37302845423D3C3C3A3638354C4D4749493F4D4538544937604F3B65533B635139 5F4F385A4F3D4E47374943354D493D534D41524B3B544B3A59513E5A543C63614A6567526D705B 7F826D88886E8378587F6C44A08152B5905CCAA16DBC9667846640907B5E8E81705B594D626B66 525E5C9BA4A3D5D9D8D2D2D0DADBD6D5D8D1B8BEB2A7AFA0A5B09F707966676F5A6C6E59ABA692 E1D6C4D7CAB9E4D7C6DFD2C1DACDBADACDBADECFBCDECFBCDAC9B5D4C3AF73614B72604A56422A 3D2911412D143E2A11372109412D153B2A1630231030281356513B8A8A70A8AB90BDBBA2D4D0B7 D4CAB1B2A68E4E3E25B9AB91D3C9AECAC5A8CAC9ABBFBE9FC5C19EC6C09CC7C19DCBC39FCEC6A2 D0C6A3CFC5A2CEC3A3BCB191D0C5A7CDBFA2CABFA1CABFA3CCC1A5D2C7ABC1B897A49F75BDB98C CDC8A0D2CCA8CDC7A5CAC4A4B1AB8998926EB9B38FDAD5AFA9A37F6C66467F785E8D85727A7066 7D766C77776F60635A57585063645C6D7069646962535F53495A4A485D4C435B45879A84A4B49A BFC4ADD1CFB8928771655D4AC7CBBAC3CBBCCCCEC0DBD8C9D9CDBFDCCCBDC3B2A26E5D4D4B3C29 4F422F5242324E3E2E4F3C2E563E32573A324D362E4C453D34352D3F403875766EB1B2AACECFC7 D4D5CDD5D6CED2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD3D4CCD2D3CBD1D2CAD0D1C9CECFC7CDCEC6CCCDC5CBCDC2 D1D3C8D0D2C5CDCFC2CBCDC0C9CBBEC9CBBEC9CBBEC9CBBED7E0E7D7E0E7D7E0E7D7E0E7D7E0E7 D7E0E7D7E0E7D7E0E7D9E2E9D9E2E9DAE3EADAE3EADBE4EBDBE4EBDCE5ECDCE5EADCE6E5DCE7E3 DCE7E3DCE7E3DCE7E3DCE7E3DCE7E3DCE7E3DAE5E1D9E4E0D8E3DFD8E3DFD9E4E0DBE6E2DDE8E4 DFE8E5E5E7E6E7E7E7E8E8E8E9E9E9EAEAEAEBEBEBEBEBEBECECECEBEBEBEBEBEBEBEBEBEBEBEB ECECECECECECECECECEBEDECE9EBEAE7EBEAE6EAE9E5E9E8E5E9E8E4E8E7E3E7E6E3E7E6E5E9E8 E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5EAE6D9DBD8BFC4BEBDC2BEBDC6C1B2BCBBA4B3B0 99A7A793A3A29CACAB86969584908E95A09C9AA3A0939995A0A29DB9BBBAC3C6CDADB1BAA8ABB4 BABBC0C0C1C6B9B8BDBEBEC0D0D0D2B5B7B6B5B7B6BFC3C4D5DBDBE2E7EADEE6E8D8E2E4D8E2E4 DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DCE4E6DBE3E5DBE3E5DAE2E4D9E1E3 D9E1E3D8E0E2D7E1E3D7E0E5D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E7D4E1E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7 D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D4E1E7D6E1E7D7E0E7D7E0E7D7E0E7 D7E0E7D7E0E7D7E0E7D7E0E7D8E1E8D8E1E8D9E2E9D9E2E9DAE3EADBE4EBDCE5ECDCE5ECDBE2E8 DBE3E6DCE4E7DCE4E7DDE5E8DEE6E9DFE7EADFE7EADEE6E9DEE6E9DEE6E9DEE6E9DEE6E9DEE6E9 DEE6E9DEE6E9DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8 DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8E0E5E8E1E5E8E1E5E8E0E4E7DFE3E6DEE2E5DEE2E5DDE1E4 DDE1E4DDE1E4DDE1E4DDE1E4DDE1E4DDE1E4DDE1E4DDE1E2DDE1E2DDE1E0DDE1E0DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DDE1E0DDE1E0 DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0DDE1E0 DDE1E0DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2DFE3E2E2E6E5E2E6E5E2E6E5E2E6E5 E2E6E5E2E6E5E2E6E5E2E6E5E0E4E7E0E4E7E0E4E7E0E4E7E0E4E7E0E4E7E0E4E7E0E4E7DFE3E6 DFE3E6DFE3E6DFE3E6DFE3E6DFE3E6DFE3E6DEE4E4DAE3E2D9E4E0D9E4E0D9E4E0DAE3E0DAE3E0 DCE2E0DCE2E0DBDFDEDBDFDEDEDEDEDFDFDFE0E0E0E0E0E0E2E0E1E1E1E3E0E5E8D7E1E2D0DADB ABB5B4535E5A2D3832505B5556615958635D737E789AA59FB5C0BCC1CBCAB9C3C4848E8F404B4D 5161614456563E50503D504E3D504E3E514F3A4D493144402A3D372F423C3E514B3F534A33473E 31453A2C4037182D2414302417312413241A616B62E6E5E0EFEAE4EDE6E0E9E2DAE2DDD7E2E2DA DADDD4F7FCF5EAEFE8CDD2CCC3C8C47C7E791D1E16101207282A1F4F514654564B47493E3D3F34 37392E51534864665B83847CA4A59DC2C5BCDCDFD6F1F4EBFEFFF3C6C5B1B1AF98B1AF98A7A58E A6A18DAAA391B5AE9CE6DDCCBAAEA0998B7E8575668674668F7D6F9E8B7C5A47385B4537664E42 664B40765C4F9076679B7F71967B6A917665907562957A699479689276688F73678B6F6483665E 795C566B5750716A605E5E524E4C404341343D392D342E20241C11150D0222180E1D140B1D140F 1C1210170F0D180F101812141610101B1310120902110700190B002412043722114A3321513B26 48311F4C3928574737463A2C40392F4A474040413C3E403B494A4247473B4A43334E433155452E 56442C5240284C3D26514634524B3B595345615D516C6658777060857C6B90887399937DA6A48D A1A2909FA28FAAAD9AA3A38B988F70A08D65CDAE7FD5B07CDBB37FD8B283A1835D947F629D907F 6C6A5D72786E59635BA2A59ED3D2CDBEB9B3B9B2ACB2ABA19793878C8A7B9093826A6D5A636651 6A6954ABA692DCD4C1DACDBCE6D9C8E1D4C3DCCFBCDACDBADECFBCDFD0BDDDCCB8DAC9B585735D 75634D59452D49351D48341C3C280F321E053B270F301F0B3225123C341F615C46919177ACAF94 BEBCA3D0CCB3D7CDB4B7AB934A3A21A99B81D4CAAFCAC5A8CECDAFCAC9ABC8C5A6CAC5A5CEC9AB D4CFAFD9D2B5D8D2B2D1CBABCCC6A6C6BD9EC8BFA0BBB293BEB596C5BC9FC9C0A3C3BA9D9F9675 B1AC82D4D0A3DAD5ADD1CBA7C5BF9FD6D0B0C0BA9AA09A7897916DB4AF89B2AC88A6A080BFB89E B9B19E847A6E716A605B5B51474A41393A323D3E364D5049575C55515D514859493C5140354D37 7D907AA9B99FBABFA8CECCB59E937D514A37C1C8B6C6D1C1CBCFC1D6D4C7DBD1C5DBCDC0BDAD9E 7161513E31204035214338264437264838294D3A2C52372E4B372E413A3235362E46473F76776F A7A8A0BEBFB7C4C5BDC4C5BDD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD1D2CAD0D1C9CFD0C8CECFC7 CDCEC6CDCFC4D5D7CCD3D5C8D0D2C5CDCFC2CBCDC0CACCBFCACCBFCBCDC0D8DFE5D8DFE5D8DFE5 D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5DAE1E7DBE2E8DCE3E9DDE4EADEE5EBDFE6ECDFE6ECE0E8EB DFE8E7DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DFE8E5DCE5E2DCE5E2DBE4E1DBE4E1DCE5E2 DDE6E3DFE8E5E3E9E7E9EBEAEAEAEAEBEBEBEBEBEBECECECECECECEDEDEDEDEDEDEDEDEDEDEDED EDEDEDEDEDEDECECECECECECECECECEBEDECE9EBEAE7EBEAE6EAE9E5E9E8E5E9E8E4E8E7E3E7E6 E3E7E6E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5E9E8E5EAE6D0D2CFC9CEC8CFD4D0D4DDD8 C4CECDA9B8B599A7A78595945464634454534D595775807C9AA3A0ABB1ADB8BAB5C1C5C49FA4AA 969DA592969F90959995989D9B9CA09F9FA1A0A0A2BABABAB9BBBAC3C7C8D6DCDCE2E7EADFE7E9 DCE6E8DFE9EBDEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DCE4E6DBE3E5DBE3E5 DAE2E4D9E1E3D9E1E3D8E0E2D7E1E3D7E0E5D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E7D4E1E7D3E2E7D3E2E7D3E2E7D3E2E7 D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D4E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D5E0E6D5E0E6D6E1E7D7E2E8D8E3E9D8E3E9D9E4EA D9E4EAD8E1E6D8E1E6D9E2E7DAE3E8DBE4E9DBE4E9DCE5EADCE5EADDE6EBDDE6EBDDE6EBDDE6EB DDE6EBDDE6EBDDE6EBDDE7E9DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8 DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8E0E5E8DFE4E7DFE4E7DEE3E6DDE2E5DCE1E4 DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE2E2DCE2E2DCE2E0DCE2E0 DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2 DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0DCE2E0 DCE2E0DCE2E0DCE2E0DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DFE5E3DFE5E3 DFE5E3DFE5E3DFE5E3DFE5E3DFE5E3DFE5E3DDE2E5DDE2E5DDE2E5DDE2E5DDE2E5DDE2E5DDE2E5 DDE2E5DEE3E6DEE3E6DEE3E6DEE3E6DEE3E6DEE3E6DEE3E6DEE4E4DAE3E2D9E4E0D9E4E0D9E4E0 DAE3E0DAE3E0DCE2E0DCE2E0DADEDDDBDFDEDFDFDFE0E0E0E1E1E1E2E2E2E3E1E2E3E3E3DEE4E4 DBE4E3CFD8D7A9B2AF5E67623B453D4C564E424C4336403838423A555F57757E7979827F6D7675 616A69555F5E4A56523B47433A46423B484136433C37443D35423B26332C222F281F2C2329362D 354239313E3524312719261D0C20150C271E142F260B1E1865706AEEEFEAEAE5E1E4DCD9E2DBD5 EDEAE5CCCDC7AEB3ACE0E7E0F4FAF6E3E9E5D1D5D47B807C31332E272A232F322B43463F51544B 696C6391948BB0B3AAC9CAC2D8D9D1EBECE4F7F8F0F8F9F1F1F2EAE9EBE0E5E5D9D7D8C6A3A28D ACAC94A9A7909E9A81ABA58DA69B85AB9F8992816D867460846D5B846A5B8E7264A88A7F89695E 88685B8F6E5D906F5C93745F9B7C679D7E698D715C7B604B755C468C76618770607F695B776358 705C5563504A54413D4637342E292524251F1E1D181D1A131D18121F18101D16101B140E19100B 1B13101A1112181214191418171218120F16151014261C1A33261E483A2F4B392B3B2615412814 553B245B41286B533B67533B6D5C485C513F524C3E5350474748424A4D4634352D3E3E32514A3A 5F54406B5C4575654C7E6E578276608A826F979181A29F90A5A195A59F91A9A290B4AC99BBB39E 9D9882A2A18C9093827F83727E816E7878608178599F8D65D7B889D8B37FD3AB77D9B384A98C64 8772539F927F6D6A5B6D71625D61539B998CB9B1A691837A79675D69574D554538584C3C5C5543 45422F49473254523D9C9781CDC5B0D5CAB6E5D8C5E1D4C1DFD0BDDDCEBBDECFBCDFD0BDDFCEBA DDCCB8C5B59EAD9D86917F69816F5774624A5B493149371F4937215B4A3675685589816C9B9680 B2B29AC1C3ABC9C7AED1CDB4D7CDB4C2B69E504029A0917AD9CFB4CCC7AACECDAFCBCCADCECDB1 CCC8ADC7C3AAC3BFA4BEBAA1B6B297ABA78CA4A083A7A285918C6E827B5E9C9578BAB494CBC5A5 C7C1A19D9775DBD6ACD8D3A9BFBA94C3BD99C0BA9ADED8B8D8D2B2D5CFAD938D697F7A54A9A37F D2CCACD7D0B6BBB3A07C7266544D436060565F625952534B3D3E363D40394E534C4E5A4E405141 516655425A447C8F79B0C0A6BEC3ACD3D1BAADA28C433C29BBC4B3CCDAC9CED4C6D2D3C5DCD4C7 D7CBBDB7AB9B7B705E4C44314B43304B44324F4635524437524034533C34513E376E6A616E6F67 7F8078999A92AFB0A8BBBCB4C2C3BBC8C9C1D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD1D2CAD1D2CA D0D1C9D0D1C9CFD0C8CFD1C6D0D2C7CFD1C4CDCFC2CCCEC1CBCDC0CBCDC0CCCEC1CDCFC2D8DFE5 D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5D8DFE5DAE1E7DAE1E7DBE2E8DDE4EADEE5EBDFE6EC E0E7EDE1E9ECE0E9E8E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6E0E9E6DEE7E4DDE6E3DCE5E2 DCE5E2DDE6E3DFE8E5E1EAE7E4EAE8EBEDECECECECECECECECECECEDEDEDEDEDEDEDEDEDEDEDED EFEFEFEFEFEFEEEEEEEEEEEEEDEDEDECECECECECECEBEDECE9EBEAE7EBEAE6EAE9E5E9E8E5E9E8 E4E8E7E3E7E6E3E7E6E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E8E7E4E9E5DADCD9D5DAD4 D0D5D1D9E2DDD2DCDBB5C4C192A0A05F6F6E2D3D3C30403F303C3A3C47436F7875AEB4B0C4C6C1 B4B8B7ABB4B9AAB5BB959EA5777F82777C8093979AA5A6A8A2A2A4AAAAAAADADADBDBEC0D4D8D9 E2E7EAE0E8EADDE7E9E0EAECDFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DFE7E9DDE5E7 DDE5E7DCE4E6DBE3E5DBE3E5DAE2E4D9E1E3D8E2E4D6DFE4D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6 D5E0E6D5E0E6D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E7D3E0E6D2E1E6D2E1E6 D2E1E6D2E1E6D2E1E6D2E1E6D2E1E6D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7 D3E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D4DFE5D4DFE5D4DFE5D5E0E6D6E1E7 D7E2E8D7E2E8D8E3E9D7E0E5D7E0E5D7E0E5D8E1E6D9E2E7DAE3E8DAE3E8DBE4E9DCE5EADCE5EA DCE5EADCE5EADCE5EADCE5EADCE5EADCE6E8DDE5E8DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7 DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DFE4E7DFE4E7DEE3E6DDE2E5 DCE1E4DCE1E4DBE0E3DBE0E3DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4DCE2E2 DCE2E0DCE2E2DCE2E0DCE2E2DCE2E0DCE2E2DCE2E0DEE4E4DEE4E2DEE4E4DEE4E2DEE4E4DEE4E2 DEE4E4DEE4E2DCE2E2DCE2E0DCE2E2DCE2E0DCE2E2DCE2E0DCE2E2DCE2E0DCE2E2DCE2E0DCE2E2 DCE2E0DCE2E2DCE2E0DCE2E2DCE2E0DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2 DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DEE4E2DCE1E4DCE1E4DCE1E4DCE1E4DCE1E4 DCE1E4DCE1E4DCE1E4DDE2E5DDE2E5DDE2E5DDE2E5DDE2E5DDE2E5DDE2E5DBE4E3D8E2E1D8E3DF D8E3DFD8E3DFD9E2DFD9E2DFDBE1DFDBE1DFDBDFDEDCE0DFE0E0E0E1E1E1E3E3E3E4E4E4E6E4E5 E6E6E6E5EBE9E9F2EFDCE5E2B1BAB5646E663842393D473E313B30424C41434D444C564D4D574F 424B46434C474D56534E5754434D453A453D3E4941434E463F4A4239443C2E39311C271F2A352D 1F2A221D28202733292B362E1F2A2216211915251B0F2920102B220516106B746FF1F0ECD7CFCC BCB1ADA39A956F68627D7D75959891BBC0BAA5AAA6707473575B5A2D2F2E383A37555752838580 ACAFA8C4C5BFD0D1C9E1E2DAF3F4ECF5F5EDF0F0E6E8E8DEE2E2D8E0E0D6E7E4DBF0EEE2F7F5E8 CECCBD9D9C8AAFAE9AAFAD989B957DA19A808F856A75674D9E8C7498846C937A667E61517C5C4F 95756A937168947268957662997D65967A62967C639C846C8E7A617C6A527969524F402B433625 372B1D2C2218281E15231A151D1311170F0C1B17141B171418141115100C120A07120A07180E0C 1C1210221817261E1C21181B201A1E2E292F3532393C39424B464C5E534F66554B756355715C4B 5A412D5E442D6F5439684D3050361B4934195240284D402D4C453553514451534860635A6A6C61 7876698A8572998E7AA3947DAA9C82B3A48DB8AC96A79F8CA8A2929D9B8C8C8A7B817E6F847D6B 88806D877F6A847F6B8483717E80727D81728285748C8B76A89F80CEBC94D6B788D5B17DCAA26E D7B383AF926A7E694AA296806966535F614C4D4F3A6D6653716453513B2D452B1E43271B442A1D 3F2A1942311F3B301C4D4731605A44A39D87CBC5AFDAD2BDE1D4C1DFD2BFDFD0BDDFD0BDE0D1BE DFD0BDDECDB9DCCBB7E9D9C2D3C3ACC1AF99B8A690A7957F8E7C647C6A5474644D7768559D907D B6AE99BCB7A1C4C4ACCACCB4D0CEB5D6D2B9DACFB9D3C7AF5C4C3594856ED1C7ACBDB89BB6B597 AFAF93A5A58D9D9C8791907C84836E79786371705B6B6B5368684E66644B5B5A3E6965489D987A C2BD9DD4CEAECBC5A5958F6BDDD8B0A09B71635E388A8462A9A383D3CCAFC6C0A0CBC5A3C0BA96 77724CA59F7BDBD5B3D0C9ADBEB6A18D847560594F39392F51544B58595146473F4649425E635C 6571655869594D6251425A4470836DA9B99FBBC0A9D3D1BABBB09A453E2BAEB9A8D0E1D1D4DCCF D1D3C6DAD4C8D1C7BBB7AE9F918877504937534E3A635E4B7C7764938A7BA39588B4A298BDAFA6 C0BCB3C0C1B9C4C5BDC6C7BFC6C7BFC9CAC2D2D3CBDBDCD4D2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D1D2CAD1D2CAD1D2CAD1D2CAD1D2CAD1D3C8CCCEC3CBCDC0CACCBFC9CBBECACCBFCBCDC0CDCFC2 CED0C3DADFE3DADFE3DADFE3DADFE3DADFE3DADFE3DADFE3DADFE3DADFE3DBE0E4DCE1E5DEE3E7 DFE4E8E1E6EAE2E7EBE3E8EBE4EAEAE4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E1E7E5 E0E6E4E0E6E4DFE5E3E0E6E4E2E8E6E4EAE8E6EAE9ECEEEDEDEDEDEDEDEDECECECECECECECECEC ECECECECECECF0F0F0F0F0F0EFEFEFEEEEEEEDEDEDECECECECECECEAECEBE9EBEAE7EBEAE6EAE9 E5E9E8E5E9E8E4E8E7E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E8E4 DDDFDCD7DCD6C4C9C5CAD3CECCD6D5B6C5C28B99993E4E4D2B3B3A3747462D3937212C28535C59 ACB2AED7D9D4C7CDCBA6B1B5758489414E542631332B3336515659919294C4C5C7ADADADAFAFAF BCBDBFD2D6D7E0E5E8DEE6E8DAE4E6DCE6E8E1E9EBE1E9EBE1E9EBE1E9EBE1E9EBE1E9EBE1E9EB E1E9EBDFE7E9DFE7E9DEE6E8DDE5E7DDE5E7DCE4E6DBE3E5DAE4E6D5DEE3D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E7D2DFE5 D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7 D3E2E7D3E2E7D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D0DDE3D1DEE4D1DEE4 D2DFE5D3E0E6D4E1E7D4E1E7D5E2E8D4DFE3D5E0E4D5E0E4D6E1E5D7E2E6D8E3E7D8E3E7D9E4E8 DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DBE5E7DCE4E7DCE4E6DCE4E6DCE4E6DCE4E6 DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6 DBE3E5DBE3E5DAE2E4D9E1E3D8E0E2D8E0E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE3E2DAE2E4DAE3E2DAE2E4DAE3E2DAE2E4DAE3E2DCE4E6DCE5E4DCE4E6DCE5E4 DCE4E6DCE5E4DCE4E6DCE5E4DAE2E4DAE3E2DAE2E4DAE3E2DAE2E4DAE3E2DAE2E4DAE3E2DAE2E4 DAE3E2DAE2E4DAE3E2DAE2E4DAE3E2DAE2E4DAE3E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0D8E0E2D8E0E2D8E0E2 D8E0E2D8E0E2D8E0E2D8E0E2D8E0E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE3E2 D7E1E0D7E2DED7E2DED7E2DED8E1DED8E1DEDAE0DEDAE0DEDDE1E0DEE2E1E2E2E2E4E4E4E6E6E6 E7E7E7EAE8E9E9E9E9DADFDBDFE6DFDBE2DBC4CBC380877F464E4340483B3941344B534651594C 525A4F434A423A4139474E47494F4B333D353741392C362D1E281F1C261D273128343E353D473F 414B43262F2A202924161F1A172119212A25212A251A231E19261F1B322A1E352D0E1B145D625C B1ACA672655F5847403F30294F423A645D53716E655E5F573738332828264B4B4B71716FB1B2AD CACBC5E4E5DFF6F7EFFEFEF6F5F5EBECE9E0ECEADEE1DDD2E4E0D5ECE6DAF0EADEF0EADCEBE3D6 E1D9CCD9D3C7BAB6ABABA79CAEAB9CA49E8E98917EA19982A1977C988A6F7D6D53806F55947E67 967C6B9B7F73A588809D7E798C716887755F84795D6E6248584E3350492F3B351B221E051B1B03 1C1E081516040C0F00080A000A0C010E0F070F100A100F0A110C08160C0A190F0D1C110F1E1311 2517142B1D1A2F211E312624433737483E3F4F46495D565D58535A4D4751564D52493A334B382A 5F4A3967513C634930806246987B5B8A6D4B5A4220584423705F437E725A8B84719997889C9E91 B0B3A8ABADA2ABA99CAAA592A9A18CA79B83A193799687708A7F6B958E7C918E7D8B897A898778 9491829F98869388747C715D635E4B54524357594C696D5F767A6B8C8B77ADA487C6B48ED5B98A DAB682CDA571E1BD8DBEA179806D4CA99F8669645059593F464227473B233E2914391C0A452111 4823135531214E3121543D2B6756428E836DA19982D1CBB3E0DAC4EAE2CDDBCEBBDECFBCDFD0BD E1D2BFE1D2BFDFD0BDDBCCB7D8C9B4E0D1BCD1C2ADCEBDA9CEBDA9C4B39FB7A790AD9C88A59480 B3A491C8BBAAD2CAB7D1CCB8CFCFB7C8CAB2CAC8B1D6D2B9E0D5BFE0D4BE5848316F6049A69C83 8C866C83826679795F6A6B596869596465575D5E4E5558475053404F523D4F533C5C5E48717459 97977BBEBD9EC7C4A3CBC7A4BEBA97807C57C6C199ADA8807F7955999371A8A282DDD6B9D0CAAA CCC6A4E3DDB9928D67B3AE88D1CBA9C3BCA0BEB6A1887F704E483C36362C4E51485A5B534D4E46 494C45555A535763574C5D4D526756546C56788B75AEBEA4B9BEA7CBC9B2BFB49E4B44319EA999 D1E2D2D6E1D3CFD3C5D5D3C6CCC6B8BFB8A8AEA795B1AE9BACAB97B1B09EC0BDACC7C1B3C6BCB0 CBBDB4D3C6BED8D5CCD5D6CED3D4CCCDCEC6CBCCC4CECFC7D1D2CAD3D4CCD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D1D2CAD1D2CAD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D4C9CED0C5CDCFC2CBCDC0CACCBFCACCBF CBCDC0CCCEC1CDCFC2DADFE3DADFE3DADFE3DADFE3DADFE3DADFE3DADFE3DADFE3D9DEE2DADFE3 DBE0E4DDE2E6DFE4E8E1E6EAE2E7EBE3E8EBE4EAEAE4EAE8E4EAE8E4EAE8E4EAE8E4EAE8E4EAE8 E4EAE8E2E8E6E1E7E5E0E6E4E0E6E4E1E7E5E3E9E7E5EBE9E7EBEAECEEEDEDEDEDECECECECECEC ECECECECECECEBEBEBEBEBEBF1F1F1F1F1F1F0F0F0EFEFEFEEEEEEECECECECECECEAECEBE9EBEA E7EBEAE6EAE9E5E9E8E5E9E8E4E8E7E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E8E4DBDDDAD8DDD7C0C5C1C1CAC5C5CFCEB5C4C18E9C9C3C4C4B2C3C3B374746323E3C 293430515A579CA29EC9CBC6C5CBC9A6B5B8526569233539334142303A3C1C24264E5253A5A6A8 CBCBCBC7C7C7CCCDCFDADEDFE5E9ECE2EAECE0E8EBE2ECEEE2EAECE2EAECE2EAECE2EAECE2EAEC E2EAECE2EAECE2EAECE0E8EAE0E8EADFE7E9DFE7E9DEE6E8DDE5E7DDE5E7DBE5E7D5DEE3D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D4E1E7D2DFE5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D3E2E7D3E2E7D3E2E7D3E2E7 D3E2E7D3E2E7D3E2E7D3E2E7D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D0DDE3 D0DDE3D1DEE4D1DEE4D2DFE5D3E0E6D4E1E7D4E1E7D4DFE3D4DFE3D5E0E4D5E0E4D6E1E5D7E2E6 D8E3E7D8E3E7DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DAE5E9DBE5E7DCE4E6DCE4E6 DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6 DCE4E6DCE4E6DBE3E5DAE2E4D9E1E3D9E1E3D8E0E2D8E0E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6DCE4E6 DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DCE5E4DCE5E2DCE5E2DCE5E2 DCE5E2DCE5E2DCE5E2DCE5E2DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0DAE3E0D8E0E2 D8E0E2D8E0E2D8E0E2D8E0E2D8E0E2D8E0E2D8E0E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE3E2D7E1E0D7E2DED7E2DED7E2DED8E1DED8E1DEDAE0DEDAE0DEDEE2E1DFE3E2E4E4E4 E5E5E5E7E7E7E9E9E9ECEAEBEBEBE9E8EDE7E5ECE4E3EAE2E1E9DEA5ADA25860533F4738343C2D 3B4334394132343C2F2C3429343C314C534B4D544D323932303A322B352D1D271F19231B232D25 263028222B26242D281A23201F2825141D1A0D16131C2522262F2C1E2726131F1B1529202A3B31 212B225C5C547F756C301D16372018402A1F42302443352A4A4036554E44817C76B7B2AED6D1CE F3EEEBE9E6E1EDEAE1E7E4DBE3DFD6E8E4D9E9E2D8E3DDD1E7DFD4F6EEE1F6EDDEF3EADBECE0D0 D6CABAB5A999928575796D61958C87B6AEABBCB5ADAEA69BA29B8B8F87727C7259746A4F83775D 87795F9C8B779584727F6B6069554E58433E48372F2A23112F2D161E1C071110001B1D071A1D08 101501141C07141B090F18050D13050D130512150A15180D15180F18150E291E182E1F1A362420 412F2B4F3C365A47415F4C465F4E476856526A5B585547464135353E34352D24271A131A241A1B 1F0E043924136A543F7C644A6F5437866947A486629A7E57A187629D8762B0A07FB6AB8FB2AC96 A6A5939395879C9F949494888C8A7D8883709088739C90789C90788D816B7B73606F6959777566 88897BA8A699C6C3B4C4BDAB9085715449354C463629271A26281D4144395A5E5082846FB1AA8D C8B690D1B586DBB783CCA772E5C18FC4A97E806D4CA99F86625E455956374C462648391C41290F 522F1B5C33214B22104B24134B2815573C297E6C58B9AA95CABFA9E5DDC6DAD2BDD8D0BBD7CAB7 DCCDBADFD0BDE2D3C0E2D3C0DFD0BDDACBB6D6C7B2DACBB6D0C1ACD3C4AFD8C9B4D2C1ADCCBDA8 CAB9A5C0B19ECDBDADCEC1B0CDC5B2D2CDB9D4D4BCCACCB4CFCDB6E3DEC8E6DBC5E4D8C24B3A26 463720766C535B553B5453374A4C3457594B5D605564675C676B5D64685A5C6353585F4D595E4A 6267518C9077B8BBA0CACBACBEBE9CCFCCA9DBD7B2A8A47E8A855DD9D4ACE1DBB7C6C0A0918A6D C8C1A4D5CFAFDAD4B2CDC7A396916BBBB690CDC7A3CDC6A9D5CDB68F867546403446463C52554C 595A5252534B4C4F484E534C4C584C455646374C3B49614B70836DA7B79DB3B8A1C5C3ACC7BCA6 5C5743929F8ECFE1D3D7E3D7CDD3C7D2D2C6CAC6BAC5BFB1C3BDADCFCEBCC6C7B5C9CAB8D5D6C4 DBD8C9D5CFC1D7CDC3DFD6CDD2CFC6CFD0C8CDCEC6CECFC7D5D6CEDADBD3D5D6CECDCEC6D2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD1D2CAD1D2CAD2D3CBD2D3CBD2D3CBD3D4CCD3D4CCD3D5CAD2D4C9D0D2C5CED0C3 CCCEC1CACCBFCACCBFCBCDC0CBCDC0E1E5E8E1E5E8E0E4E7DEE2E5DDE1E4DCE0E3DBDFE2DBDFE2 DCE0E3DDE1E4DEE2E5E0E4E7E2E6E9E4E8EBE6EAEDE6EAEDE3E7E8E3E7E6E3E7E6E3E7E6E3E7E6 E3E7E6E3E7E6E3E7E6E1E5E4E1E5E4E2E6E5E3E7E6E3E7E6E4E8E7E5E9E8E5E9E8EBEDECECECEC EDEDEDEEEEEEEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEDEDEDECECEC EBEDECE7E9E8E5E9E8E4E8E7E3E7E6E2E6E5E2E6E5E1E5E4E1E5E4E6EAE9E1E5E4E6EAE9E1E5E4 D7DBDAE4E8E7E9EDECD2D7D3D3D5D2DDE2DCB5BAB6CFD8D3C2CCCBA4B3B07F8D8D2C3C3B3B4B4A 40504F2F3B39323D39505956A5ABA7C8CAC5C1CAC7A6BABB4C64661E33362537372D3B3C232B2D 45494AA2A3A5CDCDCDC8C8C8D6D7D9E6EAEBE5E9ECE0E8EAE2EAEDDFE9EBDEE6E8DEE6E8DEE6E8 DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8E1E9EBE2EAECE2EAECE1E9EBDFE7E9DCE4E6D9E1E3D6E0E2 D7E0E5D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7 D6E1E7D6E1E7D4E1E7D1DEE4D0DFE4D1E0E5D2E1E6D3E2E7D5E4E9D5E4E9D6E5EAD5E4E9D5E4E9 D4E3E8D3E2E7D3E2E7D2E1E6D1E0E5D1E0E5D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7D3E2E7 D3E2E7D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D4E1E7D4E1E7D4E1E7D4E1E7 D4E1E7D4E1E7D4E1E7D4E1E7D6E3E9D6E3E9D6E3E9D6E3E9D6E3E9D6E3E9D6E3E9D8E3E7DBE5E7 DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8 DEE6E8DEE6E8D9E3E4D9E3E4D9E3E4D9E3E4D9E3E4D9E3E4D9E3E4D9E3E4DBE5E6DBE5E6DAE4E5 DAE4E5D9E3E4D8E2E3D7E1E2D7E1E2D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5 DBE5E7DBE5E7DBE5E7DBE5E7DBE5E7DBE5E7DBE5E7DBE5E7D7E1E3D7E1E3D7E1E3D7E1E3D7E1E3 D7E1E3D7E1E3D7E1E3D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E4D9E3E2D9E4E0 D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0D7E2DED7E2DED7E2DED7E2DED7E2DED7E2DED7E2DE D7E2DED7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D5DFE0D5DFE0D5DFE0D5DFE0 D5DFE0D5DFE0D5DFE0D5DFDED9E3E2D9E4E0D9E4E0D9E4E0DAE3E0DAE3E0DCE2E0DCE2E0D9DDDC DADEDDDEDEDEE1E1E1E4E4E4E9E9E9EDEBECEFEFEDF9FBF6F0F5EEDFE4DDEAF0E6BBC1B5565C4E 383E30424939515848353B2D33392B2B312522281E282E242A2F28343B342C35301C272115201C 1B26221E2925192420141F1B15201C1923223A44434D5758858F90ADB7B8929C9D343E3F394342 3242384955495052456E665B8371656A50435F3F326141346C5042503B2A766555D5C7BAEEE1D8 FCF2E9F6EBE7EEE3DDF3EAE1F0E8DDECE4D9EAE0D4ECE2D6F2E6DAF8ECDEFDEFE2E1D4C4D4C4B4 BBAB9BA2917F8E7D6B84735F82705C807063A69898A3979B9D9191908782837B707D7666807966 857F676A644C5B553D4A43303F3828342E222821191F17141A151114140C181B10171A0F12180C 11170B081003081003161E11101608141A0C161A0C17170B2523163B372B484236493F355B493F 604941644C42644C42624A3E61493D624A3E644C40533D325D494035221B0D00001D100A322723 372D2C463B355C4A3C67523F7C664E876E50604625765A33C2A57DBCA176C9B087B8A279948460 958A6C98927A83806D7B7D6F787C6E7B7B6F878578BDB7A7BCB4A1ACA18B9F937D655A4647402E 39362756564A55554979796DA8A596918A786055413A2F1D2D27193B3B31484B42555B51505648 888977A69F83C1B18DD2B687DBB783D6B17CDCB886C0A57A897753B1A78CB5B196A29D7D8E8662 6857394D32174C28124E23104D200D5126155835227357429B8671BFAF98D2C6B0D6CEB7D7CFBA D8CDB9D7CBB5DACBB6DBCCB7DCCDB8DECFBCDFD0BDE0D1BEE1D2BFDACBB8DBCCB9DCCDBADACDBA DCCDBAD9CCB9D9CAB7D8C9B6DBCBBBD9CCBBD6CEBBD5D0BCD3D2BDD2D4BED5D3BCD8D3BDE8DDC9 D4C8B2675642675843B3A892A29C846B6A4E565842595D4F575D534F554B41493E40483D4A5245 5058494F5847545C47929780B7BBA2BEC1A2CBCBA9CECCA6CCC8A2D5D0A8A5A0788A855F87815F A29C7CCBC4A7D5CEB1C4BE9ECBC5A3D6D1AB9C976FBAB58FD5CFABC4BDA0C8C0A9A79E8D494335 5050464F524946473F4B4C445A5D564E534C3F4B3F4A5B4B485D4C435B456B7E68A6B69CAEB39C C8C6AFCDC2AC544F3B859281D2E4D6C4D0C4C8CEC2D6D6CAE2DED2DEDBCCD9D6C7D5D6C6D4D7C6 D3D7C6D3D7C6D5D6C8D8D4C8DBD2C9DAD3C9CACAC0CBCCC4D2D3CBD8D9D1D6D7CFD1D2CAD2D3CB D8D9D1D4D5CDD4D5CDD3D4CCD2D3CBD1D2CAD1D2CAD0D1C9D0D1C9D2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D2C7D4D4CA D3D3C7D0D0C4CECEC2D2D2C6D8D8CCD6D6CAD1D1C5E2E3E7E0E4E5E1E2E6DFE3E4E0E1E5DEE2E3 DFE0E4DDE1E2DFE0E4DEE2E3E1E2E6E0E4E5E3E4E8E3E7E8E6E7EBE4E8E9E5E7E6E3E7E6E5E7E6 E3E7E6E5E7E6E3E7E6E5E7E6E3E7E6E3E5E4E1E5E4E4E6E5E3E7E6E5E7E6E4E8E7E7E9E8E7E9E8 ECECECECECECEDEDEDEDEDEDEEEEEEEFEFEFF0F0F0F0F0F0F0F0F0F0F0F0EFEFEFEEEEEEEDEDED EDEDEDECECECEBEDECE8EAE9E6EAE9E5E9E8E4E8E7E3E7E6E3E7E6E2E6E5E2E6E5E3E7E6DFE3E2 E5E9E8E4E8E7DCE0DFE3E7E6E1E5E4C7CCC8C7C9C6D3D8D2B8BDB9D6DFDAC6D0CFA6B5B2798787 2A3A392D3D3C2C3C3B3E4A485F6A6669726FADB3AFD0D2CDC0CBC79BB0B1466263233D3E314544 3747472C36374D5152A5A6A8CDCDCDC8C8C8D6D7D9E5E9EAE5E9ECDFE7E9E0EAECDEE8EADEE6E8 DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8E1E9EBE1E9EBE1E9EBE1E9EBDFE7E9DCE4E6 DAE2E4D7E1E3D7E0E5D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D5E0E6D5E0E6D5E0E6 D5E0E6D5E0E6D5E0E6D5E0E6D3E0E6D2DFE5D1E0E5D2E1E6D3E2E7D4E3E8D5E4E9D5E4E9D6E5EA D5E4E9D5E4E9D4E3E8D3E2E7D3E2E7D2E1E6D1E0E5D1E0E5D3E2E7D1E3E7D3E2E7D1E3E7D3E2E7 D1E3E7D3E2E7D1E3E7D1E0E5CFE1E5D1E0E5CFE1E5D1E0E5CFE1E5D1E0E5D1E0E5D3E2E7D3E2E7 D4E1E7D3E2E7D4E1E7D3E2E7D4E1E7D3E2E7D6E3E9D5E4E9D6E3E9D5E4E9D6E3E9D5E4E9D6E3E9 D6E4E7DBE5E7DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DEE6E8DEE6E8DEE6E8DEE6E8 DEE6E8DEE6E8DEE6E8DEE6E8D9E3E4D9E3E4D9E3E4D9E3E4D9E3E4D9E3E4D9E3E4D9E3E4DBE5E6 DBE5E6DAE4E5D9E3E4D8E2E3D8E2E3D7E1E2D7E1E2D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5 D9E3E5D9E3E5DBE5E7DBE5E7DBE5E7DBE5E7DBE5E7DBE5E7DBE5E7DBE5E7D7E1E3D7E1E3D7E1E3 D7E1E3D7E1E3D7E1E3D7E1E3D7E1E3D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E4 D9E3E2D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0D9E4E0D7E2DED7E2DED7E2DED7E2DED7E2DE D7E2DED7E2DED7E2DED7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D5DFE0D5DFE0 D5DFE0D5DFE0D5DFE0D5DFE0D5DFE0D5DFDED8E2E1D8E3DFD8E3DFD8E3DFD9E2DFD9E2DFDBE1DF DBE1DFDADEDDDADEDDDEDEDEE1E1E1E4E4E4E8E8E8EDEBECEEEEECE9EBE6F4F9F2F3F6EDF1F7EB B9BCB15B61535155466970605A5E4F353C2C2D312322281A21241B292F252C2F28313630242D2A 1822210E1817111B1A1E2829353F3E505A59646E6DAEB8B9C6D0D1D1DBDDEBF5F7EAF4F6B5BFC1 4F595B46504F49554B454D3E312E1F4033235C42335C3B2C6F4A3A845F4D906F5C7053419B8170 F4E1D0F5E3D5F4E3D9F0DFD8ECDDD6E4D8CCEFE3D5FCEEE1FFF3E3F6E6D9DDCDBEC0B0A1AE9D8D 95847292816F8F7D698E7C68917C69927D68927D688F7C6E76666978687275696D6C60605B524D 4B4539413B2B3C39262726121C1B0711120010120414160915180F13151010120F0F0F0D11110F 0E0E0C0F110E1719141B1D181D1F1A2627213A3A32413E354B443A544A405E5045645246604C41 5A4236614537644739644737624535614432624533684B396D523F7156457B64545A44363B281A 5140366C5E53766961867A6E8675638D7B63968166917A5A705631876B43D0B387D8BD90CFB789 CBB48AB09E78A99C7C958E746C6A555A5B4D5153465D5D51686659A49E8EB7AE9DA19682786D59 3E3623322C1C3230244143383A3B335B5B51918D81837C6A4D422E271C0A534F435E5E56686B64 6D726B5C62568386739E977BB2A27ED0B485D6B580D4AF7AD6B580BFA4778C7A56B7AD92C5C1A6 C6C09EB5AB87917E5E6F54375F3B23542B15582D1A6A412F8867549A7F6AB6A18CCBBCA5D5C9B3 D6CBB5D4C9B5D3C8B4DECFBADECFBADECFBADDCEB9DDCEBBDDCEBBDDCEBBDCCDBADBCCB9DACDBA DBCEBBDCCFBCDCCFBCDBCEBBDACDBCD9CCBBDCCCBCDBCEBDD8D0BDD7D2BED5D4BFD3D5BFD7D5BE D9D4BEE2D7C3D4C7B46E5D496E5F4ABEB39DACA68E6E6D514F513B5A5E50595E57525951465047 475148535D525B655A5A6555525B488D957EB5BBA1BDC0A3C8C9A7CDCBA5CDC8A2D3CEA6DED9B1 A6A17B807A58A39C7FD1CAAED1CAAEC8C1A4D0CAA8D4CFA99D9870B3AE88D1CBA7C4BDA0CAC3A9 ADA59256504259594F5C5F565A5B5356574F5457504C514A4753474D5E4E4A5F4E455D47697C66 A5B59BAEB39CC7C5AECEC3AD5C57447B8779D2E6DAD0DCD2D0D8CDD4D4CAD7D5C9D3CFC3D2D0C1 D6D7C7D5D9C8D3DAC8D2D9C9D4D6C8D6D4C8D8D1C7D7D0C8DEDED6DADBD3D5D6CED0D1C9CBCCC4 CBCCC4D0D1C9D6D7CFD4D5CDD4D5CDD3D4CCD3D4CCD2D3CBD1D2CAD0D1C9D0D1C9D2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9 D0D2C7C9C9BFD1D1C5DBD9CDDADACED7D5C9CECEC2C7C5B9BFBFB3E1E1E3E0E2E1E2E2E4E1E3E2 E3E3E5E2E4E3E4E4E6E3E5E4E2E2E4E2E4E3E3E3E5E2E4E3E3E3E5E3E5E4E4E4E6E3E5E4E5E5E5 E4E6E5E5E5E5E4E6E5E5E5E5E4E6E5E5E5E5E4E6E5E4E4E4E3E5E4E5E5E5E5E7E6E6E6E6E6E8E7 E8E8E8E8E8E8EBEBEBEBEBEBECECECEDEDEDEEEEEEEEEEEEEFEFEFEFEFEFEFEFEFEFEFEFEEEEEE EEEEEEEDEDEDECECECEBEBEBEAECEBE9EBEAE7EBEAE6EAE9E6EAE9E5E9E8E4E8E7E3E7E6E3E7E6 E0E4E3DDE1E0E2E6E5E5E9E8E1E5E4E0E4E3D3D7D6B9BEBAC0C2BFCACFC9BCC1BDD6DFDAC4CECD A6B5B27785853545443949483D4D4C636F6D8A95917E8784B1B7B3D1D3CEBBC6C28AA4A33C5C5B 223E3F2F4845364646303C3C565C5CABACAECECECEC9C9C9D6D7D9E5E9EAE4E8EBDEE6E8DFE9EB DDE7E9DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7E0E8EAE0E8EAE1E9EBE0E8EA DFE7E9DDE5E7DAE2E4D8E2E4D8E1E6D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D7E2E8D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DFE5D3E0E6D2E1E6D3E2E7D3E2E7D4E3E8D5E4E9 D5E4E9D5E4E9D5E4E9D5E4E9D4E3E8D3E2E7D3E2E7D2E1E6D1E0E5D1E0E5D1E3E7D0E3E7D1E3E7 D0E3E7D1E3E7D0E3E7D1E3E7D0E3E7CFE1E5CEE1E5CFE1E5CEE1E5CFE1E5CEE1E5CFE1E5CFE1E5 D0E2E6D0E2E6D2E1E6D0E2E6D2E1E6D0E2E6D2E1E6D0E2E6D4E3E8D2E4E8D4E3E8D2E4E8D4E3E8 D2E4E8D4E3E8D5E3E6DAE4E6DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5DDE5E7DDE5E7 DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7D8E2E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3 D7E3E3D9E5E5D9E5E5D8E4E4D8E4E4D7E3E3D6E2E2D5E1E1D5E1E1D7E2E4D7E2E6D7E2E6D7E2E6 D7E2E6D7E2E6D7E2E6D7E2E6D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D8E3E7D5E0E4 D5E0E4D5E0E4D5E0E4D5E0E4D5E0E4D5E0E4D5E0E4D7E2E6D7E2E6D7E2E6D7E2E6D7E2E6D7E2E6 D7E2E6D7E2E4D7E3E1D7E3DFD7E3DFD7E3DFD7E3DFD7E3DFD7E3DFD7E3DFD5E1DDD5E1DDD5E1DD D5E1DDD5E1DDD5E1DDD5E1DDD5E1DDD5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1 D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0DED6E0DFD6E1DDD6E1DDD6E1DDD7E0DD D7E0DDD9DFDDD9DFDDDBDFDEDBDFDEDFDFDFE1E1E1E4E4E4E8E8E8ECEAEBEFEEECF0F1ECF2F5EE EBECE4EEF1E6D2D4C990948675776975796A606254393D2E2D2F222226181C1D151F2219181913 171914111717242C2E424A4C60686A838B8EAFB7B9D8E0E2F0F8FADDE5E7E0E8EAD6DEE0CAD2D4 AFB7B9848C8E434B4D464F4C343C314A4E3F5D5646837262947767835C4B8A5F4E996E5B805A45 613E2A9A7E69FFE9D8F8E2D4EEDACFF2DFD8F7E4DDFFEFE2F2E2D3DDCDBEC5B5A5B2A092A49383 9D8C7C9B88799A8776968372937E6D917C698F7A678873607E6956735F5443333640303A392C33 2E222621171618110B130F041311040C0D000E1002101405101608121A0D141E131822191D221E 120C101F151D2D24293B32374A4144544B4E584E4F594D4D6A5B58624F4B5C453F5F443D65443B 69443B6B43396C45366E4B376F4C366E4B356A473168462D6D4B3275553C7D5F45765840826851 6F5942604B3677665490816E968979A09382A49580B9A98FC6B395C4B08DB39C73BAA276E0C596 E4CA99D6BE8ED9C296C3B18BAC9F7D7C755B47453038392B31332644443A4B473C817B6DA79E8F 8E82724C4030231C0C322F206C6C6273746C68696372736B9A988C8E8777554A383A2E1E686459 686963686D67666D664E544A6C6F5E948D73A89874CFB485D4B37ED3AE77D2B17CBFA4778D7E57 BAB396D8D4B7D3CDABCBC19DB7A4849F866889695076523A7E5A449B7864BA9E89C2AC95CDBDA6 D6CAB4D9CEBAD7CCB8D6CBB9D6C9B6E2D3BEE2D1BDE0D1BCDFD0BBDDCEBBDBCCB9D8CBB8D7CAB7 DCCFBEDDD0BFDED1C0DED3C1DED3C1DED3C1DCD0C0DCCFBFDFCFC0DDD0C0DBD2C1D9D4C1D7D6C1 D6D8C2DAD8C3DCD7C3E3D8C4D8CBB87564526E5F4CC5BAA4B6B09878765D4E503A62665861675D 5A61594E584F4F595058645A5F6B5F5D695B505B4A89927DB4B9A2BFC2A5C8C8A6CDCBA5CEC9A3 D1C9A2E1DCB69A94705E58369D9679E0D9BDD8D1B5D5CEB1D2CCAAD2CDA7A29D75AAA57DCDC8A2 C5BF9FCBC4AAB1A99666605258584E595C5361625A5E5F5750534C4E534C5561555667574B604F 455D47667963A2B298AFB49DC6C4ADD0C5AF6863506D796DCDE1D6D3DFD5D4DCD1D2D2C8D1CFC3 D2D0C3D6D7C9D2D4C6D2D6C7D1D8C8D2D9C9D5D7CAD6D6CCD9D5CCD8D4CBCECEC6CFD0C8CFD0C8 CECFC7D0D1C9D4D5CDD7D8D0D7D8D0D5D6CED5D6CED4D5CDD3D4CCD2D3CBD2D3CBD1D2CAD1D2CA D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9 D0D1C9D0D1C9D1D1C7D2CFC6C0BEB2A8A499918F83817D727371656A665B636155E0E0E0E0E0E0 E1E1E1E3E3E3E4E4E4E5E5E5E6E6E6E6E6E6E3E3E3E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E1E1E1 E1E1E1E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E5E5E5E6E6E6 E6E6E6E7E7E7E8E8E8E8E8E8EAEAEAEBEBEBEBEBEBECECECEDEDEDEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEDEDEDECECECEBEBEBEBEBEBE9EBEAEAECEBE7EBEAE7EBEAE6EAE9E5E9E8E5E9E8 E4E8E7E4E8E7E1E5E4DDE1E0DEE2E1E2E6E5E3E7E6DBDFDEC6CAC9AFB4B0C5C7C4C5CAC4BEC3BF D0D9D4BAC4C3A5B4B17785854959583545445E6E6D7682807B868278817EB9BFBBD6D8D3C4CFCB 7B98963054521C3C3B28423F2A3C3C323E3E636969B5B6B8CECECECAC8C9D6D6D8E6E7E9E3E7EA DDE5E7DDE7E9DAE5E7DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DFE7E9E0E8EA E0E8EAE0E8EADFE7E9DDE5E7DBE3E5D9E3E5D9E2E7D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D3DEE4D1DEE4D5E2E8D4E3E8D4E3E8D4E3E8 D5E4E9D5E4E9D5E4E9D5E4E9D5E4E9D5E4E9D4E3E8D3E2E7D3E2E7D2E1E6D1E0E5CFE1E5D0E3E7 D0E3E7D0E3E7D0E3E7D0E3E7D0E3E7D0E3E7D0E3E7CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5 CEE1E5CEE1E5CFE1E5CFE1E5CFE1E5CFE1E5CFE1E5CFE1E5CFE1E5CFE1E5D1E3E7D1E3E7D1E3E7 D1E3E7D1E3E7D1E3E7D1E3E7D3E2E5D9E3E5DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DBE5E6D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2 D6E2E2D6E2E2D6E2E2D8E4E4D8E4E4D8E4E4D7E3E3D6E2E2D5E1E1D5E1E1D4DFE1D6E1E5D6E1E5 D6E1E5D6E1E5D6E1E5D6E1E5D6E1E5D6E1E5D7E2E6D7E2E6D7E2E6D7E2E6D7E2E6D7E2E6D7E2E6 D7E2E6D4DFE3D4DFE3D4DFE3D4DFE3D4DFE3D4DFE3D4DFE3D4DFE3D6E1E5D6E1E5D6E1E5D6E1E5 D6E1E5D6E1E5D6E1E5D6E1E3D6E2E0D6E2DED6E2DED6E2DED6E2DED6E2DED6E2DED6E2DED4E0DC D4E0DCD4E0DCD4E0DCD4E0DCD4E0DCD4E0DCD4E0DCD4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0 D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0DED5DFDED5E0DCD5E0DC D5E0DCD6DFDCD6DFDCD8DEDCD8DEDCDCE0DFDCE0DFDFDFDFE1E1E1E4E4E4E7E7E7EBE9EAEDECEA F7F8F3EDEEE8E0E1DBECEDE5EFF1E6C5C7BA8E90836F71634F514337392B3B3D3037392E2E2F27 2D2E26262721282A275A5E5F878C8FBCC1C5D8DDE0E0E5E8E0E5E8DADFE2D2D8D8CED4D4B5BBBB 8F95955F6565414747393F3D3238364C524E747C6FA1A395D0C9B9F6E3D4DFBEAFA07666906350 9669548359435D39239A7B67FFECDBFBE4D6EDD9CEF1DDD6F2DFD8C2B0A4BAAA9BB19F91A69486 9E8C7E9B897B9B897B9C8A7C92817185746473625263524257443547362637241528170D291B1B 23161D1B1014150B0C110907130E0A18150E1B1B110B0D02181C0E202416171D0F0C14050B1306 0F1A0C171A1123191A3D2C325A494F5E4F544F40454334374131323F2D2D1C07062209053A1B16 5E3C337B534B88594F8E5C51926353704A3373503476533779563A7C593B8463449271529A7B5C A78A6CB59C7EB19C7FAD9C80C0B097CCBEA4C7BBA5C6BCA3D0C4ACDED0B5DBCBAAD5C39DD6C196 D7BF8FD7C08ED3BC88D8C18FDAC495C0AE86988B695B5138312C193B392C41413757544B59554C 756F639E9689877E6F413829362E215B574C5B5A5564666167696661625C827F76857F71544737 4A3E304E4A414445403D423E393F3B252A23494B3D928C74B1A17FD0B588D4B37ED5B27AD3B27C C0A8788F8059B6AF92E2DEC1CEC8A6CCC29FC7B698C6AE92BA9E86A4866EA78873C1A691CEBAA2 D0C0A9D5C9B3DACFB9DCD1BDDDD2BEDED1C0DFCFBFE2D1BFE2D1BDE0D1BCDFD0BBDECFBCDDCEBB DACDBADACDBADDD0BFDED3C1DFD4C2E1D6C4E1D5C5E1D5C5E0D4C4DFD3C3DFD2C2DFD2C2DDD4C3 DBD6C3D9D8C3D8DAC4DCDAC5DED9C5E9DECAE0D3C07B6A58655643C4B9A3BDB79F87856C555741 686C5D666E635E665B505A514C574F535F55556258526051525D4D87907DB6BBA4C3C6A9C9C8A9 D1CDA8D3CBA6D0C8A1E6E1BB9E98744F492990896CD9D2B6D3CCB0D6CFB2C6C09ED2CDA7ACA77F A49F77CDC8A2C8C2A2CBC4A8B0A893716B5B454539383B324849415758504C4F48494E47525E52 5263534C6150435B4560735DA0B096B3B8A1C6C4ADD0C5AF736E5B626E62C5D6CECCD7CFD1D6CF D3D3CBD7D4CBDCDACEE2E3D5D6D8CAD2D9C9D1D8C8D0D6C8D2D5CAD4D4CAD8D4CBD8D4CBD6D6CE D7D8D0D7D8D0D5D6CED6D7CFD7D8D0D6D7CFD3D4CCD6D7CFD5D6CED5D6CED4D5CDD3D4CCD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9 D0D1C9D0D1C9D0D1C9D0D1C9D1D1C7B4B0A7918A806B645A615A506A6359746D63777066766F65 E0E0E0E0E0E0E1E1E1E3E3E3E4E4E4E5E5E5E6E6E6E6E6E6E3E3E3E3E3E3E2E2E2E2E2E2E1E1E1 E1E1E1E1E1E1E1E1E1E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4 E5E5E5E6E6E6E6E6E6E7E7E7E8E8E8E8E8E8EAEAEAEAEAEAEAEAEAEBEBEBECECECEDEDEDEDEDED EEEEEEEEEEEEEDEDEDEDEDEDECECECEBEBEBEAEAEAEAEAEAE9EBEAE9EBEAE7EBEAE6EAE9E5E9E8 E4E8E7E4E8E7E3E7E6E3E7E6E3E7E6DFE3E2DADEDDDEE2E1E2E6E5D4D8D7BCC0BFAEB3AFC8CAC7 BFC4BEC4C9C5D0D9D4B7C1C0A6B5B2717F7F526261566665ABBBBA9BA7A566716D77807DC7CDC9 D1D3CEBFCBC77492902D5451234544304D49314544404E4E757E7DC0C1C3CECECECAC8C9D6D6D8 E6E7E9E2E6E9DBE3E5DBE5E7D8E3E5DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6 DEE6E8DFE7E9E0E8EAE0E8EADFE7E9DEE6E8DCE4E6DAE4E6D9E2E7D8E3E9D8E3E9D8E3E9D8E3E9 D8E3E9D8E3E9D8E3E9D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DFE5D7E4EAD6E5EA D6E5EAD6E5EAD5E4E9D5E4E9D5E4E9D5E4E9D5E4E9D5E4E9D4E3E8D3E2E7D3E2E7D2E1E6D1E0E5 CFE1E5D0E3E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7CDE2E5CDE2E5CDE2E5CDE2E5 CDE2E5CDE2E5CDE2E5CEE1E5CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7D1E2E9 D1E2E9D1E2E9D1E2E9D1E2E9D1E2E9D1E2E9D3E2E7D9E3E5DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DBE5E6D6E2E2D4E2E2D4E2E2 D4E2E2D4E2E2D4E2E2D4E2E2D4E2E2D6E4E4D5E3E3D5E3E3D4E2E2D3E1E1D2E0E0D2E0E0D2E0E1 D4E2E5D4E1E7D4E1E7D4E1E7D4E1E7D4E1E7D4E1E7D4E1E7D3E0E6D3E0E6D3E0E6D3E0E6D3E0E6 D3E0E6D3E0E6D3E0E6D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D4E1E7D4E1E7 D4E1E7D4E1E7D4E1E7D4E1E7D4E1E7D4E2E5D4E3E0D4E3DED4E3DED4E3DED4E3DED4E3DED4E3DE D4E3DED2E1DCD2E1DCD2E1DCD2E1DCD2E1DCD2E1DCD2E1DCD2E1DCD2E0E0D2E0E0D2E0E0D2E0E0 D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D4E0DED5DFDE D5E0DCD5E0DCD5E0DCD6DFDCD6DFDCD8DEDCD8DEDCDDE1E0DDE1E0E0E0E0E1E1E1E3E3E3E7E7E7 EAE8E9ECEBE9EFF0EBEFF0EAEFF0EAEFF0E8ECEEE3CBCDC0989A8D828477595B4E4B4D4056584D 4B4D4233342C2B2C26282924343432A6A6A8C9C9CBE7E6EBE6E6E8CDCDCFAEAEAE9090907B7B7B 5353514A4A4843443F363732575853878882ACADA7D2D5CCD2DACFDEE2D4EEE6D9F7E5D7C9A99C 8962538D5F4F9F725F7F5441633E2B9D7E6CFFE8D9F2DCCFD2BEB5B09D97988780918076938578 99897C97877A8D7C727C6B61685A4F5C4E4343352A392B202D1F14261A0E25170C201408190B00 0E04002019131E19161E19151F1A16201B171F1C171D1A151B181311110918180E1515090B0C00 0B0E00171A071E210E1F1C0D2E1D16483332685352604C4B311F1D1A080627151334211D513C37 543B3664473F7D5B518A6258885C4F865648875A479772579B7A5BA48362AE8D6CB89774C3A27F CCAE8AD3B792D3BB97DAC3A1D7C4A3D2C3A2D5C7AAD1C8A9C3BCA0B9B497AAA387A39A7D918462 8C7D56AE9C6ECEBA87D3BC88D7C08AD5BE8AD3BF8DB9A87D8C7F5D4D432A36311E5A584B69665D 76736C77726C766F659C94898E84784840334B443A6E6B646E6F6A6B706C696D6C4C4E4B6E6B64 7F796D392B1E24180C2A251F1A1A18151918161C1A0910093335279C967EC1B390D3B88BD5B47F D9B67ED5B47EC6AE7E908158ACA686E1DDC0D5D0B0D0C7A6CCBDA0D3BFA4D6BEA6C2A993BBA58E CAB8A2D0C4ACCFC7B0D1CBB3D6D0BADBD3C0DFD2C1DFCFC0DFCEBEDECDBBDECDB9DFCEBAE0CFBB E0D1BEE1D2BFE0D3C0E0D3C0DDD2C0DED3C1E0D4C4E0D7C6E1D8C9E1D8C9E1D8C9E0D7C8E0D3C3 E0D3C3DED5C4DCD7C4DAD9C5D9DBC6DCDAC5DFDAC6E6DBC9E4D7C68372605F503DC5BAA6C3BDA7 9290775658425E62535D6558575F544A54494652484C594F4F5C524B594C566153868F7CB8BDA6 C8CBAECCC9AAD5CFABD9D0A9CFC69FD0C8A396906C453F1F6F684BB1AA8EC0B99DD8D1B4CBC5A3 D4CFA9B8B38BA09B73D0CBA5CDC7A7CAC3A7ABA38E79736348483C2B2E25393A32585951555851 484D464753474657474D62513F57415669539AAA90B5BAA3C6C4ADD0C5AF7D78655D695DBFD0C8 C8D3CBD2D7D0D9D9D1DEDAD1DDD9CEDEDCD0DBDDD0D6DCCED2D8CACFD5C7D0D3C8D1D1C7D4D1CA D5D2CBD3D3CBD0D1C9CFD0C8CFD0C8D0D1C9D3D4CCD7D8D0DBDCD4D6D7CFD6D7CFD6D7CFD5D6CE D4D5CDD3D4CCD3D4CCD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD0D1C9 D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D1D1C7CFC8C0B8AFA6A89F96AAA198ACA39AA1988F 948B828E857CE1E1E1E1E1E1E2E2E2E2E2E2E3E3E3E3E3E3E4E4E4E4E4E4E0E0E0E0E0E0E0E0E0 E1E1E1E1E1E1E1E1E1E1E1E1E2E2E2E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3 E4E4E4E4E4E4E5E5E5E6E6E6E6E6E6E7E7E7E8E8E8E8E8E8E9E9E9E9E9E9EAEAEAEAEAEAEBEBEB ECECECEDEDEDEDEDEDEDEDEDEDEDEDECECECEBEBEBEAEAEAEAEAEAE9E9E9E8EAE9E7E9E8E5E9E8 E4E8E7E3E7E6E2E6E5E2E6E5E1E5E4E1E5E4E4E8E7E0E4E3D8DCDBDBDFDEE1E5E4CFD3D2B6BAB9 B2B7B3C1C3C0B3B8B2C9CECAD5DED9BBC5C4A7B6B36270704A5A59677776CBDBDAA2AEAC55605C 79827FCFD5D1C7C9C4B0BCB871918E315A5632565444635E445A585866668A9392C7C8CACFCFCF CAC8C9D6D6D8E5E6E8E1E5E8DAE2E4DAE4E6D6E1E3DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5 DBE3E5DBE3E5DDE5E7DEE6E8DFE7E9E0E8EAE0E8EADEE6E8DDE5E7DBE5E7DAE3E8D9E4EAD9E4EA D9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D4E1E7 D9E6ECD8E7ECD7E6EBD7E6EBD6E5EAD5E4E9D5E4E9D5E4E9D5E4E9D5E4E9D4E3E8D3E2E7D3E2E7 D2E1E6D1E0E5CFE1E5D0E3E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7CDE2E5CDE2E5 CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE0E6CEDFE6CEDFE6CEDFE6CEDFE6CEDFE6CEDFE6 CEDFE6D0E1E8D0E1E8D0E1E8D0E1E8D0E1E8D0E1E8D0E1E8D2E1E6D8E2E4D9E1E3D9E1E3D9E1E3 D9E1E3D9E1E3D9E1E3D9E1E3DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5DAE4E5D5E1E1 D3E1E1D3E1E1D3E1E1D3E1E1D3E1E1D3E1E1D3E1E1D5E3E3D5E3E3D4E2E2D3E1E1D2E0E0D2E0E0 D1DFDFD1DFE0D3E1E4D3E0E6D3E0E6D3E0E6D3E0E6D3E0E6D3E0E6D3E0E6D2DFE5D2DFE5D2DFE5 D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5D1DEE4D1DEE4D1DEE4D1DEE4D1DEE4D1DEE4D1DEE4D1DEE4 D3E0E6D3E0E6D3E0E6D3E0E6D3E0E6D3E0E6D3E0E6D3E1E4D3E2DFD3E2DDD3E2DDD3E2DDD3E2DD D3E2DDD3E2DDD3E2DDD1E0DBD1E0DBD1E0DBD1E0DBD1E0DBD1E0DBD1E0DBD1E0DBD1DFDFD1DFDF D1DFDFD1DFDFD1DFDFD1DFDFD1DFDFD1DFDFD2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0D2E0E0 D2E1DED5E1DFD6E1DDD6E1DDD6E1DDD7E0DDD7E0DDD9DFDDD9DFDDDEE2E1DEE2E1E1E1E1E1E1E1 E3E3E3E6E6E6EAE8E9EBE9EAF0F0EEEFF0EBF2F3EDE8E9E3E2E3DBCBCDC2A2A499999B8E818376 71736675776C6061593F403A3536303738334A4947C0BCBDBCB8B9A9A3A5858182605A5A454140 383330312E29322D293E3B34544F49605D54A9A59CD3D1C5DCD8CDE5E5D9E9F1E6DAE0D6DCD8CD EFDED4CCAEA3936D608E63539166558F66546845326A4D3D9C8577917D74907D77897775867774 867770786B6263564D4C3F36392C242C1F1723191020160D1F150C1C130C1D140D201913281F1A 29221C261F191F1B121F1F151A1A0E15150B13130913130B13100B100D080C090419140E17130A 100A000F090028230F4B452F5650384E432D4130204C362968544966544838271D2A1C114F4239 6D61557B6D62806E62897668997F72A48777AE8D7CBC9785C5A18BD0AF90D0B290D6B894DDBF9B E4C6A0E8CAA4E6CAA3E1CAA1D9C39CCEBC96C1B38EB2A884A59C7B9793708986677F7C5D696447 6660406E64417F7349B3A576DFCE9ADCC790D9C48BD2BD88D0BC8ABAA97E90816053493045402D 6C685D716E6766635E69645E5750488B82798E847A3D352A352E28433F3C2B2D2C1E2223232728 111312625F5AA0998F4B3D321E12061D18140C0C0C0D1112161C1A0B120B2D3123A7A189CBBD9A D5BA8DD4B37EDAB77FD6B57FCCB48492835AA19B7BDDD9BCDDD8BAD6CDB0CDBFA4D1C1A8D9C7AF D0BEA8C9BAA3D2C7B1D3CDB5CFCDB4D0CEB7D3D1BADAD2BFDDD0BFDBC9BBD8C5B6DDCCBADECDB9 DFCEBAE0CFBBE1D2BFE3D4C1E2D5C2E3D6C3DCD1BFDDD2C0DED5C4E0D7C6E2D9CAE2D9CAE1DACA E1D8C9DFD1C4DFD2C2DDD4C3DCD7C4DAD9C5D8DAC5DCDAC5DED9C5DDD2C0E5D8C78B7A685D4E3B C6BBA7C7C1AB99977E52543E4F53425157494E5649454F444652464F5C52536056505E51546052 828B78B7BCA6CACDB0CBC8A9D4CEAADAD1AACAC19AAFA7829993716C6646837C5FAEA78DBFB89C D8D1B4D9D3B1D5D0AAC2BD959A956DD0CBA5D1CBABCAC3A7AAA28D847E6E78786C5F625965665E 7C7D75787B7460655E535F535364545166553C543E485B458E9E84B4B9A2C5C3ACD0C5AF88816F 586257C0CFC8CED7D2DADCD7DAD7D2D5D0CACECAC1CECCC0D0D2C5CFD3C5CED4C6D0D6C8D3D6CB D8D8CEDBD8D1DCD9D2D5D5CDD2D3CBD9DAD2E4E5DDE1E2DAD4D5CDD2D3CBDADBD3D7D8D0D7D8D0 D6D7CFD6D7CFD5D6CED4D5CDD3D4CCD3D4CCD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D3D0C7D7CEC7D4CAC1D0C6BDC0B6AD 91877E564C43352B22332920E4E3E1E4E3E1E3E2E0E3E2E0E2E1DFE2E1DFE1E0DEE1E0DEDEDDDB DEDDDBDFDEDCE1E0DEE2E1DFE3E2E0E4E3E1E5E4E2E3E1E2E3E1E2E3E1E2E3E1E2E3E1E2E3E1E2 E3E1E2E3E1E2E5E3E4E5E3E4E6E4E5E7E5E6E7E5E6E8E6E7E9E7E8E9E7E8E8E8E8E8E8E8E9E9E9 EAEAEAEBEBEBEBEBEBECECECECECECECECECECECECEBEBEBEBEBEBEAEAEAE9E9E9E8E8E8E7E9E8 E4E6E5E2E6E5E1E5E4E1E5E4E0E4E3DFE3E2DFE3E2DEE2E1E2E6E5E1E5E4D9DDDCDCE0DFE3E7E6 CBCFCEB3B7B6B6BBB7BBBDBAA8ADA7C9CECAD5DED9B9C3C2A4B3B0515F5F3D4D4C46565590A09F 6D7977404B47727B78CDD3CFCBCDC8B5C1BD6D908C2F5955335A57476762465F5C617170949D9C C8C9CBCFCFCFCAC8C9D6D6D8E5E6E8E0E4E7D9E1E3D8E2E4D5E0E2DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6DDE5E7DEE6E8E0E8EAE0E8EADFE7E9DEE6E8DCE6E8DBE4E9 DAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBDAE5EBD9E4EAD9E4EAD9E4EAD9E4EAD9E4EAD9E4EA D9E4EAD7E4EADAE7EDD9E8EDD8E7ECD7E6EBD6E5EAD5E4E9D5E4E9D4E3E8D5E4E9D5E4E9D4E3E8 D3E2E7D3E2E7D2E1E6D1E0E5CFE1E5D0E3E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7CFE4E7 CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CCDFE5CCDFE5CCDFE5CCDFE5CCDFE5 CCDFE5CCDFE5CCDFE5CEE1E7CEE1E7CEE1E7CEE1E7CEE1E7CEE1E7CEE1E7D1E0E5D7E1E3D8E0E2 D8E0E2D8E0E2D8E0E2D8E0E2D8E0E2D8E0E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 D9E3E4D2E0E0D1E1E0D1E1E0D1E1E0D1E1E0D1E1E0D1E1E0D1E1E0D3E3E2D3E3E2D2E2E1D2E2E1 D1E1E0D0E0DFCFDFDECFDFDFD1E0E3D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E3D1E1DED1E2DCD1E2DC D1E2DCD1E2DCD1E2DCD1E2DCD1E2DCCFE0DACFE0DACFE0DACFE0DACFE0DACFE0DACFE0DACFE0DA CFDFDECFDFDECFDFDECFDFDECFDFDECFDFDECFDFDECFDFDED1E1E0D1E1E0D1E1E0D1E1E0D1E1E0 D1E1E0D1E1E0D2E1DED7E3E1D8E3DFD8E3DFD8E3DFD9E2DFD9E2DFDBE1DFDBE1DFDFE3E2DEE2E1 E1E1E1E2E2E2E3E3E3E5E5E5E9E7E8EAE8E9F3F2F0E6E5E1E9E8E3E2E1DCE7E7DFDADAD0AEAEA4 A8A89E9A9A9082827882827A73736B5D5C575B5A555B5A566B67665A51524D43443C3030302625 2E23213026243B302C443B3440362D50483D62584E71695CD3C9BDF5EEDEE0D7C8D1CFC2DEE8DF C9D2CDD6D3CCF8E9E2DBBEB69A756C82584C7147395F3829614031694D418771667968616F605D 524346483C3E3C312D342923291E181E130D170E09160D0818100D1A120F25201C241F1C221E1B 21201E231F1E1F1E1C1B191A161711181F0F131B060E1503121607191B101F1F17211E19201B17 160F09271D1431251936291850412C73634A7E6F52746546645538584A2F73674D897F666D674F 615F487E7D6894937F8A89759F9C89B6B19DC3BBA6C9BDA7CDBDA6D0BCA4D2BAA0DBC1A0D9BD98 D8BC97DBBF9ADDC19AD7BE96CAB38ABFA98093815984764F7B724B75704A6B6845656541626343 5B5C3C8281638481609F9975ADA479C9BD8DE5D5A1D5C28ACDB87FD3BE89CAB886B6A57A8F805F 4F452C3E372557504648433D3936313A3531231C16797067948A81352C2318130F1413111E1F21 0D1114161A1D010204676360BFB8B056483D130600201B180C0C0C101415191F1F0C120E24281A A9A38BC9BB98D4B98CCFAE79D6B37BD3B27CCFB78795885E9B9774DCDBBDD5D0B3D9CFB4D4C8AE D6C7B0DCCDB6D7CBB5D3CBB4DCD7C1D5D5BDD0D2BACED0BAD4D3BEDCD5C3E1D4C4E0CDBFDCC6B8 E2CFBEE1D0BCE1D0BCE2D1BDE1D2BFE1D2BFDFD2C1E0D3C2DACEBEDCD0C0DDD4C5DFD6C7E0D9C9 E1DACAE1D9CCE1D8C9DED0C3DED0C3DCD3C4DAD4C4D8D7C3D7D9C4DBD9C4DDD8C4DACFBDE7DAC9 8F7E6C544532C0B5A1C5BFA99F9D865557414E513E5158484F57484853454A564A54625557675C 556356515D4F7B8471B3B6A1CACAAEC7C2A4D3CBA7D9CDA7C5B993C4BC97C8C2A0C4BE9EC5BEA1 C4BDA3BAB397C0B99CD3CDABD3CEA8C7C29A918C62CDC8A2D2CCACCBC4A8AFA792958F7F9F9F93 A2A59CA2A39B9E9F9791948D787D76667266687969586D5C3A523C3A4D37809076AEB39CC3C1AA D1C6B0928B794B554CBDCCC5D2DBD6D6D8D3C9C6C1C0BBB5C5C1B8D2CFC6CDCDC1CED2C4D1D7CB D6DCD0D9DCD3D9D9D1D8D5D0D5D2CDE1E1D9D4D5CDD3D4CCD9DAD2C9CAC2ACADA5A9AAA2BBBCB4 D8D9D1D8D9D1D7D8D0D6D7CFD5D6CED5D6CED4D5CDD4D5CDD2D3CBD2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D3D0C7CFC6BFD7CAC2 DBCEC6C7BAB28B7E764C3F373B2E264B3E36E5E3E4E5E4E2E4E2E3E2E1DFE1DFE0E0DFDDDFDDDE DFDEDCDCDADBDCDBD9DEDCDDE0DFDDE2E0E1E4E3E1E5E3E4E5E5E5E1E3E2E1E3E2E1E3E2E1E3E2 E1E3E2E2E2E2E2E2E2E2E2E2E4E4E4E5E3E4E6E4E5E7E5E6E7E5E6E8E6E7E9E7E8E9E7E8E8E8E6 E8E8E6E9E9E7E9E9E7EAEAE8EBEBE9ECECEAECECEAECECEAECECEAEBEBE9EAEAE8E9E9E7E9E9E7 E8E8E6E7E9E6E1E5E4DFE5E3E0E4E3DEE4E2DEE2E1DCE2E0DDE1E0DCE2E0DFE3E2E0E6E4DADEDD DDE3E1E5E9E8C9CFCDB1B5B4B8BCBBBBBDBAA4A6A3C6CBC7D0D6D4B3BCB9A1ABAA495553384744 66747486959265716F515C587B8481CAD0CCCAD0CCB4C3BE6D8D882A534F2C504C3C5B563C524F 5C6C69939D9CC4C8C7CED0CFC9C9C9D6D6D6E4E5E7E0E4E5DADFE2D9E1E4D5DFE1D9E3E4D9E3E4 DAE2E4D9E3E4DAE2E4D9E3E4DAE2E4D9E3E4DCE4E6DCE6E7DEE6E8DEE8E9E0E8EADEE8E9DEE6E8 DCE6E8DBE4E9DAE5E9DBE4E9DAE5E9DBE4E9DAE5E9DBE4E9DAE5E9DBE4E9DAE5E9DBE4E9DAE5E9 DBE4E9DAE5E9DBE4E9DAE5E9DBE9ECDBE9ECDAE8EBD9E7EAD8E6E9D6E4E7D6E4E7D4E3E6D5E4E7 D5E4E9D4E3E8D3E2E7D3E2E7D2E1E6D1E0E5CFE1E5D0E3E7D0E3E7D0E3E7D0E3E7D0E3E7D0E3E7 D0E3E7D0E3E7CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CCDFE5CBE0E5CCDFE5 CBE0E5CCDFE5CBE0E5CCDFE5CBE0E5CEE1E7CDE2E7CEE1E7CDE2E7CEE1E7CDE2E7CEE1E7CFE1E5 D4E2E3D6E2E2D7E1E2D6E2E2D7E1E2D6E2E2D7E1E2D6E2E2D9E3E4D8E4E4D9E3E4D8E4E4D9E3E4 D8E4E4D9E3E4D8E4E4D1E1E0D1E1E0D1E1E0D1E1E0D1E1E0D1E1E0D1E1E0D1E1E0D3E3E2D3E3E2 D2E2E1D1E1E0D0E0DFD0E0DFCFDFDECFDFDFD1E0E3D1E0E3D1E0E5D1E0E3D1E0E5D1E0E3D1E0E5 D1E0E3CFDEE3CFDEE1CFDEE3CFDEE1CFDEE3CFDEE1CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E3CFE2E0 CFE2DECFE2DECFE2DECFE2DECFE2E0CFE2E0CFE2E0CDE0DECDDFDFCDDFDFCDDFDFCDDFDFCDDFDF CDDFE1CDDFE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDFDFCFDFDFCFDFDFD1E1E1D1E1E1D1E1E1 D1E1E1D1E1E1D1E1E1D1E1E1D2E0E0D9E3E2D9E4E0DAE3E0DAE3E0DAE3E0DAE3E0DCE2E0DCE2E0 DFE3E2DFE3E2E0E2E1E1E3E2E2E4E3E4E6E5E8E8E8E9E9E9E3E4DFDDDCD7ECEBE6E9E9E1ECECE4 DFDCD3B5B2A9B7B4ABAAA69D89857C817A726E676158514B4E44423D33313C312F3E2F2C382624 3A282649373552403E4E3C3A46373245362F362A1E3F33253D3425473E2DC2B9AAF4EBDCE2DBCB D9D5C9B2B7B1949A96989491B4A9A597827F654C48694C466C4F496F544D755E565E4B454D3E39 302221291D1D180C101F1315211614201712201712211715211916231B19231D1D241E1E241E1E 201C1B1C181718141316121116121116121118140B1513001B1A0029270E3D3B264E4B3A554F41 4F483E483F361F150C4C3F366F615473635373644F82745A8A7F63877C5E675E3F534C2F7F7A5C B9B697BBBA9CB5B599C0C4A9C5C9B0C6CCB2D4D8BFD8DAC2CDCCB0C5BEA2C8BD9FCEBFA0D2BE9D DBC19ED8BA94D5B791D8BC94DEC398D9C195CAB58ABAA97E72663E6A623D74704D858465909172 9A9D80A4A88DA3A78C9194798687689693708B865C968B5DBCAF7AC9B880D6C389D3C088C6B482 AE9D7284755441351D2A2112352E2417120E1E1D191B1714050000797069A79E9541382F1B1610 100F0B111214080C0F1C2023020305696864CFC8C25E544A180E05221D1A0B090A0D0E10131718 030804181A0FA39E88C4B797D0B98FC9AB79D0AF7ACEAE7BD0B88898895E9D9571E2DDBFCEC7AB DDD6BCE3D9C0E0D6BDDFD5BCD9CEB8D5CFB7DDD9C0D6D6BCD0D2BAD0D0B8D6D4BFE1D8C7EADACB E9D6C8E4D1C3E6D5C3E5D4C0E4D3BFE3D2BEE1D0BEE0CFBDDECFBCDDCDBDDACDBCDCCFBFDED2C4 E1D5C7E0D7C8E1D7CBE0D8CBE1D7CBDDCFC2DDD0C0DBD2C3D9D4C1D7D6C2D8D7C2DAD8C3DCD7C1 DED3BFEADDCA8D7E6B493A25B4A993C0BAA2A4A2895D5F47585B485A6151595F514F5A4C4F5B4F 56645759665C5563564E594B767D6BAFB39CC8C7ABC3BE9ED0C6A2D7C9A4C1B38CBBB38EC7C19D D8D2B0CCC6A6B4AD90A0997CA8A282D6D0AED1CCA6C8C39B8A855DC9C49ED1CBABCDC6AAB4AC95 A29D899FA090BCC0B1BBBFB19FA3958C8F84787E746A7469707E716171643C4F3C32433077856E A9AE98C0BFAACFC9B396938041493EBAC7BECFD9D1C8CDC7B0B3ACABACA4C4C4BCE4E4DADDDDD1 DFE1D3E3E5D7E2E4D6DCDCD0CFCFC5C3C0B9BCB7B1A6A29988857C78756C78786E6E706562655A 7E8178ABAEA5D8D9D1D8D9D1D8D8D0D8D8D0D7D7CFD6D6CCD4D6CBD4D6CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D1D1C7 D2C9C0D2C8BFD3C6BEBEB1A885776E4739303A29214C3B31E0E0E2E0E0E0E0E0E2E0E0E0E0E0E2 E0E0E0E0E0E2E0E0E0E2E2E4E2E2E2E2E2E4E2E2E2E2E2E4E2E2E2E2E2E4E1E3E2D8E1DED6E2DE D7E2DED7E2DED8E1DEDAE0DEDBDFDEDBDFDEE3E5E4E4E4E4E6E4E5E7E5E6EAE6E7EAE6E7EBE7E8 EBE7E6ECEDE8EBEDE8EBEDE8EBEDE8EBEDE8EBEDE8EBEDE8EBEDE8E8EAE5E8EAE5E7E9E4E7E9E4 E6E8E3E5E7E2E4E6E1E4E6E1DEE4E0DCE5E2DEE4E2DCE5E2DEE4E2DCE5E2DEE4E2DCE5E2DCE2E0 D8E1DEDAE0DED8E1DED9DFDDD1DAD7CAD0CEC2C8C6C6C8C7AEAEAEDADCDBCACCCBB8BCBBA0A6A4 434C493B4441858F8EBFCAC69FAAA6C2CDC9BEC9C5BFCAC6D5E0DCAFC0BA5C79741737322B4843 344D472E433C53645C828F88C3CCC7C6CCC8CED3CFD8DDD9DFE3E2E1E5E6E2E6E7E1E6E9E0E8EA D9E3E4D8E4E4D9E3E4D8E4E4D9E3E4D8E4E4D9E3E4D8E4E4DDE7E8DCE8E8DDE7E8DCE8E8DDE7E8 DCE8E8DDE7E8DDE7E8D9E3E5D9E3E5DAE2E5D9E3E5DAE2E5D9E3E5DAE2E5D9E3E5DCE4E7DBE5E7 DDE5E8DDE7E9DEE6E9DEE8EAE0E8EBDFE9EADFE9E8DEE8E7DEE8E7DDE7E6DBE7E5DBE7E7DAE6E6 D8E6E7D3E1E2D2E1E4D2E1E4D1E3E5D1E3E7D1E3E7D2E4E8D2E4E8CFE0E7CFE0E7CFE0E7CFE0E7 CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CFE0E7CDE2E5 CBE3E5CDE2E5CBE3E5CDE2E5CBE3E5CDE2E5CBE3E5CDE2E5CBE3E5CDE2E5CBE3E5CDE2E5CBE3E5 CDE2E5CDE2E5D2E4E4D1E3E3D1E1E1CEE0E0CFDFDFCEE0E0D1E1E1D0E2E2D3E3E3D1E3E3D3E3E3 D1E3E3D3E3E3D1E3E3D3E3E3D1E3E3CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDF CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCFDFDFCFDFDFCFDEE1CFDFDFCFDEE1 CFDFDFCFDEE1CFDFDFCFDEE1CFDFDFCFDEE1CFDFDFCFDEE1CFDFDFCFDEE1CFDEE1CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 CFE1E3CCE0E1CBE1DFCBE0E1CBE0E1CBE0E1CBE0E3CBE0E5CBE0E5CADDE4CADCE6CADCE8CADCE8 CADCEACADCEACADBEBCADCEACBDCE6CBDCE4CBDCE4CBDCE4CBDCE4CBDCE3CBDCE3CBDCE3CDDFE3 CDDFE3CEE0E4CFE1E5D0E2E4D0E2E4D1E3E5D4E2E3D9E3E4DAE3E2DCE2E2DBE1E1DAE0E0D9DFDF D8DEDED7DDDDDAE0E0DFE5E5E6EAEBE0E4E5DCE0E1E6EAEBE8ECEDD9DEDAE2E5DEDEE0D5F7F7ED F4F4EAE9E6DDCECABF989187887F766B61585C4D463F2E273825213A25223B23214129273D2420 51362F472C25442825432928422829442C2C493431493831483A2F59503F857E6CB0AB98B5AF9F 989586838175848178938F8C888483827C7E7872746B626762595E534A4F3B3539352F33221C20 201A1E1812141C1316201718150B0C1B0F0F2B201C2A1F19271E19261C1A22191A1D1417171115 150F130B050722191A1B1110180D092F221C33241D35271C5643326143296A4B2E785D40756045 705F4582735C7F705D56493827170864544776685B6B62537A756283826E82866F8F947D6D6F5A 73725ED4D2BBCDCBB2CFCEB2D6D7B8C0C0A4D4D7BAC8CCB1AFB297B6B69AA5A082A69776CEBA97 D9BD96D5B58EDEBC96D4B38AD8B78CE8C899DDBF8DDDC392E4CFA0BBAE82C1BC96B4B3949DA188 8D927E707463616556393B2D4043323E453349513950553572724C888455B5AB76C5B67DD1C186 CCB97FC9B884C8B78BA7977563543D2E22141F160F1E19151F1F1D0A0C09080500716D64BEB6AB 534B401A160B16130C181816181C1B0D1112080C0B51524DC8C5BE686157231A11100B080C0809 1212121517160103001F2116A5A28FBFB59ACCBA96CCB58BCCB182CEB283CBB385A08B6093815B DCCFADD7CEB1D5D0B3D7D0B4D6CFB3D2CBAFD0C9AFD1CAB0D3CCB2DED8BEDED8C0DCD4BFDACFBD DDD0C0E5D5C6E8D6CAE5D3C5DDCDBDDDCEBBDECDBBDECDBBDFCDB9DFCDB9DFCDB9DFCCBBE5D2C3 E3D1C3DECEC1DCCCBFDED0C5E2D5CCDED4CBDACDC4E1D1C4E2D2C2D9D0BFCFCAB6C9C7B2CCCCB4 D1CFB8D4D0B7DDD2BCE0D4BCA0917A453921ADA38AC4BEA4AAAB8C575A3F5C5F4C5C6353585E50 4C57494B574B5460545A665A5965575058496D7160BFC1ABCFCBB0D1C8A7D6CAA4D2C39CAB9C73 B3AA81C6C199D6D1A9C8C39DACA781A29C78B8B28ED4CEAAD8D2AEAFA985534D29B0AA88CFC9A9 C3BC9FB1AA8E9B977A94997BC4CDB0C8D0B8A9B19A99A090787E72495146383F3738423A252F26 252F24747C6DA4AB99B7BCA6CCD0B99598834B5242ACB7A9B1BDB3A6B1A9B2BDB5D6E1D9C6CEC3 BFC2B7BEBFAFA8A592A19E8B8C87747875647976676A685C625E53776B5F82766A877F72848275 9FA394B7BDAFB9C1B4D3D9CDD5D8CFD7D7CFD9D6CDDAD6CDD9D6CDD9D7CBD7D7CBD7D7CBD6D8CD D6D7CFD5D6CED4D5CDD4D5CDD3D4CCD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9 D0D1C9D1D1C7D7D3C8D2CABFCBC1B7C2B6AA9A8A7D5743383C2418503629E0E0E2DFE0E2E0E0E2 DFE0E2E0E0E2DFE0E2E0E0E2DFE0E2E2E2E4E1E2E4E2E2E4E1E2E4E2E2E4E1E2E4E2E2E4DFE3E4 D7E3DFD4E5DFD5E4DFD7E3DFD8E3DFD8E3DFDBE1DFDBE1DFE2E4E3E3E5E4E4E4E4E6E4E5E9E5E6 EAE6E7EBE5E7EBE7E6EBECE7EAEDE6EAEDE6EAEDE6EAEDE6EAEDE6EAEDE6EAEDE6E7EAE3E7EAE3 E7EAE3E6E9E2E5E8E1E4E7E0E4E7E0E1E6E0DEE4E0DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2DCE5E2 DCE5E2D7E0DDD6DFDCD7E0DDD8E1DED6DFDCCED7D4C2CBC8BAC0BEB0B2B1A8A8A8DCDCDCCECECE B4B6B5989A99494D4C484E4C6A706EA0A9A6656E6B838E8AB6C1BDC2CECABAC6C298A9A369827E 26413C314A44344B4330433D5768608A978ECBD6CEBFC6BFC8CFC8D4D9D5DADFDBDBDFE0D9DDDE D8DCDFD8DDE0D8E2E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3DAE6E6DAE6E6DAE6E6 DAE6E6DAE6E6DAE6E6DAE6E6DAE6E6DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DCE4E6DCE4E6DDE5E7DEE6E8DEE6E8DFE7E9E0E8EAE0E9E8E1EAE7E1EAE5E0E9E6DFE8E5DEE9E5 DDE8E4DBE7E7DBE7E7D4E2E3D3E3E3D3E2E5D1E3E5D1E3E7D1E3E7D1E4E8D1E4E8D1E0E7D1E0E7 D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7 CFE0E7CDE2E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5 CBE3E5CBE3E5CBE3E5CDE2E3CCE0E1CCE0DFCCE0DFCCE0DFCDE1E0CFE3E2D0E4E3D1E5E4D0E4E3 D0E4E3D0E4E3D0E4E3D0E4E3D0E4E3D0E4E3D0E4E3CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDF CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 D1E0E5D1E0E5CFE1E5CCE0E1CBE1DFCBE0E1CBE0E1CBE0E3CBE0E5CBDFE6CBDFE8CADCE8CADCE8 CADBEBCADBEBCADBEDCADBEFCADBEFCADBEDCBDBEACDDBE6CDDBE6CDDBE6CDDBE6CDDBE4CDDBE4 CDDCE3CFDEE5CFDEE3D0DFE4D0DFE2D1E0E3D2E1E4D3E2E5D4E2E3DBE5E6DCE2E2DAE0E0DBE1E1 DDE3E3DEE4E4DDE3E3DBE1E1DCE2E2E1E7E7DEE4E4D7DDDBD9DFDFE4EAE8E7EBEADFE4E0EBEEE5 C6C8BBAAAA9E817F736864595F584E453C33483B33362720402F2845302B4C34304E322F4B2F2C 4F312F4C2F2B50322A50332B4A2C2A55383A694F52664D50715D5E9C8A86A3978BAAA393BDB8A5 C8C7B5BCBAAB9D9F928E8F878F908A6D6865605758554C4F453F43312F3428272D1E1E260C0F16 1A1A2210101816151B12101517111520171A1910112318161F120A23150C22150F1F1410201615 241A1B22191C1C13161E1415251B1A1C0E0B291A1359473D6C594B6B56457C614C966E548E6547 8F6C4E8E73558873568E7D63867760675B455646367C6F5F8D8475908A7A9899899BA491A2AF9B B5C4AF8C95847B7F6EC7C9B4B8B8A0A3A38998987C7D7D6185886D6C705752543C5A593D5D5639 7D6D4BBFA87FDFBE91E6C496DAB78DD4B187DAB588E5C393D9B885D7BB89D3BE8F9D91676C6946 575B403039241B2616262E23535851474842474A3F7681716E7A645F65497175528B885BBBB480 C7BB81CCBC81D2BF85D0BC87D1BE93B6A68475654E3B2D202A1F192D25222828261E201B16130C 6F685EBBB3A65C5246251D12211D1411100B1719161214130C0E0B474842C1BEB56A63591E150C 1D140F15100D15110E14130F0809031E1E12969380B6AF95C9BA99C8B58DC9B185CFB487CEB68A A18A60947E57DECEACDBD2B3D9D4B7DBD6B9DCD7BADCD5B9DDD6BAE0D6BBE2D8BDD8CEB5DCD1BB E1D4C1E3D6C5E4D7C7E4D4C5DCCCBFD4C4B5DECEBFDECEBEDFCEBCDFCEBCE0CEBAE2CDBAE2CDBA E2CDBAE7D1C3E3D0C1DDCBBFD7C7BAD5C7BED8CBC2D9CEC8DBCEC6E6D6C9E1D4C3DAD2BFD7D2BE D7D5C0D6D6BECFCDB6C8C4ABABA08AC4B8A0A09278493D23A69C81BEB99CACAD8D626749505541 565C4E525A4D424C413E4A3E48554B4F5C524C584C4651435D6452AAAC96B7B69AC2BC9CD9CCA9 E3D4ADC3B68CABA47AAEA97FAEA97FA6A1779F9A72A7A27ABFBA94D5D0AADBD5B1B6B08C585232 AEA888D3CCAFC3BC9FAEA78A9794759296738F96747F866782886E898E785C605126291E1E2118 080B04090C0520231A787C6EA9AD9CBCC1ADD3D8C2A8AD972F3624949C8DB4C0B4BECBC1BECDC6 BCCCC2909C927F8577716F606B6652847C678D85708F88759A94849B978BA6A094A393869D8B7D 8E82747F7C6B9A9E8FB6BFAEB5BDB0C4CCBFD5D8CFD7D7CFDAD6CDDAD6CDDAD6CBD9D7CBD7D8CA D6D8CBD6D8CDD6D7CFD5D6CED4D5CDD4D5CDD3D4CCD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9 D0D1C9D0D1C9D0D1C9D1D1C7D5D3C7D3CDC1D0C8BBCBBFB1A69488634D3F43271B503325DDDEE0 DBDFE0DDDEE0DBDFE0DDDEE0DBDFE0DDDEE0DBDFE0DFE0E2DDE1E2DFE0E2DDE1E2DFE0E2DDE1E2 DFE0E2DCE2E2D8E4E0D6E5E0D8E4E0D8E4E0D9E4E0D9E4E0DCE2E0DCE2E0E1E3E2E2E4E3E3E3E3 E5E3E4E8E4E5E9E5E6E9E5E6E7E6E4E9EBE6E7ECE5E7ECE5E7ECE5E7ECE5E7ECE5E7ECE5E7ECE5 E4E9E2E4E9E2E3E8E1E2E7E0E2E7E0E1E6DFE0E5DEE0E5DFDCE2DEDAE3E0DAE3E0DAE3E0DAE3E0 DAE3E0DAE3E0DAE3E0D4DDDAD5DEDBD7E0DDD8E1DED5DEDBCAD3D0BAC3C0B1B7B5B9BDBCA8AAA9 C9CBCAC4C6C5B9BBBAA1A3A2555958464C4A717775A6AFAC565F5C5F6865B6BFBCCBD6D2B4BFBB A5B4AF596F6C213A362D443E3348413748425C6B648B968EC4CEC6C2C9C2CDD2CCDADFDBE0E5E1 DEE2E3DADEDFD7DCDFD5DDDFD6E0E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D7E3E3 D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DCE4E6DCE4E6DDE5E7DEE6E8DEE6E8DFE7E9E0E8EAE0E9E8E3ECE9E3ECE7E2EBE8 E1EAE7E0EBE7DFEAE6DDE9E9DDE9E9D5E3E4D4E4E4D4E3E6D2E4E6D2E4E8D2E4E8D0E3E7D0E3E7 D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7 D1E0E7D1E0E7CFE0E7CDE2E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5 CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CDE2E3CDE1E2CEE0E0CEE0E0CEE0E0CEE0E0CEE0E0CEE0E0 CEE0E0D0E2E2D0E2E2D0E2E2D0E2E2D0E2E2D0E2E2D0E2E2D0E2E2CDDFDFCDDFDFCDDFDFCDDFDF CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D0DFE4D0DFE4D0DFE4 D0DFE4D0DFE4D0DFE4D0DFE4D0DFE2CCDEDECCDFDDCCDEDECCDEDECCDEE0CCDEE0CCDEE2CCDDE4 CBDCE4CBDCE4CBDBE8CBDBE8CBDBEACBDBEACBDBEBCDDAEACEDAE6D0DAE4D0DAE4D0DAE3D0DAE3 D0DBE1D0DBE1D0DBDFD1DCE0D1DCDED2DDDFD3DFDFD4E0E0D4E0DED5E1DFD5E1DFDCE6E7D9E1E3 D7DFE1D9E1E3DEE7E6DFE8E7DEE4E4DAE0E0D9DDDCE3E7E6E0E4E3DADFDBDBDFDED0D5D1BABCB9 ABADA8787A6F6262564F4F43373529302C21383127322920392C2442332C4E3D36513E38442F2A 3A221E4027235135325D413D553C37705752786060836D708772776350546F5F62BEB3B1E3DAD1 CECABEB5B3A4999B8D7D7F725E645A4B504A464845312D2A28201E271E1F262020221C1E242021 2722261F1D202A2529201B1F231F201B15171D1717251C1D18100E1A0F0B1E0D032A180A312114 3224193C2F27483B35423733332826271C18241711190A0336251B7865579883728F7A67917760 9475598C6A4E8F7457988567988A6F9A90759E967F9A947EA29988ABA494B4AE9EB5B3A4ADB1A0 A2AF9BA9BBA3BACCB496A28E575F4A7A7D686A6C565B5B435D5D455D5D4561634D838671727560 7D7D658A8366A49673CDB88DD8B98AD3B181DAB88BDAB88BE1BC8FE5C393D8B784D7BB89C6B484 7F73496A67465B5F46313A271C27193F494089908873766F55584FA4AF9F899780626B506A6E4B 88855AC0B887CABD86C8B77FD3C088CEBA87D5C095C3B08F8270584333242F221A342A28312D2A 2E2B26201911675D53BCAEA167594C2B1F132A2017100B0515140F14130F0D0C083F3A34BFB6AD 776A611F130720130B1C110B160F09140F0916130A2321128F8A76C2B99CCCBC9ACAB48BC9B185 D1B689D1B98DA28B61938058DDCFACDCD3B4D9D4B7D8D3B6D7D2B5D6D1B4D5D0B3D5CEB4D5CEB4 DFD7C0DDD5BEDED3BFDED3C1DED2C2DDD0C0DACCBFD9CCBCDFCFC0DFCFBFE0CFBDE0CFBDE1CFBB E1CFBBE3CEBBE3CEBBE1CEBFE0CDBEE1CFC3E3D3C6E1D3CADCCFC6D4C9C3D2C5BDC1B3A8B3A797 A19A8895937E8B8A75797961615F48504C3358503990846C988A7050442AA9A083C5C0A2B9B899 73775C383F2D47514649554939463C38483E4F5F555E6E645B6B60546255616C5CABB09CBBBDA5 C6C2A5D2CCACDAD0ADBEB58EB5AE84A9A47A9E996F9D986EA9A47CBBB68ECAC59FD3CEA8DDD7B3 C0BA965E5838A9A383D6CFB2C1BA9DA8A184918C6E9C9D7B9096747F84647A7F616C7057363924 1114031D1F112C2E20404235595B4D868978878A778A8D78B9BDA6BABDA8414534939B8CC5CFC4 D7E4DAD2E1DAC9D6CDA2ACA39B9F91C8C5B6A29B889B907C9285727D72606962525751455D5349 5442364F3C2E45392B3F392966685A9BA493B4BCAFCED4C8D4D7CED6D6CED8D5CCD9D5CCD9D5CA D8D6CAD5D7C9D5D7CAD6D8CDD6D7CFD5D6CED4D5CDD4D5CDD3D4CCD2D3CBD2D3CBD0D1C9D0D1C9 D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D1D1C7D3D1C5D5CFC3D7CFC2D5C9BBB3A195715B4D482E21 4C3022D9DFDFD9DFDFD9DFDFD9DFDFD9DFDFD9DFDFD9DFDFD9DFDFDBE1E1DBE1E1DBE1E1DBE1E1 DBE1E1DBE1E1DBE1E1D9E2E1D9E5E1D9E5E1D9E5E1D9E5E1DAE5E1DBE4E1DDE3E1DDE3E1DEE2E1 E0E2E1E2E2E2E2E2E2E4E2E3E7E3E4E8E4E5E6E5E3E6E8E3E4E9E2E4E9E2E4E9E2E4E9E2E4E9E2 E4E9E2E4E9E2E2E7E0E2E7E0E1E6DFE0E5DEE0E5DEDFE4DDDEE3DCDDE4DDD9E2DDD9E2DFD9E2DF D9E2DFD9E2DFD9E2DFD9E2DFD9E2DFD5DEDBD6DFDCD9E2DFDAE3E0D6DFDCC8D1CEB7C0BDABB1AF ABAFAE9597969EA09F9FA1A0A3A5A49496955E62614D5150979D9BC6CCCA848A886D7673AEB4B2 C3CCC9BCC5C2C4D0CC576A682B413E2F423E3647413F4E4966736C949E96C8CFC8BFC4BECACFC9 D7DCD8DEE3DFDDE1E2D8DEDED5DADDD2DADCD5DFE0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0D4E0E0 D4E0E0D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6DCE4E6DDE5E7DEE6E8DEE6E8DFE7E9E0E8EAE0E9E8E4EDEA E4EDE8E3ECE9E3ECE9E1ECE8E0EBE7DFEBEBDEEAEAD7E5E6D6E6E6D5E4E7D3E5E7D2E4E8D2E4E8 D0E3E7D0E3E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7D1E0E7 D1E0E7D1E0E7D1E0E7D1E0E7CFE0E7CDE2E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5 CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CBE3E5CDE2E3D0E4E5D1E3E3D1E3E3CFE1E1CDDFDF CBDDDDC9DBDBC8DADACFE1E1CFE1E1CFE1E1CFE1E1CFE1E1CFE1E1CFE1E1CFE1E1CDDFDFCDDFDF CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDF CDDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE1CEDCDCCEDDDACEDDDACEDCDCCEDCDCCEDCDD CEDCDFCEDBE1CEDBE1CEDBE3CEDBE4CDDBE4CEDAE6CDDBE6CEDAE8CEDAE6D1D9E4D1DAE3D2D9E3 D1DAE1D2D9E1D1DADFD2D9DFD1DBDDD2DADDD2DCDDD3DCDBD3DEDAD5DEDBD5E0DAD6DFDAD5E0DC DBE5E6D7E1E2D6DEE0D9E1E3DEE6E8DEE7E6D7DDDDCFD5D3F4F8F7E2E7E3B7B9B68C8E89757671 595A553D3E3934352D29261D2F2D2139352A39352A40392F4B42394D433A4E443B281B133C2D26 55443D57443E66514C86716C9A827EA5908BB09B968C79755644443323262112191A0D14554A4E B6AEAC938E8876766A5254473A3E3030362C2A312A1E2724161C1A2D2C2A25201D2A221F302825 29211E261E1B29201B261D18281F1A1F1611201815170F0C1C141128201D181310170E073F2E1E 513F2B5D4A39604F3F6A5A4D73655A65574E4B3E361A0B04180A011A09003C2A1C796655998471 9480688F79619D83689E866AA59478ABA084A9A487ABA990B8B69FC2C1ACBBB8A7B7B5A6BCBDAD BEC1B0B1BAA7ADBCA7B3CAB0BAD1B79FAD965B654D7D826B8D917A90927C989A85A3A492939685 7C8071777A697978647C775A908360B3A075CEB481DBBB88DFBD90E4C295E9C497E7C595DCBC89 E1C595C8B688736A41585738555B4135402F2C382C59635BA2A9A27C7E79484E449CA99883917A 5A63485E62417D7B52BDB787CCBF8AC9B880CFBB86C8B280D1BA90C6AF8F8470583D2B1D28170F 2F211E372E292C231E1C0F06645447C2AFA17562532E1C0E2A1C111D130A1A130B0F0A060E0701 3B302AC0B2A988766A2B190B28160A2D1D10271A111D150A221C0E27220F888069D2C4A7D0BE98 CDB88DCBB385D3B88BD3BB8FA68F6596835BDFD1AEE1D8B9DCD7BADAD5B8D9D4B7DAD5B8DAD4BA D8D1B7D6CEB7E2DAC3DDD5C0DCD4C1DFD7C4E1D5C5DFD3C3E3D7C9EBDECEDED1C1E0D0C0E1D0BE E1D0BEE2D0BCE2D0BCE4CFBCE2D0BCDAC7B8C4B3A3AE9E91A5978A9F92898F857B7D726C72685F 6E62565C53444C453544412E40422D41432D494833534E387A725BACA289B5A68F594D33A1987B BFBA9CAFAE8F64684D4851405B675B5B685E4151473B4C4454655D66776F63746A546459515D4F 97A08DB9BDA6C6C6ACC8C4A7D0CAAAC5BD99CCC79FC2BD93BAB58BBEB98FCAC59DD3CEA6D3CEA8 CFCAA4DAD4B0C8C29E635D3D9F9979D6CFB2BEB79AA39C7F8E896B46462464654571725268694A 6262465E5E446868507F7E698A89749796829D9C88A09F8B81806C787762AAA994C1C3AE4F5342 8D9586C5CFC4CFDBD1CBD8D1D1DED5C4CEC5C8CABDB1AB9D685D4B45362342311F4232223B2F21 2D2319372A2148322749332645372A3630204E4F418B9282B7BFB2DCE2D6D3D6CDD5D5CDD7D4CB D7D4CBD7D5C9D5D5C9D3D7C8D3D7C9D6D8CDD6D7CFD5D6CED4D5CDD4D5CDD3D4CCD2D3CBD2D3CB D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D1D1C7D1CFC3D4D0C4D8D0C3D8CCBEBBA99D 7C66584E3427492D1FD5DEDDD5DEDDD5DEDDD5DEDDD5DEDDD5DEDDD5DEDDD5DEDDD7E0DFD7E0DF D7E0DFD7E0DFD7E0DFD7E0DFD7E0DFD6E0DFD9E4E0D9E4E0D9E4E0D9E4E0DAE3E0DAE3E0DCE2E0 DCE2E0DCE0DFDCE0DFDFE1E0E1E1E1E2E2E2E3E1E2E4E2E3E3E3E1E2E7E1E1E8E1E1E8E1E1E8E1 E1E8E1E1E8E1E1E8E1E1E8E1DFE6DFDFE6DFDEE5DEDDE4DDDDE4DDDCE3DCDBE2DBDBE2DBD7E0DB D7E0DDD7E0DDD7E0DDD7E0DDD7E0DDD7E0DDD7E0DDD7E0DDD8E1DEDAE3E0DBE4E1D6DFDCC9D2CF B7C0BDABB1AFA1A5A4989C9B999D9C9DA1A09DA1A0969A998E92919296958E9291A7ABAA8E9291 6E7472838786949A989FA5A3A5AEAB69777744575539484536423E404B47626B668F968FB9BEB8 C0C5BFCBCDC8D5DAD6DEE3DFE1E7E7E0E6E6DEE3E6DBE3E5D5DFE0D4E0E0D4E0E0D4E0E0D4E0E0 D4E0E0D4E0E0D4E0E0D3DFDFD3DFDFD3DFDFD3DFDFD3DFDFD3DFDFD3DFDFD3DFDFDAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6DCE4E6DDE5E7DEE6E8DEE6E8DFE7E9E0E8EA E0E9E8E4EDEAE4EDE8E3ECE9E3ECE9E1ECE8E0EBE7DFEBEBDEEAEAD9E7E8D8E8E8D7E6E9D4E6E8 D3E5E9D2E4E8D0E3E7D0E3E7D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFE1E5CEE1E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5 CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E3C8DCDDCBDDDDCDDFDF CFE1E1CFE1E1CEE0E0CDDFDFCCDEDECFE1E1CFE1E1CFE1E1CFE1E1CFE1E1CFE1E1CFE1E1CFE1E1 CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDF CDDFDFCDDFDFCDDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D0DEE1D0DCDAD1DCD8D1DCD8D1DBDA D0DCDAD0DCDCD0DCDCD0DBDDD0DBDFD0DBE1D0DBE1CEDBE3D0DAE3CEDBE3D0DAE4D0DAE4D2D9E3 D2D9E1D4D8E1D2D9DFD4D9DFD2DADDD4D9DCD2DBDAD4DADAD2DBD8D4DAD6D3DDD5D6DDD6D5DFD7 D7DED6D6DFDAD9E3E4D5E0E2D4DEE0D8E2E3DCE4E6D8E1E0CED4D4C3C9C77074735F615E444540 35363035342F36362E3A37303F3C334841374F483E453E34362F2530271E382F26453B32443A31 7F726A7A6D657E6F6870615A8B7A73C0AFA8CAB9B2CEBDB6BCADA8675956312323271B1F1E131B 261C24423B425450512C2B2722251C181E12161E111A241B202B25212B2A1F28272D2D2B221F1A 241F192C251B241A111D1105221407241609211306291B0E34281C1F170C191009241F1924211C 31281F6D5D467F6A4F856F58816C578673628D7C6C7D6D606153464131244B3B2E59493A756452 988672AA9882AD9B83AF9E84BCAB91C0B297BAB397B4B397B6B99EB7BCA5B6BBA5B4B9A5BFC2B1 C0C2B4C8CCBDCBD2C2C7D4C0CEE1CBD4ECD4CEE6CCC1D1B788957B9199818489726162504E4F3F 5F61544A4D4431342D4A4D445657475D59406E6440938254C3AC76E1C38DDCBC8DE3C193E6C292 E1C08DD9B986E3C998CDBB8D736A4168674860654E3D48382E3C2F535E56959F97767B754E554D 8693827B89725B64495C603F77754EB8B183CCBF8BCBBA84D2BC8ACBB383D4BB92C7AE8F866D57 3E281A28140B301D1743342D291B121F0D01695345CBB1A2876C5B3B2112331D0F34221826180F 100300140700413028BDA99E927B6B4127163E241346311E4433233023122F24122C210B7D7256 CBBC9BCFBC94D0B98DD0B586D2B788D3BB8FAA946B988660DACCA9DDD4B5D6D1B4D5D0B3D8D3B6 DED8BEE1DBC1DFD9C1DCD6C0D0CAB4D0C9B6D7D0BDDFD8C6D9D0C1CBC2B3CAC1B2D3CAB9DDD0C0 DDD0BFDFD0BDDFD0BDE0CFBBE0CFBBE1CFBBE1CFBBAC998A7C6B5B4D3D303F312445382F463C32 453A34453B324D4339534B3E635D4F72715F73766373766182846E9A9881BBB39CD5CBB2CCBDA6 564A30958C6FC4BFA1B8B8966B7052505948636F63626F6546564C3F5048566A61697D746A7B71 6373684E5C4D8F9A89BCC1ABC8CAB2BFBEA2CCC9AAD1CDAAD5D0A8D4CFA5D5D0A6D9D4AADBD6AE D9D4ACD3CEA8CEC9A3D3CDA9CFC9A5666040928C6CD5CEB1BBB497A29B7E958E71817C5E969173 9893758B8666908B6DA39E7EABA688AAA587B3AE90AFAA8DACA68CB6B098B3AD97B1AA97C4BDAA C9C6B54C4F3E828A7BCDD7CCCDD9CFC5D2CBD3DED6CCD3CBC4C4B8B7AFA25F52413623123B2615 443122412F2337261E45322B553D33533B2F4E3E31322B1B3D3B2E777B6CA3A99DBEC4B8D3D6CD D4D5CDD5D5CBD5D5CBD5D5C9D4D6C9D1D8C8D1D7C9D5D8CDD6D7CFD5D6CED4D5CDD4D5CDD3D4CC D2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D1D1C7D0CEC2D3CFC3D5CDC0 D2C9BABBAB9E816E5F52382B462A1CD3DDDCD3DEDAD3DDDCD3DEDAD3DDDCD3DEDAD3DDDCD3DEDA D5DFDED5E0DCD5DFDED5E0DCD5DFDED5E0DCD5DFDED5E0DCD7E2DED7E2DED8E1DED8E1DED8E1DE D8E1DEDAE0DEDAE0DEDBDFDEDBDFDEDDDFDEDEE0DFE0E0E0E1E1E1E1E1E1E2E2E2DFE4E0DEE5DE DEE5DEDEE5DEDEE5DEDEE5DEDEE5DEDEE5DEDDE4DDDDE4DDDCE3DCDBE2DBDBE2DBDAE1DAD9E0D9 D9DFDBD6DFDCD6DFDCD6DFDCD6DFDCD6DFDCD6DFDCD6DFDCD6DFDCD8E1DED8E1DED9E2DFD9E2DF D4DDDAC8D1CEB8C1BEACB5B29498978B8F8E7B7F7E868A898D91908A8E8D939796949897989C9B 969A99A1A5A48A8E8D8F93929B9F9E9FA3A2989E9C7E8A8A6F7D7D65716F646F6B6A7370767C78 878C86999E98B1B3AEB6B8B3BEC3BFCBD0CCD5DBDBDBE1E1DAE2E4D8E2E3D6E0E1D5E1E1D5E1E1 D5E1E1D5E1E1D5E1E1D5E1E1D5E1E1D3DFDFD3DFDFD3DFDFD3DFDFD3DFDFD3DFDFD3DFDFD3DFDF DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6DCE4E6DDE5E7DEE6E8DEE6E8 DFE7E9E0E8EAE0E9E8E3ECE9E3ECE7E2EBE8E1EAE7E0EBE7DFEAE6DDE9E9DDE9E9DBE9EAD9E9E9 D8E7EAD5E7E9D3E5E9D2E4E8D0E3E7CFE2E6D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFE1E5CEE1E5CDE2E5CDE2E5CDE2E5 CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CDE2E5CEE2E3BDCFD1 C0D2D2C9D9D9CDDFDFD4E4E4D4E6E6D6E6E6D4E6E6D0E0E0CEE0E0D0E0E0CEE0E0D0E0E0CEE0E0 D0E0E0CEE0E0CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCDDFDF CDDFDFCDDFDFCDDFDFCDDFDFCDDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDEE3CFDEE3CFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CEDDE2CEDDE2CEDDE2CEDDE2CEDDE2CEDDE2CEDDE2CFDDE0D0DADBD0DAD9 D1DAD9D0DAD9D0DADBD0DADBD0DADCCFDADCD1DADFD0DBDFD0DBE1D0DBE1D0DBE1CEDBE1D0DAE3 D0DAE3D2D9E1D2D9E1D4D8E1D2D9DFD4D9DFD2DADDD4D9DCD2DBDAD3D9D9D1DAD7D4DAD6D2DCD4 D5DCD5D4DED5D7DED6D5DFD7D5E1E1D3DEE2D3DDDFD5DFE1D7DFE1D3DCDBCBD1D1C4C8C7464845 33342F31302B39362F34312A3632293B372E39322830271E41382F41372E4E453C675E5581786F 9389808379705C524942382F352B222319105B4E46B7AAA2CFC2BAD3C9C0CDC2BC615853291F1E 251C1F191219312C325F5A6068666710110C1619101D2518212C1E1E281F17221A182221202928 1A1C170E0E061814092B23162B1F0F2C1C0C3B2A164A38224A38225D4C38685848382C1C0D0500 0B070013130B2D271B85755C907B5E907C618D796193816B9E8D7B9A8A7A8C7F6F938676A09383 B1A493BBAE9BBEAF9AC1B29BC7B99FCCBEA4C9BFA6CAC4AABEBEA4BDC1A8CDD7BED2DEC6C6D2BC C1CAB7D3DACAD6DACBCED5C5C4CDBCBAC7B5A9BCA691A99180987E6E816562705669735A485039 1E21101C1E1161645D696B683A3E3D6E736D7D7F747775607C7450918354BDA86FD4BB82D5B584 DBB98BDCB888D8B784D2B27FDFC594CCB98E756C4563624458604937423228352B47524A869088 6B726B4E554D8C998886947D666E5662654676744DB9B085CCBE8DCBBA86D8C290D4BC8EDBC29A CAB08F8A70594C3022391E133F261F523E35362013341A0D6D5040BE9D8A8B6A574E2F1B432817 432C1E3824191D0B0129150C4C3428AA9081896A5853341F4B2D154F351C543E26402E1643331A 4232187E6D4FBAA884C4AD83CFB789D3B787CFB485D1B98DAE986F96845ECABD9BE0D9BCD8D3B6 D2CDB0D3CDB3D7D1B7D7D1B9D1CBB5CBC4B1D0C9B6C7C2AFC3BEABBEB8A8ABA595999383A39D8D BBB4A2DACEBEDBCEBDDDCEBBDDCEBBDECDB9DECDB9DFCDB9DECDB9AA99897D6D5D56483B564A3C 645A506D655A756C657E756E978E859892869E9C8F9E9F8F898D7C757A667E816C9A998497917B B9AE98C1B59D51452B92896CCFCAACC5C5A3777A5D4F56445E695B5D695D4653493C4C414C5E52 5A6B615A6A5F4A58493D4A398B9481BEC6AFCDD1B8C0C0A4C7C6A7C9C6A3CCC79FD0CBA1D5D0A6 D5D0A6D2CDA5CFCAA2CFCAA4CFCAA4CCC6A2D5CFAB6B6545878161D6CFB2BBB497A9A285A59E81 A29B7E9F987BA09778A19B79AAA27EB1AC86B9B18CB8B38DBDB590B7B18DB8AF90BEB79BC6BBA5 C5BDA8CEC2B2D4CEBE5356457A8273D4DED3D2DED4C9D4CED8E2DAD5DAD3C8C6BA9F9589554434 392413452B1C4A3325422C2136221B49322C573A324F34294D3B2F3A31224F4D40979B8CC2C8BC D0D6CAD2D5CCD3D4CCD4D4CAD3D5CAD3D5C8D2D6C8CFD8C7CFD7C8D5D8CDD6D7CFD5D6CED4D5CD D4D5CDD3D4CCD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D2C7CECEC2 D1CFC2D1CBBDCEC5B6BCAC9F877465553E30422819D1DCD8D1DCD6D1DCD8D1DCD6D1DCD8D1DCD6 D1DCD8D1DCD6D3DEDAD3DED8D3DEDAD3DED8D3DEDAD3DED8D3DEDAD3DEDAD5DEDBD5DEDBD7DDDB D7DDDBD7DDDBD7DDDBD8DCDBD8DCDBD9DDDCDADEDDDADEDDDBDFDEDEE0DFDFE1E0DFE1E0E0E2E1 DDE3DFDBE4DFDBE4DFDBE4DFDBE4DFDBE4DFDBE4DFDBE4DFDAE3DED9E2DDD9E2DDD8E1DCD7E0DB D6DFDAD6DFDAD6DFDAD4DDDAD4DDDAD4DDDAD4DDDAD4DDDAD4DDDAD4DDDAD4DDDAD6DFDCD4DDDA D3DCD9D2DBD8CFD8D5C5CECBB7C0BDADB6B3B3B7B6A9ADAC8E9291A1A5A4AFB3B2A6AAA9ADB1B0 9EA2A19CA09F8B8F8EA1A5A48D91909A9E9D9B9F9E8F93928C9290959FA09BA5A697A09F9CA2A0 A1A7A59BA09C979C96989A959496919597929A9F9BAAAFABBCC2C2CAD0D0CCD4D6CAD4D5D8E2E3 D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3D7E3E3D3DFDFD3DFDFD3DFDFD3DFDFD3DFDFD3DFDF D3DFDFD3DFDFDAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6DCE4E6DDE5E7 DEE6E8DEE6E8DFE7E9E0E8EAE0E9E8E1EAE7E1EAE5E0E9E6DFE8E5DEE9E5DDE8E4DBE7E7DBE7E7 DCEAEBDBEBEBD9E8EBD6E8EAD4E6EAD2E4E8D0E3E7CFE2E6D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5CFE1E5CEE1E5CEE1E5 CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5CEE1E5 CEE2E3C0CFD2C4D4D4CBD9DAD0E0E0D4E2E3D4E4E4D4E2E3D2E2E2D0DEDFCFDFDFD0DEDFCFDFDF D0DEDFCFDFDFD0DEDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDEE3CFDEE3CFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CEDCDF CED9DDCED9DBCFD9DBCED9DBCED9DBCED9DBCED9DDCCDADDD0DBE1CEDBE1CEDBE1CEDBE1CEDBE3 CDDCE3CEDBE3CEDBE3D1DAE3D1DAE3D2D9E3D1DAE1D2D9E1D1DADFD2DADDD1DBDCD0D8DACFD9D8 D1DAD7D1DCD6D3DCD7D2DDD5D4DED6D3DED8D2DEDECFDDE0D0DBDFD1DBDDD3DBDDD3DCDBD3D9D9 D1D6D29697926968635D5A535652493932283B3529534D414F473C695F567369606D6058887E75 B3A9A0C3B9B0B0A69D756B6232281F20170E271E15221910675E55CDC4BBD5CEC4D0C9BFC7BEB5 6B625B322826271F1D120C0E1E1A1B666263A5A4A033342C24281A1A21111F281720281B182219 19221F212A2723261F1C1C12312D214E4735524532514128624D32735B3F79614586715684745B 4C3F2C201907221E122B2B21403E31968A709E8D6FA19275A5957CAD9E87B5A895B8AD9BB6AA9A BEB5A4C2B9A8CAC3B1CAC3B0C1B9A6BFB7A2C7BFA8C8C2AAD1CBB5D4D2BBCCD0B9CDD5BED3DFC9 C7D4C0BFCCBACFDACAB2B8AAB0B6A8A1A597979E8E8B96855B6C59273D26172F1525391D4C5C3F 616E544751392B2F2030332A7B7D7A7D7E80595D608C909181827A6564506862408A804FC3B378 DCC68AD7B987DBB98BDCB888DBBA87D4B483DFC594CEBB907C724E515034545C47404B3D3A473D 657068ADB7AF8F968F697166A3AE9E95A18B6870585C5F4073714BBBB287CDBF90C9B583D6BE8E D7BC8FDCC099C7AA8A8A6C54573826492C1E4E3226593F32452A194C2D1B603D298D6750765039 5A36204F2F1A4629174E3224391F12492F225639298A6B576D49335E3A205633154C2D0E553A1C 4C3516594628614E2E816D4A99835CAF9769CAAE7ED3B787CCB080CEB688AF99708C7D56B3A684 D0C9ACC4BFA2B8B298B2AC92AFAB92A9A48E9D9884938E7B7D78656D6A59625F4E595645484735 4645336B6A589A9784D5CCBBD7CCBAD8CBB8D8CBB8DACBB6DACBB6DBCAB6DBCAB6E2D1C1C3B3A3 A99B8EA094868F857B756D626C635C736C6467605855514848483E414537303727282F1D434633 6A69556D6751A49983CBBFA7584C32887F62C1BA9DB8B5946D6E4F575C466269596069584B5646 3C49383D4A393E4A3C3A4736283322303924828A73A9AF95BABDA0C1C2A3CECDAEC6C3A0CAC59D CDC89ECFCAA0CFCAA0CEC9A1CDC8A0CDC8A2CEC9A3C9C39FDDD7B3726C4C827C5CD9D2B5C0B99C B6AF92BBB497C8BFA2C1B899C7BC9CCAC29EC1B891B9B288C1B88DC8C195C6BD92C8C099CBC19E C4BB9CBFB39BB9AE9AC3B6A6DAD3C35A5B4B676D5FC8D0C5CBD5CCC2CBC6D0D7D0D6D9D2D1CDC2 B3A79B655243442A1B482C1E4D3125442920351C174128234E3028482C214B372C392D1F494539 949688C1C7BBC9CFC3D1D4CBD1D4CBD2D4C9D2D4C9D1D5C7CFD5C7CCD7C6CED6C7D5D8CDD6D7CF D5D6CED4D5CDD4D5CDD3D4CCD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9 D0D2C7CECEC2D2D0C3D1CBBDCDC6B6BEB0A38E7D6D5842343F2818D2DCD4D2DCD4D2DCD4D2DCD4 D2DCD4D2DCD4D2DCD4D2DCD4D4DED6D4DED6D4DED6D4DED6D4DED6D4DED6D4DED6D4DDD8D6DCDA D6DCDAD7DBDAD6DCDAD6DCDAD6DCDAD7DBDAD7DBDAD9DDDCD9DDDCDADEDDDADEDDDBDFDEDCE0DF DFE1E0DDE1E0DAE3E0DAE3DEDAE3E0DAE3DEDAE3E0DAE3DEDAE3E0DAE3DED9E2DFD9E2DDD8E1DE D7E0DBD6DFDCD6DFDAD5DEDBD5DEDBD4DDDAD4DDDAD4DDDAD4DDDAD4DDDAD4DDDAD4DDDAD4DDDA D3DCD9D1DAD7CFD8D5CDD6D3CAD3D0C2CBC8B6BFBCAEB7B4B9BDBCC4C8C7B7BBBACCD0CFCBCFCE B6BAB9C7CBCABFC3C2C2C6C5B1B5B4C2C6C5A5ABA9BCC0BFB2B8B69EA2A1ADB3B1969EA09BA5A6 8F95958D9391969A99959A969A9C979B9D989C9E999A9C979DA29EAFB4B0C6CCCCD9DFDFDEE6E8 DBE5E6D9E3E4D8E4E4D8E4E4D8E4E4D8E4E4D8E4E4D8E4E4D8E4E4D4E0E0D4E0E0D4E0E0D4E0E0 D4E0E0D4E0E0D4E0E0D4E0E0DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6 DCE4E6DDE5E7DEE6E8DEE6E8DFE7E9E0E8EAE0E9E8E0E9E6DFE8E3DFE8E5DEE7E4DCE7E3DCE7E3 DAE6E6DAE6E6DDEBECDBEBEBDAE9ECD6E8EAD4E6EAD2E4E8D0E3E7CFE2E6D1E0E5D1E0E5D1E0E5 D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5D1E0E5 CFE1E5CEE1E5CFE1E5CEE1E5CFE1E5CEE1E5CFE1E5CEE1E5CFE1E5CEE1E5CFE1E5CEE1E5CFE1E5 CEE1E5CFE1E5CFE1E3CCDADDCEDCDDD1DFE0D3E1E2D2E0E1CEDCDDCAD8D9C7D5D6D0DEDFD0DEDF D0DEDFD0DEDFD0DEDFD0DEDFD0DEDFD0DEDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDF CFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDFDFCFDEE3 CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1 CDDCE1CDDCE1CBDADFCCD9DFCCD9DFCCD9DFCCD9DFCCD9DFCBDAE1CBDAE1CDDCE3CDDCE3CDDCE3 CDDCE3CDDCE3CDDCE3CDDCE3CDDCE3D0DAE3D0DAE3D0DAE4D0DAE3D0DAE3D0DBE1D0DBDFD0DBDF CED9DBCED9DBCFDBDBCFDBD9D0DCDAD1DDD9D2DEDAD2DEDCD1DCDECFDADECED9DDCED8DAD1D9DB D7DDDDDDE1E0E2E4E1D6D5D0A5A29BA09C939D968C70685D6B635680786B72685C5A4D44554840 3F322A6C5F57B5ABA2DBD1C8C9BFB681786F382F26231C122720161A160B615D52D0CCC1DFDDD1 E1DDD1CBC3B67971643A312A322B252D25232823206A6663CFCCC58585794F50402023101A1F0B 25291A22281C1D221B1D221C191F151D1F12434132726B587E725A7D6C508A7556998262917859 947F609180646D6149665F4C8482739294899E9F91B1A992B8AD91BEB499C6BCA3C7BFAAC7BFAC C3BCAAC1BBABCAC4B6C3C0B1C7C4B3CAC9B7C7C6B4D0CFBBDBDAC6DAD9C4D1CFBADAD9C4D4D7C2 C4CDB8A3B09C73806E6E7B6A99A494747A6E777A6F7274698387798F97885D6A58273825263D23 2C44245C6F51606E54404934363C2E4C4F48999A9C92939846495084888B7B7E7766655374704D 968E5FC7B87DD1BD80E1C38FE3C191E5C191E5C491DDBD8CE5CA9BD5C297887B585D5C40656A56 4A55473C483E677168B1BBB28C9288565C50B4BDAC9BA48F61674D4E51326C6843BBB289CEC093 C6B182CCB484D1B488D5B890BD9F7D86644959392451301F5536245437254E2F1A5A36204A250B 5D34185C33175B3319522D1345220C5B3C284F32206043315C3C27724E36552D13643B1B68421E 502D0757391551371469512D735D387B653E725B31A18657C3A775D4B684C9AD7DCCB486AE996E 867652A295738C85687F7A5D716B516A644C66614B5F5A46514C3943402F504D3C4A4839504E3F 5859495A5B4B676A579DA08DDAD9C5D3CCBAD6CBB9D7CAB7D7CAB7D9CAB5D9CAB5D9CAB5D9CAB5 DECEBEC4B7A6AA9E908D84755D554A2B25191E170F2A261D0B080116160E3C3F366A7064788071 68716064685770725D66614DA89D87DACEB65C50367D7256B9B393C3C09D8B8A6B36391E464832 50533E4F523D4D523C4F5740535B46525A43797E677C8268AFB398A8AB8EA9A889BFBC9BD6D3B0 C8C49FD4CFA7D3CEA4D3CEA4D5D0A6D7D2AAD5D0A8CFCAA4CAC59FC8C29EE2DCB8777151817B5B DDD6B9C5BEA1BFB89BCBC4A7C9BEA2C5BA9CCBC0A0CCC29EC4BB92C5BC91C8C092C1B98ABFB789 BFB68BC5BB97C8BD9DCEC2AACCBFACC9BCACDAD1C2666759616759C7CFC4D5DFD6CBD4CFCED3CD D3D4CED5CEC4D7C9BE7862544125173E21134B2D224C2F273F231F442824492B234E32275A4439 4032253E3A2E838577B7BDB1C4CCBFD1D4CBD1D4CBD2D4C9D1D4C9D1D5C7CED6C7CCD7C6CCD7C7 D5D8CDD6D7CFD5D6CED4D5CDD4D5CDD3D4CCD2D3CBD2D3CBD0D1C9D0D1C9D0D1C9D0D1C9D0D1C9 D0D1C9D0D1C9D0D2C7CDCFC2D2D3C5D1CEBFD0C9B9C3B5A89483735C46383F2818D0D7CFD7DED6 DDE4DCDCE3DBD6DDD5D1D8D0D1D8D0D4DBD3DFE6DED3DAD2D9E0D8DAE1D9CCD3CBCFD6CED8DFD7 CFD4CECBD0CCC7CBCAD2D4D3D6DAD9D7DBDAD2D6D5CACECDCED2D1D9DDDCD9DDDCD8DEDCD8DEDC D8DEDCD8DEDCD9DDDCD8DEDCD6DFDCD5E0DCD5DFDED5E0DCD5DFDED5E0DCD5DFDED5E0DCD3DDDC D3DEDAD3DDDCD3DEDAD3DDDCD3DEDAD3DDDCD3DEDAC4CDCAD8E1DED9E2DFC7D0CDC7D0CDDAE3E0 DEE7E4D0D9D6D5DEDBD1DAD7D3DCD9D5DEDBC8D1CEB7C0BDB7C0BDC5CECBAEB2B1CFD3D2BFC5C3 B8BEBCC2C8C6B4BAB8B2B8B6BEC4C2BFC5C3B7BDBBB8BEBCC6CFCCC5CBC9BCC5C2C6CCCAC0C9C6 BEC8C9BDC7C8BFC5C5BCC2C0B8BCBBB2B7B3B1B3AEB2B4AF9B9D989B9D98A4A9A5BDC2BED3D9D9 DAE0E0D8E0E2D7E1E2E1EBECD6E2E2D4E0E0DBE7E7DAE6E6D2DEDED5E1E1E1EDEDD6E2E2D6E2E2 D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE7E6E0E9E6DFE8E3DDE6E3DAE3E0 D6E1DDD8E3DFDDE9E9E2EEEEDBE9EAD8E8E8D6E5E8D2E4E6D1E3E7D1E3E7D0E3E7D1E4E8CFDEE1 CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1 CFDEE1CFDEE1CFDEE3CDDFE3CFDEE3CDDFE3CFDEE3CDDFE3CFDEE3CDDFE3D1E0E5CFE1E5D1E0E5 CFE1E5D1E0E5CFE1E5D1E0E5D1E0E3CDDBDED0DBDDD2DDDFD3DEE0D4DFE1D3DEE0D2DDDFD1DCDE D4DFE1D4DFE1D4DFE1D4DFE1D4DFE1D4DFE1D4DFE1D2E0E1CDDDDDCDDDDDCDDDDDCDDDDDCEDEDE CEDEDECEDEDECEDEDECFDFDFCEDEDECDDDDDCCDCDCCBDBDBCADADAC9D9D9C9D9D9CDDDDDCDDDDD CDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDD CDDDDDCDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1 CDDCE1CDDCE1CDDCE1CBDCE3CDE0E7CCDEE8C9DBE5C6D8E2C9DBE5CEE0EACDE0E7C8DBE2C4D5DD C8D9E1CDDEE6CEDFE7CDDEE6CBDCE4CBDCE4CEDCE5D9E7F0CEDBE4D0DCE8D4E1EACCD9E2C9D6DE CDDAE2CCD9DFCBD8DECDDAE0CFDDE0CFDDDECDDBDCCDDBDCD0DEDFD2E0E1D0DBDDCDD7D9CBD5D7 CFD9DAD7DFE1DCE2E2D8DDD9D5D7D2E3E2DDDAD7D0B7B3AA817A70B6AEA3D1C7BB90867A3E3226 2B1E1525160F44372F796C64D1C7BED7CDC4DAD1C880776E3D362C1F1B102420152321156B6B5F D3D3C7E1E1D5E8E6D9DED7C57068554A40343E362B3128212D261E5E574FDDD9CDCBC8B784826D 67674F50523A4E503B6768583030242224190C0F041317094142327A75618E82688B7C5D958261 A38F6C9C8563AF9C7BB3A485AEA288B7B29EBFC0AEC0C4B6C2C6B7C5C4AFCFCDB6BAB8A1BBB9A4 C5C4B0D2D1BFC4C2B3CACBBDD0D2C5D9DDCFD4D8CACCD0C2D4DACCC5CCBCB3BCABD4D8C7D5D4C0 DFDECAD9DCC99DA59027331F2732213A45358B91856F7068BFBFB5D2CFC6D2D2C6CBCDC06A7362 1C29172B3D252C44245B705167775C4E5A44373D2F52554E7F80827C7D8243464D7074777C7F78 585745635F3C807849BEAF74D4C083D9BB87DEBE8DE1BF8FE2C18ED9B988E2C798D7C1988C7F5C 6662476C6F5A4F55473842376E766BADB3A79C9E915D61529CA3918D957E5B5F44363516615D38 B5AC83D8CA9DCBB687CCB182CDB084CCAC85A483606643254E2C1153301A4C291345250E432106 4D280D603719673A195E31105B300E5F381957341858361D5C3C2563432C6B472D6B4629683D1D 623611653B13623B10603F1661441C674E26735C337F683E876F41C2A676C7A975C8AA76CBAF7D CDB587C1AC81766642807351615A3D4D482B4C462C544E36615C48625D4A797665777566848577 7D7F71949688A4A897A3A796ADB1A0BDC5B0CCCFBAD4CFBCD6CEBBD8CDB9D8CDB9D9CDB7D9CDB7 D9CDB7D9CDB7E0D3C2BDB09F6E62546A6152564E43453F333D362E28251E2726212E302B848983 9BA59C8A968A8E99897077676568556F6A57968E79D1C5AD685C42706549B6B090A7A380A6A382 9996779D9A7BA39F82ABA78AB1B092B7B698BABA9EBCBD9EBDBE9FB6B596B0B08EB4B18EBFBB96 CCC7A1D3CEA8D4CFA7CCC79DD5D0A6CEC99FCFCAA0DCD7AFD3CEA6C6C19BCEC9A3C2BC98D5CFAB 8E8868635D3DDFD8BBC7C0A3C8C1A4C5BEA1CEC2A8D1C6AACFC4A6C8BE9BC3BA93C3BA8FC4BC8E C2BA8BCCC496C9C097CDC39FC9BE9ED1C5ADD4C7B4C9BCACD4CBBC7A786B565A4CCBD1C7D2D9D1 CFD5D1CED3CDCFCEC9D4CBC2D6C5BB8D76683D21134A2A1D48281D482A22412420381B17573931 482C214F392E4133263C382C7A7C6EB9BFB3CAD2C5CFD2C9CFD2C9D0D2C7CFD2C7CFD3C5CCD4C5 CAD5C4CAD5C5D3D6CBD4D5CDD4D5CDD4D5CDD4D5CDD4D5CDD4D5CDD4D5CDD4D5CDD4D5CDD3D4CC D3D4CCD2D3CBD1D2CAD0D1C9D0D2C7D0D2C5CACCBECBC9BACFC9B9C3B7A9998979614E3F3B2615 C7C9BEC0C3B8BCBEB3BCBFB4C4C6BBCBCEC3D1D3C8D1D4C9D3D5CAD2D5CADCDED3E0E3D8DCDED3 DCDFD4DFE1D6DADDD4C6C6C4C3C5C4CFD1D0D1D3D2D0D2D1CACECDC1C5C4C7CBCAD9DDDCD8DEDC D8DEDCD8DEDCD8DEDCD6DFDCD8DEDCD6DFDCD5DFDED5DFDED5DFDED5DFDED5DFDED5DFDED5DFDE D5DFDED3DDDCD3DDDCD3DDDCD3DDDCD3DDDCD3DDDCD3DDDCD3DDDCD2DBD8D6DFDCD9E2DFDBE4E1 DBE4E1DAE3E0D7E0DDD3DCD9D5DEDBD1DAD7D4DDDAD9E2DFCCD5D2AFB8B598A19E909996AEB2B1 CCD0CFC2C8C6C8CECCD5DBD9BFC5C3AEB4B2AAB3B0AEB7B4A8B1AEAAB3B0B7C2BEBEC9C5C0CBC7 C0CBC7B3BEBAB9C5C5BEC8C9C0C9C8C2C8C6C5CBC9C8CDC9C0C5BFB7B9B4B4B6B1B8BAB5BFC4C0 CACFCBCDD3D3CED4D4D2DADCDAE4E5D7E1E2D0DCDCD2DEDEDCE8E8DCE8E8D2DEDED0DCDCD6E2E2 D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE6E8DEE7E6E2EBE8E1EAE5 DFE8E5DBE4E1D7E2DED8E3DFDAE6E6DDE9E9D9E7E8D7E7E7D6E5E8D2E4E6D1E3E7D1E3E7D0E3E7 D0E3E7CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1CFDEE1 CFDEE1CFDEE1CFDEE1CFDEE1CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3CFDEE3D0DFE4 D0DFE4D0DFE4D0DFE4D0DFE4D0DFE4D0DFE4D1DFE2CED9DDCFDADCD1DCDED3DEE0D4DFE1D5E0E2 D4DFE1D3DEE0D5E0E2D5E0E2D5E0E2D5E0E2D5E0E2D5E0E2D5E0E2D5E0E2D6E4E5D4E4E4D2E2E2 D1E1E1D0E0E0D0E0E0CFDFDFD0E0E0D2E2E2D2E2E2D2E2E2D2E2E2D3E3E3D3E3E3D3E3E3D4E4E4 CDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDD CDDDDDCDDDDDCDDDDDCDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1 CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CBDCE3C5DCE4C7DFE9C7DDE8C4DAE5C2D8E3C5D9E4C6DAE3 C7DBE4C9DBE5CCDEE8D1E2ECD0E1E9CEDCE5CCDBE2CDDBE4D0DEE7C1CFD8C5D3DCCFDDE6D3E1EA D1E0E7D5E4EBD5E4EBCBDAE1CAD9E0CDDCE3D1E0E5D2E1E6D0DFE4CDDCE1CBDADFCBD9DCDBE5E7 D5DDDFD0D8DAD2DBDADAE0E0DDE1E0DBDDD8D6D7D1D5D2CBCAC6BDA59E94706A5EACA499CDC3B7 94887A473B2F32241B291C143A2D25786E65D9CFC6DCD3CADDD4CB7A73693F3B302B291D2F2D21 2A2A1E737568DADCCFDEE0D3D2D3C3D6D1BB645C45332B182E25163C34294E463B6E685CCBC5B5 C6C1AD99957C78745974735777755E807E694A473838362A31352744483A6C6D5B95937EABA48A B0A285B4A483BAAA88BEAB8BCDBD9CCDBFA2C2BBA1C1BFAAC3C4B2BFC3B5BAC0B2BBBFAEC5CAB6 CACFBBE1E5D4DBDFD0DDE1D2D2D6C8D9DCD1B9BFB3B6BEB1A8B0A598A395838F83505C4E3D4B3C 707968D4D3C1DEDBC8D9DBC69FA7922B34212833223D45368E9488B3B3ABD2CDC7CDC9C0D0CCC3 CACAC07B7F712C3425202F1A283F22576F4F64745A48544033392B575A5390929195969A515257 898A8C9E9F996D6C58676340807849BEB278D7C489D6BA88DDBD8CDFBD8DE0C08DD8B887E0C596 D5BF968F815E4A45285756413C402F272D1F606456A3A59792908152513F888B768E927957573B 2D2A0B6A623DB6AA82C9B88CC6B182D3B889CEB283C8A77CA2805A6D4B285C39195E3B1F553216 68462A6441236B4423784D2A784C256C4019663A13673F1B5A36145D3C1D6445286E4C30755232 78522E784C2776492093683B936A3C946F4396774B9C8156A58D61B0986AB89E6DCCAE7CCDAF7B CCAE7ACBAF7DCCB486C4AF847F70498F8260A0997C8680667D775F756F597B76636E6B5A7F7D6E 7A7B6D5F61545A5E505054464C53436069586D76637F8B75B5BDA6D2CFBCD6CEBBD6CEB9D8CDB9 D8CDB7D9CDB7D9CDB7D9CDB7E0D3C2C2B7A5746B5C706959625C505C584C59554C42423A3D3F3C 444A4698A19CB2BDB5A0ADA39DA99B798172666A59716E5B99917CD4C8B06C5E446B6044B7B191 ABA784A8A47FB1A985B2AA86B5AD89B8B08CB8B290B9B38FB9B391B8B48FBAB691B7B38EB8B38D BDB892C8C099CEC79DCDC69CCBC49ACFCAA0CEC99FCCC79DD2CDA3D9D4ACD1CCA4C9C49ECFCAA4 CCC6A2DCD6B2989272655F3FD9D2B5C5BEA1C3BC9FBFB89BC3B99EC6BDA0C8BFA0C6BD9CC6BE99 C9C19ACEC79DD0C99DC1BA90C1B994CBC2A1CAC1A4CFC5ACCFC4B2C6BAAAD7CFC27D7B6E545649 C6CCC2D1D8D0CFD5D1D1D3CED3D0CBD6CDC4D9C7BD947D6F4427194C2C1F4A2A1F4A2C24432622 3A1E1A54362E482C214C382D4135273A362A757769B6BCB0C8CEC2CFD2C9CFD2C9D0D2C7D0D2C7 CFD3C5CDD3C5CAD5C4CCD4C5D3D6CBD4D5CDD4D5CDD4D5CDD4D5CDD4D5CDD4D5CDD4D5CDD4D5CD D4D5CDD3D4CCD2D3CBD1D2CAD1D2CAD0D1C9D0D2C7CED2C4CACCBECCCABBD0CABAC3BAAB9E8E7E 6653443E2918A5A1959C9A8D938F838D8B7E928E829C9A8DA9A599AFADA0ACA89CB6B4A7BDB9AD C0BEB1C9C5B9C9C7BACCC8BCD3D0C7CECDC9CECECEE2E2E2DDDFDED3D5D4C9CBCAB2B6B5B4B8B7 D6DCDAD6DCDAD6DCDAD4DDDAD4DDDAD3DEDAD4DDDAD3DEDAD3DDDCD2DEDED2DEDED2DEDED2DEDE D2DEDED2DEDED2DEDED1DDDDD1DDDDD1DDDDD1DDDDD1DDDDD1DDDDD1DDDDD2DCDBD6DFDCD2DBD8 D4DDDAD7E0DDC9D2CFB5BEBBB5BEBBC2CBC8CED7D4C7D0CDC9D2CFD4DDDADAE3E0D1DAD7C5CECB BEC7C4B6BAB9C7CBCAB9BFBDC1C7C5CCD5D2B8C1BEAAB3B0A5B0ACA0ABA7A8B4B0B4C0BCB5C1BD AFBEB9B3C2BDBCCDC7C6D7D1B7C5C5BECCCCC0CCCAB6C1BDB3BCB9BDC3BFC5CAC4C5CAC4C2C4BF CACCC7CFD4D0CDD2CEC3C9C9C0C6C6CCD4D6DCE6E7D9E3E4D4E0E0D6E2E2DEEAEADFEBEBD8E4E4 D4E0E0D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE5E7DDE6E5 DFE8E5DEE7E2DCE5E2DBE4E1DAE5E1DAE5E1DAE6E6DAE6E6D7E5E6D6E6E6D5E4E7D2E4E6D2E4E8 D1E3E7D0E3E7D0E3E7D0DFE2D0DFE2D0DFE2D0DFE2D0DFE2D0DFE2D0DFE2D0DFE2D0DFE2D0DFE2 D0DFE2D0DFE2D0DFE2D0DFE2D0DFE2D0DFE2D1DEE4D1DEE4D1DEE4D1DEE4D1DEE4D1DEE4D1DEE4 D1DEE4D0DDE3D0DDE3D0DDE3D0DDE3D0DDE3D0DDE3D0DDE3D0DEE1CCD7DBCFD9DBD1DBDDD4DEE0 D7E1E3D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D8E2E4D7E2E4CDDBDC CCDADBCCDADBCCDADBCCDADBCDDBDCCEDCDDCEDCDDD1DFE0D0DEDFD0DEDFD0DEDFCFDDDECFDDDE CEDCDDCEDCDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDD CDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1 CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CADDE3C2DAE4C2DDE8C5DDE9C5DDE9C2DAE4 C1D7E2C5D9E2C8DCE5C5D8DFCADBE3CEDCE5CBDAE1C7D4DCC5D2D8CBD5DECDDAE0CAD7DDCFDEE3 CEDDE2C5D4D9C3D2D7CBDADFCDDCE1C4D3D8CDDCE3CCDBE2C9D8DFC8D7DEC9D8DFCBDAE1CEDDE4 D1DEE4D7E1E2D5DBDBD1D7D7D4D8D7D4D9D5CED0CBBFC0BBB2B1AC939089858178665F55514B3F B6AEA3E2DACD988E823C322633261D372A223F322A867C73E3D9D0DFD6CDE7DED5898278454136 3735293434282B2D20737568DCE0D2E9EDDFDCDDCDD4D0B7847E646B654F78715E999282AEA797 AFA898D7D0BDD6D0B8B9B497716C4E787556858166908B75817B6B807D6E999B8EA7AB9CADB09F B1B09CBCB89FC0B99DC2B79BC6BB9DC9BBA0D2C7ABD4CDB1D1CDB4D0CFBBD2D5C4D1D5C6CBD3C4 DFEADACCD9C8CDD8C8DDE8D8A3AEA0929D8F959D90A7AFA47983787F8B7F818D8388968969796E 2030231B2D1F687564D2D1BDDBD9C4D9DBC6A5AA963037252C35243F453794978CB6B3ACC7C2BC D1CAC4DBD4CED0CDC686887D3B41352E3B29263A21576E5267775D4B57433B3F3165665EA7A7A5 B1B1B1606163949693AAACA16C6B575E5A377E7648B9AC75CCB97FD5B987DCBE8CDCBC8BDEBE8B D9B988DEC293D3BC929585632D260947452E4243313C3F2E70715FA7A491918B75554F37A3A18A B2B298696548282303635935AC9F75C4B186D6C091CFB485BFA373AA895C8564396340185F3C16 66421E5E3C196847246646206D4A227952277E5326784D20754A1F754E237B5A3182623C8A6C48 9375519C7A54A17C52A57C50A67B4EB58958B68E5DB89366BD9C6FC1A679C7AF81CFB485D2B885 D4B682D5B680D1B27CCCAE7ACBB383C7B2878B7C55A39674C4BB9E9D967C847E665C5640514C39 2B28192725181D1D1312150A181E12131B0E1E291953604E616E5A6D7C65C2CCB4D3D2BED7D0BD D7D1BBD8D0BBDACFB9DACFB9DACFB9DACFB9DED3C1CBC0AE7E7566756E5E6F695D7B776B807D74 64655F595D5C5B6463A4AEADBBCAC5AABAB0A4B2A57E897B666A5B726F5E98917ED7CBB5706248 63583CBCB394B6B08EAFAA84BFB38DC1B38CC3B78FC4B890C6BA94C4BB92C3BA93C2B990C4BD93 C3BC92C5BE94CAC399D1C89FD3CA9FD0C79CCBC498D2CDA3C5C096C8C399D4CFA5D3CEA6CEC9A1 CFCAA4CFCAA4D4CEAADED8B4A29C7C635D3DD3CCAFCBC4A7CAC3A6CAC3A6C9C4A7CAC5A8CCC7A9 CCC7A7C9C5A2C7C3A0C9C5A0CDC9A4CAC6A3C4BF9FC6C1A4B7B197AAA48E9E9785979080B2AC9E 858376505044C0C3BAD0D5CED0D5D1D2D4CFD7D4CFD8CFC6DAC9BF9C86784A2E204A2D1F482A1F 4B2E264327233C201C4F3129472C214B392D4138293735286A6E5FB0B6AAC4CABECFD2C9D0D1C9 D1D1C7D0D2C7D0D2C5CFD3C5CCD5C4CCD4C5D2D5CAD3D4CCD3D4CCD3D4CCD3D4CCD3D4CCD3D4CC D3D4CCD3D4CCD3D4CCD2D3CBD2D3CBD1D2CAD0D1C9CFD0C8CFD1C6CCD0C2CACEBFCBCCBCCFCCBB C5BEAEA396856D5C4C422F1E918879978E7F988F80908778867D6E8A81729C9384AEA596867D6E 948B7C8E8576887F7091887992897A948B7CA79F94A8A4A1AFADAED8D6D7DFDFDFDEDEDED9DBDA BFC1C0C3C7C6D5DBD9D5DBD9D3DCD9D2DDD9D2DDD9D2DDD9D2DDD9D1DDDBD1DDDDD1DDDDD1DDDD D1DDDDD1DDDDD1DDDDD1DDDDD1DDDDD0DCDCD0DCDCD0DCDCD0DCDCD0DCDCD0DCDCD0DCDCD0DCDC CCD6D5D2DBD8D0D9D6BFC8C5A6AFAC9BA4A1A7B0ADB9C2BFD6DFDCD0D9D6CAD3D0C7D0CDC3CCC9 BDC6C3B7C0BDB7BDBBADB1B0BDC1C0B5B9B8BBC1BFBEC7C4ABB4B1A7B2AEA6B2AEB4C0BCA9B8B3 A2B3AD8DA09A7A8D876C817A6C817A879C9592A5A3A3B6B4B4C3C0B2BEBAA4AFABA3ACA7B9C0B9 D2D7D1BABFB9C3C5C0C7CCC8C5CAC6BEC4C4C0C6C6D0D5D8DEE6E8DAE4E5D7E3E3D6E2E2D8E4E4 D9E5E5D8E4E4D7E3E3D8E4E4D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6DCE4E6 DCE4E6DCE5E4D9E2DFD8E1DCD9E2DFDBE4E1DCE7E3DCE7E3D8E4E4D6E2E2D4E2E3D3E3E3D4E3E6 D3E5E7D2E4E8D2E4E8D0E3E7CFE2E6D1E0E3D1E0E3D1E0E3D1E0E3D1E0E3D1E0E3D1E0E3D1E0E3 D1E0E3D1E0E3D1E0E3D1E0E3D1E0E3D1E0E3D1E0E3D1E0E3D2DFE5D2DFE5D2DFE5D2DFE5D2DFE5 D2DFE5D2DFE5D2DFE5CFDCE2CFDCE2CFDCE2CFDCE2CFDCE2CFDCE2CFDCE2D1DCE0CCD5DACED8DA D1DBDDD5DFE1D8E2E4D9E3E5DAE4E6DAE4E6D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5D9E3E5 D9E3E5D3DEE0D1DFE0D2E0E1D2E0E1D2E0E1D1DFE0D0DEDFCFDDDED0DEDFD0DEDFD0DEDFD0DEDF D0DEDFD0DEDFD0DEDFD0DEDFCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDD CDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1 CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CADDE3C6DEE8BED9E4BED9E2 C7DFE9CCE3EBCCE0E7CBDEE5CDDEE5CEDDE4D3E0E6D7E2E8D7E0E5D4DBE1D6DBDFDADFE3DDE5E8 D0DADBCEDCDCCAD6D6C4D2D2CBD7D7CEDCDCD3DEE0D8E6E9CDD8DCCBD8DECFDAE0D1DEE4D7E1EA D7E4ECD7E1EAD6DFE6D5DBDBC8CDC9B5B7B4A3A5A293948F7D7E7865645F55524B4B473E423E35 312A20383127BAB2A7ECE4D79A90843C322842382F443A313B31288C837AEBE2D9E6DFD5E8E1D7 8B877C302E222D2D2137392C3B3D3074786AC6CABCDADED0D8DBCADBDBC1C0BFA3C9C4AED6D1BD E9E3D3F0EADADFD9C9E7E2CEDCD8BFD8D4B7807D5EA19E7FB3AF94B2AD97B2AD9AB3B0A1BABCAE C3CABAC0C4B3BABDAAC6C5B0CECCB5D0CBB5D6D2B9D5CFB7D4CFB9D7D5BED6D5C0CFD2BFCFD3C2 CED5C5C7CFC09CAA9B7384747A8B7B9AA899445044364236586257818B80828C819AA69AA9B5A9 B5C3B686968926382A233527748170CFD1BCD9D7C0D9DBC5AAAF99343D282D36233F4738989B90 A4A49CC2BDB7CFC8C2D1CCC6CACAC27B7E75232B20243221233620546B5164735C4B5441393D2E 626256A2A29AABAAA6646560858680949488504F3A4944247E754AB9AC77C4B179D3B988DEBF90 DBBB8ADDBD8ADABA89DBBF90D1BA909F8D693C3113524C3452503B4C4A35645F4978715764593D 41361A6B654B8F8B6E766F524D4423736741AFA077C7B489D0BA8BCDB382B79B69957544725223 6644177250237E5B317C5B327E613780633989693A95713F9E7643A27945A37B48A37F4FA78659 AC8F63B59971BCA176C2A377C6A476CCA675D2A876C39A66C69E6BC8A474CAAB7CCCB182CCB484 CFB584CFB582D6B882D8B982D3B47ECDAF7BCBB383C9B48794825AADA07D82795A60593F58523A 37321E4842322D2B1C2B2B1F2B2C2411140B0810051B251A3A4638657362667862677963B8C4AC D4D3BFD8D1BED8D2BCD8D2BCD9D1BADBD0BADBD0BADBD0BADCD1BFCFC7B4837C6C726C5C6E6A5E 8C8A7D98988E7B7C766B7171656F7099A7A7B1C1BEA3B4AC9EAEA3808C7E6168586D6C5A928B78 D5C9B377694F5D5236C0B796C3BD99BBB690C7BB93C9BC92CBBE94CEC197CFC298CEC298CEC298 CBC297CEC59ACCC398CBC297CAC397CCC599CEC79BCFC89CCFC89CCFCAA0BDB88EC6C197D6D1A7 CFCAA2CCC79FD4CFA9D0CBA5D3CDA9D9D3AFABA585615B3BCAC3A6D1CAADCDC6A9CEC9ABC9C5A8 C3C2A4C1C0A2BEBD9FB5B496A7A688A09F81A1A0849594788D8B728C8A737C7A6573705D726F5E 7C796AA6A394918F824B4B3FB8B9B1CFD2CBCFD4D0D3D5D0DBD8D3DAD1C8D9C8BEA69082503627 462A1C44281C482D243E25203A211C472C23472F234B3B2E443D2D3432255E6253ABB1A5C0C6BA CFD2C9D0D1C9D1D1C7D1D1C7D1D1C5D0D2C5CDD4C4CDD3C5D1D4C9D2D3CBD2D3CBD2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD1D2CAD0D1C9CFD0C8CFD0C8CDD0C5C8CEC0CBCFC0 CCCFBECECDBBC8C1B1AA9F8D7564544633229F8F7FA89888AD9D8DA595859484748B7B6B908070 998979A99989B5A595AA9A8A9D8D7D9E8E7E9989799A8A7AACA094978F8C949091C5C1C2D1CFD0 D2D2D2D0D2D1B4B6B5C5C9C8D3D9D7D3D9D7D1DAD7D0DBD7D0DBD7CFDBD7CFDBD7CDDCD9CDDBDB CDDBDCCDDBDCCDDBDCCDDBDCCDDBDCCDDBDCCDDBDCCEDCDDCEDCDDCEDCDDCEDCDDCEDCDDCEDCDD CEDCDDD0DCDCC9D3D2D7E0DDD0D9D6B3BCB9A7B0ADB5BEBBC1CAC7BEC7C4C9D2CFD4DDDAD9E2DF CCD5D2B4BDBA9DA6A38E9794898F8D9B9F9EBABEBDC4C8C7CCD2D0C2CBC8ACB7B3AAB6B2A4B3AE AFC0BA8497916C817A60776F627C73516C6338534A506B62617A76748A8798ABA7B4C5BFB3C2BD A9B6AFB4BEB6CED5CEBBC0BABDC2BCBFC4C0C2C7C3C7CBCCCED4D4D8DDE0DBE3E5D3DDDED6E2E2 D7E3E3D6E2E2D4E0E0D5E1E1D5E1E1D4E0E0D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2 D6E2E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DCE4E6DCE4E6DCE4E6DCE4E6 DCE4E6DCE4E6DCE4E6DCE5E4DCE5E2DAE3DED9E2DFDBE4E1DBE6E2D7E2DECDD9D9C5D1D1D1DFE0 D1E1E1D3E2E5D3E5E7D3E5E9D2E4E8CFE2E6CEE1E5D1E0E3D1E1E1D1E1E1D1E1E1D1E1E1D1E1E1 D1E1E1D1E1E1D1E1E1D1E1E1D1E1E1D1E1E1D1E1E1D1E1E1D1E1E1D1E0E3D2DFE5D4DFE5D4DFE5 D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE3D2DDE1 CCD5DAD0D8DBD3DBDED7DFE2D9E1E4DBE3E6DCE4E7DCE4E7DAE2E5DAE2E5DAE2E5DAE2E5DAE2E5 DAE2E5DAE2E5D9E3E5D7E2E4D5E3E4D6E4E5D6E4E5D3E1E2D0DEDFCCDADBCAD8D9CBD9DACBD9DA CCDADBCDDBDCCEDCDDCFDDDECFDDDED0DEDFCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDD CDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDCE1CDDCE1CDDCE1CDDCE1 CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CBDCE3CEE5EB BED7DCBAD3D8C9E0E6D5EAEFD2E4E8CCDBE0CED9DDCAD4D6D1D6D9D6DADBD9DBDAD9D9D9D8D6D7 DAD6D5D9D8D4D6DBD4CCD6CDC7CEC6CDD7CED6DDD6C4CEC6C2C8C4D5DEDBD4D9DCD4DCDFD9DEE2 DAE1E7D9DDE6C9D0D8B6BAC3A7ACB292949380817C6465604D4E48403F3A37372F322F282E2B22 433F364541383B342A474036C8C2B6F3EDE1A29A8F534B40483F3641382F2E251C80776EE5DCD3 E7E0D6DCD8CD8C8A7E514F435D5D517B7D70919386ABAFA1C8CCBECED2C4D3D7C6E1E5CCDDE1C6 E5E7D1E1E2D0E1E2D4E4E5D7DBDCCCDCDEC9DEDEC6E5E5C9848468B9B99DC7C5AEC1BFAAC9C6B5 CBC9BCC5C9BACFD6C6D2D9C9D4D8C7DBDFCEDFE3D2DBDECDD3D7C6D6D9C8C5C9B8C1C4B3B7BBAA 9DA1908B9282828979717C6C4454471C2E203F4F428694872D392D2834285A6557939B8EACB4A7 D0D8CBD6DED1D3DED0939F91273526212F20626E5ACFD1B9D7D7BBDADEC3ADB69B37432B293720 3C4736989E92A4A59DC4C4BCC2BFBABAB9B4D1D4CD8A91891D291F263629203522465C47505F4A 3E47343235245957489492869C99906A6A607E7E728E8F7F44422B3B35157C7348BFB180D0BC89 D2BB89DFC393DABC8ADDBD8CDDBD8CDBBC8ED0B78EAA96713F32124A402548422A433D25473D22 47391C4737164F3F1E63583C80795C908567796C4A776841AA996ED2BD90CDB585D4BA87C5AA75 A888558F6F3C927241A38352AC8C5BAD8E5FAF9465B29867B79965BB9A64C09C62C4A066C5A26A C0A16ABCA06EBFA876C5AD7FC8B080CCB07ECFB07AD5B27AD9B47DD8AF7BD9B17EDAB684D9BA8B D6BB8CD1BB8ACFB886CFB680D3B57FD5B880D2B37CCEB07CCEB384CAB58894825AAD9F7C988F70 736C52726C544A45316A64544C4A3D3F3F353E41383A3F38070E062E3A2E5967585F705E60735D 6D806AAFBDA4D4D6C1D9D4C0DAD4BEDAD4BEDBD3BCDBD3BCDBD3BCDBD3BCD8D0BDD3CBB8857E6E 6B65556662568C8A7DA0A09683867F727A7C69747890A0A0ABBEBCA4B7B19FB0A68492855F6557 676654857E6BD1C5AF817359584D2FC3BA99CDC7A3C7C29ACEC59CD1C59BD2C69CD2C69CD1C59B D0C49ACEC298CBC297CDC49BCCC59BCBC49AC8C399C6C398C6C39AC8C59CCAC79EC4BF95BAB58B C8C399D5D0A6CCC79FCCC79FD5D0AAD1CCA6CEC8A4D4CEAAB9B393615B3BBAB396C2BB9EABA487 A5A082A1A28394997B90947992967B8A8E77777B646C6F5A6C6F5C6B6E5B696C5B6C6F5E636655 696C5B7A7D6C8F9281BABBAB9F9D9049473BB0B0A8CDD0C9CED3CFD3D5D0DDDAD5D9D0C7D3C5BA AC998A533C2C4026173E2417432B2137231C35211A41291F4933264B3D30494333313224515848 A5ADA0BDC3B7CFD2C9D1D1C9D3D0C7D3D0C7D3D1C5D1D1C5CFD3C4CFD3C5D2D4C9D2D3CBD2D3CB D2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD2D3CBD1D2CAD1D2CAD0D1C9CFD0C8CECFC7CECFC7CDD0C5 C6CCBECAD1C1CDD0BFCCCBB9C9C2B2AFA4927A6A5A4736246E594876614E85705F96816EA48F7E AD9885B09B8AB09B88A08B7AAB9683AB9685A48F7C9E89789A85729F8A79AA988CB4AAA89B9798 C5C1C2CECACBCBC9CAC4C4C4A5A7A6C2C6C5D3D7D6D0D9D6D0D9D6CFDAD6CEDAD6CCDBD6CCDBD6 CCDBD8CCDADACCDADBCCDADBCCDADBCCDADBCCDADBCCDADBCCDADBCDDBDCCDDBDCCDDBDCCDDBDC CDDBDCCDDBDCCDDBDCCFDBDBD2DCDBD9E2DFCED7D4BAC3C0BAC3C0C9D2CFC3CCC9AEB7B4A8B1AE BEC7C4CFD8D5C8D1CEB7C0BDADB6B3A9B2AFA9AFADA5A9A8C8CAC9D2D6D5D1D7D5C1CAC7B5C0BC BAC6C2ABBCB67F928C657A73617B725F7A716D8B8163837849695E6F8F846A8580667F7B788F89 9CB1AAB6C7C1B8C7C0BCC7BFC5CFC7C5CCC5C6CBC5C5CAC6C7CCC8D1D5D6DBDFE0DDE2E5D8E0E2 D3DDDEDDE9E9E4F0F0DFEBEBDAE6E6DBE7E7DCE8E8D9E5E5D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2 D6E2E2D6E2E2D6E2E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DBE3E5DBE3E5 DBE3E5DBE3E5DBE3E5DBE3E5DBE3E5DBE4E3E0E9E6DCE5E0D9E2DFDAE3E0D8E3DFD0DBD7BFCBCB B2BEBECEDCDDCFDFDFD2E1E4D3E5E7D4E6EAD2E4E8CFE2E6CDE1E2D2E1E4D2E2E2D2E2E2D2E2E2 D2E2E2D2E2E2D2E2E2D2E2E2D2E2E2D2E2E2D2E2E2D2E2E2D2E2E2D2E2E2D2E2E2D2E2E2D5E0E6 D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D5E0E6D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5D4DFE5 D4DFE5D4DFE3D0D7DDD2DADDD5DDE0D8E0E3DAE2E5DBE3E6DBE3E6DBE3E6D9E1E4D9E1E4D9E1E4 D9E1E4D9E1E4D9E1E4D9E1E4D8E2E4D6E1E3D5E3E4D5E3E4D5E3E4D4E2E3D3E1E2D3E1E2D2E0E1 D8E6E7D7E5E6D5E3E4D3E1E2D0DEDFCEDCDDCCDADBCBD9DACDDDDDCDDDDDCDDDDDCDDDDDCDDDDD CDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDCE1CDDCE1 CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1 CBDDE1D0E5E8C0D8DABFD4D7CADEDFCCDEDEBFCDCDB9C3C4BEC7C6D2D4D3D5D5D3DBD7D4DFDAD6 DFD7D4D9D0CBD2C4C1C7BEB7BCBDAFACB09F9D9F91A6AA9BB4B6A99EA1969D9E96C1C4BDDBDBD9 CBCDCCB7B7B9A1A2A68F8E94797A7F63626A5352573E3D393A3A3236332E322F28322F2834312A 37342B38352C3F3B32423E353932284D463CD8D1C7F9F3E7989286463E333B322949403750473E 8D867CD0C9BFD3CFC4D5D3C7BFBDB1B4B4A8C0C0B4D5D7CAE3E5D8E0E4D6D9DDCFDBDFD1E5E9D8 DDE5CDDFE8CDE0E8D3DCE3D3DBE1D3E0E4D6DFE3D5DDE1D0DFE3CCE1E5CC82866BC4C8AFCBCDB7 CBCCBADADBCDDDDFD2DBDFD0D6DDCDCED5C5B9C0B0B0B8A9C8D0C3D0DBCDBBC7B9505A4F495446 666E61868E7F8F95879CA393ABB2A2A3AE9E4E5E5120322441514492A093313D2F2E392B626A5D A4AA9CAEB2A4D3D7C8CBD2C2C8D1C0919A892C37262E3B2968715CD1D5BAD6D9BADBE2C3B0BD9F 39492E27361F38453396A191A8AEA2CED1C8D6D7D1C5C8C1D4DBD396A29829392E2F4337203725 354A373B48363A412F3E3F2D6463519C9988A4A19279776A8A8879A7A69256543B393313766A42 BCAB7DD8C492D5BD8DE1C796DBBC8DDEBE8DE1C190DBBC8DD0B78EB6A07B5A4B2C63583C685E43 6A5E4466583B5A4A29624C2775613E908162958A6CA598769284617D6B45A69369D6C091CFB886 CFB582D2B780C3A56FB79862C2A36DCDAE78CCAD77CCAE7AC4AD79C8B17BCAB077C7A96DCAA869 CFAD6ECEAE71C7AA70CBB27ACAB580CCB684CCB782CEB57DCFB57AD4B479D7B578E3BC85E3BE8A E1C08DDFC091D8C090D4BE8DD1BA88D0B781D0B57ED3B67ED2B37CCFB17BD1B786CCB589928058 A89A779B9273746D537C765E56513D8B887975736763635964676050554F0004003A463C738474 627562627863778D76B0C0A6D4D7C2DAD5C1DBD5BFDBD5BFDCD4BDDCD4BDDCD4BDDCD4BDD9D1BE D5CEBB8680706562515B594C828375A0A0968A8C877C8487717E8494A3A6B5C9C7B4C9C2ABBFB4 909E915E665763625079725FCDC1AB8D7F65564B2DC0B894CFC9A5CCC79FCAC198CBC299CDC49B CFC69DD1C89FD1C89FD0C79ECFC89ECBC39CCEC9A1D1CEA5D1CFA6CDCBA4C8C9A1C8C8A2CBC9A2 B1AE85BCB78DCDC89ED3CEA4CCC79FCEC9A1D4CFA9D1CCA6CEC8A4D2CCA8C9C3A3625C3CABA487 B0A98C857E617471527C816367705360694E6B735B6D7560606757585E505B615563695F666C62 6C7266666C60777D6F9299899FA694BCC0AFAFADA0474539A8A8A0CCCDC7CFD1CED2D4CFDDDAD5 D6CFC5D2C4B9B5A2935942323B24143922143F2B2034211A33221A3D271C4C392B4E42344F4939 30322447503FA3AB9EBBC1B5CFD2C9D1D1C9D3D0C7D4D0C7D4D0C5D3D1C5D0D2C4D0D2C5D1D3C8 D1D2CAD1D2CAD1D2CAD1D2CAD1D2CAD1D2CAD1D2CAD1D2CAD1D2CAD0D1C9CFD0C8CECFC7CECFC7 CDCEC6CCCFC4C5CBBDCBD2C2CED1C0CAC9B7C8C1B1B2A7957C6C5C453422A28776A28774A38877 A78C79A98E7DA78C799F8473987D6AA88D7CAC917EB59A89B29784A58A79A78C79B69B8ABBA598 B9AEAC938D8FC0BCBDD4D0D1D7D5D6CECECEACAEADD5D9D8D1D5D4CED7D4CED7D4CDD8D4CCD8D4 CAD9D4CAD9D4C9D9D6C9D9D8C9D9D9C9D9D9C9D9D9C9D9D9C9D9D9C9D9D9C9D9D9CBDBDBCBDBDB CBDBDBCBDBDBCBDBDBCBDBDBCBDBDBCCDADAD7E1E0D1DAD7CED7D4CCD5D2C1CAC7AFB8B5A6AFAC A8B1AEA7B0ADB5BEBBB9C2BFAEB7B4A7B0ADACB5B2B2BBB8B4BAB8B4B8B7D0D2D1D0D4D3C7CDCB BAC3C0BAC6C2BBCAC59DAEA861766F6A817979948B6080755E7F74587C7044685C77988D7A9792 6D8883657E78768D859AADA7B8C9C1C2CFC6BDC8C0C2C9C2C7CEC7C9CECAC8CDC9CDD1D2D6DADB DCE0E3DBE0E3D0DADBDCE8E8DFEBEBD2DEDEC9D5D5CFDBDBD9E5E5DCE8E8D6E2E2D6E2E2D6E2E2 D6E2E2D6E2E2D6E2E2D6E2E2D6E2E2DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4 DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE2E4DAE3E2D3DCD9D0D9D4D0D9D6D5DEDBD8E3DF D1DCD8C0CCCCB1BDBDCBD9DACDDDDDD2E1E4D3E5E7D4E6EAD2E4E8CFE2E6CCE0E1D3E2E5D3E3E3 D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3D3E3E3 D3E3E3D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D6E1E7D7E2E8D7E2E8D7E2E8D7E2E8 D7E2E8D7E2E8D7E2E8D7E2E6D3DAE0D5DDE0D7DFE2D9E1E4DAE2E5DAE2E5D9E1E4D9E1E4D7DFE2 D7DFE2D7DFE2D7DFE2D7DFE2D7DFE2D7DFE2D6E0E2DEE9EBD9E4E6D2DDDFCBD6D8C6D1D3C5D0D2 C6D1D3C8D3D5D5E0E2D4DFE1D4DFE1D4DFE1D4DFE1D4DFE1D4DFE1D2E0E1CDDDDDCDDDDDCDDDDD CDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDDCDDDDD CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1CDDCE1 CDDCE1CDDCE1CBDDDFCADEDDC5D9D7C9DCDACBDBD8B2C1BE949F9B939995A7A9A4ACA9A4ACA7A1 AFA69FB3A69EAFA198A190888B777077675A79725F76765E706E597F7E69989582898876868276 A7A599A09B95888580696363504C4D433D413A353B322B332A25293934303C3930413C36403C33 3C382F38342B36322937332A363229433F3639352C454136C5C1B6E3DFD49490855D564C746D63 8B847AA39C92BEBAAFD6D2C7D5D1C6D5D3C7EEECE0E6E6DAEBEBDFE9EBDEE8EADDDEE2D4D8DCCE DFE3D5E2E9D9D6E2CADCEAD1DDEAD6E0EDDCDDE9DDD9E3D8DDE7DCDEE9D9DAE3CED8E2CA8E967E DFE7CFD4DCC7CED5C5CACDC2C0C3B8AEB2A3A2A9998D94845D6556515B509BA89ECCDCD2ACBDB3 3140392E3E345D6A60939D92A7AFA2BBC2B2CED5C5C7D0BF586657223426344437859183253020 2A3121616556ACB09FB6B9A8CFD2C1BDC0ADC4C9B5979C88303823313A25636B53D4D9B9D6DDBB DBE6C4B4C3A23A4D2F22361B32442E93A190A8B3A5ADB5AABABFB89AA1998D989071817723392D 193123273D302C41302F3C2A3F47324B4D3863614C88836F85826F63604F716E5BA19F8A605C43 453C1D7C704ABAA97DD5C091D6C08FE5CB9ADDBE8FDFC18FE5C594DCBD8ED3B78FBFA984A19170 A2947797896E887A5D817150776340745B3379613B7262417F7051978867A3936FAB9870C3AE83 CFB98AC3AC7AC5AC76D5BA83D0B37BC7AA72D3B47DD7B881D2B37CD3B980CDB881D4BF86D5BD81 CFB374D1B271DBBC7BDCBE7ED3B97CD6C086D3C088CFBE86D1BE86D4BE84D7BF81DABC7EDBBB7E DFBA83DEBA86DBBB8AD8BC8CD4BC8CD2BC8BD0BA88D0B985D3B881D5B880D2B37CD1B37DD4BA89 CFB88C917F57A39572A69D7E797258837D655B5642A09D8E8D8D81797A727A7F786A716A07120A 49564C839386667B6A59715B647C64A0B298D6D9C4DAD8C3DCD7C1DCD7C1DDD7BFDDD7BFDED6BF DED6BFDBD4C1D9D2BF8B85756764535856497E7F71A2A2989398928C96987D8C9195A7A9BACECD BCD1CCB2C6BD98A59B61695A646553736C59CBBFA99A8C7254492BB9B18DC9C39FC9C49EC3BB94 C5BD96C8C099CBC39CCEC69FCDC8A0CDC8A0CCC9A0C0BC96C4C29BC5C59FC3C59EBEC09BBBBF9A BDC39FC4C6A19E9B72C1BC92D3CEA4CFCAA0CEC9A1D1CCA4D1CCA6D1CCA6D0CAA6D0CAA6D0CAAA 605A3AA59E81B9B295918A6D8382637C83645A67494A573D55614B5D6857535D524D574E525B56 424B4849524D4F59514D574E6F7A6C9BA696A5B09FB4BBA9BCBAAD484439A5A29BCBCCC6CED0CD D2D3CEDAD9D4D3CCC2D4C6BBBEAD9D604B3A3B24143822143F2D2134231B33251C3A261B4F3D2F 51453753503F303425414A39A1A99CBAC2B5CFD2C9D1D1C9D4D0C7D4D0C7D4D0C5D3D1C5D1D2C4 D0D2C5D0D2C7D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9D0D1C9CFD0C8CFD0C8 CECFC7CDCEC6CCCDC5CBCEC3C5CBBDCDD4C4CDD1C0C6C7B5C5BFAFB1A9967C6C5C41301EAE917F B39684B59886B29583AA8D7BA68977A88B79AC8F7DC0A391B99C8ABFA290B79A889E816FA28573 BA9D8BBCA699BDB2AE908A8CC0BCBDD9D5D6DAD8D9C6C6C6999B9AC2C6C5D1D5D6CED7D4CED7D4 CDD8D4CCD8D4CAD9D4CAD9D4C9DAD4C9D9D9C7D9D9C7D9D9C9D9D8C9D9D8C9D9D8CAD8D8CAD8D9 CCDADBCCDADDCCDADDCCDADDCCDADBCBDBDBCBDBDBCCDADAD3DFDBC6D3CCD0DCD8DFECE5C0CBC7 8F9A9495A09CC2CDC7B6BFBCBBC4BFB6BFBCA8B1ACA5AEABAFB5B1ADB3B1A3A9A5ACB0AFC8CAC7 CBCFCEC7CDC9C0C9C6BFCCC5AEBDB874887F5A6F686A847978968C52726556776C64887A4F7568 769C8F62837A64837B607B74657C74889C93B6C5BEC4CFC7B6C0B8B3BAB3BFC4BEC6CBC7C2C7C3 C1C5C4CBCFD0D9DADCDDE1E2C3CBCDCCD6D7C6D0D1AFB9BAA3ADAEB1BBBCC8D2D3D3DDDED7E1E2 D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2D7E1E2DAE3E2DAE3E0DCE2E0DAE3E0DCE2E0DAE3E2 DCE2E2DAE3E2DCE2E2DAE3E2DCE2E2DAE3E2DCE2E2DAE3E2DCE1E4DAE3E2C0C9C4C0C9C4C4CDC8 D0D9D4DBE4DFDAE3E0CCD5D2BDC7C6CDD7D6D0DADBD4E0E0D6E4E4D9E4E6D6E4E5D2E0E1D0DEDF D4E2E2D4E2E2D4E2E2D4E2E2D4E2E2D4E2E2D4E2E3D4E2E3D4E2E3D3E3E3D3E3E3D3E3E3D3E3E3 D3E3E3D3E2E5D4E2E5D6E1E5D6E1E5D6E1E5D7E0E5D7E0E5D7E1E3D7E1E3D7E1E3D9E3E5D9E3E5 D9E3E5D9E2E7D9E2E7D8E3E7D8E3E7D9E2E7D5DCE2D7DEE4D8DFE5DAE2E5DAE2E5D9E1E4D8E0E2 D7DFE1D6DFDED8DEDED8DEDED8DEDCD9DDDCD9DDDCD9DDDCD9DEDAD8DDD9CCD1CBB9BEB8A5AAA4 9799948F918C8E8F8A8E8F8AA1A29DA4A5A0ABACA7B4B5B0BEBFBAC6C8C3CDCFCAD0D2CDD5DAD6 D4DAD6D4DAD6D4DAD6D2DBD6D2DBD6D1DCD6D1DCD6D1DCD6D1DCD6D1DCD6D0DDD6D1DCD6D1DCD6 D1DCD6D1DCD8D1DBDAD1DBDCD1DBDCD0DCDCD0DCDCD0DBDDD0DBDDCEDCDDCEDCDFCEDCDFCEDBE1 CDDCE1CDDCE1CDDCE3CDDCE3CDDCE1C5D5D4CBDCD6D5E4DFCBD8D19DA6A170777075767096938C B1AAA2AFA59CB0A299B09F95AA968B947E71735B4F574435625A4579755C827E65938D77A49C87 837B685F5647645C4F41382F362F292E26233028263B31304236364034343B302C40362D3F352B 3B3328352D22322920393027473F34544C41645A50887E7283796D686055BAB4A8D6D2C7C1BEB5 CAC6BDE7E0D6E2DCD0E4E0D5E8E6D9F7F5E9F0F1E3D0D0C4E4E5D7DEDED2E7E8DAE2E2D6E0E1D3 E0E2D5E1E5D6E3E9DBD7E0CFD6E2CCDCE8D2D9E2CFD5DBCDC3C9BDB6BCB2C6CCC2D3DBCCEEF7E6 D1DAC777806BB6BFAC98A09198A093989D9693968D8F9385888F7F737A6A353D2E273126919E94 D4E4DAA3B3A92D3D332B3B31616E649FA99EB2BAADC2C9B9D1D8C8C5CEBD5B695A28382B364639 8997882E3929333B2C626959ADB4A4BABEAFC9CDBCB2B6A5C8CCBB9FA694313A272B3421586049 D5DCBDD7DEBDDDE8C6B7C6A53D4D3022351932412A93A08C838E7D4B5344454B3F2B33262F3A2C 5866573D4F411F3425334336313D2F2F362442442E4B452D49422852482F42381F342C153D3721 7C765E564F35514628918360C6B38BD8C398D9C193E8CD9EDCC090E0C290E7C899DCBD8FD4B98E C5AE85B29E79A79571826F4E624E2B69532C7C633A86693D886B3F8D774E94825A95825AA39068 C8B289D8C197D0B88CCDB283C7AB79DDBF89D7BA82CAAD73D3B67CD3B97ECFB67DD8C288CFBA81 D7C289D5BF85CCB478CFB276D9BC80DCBF85D2B87FDAC189D5BE88D0BB84D1BC83D5BF85D9C185 DAC083D8BE83D7B985D7B889D5BA8DD2BB91D2BC93D1BE94D3BE93D5BF8ED7BB89D7B983D2B37C D3B47ED7BB8BD2BA8E938058A29471A49B7E736D537F7963585340A9A79A9C9C92888B848C918B 7278740B1610404D447282755D725F5068505B7359ABBDA3D6DAC3DAD8C1DCD7C1DCD8BFDDD7BF DED6BFDED6BFDED6C1E0D8C5DDD6C48F89796B685957584A7D7F72A4A79E9CA39C98A4A4859497 92A4A4B5C8C6B7CAC4B1C2B89AA79D636B5E696A5A706B58CBC0AEA0947E53472DB3AA8DC4BB9C C4BE9EC9C4A4C8C5A4C8C5A2C7C4A1C6C29FC3C09DBEBE9ABBBC9AA7AB8AA7AD8BA4A9899EA482 999F7D9DA37FA8AE8AB5B790939067C5C096D8D3A9CCC79DD0CBA3D3CEA6CEC9A3D1CCA6D2CCA8 CDC7A3CEC8A85B5535A8A184D3CCAFBAB396BBB79A8A9172606A4F454F3648543E4C5747414B40 39453B3E49434F5A54525D57505B534652466D796BA2AF9DAAB7A3B1BAA5C1C2B2474538A1A197 CACBC5CDCFCAD0D2CDD9D8D3D1CAC2D5C9BDC5B3A56651403D26163A2417432F2636251E362720 36281D4D413350483B5654453135263F4537A1A99ABBC1B5CFD2C7D1D1C7D3D0C7D4D0C7D3D1C5 D3D1C5D1D2C4D1D1C5D0D2C7D0D2C7D0D1C9D0D2C7D0D1C9D0D2C7D0D1C9D0D2C7D0D1C9D0D2C7 CFD0C8CED0C5CDCEC6CDCFC4CCCDC5CBCEC3C5CBBDCDD4C4CDD1C2C5C6B6C2BFAEB0A999786C5C 3A2F1DA28776A68B7AA88D7CA98E7DAE9382AF9483A085748E7362C4A998BA9F8EAE9382A18675 9D8271AD9281B095849882759C918D9C9897B7B3B2CBC7C8D3D1D2C2C2C4A4A5A7ABAFB0C9CDD0 C8D1D0CCD5D4CFDAD6D0DCD8CEDDD6CDDCD5CBDCD6C5D7D7CADEDFCEE2E0CEE1DDCBDCD6CBDAD5 D0DCD8D2DEDEC8D3D7D1DCE2D2DCE5CCD7DDCBD6DACFDDDECFDDDDC7D8D2C8DCD3C5DBCFDAEEE5 E5F9EEB5C6BE77887E84938CC1CEC5ABB6B0BBC5BDBFC8C3B9C0B9AEB4B0A5AAA4ACB1ADC0C5BF 9FA19EBEC0BBD1D6D2CDD4CDBBC4BFC3D0C7B1C0B95A6E63788D846C8679637F7379998A5F8173 577C6B5F857689B2A2719A8A4E746768887D79908685948DB1BAB5C2C7C3C2C7C3BFC1BEC7CCC8 C3C8C4C4C9C5CDD2CEC8CAC9CCCCCCE8E8E8DFE3E6D5DADEBCC1C5ADB2B6A8ADB19CA1A5AFB4B8 E2E7EBDBE0E4D9DEE2D7DCE0D6DBDFD7DCE0DADFE3DDE2E6DFE5E5CED5CEB6BDB5CBD0C9CFD6CE D3D8D1DDE4DDD5DAD4DFE6DFE0E5E1E1E7E3E3E7E6E0E6E4DDE1E0DBE1DFDDE1E2DEE4E2CCD7CF CCD7CFC8D2CAC2CCC4D8DFD8D4D9D3BFC4BEDBDDD8DDDFDADDDFDADDDFDADBE0DADDDFDADBE0DA DBE0DADAE0DCD9DFDDD5DEDBD5DEDDD8E1E0DDE6E5DFE9E8DFE9EADCE8E8E0EBEDD8E6E7D0DEE1 CBD9DCC9D8DBCCDBDED0DFE4D4E2E5DAE5E7DBE5E7D7E1E2D3DBDDD8DEDEDDE3E1DFE3E2DBDFDE DEE2E1DBDFDED7DDDBD8DEDEDAE2E4DAE4E5D7E1E3D4DEE0CAD1D9D1D8E0D3DAE2D2D9DFD6DEE1 DCE4E6D7E0DFCDD6D1D8DFD8DDE2DBE3E6DDE5E7DCE1E1D5DAD8CCD0CCC0CBC5B78F8A7799927F 867E6B7B705E8B7E6D907F6F927F70A99687978173998375907A6C856F618A77689C8B7BA49383 9E8E7E9285758E8274AEA294B3AA9B8C85758784739A99878C8D7BB8B9A7BBBEABCCCFBCC6CBB7 C9CCB9D8DBC8DBDECBE7EAD9E6E8DBD8DACFD4D5CDDFE2D9E2E7E0D8DDD7CFD5D1CED7D4D7E1E2 CED8DAC3CED2C8D5DBD6E3EBD2DFE8CBD9E4D4E1E9C9D5D3DEE9E1D3DED6A9B3AA9BA099B1B2AA A3A3997571668D857AAA9E92B8A89BAD9B8DA79485AF998BA992829382728E8775817E6B635D47 6D624E3C2D1A2E1F0C3B2B1C37291E3A3027413831403732433A3540332B3A291F402D1F3F2C1D 3623124835245A493969594A7D6F62988A7DAB9B8CB09F8FC7B4A3E4D2BEA08E7A675747D2C6B8 DDD6CCDEDED6EEEEE6F0E9DFE4DED0DEDCCFD8D9C9DFE3D4EAEEDDE3E7D8E2E5D4DDDED0E4E2D3 EAE6DAEFEDDEDBDCCECDD1C0DEE7D6E5EEDBD2D5C0C8C7B397918178716161574B41392EA29B91 E8E6DAD8DACDE6ECDE6B7668263025353C34676C668E908BA7AAA3C2C6B8CAD1C1A5AC9C383F2F 3C4435868E7FDDE8DAB4BFB1313C2E36413371796A9CA495B1B7A9C8CFBFCBD2C2C6CEBF586659 2131263444397B8B7E313F32212F22586458ADB9ADBCC8BCD0DCCED1DDCFD2DED0ADB9AB3F4D3E 182617626D5CD3D8C1D4D8BDCED4B8C1CAAD444D322A3318464E36848C746F745E3C412B151A04 1F240E3E432D424A332E37221A230E2B2F204041314C4733544A315C4B2F796447644D2E644F32 74634788785E998B7197876E8E7D619C8768C2AB8BE6CCA7DFC79BE0C596DFC495DEC292DCC091 DABE8FD9BD8ED7BC8DC6AB7EAE93669E8253A48858B39563BB9B68C09C68C2A16BCBAE76C9B078 D6BF8DDBC596CEB78DCEB78EDCC098DEC197D6B687DEBD8AD4B37EC8AB73D0B77ED8C489D2C388 CFBF84E1CA94D7BE88DBC18ED8C18FC6AE7ECAB284DBC093D9BD8EE0C290E7C794DBBB88E1C38D DCC38DC5AE78C9B47FD3BF8CCEBC8EC9B78FD6C6A4E7D8B9E3D5BADACAB0D2C2A1CCB68FD8BD90 D3B380D6B57FCFAE79DDBD8ECFB2889A805D958262B6AC916462497A78635856478D8D839B9C96 838582888C8B858B89020D093A473E9BAB9E6B7C69667A61576B4FA5B598D8DCC3DCDAC1DEDAC1 DFD9C1E0D8C1E2D7C1E3D6C3E3D6C3E4D7C6DDD4C3A0988B615D5174746A72756CAEB3AD9AA49C 91A09B7F908A99AAA4C0CFC8A1B1A7ABB8AE9CA69B6E7468696B5E6D695DBCB4A7A79E8F4A3E2E 998E7CA99E8CB7AF9CA9A991A0A48BA0A3889B9E81939377909376898F757781687280676B7A63 5C6C525F6C526C7556989E7ABEC099AAA87FB8B58AC5C096D2CDA3D8D3A9D5D0A8D1CCA4D0CBA5 D2CDA7CEC8A4D0CAA6D6D0B0666040A0997CCFC8ABC1BA9DC5C0A3A2A2885658425F624D616652 565D4B5E67564853434C57495763555965575562514D5A48535F4B98A48EACB8A0B5BDA6C3C6B3 5053427C8072D3D9CDC5CCC4D1D6CFCFD0C8D0CCC3C6BAAECDBBAD6F584A341D0F452D23402923 36231F3425202E271D36342743413453544637392C34382A84887AB5B9ABD3D5C8D5D7CAD7D7CB D4D4C8D1D1C5D0D0C4D2D4C7D5D7CAD0D2C5D0D2C5D0D2C7D0D2C5D0D2C7D0D2C5D0D2C7D0D2C5 D2D4C9D2D4C7D1D3C8D0D2C5D0D2C7CFD1C4CED0C5CED0C3CACEC0C9CDBFC8CABDC9CBBDCBCCBE BBB9AC8A887B5B594A9E8372AA8F7EAD9281A48978A08574A48978A08574957A69AF9483AD9281 BA9F8EBCA190AE9382B49988B99E8DA69083A69D96908C8977737057565464626388888AA1A2A6 C2C6C9CACED1C9D1D3CDD6D5CFD9D8D0DCD8D0DDD6CDDCD5CBDCD6C7DBDAC1D6D7C1D5D3C4D7D1 C5D6CEC2D2C8C9D4CED1DBDAD5DEE3C8D1D8B8C1CAB0B9C2B5BEC3C3CFCFD3DFDDDBECE4C0D6CA B2CABDACC4B7A7BDB18EA2977A8B8193A49AC1D1C7B8C3BBCBD5CDD5DCD5C3CAC3ADB2ACA6ABA5 A9ABA6A7A9A49FA19CBDBFBAD0D5CFCED5CEB8C2BAB9C4BCA6B6AC5D6E646B8175566E61496557 6B8A7B698B7B698E7D658A797BA49276A19045705F47675A4E655B727F78B9BFBBD0D2CFC3C3C1 BBBDBABFC4C0BBC0BCBDC3BFC9CBC8C1C1BFBEBDBBD1CFD0CACBCFBABDC2AAADB2B4B7BCC4C7CC B8BBC0B4B7BCCBCED3DBDEE3D9DCE1D7DADFD6D9DED6D9DED9DCE1DDE0E5DFE3E4CED5CEBCC4B9 C6CEC3CBD3C8C5CCC4C8CFC7CFD6CFDFE6DFD6DCD8DAE0DCDDE3E1DDE3E1DBE1E1DAE0E0DDE1E2 DDE6E3D4DFD7BECBC1C0CBC3C5CFC7CFD6CFCDD2CCC5C7C2DADCD7DEDFDADEDFDADEDFD9DEDFD9 DEDFD9DDE0D9DDE0D9DBE0DADDE2DEC7CCC8B2B8B6B5BBB9CCD2D0DFE5E3E0E9E8DAE4E5D1DBDC D5E0E2DCE7E9E0EBEDDDEBEEDAE8EBD9E7EAD9E7E8D8E2E3DAE3E2DAE3E2DBE1DFDDE2DEDFE1DC DBDDD8D7DAD3E2E3DEDCDED9D8DAD5DADFDBDFE5E3DDE6E5D5DEDDCCD4D6798086A7AEB6D4DBE3 E3EAF0DDE5E7D8E1E0DAE3DEDDE4DDD1D7CDD6D9CED7D9CBD5D3C4C7C4B3B4AF9CA09885938B76 978D7294896D9E8E74A9987EAF9981B19981AB8F799F806BAE8F7AB2937EAD8E79A48570A1856F A58B74A0866F9279639B826E87705E907B689C8A769786729A8E78998E787D775FA8A28AA19D84 A4A28998967D97957CA3A188A5A188B1AC96BCB5A2AEA996ABA595B8B5A6C7C5B8CFCFC3DADAD0 E4E7E0CED0CDD4D8D7D9DEE1DBE3E6D4DDE2BFC8CFBAC4CDCDD6DBCDD6D3E8EFE7BDC2BB8E948A ADAEA6BFBFB5ADA99EACA69A7A70648E8073A09081AB9A8AB9A493B8A3929B8472736250544D3B 3A3522241C094D412B44321E43311D4E3B2C4B3B2E3D30274237313F342E3C32293F31264D3C2C 66503B7158429C836DAF9680BBA693B7A493AA9989A39282A3907FA7927FCFB9A2EBD3BBA38D76 6A5844D6C9B9E3DDD1E2E2DAEBEBE3DED8CCDFD9CBE4E2D3E6E9D8E6EDDBE6EFDCDFE6D4DFE3D2 E3E4D4CDCABBBBB5A7AEAB9CB7B8A8DADECDE3ECD9D3DCC7E7E6D2B2AB985549392E21113A281C 443427B1A49BF5EFE3DFDFD5E8EEE26C766B263228333D356A706C9FA19EC2C5BECBD1C3D1D8C8 A6AD9D333A2A333A2A818878E0E7D7B8BFAF2E3525353C2C767D6DA5AC9CB4BBABC8CFBFCCD3C3 C9D1C26E7A6E2E3E313E4B417F8F8234413729392C5D6A609DADA0AFBCB2A3B3A687948A809083 77847A2B3B2E1623195C6958C9CEB8D5D9C0D9DDC4C8CCB344482F1C200732361D6D71585E6249 474B323E422955594072765D7A7E6572765D6B6D5784836F746F5B7F735B9F8E729E8566A48765 9073519D83609077588F7A5B917D62988469A59073B8A181CCB291DABE97E1C69BE0C596DFC495 DDC293DBC091D9BE8FD9BD8DD8BC8CDEC08ED0B280C7A774CCAB76DAB781E1BE86E3BE87E1BE84 D3B577E7CA8ED8BF87C7B07ED4BD93D7BE96D0B48DDABA91DAB88BE0BC8CDCBB86D2B57DCDB47C CEBD85D1C68ED4C993C5AE7CC8AD7ED3BB8FD4BD93C8B28BD2BC95DFC69ED9BC92D5B586E1BD8B D7B37FDDBC87DCC08ECFB886D1BF8FCFC194D7C9A2C5B896AEA5889C947DA09885BBB09CCFC1A7 CFBC9BD6BA92D2B482D5B47ED0AF79DCBC8BD1B188A08361958063A8A1855A5A4271705C545545 909287A9ABA6969A999FA5A5949A9A0A15113A453DA5B3A474867063755B536849A6B596D7DBC0 DBD9C0DDD9C0DED8BEE1D6C0E2D6C0E4D5C2E4D5C2E1D4C3DDD1C1A39B8E625E536F7068696E67 A2A9A28F9A9296A69C788A7E8C9C92BECBC1ACB8AEB2BCB1969C925E615676766A727063BDB7AB A59D90362A1E72665A7E70657A736370715F6870596F725D6D715A63674E5D624B555F4744513D 4D604C4E635056695573826B8D987AAEB490C7C59EACA97EBEB98FC8C399D2CDA3D5D0A6D2CDA5 CFCAA2D0CBA5D2CDA7CFC9A5D0CAA6D6D0B06B65459B9477CFC8ABC1BA9DC5C0A3A19C86565540 5E5D4961644F5A5D4C6067554D56454E59485B68565C69575A675354624B5B6751A0AC94B4BEA5 BAC2AAC5CAB4545945747B6BD1D9CCC5CFC4D0D7CFD0D1C9D5D1C8D1C5B9D6C4B6775F53321A0E 3D251B3D262038232235272436332A3D3F324244374E504337392C3335287F8174BCBEB1CFD1C4 D1D3C6D3D5C8D1D3C6CDCFC2CDCFC2D0D2C5D4D6C9D1D3C6D1D3C6D1D3C6D1D3C6D1D3C6D1D3C6 D1D3C6D1D3C6D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3CED0C3CED0C3C9CBBEC1C3B6 B8BAADB0B2A5A1A396888A7D7274677B604F9277669B806F8F7463907564A78C7BB79C8BB59A89 9F8473967B6AAB907FB499889C81709D8271B19685AA94869F968D93908B938F8C8B8A88969495 A0A0A29E9FA3B2B6B9CBCFD2CAD2D4CDD5D7CED8D7CFDBD9CFDBD7CCDBD6CBDBD8D6EAEBCADFE0 C5D9D7CCDFD9D1E2DACEDED4D0DBD5D4DFDBEAF2F5C2C9D1A4ABB5ABB2BAB9C1C4B7C1C0AEB9B5 A8B8AEA5B9AE9BB1A591A79B8CA0958B9F9495A69CA5B5ABB4C1B8B9C4BCC2CCC4C8CFC8AEB5AE 929791A0A59FB4B6B1A7A9A4989994B3B5B0C7CCC6CCD3CCB7C1B9AFBAB2A5B2A96F7F75687C71 51675B4761546B87797493846F8F805E8070628977638C7C4770604A685C4C61586E7B74B6BBB7 D0D2CFC2C2C0BEC0BDBBC0BCB6BBB7BCC2BEC9CBC8C1C1BFB8B7B5BFBDBEC2C3C7B6B9BEA9ACB1 ABAEB3B7BABFB9BCC1C4C7CCDDE0E5DADDE2D9DCE1D7DADFD6D9DED7DADFDADDE2DCDFE4DDE2E5 BBC6C0B3C0B7AEBBB2B2BFB6A0ADA697A49DB7C2BECCD7D3D2DBDAD7E0DFDBE4E3DAE3E2D6DEE0 D3DBDDD8DDE0D8E2E1D0DDD69FAFA5AAB9B2BFCCC5BAC5BFBEC7C2CAD0CCD9DEDADBE0DCDBE0DC DBDFDEDBDFDEDAE0DED8E1DED8E1DED8E1DEDCE2DECCD1CDBFC4C0C5CAC6D7DDDBE3E9E7DFE5E3 D2DBDADCE5E4D8E2E3D6E0E1D6E0E1D7E1E2D6E0E1D2DEDED0DADBDCE5E4DEE4E2DFE5E3E3E8E4 E6E8E3E5E6E0E4E5DFE5E6DEEDECE7E6E7E1DEDFD9D8DAD5D6DBD7D7DDDBD9DFDDDBE1E1B5BABE C3C8CCCED6D9D3DBDDD8E1E0DDE6E3DBE2DBD1D8D0C4CABEB6BAAC9EA1908B8A7883806D898470 978F7CA09881A49A7F8D826697896EA5957BA08C73A8927AAA90798D715BAD917BB29680B69A84 B59B84B99F88BDA58DB79F87AC937D9E8370987D6A987F6B9F8974A9947FAE9E87AC9D86A1977E ADA38A9E977D9E977D938C72928B71999278958B729D937AACA0889F937B978B759A8F7BA09885 A59E8CAFA898B6B2A6C4C0B5C9C6BFC8C7C3C1C1BFA8AAA9818284727375818382CCD1CAD2D8CC A8ABA08E9083ACACA0B7B5A8AAA498B3AB9EA49B8C948777877768938272B39E8DC1AC9BB19A8A 9481709F96856D665341362250412A442F1A3C2712463322503E303E30254C42395E544B6B5E55 87776AAF9C8DCCB6A1D7BFA7D9BFA8E6CBB6EBD4C2D8C5B4B1A090907F6F897665927D68D6C0A9 EDD5BDA48E776C5A46DACDBDEAE4D8E2E2DADDDDD5F5EDE2E6DED1D8D5C6D9DACADEE2D1DAE1CF D7DBCAD5D8C7999788605D4E534D3F5852448B897AD9DDCCE7F0DDDFE7D2E5E2CFB6AE9B685C4C 45382854423659493CB1A49BE8E2D6E8E8DEE3E9DD636F63243026353F36717871A8AAA5C8CBC4 D5DBCDD8DFCFAEB5A5363D2D3037277F8676E1E8D8B6BDAD3D4434363D2D6F76669DA494AAB1A1 C0C7B7C8CFBFC3CBBC667264202E1F313D31788677313D31313F306672669AA8993D493D324031 212D213B493A5C685C364435222E22535E4DCFD4BDDDE0C5DDE0C5C6C9AE51543932351A505338 8B8E739C9F849C9F84A7AA8FBABDA2C7CAAFC9CCB1CBCEB3D1D1B7DFDDC49E977B8C7F5F9B8965 7C633B785B316E51277D623790774F8A744D8A76539C8865B8A27DD0B990DDC199DEC396E0C598 DFC495DEC394DDC293DBC091DABF90DABE8ED9BD8DDBBF8DDABC8AD7B784D6B781DDBC87E3C28C E3C08ADAB983D8BB83E9CE97AF98668C7647C1AA80D6BF96C7AB83D9BA8EDFBD8FE1BD8BE2C18C D9BB85CCB37DD0BF8BDACE9CDBCF9FE0CBA0E0C9A0DFC9A2D3BF9AC5B38DCDBA92D7C097D1B689 CFAF7EDCBB86D6B37DD8B782DBBD8BD6BE8ED3C095BDAE858F835D6B6241453E2439321F4F4836 7C7362AEA28ACDBD9CD2B991D0B484D3B47ED0AF79DABA89D1B286A78965937E5FB3AE91666850 777964595A4A8E9085ABAEA7959A969DA3A1A4AAA817221C374339A8B6A77B8D77607258536849 A4B394D4D8BFD8D6BDDAD6BDDBD5BDDED3BDDFD3BDE1D2BDE1D2BFE3D6C5E1D5C5AEA699696559 7171676A6D649CA19A8D978E88958B6B7B6E809085B7C5B8ABB7ABB1BCAE9FA5997A7E7069695D 646054B4AEA2AEA6993C30247A6E60998B7E8D86766263515860495F624D5F634C53573E4D523B 4A543C404D393C4F3B3F544153665287967FACB799BEC4A0C9C7A0B0AD82C6C197CCC79DD2CDA3 D2CDA3CEC9A1CCC79FCEC9A3D2CDA7CFC9A5CFC9A5D6D0B0736D4D938C6FCFC8ABC2BB9EC4BFA2 A29D875756415958445E614C595C4B5E6553515A494E594855625058655358655155634C5E6A54 A2AE96B4BEA5B7BFA7C9CCB75E614E6B6F60CFD7CAC8D2C7CFD6CED2D3CBDCD8CFD7CBBFDCCABC 8771643F271B41291F402C253622212F211E221F1634362944463957594C484A3D343629636558 A1A396C6C8BBCACCBFD0D2C5D2D4C7D3D5C8D5D7CADADCCFDEE0D3D3D5C8D3D5C8D3D5C8D3D5C8 D3D5C8D3D5C8D3D5C8D3D5C8D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3CED0C3DDDFD2 D2D4C7C0C2B5A8AA9D8B8D80717366636558616356937867A58A79A287768B705F8A6F5EA58A79 B49988AE9382997E6D826756957A69A78C7B8F74638C71609F84739A84769A92878D8A83ADAAA5 D5D4D0E0DFDDBBBBBB9A9B9DB1B5B8CED2D5CCD4D6CDD5D7CDD7D8CDD9D9CEDAD8CCDBD8CBDBDA B3C7C8BACFD0C5D9D7CBDED8CDDCD5C8D5CCBEC9C3B6BFBC81898C8E959BB0B4BDC5CCD2B2B7BB 88918E858E899CA9A099AAA098ACA19AABA19EAFA5AABAB0B3C3B9B6C3BAB1BCB4D2DCD4C9D3CB CAD1CAB0B7B08D928C9A9F99B1B3AEA1A39E8E8F8AA9AAA5BEC0BBC9CEC8B9C0B9ADB7AFADB8B0 8F9C9346574D3A4E43425A4D657F727894867796877393847B9D8D5E847552766858746862766D 828D87B7BCB8CECECCC1C1BFC6C8C5BBC0BCB6BCB8BFC5C1CCCECBC8C8C6C1C0BEC1BFC0BEBFC3 C1C4C9BABDC2B0B3B8B6B9BEC8CBD0D8DBE0E2E5EAD9DCE1DADDE2DBDEE3DCDFE4DDE0E5DDE0E5 DEE1E6DBE3E5C8D7D4C7DAD4BBCCC6BCCDC7A1B1AE91A19EC1D0CDD8E4E4D7E3E3DBE5E7DCE6E8 D8E2E4D3DBDED0D8DBD3DAE0D6E0E1C5D4CF85968E9AA9A2B6C5BEA9B4B0B6C1BDD1DAD7DBE4E3 DAE0E0D8E1E0D8E0E2D7E1E2D7E1E2D6E2E2D4E2E2D6E2E0D4DAD8DBE0DCE0E5E1E1E6E2DDE3DF DAE0DCDBE1DFDDE3E1DFE5E3D7DDDBD2D8D6D5DBD9DFE5E3E5EBE9E1EAE7DDE3E1DAE0DCD9DEDA D8DDD9DBDDD8DBDCD6DCDCD4E1E1D9E8E8DED4D1C8DDDDD3E9E9E1EDEEE8E9EBE6E2E7E1E2E7E3 E3E9E7A9AFAFC2C7CAD6DCDCD1DAD7C3CCC9B6C0B8ACB3ABA3A99F74786A747668737462787763 847F6B938D77A29A85ABA38CB0A98D9E9578998E729A8C719483699D8970A48E769B836B957B64 967C65957D659880689E866EA28C74A38D759F8972A18570AB8E7CA78A78A78C79B29C87B39E89 AD9D86B6A790A59981968A729B8F779B8F779F937BA2967E9687709C8C73A49377A19072A19074 A5957BA8987FA69780A29680A19483AFA393A59C8D9C9288A0978EA29B938B868076716B77746D 98988C858779939486A8A699A8A596B2AC9EBBB4A4AFA697CBBFAFB3A6959A8A7A8F7E6E93806F A5907FBDA897D0BDACD1C6B4A9A18C82735C6E5C4457412A4E3821644F3C7C6B5BAB9B8EA79A91 A5988F9C9084B2A295D7C4B3DCC6AFD7BDA4E3C7B1E4CAB3E3CAB6D3BEABB3A08F978674978473 A8937EDDC7B0EDD7BFA6927A6F5F48DACFBDECE6D8DBDBD1C3C3BBC8C0B5ABA195948E80AEAF9F D3D6C5DCE0CFDBDFCECFD2C17673642822142E26194741337A7869C4C7B6CFD6C4DEE3CFEBE8D5 C0B8A57A6D5D4D3D2E52403458483BAB9F93E5DFD3EDEDE1DCE2D65A6658202E21354135737D74 A5AAA3BABDB4CACEC0CCD3C1ADB1A239402E3034257D8472E4E8D9B4BBA93F43342F36246F7364 A7AE9CB9BDAECDD4C2D5D9CAC9D0C06D7868263121394434838E7E333E2E2B36265E6959949F8F 3944342C37271621112833234651412F3A2A202B1B464F3CD3D7C0DCDFC4DEDEC4D1D4B98D8D73 83866B9F9F85CACDB2C5C5ABC7CAAFCFCFB5CFD2B7CECEB4CACDB2D0D0B6D7D6BADCD7B9978E6D 8D7F5AA4916793784BB49566C3A475C7AB7BC0A87AC3AC80C7B188CAB58ACFB88CD7BC8DDEC292 E2C694E0C495DEC394DDC293DDC293DBC091DBC091DBBF8FDABE8ED9BD8BDFC391DFC18FD8BA86 D8B885DDBD8ADABA87D0B27ED8BC8AD4BD8B9882537F6A3FBDA77EDBC49ACEB388D8B98BE0BF8C E0BC88DEBD87D5B781CDB684D8C698D6C99DBEB28AC5B38FC5B190C7B796CDBD9CCBBD9ACABB94 CBB88DCBB383D3B581E2C18BDDBA82D9B882D8BA88D8BD90C9B38A998965594F2C332E101F1A04 302A1A3F3B2F4B45377A6F5BBBAC8FCCB68FCFB485D1B27CD2B17BD8B887D1B286B0926E917C5D A8A38663654D737560595C4B8C8F84B3B8B19DA29EA5ABA7A6AFAC27302B303C329DAB9A7B8A75 6072585B6E50A0AF90D3D5BDD8D3BDD9D3BDDAD2BBDCD1BBDDD1BBDFD0BBDFD0BBE6D9C6E5DAC8 BBB4A4706D5E7373676E71669FA59B98A29799A59986948594A092ACB8AA7D887A727A6B717567 6D6F616E6C5F666354B2AC9EBCB5A5493D2F877B6BBDB0A0ACA59368695759614A5D604B5D614A 50543B4B50394F59414F5C484F624E475C49516450899881B4BFA1BDC39FC5C39CB8B58ACDC89E D0CBA1D1CCA2CFCAA0CBC69ECAC59DCDC8A2D1CCA6D0CAA6CEC8A4D6D0B07E7858888164CFC8AB C3BC9FC3BEA1ACA7915F5E495554405A5D4855584759604E515A494C57464A57454E5B49505D49 4E5C4557634D9AA68EABB59CADB59DCBCEB96B6E5B606455CAD2C5CDD5CACED5CDD2D3CBE0DCD3 D0C4B8CFBDAF826C5F362013341E133B272033211F2E231F38352C40423541433645473A3C3E31 2D2F22585A4DA2A497D0D2C5D5D7CADADCCFDADCCFD6D8CBD1D3C6CED0C3CED0C3D4D6C9D4D6C9 D4D6C9D4D6C9D4D6C9D4D6C9D4D6C9D4D6C9D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3 CED0C3C6C8BBC3C5B8C5C7BACACCBFC5C7BABCBEB1BCBEB1C5C7BA9E8571A58C78967D697C634F 8067539A816DA08773907763977E6A7E65518F7662AE9581A88F7B9E85719E8571907D6C8C8477 78756C9D9A93D3D2CDE3E2DEB8B8B698999BB9BDC0D0D4D7CDD5D8CDD5D8CCD6D8CCD7D9CDD9D9 CCDADACBDBDAC9DDDEDCF1F2D8EDE8AABEB579897F5F6C625560584E57524F545764696F91949B B2B7BBA3A7AA7E84807D847D95A197A9B9AFA6B7ADA9B9AFAFBFB5B7C4BBBAC5BDBDC8C0C1CBC3 B5BFB7ABB2ABB8BDB7B8BDB7A0A29DA1A39EADAFAA9FA19C8E8F8AA9AAA5BCBDB8C7C9C4B9BEB8 AAB1AAAFB9B1A3AEA674847A5E6F6555695E596F6360786B5670635773655C7B6C698D7F56786A 4E685D6C7D7599A29DBFC4C0D0D0CEC3C3C1C4C6C3B5BAB6B1B7B3BBC1BDC2C4C1C3C3C1C6C5C3 C7C5C6B3B4B6C1C5C8C7CBCEC2C6C9CFD3D6EBEFF2E7EBEEC8CCCFD9DDE0DCE0E3DFE3E6E1E5E8 E2E6E9E1E5E8DFE3E6DBE3E5D8EBE9D9F2ECCAE1DBC5DCD6ACC0BEA2B6B4D2E5E3E4F4F4D7E5E6 D9E4E8D8E3E7D6E1E5D4DDE2D5DEE3D9E0E8DBE5E7CBDAD790A19BA3B2ADB6C5C0A6B0AFB8C2C1 D6E0DFDDE7E8D8E0E2D7E1E2D6E1E3D4E2E3D4E2E5D3E2E5D1E3E5D4E2E3CDD6D3D8DDD9DBE0DA D1D6D0C4C9C3C3C8C2D3D8D4E3E8E2D8DDD7DEE3DDE8EAE5E8EAE5E2E5DED8DBD4D1D4CDCDD0C9 B5B7B2B7BAB3B5B8B1AEAFA7A6A69CA5A397A7A599AAA89CB0ACA1AFADA1AFACA3B2B2A8BABBB3 C3C6BFCBCDC8CED3CDB3B8B4AAB0AE949A967B827B707770777F747E84787D83757E8273858877 8F917C9796819C978399937D948C77908871938C70A0997D9A9377948A6F9A8C7296866D94826A A6927AA28C759B856E957F68947E67957F68937F67917D65927C65997D68A88975A28671A58A75 B9A08AB19B849C88709D8B73AB9B8297896F9D8F75A4967CAD9D84AE9E85A08E76A8947BA58E6E AA9371B09979B69F7FB9A283B39E81A692779A866EA7957F9D8C78958472A49484BDAD9EB9AB9E A39588958C7D8882727B78659F9A87BCB7A4ADA694A8A18FB5AC9BB0A494B4A997BBAE9DC0B0A0 B3A290938270816E5D968372B8A795CFC3ADCCC0A8CBBBA2BDA98EBEA68CC5AD95D3BDA8E3D0BF CFBDAFAD9F9494887C807265A29283DFCDB9EAD4BCECD2B7F0D2BAE8CCB4E4C9B4E0C9B7D6C3B2 CCBBA9D1BEADDDC8B3E2CCB5EED8C0A8947B71614AD9CEBCEBE5D7D1D1C7A8A89E4E443A44382C 4A4235989687DEDFCFEBEEDDE9ECDBD4D5C5928C7E433B2E4C443761594C898677CECFBFD5D9C8 D6D9C6E4DFCCB4AB9A7265554232234E3C30614F43ADA195E4DED2E7E9DBDCE4D5626F5E243223 2F3B2D727C71ADB3A9C0C3B8C4C8B9C2C7B3A9AC9B3F44303033227A7F6BE4E7D6B8BDA9464938 353A26737665979C88787B6A626753555847424635666D5B2831203E4736838C7B2C352417200F 414A397C85742A3322363F2E3B4433545D4C727B6A6D76656E7766949985D0D2BAD7D7BBDCDBBF E4E4C8D2D1B5D2D2B6D4D3B7DDDDC1DCDBBFDEDEC2DEDDC1DADABED9D8BCD9D9BDDAD9BDDBD7BA E0D8B4A1956DAC9B6FD5BF8EC2A772DCBD87DCBD87CEB07ADAC08DE1CA98E6D09FE3CD9CDBC190 D7BC87DFC089E6C790DFC393DDC293DDC392DCC291DCC291DBC190DCC090DBBF8FD9BD8DDFC393 DFC393D7BB8BD5B989DBBF8FDCC090D5BA8BDBC397CFB990BCA97FBCA981CFBC92DAC59AD4BC8C D0B482DAB983DEBB83D8B781D0B27ED0B88ACEBC94A699777166484D3D245848317B6C55AEA288 D1C6A6D0C49ECAB98DCFBB88D2B87FE2C488DFBF84DBBA84D5B687D6BB90C0A8847B6B4A373013 3230173E3D2B57574B59595147443B676050AFA389C7B38ECCB486CFB17DD2B37DD5B582D0B183 B99B758F7B5AA9A588696D54767A635C614D878B7DB2B8AE929791969D96A2ABA6343E36273327 8B998873826D64745967775A98A587D2D4BCD7D2BED8D1BED9D1BCDBD0BCDCCFBCDECFBADECFBA DFD2BFDFD4C2BEB5A46F69596E6C5D6B6D5F9DA193A0A89999A4948F9C8B949F8F979F90525A4B 3940303F42314E4F3D5D5C4A5C5946A29D8ABDB6A34C412F827765C6B9A8B4AD9A6D6F5A5C644D 61644F666A53595D4450553E535D4556634F6275615166534E614D82917AB2BD9FB9BF9BC4C29B C5C297D0CBA1D1CCA2D0CBA1CDC89ECAC59DCAC59DCDC8A2D1CCA6D1CBA7CDC7A3D6D0B08A8464 7C7558CFC8ABC4BDA0C2BDA0BBB6A06C6B56555440595C47535645535A48515A49475241475442 4D5A48505D494D5B4454604A96A28AA7B198ABB39BC9CCB77B7E6B55594AC5CDC0CDD5CACED5CD D0D3CADBD8CFCEC4B8C0B0A17865572E180B27130835221B2E1F1C3126221F1C132C2E213E4033 4C4E4154564953554875776AB9BBAEB2B4A7BCBEB1C9CBBED2D4C7D5D7CAD3D5C8D2D4C7D2D4C7 D4D6C9D4D6C9D4D6C9D4D6C9D4D6C9D4D6C9D4D6C9D4D6C9D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5 CFD1C4CED0C3CED0C3CFD1C4C8CABDC8CABDD1D3C6D2D4C7C6C8BBBCBEB1BBBDB0927965967D69 8B725E7D645089705CA48B77A9907C9A816D9A816D8168548269559E8571AE9581AA917DA58C78 9F8C7B877F727C7A6EA29F96CECEC6DCDBD6B7B7B5939594A8ACADD2D5DACED6D9CDD5D8CBD5D7 CAD5D7CCD7D9CBD9DACBDBDBC7DBDCCADEDDAABDB967787039463C424E446E786F909692737778 62656A68696E8A8D92ACB0B1B7BCB8B9BEB7BDC5BAB0BCB2B0BDB4B6C1B9BCC7BFBBC6BEB6C0B8 B7C1B9BDC7BFAEB5AEA4ABA4B0B5AFB9BEB8B3B5B0B8BAB5C4C6C1C1C3BE94938FB2B1ADBFC0BB C7C8C3B9BBB6A4A9A3A8AFA8A3ADA58C99906B7B7157685E485C5151675B4E64585A72655F796C 5575685B796D637A70889790AAB0ACB9BBB8C8C8C6C6C6C4BBBDBAABB0ACACB2AEB0B6B2A9AEAA ADADABBBBAB8C2C1BFBDBEC0C9CDD0CCD0D3B8BCBFB2B6B9D2D6D9E8ECEFDCE0E3DADEE1DCE0E3 DEE2E5E0E4E7E1E5E8E1E5E8DFE3E6DAE4E5CFE3E1CCE5DFBED7D3B0C6C39FB5B2ABBFBDCEE1DF D7E7E7D1DFE0D2DDDFD3DCE1D6DFE4DBE2E8DEE5EBE1E6ECDEE6E9D3DFDBB4C1BABCC9C2B8C3BD ACB5B2C1CAC7D6DFDEDFE8E7D8E0E2D7E1E2D6E1E3D4E2E3D3E2E5D1E3E5D1E3E5D3E3E3D4DDDA D4D9D3CED3CDC7CCC6C0C5BFBDC0B9BABDB6BABBB5AAABA5BCBDB5C9C9C1BDBDB5A3A39995958B 9C9C92ABABA1AEAFA7B8B9B1B4B4AC9E9E948C8A7E868276817D717A74669C9688898677797569 78766A8383798E90858E8F87898C8580837C6267603C413A283025343C2F4951444B5143414536 474B3A46493646453048462F524C365E563F6B604A72684F645F427F7A5D7A7558716A4E7C7257 766A5078684F95856C9C8A7295836B97856DA18F77A9977FA9977FA9977FAF9B838166519E826C AD917CB59D85C0A791B09A829E8A72A29177AF9F8696866C97876E9E8E74A7957DA7967C9E8A72 AB967BB29A78B69C77B69C77B69C79B9A17DBAA280AE95779C8468AA9278B19B83B19B84B4A088 C4AF9CC2AD9AAA9786978875A59A86AFA993B2AA95B4AC97B3AB96A49985A19682B8AB98B0A390 B3A693C0B19EC7B8A5B8A79598877581705E7C6B5794856E96866CA38F749F8A6DCCB297E6CCB1 E6CEB6E2CDBAE4D3C3B7A99C9F9184857868A39383DCCAB4DFCAAFE6CCB1EFD1B7E9CBB3E4C9B4 E5CEBCE7D4C3E5D4C4E4D3C1E4D2BCE4D0B8EDD9C0A9957C71614AD6CBB7EBE5D5D0D0C49A9A90 32281E35291D453D30A4A192E6E7D7E5E8D7E7E8D8D6D4C59E988A5C544753493D544C3F7F796B DBD9CAE7EAD9BDC0AFC9C3B3B3A7978D80705B4B3C59473B645246A99D91E6E0D2E1E3D5E1EAD9 717E6C2B3928283524707B6DB5BDB0C7CBBDD1D4C3C5C8B5B0B3A0515441393C297A7D6AE6E9D6 BFC2AF3A3D2A292C19676A577D806D424532292C19333623373A273D422E1F24103D422E848975 464B37414632656A569CA18D949985ACB19DBCC1ADC9CEBAD3D8C4C7CCB8C3C8B4D9DCC7DDDDC3 DBDABED5D4B8DAD9BDE0DFC3E6E5C9DBDABED2D1B5D4D3B7D9D8BCDAD9BDD8D7BBDBDABEE0DFC3 DBDABED4CFB1E9DFBBA5966BB19F6FE8D19FDDBF89ECCD94EACB92E6C991D3B883D2BB87D5BF8D D8C18DDBC28CDFC28AE3C388E4C48BDDC18FDCC192DCC291DCC291DCC291DCC291DDC191DDC191 DABE8EDCC291DBC091D5BD8DD4BC8ED8C092DCC496DBC49AD7C3A0CAB796D4C1A0D3C49DBCAA82 BCAA7CD0B987D1B67FD2B279DEBB81D6B57FD1B381CFB68EA895746052382C210D2216082C2012 473E2F827A65B9B296C5BD98C2B588CCBB85CBB377D9BD7EDBBB7EDAB983D3B485D5B992BEA586 705F45211B033F412C57594C5C5F56555752454640615D519F9780C0B08ECBB488CBB07BD3B47E D3B380D0B182C1A47C8D7956B4B192777D637C816A5F64507D8474ABB1A5828981828981A0AAA2 3F4940202B1D828F7D73816A6373586B7A5D8F997ED5D4BFD9D2BFDAD2BFDCD1BFDDD0BDDDD1BB DFD0BBDFD0BBD5C9B3D6CBB7BEB6A36964516362506263519296859EA5958A9382858E7D8A9181 929987646857575B4A595A48656450585542645F4B9E9784C2BAA5584D3980755FC9BDA7B8B29C 737560616952696C577579626B6F565B604958624A5865515E715D5065524A5D497F8E77B4BFA1 BBC19DC6C49DCFCCA1CFCAA0D0CBA1CFCAA0CDC89ECBC69ECBC69ECEC9A3D0CBA5D2CCA8CCC6A2 D6D0B0958F6F716A4DCFC8ABC4BDA0C2BDA0C5C0AA7675605655415C5F4A565948525947535C4B 434E3D4E5B4956635159665253614A54604A95A189AAB49BB2BAA2C4C7B28A8D7A4F5344C0C6BA CDD5CACED5CDCDD0C7D0CDC4D5CBBFC4B7A7988678614E4056443850423931232029201B2C2920 3F413467695C787A6D76786B6A6C5F67695C87897C97998CA4A699B6B8ABC6C8BBCFD1C4D4D6C9 D7D9CCDADCCFD3D5C8D3D5C8D3D5C8D3D5C8D3D5C8D3D5C8D3D5C8D3D5C8D2D4C7D2D4C7D1D3C6 D0D2C5D0D2C5CFD1C4CED0C3CED0C3D2D4C7CACCBFC7C9BCCED0C3D3D5C8D0D2C5C7C9BCC1C3B6 AB9482B09987AA93819E87759E8775A99280AA9381A18A78967F6D87705E765F4D826B599B8472 9B8472998270A59482A59E8E89877A9D9B8FC1C1B7C9C8C3A1A29D868887A9ADAED4D7DCCFD7DA CDD4DACAD3D8C9D4D8CBD6DACBD9DCCBDBDBD7E9EBAABDBB70817B47574D47554868746899A098 BBC0BABDBFBEBEBFC3BCBBC0B2B3B7A7A9A8A3A5A0A9ACA3AFB5A9B0BAB1B4BFB7BAC4BCBCC6BE BCC6BEBCC3BCB8BFB8B4BBB4B1B6B0ACB1ABA0A59F919690898E888B908A8E908B8A8C878D8C88 B2B1ADBEBFBAC4C5C0B9BBB6A3A8A2A3A8A2A0A7A0AFB9B199A49C8A978E67776D5D6E6446574D 53645A576D615470627E988B92A69BA7B4ABB0B5AFAFB0ABC4C3BFC7C8C3BABCB7ADB2ACB1B8B1 AFB6AF979C96969792ACABA7B8B7B5CDCED0CCD0D1CDD1D2B0B4B58A8E8F969A9BC5C9CADFE3E4 DBDFE0DADEDFD8DCDDD8DCDDD8DCDDDBDFE0DDE1E2DCE5E4D2E5E1C6DDD5BDD4CEA1B6B19DB2AD C3D6D2D7E6E3D8E4E4D6E0E1D5DDDFD6DBDEDBE0E3E2E6E9E2E3E7DBDADFD1D2D4C1C8C1C6CEC3 C4CBC3A9B0A8ACB1ABC7CCC6D1D6D2E1E6E2DAE0DEDAE0DED8E1E0D7E1E2D4E2E3D3E3E3D3E3E3 D4E3E0D3DCD7D0D5CED0D3CCD5D8D1D5D8D1C3C4BC9E9F978080766D6D6378786E8280747E7C70 7672667A766A8F8B7FA39F93CCCABED8D8CCCFCDC1AAA69A918E7F948E7E938C7C867F6F7E7767 867F6F908A7C9390818D897D7A786C63605752524835382D5B6155848A7E949A8C8E9585818878 737766656A566F725D6C6E5865644F5D5B4457513950492F4D432A4B4128413C1F464225433F22 3D381B3C35193C3519463A2052462C45371D3D2F154131185040275B4B325C4C335F4F3668563E 654D357F674D937B6396826795816888775B8272588A7C5FAB9D8290826594866B9E9073A8987E A596799C8B71AE9B7D99815D9B825A9A81599D835EAF9572C0A886BFA785B2997A9A8163B29A7E B79F85AF9A7FB9A38CC1AB94B39D869F8D75A4967CA89E83A49A7FA2987DAAA087ADA189B0A48E BDAE99B6A792AD9E8BAD9E8BBBAC99C2B3A0B5A6939F8F7F91806C7262495E4D316651346F5637 BEA385E5CAADE0C6ADDCC6AFDDCCBAC1B4A4C9BCACBAAD9CCCBDAAEFDDC5E2CDB2EED5B7E4C6AA E6C8AEE1C8B2DCC7B4DAC9B7DCCCBCDBCCB9D9C8B4E3D1BBE9D7BFA6947C6F5F48D4C9B5EFE9D9 D9D9CDA09E9263564D584A3F544A3EADA799E7E5D6DCDDCDE3E1D2D2CFC0ABA3966A6054493D31 42382C6A6255C8C6B7E3E6D5A4A595CEC8B8BCB0A2988A7D534336412F234F3F32A19587EEE8D8 E4E7D6E2EBD8717E6A283724283523737E6EA6AC9E9A9E8FA2A59296988396988352543F40422D 7A7C67E6E8D3C5C7B24A4C37292B1660624D797B664749343F412C5A5C47656752656853686B56 80836EB9BCA7989B86AAAD98BABDA8D8DBC6D2D5C0DBDEC9D3D6C1C8CBB6CCCFBACFD2BDD6D9C4 E9EBD5E3E2C6E5E1C4DAD6B9D0CCAFD9D5B8DFDBBEDAD6B9D4D0B3D9D5B8E3DFC2E6E2C5E0DCBF DFDBBEE4E0C3E0DCBFD7D2B2EBE2BBA8996E9C8758B59B6AAB8D57CFB079DBBC85DEC08AEBD19E E4CD9BDDC795DDC694E1C691E3C48DE2C083DDBA80DFC18DDCC291DDC191DDC191DDC191DDC191 DDC191DDC191DEC394D7BF8FD1BB8CCDB88BC8B388C1AE83C0AD83C2B08CAE9D81A4947AA8997C A2947197885FAE9D6FCFBA85D3BB7FD3B577DFBF82D7B680D5B687C7AD8A7A664B3222122C2218 50474250484549453C625F5099977EBAB691BEB687C6B77ECBB677D4B877D7B77AD8B781CEAD80 D1B38FBEA3886D5B45312C184A4D3C4E51483F4440333937252A2643433987826EBCAF8DC8B58A C9AF7CD3B57FD0B27ED0B182C8AB7F8C7853A3A2836B745970786059614C7C8373B7BDAF929A8F 949C91A8AFA74850451D25168893827D89735F6D53667357858E73D9D4C0DDD1C1DDD2C0DED1C0 DED1BEE0D1BCE0D1BCE0D1BAD7CBB3DACFB9C9C1AC706B5765634E61634E8C8F7C9DA28E9A9E8D 959C8A979B8AA4A9958A8D7A8E907B8B8A768D8B7694927DA29D87BEB8A2D4CCB5635842766C53 BCB098B1AB937678635C644D61644F6E725B656950555A43515B4353604C5467534F64514A5D49 7E8D76B5C0A2BCC29EC7C59ED2CFA4CCC79DCDC89ECEC99FCFCAA0CEC9A1CEC9A1CFCAA4CFCAA4 D2CCA8CCC6A2D6D0B09E9878686144CFC8ABC5BEA1C1BC9FC4BFA97877625756426265505E6150 565D4B57604F424D3C505D4B5966545C6955515F484D59438C9880A6B097B3BBA3BEC0AB989987 4C4E40BBC1B5CBD3C8CED5CDC9CCC3C3C0B7C1B9ACB4A898AA9A8B93837490827583766D504541 413A3438382E45473A77796C8B8D80939588A7A99CB0B2A5C4C6B9BCBEB1C2C4B7CACCBFCDCFC2 CBCDC0C8CABDC7C9BCC8CABDD1D3C6D1D3C6D1D3C6D1D3C6D1D3C6D1D3C6D1D3C6D1D3C6D2D4C7 D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3CED0C3CED0C3CED0C3CBCDC0C6C8BBC5C7BAC6C8BB C4C6B9BFC1B4A08B7AAB9683AE9988A38E7B9984739883709A85749984718C77668F7A67806B5A 85705D9D8877927D6A85705F978777B6AF9F848273969488CDCDC3D5D5CD9899947F8180B6BABB D5D8DDD0D8DBCDD4DACAD3D8C9D4D8CAD5D9CBD9DCCCDADBBACACA6F7F7C37463F4A574D7E8A7C 9AA5979BA197959891969694B1B1B3C7C6CBC7C7C9BFC1C0BEC0BBBEC1B6BAC0B4BFC6BEC0C7C0 B8BFB8AFB6AFB4BBB4C2C9C2C3CAC3B9C0B9BCC1BBC8CDC7BBC0BAA0A59F999E98979C96878C86 787A757D7E79A9A8A4B9BAB5C1C2BDBBBDB8A8AAA5A4A9A3A0A59F9FA69FA4AEA6B2BDB5929F96 7B887F58655C6B786F78897F859D90ABC3B6A6B6ACA5AFA7AEB0ABB6B5B1CDCCC8C6C7C2C1C3BE B5BCB5BEC5BEB5BCB59297918C8D88A5A4A0B3B2AECACCCBBDC1C0C9CDCEC6CAC99B9FA0838786 929697A0A4A3DCE0E1D8DCDBD3D7D8CFD3D2D0D4D5D5D9D8DBDFE0DDE6E3D8E9E1C4D8CFBDD1C8 99AAA29FB0A8D6E5DEE0EBE5DAE3DEE2E8E6DEE3DFDEE0DDE3E3E1E6E5E3E0DCDBCDC9C8BDB9B6 A3A59AC2C4B7BDBFB296988DA7A79DC9C9C1CECEC6E3E4DEDEDFD9DDDFDADBE0DCDAE0DCD7E2DE D6E2DED6E2DED7E2DCC7CEC7C7CAC3C9CCC5D4D7CED8D9D1BFC1B69292886B6B5F7B796D79776A 7A766A7E7B6C8781738B85758A8476888274C1BDB1CECCBFBCB8AC8D8779756F5F847D6B8E8574 847C69726958857C6B908977827C6C666052534F435A564A6667599496889A9E8F989C8B8A917F 868D7B9199849FA490A5A893A4A690A4A48CA19F889F9B829E977DA0967DA1957DA1977E999578 878668928E71949073817D60817C5F867F63726B4F81775C6F654A63573D64583E62543A57492F 55472D5D4D345140264B371C41301442331647391C463B1D3C311332290A4D4425372E0F44391B 564B2D6355385D4F325243266251336A56336B552E67512A6A542F80694798815F9A83638B7454 917A5BA99175A38E73917C619A846CAB957DA18B738B775EA7977D897E60988D71A2977B908569 A5997FB7A98F91826B968770A3947FB0A18EB0A18EA79885A89986BEAE9ED6C7B289785E6A5739 715A3A7F6544D7BA9AF6D9BBE9CEB3E8D2BADAC8B4CABDACE4D8C8D8CDBBDBCCB7EBDBC2D8C5A7 ECD5B6E9CEB1F1D6BBEFD6C0E0CEBADACABADFD2C1E6D9C8E8D9C6E3D3BCE8D6BEA5937B6D5D46 D2C7B3F5EEDEE4E2D6A9A79B62554C4C3E333F3529A29C8EECEADBE6E7D7EBE9DAD2CFC0ABA396 675D514135294F4539766E61C9C6B7F8FBEAC6C7B7DFD9C9BDB4A59385785242354E3E31645447 A5998BE1DBCBEBEEDBDDE6D164715D222F1B2E3B2777836F8C907F585B4844463140422C5F5E4A 3A3C263A3925757761E6E5D1C5C7B1504F3B282A146E6D59AAAC96A2A18DAEB09AC8C7B3C3C5AF C6C5B0D5D7BFD9D8C3EFF1D9D3D2BDE6E8D0D8D7C2D2D4BCD4D3BEDADCC4D9D8C3D3D5BDDFDEC9 E0E2CADAD9C4D8D8C0D1D0B4E5E1C4E9E5C8DEDABDE3DFC2E1DDC0DDD9BCD9D5B8D3CFB2E0DCBF E1DDC0D5D1B4CFCBAED6D2B5DAD6B9D7D2B2DAD0ACAE9F769782578F77478E7240D7B985EFD19D E8CC9ADEC696DBC596D8C396D8C293DCC291E2C38DE6C38BE6C38BDEC08CDBC190DDC191DDC191 DDC191DDC191DEC292DDC392CBB383BDA778B29D70AB986E9D8E658C7E57847651857858766A52 766A5471654B73684893875FC2B485D8C58DD0B87CD9BB7BE4C487D8B781D8B98BC0A6855D4833 27160C554A485C5658625D61504F4B57574B91937BC2C29EC8C292C3B77DD1BE7CD4BB78D6B679 D6B57FC8A77ACAAC8AB99D856957431B15051B1F11121711101916121A1C070D0D30332C8A8776 B8AD8FC7B68BC6AF7DD1B67FCFB17DD0B280CBAF808B7850ACAB8C747D62747C645A624B787F6D B6BDAD90968A929A8DB1B7AD4D53471C2313949B898A937E5D674E5F694E82866DDBD4C1DFD2C1 DFD2C1DFD2BFE1D2BDE1D2BBE1D2BBE1D2BBE2D6BEE6DCC3D9D1BA7F79636E6C556968538F917C A2A48F959885999C899C9D8BAAAC979F9E8AB0AF9AB5B39EBAB59FC0BBA5CBC5ADCFC7B0D8D1B7 675D44746A4FC0B49ABFB99F858771636B545E614C676B5460644B5459425660485D6A56536652 5267544C5F4B7C8B74B3BEA0BAC09CC3C19ACFCCA1C9C49ACBC69CCEC99FD0CBA1D0CBA3D0CBA3 CFCAA4CFCAA4D2CCA8CBC5A1D6D0B0A29C7C645D40CFC8ABC5BEA1C1BC9FBFBAA4777661575642 686B566669585B62505C6554424D3C4B5846556250576450495740424E38808C749DA78EADB59D BABCA79FA08E4A4C3EB8BEB2CAD2C7CFD6CEC7CAC1B8B8AE9B958789806F8D80708C7F6F9D9183 9D958A78716B75726B7070667B7D70B6B8ABC7C9BCC4C6B9D4D6C9CDCFC2C9CBBECDCFC2D1D3C6 D5D7CAD6D8CBD5D7CAD5D7CAD7D9CCDBDDD0D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5 D0D2C5D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3CED0C3C1C3B6CDCFC2D2D4C7CACCBF C4C6B9C9CBBECED0C3CED0C39D8C7C9B8A78A49383AE9D8BA392828D7C6A8E7D6DA08F7DA69585 A49381A190809B8A789584748D7C6A8675657F7261918B7B8F8D7E84827670706677776F5A5B56 494B4A989C9DC6C9CED1D9DCDDE4EACED7DCBFCACED1DCE0D0DEE1AEBCBD5C686644514A515D53 7F8A7C99A192949B8B868A7C797A72949590B0AEAFB7B5B8B4B4B6B8BAB9B0B2ADB0B3A8C6C9BE C2C7C0C2C7C1C1C6C0C0C5BFBFC4BEBFC4BEBEC3BDBEC3BDBBC2BBBDC4BDAFB6AF9EA59E989F98 9198918E958E979C96ADAFAABDBEB9CACBC6C5C6C1B5B7B2B0B2ADBBBDB8C7CCC6B2B7B1B3BAB3 B5BCB5B4BEB6B3BDB5AFBAB2ACB7AFA8B5AC9BAFA394A89C97A399A3AAA2B8B9B3CAC7C2CECBC6 CBCAC5BDC0B9BCC3BBB9C0B8AAB1A9989D9691928C989590A09C99C1C3C0BEC3BFBEC2C1C0C5C1 BFC3C2B3B8B4A1A5A49297939DA1A0858A86AEB2B1C1C6C2BCC0BFCBD0CCD1D5D4E2E8E4DEEAE0 C5D3C6ABB9ACA6B2A6B7C3B7D0DACFDDE3D9DFE2D9EBECE6E4E4DCE3E0D9D2CDC7C4BDB7ADA49F 9087829B928BAFAC9DC1BEADBFBCABB4B1A2999385878175A59F93BCB5ABCAC3B9DBD7CEE0E0D6 E7E8E0E5E8DFB8BEB4868D857A8179777A71B8B9B1D2D3CBC9CBC0C5C5BBABAB9F8D8B7F8C8A7D 8B877B928F80807A6C9B95858079697C7563928B7B9D9686D3D0C1DFDCCDC1BBAD847E6E756E5E 8F86758D85727267538C816F6F67544C4332514A3A605A4A787566A3A091A8A6979E9F8D5A5D4A 7A7D6A90957FA6AB95A9AE98A4A792A1A58E989A849D9D85A29D87938D75A69C839D9179A3947D A0947C9D997E909074908F7394937799987CA5A186A5A186989278A59E84A19A80A99F86A69C83 B5A9919E927A9F9079A6987EAA9F83968B6D938A6B989272928C6C898464868161827F5E716E4D 736E4E676141615B3B5C5334574C2E5C4E315548284E3F1E4D3D1B4A3A1840300F4131103D2D0C 3221033D2C0E3E2D114B3A1E4D39204C381F57432B5E4A325C48305C4A327B6C4F7063436D5F42 7A6C4F7A6C4F84765B9A8C71897B6195866FA99A8393846F91826DA093809B8E7BAB9E8BCCBDA8 948367806B4C846C4A977D5AD4B694FEDFC0E7CCAFE0CAB2E1CFBBE3D6C5DFD3C3DFD4C2E7DBC5 E5D7BDE0CFB1E5D0B1E4CBADDEC6AAE9D5BDF0DFCBD8CDBBD8CFBEEDE1D1D9CEBCE7D8C3E7D7C0 A5957E73644FD5CAB8ECE5D5DAD8CCA7A39874675E5244394C4236A09A8CE6E4D5E9EADAE1DFD0 D2CFC0A69E91675D51473B2F4B413581796CD2CFC0E5E8D7C8CBBADEDBCABCB5A57B6F614B3D30 69594C4C3E319D9183DCD6C6E8E9D7F0F8E164705A34422924301859634B7578634345304A4934 606048605E494E4E3665634EA3A38BCFCDB8D1D1B9B4B29DBBBBA3C8C6B1D2D2BADAD8C3DADAC2 D9D7C2D6D6BEDCDAC3DCDCC2DFDDC6DFDFC5E0DEC7DEDEC4DDDBC4DBDBC1DEDCC5DCDCC2DDDBC4 DBDBC1DBD9C2D8D8BED7D5BED6D4BBDCD8BDDAD6B9E1DDC0DCD8BBD0CCAFDFDBBEE9E5C8D7D3B6 DEDABDE6E2C5E0DCBFD9D5B8DBD7BAD6D2B5D0CCAFD7D2B4E2D9B8AEA07D9D8B65C3AC82BFA477 D5B98AE1C699E3CB9FE2CDA2D4C197DAC79FD9C39ADCC498D0B484EDCC99EECD98DBBF8DDAC08F DBBF8FDBBF8FDBBF8DDBBF8DDAC08FDABF90C1A97BA48F6287744A766740928660857B57887F5E 958E719C947F847D6A969076A9A383ABA27BB8AC7CCDBA82DCC488D9BB7BE2C285DBBA84D6B78B BAA1825947334A3B34554B4C4F4A515150563C3E3D363930747762A4A583B3AF7FC9BF84D1BF7D CEB773DABC7EDBBA84CCAB7EC5A483C9AB93614C3B0A040010130812181401090B151E231B2325 2D322C9B998AD2C9ACC8B990C5AF7DCEB57DCDB27BDBBD89CEB282826F45AAAA88717A5F606850 586049747B69A2A9999DA395959B8DB1B4A95E62544A4E3F888D799499835E634C575D438D8F77 D5CDBAD5C5B5E3D3C3E6D7C4D5C4B0D8C8B1E4D5BEE0D2B8DBCFB5DDD3BADED7BDD4CEB6BAB59F A6A48DAFAD98C2C1ADBDBCA8BEBDA9C2BFACC6C3B0C9C6B3CFCAB6D2CDB9D4CEB8D7D1BBD2CAB3 CFC7B0D6CCB36B61486A6045C0B49AC3BDA39698825A624B5356415F634C60644B54594248523A 55624E5164504358454A5D497F8E77A7B294BAC09CD1CFA8C8C59ACCC79DCCC79DCCC79DCCC79D CCC79FCCC79FCCC7A1CCC7A1CCC6A2CDC7A3D3CDADABA585575033C4BDA0C9C2A5C8C3A6B1AC96 8D8C774E4D3951543F5356455057454A5342505B4A3E4B394754423F4C383E4C3549553F707C64 A2AC93A3AB93CBCDB8AAA997454739AAB0A4CED6CBC6CDC5D2D8CECECEC4C6C3B4CDC6B4D4C8B8 D6CABAD0C9B9C7C1B5BBB8B1B3B3ABBBBDB2BFC1B4C6C8BBCDCFC2D0D2C5D1D3C6D0D2C5CFD1C4 D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5 CFD1C4CED0C3CED0C3D2D4C7D2D4C7D1D3C6D1D3C6D0D2C5CFD1C4CED0C3CED0C3CCCEC1CCCEC1 CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABD7265557265557B6E5E8376667D7060716454746757 827565877A6A908373988B7B938676887B6B8477678C7F6F938A798D87797472657F7D715A5A50 22211C20211C464847777B7CC0C3C8C8D0D3D0D7DDCCD5DACAD5D9C9D4D8A4B2B5717D7D4A554F 5D675E7F877A919888868A79767A6973756774746A7B7A75807E7F7371746A6A6C757776787A75 7B7E758C8F8493968F9698939BA09AA2A7A1A9AEA8AEB3ADB1B6B0B1B8B1C2C9C2BBC2BBABB2AB 99A39B8D978F7D877F747E7679837BB6BBB5BBBDB8BABBB6B0B2ADA4A6A19C9E999EA09BA2A49F AAAFA9ACB1ABAFB6AFB3BAB3B8BFB8B9C3BBBEC5BEBCC7BFBBCBC0B5C2B8AFB9B0B4B7B0BCBBB6 C3C0BBC3C0BBBEBDB8BCBFB8B6BDB5ADB7AEA6ADA59FA49D9FA09AA4A19CA7A49FA4A6A1AEB3AF BCC1BDC3C8C4C1C6C2BEC3BFBDC2BEBFC4C09FA4A07378747B807CA6ABA7B2B7B3CACFCBEFF4F0 EBF2EBCAD2C7B1BCACA3AB9EA7AFA0B1B7ABB9BDAFC3C5B8CECEC2C7C5B9B9B5AAAFA89E9B9388 948A808A80767F726992867AD0C9B9DCD5C3D2CBB9C5BCABA39A8984786A84786A827668A49A8E A39B8EB6B0A4DFDBCFDDDBCE8B8C7E3D3F312C2E215B5D52B9BBB0E7E9DECDCDC1A6A69A7E7F71 65635669675A6B68596A67585F59497C76667B74627F786687806E999282C5BFB1E1DECFC5BFAF 8B8575847B6A8A826F7A6F5B695E4A3F3420574C38736B589D9684B1AA9AA39D8D949182858472 9698835B5F48848772A2A68FBDC1AAC4C8B1C3C7B0C2C4AECBCBB3CCCAB3BFB9A1989079A0947C 9A8B74A1917A9F937BA7A388B2B296C1C0A4BBBA9EADAC90ACAB8FABAA8EA29E839F9B809F997F A39D83999278AAA0879B8F77A0917AA2967CA0997C9B96769F9C7DA29F7E9998799797759B9C7C 9B9C7A999A7A9E9E7C9C997A9D9878A0997CA39A7BA59A7E9D92749D9475A097789E9576948B6C 94896B93886C8F84689A8C7175674D786A5070604965553E62523B5F4F3859493259493047391C 3E3313382B0B3A2F0F33250833280A43351A2E20053D2E1754452E4738234C3D285A4D3A544734 5F523F73644D69553A8C7555B49A79BC9F7DD9BB97F4D6B4E5CAADE5D0B5DCCCB5DED1BEDCD3C2 DDD5C2E5DAC4E3D7BDE0D1B4E3D3B2EAD5B6DFCBB0E4D4BBE8DDC9D6CFBDD7D1C3E5DDD0D9D0C1 D0C5B3D3C4B197887370614ED8CCBCF0E8DBDEDACFABA79C74675E4E4035483E329F998BE7E5D6 E9EADADEDCCDCFCCBDAFA79A695F5352463A584E427D7568D9D7C8FEFFF0CBCEBDDAD9C7C1BBAB 837C6C44382A6355485A4C3FA09788E6E1CEE6E8D3E2EAD359654D3B482E353F266B715790927A 717159A09E87B2B097C0BBA5C0BEA5CEC9B3E2E0C7EDE8D2E6E4CBD4CFB9D5D3BADAD5BFDBD9C0 DED9C3DAD8BFDAD5BFD6D4BBDCDAC1DDDBC2DEDCC3DFDDC4DFDDC4DEDCC3DDDBC2DCDAC1D9D7BE D9D7BEDAD8BFDCDAC1E0DEC5E4E2C9E8E6CDEAE9CDEFEBD0E3DFC2E5E1C4E5E1C4DAD6B9DDD9BC E0DCBFD3CFB2DCD8BBDDD9BCD2CEB1D3CFB2DEDABDD8D4B7D1CDB0DEDABDDFD8BBB4A989AD9E7D D7C5A1D1BB94D8C198D1BB94C8B48FC2B28EB8AA87BBAC8BAF9F7BB6A079B69E72D7B88AD6B687 DBBF8FDAC08FDBBF8FDBBF8FDBBF8DDBBF8DDAC08FD8C090CFB98AC1AC81BBAC83AEA27CB1A985 918C6C837F627472595E5C475C5946706E55787556767149958A5CC0AF79D7C185D5B97ADABA7D CEAD78C6A77BAA9173453221291A152E2528211E2726262E15191A161B14616451A5A686B2B080 BFB67DD2C080CEB774D6B87AD8B781CEAD80CDAC8BD9BBA37A6554140C0014150D14181701090C 141D221923252C312D949587D7D0B4CCBF95C5B17ECBB57CCAAF78D4B984CBAF7F826F45999977 70795C666F545E664E747C679CA08F999D8E959789A2A496848678878878A5A694A4A690898B73 979A7FC6C4ABE0D5C1D9CAB7E1D0BEE4D3BFDACAB3DCCCB3E0D2B8D5C7ADD7CBB1DACEB4DDD3BA DBD4BAD2CCB6C9C4AECAC5B1D1CCB8CBC6B3CCC7B4CDC6B4CEC7B5D0C9B6D1CAB7D1CBB5D3CBB6 D7CFB8D4CCB5D4CAB1DBD1B872684D695F44BDB296BFB99F9DA18A616952595C47656952656950 595E474B553D5764505C6F5B506552526551819079A9B496BCC29ED1CFA8C8C59ACCC79DCCC79D CCC79DCCC79DCCC79FCCC79FCCC7A1CCC7A1CBC5A1CEC8A4D7D1B1B0AA8A564F32B9B295C5BEA1 C4BFA2BEB9A392917C4847334346314245344047353D4635444F3E3B483647544244513D46543D 4E5A44737F67ADB79EBDC2ABCAC9B5AEAD9B47493BA4AA9ECED6CBC6CDC5D2D8CECDCFC4CCC9BA D0CBB8D5CCBBD7CEBDD2CCBCCAC8BBC0C1B9BBBEB5C4C6BBC7C9BCCBCDC0CFD1C4D0D2C5CFD1C4 CCCEC1CACCBFD0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D2D4C7D2D4C7D1D3C6 D0D2C5D0D2C5CFD1C4CED0C3CED0C3D2D4C7D2D4C7D1D3C6D0D2C5CFD1C4CFD1C4CED0C3CED0C3 CCCEC1CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABD312819342B1C3930213C3324393021 362D1E3B3223443B2C3F36274C43345950415E55465F56476960517D74658D8578938F836C6A5E 89867D6A6A621D1C1741413F818382777B7CC3C6CBC1C9CCC4CCCFCFD9DBD1DCDEA7B2B4606E6F 333F3D5960587D8173979A899093807A7C676E705B6E6C5D6D6B5F73706B6D6C6A605E615E5E60 6C6E6D6B706C61665F60665C5A5D565E605B6668636D6F6A717670747973737A73737A737A817A 7C867E8E9890A6B1A9ACB7AF9CA9A08E9B928E9991B3BAB3AFB4AEA9ABA6A2A7A19EA39D9CA19B 999E98969B95A1A6A0A0A59F9EA39D9EA39D9EA39D9FA69FA2A7A1A3AAA3A6B2A8A4AEA5A4A9A2 A8A9A3AFACA7B5B0ACB8B5B0B7B6B1C6CBC4BFC6BEB5BFB6B1B8B0B0B5AEB2B3ADB4B1ACB3B0AB B1B3AEB7BCB6BFC4BEC0C5BFBBC0BAB6BBB5B6BBB5B9BEB8CCD1CBAFB4AEA4A9A3C2C7C1A9AEA8 9CA19BD7DCD6E2E7E0D5DBCFC5CCBCC1C5B7C5C9BAB8BAAD9D9E90989689A5A195BAB4A8B2AA9D B2AA9DADA397AFA599AA9E92988A7DA5998BA19887B3AB98B2AA97B1A6949F94829184749E9181 A194849C8F7F847868817867A39C8AABA69376736044412E3E3D2B1D1E108B8B7FD5D5C9CFCDC0 AAA89B7775684442352D2B1C383526312E1F282514312E1D3731213A3424373121615B4BB7B4A5 C4C1B29791815B5545534A395149364D422E5A4F3B847965A89D89BDB5A2B5AE9C9E97877D7767 7C796AA09F8D8E907A60624A949680B5B79FD0D2BAD9DBC3D8DAC2D7D9C1D7D7BFDAD8C1BAB49C 787059776B55756651806F5B81725D797359ACAB8FD7D7BBD6D6BAC8C8ACCDCDB1D6D6BAD6D5B9 CECDB1CECAAFC0BAA09B947AA1977E998D75A2937C9E947B9B9679B1B091C2C3A4BCBD9DACAF90 A8AC8BA9AC8DA7AB8AAFB293A8A989A5A184A6A183A8A185A79E81A2967C9F957A9C977AA29E83 A09C8199957A9791779A947C9C967E9B937CA0957FA39882A49882A29680A69782A89984A79883 A599819F94769E9574968B6D938A6B8A7F61867D5E9085697D725663573F70644C5D513B574B35 54483244382242352241321B4936189A8361D8BE9BD8BC97E0C29EF0D2B0E7CCAEEBD6BBE3D4BD E2D7C3DFD8C6DED9C5E0DAC4DFD8BCE0D5B7E1D4B4EAD9BBD7C7ADD2C6AECFC8B5C1BEAFB9BAAC BAB8ABB4B1A2B6AD9EB8AC9C8578676A5D4CDBCFC1F3E9DFE1DAD2B0A9A17C6F6652463A4A4235 A19E8FE9EADAE9ECDBDBDCCCCDCBBCADA799635B4E4E4438524A3D635D4FC2C0B1FCFFEEC5C9B8 CDD0BFCCCABBAFA99B776F62ACA092B0A496C0B7A6E8E3D0EBEDD8EAEFD87D876E8C967B92987E B0B499CACAB0B5B198D4D0B7D4D0B5DAD4BCE2DEC3E6E0C8E1DDC2DFD9C1DDD9BEE9E3CBE6E2C7 E4DEC6DFDBC0DDD7BFDBD7BCDCD6BEDBD7BCDCDBBFDDDCC0DEDDC1DFDEC2DFDEC2DEDDC1DDDCC0 DCDBBFDEDDC1DDDCC0DCDBBFDBDABEDAD9BDD8D7BBD7D6BAD6D5B9DCDBBFD3D2B6DAD9BDE1E0C4 DAD9BDD9D8BCE1E0C4E2E1C5CECDB1D5D4B8D1D0B4DAD9BDEBEACEDEDDC1CDCCB0D8D7BBE2DEC3 A7A2858A8164AB9E7EAA9A78B3A381A798779D907093886A8A8164938A6D857A5C968664AC966F D2B990D9BC90DCC091DCC090DCC08EDCC08EDEC08EDCC08EDBC190D9C191CEB78BA693698E8059 5D53303C37173332164B4D353F412B3436214D4F3966664C6261425E5A34857D4EC0B07CDDC78D D9BC80DBBB80CEAF79C5A87EB39A7C4B38271C0F071D14150D0A1112131805090A0A0F085D604D BBBC9DC1BE93C1B782D2BF84CEB676D3B579D4B37DD1B083D5B491EBCDB39C85731F160717170D 15171403080B121B221A21272B312F8E8F81DDD8BBCEC29AC4B280CBB57CC8AD76CFB47DC9AD7B 857247ABAB899CA286999F858C917A959A84ACAF9CA8AB98A6A797B0B1A1BDBCAAC6C3B2C1BEAB B6B49FB6B49DCAC6ADDFD9C1DDCEB9D4C4ADD8C6B0DDCDB4DDCDB4E1D1B7E1D3B8D5C7ACD6CBAF D6CAB0D4CAB1D1CAB0D6CEB9D9D3BDD7D0BDD2CBB9D9D0BFD8CFBED7CEBDD6CDBCD4CCB9D3CBB8 D2CAB5D3C8B4DACFB9DACFB9D8CEB5E1D7BE7E7459655B40B8AF92BCB69CA9AD966C745D626550 6D715A6C70575F644D515B435C6955576A564F64514E614D798871A6B193BCC29ECFCDA6C8C59A CCC79DCCC79DCCC79DCCC79DCCC79FCCC79FCCC7A1CCC7A1CCC6A2CDC7A3D5CFAFB8B292625B3E B9B295CEC7AAC3BEA1BAB59F93927D53523E5A5D485E61505A614F4D56454C5746485543556250 55624E52604949553F5C685096A087AFB49DC5C4B0B5B2A14B4C3E9C9F94CDD5CAC7CEC6D2D8CE CCCFC4D2D0C1D6D1BED7D0BED8D1BFD4D1C0CFD0C2CACDC4C7CDC3CDD0C5D0D2C5D1D3C6D2D4C7 D0D2C5CDCFC2C9CBBEC6C8BBD0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D2D4C7 D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3CED0C3D1D3C6D1D3C6D0D2C5D0D2C5CFD1C4CED0C3 CDCFC2CDCFC2CCCEC1CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABD2620142923172A2418 272115241E12251F132923172C261A2F291D2C261A2A24182A24182F291D3731253E382C423C30 403C312E2B224340393C3B3631302C757573A3A4A67B7F82B5B9BCC5CDD0D1D9DCCFD9DBACB7B9 6672723C4A4A4E5953888B808E8F7F8685717D7D6586846D8D8B74817E6B736F63706B65736F6E 7575777C7D818185867B817F6D746D656C646C716B70726D7375707378727378727178716F766F 6B756D555F5759645C7D8880A8B5ACB0BDB497A79D81918778857C4E5850535A535B605A656A64 70756F7A7F79818680858A8490958F90958F929791969B959CA19BA2A7A1A8ADA7ACB1ABAAB1A9 ABB0A9ADAEA8ADAAA5ABA6A2ADA5A2AEA9A5AEADA8B5BAB3B7BEB6B8C2B9BCC3BBBFC4BDC6C7C1 CECBC6D2CFCACCCEC9C5CAC4C2C7C1C4C9C3C9CEC8CBD0CAC6CBC5C1C6C0BCC1BBC1C6C0BABFB9 B7BCB6868B854E534D6B706A9CA19ABEC1B6C3C7B9D3D5C8DBDDD0C9C9BDA8A99B9D9B8EA6A296 969084969082A79F92B1AA9ABEB5A6B9B0A1A39789A9A08F898270ACA593B8AF9EB4AB9AA09484 958979B0A393BBAE9DB3A695A79A89958A788F87749B957FA59F89A09B859896816E6D5BA7A596 CFCDC0D4D2C5C9C7BAA19F92615F50353324423F30403D2E423F303532213A37283F3C2D464334 8F8C7DE1DECFA5A2935A54443934214C45336F6754938874B1A692B7AC98ABA38EA09885928B78 9F9989979483848172A9A8968D8C77696B53A5A78FC2C4ACD4D6BED8DAC2D6D8C0D4D4BCD7D5BE E4DFC9BCB49F6D624C6B5C496D5C48776453776853625C44ADAC90E3E2C6DEDEC2D3D3B7DADABE E1E1C5DFDFC3DAD9BDD4D3B7B4AE94716A50695F46675B4374654E6C6249716D52AAAB8CD5D6B7 D3D6B7CCCFB0CED1B2CFD2B3CCCFB0CFD0B1AAA98BA29E81ADA88BB5AE92B2A88DB7A98FCFC5AC BEBCA3C2C4ACBDBFA7BCBCA4BBBBA3C0BEA7C0BEA7AAA58FB9B39DB7AF9AB5AD98AEA38FA29582 9C8F7C9689768B7F67938A6D999373938D6D958F6F8F886B8D8467978E718C8267938970988C74 8D816B9286709589739488729C8F7C92836C534022A58D6BD4BA97D6BA95E8CAA6F5D7B5ECD1B3 EDD9BEEFE0CBE0D9C6DCD7C4D7D4C1D5D0BAD9D3B9E0D7BADFD4B4DED3B5C3B99EB5AF97ACAB97 A4A698919489777A6F77776BA49E92A59C8D796D5D695C4CDCD0C4F0E6DCDDD6D0B1A8A173665D 4D41354840339C9A8BE4E5D5E7EAD9DCDFCECECFBFA9A3957E766970685B7870637A7768B3B4A4 E5E9D8C0C7B5C2C6B5C6C9B8B4B2A3898375D4CBBCEFE6D7D6CFBDE1DCC8E2E4CEE2E8CE929B80 CBD1B5D7DBC0DDDDC1E7E3C8D5CFB5E1DBC1D7D1B7D2CCB2D6D0B6D9D3B9D8D2B8D8D2B8DCD6BC E4DEC4E1DBC1DDD7BDDBD5BBDAD4BADDD7BDE0DAC0E2DCC2DDD9BEDCDBBFDDDCC0DEDDC1DEDDC1 DDDCC0DCDBBFDBDABED8D7BBDAD9BDDDDCC0E0DFC3E0DFC3DEDDC1DCDBBFDAD9BDDCDBBFDBDBBF DFDEC2DBDBBFD2D1B5CDCDB1D4D3B7D9D9BDDCDBBFE2E2C6D7D6BACACAAED1D0B4CFCFB3CDCCB0 D7D7BDEDEDD5A9A99179755A8F886B92896A9D947392896A8B8669A6A2878F8D749A987F918C6F 9F9474AF9F7BD3C098E9D2A6DCC192DDC191DDC18FDDC18FDFC18FDDC18FDDC191DAC292A18A5E 75633B6C603A3D371519180034361E767B6569715A343923585E446C70556C704F6A6B43888153 C0B37FDEC88FD8BB81D9B980D3B380CFB288CDB496675541261910201B181715181A1B1F0F1110 10130A5F6251D1D1B5CFCAA2C0B683D1BE86D0B67BD2B279D3B27DD5B386D6B592F2D4B8B19B86 261A0A17130812121003070A131A201E252B2F333287897CDBD6B9CBBF97C3B17FCDB87FC9B078 CDB47CC9AF7C8B7A4EBDBA99C7CDB1CDD3B9C0C4ABBFC3ACC9CBB6C7C8B6C8C7B5D1CEBDD7D4C1 D6D1BECBC4B1C7C1ABCEC8B2D2CAB3D1C6B0D9C9B2D7C5ADD9C7AFDCCBB1DDCCB2E0D1B4E3D5BA E1D3B8DDD2B6DFD3B9D8CEB5CFC4AECDC5B0D6CEBBD8CFBED3CAB9DED2C2DED1C1DDD0C0DBCEBE D9CCBCD6CBB9D6C9B8D4C9B5DCD1BBDFD4BED9CFB6E5DBC2887E635E5439B5AC8FBCB69CA8AC95 676F58595C4762664F61654C555A4347513954614D43564242574440533F6A79629FAA8CBAC09C CCCAA3C5C297CCC79DCCC79DCCC79DCCC79DCCC79FCCC79FCCC7A1CCC7A1CFC9A5CBC5A1CEC8A8 BBB595686144B3AC8FDAD3B6C8C3A6BBB6A09796815B5A466669546A6D5C5E655347503F3E4938 404D3B4F5C4A54614D526049404C364A563E858F76A6AB94BFBEAABDBAA95051438F9287CDD5CA C5CFC6D3D9CFCCCFC4D5D3C4D6D3C0D7D2BFD4D1BED4D3C1D0D4C5CFD5CBCFD7CCD2D5CAD3D5C8 D4D6C9D3D5C8D1D3C6CED0C3CBCDC0C9CBBED0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5 D0D2C5D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3CED0C3D0D2C5D0D2C5D0D2C5CFD1C4 CED0C3CDCFC2CDCFC2CCCEC1CCCEC1CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABD332F24 353126353126312D222D291E2D291E302C21332F243430252C281D242015221E13242015262217 25211624201737342B605D565C59544C4B476C6B69919191939496808487AAAEB1D3DBDDD7DFE1 A4AEAF636F6F3C484651605D8F99919C9D8D96917D7D775F7C765C9A947AA9A38B9D9683928C7E 66615B75717085848987888C757A7D666F6E626D67626C64757A74787A75777C76787D77787D77 787F78787F78778179848F877C898095A59BB5C6BCAFC0B695A99E81958A75867C6570686C766E 7279726C736C606760565D56535A53555C55535852545953575C565B605A616660666B656C6E69 6F716C696E6773766D7F7F778B8680958E889F9892A9A49EAFAFA7B0B6ACBBC3B8C3CDC2C2CCC1 BDC3B9BEBFB7C8C5BED2CFC8C9CCC5C2C7C0BDC2BBBFC4BDC5CAC3C8CDC6C5CAC3C1C6BFBABFB8 C7CCC5C2C7C0B5BAB3B3B8B17F847D60655EA8ADA6AFB2A9C3C6BDD7D9CED8DACFC4C6BBB1B1A7 A9A99FADAB9FC0BEB2B8B4A8B9B5A9B5B2A3BCB6A8B5AFA1A19B8DACA698A4A192CFCBBFE1DBCF D8D2C6B9B1A4A2988CAB9F91A79B8BB0A494BDB1A1BFB4A2AFA794ADA791BDB7A1BCB89FA8A38D ACA996A7A4939E9B8C9C998A9E9B8C918E7F7B796A7270616260536260536664574D4B3C514F42 4F4D40565447989689D6D4C57E7C6D58554477725F958E7CA9A28FB2AA95A69E899B937E8A826D 9A927FA59E8BCDC7B7D0CDBCA4A192C3C2B08D8D7575755BB9B99FD0D0B6D8DBC0D9DCC1D8D8C0 D3D3BBD9D7C0F0EBD5C8C0AB756A567868587867557B68597A69576B634CB7B59CE6E4CBDDDBC2 D8D8BEE0E0C6DDDDC3D5D5BBE7E5CCE5E3CAC1BBA3746C55695E486B5F497A6B566F634B6A644A B4B397E5E4C8E0E0C4DCDCC0E0E0C4DFDFC3DFDEC2BFBBA0767056615A4072684F776B536D5E47 7A6852B4A892D9D7C0DBDFC8D1D5BED5D7C1D5D7C1DBDAC5D5D3BEA39E8A98937D9A947EA49C85 A79F88ADA28CC8BDA7DED2BCD6CCB3BBB498C5C0A2BEB99BC1BC9EBAB598A9A286ACA589ABA48A B1AA90A59B829C9279A59B829B8F798F836D8D816B716349675436AC9573C6AC89CFB38EEED0AC F4D7B5EAD1B3ECDBBFE0D4BEC8C3AFBFBCABBEBDABBDBCA7CDCCB0DFDABCDDD7B7D3CCAFB4B093 A3A38B9A9F8B9EA6997F897E4E554D55584F9E9C909E968B746A5E6A5E52DDD0C7EAE0D7D9CFCD B2A9A473665D564C40544E409C9D8DDBDECDE1E5D4DEE2D1D5D8C7B4B1A2BBB5A7B7AFA2C5BFB1 C3C1B2C1C4B3D3DAC8C8D1BED4DDCCD0D7C7B0B1A17B7869BDB6A6EEE7D7E5DECCF0EED9E3E5CD D9DDC28B9175CFD4B6E0E0C4DEDABDE8E1C5E3D9BEDFD8BCE1DABEE0D9BDE0D9BDE4DDC1E9E2C6 E7E0C4E1DABEDED7BBDDD6BADCD5B9DBD4B8DDD6BADFD8BCE2DBBFE3DDC3DCD8BDDBD9C0DCDAC1 DDDBC2DDDBC2DCDAC1DBD9C0DAD8BFDAD8BFD9D7BED9D7BED9D7BEDAD8BFDBD9C0DCDAC1DDDBC2 DCDCC2DDE0C5DCDCC2D5D8BDDBDBC1DDE0C5DEDEC4DBDEC3C0C0A6D2D5BADBDBC1CFD2B7CECEB4 D2D5BAD2D2B8C6C9AEC2C7B0A2A7908E9176A7A8899A997A8F8E6F7C7B5D7F82676A6E55464B34 5E624963664B7370517A724E9E9069CDBA8FDAC292DDC191DDC18FDDC18FDFC18FDDC18FDDC191 DAC292AE996E816F47807653524D2F2121073D422C818A7765715B3842295863455E67486A704E 71734B827E51B7A978D4BF8AD0B27CD2B17BD1B180D2B58BDCC5A5796952231A0B1E19131A1917 1A1A1A11120D0E0F07525544D5D5BBCDC7A3BAAD80D1BB89D2B780D2B17BD4B37ED7B588D2B28C EDD0B2B7A1892C1C0C140C01100C09060709161B2124292D313534808074D4CFB2C5B991C0B07D D1BC83CDB47CCEB57DCDB47E948355A6A382CBCFB4D7DBC2CED0B8CFD1BBD5D4BFD9D6C3DCD7C4 DFD8C6D2CBB9CBC2B1D2C7B5D8CDB9D7CAB7D3C7B1D4C5AEE3D1B9E7D3B8E0CCB1D0BFA3C5B498 BEAF90C1B396CCBEA1D4C9ADE2D6BCE6DCC3DCD1BBD4C9B5D7CCBADDD1C1DED2C4DCCCBFDCCCBF DBCBBEDBCBBCDACABBD8CBBADACABAD7CAB7DED2BCE2D6C0D8CCB4E5D9C190866B554B30B2A88D BEB89E9FA38C5B634C4A4D3851553E50543B464B343A442C46533F40533F465B483F523E63725B 9EA98BBBC19DC9C7A0C2BF94CCC79DCCC79DCCC79DCCC79DCCC79FCCC79FCCC7A1CCC7A1D1CBA7 CEC8A4CCC6A6B3AD8D4D4629878063D4CDB0CEC9ACBCB7A194937E52513D595C476063525C6351 4E57464B5645515E4C5D6A585C695556644D44503A4F5B438B957CACB19AB8B7A3C5C2B1555648 818479CDD5CAC6D0C7D3D9CFCCCFC4D3D4C4D5D2BFD3D0BDD2D1BDD0D1BFCED5C5D0D8CDD1D9CE D0D3C8D1D3C6D2D4C7D2D4C7D1D3C6D0D2C5CFD1C4CED0C3D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5 D0D2C5D0D2C5D0D2C5D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3CED0C3D0D2C5CFD1C4 CFD1C4CED0C3CDCFC2CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABD C8CABD36362E36362C38383036362C2D2D2525251B26261E2C2C2223231B26261C2A2A222D2D23 2F2F2731312736362E3A3A324D4A43ADAAA5B1ADAA999896A6A4A588888A67686C717578C9CDD0 C9D1D39FA7A95A64633E4A4855615D75847F8D978C8B88759890798C8267877E61A1987BACA58B A9A18CAFA79A756E688D8988ABAAAFA2A5AA74797D505A5B4A56524B565060655F62645F60655F 616660626962646B64636D65646F67606D645B6B617E8F85A0B4A999ADA2879D917A9084677B70 606D646F79717C867E808A827C867E7B827B7F867F848B8480857F7F847E7D827C7C817B7B807A 7B807A7D7F7A7D80797679727A7B737E7B747C756F756C676F68626E69636D6D65686E64757F74 879186909A8F969C92A1A29AB5B2ABC4C1BAB9BCB5BCC1BAC1C6BFC0C5BEBCC1BABBC0B9C1C6BF C7CCC5BCC1BAC9CEC7C1C6BFB2B7B0CCD1CAA9AEA7797E77C5CAC3C8CDC7D8DAD5DEE1DAD0D3CC B9BCB5A9ACA5A4A59DA2A39B9A9A9094948A9C9C90A0A094AEAFA1B6B4A7AFADA0C1C1B5B0B0A6 D2D2C8D9D9CFD1CEC5BEBAB1B1AAA0B4ACA1A59D90BAB1A2B9B09FC0B7A6BCB5A2AFA895ADA892 AFAA94A5A38CABA895ACA998B5B2A1BAB7A6ABA8999A9788A19F90B7B5A6B8B6A9B5B6A8B4B5A7 9B9D8FA2A395949689939588ABAB9FB6B7A98A8879908D7CB3B09FB5B09DACA592A79F8C978F7A A29A8599937DCEC7B4D2CDBADAD7C6D5D2C1AAA899DDDCCA8A8A727D7D63C7C7ADDCDCC2DFE2C7 E2E5CAE4E4CCE1E1C9DDD8C2F6F0DAC9C1AE7669587C6C5C786757766052746353736B56C0BCA3 E8E4CBDDDBC2E2E2C8ECECD2E4E4CADEDEC4DEDCC3E4E0C7C5BFA77B735C6F634D6F604B786753 6A5B46898268D1CDB2F3EFD4E2DEC3DAD9BDDCDBBFD9D5BADBD7BCE9E2C88B81686E624A776851 77654F68533E77614CC6B5A1E1DFCAE2E7D1D4D8C1DADEC7DBDDC7DFE1CBD9D7C28E8C755C5741 5E5840655D466358426E634DA89C84D4C8B2CDC3AADCD6BCE1E0C2D6D5B9D9D5B8C5C1A6989278 8A846A90896F9D967C8B846A9F957CCCC2A9CDC1ABC3B7A1C0B49E9A8C726A5739B8A17FCAB08D D2B691F1D3AFECD2AFE6CFB0ECDBC1C7BCA8A6A18E9C9B89A0A18FA6A892C5C5ABE1DDC0DBD8B7 CFCEAFAFAF939EA38C9DA693B0BEB18F9C9348534B575E569D9D959D968C756B616E6158DED1C9 E8DBD5DACFCDBEB3B1A79D94989083918E7FBEBFAFE1E5D4E0E7D5E3E7D6DBDECDCAC8B9E2DFD0 D1CBBDD4CEC0D0CEBFBABEADC7D0BDC7D3BFD0DBCAE0E9D8CED2C1A8A697C1BBABE2DBC9E7E2CF F2F0D9E6E8D0DADEC38C9173D2D5B6E2E1C3DDD6B9E8DDC1E2D7BBDED4B9E4DDC1E2DBBFD8D1B5 DAD3B7E5DEC2E6DFC3DCD5B9E3DCC0E3DCC0E2DBBFE1DABEE1DABEE1DABEE1DABEE0DBBEDBD7BC DAD8BFDBD9C0DCDAC1DCDAC1DBD9C0DAD8BFD9D7BEDFDDC4DCDAC1D8D6BDD6D4BBD7D5BCDCDAC1 E2E0C7E5E5CBD5D8BDD7DABFD2D5BAD6D9BEE1E4C9DDE0C5D3D6BBD6D9BED1D4B9C7CAAFC5C8AD B1B4998F9277878A6F74775C464A313E482F4B553C5B6449757C5D525536323717262D0E424B30 4E583F2430184C563D5C65486F725375734D9D966CDFD1A4DBC393DEC292DEC290DEC290E0C290 DEC290DEC292DBC393B39E737C6D467C724F524E31272B144D564196A3927B887439482B5A6845 525D3B5E66416A6F477A774CB5A979D6C08ED6B884D6B580D7B786D6B98FE8D1B185755C211807 1D190E1A171017161113120D0E1005464737D5D3BACFC6A5C2B58BD0BA89D5BA85D4B37ED6B582 DAB88BCDAD86E5C8A8BAA28831200E120800100B070A0809191C21272A2F303231717165D2CDB0 C2B68EC0B07DD4BF86CDB77ECDB47CCCB57F9B8A5C979473CBCFB4D5D7BFCECEB6D2D1BCD2D0BB D7D2BFD5CEBCDFD6C5D3C8B6D1C6B4DED1BEE1D2BFD6C5B3D5C4B0E1CFB9E4D0B5E2CDB0C9B497 A895759180628271538172538F8262AA9F81C3B79DDBD1B8E0D5C1D9CEBCD5C9B9D8CCBEDDCFC2 D9C7BBDAC8BCDAC8BCDBC9BDDBC9BBDBCBBCDBCBBBDBCBBBDCCDBAE1D5BFD5C9B3E5D9C1998F76 4D4328AFA58ABFB9A1A6A994626A5351543F595D465A5E4550553E434D354E5B475265515B705D 4A5D4964735C9FAA8CBDC39FC7C59EC1BE93CCC79DCCC79DCCC79DCCC79DCCC79FCCC79FCCC7A1 CCC7A1CEC8A4D3CDA9D0CAAAAEA88830290C544D30C6BFA2CFCAADBAB59F92917C51503C565944 5A5D4C565D4B4A53424954434552404E5B4949564245533C3E4A34535F478C967DA4A992B2B19D CDCAB95A5B4D74776CCCD4C9C7D1C8D2DACFCCCFC4D2D3C3D3D2BED3D0BDD2D1BDCFD2BFCDD4C4 CCD6CBCDD7CCCED1C6CFD1C4CFD1C4D0D2C5D0D2C5D1D3C6D1D3C6D2D4C7D0D2C5D0D2C5D0D2C5 D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4CED0C3CED0C3 CFD1C4CFD1C4CED0C3CDCFC2CCCEC1CCCEC1CBCDC0CBCDC0CCCEC1CCCEC1CBCDC0CACCBFCACCBF C9CBBEC8CABDC8CABD56575152534B51524C4E4F473B3C3622231B1D1E1826271F252620272820 2D2E2835362E3D3E383F40383D3E38393A343A3934908C89ABA7A4B2B1AFAFADAE85858777787C 808487CDD1D48890924A53523A444354605C79867F7F8E87757D70807B679D91778F84687E7355 9A8F71AFA689A9A18AA9A2928B847EA5A1A0C9C8CDBEC1C881888E5B6567566562586460747A76 787A75777C76797E78787F78787F78757F77747F7763736966776D90A197ADC1B69DB3A78CA497 7E968962786C4B5B51535E565B665E626D6567726A69736B69736B68726A757C75737A73737872 737872757A747A7F7981837E84878084857F8888808D88828D868089807B867D78867F7983837B 747A706E786D687267626C6160665C62635B66635C69665F72756E777C7580857E848982858A83 888D8690958E979C95A6ABA4B1B6AFA6ABA4A2A7A0B0B5AE979C958C918AC0C5BFBBC0BCBEC2C1 C4C9C5C4C9C5B7BCB8A7ACA8A1A6A0A4A9A3ACB1AAA7ACA5ADB3A9A9AFA5AAB0A4A3A69B92958A A1A49BAAAFA9CBD0CACDCFCABEBFB9ABAAA5A7A49DB1ADA4A69F95D2CABFB9B1A4B8B1A1BDB8A5 B4AF9CB2B09BBDBBA6BDBBA6A8A592C1BCA9E5E0CDEDE8D5C8C5B4A6A392A2A091ADAB9C9E9F91 A7A89AABADA09CA092A4A69995988DA5A89D9DA095A9AA9C969485706D5C5F5C4B78736096917D B2AB98C9C2AF99927F817A67CAC3B1DED9C6E9E6D5E6E3D2A3A192C0BFAD84846C807F63CDCDB1 DFDFC3E1E1C7E5E5CBE9E9D1E8E8D0E6E1CDF9F2DFC5BCAB7265557F6F607B695B7963567E6D5D 847965CECAB1F0ECD3E1DFC6E3E3C9E5E5CBDBDBC1DBDBC1E4E2C9E9E5CCCBC5AD817962746852 70614C7867536C5B478B806ACFC7B0EAE4CCDDD7BFE3DDC5E9E3CBE6DEC7EDE5CED9CDB780715C 6C5B47705E4A745D4B725847856A59D7C2AFDBD9C4E0E5CED0D4BDD7DBC4D5D7BFDADCC4D8D6BF 828067605C436660466D664C645A4171654DBFB197F7E8D1E8DCC4D8D4B9DBDBBFD1D1B7D7D6BA BAB89F736F565450375E58406B654B564F3581775ED0C6ADDED2BAD7CBB3D6CAB2AD9F85695638 C8B18FD4BC98D1B794EED1AFEED4B3EAD2B6E6D6BCC4BCA79B98858F907E989B88A1A48FC5C8AD E3E2C4D8D7B8CFD0B1ABB0929BA58D9DAA98BDCDC297A8A042514A58625A9B9C9699958C756B62 71645CE1D2CDE9DBD8E3D7D7D1C6C4DDD3CADBD5C7D0CEBFDEE1D0E5ECDADFE8D5E5ECDADFE3D2 DBDCCCEBE8D9CCC6B8C0BDAEB3B4A4B5B9A8D0D9C6B3C0ACAFBCAACFDAC9D3DAC8CDCEBECAC7B6 D2CDBAE1DCC9DEDCC5DFDFC7D8DBC08E9174D4D5B6E3E0C1DED5B6E5D7BAD9CBAEE6DBBFE9E0C3 E5DCBFDAD1B4D8CFB2E1D8BBE7DEC1E5DCBFE6DDC0E5DCBFE4DBBEE3DABDE3DABDE3DABDE3DABD E1DABEDBD7BCDAD8BFDBD9C0DCDAC1DCDAC1DBD9C0DAD8BFD9D7BED5D3BAD6D4BBD8D6BDD9D7BE DAD8BFDAD8BFD9D7BED7D7BDD5D7BFDDE1C8DFE3CADADEC5BBBFA683876E72765D92967DA8AC93 62664D4A4E354A4E353C402754583F61654C353B212330163C4B2E5360426A7555464D2C283210 2A351558674A6A7A5F4153396A7A5F6B785A71785773754E949166D9CC9FDBC594DFC393E1C391 E1C391E1C391DFC391DFC393DCC494AE9B70766841746B4A4E4D31262B153D4935717F704B5C49 394A2A6D7D585E6C485A643F636840777449B9AC7FD7C391DDBF8DDAB986DABA8BD5B88EECD5B3 8E7E64241C072822141E1A0F1A170E1A1A101313073E3D2BD1CFB8CFC6A7CEBF98D0B88CD9BA8B D6B582D8B686DDBB8ECBAB84E3C7A2C0A98A3A2814180A00160D08110D0E1C1D2224282B272926 5E5F51D8D3B6C5B991C1B17ED4BF86CBB57CC7B178CAB37D9E8D5F9E9979D7DABFD9D9BFCFCFB5 D7D5BED5D0BAD6CFBCCEC6B3DCD1BFDED1C0E1D1C1E2D1BFDECDBBDAC8B4DAC8B4E0CCB4DBC6A9 CDB899A38E6F7E6B4A7464436B5B3A6758377366468B8062A1957BC1B59DD8CBB8DBCEBDD4C7B7 D3C5BAD7C9BEDCCAC0DDC9C0DDC9BEDCCABEDCCABCDCCABCDCCBBBDBCBBBD4C5B2DECFBAD2C6B0 E7DBC3A1977E493F26ACA289BDB79FACAF9A6A725B5D604B696D566B6F565F644D4E584056634F 5C6F5B6479664A5D495B6A5399A486BBC19DC7C59EC4C196CCC79DCCC79DCCC79DCCC79DCCC79F CCC79FCCC7A1CCC7A1C9C39FCFC9A5D1CBABBCB696413A1D564F32CCC5A8C8C3A6C6C1AB9D9C87 55544051543F4A4D3C3F4634303928313C2B2A37253A47353F4C3848563F525E486C7860949E85 949982AEAB98D5CFBF5D5E506A6D62CCD4C9C7D1C8D2DACFCAD0C4D2D5C4D3D5C0D5D4C0D3D5C0 D1D6C2CDD6C5C9D5C9C9D5C9CDD3C7CFD1C4CFD1C4CED0C3CED0C3CED0C3CFD1C4D0D2C5D0D2C5 D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D0D2C5D2D4C7D2D4C7D1D3C6D0D2C5D0D2C5CFD1C4 CED0C3CED0C3CED0C3CED0C3CDCFC2CDCFC2CCCEC1CBCDC0CACCBFCACCBFCCCEC1CCCEC1CBCDC0 CACCBFCACCBFC9CBBEC8CABDC8CABD77796C6E7065686B6061645B40463C191F150F1209191C13 1B1D1216180D1B1D1233352A5153485F6259565950474A432829243E3D3951504E6F6E6C666664 5658576D6E7065696A9A9FA23B44431A2423505956787F787B83787F85798889798C816BA39477 837455695A3B968766BCAF8FAB9F859189768D867C9C9B97BABBBDAEB2B57A82856872737B8783 88938D7F867F838882868D868A918A8C938C89938B88928A85908886938A839389A2B2A8B1C2B8 97ABA08DA397879D916C80756C797067726A6670686F79717C867E818B837B857D757C757E857E 7980797277716B706A686D67696E686E706B71736E6C6F6871726A7675707A77707A75717A756F 7B78737A7B73848982747E73687269697368797E778689808B8A85878882868B847F867E7A7F78 787F77797E77747B736C716A636A62646962656C64565B546F766E7E837C747B7390958E9DA29C A2A7A39DA1A0A7ACA8B8BDB9B2B7B3979C98898E8A8E938D989D97959A949EA39C9EA39CA6ACA2 A9AFA5A4AAA0BCC1BA909790C3CAC3D5DAD4C8CDC7AEB1AAA3A49CB0B0A6AAA89CB5B3A7A2A093 AAA798B9B7A8B9B8A6BDBCAAB8BAA5A3A492AFAC9BC0BDACDAD7C8DCD9CAC4C2B3B6B4A5B8B6A9 B7B8AAA7A79BBBBDB0C0C2B5ACAFA4A1A4998C8F84B0B3AA9EA196D3D4C6C3C1B2696856454231 9A9786D9D4C1D1CCB9D2CDBA8A8572787360D7D2BFE6E3D2DDDAC9D9D8C6A7A596D5D4C2807E67 7E7C63CDCDB3DADAC0D9D9C1DDDDC5E2E1CCE3E1CCDEDBC8EEE9D6B3AC9A605746736757726555 726555807563706A54C2BEA5E7E5CCDDDDC5E1E1C9E1E3CBDCDEC6E8EAD2E5E5CDE4E2CBC3BEA8 7A725D6C614D6A5E4879685472634E938872D4CEB6ECE6CEE0DCC3E7E5CCEAE6CDDEDAC1E4DCC5 E0D5BF93846F84725E7D68557A63517E64538A6F5ED1BEADE6E1CDEDF1DADDE1CAE3E7D0DEE0C8 E4E6CEE8E6CF928E75645C4570664D796D556A5B4473634CC1B198F4E6CCDAD0B7DAD8BFDFE1C9 DCDCC4EAE8D1CFC9B179715A54493361553F5F533B43371F766750D3C7B1E5D9C3DED3BDDFD7C0 B7AD926B5C3DD4C09DD8C09CCAB08DECCFADF6DCBBEFDABDE0D2B8D4CEB8A5A694979B8A9EA593 A8AD97CCCEB6E7E6CAD6D5B7CCD1B1A6AF9294A08896A592BBCBC091A29835423B4D574F999A92 969287746A6173665EDFD4CEE8DEDCEAE2E0DFD7D5DFD8CEEAE4D6E1DFD2E1E4D3DDE4D4D8E1CE E5ECDCE3E7D6E7E8DAF0EDDEDAD4C8CFCCBDBCBDAFCED2C1EAF3E2A1AE9AB5C4AFC7D4C0BEC5B3 C5C8B5BEBBAACBC5B5F2EDDAEFECD9ECEBD6E4E6CE95987DD3D3B7E3DEC1E5DBC0F2E2C9E6D8BE DDD6BAE0DCBFE6E1C4E7E2C5E4DFC2E2DDC0E2DBBFE3DCC0DCD5B9DCD5B9DBD4B8DCD5B9DCD7BA DFDABDE2DDC0E3DFC4D7D6C1D6D8C3D7DAC5D8DBC6D8DCC5D7DBC4D6D8C2D5D7C1D2D1BCD4D3BE D3D1BCC9C8B3B5B4A0989A857D7F6A6C6E59B3B59FCDCFB7E2E6CDD7DBC28B9079272C151F230C 666A539D9F893A3C262F311B565842565842686C55676B54262E172B3B213D4F354F5E416B7658 545D3E40492A424B306F7C626B79624A5942738369667357656F4D6D714C8F8D64D1C698DBC596 E1C293E1C293E1C391E1C391DFC391DEC493DBC594B9A67B786A436B65434B4A2E333822576251 96A495798A773543297E8C6B727D5B5F66445C603B706D44B3A87BC9B787D2B887CFB17FCFB082 C9AC82E6CEAA907B5E2A1A03302513231B0E1D160C1E1A0E151203322F1CC7C1A9C4BB9CCBBB97 CEB98ED7BC8DD4B586D8B887DDBE90CCAC83E4C8A1C8AE8D472B16240900210D061C0D0A251919 2B2321252118564F3DE3DABDCABC95C2B281D2BE89C6B17AC2AB75C7B07CA08D629C9578D9D8C3 D6D4BFCDCBB6DDD8C4DBD4C1DCD4C1D3C8B6D4C7B6E0D3C0E2D3C0D7C6B4DAC7B6E6D3C2E3D0BF D6C1ACDBC4A5C5AF8A937C5A75613C806E4A84745081714D8B7C5B9083639A8F73B6AA90D4C8B2 E0D3C2DBCEBED8CABFDBCDC2E0CFC5E0D0C3DFCFC2DFCDC1DDCBBDDCCABCDBC9BBDBCABACEBDAD DCCBB9D2C3AEEBDCC7A89C84483C24AB9F85BAB49CA1A58E626A53575C46666B546A6F585B634B 48513C4D5A4656675461725F3F503D4D5B448F997EB7BC9CC5C7A2C8C69FCCC79DCEC79DCCC79D CCC79FCCC79FCCC7A1CCC7A1CCC7A1C8C09BC8C09BCFC7A3D3CAA96C66467A7557DFDABDBFBBA0 CAC8B19D9C874D4F3A494B36494C395358445A624D6C745F777F6A8A927D909881969E87999E87 9FA58BA5A990868870ADA892D9D4C0615F5065695BCCD4C9C8D2C9D0DACFC9D1C4D2D6C7D5D6C6 D6D7C5D6D7C5D3D7C8CED6C7C9D5CBC8D4CAD0D6CCD0D3C8CFD1C6CDCFC4CDCDC3CCCCC2CCCEC3 CCCEC3D0D2C7CFD3C5CFD3C5CFD3C5D0D2C5D0D2C5D1D1C5D1D1C5D2D4C7D2D4C7D1D3C6D0D2C5 D0D2C5CFD1C4CED0C3CED0C3CED0C3CED0C3CDCFC2CCCEC1CBCDC0CBCDC0CACCBFCACCBFCCCEC1 CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABD82806B7978647F82716F7666384031151D10 191F112125162021111B1A081B1A0642412F6061516D6F616A7064495048363B375254516C6D68 73746E72756E757772787E7A79827F212B2A111D1B28332F40453F6161577F79698176629A8B74 A59679B0A07F978463604C29AE9A77AF9C7BA49578A89D87ADAA999D9F949398929298948C9290 878D89939891A6ADA5939D9598A39B9AA49C929C9489938B8791898A948C8B958D8A948C949F97 AAB5ADADBAB199A69D86968C7E8E84758279707A72858C85858C858289828E958E8E958E868D86 8F948E8B908A838882787D777277717176707378727378727378726B726B686F676B706A71766F 74797370756E6D726C6B726A666D664E584F4A544C5A645B697069727971777C767077707A817A 78827A7B827B7E8880868D86879189888F88838D85888F88757F777E857E808A82848B84879189 7980796B726B6D6F6A90928D9B9D988A8C878587828B8D888A8C8786898292958E949790979A93 999C95999C95979A9394979092958C9BA197BCC2B6D1D7CBBEC4B89BA1958D90859397899EA294 9EA294A2A698ABAD9FB1B5A6B4B8A9B4B8A9B2B6A7B0B4A5B3B3A7B9B9ADCDCDC3DBDBD1C7C7BD A4A49A9F9F95B0B2A79FA196A2A499A8AA9FB0B1A9B6B7AFBBBCB4BFC0B8C0C2B7DADBCDCAC8B9 8886775E5C4DB8B6A7DFDCCBD5D2C1DEDBCA928F7E7D7A69E2DFCEE0DECFE5E3D4EAE8D9959384 CCCBB96967528E8C77C7C5B0E8E5D2E4E1D0DEDBCAE2DFD0E1DECFE5E2D3E9E7D8AEAB9C6A6957 67665472715D67665263624D686850ACAC94E0E2CAE2E6CFDBDEC9E5EAD4E8EDD9DDE2CED8DBC8 F2F3E1B6B5A16B665370695678705B6B5E4B716652756F59CCCAB3F1F3DBDDE3C9DAE3C8DBE4C9 D7DBC2DFDFC7E1DBC57B705C7A6B58796655776453766352776453DBCEBBDBD6C2EBEDD7E0E4CD E6EAD3D8DCC5DCDEC6E1DFC89088735F503D685642786350745D4B7E6956C3B39CF5E6CFDED6BF D6D5C0DDDFCADFDDC8E7DFCCE3D4C185705F6248376C5140694E3D5A402F97806EE6D5C3E0D5C3 D7D0BDDAD9C5A8A68D6D6443C5B591D7C19CD2B893EBCFAAEFD5B4E7D4B6E2D6BCC4C3AE919984 8D9A88909D8B9CA391CBCDB8E5E0CAE0DCC1CACFB1ACB7999BA990A9B8A5C5D3C488958B364035 56594EA4A2959A92856E6458675F54D7D0C6E1E1D9E8EAE7E2E4DFDCD8CFE7E3D7E6E6DADCE0D1 D9E1D2E1EAD9E0E6D8D5D9CAE6E4D8E5E1D5EDE6DCEAE6DAE7E5D9DCDED0E9EFE1ADB8A7C5D3BC D2E0C7D4DCC5B4B7A4C4C1B0EDE7D9EDE7D9EAE7D8F0EEDFD0D1BF696A58D0CFBBEDE6D3EFE4D0 E6D5C3EADDCAE1E1C9DCE2C8D5D9C0D7D9C1DDDFC7DCDCC4DEDCC5ECEAD3E3E1CAEEECD5E1DFC8 DEDCC5D7D7BFDEDEC6CDCDB5E2E5D0CED4C6D1DBD0CBD7C9EBF9EAABBCAA9EAC9BA6B1A0BAC3B2 A0A2947273657A786C5A5A4E7173685A6054192318272D1F868573E5E3CEDADCC6DADFC8A0A891 272F182E331D5A5D48ABAA9663604D39362559564552513F6C6D5B6B6F5E313D29233623283E29 606F586D775F565A433537215456416A6D5A7478694B52427B8270646C555E62476C6D4B8A8660 D7CBA1D7BF93DDBE90DEBF90E0C192E0C494E2C696E0C898DFCA9BB5A4786B5F376F694549482A 2C311A59624F9CA9988B9789353D2E909785858A7452553A5C5C3A7C7852A79F71CCC090CBB987 D1BB89CDB585CBB085DABC989C7D5E381A00381F09322215291C131E1408170E00383019D5CBB0 D7CDAABFB38BC6B78CCFBD8DCFB988C6AF7DC7AC7DD2B589DBBE92E0BE9B592C193E0E04461A11 4A24194F2D234E3224422B195C4830DBC8AACEBC98B8A77CBCAA7AC5B17FCBB583CAB37FA39066 998C79D7CFC4DDD5CAD1C9BCDAD1C2D7CEBDDACFBDDCD1BDD8CBB8D9CCB9DBCCB9DDCEBBDFCEBE E0CFBFE1CFC1E4CFBAD3BC9AA891679B845BC0AB80A38D647663398D7B538F8059A698759F9272 A59A7ED6CAB2EADFCBD6CBB9D7CBBBD7CEBDDFD8C6DED7C5DDD4C3DDD1C1DECEC1DDCBBFDCC8BD DDC7BAE4CEC1D9C3B5DFCCBBE6D4C0B0A089504027A09277B3AC90A5A9906B755D565E4769715A 6D755E59624D4D56434A5544626D5C606B5A45513D4F5B45939D84B8C1A6B2B89CB3B796CCC49D CDC499CCC49DCAC59FC9C5A0C9C5A0CAC4A0CCC49FD6CAA4C7B992CEC09BDDD0AD7E7858676346 C8C8AEBBBDA5989A849A9C879D9F8AA1A38EA5A792A8AA94ABAD97AFAF97ACAC94B0AE95B5B498 B9B89CBCB89BBAB699B8B396B6AF93BCB297D8D1B78988734C503FC6CEC1C1CDC1D1DDD3CDD7CC D1D7CBCED2C4D0D1C3D3D4C6CED1C6C5CAC3C4CDC8CCD7D1CBD5CDCDD4CDCFD2CBCECFC9D0CDC8 CFCCC7CCCCC4CACBC3CACDC4CAD2C5C7CFC2C2CABDCACDC2D6D8CDDBD9CDD3D1C5CFCFC3CED0C3 CED0C3CED0C3CED0C3CED0C3CED0C3CED0C3CCCEC1CCCEC1CBCDC0CBCDC0CACCBFC9CBBEC8CABD C8CABDD0D2C5C3C5B8C0C2B5CACCBFCFD1C4CACCBFCACCBFD2D4C79490758C8A718D907B767D6B 3B4433121D0D171E0E2024131D1F0A191803201B054C4A357675618B8E7D8E9689707A717A7F7B 8B908C9C9E999C9F9896999091978D9198918D9892535F5B47534F394440272C25494337766958 88745CA79277AE9B7DB6A6849B876468522DB29A76B29E7BAB9C7DB1A78CABA8959A9C8F919890 9AA49CA5ACA5A7ACA5ACAFA6B0B6ACB3BDB4B5C2B9B6C1B9B1BCB4AEB8B0B1BBB3BBC2BBC0C7C0 ADB4ADA7AEA7A3ADA59EA8A0909B938691897D8A81747F77838A8390958F949993939892959A94 90958F8A8F898D928C90958F8D928C898E88888D878A8F898D928C8F948E90958F878E87828C84 828C848791898B958D8A948C88928A8791895F69614E58504D574F5761595761595B655D626C64 636D656C766E6B756D6B756D6B756D6C766E6A746C677169656F67646E665F6961737D75919B93 89938B707A726C766E72797271746D86878191928C8788827E7F798687818F908A8C8D879C9D97 9D9E989FA09AA0A19B9FA09A9C9D9798999396978F878A7F919789969C8E8E9486868C7E868C7E 848A7C8086788B91838C92848E94868F958791978991978992988A94988A989A8FA2A499BCBEB3 D2D4C9C7C9BEABADA2A6A89DB6B8ADB9BBB0B8BAAFB7B9AEB5B7ACB1B3A8ADAFA4A9ABA0A6A89B CECCBFC2C0B1918F80747263C6C4B5E7E5D6E1DFD0E5E3D4929081848273E5E3D4E2E0D1E4E2D3 E5E3D49A9889D7D6C4888572A3A18CCFCCB9E8E5D4E3E0D1E2DFD0E9E5D9E9E5D9D9D7CAE3E1D4 C3C4B49C9D8D9C9F8CA3A892999E8790957E969880C5C7AFE8EAD4E3E7D0D9DECADDE5D0DDE4D2 D4DBC9D8DCCBE4E7D6AAAB9968655266614E6E6653695E4A6D6550807B65C7C7AFE5E9D0D7E1C6 DBE8CCDFECD0DCE6CBE5EBD1D0CEB7766E597164516C5D4A6B5A486E5F4C716451CBC3B0E4DFCB EDECD7DEE0CAE3E7D0DDE1CADFE1CBDCD7C3877F6A72614F7661507F6556755B4A7E6956C3B29E F7EBD5E8E2CCDCDEC9E2E3D1E3DECBE3D8C6D8C7B77F65565E41316948396D4C3D593C2C917768 E0CFBDDFD3C3D7D2BFDBDCCAAEAE966B6543C4B68FD5C29AD2B893EBCFAAEFD5B2E7D4B4E1D7BC BFC1AB9099848C9B88909F8C9FA694CCCBB7E2DAC5DAD4BACACDAEA5AE8F959F86A6B29CC7D2C1 9FA798595D4F686659A19A8AA19887786C5C69604FD6D2C6E4E4DAE3E8E1D5DAD3ECE9E0EAE6DB E1E3D6DBE1D3DFE7D8E5EDDEE5EBDDE1E5D7E6E4D8DFDBD0E5DED4E3DFD4E5E3D7E2E4D7F1F7E9 B6C1B0B6C4ABD4E1C7E4ECD5D8DAC5E3E0D1F3EDDFE5DFD3DCD8CCDDDBCEC4C5B7696A5ACECDBB E2DCCCDED2C2DCCCBCE7DCCADCE0C9DCE6CDDEE6CEE0E5CEE2E7D0DCE0C9CDCFB9C2C4AEE0E2CC CED0BABDBFA9CDCFB9CACCB6CBCDB7AFB19BADB29E7F897E5C6C624C5E5284988C4C63532D4231 495A488F9C8B4246381E20134340373E3E366A6D66626C6328352C364035868573E7E2CED9DBC6 D9DEC8A0A89128321A3038235F624FB2B19F6966553F372A5C5648524F40696A5A676B5C2C3727 2C41302E43325E6D5A68715C545744393824615E4D8280718585794F51447D8172727562686A52 7170518E8A65D3C79FD9BD95DEBD92DEBF91E0C192E0C494E1C796E0C898DFCA9BBCAE81756941 78724E575637393D245D6550919C8B7B8678494C438C8E837F80704D4D354744256F6A44AFA67B D2C897C3B380C8B783CDB585D3B88DE6C6A0A987644F2A0D503019402A1C38271D3321132F200B 4B3B22CEC1A1CEC09BBAAD83C4B689CCBC8BD1BD8BD1BA88D7BD8CDEC292DDBD8ED7B089743D28 5E2217672F22693829693E2B64402A58381F6B5234D3BC9CCFBB96C4B388CCB98ECFBA8BCEB886 CBB480A59268978A79D7CCC6DED4CBD3C9BFDCD0C4D9CDBDDACFBDDCD1BDD8CCB6D9CDB7DBCCB9 DCCDBADECDBDDFCDBFE0CEC0E3CEB9CFB994A89165A68F63C1AC7FA893668370458B7A4F8A7B52 A0926D938664948669C3B79DDED3BDD4C9B5D5CCBBD3CCBADAD5C1D7D5C0D9D2C0D9D0BFDACCBF DBCBBEDCC8BDDDC7BCE7D1C4DDC7B9E4CFBEE9D7C3B8A69058482EA4967BBCB598ACAF9470795E 4F573F545C44515942434B36404735434A382F36243D443239412C4F57408D957DB2BAA2BDC6AB D3D6B7CCC49DCFC399CCC49DC9C59FC9C5A2C9C5A2CAC4A0CDC39FD7C9A2CFC097CBBC95D0C49E 696041484427B7B9A1BBBFA8A2A68FA4A690A6A892ABAA95AFAF97B1B199B5B39AB8B499B6B096 B9B497BEB79AC1BB9BC4BB9CC3BA99C1B698BFB496BDB294D6CFB38E8C754B503CC1C9BCC2CEC2 CFDCD2CBD7CBC5CDC0C6CABCCBCDC0D5D5C9D5D6CECED0CBCBD1CFD0D9D6CED7D2CED8D0D0D5CF D2D3CED4D0CDD4CFCBD3D0CBD0D1CBC6CCC2CAD4C9D0DBCDD0DBCDD1D7CBD2D4C9CFCDC1C9C7BB CFCFC3CED0C3CED0C3CED0C3CED0C3CED0C3CED0C3CED0C3CCCEC1CCCEC1CBCDC0CACCBFC9CBBE C9CBBEC8CABDC8CABDD0D2C5C7C9BCC5C7BAC6C8BBB9BBAE9C9E918385787A7C6F9E9A7F98967D 9598837B827047503F232E1E232A1A2A2E1D31331E2D2C17312C165755407E7D69999C8BAAB2A5 98A299A4A9A5ADB2AEB6B8B3B6B9B2B4B7AEB2B8AEB0B7B0ABB6B0AAB6B2A0ACA85E6965161B14 2D271B5D503F77634B9F8A6FB3A284BCAC8B9C8867705C39B39D78B39F7CB3A485BBB198B4B1A0 A6A89BA0A79FA7B1A9B2B9B2B5BAB3BABDB4BCC2B8B6C0B7B5C2B9B8C3BBB6C1B9B1BBB3ACB6AE ADB4ADAEB5AEBDC4BDB9C0B9AFB9B1A4AEA696A1998E99918A978E8A958D969D969A9F99A8ADA7 B1B6B0ADB2ACACB1ABB1B6B0B1B6B0ACB1ABACB1ABA9AEA8A4A9A39DA29C979C96939892929791 A3AAA39FA69F979E979299929198919198918F968F8B928B7B827B6F766F727972787F78727972 7279727E857E848B847D877F7E88807E88807C867E778179737D75707A726F7971667068677169 7A847CADB7AF9BA59D6A746C828C849FA69F8A8D8688898390918B8B8C867879737D7E788D8E88 8A8B8584857F8788828D8E8893948E979892999A94999A94999A929FA2979EA294989C8E929688 979B8DA0A4969EA29494988A9B9F91999D8F979B8D969A8C979B8D9A9E909EA294A0A496999B8D 9C9F8EAAAD9CB5B8A7A5A8978A8D7C8184738B8E7DA3A695A3A695A4A796A3A695A2A5949FA291 9DA08F9B9E8DD6D4C5CECCBDAEAC9D9B998AD7D5C6E6E4D5E1DFD0DBD9CA807E6F828071E0DECF E2E0D1E3E1D2DDDBCC9D9B8CDFDECCBFBCA9CAC8B3E1DECBEAE7D6E0DDCEDEDBCCE5E1D5E5E1D5 E0DED1E9E7DAE6E7D7DFE0D0E1E4D1E8EBD6E3E7D0D9DDC6CACCB4DEE0C8E9EBD5E2E6CFDADFCB DDE2CEDAE1CFD5DCCADCE0CFE2E5D4C9CAB8ABA895AAA391AEA693A99E8AA59A86A39C89CDCCB7 DDE1CAD7DFC7DFECD2E0EDD3DCE6CDE5EAD3C3C1AC827B688075637A6D5C7A6A5A7D705F7D7562 BEB7A4ECE7D4EDECD8DBDDC8E1E4CFE1E4CFE2E4CED6D4BF89816E6A5A4A6B58476D5646634C3C 6E5B4AAFA28FE4DCC7E1DCC6D9D8C4E2E1CFE5E0CDE3DBC8D7C7B7836E5D694F3E6E5342775C4B 634938947F6EE4D5C2E4DBCAD9D4C1D8D7C5AAAA926B6541C4B68FD5C29AD2B991EBCFA8EFD5B2 E8D3B4E2D7BBC7C7AF98A08B909D8B929D8CA4A897D0CDBAE5DAC6E2D8BDE8E5C4B2B391939679 A1A58CCCD1BBDADDCACDCCBADED9C6978C78A596817D6E596B5F49DED7C5F4F1E2F5F7EAE6E8DD E8E4D9E1DDD2D9D9CDDADED0E0E6D8E2EADBE2E8DAE1E5D7EEECE0E4E0D5EEE7DDE8E1D7E6E2D7 E1E1D5E7EDDFAFB8A7C1CDB5E4EED5EBF0DAE6E5D1ECE6D8E9E1D4E4DED2E7E3D7F0F1E3E4E6D8 939685E5E6D4E9E6D5DED5C4DDD0BFDCD4C1DADCC7D5DAC4CBD0BABFC4AEC7CCB6E2E7D1E7ECD6 D3D8C29295807F826D878A75A1A38E6D6F5A504F3B44432F4548354C57472335271C31206D8472 3D54400F25102D3F298A97835C604F3235245A584B51514570766A667163202E21253221848573 E4E1CED8DAC5D8DDC79FA8932A331E353D28646955B8B6A76E6B5C423A2F5D574B504E41656759 6269592734233247363146355B6A57656E59575A473D3C286A6756959384A3A3975A5C4F878B7C 888B7871735B6D6C4D908C67CFC39BDABE96DFBE93DFC092E0C193E0C494E0C695DFC797DEC99A B9A87C6C603866603C4A492A2E31164E533D757E6B6069584042356E6C5F757261555138393313 645C35B3A87BC7BB89C5B381CAB683CFB485DABD91E5C59EA3815E502B0E5331185D4231564032 553E2C59452D6E593ED2BF9ED3C098CEBB90C7B283CCB684D0B683D1B583D3B583CAAA79AE8A58 93693F6933195B220F612D1865351F6339215C381E553619654D2B98825DA6936BB29F74C5B385 C9B583C8B280C9B27EAA976D948776D4CBC4DED4CBD4CABEDDD1C3D9CDBDDACDBCDCCFBCDBCCB7 DBCCB5DCCBB7DDCCBADFCCBBDFCCBDE0CDBEE2CDB8BAA47F988157A48D63B39E73A48F64968358 8F7E5391825BA799749A8D6B97896CC0B49ADCD1BBD6CBB7D7CEBDD1CAB8D5D0BDD3D0BDD5CEBC D6CDBCD8CCBEDBCBBEDCCABEDDC9BEE4CEC1DCC6B8E4CFBEE5D3BFBCAA945A4A309C8E73BFB699 A8A98A797E605E62475F63485E62495C6049636651676A556D705B7C7F6A7C806981856C979B80 9CA085A3A88AC0C19FCDC49DCFC399CCC49DC9C59FC9C5A2C9C5A2CAC4A0CDC39FDACCA5DFD0A7 D5C69FD7CBA56B62433C381BB1B39BC5C9B2B1B39BB4B49CB5B59BB8B69DBAB99DBBBA9EBFBB9E BFBC9DBDB89AC1BB9BC6BD9EC9C09FC9C09FC8C09CC6BB9BC5BA9ABFB496D4CDB196947D494E3A B9C1B4C3CFC3CDDAD0CBD7CBD5DDD0D1D5C7D1D1C5D6D6CAD5D5CDCECFC9CBD0CCD1D7D5CFD9D1 D0D7CFD1D4CDD1D0CBD1CCC8CFCAC6CCC9C4C9C9C1CDD3C9C8D2C7C8D3C5C9D4C6CBD1C5CCCEC3 D1CEC5D6D3CACECEC2CDCFC2CDCFC2CDCFC2CDCFC2CDCFC2CDCFC2CDCFC2CBCDC0CBCDC0CACCBF CACCBFC9CBBEC8CABDC7C9BCC7C9BCCED0C3CBCDC0CBCDC0CBCDC0BABCAF97998C75776A636558 98947997957C989B86919886818A79758070777E6E7B7F6E76786373725D6F6A547F7D688D8C78 9FA291BCC4B7B9C3BAA6ABA7A8ADA9ACAEA9B0B3ACB6B9B0B8BEB4B8BFB8B4BFB9B0BCB8B1BDB9 5D686411160F352F2365584789755DC1AC91B4A385BCAD8C9986657B6744B29E7BB3A07FB8A98C BDB39AB6B3A2B2B6A8B0B7AFACB6AEABB2ABAFB4ADBEC1B8C9CFC5BFC9C0B2BFB6A8B3AB9FAAA2 949E9688928A878E878B928B8F968FA2A9A2A9B3ABA2ACA4919C94848F87839087919C94B0B7B0 A7ACA6AEB3ADADB2AC969B958F948E9499938C918BA6ABA5ACB1ABB4B9B3B9BEB8B9BEB8BABFB9 BCC1BBBEC3BDC4C9C3BFC6BFB6BBB5A9B0A9A8ADA7ADB4ADB0B5AFADB4AD959A94888F888B908A 9299928F948E8E958E979C9699A0998F968F909A92929C948F99918A948C858F87858F87869088 7D877F848E868C968EC4CEC6B2BCB47D877FA4AEA6C0C7C0BEC1BAA9AAA4B0B1ABB3B4AE999A94 9A9B95ADAEA8AAABA5A6A7A1A7A8A2A7A8A2A6A7A1A3A49E9E9F99999A9496978F909388979B8D 95998B878B7D7E8274828678868A7C868A7C969A8C969A8C969A8C979B8D989C8E9B9F919DA193 9EA293979A879699849B9E89A0A38E979A85898C778A8D78969984969984959883949782929580 8E917C8A8D78868974838673AAA899A8A697979586999788D1CFC0D9D7C8DFDDCED7D5C66F6D5E 817F70D8D6C7E0DECFE3E1D2D4D2C39E9C8DE1E0CEE5E2CFE4E2CDEBE8D5EAE7D4DFDCCDDEDBCC E4E0D4E3DFD3DAD8CBD9D7CAE1DFD0E3E4D2DFE0CEE1E3CEE2E4CEDADCC6E8E8D0E6E6CEE3E2CD DFE1CBDFE2CFE0E5D1DFE6D4DDE4D2DDE1D0DEE1D0E2E3D1E7E4D1EAE3D1F0E5D3EFE2CFE5DAC6 D1CAB7DFDDC8DEE0CBD9E1C9DDE9D1D9E6CCD2DCC4D9DEC7D9D8C4BBB4A1C2B6A6C1B6A4C0B4A4 BDB5A2B7B09ED7D2BFE7E4D3EBEAD8DFE0CEE1E4CFE1E4D1E3E5D0DAD7C4A49D8A887B6A897868 8973657D6A59867764B6AB97DCD7C1DBD9C4DDDCC8E5E2D1E7E2CFDED6C3C7BAA9746351594431 523D2A5843304937237E6D5BD3C6B3E2D9C8DCD7C4DBD8C7B0AE976B6541C3B78DD5C298D2B991 EBCFA8EFD5B0E8D4B3E2D7B9C4C4AC9BA08A8F98858D9683A2A592CFCAB6E6D7C2EBDBC1D6CEAA ADA783999677A6A589C1BFA8D3D1BAD7D1BBD8CDB7D8C9B2DCCBB19F8E74796950DCD1BBE1DAC7 DAD8C9D2D0C3EAE6DBEEEADFEBEBDFE6EADCE2E8DAE1E9DADFE5D7DCE0D2DDDBCFDAD3C9F0E7DE EBE4DAE7E3D8E5E5D9E8EEE0B7C0AFBDC7AFEBF3DBECEED9F0EDDAF1E9DCD8D0C3DBD3C8E5E1D5 DFE0D2E1E3D5929685C9CCB9D0CFBDDAD5C2DED6C3C1B9A6B4B19EA0A28D868976666B556E735F ACB49DCFD8C3B4BEA62E362129311A5C614D8F927D3C3B290A0700211B0B323321374231273A27 283D2A738B7548604A2339223B4D358F9D8479816A4245326768585758486F76666974631E2F1D 24311F828371E2DFCCD7D9C4D8DDC7A0A9942A362037402B686D59BAB8A96F6C5D413B2F5D574B 4F4D4066685A636A5A2936252C41302F4433586553636B565C5E4941402C6B68559A9987A5A698 57594B86887A8E917E68684E54533487835ECFC19AD9C097E0BF94E0C193E0C193E0C494DFC594 DEC696DDC899BBAA7E6A5D3358502B4542212F2F1354583F797E686E735F494738605A4C756E5B 635C42372E0D5F532DB7AA7DC4B483CFBB89D4BD8BD3B889DFC094DFBD97997551542D0E563116 6647325F432E5C402A60462B6E5536B09872B7A076C5AD7FCAB07FCDB27DCEB07CCDAE78CAA672 B08C58805824532700642F0F5C24095C290E5D3013582F11512E0E5234125D451F69532A857247 A08E60BCA778C0AA78C0AB76C9B27CB09D72908370D2C9C0DED4CAD5CBBFDDD1C3D8CDBBD9CCB9 DBCFB9DBCCB5DCCCB5DCCCB5DDCBB7DECCB8E0CBB8E0CBBAE1CBB4CFB896AA956AB19B72A49166 9380569180557E6F4683754E998B689C8F6DA19678C7BBA1DCD1BBD6CBB7D8D0BDD3CCBAD1CCB9 D0CDBAD2CDBAD4CDBBD8CCBEDACCBFDDCDC0DFCDC1DBC8BAD7C4B5DFCCBDDECDB9BDAD9657472E 897B60B4AB8CB8B596A1A2829D9E7FA3A485A6A68AADAD93B4B49AB2B29AB0B098B8B89EB8B89E B6B69AB5B697A7A888A8A989C2BF9CCDC49BCFC399CCC49DC9C59FC9C5A2C9C5A2CAC4A0CDC39F C8BA93D6C79ED1C29BDDD1AB7C7354433F22ADAF97CCCEB6BDBDA3BFBEA0BFBEA0C0BFA1C2BFA0 C3C0A1C3C09FC5C0A0C3BD9DC5BF9DC9C09FCAC29ECAC29EC9C19CC9BF9CC7BD9AC1B698D2CBAF A19F8A454A36ACB7A9C5D1C5CAD7CDCAD6CACAD2C5C7CBBCC9CABCD5D3C6D9D6CDD4D4CCD1D3CE D4D9D5D0D7CFD2D8CED6D7D1DBD8D1E1D9D6E3DCD6E3DED8E0E0D8D0D3CABFC7BCB6C1B3BDC8BA C7CDC1C9CBC0CDCAC1D1CEC5CDCDC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CACCBF CACCBFCACCBFC9CBBEC8CABDC7C9BCC7C9BCC6C8BBCACCBFC9CBBECBCDC0CDCFC2C6C8BBB6B8AB A3A59897998CA6A287A4A2899DA08B9CA391A3AC9BA2AD9D9BA292969A899A9C87A09F8A9F9A84 9E9C8791907C929584AFB7AAB5BFB6B9BEBAB3B8B4B1B3AEB4B7B0BABDB4BAC0B6B7BEB7B1BCB6 ABB7B3AEBAB658635F1A1F183F392D574A39735F47AF9A7FB2A386B8AB8B90805F847150B39F7E B29F7FBAAB8EB8B099AEAD9BAEB2A4ADB4ACA8B1ACAAB1AAB2B7B0BFC2B9C4CAC0AAB4AB909D94 7A857D6F7A7268726A646E667077707F867F7E857E9BA29BA8B2AAA7B1A99FAAA2909B9389968D 99A49CB0B7B0A3A8A2A1A6A0979C9680857F7E837D848983797E786469636D726C797E78828781 898E888F948E959A94999E989A9F99A0A59FA0A29D979C969EA09BAEB3ADBEC0BBBEC3BDAAACA7 999E989FA19CABB0AAB0B2ADADB2ACAEB0ABA7ACA6A7AEA7AAB1AAACB3ACA9B0A9A4ABA4A0A7A0 9FA69FA1A8A190979099A099979E97C1C8C1B7BEB7949B94B6BDB6BCC1BBCED1CAB5B6B0BDBEB8 C7C8C2B4B5AFB5B6B0C7C8C2C4C5BFD0D1CBD0D1CBD0D1CBCFD0CACBCCC6C5C6C0C0C1BBBDBEB6 ADB0A5BBBFB1BEC2B4AEB2A49DA1939CA092A3A799A8AC9E93978995998B989C8E999D8F989C8E 94988A9094868D9182929580949881989C859B9F88969A8391957E979B84A1A58EA6AA93A6AA93 A5A992A4A891A1A58E9DA18A9A9E87989B86989785969485848273949283D0CEBFD1CFC0DEDCCD D8D6C78B897AA19F90DCDACBE0DECFE4E2D3CCCABBA2A091E5E4D2E8E5D2E3E1CCE6E3D0E7E4D1 E0DDCEE4E1D2EAE8DBE8E6D9EBE9DCE5E3D6E9E7D8EDECDAE6E5D3E2E1CDE3E2CDDFDDC8EEECD5 E5E3CCDEDDC8DDDFC9E0E3D0E1E6D2DEE5D3DEE5D3D3D7C6C8CBBAD0CFBDDFDAC7E2D9C8EADFCD F4E5D2EDE0CFEEE5D4E7E4D1DFE0CEDDE2CCDCE5D0D3DFC7CED7C2D4D9C3E4E3D1E0DBC8E6DDCE EBE2D1EAE1D2E4DDCBDDD7C7E2DFCEDEDBCAE8E6D7E4E5D5E2E5D2DDE1D0DFE2CFE1E0CECDC6B4 D6CABADACABBD6C4B6CBBAAAC7BCAADAD3C0E6E5D0E2E1CCDEDBC8E6E0D0E8E1CFE0D8C5D2C7B5 978A778E7F6A85766183745F756953978A77D8CDB9E3DAC9DFD8C6DDD7C7B4AE966B6640C3B88B D5C297D1BA90EBCFA7EFD5B0E8D4B1E4D7B7BAB89F9CA089959D88969A89ACAB97D0C8B3E0CEB8 E9D5BAE6D6B2D5C7A0CFC5A2DAD1B2DCD5B9E1DAC0E8DEC5DED0B5E5D4B8E6D3B5A18C6F7A6749 E2D4B9E7DDC4E7E2CEEFECDBD8D2C6E9E3D7EDEBDEE1E3D5DCE3D3E5EEDDECF3E3ECEEE0F1EDE1 E5DFD3FAF2E7EBE3D8E5E1D5EAEBDDEFF3E4C5CCBABABFA9D9DDC6A8A79396917E958B7F867C70 B9B1A6E5DFD3EBECDEE7EBDC777E6C707561686B588988748E8975443D2B37312133301F353626 2A2D1A3E45339DA993D6E3CFB3C2AB29362216220C515846A4A7945553441F1909382E223B3829 3B473330432D253B24637B613A54391E371A3C503498A68C7078602F331C5D5F4A4E513E6A715F 717D69293A27303D297D806DDEDDCBD5D8C5D7DFCAA0AC982B3723363F2C646B59B8B9AB6E6A5E 403A2E5A564A4D4D41666A5C666E5F2E3B2A283D2C2E43324E5B49535B4655574142402B6C6753 9A97849694854C4F3E7B7E6D8588735353393633147A7450D0C29BDAC198E0C195E0C193E1C294 DFC393DFC594DDC595DCC798CAB88A776A405E552E56522F43422368684E81836B7E806A635E4B 645C49756A546A5F433A2D0B5F5029BFAE82D3BE8FD2BC8BD9BF8ED0B485D7B88CCEAD848F6C46 5F3817613A1B623F235D3B2055331757391760421C876A40997D4EB69A68CDAF7BD1B27BD4B37D D6B37BD4AD74BA935A875C255A2C00643009612C0A592807582C09542C084F2D07593C1461481F 816A3E9C875AB49F70C7B381C5B07BC1AC75CBB47EB6A1768B7E6BCFC6BDDED4CAD6CCC0DED2C4 D8CDBBD9CCB9DDCEB9DCCCB5DCCCB3DDCBB3DFCAB5DEC9B4DFC9B4DFC9B4DFC9B1DDC6A4BAA77D B29F7794835883714985764D77683F80724B786A47928565A99E80CCC0A6D6CCB3D0C5B1DACFBD D6CEBBCDCAB7CECBB8D1CBBBD3CCBCD6CCC0D9CDC1DBCDC2DECEC1D8C8B9D9C8B8E1D0C0DDCCB8 C5B59E594B317B6D52B2A789A8A280A9A580B2AE8BB5B090B2AD8DBBB698C0BB9EB7B295B9B497 BAB598BDB89AC3BE9EC6C1A1BFBB98BFBB98CDC8A2CFC399CFC399CCC49DC9C59FC9C5A2C9C5A2 CAC4A0CDC39FCABC95D1C299D1C29BDCD0AA8980614F4B2E9FA189CDCFB7C1C0A2C3C09FC4C1A0 C4C19EC5C19EC5C19EC5C19EC6C09CC4BE9AC5C09AC8C09BC8C09BC8C09BC7BF98C7BD99C6BC99 C3B89ACFC8ACACAA95424733A0AB9DC5D3C6C8D5CBC9D5C9D4DACCCBCDBFC8C6B7CCC9BACBC7BC C1BEB5B9B8B3B8B9B3B1B4ABACAFA4A4A49C9B978E918883857C7578746B7070665B5E53555D50 6570628E998BB7BFB2CBCEC3CFCFC5D0CDC4CDCDC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1CCCEC1 CCCEC1CACCBFC9CBBEC9CBBEC8CABDC7C9BCC6C8BBC6C8BBC6C8BBC8CABDC7C9BCC5C7BAC2C4B7 C2C4B7C0C2B5B9BBAEB1B3A6B2AE93B2B097A0A38E919886969F8E929D8D848B7B7D8170888A75 9796819F9A84A2A08B908F7B898C7B9FA79AA0AAA1A2A7A3999E9A949691969992999C93959B91 8F968F88938D77837F7D8985343F3B171C15494337605342847058BEAA8FB2A489B4A98B867756 897957B3A07FB1A180BCAE93B6AE97B4B3A1AEB1A6A5AFA7A6B1ABB3BDB5BFC4BDB9BCB3A7ADA3 9CA69D87948B7F8A8288938B8E98908B958D949B94A3AAA3A3AAA3B5BCB5B1BBB3B0BAB2B8C3BB ADB8B09DAAA1A6B1A99DA49D9DA29C9BA09A939892949993A7ACA6B3B8B2ABB0AA7D827C7F847E 818680828781828781828781848983858A84666863797B7682847F7D7F7A81837E979994A7A9A4 A9ABA6ABADA8A4A6A1B2B4AFC8CAC5CDCFCACACCC7C6C8C3BEC0BBBBC0BABCC3BCBEC5BEBFC6BF BDC4BDBCC3BCBBC2BBBBC2BBB3BAB3AFB6AF9DA49DA7AEA7A4ABA4A3AAA3C6CDC6C7CCC6C8CBC4 B3B4AEB5B6B0BEBFB9B4B5AFB4B5AFBEBFB9BDBEB8C1C2BCC4C5BFC9CAC4CDCEC8D0D1CBD1D2CC D0D1CBD0D1C9BBBEB3C4C8BAC6CABCBCC0B2B6BAACB9BDAFBCC0B2BBBFB1B6BAACB8BCAEBABEB0 B9BDAFB4B8AAABAFA1A2A6989CA091A0A38EA6AA91ACB099AAAE95A0A48D969A81959982989C83 989C85999D84999D869A9E85999D86989C83969A83959982ADAC9AA8A697848273989687DDDBCC D5D3C4DFDDCEDDDBCCC5C3B4D2D0C1E7E5D6E0DECFE5E3D4C9C7B8A9A798EAE9D7E6E3D0E0DEC9 E3E0CDE5E2CFDFDCCBE3E0D1E8E6D9E4E2D5DFDDD0DDDBCCDEDBCCE2DFCEE8E3D0E7E2CEE6E1CD E7E2CEEAE5CFE5E0CAE0DEC9DFE1CBDFE2CFDCE1CDD9E0CED8DFCDC2C6B5BABDACC5C4B2D9D4C1 E0D7C6E6D9C8EBDAC8E5D5C5EFE3D3E4DECEDFDECCDEE3CFD9E2CDD2DEC8D4DDC8DADFCBD5D6C4 DEDBCADCD5C5E1DACAE1DACADAD4C4DDDAC9D6D5C3D8D5C6E3E1D2E5E6D6DFE2D1DBDFCEDDE0CF E2E0D1E5DFCFEEE2D4F3E6D6F2E2D3E8DBCBE4DBCAE3E1CCDFE1CBDBDDC8DED8C8E0D9C9E4DDCB E4DDCAEBE3D0D4CCB7E7DFC8E4DCC5DFD7C0CFC7B0D2CAB5EBE3CEE5DCCBDDD6C4DAD3C3B0A891 6B6640C3B88AD4C395D1BA8EEBD0A5F1D5AEEAD4AFE5D6B7C5C1A6B5B7A1B8BDA9B9BCA9CEC9B6 E4D7C4E6D0BBEED6BAEAD4AFE5D3ABDED0ADE9DCBCE5DABEE1D7BCEEE2C8E7D8BBDDCAACEAD5B6 A59071786545E2D3B6E6DCC1E1DCC6E8E5D2E8E0D3EDE7DBE8E6D9DCDED0D9E0D0E2E9D9E8ECDD E6E8DADDD9CDB9B1A6C0B6ACADA59ABBB7ABD9DACCE4E8D9C0C4B3C3C6B1CFCEB95F5A472B2412 2C2014372B1FA49A90F2ECE0D9DACCD5D9CA545D4A27301B2C311D74776291907B35301D312A1A 352D20464334353827343D2A909D89C9DBC59AAD973A4C3623321D59624FB6BAA9676455251D10 3C2E23352D204A5642314730243A236D856B4963481B3417364A2EA1B1947F876F343922686A55 5558436A725D717D671F311B212E1A787B68DBDAC8D5D8C5D9E1CCA1AD99293622323B285E6553 BABBAD6F6D60413B2F5955494D4D41676B5D676F602F3C2B2B3D2D324434444F3E3E432D494833 423D276A654F97927E9B9A885C5D4B80816F8587715251352A2706746C47D1C49ADCC498E1C296 E1C294E1C294DFC393DEC493DCC494DAC596C8B68878693E5B4F275A522D3E3919514E2F535236 524E35524731594A336D5D43736244523F1E69562EB9A477D2BC8BCFB584D6BA8AC2A375BC9B6E AA875D78522B5D35125D3512562F0E563210512D0958361067461B7D5E309A7C4AC3A56FCEAF78 D4B57CD9B67CD9B579D7B075C69E61A1773B80531C6737096B3A0F603309663C126B461A704F24 85683C887042A99362BAA674C6B07FD0BA88C9B47DC6B077CFB67EB7A275877B65CDC5BADED4C8 D8CFC0DFD3C3D8CDBBDACBB8DCCDB6DCCCB5DCCCB3DFCBB3DECAB2DEC8B1DEC8B1DFC6B0DDC8AD D7C3A0C0AE88AB99738C7D567B6C4576684172643D7B6F49897C59AA9D7DBFB496D5C9AFD6CCB3 CEC3ADD7CCBAD1C9B6CAC7B4C9C8B4CBC8B7CEC8B8D0C8BBD2C8BCD5C9BDD6C8BDD6C8BBDBCBBC E2D2C2DACBB8CDBEA961533977694FBBB092B0A883BDB58EC7BF9ABCB48FB2AA86C2BA96CEC5A6 C3BA9BC8BFA0C2B998C1B897C5BD99C6BE99C4BC97C1B992C1B88FCFC399CFC399CCC49DC9C59F C9C5A2C9C5A2CAC4A0CDC39FDED0A9D3C49BD2C39CC3B7916E6546322E11696B53B1B499C2BF9E C3BF9AC4BF99C4C09AC5C09AC6C19BC6C19BC6C19BC5C09AC5C09AC6BE97C6BE97C5BD96C4BC95 C4BC95C5BB97C5BA9CCCC5ABB6B49F3F433295A092C7D5C8C6D3C9C8D4C8BDC3B5A3A695878674 7A7464756F63726E6378756E7F7F7767695E6A6A5E716D627871677F756C847A71867F77858279 97998E929A8D9AA597B0BBADC6CEC1CFD2C7CACAC0C3C3B9CCCCC0CBCDC0CBCDC0CBCDC0CBCDC0 CBCDC0CBCDC0CBCDC0C9CBBEC9CBBEC8CABDC7C9BCC6C8BBC6C8BBC5C7BAC5C7BAC6C8BBC8CABD C5C7BABFC1B4BFC1B4C0C2B5B9BBAEAEB0A3A39F84B1AF96A1A48F888F7D868F7E848F7F838A7A 8B8F7E7D7F6A878671918C76A09E89A1A08CA2A594B3BBAEACB6ADB5BAB6ABB0ACA7A9A4AAADA6 ADB0A7A5ABA19DA49D97A29C8E9A968D99953C47431B2019453F335B4E3D847058B29E85B7AB91 B4AB8E7F72528B7C5BB1A180B3A485BFB399B7B19BBBBCACB3B9ADA9B3ABA8B3ADB7C1B9C4CBC3 BABDB4A0A69C8690877582797681798A958D939D958A948C899089939A93979E97A5ACA597A199 8F99919BA69E919C94818E858E9991A3AAA3AFB4AEA3A8A2929791A0A59FB9BEB8BCC1BBB1B6B0 979C96949993919690919690949993989D979BA09A9DA29C82847FA0A19CAFB0ABA5A6A19D9E99 A7A8A3ADAEA9A8A9A49899949FA09BB9BAB5CCCDC8C1C2BDB2B3AEACADA8A8AAA59A9F999CA39C A2A9A2ABB2ABB5BCB5BCC3BCBFC6BFC0C7C0C8CFC8BBC2BBADB4ADA3AAA39FA69FB3BAB3CFD6CF D5DAD4CFD2CBC3C4BEBCBDB7BFC0BAC0C1BBC0C1BBC2C3BDC5C6C0C6C7C1C7C8C2C7C8C2C6C7C1 C3C4BEBEBFB9B9BAB4B6B7AFB8BAAFBDBFB2BCBEB1B6B8ABB8BAADBFC1B4C0C2B5BABCAFC7C9BC C8CABDC8CABDC6C8BBC3C5B8BEC0B3BABCAFB7B9ABAEB19EBBBFA8C5C8B3C4C8B1BCBFAAB8BCA5 BABDA8BDC1AAC6C9B4C4C8B1C1C4AFBBBFA8B4B7A2ADB19AA7AA95A3A691A4A3919F9D8E6C6A5B 898778E3E1D2DAD8C9E2E0D1E6E4D5E3E1D2EAE8D9E6E4D5DDDBCCE9E7D8CAC8B9ADAB9CE6E5D3 E5E3CEDFDDC6E3E1CCE4E1CEDCDBC9DEDDCBE3E1D2DFDDCEE7E4D5E9E6D7DAD4C6D3CDBDE3DCCA E6DFCCE3DBC8EDE5D0DCD4BFE1DBC5E3E1CCE2E1CCDEDFCDDBE0CCDAE1CFDBE2D0B7BBAAB9BCAB C5C4B2DAD5C2EDE1D1F2E2D2EFDCCBEAD9C9E7D9CCDFD7CAE2DFD0E0E3D2D5DCCAD3DCC9DAE1CF E0E4D3D7D8C8E7E4D5DCD4C7E4DCCFE4DCCFD9D6C7E7E5D6DAD8C9DCD8CCE0DCD0E1DFD2DADCCE DBDFD0DCDFCED8D9C9E1DECFDBD1C5E2D4C7DFD1C4DBCFC1DCD5C5D7D6C2D0D5BFD4D7C2E3DDCD E0D7C8DFD6C5DAD3C0E1DAC7D5CFB9ECE8CFE2DEC5E2DEC5DBD7BED7D1BBDED8C2D8CFBEDBD2C1 DBD2C3B0A8916B663EC1B98AD4C395D1BB8CEBD0A3F1D5ADEAD4AFE5D6B5DAD5B8D3D3BBD6D9C4 D1D3BEDED7C4EBDCC7E7CEB8F2D7BCEBD3AFE9D5B0D5C5A3DACDADD2C6ACB7AD92B0A48AA09277 948367C6B3939784646B5A3CE5D7BCF7F0D6EDE8D4E1DECBE9E1D4D4CCBFC8C5B6D6D7C7E4E8D7 E1E5D4D5D9C8D1D2C28A84764C44374B41354F45398F897BD7D5C6E5E8D7BDC0ADBDBCA8DBD6C2 68614F3B2F1F3C2E233D2F24A99F95EEE8DCF0F1E3E9F0E067735F27331D262F1A767B659FA18B 3F3C292F2519342A204F493D3B3C2E2B34238B9A87D6E9D5ACC2AD283E291F301D596453BCC0B1 6C685C261C1246352D463C32414A39283E27213720758D735670551D36192B3F2498A88D858D76 313620696B56545744666D5B707C681C2D1A1C2915737663D9D8C6D5D8C5DBE3CEA2AE9A273420 2C3522555C4AC1C2B4747265443E325A564A4B4B3F64685A636B5C2C3928293A2A384635424B38 33372045432C453F276761498B856D94927D5E5D4974735F7D7D655C583D322D0D766C48D1C299 DCC498E1C296E1C294E1C294DFC393DEC493DCC494DBC594C5B08179683C5B4E24625630423A15 4A4422403A1A40371A4E3E24634F3475624287735279633E7A633AAD9567CDB283D0B484DBBC8D BD9D6EAA885B937144704B216B441D68411A59340A6340166240136C4C1D7F5F2E886835A68852 CFB278CFB276D7B97BD9B97CD3B172CDA96BC59F60B38D4EA1793C8C612C946936885E2C936E3A 9E7D4AA68856BFA373BEA473BFA876C6B17CC6AF7BCDB680CAB37DCCB37BD2B981B7A273847860 CCC5B5DFD6C7D9D0BFDFD3C3D7CCBAD9CAB7DBCCB5DDCDB6DCCCB3DFCBB2DECAB1DEC8B0DDC7AF DCC6AEDCC7AAE0D0AEDBCDA8BFB18CAD9F7A9C8E69857953867A548B7E5BBEB18FD0C5A5D1C6A8 D6CAB0D3C7AFCEC2ACD3C8B6C6BEABC4C1AEC3C2B0C4C1B0C7C1B1C7C1B3C9C1B4C9C1B4CAC0B4 CABEB0CEC1B1D3C6B5C8BBA8C5B9A35E523870644AC3B898B1A57FC4B88EC9BD95B0A47CA1956F B9AD87CEC19FC5B896CEC19FCBBE9BCCBF9CCBBF99C8BC94CDC199CFC399C7BB91D0C397CFC399 CCC49DC9C59FC9C5A2C9C5A2CAC4A0CDC39FDACCA5C6B78ED1C29BA79B754A4122110D00383A22 A6A68AC0BC99C2BD95C5BD96C4BF97C7BF98C8C099C9C19AC9C19AC9C19AC8C099C5C098C3BE96 C2BD95C2BD95C2BD95C4BC97C6BB9DCAC3A9BEBCA73D41308C9789C8D6C9C4D2C5C8D4C6C0C7B7 A5A8958A8774827B69857E6E8D8578999288A39F94A8A699A9A79AADA79BB0A69CB4A79EB5A89F B3AAA1B1ADA2A3A598B0B6A8BDC8BAC3CEC0C5CDC2CBCEC5D0D0C8D2D2C8CBCBBFCACCBFCACCBF CACCBFCACCBFCACCBFCACCBFCACCBFC8CABDC8CABDC7C9BCC7C9BCC6C8BBC5C7BAC4C6B9C4C6B9 C2C4B7C8CABDC8CABDC2C4B7C2C4B7C6C8BBBEC0B3AFB1A4A29E83B9B79EA7AA957D8472697261 5E6959646B5B797D6C75776274735E77725C8E8C77A2A18DB0B3A2C1C9BCB4BEB5C2C7C3B8BDB9 B4B6B1B6B9B2B5B8AFAAB0A6A0A7A099A49EA2AEAA9DA9A545504C1F241D474135695C4B9D8971 C3AF96BDB199B4AD93796E528C7F5FB0A182B4A689C4B89EBAB49EB4B5A5B4BAAEAEB8B0A9B4AE B4BDB8C5CCC4C8CBC2BAC0B699A59B7D8A816F7A7277827A79837B6F79717279728188816B726B 8289827781796A746C6F7A72626D6559665D727D75AAB1AABFC4BEACB1AB939892A8ADA7C3C8C2 BCC1BBAEB3AD9EA39D979C968F948E8C918B8F948E949993979C96989D97969792B9BAB5CDCEC9 BEBFBAACADA8ABACA7A8A9A49D9E999A9B96A9AAA5C8C9C4CECFCAACADA88A8B8680817C7E807B 727771767D76818881949B94A8AFA8B9C0B9C1C8C1C4CBC4B4BBB4B0B7B0BDC4BDB8BFB8B1B8B1 BDC4BDC3CAC3C7CCC6C5C8C1C1C2BCB6B7B1B7B8B2C5C6C0C8C9C3C9CAC4D1D2CCD7D8D2D8D9D3 D9DAD4D9DAD4D6D7D1D2D3CDCECFC9CBCCC4BCBEB3C4C6B9C4C6B9BBBDB0B9BBAEBFC1B4C2C4B7 BFC1B4C1C3B6C0C2B5C0C2B5C0C2B5C2C4B7C5C7BAC9CBBECBCDBFBDC0AFC8CBB8CED1BEC7CAB7 BCBFACBBBEABC2C5B2C7CAB7C0C3B0C1C4B1C2C5B2C2C5B2C1C4B1BFC2AFBEC1AEBCBFACBBB9AA B4B2A3716F608A8879EBE9DAD9D7C8D8D6C7DCDACBDCDACBE5E3D4DAD8C9D9D7C8EEECDDCCCABB ACAA9BDDDCCADCDAC5D8D6BFDEDCC7E2E0CBDDDCC8E1E0CEE8E6D7E5E3D4E4E1D2E2DFD0BDB7A7 A29B89B0A895B4A997ADA08DBAAD9ACEC3AFDAD2BDE5E0CCE3E1CCDEDFCDDFE2CFE3E7D6E4EBD9 B5B9A8B5B8A7B4B3A1BFB8A6D7CABAE3D2C2E7D2C1EBD8C9E5D5C8E0D6CAE8E2D4E3E4D4D3D7C6 CFD8C5D9E0CEDEE2D1D5D6C6E9E6D7DCD4C7E9E1D4E9E1D4DAD7C8EAE8D9D8D6C7E3DFD3DEDACE DAD8CBD4D6C8DEE0D2DDDFD1CECFBFD5D2C3E5DBCFE8DCD0E2D4C7DED2C4DFD9C9D8D9C7D5DAC4 DDE2CCDCD5C5DACEC0DAD1C0D6CFBCDED7C4D2CDB7E4E2C9D1CFB6D8D6BDDCDAC1DAD5BFDAD5BF D3CAB9D7CEBDD6CABCA79C866B663EC1B988D4C395D1BB8CEBD0A3F1D6ABEAD4AFE5D6B5E2DBBF DADAC2D7D9C4CAC9B5D0C8B5DAC9B5D8BEA7E8CDB2ECD4B2D3BF9C96876684795B7E775D6D654E 726B516F654A817358CABB9EA394756B5D40DBD1B6ECE6CECBCAB6A7A694746D5D554E3E5E5B4C A3A492E1E4D3EBEEDBE1E4D3E3E2D08983753930212E22163B3223978F82EEEBDAF1F2E2BABBA9 B8B5A2E1DAC7726656483B2B4B3A3045372CAFA299EAE4D8DEDFD1DEE5D56A76622E3C252A3620 778169A8AC954A4935352B1F3E31285C564A454638293221869582D4EAD5ACC4AE2F4731243723 53604EB5B9AA6965591E140A38251E31271D3840312A3D291E341F69816950685020381E2F432A 95A38A9AA28D4043307475635A5D4C6A7161788372283625283523717262D7D6C4D6D9C6DCE4CF A3AF9927331F28311E515544C7C8BA7A766A4741355B574B4A4A3E6165575F6758283323233120 394634454D3834361E4C462C4C4529665C417E775B6F69513F3A244F4D366460475A55373C3312 7B6F49D4C398DFC499E2C397E1C294DFC394DEC493DEC493DBC393DAC493D2BD8E8B794B726135 83744B6B5D367A6E487366437B6D4A826E4D947D5B957D599B835D917850856D41AC9164D5B989 D9BA8BE6C697C6A476AF8D5F9D784B876236916C428F6A3E8864349675429574419A7B45A88A54 A1844CB79D62DBC184CFB578D7BE7ED9BD7ECFB171C8A969C6A766C4A262BE9B5BAC8449B58D52 A37C43AA874FB2915BB59761C9AE79BFA670D2B983D1BA84C9B27CCDB77ECEB57DD0B77ED4BB82 B6A17282775BCBC4B2DFD6C5D9D1BEE0D5C3D7CCB8D7CAB7DBCCB7DCCDB6DCCCB3DDCBB3DBCAB0 DCC8AFDBC7AEDAC6ADD8C7ABD2C3A4E0D3B1CFC5A2D9CFABD9CFABC5BB97D6C9A6D9CFABD5CBA8 DBD0B0C9BEA0C5B99FC7BBA3C9BDA7CFC4B0BCB4A1BFBCA9BEBDABBEBDABBFBCABBFBCADC1BBAD C1BBADC2BAADB8AEA2BAB1A2BDB4A3B2A793B7AC96564A32695D43C4B999C3B58ED8CB9FDACDA3 B8AB81A4966FBEB089D5C7A2CCBE9BD0C29FD2C49FD6C8A1CEC099C4B78DCCBF93D3C69ACABD91 D0C397CFC399CCC49DC9C59FC9C5A2C9C5A2CAC4A0CDC39FD8CAA3C7B88FE6D7B0B6AA84584F30 2925084D4F37D7D7BBC0BA96C3BC92C4BD93C6BF95C8C197C9C298CAC399CBC39CCBC39CC8C39D C6C19BC4BF99C3BE98C1BD97C3BE98C3BD99C7BCA0C8C0A9C2BFAC3C402F879284C9D7CAC3D1C4 C7D4C3D2D9C7C5C7B2BEB9A5C0B8A5C0B4A4B1A5979F958B968E83958F81908A7A877E6F7C7062 6E6055615348544A404C463A727266999F91BFCABCC8D3C5C1C9BEC2C5BCCBCBC3D2D2CACACCC1 CACCBFCACCBFCACCBFCACCBFCACCBFCACCBFCACCBFC8CABDC8CABDC7C9BCC6C8BBC5C7BAC5C7BA C4C6B9C4C6B9BDBFB2C5C7BAC5C7BABEC0B3C0C2B5C6C8BBC0C2B5B1B3A6AAA68BB4B2999C9F8A 7E8573636C5B5D68587E85758B8F7E61634E81806B8D88728B89749C9B87BBBEADAAB2A5B3BDB4 BABFBBB8BDB9C0C2BDBBBEB7ABAEA5A5ABA1ABB2ABA7B2ACADB9B594A09C3C47431419125F594D 695C4BAD9981BDA990C1B79EBAB49C746A4F8E8367AFA184B0A589B7AD94BCB7A3B6B8AAB3BBB0 B3BEB8B7C2BCBCC5C0C2C9C2C6CCC2C7CDC3B5C1B793A09795A0988E999197A199ADB7AFA3AAA3 9FA69F8F968F9097907D877F848E866B766E58635B5E6B629CA79FC6CDC6C2C7C1B1B6B0A8ADA7 B0B5AFB3B8B2B4B9B3BBC0BABABFB9A1A6A09499939A9F99A5AAA4B0B5AFAAAFA9959A94AEAFAA C1C2BDC5C6C1C4C5C0B9BAB5B9BAB5BDBEB9A1A29DA7A8A3C7C8C3BDBEB99D9E999697928D8E89 8B8C87A2A49FA3A8A29CA19B959A94959A949A9F99A3A8A2B2B7B1C0C5BFB6BBB5B4B9B3B9BEB8 B4B9B3A8ADA7AEB3ADC1C6C0CACFC9B6B9B2A3A49EC1C2BCBBBCB6A6A7A1BDBEB8D0D1CBDEDFD9 D0D1CBC7C8C2BDBEB8BDBEB8CACBC5D8D9D3DBDCD6D6D7CFC6C8BDB6B8ABB2B4A7C2C4B7D0D2C5 D0D2C5CED0C3CFD1C4CDCFC2C8CABDC6C8BBC9CBBECCCEC1CBCDC0CBCDC0CCCEC1CFD1C3BDBFB1 BBBDAFBEC0B2B2B4A6AAAC9EB0B2A4B6B8AAB4B6A8BFC1B3C0C2B4BFC1B3C3C5B7BEC0B2B6B8AA B8BAACBBB9AAA6A4958B897AA6A495DCDACBE7E5D6DAD8C9D9D7C8EFEDDED8D6C7E4E2D3D6D4C5 EFEDDEC8C6B7C3C1B2C9C8B675735EB4B29BE2E0CBE5E3CEDDDCC8DAD9C7D8D6C7DCDACBE8E5D6 E3DDCF999282675E4D6F62517161516E5D4B6A5947897C69DFD4C0F2EBD8E3DECAE1E0CEDDE0CD E2E6D5E4EBD9C5C9B8BABDAC9592817069579487779A87789D8676A18A7CA59588E2D8CCECE6D8 DFE0D0DDE1D0CDD4C2D0D4C3DCDFCED6D4C5B4AEA0C7BDB1CBC1B5C6BEB1CAC4B6C4C1B2DFDDCE DDD9CDE4E0D4DAD8CBD4D6C8D2D4C6DBDDCFE5E6D6CCC9BAD8CEC2E0D4C8E8DACDE8DCCED4CEBE DDDECCCCD1BBD7DCC6E2DBCBDACEC0E4DBCADBD4C1DED7C4D5D0BAE5E3CAE3E1C8DEDCC3E6E4CB D7D2BCD1CCB6D9D0BFDDD4C3D7CBBDB2A7915F5A32BBB382CEBD8FCAB485ECD1A4F3D8ADD5BF9A B2A382BAB397ABAB939FA18C797864756D5AAB9A86D6BCA5E8CDB2E7D2B3D7C7A6B6AB8F918A70 7F7A64817F6A8987728D8872C4BDA3ECE2C7857B6070664DDED8C2EEEBD8D6D8CA898A7C342D1D 3B32213D3727A7A692E7E8D6EBEED9E0E1CFD8D5C2A29B8B463D2C413527433727A19889E8E5D2 BBBCAA90927DB8B39FD7CFBC8073633C2C1D402F2547362CB1A49BE8E2D6E1E3D5DEE7D6687561 2A382128361F6C7860B5BAA34B4A363E34283A2D244A443837382A2A332283927FCBE1CCABC3AD 38503A182B17515E4CB2B6A76C685C271D1334211A41342C3F45393344341D3221667D694C634F 1A301B23351F94A28BA2A9973538276162545657496367598590802634251F2C1B6F7060E5E2CF CCCEB9D5DAC4AFB9A12E37222E3621545744BCBAAB827F70504A3C5C56484D4B3E5355476E7565 2D38273641303A432E4E523B4443274940233D32125649294C4123362C113F381C342F12443D20 6C634272654284754EC3AD84D9BE93DEBF93DEC293E0C495DFC495DDC293D9C290D6C08EC7B381 B6A1729C8A5C8A774C806F447B694176643C7360386E572E7559327D61398B6F479F8258B4976B C7AB7CD5B687D8B98AD7B786D3B181CDAB7BC6A474C09E70BB996BB99767B2935DB3965CB79A60 BBA166C1A96DC9B175CEB97AD2BD7ED0BC7DCCB776C8B372CBB471CEB774CEB572C9AE6BC3A664 C9A567C8A466C7A568C6A669C7A86FCBAE76CEB47BD0B77FD1B880D0B77FD0B77FD2B981D5BA83 D4BA81CFB57CC5AF7E807255CFC7B4D4CCB9D3CBB6E1D6C2D8CDB9D1C4B1CDC1ABCDC1ABCEBFA8 CBBCA5C9B9A0CCBAA2CFBEA4CAB99FC2B298C8BD9FD6CDAEDCD3B2D4CBAAD1C8A7D9D1ADDCD2AF D6CEAAD2C9A8DCD3B2C9BEA0A79B81C0B49CB4A892A598859E968394917E8F907E838474747263 6C6A5D6C685C6561555B5849615B4D5C5545524B394B432E6F675051472E6E6449CEC3A3C7B992 CABC8FCCBD92CCBD94CBBC95CCBD96D0C09CD4C4A0CEBE9ACCBC98CBBC95CCBD96CEBF96CDBE93 C9BA8FC6B88BD1C498D3C79DD3CBA4CECAA4CAC6A3C8C4A1CAC4A0CFC5A1CEC099D7C89FC7B891 BCB08A887F601A16007F8169CFCFB3C4BE9AC2B990BFB68DBFB68DC0B790C1B891C7BF98CFC7A2 C5C09AB3AD89BCB692C9C5A0C0BC99BDBA97C3BF9CBCB696D2C6ACBFB49ECBC8B5515544697466 C4D2C5BFD0C0CEDBCAD5DCCAC0C2ACD4CEB8CCC1AB8B7E6B4737274F3F3236281B38311F38311E 3A2E1E3E2E1F3E2E214030233E32263B3527616254ADB3A5C2CDBFC1CCBECBD3C8C6CCC2C8C9C3 CCCCC4CCCEC3CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABDCACCBFCACCBFC9CBBEC8CABD C8CABDC7C9BCC6C8BBC6C8BBC5C7BAC2C4B7C0C2B5C1C3B6C2C4B7C1C3B6BCBEB1B8BAADB4B095 B5B39A989B86848B797982717A8575939A8A959988989A85A5A48F97927C8F8D789F9E8AAEB1A0 70786B576158A0A5A1A9AEAAB7B9B4B7BAB3B3B6ADB4BAB0AEB5AE9BA6A08894906F7B77303B37 191E175A54485F5241A7937BB7A68CADA58EA6A18B6A63498F856AB2A78BB5A98FB7AF98BBB8A5 BBBDB0B8C0B5B6C1BBB8C4C0BDC6C1C2C9C2C6CCC2C8CEC49FABA17E8B82818C84838E868D978F 9BA59D969D969FA69F949B94A3AAA398A29A9EA8A0869189717C746D7A71A2ADA5C7CEC7C3C8C2 B2B7B1ABB0AAB4B9B3B7BCB6B6BBB5BCC1BBBBC0BAA6ABA59EA39DA7ACA6B3B8B2BCC1BBB3B8B2 9EA39DB9BBB6CCCDC8CECFCACCCDC8C3C4BFC5C6C1CCCDC8B1B2ADB1B2ADC7C8C3B3B4AF8C8D88 898A85959691969792979994969893969B959BA09A9EA39D9CA19B9CA19BAAAFA9BABFB9BDC2BC BBC0BABFC4BEBBC0BAB0B5AFB6BBB5C8CDC7D1D3CEC7C8C2B4B5AFC9CAC4C6C7C1BABBB5C3C4BE C1C2BCC5C6C090918B92938D93948E9A9B95AFB0AAC8C9C3D3D4CED1D2CAB5B7ACB7B9ACB5B7AA B4B6A9BEC0B3CDCFC2D2D4C7CED0C3C8CABDB0B2A5A0A295A9AB9EBFC1B4CBCDC0CCCEC1CACCBF D1D3C6BEC0B3BDBFB4C7C9BCC4C6BBC1C3B6C3C5BAC2C4B7BFC1B6C1C3B6C0C2B7C2C4B7C3C5BA BBBDB0B7B9AEC0C2B5BEBCAFB0AE9F969485ADAB9CD9D7C8E2E0D1E2E0D1E5E3D4E1DFD0D7D5C6 EAE8D9DAD8C9E9E7D8B8B6A7B3B1A2B6B5A373715CB3B19AE2E0CBE5E3CEDEDDC9DBDAC6DBDAC8 DDDBCCE8E5D6E5DFCF9C93826D6050736252746150735E4D705B4A91806EE2D5C2F3EBD8E2DDC9 E1E0CEDDE0CDE0E4D3DFE6D49DA190A1A4939592817067567A6A5B725C4E715748684E419B897D DCD0C4E8E0D3DEDCCDDCDFCECED2C1D2D6C5E2E3D3B4B1A2776F62786C607D7165766C60787063 857F71BBB8A9D6D0C4D8D4C8D0CEC1D4D6C8D9DDCEDDE0CFD2D3C3A5A2939D9387A7998CAB9D90 ADA193ABA494CFCEBACDD2BCDCDFCADBD5C5D2C9BAE2D9C8DFD8C5DED7C4C6C0AACAC6ADC8C4AB C7C3AAC9C5ACCAC4AED6D0BAD9D0BFD8CFBED0C7B8A49C855F5A32BAB283CEBD8FCAB485EBD0A3 F2D6AEDAC49FBDAE8D757053707058767964696B567B7461BAAB96E6CDB7F6DCC3ECD9BBE3D5B8 CBC4AAAEA993999B86969986969785959480BFBDA6E8E2CA817B636D6751DBD8C5EDEBDCD6D9CE 8E8E82403728403424453E2CB0AF9BDDDFCACFD1BCCFCEBADEDBC8A9A2904F4333443727423626 9F9685E8E3D0C0BFAB969581BBB4A1DDD2C08B7E6E45352648362C4D3C32B4A79EECE6DAE6E8DA DFE8D765725E26351E24321B69755DB1B9A14A4C37342C1F32281E453F333435272A3322849380 CEE1CDAFC5B0384E39223320596453AFB3A46965592B211734231B392F25363C302D3B2C1D2F1F 677C695368552437232F3E2997A38F979B8A434434716F6255554956584D7A8275293529253020 686755E3DECADAD9C4E1E5CEB0B8A12C341D282D174B4C3AB4B1A0817B6B4B4434574F42565344 595A4A676B5A2A311F1A23103D422C6F6F55847D608F82607567447969476759366E6141726749 6F64467D725297896695865FA28F65CFB88CDABD93DEBF93DEC293E0C495DFC495DDC293D9C290 D7C08ECAB483B29E6C947E4D7D6839796435826D408E794C988054A5885CA8895BAB8C5EB19264 BA9B6DC5A677CFAF80D5B586D7B786D6B685D4B282D1AF7FCDAB7BC8A875C7A673C4A56FBFA268 BEA467C0A669C2AA6CC4AF70C8B475CBB77ACDBB7DCCBA7CC8B87AC8B676C9B777CBB876CBB876 C8B370C7AE6CCDAE6DCEAC6DCCAD6DCBAD6FCDAE75D0B379D4B77FD4BA81D2B780D0B77FD0B57E D2B780D5BB82D3B980CEB479C6B07E867959C6BEA7D2CAB3D1C9B4D9CEBAD4C9B5D7CCB8D3C8B4 D0C5B1D0C5B1D0C4AECEC2ACCBBFA7C4B8A0B9AB91ACA086857E62A8A385CAC5A7D3CDADD0CAAA D0CAA8D0CAA8CFC6A5D7CEADD8CFB0B1A68A6E6347685C4453472F4F432D524A3743402D414230 3C3D2D3536263A3B2D4445374647394240334744354943334F4A376A6350A59F89766E5770664D C6BB9DCDC199CFC296D0C399CDC096C9BB94C9BB96CCBE9BD0C29FC5B794C3B590C4B691C9BB94 D0C399D3C69AD2C599D0C397CFC296D0C49ACEC69FC9C59FC6C29FC6C29FCBC5A1D2C8A4D0C29B D8C9A0B5A67FADA17B9D94752A260970725ACACAAEC9C19DCABE98C8BF98C9C099C7BD99C3BB96 C1B995BFB995CAC4A2BBB696BFBA9AC4C1A2BAB798B6B597B6B597ABA78AB2A68EAA9F89C2BFAC 595D4C6C7769C7D5C8C0D1C1C9D6C4CED6C1C4C4ACD9D1BACBBFA78776623E2B1A4C392B433222 4035213F341E41321F4130204130204230224032253C3427464739959C8CB0BBADB6C1B3C7CFC4 C8CEC4CFD0CAD5D5CDCCCEC3CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABDCACCBFCACCBF C9CBBEC8CABDC8CABDC7C9BCC6C8BBC6C8BBC5C7BAC2C4B7C0C2B5C1C3B6C2C4B7C1C3B6BCBEB1 B8BAADB6B297B7B59C9DA08B9097858C9584919C8CA8AF9FA7AB9AA6A893B1B09B98937D94927D A6A591AAAD9C485043172118696E6A7E837F92948F95989196999092988E7E857E616C663A4642 212D29121D19232821645E52675A49AF9B83BBA991BCB6A0ABA994756F57989177B6AC91B6AC93 B3AD97B7B6A2BFC3B5BAC4BBB9C4C0B8C4C0BCC5C0C1C8C1C4C9C2C6CCC2B5C1B79EABA29AA59D 8C978F7C867E717B73737A738B928B9FA69FB8BFB8A9B3ABA4AEA68F9A92838E86839087B7C2BA C8CFC8C4C9C3B4B9B3AFB4AEBABFB9BDC2BCB9BEB8BCC1BBBCC1BBACB1ABABB0AAB8BDB7C3C8C2 C9CEC8BFC4BEA9AEA8C0C2BDCFD1CCCDCFCACBCDC8C5C7C2CBCDC8D5D7D2BBBDB8BDBFBAC6C8C3 B8BAB5979994868883898B86898B8681837E7D7F7A7A7C777D7F7A81837E80827D81837E939590 A8AAA5C8CAC5C5C7C2C8CAC5C6C8C3BCBEB9C2C4BFD2D4CFD8DAD5D8D9D3CBCCC6D2D3CDD3D4CE D1D2CCC9CAC4B3B4AEAFB0AAC0C1BBC7C8C2C6C7C1BDBEB8B8B9B3BDBEB8C3C4BEC5C6BEBCBCB2 CDCDC1C8C8BCAEAEA2A8A89CBABAAEC0C0B4B5B5A99191858A8A7E8C8C8096968A9F9F93AAAA9E C1C1B5D9D9CDD2D4C9BCBEB3B5B6AEBCBEB3C0C1B9C8CABFD2D3CBD3D5CADCDDD5D0D2C7C9CAC2 CED0C5D0D1C9C6C8BDBABBB3B7B9AEB5B3A6B0AE9F9C9A8BB4B2A3D6D4C5DBD9CAE1DFD0DEDCCD B0AE9FC0BEAFE6E4D5DDDBCCE6E4D5B2B0A1B3B1A2B6B5A3706E57B4B097E2E0C9E4E2CDDEDDC9 DCDEC9DCDDCBE0DFCDE8E5D4E7E0D0A29686726253766354786151785E4F775D4C9A8776E8D9C6 F4E9D7E2DBC8E2E1CFDEE1CEDDE1D0D7DECCABAF9E959887848170645B4A6B594B715A4C7F6355 6E52469A8779DBCFC1E8E1D1DDDCCAD8DBC8C8CDB9CFD2BFE2E1CFCAC4B472695A65574A6F5F52 66584B6357497E7566D0C9B9CEC8BAC5C3B4B6B7A7C6C9B8DBDFCEE2E5D4C8C6B78A84745F5345 685B4B69594A685B4B776E5DB8B6A1C8CAB4D6D8C3EEE8D8DED7C7E6DFCDDED7C4CCC4B18F8772 776F586F6750847C657F77609E9681CEC6B1D1C8B7D0C9B7CFC8B89F97805F5A34BCB183CEBD8F CBB488E9CEA3F1D5AEE0CAA5CDBE9FB2AE93A6A892AAAF9B9C9F8CA7A28FD2C5B2E7D1BCE7D1B9 E2D2B8DFD6B9CECAB1B4B39E9FA490989F8D959C8A929783BCBBA6E2E0C97F7A646D6854DCD9C8 EBECDED9DCD395958B4D44354439274C4532BAB8A3D4D3BEB3B59FBFBEA9E5E0CCB2AA97594C3B 453827433625A09583E7E0CDC9C7B2A2A08BB7B09DDBD0BE91847449392A48362C4D3B31AFA299 EBE5D9EAECDEDFE8D7626F5B23321B212F18647058ADB79E4A4D38494333484033524F403B3E2D 30392685927EC9DBC5ADC0AA2A3C261E2D1858614EADB1A0726F603D3528483A2F4E463B42453A 303C2E2435257285725F725F2839262F3C288F97829899875653447874685351444E4E42717769 2B3628262F1E63604DD7D1BBDDDBC4E1E3CBABB09931361F262A13464531A9A491877E6D564D3C 645B4C746E5E757462757865464B355356416E7058827E618E8363988864816E468B754E86724D 6755316355326D5F3C83755097855FA28C63B8A175D8BD90DBBE92DEBF93DEC195DFC296DEC394 DDC293D9C290D8C18FD7C08ECAB482BBA472B19A68B29B69BCA271C5AB7ACBAF7FD3B380D3B27F D3B27FD4B282D4B282D3B382D5B383D4B483D6B685D6B685D5B582D5B582D4B481D2B47ED3B47E D2B57DCFB276CDB474CDB376CCB476CAB679C9B779C7B77BC6B87BC7B87DC8B97EC9BB7EC8BA7D C8B87AC7B779CAB878CDB877D4B877D4B676D3B577D2B579D3B67CD6B981D8BA84D9BB85D5B783 D1B681D1B37DD3B57FD5B880D5B880D0B379C7B07E8D7F5CB5AB90C9BFA6C7BCA6C2B7A3B9AE9A BDB2A0AAA28F978F7C908875867E6B7B73606F6752615B45585039514B33605C418F8B70C1BDA2 D5D0B3D0CBADC9C4A4C9C4A4CCC6A6CEC5A6D1C8A9AEA387675C405E4F3851422B5B4C37615642 5D5C4A5A5D4C56584A5355475C5E506C6E607173656D6E60878878908F7D93907DA7A28ED2CCB6 867E675D533AB7AE91C7BE97CCC096CEC29ACBBF99C6B996C5B895C8BB99CDC09ECFC2A0CCBF9D C9BC9ACBBE9BCEC29CCEC29AC9BD95C3B78DCABD91CBBF95C9C19AC5C19BC3BF9CC5C19ECBC5A1 D3C9A5D0C29BD1C299A4956EA39771B6AD8E3C381B5D5F47C2C2A8B3AA89B7AA87B6AC89B8AE8B B9B08FBBB291B7B191B4AF919E997C949073908F738C8C7285856B87876F83856D77755E7A6F59 817662A7A493585C4D616D5FC3D3C6C1D2C2C6D3C1C8D0B9C7C7ADDBD4BACCBEA487755D39240F 4A3323503B2A4A3B26463A2246352144321E442F1E422F204131223D3425484637989C8DB2BAAD B6C1B3C6CEC3C5CAC3CACCC7CFD0CACCCEC3CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABD CACCBFCACCBFC9CBBEC8CABDC8CABDC7C9BCC6C8BBC6C8BBC5C7BAC2C4B7C0C2B5C1C3B6C2C4B7 C1C3B6BCBEB1B8BAAD9692779F9D848E917C8188767881707B8676979E8E9CA08F8A8C77A3A28D 928D77999782ABAA96ADB09F424A3D1721185459556469656E706B6B6E6765685F5C6258585F58 59645E404C48111D19101B172F342D6C665A6C5F4EAD9981B3A189B7B09D9E9D89726D57958F77 AFA88EB8B197B9B39DC0BFADC0C3B8BAC4BBB7C2BEB5C1BDB7C2BEBCC3BCC0C5BEC1C7BDBFCAC2 B8C5BCA1ACA4717C74434D452A342C3138314A514A838A83ACB3AC9EA8A0949E96848F877F8A82 7E8B82B1BCB4CBD2CBC5CAC4B5BAB4B1B6B0BEC3BDC2C7C1BDC2BCBEC3BDACB1ABA0A59FA3A8A2 B2B7B1BCC1BBC1C6C0B7BCB6A1A6A0BBC0BAC6CBC5C3C5C0C0C5BFBFC1BCC7CCC6D4D6D1B9BEB8 B5B7B2B6BBB5BEC0BBB2B7B1A0A29D9FA49EB5B7B2C1C3BEB0B2ADA0A29D969893989A95999B96 9C9E99B1B3AECACCC7CDCFCAC8CAC5CCCEC9CBCDC8C2C4BFC9CBC6D7D9D4DADCD7DCDDD7DADBD5 D8D9D3D7D8D2DADBD5CCCDC7B4B5AFB1B2AC9C9D97A2A39DAAABA5AEAFA9AAABA5ABACA6BABBB5 CDCEC6CFCFC5E1E1D5DBDBCFB7B7ABA1A195A6A69AA8A89C9D9D919C9C90A4A498AFAFA3AEAEA2 9C9C90919185A4A498C3C3B7B6B8ADAFB1A6B4B6ABBABCB1B8BAAFBEC0B5C8CABFC8CABFADAFA4 A3A59AA6A89DB8BAAFCDCFC4DADCD1D2D4C9BDBFB2ABA99CAAA899979586B7B5A6D7D5C6D8D6C7 D9D7C8C1BFB07F7D6EABA99AE2E0D1E1DFD0E8E6D7B2B0A1BCBAABBEBDAB706B55B4B097E2E0C9 E3E3CBDEDDC8DFE1CCDFE0CEE2E1CFE7E4D3E8E1D1A397877463537964537B61527C5F4F7B604F A48D7DEBDAC8F3E6D5E2DAC7E5E2D1DFE2CFDADECDD1D8C6D6DAC9ADB09FA8A292928676806E60 745A4D83665873574BA28F81E5D8C8F0E9D9E1DECBD6D7C5C2C5B0C8C9B7DBD8C5D8D1C17F7262 705E527B685A7260546C5C4D897B6EDED5C6D2CCBCB9B7A89B9C8CADB09DD2D6C5E6E9D6CDCCBA 8A83715D514169594A6351435D4C3C746957C6BFACD8D7C2DFDEC9E1DECBD3CDBDDDD6C4DDD5C2 CBC0AE7B6E5B574833544530574833493D27817461CEC3AFD1C8B7D0C9B7D5CFBFA19B835F5A34 BAAF82CFBC91CCB58BE8CCA4EDD3AEE4D0ADDBCEAED2D0B7BDC1AAB8C0ABADB1A0B5B4A0D8D0BB E3D1BBE1CDB5DCCEB3D7D0B4C8C4ABA9AB96939A888F9887919A89929987B9BBA6DFDDC87D7864 6F6A56DDDACBEBE9DDDCDDD59F9C93564A3C4639284F4734BDBBA6D4D3BEB6B5A0C3C1ACE4DFCB BAAF9D615443483828453827A19684EAE3D0D9D7C2B4B29DB1AA97D2CAB7918474453526402E24 47352BA69990E8E2D6EBEDDFDEE7D6616E5A25341D212F18606C54ABB39B4B4E393F3E2C413E2D 4748383235222F362487937DCEDBC7B9C8B13B48342B37215C6351AFB29F737162363020372D21 413B2D515546313C2B2B3826788A7466786222311A232F177A7F6892917D534E3B645E4E494335 4B493A65695A28312025291878725CCEC6AFDAD6BDDEDEC4B8BBA061654C5B5D4574725BCEC8B2 C6BBA9A79C8AB4A997CBC3B0CBC6B2C7C6B2AFB19BD9D9C1D0CCB1958C6D7D6F4C806D456E572D 7F663D8A734998825987744C8D7B559C89619C865DA99165C6AB7CD5B98ADEBF93DFC094DDC094 DEC195DDC293DCC192DAC391D9C290D4BD8BD5BE8CD8BE8BDBC18EDEC290DFC18DDEBE8BDCBB86 DCB983DDBA82DEBB85DFBC86DDB985D8B784D5B481D3B181D7B786D7B786D7B784D7B983D7B983 D5BB82D5BB82D5BB80D6B97DD6BA7BD4BA7DD3BB7FCFB97FCBB87DC8B77FC5B67DC8B982CABD86 CCBF88C9BD83C5B67DC3B479C8B87DD0BC81D6BC7FD8BC7DD8BB7FD8BB81D8BB83D9BB85D9BB85 DABC88D5B783D2B480D0B27ED1B37DD3B67ED3B67ED0B379C7B07C796945776C5082765C70664D 655A445C513D61594648412F4A433146403047413147443345422F41402C4745304F4E3983816A A3A188C6C4ABD3D2B6D0CCAFCAC7A8CCC7A9D1CCACC8C2A2D2C9AAC4B99D978C70A193799C8D76 9889748479659493818F928186887A7B7F707E8273878B7C888C7D8284766C6E609A9B8BB4B3A1 BBB9A4D2CDB7847E66524B31BFB699BBB38FC1B992C6BE99C6BE99C2B998C0B796C2B99AC5BC9D BBB293BBB293BDB493C3BB97CAC29ECDC5A0CAC29BC6BD94C1B58BC5B98FC5BD96C3BF99C3BF9C C4C09DCAC4A0D1C7A3CEC099BFB087A4956EADA17BC2B99A45412452543CB7B79DA2997CA29777 998E708E85668A81648C85698C866C87836A7D796076745D6C6B565D5F4A575A475C5F4C585C4B 4D4E3C6E634F7B705CA29F8E626657546052BECFBFC5D6C6C8D5C1C9D1B9CBCBB1DAD0B5CEBEA4 99836B442B15492E1D533C2A4E3E254A3C2247351D442F1A432C1A412C1B3F2E1E3A31205B594A A9AD9EC1C9BAC1CCBECCD3CBC6CDC5C7C9C4C9CAC4CCCEC3CCCEC1CBCDC0CACCBFCACCBFC9CBBE C8CABDC8CABDCACCBFCACCBFC9CBBEC8CABDC8CABDC7C9BCC6C8BBC6C8BBC5C7BAC2C4B7C0C2B5 C1C3B6C2C4B7C1C3B6BCBEB1B8BAAD928E7398967D838671787F6D747D6C788373919888919584 888A75A4A38E8D88729E9C87AFAE9AAEB1A03B43361B251C696E6A6D726E6B6D6862655E55584F 464C4262696297A29C6874701B2723121D1930352E6E685C756857B4A088BAA890B7B29E9E9F8D 7F7D689F9981B0A98FBCB69EB9B4A0BCBDABBCC2B6B6C1B9B2BEBAB0BCB8B1BCB8B4BEB6BBC0B9 BDC3B9B5C0B8B5C2B9848F87414C441F29211721191F261F252C25686F68A5ACA5A6B0A8A2ACA4 99A49C8E99917F8C83ADB8B0CED5CEC6CBC5B4B9B3B0B5AFC0C5BFC6CBC5C0C5BFC1C6C0ADB2AC A1A6A0A4A9A3B0B5AFB9BEB8BFC4BEB8BDB7A5AAA4BBC0BAC2C9C2BCC1BBBAC1BABBC0BAC6CDC6 D2D7D1B7BEB7BFC4BEBFC6BFBBC0BAA1A8A1898E888A918A969B95949993A5A7A29EA09BA2A49F ACAEA9A6A8A39EA09BAFB1ACCDCFCACDCFCAC7C9C4CACCC7CACCC7C5C7C2CBCDC8D6D8D3D6D8D3 D5D6D0DEDFD9D7D8D2D4D5CFD5D6D0CCCDC7C2C3BDBDBEB8B4B5AFA2A39D9C9D97AAABA5B5B6B0 B7B8B2BDBEB8C8C9C1D2D2C8DEDED2DDDDD1C7C7BBB1B1A5A9A99DA6A69AA1A195ADADA1A5A599 A3A397A9A99DABAB9FA5A599A1A195A2A296919386A7A99CCACCBFD6D8CBC7C9BCBABCAFB3B5A8 AAAC9FB8BAADB7B9ACBABCAFB6B8ABB5B7AAC5C7BAC4C6B9A9AB9DB8B6A7B0AE9F949283B8B6A7 DBD9CADEDCCDDDDBCCAEAC9D716F60AEAC9DE8E6D7E7E5D6E8E6D7ADAB9CBBB9AAB4B3A1706B55 B6B299E4E2CBE3E3CBDEDDC8E0E2CDE1E2D0E2E1CFE6E3D2E6DFCFA295857360517A63537D6153 7F5F507E5E4FA68F7FEDDAC9F4E4D4E1D9C6E5E2D1E2E3D1DADECDCED5C3BBBFAEA7AA99D0CABA D3C7B7A39082694F427252456F5244A69384E9DCCBF3ECDAE3E1CCD8DAC5C4C6B0CAC9B5DCD7C3 C9BDAD7969596E584B745D4F6B5548695647867466D3C6B6E1DACABDBCAA949583A2A590CCCFBC E6E8D3D0CDBA8D8673625544705F4F6B5547624F3E7D6E5BD1C6B2DFDAC4DCDAC5DCDBC7D0CDBC DCD7C4E2DAC7D9CCBB877664604B38644F3C634E3B4D3B278A7967DED1BED9D0BFCFCAB7D1CEBD 9A98815E5834B7AB81CDBA90CEB58DE9CDA6EBD1ACE6D2B1E3D8BAB2B29A959A848E97848A9380 9FA28FCDC8B4E1D2BDE4D4BBE2D4B9DED7BACFCBB0AFB19B969E89929B88989F8D9DA28EBCBBA6 E0DBC57E7862736B56E1DACAEBE5D9E0DCD3A9A298584B3B4437244C442FBDB8A2DDDBC4D0D0B8 D8D6BFDFD9C3BBB09C665946473825493A27A49784EDE5D0E9E4CEC4C2ABB5AE9BD2CAB7968979 4434253E2C2248372DA4978EECE6DAEAEBDDDDE4D463705C2A392224321B5E6A52AAB29A4F543D 41432E4446314649362D321C303521878F78CDD6C1BEC8B0353D28202811494E3A9FA28D706F5D 312E1B302A1A43402D4144311A240C1B270F6D7B616372551C2B0C212C0E6A6F51A19F866D674F 7B735C726C567977628587725E634D6C7059A9A18AD7CDB4DBD5BBE1E0C4D7D7BBB2B298B3B399 C6C2A9C7BFA8D3C6B3C9BAA7CDC0ADDCD1BDD7D1BBD4D2BDD3D3BBDAD8BFD0C9AC827553887650 B39C72B79C6FC7AB7CD7BC8DD7BF93C3AC82C7B188CDB68CC0A87CCBAF80E3C394E3C394E0C193 DFC094DDC094DCBF93DBC091DAC292DAC391DBC492D9BF8CD9BF8CDABF8ADABC86D9BA84D9B883 DCB983DDBA82D8B478DAB67ADCB87EDDBA82DCB983D8B480D2B17ECFAE7BDABA89D8BA88D8BA86 D5BA83D4BA81D2BA7ED1B97DD2B87BD6B87AD8B87BD8BA7ED6BC83D4BB83D0B983CBB784C8B783 C9B986CEBE8DD0C08FCABA87C1B17EBEAE7AC5B480CEBB83D4BB82D5BB80D6BC83D7BC85D9BB87 D9BB87D9BB87D9BB89D7B786D3B380D0B07DD0B17BD2B37CD3B47DD1B279CAB07D6F5D374F4424 5A4F33493D234C412B534B366C65535E5848625F506462536F6D6078796B767968737766838675 989B88B7B9A3BEBEA6C8C8B0CFCFB5D1D0B4CECDAFD0CDAED4CFB1D5CEB1D9D0B3D1C6AAB5AA8E C8BAA0BDAF9595856E554A362827152528171D2112121607111507151B0D151B0D0E1505181C0D 6F7261ADAE9CBFBEA9D4CFB9948E76524B31B2AB8FC1BD9AC4C29CC9C6A3C9C6A3C5C2A3C0BD9E BCB89BBBB79AB9B598B9B598BAB798BCB998BDBA99BBB895B6B48EB4AF89BAAE84C0B48AC5BD96 C6C29CC6C29FC5C19EC7C19DCCC29EC9BB94AC9D74B5A67FC4B892C3BA9B4743264E5038AFAF97 736C52786C5270644C5F553C5B503A625A4367604D635E4B6968566A6B5B606254565A4C5B6155 696F636F776C737568968E7BA29783BBB8A77E82734D594BBACBBBCADBCBCBD8C4CFD7BFCECEB2 D4CBAED3C2A6B59D83593F28492D18513621503C234A391F463219412B143E28133D28153C2B1B 392D1D575445A7A99BC0C8B9C3CEC0CED8CFCAD1C9CBCDC8CDD0C9CCCEC3CCCEC1CBCDC0CACCBF CACCBFC9CBBEC8CABDC8CABDCACCBFCACCBFC9CBBEC8CABDC8CABDC7C9BCC6C8BBC6C8BBC5C7BA C2C4B7C0C2B5C1C3B6C2C4B7C1C3B6BCBEB1B8BAADAFAB90A5A38A8487727D847287907F939E8E A2A999969A89A0A28DAEAD9885806A9E9C87B3B29EAEB1A02F372A1721185E635F696E6A6D6F6A 6B6E67585B523A4036585F58A0ABA554605C0B17130E191531362F726C607366559F8B73A29279 9A97848C8D7B7F7D6899947EA49E86BAB49CB5B09CB2B3A3BAC0B6B3BEB6AEBAB6AAB9B4ADB8B4 B2BCB4B9BEB7BCC2B8BDC8C0B6C3BA6A756D2A352D2A342C39433B3D443D2D342D6A716AACB3AC AAB4ACA4AEA69EA9A1929D95849188BAC5BDD2D9D2C6CBC5B0B5AFACB1ABBEC3BDC7CCC6C3C8C2 C3C8C2B4B9B3A5AAA4A3A8A2A9AEA8AEB3ADB7BCB6B6BBB5AAAFA9BFC6BFC7CEC7BFC6BFBFC6BF C0C7C0CCD3CCD5DCD5B8BFB8B4BBB4C9D0C9C8CFC8B4BBB4B1B8B1B5BCB599A0997178715C615B 6F716C969893BBBDB8BBBDB8AAACA7B4B6B1D2D4CFCBCDC8C4C6C1C7C9C4C8CAC5C5C7C2CBCDC8 D4D6D1D2D4CFCFD0CADCDDD7D4D5CFD0D1CBCFD0CACFD0CACCCDC7B1B2AC78797360615B555650 73746EA8A9A3CFD0CADADBD5D7D8D0D4D4CAD8D8CCDADACED4D4C8C6C6BAB7B7ABADADA1A9A99D 9595899090848D8D8197978BACACA0BABAAEB6B6AAAAAB9D999B8DB8BBAADEE1D0E5E8D7CFD2C1 C0C3B2B7BAA9ABAE9DADB09FB4B7A6C3C6B5BBBEADABAE9DC1C4B3D9DCCBD0D3C2D3D1C2C5C3B4 9C9A8BBDBBACDDDBCCE4E2D3EBE9DAAFAD9E716F60B6B4A5EBE9DAE7E5D6E7E5D6ACAA9BBCBAAB ACAB99726D57B9B59CE7E5CEE3E3CBDEDDC8E1E3CDE1E3CEE0DFCDE5E2D1E2DBC99E8E7E6F5C4D 7B61527E6153805C4E7B5A4BA78D7EEBD8C7F3E3D3E3D8C6E8E2D2E3E4D2DBDFCED0D7C5C4C8B7 A0A191B8B2A2BFB3A39E8B7D6D51457A584C7F5F52A58F81E4D7C6EEE7D4E2E0CBDCDBC6CBCAB5 D0CEB9E2DBC8C9BCAB7E6B5C725B4D745A4D6C524570594B917B6DDBCBBBEBE4D2CBCAB6A5A792 AEB19CCED1BCE0E2CCC9C7B288806D574737655241634C3C6049397C6958CDC0ADD8D0BBD2CDB7 E1E0CCD7D6C4DED9C6DFD7C4DACABA85705F5A402F6247366F54435A402F917C6BE1D2BFD7CEBD C7C2AFC2C1AF8D8D755D5733B5A780CAB78FCFB68EEACEA7EAD0ADE5D0B1E5DABEBCBCA4959D88 87948285907F9DA190CAC7B4DED3BFE7D9BFDFD1B4E2D9BAD5D1B4B5B89D9CA18B949C87969E87 9A9E87BFBFA7E2DCC482785F796D57E4D9C7EAE1D2E1D8CFAFA59B5B4B3C42332048402BBCB7A1 E6E4CDE9E9D1ECE7D1D9D3BDB9AE9A6B5C49463523493A27A29582E9E1CCEDE8D2C7C5AEBBB6A2 D5CDBA9C9080453828412F254F3E34A5988FEFE9DDE7E8DADCE3D366735F313F2827331D5E6850 AEB39C595E473D422C4449334449332A2F1930351F878C76C9CEB8BDC2AC4A4D383336214C4F3A 999B8672745F41402C403F2B52543E585C433D46294752348C9A798E9C795E6C486C7351999D7A C0BD9EA8A184BEB598BEB79BBFBBA0C0C0A6B2B69BD6D9BEDBD1B6E4D9BDE2D8BDE0DBBEE0DFC1 DBDABCDBDABEE4DEC4D5CBB2E2D3BEE3D2BEE1D0BCDFD3BDD8D0B9D5D0BADBD9C0E2DDC0E3DABB 8E7E5CAA946BE4C99CDBBC8DD1B381D8BA88D4B98AC9B183D3BB8FDAC296D4B889DDBE8FEECA98 E8C494E2C194E0C195DCBF93DABF92DABF90D9C191DBC492DCC593DCC28FDFC48FE0C28CDDBE87 D8B781D5B27AD6B17ADAB378DDB778DEB879DEBA7CDDB97DDAB77FD6B37DD0AF7ACCAC79DABA89 D9BB87D6BB86D3BA81D2BA7ECEB97ACDB879D0B777D4B479D8B57BDBB880DABB84D9BB89D3B988 CEB686CAB586C6B486CBB88DCDBA8FC7B587BFAD7FBDAB7BC4B282CFBB88CEB781D2B981D5BA85 D7BC87DABC8ADABC8ADABB8CD9BB89D7B788D3B382CEAE7DCEAE7BD0B17BD2B37CD0B178CAB07D 8D7B53796C4A9E90738D81678E846B7E76618A83717F7C6D8A887B8282767E8073797D6F6C7264 6D756691998ABDC4B4CBCEB9C3C5AFC1C3ADCBCDB5D3D3B9D1D0B4CFCBAECFCCADD7D0B3D2CBAE CDC2A6B6AB8FCFC1A7C6B89E91816A392E1A2926152E31203034252B32222D3325353D2E394132 363E2F282F1F747867B0B3A0C3C2ADD3D1BCA09C83463E27898467A6A586A4A583A2A383A0A181 9D9E7F96967A8E8E7488886E98987E97977B9393778B8C6D8283637C7D5D7879577B7953B6AD84 C0B48AC6BE97C8C49EC7C3A0C5C19EC6C09CC9BF9BC6B891A99A71C8B992D1C59FC5BC9D4B472A 474931ACAC94928A739E927C968B77807561736B587972607E78687774657E7E727E80756B6E65 5459524E554E48524A464F4A52554CA9A08FB5AA96C5C2B18E92833F4B3DB1C2B2CADBC9CBD8C4 D0D8C0D1D0B4D1C6A8D9C6A8CCB2996A4C344829144F331D513C214B371C452F174129113E250F 3D27123D2A193A2E1E464332989A8CB4BCADBAC5B7C8D2C9C6CDC5C6CBC5CACDC6CCCEC3CCCEC1 CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABDCACCBFCACCBFC9CBBEC8CABDC8CABDC7C9BCC6C8BB C6C8BBC5C7BAC2C4B7C0C2B5C1C3B6C2C4B7C1C3B6BCBEB1B8BAADAEAA8FA09E857B7E69747B69 838C7B929D8DA3AA9A969A89ABAD98B2B19C807B65A09E89B2B19DA7AA99262E21202A21454A46 575C585C5E595A5D564E514832382E4A514A8F9A943F4B470915111B2622363B346C665A5C4F3E 7460487969506B68556467546564507B766088826AB3AE98B9B6A3BABBABBAC0B6B3BEB8AEBAB6 A9B8B3AEB9B5B3BDB5BCC1BAC0C6BCBCC7BFB2BFB65B665E202B2329332B353F373B423B2D342D 6C736CA9B0A99CA69E8F999189948C7D8880748178B7C2BAD5DCD5C6CBC5ACB1ABA7ACA6BBC0BA C7CCC6C5CAC4C6CBC5B4B9B3A2A7A1979C96979C96999E98A4A9A3ABB0AAA5AAA4C0C7C0C5CFC7 BDC7BFBEC8C0C0CAC2CBD5CDD0DAD2B1BBB3BAC4BCCBD5CDC9D3CBC2CCC4BDC7BF939D954E5850 262D26282D27343631636560A3A5A0C1C3BEB9BBB6B9BBB6CACCC7CACCC7C3C5C0C5C7C2C8CAC5 C5C7C2CCCEC9D3D5D0CFD1CCD1D2CCDADBD5D0D1CBD1D2CCD0D1CBD6D7D1CBCCC6898A844B4C46 4B4C4643443E4C4D4780817BC3C4BEDBDCD6CFD0C8D9D9CFDCDACEDBD9CDD9D7CBD4D2C6C8C6BA B7B5A9A8A69AA09E92B1AFA3B9B7ABB3B1A5B5B3A7C0BEB2C2C0B4B7B8AABABDAACBCEB9DFE2CD DDE0CBCED1BCCBCEB9C8CBB6BABDA8A5A8939A9D88AAAD98B2B5A0A4A792B0B39EC7CAB5C3C6B1 DAD8C9D2D0C1A9A798C5C3B4D9D7C8DDDBCCEDEBDCAEAC9D716F60B8B6A7E4E2D3E1DFD0E5E3D4 AFAD9EC4C2B3ABAA98746F59BDB9A0E9E7D0E3E3CBDDDCC7E1E3CDE0E2CDDDDCC8E3E0CDDDD6C4 9787776C56487A5E508060537F594C785446A4887AEBD6C5F3E2D2E3D8C6E8E2D2E4E5D3DDE1D0 D3DAC8FBFFEEB5B6A6969080847767806A5D6D51457C5A4E765649A69180E3D6C3EBE5CFDEDCC5 DADAC2CACAB2CDCBB4DCD6C0CCBDAA7D6857715748765A4C6F5345735749967C6DE5D4C4E6DFCC D2D1BCB7B9A3BFC3ACD3D7C0DCDEC8C7C2AE89816C604F3D6D58476C52436D5342887360D7C6B2 E1D5BFDCD6C0CDCFBACBCCBAD3CEBBD5CAB8D6C5B58A70615F42326B4A3B6A493A5A3D2D8E7465 D8C7B5D5C9B9C1BCA9B7B8A687876F5D5735B2A47DC8B58DD0B691ECD0ABE9CFACE1CEAEE1D7BC BBBDA7949D888998858B9A87A4AB99CECDB9DFD7C2E9DDC3DACDADDFD5B2D2CDAFB2B296959980 8C917A8F947D93957DC6C2A7E4DDC186785E7E6E57E8D7C5EBDBCCE3D5CCB4A69B5F4F3F3F301D 473C28C0BAA4EAE8D1EDEDD5F0EBD5D9D3BDB9AC996D5E4B4332204736249C8F7CDDD5C0E5E0CA BEBCA5B5B09CCBC4B1988C7C4033233E2C224D3C329C8F86E5DFD3E7E8DADCE3D36A766233412A 26321C5B654DB3B8A1676C55323A22404A31454D3532372040452E969A83D6D8C2CBCDB751533D 484A345F614BA8AA94A1A38D9A9C86AEB09ABFC3AAA6AB8DA2A987ABB592CFDBB5D3DFB7C0CDA2 CDD4ABD4D6AECFCBA6CEC6A2DCD4B0DAD1B0D7D2B2D4D5B5CED4B2EFF0D0EBE0C4E5D7BAE7DCC0 DED7BADAD7B8DFDEBFDBD7BADBD4B8E4D8BEE4D4BDE8D6C0E5D3BDE0D1BADED4BBD8D2BAD9D5BA D9D2B5E9DCBC8D7B55B19A70ECD0A1DEBE8BD1B27CE1C28CDDBF8DD8BC8CDBC091DABF90D6B788 DABA89E2BD89DBB785E3C295E0C195DCBF93D9BE91D9BE91D9C191DBC492DDC694D1B784D8BD88 E0C28CDFC089D9B67ED1AD73D0A76FCFA76ADCB675DCB773DCB677D9B577D7B47AD4B17BD0AF7A CEAE7BD9B988D8BA86D5BA85D4BB82D3BB7FD1BC7DD0BB7AD3BA7ADAB67CDEB780E1B985E0BC88 DDBB8DD7B88AD1B48ACBB289C0A980C3AD84C6B087C3AD84BEA87FC0AB80CAB58AD4BE8FCCB583 CFB882D4BA87D8BE8DDBBF8FDDBE8FDDBE90DDBD8ED8B689D4B284CFAD7DCDAC79D0AF7AD2B17B D0B178CBB17E9B8961A09371DDCFB2B9AE92958B724D47313A34243431222B2B1F23251A1C2218 1820150D170C1B27195864569AA595C7CFBAC1C5AEC2C6AFCED0B8D5D5BBCFCEB2CCC8ABCFCBAE CEC7AACCC5A8CCC1A5B4A98DC9BBA1CABCA2A4947D5146323E3B2A4A4C3E545849525949515749 575F505C64555B63544851406E75639FA28FB7B9A3C9C7B2A39F864038217771577778596D7051 66694C65684B686B50686B5062644C5C5E4654563E56584057594155583D54573A5C5F426B6E4F 7B7B57BAB188C2B68CC7BF98C8C49EC7C3A0C5C19EC5BF9BC9BF9BC6B891B7A87FD0C19ACBBF99 D0C7A85551343B3D25B0AF9AB9B19CC1B4A1ACA18F7E72625C5344564E415450444C4A3E3D3D35 4647413F443E3C423E444D4A434D4C4953546469639C9585AFA492BFBCAB95998A344032A9BAAA C6D7C5C3D1BACCD2B8D3D2B4D3C8AADDCAACD5BBA06C4E3643230E543520523D224C391B483016 432912412611402A15412E1D4033223E3B2A909284AEB6A7B5C0B2C4CEC5C2C9C1C3C8C2C6C8C3 CCCEC3CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABDCACCBFCACCBFC9CBBEC8CABDC8CABD C7C9BCC6C8BBC6C8BBC5C7BAC2C4B7C0C2B5C1C3B6C2C4B7C1C3B6BCBEB1B8BAADA4A3859F9F83 81856E797E687F86748F9684A8AC9BA4A792A9AB95B4B49A828067A6A48DAAAC97999D8C212719 2F372C4D4F4A595B564A4D463B3E373D40373C413A636A62ABB5AD35403A0A150F21282132352A 6461525B503E7D6D5499897098927C8E8C7586806A847E66847C65B3AD97BDBAA9BEBFB1BDC0B7 B7BDB9B0BBB7AEB9B5B0B9B4B8BFB8BFC4BDC3CAC2B5C2B9B0C0B65D6A61253028232A23212620 2D322C32342F767B75B5BAB4ADB4ADA1ABA39AA49C838E86747F77B6C0B8D7DED7C6CBC5A9AEA8 A3A8A2B8BDB7C6CBC5C6CBC5C8CDC7CDD2CCB7BCB6A8ADA7A2A7A1A2A7A1B0B5AFBCC1BBB8BFB8 BBC2BBBFC9C0B8C2BAB9C3BBBCC6BEC5CFC7C9D3CBA7B1A9BEC8C0B7C2BAB1BBB3BEC9C3B8C3BD 6B767029342E3039343D423C2E312A46484390938CCACCC7D1D4CDC7C9C4C6C9C2CBCDC8C2C5BE C4C6C1C8CBC4C6C8C3CDD0C9D3D5D0CED1CAD7D8D2D9DAD4CED1CAD2D5CED3D6CFDADFD9C1C6C0 5F645E494E486A6F696C6E6954554F6D6E68B8B7B2DFDED9D4D4CCD9D6CDDADACED9D7CBD3D3C7 D7D5C9D3D3C7C0BEB2A6A69A98968AB5B5A9C8C6BABEBEB2BEBCB0C7C7BBC9C7BBBABBADC5C8B5 CFD2BDDCDFCADBE0CAD4D9C3D7DCC6CED3BDB6BBA58588756568537C7F6AACAF9ABDBFAACDCFBA DDDFCAD5D7C2CFCEBCD2D1BFB0AF9DCBCAB8D4D3C1D0CFBDE4E3D1A5A492757462BBBAA8E0DFCD DBDAC8E3E2D0AFAE9CC5C4B2A8A59276715DBFBAA4EDE8D4E5E3CEDEDBC8E2E1CDE1E0CEDCD9C8 E4DECEDAD3C3908474655345755F517C6255785B4D6D53449B8877E5D6C3EFE4D2E0D9C6E6E3D2 E4E5D3E0E3D2D9DCCBDFE2D1AAA8998A83737063537562546F584A7B5E506C5243AA9987E4DCC7 EAE5CFDBDBC3D4D8BFC1C5ACC2C2AACEC9B3C8BBA87461506B54447A605174584A6F5546917A6A E8D7C5DCD7C3CFD1BBBDC1AAC5C9B2D5D9C2DCDEC8CAC8B1948C776556436D5A496A55446B5643 857261D3C2AEDDD1BBDBD5BFD6D8C2D6D9C4DAD8C3D6CEBBD8C7B58B71625E41316847386C4B3C 62453593796AD9C8B6D9D1BEC4C2ADB6B9A4878A6F5C5632B0A27BC8B28BD1B792EED0ACE8CEAD DFCAADDFD5BABAB9A5939C898C9A89919F8EA9B09ECDCCB8D8D0BBE1D3B9E1D2B3E4D7B7D2CBAE AEAD918F937C888D768F947D969A81C6C5A9E5DEC287795F7F6F56E7D6C2EAD9C9E2D4C9B5A79C 6154433A2F1B453D28C3BEA8E9E7D0E7E7CFEAE8D1DAD5BFB5AD986C5F4C3E311E413421958A76 D3CDB7DCD7C1B3B19AA8A38FBDB6A38D817136281B32241743352A8D8175D5CFC1EAE8D9E0E3D2 6E7661384029292E175E6249B8BAA273755D7D81668A9074888C71686C516B6D55B0B29AE2E2CA D1D1B9C1C1A9B9B9A1B7B59ED9D9C1C3C3A9C1C1A7CBCBB1CBCBAFCACBABD6DAB7DAE0BCDDE3BD DBE2B9D8DFB5E0E2BAC6C49BE0DBB5E4DCB7E6DCB8DAD2AEDCD6B4DDDAB9D0D1AFDDDAB9E1D6BA DCCDB0EBE0C2E5DCBDDED9B9E9E4C4E1DCBCE1D8B9EBE0C4DFCFB5E2D2B9E2D2B9E1D5BBE9DFC6 E1DBC1DCD5B9E4D9BDF9EACB978360B69D74E9CA9BD2B37DC7A872E2C38DDBBF8DDAC08FD6BE90 D1B98BD5B88CDFC092E9C497E8C698E3C295DEC195DCBF95DABD93D9BE93D9C195DDC295DFC594 DCC28FDFC690E1C68FDDC088D5B880D1B27BD4B37ED8B87FCDAE6ECDAE6ECEAE71CFAF76D0AF7A D1AF7FD2B082D2B082D8B688D7B786D5BA85D4BB83D3BD83D4BE82D4C083D5BF85DBBC86E0BC8A E0BE90DFC094DBBE96D5B992CFB38CCAB189B9A077BDA579C2A77CC2A77CC1A67BC5AC83D0B78F DAC198CBB383CEB686D3BB8DD7C096DAC39ADAC29CDBC19EDAC09BD4B891CEB28ACAAD81CBAC7D CEAE7DD1B07BD1B07ACCB07E8473489B8E6BE4D9B9B6AC91827C642E29161F1D0E2F3022303426 32382A3E4639424D3F3843353E4A3C768274B7C2B2CBCFBEC6C9B4CBCDB8D5D7C1D5D3BCCAC8AF CCC6ACD5CFB5CEC7ABD2C8ADD3C7ADB0A48AB5A98FB8AA909D8E77524A33484937565D4D616A59 5C6554545C4D535B4C545C4D515C4C535E4D68715E99A18CC1C5AECECDB8A8A48B423A23787356 7F7E5F717554686B4E696D5274785F7C816A7C816B787D69656D5868705B6A725B6870596C715A 7C8268979D81B0B191BEB58CC5B98FC8C099C8C39DC5C19CC4C09BC6C09CCBC29BC8BA93C6B78E D0C198BFB18CDBD2B1605B3D313117B5B59DBBB59FC0B8A3A59D8A6E6755494333484536504E42 4E4E443E3F37494C45444B44434C4748534F3D49453F4B495F665F989584B0A996C5C4B2A2A695 384031ABB8A7C6D3C2BDC9B5C5CAB3D4D2B9D5CBB0DDCCB2D5BBA4664732411E0B593825553D25 4E38204A3019452A15442715452B1A4732214437263B35258D8F81AEB4A6B7C2B4CAD2C7C9D0C8 CCCFC8D0D1CBCCCEC3CCCEC1CBCDC0CACCBFCACCBFC9CBBEC8CABDC8CABDCACCBFCACCBFC9CBBE C8CABDC8CABDC7C9BCC6C8BBC6C8BBC5C7BAC2C4B7C0C2B5C1C3B6C2C4B7C1C3B6BCBEB1B8BAAD ACB28E969D7B81886980866C939780A4A891AAAC96A7AA8FB9B99D959677868768A5A88BB3B79E 8C917D21271926291E43433B414139282820303129282B24454841A2A7A0B8BFB71B2019262C22 2B2F2146473765624F89836DA89E85B2A489B8A98CA49578B0A086AEA086A69A84B6AE9BBDB7A9 BAB6ABB8B7B2B8BAB5BEC3BFADB2AEA8ADA9B5BAB4B8BAB5BBC5BDB1C5BAADC3B74F5F5529332B 383A353E3D392B27243834319F9E9AB6B8B3B0B5AFA4ABA4A3AAA3919891949B94BEC3BDBCC1BD AAAFAB9EA39FA1A6A2A7ACA8AAAFABADB2AEB2B7B3B5BAB6B4B9B5B3B8B4B3B8B4B4B9B5B6BBB7 B8BDB9B9C0B98C938B535D52515B526C766D9AA49BD5DFD6D2DDD5ACB7AFB1BCB6C1CEC7BFCAC4 B8C4C0B1BDB95A6662313D3B2E3935383D3746473F393A347D7E76C9CAC4C8C9C1C7C8C2C9CAC2 CDCEC8CACBC3C7C8C2C5C6BEC7C8C2CDCEC6D3D4CED7D8D2D2D3CDD0D3CCCED3CDCBD2CBC1CBC3 D4DFD9C0CCC85E6A6658635F6B76728187836C6E696F6E6AD3CFCCE4DCD9D3CEC8DCD9D0DCDED1 D4D4C8D6D8CBDBDBCFDBDDD0CFCFC39FA194B1B1A5CDCFC2E4E4D8C3C5B8C2C2B6D6D8CBC8C8BC C7C9BBC3C6B3DEE3CFD6DBC7D2D9C7D7DECCD9E0D0B8BFAF5F66564F53455A5C4E5C5E505D5E4E C5C3B4D9D6C5DCD9C8D6D3C0D1D0BCC7C6B2B4B39FD0CFBBD6D5C1DAD9C5E6E5D1A5A490686753 CFCEBAE6E5D1DEDDC9EFEEDAB1B09CC2C1AD989582756E5EBBB4A4E5DDD0E6DED1E8E0D3E6DED1 E1D9CCE9E1D4E5DDD0C9C1B4A49C8F8B817581776B82766A8175677B7462A9A792CCCCB4E4E3CE DFE1CBDDDECCE7E8D6E8E6D7DBD9CAF8F5E6A39D8F857E6E695D4D6255456353436E5D4B645542 8E8673D0CEB9E9EBD5DCE1CADAE4CBD3DDC4CCD1BADADCC6AFA8955C4F3E5948386A57486A5446 5F4C3D7A6959E2D7C5DAD9C4CCD0B9B2B69FBCC0A9D2D4BEE1E3CDC8C7B26D68545B54416A5F4D 6457465C4F3C847766CCBFACECDFCCDDD5C0D2D4BCD8DCC3D6D6BEE9E3CDD4C5B0816C59593F2E 6146356B503F5C4231897461CFC0ABD1CBB5C9C9B1BEC2A98384655C542FB4A27AC7AF89CBAF8A EFCEABF5D8B8EAD2B8DACEB6B4B1A08E958597A292899484A0A493D6D3C0D9CEB8E5D5BCDCC8B0 E6D4BCD7CBB5ADA894909382909785939C878C947DC6C9AEE8E7CB7C755B766A52F2E5D2F1E4D4 D9CBC0ABA195625B48312C1645432CAAA891D7D7BFD1D1B9D1D1B9BDBBA49B99827A755F6D6852 7A755F87826CC0BEA7E6E4CDADAB94AEA995C4BDAB8C83742F26172D24153C332492897ADDD6C6 EFE9D9DCD9C675735E9A98819F9D84AAA98DC9C5AACCC8ABCDC8AACFCAAAD1CCAED2CFB0D5D1B4 D6D5B7D8D7BBD9D8BCDBDABEDAD9BDD9D5B8D7D3B6D6D1B3D7D0B3D7D1B1DAD1B2D7D0B3DFD8BB DFDABCDBD6B6DCD8B5E2DEB9E2DCB8DED6B1DDD5B1DAD0ADD6CCA9D6CBABD9D0B1DED5B8DFD8BB E2D9BCE5D7BDE5D7BCE5D7BCE3D8BAE3D8BAE2D9B8E2D9B8E2D9B8E9DEBEEADFBFDBD0B2E5DABC E0D7BAD9D2B6ECE5C9DDD3B8E5D6BFEDD9C0A08969B99D76E9CA9BCAAB75D4B57FDEC38CCEB783 D5BF90D6C196D0BA93D2BA94DCC29DE8C7A4E8C8A2E4C79DE2C59BE0C39BDEC09ADEC09ADFC39C E2C59DE3C89BDDC392D1BA84E4CF98D9C68ED1BD8ADAC898CEBC8ECDBB8BDFCC94D5C087E2CB99 E2C79ADBBB94D2B08BEFC9A4D1AA83D9B287E1BC8FE1C18ED6BB86CCB37DC9B47FCCB885CFBB89 D7C293CFBA8FD7C39ED4C4A2CDBE9FD1C2A3D0BD9CCFB992D9C191DDC28DE1C28BE1C28CDFBF8E DBBC90D7B993D4B893CAB286D6BF95B19D78806D4F6C5C456354417265549F927FC2B49ACFC09F C9B78FD1BA8ED5B98AC9A777D1AC78D2B2818A794D928962D6CDAEBAB49A83806D414232505446 485041515C4B56634F5A66525B675355614D555E4D757D6EAAB0A2CFD0C0D0CFBDCFCCBBCFCCB9 D2CBB9D2CBB8D7CCB8D8CDB9D5C9B3DED2BCD2C6AEB3A78FB2A68EC6BCA3A69C815B573E4C5540 5C6B565C69575D6857596152565E4F60685956615153604E63705C97A38DAFB79FC9CBB5AAA68D 423A239F957AB8B4919A97747170516063486A6E57656D58586150525D4F4753454450423A4736 414E3C4A564267705B9CA68DB2B596C2B992C6B98DC6BD94C5C09AC6C29DC6C29DC7C29CC9C298 CDC197D2C398C7B88DC5B68DCDC09D6D64432F2B0EA8A68DC8C7ABB5B498B2B0976E6C55464531 595A48505244585C4E484E423F473C4A544B4B574D4B574D4A574D435046525E50909883AAAE97 BABDA8999C89393C2B9FA193C0C4B5D3D7C8CBCEBDCFCEBCD0C9B7D2C2B2D8C1B1816154552D23 4F291C5639295238275033234C2F1F4B2B1E462A1C422B1D3D2D1E3932227F8070AEB2A3ABB3A4 C7CDBFC6CCC0D1D3C8C7C9BECACCBFCACCBFCACCBFCACCBFCACCBFCACCBFCACCBFCACCBFC8CABD C8CABDC7C9BCC7C9BCC6C8BBC5C7BAC4C6B9C4C6B9C2C4B7C2C4B7C0C2B5BFC1B4BDBFB2BCBEB1 BABCAFBABCAFA3AE86939D78858C6B83896D8F917997998198987E9292769A9B7B878866848867 A1A686AEB299888D79282E20383B3059594F3D3A3324241C1B1C14070A0360635CD5DAD3AEB4AA 282B203E4033515242706F5B8F8A769D977FA29B81A3987CB29F7F9F8B6AAB9679A8977DA59681 B7AC9ABCB4A9BAB6ADBAB7B2B9BAB5C0C0BEAFB1AEACAEA9BABCB7BBBDB8BEC8C0A7BDB19FB7AA 44544A242E26373833423E3B362E2C443F3CA6A29FB3B4AFAAAFA9A0A7A09BA29B868D868D8F8A B7B9B4B4B9B5A9AEAAA5AAA6AFB4B0B7BCB8B5BAB6B0B5B1B0B5B1A6ABA7A6ABA7A7ACA8A8ADA9 A8ADA9A8ADA9A8ADA9A8ADA79FA69E778176808A7F8D978C97A198B2BCB3B0BBB39EA9A1AFBCB5 C5D2CBC9D5D1C0CCC8A8B7B44958552432322934302C312A3839313031297A7B73C6C7BFC6C7BF C9CAC2CBCCC4CCCDC5CACBC3C6C7BFC5C6BEC7C8C0CCCDC5D3D4CCD7D8D0D2D3CDD0D3CCCED3CD C9D3CBBFCAC4CFDCD5B5C4BF4E5E5B41504D4C58545A635E4F54506A6965DBD6D2EBE1DFD8D1CB DADAD0DCDED1D2D4C7D6D8CBDADCCFDBDDD0CED0C39EA093B0B2A5D5D7CAE8EADDC2C4B7BDBFB2 D5D7CAD0D2C5D7D9CBCBCFBEE1E6D2D6DDCBD1D8C6D6DECFDAE2D3B6BEB15E66596C6F647A7D72 7E7E72737466C9C5B9D0CDBEDAD3C3DBD6C3D8D5C2C5C4AFADAC97CCCBB6DAD9C4DDDCC7DFDEC9 9B9A8563624DC6C5B0E0DFCADCDBC6E7E6D1AAA994CDCCB7B8B5A2ACA497D9CFC5EAE0D6E0D6CC E2D8CEE6DCD2E2D8CEE3DBD0EEE6DBE0DACED1CBBFCAC4B8CBC7BBCECABECCCABDC7C8B8BBC0A9 D1DABFE2E7D0DFE3CCDDDECCE3E4D2E7E4D5DFDCCDEAE4D6A8A093A59E8E9F9685A097869D9582 A39884938B76ABA692D9D8C3E5E9D2D4DEC5D4E1C7CDDAC0C7D1B8D7DCC5ADAB96776F5C7E7160 857565847363807060897C6BCDC6B3D8DAC4D1D6BFC1C5AECCD0B9D9DBC5DCDEC8C2C1AC73725D 514F3A5B5642554E3B514936776F5CBAAF9DDDD2C0D7D1BBD3D5BDD4D8BDCCCCB2D8D2BABDB19B 6F5E4A4D3825543D2B5F483657422F867561C9BDA7CCC6AEC6C6ACBDC1A68687675B522BB4A378 C8B188CDAF89EECDAAF4D5B6E9D1B7DDCEB9B7B4A39498899CA4958F9788A4A796DAD5C1DCD0B8 E5D3BBE2CCB5EBD6C1DACBB8B2AB9997988A999D8E9CA391969E87C5C7AFE1E0C46C664C5B503A D1C6B2D5C9B9C3B9AD98908352503B29291142422AA4A48CD2D2BACDCDB5CDCDB5B8B8A0A2A28A 96967E989880A1A189A0A088C7C7AFD5D5BD8E8C757D7865B2AB99898272403929413A2A423B2B 8D8676D0C9B9E8E1CFE2DBC8948D7AD1CBB3DAD4BAD4CFB2DBD6B8D1CBABD6CBABD7CDAAD8CFAE D8D2B0DBD4B7DCD9BADDD9BCDCDBBDDDDCBEDBDABCDAD5B7D7D2B2D8CFB0D6CDACD7CDAAD7CCAC D8CDB1E0D4BAE2D7BBDED3B5DFD4B6E5DABAE3D9B6DCD2AFDAD0ADDAD0ADDCD1B1E0D5B5E4D9BD E6DBBFE6DAC0E4D8BEE5D7BDE5D7BDE5D7BCE5D7BAE5D7BAE3D8B8E3D9B6E3D9B6DAD2AEE0D8B4 D7CEADDFD6B5DCD5B8DAD3B6E8E1C5DBD1B6EADAC3EAD6BE9D8667B09671E4C597D3B583E1C38F E3C996E0CA99DCC99ED9C79FD9C7A3DBC7A6E0C7A8E6C9ABE9CBA9E2C79CE1C699E0C39BDEC09A DEC09CE0C29EE2C49EE2C79CE0C596D1BC87E0CC97D5C591CCBE8FD4C99CCBBF99CBBF97BCB080 B9AB7AC6B388C0A882B49777AE8D6EDAB392D0A884C8A178D2AC7FD8B784DABC88DBC190DCC695 D7C297CDBC91A2936A82744F7A6D4D897F64A8A089CAC0A7CFC0A1C3B088CFB886D4B77FD6B67B D9B67CD7B681D6B588D6B592D3B694CBB28AAF99726D5A3C3B2C15302416271E152C251D474337 938E7ABCB599C4B794C5B288C9AE81C8A877D8B281D9B988928155958D66DAD4B4C2BEA58C8D7B 4C5041565E4F515C4C5865535C6B545E6C535D6B525A634E555E4B747B6BA7AB9CD5D3C4D5D2C3 D6D0C0D6D0C0D8CFBED8CFBEDCCFBEDDD0BFD5C6B3DECFBAD1C5AFB4A890B1A78EC6BCA3A69F83 5D5D434A563E586A545966545D66555A6052595D4F616759565E4F55604F63705C98A48EB0B8A1 CACCB6ADA892473C269E9278BFB6959C98736D6A4B5353375558434E55433C4739344235435047 46564B4353484859494754435D6A5697A08BB2B799C0B790C5B88CC4BB92C4BF97C4C09BC4C29B C6C19BC7C096C9BE91CFC295CAB98DC8B98ED0C29D726845302B0EA09F83C5C4A6B2B394B2B298 72745C494B35595C49535746585F4F4F5549444F41505A4F4F5B4F4C5A4B4D5B4C465747586754 909C86A4AC94BABFA9A1A48F3E3C2D9D9B8CC7C8BAD4D5C7CDCFC1CECFC1D0CABCD0C4B6D6C0B5 85645B532B234D251D5033254C32234B2E204A2A1D47271C43271B40281C3C2A1C372F227B796A ADB1A2AEB5A5C8CEC0C9CDBFD1D1C5C7C7BBCACCBFCACCBFCACCBFCACCBFCACCBFCACCBFCACCBF CACCBFC8CABDC8CABDC7C9BCC6C8BBC5C7BAC5C7BAC4C6B9C4C6B9C2C4B7C2C4B7C0C2B5BFC1B4 BDBFB2BCBEB1BABCAFBABCAFA8B28DA0AA879BA2819BA185A1A38BA2A48C9F9F8599997DA0A182 9B9C7CA0A483AFB494B5B9A0858A762B312342453C72726A4A49442928231A1B15141710757871 CDD0C983867D46483D686A5C898876989681ABA58F9F987E958B70A09275A3906F927E5D9B8669 9A896FA0917CB5AA98B9B1A6BAB6ADBBB8B3B8B9B4BFBFBDB0B2AFAFB1ACBFC1BCBFC1BCC1CBC3 B6CABFA0B8AB3F4F4521282131322D413D3A41393756514EB4B3AFB6B8B3ABB0AAA4ABA49CA39C 858C858F918CBDBFBAB7BCB6ADB2ACACB1ABB9BEB8C3C8C2BFC4BEB8BDB7B5BAB4A8ADA7A9AEA8 ABB0AAACB1ABACB1ABAAAFA9A8ADA7A6ABA4AAB2A78C94879CA69BAAB4A9A5AFA4A8B2A9A2ADA5 A0ABA3ABB6B0C3CEC8CEDAD6C6D2CEA5B1AF414D4B222E2C2A35312F342D38393134352D81827A CACBC3C8C9C1CCCDC5CECFC7CCCDC5C9CAC2C6C7BFC4C5BDC7C8C0CCCDC5D2D3CBD6D7CFD1D4CB D0D3CACED3CCC9D3CBBEC9C3CBD8D1ADBCB743524D323E3A323D39373D393335325E5D59D5D0CC E0D8D5CDC6C0DADAD0DBDDD0D2D4C7D5D7CAD9DBCEDADCCFCDCFC29EA093A7A99CD2D4C7DADCCF AFB1A4ACAEA1C9CBBECFD1C4DBDDCFD5D9C8E4E9D5D7DECCCED5C3D4DCCDDBE3D4B1B9AC586053 73766B7D80757E7E72747567CBC7BBD0CDBED8D1C1DAD5C2DEDBC8C3C2ADA9A893C9C8B3DEDDC8 E0DFCAD9D8C39A998475745FC8C7B2DEDDC8DCDBC6DEDDC89C9B86D4D3BED7D4C1DBD5C7EEE6DB E9E1D6DAD2C7DED6CBE6DED3E3DBD0E0D8CDE5DDD2E2DCD0E1DBCFE2DED2E8E4D8EBE7DBE9E7DA E4E5D5D8DCC5DDE3C9E2E6CFE0E4CDDEDFCDDFE0CEE3E0D1E3E0D1EDE7D9BDB7A9D4CEBEE0D9C7 E7E0CEE3DCC9E5DDC8D5CFB9D1CCB8E3E2CDDEE2CBD2DAC2D3E0C6CBD8BEC5CFB6D6DBC4CFCDB8 BAB3A0C9BEACC5B8A7C6B6A6C9BCABBDB5A2D6D1BDD6D8C2D4D8C1CED2BBD8DCC5DBDDC7D7D9C3 C6C5B096958096947F999480918C788C8572A09986C6BEABDCD4C1DAD5BFDBDBC3D6D9BECACAB0 D4D0B7C0B59F86776272614D7B69556C5A4663523E877863C3B8A2CECAB1D1D1B7CBCEB3949374 595029B4A378CAB38ACDAF89ECCBA8F1D2B3E9CFB6E0D0B9B9B4A1989A8C9BA193919888A7A896 D9D2BFE0D1BAE7D3BAE6D0B8EAD6BED7C8B3B1A996999687999A8A9C9F8C999B85BEBCA3E2DCC2 71674E544A31BBB09CBFB6A5BDB5AA9794854B493426260E3D3D259D9D85CCCCB4C6C6AECACAB2 BFBFA7ADAD95B4B49CC1C1A9C6C6AEB9B9A1CFCFB7D3D3BB8B89726E6956B7B09E827B6B3C3525 393222332C1C837C6CC9C2B2E6DFCDDDD6C3938C79DCD6BEEAE4CAE0DBBEE3DEC0DBD5B5DAD1B0 DCD2AFDDD4B3DDD7B5DFD8BBDFDCBDE1DDC0E0DFC1DDDCBEDBDABCDBD6B8D7D2B2D7CEAFD6CDAC D6CCA9D6CBABD7CCB0DED4B9E1D8BBDDD4B5DED5B6E3DAB9E1D9B5DAD2AED7CFABD8D0ACDAD1B0 DCD3B2DCD3B6DCD3B6DBD1B6DBCFB5E5D7BDE5D7BDE3D8BCE3D8BAE3D8BAE3D8B8E3D9B6E2DAB6 D8D0ACE4DCB8DED8B6E3DDBBE4DDC0E3DCBFEBE4C8E2D8BDE2D4BAE6D5BBA89374B8A07AE6C99F DDC192E4C899D6BE90DEC99ED4C29AD1C19DD7C7A5D9C5A4D6BF9FDCC2A1E8CCA7E1C69BE0C598 DFC29ADEC09ADEC09CDFC19DE1C39DE1C59DE4C99CC4AE7CBBA774AB9B68A29467A49870988B69 8F8561857951887B5193815B8F78568F7456907152C7A381D3AD86D8B386DDB987DCBC89DABF8A DAC391CFBA8BAD9A708B79534B3B172B1E001C1100332812625A459D927CC4B699CBB993CBB383 D0B37BD2B277D5B278D5B47FD6B588D5B791D4BA97BDA57F7A66412D1C001405001F13071B140C 151108211D124F4A379F987CC4B794C9B88DCEB688D1B180D9B583D3B38298875B928A63DBD5B3 C7C3A8999884595B4D5D63555964545E6B59627059616F56606E555C6550555E4B717868A3A597 CCCABBCDCAB9CFC9B9CEC8B8D0C7B6D1C8B7D4C7B6D4C7B6D1C2AFDACBB6D0C4AEB5A991B2A88F C5BBA0A8A18566644B4B543F586553575F505D61535D5F525C5C50636558565A4C5A6151646D5A 9BA38EB4B7A2CECCB7B5AD9850412C9C8E74C5BC9BA4A07B726F5056563A595C47575E4C485345 404E41414E454B5B504E5E534F6050475443586551949D88B3B89ABDB48DC2B589C2B990C1BC94 C2BE99C1BF98C3BE98C5BE94C5BA8DCBBE91CBBA8ECABB90D2C49F766C49302B0E939276C1C0A2 B0B192B4B49A7D7F674F513B585B48545847545B4B4F5549434E404D574C4A564A465445485647 445545586754939F899FA78FBABFA9ADB09B434132939182CECFC1D2D3C5D0D2C4D1D2C4D0CDBE D1C5B7D5BFB48A6C62502A2149231A482B1D452B1C4427194326184224194125193E261A3A2A1B 332B1E706E5FABAFA0B0B7A7CACEC0CBCFC1CFCFC3C5C5B9C9CBBEC9CBBEC9CBBEC9CBBEC9CBBE C9CBBEC9CBBEC9CBBEC7C9BCC7C9BCC6C8BBC6C8BBC5C7BAC4C6B9C3C5B8C3C5B8C2C4B7C2C4B7 C0C2B5BFC1B4BDBFB2BCBEB1BABCAFBABCAFA8B28DA9B390ACB392B0B69AB5B7A1B5B7A1B5B59D B3B397A9AA8BA8A989ABAF8EACB193B1B59E737766171D1130332C77787250514B181913090C05 21241D575A53767972494A426D6F628E8F7FA7A49199947EA29B81887E6383785CAB9C7D958160 8571508A75588B7A609B8C77B4A997B6AEA3BAB6ADBCB9B4B7B8B3BEBEBCB0B2AFB2B4AFC3C5C0 C2C4BFC3CDC5B4C8BD98AEA23D4A41232A232B2A26342F2C312C2947423FB9B8B4AFB1ACA2A7A1 A0A7A0979E97838A83949691C2C4BFCBD0CABABFB9B0B5AFB6BBB5BEC3BDBBC0BAB7BCB6B6BBB5 B5BAB4B5BAB4B6BBB5B6BBB5B6BBB5B4B9B3B3B8B2B2B7B0ADB5AA89918498A095B2BCB1BDC7BC BBC5BAADB7AEADB8B0AAB5AFB8C3BDC6D1CDC4D0CCA5B1AF44504E2B3735323D3943463F43443C 42433B92938BD2D3CBCBCCC4CFD0C8CFD0C8CBCCC4C8C9C1C5C6BEC4C5BDC6C7BFCBCCC4D1D2CA D5D6CED2D5CCCDD3C9CBD2CAC8D2C9BFCAC2CCD9D2ACBBB641504B505C584E59534D534F484A45 75746FE3DED8E6DFD9D7D0C8D9D9CDDBDDD0D1D3C6D5D7CAD8DACDDADCCFCDCFC29D9F92A8AA9D CFD1C4C4C6B99B9D90A8AA9DC9CBBED1D3C6D9DBCDD8DCCBE1E6D2D8DFCDCCD3C1D3DBCCDBE3D4 A7AFA24C5447595C51585B5059594D616254CDC9BDDAD7C8DCD5C5D8D3C0DCD9C6C1C0ABACAB96 C9C8B3DEDDC8DFDEC9D8D7C2B0AF9AA5A48FD8D7C2DEDDC8DEDDC8DAD9C493927DD2D1BCE0DDCA E1DBCDE9E3D7E4DCD1D8D2C6DBD3C8E3DDD1E5DDD2E1DBCFE5DFD3E3DDD1E0DCD0E0DCD0E2DED2 E3DFD3E4E2D5E4E2D3E5E9D2E0E4CBDEE2CBE1E3CDE0E1CFDDDCCADFDDCEE6E3D4E9E6D7BEBBAC DDD7C7E8E3D0EDE8D5E8E3CFEEE9D3E4DFC9E6E1CDE5E3CED9DBC5D4DCC4D8E5CBCEDBC1C8D2B9 D6DBC4DCDBC6DAD3C0E9DECCE2D7C5E3D8C6E9E1CED7D0BDD6D4BFD2D4BED2D6BFD3D5BFD8DAC4 D8DAC4D5D7C1D3D2BDC7C6B1DDDBC6DCDAC5D7D5C0D3CEBAD3CEBAD7D2BED8D3BFD7D2BCD6D6BE D3D3B9CAC8AFDAD6BDD1CBB3B4A993B6AA94C0B49EC0B49EAA9E88ACA18BC6C0A8C7C3AAC7C5AC BBBBA1817E5F574E25B2A477CBB48ACDB088EACAA4EFD1AFE8CEB3E0D0B7B3AC9A969787969A8B 909485A5A492D4CCB7E3D1B9E7D2B7E9D1B5E5D1B6D1C1AAB0A5919A93819794839A9784999480 B7AF98E2D8BF7D71575C5038AFA792B0AB98B7B3A799978A5756422F2F1742422AA3A38BD0D0B8 C1C1A9C9C9B1D1D1B9C3C3ABC9C9B1D4D4BCDADAC2CACAB2D8D8C0E3E3CBB1AF9A928D7AD6CFBD 8881713D3626332C1C342D1D908979E3DCCCE8E1CFD5CEBB847D6ACEC8B0DFD9BFD7D2B5E0DBBD DED8B8DDD4B3DDD5B1DFD6B5DED8B6DFDABCE1DCBEE1DDC0E0DFC1DCDBBDDCD8BBDBD6B8D9D4B4 D9D3B3DAD1B0DCD2AFDBD2B1DAD1B4E0D6BBE1D8BBDDD4B5DDD4B5E4DBBAE4DCB8DED6B2E0D8B4 E0D8B4DED5B4DCD3B2DAD1B4DCD3B6E1D7BCE5DBC0E3D7BDE5D7BDE3D8BCE3D8BAE3D8BAE3D8B8 E2DAB6E2DAB6DAD2AEE3DDB9E2DCBAE0DAB8E2DBBEDFD8BBDFD8BCE0D6BBDFD1B6E7D8BBB09C7B AE9873CCB38ACBB085D0B78EC4AD84BEAC88B8A887B8A98ABAAB8CB3A080AA9673B79F7BD0B48D DFC497DFC495DFC298DFC29ADFC19DDFC19DE0C29CDFC39BDBC093B19B6C998455918052918259 978A679486698A7F63A097769C926F998A6B9B886AB39A7CB09373D3B38DDBB88ED7B585D8B782 D4B680D3B883D4BD8BC1AC7F87744C4C3C1A2D1E00291B001E12001C1401251C0B544937A4967C D1BF9BCFB789D5B781D9B97EDCB97FDBBA85DBBA8DD7B993D4BA9797815C4A3615110000170A00 2C22192A231D201D16211F13373421938D73BDB390C8B78CD3BB8DD0B280D1AD7BC8AA7898875B 867E57D3CDABC5C1A69D9C885F6251595F515C64555E69585F6D565E6C535F6C525C664E565E49 7175649EA190C5C4B2C7C4B3C9C3B3CBC4B2CCC3B2CDC2B0CEC1B0CDC0ADCFC0ABD7C8B3CFC3AB B7AB93B3A78DC3B99EADA388726E554B533E596251575B4D5B5D505F5D515F5D5166645856564A 5C605265695A9CA08FB6B8A3D1CCB8BEB39F56453197876EBFB695A39F7A74715256563A5B5E49 5F6654535E504A584B4451484B5B504B5B504D5E4E4A57465D6A5698A18CB5BA9CBBB28BC0B387 BFB68DBFBA92C0BC97BFBD96C1BC96C3BC92C4B98CC9BC8FCBBA8EC9BA8FD1C39E7B714E322D10 87866AC1C0A2B0B192B6B69C888A7251533D5053405054434A51414A50443C4739444E433F4B3F 3B493A3E4C3D3B4C3C505F4C94A08A9CA48CB9BEA8BABDA84A4839868475D2D3C5D0D1C3D2D4C6 D2D3C5D2CFC0D0C7B8D2BEB394786D4E29204520174327193F2818412517412416412318402619 3F291C3C2C1D30281B636152A8AC9DB1B8A8C9CDBFCDCFC2CDCDC1C4C4B8C9C9BDC8CABDC8CABD C8CABDC8CABDC8CABDC8CABDC8CABDC6C8BBC6C8BBC6C8BBC5C7BAC4C6B9C3C5B8C3C5B8C2C4B7 C2C4B7C2C4B7C0C2B5BFC1B4BDBFB2BCBEB1BABCAFBABCAFA1AB86A4AE8BAAB192ADB397AFB19B B0B29CB4B49CB6B69CAEAF90A9AA8AAAAD8EA7AC8EB7BBA4717564161C1032373080827D4B4D48 12140F0406011C1F1852554E7071694F514681827491907E98937F777159958B707E73557B6E4E B4A4838C78577D69487E694C7F6E549A8B76B5AA98B4ACA1BBB7AEBDBAB5B7B8B3BCBCBAAFB1AE B3B5B0C5C7C2C3C5C0C1CBC3AFC3B890A69A404D4431383133322E35302D35302D4B4744AAABA6 989D978F968F8F99918990897A817A90928DBABCB7CACFC8B6BBB4A7ACA5AAAFA8B2B7B0B3B8B1 B1B6AFB1B6AFB7BCB5B6BBB4B5BAB3B4B9B2B4B9B2B4B9B2B5BAB3B6BCB2AFB5A9878F8090988B B1B9ACC5CDC2C0CABFADB7AEB4BEB5B6C0B8B1BCB4BAC5BFC0CBC5A5B0AC495450303C38323D37 45484140413944453D9B9C94D5D6CECACBC3D1D2CAD0D1C9CACBC3C8C9C1C4C5BDC3C4BCC5C6BE CACBC3D0D1C9D5D6CED4D7CCCCD2C6C8D0C5C6D0C7C0CBC3D0DDD4B1C0B944534C4C5952535C57 5359554C4E4974736ED4CFC9D2CBC5CCC5BDD8D8CCDADCCFD0D2C5D4D6C9D7D9CCD9DBCECCCEC1 9C9E91B8BAADD4D6C9B4B6A997998CB9BBAED9DBCEDADCCFD9DBCDD4D8C7DADFCBD8DFCDCAD1BF D0D8C9D9E1D29AA29540483B4A4D42484B404D4D41616254D3CFC3DEDBCCDED7C7DAD5C2D7D4C1 C1C0ABB4B39ECBCAB5DCDBC6DBDAC5DCDBC6D1D0BBD3D2BDE5E4CFD8D7C2DDDCC7DCDBC695947F D4D3BEDEDDC9D8D5C4DCD9CADED8CAD3D0C1CDC7B9D2CFC0E0DACCE1DECFE0DDCEE0DDCEE0DDCE E0DDCEE1DECFE2DFD0E4E1D2E5E4D2E6E5D0DADCC4D9DBC5E3E2CDE3E2D0DCDBC9DDDBCCE6E4D5 E5E3D4BCBAABD9D6C5E0DDCAE0DDCADBD9C4E4E2CBE0DBC5E9E4D0DEDCC7D6D8C2DCE1CAE0EAD1 D3E0C6CDD7BED5DAC3DCDBC6D9D4C0DFD7C4DDD5C2E1D9C6E5DECBD9D4C0D5D4BFD4D3BED3D5BF D8D7C2D7D6C1D8D7C2D6D5C0D5D4BFDFDEC9D7D6C1D6D5C0D7D6C1DAD8C3D6D4BFCFCDB8CCCAB5 CECCB5D1CFB8CCCAB1C7C3AAD6D2B9D3CFB6C6C2A9D6D0B8DBD5BDE6E0C8D7D1B9C8C4ABC4C0A7 B5B198B6B299B6B49B8C8769564D24B1A374CAB387CCB186E9C9A2EED0ACE7CEB0E1D0B6AEA693 999886959789929383A5A08DCFC3ADE6D0B9E9CFB4E4CDAEDECBABCEBEA4B8AC94ACA18FABA390 B0A593B1A491C1B29BDCCCB374644B574B33ABA390ACA998B2B4A78E92834648332625103C3B26 A2A18CD0CFBAB6B5A0BDBCA7D5D4BFC5C4AFC5C4AFCAC9B4D2D1BCC2C1ACC2C1ACCBCAB5AAA893 86816EC3BCAA837C6C4D4636423B2B433C2C8A8373D6CFBFE7E0CED7D0BD8A8370D6D0B8E6E0C6 DAD5B8DDD8BAD8D2B2DCD3B2DCD4B0DDD4B3DDD7B5DDD8BADED9BBDEDABDDFDBBEDCD8BBDBD7BA DBD6B8DBD6B6DCD6B6DED8B6E2DAB6E3DAB9DDD4B7E1DABEE1DABDDBD5B5DCD6B6E3DDBBE4DEBA DFD9B5DAD4B0DCD6B2DDD7B5DAD4B2D7D0B3D9D2B5E0D9BDE9DFC4E3D7BDE3D7BDE3D8BCE3D8BA E2D9BAE2D9B8E2DAB6E2DAB6DFD9B5E4DEBADFD9B7D6D2AFD7D2B4D2CDAFCEC9ACDFD8BBEEE3C5 F2E5C5A99675806C478B734D836B4587704E87725371624577694E7E72588075598071528A7854 AA946DCAB286DDC293DDC392DFC296DFC29ADFC19DDFC19DDEC09ADDC199EED3A8D4BD91C1AC81 B5A4799D8D69897C5C8A7B64857A647D755E716952675B4386765DCEB99ED3B89ADCBE98D8B78A D7B882D9BA81D4B77DCFB67ED0BA89B9A67B74623E2B1A001D0D002C200A2B1F0F251B0F170F04 372E1F968A72CEBE9DCCB589D3B883DBBB82DFBC82DCBB86D7B788CFB28AC8AE8B967F5D463315 22110035271A3A312A2D282429262129261D4D4C3A9B977CB2A885B6A77CC9B382C6AB76C8A772 CDAF7B9B8A5C7E754CCFC6A5C6C0A6A4A38E656857565C4E5B64535864505A664E59664C5B684E 5B654D575F4A6F73629B9C8CC9C8B6CBC8B5CFCAB7D2CBB9D3CAB9D3C8B6D2C5B4D3C4B1CEBFAA D5C6B1D1C2ABBAAE94B4A88EC0B69BAEA5887B775E4D503D595F5157594C5E5C50635C54625B53 68645B59574B5C5E516163559C9D8DB8B5A4D2C9B8C7B8A55E4936907E66C9BE9EB2AE89848162 5E5E425C5F4A5D64524F5A4C42504349564D46564B3F4F444556464D5A4966735F9FA893B5BA9C BBB28BBFB286BFB68DBEB991BFBB96BEBC95C0BB95C2BB91C4B98CC7BA8DCAB98DC7B88DCEC09B 7F75523530137B7A5EC3C2A4B1B293B8B89E91937B52543E4649364C503F4148384C52463C4739 424C413E4A3E3B493A3E4C3D3A4B3B4D5C49919F8899A38AB5BAA4C2C5B0545243767465D0D1C3 CFD0C2D3D5C7D3D4C6D2D0C1D0C9B9D0BEB29F84794C2A20412116412A1A3F2A19412718422618 42261A43291C422C1F3D30202E281A545545A3A798B0B7A7C6CABCCDCFC2CBCBBFC5C5B9C9C9BD C8CABDC8CABDC8CABDC8CABDC8CABDC8CABDC8CABDC6C8BBC5C7BAC5C7BAC4C6B9C3C5B8C2C4B7 C2C4B7C2C4B7C2C4B7C2C4B7C0C2B5BFC1B4BDBFB2BCBEB1BABCAFBABCAFA7B18EA9B390ABB293 A8AE94A6A893A4A691A8A792AAAA90B3B495ABAC8DACAF90A9AD92C0C3AE6F73641A2016464B45 6C716D2F34302126221D221C252821878A81BDBFB47576687473617876617B755D5C55399A8F71 887B5B796A49B5A5838A76537C684777624578674D9B8C77B7AC9AB3ABA0BCB8AFBFBCB7B7B8B3 BABAB8ADAFACB2B4AFC5C7C2C0C2BDBFC6BFB5C6BC899D92364139282D2728272336312E504B48 7A7673A5A6A1959A94919891939D958B928B7F867F90958FB0B2ADA4A9A2929790898E87949992 A4A9A2ABB0A9ACB1AAADB2ABAEB3ACADB2ABABB0A9ABB0A9ACB1AAAEB3ACB1B6AFB2B8AE9EA498 848A7C909688A7AFA2B5BDB0ADB5AAA1A99EB4BEB5BCC6BEADB7AFB4BDB8BCC7C19EA9A5414C48 2C37332B342F383B342E2F273A3B33999A92D1D2CAC5C6BED1D2CAD0D1C9C9CAC2C7C8C0C3C4BC C2C3BBC4C5BDC9CAC2D0D1C9D3D6CDD3D9CDCAD2C5C6CEC3C5CFC4C1CDC3D1DED5B2BFB844514A 4A554F5660585A615A595C5585857DDDDAD1D8D1C9D8D4CBD7D7CBD9DBCECFD1C4D3D5C8D7D9CC D8DACDCBCDC09B9D90BABCAFD0D2C5A4A69995978AC5C7BADBDDD0D5D7CAD0D2C4D0D4C3D4D9C5 DAE1CFC8CFBDCDD5C6D8E0D1929A8D3B433654574C585B50646458757668DBD7CBDAD7C8DCD5C5 E0DBC8D6D3C0BFBEA9B7B6A1CBCAB5DCDBC6D9D8C3DCDBC6E7E6D1E4E3CEE3E2CDD0CFBADCDBC6 DFDEC99B9A85DCDBC6E1E0CCE0DDCCDAD7C8DAD7C8CECCBDBDBBACC3C1B2D6D4C5DEDCCDDBD9CA DEDBCCE2DFD0E5E2D3E5E2D3E6E0D2E3DDCFDEDBCADFDDC8D9D7C0DBD9C4E3E2CDE4E3D1DDDCCA DDDBCCE5E3D4E2E0D1BCBAABDCDBC9E6E5D1E6E5D1DFDEC9E8E6CFE1DFC8E6DFCCDCD7C3DBDAC5 E1E6CFDEE8CFD1DEC4CED8BFD3D8C1E0E2CCDAD8C3D8D1BEDAD3C0DED7C4DFDAC6DCDAC5DCDBC6 D6D5C0D7D6C1DBDAC5D4D3BED8D7C2D8D7C2CBCAB5DAD9C4D0CFBACDCCB7CFCEB9D3D2BDD3D2BD CFCEB9D1D0BBD7D7BFDCD7C1D6D0B8CDC9B0D7D3BACDCBB2C5C5ABD5D5BBCECEB4C7C7ADD0D0B6 C9C9AFBBB9A0A6A289AEAA91C4BEA6AEA78A564D22B0A271C7B283CAAF82EACAA1F1D1ABE8CDAF E0CCB3B4A995A8A592A4A595A5A492B0A895D0C0A9EAD0B9E8CDB2E1CAA8DBC9A5D2C3A4CCBEA3 C8BCA6CCBFACD3C2B0D6C4B0D6C1ACD7C3AB64523A564730B3AC99B9B8A6BDC3B5949C8D3B3C2A 2D2C17474631A4A38ED2D1BCBAB9A4BFBEA9D6D5C0CAC9B4CAC9B4C7C6B1CBCAB5BDBCA7B4B39E B0AF9A8C8A7566614E98917F8A8373807969777060716A5A817A6AB3AC9CE7E0CEDBD4C18E8774 D4CEB6E2DCC2D9D4B7DED9BBD6D1B1D9D3B1DAD4B0DAD4B2DBD5B3DBD6B8DCD7B9DCD8BBDCD8BB DCD8BBDBD7BADBD6B8DAD5B5DCD6B6DED8B6DFD9B5E0DAB8D8D1B4DFD8BCE0D9BCDCD6B6DDD7B7 E3DDBBE2DCB8DCD6B2DED8B4E2DCB8E3DDBBDED8B6D7D0B3D5CEB1DAD3B7E1DABEE2D8BDE3D7BD E3D8BCE2D9BAE2D9BAE2D9B8E2DAB6E0DAB6C9C39FC1BD98B7B390ACA885B0AB8DAAA587A8A386 D1CCAED2C9A8E3D9B6A799768E7C58B49D7BB09979A08B70A7957DAB9F89B1A692A8A08B988E75 998B6EB2A280D1BE94E2CC9DD9C290DCC28FDFC394E0C399E0C29CDFC19DDDBF99DBBF98D9BD95 D9C298D1BB92B7A57F6D5C3E2618001F0F001E12041F190B140E000D04004E3F2CC5B199D8C1A2 D6BA92CEB07ED7BA80DDC084D7BD80D0B77FD1BB8ABEAB817966462C1C022516013427172D2319 362D24332C244D453AA29582C6B597C3AC82CBB07BD4B47BD7B77CD5B47FCEAE7FC3A67EBBA17E A79372503F252F200D3E32262E26231F1B1826252326261E3B3C2C939276ADA581B5A67BD0BA89 CEB37ECDAE78D6B884A594667B7249D0C7A6CBC6A9AFAD986F725F585C4D5E675659624D57634B 5663495C664B5C644C595E486E7160969787C6C3B0CAC5B2CEC7B5D0C9B6D3C8B6D1C6B2D1C2AF CFC0ABCFC0ABD5C6AFD2C4AABEB096B3A78DBDB296ADA487827C624C4F3C595F515B5B4F605E52 635C54635C546A665D5D5A515A5C4F5C5E50999A8CB6B3A2D1C8B7CBBCA9614C3B89755DCEC3A3 BDB994908D6E626246585B46585F4D4B56483E4C3F4A574E43534839493E4051414C5948697662 A0A994B4B99BBBB28BC0B387BFB68DBFBA92BFBB96BFBD96C1BC96C2BB91C2B78AC4B78ACAB98D C6B78CCCBE99847A573732156E6D51C6C5A7B2B394B9B99F9A9C845456404144314F5342414838 555B4F434E404751464551454654454957484051414E5D4A8B99829BA58CB0B59FC6C8B35F5D4E 686657CCCABDCFD0C2D1D3C5D0D2C4D2D0C1D0CABACDBFB2A993864B2D22402217402D1C3E2D1B 402B1A43291A43291C422B1D412E203E31212F291B4849399FA394ADB4A4C1C5B7CDCFC2CBCBBF CAC8BCC8C8BCC7C9BCC7C9BCC7C9BCC7C9BCC7C9BCC7C9BCC7C9BCC5C7BAC5C7BAC4C6B9C3C5B8 C2C4B7C2C4B7C1C3B6C1C3B6C2C4B7C2C4B7C0C2B5BFC1B4BDBFB2BCBEB1BABCAFBABCAFB2BC9A B2BC9AB1B79BABB197A6A893A2A48FA4A38EA5A58DA7A78BA2A286A8AB8EA1A58AB4B7A2545849 0C12084F544E4046421218141A1F1B1F241E393C35ADAFA4D9D9CD817F705954416A644E80765D 62573BA8997A89795771613DB9A7838C78557F6B4A75604376654B9E8F7ABAAF9DB2AA9FBEBAB1 C1BEB9B7B8B3B8B8B6ABADAAB0B2ADC3C5C0BCBEB9B9C0B9B1C1B784958B3641392E332D2C2B27 3F3A3767625F9B9794A8AAA59DA49DA0AAA2A2ADA5939D95888F8890958F9EA09B91968F7D8379 70766C797F75888E848F958B91978D93998F90968C91978D92988E949A90969C92989E949AA096 9CA2968F93857F86768B9282999F919FA597939B8E899186A5ADA2AEB5AD9FA9A0B0BAB2BDC7BF 969F9A363F3A28312C2F362F373A332A2B23393A329D9E96D0D1C9C3C4BCD0D1C9CFD0C8C9CAC2 C6C7BFC3C4BCC1C2BAC4C5BDC9CAC2CFD0C8D2D5CCD3D9CDCAD2C3C6CEC1C5CFC4C0CCC2CFDBD1 ABB6AE39443C343F373D473F3F463F474A437F8078DAD7CECDC9C0CECABFD7D7CBD8DACDCFD1C4 D2D4C7D6D8CBD7D9CCCACCBF9B9D90B3B5A8CBCDC09FA1949C9E91CDCFC2D2D4C7CACCBFCCCEC0 D0D4C3D3D8C4DDE4D2C7CEBCCBD3C4D8E0D191998C3E46395C5F545A5D5264645877786ADDD9CD DAD7C8DAD3C3DFDAC7DBD8C5BDBCA7B3B29DC8C7B2DFDEC9DCDBC6D5D4BFE6E5D0E2E1CCDEDDC8 CFCEB9DCDBC6DBDAC5989782DDDCC7E3E2CEE9E8D6D9D8C6D6D5C3D0D1BFC0C1AFC6C7B5D5D6C4 D5D6C4DFE0CEE1E0CEE4E1D0E7E4D3EBE5D5EAE3D3E6DFCFE1DAC8E0D9C6DED9C3E1DCC8E5E3CE E3E2D0DDDCCADCDDCDE2E3D3D6D7C7B1B2A2D4D5C3E0E2CDE1E3CED9DBC5E1E1C9DAD8C1E8E1CE E2DBC8E3E1CCE2E6CFD4DCC4CAD4BBCCD4BCCFD4BDD7D9C3D6D4BFCFC8B5CFC8B5D1CAB7CECCB7 D0CFBACDCCB7D7D6C1D5D3BED4D2BDC6C4AFD4D2BDDDDBC6C9C8B3D8D7C2DFDEC9DCDBC6DADCC6 DBDDC7D8DAC4D2D4BECFD1BBD1D1B9DDD7C1D7CFB8D1CBB3D6D4BBCACAB0C4C7ACD1D5BAC0C4A9 C2C6ABD0D4B9CACDB2BBBBA1ABA990B4AE96BEB69FA0977A584F24AFA170C4AF80C8AD80EBCAA1 F3D3ADE7CCAEDECAAFC4B9A3C4BFACC3C2B0C4C1AEC6BBA7D7C5AFEDD1BBE7C9ADE4CEA9DDCBA5 DACAA9DBCCAFDDCDB6DFCEBAE3CEBBE6CFBDE4CBB7E0C7B1725E4665563FB4AD9AA8AB98ADB8A8 8D98885C5F4C5D5C4862614D92917DADAC989B9A869B9A86A2A18D81806C8685717675616B6A56 67665273725E71705C43402D2F2A17453E2C5A5343716A5A6F6858766F5F6861518E8777E0D9C7 DAD3C08D8673CBC5ADD7D1B7D6D1B4E1DCBED8D3B3DAD6B3DAD6B1DAD6B3DBD7B4DCD7B9DCD7B9 DCD8BBDCD8BBDEDABDDCD8BBDAD5B7D8D3B3D6D1B1D5D1AED5D1ACD6D2AFCDC8AAD7D2B5DDD8BA DCD7B7DDD8B8E0DCB9DBD7B2D1CDA8D3CFAAD4D0ABD2CEABCAC6A3C5C0A2CAC5A7DAD5B8E9E2C6 E2D8BDE2D8BDE2D9BCE0DABAE0DABAE0DAB8E0DAB6DFDBB698946F84805B7773506D6A47777455 726F50777356B9B496D7D1AFEDE5C0AFA27F988A67C9B696A4907557452F483926362D1E3E3727 342E1E2E28125C5336AA9C79D5C499D5C18FD8C18BDBC28CDEC292E0C397E0C39BDEC09ADCBE9A DABE97DBBF98E5CEA5E5CFAAD1BE9D7D6C522617021B0B00150B02211C1817140F0C05004C4034 CBBAA6DAC5A6D3BA91D1B882C6AC6FD1B876D0B878C8B278CCB886C1AF87857456403019423525 4F42393C332C4139363A32304A433B9C9080B8A98CBEA87FC5AB78CFB077D3B378D3B27CCDAF7D C5A87EBEA47FAA957643331A1A0D00241A10120A080D09081B1B1B13140E1617078E8C73BBB38F BCAF83D5C18FD5BC86D1B27CD2B782AD9B6B7B6F45D0C6A3CFC8ABB7B29C7576645659485E6553 6069545E684F5B654A5E684D5E664E595E486B6E5B919280C1BEABC5C0ACCAC3B0CDC6B3D0C5B3 CDC2AECCBDAACABBA6D2C2ABD7C7AED3C5ABC1B398B3A88CBAAF91ACA3848480654A4F3B5A6253 5D5F52616155625E55615D546B685F606056585A4D57594B949688B3B2A0CDC6B4CBBEAB604D3C 7F6D55C0B595B5B18C8A876857573B494C374C53414651433D4B3E44514845554A3F4F44455646 485544606D5999A28DB2B799BCB38CC1B488C1B88FC0BB93C1BD98C0BE97C2BD97C4BD93BEB386 C1B487CBBA8EC9BA8FCEC09B897F5C383316626145C7C6A8B2B394B9B99FA2A48C595B45444734 5C604F4D5444575D51434E404751464854484C5A4B4F5D4E40514149584584927B9EA88FAAAF99 C5C7B26866575C5A4BC4C2B5D0D1C3CFD1C3CED0C2CFD0C0CECBBACCC0B2B19E904B3124402619 402F1D3E2F1C3F2C1B3F2A1940291B3F291B3E2C1E3A2E1E312B1D4041319A9E8FA9B0A0BCC0B2 CCCEC1CDCBBFCDCBBFC7C7BBC6C8BBC6C8BBC6C8BBC6C8BBC6C8BBC6C8BBC6C8BBC4C6B9C4C6B9 C3C5B8C3C5B8C2C4B7C1C3B6C0C2B5C0C2B5C2C4B7C2C4B7C0C2B5BFC1B4BDBFB2BCBEB1BABCAF BABCAFAFB997AFB899AEB49AA8AD96A4A593A0A18FA2A18DA3A38BA3A389A3A387B1B497A8AC93 B6B9A64E524411160F686D693C423E1E24200E130F10150F53564DBBBDB0CBC9BA928F7C46402A 6D664C988D71746747AA9B7A7B6B4767552FBEAC86917A58826E4D75604375644AA0917CBCB19F B3ABA0BEBAB1C2BFBAB7B8B3B7B7B5A9ABA8AFB1ACC1C3BEBABCB7B5BCB5B7C7BD9AAAA0667068 72746F6D69666E696686817EACABA7A4A6A19EA59EA5AFA7A6B1A9929C94848B84838882858881 A5ABA1888E846D7369676D636A70666A7066676D63686E646A70666D736971776D757B71787E74 7A80767B81777B8175909486828677878B7C8C938391978983897B72786C878F84969E93929991 AFB6AEBDC7BF8F98932E373229322D383F3845484134352D44453DA7A8A0D5D6CEC3C4BCD0D1C9 CDCEC6C8C9C1C6C7BFC3C4BCC1C2BAC3C4BCC8C9C1CFD0C8D2D5CAD3D9CBCAD2C3C4CFC1C5D0C2 BFCBBFCBD7CDA2ADA52C372F39433B3D443C393E3745483F898B80E4E4D8D2D0C4D1CFC3D6D6CA D8DACDCED0C3D2D4C7D6D8CBD7D9CCCACCBF9B9D90B4B6A9D3D5C8ABADA0ADAFA2DADCCFD2D4C7 CBCDC0D6D8CAD3D7C6D5DAC6DFE6D4C7CEBCC9D1C2D9E1D2929A8D444C3F54574C474A3F49493D 656658DBD7CBDFDCCDDBD4C4DAD5C2E1DECBBBBAA5ADAC97C4C3AEE3E2CDE0DFCACECDB8DCDBC6 DDDCC7DDDCC7D3D2BDDEDDC8D5D4BF8F8E79D8D7C2E0DFCAEBEAD6D3D5C0D2D3C1D6D9C4CFD2BF D4D7C2DBDECBD0D3BED3D4C2D2D1BDD1CEBDD6D1BEDDD6C6E2D9C8E5D9CBE3D7C7E3DBC8E4DEC8 E8E1CEE8E3CFE3E0CFDDDCCADCDDCDE1E2D2E0E3D2BABDACDCDDCBE6E8D3E7E9D4E1E0CBE8E8D0 E2DDC7EEE6D3E9E1CEEBE6D2E1E3CDCCD1BAC1CBB2C8D0B8CCD1BAD0D2BCD8D6C1D0C9B6CCC5B2 CBC4B1C9C7B2CCCBB6C1C0ABD8D6C1CFCDB8C7C5B0B4B29DCCCAB5E1DFCAD1CFBAE2E1CCDAD9C4 DAD9C4DBDAC5D8DAC4D1D3BDC4C6B0B8BAA4B3B19ACAC2ADC6BEA7C6C0A8CFCDB4C5C5ABC3C7AC D2D6BBBCC2A6BFC5A9C7CDB1BDC0A5BBBBA1C3C1A8D2CCB4C9C1AA968D6E5B4F25AEA06FC2AE7C C7AC7DECCBA2F4D4AEE9CCACDCC8ADD4C8B2DAD5C1DDDAC9DED9C6D8CBB8DFCAB5F0D2BAE4C7A9 E9D3AEE1CFA7DDCDABE0CFB1E0D0B7DDCBB5DDC6B4DFC6B2E7CAB8ECD1BC8B755E766750A49D8A 7B7E6B7E8B7A69766570736274735F59584653523E504F3D3E3D293635232C2B1752513F5A5945 3C3B2921200C2B2A1856554164635134311E3833202E27154B44346D66567770609B9484938C7C C2BBABD3CCBAD9D2BF968F7CD7D1B9E3DDC3E0DBBEE5E0C2D5D0B0DCD8B5DCD8B3DCD8B5DDD9B6 DDD8BADED9BBDDD9BCDDD9BCE0DCBFDEDABDDAD5B7D5D0B0D1CCACCECAA7CCC8A3CBC7A4C4BFA1 D1CCAFDBD6B8DDD8B8DED9B9DEDAB7D4D0ABC8C49F98946F97936E928E6B8C8865908B6DA6A183 C9C4A7E4DFC2E0D9BDE0D9BDE0D9BCE0DABAE0DABADFDBB8DFDBB6DFDBB68E8A6572704A63603D 5C59366B6849696647747053C4C1A2E2DEB9F2EDC7ABA17D9A8D6BDCCBAFAC9C8340311E261A0C 2A2118282419130F030D0800514A2EB9AC89DFD0A5CDB987D7C188DBC28ADEC290E0C397E0C39B DEC09ADCBE9AD9BD98DABE97DBC39DD3BD98C9B69685735B33231324130B150A061E1C1D1A1A1C 0E0A07494037C7B8A5D3C0A2CFBA8FDAC38DD7BF7FE1CA86D8C382C2AE73BBA775A997716C5B3F 2617021105002920191D15131E18180D0707241C198D8475C0B096C1AB82C8AE7BD1B279D6B67B D6B780D4B682CFB286C9B18BBAA588473720180B0021170E100B0813111223232310130C131406 9E9C83CAC4A0B9AC80C3B17FC8B17BCCAD77CEB37EAE9C6C776C3FCDC39FCDC6A9B6B19B767561 5154415C614D69715A656F56606B4D626B4E62684E5A5E476A6C578E8D79CAC5B1CCC7B3D1CAB7 D5CDB8D7CCB8D5C9B3D3C4AFD1C2ABD4C4ABD8C8AED5C7ACC2B497B5A78AB7AC8EABA082868265 48503B5964545D6355626457606056605D546A6A6062645755594B515848919584AFB09ECBC6B2 CABFAB604F3B7A6A51CAC1A0C3BF9A9794756060444E513C535A48525D4F4C5A4D3F4C4348584D 49594E4B5C4C45524156634F929B86B0B597BDB48DC2B589C2B990C1BC94C2BE99C1BF98C3BE98 C5BE94BBB083BEB184CCBB8FCCBD92D0C29D8C825F3732155A593DC6C5A7B1B293B9B99FA7A991 5E604A494C39676B5A585F4F52584C3C4739404A3F434F434A58494C5A4B3A4B3B3F4E3B808E77 A0AA91A7AC96C4C6B16E6C5D575445BEBCAFD0D1C3CDCFC1CCD0C1CDD0BFCDCCBAC9C2B2B5A596 4A34263F291B3D301D3B301C3C2D1A3C29183D27193B28193A2A1B372B1B312E1F3C3D2D989C8D A7AE9EB8BCAECBCDC0CDCBBFD0CEC2C7C7BBC6C8BBC6C8BBC6C8BBC6C8BBC6C8BBC6C8BBC6C8BB C4C6B9C4C6B9C3C5B8C2C4B7C1C3B6C1C3B6C0C2B5C0C2B5C2C4B7C2C4B7C0C2B5BFC1B4BDBFB2 BCBEB1BABCAFBABCAFACB596ABB495A2A88EA4A992AEAF9DB6B7A5B7B6A29E9D88B4B49C97977D A0A388A7AB92B9BCA9474B3D1E231C4E534F4B514D373D3910150F32352E707267C4C5B7C9C6B5 908B7748402973694E918366706140AE9E7C756541806E48A7956F8B745285715076614477664C 9A8B76B8AD9BBBB3A8B6B2A9B3B0ABB5B6B1B6B6B4B3B5B2B9BBB6C2C4BFC0C2BDB5BCB5A9B6AD ADBAB1B6C0B8C0C2BDC4C0BDC0BBB8B9B5B2B2B1ADB9BBB6AFB9B19DA8A0939E9696A098949B94 969B95A4A7A0B8BEB470766A40463A40463A41473B3A40343C423642483C3A403441473B272D21 484E4290968A6E746831372B484E404A4E3F53564550534251554451554645493B55594B83897D A9AFA39EA69BAAB1A9B4BBB3868D863940391D241D32373133362F2D2E2645463EA4A59DD3D4CC BFC0B8C9CAC2D6D7CFC4C5BDC5C6BEC6C7BFC8C9C1CBCCC4CECFC7D2D3CBD3D6CBDDE5D6CFDAC9 C7D2C2C2CDBFCBD7CBD3DFD3949E952D372E4D544C50574F525750464940989A8FEAEADED1CFC3 CBC9BCCDCDC1D8DACDD8DACDD0D2C5D6D8CBE0E2D5CFD1C4B1B3A6CCCEC1D3D5C8D0D2C5C6C8BB C8CABDD6D8CBDCDED1D6D8CADDE1D0D6DBC7D9E0CECDD4C2C3CBBCD1D9CA70786B3B4336414439 5B5E5337372B525345949084D1CEBFD9D2C2DED9C6DCD9C6B5B49FB0AF9ACECDB8DAD9C4D4D3BE D4D3BED8D7C2DFDEC9D8D7C2D7D6C1D3D2BDDBDAC5ACAB96DBDAC5CDCCB7A7A993C0C2ACDBDDC8 DADEC7CCCFBACFD4BDD7DCC6D2D6BFA8AA957B7A658784719B96829D9483998E7C968979B5A897 B7AC98B7AF9ACFC8B5EDE8D4DEDBCAD8D7C5E7E8D8D3D4C4CCCFBEA0A392BEBFADD9DBC6CBCAB6 CFCDB8DAD8C1E0DAC4DED3C1DAD2BFD3CEBADCDEC8DCE1CAD6DEC6D4D9C2B7BBA4D2D1BCCEC9B5 CCC4B1D6CEBBD5CEBBD4CFBBD8D6C1CBCAB5DFDAC6E1DCC8CDC8B4C0BBA7E0DBC7E1DFCACCCAB5 EDEBD6D7D5C0E5E4CFD8D7C2E6E5D0E4E3CED0CFBAB1B09BC9C7B0CBC3AED7CFB8D7D1B9CAC8AF D1D1B7CDD1B6C3C7ACD2D8BCC9CFB3C3C9ADC8CBB0C4C4AAB3B198BDB79FBEB69F958C6D594D23 AB9D6CB6A270C8AD7EEFCEA5EDCDA7EFD2B2E4D0B5E0D4BED1CCB8CCC9B8DDD8C5E4D7C4E7D2BD F0D2BAE2C5A7E6D0ABD8C69ED4C4A2DDCCAEDCCCB3CEBCA6C9B2A0CDB4A0CBAE9CDFC4AF7D6750 43341D3C35221114011B28174A57465D604F3C3B291C1A0B3837255452433534221B190A272614 4A48396362505D5B4C3B3A28363425403F2D6A68594F4C3B3B36234C45336B64546F6858665F4F 655E4E867F6FCDC6B6D9D2C0E0D9C6807966CEC8B0E6E0C6E0DBBED4CFB1E5E0C0DAD7B4DEDCB6 C9C6A3DBD8B5D3D0B1D9D6B7DED9BCDFDABDD6D1B4E1DCBFDAD7B8A4A180918E6D8885628F8D67 7F7C598E8B6CDDD9BCEBE8C9DDDAB9D7D4B3DFDCB9DAD8B297956F6A68425A58326E6B48777451 686546918E6FD5D1B4E7E2C5DDD8BBDDD8BBDDD8BADDD8B8DDD8B8DDD9B6DDD9B4DCDAB47F7D57 75734D6966435C5C388584656D6C4D706F51B8B798DCD8B5E2DCB8ADA380948767E1D3B8AA9B84 443727342C1F3C382F36332A2A281C1C1908373215C2B894D0C196D4C290DAC48BDDC48BE0C590 E1C596E1C49AE0C39BDEC09ADCC099E5C9A2D7BF99D4BD9BC6B39596846E35251623120B1E1413 27262B1C1D221B191A3E3A31C7BCAAD3C4A7CCB98ED2BD86D4BC7CD8C17DD3BE7DCEBA7FC6B280 C6B28D97836825160321170D1F1812161010100C0D110D0E17120FA79F92C5B79DBFAC84C3AC7A DBBE84D2B478DABB82D8BA86BC9F73D9C19BD2BDA05D4D36190C001D130A0A05020B090A292929 1417101314069F9D84C4BE9AB9AC80C7B583CCB57FD6B781D3B883BFAD7B7B6E42CEC19ED8CFB0 ACA68E7673605152406A6F5B646C546D765B656E51686E5271755A5F614963655094937FBFBAA6 CCC6B0C9C1ACC1B9A2CABFA9CFC3ADCEBFA8CFBFA6D1C1A8D8C8AECFBFA5BCAE91BAAC8FBDB292 ABA080888467444E3649584555604F5C63535C60525B5D505D61535E64565058494D58478C9580 A9AE98CDCCB7D8D2BC645842706248BDB493BAB691A7A48568684C474A35545B49545F51556356 404D443E4E435363585162524B5847586551A3AC97B0B597BBB28BC3B68AC6BD94C2BD95BDB994 BCBA93C3BE98CAC399B4A97CC8BB8EC8B78BC6B78CCBBD989A906D383316565539C0BFA1B4B596 B1B197A9AB936F715B3B3E2B434736464D3D353B2F394436404A3F3F4B3F394738374536394A3A 41503D717F689CA68DA7AC96C5C7B29795863F3C2DC3C1B4D2D3C5CBCDBFCCD0C1DADECDC5C6B4 C8C2B2A79B8B4B3A2A3F2E1E3D352038301B34271431220F3221113625153A2D1D3B32213B3829 2B2E1D5D6152A4AB9BBFC3B5CACABED3CFC4C6C2B7C7C7BBC6C8BBC5C7BAC4C6B9C4C6B9C3C5B8 C2C4B7C2C4B7C5C7BAC4C6B9C3C5B8C1C3B6BFC1B4BDBFB2BCBEB1BBBDB0B8BAADB8BAADB9BBAE BDBFB2C1C3B6C2C4B7BFC1B4BBBDB0818A6B666F52656A536C715B606151696A5A7E7D6B6D6C57 76765E626248797C618E927BA6A9983F42371F241E4B504C3B403C363B3522272036392E56564A B0AE9FC8C3B08B856D544A2F796E52827555736542B4A4807565418A7852A4926C8C7855887453 7F6A4D87765CAA9B86C3B8A6C6BEB3C6C2B9B7B4AFBBBCB7BDBDBBB9BBB8BDBFBAC5C7C2C5C7C2 BCC1BBA8B3ABACB7AFB4BBB4BABBB6BBB7B4B8B3B0B4B0ADB0B1ACB3B8B2B0BAB2A5B2A99EABA2 9DA8A09DA49DA7ACA6BFC2BB8C928852584C33392D41473B4B5145474D41494F434D53473E4438 3E4438282E2240463A73796D555B4F2A302445493B3A3C2E4245344043324043323E4032313526 4044366B6F61ABAEA3A9AFA3B2B8AEB3BAB2969D956D746D636A6373787170736A6C6D65707169 A5A69EC2C3BBB8B9B1C3C4BCC6C7BFC0C1B9BFC0B8BFC0B8C0C1B9C2C3BBC7C8C0CBCCC4CDD0C5 C9D1C2C6D1C0C9D4C4C4CFBFC0CCBEBECABE8D978E3E483F353C343C423845483F4043388D8D81 DBDCCED0CEC1D5D6C8D6D8CBD9DBCECED0C3BCBEB1BCBEB1C6C8BBBCBEB1A5A79ABEC0B3C5C7BA C4C6B9BDBFB2BFC1B4CBCDC0CFD1C4CACCBED3D7C6D1D6C2D3DAC8C5CCBAC5CDBEDDE5D681897C 424A3D515449474A3F525246434436615D51CCC9BAD5CEBEDCD7C4D5D2BFB0AF9AAFAE99D0CFBA DFDEC9DCDBC6D9D8C3D5D4BFE1E0CBE6E5D0E7E6D1DDDCC7D2D1BC8E8D78A6A590868570949680 B5B7A1D7D9C3DADEC7D0D4BDD7DCC5E1E6CFDFE3CCB8BAA465644F534E3A6D65527E7361776757 635242736252998C79ADA28EC5BDAAE1DAC7DFD9C9DEDBCAEDEBDCDEDFCFB0B1A16D6E5E70715F 807F6B6D6A576F6A567B755F807863847766A39886BCB5A2D5D4BFD8DCC5D1D6BFC8CDB6A8AA94 908E79938C79968B79A29785A8A08DA39C89A49F8BA4A28DAAA390C5BEABCBC6B2BDB8A4C5C0AC B6B19D97927EABA692A7A28EB0AB97A3A18CAEAC97A8A691ABA994A7A590C5C0AAD3CDB7D5CDB6 CFC9B1BFBDA4BABAA0B8BBA0BBBFA4CDD1B6C8CCB1C9CDB2C4C7ACB7B79DA8A68DB7B199C0B8A1 9E9578584F24B1A372BDA879CDB285F4D3AAF3D3ADEBD0B2D8C4A9D9CEB8D5D0BDD0CFBDCAC7B4 C0B5A1CAB8A2E7CBB5EED0B4E0CAA5C0AE88A1917097886B988871968571927D6A8E7765836A56 C6AD9774604844351E524B381D200D141F0F4651416163554E4C3D302E1F4442336563545B594A 4B493A494738504E3F5C5A4B5452434240315957487371629492836E6B5C534D3D5C5543554E3E 514A3A4A4333524B3B958E7EDFD8C8DFD8C6E6DFCC87806DD4CEB6E2DCC2C9C4A7A6A183A8A383 9C99769D9B7595926FC5C29FD7D4B5E3E0C1E0DBBEDCD7BADFDABDE1DCBFCDCAAB8A8766716E4D 68654273714B686542777455CAC6A9E1DEBFDCD9B8D8D5B4DDDAB7D3D1AB8D8B6575734D62603A 726F4C787552696647918E6FD0CCAFDEDABDDDD8BBDDD8BBDDD8BADDD8B8DDD8B8DCD9B6DCDAB4 DCDAB493916B7D7D576868445757337F7E5F6E6F4F7B7C5DC9C8A9DEDBBAE4DEBCB0A78693886A E2D4B9AEA28C443B2A3731254542393D3D352B2B1F1C1B09373117C0B693D1C299D4C290DAC48A DDC589DFC48FE0C494E0C399DFC29ADEC09ADCC099E2C69FD6BE98D5BE9CC9B698998771372718 23120B1C1211232428181B201818183A3730C2B9A8D2C4A9CCBB90D1BC87CDB879D3BC79CFBA79 CFB97FCCB685D2BC95A38F74322310190F0615100C0D0B0C0606080B090C14100DA49E92C8BCA4 C5B28AC7B07ED8BB81D2B478D9BA81DABC88C7AB7CE3CAA2D4BFA06151381B0E0020160C110907 130F0E2F2F2F1E1F191415059C9A81C7BF9BBAAD81C8B482CCB37DD1B27CCFB17DB8A472746639 C7BB95D3CAABACA68E7775604E503B646752676C556B7457666D4E6A6F516F7257575A3F5D5C47 8E8C77BFBAA4CEC8B0CEC6AFC8BDA7CDC1ABD0C1AACDBDA4CDBDA3CFBFA5D6C7AAD1C2A5C2B394 C0B393C4B797B0A5858E8B6C4A573D4E604A5966525F68576064555D61525C63535E67564B5645 4C594588947CA5AD95C6C8B0CDC9B0594D35594E32BDB591BBB792A9A68769694D4548334D5442 4A5547485649424F463C4C414A5A4F4455453F4C3B4D5A469DA691B3B89ABCB38CC4B78BC4BB92 C0BB93BCB893BCBA93C3BE98CBC49ABCB184CCBF92C9B88CC7B88DCCBE999D93703732154E4D31 BDBC9EB6B798B3B399A6A890686A54303320363A293A4131393F33374234394338394539384637 37453634453536453277856EA2AC93A8AD97C0C2AD9795863F3C2DB8B6A9C3C4B6C1C3B5C1C5B6 CED2C1BEC1AEC1C0AE9C95833B2E1D2417063E38223A351F372F1A372A173929193D2D1D3F3323 3F38262725162B2E1D676B5CA7AE9EBCBEB1C5C5B9D2CEC3C9C5BAC7C7BBC6C8BBC5C7BAC4C6B9 C4C6B9C3C5B8C2C4B7C2C4B7C3C5B8C3C5B8C2C4B7C1C3B6BFC1B4BEC0B3BDBFB2BDBFB2C0C2B5 BFC1B4BEC0B3BEC0B3BDBFB2B8BAADAFB1A4A8AA9D8F987B5B6449575C46585D493D3E2E494A3A 6A69576564505E5D4851513972745C8E927BA0A3923C3F34262B25474C48343933393C3534362B 46463A48443886816EA49C877F755C5D5236837558706140796B48B9A9856F5F3B948460A18F6B 836F4C7D6948745F427C6B519586719D92809991869A968D9E9B96A3A49FA4A4A29D9F9C9D9F9A A4A6A1A6A8A3A0A59FA7B1A9ABB5ADB1B6B0B2B3AEB0ACA9B0ABA8B2AEABB4B5B0949B94939E96 8C99908592897D8880777E77828781A0A39C8B91855C6254474D3F575D4F6066585D63555E6456 606658585E5053594B484E40575D4F696F615056483E4436585C4D4C4F3E5455435354424F523F 4B4E3D4447365355477377688B8F819A9D92AAADA2ADB3A9ABB1A7ADB2ABB6BBB4BFC4BDB9BCB3 BABBB3B2B3ABBFC0B8C9CAC2C9CAC2D1D2CACCCDC5C4C5BDC2C3BBC0C1B9C1C2BAC4C5BDCACBC3 D0D1C9D3D6CBCCD7C6CDDAC6CFDCCAC3D0BFB1BCAEA3AEA08890855E665B60665C62685E696C63 616459939387C6C7B9C0C1B3D2D3C5D5D7CAD6D8CBCBCDC0BBBDB0BEC0B3CBCDC0C9CBBEBABCAF BABCAFBFC1B4BFC1B4BABCAFBABCAFBFC1B4BFC1B4BABCAEBEC2B1C9CEBAD5DCCAC9D0BECCD4C5 DBE3D47D857831392C4C4F443C3F3466665A565749534F43C2BFB0E7E0D0E1DCC9CFCCB9A7A691 A8A792C8C7B2D5D4BFCFCEB9C1C0ABACAB96989782BBBAA5D1D0BBDFDEC9E0DFCAACAB96C7C6B1 9E9D8895957DBFC1A9E2E4CCDFE3CAD1D5BCD3D7BED7DBC2D5D9C0E9EBD3807E67534D376D624E 8677647A6756634E3D6A5544AB9A88D2C5B2E0D5C3E6DECBE3DDCDDAD7C6DCDACBD2D0C1D2D0C1 7977686D6A597E7966746D5B79715E887D69908370877767BBB09ED8D1BEDEDDC8D2D6BFC8CDB6 C3C7B0AAA994534E3A5A523F6053427060507E71607368566E665387806DB2AB98C4BDAACAC3B0 BCB5A2C2BBA8AEA7946E6754534C395C55425E574457503D5E5744524B38736C59948D7AB4AE98 DBD5BFCFC9B1C0BCA3A7A38A7E7C6364644A65654B6A6A506E6E547373596D6D537B7960949077 B2AE95C1BBA3A0997C584F24B5A776C0AB7CC9AE81EBCBA2E7C7A1D3B89AB39F86948975918E7B 8E8F7F807F6D807865AA9A83DAC0A9EACFB4ECD5B3C7B5919485666E60456357416B5E4B71604E 6E5C489C8772DFCBB37C6A52675841AFA89589887653594B535B4C57584A585649484639646255 908E8199978A9290837F7D70403E313C3A2D3432253533266F6D60A09E91B6B4A78380715A5444 615A482F2818292212251E0E312A1A999282DDD6C6DED7C5E6DFCC8A8370D8D2BAE0DAC0B5B093 7A755768654471714D6A6A44696945B2B28ED9D6B7E6E3C4DED9BCD9D4B7E1DCBFE2DDC0CBC8A9 8582616A6A4864644074744E6C6C486D6C4DBFBEA0D9D8B9D9D9B7D8D8B6DDDDB9D4D4AE92926C 78785261613B6E6E4A7676526B6A4B949374D1D0B2DBDABCDCD8BBDCD8BBDCD9BADCD9B8DCD9B8 DCD9B6DCDAB4DADAB4969670797B545F613C4C4E29727353656948797C5DC6C7A8E1DCBEE5DFBF B5AC8D93886AE1D6BAB3A99048412E3A37285252464A4C412F31241F1E0C363018BDB292D3C49D D7C293DAC48ADDC587DFC48DE0C492E0C397DFC298DEC199DCC098DFC39BD5BE95D8C29DCDBA9A 9F8D753A2A1A23120A1B110F1F2022151A1D15171635322BBEB5A6D2C4A9CDBB93D0BA88D3BD81 D6BE7ED3BB7BD1BB81CFB988D6C099A893743625111A110814100D0E0E0E0506080C0C0E151410 A49E92D2C8AFC6B48CC8B17FD1B47AD0B276D6B77ED5B783CEB283E2C9A1DDC9A86D5C42221300 211509110906110D0A2E2D2B22221A131404949377C7BF9BBEAF84C9B382CCB17CCBAC76C9AB77 B7A170766539C8BA95D7CCACB4AD93837E6A53523E5D614A696F556A7054666B4D6C71516B6E51 5353395A58438A8873BCB7A1CFC9B1D3CBB4CDC3AACFC3ABD1C3A9CDBDA4CDBDA3CDBCA2D6C5A9 D4C5A8CABB9CC7BA9AC7BA98B3A986949170434D3244533C4C58425059465256455054434E5543 4F58433E4A3446523A7E886F9FA88DC1C4A7CCC8AB64583E584D2FBBB38FBBB792AAA7886A6A4E 434631464D3B3F4A3C3C4A3D4350473B4B404353483C4D3D374433424F3B959E89B5BA9CBFB68F C4B78BC1B88FBDB890BAB691BBB992C4BF99CBC49AC4B98CCEC194C9B88CC7B88DCEC09BA39976 393417444327ABAA8CB0B192B2B298A5A78F6B6D57373A274145344A5141454B3F3D483A3A4439 3E4A3E4654454957484152423D4C396977609BA58CA4A993B9BBA69B9889444132B2B0A3C3C4B6 C9CDBEC4CBBBCCD3C1C1C6B2C6C7B5A8A592574F3C3F372437351E36341D39331D3A321D3E3120 413423403726403B283E3C2D4B4E3D7C8071A1A898A9AB9EB7B7ABCFC8BECEC7BDC7C7BBC6C8BB C5C7BAC4C6B9C4C6B9C3C5B8C2C4B7C2C4B7C1C3B6C1C3B6C0C2B5C0C2B5C0C2B5C0C2B5BFC1B4 BFC1B4C1C3B6BFC1B4BEC0B3BDBFB2BABCAFB2B4A7A7A99C9EA093B8C1A4858E73676C56505443 4647395455476361526968547D7C677171598F9179A2A5909EA09233362D242925343935282B24 2D2F24212115403E2F4640305A53406E634D776B515E50338A7D5D635433827451B6A88361532E 9B8D689F8F6B8B7754826E4D7863467F6E548E7F6A877C6A7B73687B776E7B78737D7E797B7B79 6F716E6A6C6771736E767873737872707A72757C757A7C777978747773707A767382817D8A8C87 A7B1A9A0ADA495A59B91A1978C978F7E857E8287819C9F9882887C585E50444A3C4B51434C5244 494F414E544652584A545A4C4E5446565C4E63695B595F51454B3D454B3D575B4C5E6150646553 64655360614F5C5D4D5D604F6C6E60818375989A8DA5A99BB1B4A9B3B6ABB2B5ACB2B8AEB3B8B1 B3B6AFB4B5ADB9BAB2B7B8B0B8B9B1BCBDB5C0C1B9C3C4BCBEBFB7C2C3BBC0C1B9BFC0B8C1C2BA C6C7BFCECFC7D6D7CFDADDD2BEC9B8BFCCB8C2CFBDC1CEBCBFCABAC1CCBEC5CDC2C1C9BEBDC3B9 BAC0B4BCBFB4ADAFA2B8BAACC9CABAC1C2B2D5D6C6CED0C2D3D5C8D1D3C6CDCFC2D3D5C8DFE1D4 DDDFD2D2D4C7D4D6C9D6D8CBD5D7CAD1D3C6CFD1C4CDCFC2C9CBBEC5C7B9C0C4B3CCD1BDD9E0CE CBD2C0C6CEBFC3CBBC7B8376424A3D515449484B40545448616254534F43868374D9D2C2DCD7C4 DAD7C4B2B19CB4B39ED2D1BCD9D8C3D3D2BDBAB9A4908F7A9F9E89D4D3BEE1E0CBE8E7D2DAD9C4 A5A48FB8B7A27F7E697C7C64B8B8A0E2E2CADEE0C8D6DAC1DCE0C7E1E5CCE4E6CEDFDFC785806A 524A35635441705D4C675040604637684E3FA08D7CDECFBCE9DCCBE3DBC8EAE3D3E5DFCFE2DFD0 DEDCCDDAD8C97370615D57476F6655665A4A6757476B5A486B5A48807060C8BBAAE5DECBDCDAC5 CBCDB7C7CBB4D0D2BCC5C3AE5D5643615443665545725F508271617262526C5F4E9F9482D0C8B5 CDC6B3CBC4B1C3BCA9D7D0BDD6CFBC8B84714D45325C54415D52405C513F5F54424E4331887D6B C2B7A5D8D0BBBDB8A2B7B59CC1BDA4C2BEA598947B7571587B755D78725A544E364A442C3E3A21 736F56ABA78EC1BDA4C0BEA5959072564D24B6A879C1AA7EC6AB80E7C7A0E3C5A1CCB395A39278 645C495857455456484E4F3F726D5ABDB19BE9D3BCEFD5BAE9D2B3D5C2A2A7977D71654D584D3B 5F57446F6452716451CCBDA6E9D9C07161486E624ADBD3C0D0CDBC87897C434739252519343225 39372A747265AAA89BB5B3A6B1AFA2908E812D2B1E201E111D1B0E282619767467B7B5A8C6C4B7 908D7E655F4F766F5D2A23132C25152B2414302919ACA595DDD6C6DAD3C1E0D9C6837C69D5CFB7 E0DAC0B2AD906D684A53502F7C7C586C6E47696945B5B591D9D6B7DDDABBD7D2B5DBD6B9DBD6B9 E1DCBFD1CEAF918E6D78785670724D7F815A767853807F60C9C8AADBDABBDADAB8D9D9B7E0E0BC DFDFB9A6A68075754F5B5B35686844747450706F509D9C7DD9D8BAE1E0C2DCD8BBDCD8BBDCD9BA DCD9B8DCD9B8DADAB6DADAB4DADAB493956E73754E5D5F3A4D4F2A6F7352646847777A5BBCBD9E E0DBBEE6DCC1B9AE92908569DED3B7B9AF964A442E3E3B286263555A5C4F34362822210F373119 B9AE90D7C4A3D6C194D9C389DCC486DEC38CDFC391DFC296DEC197DDC098DBBF97DCC098D4BD93 DAC49FD2BF9EA391793E2F1C2413091A110C191D1C121B1A131512302D26B8B1A1D1C3A9CDBB95 CEB887D5BC83D6BE80D2B87BD2B980D1BA88DAC39AAE97773A2812251D121C1B171818180B0C0E 1213151819149E9A8EDBD1B8C4B28AC7B17FC8AE73D3B579D6B77ECDAF7BCEB283D3BA91DFC8A6 725F412110001C0E010F06000F0A062C292427241B12110089856AC5BB98BFB085C8B281CEB37E CBAA75CAAA77C1AA787E6D3FD1C29BE1D4B4C0B99F908B75585742595B45686C5362694A606545 696C4D67674B5050345C5A438C8771B5AF97CCC5ABD5CBB2D0C6ABD4C6ACD3C5AAD0C0A6D2C3A6 CDBCA0D5C4A6D5C6A7CEBF9ECBBC9BC5B896B2A58296926F454E314452394D553E525741555742 565843565946565B455159425961497D866B9FA388BFBEA0D0C9AC7C6E53645737BAB28EBBB792 ABA8896A6A4E424530454C3A3F4A3C3C4A3D424F463C4C4146564B435444404D3C404D398D9681 B6BB9DC0B790C3B68ABEB58CBAB58DBAB691BCBA93C3BE98C9C298C7BC8FCBBE91C5B488C6B78C CFC19CACA27F403B1E3D3C20B2B193C2C3A4C1C1A7ABAD956F715B3A3D2A4145344E55453D4337 303B2D2B352A333F33414F404856473E4F3F354431526049929C83A4A993B8BAA5A09D8E454233 ABA79BCACBBDD4D8C9CBD2C2C8D1BEB6BEA9B4B7A4A4A38F77725E716C586D6D556C6E56736E58 77715B7C715F7D72607B74627875625F6050656958767D6D8084758385789C9C90BEB7ADC3BCB2 C7C7BBC6C8BBC5C7BAC4C6B9C4C6B9C3C5B8C2C4B7C2C4B7BFC1B4BFC1B4BFC1B4C0C2B5C0C2B5 C1C3B6C1C3B6C1C3B6BBBDB0B9BBAEB8BAADB9BBAEBABCAFB7B9ACAFB1A4A9AB9EB2BBA0949C84 5B604C2A2E1D4445375455473C3A2B4A4937969581888772A1A38DAAAD9890928424271E222723 262825191A123030240E0C00221F0E47402D58503960543A83755A574A2A9081606153308C7E5B B0A27F574A279F926F9F916E8C7855857150806B4E8B7A609C8D78968B7988807588847B8C8984 8B8C878484827476736D6F6A7476717B7D787A7F79828982868B858A8B86888783898582908C89 9C9B97A7A9A4A9B3AB98A59C89998F8C9C928F9A927C867E7B7D788D90898D93856E7565616858 666D5D646B5B6269596A71616E75655C63535960507077677F86766A71615960505F6656676B5A 5B5C4A5D5C485E5D49595B465859476465537172627477666C6E60737568828479919489999C91 9B9E939DA097A1A49BB5B6AEB4B5ADBCBDB5C0C1B9C3C4BCC7C8C0C8C9C1CECFC7BDBEB6BCBDB5 BDBEB6C0C1B9C6C7BFCFD0C8D7D8D0DADDD2D8E4D0D0DFC8C8D5C1C7D4C2CBD6C6CAD5C5CED6C9 D7DDD1D7DACFD4D7CCD7D9CECCCEC1C6C8BAC3C6B5C1C4B3D3D6C5D1D3C5D5D7CAD6D8CBD4D6C9 D6D8CBDADCCFD6D8CBCFD1C4D6D8CBD5D7CAD6D8CBD7D9CCD6D8CBD3D5C8D1D3C6D1D3C5D5D9C8 D3D8C4D7DECCC7CEBCBFC7B8B7BFB0A5ADA09BA3968B8E8362655A4B4B3F535446494539444132 958E7ED7D2BFD7D4C1B0AF9AB8B7A2D6D5C0DAD9C4D7D6C1B9B8A37F7E698F8E79D5D4BFDBDAC5 E1E0CBCECDB8A5A48FB9B8A372715C74725BBABAA0E5E5CBDDE0C5D8DCC1DEE2C7E2E5CAE5E8CD E1DFC6A09A826E634D6E5D49745D4B72574679594A765949947F6EDACBB8E3D6C5D8D0BDE4DDCD E3DDCDE0DDCEE1DECFDBD8C9726C5E564D3E685B4B614F415F4C3D6049395C47366D5C4CC5B8A7 EBE4D1E2E0CBD3D5BFD0D2BCD7D6C1CEC9B5695E4C5B4B3B5D4739634C3E6E584A5B48395B4A3A A39383E5DDCAD8D1BED7CFBCCCC4B1D9D1BEE1D9C69D95825348365548375649385B4B3B5B4B3B 4B3B2B948474D2C1B1D8CBB8C4BFA9C2C2A8C9C7AED2CEB59A947C5D523C554933493D27665A44 51452F4A3F2998927ACCC8AFCAC8AFC8C8AE9D9A7B544B22B4A679C1AA80CBAE86F1D1ABF4D6B4 E3C9AEBEAE95716A585B5C4C5B5F5055594A858472D8D0BBF0DEC6E6D1B6E6CEB2E0CCB1C0B099 8F8470766F5D7D7A69868370837E6AC4BCA5D1C7AE62563C6A5E46C2BAA5C7C2AF989488343226 1614081F1D112F2D21858377BEBCB0BDBBAFBDBBAF99978B3432262220142523172F2D21807E72 C8C6BAD5D3C7A4A094696353857E6C2F2818383121383121373020B8B1A1DAD3C3DED7C5E0D9C6 7F7865D1CBB3E1DBC1B8B3967570525B583780825D737850777954C2C29EDAD7B8D5D2B3D4CFB2 E4DDC1DCD5B9E2DDC0D3D0B1918E6D73735166684371734C6468438C8D6DCFD0B1DCDDBDDADBB9 D8D9B7DDDFBADFE1BAABAD867577505A5C3565674272744F7071519E9F7FD9DABBDFE0C1DAD9BB DAD9BBDAD9BADADAB8DADAB8DADAB6DADAB4D9DBB49FA17A7779526165405458337478576C704F 7F8464BFC0A1DDD7BFE2D8BFBAAE948C7E63D9CEB2BDB4974A442A3F3D266C6F5C666A59393C2B 27261238321AB5AA8ED8C5A5D5BE95D8C288DBC383DDC38ADEC38EDEC293DDC094DCBF95DABF94 DCC196D4BD91DBC59ED5C39FA7967C40311C2616091B1209191E17141F171217102B2B1FB4AD9D D1C2ABCEBC98CCB589CAB17BCEB47BCEB177CFB57CD3B988DFC79BB8A07C47361C2B23161F201A 1E201D090D0C0F131210110B8C897AD3CCB0C6B78ECEB886C7AD72DBBE82D9BC82C8AA76D3B788 C7AE85D9C39C725E3D200E00190C001107001009032A272029271B1310007D775DC2B895C2B186 C9B183D4B684CFAB79CFAF7CC4AD7B837143D0C19ADDD0AEC1B79C958F795D5B4657594161654A 595E405A5D3E6266455F604153523665604A8B8670AEA890C6BFA5D1C7AECEC4A9D4C6ACD6C8AD D4C4AAD8C7ABCFBEA2D3C2A4D4C3A5CEBF9EC8B998BFB28FAFA27F9B9573727759707860777963 7E7D6886816D8A85718986738887728B8F788D9178979A7DACAB8DBEB79ACEC0A38A7759635030 BAB08CBAB691ABA8896B6B4F44473249503E4651434654473E4B423F4F444E5E53536454515E4D 43503C858E79B3B89AC0B790C1B488BCB38AB9B48CBBB792BEBC95C2BD97C6BF95C3B88BC3B689 BFAE82C3B489CFC19CB5AB8849442738371BA5A486C0C1A2C1C1A7A8AA9271735D3E412E434736 525949494F433C4739353F343B473B4755464C5A4B4152423746334A58418E9B81A9AE98BBBDA8 A5A2933F3C2D989488CCCDBFCCD0C1C6CDBDBEC7B4A4AD98939884888A757F7D6889877275775F 767A617D7B64837E68877F6C877F6C867F6D827F6C8C8D7D8B8F7E888F7F878B7C919386B0AEA2 C7C0B6C5BEB4C7C7BBC6C8BBC5C7BAC4C6B9C4C6B9C3C5B8C2C4B7C2C4B7BFC1B4BFC1B4BFC1B4 C0C2B5C0C2B5C1C3B6C1C3B6C1C3B6BDBFB2BABCAFB7B9ACB8BAADBBBDB0BCBEB1BABCAFB7B9AC 9BA489909880585D492327185454486464583230234847359796828B8A75A4A690ACAF9C888A7D 242720363A393234312E2E245B594C2C2918241F0C5149347F755C83755A908265584928928362 635532928461ADA07D5C522EA298759A8D6B816E4D816D4C7F6A4D8C7B61A49580A79C8A9B9388 9692898D8A858B8C8783838175777471736E7A7C7781837E80827D787D77787D777A7B76797874 7C7774837F7C8F8E8A969B95B7C1B99FAFA58F9F9592A298929F967C867E797B768E918A7F8375 6D74646D7464747B6B6E75656970606C73636D74646D74646970608188789097877D8474737A6A 798070797D6C82837182816D84836F84836F8485739495839A9B8B8A8B7B797B6D74766877796C 8183787F827776796E73766D787B7282837B797A7283847C84857D86877F8A8B8387888094958D 8C8D858D8E868F908892938B9798909B9C949FA0989FA599A5B19DA2B19A9FAC98A8B5A1BCC7B6 BFCABAC1C7BBCCD2C6D0D3C8CFD3C5D5D7CAD5D7C9CDD0BFC8CBBACFD2BFDBDECDD0D2C4D0D2C5 CED0C3CBCDC0CACCBFC9CBBEC9CBBEC7C9BCC3C5B8BFC1B4C1C3B6C9CBBECDCFC2CBCDC0CED0C3 D4D6C8C9CDBCC7CCB8D0D7C5CCD3C1CED6C7C5CDBED4DCCFE1E9DCA1A4994C4F44444438363729 373327242112463F2FBFBAA7D2CFBCACAB96B8B7A2D4D3BED2D1BCD2D1BCB2B19C6A69548C8B76 DFDEC9D9D8C3DDDCC7C6C5B0AAA994BFBEA96C6C547C7A63C9C7AEEDEBD2DDDDC3D7DABFDADEC3 D8DBC0DDDDC3DFDDC4A79F886D614B6957436F55446F52427A564869493AAB9685EADBC8EFE2D1 DFD4C2E2D9CADED7C7DCD6C8DBD5C7DBD5C7766E615D4F426A584A634D40694F426E52446B5142 877465DBCEBDF6EFDCE6E4CFDCDBC6D7D6C1DAD8C3D6CFBC9285746C594A6C554772584B755B4E 644D3F6E584AC2B1A1E7DCCAC4BDAAC2BAA7C1B9A6D3CBB8E5DAC89F94824235245A4A3A625141 625141604D3E5C493AAD9A8BE1CBBDD6C7B4BFBDA6C1C4A9C1C1A7D1CDB4A29781594A3552412D 4E3C2857453147362252432EAA9F89C1BDA4B2B298C4C7AC9E9D7E544B24B3A277BDA67DC9AB85 F0CFACF2D3B4E7CDB4CABAA388837076786A7E847670776790917FD8D1BEE2D3BCDAC6ADE3CDB5 DFCBB3C4B5A0A199869592839C9D8D979A87878973C2C0A7CCC6AC675D44786E55C9BEAAD2C9B8 B6AEA3423E332D291E2C2A1E38362A9A988CCFCDC1C5C3B7CDCBBFA9A79B4240342B291D2F2D21 333125838175D0CEC2DAD8CCAEAA9E6C66568C8573332C1C383121383121393222BBB4A4D9D2C2 E8E1CFE6DFCC807966D0CAB2E1DBC1BBB6997A7557615E3D6B6D48696E46787A55C7C9A4DEDBBC D7D4B5D8D1B5E9E2C6E1DABEE5E0C3D4CFB18C8C6A6D6D4B60623D6B7048626641898A6AC9CAAB D8D9B9DBDCBAD8D9B7D6D8B3D5D7B0A2A47D7C7E575F613A67694472744F6D6E4E999A7AD1D2B3 D5D6B7DAD9BBDAD9BBDAD9BADADAB8DADAB8DADAB6D9DBB4D9DBB4A5A7807378505B5F3A4D512C 6B6F4E686C4B808565BEBEA2DCD6C0E2D5C2BFB099887A5FD6CBADC2B99A4C472942412571755E 6E735D3B3E2B2B2A163B351DB4A68CD9C5AAD1B993D7C188DAC282DCC289DDC28DDDC192DCBF93 DBBE94D9BE91DDC295D5BE92DCC69DD5C39DA7967A42331C29190A1E180C1C2216192519161C10 292A1CB1AA98D1C2ABCEBB9BC9B288CDB181D3B57FD1B47CD3B57FD2B684DEC396B89E794B381A 2823101C1D151F211C060A090C100F050801757364C6BFA3CDBE95D1BD8ABDA368D6B97DD2B57B BFA46FDDC192C8AF86DDC69D7E6A452D1C00271805201408150E062622192622171C1704797256 C4B794C3B287C6AE80D6B685CFAB79D3B27FC1AA787D6B3DC5B68DCCBF9DB5AB90979179696752 6868506A6D52636848666A496D71506C6B4D68674B7A765D918B73AFA88EC3BCA2CBC1A6C8BEA3 D1C3A8D5C7ACD5C4A8D8C7ABCFBEA0D0BFA1D0C09FCDBD9CC6B895BEB08DB4A784ABA281A8A78B A4A68EA9A48EAEA892B8AD99BDB29EBBB3A0B9B39DBBB9A2BCBAA1B2AE91BEB79AC5B79AD0BD9F 967D5F5C4526BAAD8AB9B590ACA98A6D6D514649344D54424C57494D5B4E3A473E3E4E434E5E53 5768585865543E4B377B846FB1B698BEB58EBFB286BBB289BBB68EBFBB96C0BE97C1BC96C0B98F C0B588BDB083BCAB7FC1B287CDBF9AB8AE8B4D482B313014908F71B7B899BABAA0A1A38B6F715B 3B3E2B3A3E2D474E3E41473B394436343E333642363B493A3B493A3243332A3B284D5B4489967C A0A58FB6B8A3AEAB9C443E308E8A7ED2D3C5C5C9BAC6CFBEC4D0BCB4C0AAA1A9949A9F89A5A48F AEB09AB5B9A0B6BAA1BBBBA3BFBDA6C3BCA9C3BCA9C2BDAABFBCA9B9BCABBCC0AFB7BEAEB7BBAC C3C5B8D3D1C5D3CCC2C7C0B6C7C7BBC6C8BBC5C7BAC4C6B9C4C6B9C3C5B8C2C4B7C2C4B7C1C3B6 C1C3B6C0C2B5C0C2B5C0C2B5C0C2B5BFC1B4BFC1B4C5C7BAC0C2B5BBBDB0B9BBAEBBBDB0BCBEB1 BBBDB0BABCAF8E977C858D756F74605054457D7D7189897D5A584B75736493927E898873A5A792 AFB29F848679292C254C504F4143403D3D336A6758514C3948412E5F543E968A709E907388795A 635332958563635532958764B4A785736946A9A07F9086638471508773528570538F7E64AD9E89 B9AE9CAEA69BA39F96A8A5A0A8A9A4A4A4A29C9E9B9FA19CABADA8AFB1ACACAEA99FA49E9FA19C 9C9D989998949C9794A29E9BAAA9A5ADB2ACAFB9B19CACA28F9F958F9F958592896C766E747671 979A938E9284868D7B8D9482949B8989907E828977838A78818876787F6D6D7462777E6C818876 777E6C767D6B7C83717A7F6B83857081806B8786728988748C8B799C9B899394846F70607F8072 818274888A7D92948796988D95978C94978C979A8F95968E9091899D9E9694958D93948C9A9B93 8C8D8591928A8F908891928A92938B93948C93948C91928A8F90888A9084909C8892A18A8B9884 899682949F8E8D9887898F81949A8CA0A4969EA2949FA194A3A5979C9F8E999C8BA4A794A6A996 B1B3A5B1B3A6B2B4A7B3B5A8B2B4A7AFB1A4B0B2A5B3B5A8B5B7AAADAFA2ACAEA1B5B7AAB8BAAD B5B7AABABCAFC5C7B9ADB1A0B1B6A2BEC5B3BDC4B2CAD2C3C0C8B9D1D9CCD1D9CC8A8D822D3025 2B2B1F1E1F112824181A1708403929AAA592D4D1BEB0AF9AC0BFAADAD9C4D6D5C0DAD9C4BBBAA5 6C6B56807F6AD7D6C1C4C3AEC6C5B0B5B49FB0AF9AD4D3BE817F68716C56C4C0A7E5E3CAD6D6BC D9DCC1E4E7CCE2E5CAE9E9CFE8E4CBACA48D6F604B715C49755A496E4E3F7C56496E4D3EB29B8B E6D7C4EDE0CFE4D9C7E5DCCDE5DECEEDE7D9EBE5D7E0D8CB867C70726255756254664E426B4F43 715144694C3E948172DCCFBEE5DECBD2D0BBD4D3BED6D5C0DFDDC8E3DCC9A09080644E40684E41 7155496B4F4363473B775D50CFBCADCFC4B2A49D8AADA592BCB4A1D6CBB9F2E7D5B9AC9B5C4C3C 5444346251415B4839584234644E40BDA799E2CBBDCCBBA9BFBDA6C4C8ADB4B49AC5BFA7A0947E 4F3E2A4A3522513A28594230523D2A685743BAAE98B6B098A5A58BC0C4A9858666574E27B1A075 BAA37AC7A983EAC9A6E5C6A7DCC4AAC8B9A49E9B8A8C90819BA394878F809C9F8EDBD6C2E0D4BC E2D0B8D8C2ABD4BFAABCAD9A9C95838E8F819397888D94827F8770C4C6AED5D4B8615B41796E58 DBD0BCE2D6C6C0B6AA554D422E2A1F2E2C203735299C9A8ED0CEC2C7C5B9D6D4C8ABA99D4D4B3F 2B291D2C2A1E2C2A1E817F73D4D2C6D9D7CBABA79B787262968F7D413A2A3E37273C3525433C2C C2BBABE3DCCCE6DFCDE6DFCC827B68D2CCB4E2DCC2BAB5987873555E5B3A666A45666B43747651 C3C5A0DFDCBDDCD9BAD9D2B6E3DCC0DDD6BAE4DFC2D6D1B391916F747452696B46767B536E744E 848867C3C6A7D3D7B6D9DDBAD7DBB8D3D7B2D1D6AEA1A67E777C545B60386569446F734E686C4B 949877CDD0B1D4D5B6DAD9BBDAD9BBDAD9BADADAB8D9DAB8D9DBB6D9DBB4D9DBB4A2A77F6D724A 555934484E286369476268467D8262B7B79BDFD7C2E3D6C3C4B59E887A5FD7CCACC9C09F504B2B 48472872765B7277603C3F2A2E2D183D3721B2A38CDAC4ACCDB591D7C188DAC282DCC287DDC28B DDC191DCC091DBBE92D9BE91DFC497D7C192DCC79CD4C29AA7967843351B2C1C0C221C0C202717 1F2C1B1A2012292A1AB0A997D1C2ADCFBA9DC8AE89D4B889DCBE8ADBBC85D8BA84D3B583DCBF93 B99D754D3A1A2924101D20152429220C120E121814070A016E6D5BC7C0A3C9BA8FC4B07B9D8348 B6995DB3965CA88D58DFC296CBB289D7C096856F483E2B0D3E2F183D31232E251C373028332F23 2A25117B7458C8BB98C5B288C4A97CD3B382CCA675D3AF7DC5AB787C6A3ABEAC84C0B190B0A68B A59F878886719090788E91768C8F70929675969A7995947698977BA39F86A8A28AB7B096C6BFA3 C9BFA4C3B99ECCBEA3D1C3A8D0BFA3D1C0A4CFBC9ECEBB9DCBBB9ACABA98C6B895C2B491C1B58F C2B895C7C2A5C2BEA5C2B7A1C5B9A3CEBDA9D1C0ACCEBFACC9BDA7C6BEA7CDC6ACBFB59AD0C2A7 D3C0A2D9C0A2A38468563B1DB7AA87B9B590AEAB8C707054494C374D54424954464A584B37443B 39493E4353484B5C4C4C5948303D296F7863B0B597BAB18ABCAF83BBB289BDB890C2BE99C2C099 BFBA94BBB48AC1B689BDB083BCAB7FBFB085C8BA95B6AC894A452827260A8E8D6FBDBE9FC1C1A7 A6A890757761383B28292D1C2F36262B31252A35272E382D313D31334132344233344535354633 64725B88957B8D927CAAAC97B8B5A64E483A868276D2D0C3C7CBBCC9D2C1CCD8C4CEDAC4C5CEB9 C1C9B2CED0BACDD1BABFC5ABBFC5ABC0C2AAC4C2ABC7C0ADC7C0ADC7C2AFC5C2AFC2C5B4C9CDBC C4CBBBC2C6B7C9CBBECCCABEC7BEB5BFB8AEC7C7BBC6C8BBC5C7BAC4C6B9C4C6B9C3C5B8C2C4B7 C2C4B7C3C5B8C3C5B8C2C4B7C1C3B6BFC1B4BEC0B3BDBFB2BDBFB2C4C6B9C0C2B5BCBEB1BBBDB0 BDBFB2BDBFB2BCBEB1B9BBAE7C856A6D755D797E6A7377689191859A9A8E79776A9796848F8E79 86866EA3A58FACAF9A7C7E7022251C4B504C3C3E3B29291F4542334E4838625B486055418D8169 9B8D727465466E5E3D968664625431948663BBAE8C877D5AAFA685887E5B796741806C497D6A4A 87775DAB9C87BCB3A2B5ADA2A6A299A2A19CA6A7A2A6A8A3A3A8A2ACB1ABB8BDB7BBC0BAB5BAB4 ADB4ADA9AEA8A5A6A1A1A09CA39F9CA7A3A0ABAAA6ADAFAAA3ADA599A69D92A29892A298859088 6F766F858782B9BAB2AEB2A4A9B09EB2B9A7B7BEACADB4A2A9B09EADB4A2ADB4A4ABB2A29AA191 969D8D99A090979E8E9DA494A4AB9BA3A798A2A3919F9E8CA7A694ABA99AAEAC9DB9BAAAA8A99B 77786A8585798F9184999B8E9B9D929A9C91979A8F8F928786897E8889818B8C849E9F978F9088 8C8D8595968E7C7D7575766E8A8B838B8C848C8D858B8C8486877F7F807878797172756A808976 899780838F7B7C8975869180838E7D868F7E9AA1919DA192999B8D95968698998790917F90927D 9C9F8A979A85898C7B8C8E80929486989A8C96988A8E90828B8D7F8C8E80999A8C8B8D7F87897B 8C8E808B8D7F848678888A7C939685A6A994A6A994A6AB95989D89A9B19CA4AB99B3BAA8A5A998 9DA192505342292A1A2B2A1831301E2B281586816EC5C0ACBDBBA69C9C84B2B29AD0D0B8CECEB6 DBD9C2C1BFA8716F58929079E2E0C9B8B69FAAA891948F7996917BC1BCA66D68527F7961D0CCB3 EBE9D0D5D5BBD8D8C0DEE0C8D8DAC2DEDEC6DED9C3A39B866A5B48735E4D705544603F30775144 795849B6A190E1D2BFE7DAC9DED5C4DAD3C3DAD4C4E6E0D2E3DDCFB0A89B675B4F6151446B584A 63493C6E51437755496E5143AB9889EBDECDECE5D2D8D6C1DAD9C4D5D4BFD4D2BDD6CEB9A89986 5F4A39694D3F7659496D5040694E3D846A59DDCBB7DCD1BDBDB8A2D2CBB8D5CFB9CBC4B1DAD2BD B6A9986F604D554434655241594234533C2C6C5547CAB3A3E6D0C2CABBA8C6C4ABD0D3B8B9B79E CBC5ADAFA38D5C4A36563F2D654B3A4D33224C35236D5B47C1B59FBEB8A0BBB9A0D7DABF807F60 5A512AB1A075BDA67DCEB28BEFD1ADE9CCAEE2CDB2D4C8B2A7A6948C958498A496828F7E999D8C D7D5C0DAD0B7E0CEB6DECAB2DFCDB7CAC2AFA5A4928992818693828D9A888F9B87BEC2ABE7E2CC 685D47746852DED1BED9CDBDB5AB9F645C512C261A322E22403C31A6A497DCDACEDAD8CBEBE9DD B7B3A75A564B312B1F2D261C2C261A868277DEDACEDDDBCFACA89C7069598E85743E3526362F1F 322B1B3D3626B7B0A0D9D4C1DBD6C3DED9C57F7A64D1D0B4E1E0C2B7B697727250565735797F59 727852747853BEBF9DDBDBB9DEDBBCD6D1B3D9D4B6D5CEB2E0DBBDD6D3B49696747879576A6E49 747A546A704C8B8E6FC6C9AAD3D6B7D9DDBCD8DCB7D7DCB4D9DEB6ADB2896D724953583060653D 6C704B686C4B96997AD2D5B6DBDBBFDAD9BBDAD9BBDCD9BADAD9BADADAB8DADAB6DADAB6DADAB4 A8AA8373754E5E633B5458336E724F6C704D848865B8B799E1D9C2E5D9C3C6BAA2877C60D8CDAF CEC5A4554F2F4E4B2C74745875785D3F3F27332E18403821B1A28BD9C5ACCBB391D8BE8BDAC085 DEC189DFC18DDFC092DCBF93DABD93D9BC92E1C69BD8BF96DCC69FD4C09DA8957745331B2E1D0B 261D0C262918272E1E2023122C2916B0A893D1C3A8CEBB9AC5AE84CFB584D8BD88DCBE88DCBC89 D7B788E3C297C4A47D5D42243627122C25153832261E1C1026241817140578745BD3CAA9BDAF82 B29E6B7B622991773C91743C90753ED9BD8DCDB084C3A67A7C6038432B09523D225F4A37544234 5A4C3F594C3C3D2E1986765CD0BD9CC8B289C2A77ACFB081C5A471CEAD7ACCB281836E3FBEAC84 BEAF8EB4AA8FB6B098AAA58FB9B79EB8B799B9B899C4C19EC6C3A0C2BD9DC7C2A4CCC5ABC2BBA1 BFB89CCCC3A6C8BEA3C1B69AC6BB9FCCBEA3C9BA9DC9BA9DCBBA9CC8B799C7B897C8B998C7B897 C6B997CDC09DD3C8A8D6CCB1D0C5AFCABEA8CCBDA8D0BFABD3C1ADCEBDA9C8B9A2C3B79FD4C6AC C7B79EDECAB1DEC6AADFC1A7A684694C2E12B6A786B9B592B0AD8E7473574D4C374E51404A4E40 484E443B423A3842393B453A3F4A3C3E4939252E1D666F5CB1B499B7AF88BBAE82BAB188C1B992 C6C19BC6C19BBEB993B7AF88C4B88EBEB187BCAD84BFB089C4B693B3A888474023211D026A6A4E A5A58BB7B79DACAC928B89725857424B4A3650513F5B5E4D65695A70776777806F7B8471818A75 8C967E949E85889375959E7F85896EA1A38DBCBBA74E4B3C787669C0C1B3C5C9BBC1C9BAC0CBBA CAD5C4C9D2BFC7CFBACED3BDC1C4AFC8D0B8C9CEB7C9CBB5CAC9B4CAC7B4CDC8B5CCC9B6CCCBB9 BEC1B0C6CAB9C2C6B7BABEAFBEC0B2C3C1B4C9C2B8D1CDC2C7C7BBC6C8BBC5C7BAC4C6B9C4C6B9 C3C5B8C2C4B7C2C4B7C5C7BAC4C6B8C3C5B7C1C3B5BFC1B3BDBFB1BCBEB0BBBDAFBCBEB0BABCAE B9BBAEBBBDAFBFC1B4C0C2B4BEC0B3BBBDAF7D856D7880694146320D11026F6F6369695D323021 7B7A6692927A8E8E74A0A388ACB0976A6D5A2B2F212C3228292E2722231B26261A3E3C2F383524 554E3B91867091856B8273567464438171508979579D8F6CAC9E7BB3A683ADA380887C5687784D 89784D8373519B8D72AFA291AFA79AB5AEA6A8A59E9D9E96AEB1A89EA49AA1A99EAEB6ABA3AAA2 9FA69F9FA9A1A9B4ACB3BDB5B3B8B2A6A7A2A29E9BA8A4A1A8A7A3A1A39EA7B1A998A59C95A299 95A299808A8270756F90918CC4C5BDB0B4A6B8BCABACB09FBFC3B2B1B5A6B4B8A9ADB1A2B1B5A7 A4A89A9DA19396998E95988D9C9F96A7AAA1B1B4ABB7B8B0ACACA2AEACA0B2B2A6B5B5ABB8B8AE BFBFB5B1B1A78E9085B8BAAFB2B4A9B7B9AEBFC2B9BABDB4A6A9A09A9D949B9E95A3A49CA9AAA2 B2B3ABBCBDB5C0C1B9BABBB3ACADA5A1A29AA3A49CA1A29AA5A69EA6A79FA6A79FADAEA6A9AAA2 94968BA4A899B1B8A6A3AC9B889382879480929F8B909986878E7C9798869F9C8B9E998695907C 8F8D788E8E7684866E777B64919481818473818473939685969787888979858676919282999788 7F80707B7C6C7F80707F82717B7E6D797C6B8B8E7994967E86896E818469898C718E91768C8F74 9194799B9E83A5A78F9B9E8347472D1A1A0029290F68684EB0AE959C9A81A3A18886846BA3A188 DCDAC1D0CEB5CDC9B0BFBBA257533A948E76DAD4BCB7AF988A826B7E735DA29781C3B8A26A624B 7D775DD9D5BCE4E2C9D6D6BEE4E3CED9DBC6D4D6C1E4E3D1DFDCCBA79E8D6D5D4E644E40765A4C 765546714B3E765546AB9887E8DDCBEFE6D5E2DBC9E1DBCBD6D3C4DBD8C9E6E3D4C2BCAE665C50 6F6154725F5172584B6D5042715142705343AB988AECDFCFE9E2D0CFCCB9D5D4BFDAD9C4DBD9C2 D9D1BA9B8C7565503B70554071553F6A4E366D533A887054E1D0B6D6D0B6D0CEB5C7C7AFD5D5BB D6D6BEDBD7BEC2BAA56657426853425D4634684C3E5D4332715A4ACBB9A5D2C1AFD7CCB6CAC6AD CECCB3C2BEA5C5BDA6AE9F8A6654404A352257402E533C2A4E3926776551BCAD98B7AF98BCB89F CECCB38B8869544820AE9D71BBA47AC9B087E9CDA8E1C9A7DCCDB0D0CAB2A0A5918C9B88899B8B 889987A7B09BD1D0BBD9CFB6DCCCB2D9C8AED7CBB1C7C7AF99A58F829883819A877E938095A290 C8C9B7D4C9B76C594885705FD9C8B8E2D6C6C5C2B15A5748352B1F382E22494136A5A293E3E1D4 DCDACBD9D7CAC5BFB1655B512D21153B2D24372B1F83796FE2DCCEE0DCD0ABA8996D64539F9482 4A3E2E3E3524433C2A3A3321ABA693E7E4D1E8E7D2D5D5BD84876ACACFAFD5DBB9BDC39D6E764D 5C643B666E476E76517B815DB3B794DFDFBDDAD7B6DAD7B6DDDAB9DCD7B9DDDAB9DCD9B8949472 707451636945676F4A6A714F797E60C7CAAFD6D9BADCE0BFD9DDB8D7DCB4DCE2B6A5AB7F6F7549 53592D5A5F37828661666A49818465DFE2C7D0D0B6DAD6BBDBD7BADDD8BBDCD9BADBD8B9D9D6B5 D8D5B4D6D3B0B3B08D74724C69674154522C73714B87855F6F6D47C0BC99E2DBBEE4DABFD2C9AC 7C7356CAC1A4CDC4A76B62454B44287F795F918B715D553E41362041321BAF9F86D4C2AADEC7A8 D3B488E5C491DCBC8BD9B88BE0BF94DFBF98DFC19BDDBF9BDEC19FE0C6A5DAC1A3E1C9AFA79179 4B3520311C0B2E1C0E271D11383025292210251D06B3A88ACFC39DC9BB8ECAB985D6C38BD1BB82 D8BD86D5B785D6B487EAC49DC59D7A6B44275B382453342044291449331C4E3A21423115766845 DFD2A8C4B385C2B07EBDA873B9A36AC4AA71CEB47BCBAD77BE9E6B9C774A663F16552F0A5E3A1A 522E1454311B63422F5F402C40210C876C51C7AC8ED1B792C6AA82C4A97AC8AE7BC6AC79CFB584 877044A29068DFD0AFCAC1A4CFC9AFC6C0A6CBC6A9CFC6A7D0C6A3D1C59FD1C39ECFC19CCDC09D CCBF9FCABFA1C8BD9FC0B597D1C6AAD0C5A7C9BEA0CCC1A3C3B598C0B295C9BB9EC9BB9EC8BB9B C4B797C2B595C3B898CABF9FD0C5A7CCC0A8CCBFACCDC0ADCEC1AED1C2ADD2C3AED3C4ADD3C4AD D7C7B0C8B69ED1BDA5CEB69ECFB39DDFC1A9AC89734B2F17A69979B5AF8DB1AC8E878167433D27 453E2E484236575046534F464D4A434E4B445050484F5146575B4D777B6C9F9E89A69E7AB5A97F C4B890C9C099C8BF98C4BA96C2B894C3B995C3B693B9AC89CABC99BCAD8CC6B999BCAE915E5335 30290D81806BBABCA69A98819D997EADA388B1A88BACA287ACA589AEA890ABA992AAAA92A8AB90 AAAB8CABAB89ADAB85ADAB84A4A57BBFC199ABAD88AEAF90B6B8A0585A456D6F61BCC0B2CBD1C5 CCD4C9CBD3C8C8D0C3C2CABBC1CAB9C4CBB9CACFBBCCD1BDCCCFBCCACDBAC9CAB8C6C7B5C4C5B3 C3C4B2C2C3B3C5C8B7C5C8B7C6C9B8C8CBBAC9CCBBCBCCBCCCCDBFCCCDBFC8CABDC7CBBDC7C9BC C7C9BCC6C8BAC5C7B9C5C6B8C5C6B8C0C1B3C7C8B8AFB2A1A3A695B8BBAABBBEADB7BBAACCD0BF C4C7B6C1C4B3BDBFB1B9BCABB7B9ABB7BAA9B7B9ABB8BBAA838B738287704E533F272A1988897B 77786A3E3C2D8B8A759B9B8199997DADAD91B3B69B6A6D5822261523261B23291F171A1117190E 2E2E2235322355503D8B836E8D81677E70537F70519282619B8B69AC9C7AAFA17EAC9E7BA89B79 8B7F5985774884764780704C9B8D72B1A694B3ABA0B8B3ADACABA6AEAFA7B2B8AE989E92949C8F 9CA69B959F949AA49C9DA8A08F9A929CA79FA6ABA5A5A6A1A8A7A3B2B1ADB4B3AFADAFAAA2ACA4 939E968E9B928D9890778179696E68898A85BBBCB4A0A496A5A9989296859EA2919CA091A4A899 9CA092A4A89A979A8F979A8F989B929A9D949DA0999FA29B9FA19C9FA09A9F9E999E9B94A6A69E AEAEA6B2B2AAC3C3BBC4C5BDAEAFA7C1C2BAB5B6AEADB0A7ADB0A7A7AAA19A9D94959B919CA298 999A92A0A199ACADA5B9BAB2C1C2BAC0C1B9B8B9B1B2B3ABA6A79FA3A49CA8A9A1ACADA5B1B2AA BFC0B8C0C1B9AFB1A6BABCAFCDD1C2C4CBBBA8B3A2A3B09CAAB7A3ABB7A1ACB49FBCBBA7C3BEAB C0B9A6B4AE98A8A38DA4A48AA7AA8FAAAE95ADB09B9FA28FA0A390B4B7A4BCBDABB2B3A1B3B2A0 BEBDABAAA997A2A18FA7A896AEAF9DAAAD9A9FA28F999C89A3A691989A828B8B6F84846A88886C 8A8A7088886C8D8D7398987CA2A28880806444442A31311528280E5353379F9F858E8E748D8D73 6D6B528B8970D1CFB6DCD8BFDDD9C0C4BEA65852388E876DE1DAC0D3C9B0A79B838B7F67A3977F BEB29A685E45837D63DBD7BCE3E1CAD4D4BCE5E4D0DEE0CBD7D8C6E0DECFDBD8C9979080615142 5F493B6E52467050416F493C6C4C3DAB9A88E4DCC9E7E0CEDBD6C3E3E0D1E0DECFE2E0D1E5E3D4 CDC7B9736C5C74665965544460493B674C3B7151426A4D3DA89587E2D4C7E4DDCBD5D2BFD6D5C0 CBCDB5CAC8B1CCC6AC9D8E775F4B33624831684C34674C31695032816A4BD2C3A4CEC9ACCFCFB5 CACDB2D2D5BAD2D5BAD8D8BEC0BAA2685C46624D3A5C4231624736583D2C6D5644CAB8A4D1C5AF D4CCB5D2CEB5D4D0B7C7C1A9CEC3ADB1A28D6655414D38255C4533553E2C513C297D6B57C9BAA5 C8BDA7C3BDA5CDC9B0898466544820AE9D71BBA478C9B087E7CEA6E0C9A7DCCDB0CFCBB29DA590 899A87869B88879A87A7B09BCFD1B9D8CEB5DBCDB2D8C9ACD6CDB0C4C8AF97A78D7E9A847E9B87 7D948295A291C2C0B1D8CBBB7861518B7464D9C8B6DED6C3C4C3AF5D5E4C33291D36281D443A2E A39D8FE0DECFD8D9C9D9D6C7C6C0B272665A3E30254D3C3248372D8D8175E7DFD2E6E3D4B2AF9E 716857A297854B3F2F382F1E3B342237321FAEA996EDECD7DCDBC6CACDB27E8365C9D0AED4DEB9 BAC59D677449525F346570486E76517C825EB4B895DADBB9D0D0AED3D0AFDBD8B7DBD8B7DFDCBB DBDBB9929371707451676D496E76516F76547E8166C9CCB1D8DBBED7DBBAD2D6B1D4D9B0DBE1B5 A7AD7F7B81535A60345A5F3680845F6D7150898C6FDEE1C6CECEB4DAD6BBDCD7BADDD8BBDDD8BB DCD7B9DAD5B7D9D4B4D7D2B2A8A48177735074704B605C3674704A7F7B556C6940B9B58FE9E0BF E8DFC0D6CDAE857C5DD5CCAFD6CDB070674A4A3F23887C6294886E5B4D333A2A103D2C12AA997D CDB9A0CEB797DABA91E5C395DFBD90DBBA8DDFBE95DEBE97DDBF9BDBBD9BD7BA9AD3B599CEB398 DCC2A9AC927B533A243A210D3C27162F1D113C2C1F3A2B183E3015B5A885CDC094D0C291D2C38C CAB981C9B47BD4BB85D4B586CEAB81D7B18CB78C6C6B3F246437226136235630195C3A1F624527 58401E826F47DAC99EB7A678C2B281BEAA78AE9964B79E68CDB27BC9AB75B1905B936D40643A10 572D075F3714532A0C50290C583319512D1556341B7E5F43A6896BB49A77BBA47BC6AF83C8B482 C3AD7CD2BA8A8B7347A18E66DED0ADCCC3A4CDC8ABC6C1A4D2C9AACBBE9CCDBD99D0BC97D0BD95 CFBB96CEBC96CCBC9ACBBC9BD7CAAACDC0A0CEC0A3C6B999CBBDA0D8CBABD6C8ABE1D4B4C5B79A C7BA9AC7B99CC5B898C3B598C4B797C9BB9ECEC0A5CBBBA4CABBA6CABBA6CABBA6CABBA4CABBA4 CABBA4CBBBA2D1BFA7CBB79ED9C1A9D9BFA8D9BDA7E5C7AFB4917B52361E988B6BAAA482A7A083 9E977B90856FA398869B8F819F9387A79A91A59B92A9A097ABA49AA19F939697899FA092B4B29B ABA37FB7AB81C3B78DC9BD95C8BC94C5B993C5B993C7BA97C3B693BAAD8BCABD9BBEB191C7BA9A BDAF926254372E24096A6954B4B7A2A7A58EADA68AB6A88BB5A685B4A586BBAE8EB4AB8EB1AC8E B0AC8FB0AD8CB1AD88B2AD83B5AD7FB5AD7EA3A171AAA97B878860989977B9BC9F60644D696D5E C2C8BCC5CDC2C7CEC6C8CFC7C6CEC3C4CCBFC3CCBBC6CDBDC8CFBDC2C5B4C4C7B6C6C9B8C9CCBB CCCFBECDD0BFCED1C0CFD2C1C6C9B8C5C8B7C4C7B6C3C6B5C2C5B4C2C5B4C2C5B4C2C4B6C7CBBD C6CABCC7C9BCC6C8BBC5C7B9C4C6B8C5C6B8C4C5B7CBCCBC9798884C4F3E484B38919481BFC2AF BBC0ACB9BEAAB9BCABB9BCABB9BCABBABDACBBBEADBFC2B1C4C7B6C7CAB98A9076868B74545744 393A2A97988A7C7A6B4A47369F9D8887856C8B8C6DA3A485ACAF926567511A1D0A1B1F1125281D 21221A1B1D122E2E223D3A2B5B5643877F6A91876C8C7E618677589C8D6CA69875B4A683B5A784 AC9E7BAA9D7A9A8C658476477F71427C6C489C8E73B5AA98B6AEA3BBB6B0B1B0ABB0B1A9B3B9AF A1A79BA3AB9EACB6ABA5AFA4A5AFA7A1ACA4A8B3ABB1BCB4B9BEB8B8B9B4B5B4B0B1B0ACA8A7A3 9A9C97A2ACA4949F978D9A918A958D757F776A6F69898A85B7B8B0A8AC9EA5AC9A8A917F888F7D 949B8BA1A898949A8C9FA5979EA498A2A89EA7ACA5AAAFA8A8ADA7A4A9A3A0A59F9FA29BA5A49F 9C9992A0A098A4A49C9F9F97ABABA3AEAFA7999A92ACADA5ABACA4AFB2A9B6B9B0B0B3AA9FA299 90968C8D9389ADAEA6AEAFA7B0B1A9B0B1A9ADAEA6A8A9A1A1A29A9D9E96A5A69EA2A39BA6A79F AAABA3B0B1A9C1C2BAC6C7BFB8BAAFB7B9ACCCD0C2C8CFBFAEB9A8A4B19DA8B5A1ABB7A1B2BAA5 BAB9A5C5C0ADCDC6B3CAC4AEBCB7A1B0B098B4B79CC0C4ABD5D8C5C5C8B7C1C4B3CACDBCCBCCBC BDBEAEB5B6A6BABBABC1C2B2BEBFAFBBBCACBABBABB7BAA9B4B7A6BBBEADC3C6B3B7B9A4ACAE98 A5A792A8AA94ACAE99AEB09AB5B7A2BFC1ABC7C9B481836D4A4C3740422C232510474933A9AB96 B5B7A19B9D8776765E8C8C74CECEB6E2E0C9E0DEC7BAB59F555138A6A088E8E0C9D4CDB3A99F86 8F856CACA289C2B89F685E45837D63DAD6BBE4E2CBD3D3BBE2E1CDE1E3CEDCDDCBDEDDCBE5E2D1 928B7B6050416451426F55487356467854466C4F3FAE9D8BE5DDCAE5DECCD8D3C0E4E1D2E5E3D4 E4E2D3DFDDCED4CEC07D7666776B5D604F3F5C45376D5241775748684D3CAE9B8DDED0C3E3DCCA DCD9C6D6D8C2C5C7AFC6C4ADCCC6ACA697806351395E462E6A50376D53386C5438846F52D3C4A7 CBC5ABCECEB4C9CCB1C8CBB0CACDB2D6D6BCBBB59D6A5E4857422F593F2E5F4433563C2B6D5644 CBB9A5D4C8B2D0C8B1D3CFB6D0CCB3C5BFA7CDC5AEAA9E885E4D3947321F56412E4E3926483622 756450C7BBA5CDC5AEC4BEA6C9C5AC8B866855481EAF9D6FBCA478CBAF87E9CDA6E1C9A5DCCDAE CFCBB09DA58E8B9A87889B88879885A7B09BCED0B8D8CEB5DACCB1D7C8ABD5CCAFC4C6AE97A58C 8097837E99867E938095A08FBDBAA9DECEBE7E69568F7866DCCBB7DFD7C2C6C5B16364523A3024 382C20443C2FA3A091E4E2D3D9DACAD9D6C7C7C1B360564A322419402F253F3126897D71E4DCCF EAE8D9B7B4A3685F4E9E92825044343B32213C35253A3424A8A390E7E6D1E3E2CDD0D3B8818668 CAD1AFD4DEB9BAC59D667147505B3169714A6C744F797F5BB5B996DEDFBDD2D2B0D7D4B3E2DFBE D9D6B5DEDBBAD8D8B68C8D6B6B6F4C676D496F77526E75537B7E63C8C8AEDCDCC0D6D7B7CFD1AC D5D7AFDBDEB3A9AC8172754A585B305A5C347678536364447E7E62CFCFB5CECCB3DAD6BBDCD6BC DDD8BBDDD8BBDCD7B9DAD5B7D9D4B4D7D2B296926F726E4B6F6B465C583365613B6C684266623C ABA781E1D9B5E4DBBAD4CBAA867D5CD1C6A6D0C5A5766B4B504323776A4A847556584729443413 544121B9A685DAC5A6DAC29ED7B88CE0BE90E9C799ECCB9EEDCCA1E7C79ED9BC94D1B38DEED2AD DEC1A1D0B597D5BC9EAD9378654B325339205A442D63513D6958466F5F46655637A1936EA99A6F BCAE7FC8B885C9B884CAB580D5BE8CD3B788C1A077B5926C966F4E61381C5B311B5D3420542E17 5634195A3F21553E1C725E39B19F77A19065BCAB7FC1AC7FAB9564B09967CBAF7DC0A27099794A 8260335D3A1255320C5F3D185734145231125536194D2F13583A1E62472A775E3F957E5CB4A07B C9B68CC9B88CC2B082D6BE908F774B9A875FD8CAA7C8BFA0C4BDA0BDB699CBC0A2D0C1A0D3C19B D6C099D7C198D5C29AD5C39DD3C3A1D3C3A2CFC09FD1C2A1D2C3A4C8B998CFC0A1C6B796A69778 A99A79C0B192C3B493C6B798C6B796C3B495C3B493C6B798C9BA9BD5C4AAD4C2AAD3C1A9D1C1A8 CFBFA6CDBDA3CCBCA2CDBCA2C5B49AC6B297D5BDA3D7BDA4D3B79FDBBDA3B08E754E33169B8E6C BEBA95B7B18FB4AD90B9AF94C7BCA6B8AB98C2B5A5B8AA9DBAAEA0C1B8A9C6BFAFBDB7A7AEAB98 AAA794B0AC91B3AA83BCAF83C3B68AC6B98FC6B98FC5B790C7B992CABC97C5B792BDAF8CCCBE9B C3B493CABB9ABFB09168593A281F0252523AB0B49BB4B397BDB699BDB090B8AA87BAAB8AC5B896 B7AE8FB4AF8FB3B091B3B08DB4B08AB7B084B8B081B8B07F969262969567707149878866B6B99C 5F634C525647BAC0B4C3CBC0C4CBC3C5CCC4C5CDC2C7CDC1C7CEBEC8CFBFC8CFBDCACCBECACCBE C9CBBDC7C9BBC5C7B9C2C4B6C0C2B4BEC0B2CED0C2CDCFC1CBCDBFC8CABCC5C7B9C4C6B8C3C5B7 C2C4B6C5C9BBC5C9BBC6C8BBC5C7BAC4C6B9C3C5B8C4C5B7C3C4B6CCCDBF9C9D8D5A5D4C565948 969988C0C3B2BEC3AFBBC0ACBBBEADBDBFB1BEC0B2BCBEB0B7B9ABB3B5A7B2B4A6B4B6A87B7F66 74785F45473232311F86847567645544412E9B99828F8B70989779ADAC8EB0B09467674F141503 0E10021A1C111E2015191B102725193431224843306F675290866B9F94768F8262A69776A89A77 B3A582B9AB88AFA17EAB9E7B9E90698678497C6E3F7767439B8D72B6AB99B4ACA1B8B3ADAFAEA9 B2B3ABB4BAB0AAB0A4B7BFB2C3CDC2C1CBC0C2CCC4B5C0B8BAC5BDB5C0B8AEB3ADA8A9A4A8A7A3 AEADA9B4B3AFB5B7B2A6B0A89AA59D94A1988F9A927D877F74797391928DB8B9B3A0A6989BA491 838A78747D6A8C93839DA6959197899CA497A1A79DA2AA9FA5AAA3A2A9A1A0A59F9DA49DA0A59F A4A6A1C8C7C2BBB8B1BABAB2BEBEB6BCBCB4C3C3BBBCBDB5A1A29AB5B6AEB3B4ACB2B5ACB3B6AD B3B6ADB2B5ACB0B6ACB2B8AEB3B4ACB3B4ACB2B3ABB0B1A9ACADA5A9AAA2A7A8A0A6A79FADAEA6 A9AAA2AAABA3ABACA4AEAFA7BCBDB5BFC0B8AFB0A8B1B3A8C0C4B6BAC0B2A7B2A1A5B2A0A8B5A1 A9B5A1AEB6A1B8B7A5BCB7A4C3BCAAC8C1AEBFBAA6AEAE96ABAD95B2B69DC1C4B1B5B8A7B3B6A5 BCBFAEBFC2B1B7BAA9B3B4A4B4B7A6B3B4A4BBBEADBDBEAEC8CBBACDD0BFC7CAB9C4C7B6B8BBAA BDBEAEB8B9A9B3B4A4B3B4A4B4B5A5B6B7A7BBBCACC0C1B1C1C2B28A8B7B6061515C5D4D464737 585949A8A999C9CABACCCDBBA7A994B0B29DD6D5C1D8D7C3CFCDB8A9A792615C46A49F89D5CFB7 C8C2AAA49D838D866CACA58BC1B79E6861477A745AD4D0B7E7E5CED7D7BFDDDCC7DCDEC9DEDFCD E1E0CEE6E3D28C85735C4F3F6552436851416F5345775748674C3BAA9B88E5DECBE8E3D0D8D5C2 E0DDCEDEDCCDDDDBCCDAD8C9D0CABC736C5C6F6355605040624C3E705645755848674C3BB3A092 E0D4C6E8E1CFDFDCC9D6D8C2CED0BAD5D5BDD6D2B9A2967E6A5840624C3570584071573E6D5539 8D795EDBCDB2D7D1B7D4D4BACCCCB2C4C7ACCED1B6DEDEC4B8B29A685D475F4D39654E3C674D3C 614736745F4CCAB9A5D8CCB6D0C8B1CAC6ADC4C2A9C3BDA5CEC6AFA79B855B4C37493723564430 543F2C4B392570614CC4B8A2D0C8B1C2BEA5C7C3AA908B6D55481EAF9D6FBCA478CBB085EACDA5 E2C8A5DDCCAED0CBAE9EA38D8A9984889986869784A6AF9AD0D0B8D7CDB2DACCB1D7C8ABD6CAB0 C5C5AD9AA48C82958182978480917F969F8CC0BBA8DFD0BD7A65508D7863E4D4BDE7DFC8C7C6B1 6668534037283E3226494134A8A596E9E7D8DFE0D0DBD9CAC6C0B270665A3E32263E30253F3126 8B7F73E1D9CCE9E7D8ADAB9C635C4C988F7E51483737301E3831213B3525A3A08FE4E1CEEFEED9 D8DBC0878A6DCCD2B0D7DFBABDC8A06D784E5C643B747C576E7450747855B4B593E4E4C2DCDCBA DAD7B6DEDBBAD7D4B3DDDAB9D7D7B58C8C6A6E6F4D6C704D757B577379576F6F55BBBBA1DBDBBF D7D8B8D1D3AED8DAB3D5D7AFA7AA7F686B405F6139696B44787A5560614177775BCACAB0E3E1C8 DAD6BDDCD6BCDDD7BDDDD8BBDCD7BADAD5B7D9D4B6D7D2B2908B6B706C49625E3B54502B5D5934 68643E6F6B45A29E78DAD2ADE8E0BBDBD3AE867C58B9AF8BB8AB887F724F6A5C3779694582724E 6E5A356A56316F5932A9936CBDA57FC5AC83DDBE90D7B788DCBC8DD4B586D2B385DEBF93DBBE94 DABD93CAAE86B99D76A98C6AA288658F7554765C3B795E40876E506E593E6F5B40806D4F73603F 816F4987764BB4A377CCBB8DD2C090D3BE8FDDC597D7BC8FB999729B79537D59355C38185D381E 5F392257331B523317563B1D553E1E6753308B7953A29068C2B186CEBB90C1AC7FC5AD81D5BA8D C2A579987B4F83633A684B2365472170542D6E522D6C522F6E5632695230776040756140857251 A99773C9B995D6C7A0D2C49DD1BF97D7BF93967A5297815CD7C7A5CEC3A5C7BEA1C2B99CCFC2A2 CDBD9BD0BC97D2BB92D2BB92D0BA91CEBB93CCBA96CABA98D0BD9CDBC8A7D8C5A5C7B493C3B090 9B88675744244B3817C3B090C8B594CCB999CCB998CAB797C9B695CAB797CCB999CAB598C9B499 C6B297C3AF94C1AD92BEAA8FBCA98BBBA88AC8B597CAB598D1B89AD1B699CBAD91D3B498B69479 5A3F21857C55B5B289A29C78A29C7AB9B091C3BA9DB1A58DC0B49EB7AA97B8AB98B9AE9ABAB29D B9B39BB6B098B4B095B7B292BDB189C0B386C1B487C2B589C3B68AC5B88EC8BB91CBBD96C5B790 BFB18CCCBE99C6B895CABC99C2B392706140231A004C4C32B1B499BBB79AC0BA98C1B491BFB18C C0B28DC8BB98BBB291B9B391B8B491B8B48FB9B48CBBB486BEB483BCB581A5A171B2AF8295936C A2A280CACAAE72765F4B4F40BBC1B5C9CFC5C7CEC6C6CDC5C5CDC2C7CDC1C8CFBFC9D0C0CBCFBE CDCFC1CCCEC0CBCDBFCACCBECACCBECACCBECACCBECBCDBFC1C3B5C2C4B6C4C6B8C5C7B9C6C8BA C6C8BAC6C8BAC6C8BAC4C8BAC4C8BAC4C6B9C3C5B8C2C4B7C2C4B7C2C2B6C2C3B5B6B7A9B3B4A6 A1A4939A9D8CA8AB9AAFB2A1B0B5A1BBBFAEB7B9ABBDBFB1C2C4B6C3C5B7BFC1B3BBBDAFBABCAE BBBDAF7D8065787B605557414A49378C89786E68585954409E9A819F9A7DACA98AB5B293ACAB8D 66664C1517020708000B0D00090B000709000D0B001411021A150239311C6F654C8E83679A8C6F B0A381A79976AB9D7AB8AA85B0A27DA395709083598C7E4F7C6E3F7464409A8C71B6AB99B0A89D B1ACA6AAA9A4BBBCB4B2B8AEA4AA9EB1B9ACBCC6BBC1CBC0C9D3CBB9C4BCBCC7BFA4AFA7868B85 70716C68676373726E8988849A9C97A2ACA499A49C93A0978D98907E88807A7F79949590B5B6B0 9CA2948D98877E8776586352636B5C6D78685F675A626D5F5A62575A645B5D645D59635B595F5B 59625D616763676C665E5D5865625B6C6C64808078A0A098BBBBB3BABBB3A9AAA2B7B8B0BDBEB6 C2C5BCC3C6BDC2C5BCBEC1B8B4BAB0ADB3A9B5B6AEB9BAB2BFC0B8C4C5BDC4C5BDC0C1B9B9BAB2 B4B5ADB6B7AFB1B2AAB3B4ACB3B4ACB5B6AEC1C2BAC1C2BAB0B1A9B9BBB0BEC2B4B6BCAEB1BCAB BDCAB8C4D1BDC1CDB9C3CBB6CBCAB8C2BDAABEB7A5C5BEABC6C1ADB9B9A1AEB098ACB099ACAF9E A8AA9CAAAC9EB3B5A7B7B9ABB5B9AAB5B7A9B6BAABB2B4A6ABAFA091938592948696988A919385 989A8C898B7DA4A498A4A49AA0A09699998F9393899191878E8E848C8C8286867C8B8B8184847A 8E8E8492928886867C939389AAAA9E9A9C8E8C8E809D9F91AEAF9FAEAF9FB8B7A5B0AF9D979481 ABA994D2CDB7D5D0BABBB59D979177A49E84A9A288534D33767259CECAB1E9E7D0DDDDC5D9D8C3 D4D6C0DEE0CBE6E5D1D0CDBA807967574B3B5D4C3C5C473663493A6B4E3E5C42319A8D7ADDD6C3 E9E4D1DCD9C6DDDACBD5D3C4DAD8C9E3E1D2C6C0B26059495C53445C4C3C5F4C3D634C3A664B3A 604635A59484DBCFBFE9E2D0DCDBC7D4D6C0DADCC6E3E3CBD2CEB58379605F4F365C483068523A 634B335B462B827157CFC1A7D9D3BBD1D1B9CBCBB3C6C8B0D9DDC4E3E5CDAAA58F5D523E645341 6954436248395B44346A5746BDAE9BD7CCB8D6D0BAC9C4AEC4C2ABC7C1ABD0C8B3A196825B4C39 4D3C2A54433158453451402E71624FC2B7A3D4CCB7C5C0AAC3BEA88F8A6C55481EB19C6FBEA376 CCAF85ECCCA5E2C8A3DFCCACD1CAAD9EA28B8A9881899885889782A6AE97CFCFB7D6CCB1DACAB0 D7C6ACD7C9AFC8C3AD9CA18B85927E869582838E7D989D89C8C1AEDDCEB96F5B4388745CEEDEC7 EDE5CEC6C5B06A6955382F203B2F23453F31A19F90E5E6D6E4E5D5DEDCCDBFBCAD696154392D21 33251A3B2F238A8074E2DCCEF1EFE0B0AE9F645E4E9A93835A53433B34243D3528474131A6A392 E5E2CFE9E8D3D5D7BF878A6FCCD1B1D6DCBABCC49D6E764D5C643B757B576A6E4B676B48A6A785 DFDFBDDEDEBCD6D3B2CFCCABDCD9B8DDDAB9D6D6B48E8E6C6F704E676B486E724F6D715067674B AEAC93D9D8BCDCDBBCD9D9B7DDDDB7D1D2AAA8A97F6162385D5E3664643E6E6E4C61604178775B BCBAA1DDDBC2DAD6BDDCD6BCDDD7BDDDD8BBDCD7BADAD5B7D9D4B6D7D2B2A19C7C86825F716D4A 6F6B467E7A558A866194906AABA781CAC29DE3DBB4D6CDA6716841887C5485775074653C78673C 7B683D7E6B407E673B88714581693B917649A28758BEA273D7B889D3B583E9CB99DFC091D7B889 E8CC9DE3C798DCC091DCBF93CCAF85B5986E94785080643C7C60387C60397E653D8E7652846E49 917D588E7B53907D559C8B60C5B489D0BF94D3C096D6C196DEC79DD9C097BCA0789A7D5583633C 745330795638775339704E336C4F3170573877604085714E96845EBBAC85D0BE96DBC8A0DAC49B DBC49BDEC59DD0B48DB89C759D845C8E774E8972498E784F907A51927C53927F55907F549F8D65 9D8E67AA9C75C1B38ECBBE9BC7BA97C6B997CFBF9BD5BC949D8159927C57D1C19FD1C3A6C9BEA2 C5BA9CCFC0A1C7B591C9B38CCAB188C8AF86C5AE85C2AC85BEAC88BDAB87B09C79B7A380B19D7C A28E6BAB977696825F675332695532A28E6DA79370AB9776AC9875A99574A89471A99574AD9676 C3AA8BC2A98ABFA888BDA686B8A483B5A180B4A07FB29E7DAC9877B19A7AAB9273AD9274AA8D6F B8997AB08F705B411E80774CABA87B8580588F8A62B9B18CC0B693A194749C8E71CCBEA3CABCA1 C5B79CBEB397BEB596C3BA9BC3BD9BC5BD98C4B98CC3B787C1B585C1B487C3B689C6B98DC8BB8F C9BC92C6B98FC1B38CC9BB96C6B893C9BB96C5B7947C6E4B221900545438B5B89BB8B596BCB490 C1B38EC6B790C5B68FC4B68FBFB591BCB692BBB792BBB88FBCB88BBEB886C1B782C1B782B9B383 C3C093AAA881A9A987CCCCB0878B74474B3CAEB4A8CDD3C9CCD1CACACFC8C7CDC3C8CBC0C8CCBD CACEBFCBCFBECBCDBFC9CBBEC7C9BCC5C7BAC5C7BAC6C8BBC8CABDCACCBFBCBEB1BEC0B3C2C4B7 C5C7BAC8CABDC8CABDC8CABDC7C9BCC3C5BAC3C5BAC2C4B9C2C4B9C1C3B8C0C2B5BFC1B4BFC1B4 B9BBADBABCAEB5B7A9B0B2A4B3B6A5B4B7A6B7BAA9BEC1B0B9BBADBBBDB0BBBDB0B9BBAEB6B8AB B6B8ABB9BBAEBCBEB185886B898C717F7E69787562A29D8A86816E7D76639E98808E896CA39E7E AAA585A9A68784826955543F52504155564849493D48483C413F32413E2F393421453F29736C52 877E61887D5FAFA282A89978A59774B7A984B4A681A395708E7F569382547B6D3E72623E9C8E73 BAAF9DB1A99EB0ABA5AAA9A4B5B6AEA9AFA5A1A79BB2BAADB6C0B5B1BBB0ACB6AE8C978F6F7A72 646F676166606566616E6D697F7E7A9B9A96B3B5B099A39B929D958A978E828D85768078797E78 949590B2B3AD7D85766E7B697A857453604E5863536E7A6C717C6E748074727C73737F75778179 79847C7B847F7C8781808984848B8474756F97948D94948C8D8D85A7A79FB3B3ABA2A39B9B9C94 AFB0A8BCBDB5C3C6BDBEC1B8B0B3AA9C9F967D8379666C629E9F97A6A79FB5B6AEC4C5BDCCCDC5 C8C9C1BCBDB5B1B2AAABACA4A7A8A0ABACA4AEAFA7B2B3ABC0C1B9C2C3BBB2B3ABB1B3A8B3B6AB ADB3A7AFBAAAC0CDBCC6D3C1C2CDBCC6CDBBB7B5A6B5AF9FBAB3A3CAC3B1D6D1BECECDB8BABCA6 AAAD98B4B7A6B6B8AABABCAFBBBFB0BBBFB1BABEAFBBBFB1BBC2B2CBCFC1B1B5A6717567575B4C 44463936382A4F51444E504344443C4A4A424949414040383A3A3239393135352D2E2E262C2C24 45453D42423A45453D5A5A524F4F474040385051493E4136494C4162655A6163566466587D7E70 8485758988768E8D7992907B9896819A957F8E8A71A8A288ACA68C5D593E8C886FD1CDB4E5E3CC E0DEC7D9D8C3D1D3BDDEE0CBE6E5D1C4C1AE938C7A776C5A7767577562517A6353806657735E4D 978C7AD4CFBBE1DCC9DCD9C6DFDDCED5D3C4DEDCCDF1EFE0BBB8A95C5646645B4C695C4B695848 65503D6952406B56439A8A7ACEC5B4E2DDCAD8D7C3D0D4BDDADEC7DEE0C8BFBDA66D654E5D4E37 5E4C366B573F624E3659452D7B6B52B3A78FC3BDA5BCBAA3C0C0A8BDBFA7D1D5BCD2D4BC8F8D76 524A355344315744334C35254F38285D4A39A99A87D3C8B4DDD7C1D1CCB6CCCAB3CCC7B1C7C1AB 8E836F4C3F2C443522433421483725473825635643B2A793CCC6B0C3BEA8BDBBA48A8568554720 B19C6FBEA376CCAF83ECCCA3E4C8A1E0CCABD3CAAB9EA0888C967E899682889581A7AC96CFCDB4 D6CCB1D9C9AFD8C4ABD7C7AEC9C1AC9F9E8A89907E89927F878B7A9C9B87CDC5B0DBCBB4665239 847359F0E2C8E9E2C8C2C2AA74735F3C332441372B494335999788DCDDCDE4E7D6DCDDCDB5B2A3 686053443A2E43372B4B3F338E8478DBD5C7F1EFE0B1B2A2554F3F9C96867D76666C6656726C5E 6D6A5BAAA798D2CFBEE5E4D0D7D7BF8A8D72CED1B2D1D5B4B0B6925F653F4D532D626643616240 6162409A9A78D4D4B2DDDDBBDBD8B7D0CDACE2DFBEDBD8B7D1D1AF8D8D6B6B6B49575836565735 58593978775BACAB8FD6D5B7DDDCBDDDDDBBDFDFB9CECFA7B1B28873744C65663E62623C6C6C4A 7675568C8B6DAEAD91C5C1A8DBD5BDDCD6BEDDD7BFDDD7BDDCD6BCDAD5B8D9D4B7D7D2B4BFBA9C B0AB8B9D9878A8A481B6B28FBAB691C3BF9ABEBA94C9C19AE3DCB2D2C9A06B5F3576693D76683B 806F418D7849957F4E937C4A9A804FA98D5BA284529E804CB49662DABC88D5B785D2B482EED09E D4B684C2A674E5C997E4C896DABE8CD2B686CDB181CAAE7EB49868B29364BFA373C0A173C1A576 CAB282B6A071B9A276BDA87DC2AD82CEBB91D6C39BBEAC86C9B590CEBA95D6C099D7BF99C8AF87 AF966DA2865EA1835D9776559170518D6E4F907353967E5CA08C69AD9B75B5A67FCABB94CCBD96 D1BF97D3C098D4BE97D3BB95D0B691CDB38EC1AB84B8A57DB09D73AC996EAE9C6EAD9C6EAA9C6B AB9D6CB1A575B1A477BAAD81C2B68EBFB28FB5AB88BDAF92CEBE9DD4BA95A48860856F4AB8A584 B5A689AC9E81A89A7DA99978AE9A75B09970B2966EB0956AAD946CA9936CA5936DA5936FA8916F A7906EA58D6B9B8462AC9472B09977A08866AC957398805E9A83619D85639C85639B8361998260 9D8563A18967957B5A947A579379589078548F77558C76518B74528B75508B7550927A56896F4C 917452927452A68564A98666543A15857D4FBDBC8C9D9A6DA7A376BEB78DB4AB82978B65908360 C8BA97CBBD9AC8B998C1B491C2B592C7BE97C7BE97C2B990C8BD8FC5B989C1B585C1B585C4B78A C7BA8DC8BB8FC6B98DC7BA90C2B48DC5B792C4B691C7B994C8BA95897B58251C00555436B6B99A B8B393B7AF8ABEB089C7B88FC5B68DC0B28BBFB68FBCB791BCB791BBB88FBEB789BFB786C1B881 C1B881BFB989B4B08398946E989574BBBB9F90927C3F41339B9E93C6C9C0C7CCC5CACFC8C9CFC5 C7CABFC6CABBC7CBBCCACEBFC7C9BCC6C8BBC6C8BBC7C9BCC7C9BCC8CABDC8CABDC9CBBECBCDC0 CACCBFC8CABDC6C8BBC3C5B8C0C2B5BDBFB2BCBEB1C2C4B9C1C3B8C1C3B8C0C2B7BFC1B6BEC0B5 BEC0B5BEC0B3C5C7BABFC1B3BABCAEB9BBADBCBEB0C0C3B2C0C3B2BEC0B2BCBEB1B9BBAEB5B7AA B3B5A8B3B5A8B7B9ACBBBDB0BEC0B38A8B6C9393779A9881908E79A19C89928B78978F7A958E74 928B6EA9A582AAA683AEAB8AABAA8EA3A38BAFAE9CB0B1A3A7A79BA6A69A9A988B9E9B8C97927F 918A77A19982948A6F695E42AA9D7DB2A382A99B78B6A883B4A681A7987194855C9584567B6D3E 71613DA09277C1B6A4B8B0A5B7B2ACB3B2ADB6B7AFABB1A7ACB2A6C2CABDBFC9BEAEB8AD99A39B 69746C6F7A726E7971797E788687828B8A868F8E8AA1A09CB5B7B29CA69E939E9686938A7A857D 727C747C817B9D9E99BABDB6838E80677564798675354332111D0F1624151A261A121F15172319 16231A17221C19261F1D28241F2B27222D29232C2731322C89867F9999918A8A82A5A59DA8A8A0 95968EA3A49CC0C1B9BABBB3A3A69D85887F74776E72756C6E746A676D6376776F7C7D758B8C84 A2A39BBABBB3C7C8C0C7C8C0C2C3BBA5A69EA0A199A2A39BA5A69EABACA4BDBEB6C2C3BBB5B6AE AEAFA7B4B7ACB0B6AAABB6A6ACB9A8A6B3A1A3AE9DAEB5A3A4A293ABA595B4AD9DBEB7A5C7C2AF C8C7B3BCBEA9AEB19EADAFA1B5B7AABBBEB3BABEB0B6B9AEB4BAACB8BEB2BAC2B3B0B6AAB5BBAD 93998D888E806063582A2E2034362B30322724251D2E2F2930312B27282224251F292A24292A24 23241E2D2E282A2B251F201A1A1B152829232F302A2B2C263536302C312A3F443D52584E3C3F36 393C314D4F443F41343C3D2F4142303F3E2A5C5B467A78617E7C63ACA88FCECAAFA39F84B8B49B DAD8C1DDDBC6DDDBC6DFDEC9D9D8C3DFDEC9DFDEC9CFCDB8C2BDA9B6AE9BB4A796B6A595B7A493 B7A291B19E8DB0A895D9D4C0D9D4C1DBD8C5E5E3D4D8D6C7DDDBCCF1EFE0B6B3A47771619B9283 A398869E8E7E9988749F8D79A18F7BAC9F8CD0C8B5DED9C5D6D8C2CCD1BAD2D7C0D7DBC2BABAA2 908873897D678A79659A88749785718B7B649C8D76B5AA94C0BAA4BBB9A4C4C3AEBCBEA8C5C9B2 C3C7B091907B79725F716453786757705A4C7B65577C6B5BADA08FCFC7B4DCD5C2D1CCB8D0CEB9 D0CBB7C5BEAB8C84715E53416457466154435C4C3C5A4D3C675C4AA69E8BC3BCA9C2BDA9BFBDA8 8E896C554720B19C6FBEA376CEAF83EDCCA3E5C7A1E2CBA9D6C9A9A19F868D957D8A968088947E A8AC95D0CCB3D6CAB0D9C8ACD8C3A8DAC6ADCBBFA9A29B888E8D7B8E8F7D8B8A769E9983CDC1A9 D9C9AF665237867559EDDFC5DBD4BABCBAA386846F6861516D65586562539FA090DADDCCE5E8D7 D9DACAA6A4959892848A80748E827683796DA29A8DCFCCBDE5E6D6ACAF9E4D4A3BA6A394A8A294 A8A596B1ADA19F9C8DB7B4A5C6C5B3E5E4D0D9D8C38D8D75CCCFB2CDD0B1B2B6936A6E4B616542 6263417474527C7C5AA7A483D0CDACDBD8B7E0DDBCDAD7B6DFDCBBD4D1B0D4D1B0A29F7E888564 70704E71714F7B7A5B9D9C7EBBB79CD8D4B7DBD8B9DBD8B7DEDBB8D2D0AAC5C39CAEAC869F9D77 999673A19E7DB3B091BEBA9DC1BDA2CCC8AFDBD5BDDCD6BEDDD7BFDDD7BFDCD6BEDAD4BAD9D4B7 D7D2B4D0CBADD1CCACC1BC9CCFCBA8D0CCA9CAC6A3DAD6B3C9C5A0D4CCA5E8E1B7D5CCA1807548 9D8F62AB9B6ABDA976BEA773D0B77FC8AE75C8AB73CBAC73C5A56CBD9D62CAAA6FDEBF86E5CA95 D1B583D1B681907540765B26BA9F6ADDBF8BE5C793E3C58FD7B983DFC18BD4B680D0B17BD2B47E C6A771CEB07AC9AE77C0A76FC4AA77C9B181CFB88CE0CBA0D8C49FB8A481C3B08FCAB695CDB996 D2BC97D3BD96C9B288C1A87FC4AB82B59971AA8E67A98D66B0976FB39D74BAA77DC4B28AC5B68D C8B990C9BA91C9BA91CAB890CBB792CDB792D0BA95D3BD98CEBB93CDBC91C4B387BCAB7DBFAF7C BFAF7BBAAD76BCAF78C4B782C2B682C6BA8ACDC094CEC09BCBBE9CD0C1A4DCC9A9D6BC97AA8E67 7B63419E896A9B8A6C96876A958667907D5C927C57957C54987C54997E53987F5797815A95835F 958261A08969977E5F9A7F618D74558C71538E7556826749856C4D91765892795A93785A907758 8F74568F7657957A5C9A805FA38664A38762A38664A18762A08864A08862A08864A08862A38B65 AE9670A48A65B29671B39571BF9E7BBF9D7A624921787042C2C290B4B282C1BD8EC5BE90B8B082 B5A97FBBAE84BEAF86C8B990CBBC95C6B98FC8BB91CEC396CDC295C5BA8DCBBE91C6BA8AC2B588 C3B689C7BA8EC9BC90C6B98FC3B68CC8BA93C2B48DC1B38EC1B38EC4B693CABC999587642A2100 464527B2B596BCB797B9B18CBBAD86C4B58AC5B68DC1B38CBFB68FBCB78FBCB78FBBB88DBEB789 BFB786C1B881C1B881C6BE8FA6A27597936DA19E7DB9B89C93927D3A3C2E999C91B0B3AABBBEB7 C7CAC3CBCEC5C8CABFC5C7B9C6C8BAC9CBBDC3C5B8C6C8BDCACCC1CDCFC4CDCFC4CACCC1C5C7BC C2C4B9D2D4C9CFD1C6CBCDC2C9CBC0C9CBC0CDCFC4D2D4C9D5D7CCC2C2BAC1C1B9C1C1B9BFC0B8 BEBFB7BCBFB4BCBFB4BBBEB3B9BCB1B6BAACBABEB0BBBDB0B5B7AAB5B6A8B8B9ABB4B5A7B4B6A9 B5B7ACB8BAAFBEC0B5C1C3B8BEC0B5B5B7ACAEB0A5A5A687AEAE92BAB89FAAA891AEA795A9A28F BBB39EA69F85A6A080B8B290A7A3809E9B7AA39F84A3A18AACAB99A9A798A6A497A8A6999E9B8C B0AD9CB5AF9FA9A490A29C847972565A5134AFA486C2B595B2A481B4A683AD9F7AA1926B918257 9686557A6C3D71613DA4967BC7BCAABFB7ACBFBAB4BCBBB6CCCDC5BBC1B7B7BDB1C9D1C4C3CDC2 B5BFB4A4AEA6737E76646F675C675F5E635D6667626A696574736F93928EB2B4AFA5AFA79AA59D 8A978E7B867E747E76848983A9AAA5C7CAC395A0927482718F9D8C4452430E1C0D152316202D23 17241A1E2B2218251C121F18111E1716221E1C28241F2B27232C271B1C169C9992C0C0B8AAAAA2 BCBCB4B0B0A895968EAEAFA7B0B1A9AAABA391948B75786F6F726980837A8D93898F958B86877F 8081798081798D8E86A5A69EB8B9B1C1C2BAC1C2BAB2B3ABACADA5AAABA3AAABA3AFB0A8C2C3BB C9CAC2BDBEB6C4C5BDCED1C8CBD1C7BBC6B8A7B3A5929F8E8F9A8AA2A999C0BEB1C1BBADB4AC9F A39C8CA09A8AACAB97B8BAA5BBBEABBBBDB0C2C4B9C1C4B9AFB5A99BA1958E96898B9386889385 848C7FA3AB9EA1A99CABB1A57C82763B3E33494B404E504536372F41423A41423A35362E31322A 3839313A3B3333342C4A4B4333342C393A3242433B42433B46473F3E3F3731342D2227213C433C 555A5442474050534C6A6D644F5146404234494A3A666755ABAA96C0BFAA94927BA09E85D8D4BB D7D3BADBD9C2E5E3CCD5D3BEDAD8C3E4E3CEE0DFCAE0DFCAD7D6C1D9D7C2E6E1CDE5DECBE0D8C5 E6D9C8E7D7C7E1D0BEE0D1BED1C9B6E5E3CED5D2BFD9D6C3E9E7D8D8D6C7D6D4C5E7E5D6B2AFA0 948E7ED5CEBEE2DAC7DBCEBDDBCCB7E0CFBBDBCCB7CEC1AEDCD5C2DCDAC5D8DAC4CCD1BACBD3BB D7DDC3C3C5ADC7C1ABC3B8A4C2B2A2D5C4B2D9C8B6CCBDAACBBEABCAC2ADDAD3C0D6D4BFDEDDC9 CACEB7C9CEB8CBCFB8B0B29DBBB6A2BCB0A0C6B6A6BFAC9ECAB7A8B7A798C6B9A8D2C9B8D3CEBA C6C3B0CECCB7D6D1BED0CBB7A59E8C8F8774A99D8DAA9F8D988C7C8F8472857C6BAEA794C3BEAB C3C1ACC6C3B0969076544822AF9C71BCA478CEAE85EDCCA3E7C7A0E3CBA7D7C8A7A29E8190947B 8B957D8B937BA8AA92D1CBB1D9CAADDCC7AADAC2A6DAC5AACFBDA7A69986938B78938C7A8E8774 A29781CABCA2DAC9AD6857398A795DE6DBBFCDC6ACB7B59E94927D9E9787A0988B8A8778AFB0A0 DDE1D0E6EAD9D5D8C79B998A938D7F999184ACA296A1978BACA698CCCABBECEFDEC0C3B25F5D4E B9B7A8BDBAABBFBBAFCAC6BABAB6AACBC9BCD6D4C5E0DFCDD3D2BE86866EC9C9AFD2D3B4C3C7A6 9091719495737E7E5C9F9C7BAAA786BEBB9AD1CEADD2CFAEDBD8B7D9D6B5D6D3B2CDCAA9DDDAB9 C2BF9EBBB897AFAC8BBBB897D0CDAEC0BC9FC9C5A8D9D6B7D7D4B5D6D3B2DAD7B4D4D1AED3D1AB D0CEA8CAC8A2CAC7A4CDCAA9D7D4B5D5D2B3CAC6A9D7D3B8DBD5BFDCD6C0DDD7C1DDD7BFDCD6BE DAD4BCD9D3B9D7D2B5D3CEB1DDD8BACDC8AAD5D0B0C9C4A4BEBA97D9D5B2CAC6A1C1B992CFC69B BEB3867D7043B5A574D2BE8BE1CA94D4BB82D7BA80D3B579D4B479D6B477DEBC7FE0BE7FE7C586 E7C78CE5C791D7BD8AE3C8939E834E7C612CBFA46DDABC86D7BA82E2C58DCDB076DCBD84DDBE85 DABB82D5B77BC6A86CDCBE82CBAF70D2B87BD7BD84D2B983C7AF7FD4BD93D0BA95B8A483C6B393 CBB898CAB596CDB996D6C39BD5BF96CEB98ED2BB8FD3BB8DC4AC7EC3AB7FCAB387C6B486C7B688 CBBD90C9BB8EC9BC90D2C599D7C89FD5C69DD7C59FDBC7A2DCC8A3D9C69EC8B58DCDBC91C6B587 BFAF7CC6B780C8B980C5B67BC8BA7DCDBE83C8B980C6B985CFC192D8C9A2D7C7A5D1C0A2CFBA9B D6BC97B0946D7B63419984659C8B6DA19273A9987AA38F6EA28A64A78B64AA8D65AD9169AF966E B09A75B09D7CB29F7FC0A98AB59C7EC2A78ABDA486BCA184C7AE90C7AC8FCAB193C8AD90C7AE90 C7AC8FC3AA8CC1A689C3AA8CCBB093D1B698C6A989C6A987C7AA88C6AC89C6AE8AC7AF89C8B08A C8B08AC3AB85D2BB92C8AF87D8BC95D4B690D5B58FCBA984644B238D8556C9C997B3B180C2BE8E C8C292C3BB8CC7BA8EC2B589BBAC81C7B88DCABB90C3B489C2B588CABD90C9BC8FBFB285CBBE91 C5BA8CC2B589C3B88BC9BC92C9BD93C6B891BFB38BC9BB96C0B48EBEB08DBEB18EC2B392CABD9B 9C8D6C2D2405353617ADB091C0BD9CBFB793BAAC85C0B188C4B58EC4B68FBFB68FBCB791BBB791 BBB88FBCB88BBEB886C1B782C1B782B9B1829790649B9670AEA989B2AE937F7D68252618909287 9D9E96AEB1AAC2C5BECBCEC5C9CBC0C4C6B8C4C6B8C8CABCD3D5C8D1D3C8CBCDC2BEC0B5A9ABA0 909287797B706B6D62595B50585A4F5A5C5161635870726783857A96988DA1A29AC1C1B9C1C1B9 C0C0B8BEBFB7BDBEB6BCBFB6BBBEB5B9BFB3BEC1B6B5B8ADB6B9AEB6BAACB3B3A7B9B9ADC1C1B5 BEBEB2B8BAAFBABCB1BCBEB3BABCB1ABADA28B8D8263655A47493EAEAF90ABAB8FA9A78EA6A48D A8A18FA9A28FACA48FADA68CADA787AFA987B0AC89AEAB8AABA78CAAA891AFAE9CB4B2A3A6A497 AEAA9EA4A192A3A08FA8A292AEA995A7A18B7A735971674C9F9476B5A888B6A885B1A380A89874 A2906A96855A8777466F61327A6A46A09277BAAF9DC2BAAFC4BFB9C0BFBAC9CAC2B5BBB1B4BAAE BEC6B9C3CDC2C3CDC2B2BCB496A19996A1998C978F8F948E8A8B86908F8B8F8E8AB5B4B0B4B6B1 ACB6AE9EA9A199A69D9CA79F949E96939892B0B1ACD4D7D09CA89C8FA09092A39339493C19291C 1E2E2318281D1F2F25213029202F281F2E291D2C271A29261928251726231A2521393A349D9A93 9C9C94BBBBB3D7D7CFC6C6BEABACA4B6B7AFBFC0B8B6B7AF979A917D80776C6F667A7D745C6258 5C625881827A83847C74756D787971B4B5ADB8B9B1BDBEB6C0C1B9B1B2AAB7B8B0B7B8B0B3B4AC B7B8B0C3C4BCC9CAC2C6C7BFD1D2CCC8CBC4C2C7C0BFC9BEB5C1B5A7B3A5A8B3A3B7BEAEBEBCAF C4BEB0CDC5B8B1AA9AB6B0A0AEAD9BBABBA9CDD0BFD1D3C8CBCCC4C6C9C0B6BCB23A4237162015 111B101A261A222C21162015242E23444C41565C52484B423F40385C5E5347493C45473A5C5E51 696B5E56584B51534660625565675A6466596264575F61545E605363655865675A5F615454574C 5E635D4D534F3A403C333A333B4039454B414B4E434C4E414F5042616250A6A591EBEAD5A5A38C A5A38CDDDBC4E1DFC8BBB9A2EBE9D4E9E7D2CDCBB6D5D4BFDFDEC9DCDCC4E3E3CBDCDAC3DEDCC5 E3DECAE6DFCCE8E0CDE9DECCE9DCCBE8DDCBE6DFCCDEDCC7DDDAC7E0DFCBDFDDCEDAD8C9DDDBCC E7E5D6B0AD9E8A8474D9D2C2F0E8D5D8CDBBD5C9B3E6DAC4E1D5BFD7CCB8DDD7C1DDDBC4D3D7BE CED6BED1D9C1D2D7C0CED0BAD6D4BFDAD2BFDDD0C0DDD0BFDDD0BFDCD1BFDAD2BFD9D2C0DBD4C2 D8D3C0D4D3C1CFD2BDCDD2BECDD2BCCFD2BFD3D2BED5CEBED8CCBCDACABDD9C9BAD7C9BCD5C9B9 D1CABAD0CBB8D1CEBDCFCEBACFCCBBCFCAB7CDC7B7CCC5B3CBC4B4CBC2B1CBC2B3C7C0AEC7C0B0 CAC5B2C0BAAACAC7B4CCC9B8969279564C29B09E76B29970C0A379F4D3AAF0D0A9D9BF9AC0AD8C 999275A7A78B93977E898D749C9B7FB9B093DBC8AAE1C8AAE5CAADD4BA9FCAB49CC4AF9AB6A593 B4A592BAAB96BBAB94BAA98FD4C3A5665537958667E3D8BCD6CFB5CDC8B2C2BFACBCB5A5C1BBAD B7B5A6BFC2B1DCE3D1DFE6D4D0D4C3D0D1C1C7C4B5DDD5C8CDC3B7DAD2C5DDDACBDADBCBE1E5D4 ABAF9E47483AD3D4C6E3E1D4DEDCD0E0DED2DDDBCED5D3C6E0DECFD7D5C6D9D8C683816CC7C5AE CBCAAED7D8B9D3D2B3C2C1A2D6D1B1D2CDADD0CBABD5D0B0DDD8B8E1DCBCDBD6B6D5D0B0D9D4B4 DCD7B7DBD6B6D5D0B0D0CBABD0CBABD2CDADD4CFB1CDC8ABD3CEB1DCD7B9C9C4A6C9C4A4DAD6B3 CECAA7C4C09DCECAA7CECAA7CCC7A7C8C3A3C4BFA1C4BFA1C9C4A7CEC8AECCC6B0BEB7A4C3BCA9 C0BAA4B0AA94C0BAA2C8C2AAA9A389A39E81A29D7FA39E80A6A181AAA585A8A383A19C7C9B9774 A1997291885DAA9F728D7F50C3B17FD8C38EDBC28ADCBF85DFBF84E1BF80E2C081E3C080E4C181 E4C181E5C282E2C285D5B781DBBF8DDBC08BD3B883D6B882E0C28CE1C38DD9BC84E0C188DCBE82 D8BA7ED9BB7DDDBD80E1C184E1C282E0C180DEC17DDDC07ED6BA7BD1B77ED2BB89D3BC90C3AD86 AD9978C0AD8DCEBB9BDDCAAAE0CDACD9C7A1D3C096D3C095D9C497D0BC89CCB883CCB885CFBE8A D7C593D9C996D3C594CDC18FD5C999D2C598CFC296D0C196D1C299D2C098CDBB93C8B68ED2BF95 CDBA8FC8B686C7B682C9B880CCBC80CDBD7FCCBC7EC9B97DCFBF84D8C791DECC9ADEC89FD9C39E D6BF9FD8C09ED7BD98BBA27A87704ED0BD9DD1C0A2C0AF91B7A486BDA686CAB08DC2A67FC0A27C C7A983C8AE8BC3AC8CC0AF93C7B69CCBB69BCFB79DD4BAA1D5BDA3D4BAA1CEB69CC9AF96C4AC92 D1B79ECFB79DCFB59CCCB49ACCB299CBB399CCB299CCB297CFB698CEB395CDB392CDB593CFB795 CFB994CDB792CBB58ECCB68FC8B08AC7AE86CDB18AD0B28CD6B690E0BE98674E257D7547B2B181 BBB988BFBB8BAFA979B9B182C7BA8DCFC295BFB184C9BB8ECBBD90C4B689C5B88CCDC094CABD91 BFB286C0B48ABEB58CBEB28ABCB38ABEB28CBDB48DC1B491C0B692C4B795DAD0ADC4B797BBB090 C9BB9EC1B698928469322B0F2A2A10A8AB90C6C2A5B2AC8ABDB08DBCAE89C3B590CABD9AC1B995 A7A17DB1AE8BC0BE98B1AC82B2AB7DBFB584B7AD7A867E4F958E62AEA983A8A383AFAB90A9A792 343225838379B2B3ABC8C9C3C9CAC4C1C2BAC2C2B8CECFC1DADBCDD1D2C4B0B2A78C8D855A5B53 31322A1B1C1412130B0C0D050809010C0D050E0F0710110914150D1718101A1B131D1E161F1F17 4C494453504B82817CB6B7B1C5C6C0C4C7BEBFC5BBAFB7ACB6BCB2BCC2B6BEC1B6ACAFA4BABAB0 C2C2B8B2AFA6BEBBB2B7B7ADBEBFB7A8A9A16C6D652F302814150D15160E1C1D15A0A182A0A084 A19F88A19F8AA49F8CA7A08DAAA28DACA58BAFA88BA8A481A19D7A9E9B7AA1A084A7A78FACAB99 AEAC9DADA99DB0AD9EA4A192A3A08FA8A390B0AB97ACA690827C644E472B5E55367F7454A79A78 B0A07CA2936C9B89619180558272416F61327F6F4BA7997EBEB3A1C4BCB1C2BDB7BCBBB6C2C3BB B6BCB2BAC0B4C1C9BCBFC9BEBFC9BEB7C1B9A5B0A886918958635B676C668A8B86B5B4B0BEBDB9 C5C4C0B1B3AEABB5ADAFBAB2B0BDB4ABB6AEA4AEA6A9AEA8BDBEB9CDD0C996A2968FA0908A9A8D 28382B0A1A0F1C2C211E2E2420302617261F1827201A29241C2B261D2C291D2C291D2C29202B27 3637318F8C85888880A6A69EC5C5BDB9B9B1A6A79FB5B6AEC4C5BDC2C3BBB9BCB3A8ABA290938A A7AAA19BA197A0A69C999A929FA098A3A49CA7A8A0CBCCC4C3C4BCC1C2BABBBCB4B5B6AEBBBCB4 BABBB3B6B7AFB9BAB2C4C5BDC9CAC2C6C7BFCDCEC8C8CBC4BFC4BDC0CAC1BDC9BF96A2966F7A6C 6C7264828074817B6F837B70888073C1BBADCBCAB8CBCCBAD1D3C5D0D2C7CACDC4C5CAC3B4BCB1 384239182418131F151C2A1D1C291F162216243026414B404F564E3C42382B2E2737383045473A 3D3F31494B3D51534543453743453756584A5E6052424436484A3C50524456584A5B5D4F5D5F51 585A4C515547585D574B514D3D433F373E373D423B444A404A4D424C4E4168695B737464878674 DCDBC7BCBAA58987708B897272705984826DBEBCA7D1CFBAC9C7B2D7D6C1DDDDC5D4D4BCD6D6BE CBC9B2C9C7B0C8C3AFC4BFABC2BBA8BEB7A4BDB5A2BBB4A1B3B19CB9B8A3C5C4B0CECDB9CAC8B9 C7C5B6D6D4C5EAE8D9ABA899777463B7B1A1C5BEABB3AB98B2AA93BFB49EB4AA91B9B19CCEC8B2 DADAC2D5D9C0CCD4BCCDD7BED4DCC4DADEC7D5D4C0D9D2C0DCD0C0DCD0C2DCD0C2DAD1C2D9D2C2 D8D2C2DBD4C4D8D2C2D4D3C1CFD2BFCDD2BECBD3BECED3BFD1D2C0D4CEBED6CDBED8CABDD7C9BC D6CABCD3CABBD0CABACECBBAD0CFBDCFCEBCCFCCBBCDCAB9CDC7B7CCC6B6CAC4B4CAC4B4CAC3B3 C8C2B2C7C1B1CAC4B4BDBAA9C5C2B1C5C4B2948F794B4221AA9B74B7A17AC6AA82EDCBA5E4C29C D8BC97CBB794BCB193CCC8ABBDBDA1B6B599BCB598C6B999DCC5A5DDC0A0F2D5B5E3C6A8D8BDA2 D4BAA3D0B7A3D1BBA6D3BDA6CEBAA1D1BEA0DAC7A75F4F2E928364E9DEC2E3DBC4DFDAC6D7D1C1 D9D3C5E6E0D2E0DECFDCDFCEE2E9D7D9E2CFCED5C3D7DAC9DFDCCDE9E3D5D9D1C4E5DDD0E0DDCE DCDDCDE2E6D5A6AD9B595B4DDADBCDDEDED2D8D8CCE4E2D6E9E7DBDFDDD1DFDDD0DBD9CCDCDBC9 85826FC7C5AEC7C5ACD1D0B4D1CDB0C3C0A1BBB595BCB696BDB797BCB797BEB999C6C1A1D2CDAD DBD6B6CAC5A5C0BB9BBCB797BFBA9ABDB898B8B292BDB797C8C2A2CEC7AAB5B092BAB597C6C1A3 D1CCACD0CBABBEBA97C5C19EC2BE9BBBB794B8B393C1BC9CCCC7A9C6C1A3AFAA8C989278A09A84 9A9380AAA390B2AB98ACA592BDB7A1C3BDA7A7A1899C967C959073969174A5A082B7B294BCB797 ADA8889C9674AAA27D9D946BB2A5798A7C4DBEAA78D6BF8BDABF88D8BA7EDAB87BDBB97ADDB97B DEBB7BDFBC7CE0BD7DE0BE7FDEBE83E0C28CE5C997E5C795DBBD89DABC88E1C38DE2C58DDBBE86 DABB82DABC80DBBD7FDCBE80DEBF7FDBBC7CD7B877D4B572DDBF79DDC07ADABC7CD2B87DCFB680 C3AD7EA791688A7653C4B190C8B595CEBB9BD4C1A0D7C59FDAC8A0DDCAA0DECC9ED9C894D4C38D CFBE88CEBE8AD1C18DD1C490CDC18DCABE8CCFC393D0C396D3C69AD8CBA1DBCEA4DBCDA6D6C8A1 D3C49BDDCCA1D9C89CD5C395D1BF8DCFBE88CDBD82CDBA7FCCB97ED3C085D8C58BD4C08BCBB584 CCB58BD6BE98D8C09CD3B996D3BA92B69D75816A48CDBA9ACDBC9EB7A68AAC997BB19A7AD4BA97 D0B48FCEB08CD1B391D0B597CBB69BC6B49CC5B59ED3BEA9D2BCA7CEB8A3CCB6A1CCB6A1CEB8A3 D2BCA7D4BEA9D1BBA6CDB7A2C8B29DC5AF9AC9B39ED2BCA7DDC7B2E4CEB7E0CAB2D4BFA4CCB498 CBB699D4BFA0D7C3A2CCB998C1AF8BD4C09BB59F7AAB936DBEA47FC2A67FBA9C76CAAA84725931 6F663BBCBB8DC7C595BFBB8CACA577B4AC7EB8AD80BFB286CCBD92CDBE93C5B68BB6A97FB7AA80 C3B78FCBBF97C9BD95CAC09CC8C09CC6BE9AC4BC98C4BB9AC4BB9AC5BC9DC6BD9EB3AA8D61583B 645A3FAFA58AB9AF96BAB097A29781302A14272914989C85BEBCA3BDB69ACBC0A2BFB290B3A485 AA9F7FD0CAAAC9C4A6C1C0A1B4B492B1AD88C0BB91BEB6889C9465A59D6FACA378BAB28DB1AB8B B7B197B1AC983A362A838077B9B9B1B9BAB4BCBDB7CDCEC6D6D6CCC1C2B49A988B706E6127271D 1819110A0B030506000C0D0515160E1B1C141C1D150F10080F100810110911120A12130B13140C 13140C15140F0B07040C07041B17143B3A356D7069A9AEA7CED5CDD3DBD0BCC4B9BAC2B7BBC1B7 B3B6ABB8B8AEBEBBB2BBB7AEC9C6BDBBBBB37B7C7435362E14150D13140C16170F12130B0B0C04 A3A689A4A78CA7A691A9A693ABA693ABA693AAA390AAA48CB4AF92AEA989A9A484AAA788AEAC93 AEAD98A8A697A19F92AEAB9CB4AEA0A8A596A9A695AAA794ACA996A8A38F807A643F381E443B1E 796E50ADA07EAE9E7AA5966FA08E668F7C517D6D3C706233857551AFA186C4B9A7C4BCB1BFBAB4 B7B6B1BDBEB6B7BDB3BEC4B8C3CBBEBCC6BBBCC6BBBBC5BDB1BCB459645C1E29215257518F908B C3C2BECBCAC6BAB9B5A5A7A2A1ABA3B3BEB6B8C5BCA9B4ACA3ADA5B2B7B1C0C1BCBEC1BAA5AFA4 9FADA08D9A90222F250310071A271E24312A202D261A26221D2925212D2B25312F273333263232 253131262F2E43443F928F88888880AAAAA2C9C9C1C1C1B9B1B2AABFC0B8BEBFB7BCBDB5BFC2B9 A1A49B61645B6B6E65686E64676D63707169808179ADAEA6BFC0B8D1D2CAC5C6BEC6C7BFB9BAB2 BBBCB4C0C1B9BFC0B8B9BAB2BCBDB5C6C7BFCACBC3C7C8C0CCCDC7CED0CBBDC2BCC1CBC2C9D5CB 8A968A3F493E343A2E3F3D31413B2F3D352A5D5548C0BAACD0CEBFC6C7B7C8CABCCFD0C8CBCEC7 C5CAC4B3BAB237423A1A271D16261C1E2E232232281B2B20202D243440363F463F333831272924 24251D171B0D151908292D1C3D41303C402F3B3F2E434736454938272B1A2B2F1E3337263C402F 3F43323D41303A3E2D373B2D3C413A363D3632373130352E343730383B323B3D323C3E3157584A 4E4F3F605F4DCDCCB8C4C1AEAAA893D4CFBBB4AF9BB6B3A0E0DDCAE9E7D2D9D7C2DCDAC3DEDCC5 D8D8C0DDDDC3B6B69CB3B399AEAC95A8A68FA6A18DA39E8AA29D8A9F9C89B4B39EB0B29CABAD98 9FA18C939182999788BFBDAEE7E5D6A3A0916E6B5AA49E8EAFAA96A59E8BA7A189ACA48D9A9379 A9A18CC7C1ABDDDDC5D8DEC4C8D2B9C7D1B8D0DAC2DBE0CAD5D4C2D8D2C2DAD1C2DAD0C4DAD0C4 D9D1C4D6D2C6D6D2C6DBD3C6D9D1C4D4D2C3CFD2C1CBD2C0CBD2C0CCD3C1D0D3C2D2CFC0D5CDC0 D7CBBFD6CABED6CABED2CABDCECBBCCDCBBCD0CEBFCFCDBECFCCBDCECBBCCCC9BACBC8B9CAC7B8 C9C6B7CAC4B6C8C5B6C6C3B4C8C5B6BDBAABC0BDAEBFBDAE95937E463F22A59876BBA782CEB48F E9C9A2DAB892DDBF9BE0C9A7CFC2A0D6D0B0CDCAABD1CCACD5CAAADAC7A6ECD0ABE9C9A3EAC9A6 E3C5A3DEBFA2DCBCA3DDBFA7E3C4AFE3C7AFE0C6ABE1CCADD9C6A6584928918464EAE0C5E6DEC9 E4DECEDBD5C7E3DDCFE6E3D4DEDFCFDADECDDFE8D5DCE5D2D6DDCBDDE1D0E8E6D7E6E0D2DBD3C6 E6E0D2DCDACBDCDFCEE1E8D6A6AD9B494D3ED8DACDE9EBE0DBDDD2D4D4CADBDBD1E3E0D7EEECE0 E4E0D4DFDCCD827C6CBBB6A2AFAA94AEAA8FAAA5889F9A7CA9A081B0A788B3AA8BA8A2829E9878 A19B7BB2AD8DC4BF9FBCB797AAA585A7A181B4AE8EB3AD8DA69D7EA59C7DB3AA8BB7B191A59F7F A29C7CA09A7AB5AF8FCCC6A6BCB696B1AB8BADA787A29C7C9E9878ACA686C2BC9CC7C1A1B6B090 A19A7EABA58FA49D8BAFA896B5AE9BB0A996BFB9A3C8C2ACB6B098AAA48CAFA98FB7B295BDB89B BDB89BB7B294AFAA8CAAA484C2B895BBAF89C8B990907F53BDA778DCC28FE3C58FDABA81E0BD83 E1BD7FE0BC7EDFBB7DDEBC7DDDBB7CDABA7DD9BA81DBBB88DEC08EDEBE8DD8B885D8B885DEBF89 DFC089DBBC85DFC087DCBE82D7B97BD3B577D2B474D8BA7AE0C381E6C985DDBF79DEC17BDBBE7C D2B87BCCB37BBBA5739B86597B6840D7C59FD3C19DCEBE9AD1C19DD8C6A0D9C79FD4C29ACFBE92 D6C693D3C38FD0C08CCFC28ED2C591D3C795D3C797D1C497D2C799D0C598CEC298CDC199CCC098 CCC09ACCC09ACCC09ACEBF96CFC095D0BF93CEBD8FCBBB8AC9B986CAB985CAB983D1BD88D5C18E C7B180B0986CB1986FCAB189D6BC97D0B691D2B991B39C7376623DC8B594C9B89AAF9E82A89577 AA9374D9BF9ED1B494C7A889C8AB8DD4BAA1DCC7B2D4C3B3C7B7A8B7A597A99888918070786757 6554445B4A3A5948385948385C4B3B584737524131503F2F554434604F3F6C5B4B746353968573 AB9A86C4B29CCCBCA5C7B79EC0B096C0B194C4B596C0B08FB9A685B9A280B8A07CC1A580CAAC86 D3B38D6C542E6A6138C9C79EC8C59AA8A3799C9569B1A87DB6AA80BEB288BAAC85C3B58EC9BB96 C8BC96CBBE9BCDC3A0C9BF9CC0B796CCC5A8C9C2A5C4BDA0BDB699B7B094B2AB91AFA790AEA68F 9B937E271F0A2F27148E8673968D7C948B7A8F86753835241A1E0F737A6A9D9E8CA9A48EB7AD94 AFA488B0A288B6AC91B7B199BCBAA1BFBFA5BDBDA1B6B596A8A47FA29A73A79E73BDB587B8AF84 B9B18CB1AB8BB9B399B6B19D423E327E7B72C6C6BEC0BFBAC6C5C0CECEC6BBB8AF817F723E3A2E 1311040F0F070B0C060708020809030B0C060D0E080C0D070A0B0511120C10110B0F100A0E0F09 0C0D070B0C060A0B050A09040D0805110B0B09050401000012140F3E433D808780B7C1B8B8C2B9 B8C0B5BCC2B8C1C4BBBCBCB4BCB9B2C1BCB6BCB7B17877723536300001000001000D0E080C0D07 090A040E0F09BABDA2BABDA2BBBDA7BBBAA8B9B6A5B5AF9FB0AB97ACA88FAAA588A9A687AAA788 AAA98BABAB91A8AA95A4A595A1A294A5A293ABA597A6A090AAA796A8A592A4A18E9F9A867B7660 484228554E319E9375BCAF8DA2926EA6946CA491678572477D6D3C7365368B7B57B5A78CC6BBA9 C3BBB0BDB8B2B7B6B1BFC0B8B5BBB1BBC1B5C1C9BCBDC7BCBDC7BCB8C2BAAAB5AD5A655D364139 8B908AB2B3AEC0BFBBBDBCB8B0AFABB0B2AD9FA9A1AFBAB2B2BFB6A4AFA7A1ABA3B2B7B1C1C2BD BFC1BCAFB9B0A5B3A6909D93323F35121F161A271E212E271B28211D2925202C28232F2D25312F 253131222E2E1E292B1E27264E4F4A95928B8D8D85B5B5ADD1D1C9C5C5BDB3B4ACBBBCB4C1C2BA BCBDB5C4C7BE94978E2A2D2424271E252B211E241A2B2C2445463E9C9D95BEBFB7C5C6BEC1C2BA CACBC3BEBFB7C0C1B9C4C5BDC3C4BCBCBDB5BEBFB7C7C8C0CBCCC4C8C9C3CDCEC9D8DAD5C0C5BF C2CCC4D2DDD58A968C3741383A40363E3B324B443A453C336A6257CCC6BACCCABBC3C4B4CFD1C4 CECFC9CCCEC9C6CBC5ADB7AF343F371B2B21192A201F30261D2E241B2C2219291F29342C2B352D 282D27272924181913222618171B0A171B0C1F23122226172428172B2F20323625272B1C1F2312 1D2112262A192D31222B2F1E262A1B24281A1E241A1F241D21261F22281E25281F2A2D22313326 37392B3B3C2E3230218C8A7BE4E1D0A5A291A4A18EDBD6C3999481BEBBA8D7D4C1D7D4C1C8C6B1 CAC8B1D4D2BBDEDEC4EDEDD3CACAB0C9C9AFC7C7AFC6C6AEC5C4AFC6C5B0C6C5B1C7C6B2BBBDA7 C0C2ACC6C8B3C5C7B2BDBBACBCBAABD2D0C1EDEBDC9E9B8C7A7766BAB4A4C6C1ADBFBAA6C0BCA3 C2BEA5B4AE94B9B39BD1CCB6DFE1C9D8DEC4C7D1B8C1CEB4C7D1B9CBD3BCD3D4C2D6D3C4D9D1C4 D9D1C6D9D1C6D8D1C7D5D3C7D6D2C7DBD3C8D9D1C4D4D2C3CFD2C1CBD2C0CAD3C0CCD3C1CFD3C2 D1CFC0D4CEC0D5CBBFD4CABED4CABED2CABDCECBBCCDCBBCCFCDBECFCDBECFCCBDCECBBCCDCABB CCC9BACBC8B9CAC8B9C9C6B7CAC7B8C4C1B2C7C4B5BFBCADBEBBACBEBCAD9E9B8849452A978E6F AD9D7BCCB490E8C8A2D9B792E3C59FEDD5B1DCCCAAD9CFACCDC7A5D5CDA9D7C7A5D9C39CEFCFA8 EBC8A0F0CEA8F4D2ADEECBABE6C3A7E9C5ABEBC7AFE7C5ACE1C3A7E1C8A9D3C09F594A2994896B E6DCC3DAD2BFDBD3C6D2CCC0D5CFC1D7D4C5D4D5C5D2D6C5D1DAC7D1DDC9D7E0CDE1E5D4DEDCCD D1CEBFCEC8BADFD9CBD7D5C6DCDFCEE0E7D5AAB3A2494F41CDD1C3DDE0D5DADCD1DADCD1E4E4DA E1DED5D8D5CCE8E4D9DFDCCD7E7868B4AF9BA29C869A947C958F758F886C9B9074A4997BACA183 AAA182A29C7CA6A080B5B090C4BF9FB7B292ACA787AEA888BDB797C1B899B5AA8CAEA385B3A88A B6AD8EB4AE8EB7B191ACA686BCB696D9D3B3C9C3A3B5AF8FC0BA9ABEB898BDB797C0BA9AC7C1A1 CDC7A7D0CAAAD1CAAECFC9B3C8C1AFCEC7B5D0C9B7C8C1AFCDC6B3D1CAB7C6C0AAC8C2AAD1CBB3 D9D3B9D6D1B4CDC8ABC9C4A7CFCAACD8D2B2DCD1B1DACCA9E2D0AA9A875DBFA87CE4C898EDCD9A E1BE88E5C187E5C187E4C084E3C086E3C086E1C188E0C188DFC08AD7B786DAB88ADAB88AD8B686 D8B686D9B986DABB85D8B982CBAC75D1B279D8BA7EDBBD7FDCBE80DBBF7EDFC181E1C482E0C37F E0C37FDBC07DD4BA7DD1B87FC6B17CAC9866907E50CEBD92CFBD95D0C19AD7C8A1DECCA6DFCDA7 DCCAA4D7C59DD3C294D2C493D3C596D4C697D3C699D0C397CBBE94C8BB91CFC39BD0C49CD1C59F D3C6A3D5C8A6D6CCA9DACFAFDCD2AFD5C8A5D7CBA5D8CAA5D3C59ECCBE97C8B990C9B88DCAB98E C2AF85D3C096DBC49BCFB88FCCB58CD8C198E0C6A1DCC29DD8C197B8A279705E38C1B18FC7B899 B1A285B5A284B59E7FC4A98BD7BA9CE4C5A9DABEA6C4AB97A28F8078675D5649412D1F1624170E 190B020E01000B00000E01001608001B0E051103000F02000F01000D00000F01000F0200120400 1306001206002A1E10564A3C8A7E6EB5AA98CABEA8C9BDA5C3B59BB8A98CC2B193CAB695BAA381 C1A784D6BA95D9BB97755D39524824BFBB96B9B38F97926CA29A75C8BF98C5B993C0B390B8AB88 B8AB89B6A989AFA486A69D809B91768C8569817A60565038514C364B4630443F293D382438331F 342F1C332D1D3630221913050F0900262014322B212B241A2821171F1C13191E1721291E141609 1411002D2512372C18372C1839311C4C4734565543656654959781C7C7ADB9B8999894719A926D BFB389B7AB81AFA581AAA182B5AE94BAB3A04D473B79756CC7C4BDD0CFCAD7D6D1AEAEA66A675E 2D2B1E0A06000A080015150D12130D0F100A0C0D070A0B0507080205060003040010110B10110B 0F100A0D0E080C0D070B0C060A0B050A0905120C0C1B15151A141412110F020400000300282F28 7E8880B5BFB6BCC6BDB9BEB7BEC1B8B8B8B0BEBBB4C5BEB896918B1E1D180D0E080C0D07181913 11120C000100020300191A14C2C6ADC3C7AEC4C6B1C5C4B2C1BFB0BDBAABB7B4A1B4B29BADA98E AAA98BA09F8189896D6E6E565859475153455353473D3A2B4741314D4737635D4D706D5C827F6C 9896818D8872524C34514A2E9F9476BAAD8B9989659E8C649C895F806E4080703F77693A90805C B7A98EC4B9A7C0B8ADBDB8B2BAB9B4C5C6BEB3B9AFB3B9ADBCC4B7C0CABFC0CABFB1BBB397A29A 646F67505B539398928D8E8981807C7E7D7979787480827D6771696C776F707D746F7A726F7971 777C7683847F888A85858F86818D837D8880465149313C36222D271F2A2618231F1822211A2423 1D27281F292A202A2C1E282A1D262B1E2326595A5595928B8C8C84B7B7AFCDCDC5BDBDB5ADAEA6 B3B4ACBABBB3B9BAB2CACDC49A9D94272A2125281F31372D2B31271F20183A3B33A3A49CC5C6BE C3C4BCC0C1B9C8C9C1BFC0B8C1C2BAC6C7BFC4C5BDBEBFB7C0C1B9C9CAC2CDCEC6CACBC5C9CAC5 DCDEDBC5CAC6C5CFC7D3DED68692883B453C52584E4F4C435E574D544B427C7469D3CDC1C3C1B4 C1C2B4D2D4C7CDCEC8CED0CDC6CBC7A9B2AD2F3C351B2A231B2C241C30270E221915261E15241D 25322B232C27262B273B3D3A2B2C2625281D1C201115190B1B1F1024281A232718232719292D1E 292D1F181C0D1317092226173034262E322325291B2226182B2E23292C2123261B1C1F141C1E13 2426193434284041333C3A2D3E3C2DB2AFA0C7C1B1928C7CBEB8A8D9D2C29E9888CDCAB9D9D6C3 D7D4C1C9C7B2BFBDA6B8B69FB6B49BBBBA9ED9D9BDDADAC0DDDDC5DDDFC7DFE1CBE0E2CDE0E1CF E0E2CDD0D4BDCFD3BCD5D7C2DCDEC9DCDACBD6D4C5D8D6C7E1DFD09C998A908D7CD8D5C4DFDDC8 D4D2BDD4D2B9DBD9C0D8D7BBD3CDB5DDD9C0DCDEC6D3D9BFC8D5BBC6D4BAC5D1B9C1C9B4D2D5C4 D5D3C4D8D2C6D8D1C7D8D1C7D6D2C9D3D3C9D5D2C9DBD3C8D9D1C6D4D2C5CFD1C3CAD3C2C8D3C2 CBD4C3CFD3C4CFD0C2D2CEC2D4CCC1D3CBC0D3CBC0D1CBBFCECABECDCBBECFCDC0CFCDC0CECCBF CECCBFCDCBBECDCBBECCCABDCACBBDC8C6B9CAC8BBC0BEB1C4C2B5C2C0B3BDBBAEBCBAADA4A391 46442D787356877859B7A080DFC19FD6B48FE0C29CE8CEA9DAC8A4DACCA9D2C8A4CABE98AB9870 9D8159B48F65B0895EA27F55AD8A62AC8662B48D6ED7AD94EDC3ABE4BFA5DBB99DDBC1A0CFBB98 5D4F2C9A8F71E0D5BFD6CDBCE0D7CED9D2C8E1DBCFE4E2D3E8EBDAE2E9D7D3DFCBCEDAC6D4DDCA D9E0CED9DACACDCABBCFC9BBDCD9CAD8D9C9DCE0CFD8E1CEAFB8A7474D3FCAD0C4E6ECE2EAEDE4 E1E2DAE2E3DBDEDED4D6D3CAE7E3D8DDD9CD827C6EC5BEACBCB4A1B9B19AB9B298BCB297C1B398 C2B497C1B698C1B899C1BB9BC5BF9FC9C4A4CEC9A9C5C0A0C4BF9FC7C1A1CDC7A7D3CAABD3C8AA D0C2A5CCBEA1D6CDAECEC5A6DAD1B2DCD3B4DDD4B5DFD6B7D5CCAFDDD4B7DAD1B4E0D7BAE3DABB DED5B6D4CBACCFC6A7D2C9AAD6CFB3D6CFBCD5CEBEDDD6C6E2DBC9DED7C5D9D2BFD8D1BED4CEB8 D5CFB7D0CAB2CBC5ABCDC7ADD5D0B3DED9BCE5E0C3E9E2C5E7D9BCE6D7B6ECDAB69E8861BDA47B E3C496ECCA9ADDB985DFBA85E0BB84DFBC86E1BE88DFC08ADFC18DDEC38EE0C290E2C092E2BD90 E0BB8EE1BD8DE0BC8CDBBA87DBBA87DDBC87DBBC86DBBC85D8BB83D3B67CD0B379D0B679D8BB7F DEC283E0C282E2C583DFC382DAC083DAC188D2BD84BAA6719F8D5BD3C294D7C69ADCCBA0DECCA4 DDC9A4DBC7A4DBC7A4DBC9A5CDBE97D0C29BD6C8A3DACCA7DBCDAADACCA9D7CAA8D7CAA8DBCEAE D8CBABCFC4A6C8BD9FC1B69AB9B093B3A98EAEA78BAEA588B2AC8CBBB293C1B89BC7BCA0CEC3A7 D8CAADE0D1B4D3C2A6DAC9ABDDC8A9CEBA99BCA583B49E79BCA480C6B089DFCA9FC2AF846E5F38 BDAF8CC7BA98BCAF8FCCBB9DC7B295BDA486D3B89BD6B89EA98D7868514337251B1E0F0C140907 261C1A221A171D1311170F0C140A08110906120806110906190F0D19110E1A100E18100D170D0B 130B081107050F0704170F0C0C0500060000060000221C10605949A8A08DDACFBBC1B59DBAAA90 C3B092BAA586BCA482BEA17FC6A8868E7654615636C1BC9CAFA989908A68AEA584E2D9B8D9CEAE C6BB9BC4B99BA69B7F7B7156524A33342E181F1805110C000C06000D0A000C09000B0800090600 0905000A06000B07000B070006010028231D1B1612040000110C09100B080C07042D2C2A181E1C 0E17140F110C0F0C030F09000F060012090020180B130F042A2A1E15170A0305002E2F1D686850 9F9B80D5CFADB9AD85BAAE84B1A783ABA283B2AB91BDB6A35650446E6A61BAB7B0CECBC6CFCCC7 7D7A732B271E110D01100A002521150808000809040A0B060B0C070C0D080D0E090F100B10110C 0F100B0F100B10110C10110C11120D11120D11120D13120E0D07070C06080C0606151412161815 000200030A03303A32A1ABA3C2CCC3B4B9B2B3B6AFB3B2ADC0BDB8C0B8B5635E5A040300010200 0607020D0E090A0B0601020004050010110CB9BFA5B9BEA7BCBFACBEBFAFBEBFB1BFBDAEBFBCAB BEBCA7C0BEA5C2C3A4BABB9C9C9F8270725C454835282C1E1E2013363324352E1E2A2414302A1A 33301F49463575725F7E7C655C563E3A331782795AB5A886A59571A391699A845B907E50847242 7C6E3F958561B8AA8FC1B6A4BCB4A9BDB8B2BEBDB8C6C7BFB2B8AEAFB5A9BAC2B5C0CABFC0CABF AEB8B0909B93727D75616C64767B755758535857535B5A5656555152544F4A544C48534B4D5A51 57625A58625A555A545A5B5663645F4B524A4E5A505B665E4550483E494325302A202B27141F1B 1923221B25241E2829222C2D2630322A34362E373C33383B51524D838079787870A3A39BB2B2AA A2A29A999A92A2A39BB9BAB2BABBB3C7CAC194978E272A212A2D24383E34343A3032332B4A4B43 B2B3ABC9CAC2C4C5BDC0C1B9C1C2BABEBFB7C0C1B9C5C6BEC4C5BDBEBFB7C0C1B9CACBC3CFD0C8 CCCDC7C4C5C0D7D9D6C7CCC8C8D1CCCFDAD27D8880353F36525750514E47554E46473E377D746B D4CDC3C0BEB1C5C6B8CDCFC4CDCEC9D0D2CFC6CBC7A4ADA829362F182921182C23192D24162A21 192D2412231B1F2C251C2520393E3A8284818D8E894649403B3E33282B2024271C2A2D2222251A 1A1D1222251A2023181013080F1207202318292C21202318191C111C1F14181C0E191D0F1C2012 23271835372A5254467576688D8E80B9B7A8B6B3A4D8D2C49A9486AAA494EEE8D8E2DBCBD9D2C2 DCD6C6DBD8C7DFDCC9E1DFCADDDBC6D9D7BEDAD8BFDCDBBFD4D4B8D5D5B9D6D8C0D7D9C1D6D9C4 D5D8C3D3D6C3D1D4C1E7EAD5DADEC7D5D7C2D9DBC6E0DECFE0DECFE2E0D1E9E7D8969384989584 E3E0CFE1E0CBD2D1BCD2D2B8DDDDC3E5E4C8DDD9C0DEDAC1D5D7BFCDD3B9CAD7BDD0DEC4CDD9C3 C6CFBAD2D5C4D3D4C6D6D2C7D6D2C7D6D2C9D5D2C9D3D3CBD5D2C9DBD2C9D9D1C6D5D1C5CFD1C3 CAD3C2C8D3C2CBD4C3CDD4C4CFD0C2D2CEC2D3CDC1D3CBC0D2CCC0CFCBBFCDCBBECDCBBECFCDC0 CFCDC0CECCBFCECCBFCECCBFCCCDBFCCCDBFCCCDBFC5C6B8C8C9BBBEBCAFC5C3B6C7C5B8BAB8AB B0AEA19B998A383A245551365F5438A28D6ED7BA9AD1B08DDCBC96DEC29DD4C09BDFCFABE2D4AF CEBF969780567B5C308C63378055286B46197E592D825B34986D4BD4A78AF9CBB1F1C8ACE6C1A4 DFC2A0D0BC9960522F9A8F71DFD4BEDED5C6EFE6DFE5DCD7F3EDE1DCDACBD3D6C5D7DECCDAE6D2 E1EEDADFE8D5CED5C3E3E4D4DCDACBDBD8C9E2DFD0E2E3D3DBDFCEC6CFBCABB6A55C6455BBC1B5 BFC5BBC8CEC4D1D4CBE3E4DCEBEBE1E3E3D9E4E0D5D9D5C9857D70D3CCBAD4CCB9D4CCB5DACFB9 DFD3B9E6D6BCE1D2B5DACCAFD8CDAFDCD3B4DFD9B9DFDABADFDABAE0DBBBE0DBBBDDD7B7DAD1B2 DACFB1DFD1B4DECFB2D9CBAEDED3B5DFD6B7D9D0B1B4AB8CABA283C8BFA0D9D0B3E6DDC0DAD1B4 D8CFB2D7CEAFDAD1B2DED5B6E1D8B9E1D8B9E0D6BBE6DECBDDD6C6D5CEBED2CBBBCFC8B6CEC7B5 D8D1BEE7E0CDDFD9C3E0DAC2E0DAC2DDD7BDD9D3B9D7D2B5D9D4B7DDD6BAE1D3B8E3D2B4EBD6B7 9B8560B89C75DABB8FE2C092D5B17FE2BD89E1BC88DFBB89DBBA87D6B886D2B686D0B586D0B485 ECC79BE4BD92E1B88CDFB98CDEB88BDAB686DEBA8AE4C390E1C18EDFC08AD9BB85D2B87FD0B67D D2B87DD7BD82DBC184DDC182E0C485DFC686DDC587DBC589D1BD82B5A268978650D8C894D9C998 DAC99DD9C89DD9C5A0D8C4A1DAC6A5DAC7A7DDCEAFDDD0B0DCCDB0D1C2A5C0B096AE9E849F9177 998B716B5C45594D3541351F2D220C241905201803221A05221C06201C032521082F2A143B3622 4C45325E55446D6453796D5DB4A796C3B4A1D6C6AFE0CFB5DBC8AAD0BD9DCFBB98D3BF9ADFCCA1 CCBB8F6F613ABAAD8AC7BD9AC6B999DECDAFCEB99CCBB196B0957A7E5F4A4429181F0900180602 2315152D22260C06080C08090D090A0D090A0D090A0B0708090506070304100C0D0F0B0C0D090A 0C08090C08090D090A0E0A0B0E0C0D0503041C1A1B2827251514100300000301002D27195B5442 948C77AEA28AD0C0A6BFAA8DBEA586C1A786C2A5858D7455554A2EB1AC8FB1AA8EA69F82BDB497 D6CDB0A99E8274694D372B13221701100800100900161002151105120E03110E050A0700080800 0906000707000B08010B0A050F0C070E0D090602010A0907100C0D0604050F0A0E110F120E090D 232428192124010B0D0A0E0D0605010400000D06002E251C514D44C3C0B9D6D7D1A8ABA44C4F46 0A0C00010200302E19878264ADA47DC4B78DC2B592B6AB8DB4AA91C1BAA75F574C635C54BFBAB4 C6C3BEB9B6B15A57501D1910221E121A14081C180D13120D13140F14151014151012130E0E0F0A 0A0B060708030F100B10110C11120D13140F151611171813191A151A19171C16181F1619161010 11100E131512090F0B00040000040069736BB8C2BAB6BDB5BEC1BAC3C2BDC3BEBAAFA7A4342F2B 0B0A060708030506010607020A0B060C0D080A0B06070803B8C0A8B9BEA7B9BEAABABDACBCBDAF BEBFB1C2C0B1C4C3AEC6C6ACCCCCB0D2D2B6CED1B6BEC1ACA3A796898C81787A6D3A3728332C1A 1D1707191303161302322F1E706D5A8C8A755D57413A3319817859B0A381A79773A5936B978158 9A885A8573437F7142998965BBAD92C1B6A4BBB3A8BCB7B1BFBEB9C1C2BAB2B8AEB4BAAEBCC4B7 BDC7BCBDC7BCB2BCB49CA79F4C574F535E56595E5843443F5554504C4B474A49454648434A544C 46514945524948534B475149454A44494A454F504B464D464B554D4D574F313B332C35301B241F 2029261019161C25241C25241C24261E2629232A302A313731383E383D4045464174716A6F6F67 9F9F97A9A9A197978F909189999A92C8C9C1C7C8C0C7CAC18E91882A2D242E3128353B3131372D 3B3C34505149B1B2AAC1C2BAC3C4BCC2C3BBBCBDB5BFC0B8BCBDB5C2C3BBC1C2BABDBEB6C0C1B9 CBCCC4D0D1C9CDCEC8CBCCC7D2D4D1C2C7C3CAD3CECED9D17C877F353F364A4F485D5A53575048 4D443D8E857CDDD6CCC7C5B9D4D5C7D3D5CACDCEC9D2D4D3C5C9C89FA8A5232F2B152620152822 1328211E332C1F322C12231D1E2A26161F1C424645B6B8B7DCDCDAB0B2AD999E976E736C4F544D 4348412A2F28171C151F241D1419120D120B11160F1B2019151A130A0F08171C1533362D1F2315 2D2F21444638626554858678AAAB9BCFCDBEE4E2D3DCD9CAD8D5C6DAD4C6A19B8DD6CEC1FCF4E7 E0D6CAEAE2D5F2ECDEE3E0CFE1DECBE5E3CEDFDDC8DAD8BFDBD9C0DAD9BDDCDCC0DCDCC0DADCC4 D9DBC3D7DAC5D5DAC4D4D9C5D3D8C4D7DAC5D3D7C0D7D9C4E1E3CEE6E4D5E1DFD0DFDDCEE3E1D2 8684758F8E7CDCDBC9DCDBC6D3D2BDD2D5BAD6D9BEDBDBBFDAD6BDDDD9C0D5D8BDCAD3B8C8D5BB CFDDC3D0DEC7CCD8C2D1D5C4D3D4C6D6D2C7D6D2C9D6D1CBD3D3CBD2D3CDD3D3CBDBD2C9D9D1C6 D5D1C5CFD1C3CAD3C2C8D3C2C9D4C3CCD5C4CED0C2D1CFC2D3CDC1D3CBC0D2CCC0CFCBBFCDCBBE CBCCBECECCBFCECCBFCFCDC0CFCDC0CDCEC0CDCEC0CDCEC0CCCEC0C2C4B6C6C8BABABBADC4C5B7 CBC9BCB2B0A39C9A8D82837331341F41412952482DA49173DFC2A2D6B592E0C09AE1C5A0E1CBA6 E3D1ABE4D5AEDECDA2BCA478B29062B98D5E926635A37D4CCCA679D3A981CFA17FE8B799F3C4A8 ECC0A3ECC8A8E6C9A7D1BD9A5D4E2D968D70DED6C1E3DBCEEBE0DCC9BFBDB9B2A89290817F8372 87907D9EAA96C3D0BCDCE5D2D4DBC9E1E4D3E5E3D4E2DFD0E0DECFE7E8D8D4D8C7AFB8A5A4AF9E 9EA6999FA79C53594F555B518C8F86CDCEC6E4E4DCD5D5CBE3DFD4D5D1C581796CD4CDBBD8D0BD D6CBB5D7CBB5D9CDB3D3C3A9D6C7AAD9CBAEDBD0B2DED5B6DFD9B9DFDABAE0DBBBD8D3B3D6D1B1 D9D3B3DED5B6DDD2B4D8CAADD8C9ACDBCCAFD3C6A6E3D8B8D1C6A8887D5F807559C1B69ADCD1B5 D5CAAEDFD4B8D9CEB2D6CBAFDCD1B5E4D9BBDFD4B6CDC2A2BBB196857D6A776F62635C4C585141 554E3C534C3A635C497E7764A8A28CC1BBA3DED8C0EAE4CAE5DFC5DCD6BCDAD5B8DED7BBDFD1B7 E1D0B4ECD7BAA28A68BDA17CDABA91E1BF92D6B282E3BD8EE2BE8CDFBD8DDDBD8ED9BD8ED7BC8F D4BD91D6BB90B89369A77D53966B418C6337805A2D7753237B57278664348E6E3D9C7C49B29460 C7AC75D6BB84D8BF86D3BA81CDB47BDEC187DFC286DBC184D6BE80D3BE7FCAB679AF9C61938348 C8B982C5B582C7B688D4C398E3CFAAE7D3B2E0C9AAD2BEA3C6B69DA89C8483745F695A456F604B 9B8C77D8C9B6FFF4E1D0C3B2B8AB9A948777706454524638352C1D1C1304090300100F00090A00 0304000301000603000D0802150E081A110C21161041342C716356A59683D0C0A9E3D4B7DCCDAC CCBC98D3C499CEC09371653BB7AE87C7BD9AC8BD9DDFD0B3BEAA8F9F856C72563E3E220D280C00 29120C2C1A1A24171E19121A201D241B1C2117181D1213180D0E13090A0F07080D06070C0B0C11 090A0F08090E07080D08090E0A0B100E0F1410111610111611141913171A1516181313110D0E08 0B08000905003B3422847965CCBEA4BBA78CBEA788D2B799CDB0908F76584C3E24A8A089C2BAA3 CDC6ACD0C6ADCBC1A6857B623D331A2B200C140C00090200150F031F1C131818100B0A06030200 11100C0E0F0A0D0C080A0A080A09070909070B090A0A0A0C1210130000040D0A110F0E14120F18 0F0E1609060F1F22292F383F00040A070C0F2C2C2C5F5B58A9A4A0DBD3D0F4F1ECCECDC9D9DBD8 DADEDDD3D8D2ADB0A756584A1312000C06008D845DBCAF85C7BA97B8AD8FAEA48BC0B9A6635B50 59524AC7C2BCC5C0BCB4AFAB534E482019112D271B191307130F040F0E090C0C0A0A0A080A0A08 0B0B090B0B0909090706060411110F1212101313111515131717151818161919171B1A181B1215 1D14171F191B151314090B0A090F0B0A130E000B053E4941AFB9B1B2B9B2BEC0BBC3C2BDB4AFAB A9A19E3D35320B0A060B0B090D0D0B0F0F0D0E0E0C0A0A08070705070705C5CDB8C2CAB5C1C5B4 BFC2B1BFC0B2C2C0B3C4C2B3C5C4B2CECDB8C6C6AEBFC1A9C5C7B1CED0BBD3D2C0CAC8B9C0BDAE C3BCACAEA797857E6E645E4E443E2E454231797363928D7A524C364A4329958A6EA89B7B948462 99876389764E8E784F8772458370459C8C6ABEB095C2B6A6B9B2A8BBB8B1BEBDB8BBBCB6B5B8AF BAC0B6BFC7BCB9C3B8B8C4BAB6C1B9ABB6B0364139656F677B807A7779748788836A69656E6F6A 7B7D78767D766F7971646F675A645C575E575B605A63645F66686369736B69746C525D551D2820 101B130A150F1B26200A130E131C191019160D16150B13150D1517131B1D1B23252226275D5E59 8E8D8895948FCCCBC6D5D4CFBDBEB8B4B5AFB9BCB5BDC0B9BEC1BAB8BDB68388812E332C3A3F38 41484042474041443B55564EB0B1A9BDBEB6C6C7BFC8C9C1BBBCB4C3C4BCBABBB3BFC0B8C0C1B9 BCBDB5C0C1B9CBCCC4D1D2CACFD0C8D6D7D1D0D2CDBDC2BCCCD3CCD2DCD3858F8641493E4E5148 5B5B53555148524B43958E86D3CFC4B8B6AACDCEC0CBCDC2CCCEC9D2D4D1C4CAC69CA5A2202C28 13221D14251F10231D11241E1C2D2719252127322E151B19363835ABABA9D3D3D1C0C3BCC6CCC2 C1C7BDBCC2B8AEB4AA747972353A3320251F1318121318141C211B22241F13160F0E110836392E 6A6C5F939482A3A28EB6B5A3C6C5B3CFCEBCD2CFC0D1CEBFD0CDBEDCD9CACEC8BAD4CEC0B5AF9F C8C2B2C4BDADBDB6A4C4BDADBFB8A8B3AD9DBFB9A9D7D2BFDFDAC7DEDCC7E0DEC7DDDBC4DCDAC3 DADAC2D9D9C1D6D8C2D6D8C2D7DAC5D9DCC7DADDC8D7D9C3C4C6B0AEAD9898978383826E787765 817E6D908F7D77746384836FD6D3C0DEDDC8E0E0C8E0E0C6DADAC0D4D4B8D7D3B8DDDCC0DADDC0 CED4B8C6D0B5C9D6BCCEDAC2D0D9C4D1D5C6D2D4C6D5D3C7D5D2C9D3D3C9D3D3C9D1D4CBD2D4C9 DAD3C9D8D2C6D4D2C5CFD2C1CBD2C0CAD3C0CBD4C1CDD4C2CED1C0CFD0C0D1CEBFD2CCBED0CDBE CECCBFCBCCBECBCCBECCCCC0CCCCC0CDCDC1CDCDC1CCCEC1CDCFC1CDCFC1CDCFC1C1C3B5C5C7B9 BABBADC6C7B7CDCBBEACAA9B8B897A6F6E5C33351F4341285A5035B1A285E9D2B3DCC2A1E6CCAB EBD3B1DCC8A7C8B896BDAF8CC8B894CEB690DDC098DAB58B97724698774ADDBE92F2CFA9D5AE8D C39C7FB89077BD987ED7B79EE8CEB3CFBC9E584A2D93896EDED6C1E2D9CAD7CDC49D948D575348 4243353D41323940303E4736757E6DC2CBBAE9F0E0D4D6C8DEDFD1DBD9CCD8D6C9E4E5D7CBCFBE 9EA595A0A899AEB6ABA0A79F333A32080D06161B1462655CB8B9B1E7E7DDE2E0D4D3CFC37E7868 D4CDBBD9D1BCD2CAB3D0C6ADD1C5ABD5C5ABDECFB2E4D6BBDDD1B7C9C2A8B5AF95A9A58AA5A186 AEAD8FADAC8EC0BD9EDBD6B8E1DABDD4CBAED3C8ACE0D5B9D6CDB0DED5B8D8CFB2AFA689ADA487 D4CBAEDCD1B5D5CAAEDDD2B6DDD2B6DFD6B9DED4B9CDC3A8A3997E6A60453E371D2D2815282514 211E0D201D0A1E1B08110E001412002A281323210A43432B797961B1B197D7D7BDE3E3C9DBDBBF D4D0B5E1D5BBE4D4BAF1E0C2A99675C5AF8ADCC59CE3C89DD9BC92D1B48CD4B78FD9BD96DEC49F E5CDA9E9D5B2EDDBB7F1DDBACCAF8DB1906D8E6D4A74542E5A3C16472A02472A0052370C4D3205 4D3507563E0E6D5725917B49B9A46FD8C48FEBD69FE0C58EDFC28AD5BB80CCB478CAB478C7B378 B2A2679B8C53DED19CD3C594CDC093D9CBA4E6D8B5DCCDAEB7A78D95866F5F523F807464B1A595 D8CCBCEBDFD1EBDFD1E4D8CADED2C4E7DBCFE6DCD0E9DFD5E9DFD5DAD2C7B5ADA2837C725E5A4E 2C2D1F2123151416090D0E060E0D0812110D1713101A15121E161417100A0F060020160A5F5442 A99E88CBC1A6C9BE9EC9BB94CEC19573673FB6AE87C5BD99C6BD9CD9CBAEAB9A7E49331B311802 1C02001B0300210E0822141421181D201D241F2025171A1F111217090C1108090E070A0F0D0E13 0E11160E0F140C0F140F10150D10150E0F140B0E130C0D120A0D121619200E1319080D11090D10 0F131414161314150F121208040000403A2A98907DA49882B1A18AB9A78FC0AC93A8967EB6AB99 E8E3D0DBD4C2CBC4B2C4BDAAE1DAC7DBD4C2BEB7A57871614943351A160B0B08000D0C070D0C08 0D0D0B10100E09080408070306060405050306060607070707080A08090D00010507080D0F0E14 01000607060C0000050100052A2B301E252D30393E979C9FD7D8DADAD9D7E0DCD9D9D5D4D9D8D6 D5D5D5D6D8D7CCD0D1CDD1D0DFE1DCCFD0C89A988C6D6855685F42A89B79BDB294B0A68BA39B86 BDB6A4655D50544D43C3BCB4C3BFB6BCB5AF5851491A1309241E121913072420151C1B16131311 0A0A080606040909070D0D0B10100E11110F141412141412151513151513161614161614171715 181715181214090003100A0C1816170A0A0A02070308110C051008414C44B3BEB6A1ABA3A1A69F A4A39E9B9692B4AAA86F67640E0D0B0303010000000505030606040000000000000505037E8679 8A90829B9D8F999A8AAAA798BBB8A9B8B5A6C8C6B7BCBAADB1B2A4B9B7AABCB9AACAC3B1D0C3B2 CDBCA8E5D4C2C3B6A6DCD2C6D1C7BBC8C0B3B1A99C787262746D5D97907E574F3C5F54408D8169 A19378A29175AE9B7B9E8A6988724D7F663E856E45AA9777B9AA93BBB2A3C2BEB5BAB9B4B8B9B4 BFBEBAB5B6B0B8B9B3BEC3BCBEC8C0BCC9C2B2C1BCA0AFAA363F3A727972A0A59F9BA09AAEB0AB 9A9C978A8C877C817B8B908A858C857D847D777E77767B757A7F7982847F838A83818E8492A297 6C7C710F1F14121F151E2B221B281F131E160B160E0B160E0C160E0E1712131915171D191A201C 1E231F5455507E7F7A999A95BFC0BBCECFCAB4B6B1AFB4AEBEC3BDC3CAC3B7BEB7C3CDC5747E76 253028303B33313C34343E3635383165665EC2C3BBBBBCB4C3C4BCCACBC3B9BAB2BABBB3C1C2BA BFC0B8BFC0B8C3C4BCC9CAC2CDCEC6CDCEC6CBCCC4BEC0B5D4D6CBBFC2B7C5C8BDD5D8CD7D8075 2B2E2347493E4A4C4147473B404034959589D1D1C5C2C2B6CBCDC0C6C9BED0D5CEC7CEC7D1D8D1 9AA39E222D2916221E1F2B291C28261D2927111B1A1C22202125241B1D1A464541BFBBB8CAC7C2 B6B8ADC0C4B5C2C6B5BDC1B0C6CDBD878D7F272D2330352E0E130F1E2221181A1713140E18180E 1E1F0F666551D9D7C0CAC4ACC7BFA8BFB7A27D7562BFB6A5DED7C7D4CDBDDBD4C4CEC7B7D6D0C0 E4DECE9994816C675386846D7E7C637F7A6471685775695BBBAFA1EAE0D4D6CEC1DBD5C7EAE4D4 C7C4B3BDBAA9DDDAC7D4D1BED8D5C2E6E4CFE1DCC6D1CCB6A8A38D69675056543D43412A44422B 413F2822200947422C424029534E383F3D2655503A7C7A63AFAD94D3D1B8D8D6BDE5E4C8CBCAAC D5D6B6D9DCBDCFD4B6D1D5BCD1D6BFC9CEB8D1D6C2D6D8CACFD1C3C0C2B5CBCDC0E3E5D8D3D7C9 B6BAACB3B7A9AEAFA1B4B5A5C7C8B8D8DBC8D7DCC6C8CDB7C2C7B0C7CCB5C8CCB5CCD0B9D2D4BF C9CBB6C1C2B0CFD0C0D6D9C8C6C8BAD9DCD1C9CFC3BBC1B5AEB4A89DA0959296889FA395B8BAAD C6C8BAC7C8BABFBDAEC6C5B3C5C2B3B5B2A19693825C5A45252108625B3F52482DACA185E7D9BE DCCDB0BAAB8E85755B5F5136584D312D22064035198C7C628F7E62BEAB8DCAB797D0C09EBFAF8D 8B785A69553C4A35204833203E281A4835266E5D4DCEBEAE5447348E836FF4E9D3E5DAC4938872 645D4A48463A36372F3B3C343E41383D403526291E505348DEE1D6D7D9CCD1D3C6D0D0C4EAEADE CDCFC2AEB0A2C1C5B7A8AEA2B1BAB5B1BAB737403B080E0A1F261F171C1532352CDADCD1E5E6D8 CDCBBC85826FCCC7B1BCB89FD3CDB3E2DBC1DBD2B5F5E7CAD0C0A69F9079766B59534C3C383226 29271A27281816190422260D2D32144F54348F9273C3C4A5D6D7B8DBDABEDDD9BED1CDB2D0CAB0 D2CDB0CBC4A7C6BFA2D5CCADE7DEBFD6CDAEE2D9BCDCD5B9AAA389625C463A33202D2815221F0C 1A1C071C1F0A1E210C1C2009191D061E220B282D163237203F472F1B250C0B15002E381D747E63 C9D3B8E4F1D5BBC1A5D6D2B5DCD3B4E2DAB6A79F7A9F966DCFC69DCEC29CD3C6A3CFC1A4DCCEB4 E8D9C4ECDDC8EADDCAE9DDC7E7DDC4E5DBC2EEE3CDEBE3CCE8DDC7DCD2B9C8BEA3B0A589998E70 8C7F5D8073507B6F497C6E477D7046786B3E7B6E4197895ABBA979F2D6A4E6C892DBC08BD3BA84 B39C66AE9964BAA9759A8C5BD5C89CD7CEA5DCD4AFD3CDADB3AE91908C7386816D8D8A77D9D3C5 E3DDD1EEE8DCEFE9DDE9E2D8E6DFD5EBE4DAF1EAE0ECE5DBE7E3D8E7E3D8EAE6DBEBE7DCE9E5DA EAE6DDEDEBDFD5D5C9C0C0B49393895A5A502E2E261818100B0B030401000D0A031F1C13131007 0400000A06001815065A5748D5CFB9D4CAA7C0B48C7F764F98906BB7B38EBDB996CFC6A7968B6F 41311A3724131C09001807001C110B15100D1616161C1D1F1B1C1E2021232020221415170C0C0E 090A0C0D0D0F0E0F110E0E100D0E100D0D0F0B0C0E0C0C0E0A0B0D0A0A0C090A0E04070C070A0F 0B0E130F12171216191115161214131113100607010102003C3C3299998DC4C2B5C1BFB2D0CCC0 EEEADEE2DFD6E0E0D6E0DDD4DCD9D0D8D5CCD7D4CBD9D6CDDCD9D0E4E1DACDCDC59F9E995D5C57 1E1F1A000100010200100F0B0502000D0A0312110C10110C090907040605040809070B0C0B0F10 070B0C000002070707000000282725706C69403F3D1C1D1F7C8081FAFBFDD8D8D8EAEAEAE6E5E3 DAD8D9D9D9D9D9D9D9D8D8D8D6D8D7D5D7D6D5D5D3D4D4D2D4D3CFD6D3CCC5BDB0C3BAA9C0B7A6 ADA493A09989867F6F524B3B3E37277C7467898375948C81686055352D2221190E1C14092B241C 12110C0D0E090A0B060B0C070D0E090D0E090B0C070708030809040F100B0E0F0A0E0F0A161712 15161111120D161712100C0B0C08070903030804030908060A0A08070C08020C044552494F5C52 5B675D535A526768625D5852594E4A4A403E110D0C0D0D0D0B0B0B090909070707050505040404 0303033E4440454A4446473F3C3A2E4B473B57514358524478746884817883807788867A878173 968978A4927CA99177BDA78FD0BFADCCC0B2B2A698BAB1A2C5BCAD9F9888867F6D867E6B5E5341 6C614B9A8E76A99B80A99A7DB5A584A390708B745282663F876D48AB9679B9AA93B9B1A4C1BEB5 BAB9B5B8B9B4C1C0BCB7B6B1B9BAB4C2C5BEC0CAC2BDCAC3B0C0BD9DACA937403B747973A3A8A2 9A9F999FA49E888D87858A84858A84868B8580857F777C767277717378727B807A868B858A948C 85928893A599697B6F0E201410201519291E18251B0E1B111A261C172319151F16141E15181F17 1920181A1F18191E185859547F7F7D9B9B99C1C1BFCDCFCCB1B3B0ADB2AEBBC1BDC9CFCBBEC7C2 C7D0CB737E7826312B2F3C35303D36323D3530332C66675FC4C5BDBBBCB4BCBDB5BEBFB7B5B6AE BEBFB7C1C2BABFC0B8BFC0B8C3C4BCC9CAC2CDCEC6CCCDC5CBCDC2C6C8BDD6D8CBC2C4B7C8CABD D2D4C77B7D703032254D4F4250524547493C404235949689D0D2C5C4C6B9CFD1C4D0D3C8CED4CA C6CDC5CBD5CD939C971C2723121D1919232216201F17201F0E1414171B1A1F21201C1B1944433F BFBAB7CDCAC3B0B1A3BEC1B0BDC2AEBABFA9C2CAB57E8573262C203B4039282C2B191D1C161614 1516102523175554408581688C876A8E8469998D75978B754A3D2A958A78D1C5B5CFC6B7D1C8B9 D1CABAD0CABACEC9B6918F7A87856EA2A0877A7A5E615D42837866A99C8CD6C8BBE4D8CADED4C8 DED6C9D6D0C2C1BBADC0BDAED6D3C2DBD6C3E5E0CCC8C2AC868068645C45504A30585439555136 555136615D425F5B403F3B206460456460454F4B30464227514D324F4B30575338787459A6A287 DCDBBDE7E6C7DEDFBFD3D6B7CFD2B5D6D8C0D7D9C3CDD0BDD1D4C3B9BBADD2D4C6DEE2D4D1D5C7 A3A798595D4E2C3323333A2A3538273C3F2E4B4E3B6B6E5B9C9F8AC8CCB5DADEC7D7DBC2CCD0B7 D3D7BED2D6BFCBCEB9C5C8B5C1C4B1C4C7B6CED2C3C4CABE8E968B50584D2A32271B2115191F13 262A1C34382A606153919282BBB9AACFCEBCC7C4B3BCB9A8B4B19E918C783932187C7257655B40 A69C81C5BBA09F957C71674E392F1630260D382D17392E1861564070654F2E230D665B47B5AB92 C0B69B988F7252482F3E331D382C1C3F3325291C132B1E15190C038A7D74574B3D998E7CEADFCB BEB49B837A5D524C34211F1318191322231D23241E2021190E0F071A1B136D6E66E0E2D7E5E7DC D6D8CDD2D4C9A8AA9D75776A76786B6D706767706D576160161F1C0D1611171D190D140C161910 6F7365E9EADCDBDCCA7B7964CAC8B1DFDBC2ECE8CDDAD4BAB2AB8F7C715366583D4639262D2415 1F160F16110D12110C12150C1D2414242C171A2308101900293011575E3F8C9075B4B79CD9D9C1 EAE8CFD0CCB3BBB79AD5D0B2DBD5B5CDC4A3D2C9A8EAE1C2BEB59888816759533B332C19241E0E 221C1019170A191B0D1B1F0E1B1F0E181C0B171B0A1A210F262D1B303926313A272B372315210D 0411000A17033A47339CA995F4FEE6DADABEDDD8B8E4E0BDB5B18BB0AD84DDD9B3DDD9B6E7E2C4 EFE9D3F6EFDDF7EFE4EFE7DCEAE2D7ECE5D5EDE6D3E9E4D0E0E1D1E0E3D2E3E4D2E4E6D1E5E4D0 E3E3CBE3DFC6E2DEC3C2BD9FB6B191AEA682A69E79988F68857C5382764C8B7D50AA9262D0B484 E9CF9EE7D09ED0B888CBB687BFAE80817448C1B891CBC39FD0CBABCBCAAEC8C8B0D0D2BDE4E7D6 F5F7E9EDEBDFE8E6DAE4E2D6E5E3D7E9E7DBE8E6DAE2E0D4DCDACEE6E4D8E2E0D4DEDCD0DDDBCF DBD9CDDBD9CDDDDBCFE0DED2DEDCD0E8E6DAEDEBDFE5E3D7D3D1C5B3B1A58482765E5C50312F23 2725191210040402001F1D111D1B0F1513075D5747C6BDA0CCC29E80785488825EACA986B8B594 C8C3A58B846A3B2C192E1E0F1908001609011A110C120E0B1315121B1F1E1A1C1B1D1D1D1A1A1A 1212120C0C0C0B0B0B0D0D0D0E0E0E0E0E0E0E0E0E0D0D0D0C0C0C0C0C0C0B0B0B0A0A0A090A0C 0C0D11090C1106090E010409000104000104000102000201181C1B454A46898E88C1C6C0D7DCD5 D6DBD4D2D7D0D2D7D0E1E2DDE0E1DCDDDED9D7D8D3D4D5D0D7D8D3DFE0DBE6E7E2CECFCAD6D7D2 DFE0DBDADBD6B8B9B47A7B7632332E030200120F080906000504000D0E0815151310120F040807 0002020002020E1211282A276365609E9D99E5E5DDF5F2EB817E770F0E0C616161DADADAC7C7C7 DADADADCDCDCD9D9D9D8D8D8D5D5D5D5D5D5D6D6D6D7D7D7D8D8D8D9D9D9D9D9D9DBDAD8D7D0CA DCD3CAE1D8CFC6BEB3A79F92756D60292212070000453E2C4E4737544C3F31291C160E03170F04 130A011A130B13120D0E0F0A0B0C070B0C070D0E090D0E090B0C0708090407080310110C11120D 12130E18191411120D0708030809041514120F0E0C0B05050903030A06050B0A08080D07040E06 000B011B2B20515E54626C6373766D5F5A54443935160B090D09080A0A0A090909080808060606 050505040404040404111619171B1C0F0F0D04010019120A1811071811074F4B4069675B6D6B5F 6C685C554E3C574B3369583C6F57357E67479E8C749F927F938673A19682A99E8A8D85707E7661 79715A5A4F3973694EA2977BAA9D7DAA9B7AB6A682A08E6A847149826941876F4BAA9779B6AA92 B7B1A3C0BDB4B9B8B3B9BAB5C0BFBBB7B6B1BABBB5C3C6BFC3CAC3BEC9C3AEBDBA97A6A1323B36 6F746EA5AAA49EA39D9A9F9980857F858A848D928C8186807A7F797176706D726C7176707D827C 8B908A929C9488958C94A59B64756B0E1F1511211715251B17241B0C19101D282019231B161D16 151C151A1F191C211B191E18151A1461625D81827D9C9D98C4C5C0CBCDC8ADAFAAABB0AAB8BFB8 B9C0B9B5BFB7B8C2BA68736B242F27303B3335423936413925282161625AC2C3BBC0C1B9BEBFB7 B9BAB2B7B8B0C3C4BCC0C1B9BEBFB7BEBFB7C2C3BBC8C9C1CCCDC5CCCDC5CACCC1C9CBC0D2D4C7 C3C5B8CBCDC0CACCBF7173662B2D2046483B47493C3D3F323E4033949689D1D3C6C6C8BBCFD1C4 D5D8CDCCD1CAC7CEC7C6CFCA89928D16211D0D1814111B1A0D17180F1719070D0D1115141A1C1B 1A19173E3D39B9B4B1CECBC4B1B2A4C3C6B5BCC1ADB8BDA9BCC4AF717866242A1C444A403B403C 15191819191718191327251981806CA6A289544F32665C4382765E8B7F69322512827765D6CABA D6CDBECFC6B7D2CBBBD4CEBEC8C3B09B9984ADAB94C1C1A78282665A563B7D725CCBBEABE4D7C6 D7CCBAE7DECDE8E1CFD0CABACAC7B4BDBAA7DCDAC5D9D7C0B5B39A7B775C524E315A5538625D40 7470537C785B868265918D708581645F5B3E8884678F8B6E6561446E6A4D837F627470535A5639 565235686447908F70D3D2B3DCDDBDDADDBED0D3B6CED0B8D4D6C0D3D6C3CBCEBDC8CABCD9DBCD B3B7A96367592E32241F23151A2111181F0F2C2E202A2D1C282B182D301D444732747861ADB19A D6DAC3C6CAB3C0C4ADCCCFBACFD2BDC6C9B6D2D5C2D5D8C7B9BDAF464C40242C21060E03050D02 151B0F21271B272B1D282C1E17180A3D3E2E706E5FA8A795C0BDACBFBCABB7B4A196917D363018 7A73595B543A888167A7A086857D666B634C433B243F3720322A153F3722837B66837B661E1601 38301D8C846DA7A0867A7357322A132B230E352C1D392F23190F05190F06100600685E54645A4E 958C7BD0C8B58E866F726B4F312B151C1A0E191A142728222526201F20181819110F10081E1F17 AFB1A6DEE0D5DDDFD4C3C5BA96988B5052452A2C1F272A213A403C141D1C050E0B1E2722181E1A 161D151619101C2012AEAFA1DCDDCB7A7764CBC9B2E8E4CBD1CDB2A19D826D684B40361B382C14 271B0B160E03120B0514100D14151012150E090F03151E0B1721091B250C313A1F3F482D40452E 40442D8A8871E0DCC3F0EAD2D2CDB0DBD4B7DCD6B6D5CCABE8DFBEC2B99A7F7659423B2129230D 211A081C1606150F030804001B1A161B1B191919171616141516111C1D182A2B26343631242621 2C312B191E17060B040A0F0812171041463F939789D9D7C2DAD5B8E8E3C5CFCBA8D2CEA9F2EEC9 F1ECCCFDF7DDEDE6D3F6EFDFF7EEE5F0E7DEF1E9DEFDF5E8FFFBE9FEF9E6ECEBD9E8E9D9E5E6D4 E3E5D0E6E5D1EAEAD2F2EED5F5F1D6F8F3D6E9E4C6DFD6B7D9D0AFCFC5A2BAB08CA59C759D8F68 8C774C9D8559B39C70D4BF92D8C398C7B68AB8A97E93875FCAC29DDDD7B5E9E6C7E5E3CAE2E1CC E6E8D3E6E9D8E0E2D4F8F6E7EEECDDE4E2D3E4E2D3EBE9DAEFEDDEECEADBE6E4D5F9F7E8F7F5E6 F2F0E1EDEBDCEAE8D9EBE9DAECEADBECEADBD6D3C4D8D5C6DAD7C8DDDACBEAE7D8F4F1E2ECE9DA DDDACBD5D2C3BBB8A98D8A7B514E3F353223181506040100241F0C7F755ABAB192807A5A868362 B0AF90BAB99BCCC8AD938D75342716231306170600170A04180E0C100C0910120F1D21201B1D1C 1616161010100D0D0D0C0C0C0C0C0C0D0D0D0E0E0E0E0E0E0E0E0E0D0D0D0C0C0C0C0C0C0B0B0B 0A0A0A090A0C0F10140A0D1205080D04070C0F1316292D304B4F50626665ACB0AFD1D6D2E5EAE4 E1E6E0DFE4DDDDE2DBD7DCD5D4D9D2D3D4CFD7D8D3DBDCD7DADBD6D5D6D1D2D3CED3D4CFD6D7D2 D9DAD5D3D4CFD3D4CFDEDFDAE6E7E2DBDCD7BDBEB9A3A29D46433C1E1B1201000000010010100E 131512090D0C040807575B5AA9ADACE0E2DFEAECE7E1E0DCF3F3EBE2DFD86D6A631413115F5F5F E0E0E0E1E1E1E3E3E3D5D5D5D0D0D0C8C8C8D9D9D9D9D9D9D9D9D9D8D8D8D7D7D7D6D6D6D6D6D6 D6D5D3E2DBD5DED5CCE2D9D0D8D0C5D7CFC2CBC3B6968F7F7069596F68586C65555E56492D2518 170F04231A111F160F1D161015140F10110C0B0C070A0B060C0D080D0E090B0C07080904181914 23241F272823292A252C2D2820211C0F100B0C0D081E1D1B1615130F09090A04040A06050B0A08 0B0D0809100900050016261B647167808A8186898076716B5B504C170C0A090504060606060606 0505050505050505050404040404040B0F18171A21121116100C0D2D2522231A131F1810676056 817D728A867A817B6B544C374A3C215E4B2A6248236B512C6C593B7F6F5688796290846C82765E 6F654C7D735A81775C4E4429736A4BA29777A19774A29670AD9F7893845B7A673D836B4588704C A8977BB5A993B6B0A2BDBDB3B8B9B3B9BAB5BDBCB7B4B4ACB7B8B0C1C4BBC0C7BFBBC6C0AAB9B4 95A19D3C423E6A6F69A2A7A1A5AAA4A2A7A1868B85898E888C918B7F847E797E787277716E736D 7277717D827C8A8F899198918491888FA096596A600B1C121323191323191C2920111C14172119 111B130E150E101710191E181D221C1B201A191B166A6B6681827D9E9F9AC8C9C4CACBC6A9ABA6 ACAEA9B7BCB6CACFC9C9D0C9BEC8C06E78702B362E2D38302D38302A342B2D302764655DBDBEB6 C6C7BFCCCDC5C3C4BCBFC0B8C3C4BCBFC0B8BEBFB7BEBFB7C1C2BAC7C8C0CBCCC4CBCCC4C9CBC0 C4C6B9C9CBBEC2C4B7CCCEC1C2C4B76E70633032254446394446393C3E3146483B97998CD1D3C6 C7C9BCCACCBFD4D7CCCCD1CACCD3CCC4CDC8808984121D190C16150C16170812130C1416060B0E 0D1112171918181617353432ADA8A5CBC8C3B6B6AACCCFBEBFC4B0BABFABB8C0AB6E75632C3224 494F453B403C1B1F1E2323211C1D171F1D11787763ADA9906B664970664D8F836DA19481413622 8E8272E1D8C7D9D0C1CEC7B7CDC7B7DCD9C8D0CDBAABAA95BDBCA7C5C5AD89896F6B6A4E70694F C8BCA4E2D7C1D5CDB6E8E2CCEAE5CFD5D3BEDAD8C3C6C4AFBBB9A296947B636246444023534F32 7F7A5C9390718A87689592719C997A9C99788380615956358A87689B9877625F406E6B4A908D6E 989574928F70827F5E6562435F5E3F8E8F6FC6C7A8E4E7CADBDEC3C8CAB4CFD1BCDCDFCCCCCFBE E6E8DAB5B7A9575B4D0C10020C1002303426303628151C0C33352727291B232615202310111401 181B065F624DB2B69FD9DDC6C2C6AFD1D4BFCED1BCB9BCA9D4D7C6B9BBAD484C3E161C10171F14 1C2419242C21282E2222281C1C2012171B0D27281A191A0A2C2A1B7A7967B8B5A4C4C1B0B6B3A0 918C78342E16756F57504A32777159ACA68E9A947E8F89736E6852544E382C251228210E756E5B 8A8370393220261F0D49422F958F7779735B403A243D362441392C362E23130A0120170E231A13 5A51486C6459928A7DCFC8B69A947E9D977F47422E1A1A0E1718122627212627211B1C141C1D15 181911090A027F8176D9DBD0EEF0E5BBBDB296988B5F615425271A23261D3B413D0D16130B1411 202924171E1721261F272A211014065A5B4DD4D5C3898874CECCB7CBC6B08682695551383B351B 3F381E3F3720362D1E261F151E1B16201F1D1D1F1E141915151D12141C0D0E17041D2611434B36 505843393D2C1F22111E1D09716C56C7C3AAE0DAC0D2CDAFD2CCACD8CFB0CEC5A6736A4D4B442A 3129122A2310261F0F211B0F1A13090A05011C171B19161D17141B1412171412171D1B202A282D 353336403E4139373A2121230505050F0F0F2929294343436C6B66EDE7D7EAE4CEF7F1D7EDE8CB EBE6C6F3EECEE7E2C5EDE7CFECE5D3F7EFE4F9F0E9F1E8E1EEE5DCF4ECDFF5EEDCECE7D4F8F7E5 F3F4E4EDEEDCE7E8D6E4E3CFE3E1CCE4DFC9E4E0C7F4EED4EDE7CDEAE3C7EEE5C8F1E6C8EBE0C0 E1D6B6DCCFADB8A680A28F678D7B53B09E76D3C49DDACCA5E2D9B2E0D8B3EAE4C2EFEACCEDECD0 E6E6CEE3E5D0E8E9D7E9EBDDE6E9D8E1E0CEE0DFCBDFDECADFDECAE2E1CDE7E6D2EBEAD6EEEDD9 E3E2CEE8E7D3E8E7D3E3E2CEE1E0CCE3E2CEE0DFCBDBD8C5F3EEDBF3EEDBECE5D3E1DCC9E2DBC9 E8E3D0EAE3D1E3DECBD8D1BFD7D2BFDAD3C1E9E4D1D9D2C0AFAA976F68560D06005E563FB0AA90 89856A8A8A6EACAC90AEAE94C6C4ADA49D8A342818160800150400190C06140C090E0A090D0F0E 1F23221D1D1D1111110808080909090D0D0D0C0C0C0C0C0C0D0D0D0E0E0E0E0E0E0D0D0D0C0C0C 0C0C0C0B0B0B0A0A0A090A0C090A0E05080D070A0F171A1F3E42457F8386C7CBCCF7FBFADFE3E2 DEE3DFD0D5CFC9CEC8D1D6CFD0D5CED0D5CEDDE2DBE0E1DCE5E6E1E8E9E4E6E7E2DFE0DBD9DAD5 D8D9D4D9DAD5DFE0DBD7D8D3CECFCACACBC6CECFCAD6D7D2DFE0DBE4E5DFE5E2DBB0ADA66F6E69 3E3F391516110001000001000C100F5559589A9F9BC5C7C4CCCEC9CCCBC6E4E3DEE5E2DB9D9D95 21201E5E5E5ED7D7D7ECECECE9E9E9E1E1E1EDEDEDEEEEEEE0E0E0E0E0E0E0E0E0E0E0E0E0E0E0 E0E0E0E0E0E0E1E0DEEAE3DDDDD4CDDAD1CACCC3BAD2CABFEAE2D5E4DCCFDBD4C4AEA797A9A292 8D8578433B301A1108221910241B14261F1918171212130E0C0D080A0B060C0D080D0E090B0C07 090A0521221D2D2E2932332E3435303738332A2B26191A151617122322201A1917100C0B0A0404 0905040B0A080C0E090B120B010D031D2D227481778F99908A8D84847F79756A66271C1A060201 0303030303030404040404040404040505050505050A0D1C14162314111A181118342B2C281E1C 261D16716A607B776C8A87787F7A674B432C4233145D4924664B206D51296049296754366F5E42 77684B685A3F675C407F7458756C4D494021756D49A298749E956EA0946CA79A708B7E5279683D 846E47897250A8977DB3A894B4AEA0BCBCB4B8B9B3B9BAB5B9B8B3B1B1A9B6B6AEBFC0B8BDC2BB B7C1B9AAB6B296A29E676D69797E78A1A6A0A6ABA5A5AAA4888D87888D878388827F847E7C817B 787D77767B75787D777D827C838882868D867E8B848897904D5C550A191217241D15221B242F29 18231D1F28231B211D161B17181D1920221F2426232123201C1E1971726D81807B9F9E99CDCEC8 C9CAC4A6A9A2ACAFA8B7BCB5BABFB8BDC4BCB0BAB176807749534A48544A4A564C4A544B61645B 808277BABCB1C4C6BBD3D5CACACCC1C4C6BBBEC0B5BFC1B6BDBFB4BDBFB4C1C3B8C7C9BECACCC1 CACCC1C9CBC0C4C6B9C3C5B8C0C2B5CBCDC0C1C3B686887B5F61546F71646E706365675A6B6D60 A3A598CED0C3C6C8BBC7C9BCD4D7CCCED3CCD2D9D2C3CCC77A8380121C1B0F19180B1516071112 0E16180A0F120D11121517161715162B2A28A09B98C7C4BFB3B3A7CBCEBDBEC3AFBABFABBAC2AD 8188764C52444F554B363B35282D292B2B2923241E211F134F4E3C8C87719B957B867E67978C76 A79C88453A268F8373DDD4C3CEC5B6CCC5B5C8C2B2DBD8C7D1CEBBB7B6A1C5C4AFBFC1A995987D 8A896D746D51B3A88CD8CEB3D7D0B4D7D1B7D3CFB6CBC9B2CCCCB4D6D6BE87876D59593F5E5D41 6D694C797558878465928F6E9491709D9D79A4A482A0A07C8585635C5C38949472AAAA86747452 7A7A569494729B9B77A0A07E9F9F7B8686647D7D5B5A5B3B919273BFC2A5D9DCC1C8CAB4C0C2AD D7DAC7CCCFBEBABCAE55574A04070005080023261B2D3123292F21272D1F252719181A0C1A1D0C 2528151C1F0C131601333621666954CACDB8CED1BCCDD0BDC7CAB7C8CBBABCBFAE6B6D5F010500 151B0F192116192116121A0F0E1408141A0E2226182C30222A2B1D1C1D0D1D1B0C535240959281 BEBBAAC1BEAB96947F413C267F7A6455503A76715BBEB9A3A8A38F908B77605B474A45311F1A07 1E1906696451746F5C322C1C171101332E1B9E99858B8672524D3A4A44344A4438373026130C04 28211928211B5A534B7B746A969084BDB7A7908B78A09B87514E3B18180E13140E22231D2A2B25 14150D0F1008191A120C0D0557594EB8BAAFD1D3C88183786466595A5C4F2B2D202E31263B403A 1C221E131915121912111610171D1324271C181C0E454638CDCEBC858470BCBBA6A6A48D535138 2D2B122F2B12231D0528230F2721151B18111413111717191415170B0F0E161D16171F140C1407 0F17082B332441493A40463C3D40351617050C0A0074725BD8D4BBD4CEB4DDD8BBD3CCB07D765A 453E2439311A302815231C0C1A1408201C13231E1816121119141A18121C16101A151017171219 1F1A212B262D353036332E341A15192E282C443E42726C6EBEB8BAEAE4E4FFFAF6EBE5D9E7E0D0 F1EAD7F5EFD7FAF4DAFCF6DCF5EFD7FBF4E1E8E0D3F2E9E0F6EDE8F1E8E3EEE5DCF0E8DDF3ECDC F0EBD8E8E7D5E8E9D7ECEBD9EEEDDBEFECD9ECE9D6EBE6D2E9E4D0E7E1CBEBE5CFEEE6CFEEE6CF EFE5CCEEE4CBEBDFC7E6DBBFFAECCFFCEFCFD3C6A6C3B898DDD3B0EEE5C4F2ECCAE7E2C2F6F3D4 EAE9CDE4E2C9E4E3CEE0E1CFDBDCCCDADCCEDFE2D1DAD9C5DDDCC7E2E1CCE6E5D0E7E6D1E2E1CC DAD9C4D4D3BED5D4BFE2E1CCE9E8D3E7E6D1E7E6D1EAE9D4E3E2CDD7D5C0C7C0ADD8D1BEE1D9C6 D6CFBCC7BFACBCB5A2B6AE9BAEA794BAB29FA19A87827A67A19A879D9582AFA895C1B9A62C2512 35301C6866514E4D38575B447C8069959982C2C1ADB8B2A23B31250E01001304001B0D0A120A08 0D09080A0C0B2125262121210E0E0E0303030808080E0E0E0B0B0B0A0A0A0E0E0E0E0E0E0E0E0E 0D0D0D0C0C0C0C0C0C0B0B0B0A0A0A090A0C1011150C0F140A0D12101318262A2D51555885898A A9ADACDEE2E1DEE3DFDEE3DDE5EAE4ECF1EAE5EAE3DADFD8D8DDD6D9DAD5D8D9D4D4D5D0CFD0CB CCCDC8CDCEC9D2D3CED7D8D3D1D2CDDADBD6E2E3DEDFE0DBD2D3CEC6C7C2C0C1BCC0C1BBD6D3CC DCD9D2DEDDD8C3C4BE7C7D782B2D28020703020703000200060B070B0D0A151712262520363530 3E3B342928232322203030306666666F6F6F7171717D7D7D9A9A9AA2A2A2B7B7B7B9B9B9BDBDBD C2C2C2C7C7C7CCCCCCD0D0D0D3D2D0D6D1CDD8D1C9EEE7DFE4DDD3D1CBBFD8D2C4D7D1C3D5CFC1 D4CEC0DBD5C7C5BFB36D675B2821171D160E1D1610241F191B1A151415100D0E090A0B060B0C07 0C0D080C0D080A0B0611120D1B1C171D1E191F201B2425201B1C170F100B0F100B21211F191816 0F0B0A0905040B05050E0A090E0F0A0C130C000A001F2C227F8C82A1ABA2999C93928D87867B77 3127250602010303030303030404040404040404040505050505050A0D1C0B0D1909060F0B0509 1F1617170D0B1A110A61584F6B645A7A74666F68563D321C37260858421D62471C6A4D235F4725 5D48296552346756385142255E50338075576C61434B422179714DA39975A09770A49872A4986E 897D5382734A85714C887354A7977EB2A795B1ADA1BABAB2B7B8B2B9BAB4B7B7AFB2B2A8B8B8AE BEC0B5B9BFB5B5BFB7AFBAB6A1ACA89EA4A0939892A4A9A3A1A6A09A9F997E837D8287817C817B 81868081868080857F7F847E7F847E7E837D7E837D7C837C7B888183928B42514A08171019261F 15201A28332D1D2621343A362E3430282D29252A26282A272729262325221F1F1D7877727E7D78 9E9D98D1D0CBC9C8C3A5A6A0AFB0AABBBEB7BCBFB8C4C9C2C0C7BFAAB4AB9EA89FA3ADA4ACB6AD B2BCB1A5A89DAAACA1BEC0B5BEC0B5CED0C5C4C6BBC5C7BCBCBEB3BEC0B5BCBEB3BCBEB3C0C2B7 C6C8BDCACCC1CACCC1C8CABFCBCDC0C3C5B8C0C2B5C7C9BCC4C6B9AEB0A3A4A699B2B4A7B0B2A5 A5A79AA0A295B5B7AACACCBFC7C9BCC9CBBED9DCD1CDD2CBD6DDD6C2CBC8737C79121C1B121C1B 0C16170812130F17190D12150E1213161719181617262523989292C9C6C1A9A99DC1C3B5B8BCAB B8BDA9BCC4AFA1A896767C6E4C52483338323136322B2B292829232C2A1E302F1D635E48AEA890 9B937C9A8F7BA3988439311E857C6BD9D2C0CBC4B4D5CFBFC7C4B3CFCEBCC9C8B4C7C9B4D5D7C1 CBCDB5AFB199A8A88C8F886CB8AF92DDD6B9E4DFC2D7D3B8CFCDB4D1D1B7D4D4BC8E8E7655553D 5353396B6B517D7B628E8A6F8F8B6E8F8C6D908F709B9B79A1A17FA0A07E8787655E5E3C929270 A5A58360603E7A7A58A0A07E9D9D7B90906E8F8F6D8787658E8D6E73745576765A909378D6D8C0 DFE1CCC7C8B6D6D9C8CACCBE4D4F42181A0F01040014170C1F221722251A2E34283C4234323427 3133252D2F21262918202312212411292C1931341F9EA18CD6D9C4C8CBB8C4C7B4E3E6D596988A 26281A1C201230362A2D352A222A1F141C1112180C191F131F23151E221418190B262717222011 353422747160BDBAA9CBC8B58F8C793D3B2676756044422D5C5B46B9B6A3A8A79395927F605F4D 4946351312001D1A097270616E6B5C292718100D00403E2FB5B29F9A99854E4B3A3C3A2B49453A 3E3B32140F09221F1825201A5350496662597E7C70827F704D4C3A5754413230211D1D131C1D17 2829233738321D1E1607080015160E11120A1D1F146B6D62989A8F4C4E433335284A4C3F242619 212419333831242B241D221C0F140D181D1612180E1C1F141E2012515345A6A79753524094937F 8C8B764B4B3325230C26240D0F0D001714011A180C1615101313151213171013180E1213030907 0F160F131B101F271C3A4237464D453C413B33362F2E30220203005C5B47C0BFAAB8B69FC0BCA3 B7B1995D573F38321C2F2A16262012181408120F081C1B161C1B19090708121015120F16121015 14121717151A201B212A2529312B2D413B3D464040A69D9EE6DEDCF3EBE9FEF6F3EFE7E4EBE4DE FFF9F2F7EFE4EFE8D8EEE7D5ECE6D0E6E0CAE2DBC8E4DDCDE4DBD2E8DFD8EEE4E2F0E6E4EBE2DB EBE3D8F6EFDFFFFDEAEEEDDBEEEFDDF2F1DFF3F2E0F1EEDBECE9D6E9E4D1E5E0CDE5DECCEDE6D4 F0E8D5E9E1CEE4D9C7DDD2C0D1C4B3C3B8A4B1A992E2DCC2E3DCC2E3DEC1EFEACDDEDABDD5D1B4 DAD9BDCDCBB2C3C3ABC6C5B0D4D3BFD7D8C8D0D1C3CCCEC1D3D4C6DBDAC6D7D6C1D7D6C1DDDCC7 E1E0CBD5D4BFBAB9A4A3A28DACAB96BDBCA7C6C5B0C2C1ACC3C2ADC9C8B3C1C0ABB2B09BECE7D3 F1EAD7E5DECBC1BAA79D96838A8370837C697F7865ADA69399927F746D5A8E87747C7562928B78 B4AD9A211C090502000D0E001A1D0C393D2C5D6452959D88C7C8B8BDBAAB4B43380D0000120401 1C0E0D1007080D090A090A0C2327282727270F0F0F0202020909090E0E0E0808080808080F0F0F 0E0E0E0E0E0E0D0D0D0C0C0C0C0C0C0B0B0B0A0A0A090A0C1112160F12170D1015070A0F000407 000205040809090D0C4448475B605C7479737B807A898E87B4B9B2CCD1CABDC2BBDBDCD7DCDDD8 DFE0DBE4E5E0E7E8E3E7E8E3E3E4DFE0E1DCD8D9D4DBDCD7DEDFDAE1E2DDE2E3DEE4E5E0E6E7E2 E8E9E4BFBEB9A2A29A81807B64655F42433E1A1C17030502000200000501020703010300070803 090A040100000401001C1B163232301919190808080000000000000808081212120C0C0C121212 1414141616161A1A1A1E1E1E222222252525272624322D293D36307B746EA19A929D968C8C867A 625C503E382A696355857F71928C805B544A272018211A1227201A37322E1E1D191718130E0F0A 0A0B060A0B060C0D080C0D080B0C070405000C0D080B0C070B0C0711120D0D0E090607020A0B06 1919171212100A09070804030B05050F0B0A0F100B0D120C081209202D2377847A959F968E9188 8A87808A817C473D3B09050406060606060605050505050505050504040404040412151E0C0C14 0C0A0F0E08081B110F180D0720150F584F466962587670646C65553D321E3A290F5B4424634722 6B4D2769512F655031715C3F6D5A3C48391C5A4C31857A5E6D6246473E21736A4B9B927199916D 9E9471999069807750877954857251887557A69780AFA794B0ACA0BABAB2B7B8B2B9BAB4B9B9B1 B8B5ACBFBDB1C2C2B6BBBEB5B9C0B8B9C2BDB0BBB7B7BDB99FA49EA9AEA8A0A59F90958F737872 80857F80857F828781838882858A84858A848489838186807E837D7B827B7E898386928E3E4A46 0915111B2622111C1829322F1D2321343A383135342D2F2E292B2A2727272525252222221F1F1D 7A79747D7A739F9C95D4D4CCC8C8C0A4A59DB2B3ABBEC1B8B9BCB3BDC3B9B8BEB4B7BFB4B8C0B5 AEB8ADB1BBB0B9C1B6C8CBC0C3C5B8C6C8BBC0C2B5CBCDC0BDBFB2C7C9BCC2C4B7BDBFB2BCBEB1 BBBDB0BFC1B4C5C7BAC9CBBEC9CBBEC7C9BCCED0C3C4C6B9C2C4B7C6C8BBC6C8BBC8CABDCED0C3 D2D4C7CFD1C4CBCDC0C6C8BBC2C4B7C9CBBECBCDC0CBCDC0DADDD2CACFC8D6DDD6BEC7C46C7572 111B1A141E1D0C16170812130C14160D12150D11121617191C1A1B262523989292CFCCC7AAAAA0 BEC0B2B6BAA9B6BBA7B9C1AAB9C1AC929989363C30282D262D322C2728232627212C2A1E242311 55503AB0AA92A59D889E9683A49C89332B18827968E1DAC8D0CBB8D7D4C1D1CEBBCBCAB6CCCBB7 D8DAC5D2D4BEB0B49D969A838D8D73878167B3AC90CCC5A9C8C2A8C3BFA6BDBBA4BFBEA9C9CBB5 6B6D5855574270725D79786372715C8D8B749E9C85A7A58CA09F83A3A286A3A286A1A0848B8A6E 646347949377A2A18551503477765AA8A78BA8A78B9D9C80A09F839E9D81A8A78B909074727256 6E7156BCBEA6D8DAC5C6C7B5C6C8BA9A9C8F0E1005181911292C23282B221D2017272A1F282E22 12180C2B2D222D2F222527191619081215041D200D2C2F1C333623777A67BABDAABBBEADB6B9A8 BABCAE585A4C01030025281D0F150B141C11171F14192116252B1F30362A2B2F211B1F11262719 3536262E2C1D34332163604FA3A08FB3B09D7B78652E2D196A6C573B3A264C4E39B6B5A3ACAD9B A8A7957B7C6C444233090A001816077172646B695C2B2C1E0A0800353628C2C0B1A4A5954D4B3E 3333274B483F47473F17140D1B1A151D1A1531312927241D727268878579545547333122242517 1A1B1320211B23241E33342E20211906070012130B0E0F07080A00393B3087897E5D5F54444639 5F615434362925271C3C3F38262B24242720171A1323261F1B1E15282A1F26281A3B3D2F626554 2627158688738A8C775557411F1E09131500161803191A0A1E1F171F211E191A1E1013180F1219 14181B141A1A1319150C130B1A2119414841545A564246452D322E10160C13190B3E4234727466 8D8E7E9B9C8A8D8C7A61604E302F1D2220111C19101A1A121818161B1D1C1415190102060B0D0C 0E0E0C11110F141412191A15201F1B2625202C292219160F5F5C53E2DED5FFFFF4E8E1D7C8C2B6 ABA398C5BDB2BCB3AEBBB2ADBBB2A9CBC3B6DCD5C3E4DDCBEEE7D7F0E8DBE6DDD6E4DAD8E9DFDE EBE1E0D9D0CBC6BDB4CBC3B6DED8C8F3F0DDEFEEDAEBE8D5E7E4D1E3E0CFE1DECDE3DDCDE3DDCD D0C9B9D2CBBBCDC3B7C5BBAFC4BAAEC1B7ABAFA397958B7F979181D4D3BFE2E0CBE3E2CDD9D8C3 9D9D8585856D9E9E86A4A38E9C9E889B9D88A2A391AFB0A0BDBEB0CACABED3D3C7C5C4B2BDBCA8 B7B6A2B9B8A4BEBDA9BAB9A5ACAB979E9D89B3B29EC2C1ADC5C4B0B9B8A4B9B8A4C4C3AFC0BFAB B0AF9BC0BDAAC4BFACBCB7A4A8A390989380928D7A8C877485806D4B4633423D2A3B3623605B48 76715E827D6A6B665304010014140805080041473B555D4E525A4B979F90C5C7B9B4B2A65C554B 0D02001406031B100E0F06070E0A0B08090B2428292C2C2C1212120404040C0C0C0F0F0F060606 0606061111110E0E0E0E0E0E0D0D0D0C0C0C0C0C0C0B0B0B0A0A0A090A0C040509070A0F0D1015 0F12170C1013080C0F030708010504010504080D09131812040903050A034B5049757A73525750 62635E60615C61625D6667626A6B666768635D5E5953544F3C3D383A3B363A3B363E3F3A444540 4A4B464C4D484C4D48403F3A1C1B1601000000010008090411130E0B0D08020400070904060803 00010000010016171213140E0908031E1D193838362C2C2C0B0B0B0000000707070B0B0B050505 0000000505050505050404040404040303030202020101010201000A06030D080256514B918D84 918D827470643D392D110D015652466B675B7B776C5450452A261D1E191316110D1E1B1621201C 1819140F100B0A0B060A0B060C0D080C0D080C0D08090A050F100B0B0C07090A050F100B0C0D08 0809040D0E090E100D0A0A080605030703020C0606100C0B100F0B0C110B101A11142016465248 4B554C44473E49463F6158533D33310D09080A0A0A090909080808060606050505040404040404 17181A0E100F1915121E1913261D14271D1330261C5B5249544D435F584E554D422B1F112C1A06 4D351D55371B5D40226950325843265C472C5A462D3A2A1153442D786C544F452C3E341B695F44 8E84698F8669948B6C8D8264756A4A83765484735587765CA49882AEA795AEACA0B8B9B1B6B9B0 B9BAB2BCBCB2BCBAAEC3C1B4C7C5B8BDBFB4BCC1BAC2C8C4BCC5C0B1B8B19BA09AABB0AAA5AAA4 8F948E6F746E828781888D87828781848983868B85878C86878C8684898380857F7D847D828D87 8894903D49450A15111B26220E1714282E2C191F1D2529282327262224232022211F1F1F1F1F1F 1F1F1F201F1D7E7B767B78719E9B94D7D4CDCAC7C0A5A59DB5B5ADC1C2BAC0C1B9C2C5BCBCBFB6 C7CDC3CFD5CBBFC7BCBDC5BAC4CCBFC7CBBDC7C9BCCCCEC1C7C9BCCFD1C4BDBFB2CCCEC1CACCBF BDBFB2BBBDB0BBBDB0BFC1B4C5C7BAC9CBBEC9CBBEC7C9BCCBCDC0C4C6B9C5C7BAC7C9BCC6C8BB CED0C3D4D6C9CBCDC0C8CABDCFD1C4D2D4C7C8CABDCACCBFCED0C3CACCBFD5D8CDC6CBC4D4DBD4 BAC3BE67706D0F1A16141E1D0B15160711120810120B11110B0F101719181E1C1D2827259A9592 D6D3CEB4B4AAC3C5B7BABEADB5BAA6B4BCA5C2CAB599A08E1B2113191E1724292324252021221C 211F132220115C5743B4AF99A19A87A09885A8A08D2F28157F7866E5E0CDCCC9B6CAC9B5D9D8C4 CED0BBD1D3BEDADDC8B2B69F71755E51553E43452F423E257B755B827C646D685273715C706F5B 6869577E7F6F68695B292A1C363729464739383627363425423F2E5F5C4B65624F62604B595742 56543F45432E23210C56543F64624D4C4A355856416A68535C5A455957426967526866516E6C55 65654B4D4D333B3D2573755F92938192938387897C34362B1C1D150D0E060D100710130A15180F 2B2E2530362C171D113133281F211615170A1B1D0F2325172528172A2D1C343724393C29696C59 9093829294866D6F612F31241113081E211611170D151D12131B100E160B171D11282E222B2F21 2125172B2C1E333424302E1F353422413E2D5A5746716E5B5E5D492E2F1D797A68515240616250 C4C5B3B0B1A1A2A3937576663B3C2E131406292A1C797A6C69695D37372B101004303024BFC0B2 ABAC9E5555493A3A305151494F4F471918131C1B1632312C29282308080093938BCFCFC599998D 3132241414082021192B2C2624251F31322C2A2B2316170F2021191A1B1317190E292B2086887D 73756A55574A6C6E613E40332B2D2248494122251C1F201A14170E2021191E201535372A2B2D20 1113053235242124139DA08D9C9D8B5F624D1A1C070A0D0010150110140515180F171C18101417 03060D02050C0A0E1115191A1218140B1009161D153D423C515554434748303636010A051F2920 0A110920281D93998DC0C4B68C8E816A6C5E303225181B1013160F1A1F1B181E1E141C1E141B21 11191C050A06080D060D120B1318111A1D161F221924261B26281B2525196B695CB8B6A9B8B5A6 C4C1B2CAC7B8A29C8CB1AB9FB1A8A3B3A9A7AFA69FBBB3A8C2BBABBEB7A7BBB3A6B1A99EC2B9B4 C3B9B8D2C8C9DDD3D2CAC0BEADA49DAEA699C4BEAEBDBAA7B9B8A4B6B3A0B6B3A0BEBBAACBC8B7 DCD6C8E5DFD1AEA69BA59D92978D8490867D9B908AA3989290837D6E655E757367CDCFC1D4D7C6 BEC1B0C4C7B4B7B8A6B0B29DC0C2ADAAAC97B0B19FABAC9A999A8A86877973736758584E403E32 39372A3533242F2D1E2B291A2D2B1C383627484637545243545243605E4F5C5A4B4A4839474536 5654455654454846373230212E2C1D2220111816071A18091F1D0E1917080C0A000705000F0D00 1311020402000806000E0C0007050015160811120A0002005A61595761562D372C838B7EC4C7BC BEBEB26760580E05001507061B0F0F0E05060D0B0C08090B25292A2E302F1414140606060E0E0E 0F0F0F0404040505051212120E0E0E0E0E0E0D0D0D0C0C0C0C0C0C0B0B0B0A0A0A090A0C0F1014 0C0F14090C11070A0F070B0E080C0F0A0E0F0C100F0F13120005010C110B090E08090E07474C45 5F645D23282135363122231E0C0D08010200020300070803070803050601040500050601050601 0405000102000001000203000304000203000708020B0C070A0B06070803030400020300000200 00010011120D0A0B0600010002030007080305060023241F1C1C1A292929101010020202040404 0404040303030A0A0A0A0A0A0A0A0A0909090808080707070606060606060605030300000A0501 524D4978736D565249363227252116231F13231F132F2B1F423E33332F2626211B2A251F25201C 2C292422211D191A150F100B0A0B060A0B060C0D080C0D080C0D080D0E0912130E0C0D08090A05 0E0F0A0B0C070607020C0D080709060305020302000703020D0707110D0C100F0B0D0F0A171E16 0A160C222E24151F160A0D040E0E063029232018150F0E0C0D0D0D0B0B0B090909070707050505 040404030303292A220B0D021E1A0E544E40584F3E2F23132A201451493E2D261E1F1812241D17 2D221C3423194D3729634634573B2651382237210A49341F52402A3F2E1A5546336558473F3422 483D2B5B5340776F5C8078637D755E867B65867C63776B516A5A4086765DA59A86B8B2A2BABAAE B7BAB1B9BCB3BDBEB6BFBFB3BFBDB0CAC6BAC5C1B5C5C5BBC9CCC3B6BBB5B2B8B4AFB4AE9EA39D A3A8A2A6ABA58F948E868B858B908A868B85838882898E888F948E8E938D878C86828781838882 848B8479827D8F9A9436413B0A130E19221D1218141C221E1F24201B1D1A27292628282621211F 201F1D1B1A181C1B192827238E898377736AADA9A0C9C6BDC0BDB4A6A69CC4C4BABFC1B6C1C3B8 BFC2B7BEC1B6BBC1B5B9BFB3B8BEB2B7BDB1B6BCB0C4C8BAC7C9BBCACCBECCCEC0CCCEC0CACCBE C8CABCC6C8BAB7B9ABBBBDAFC0C2B4C5C7B9C8CABCC9CBBDC9CBBDC8CABCC7C9BCBDBFB2BEC0B3 CBCDC0D1D3C6CACCBFC8CABDCED0C3CACCBFCACCBFC7C9BCC5C7BACACCBFD2D4C7D4D6C9D1D4C9 D0D6CCD2D9D2C4CEC659625D0F1A16121D19050F0E131D1C151E1D00050505090A181A19171614 2E2D29847F7CD1CEC9B0B0A6C1C3B6AFB3A4BABFABB0B8A1B9C1ACBCC3B14D54440F150B282D26 21221D292A240805002E2C1DB5B09CAEA993A39C8A9C9583A8A18F2B26138D8875D6D3C0C8C5B2 CFCEBACAC9B5D1D3BECBCDB8CDD0BBC6C9B4828771454A34454732534E3A726C56847D6A87826F 8B887989877A8181778082774E4F47191A120E0F0916171118181017170F1B1811322F262B291D 1F1D101614071816091A180B1816091D1B0E2523164F4D402F2D2018160919170A1C1A0D171508 19170A23221030301839391F282A12696B559394829C9D8D9294871A1C1112130B181913191C15 1619121A1D1623261F2227201D231931322A1D1F1414160B2022152C2E20292C1B222514212413 282B1A8B8E7D9B9D8FAEB0A2808275191B1015170C15180F151B11131B100B13080A1207161C10 43493D32362823271931322431322234322355544233301F6E6B5A95927F81806C3536247B7E6D 414433525544BFC2B1AAAC9EA1A39594968852544713150822241772746776786D2F312614160B 2F3124C0C2B5B1B3A657594C3234294B4C4453544C1E1F1918191338393327282225261E92938B C4C6BB8284772B2D202123162021192B2C261F201A37383228292114150D0D0E061C1D1515170C 292B20A5A79C80827752544765675A27291C3A3C2F54564B33352A1B1B131C1E132323191F2114 2123162A2C1F2A2C1E212413393C2BA8AD99B2B5A2777C68131603050A002027150F17081B221A 171C18161A1D15181D0104090C10110A0E0D1E231D0A0D06090E07484A45525753575B5C32373A 121E1C0F1E1B18242016211B838D84C5CFC49DA59A747C712B322A101710141A16121B1A0E1819 111C2009131C0A15190E17141017100E150E111810171C1512180E1E2118373A2F3E4035343629 2323171A180C2624183F3D304E4A3E4E4A3F514946483E3D5A514A989085574F42766F5F393124 292017291F1D281E1D322829483E3D5E5452746B6490887DA8A292989582A9A693B6B0A0B7B1A1 BDB7A9C7C1B3C4BEB2B9B3A7938A818E857C7970696C635C615853372E29120705120A07181810 31342924281A383C2E3337281F21135356457578657C7D6B9293835553441A180B181609121004 0C09000E0B020D0A011411080B08000C0900211E15211E1516130A1C19101E1B121F1C13131007 0A07000D0A010D0A010906000A0A00040600050800070A000A0D020C0F040C0F04090C01070A00 0C0F040B0E030A0D02090C01090C01080B00080B00070A000C0F08080D06434A42768075475347 8F9A8CBDC3B7C5C5BB67605A120904170908251919120C0C08060707080A2428292E302F0E0E0E 0E0E0E0A0A0A0D0D0D0F0F0F0000000F0F0F0909090A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A 090A0C0D0E120E11160C0F14070A0F04080B060A0D060A0B040807090D0C0308040F140E181D17 03080143484180857E292E273B3C3745464117181300010012130E11120D0A0B060607020A0B06 090A05080904080904090A050B0C070D0E090E0F0A0405000A0B060C0D080809040809040C0D08 0C0D070809030100000405000B0C07000100090A0506070200010030312C4949473737371D1D1D 0808080000000000000404040808080B0B0B0B0B0B0A0A0A070707070707070707060606050402 0D090608050047443F47443D1411081715091A180C0B0900100E021210041A170E1C19101C1912 2926212D2926201C19201F1B1415100D0E090E0F0A0D0E090708030607020B0C07070803090A05 0B0C07090A050708030708030B0C070F100B080A070507040302000300000600000C0606120E0B 1315101E251D242E251D291F141E151A1D14181810140D07150D0A21201E1717170C0C0C040404 0303030303030303030202020304002D2E1C86846FC8C2ACA49C87473C281C13022F271C19140E 110D0A1C171428201E2E1F1A412D2652372C4A2E222F1806291401422F1E52412F473727554838 5E52463D332742382C524A3D665C506B62536B6253756C5B7D716175685772614D887964A09786 B0AD9EB3B5AAB3B6ADB7BAB1BDBFB4B5B5A9B5B2A3C3BDAFC0BDAEC4C2B6C9CAC2B8BDB7B7BCB8 ACB1AB9DA29CA1A6A0A3A8A28F948E858A84898E88868B857C817B838882898E888A8F89868B85 848983868B85888F88838C878E99933A433E0C15101B211D1F25212C312D2126222D2F2C2E302D 2B2B292E2E2C3635332C2B291D1C1A1E1A177F7872766F67B2ABA3D0CCC3C3BFB6A4A198B9B6AD B7B7ADBFBFB5BEC0B5BFC1B6BEC1B6BEC1B6BDC3B7BDC3B7BFC3B5C5C7B9C6C9B8C8CABCC9CCBB C8CABCC6C9B8C3C5B7C1C4B3BCBEB0BDC0AFC0C2B4C2C5B4C5C7B9C7CAB9C8CABCC9CBBDCDCFC2 C4C6B9C4C6B9CFD1C4D4D6C9CFD1C4CDCFC2D2D4C7D4D6C9D2D4C7CED0C3C9CBBEC8CABDC9CBBE C7C9BCC3C6BBCED4CACFD6CEBCC6BD4F595106110B091410000602020D09141D1C020806242827 4143401F1E1A1F1E197B7672D0CDC6AFAFA7C6C8BBBCC0B1B6BBA7A9B19AB5BDA6BAC2AD6F7666 2B3127262B2414151025262017140B49473AC6C1AEB8B39FA29B8B9D9787A6A09034311E969380 E0DFCBD0CFBBCCCEB9CED0BBD2D5C0C9CCB7CBD0BAC8CDB79196805E634F606350716E5B989380 ACA696ABA899B1AFA3B4B4AAA9AAA4A0A29D4446431315120C0C0C1616161A19171B1A181F1B1A 332F2C2926211C191216130C1B18111F1C151F1C15221F1829261F53504934312A1E1B141D1A13 1E1B1417140D19160F2422162C2B1737371F2C2E18747661A4A595ADAEA09FA19625261E11120C 181913171A1313160F1B1E17292C25272C251C211A34352F1F201814150D1C1E13242619202214 191B0D181B0A373A29989B8AA3A597B5B7AA86887D2022171D1E161E211812180E161E13141C11 11190E161C103D43372F3325282C1E3C3D2F3B3C2C3E3C2D61604E43402F83806FA4A18E82816D 303121787B6A414433535645C1C3B5ACAEA0A3A59795978954564913150820221570726574766B 2D2F241214092F3126C0C2B7BABCB164665B3A3C314849414C4D451C1D171B1C1630312B24251F 292A229B9C94D0D2C790928735372C26281D23241C2A2B252526203F403A27282014150D12130B 1C1D151F211634362BB6B8AD9EA0957173667B7D70393B2E46483B5353473333271D1A111C1C10 2222161F1F132323172C2E212123151A1E0F363A29AEB2A1BFC3B2838B7622261519200E172211 0F1A0A1B221A181E1A1A1E1F161A1D0B0F10292B2A191B162A2B231B1D1214160B4E4F47575A53 5254533B41410F1A1C0B191A12202014201C85908ACBD5CDA8B2A9858F86343B33111B1317201B 192420111D1D1422230D1A20091418050E0D060C08080E0A171D192228241D221C20251F383A35 4649423E3F392B2A2518171215140F1A1A121A1712120D09160E0C110705332A21837B6E494232 6F6858362E211D140B261D182016151A1011140A090E04020E0500160E032019091B150524210E 2D27172E2818363022403A2C3F392D342D23271E17251C151B120D1D140F281E1C1B110F100404 1A12100E0F0920251E0B1107191C11161A0C0A0C004345376F70607A7B6B9391825553461D1B0E 1D1B0F1A160B15110818140B0C0902110E070805000805001B18131E1B14191611211E1714110C 1E1B141C1914100D060C090414110A16130E0F0F07050801050B01070C05090F05080D06060C02 0409020208000A0F080B11070D120B0E140A0F140D0F150B0E130C0D120B080B04080B04434A42 7781764A5449899486AFB5A9B6B6AC6D665E1209040D02001A0F0D100B0811100E0E1211282C2D 3436351515150F0F0F0909090C0C0C0F0F0F0202021010100C0C0C0C0C0C0B0B0B0B0B0B0A0A0A 09090908080807080A0A0B0F090C11090C11070A0F060A0D070B0E080C0D070B0A080C0B040905 111610181D170207004449428388812B302936373243443F191A1503040012130E0F100B0D0E09 10110C080904080904070803070803080904090A050B0C070D0E09080A05080A05050601020300 0506010D0E080E0D080908030F0E090B0A050B0A06000100050601080A050507022E302D434343 3434341D1D1D0B0B0B020202020202050505080808060606070707050505020202030303050505 0505050202020C0B0902010038343135342F0906000C0C0216130A09090018160A101004120F06 101008120F0A201F1A312D2A2E2D2921221D11120D0506010708030B0C070A0B060B0C0710110C 0B0C070D0E090D0E090B0C070809040708030B0C070E100B0409050406030303010602010A0404 0F090914100D1516110B10090E180F0C160D09130A11140B12120A140D07170F0C1B1A18131313 0A0A0A0505050404040404040303030101011A190457573FB1AD94D3CDB3958E74352A140E0600 1E180A19160F14130F1F1D1E2925242B201E33241F3E2A233D271C2714052C1B093D2D1D443727 423628483E32453C3331281F3E352E474038514841554C435F554C71675D82756C87796E877767 968976A9A091B3AFA3B4B5ADB3B8B1B7BDB3BEC1B6B5B6A8B3B0A1C2BCACC5BFAFC9C5B9CBCBC1 BBBEB7BBC0BAABB0AAA0A59FA4A9A3A7ACA6999E9890958F949993959A948F948E939892979C96 979C96949993929791939892949B947F898188928A4B524B202720191E181C211B31332E22241F 33342F33342F32312D33322E332F2C221E1B1E1A172F2A268079717D766CAEA79DCCC5BBC0B9AF A39F94B4B2A6BCBCB0BABAAEBABCAFBBBDB0BCC0B2BDC1B3BFC3B5C0C4B6C1C5B7C6C9B8C7CAB7 C7CAB9C7CAB7C6C9B8C4C7B4C2C5B4C0C3B0BFC2B1BEC1AEBDC0AFBCBFACBEC1B0C1C4B1C5C8B7 C7CAB9CFD1C3C8CABDC7C9BCCED0C3D3D5C8D0D2C5CED0C3D1D3C6CED0C3CDCFC2CED0C3D0D2C5 D1D3C6D1D3C6D2D4C7D3D7C9C9CFC3D4DCD1C2CCC15862590E1911121D170D181215201A101916 080E0A4A4F4B84868154534E26261E5C5751A29F98B7B7AFCACCC1C7CBBCB5BAA6B6BEA7C5CDB6 AFB7A27C8371454B3F3C413A2B2C273D3E383A372E59574AB3AE9BACA793A49E8E9D9787999383 302D1C8D8A77D7D6C2CDCCB7C0C2ACC5C7B1C7CBB4C2C5B0C5CAB4C2C7B3929A85646B59636854 6B68579B9585B3AD9FAEAA9EB6B3AABDBDB5AEAFAA9A9C9B45464815191A10111517181C19181D 19181D18161B2826292624251A19171615131D1C1A2423212524222726242C2B29504F4D353432 22211F22211F1F1E1C16151317161423231B302F1D3D3D2535372181836EB3B4A4BABBADA7A99E 2728200F100A1819141618130F110C1C1E1932342F2F342E1B20193B3C36292A221B1C141C1E13 2123161E2012181A0C16180A424436A0A294A8AA9DB7B9AC87897E22231B1E1F191E211A10160C 1921161C24191B23181A20143C42363034262F33254445374142324543346B6A58514E3D979483 B0AD9A7A7965292A1A7376653F4231555847C5C7B9B0B2A4A5A79996988A57594C1214071E2013 70726573756A2A2C21101207313328B9BBB0BDBEB66F706841423A494A424C4D451F201821221A 3031292728202C2D259E9F97D6D7CF9899913C3D35292A22262721272822292A2444453F1E1F17 0C0D0511120A14150D181A0F2E3025B3B5AAA5A79C787A6D8082753E4033424236514F43333124 1F1B10201E112422151F201224251730322427291B202415383C2DADB4A4BCC3B379826F101707 0B1403101B0A111E0D1923181A211A1D21201317161B1D1A4F504B292B201B1C0E161707171808 595A4C70726561625C4E504D141E1F0F1A1C142020151F1E848F89CBD5CCB2BAAF979F9232382C 0A1207141E151B261E121D191A26241420200610110F1417080C0F04080B1216192024271F2022 2B2C2E4A4A4C4E4E504242442C2A2F17151A1311161D1B1E1F1D221B17181A120F110801322A1F 8A83735049377A73604B44342A22171C130C2016141F1514180E0D150B091A110A231B10282111 1711011B16031C16061E1808282214332D1F322C202A2319241B14201710150C07170D0B201615 1C1211170D0E211917171812282B2410130A16180D17190C0F10024647397A7B6B7C7A6B959283 595647211D11221E1320190F1B140C1D1610130E0A16130E100C09110E091D19161E1B161A1613 1E1B16130F0C1C19141F1B180F0C0706020014110C1C18150C0B06080D07080F07091009091008 0910090A11090D140D0F160E020902040B03080F080C130B0D140D0D140C0B120B0B1009090A04 090A0241473D777F724D5548889081ACB0A2B5B5A97770661A110A0D0200150B09100B08181715 151918282E2C3C3E3D1E1E1E0F0F0F0808080A0A0A0D0D0D0505050F0F0F0E0E0E0D0D0D0D0D0D 0B0B0B0A0A0A09090908080807080A08090D06090E070A0F080B10090D10080C0F090D0E0B0F0E 070B0A050A06111610161B15000400434841858A832D322B31322D41423D1B1C1706070210110C 0A0B060E0F0A1B1C170708030607020506010506010607020809040A0B060B0C070608050A0F0B 1517121E1F1A25262023221D16130E060300030000010100040300000100010200030500010300 191B181F1F1F1616160A0A0A0202020000000404040A0A0A0D0D0D050505060606060606040404 0808080F0F0F1010100D0D0D0C0C0A000100262521282923030300050700121208080A000E0E04 090B0015150D1F2018201F1A26272232312F32323034353020211C0F100B0E0F0A11120D0F100B 0E0F0A12130E0D0E090F100B0F100B0D0E090A0B06090A050D0E090F110C050A06040905070705 0B07060F0909120C0C15110E1415100A0F0809130A0A140B0D140C0E140A11120A17120C1A1511 1312100D0D0D07070705050505050505050503030300000040402857553E756F57777056534930 241C051912002522132C2C242729242A2C2B2D2D2B2A25212B201A372920423225261908271C0A 2116041F160530281B3F372C3B342A312D243D3832423B353D36303D36304D443F615650766963 8578708D80709C9080ADA598B6B4A8B6B9B0B5BAB3B7BDB3BCBFB4B9BAACB4B1A0C3BEABC7C1B1 C7C3B7C2BFB6ACADA7ACAEA99EA39D989D979BA09A9EA39D979C968E938D919690979C96929791 9297919196908E938D898E88858A848287818287817F867F8690876E756E4E554D262B2511160F 2325201D20192526212F302A34332F302F2A221E1B15120D312C29655D5AB5ACA5A79E95B6ADA4 C8C1B7C1BAB0ABA49AB1ADA2C1BFB3BDBBAFBBBBAFBCBCB0BCBEB1BDBFB2BDC1B3BDC1B3BEC2B3 C7CAB9C7CAB7C8CBB8C8CBB8C9CCB9C9CCB9C8CBB8C8CBB8C5C8B5C1C4B1BDC0ADBABDAABBBEAB BFC2AFC5C8B5C9CCBBCED0C2C9CBBEC7C9BCC9CBBECDCFC2CDCFC2CCCEC1CCCEC1CFD1C4CDCFC2 CDCFC2D0D2C5CDCFC2C8CABDC9CBBECED2C4C6CCBED6DECFC1CCBE576156051107000900000400 000A02000800000700414640979A9394948C54544A5B574E97948BCDCDC5CED0C5C9CDBEB5BAA6 CAD2BBD0D8C0858D764E554352584C62685E4C4D474647414340373F3D30706B58948F7CB7B1A3 A9A6979491823938268D8C78D4D6C1D9DBC5CCD0B9CED2BBD1D6BFD0D5BFCFD7C0C4CCB7929B88 606956535A486A69579D9A89B8B5A6B3B1A4BABAB0C2C3BBB1B3AE979B9A424647191D2015161A 1A1B201B1A201D1C221B181F2624292B292A201F1D1B191A2322202927282827252927282E2D2B 48464732312F2422232726242422231918161A181925241F3A392745442F3B3D28868775B7B8AA BABAAEA1A29A1D1E180E0F0A191A151416110C0E091E201B3B3D38353A341A1F193F403B31322C 24251F21221A23251A2325181F21141C1E104244369FA193A7A99CB5B7AC84857D1D1E16171812 161912151B111820151B231821291E252B1F464C40393D2F383C2E464739414232484637706F5D 575443A19E8DB2AF9C6B6A562324126F72613E4130575A49C8CABCB3B5A7A8AA9C989A8C5A5C4F 1214071D1F1271736675776C282A1F0E1005323429B1B2AABBBCB470716944453D4F504855564E 25261E21221A33342C292A222A2B23979890CFD0C89798903C3D3525261E28292324251F2C2D27 4B4C4620211913140C21221A22231B191B1034362BB7B9AEAAACA17D7F728A8C7F4F5144424236 49473A322E22221E122622162925192321142627193335272022141D2112323929AAB3A2C2CBBA 818A79151E0D141F0E0D1A081522111923181C231B1C211B10120D2829236C6C62595A4A181703 1D1C0721200B4B4A366E6D5B66645744453D212725161E201C2222191F1B848982C9CCC1B2B4A7 A0A392383B2A0E1100181C0D202618151D101E261B151F16040B041C1C1A1716141312101B191A 222021201E1F3634355E5C5D6662635651553A3539211C221D181E26212729242A241E201E1711 150D02322B1B8F8875514B35756F59463F2C1B1404170E05211813241A191F15141F16112B221B 352D22362F1F231D0D1F1A071C16061F19092A2416332D1F332C222E271D2A211A271E17221914 231917281E1D251B1A21171621191715140F28292116160E17170D1E1C10141205403E2F7A7967 7370618E887A554F41211B0D251F13241B12201710231A1318130F1B18131C19141E1B16211E19 1E1B1618151016130E1E1B161C19141B1813120F0A09060116130E1C19140A0904080B04050A03 030801010600000500030801070C050A0F08020700050A03090E070C110A0D120B0B1009080D06 080B040D0D030909003C3E317076684C5343878E7EABAE9DBFBDB0746E621E150C170C061B120D 100B07151611121814242A284345442323230C0C0C0707070B0B0B0A0A0A0606060C0C0C0B0B0B 0B0B0B0B0B0B0B0B0B0C0C0C0C0C0C0C0C0C0B0C0E0B0C1006090E070A0F0B0E130A0E11060A0D 090D0E0F1312070B0A0308040E130D12171100020040453E8287802D322B2D2E293F403B1D1E19 0809040E0F0A0506010B0C071A1B16050601050601040500040500040500060702080904080A05 0204010D120E2325223335303938332C2B2618150E0603000300000805000B0A05060701050601 0507020D120E252A263030302929291D1D1D1212120A0A0A0505050303030202020A0A0A0B0B0B 0808080404040707071010101111110C0C0C0C0C0A0000001E1E1C2C2D2811120C0D0E0613140C 060800050700050700191A122B2C2628292422231E2727252A2A282C2D281D1E1911120D0F100B 0A0B06010200000100000100090A050C0D080E0F0A0D0E090C0D080D0E0912130E1618130E130F 0C110D0C0C0A0D09080E0808130A0B140F0C13120E1619120E150D101A11151C140F150B0C0D05 130E0815100C0D0C0A080808050505050505070707060606030303000000322F1E302D1A352E1B 3D35204439234139243833202F2D1E36372F2D322C272E27272C2626281D26221637301E514936 5F5742544E38362F1C2823103936274541353A382C312E253F3C353D38322C272328211B382F2A 4239344E433F64574F7E7063918577A8A296B6B6ACBBBEB5B9C0B8BCC2B8C0C4B6C1BFB0B5B29F C2BDAAC7C0AEC1BBADB1ADA293928D92948F8F948E8C918B898E88878C86818680747973717670 7A7F79787D77767B757277716F746E6C716B696E68676C66656A64767D75767E73797E7773796F 484B4421241B23241E2021192625202A2A222F2C2734312A342F2B2E2923473F3C726B65958C83 8981768B8378AEA69BC1BBAFBBB5A9B4B0A4C6C4B7C7C5B8C5C6B8C4C5B7C2C4B6C1C3B5C0C2B4 BFC1B3BFC1B3C4C7B6C4C7B4C5C8B5C7CAB7C9CCB9CCCFBCCED1BECFD2BFCFD2BFCBCEBBC5C8B5 C2C5B2C2C5B2C7CAB7CED1BED3D6C5D2D4C6CFD1C4CBCDC0C8CABDCBCDC0CFD1C4CED0C3CBCDC0 D1D3C6CDCFC2D1D3C6D8DACDD5D7CACDCFC2D0D2C5DBDFD1CAD1C1D2DBCABBC6B6707B6B3B4739 374337323E342C382E333D34343C31444A40818479A0A094646557545044979589DDDDD5D4D5CD CBCFC1B5B9A8CBD3BCC4CCB460685129311C5C62547B817756575135362E423F36302E21453F2F 958F7FB4B0A4ACA89C928F804D4C3A908F7BC7C9B4D5D7C1C9CDB6CACEB7CDD2BBCED3BDC8D0B9 B6BEA98A93805F68574D5442706F5A9E9C87B6B3A0B4B3A1B7B8AABBBDB2ADB0A99CA19B3F4342 191F1F171B1E1B1F22202126292A2F28272D31303532303128272322211F262521282725252420 2827252E2D2941403E2D2C282423212A29252928261E1D191E1D1B2929213F3E2C4948333C3E29 848573B3B4A6B5B5A99C9D9518191310110C1919171315120C0E0B2123203F413E383D391C211B 32332E2C2D2722231D1D1E162022172426192224171D1F12424437A3A598AEB0A5BCBEB3888981 1D1E181617121518111D2319161E13141C11222A1F2F352951574B4145373F43354E4F41454636 514F407C7B695E5B4AA6A392B5B29F65645020210F6D705D3D402F565948C8CBBAB4B7A6AAAC9E 9A9C8E5D5F511214061E201377796C7A7C6F282A1D0C0E01323429B5B6AEBFC0B873756A45473C 54564B5E605527291E191B102A2C2123251A24261B909287CDCFC49A9C913D3E361F2018272822 24251F2E2F2951524C2A2B2323241C36372F393A3217190E35372CB8BAAFAFB1A6818376909285 57594C38382C454135332D1F2923152D2A1B2E2B1C2624152A2B1D393B2D3234273236283D4335 ADB5A6CCD4C58B96861B26161B26160F1C0A1724121823151E261B181D160E110838382C7B796A 65634E2220075756386867495A593D67654E75725F5654472625201B1B1921201B20201889877A C8C5B4B6B19DABA690413D241A16001E1C032323091A1C0421230D161904080900150F001C1407 20180B251D12261E13251D123F362D696258665D565851493F3832261E1B1E1613221A17211916 1A130D241C11241D0B3A341E9A947C605A407C765C4C462E1F18061F170C251C15231917190F0D 170E091F160D241C0F211A0A2720102019091C1505221B0B2C241730281B30271E2E251C1A130B 171008150E08150E08150D0A18100D18100D11090615110829271B1A180C1614071E1A0E141102 34312076715E676151837C6C4D45381C1407231B1023190F20160D231A13110D04100D0615120B 18150E16130C16130C18150E17140D1C191217140D15120B15120B15120B19160F17140D0E0B04 0D0D050D0D050C0C040C0C040C0C040A0A020707000505000C0C040E0E0610100812120A12120A 1010080D0D050E0B020F0B000A07003435256A6D5C484D397B806C989987B2AF9E61594C140A00 170D041E150E0C09040B0C070B110D222B264749482424240707070C0C0C121212080808060606 0A0A0A0707070808080909090B0B0B0E0E0E1010101111111112141112160A0D120A0D120E1116 0A0E1103070A0A0E0F191D1C0E1211000501080D0710150F0002003B40397D827B2B30292A2B26 40413C1E1F1A0708030F100B080904090A0511120D050601050601040500040500040500060702 080904080A050204010B100C1D1F1C2628232625201B1A15120F080C09000401000F0C05070601 0304000203000001000F13123438372A2A2A2626261E1E1E1414140B0B0B040404000000000000 0E0E0E0F0F0F0909090000000303030D0D0D0D0D0D0404040C0C0C0505031F1F1D3B3C372C2D27 1C1D15191A120405001B1C141C1D1531322C42433D3C3D383939374444444D4D4B46474241423D 3F403B3C3D382D2E29191A1510110C12130E0304000708030B0C070C0D080D0E0911120D171813 1C1E19181E1A13191510100E0D09080B05050E0506100B080F0E0A13160F060D050E180F1B221A 0F150B090A02100D06110E090B0A08070707040404050505070707070707040404010101261F15 211B0F1F1509241B0A382D1B463D2C453F2F37382A2B2E23252C241C261D1E281D242B1B232611 35331C59553A7574586D6B5254523B42412C4948344A4B3B3B3C2E2F2F233C3C323C393229241E 26211B3C332E3E352E403531594C4474685C8D8475ADA99DC2C2B8C5CBC1C3CBC0C5CBC1CACEC0 C7C6B4B9B4A1C3BCA9C7C0AEBFB9ABAAA69B8C8B868F908B93959090958F868B857E837D777C76 636862595E58646963777C767378726F746E70756F737872757A74757A74737871747C716C7467 7A80768C928684877E6E716663645C5D5F546868605D5D5357544D66635A7C777177736A6E6761 716A62675D53695F556B63589F978CC5BDB2C3BDB1AEA89CC0BCB0CAC6BAC8C6B9C5C6B8C4C5B7 C1C3B5BFC1B3BEC0B2BDC0AFBCBFACBBBEABBCBFACBDC0ADBFC2AFC2C5B2C5C8B5C7CAB7CED1BE CBCEBBC6C9B6C4C7B4C6C9B6CBCEBBD1D4C1D6D9C8D1D3C5D1D3C6CBCDC0C4C6B9C5C7BACDCFC2 CCCEC1C6C8BBCBCDC0C6C8BBCBCDC0D3D5C8C8CABDB5B7AAB4B6A9C0C4B5C1C8B6BFC8B5ACB7A6 939E8D8E9B8A99A59794A092838F83858F84899184797F73898D7F9E9F916B6C5C5552438E8C7F 9B9B939A9B93989C8E8488778D957E858D75414932242C172A3022444A3E2B2C26101109312E25 2624171D1707655F4F7D796D7F7B706B695C403E2F6566547A7C67838770757962797E677D826B 8189727F8873737C69616A594F5A4A484F3D6E70588C8A719B9B83999B86989B8894988991978B 9A9F985157532D3331272B2C2226272425292D2E322B2A2F3030323635332C2B26272621272621 24231E21201B28272234332E48474232312C25241F2B2A252C2B2623221D23221D2D2D2341402E 4B4A363F402E858676B3B3A7B6B6ACA0A1991E1F1915151319191713151210120F2426233E403D 373C381E231F20211C21221D1D1E18171812191A121F21161D1F1215170A46483BABADA0BABCB1 C7C8C08F908A22231D1C1D181E211A222720151D1211190E20281D2C32264D53473F4335434739 5B5C4E4E4F3F605E4F8E8D7B656251A6A392B7B4A16968542223116E715E3C3F2E545746C6C9B8 B4B7A6ABAD9F9D9F915F61531214062224178082758284772A2C1F0B0D00323427BEC0B5CCCDC5 7E80754A4C4155574C6062572B2D221C1E1125271C22241926281D929489D2D4C9A3A59A43443C 1F20182526202728222C2D274C4D472C2D252021192A2B233031291B1D122F3126AFB1A6B7B9AE 85877A888A7D5254472E2F21444132352F212E281A332D1F302D1E292718333124444638414336 4046383E4436A0A899C0CBBB889383131E100C190814230E162510172212222A1D151B0F15170A 4F4D3E817E6B5D593E514E2FB7B390E0DEB8ACA9887D7A5B817D6465624F251E141D1610271E15 2B2316928978CFC4AEBEB298B8AD8F3D3212211700201800211B002622002D2808211E00221D00 221700281B002214001B0D002012002A1F03483C226D61496F634B655A444C412D2A220F1A1100 22190831281739301F3B34213A341E2C260C787356443F21615C3E433D232B250F261E11241B12 2017121C130E2017102920172E26192D2616251E0E1E17071D16062720102E26192C24172A2217 2B2219251E161F18101D161018110B130B081C1411201815130C061710062D271B1F190D140E00 1E180A140D002A2311706957696250857C6B4E45361B11051E140A1C0F06150800150B02090500 0301000806000B09000604000F0D011D1B0F1F1D110D0B001E1C101B190D0F0D01100E020F0D01 0D0B001412060E0A000C08000F0800120E03191208171308110A000804000E07000C08000F0800 0D09001009000F0B00110A00120C00130C000D0600322F1C6567524448316E725B85846FA19E8B 5E57470B01000D0300191007070400020500040E06262F2A4B4D4C242424040404191919212121 0909090808080D0D0D0808080808080A0A0A0C0C0C0E0E0E1010101212121213151314180A0D12 0C0F14101318090D100206091216172C302F1C201F010602030802141913010600393E37787D76 2C312A26272240413C1D1E19070803171813191A1511120D090A05070803060702050601050601 0607020809040A0B060A0C090003020A0E0D1D1F1C26282322211D14140C0C09020B0800030000 15120908070214150F20201E0001000001001C201F0B0D0C0C0C0C0B0B0B070707040404020202 0303030404040D0D0D1010100C0C0C0606060E0E0E2020202323231B1B1B0F0F0F0909091B1B19 4242403E3F3A2728221D1E1805060004050014150D3637314D4E494B4B494B4B49545454595959 4E4E4C4E4F4A4F504B494A4531322D141510060702060702010200040500090A050B0C070C0D08 10110C1718131B1D181A201C151B1710100E0C08070903030C03040E0906100C0910130C030801 181F172F362E23291F1D1E1628251E292621100F0D0A0A0A050505040404060606070707060606 0303033127262D23212419131D10072115092F2617383526393A2C262C20242F211E2C1D273422 303A22252B0F2A2E0D4D4E2C3435153D40214245283C4025383C253B3E293C3F2E383A2C35372A 38382E2B281F312D244E453E4A41384439335D504873675B90867AB1ADA2C2C2B8BCC2B8B1B9AE AFB5ABB3B7A9B5B4A2A39E8BACA592B3AC99B0AA9A9F9B8F8A878092938D92948F929791868B85 7E837D7A7F79666B655A5F59686D67797E787479736F746E70756F767B757B807A7B807A787D76 757B6F73796B7B8175878D7F989B909FA395989A8F94968994948A9292868E8B82979388AAA39B A9A2989F9890A19A90A3998FA89E92958B7FB1A99CBFB7AAAAA496857F71A09D8EB4B1A2B3B1A2 B1B2A2B0B1A1AFB2A1AFB2A1AEB1A0AEB1A0B1B4A1AFB29DADB09BABAE99ABAE99ACAF9AAEB19C B0B39EB5B8A3B4B7A2B2B5A0B2B5A0B4B7A2B9BCA7BFC2ADC2C5B2C0C2B4C2C4B7BABCAFB0B2A5 B1B3A6BABCAFBABCAFB2B4A7BEC0B3B7B9ACB8BAADB8BAAD9D9F927476696365586A6E5F5F6654 5D6651515D49505B4A525F4D53604F4E5A4C404C3E505B4D525A4D4E544655594A5A5B4D474838 423F305553464040384B4C464F5345444837434B34424A323038212C341F33392B33392D3E3F39 36372F4A473E4C4A3D3933255751434541355250444B493C3836274748363E402B4549323B3F26 3D43294348314C543D4E574247503D4752414D5848505843474A2F4F4E305151355154394A4E37 3E432F4C524470786B6F766E484F48393F3B2B2F2E2526282C2D2F27272929292733322D2C2C24 27271F24241C1F1F171E1E162C2C243E3E365D5D553F3F372A2A222B2B232C2C2425251D27271F 3232264F4E3C5B5A464E4F3D919282B9B9ADB8B8AEA2A39B22231D1A1A181A1A18141615151716 2729283B3D3C3439352126221D1E1924252024251F1D1E181D1E162224191E2013131508444639 ACAEA1BCBEB3C7C8C08B8C861E1F191D1E1924272020251E182015161E131E261B1D2317373D31 3236284347395E5F514E4F3F666455979684615E4D989584AFAC996968542627157172603C3D2B 525341C4C5B3B3B4A2ACAD9D9FA09061625214150527281A898A7C8B8C7E2E2F210B0B00323226 BBBBB1D4D4CA8C8C825050465252466363573E3E323D3E304141353A3A2E33332796968AD3D3C9 A7A79D49493F24241C21221C2D2E282E2F294F504A3B3C342A2B2327282030312936382D2C2E23 A1A398BDBFB4898B7E797B6E4D4F423C3D2F4B45373B3424302A1A332D1D2E2B1C2A28193B392C 5153452C2E21303628282E20858D7EB5C0B2909B8D1F2B1D15221119281313220B172211283021 181C0E2425176A675686816B837E6086825DBEB991ECE9C0DCD8B28B89636F6C4D59533B2D2113 26180F3525183C2D1A9E8E77D3C2A6C1AE8EBDAB8766542C554419493A0F42350950441A52461C 41380F53481B66562365541E52410D46350152420F62521F6B5B2A71633476673C7F7248776942 564A223B2F093F330D584E2A6D644380795D7D775D4C472A807B5B4E4A276B6646585336565038 3A33232C24191E150E1B120D1E150E20170E21190C221B0B2F26172920112D25183A32253E3629 352D2031291E342C21251E14211A10282119272018221B15302923342F29221B13130B002E2619 261E111B1404272010170E001E1504645C49655D4A8276664C40321A0E021E11081B0D04140500 120800120E020B09001513041715060C0A00131102222011201E0F2C2A1B5E5C4D4E4C3D151304 0705000C0A001A18093936272E261921170B1408000E0400150900180E02170B00100600150900 120800130700120800180C001C120624180C261D0E221606160E00332E1866644D494B33767860 919179B9B4A08B84721F16070B0100150C03080500020500030D0527302B505251242424040404 2A2A2A3434340E0E0E0C0C0C1414140E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0D0D0D0C0D0F 0F1014070A0F0B0E13111419090D1004080B1F23244549482F3332050A060207011B201A0B1009 3A3F38777C7530352E21221D3F403B1C1D1808090425262132332E22231E070803080904080904 070803070803080904090A050B0C070C0E0B010504080C0B181A17232520201F1B111109080500 0602002D29203D3A311F1E19393A345C5C5A2325220001001216172123222020201B1B1B121212 0808080101010000000000000C0C0C1010100C0C0C0707071313132929292F2F2F262626121315 090B0A0D0F0C383A373D3F3A2427201E211A070A0313160F2D30295557526567625B5D5A565855 56585750525142424040413C41423D3E3F3A2C2D2813140F070803090A050405000708030A0B06 0A0B06090A050B0C0710110C141611111A150D16110C0E0B0908060D04050E05060F0A07110D0A 14150F050A03252C24474E463B413735362E423F38413E391615130F0F0F070707040404050505 0707070707070606062B222532292A342A282C231E271E152A24182D2B1F2C2E212F3529303B2D 2E3B2A394634404A322730132025053C401F282B0C3D402351553A484C312D321B282D17313622 3337263032243535292A281C332F244E4A3F4640343930274E463B6A6257878175A6A39AAFAFA7 A0A39A8B918782887E84887A8F90807B7867847F6C8F8979908D7E86847877776F87888280827D 8388847A7F7B757A76787D79686D695E635F6F7470606561595E5A515652515652555A56585D59 565B5752575153594F5E64566063585155475D605572766872746973756861615778786C858279 7F7D717D7970868277A39F96C7C3B8C7C1B5C9C3B7A29A8FA49E929C968A827C70615D518E8A7E 97958898968997988A98998B989A8C9A9C8E9B9D8F9B9D8FA9AC9BA6A996A2A5949DA08D9A9D8C 9A9D8A9A9D8C9B9E8B989B8A989B88989B8A999C899C9F8EA1A491A6A998A9AC9BABAD9FADAFA2 A6A89B999B8E9A9C8FA5A79AA5A79A9B9D90A2A4979FA194A8AA9DB0B2A5999B8E6F71645D5F52 646658484D39535B465A624D60695459624F4D5643545D4C57604F565E4F454C3C4A4E3D4C4F3E 4344325352405E5D4B4C4A3B3C3C324748404A4E40454938414632424A334B503A4B533E494D3E 2B2E23484A3F42443936362A49473A423F304542333B392C4F50425452455253435D5E4C4B4D38 5A5E475A5E47555A435C614A676F58666E5959624F5C655467705F686F5D686A52606044575A3F 575B424E513C3E432F585F4F90968A7B81775459524247402F342E2729242F312C2B2B292C2D28 2F2F2729291F26261C2222181C1C121D1D1330302647473D7070664C4C422F2F252B2B212B2B21 26261C29291F3535295F60506B6C5A5F60509E9F91BFBFB3B8B8AE9FA0981E1F191D1E181A1B16 141611181A15292B28383A353335302527222526202F302A31322A292A222728202B2D22242619 17190C3C3E31A5A79AB6B8ADBEBFB780817914150D18191323261D1D23191C22161E24181F2519 0F150724281A25291B434537585A4C474838616252949381555442878674A2A18F6362502B2A18 7374623C3D2B515240C2C3B1B2B3A1ACAD9DA0A1916162521516062A2B1D8F9082909183303123 0B0C00323226AEAEA2D2D2C693938753534750504466675953544661625468695B58594B414234 959589CDCDC1A3A39749493D27271D1D1E1633342C3839316061595C5D554C4E4344453D525449 3F4136181A0F808277A9ABA074766957594C383A2D3D3E304E4B3C3D37272F2C1B2F2C1B2B291A 2A28193E3F315A5C4E37392B3E42332C3224808678B4BCAD959D8E212C1C131E0D1D2915121E08 18210E2D34241C1E113031237D7A6989846E958F7579745456522F837F5AC6C3A09592717A7659 736C523C2B19372211452E1C4A341DA89074D5BE9EBEA680BAA379B29C6DA791608E7A477B6734 8675417F6E3A6656227E6D37AC995FB09C61A59057A18D52B39E65B49F66937E45745F263D2800 68541F8E7A478A7846786634796938948453AB9D7090845E9B8E6B655933998B646A5C357B6F47 5F52305F54386458424C3F2F382A1F34261D38271D34241532210F34230F2F1E0A2C1B07332411 4033204134233429172E22123226183A3122393021463A2C43372936281B3A2C1F342717150800 2718034839224B3C2544351E50412A38291232220B73634C55452E74644D44331F1A0900271501 2A18042917032B1C092B200C251D08342C1938301B241C09221A0528200D1F1702716956BBB39E 99917E322A151109001F17023F37247467548B76656F5546472D1E2D16062914012F1A07321D0A 311C072E18032C16002D1400301800361E063E28104934194E3A1F3926082717003C2F0D6C623F 59512D8E8866B5AF8FE8DFC2C5BBA2403521150900170F020D0900060700060B04282D27575652 2925220706023736344242401313130F1110191B1A1416151315141212120F0F0D0E0D0B0B0A06 0B07040807050A0B0D03070A090D10111518090D10070B0C292D2E565A593C403F0A0F0B030804 2126201217113C413B777C763439331D1F1A3D3E391C1C1A090A052F2F2D45464130302E0A0B06 0A0A08090A050808060809040909070B0C070D0D0B0D0F0C090D0C030708030504070705060702 010000030000050200615E595F5C57201F1B3738336C6C6A303231000304171B1C1C1E1D1C1C1C 1717170F0F0F0606060101010101010303030D0D0D0F0F0F070707000000040404151515181818 0C0C0C161817080A090103002B2D2A3537321E201B1D1F1A0A0D061C1E192F312C4345403A3C37 1F211E1416131315140A0C0B0808060606040A0A0810100E0D0D0B030301010100060604090907 0B0B090C0C0A0A0A080707050606040A0A080D0F0C090F0B080F08090B080A09050D07070F0A07 120D0A11100C11120C040700282D264E534C42453C38393144413A423F3A1B1A18131112080808 0303030404040707070808080709082C2B293B3A38403C39312E2924211A23231B24241A1E2015 2F32272F32272B31232A31212B2F1E2A2F1B2B2E192B2F182427123235203E412C3C3F2A313421 2A2D1A2F3221373A293538272E302234352738392B2526181E1F0F5654479E9C8F9E9C908F8F85 83837B83847C8B8C848D908785887F7B7D72484A3F47473B44443842423643433947473D4A4B43 4D4E484547444145443E42413A3E3D363A393236352F33322D31302E32312B2F2E292D2C2A2E2D 2D31302E32312C302F292E2A2D30292B2E232B2C242C2E2331322A383A2F3F403843453A3A3B33 595B507878707B7B717070687B7B71A4A49CCBCBC1C6C6BCBBBBB1ADAAA19B9B919191878C8C82 8C8C828D8D8393938993938992948994968B97998E9B9D929FA196A1A3989C9E939C9E919C9E93 9B9D909B9D929A9C8F9A9C919A9C8F9D9F949D9F929C9E939B9D90999B90989A8D97998E97998C 9B9D909D9F929EA0939C9E91999B8E97998C97998C999B8E96988B9EA09396988B86887B8B8D80 A0A295A2A4979395876B6C5A8587728486716B6E597275608F927D898C776669547578657A7C67 787A6572745F77766283826E8988748685716263556A6C5E7173657174636A6D5C656A56686B58 6B6F5E5D604F64665867695B626456585A4C5556465B5C4C646555595A4A6265546F7060757867 7477667073606C6F5C6A6D5A6669568083708D927E8387767F8372888C7B858978777B6A707362 7576646568576467566B6D5F56584A55594B8185775D6055575A4F494C413B3E3337392E37392E 31322A27291E3133282F31242F31242C2E211F21141A1C0F33352853554866685B4A4C3F333528 3032253133262C2E212B2D203234276567595F61535A5C4E95978ABDBFB2BFC1B497998E1B1D12 13150A15170C1A1C112022172728202D2F2432342934362B2A2C212A2C212A2C212A2C212A2C21 2A2C1F2A2C1F2A2C1F484A3DA9AB9EC9CBBEC9CBC08B8D8235372C34362B3F41342B2F212D3122 2F3324333728373B2C3C3E303E4032404332484B3A484B3A545746525343555646818272939484 6B6C5C4E4C3D5250414F4D3E7B796ACBC9BAD9D7C8ACAA9B9290816563544A4839494738615F50 5F5D4E434132424031595A4CC1C2B4C9CBBD9092844A4C3E454739525544515443575A49616453 5255444F5241858779BBBDAF9193854244362A2C1E2325182D2F243C3E334B4D4255574C585A4D 56584D5456493234272C2E216264578B8D80686A5D484A3D484A3D3F41335657472829192A2B1B 3536263A3B2B3B3C2C484B3A8184736D705F424534303425767A6BBABEAF8A8E7F313526171B0C 171A09181B0A2123152D2E202E2F213331244B493A69665563604F1F1C095D5B469896817E7C67 7B786584816E827A6788725B90725A7153395A3C20684B2B9E825DC7AA80AF9364B69A68AB905B 957C438A7236967E3EA38C49937C39745E227B67356B5629826C3D9D8756A98F5E967C49765824 7456205638026A4C1682642E9277429B804B937946755E2A58410F634C1A8A703F8B6F3D937543 6C4E1C8A6E3E6F5429543C18735B3F4C361F36200B4A311D694D3873533C68442A5C371A331200 442705553B1A573E20493417402C134331194C3C255A4A3354422A58442B634E33644A2F54391B 4C2F0F4D310C4B32097C64389C835A8D744C775D387B613E866B4D876C4E795E408065475A401F 452B08442B0351380F695125553E15614A2B543F243A240C3D280D543E264631163D270F5B462B BAA48CC5B095B9A38B7B664B1D07002E1900937D65AA8C74C69986A774617D4E3A6E442C6D482D 6441236A472785613D5D35115E340C683D1371451863380B542C006A4511916D398D6E3782652D 90733B9D844CA08953B6A06EC9B485C2AF84CFBD97706140160800180D000700000801001E1913 342F2952494042393019120A19160F1D1C181416131A1E1D080C0D0C101125292840423F23221E 18150E2019110C0300110D040A0C091218181E24241F2525161C1C0F15131319171A201E161C1A 191F1D191F1D151B171218141A201C2A302C393E3A1F211E2424222828282B2B292A2A2A21211F 1616160E0E0C14141410100E0E0E0E11110F1818181B1B191818181313131011130C0D0F09090B 0808080A0A0A0B0B0B0A08090706043D3B3C2A28291717171717173232325151534445471A1B1D 28282A2323251A1A1C10101208080A0303050101030000020A0A0C0F0F110F0F1109090B050507 0707090C0C0E0D0D0D0707071313111919171515131717151C1C1A13131104050011110F353533 49494744444221211F0C0C0A1313110404040202020505050808080B0B0B0C0C0C0A0A0A080808 0606060B0B0B0808080505050303030404040707070C0C0C0F0F0F080A05080B04050601010200 0504000B0A050A09040304000E0F090708021C1F184C4F4852534D46474152514C4847431B1716 0804050705060404040808080D0F0E040605080C0B2A2A283737353D3E3937383334352F3B3C36 3E3F373B3C3422241924261B27291C292B1E2B2D1F2B2D1F2A2D1C292C1B262918333625404332 4346353C3F2E373A29393C2B3F42315255444C4F3E4C4F3E4B4E3D3D402F3639284F5241727466 9FA1969091897F80787B7C7484857D8E8F8791928A90918963645C64655D64655D64655D62635B 5F60585C5D55595C555557565357585256575155565054554F53544E52534E5253464A4B45494A 44484945494A464A4B474B4C464A4B44484748494346473F44453D44453D46473F4B4C44505149 53544C63645C6A6B6372736B73746C73746C7A7B7387888093948C9091898D8E8686877F7E7F77 7879717879717C7D758081797E7F777E7F777C7D757A7B7378797176776F74756D73746C6F7068 6F70686F70686F70686F706870716970716970716967686067686066675F66675F65665E65665E 65665E64665B696B606B6D606B6D60696B5E6365585D5F52595B4E57594C5C5E516062555B5D50 5A5C4F7375689496899A9C8F8A8C7E71705C88877288877273725D78776292917C8D8C776E6D58 71705B74735E73725D706F5A7776618786718E8D78898B766D6E5C6B6E5D6C6F5E717463787B6A 7B7E6D7A7D6C777A69626554686B5A6D705F696C5B626554606352676A596F7261636655686B5A 7073627477667376656F72616B6E5D686B5A6366557C7F6E8A8D7C8386758285748E91808F9281 8487767A7C6F797B6E67695C5F6154606255494B3E47493C6D6F6247493C4446394143363F4134 393B2E33352835372A3C3E313C3E313C3E3141433645473A3D3F3237392C434538585A4D585A4D 44463937392C3B3D3042443741433642443746483B53554854564955574A898B7EA8AA9DB0B2A5 A6A89B5153463F413440423543453846483B4A4C3F4E5043505245525447585A4D585A4D585A4D 585A4D585A4D585A4D585A4D585A4D6F7164A2A497A0A295A6A89B919386616356646659616355 6365576366556366556366556366556366556366556366555A5D4C5659485D604F595C4B565948 7477667E81705A5D4C5F5D4E6866576462537D7B6CB1AFA0B4B2A39290818684755250413E3C2D 3C3A2B4F4D3E4D4B3C373526363425474838B3B4A4B5B8A77E81703E4130343726373A29323524 383B2A3C3F2E3E41304C4F3E848776B8BBAA9497864D503F34372632342736382B3E403345473A 4A4C3F4B4D404A4C3F484A3D2A2C1F3234276F71649B9D90737568414336414336505244686A5C 3D402F3336253033223437263B3E2D4346356A6D5C5356454043323437266164539699887A7D6C 3C3F2E2A2D1C4846394543364442354240333735282F2D203C3A2D5250433D3B2E403E31838174 7E7C6F5351447876698A887B655C4B6B55407759415C3E24402206432606735732A3875F997E51 7B60317A602D70571F664E126E56167E67247C65216A561942310635250148340F4F39104A3309 4B30035539097C5E2C8F6F3E9375419476428D723D866A38765C29553E0C372000684D188D6F39 91723B98774176521E9A784898794D967A55674E30371F051B050041261182624DA27E649A6E53 8459397F5B378F6F499D7F5B9177566F58394835172E1D032515002616002615003D290E6A5334 8E74539B7D5998785296764D9478489D83509378496B5023462A02422601593C1A6F5232694C2C 886B49866A457E623A755A2D755B2A866C39785D30886E4D6C5239391F06240A00331900391F06 52381F886E5592785FA68C739E846B6F553C371D0452381F997F6698765DAB786599604D6F3B25 52240A50270B512D0B57340E67401783582D8253278956278F5D2A8657237D5019865E239D7739 8B67297B591A8464279B7D3FA6894FB49B63BEA773B49F70E3D2A7A39371382A0F2217031F1607 231A11261F193D342F382E2431271B1C140927231A2A29241B1D1A1D2120111717070D0D212524 3537342B2A2527231A2820151C12061E180C040500111715101614080E0C1E2422404644383E3C 141A180C12100B110F0C12100E1412121816141A18151B191519181315141818181717170F0F0F 0606060606061111111C1C1C1414141010100C0C0C0F0F0F1616161C1C1C1C1C1C1A1A1A0E0E10 0A0A0C06060806060809090B0B0B0D09090B0707091111131E1E2021212318181A19191B28282A 2D2D2F2626282F2F312A2A2C2222241717190D0D0F0707090606080707090606080F0F11131315 1717192727293333352323250505050D0D0B1515131515130E0E0C0F0F0D1717151616140D0D0B 1414123939374B4B494545432222200A0A080F0F0D0303010B0B0B0B0B0D0B0B0D0B0B0D0B0B0D 0B0B0D0A0A0C0A0A0C0E0E100C0C0E09090B07070908080A0B0B0D0F0F11121212161712161711 13140E0F100A0D0E080E0F0910110B11120C11120C0607011718124C4D475758524A4B4551524C 4847422A2623110C090F0B0A06050100000003050000010000020011110F1313111516111E1F1A 33342E45464044453D393A32292B202D2F243436293A3C2F3D3F313F41333E41303D402F36382A 43453754564861635566685A6A6C5E6F71637375676A6C5E67695B696B5D70726477796B7D7F71 83857787897C6E70655E5F57494A423C3D353B3C3440413945463E47484054554D595A525F6058 63645C62635B5C5D5555564E4F524B3F413E3C403F3C403F3B3F3E3A3E3D393D3C393D3C393D3C 31353432363533373632363531353431353432363533383432332D3031292E2F272C2D252D2E26 2F302833342C35362E26271F25261E2728203031293D3E364748404B4C444B4C4453544C56574F 595A525A5B53595A525A5B535E5F5762635B64655D64655D63645C6061595C5D5556574F51524A 4E4F47585951585951595A525A5B535C5D555D5E565E5F575E5F57595A52595A52595A525A5B53 5A5B535B5C545B5C545B5D525E60555E60535D5F525C5E515B5D50595B4E585A4D57594C56584B 56584B525447595B4E7A7C6F9C9E91A0A2958F91836D6C587E7D687E7D686E6D5872715C868570 83826D6C6B566968536C6B566B6A556C6B567978638B8A7591907B8B8D787879676B6E5D626554 686B5A777A697E8170787B6A6E7160595C4B5F62516366556164535D604F5D604F6467566B6E5D 666958666958676A59686B5A686B5A6669586265545F6251666958797C6B8285747A7D6C797C6B 848776878A797F82717375687274676365585E605362645755574A585A4D7A7C6F7B7D707C7E71 8486798B8D80848679797B6E7E80738D8F82898B7E888A7D8D8F82939588919386888A7D87897C 8C8E818A8C7F7F81747B7D708486798E90838F91848E90839092859092858E9083898B7EA4A699 A4A6999FA194A8AA9D7E8073909285909285919386919386929487939588939588949689888A7D 888A7D888A7D888A7D888A7D888A7D888A7D888A7D8082758D8F827476697C7E7184867975776A 7C7E7171736576786A7679687578677376657275647174637073626F7261808372787B6A7D806F 7C7F6E7578678386758689786C6F5E7876678583748381728886779D9B8C9997888785768A8879 7E7C6D737162716F607B796A7A78696D6B5C6C6A5B7576669FA090A3A6958184735C5F4E595C4B 585B4A525544595C4B6164536B6E5D797C6B9EA190C1C4B3A8AB9A76796864675645473A444639 434538424437414336404235404235404235444639494B3E6E70639294877B7D704A4C3F494B3E 6C6E607173654F52413E4130373A293C3F2E4144333C3F2E474A39313423404332494C3B626554 838675747766494C3B373A29302E212F2D20312F223230232D2B1E2C2A1D39372A4A483B424033 4E4C3F8B897C8886795A584B6B695C757366544D3D483727614C395C47324D392149351A6A5739 9582618D7B55402E0647360A443403382800372800433400493A004437034339154A41226C5F3F 7061405A4A2846320D402A015A451A452E02452E02422B00412C004833084C390E3F2E032D1C00 3520005A44136B5422775D2C4B2F00573C11503611533C1C53422833220E1D0C00271403452B1A 54382356321C4F2B114427095037185C45265542243F2F15281C041E13001C11002B200C1B1000 1A0E0037270D59462868513261482958401C756035715C2F644E254A340F2C1500230C003B2307 59412741290F674F3370593A624B2B49330E432D0458431859461E5A462B4A38222B19031B0900 200E001D0B002F1D075C4A34786650A3917B9D8B755D4B35200E00301E08685640755A47926659 8B5B4D5C33212C0900210300260B0023080020020088664188623D8A603A8C6238896237886336 8969388D6F3D8B703B614611472E00483100503A08604B1C725F3476673E968966A69B7D504831 150E00080200120D070C08051914101D130920160A1D150A28241B24231E151714171B1A151918 0C100F2226252426232A2924332F262C241920160A0E08000E0F09151B170D130F030905232925 4F55514147430F1511070D09050B07060C080D130F151B17121814040A06000200000100080806 0F0F0D0B0B090808061717153939375555531313110F0F0D0B0B090D0D0B1313111919171C1C1A 1D1D1B0B0B0B0707070404040404040808080B0B0B0A0A0A0808080F0F0F3030303A3A3A232323 0B0B0B0202020A0A0A1A1A1A2727272525251E1E1E121212060606000000000000040404121212 0404040000001414145757577D7D7D5050500808080505030B0C070C0D0807080308090410110C 1516111415101B1C1740413C51524D4C4D482C2D280E0F0A0F100B0808061010100F0F0F0D0D0D 0B0B0B0B0B0B0C0C0C0E0E0E0F0F0F1313131111110F0F0F0D0D0D0E0E0E111111141414171715 1A1B1614150F0F100A0F100A12130D13140E14150F1516101F201A0C0D071516104B4C465F605A 50514B50514B49484326211B0703000A0700060600000100090C01070A010003001D1D1B11110F 0D0E0923241F494A4460615B5A5B534849416A6C616D6F64727467787A6D7C7E707D7F717E8170 7D806F858779898B7D8D8F818F91838D8F81898B7D8486788284767F81737A7C6E7B7D6F858779 9092849193858E90828B8D809A9C918E8F877A7B7366675F5758504C4D4546473F44453D373830 3A3B333E3F374041393E3F373839313031292A2D264143403E42413B3F3E383C3B353938323635 2F33322E3231363A39393D3C3C403F3A3E3D373B3A363A39383C3B3B403C46474145463E44453D 44453D44453D474840494A424B4C445A5B5360615965665E64655D61625A61625A6869616F7068 70716971726A73746C74756D73746C6F70686A6B6366675F75766E76776F76776F76776F75766E 73746C72736B70716973746C74756D75766E777870797A727B7C747D7E767D7E767E7F777E7F77 7F807880817982837B83847C84857D84867B85877C82847780827581837687897C8D8F82919386 9294879092859294878E90838F91849EA093AEB0A3ABADA09D9F9182816D8C8B768D8C7784836E 85846F91907B908F7A85846F7978637B7A657C7B667F7E698D8C779D9C879F9E8996988390917F 8184737477667376657A7D6C7D806F7578676C6F5E6F7261727564757867737665707362707362 7578677A7D6C8285747E81707B7E6D7B7E6D7D806F7E81707C7F6E797C6B8487768F9281909382 8689788083728487768588777F82717F8174797B6E66685B5A5C4F55574A47493C47493C5E6053 9A9C8F9C9E919EA0939FA1949D9F929C9E919EA093A1A3969C9E91989A8D97998C9A9C8F9C9E91 9A9C8F96988B94968997998C92948791938696988B9C9E919D9F929A9C8F989A8DA2A4979EA093 9A9C8FA9AB9EA0A29595978AA4A699989A8D949689949689949689949689949689949689949689 9496899C9E919C9E919C9E919C9E919C9E919C9E919C9E919C9E91A2A497AAAC9F9B9D90A1A396 A3A598999B8EA1A3969A9C8E999B8D999C8B9A9D8C9A9D8C9A9D8C9B9E8D9B9E8D9B9E8D9B9E8D 939685989B8A9EA1909A9D8C9EA1909EA1909093828F8D7E9A9889999788989687A09E8F9C9A8B 9694859E9C8DA09E8F9E9C8D9D9B8C9E9C8D9D9B8C9A9889999788999A8A9596869C9F8E969988 919483999C8B989B8A939685999C8B9598879A9D8C979A899DA08FABAE9DA2A5948F92818B8E7D 8F91848C8E81888A7D8486798183767F81747F8174808275797B6E727467737568888A7D8E9083 6A6C5F535548636557616355494C3B4245345053426063525E61505053424B4E3D444736595C4B 6568577477668689787E81706366555558473D3B2E3D3B2E3D3B2E3B392C383629383629413F32 4A483B5A584B3F3D3056544769675A504E4149473A4C4A3D3C392A443B2C594C3C544737463928 382B184438225C50364E4327463B1B4E44214F461F4A41184D45175A522461592A5E572D2B270A 25230C3A341C3F381E3930133025072619003527046F613C685A355B4D2850441E534623564C28 4B411D3A300C23170042350B604F2479663C5B451C58441F4B381848381E372C183128172A2014 23170B200E02250F01381D0A472D162913002D1C0033230A2D2109231B061F1806241E0E292617 343122241E0E1811001F170233270F3E2E1439280E301F01291B003123003829083728092E1E04 2B1B043928144C3B272F1E0A4A392551412A3A2A101D0E001809002B1D00372A08201400241808 2115052115052216061105000D01001F1303584C3C887C6C877B6B493D2D1004000C0000312515 503E307E5E537E59505A3D2F381E0F32200C3A2A1337260C311D022B1100331800371800321300 301300351B003921003822004832092C19002714003B2A0046370E41330C3B2E0B3A2F0F534C2F 8680664F4A36110E000D0A0146454063625E66635E776F647A7064665E53423E35201F1A0F100B 0C0E0B060A0941454453555231322D272621312D24342C21372D2119130713140E0E14100A100C 0A100C111713171D190F15110208040A100C0A100C0C120E111713141A16111713060C08000300 0103000A0A0810100E0C0C0A0606040D0D0B21211F33333110100E0E0E0C0C0C0A0C0C0A0E0E0C 1212101414121616140808080505050202020303030808080B0B0B0B0B0B0A0A0A060606212121 2A2A2A1E1E1E1212120808080B0B0B1C1C1C1E1E1E1F1F1F1C1C1C131313070707030303080808 0F0F0F0A0A0A0C0C0C0A0A0A1111112929293B3B3B2727270404020001000607020A0B06080904 0506010607020B0C070E0F0A0E0F0A3738334849444B4C4734353013140F11120D10110C0D0D0B 0C0C0C0A0A0A0A0A0A0B0B0B0E0E0E101010121212151515141414131313131313131313161616 1818181A1A1820211C17181213140E1718121F201A21221C20211B1E1F1927282213140E14150F 4A4B456869635C5D575D5E585A5A52312D22140E02161206100E010405000F11030E1002020600 1616140E0E0C10110C2425203E3F394D4E484B4C4445463E585A4F595B505B5D505D5F525E6052 60625461645362655461635562645766685B6D6F62737568787A6D7A7C6F7A7C6F939588898B7E 86887B87897C797B6E5E60534D4F424C4E414F514652534B56574F5C5D5565665E6F7068797A72 80817982837B8081797B7C7474756D6D6E6666675F61625A5D60595E605D5B5F5E595D5C565A59 5357565155544F53524E5251424645444847474B4A454948424645414544434746464B473B3C36 3C3D353D3E363E3F3741423A43443C46473F4748403B3C3445463E4B4C4444453D38393135362E 3F40384B4C4436372F3D3E364D4E4666675F81827A92938B9899919899918F90888F90888F9088 8F908891928A93948C95968E96978F94958D95968E96978F9899919A9B939C9D959E9F979E9F97 999A92999A929A9B939B9C949C9D959E9F979E9F979FA1969FA1969C9E919B9D909D9F92A1A396 A1A3969C9E9196988B8C8E8194968996988B8E908386887B8385787E8073797B6D82816F858470 85847084836F84836F86857188877388877382816D85847084836F868571908F7B9B9A86999884 8B8D789192808A8D7C8285747C7F6E787B6A757867737665717463666958676A59666958646756 6164536063526265546467566E71606A6D5C6669586669586A6D5C6E71606E71606D705F6C6F5E 7073626F72616568575F62515F62515F62515C5F4E5B5D5057594C5052454F514454564956584B 60625570726581837681837676786B6C6E617C7E719A9C8FA3A598989A8DA3A5989FA194999B8E 96988B9A9C8FA0A295A3A598A2A4979B9D909B9D909A9C8F999B8E9C9E919FA1949EA0939B9D90 9D9F9297998C95978AA5A79AA3A59897998C9EA0939D9F92989A8D999B8E999B8E9A9C8F9B9D90 9C9E919C9E919D9F929EA0939EA0939EA0939EA0939EA0939EA0939EA0939EA09397998CA0A295 A3A598A7A99C9C9E91929487999B8E96988A9C9E909C9F8E9DA08F9DA08F9DA08F9DA08F9DA08F 9DA08F9EA190999C8B9DA08FA4A796A3A695A2A594A1A4939C9F8E9F9D8EA19F909F9D8EA09E8F A7A596A7A596A2A091A3A1929C9A8B9F9D8E9F9D8E9B998A9A98899D9B8C9D9B8C9798889B9C8C 9DA08F9EA190A3A695A9AC9BA5A897A2A594A7AA999EA190A1A4939B9E8D959887989B8A9B9E8D 9B9E8D9EA1909FA1949D9F929C9E919A9C8F989A8D97998C97998C97998C97998C999B8E8F9184 95978AA6A89B8B8D805C5E514E50425E60524C4F3E4F52417679689194838A8D7C8184737E8170 878A798386757E81708487768F92818F9281878A798588777B796C7C7A6D7A786B757366727063 7472657775687876697B796C6260535250434B493C444235535144605E514A483B36322739352A 2E2A1F2D291D322F204A47366865525E5C4734321B3230172B2A0E2625072A290A2F2F0D272705 191A00282B16171B0A1B1C0A1A1C0721200B2927102420072E280E3934173631142F2A0C2B2809 332F123A391B343315262507201D00272202362E0A4D401E4031104235153A2E14352D18262312 211F1318181017140B231A1137291E4634264C3B292A1D0A312610352D1A322D1A2724151A1A0E 12140910120711130814160B1B1B0F252213312C1939311C3A2F1B342A114942264A4528423C22 302A121F18051912001A13031B1306251D10362F1F463F2D3C35222C260E2822082A2508302A10 302A1A292519201C101D190D1D190D1915091B170B2622161814082A261A2E2A1E1F1B0F1A160A 171307151105271D1346322B452C27301E1424160B27201026210E1E19061E1704221502362511 3F2A17341F0A2C1A0435270D40341A453A1E2E23052A1F00362B0D5148295C5334453E212F2A0D 2C280D847F6975735E312F200F0F0317181072736DB5B6B1BEBDB8C0B8ADBEB4A8968E8347433A 16130C12130E1214110B0D0A4B4D4A939592ABACA7B3B0A9AAA69D8B8378645A4E251F13171810 0F140E121711161B150B100A000200000200090E080A0F090E130D1116100F140E0A0F09090E08 0D120C1217110A0C070C0D080C0D080A0B060809040506010304000203000C0D080D0E090D0E09 0C0D080A0B060A0B060A0B060B0B090909090606060303030404040909090C0C0C0C0C0C0B0B0B 0303030E0E0E1616161717171212120A0A0A0C0C0C1818182222222323232020201616160A0A0A 0303030606060C0C0C0909090C0C0C0E0E0E0C0C0C0707070505050505050707050B0C070E0F09 10110B0C0D070506000304000D0E08191A140F100A36373143443E494A44393A3413140E0A0B05 0C0D080505030606060707070909090B0B0B0E0E0E111111131313151515151515151515151515 1616161717171818181919171D1E192728222F302A2C2D2724251F20211B22231D2627211B1C16 0F100A0D0E083C3D375E5F595859535B5C565E5E54383224201B08231E0B19160313120020220D 1E210C1B1E094444424949475455505E5F5A5F605A5D5E5866675F73746C7A7C71797B70797B6E 797B6E797B6D7A7C6E7B7E6D7C7E707E80737C7E71797B6E787A6D77796C77796C76786B747669 8D8F828B8D809092859193867B7D70585A4D46483B484A3F3C3D353A3B3337383033342C33342C 35362E3A3B333F403844453D3F40383738302F30282A2B23282921292A22292C25262825242925 252928252A26262A29262B27272B2A272C28323635343935353938343935333736323733333736 343935383933393A323C3D353E3F3741423A43443C45463E46473F494A424D4E4651524A53544C 55564E5A5B5362635B6869616F706870716976776F82837B90918997989095968E91928A989991 97989095968E94958D94958D96978F9899919A9B939B9C949C9D959C9D959E9F979FA098A0A199 A1A29AA2A39B9D9E969D9E969D9E969E9F979E9F979FA0989FA0989FA196A0A2979FA194A0A295 A2A4979FA194909285797B6E67695C6C6E6176786B7D7F7276786B686A5D5E60535E6053626456 6D6C5A6968546A69576F6E5A6D6C5A6766526B6A587675615E5D4B605F4B5E5D4B5A59455E5D4B 65645061604E555644575848585B4A585B4A5558475053424E51405053425457465F62515D604F 5A5D4C585B4A565948555847565948565948575A49555847535645535645555847585B4A5A5D4C 5A5D4C575A49595C4B5B5E4D595C4B585B4A585B4A595C4B5A5D4C5B5D5055574A4F51444A4C3F 47493C484A3D4C4E414F514447493C494B3E3B3D3032342755574A8E9083A5A79A989A8D9D9F92 A2A497A0A29597998C9496899A9C8F9EA0939D9F9292948797998C97998C93958895978A9EA093 A0A2959D9F92ABADA0A3A598A2A497ADAFA2AFB1A4A3A5989C9E919EA093999B8E9A9C8F9B9D90 9D9F929EA093A0A295A1A396A1A3969FA1949FA1949FA1949FA1949FA1949FA1949FA1949FA194 9C9E919A9C8FA1A396A5A79A9D9F929D9F92A2A4979B9D8FA6A89AA5A897A3A695A1A4939EA190 9B9E8D9A9D8C999C8BA0A3929FA2919FA291A1A493A0A3929DA08F9A9D8C9B9E8DA5A3949F9D8E 9C9A8B9F9D8EA4A293A5A394A09E8F999788A09E8FA5A394A5A394A09E8FA09E8FA4A293A4A293 9E9F8FA5A6969FA2919B9E8D999C8B969988959887989B8A9A9D8C9A9D8C9EA190A1A493A2A594 A1A493A1A493A0A3929C9F8E9D9F929EA0939FA1949FA1949FA1949FA1949EA0939EA093989A8D A7A99CA0A2959A9C8FA5A79A9A9C8F7D7F72737567848678777A69737665989B8AABAE9D9FA291 A1A493A3A695ABAE9D9DA08F9699889DA08FA3A695A1A4939DA08F9A9D8C95938699978A989689 9492859795889F9D90A09E919B998C9D9B8E9B998C8C8A7D878578828073868477939184848478 87877F7F80786E6F696E6F676D6F647375688082756E7062828476797C6B6D705D686B566B6E59 696D56595D46454A36565C4E50584B5B6153585C4D54584754574645463447493452513D51503B 4749333E402A3B3F283A3E272D321B1E220B32341C2A2A0E2C280B352E112F26092E2409231D05 1512001E1E121619100B0D080506010F0C051E170D24170E1D11031710001B16031F1C0B1F1D10 17190C0F1209070C05030801070C0510150E15180F1012050F0D00141100181300161100161400 1615001411000D0C00100D001816091F1B101F1C130A06000A08001A160A151304131000141300 0C0A00100F001515090D0F04080800060800080800090B000B0B01090B001D1D13101207101006 0F11061E1E142022171111071D1910281B1522130E160B051713081C1C100F1305020400060700 1511052A221534281C281C101F1607272010312E1B383522332E182C26101F1A04201B0525230C 1C1A031A18032928138685715253411314060C0E0100010032352E7C7D77A2A29AA19B8F9C9487 77716529251A0502001615101B1C17181A152628237B7C77AAA9A4A7A49D8F8B80716B5F51493C 2A241811120A0F140D0F140E0E130C0D120C0C110A0D120C0D120B060B050A0F080C110B070C05 0005000207000D120C1B1E170D0E09090A040809040E0F091718131A1B151415100D0E08090A05 0C0D070E0F0A0D0E08090A050708020809040A0B060D0D0B0909070606060707050A0A0A0D0D0B 0D0D0D0B0B091010100F0F0D2020202727251111110707051616162222204B4B4B4848463E3E3E 2D2D2B1818180707050000000000001010100404020000000A0A081313131212100E0E0E0D0D0B 0F100A0E0F090E0F090D0E08090A040F100A28292343443E3F403A5D5E585A5B55585953484943 1718120304000708020707050707050808080909070B0B0B0D0D0B0F0F0F10100E111111121210 12121213131114141415151315151515151322231E47484261625C52534D3536302B2C2632332D 3B3C3634352F38393334352F51524C6A6B6561625C63645E67675D4C4636413A2737301D211C08 1D1B0628271223250F2C30197474727575737D7E798485807D7E7873746E78797186877F75776C 76786D787A6D797B6E7A7C6E7A7C6E7A7D6C797B6D72746773756A77796E7B7D7280827784867B 87897E898B807B7D7284867B8D8F848F9186898B808082777A7C71787A6F8081797D7E76797A72 74756D7071696E6F676E6F676F706867686064655D61625A5F605860615964655D696A626B6E67 757772737872747975757A74757A76767B75777C78777C76828783818680808581818680828783 83888282878380857F84857F85867E86877F888981898A82898A82898A82898A828F90888C8D85 8A8B838C8D858F908891928A8E8F878B8C848C8D858F908892938B94958D95968E95968E95968E 95968E9E9F979E9F979E9F979E9F979E9F979FA0989FA098A0A1999A9B939B9C949B9C949B9C94 9B9C949C9D959C9D959C9D959FA0989FA0989E9F979E9F979D9E969D9E969C9D959C9E93989A8F 989A8D9B9D90A0A2959EA0938F918475776A6062554F51445153465355484F514447493C404235 41433646483A403E2F36352338362742412F3E3C2D32311F3836274B4A384D4B3C4D4C3A474536 3D3C2A3C3A2B4342304341323B3C2C363727363928393C2B3C3F2E3F4231414433414433414433 4D503F4A4D3C474A39474A39484B3A494C3B494C3B494C3B454837464938454837444736424534 414433434635444736474A39494C3B4E5140545746575A49585B4A5A5D4C5D604F434538404235 43453847493C494B3E525447595B4E55574A57594C5C5E5155574A50524567695C8F91849C9E91 9193867D7F7295978AA8AA9DA6A89BA0A295A1A396A3A598A0A2959B9D90A4A699A6A89B9FA194 9FA194A9AB9EACAEA1A8AA9D9C9E919A9C8F9D9F92A2A497A9AB9EA6A89BA0A295AAAC9FA6A89B A6A89BA6A89BA7A99CA8AA9DA8AA9DA8AA9DA9AB9E9FA1949FA1949FA1949FA1949FA1949FA194 9FA1949FA194A4A69996988B9D9F92A0A295989A8DA1A396A4A6999C9E90A0A2949FA2919EA190 9C9F8E9A9D8C989B8A979A89969988A0A392A5A897A2A5949DA08F9FA2919EA1909DA08FA2A594 A3A1929D9B8C9E9C8DA19F90A09E8FA2A091A2A0919B998AA19F90A4A293A4A293A19F90A19F90 A4A293A4A293A0A191A5A6969EA1909DA08F999C8B949786979A899DA08F9A9D8C9DA08F989B8A 9C9F8EA2A5949FA2919EA1909B9E8D939685999B8E9A9C8F9A9C8F9A9C8F9A9C8F999B8E999B8E 989A8D989A8DA2A497A0A2959A9C8F9B9D909A9C8F9A9C8FA3A597A1A395A1A493949786A4A796 A7AA999A9D8CA4A796A0A392A2A594A0A392A4A796A8AB9AA6A998A7AA99A4A796999C8BA19F92 A4A295A09E919795889896899E9C8F9A988B8E8C7F9D9B8EA7A598A3A194B6B4A7B2B0A399978A A2A093A6A69A9B9E95999E97969B95A1A69F9EA39C9BA197A3A99F93998D969C90949A8E919789 949A8C9DA395A2A89A9DA494949A8C969E93949C919EA69B969C9093998B9BA193999D8EA2A695 959988989C8B969A898F93828C93818E9583878E7C7C846F7D826C7A7E6783836B8B876C898369 898369847F697372606E706371776D6E736D63686263645E6E6B62736A616D6558615B4D5A5849 5354464D4F424A4D42464C42454A43444B443F463F454A4340463C34372C3234273B3C2E413F30 3D3B2C3A39272D2E1C2A28192C2D1F2F2D2125251B211E171F1F172C29221F1F172A271E1E1E12 1D1B0E2122121B1A082627170F11060E110816170F1A1D14191A12181B1216170F0A0D042C2D25 1C1F161F20180C0F06040500090C0304050014140C180F0A180F0A130E08191B10242A1E1B2618 11190E13190F0B0C0416130A1A130B130C040D0900100D041012070F11041210011514020B0A00 0B0A001A190719180617160424251343443246473727281A26261A1010041C1E1346463C737165 807A6C746C5F615B4F2D291E19160D26261E1D1E161E1F1910110B46473F7B7B737F7C73726E63 5A54482E26191B150716180D10130A090C050609000F120B181B1212150E0508000D10090D1007 0C0F080A0D040A0D060B0E050F120B13160D12130D0E0F070C0D070D0E0610110B1011090B0C06 0607000607010A0B030E0F090D0E060A0B050B0C0410110B16171112130E0E0F0A0A0A080A0B06 0C0C0A0E0F0A0D0D0B0B0C070A0A0801020022222035363114141211120D35353344454060605E 5B5C5750504E3F403B2A2A281819140B0B090506010303010F100B18181611120D010100000100 0000000809040B0C06090A020C0D050E0F070C0D0515160E35362E5859515C5D5571726A606159 5B5C54505149202119090A0211120C15161112130E0E0E0C0A0B060909070A0B060C0C0A0E0F0A 0C0C0A0D0E090F0F0D10110C11110F11120D11110F10110C2526205657517778726A6B65555650 53544E5556504F504A52534D6B6C666A6B657A7B758889837C7D777B7C76827F767B7366756C5B 544D3B231E0B1B18051918040D0F002527128888867979777576717F807B84857F7A7B7573746C 75766E75776C787A6F7D7F728082758284768284768083727F81737B7D707D7F747F81767F8176 7D7F747B7D72797B70787A6F76786D818378828479787A6F797B7086887D888A7F7F817685867E 878880898A828C8D858D8E868C8D85898A8286877F8D8E868D8E868C8D858D8E868F908892938B 95968E96999096999294999392979190958F8E938D8C918B8B908A8A8F89868B85848983818680 838882868B85878C86858A8482878087888087888088898188898187888085867E83847C82837B 8B8C848D8E8690918992938B91928A8F90888C8D85898A828E8F8793948C98999195968E8F9088 8D8E8692938B98999191928A94958D9798909B9C949D9E969E9F979E9F979E9F97A1A29AA0A199 A0A199A0A1999FA0989FA0989FA0989E9F97A1A29AA1A29AA0A1999FA0989D9E969C9D959B9C94 9B9D929193889092859395889C9E91A3A5989EA0938E90837E80737F817475776A6D6F626A6C5F 67695C626457606255626457626053555344575546646253605E4F504E3F5755466F6D5E6C6A5B 6B695A615F50535142504E3F5856475D5B4C585949565747515443525544595C4B636655676A59 6164535A5D4C6164535F62515D604F5E6150626554656857666958656857656857676A59686B5A 6568575F62515B5E4D5B5E4D5D604F5D604F5E61506568576E7160727564727564727564767968 6D6F62696B5E6D6F626E70636B6D60717366747669696B5E66685B6C6E616B6D606062555A5C4F 57594C4B4D403C3E3135372A6163568B8D80999B8E999B8E9C9E919D9F929A9C8F96988BA1A396 A3A598999B8E96988B9EA0939FA194989A8DA4A699A5A79AA5A79A9EA0939FA1949D9F92989A8D A8AA9DA1A396A1A396A0A295A0A2959FA1949EA0939D9F929D9F929EA0939EA0939EA0939EA093 9EA0939EA0939EA0939EA093ADAFA29D9F92A8AA9DA7A99C999B8EA1A396A5A79A9FA1939FA193 A0A392A1A493A2A594A4A796A5A897A7AA99A7AA99969988A0A3929B9E8D9497869A9D8C9EA190 A0A392A6A998A09E8F9D9B8CA3A192A7A596A19F90A5A394ADAB9CABA99A9D9B8C9E9C8D9F9D8E 9E9C8D9E9C8DA09E8FA09E8F9D9E8E9FA0909DA08FA3A695A3A6959DA08FA1A493A4A7969A9D8C ACAF9E9C9F8E999C8B9EA1909FA291A3A695A7AA99A3A695A4A699A3A598A2A497A0A2959FA194 9D9F929C9E919C9E919C9E919EA093A4A699A9AB9EA3A59897998C989A8DA2A496989A8CA9AC9B 9DA08FA0A3929B9E8D939685A1A4939497869A9D8C9FA291A3A6959A9D8C9194839EA190A9AC9B A1A493A3A194A8A699A6A4979F9D90A5A396AFADA0ACAA9D9E9C8F969487ABA99C9E9C8FA5A396 A8A6999E9C8FADAB9EADADA1A2A59CA0A59E9BA099A0A59E959B9190968CA1A79D9DA399A3A99F A3A99FA2A89E9FA59B9DA3999EA49A9DA3979CA296929A8F929A8FA1A79B9CA2969DA397A2A89A 93998B909688949B8B9BA2929CA393989F8F9AA191A2A999A2A9999CA391A2A997A1A690A8AA94 A4A289A09A80A29C84A8A38D9D9C8A9C9E919EA49A9A9F99929791999A94A3A399A29C90948E80 A8A596A5A396A0A1939D9F929C9F949A9D94959A939398918A8F8892979095988F90938895978A 9D9E909795888684759D9B8C848575807E719191859B988F8C8C828A878093938B8B8881818179 93908987877D8482768586787B796A898A7C7A7C6F73756A7173686C6E6367695E7274697F8176 7C7E736A6C6165675C77796E65675C585A4F66685D5F6156626258605951635C545A574E54574C 596154505C4E3F4B3F3943384F52494E4D484B46424944404A47424647413D403932352C3D3D31 4243353233252B2C1E393A2C3738282F2D1E3735264341327A78695C5A4B4543343E3C2D474536 4240314E4B3C5650404640304A47383B372B3A382C4141372F2F2533352A3F40383D3F34535349 565448605C505A5748302A1A2C291A4242382F322923241C24271E2B2C24272A211D1E1615180F 18191113160D11120A14170E1B1C141A1D1414150D0B0C040A0B030D0E0611120A12130B101109 0D0E060B0C040A0B03050600090A020D0E060D0E060C0D051011091A1B1323241C16171111120D 0D0E090C0D080E0F0A0F100B0D0E090A0B0616171200010021221D343530090A050607022D2E29 3536312F302B2D2E29292A2523241F1A1B1611120D090A05050601090A0510110C10110C090A05 0D0E091718131617120A0B050E0F070D0E0611120A13140C0C0D050C0D0526271F47484044453D 56574F44453D45463E494A4223241C15160E25261E22231D1D1E191415100B0C07070803070803 090A050C0D08090A050A0B060C0D080E0F0A0E0F0A0E0F0A0D0E090D0E0906070131322C4E4F49 4D4E4851524C5F605A555650393A342E2F2957585260615B6E6F697C7D7774756F7677717E7B74 746C61776E5F5047381B15051F190921200E1D1C0A4344327F7F7D7A7A78767772767772797A74 7D7E787E7F777D7E7677796E797B707A7C6F7B7D707B7D6F7A7C6E787B6A77796B7B7D72777870 73746C74756D7879717C7D757D7E767D7E7675766E76776F7879717A7B737D7E7680817982837B 83847C80817981827A81827A81827A8081797F80787C7D757B7C74797A727D7E7683847C888981 8A8B83898A8286877F82857C8A8D86898E878B90898C918A8B9089888D8684898282878080857E 81867F838881868B84898E878B90898D928B8E938C8C8D858C8D858C8D858C8D858C8D858C8D85 8C8D858C8D858E8F878F90888F908890918990918991928A91928A91928A93948C93948C94958D 95968E979890989991999A92999A92999A929899919899919798909899919A9B939C9D959D9E96 9C9D959D9E969FA098A0A199A0A1999FA0989D9E969C9D959A9B939A9B939A9B939B9C949C9D95 9C9D959C9D959C9E9362645957594C5456495D5F525F61545B5D506163566D6F6265675A66685B 67695C67695C66685B6365585F61545D5F5268665969675A6B695C6C6A5D6B695C69675A666457 6462555D5B4E5C5A4D5D5B4E615F52656356656356605E515A5B4D5758485E61506366555F6251 565948525544585B4A5F62516467566366556164535E61505B5E4D595C4B5659485558474A4D3C 4F5241545746565948545746525544525544535645494C3B4B4E3D4E5140505342515443505342 4E51404D503F4B4D404A4C3F484A3D46483B4446394143364042353F413437392C36382B37392C 393B2E3D3F32424437484A3D4C4E41595B4E6365588082759A9C8F95978A828477898B7EA2A497 989A8D989A8D999B8E999B8E9A9C8F9B9D909B9D909C9E919FA194A0A295A2A497A3A598A4A699 A3A598A2A497A2A497A2A497A2A497A2A497A2A497A2A497A2A497A2A497A2A497A4A699A4A699 A4A699A4A699A4A699A4A699A4A699A4A699A0A295A2A497A5A79AA7A99CA8AA9DA6A89BA4A699 A2A496A5A799A4A796A1A4939FA2919EA1909EA1909EA1909FA2919FA291A0A392A1A493A2A594 A3A695A4A796A5A897A6A998A6A495A2A0919F9D8E9F9D8EA2A091A4A293A3A192A19F90A2A091 A19F90A19F90A09E8F9F9D8E9F9D8E9E9C8D9C9D8DA3A494A1A493A0A3929FA2919DA08F9C9F8E 9B9E8D9A9D8C9EA1909EA1909EA1909EA1909EA1909EA1909EA1909EA1909D9F929D9F929D9F92 9D9F929D9F929D9F929D9F929D9F929FA1949FA194A0A295A0A2959EA0939C9E919A9C8F999B8D 999B8D9A9D8C9B9E8D9B9E8D9B9E8D999C8B979A89959887989B8A999C8B9B9E8D9C9F8E9C9F8E 9B9E8D999C8B989B8A9F9D909F9D909E9C8F9D9B8E9C9A8D9B998C9A988B99978AA19F92A19F92 A19F92A19F92A19F92A19F92A19F929FA0929A9C8F999D8F9A9D929B9E939B9E939C9F949DA095 9DA09594978C94978C95988D96998E989B90999C919A9D929A9D929C9E919C9E919B9D909A9C8F 999D8F989C8E979B8D979B8C979B8C979B8C989C8B989C8B989C8B999D8C999D8C999D8C979E8C 999E8A9D9C87A09C83A29B81A29B81A19B839E9C87A2A3939EA093999C9396999097998E9D9B8E A49E90A7A1919D9A899C998A9A98899896899495879193869092878F91868D8F848D8F848E9083 909183939184949283969384979483928F7E92908194918294928597938797958998948B98958C 9A968D99978B99958A9896899894889694859693849593849A988B98998B97988A969789959688 94958793948692938592938593948694958795968896978997988A98998B9A988B9A92879A9488 99978A989C8D98A09199A4949BA6989EA6999C9E939C9C949E99939D98929B9891989890969791 95988F9A9B8D9896879290818C8A7B88867785837485827385827185827185826F87826F888370 89827089826F8A83708A8370898471878171838071807C707C7A6D77776B7575697373676F6F65 6E6E626F6D616D6B5E6C685C6A67586B65556865566D6D616A6C6168685E63655A6060565B5D52 59594F56584D4B4B41494B4048483E44463B4242383E40353D3D333B3D3233352A46483D595B50 5C5E534F514644463B43453A484A3F2F31262F312627291E1B1D121C1E13282A1F31332831322A 1F201A1A1B15171812191A1420211B22231D1F201A1A1B1515161024251F33342E3536302E2F29 2A2B2532332D3B3C3640413B34352F292A2420211B11120C05060010110B2526202D2E2812130D 0809031A1B1523241E1617110C0D0710110B101109080A000406000B0D021A1C1125271C26281D 2224193B3D323B3D323A3C3135372C2B2D221F211613150A0B0C0414150F11120C0D0E08090A04 090A040B0C060F100A12130D0E0F090F100A10110B11120C12130D13140E14150F14150F1A1B15 191A141C1D1726272131322C34352F2F302A282923252620191A142D2E285C5D5771726C62635D 5A5B5569665F6F665F4F453C31271E2720162720162220142725192E2E227E7E7C7A7A78767772 7778737C7D7781827C83847C82837B87897E87897E86887B848679838577838577828574828476 888A7F84857D80817981827A85867E898A82898A828889818081798081797F80787E7F777D7E76 7C7D757B7C747B7C7481827A81827A81827A8081797F80787C7D75797A727879717A7B737B7C74 7D7E767F807880817981827A81827A80837A8A8D86888D86898E87898E87888D86868B84848982 838881868B84868B84868B84868B84868B84868B84878C85878C858F90888F90888F90888F9088 8F90888F90888F90888F90888B8C848C8D858E8F8790918992938B94958D95968E96978F94958D 95968E95968E95968E96978F96978F97989097989094958D94958D93948C93948C94958D95968E 979890999A929A9B939B9C949C9D959D9E969D9E969C9D959B9C949A9B9393948C95968E999A92 9E9F97A2A39BA1A29A9D9E969A9C9183857A75776A6B6D60686A5D5F61545254474F514455574A 6062555F61545E6053595B4E51534647493C3D3F3237392C403E314644374F4D40545245535144 4C4A3D4341343C3A2D37352839372A3F3D304745384D4B3E4D4B3E4745383F40324748384E5140 5558475457464F52414E51405558475D604F535645545746555847575A49595C4B5A5D4C5C5F4E 5C5F4E505342535645565948565948545746535645545746555847595C4B5C5F4E606352636655 6265545F62515B5E4D585B4A6365586264576163566062555E60535D5F525C5E515B5D50616356 6062555F61545F615462645766685B6B6D606D6F626F71646365585E60535E60535456494E5043 686A5D8C8E8197998C97998C989A8D989A8D999B8E9A9C8F9B9D909B9D909D9F929FA194A1A396 A4A699A5A79AA6A89BA6A89BA5A79AA2A497A2A497A2A497A2A497A2A497A2A497A2A497A2A497 A4A699A4A699A4A699A4A699A4A699A4A699A4A699A4A699A1A396A2A497A4A699A6A89BA5A79A A3A598A1A3969FA193A2A496A1A4939FA2919EA1909DA08F9EA1909FA2919FA2919FA291A0A392 A0A392A0A392A1A493A1A493A2A594A2A594A7A596A5A394A3A192A3A192A4A293A6A495A6A495 A5A394A6A495A6A495A5A394A4A293A3A192A3A192A2A091A0A1919C9D8D9B9E8D9B9E8D9B9E8D 9C9F8E9C9F8E9C9F8E9C9F8E9DA08F9DA08F9DA08F9DA08F9DA08F9DA08F9DA08F9DA08F9B9D90 9B9D909B9D909B9D909B9D909B9D909B9D909B9D909FA1949FA194A0A295A0A2959FA1949D9F92 9B9D909A9C8E9EA0929EA1909DA08F9C9F8E9B9E8D9A9D8C9A9D8C9A9D8C9C9F8E9DA08F9EA190 9FA2919FA2919EA1909DA08F9C9F8E9E9C8F9E9C8F9D9B8E9C9A8D9B998C9A988B99978A99978A A09E91A09E91A09E91A09E91A09E91A09E91A09E91A09E919B9C8C9B9C8C9C9D8F9D9E909D9E90 9E9F919FA0929FA09298988C98988C99998D99998D9A9A8E9A9A8E9A9A8E9B9C8E9D9B8E9D9B8C 9C9A8B9B998A98998B98998B97988A96988A96988A969988969988969988979888979886989987 979A87989C8B989D899C9B869F9B82A19A80A3997EA19A80A09A849B9887969789929487919386 9293859594829B96839E97859F9A879C99889B9887999687969485959384939184939184918F82 918F82929081939182959283969382979483979483989282969382979181959281979183979485 9A94889995899C968A9A968A9B9587989586999385979483989282969382969382959482959281 93928093907F91907E928F7E908F7D928F7E91907E93907F939280959281959482979483999383 938A7B928B7B8F8C7B8B8E7B89907E88917E889180899080939387959387979088968F87938F86 918E858F8F878D8F84999788979684939280908F7D8F8C7B8F8C7B908D7C928D7A8F8A77908976 908976918974928A75928A73928A73928A73908B788D8A798B8879898677868477848275808173 7F8072838377828375838174817F70817E6F7F7C6D807A6A7D7A6B89877B87877B85857B838377 8080767E7E727D7D737C7C707A7A707A7A6E7A7A707B7B6F7B7B717B7B6F7C7C727C7C706C6E63 71736677796E787A6D75776C6F71646B6D62696B5E686A5F6B6D6066685D5D5F525C5E5365675A 696B6066685D63645C5F605A5A5B555A5B555D5E585E5F59595A5454554F494A4453544E5B5C56 5859534D4E484546404647414B4C463D3E3838393333342E2B2C261E1F191F201A3C3D375E5F59 5A5B554647413D3E384748424C4D4741423C38393338393135372C2E302527291E292B20303227 34362B3234292E30253133283234293133282E302526281D1C1E131113080B0D02080901080903 090A040C0D0712130D1A1B1522231D2728221B1C161C1D171C1D171D1E181E1F191F201A20211B 20211B1718121617111819131F201A2728222A2B2527282222231D1E1F1915161024251F484943 595A5450514B4D4E485B5853473E392F24201A110C150E08140F09100D06111109181810868684 8282807E7F7A80817C8586808A8B858C8D858B8C848E90858C8E838A8C7F87897C86887A87897B 888B7A898B7D8F90888B8C868889838889838C8D878F908A8F908A8D8E888F908A8F908A8D8E88 8B8C86898A848788828687818586808E8F878E8F878E8F878E8F878C8D85898A8286877F85867E 8B8C84898A8286877F84857D84857D8788808A8B838B8E85898C83868C82858B8183897F83897F 83897F848A80848A808B91878A9086888E84868C82848A8082887E80867C7F857B8A8B838A8B83 8A8B838A8B838A8B838A8B838A8B838A8B838A8B838B8C848E8F8791928A94958D979890999A92 9A9B9396978F96978F96978F95968E95968E94958D94958D94958D9091898F90888E8F878E8F87 8F908891928A93948C94958D989991999A929A9B939B9C949B9C949A9B93999A929899919D9E96 92938B83847C7B7C747A7B737C7D757D7E767C7E7386887D7E8073797B6E7A7C6F787A6D737568 7476697A7C6F77796C797B6E7A7C6F787A6D727467696B5E6062555B5D506B695D716F637A786C 807E72807E7278766A6E6C6067655968665A67655969675B6D6B5F7270647270646E6C6068695B 6B6C5C717463777A69777A69737665727564787B6A7F8271727564747766767968797C6B7C7F6E 7F82718285748386757275647376657275647174636F72616F7261717463737665636655666958 6B6E5D6E71606E71606A6D5C6568576265545E60535E60535E60535E60535E60535E60535D5F52 5D5F5256584B5254474C4E4145473A4042353D3F323C3E313B3D3042443737392C35372A3D3F32 40423547493C64665986887B97998C989A8D989A8D999B8E9A9C8F9B9D909B9D909B9D909D9F92 9FA194A2A497A5A79AA7A99CA8AA9DA8AA9DA8AA9DA1A396A1A396A1A396A1A396A1A396A1A396 A1A396A1A396A3A598A3A598A3A598A3A598A3A598A3A598A3A598A3A598A2A497A2A497A3A598 A3A598A1A3969FA1949D9F929B9D8F9D9F919DA08F9C9F8E9B9E8D9C9F8E9DA08F9FA291A0A392 A0A3929FA2919FA2919EA1909EA1909DA08F9DA08F9DA08FA09E8FA19F90A2A091A19F90A09E8F A09E8FA19F90A2A091A4A293A4A293A3A192A2A091A2A091A19F90A09E8F9E9F8F969787969988 979A89999C8B9A9D8C9C9F8E9DA08F9EA1909B9E8D9B9E8D9B9E8D9B9E8D9B9E8D9B9E8D9B9E8D 9B9E8D999B8E999B8E999B8E999B8E999B8E999B8E999B8E999B8E9D9F929EA0939FA1949FA194 9EA0939D9F929B9D909A9C8E9EA0929C9F8E999C8B969988959887969988989B8A9A9D8C9A9D8C 9B9E8D9C9F8E9DA08F9DA08F9C9F8E9B9E8D9A9D8C9C9A8D9C9A8D9B998C9B998C9A988B9A988B 99978A99978A9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F9E9C8D9E9B8A9E9B889F9C89 A09D8AA09D8CA19E8DA29F8EA29F8E9E9B8A9E9B8A9E9B8C9D9A8B9D9A8B9C998A9C998A9E9888 9F98889F98869F98889D97879A9788999687989687959686959686959686959686959684979684 97968298958296958197998B979A899B99849E9880A1977CA2967CA2967C9F978098937F959482 92958491948392938196938099927F99937DA099879E99869D98859C9686989584979483969382 9592819491809491809592819592819892829994819994819994819F98869C97849A938197927F 9790809892829B94849C96869C95859B95859B94849A95829A938198938098917F97927E97927E 95937E97927E94927D95907C93917C948F7B92907B918C788F8D78928D79908E79938E7A92907B 948F7B958E7B9B907E9A8F7D948F7B8D8F79898E78848C75838B768489758C8A7B8E887A90867C 8F857B8E867B8A867A88867A8886798F8E7A8F8D788E8B788E8B78918C79928D7A948F7C97907E 918A78928A7791897493887293897093896E93896E918A708F8A768D8A798C89788A8977898778 88867788867787857688867987857686847585837483817282816F827F6E817E6F79776A79776A 78766A787669777569767467767468767467757367747265747266737164737165727063727064 6F706277796C6E706266685B66685A6C6E616D6F6167695C606254686A5D6E70626E706367695B 65675A6A6C5E686A5D6264575B5C5457585052534B5051494F50484D4E4648494144453D494A42 4D4E465051494B4C4440413937383034352D35362E2F302832332B32332B282921191A121B1C14 3C3D355F605865665E5E5F575A5B535D5E5662635B61625A5D5E565A5B536C6E6367695C626457 6062556163566163565F61545C5E5157594C585A4D595B4E585A4D5355484C4E414446393F4136 2E2F272D2E262D2E262E2F2732332B3839313D3E3640413936372F36372F36372F373830383931 383931393A32393A323D3E383B3C363B3C363D3E3841423C43443E42433D41423C4647413E3F39 40413B4B4C464C4D4742433D3D3E3843423D524A47473D3B3E34323E36333D3834393631373631 3A3B3590908E8B8B898687828687828A8B858E8F898E8F878E8F8783857A828479828477828477 82847684867886897887897B8A8B8387888284857F858680898A848B8C86898A848788828C8D87 8C8D878C8D878C8D878D8E888D8E888D8E888D8E8885867E86877F888981898A82898A82888981 87888086877F898A8286877F82837B7F80787E7F7781827A85867E868980898C83858B8182887E 80867C80867C81877D848A80868C828A9086898F85888E84858B8183897F81877D80867C7F857B 83847C83847C83847C83847C83847C83847C83847C83847C8E8F878E8F8790918992938B94958D 96978F97989098999198999197989096978F95968E94958D93948C92938B91928A8F90888E8F87 8D8E868D8E868E8F8790918992938B93948C999A929A9B939B9C949C9D959C9D959B9C949A9B93 999A92A1A29A8E8F8775766E65665E5F605860615961625A5F615665675C6264575F61545F6154 5D5F525C5E515D5F5260625561635664665967695C6A6C5F6B6D60696B5E67695C65675A626054 6361556462566563576462566260545F5D515D5B4F605E525A584C54524654524659574B605E52 64625663635758594B5A5D4C5D604F5B5E4D565948535645565948595C4B515443505342505342 5053424F52414F52414E51404E51404649384548374245343F42313E41303F4231424534444736 3A3D2C3D402F414433454837474A394649384447364346354B4D404C4E414C4E414D4F424E5043 4F514450524551534645473A44463944463945473A47493C4C4E41515346545649606255606255 6A6C5F797B6E7E80737D7F7287897C97998C9A9C8F9B9D909B9D909C9E919D9F929EA0939EA093 9FA194A2A497A3A598A5A79AA6A89BA7A99CA6A89BA5A79AA4A699A0A295A0A295A0A295A0A295 A0A295A0A295A0A295A0A295A2A497A2A497A2A497A2A497A2A497A2A497A2A497A2A497A3A598 A2A497A1A396A0A2959EA0939B9D90999B8E989A8C9A9C8E9A9D8C999C8B999C8B9B9E8D9DA08F 9FA291A1A4939FA2919FA2919EA1909DA08F9B9E8D9A9D8C999C8B999C8B9795869A98899D9B8C 9D9B8C9997889896879997889B998A9E9C8D9E9C8D9D9B8C9D9B8C9C9A8B9B998A9A9889989989 999A8A999C8B999C8B9A9D8C9B9E8D9C9F8E9DA08F9DA08F9A9D8C9A9D8C9A9D8C9A9D8C9A9D8C 9A9D8C9A9D8C9A9D8C97998C97998C97998C97998C97998C97998C97998C97998C999B8E9A9C8F 9B9D909C9E919B9D909A9C8F999B8E989A8C999B8D9699889194838E91808D907F8F9281939685 959887949786959887969988979A89979A899699889598879497869A988B9A988B9A988B9A988B 9A988B9A988B99978A99978A9D9B8E9D9B8E9D9B8E9D9B8E9D9B8E9D9B8E9D9B8E9D9B8CA09B88 A09B87A19C88A29D89A29D8AA39E8BA49F8CA49F8CA39E8BA29D8AA19C89A09B889F99899E9986 9D97879D9684A49987A49987A39787A198879F98889B98879A97889997889A9889999788999788 9897859996859895829A958197968296988B95998A9998869D9781A0967DA1957BA1957B9E977D 9B9680999884989B8A999C8B9A9B899B9A859C97819C96809F98869E99869D97879C97849B9683 9A95829994819994819994819994819994819994819994819A95829A94849A9582A29D8AA09B87 9C958298937F98917F9893809B94829C97849B94829A95829B948299948199927F97927E98917E 96917D9B96829B96809B96809A957F9A957F9A957F9A957F9A957F928D77928D77928D77928D77 928D77938E78938E78948E789689769588758F89738989718387707F846D7D826C7D806B8B8875 8D86768E85769084768E84788C867889867788877584836E84846C84846C86846F878471898673 8C87748D887589827088816E89816C888069888167878064897F6487806685806C83806F82816F 82816F83827083827083817283827082807182816F817F70807F6D7F7E6C7E7D6B7F7C6B7E7B6A 8785768785788684778583768482758482758381748381747D7B6E7D7B6E7C7A6D7B796C7A786B 79776A7876697876697677696B6D5F62645661635567695B6B6D5F696B5D646658626456696B5D 696B5D63655761635563655760625457594B5C5E53595A5256574F54554D52534B4F50484C4D45 4A4B43484941494A424A4B43494A4246473F43443C4041393F40384849414E4F47505149494A42 3C3D353A3B334A4B435C5D555859515C5D555C5D55595A525C5D5563645C63645C5E60555B5D50 5A5C4F5A5C4F5A5C4F5B5D505C5E515C5E515C5E516A6C5F6B6D606D6F626D6F626C6E61686A5D 6365586062555F61565D5E56595A5255564E52534B51524A51524A51524A505149505149505149 50514950514950514951524A51524A55565053544E52534D50514B4F504A50514B51524C52534D 51524C50514B50514B52534D52534D51524C51524C53524D5D555259514E574F4D56514D54504D 504F4A4E4F4A4F504A8C8C8A87878581827D7F807B80817B82837D82837B80817977796E797B70 7D7F7280827584867886887A878A79888A7C87888085868183847F848580878883888984858681 81827D7E7F7A7E7F7A7E7F7A7E7F7A7F807B7F807B7F807B7F807A7E7F7780817983847C86877F 898A828A8B838B8C848B8C8488898187888085867E83847C83847C84857D85867E85887F898C81 858B7F82887C80867A81877B83897D868C80888E82868C80868C80868C80858B7F858B7F858B7F 858B7F848A7E87888087888087888087888087888087888087888087888093948C93948C92938B 92938B92938B91928A91928A91928A97989096978F95968E94958D93948C92938B91928A909189 91928A91928A90918990918991928A92938B94958D96978F9C9D959D9E969E9F979FA0989FA098 9E9F979D9E969C9D959A9B9391928A86877F82837B82837B7F807878797170726774766B747669 7274676F71646D6F626E70636E70636C6E615C5E515C5E515C5E515D5F525D5F525E60535F6154 5F6154605D545F5C535C59505A574E5A574E5A574E5B584F5C59505451484F4C434B483F4E4B42 58554C6360576B685F6D6D615D5E505E61505F62515E61505B5E4D595C4B5A5D4C5C5F4E555847 5457465255445053424D503F4B4E3D494C3B484B3A4D503F4A4D3C474A39454837454837474A39 494C3B4B4E3D595C4B5A5D4C5D604F606352646756686B5A6C6F5E6D705F727467737568747669 75776A77796C787A6D797B6E7A7C6F7F81747F81748183768486798A8C7F919386989A8D9C9E91 9EA0939C9E919FA194A4A699A5A79AA3A598A7A99CAFB1A49EA0939EA0939FA194A0A295A0A295 A1A396A2A497A2A497A6A89BA6A89BA7A99CA6A89BA5A79AA3A598A0A2959FA194A0A295A0A295 A0A295A0A295A0A295A0A295A0A295A0A295A2A497A2A497A2A497A2A497A2A497A2A497A2A497 A2A497A3A598A2A497A0A2959EA0939C9E919A9C8F999B8E999B8D9A9C8E9A9D8C999C8B999C8B 9B9E8D9DA08F9FA291A1A4939EA1909EA1909DA08F9C9F8E9B9E8D9A9D8C999C8B989B8A989687 9C9A8BA09E8FA19F909D9B8C9B998A9B998A9D9B8CA19F90A19F90A09E8F9F9D8E9F9D8E9E9C8D 9D9B8C9B9C8CA1A2929FA2919FA2919EA1909DA08F9C9F8E9B9E8D9B9E8D9A9D8C9A9D8C9A9D8C 9A9D8C9A9D8C9A9D8C9A9D8C9A9D8C97998C97998C97998C97998C97998C97998C97998C97998C 95978A96988B989A8D999B8E999B8E989A8D97998C96988A999B8D9699889194838E91808D907F 8F9281939685959887949786959887969988979A89979A8996998895988794978699978A99978A 9A988B9A988B9A988B9A988B9A988B9A988B9D9B8E9D9B8E9D9B8E9D9B8E9D9B8E9D9B8E9D9B8E 9D9B8CA09B88A09B87A19C88A29D89A29D89A39E8AA49F8BA49F8BA49F8BA39E8AA29D89A19C88 A09B889F9A869E99869E9784A89D8BA99C89A79C8AA49B8AA29B8B9F9C8D9E9A8E9D9B8E9C9D8F 9C9D8F9B9C8C9C9B899C99889B98859C978399988693998D929A8D96988A9A97849E967FA0967D A0967D9D977F999782979984979B8A989C8B999C89999B869A98839997829C99889C99889B9889 9B98879A97869A9786999685999685999685999685999685999685999685989584989586989584 A19E8B9F9C899D98859996839994809896819B96829A98839A958197958099948096947F97927F 94917E96917E94927D98968198968198968198968198968199978299978299978294927D94927D 93917C93917C93917C93917C93917C96907A988B78978B75928C748E8C73898D74878D73878B74 8789738F8D78928B79938A79958979938A7B938C7C908D7C8F8E7A84866E85886D85876F878671 87867286857186837286837285827184817086816E85806C857F69847E66837D65827E65807D6A 7F7E6C807F6D807F6D81806E82816D83806F83806D898675898673888775878674878674868573 868573858472878475868374848172827F707F7C6D7D7A6B7B78697B78697875667976677B7869 7C796A7E7B6C807D6E817E6F817F707A7B6B787B6A787B6A777A69777A69797C6B7D806F808372 7679687B7E6D7B7E6D7376657174637578677275646B6D5F7072677173687173687072676E7065 6C6E636C6E636D6F6461635861635861635863655A65675C66685D65675C64665B66685D686A5F 67695E66685D66685D696B606A6C61696B605E605567695E67695E5D5F545C5E5363655A63655A 5B5D5261635663655765675967695B686A5C696B5D6A6C5E6B6D5F5E6052606254626456636557 6365576163555F61535E605365675C63655A6163585E60555B5D52595B50585A4F57594E585A4F 585A4F585A4F585A4F585A4F57594E57594E575850595A5457585254554F52534D50514B4F504A 4F504A4F504A4B4C464E4F494E4F494C4D474D4E4851524C51524C51504B4C47435049434C4743 47443D43423D42433B41423C3E41387E7E7C78787672736E70716C72736D74756F73746C72736B 797B707B7D7280827585877A898B7D8B8D7F8B8E7D8B8D808A8B858788838687828889848A8B86 8A8B8686878282837E82837E81827D7F807B7E7F7A7C7D787A7B7678797477787382837D84857D 8889818B8C848E8F8790918990918991928A8B8C848B8C848C8D858D8E868E8F878D8E868D8E86 8B8E85898C81868C80858B7F858B7F868C80878D81898F838A9084848A7E858B7F858B7F878D81 888E82898F838A90848A908492938B92938B92938B92938B92938B92938B92938B92938B94958D 93948C92938B91928A8F90888E8F878C8D858C8D8594958D94958D94958D93948C93948C92938B 92938B92938B95968E94958D93948C93948C94958D96978F979890999A929D9E969E9F979FA098 A0A199A0A1999FA0989E9F979D9E96A2A39B9D9E969899919798909B9C949C9D959A9B9396988D 7B7D728183768284777F817480827587897C888A7D848679888A7D87897C848679828477828477 83857885877A86887B7A776E7A776E7B786F7B786F7A776E78756C77746B76736A66635A646158 6562596A675E716E6576736A77746B7474686A6B5D6A6D5C6C6F5E6E7160707362727564747766 7578677679687679687679687679687679687679687578677578677376657174636F7261707362 7275647578677578677578677B7E6D7B7E6D7C7F6E7F8271848776898C7B8F928192958497998C 97998C989A8D999B8E9A9C8F9B9D909C9E919D9F929FA1949D9F929A9C8F989A8D989A8D9A9C8F 9D9F929EA093989A8D989A8D999B8E999B8E999B8E9A9C8F9FA194A4A6999EA0939FA1949FA194 A0A295A1A396A2A497A2A497A3A598A4A699A4A699A4A699A4A699A3A598A0A2959EA0939D9F92 9FA1949FA1949FA1949FA1949FA1949FA1949FA1949FA194A1A396A1A396A1A396A1A396A1A396 A1A396A1A396A1A396A3A598A1A3969FA1949D9F929B9D909B9D909C9E919C9E909D9F919DA08F 9C9F8E9B9E8D9C9F8E9DA08F9FA291A0A3929DA08F9DA08F9DA08F9C9F8E9C9F8E9B9E8D9B9E8D 9B9E8DA19F90A5A394A8A697AAA899A9A798A6A495A4A293A3A192A9A798A9A798A8A697A7A596 A6A495A6A495A5A394A3A494A4A595A2A594A1A4939FA2919EA1909C9F8E9B9E8D9A9D8C9B9E8D 9B9E8D9B9E8D9B9E8D9B9E8D9B9E8D9B9E8D9B9E8D999B8E999B8E999B8E999B8E999B8E999B8E 999B8E999B8E95978A96988B989A8D999B8E9A9C8F9A9C8F999B8E989A8C9EA0929C9F8E999C8B 969988959887969988989B8A9A9D8C9A9D8C9B9E8D9C9F8E9DA08F9DA08F9C9F8E9B9E8D9A9D8C 99978A99978A9A988B9A988B9B998C9B998C9C9A8D9C9A8D9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F 9E9C8F9E9C8F9E9C8D9E9B889E9C87A19C88A09E89A29D89A19F8AA49F8BA2A08BA29D89A09E89 A29D899F9D88A19C889E9C87A09B87A19A87AA9F8BAA9D8CA99E8CA69D8CA39D8FA09C909F9D90 9D9D91A0A0949EA0939E9F919D9E8E9D9B8C9D9A899C9986989989939A92919B9296998E9A9987 9E98829F97809F97809D98829594809295828F96868E9585909483929582939580959480999A8A 999A8C9A988B9A98899A98899A98899B98899A99879C998A9B998A9B98899A988999978A989689 9896899697879C9B899C9B879C9B899C9B879B9A869B9A859A99859A9984969581969580959480 94937F93927E93927E92917F92917D91907C91907B92917D92917C93927E94937E94937F94937E 96958196958095948095947F94937F94937E93927E96917D9D927E9D927C9A947E96967E92967D 91977D91967F93957F918F7A938E7A958C7B968D7C978E7D968F7D94918091937E8E92778D9475 8F937A8E927B8D907B8B8E7B898A7A88897B8B8C7E8B8C7C8C8A7B8A89778A8774898772888671 8685708685718685738786748786748786728887738986738986738B88758B88758A8975898874 8988768988768988768988768F8C7D8E8B7C8C897A898677878475848172827F70817E6F838071 8380718380718380718481728481728481728381727172627679687C7F6E7C7F6E797C6B797C6B 7E8170848776797C6B7E81707C7F6E757867737665797C6B787B6A72746664665967695E6A6C61 6A6C61686A5F686A5F6B6D626E70656A6C61696B60686A5F686A5F696B60696B60686A5F67695E 65675C63655A5E60555B5D526264596B6D62696B605F615663655A6B6D626C6E6364665B63655A 6A6C616B6D6264665965675966685A67695B686A5C686A5C67695B656759646658636557646658 65675967695B67695B67695B66685A6567596365586264596163586062575E60555C5E535B5D52 5A5C5156584D56584D55574C55574C54564B53554A53554A53554A5E5F595C5D57595A54585953 57585255565052534D4F504A50514B50514B4D4E484A4B454B4C464C4D47494A44464540504B45 534F464F4C4345453B42443946493E45483D4043387777757272706E6F6A6E6F6A72736D767771 7879717778707F817680827781837683857885877986887A878A7987897C878882858583848482 8686848888868787858282807D7D7B86868486868485858384848283838182828081817F81827D 80817B82837B84857D85867E86877F86877F85867E84857D80817982837B84857D878880888981 888981888981868980888B80888E82898F838B91858C92868C92868C92868B9185888E82888E82 888E82898F838A90848B91858C92868C928693948C93948C93948C93948C93948C93948C93948C 93948C8E8F878E8F878E8F878E8F878D8E868D8E868C8D858C8D8591928A91928A92938B92938B 93948C93948C93948C94958D95968E95968E94958D94958D95968E96978F9899919A9B939B9C94 9C9D959D9E969E9F979E9F979D9E969C9D959B9C94A8A9A1A2A39B9A9B9396978F9798909B9C94 9FA098A1A398999B90A0A2959FA19495978A92948797998C9496898A8C7F949689939588919386 909285909285919386929487939588939087949188959289959289949188939087908D848F8C83 8C898089867D87847B88857C8A877E88857C8380777C7C707D7E707B7E6D7C7F6E7F8271838675 8588778689788588778A8D7C8A8D7C8B8E7D8C8F7E8D907F8E91808F9281909382888B7A888B7A 898C7B8D907F9194839497869295849093828E91808F92818F9281909382939685969988999C8B 9B9E8D8D8F828D8F828D8F828E90838E90838E90838F91848F91848C8E818B8D808B8D808C8E81 90928595978A9A9C8F9EA0939A9C8F9EA093A1A3969D9F9297998C9395889193869092859B9D90 9C9E919C9E919D9F929EA0939EA0939FA1949FA1949B9D909C9E919FA194A0A295A1A396A1A396 A1A396A0A2959EA0939EA0939EA0939EA0939EA0939EA0939EA0939EA093A0A295A0A295A0A295 A0A295A0A295A0A295A0A295A0A295A3A598A1A3969FA1949D9F929C9E919EA093A0A295A1A395 A2A496A1A4939FA2919EA1909DA08F9EA1909FA2919FA2919C9F8E9C9F8E9C9F8E9DA08F9DA08F 9EA1909EA1909EA190A2A091A4A293A6A495AAA899ABA99AA9A798A4A293A19F90A7A596A7A596 A6A495A5A394A4A293A4A293A3A192A1A2929E9F8F9DA08F9DA08F9DA08F9C9F8E9C9F8E9C9F8E 9C9F8E9DA08F9DA08F9DA08F9DA08F9DA08F9DA08F9DA08F9DA08F9B9D909B9D909B9D909B9D90 9B9D909B9D909B9D909B9D90999B8E9A9C8F9C9E919EA0939FA1949FA1949EA0939EA0929EA092 9EA1909DA08F9C9F8E9B9E8D9A9D8C9A9D8C9A9D8C9C9F8E9DA08F9EA1909FA2919FA2919EA190 9DA08F9C9F8E99978A99978A9A988B9B998C9C9A8D9D9B8E9E9C8F9E9C8FA09E91A09E91A09E91 A09E91A09E91A09E91A09E91A09E8F9D9C8A9D9C889F9C899F9E8AA09D8AA09F8BA29F8CA1A08C 9E9C879E9D889F9D889E9D88A09E899F9E89A19F8AA39E8AA89D8BA99C8BA79B8BA49D8DA09C90 9E9C909B9B919A9C919FA1969EA1969D9F949C9E919B9C8E9B998A9A998796988A929D95919E97 959C94999B8D9D9A87A09A84A09A849D9B869899879498878E96878B96868D95868F9684949985 979A8797998B97998C99998D99998D99998D999A8C9B998C999A8A9D9B8E9B9C8E9C9A8D999A8C 98988C96988B95978A95978A9596869899879B9C8C9E9F8D9FA08E9D9F8A9A9B89989A85939482 93958092938192938191928090917F8F90808F907E8E8F7D8F917C8F907E90927D91928092947F 93948293958095968494968194958393958092938191937E90917F93907D9189769388748F8875 8A8974878B74838B73828A728589728C8B778F8A77928978938A79938C7A928D7A908F7B8E927B 8D93778C957690967C91967F9095818E92818B8F80898D7F9094868F93858F91848D8F818B8E7D 8A8D7A888B78888B78898A788889778A89778A89778A87748A87748A88738A887384826D84826D 84816E84816E84837184837182837184837183806F83806F827F6E817E6D807D6C7F7C6B7E7B6A 7E7B6A817E6D807D6C7D7A697B786778756475726173705F706F5D757664767966797C697A7D6A 7B7E6B7B7E6B7B7E6B7B7E6B7679667B7E6B7A7D6A737663737663797C697A7D6A7477666C6E61 71736875776C74766B7072676F716673756A787A6F7173687072676E70656C6E636B6D626A6C61 6A6C616A6C61696B606E70656C6E6364665B66685D6E70656D6F6463655A67695E6C6E636D6F64 6A6C616B6D627173687274696E70636F71636F72616F72617073627275647073626C6F5E686B5A 686B5A686B5A696C5B696C5B6A6D5C696C5B696C5B696B5D696B5E686A5F686A5F67695E65675C 6264596062575F61565B5D525B5D525A5C515A5C51595B50585A4F57594E57594E5B5C56585953 565751575852595A545758524F504A484943494A4444453F43443E494A4451524C565751575852 585850524F4657534853514548483C484A3D5054464F5345444A3C79797776767473746F767772 7D7E7883847E86878187888081827A8081797D7F747B7D727B7D707B7D707D7F727E80757F807A 7E7F7A7D7E797F807B81827D7F807B7A7B767576717A7B767B7C777D7E7980817C83847F858681 8788838889848E8F898E8F878F90888E8F878C8D858A8B8388898186877F85867E878880898A82 8C8D858E8F878F9088909189909189888B80898F838E91868F958993968B90968A9093888C9286 8E91868C92868E91868B91858D90858B91858D90858D90858C8D858C8D858C8D858C8D858C8D85 8C8D858C8D858C8D85898A82898A828A8B838B8C848C8D858D8E868E8F878E8F878F90888F9088 90918991928A93948C94958D95968E95968E95968E94958D94958D93948C94958D96978F989991 999A92989991999A929B9C949C9D959C9D959B9C94999A92989991989991999A929C9D959D9E96 9D9E969A9B9397989095968E97998EA0A295A2A499999B8E999B90A1A396A0A29796988B97998E 96988B95978C9496899294899092858E90858D8F848A8A8088887E88857C84847A858279838379 87847B86867C99968D9292888D8A8188887E8B887F8A8A808A877E86867A8F91838D907F8B8D7F 8B8E7D8C8E808D907F8A8C7E888B7A818375818473818375818473818375818473818375808372 86887A868978898B7D909382959789979A89959789929584909284909382909284919483919385 9194839092849092849496899496899496899395889395889395889395889395889C9E919A9C8F 97998C95978A95978A96988B999B8E9B9D9096988B9D9F92A1A3969EA0939C9E91A0A295A4A699 A6A89B989A8D989A8D999B8E999B8E9A9C8F9B9D909C9E919C9E919395889597899A9A8E9D9F91 A2A296A3A597A6A69AA5A7999F9F939EA0929F9F939EA0929F9F939EA0929F9F939EA092A1A195 A0A294A1A195A0A294A1A195A0A294A1A195A0A294A3A397A1A3959F9F939D9F919E9E92A0A294 A3A397A4A698A6A797A4A796A2A3939FA2919FA0909EA1909FA0909FA2919C9D8D9C9F8E9D9E8E 9EA190A0A191A0A392A2A393A2A3939B998A9B998A9D9B8CA19F90A4A293A3A1929C9A8B979586 9E9C8D9D9B8C9D9B8C9C9A8B9B998A9A98899A9889999788979888979A89999A8A999C8B9C9D8D 9C9F8E9E9F8F9EA1909FA0909EA1909FA0909EA1909FA0909EA1909FA0909EA0929E9F919D9F91 9E9E929D9F919E9E929D9F919E9E929D9F919E9E929EA092A2A296A3A597A5A599A4A698A4A498 A3A5979A9B8B9A9D8C9C9D8D9B9E8D9C9D8D999C8B989989959887999A8A999C8B9C9D8D9C9F8E 9D9E8E9B9E8D9A9B8B999A8A99978A9A988B9B998C9C9A8D9D9B8E9E9C8F9F9D909F9D90A19F92 A19F92A19F92A19F92A19F92A19F92A19F92A19F909D9C8A9D9C889E9D8B9F9E8A9F9E8CA09F8B A1A08EA1A08C9C9B879C9B879D9C889E9D89A09F8BA1A08CA2A18DA3A08DA39C8AA49B8AA29B8B A09A8C9E9A8E9C9A8E99998F989A8F9EA0959D9F949C9E919A9C8F999A8C979888989687949688 949E95949E96979D939A9C8F9D9C8A9E9B88A09B889E9B88A2A3919DA192979D8F939B8C939B8C 979E8E9DA190A1A49397998C97998C989A8D99998D99998D9A9B8D9A9B8D9A9B8D9C9D8F9C9D8F 9B9C8E9A9A8E99998D97998C96988B95978A9092849598879C9D8DA0A392A2A3919FA28F9B9C8A 979A879394829295829293819093809091818F92818F90808E9180929381929582949583949784 969785969986989987979A879495839396839394829194819192808F927F8F907E908F7D948D7B 948B7A918C798C8B77878A758489738287718285708685718885728A84748D86748D87778C8976 8C8B79898C77858B71858E738A8F788C917B8D927E8B8F7E898D7E878B7D8E92848D91838D8F82 8B8D80898B7D87897B86897885887786877586877587867486857386837285826F85826F84816E 84816E84816E84816E8481708483718483718283718483717C7B697D7A697E7B6A7F7C6B7F7C6B 807D6C817E6D817E6D85827185827184817083806F827F6E817E6D807D6C7F7E6C7B7C6A757863 72745F7578637C7E697C7F6A7779646F725D71735E777A65787A65727560737560797C677A7C67 73766378786C7D7F748181777F81767A7A7077796E7C7C7280827778786E76786D76766C74766B 74746A73756A76766C77796E6D6D637D7F7486867C7E80757B7B717F8176808076787A6F7A7A70 7A7C7179796F74766B74746A74766B7373696E70637072646F7261707264747766787A6C797C6B 7476687073626B6D5F6B6E5D6B6D5F6B6E5D6B6D5F6B6E5D6A6C5E6A6C5E64665B64665B66685D 66685D66685D65675C64665B63655A67695E67695E66685D65675C64665B63655A62645961625A 61625A5D5E585B5C565F605A63645E60615B5657514C4D475758524B4C4644453F4748424C4D47 4C4D47494A444A4A424F4C43555347505044484A3D4C4E41575B4D55594B484E407E7F7A7E7F7A 7E7F7A7E7F7A7E7F7A7E7F7A7E7F7A7E7F797F807A7F807A7F807A7F807A80817B80817B80817B 80817B7E7F797E7F797E7F797E7F797E7F797E7F797E7F797E7F797A7B757D7E7882837D878882 8C8D8790918B92938D93948E94958D92938B8F90888B8C8486877F82837B7E7F777C7D75878880 888981898A828A8B838B8C848C8D858D8E868E8F878E8F878C8F868D8E868B8E858B8C84898C83 898A82888B828A8B838A8D848D8E868D90878D8E868B8E858A8B8388898185867E85867E85867E 86877F86877F8788808788808788808A8B838A8B838A8B838A8B838C8D858E8F8790918992938B 8B8C848D8E8690918994958D96978F96978F96978F96978F98999197989094958D91928A8E8F87 8B8C84888981878880898A828E8F8795968E9A9B939B9C9498999193948C8F90888F9088909189 91928A92938B91928A9091898F90888D8E8694958D94968B95968E96988D979890989A8F999A92 999B90999A92989A8F97989095978C93948C9193889091898F91868C8E838C8E818D8D818C8E81 8D8D818C8E818D8D818C8E818F8F838E90838F8F838E90838D8D81898B7E88887C85877A87897C 87897B898B7E8A8C7E898B7E888A7C87897C86887A7E8073808274828477848678838578818375 7E80737C7E7087897C8B8D7F8E90838E90828C8E818B8D7F8F91849294868F91848E90828C8E81 8B8D7F8B8D808E90829193869395889496898F91848D8F82909285989A8D9C9E91999B8E95978A 919386949689989A8D9A9C8F9A9C8F989A8D949689919386939588939588929487919386909285 8E90838D8F828D8F82888A7D8B8D8091938696988B989A8D97998C949689929487909183939484 9B998C9E9F8FA2A093A0A191A09E919C9D8D9F9D909FA090A5A396A5A696A6A497A1A2929E9C8F 999A8A9F9D90A0A191A4A295A1A292A09E919C9D8DA09E91A0A191A4A295999A8A9C9A8DA4A595 A7A5989D9E8E9F9D90A7A898A6A495A2A393A19F909B9C8C9B998A9798889997889697879C9A8B 9596869391829394849B998A9B9C8C999788949283A19F909D9B8C9A98899997889C9A8B9D9B8C 9C9A8B9A98899593849694859896879A98899B998A9A98899A98899997889B998C999A8C9B998C 999A8C9B998C999A8C9B998C999A8CABA99CA8A99BA8A699A4A597A4A2959FA092A09E919D9E90 9B998C999A8A9B998C999A8A9B998C999A8A9B998C999A8A969487949585969487949585969487 9495859694879495859A9889999A8A9C9A8B9B9C8C9E9C8D9D9E8EA09E8F9E9F8FA2A0919E9F8F 9C9A8B9798889896879798889B998A9C9A8B9795869997889A98899B998A9B998A999788989687 9694859795869896879997889A98899C9A8B9D9B8C9E9C8D9F9D8E92908191907E8F8D7E8E8D7B 908E7F9392809795869A99879D9C8A9D9C8A9C9B899B9A889A99879998869897859796849A9786 9B98879B98899C998A9B998A9C9A8D9D9B8E9B9C8E9B9C8E9A9B8D9A9B8D9A9B8D9D9B8CA09E8F A2A091A1A2929EA0939D9F929C9D8F9A9B8D9A9889989785989584969583908E7F919282969789 9A9C8E9D9F919FA0909FA0909E9F8F9B9C8E9B9C8E9A9B8D9B998C9B998C9A9889999788999788 A4A293A4A293A2A091A09E919E9C8F9A9B8D999A8C98998B9B9C8C9A9B8B9B998A9899899B998A 9A9B8B9E9C8D9D9E8E9B998A9899899896879495859391828F90808F8D7E8C8D7D918F80909181 9391829293839593849596869896879697879A9889949585908E7F878878858374808171828071 82807183806F8481708582718584728586748687758788768889778E8D7B8F8E7C908D7E918E7D 918E7F908F7D908E7F8E8F7D8A8B798B8C7A8C8D7B8F907E9192829394849596869697898D8E80 8A8B7D87887A858678848575858676888979898A7A898778888677878576868475868475878674 8887758988768C8B798C8B798C8B798C8A7B8C8A7B8D8B7C8D8B7C8D8B7C939182929081918F80 8F8D7E8D8B7C8B897A8A8879898778868475868475868475868475868475868475868475868573 81806C7F816B81806B7E806A7F7E697C7E687E7D687B7D6783826D81836D83826D81836D83826D 81836D83826D81836E87857886867A8A887C88887C88867A838377817F737D7D717E7C707A7A6E 7B796D78786C7A786C79796D7C7A6E7C7C7079776B78786C7B796D7A7A6E7D7B6F7A7A6E7B796D 78786C72706471716574726675756979776B79796D7D7B6F7B7B6F73756874766875776A76786A 77796C787A6C797B6E7A7C6E76786B7577697476697274666F71646D6F616B6D606B6D60727469 72736B72736B72736B7071696D6E666B6C64696A626B6C6466675F6061595F605860615962635B 62635B60615961625A63645C5D5E5654554D58595163645C60615953544C595A5263645C4C4D45 393A324C4D45595A524A4B433E3F3758585056564C5254495052474E50454D4F444D4F444D5045 81827D81827D81827D81827D81827D81827D81827D81827D83847F83847F82837E80817C7F807B 7E7F7A7D7E797D7E787D7E787D7E767D7E767D7E767D7E767D7E767D7E767D7E7675766E777870 7B7C747E7F7782837B83847C84857D85867E8A8B83898A8288898186877F84857D82837B808179 80817983847C83847C83847C84857D84857D85867E85867E85867E898A82898A82888981888981 88898187888087888087888084857D83847C83847C82837B82837B82837B83847C83847C898A82 898A828889818889818889818889818788808788808D8E868C8D858A8B83898A82888981898A82 8A8B838B8C848B8C848B8C848C8D858D8E868E8F8790918991928A92938B8C8D858C8D858C8D85 8D8E868E8F878E8F878F90888F908892938B93948C94958D93948C92938B9091898E8F878C8D85 8A8B838C8D858F908891928A93948C94958D94958D94958D90918990918991928A92938B92938B 93948C94958D94958D8D8E868D8E868B8C848A8B8388898186877F85867E84867B86887D86887B 86887B86887B86887B86887B86887B86887B82847784867987897C8A8C7F8D8F828E90838E9083 8E90838486798486798385788183767E80737A7C6F77796C747669787A6D7A7C6F7E8073818376 82847782847781837680827583857886887B898B7E898B7E87897C86887B898B7E8D8F82919386 8F91848E90838D8F828E908390928593958895978A9395888F91848C8E818F918494968996988B 94968990928597998C9A9C8F9D9F92A0A295A0A2959D9F929A9C8F97998C939588929487909285 8F91848E90838F91848F91849092858D8F828E908391938694968995978A95978A949689939587 9B998C9D9B8CA19F90A4A293A4A293A19F909E9C8D9B998A9C9A8B9D9B8C9F9D8E9F9D8E9E9C8D 9C9A8B9A98899896879A98899C9A8B9D9B8C9C9A8B9B998A9B998A9F9D8EA2A091A8A697A09E8F 9F9D8EA7A596A7A5969F9D8EA09E8FA8A6979F9D8E9E9C8D9D9B8C9C9A8B9B998A9C9A8B9D9B8C 9E9C8D9A98899795869492839795869D9B8CA09E8F9D9B8C9997889B998A999788979586999788 9D9B8CA09E8FA19F90A09E8F9E9C8D9E9C8D9D9B8C9C9A8B9B998A999788979586959384989689 9896899896899896899896899896899896899896899E9C8F9D9B8E9D9B8E9D9B8E9C9A8D9C9A8D 9B998C9B998C9A98899A98899A98899A98899A98899A98899A98899A98899C9A8B9C9A8B9C9A8B 9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9593849593849694859795869896879997889997889A9889 9A9889989687959384929081929081929081949283959384929081939182949283959384979586 9997889B998A9C9A8BA19F90A09E8F9F9D8E9E9C8D9C9A8B9B998A9A9889999788979586969485 9593849593849694859795869997889A98899C9A8B9C9A8B9B998A9A9889999788989687979586 9795869A98899A98899B998A9C9A8B9E9C8D9F9D8EA09E8FA09E8F9A9889999788989687989687 9896879A98899B998A9D9B8CA09E8F9F9D8E9E9C8D9D9B8C9C9A8B9A9889999788999788959384 9795869B998A9F9D8EA19F90A2A091A19F90A09E8F9F9D8E9F9D8E9E9C8D9E9C8D9D9B8C9C9A8B 9B998A9B998AA2A091A19F90A09E8F9F9D8E9E9C8D9D9B8C9C9A8B9B998A989687979586959384 9593849593849694859795869896879A98899A9889999788999788989687979586979586979586 999788999788999788989687989687989687989687979586969485959384939182929081918F80 918F809290819290819B998A9B998A9A9889989687979586959384949283949283949283939182 918F808F8D7E8F8D7E908E7F9290819391828F8D7E908E7F918F80929081949283959384969485 9795869C9A8B9A9889969485939182918F809290819391829391828B897A8A8879898778888677 8886778987788A88798B897A8785768785768684758684758583748583748583748482738D8B7C 8D8B7C8D8B7C8D8B7C8D8B7C8D8B7C8D8B7C8D8B7C8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B 8C8A7B8C8B7989887389897188887088887087876F86866E85856D85856D84846C84846C84846C 84846C84846C84846C84846C84836E7E7C6F7F7D71807E72807E727F7D717B796D78766A767468 7B796D7B796D7B796D7B796D7B796D7B796D7B796D7B796D79776B7A786C7B796D7D7B6F7D7B6F 7C7A6E7B796D7A786C78766A78766A78766A79776B79776B7A786C7A786C78786C77776B77796C 77796C787A6D787A6D797B6E797B6E797B6E76786B76786B75776A7375687274677072656F7164 6F716474756D75766E75766E76776F75766E73746C71726A7071696D6E6668696163645C62635B 65665E67686067686066675F5C5D556061595D5E565859515E5F57696A626768605B5C54585951 5F605851524A40413947484053544C4E4F4744453D4B4C444B4C444B4C444B4C444C4D454D4E46 4E4F474E4F477E7F7A7E7F7A7E7F7A7E7F7A7E7F7A7E7F7A7E7F7A7E7F7A84858084858082837E 80817C7D7E797B7C77797A757879737B7C767B7C747B7C747B7C747B7C747B7C747B7C747B7C74 82837B84857D86877F8889818A8B838A8B838A8B83898A8280817980817980817981827A82837B 83847C83847C83847C8A8B838A8B838A8B83898A82898A828889818889818889817B7C747C7D75 7C7D757C7D757C7D757D7E767D7E767D7E7684857D82837B8081797F80787F807881827A83847C 84857D8C8D858C8D858B8C84898A8288898187888086877F85867E8D8E868B8C8488898186877F 84857D83847C84857D84857D8B8C84898A8287888086877F8788808889818B8C848C8D8585867E 86877F878880898A828C8D858E8F878F908890918995968E93948C9091898E8F878E8F87909189 92938B94958D8E8F878F908891928A93948C94958D94958D94958D93948C8B8C848C8D858C8D85 8D8E868D8E868E8F878E8F878F908888898188898187888085867E84857D82837B81827A818378 8082778082758082758082758082758082758082758082757A7C6F7C7E7180827583857886887B 87897C888A7D888A7D7B7D707B7D707A7C6F787A6D75776A7173666D6F626B6D606E70636F7164 72746774766975776A75776A7476697476697E8073818376848679838578818376808275838578 86887B85877A84867983857883857884867986887B888A7D898B7E9092858D8F828B8D808D8F82 9193869294879092858E908397998C989A8D9B9D909C9E919C9E919B9D90989A8D97998C929487 9092858E90838D8F828D8F828F918492948795978A939588929487929487919386919386929487 949689959789989689999788999788989687969485939182908E7F8E8C7D959384949283929081 918F80908E7F908E7F908E7F918F80908E7F908E7F908E7F8E8C7D8E8C7D908E7F959384999788 9C9A8B9694859492839896879896879391829492839A98899694859694859694859795869A9889 9D9B8CA09E8FA19F909D9B8C9A98899896879997889C9A8B9D9B8C9A9889989687949283949283 9694859997889E9C8DA2A091A4A293A4A293A6A495A5A394A2A0919F9D8E9B998A979586959384 93918299978A99978A99978A99978A99978A99978A99978A99978A98968998968999978A99978A 9A988B9B998C9C9A8D9C9A8D9997889997889997889997889997889997889997889997889C9A8B 9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9B998A9C9A8B9C9A8B9D9B8C9D9B8C9E9C8D 9F9D8E9F9D8E9D9B8C9C9A8B9A98899997889896879896879997889A9889959384949283939182 9290819391829694859997889A9889A2A091A2A091A19F909F9D8E9E9C8D9C9A8B9B998A9B998A 9C9A8B9C9A8B9D9B8C9D9B8C9C9A8B9B998A9997889896879A98899A9889999788999788989687 9896879795869795869997889A98899B998A9D9B8C9F9D8EA19F90A2A091A3A1929D9B8C9C9A8B 9A98899997889997889997889A98899B998A9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9B998A9B998A 9B998A9A98899C9A8B9E9C8DA09E8FA19F90A19F90A09E8F9F9D8EA19F90A09E8FA09E8F9F9D8E 9E9C8D9D9B8C9D9B8C9D9B8C9E9C8D9E9C8D9E9C8D9D9B8C9D9B8C9D9B8C9D9B8C9D9B8C9E9C8D 9D9B8C9B998A9A98899A98899B998A9C9A8B9D9B8C9997889997889A98899B998A9C9A8B9D9B8C 9E9C8D9E9C8DA09E8F9F9D8E9E9C8D9C9A8B9B998A9997889896879795869896879997889A9889 9C9A8B9C9A8B9C9A8B9B998A9B998A9B998A9B998A9A9889989687979586959384949283949283 9B998A989687949283908E7F8F8D7E908E7F929081949283908E7F908E7F908E7F908E7F918F80 918F80918F80918F809492839290818F8D7E8C8A7B8A88798987788987788987788D8B7C8C8A7B 8B897A8A88798A88798B897A8C8A7B8D8B7C898778888677878576868475858374848273838172 8381727876677A78697C7A6B7F7D6E8381728684758987788A88798C8A7B8C8A7B8C8A7B8C8A7B 8C8A7B8C8A7B8C8A7B8C8B798B8A758A8A728A8A7289897188887087876F87876F86866E85856D 85856D85856D85856D85856D85856D85856D85846F77756878766A78766A78766A767468737165 716F636F6D617A786C7B796D7C7A6E7D7B6F7D7B6F7C7A6E7B796D7A786C7A786C7B796D7C7A6E 7D7B6F7D7B6F7B796D7A786C79776B7D7B6F7D7B6F7C7A6E7B796D7A786C7A786C79776B77776B 7272667072657072656F71646F71646E70636E70636E70636C6E616D6F626E70636F7164717366 7274677375687375686F706870716971726A72736B71726A7071696E6F676D6E6672736B6E6F67 6A6B636B6C646F706872736B71726A6F706860615964655D63645C60615963645C696A6266675F 5D5E565758505A5B53595A524C4D45404139494A4252534B4C4D453E3F3740413943443C474840 4A4B434C4D454D4E464D4E467677727677727677727677727677727677727677727677727D7E79 7D7E797C7D787B7C777A7B767879747879747778727A7B757A7B737A7B737A7B737A7B737A7B73 7A7B737A7B73777870797A727B7C747E7F778081798081798081798081797F80787F8078808179 81827A83847C84857D84857D85867E8F90888E8F878D8E868C8D858B8C848A8B83898A82888981 84857D85867E85867E86877F86877F878880878880888981898A82888981888981878880888981 898A828B8C848C8D858B8C848B8C84898A8287888085867E83847C82837B81827A87888086877F 84857D82837B81827A81827A82837B82837B8A8B83898A8287888086877F86877F86877F878880 888981888981888981888981888981898A82898A82898A828A8B8381827A81827A82837B84857D 8889818C8D8591928A93948C98999198999197989096978F93948C8F90888C8D858A8B838B8C84 8B8C848B8C848B8C848B8C848B8C848C8D858C8D858D8E868C8D858C8D858B8C848A8B83898A82 88898187897E83857A838578838578838578838578838578838578838578808275818376818376 8082757E80737B7D70797B6E77796C74766974766976786B77796C76786B75776A747669737568 7274677274677274677274677274677173667072657072657D7F728082758284778183767E8073 7D7F728082758385787F81747F81747F81747F81748082758183768284778385788B8D808B8D80 8B8D808E90839193869395889395889395889193869193868F91848F91848F91848F9184919386 9193869193868F91848D8F828B8D808D8F8290928594968997998C97998C9496899092858D8F82 8D8F828F9184929487959789949285939182908E7F8D8B7C8B897A8B897A8C8A7B8C8A7B999788 9694859290818F8D7E8E8C7D908E7F9391829593849593849391828F8D7E8D8B7C8C8A7B8E8C7D 918F809492838E8C7D8B897A8A88798B897A8C8A7B8D8B7C908E7F949283908E7F908E7F918F80 9290819492839795869A98899C9A8B9E9C8D9D9B8C9A9889989687979586959384929081908E7F 9391829492839795869A98899D9B8C9F9D8EA09E8FA09E8FA6A495A4A293A19F909D9B8C9A9889 9795869694859593849E9C8F9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F9E9C8F 9E9C8F9E9C8F9F9D909F9D909F9D909F9D90989687989687989687989687989687989687989687 9896879694859694859694859694859694859694859694859694859F9D8E9F9D8E9F9D8EA09E8F A09E8FA09E8FA09E8FA09E8FA09E8FA09E8F9F9D8E9E9C8D9E9C8D9E9C8D9F9D8E9F9D8EA09E8F 9E9C8D9B998A9795869492839391829290819290819997889A98899B998A9C9A8B9E9C8D9F9D8E A09E8FA19F909E9C8D9F9D8EA09E8FA19F909F9D8E9B998A979586949283989687989687989687 9896879896879896879795869795869593849694859896879A98899C9A8B9E9C8DA09E8FA19F90 A3A192A2A091A09E8F9E9C8D9C9A8B9C9A8B9D9B8C9D9B8C979586989687989687989687999788 9997889997889A98899D9B8C9D9B8C9D9B8C9D9B8C9D9B8C9D9B8C9C9A8B9C9A8B9F9D8E9F9D8E 9E9C8D9D9B8C9C9A8B9C9A8B9B998A9B998A9B998A9B998A9B998A9C9A8B9C9A8B9C9A8B9D9B8C 9D9B8CA19F90A09E8F9E9C8D9D9B8C9C9A8B9C9A8B9D9B8C9E9C8D9997889997889A98899B998A 9B998A9C9A8B9D9B8C9D9B8C9E9C8D9D9B8C9C9A8B9C9A8B9B998A9A98899997889997889A9889 9B998A9D9B8C9E9C8D9D9B8C9997889694859391828B897A8C8A7B8D8B7C8E8C7D908E7F918F80 9290819391829D9B8C9B998A979586939182918F80918F80929081939182999788999788989687 979586969485959384949283949283908E7F908E7F8F8D7E8E8C7D8D8B7C8D8B7C8D8B7C8D8B7C 8E8C7D8E8C7D8C8A7B8B897A8B897A8C8A7B8E8C7D8E8C7D908E7F908E7F8E8C7D8D8B7C8C8A7B 8A88798987788987787D7B6C7E7C6D7E7C6D7F7D6E807E6F817F70828071828071848273848273 84827384827384827384827384827384837184836E84846C83836B83836B82826A818169818169 80806886866E86866E86866E86866E86866E86866E86866E868571858376858377848276838175 817F737F7D717E7C707D7B6F7B796D7C7A6E7E7C70807E72807E727E7C707C7A6E7B796D7B796D 7C7A6E7D7B6F7D7B6F7C7A6E7B796D79776B78766A7C7A6E7C7A6E7B796D7B796D7B796D7B796D 7B796D79796D7474687274677274677072656F71646E70636D6F626D6F626E70636E70636D6F62 6D6F626D6F626D6F626D6F626C6E61696A62696A62696A6268696166675F63645C61625A5F6058 6A6B6367686065665E6768606C6D656F70686E6F676C6D656B6C646C6D656B6C6467686065665E 62635B5D5E5657585057585056574F6061595859513E3F3741423A53544C52534B3B3C343E3F37 42433B46473F494A424B4C444B4C444A4B43757671757671757671757671757671757671757671 75767172736E73746F7475707576717677727778737879747879737A7B757A7B737A7B737A7B73 7A7B737A7B737A7B737A7B7370716972736B76776F7A7B737D7E767F807880817980817986877F 86877F86877F86877F85867E85867E85867E85867E88898187888086877F85867E84857D83847C 82837B81827A85867E85867E85867E85867E85867E86877F86877F86877F86877F878880898A82 8B8C848C8D858C8D858C8D858B8C8487888086877F85867E83847C81827A7F80787D7E767D7E76 8081797F80787E7F777E7F777F807881827A83847C85867E888981898A82898A828A8B83898A82 88898187888086877F888981888981888981888981898A82898A82898A828A8B8385867E888981 8C8D8591928A94958D96978F97989097989097989097989097989095968E92938B8F90888B8C84 898A828D8E868D8E868D8E868C8D858C8D858C8D858C8D858C8D858E8F878D8E868D8E868C8D85 8C8D858B8C848B8C848B8D828B8D828B8D808B8D808B8D808B8D808B8D808B8D808B8D808D8F82 8C8E818B8D80898B7E85877A8082757C7E717A7C6F7C7E717D7F727E80737F81747F81747E8073 7C7E717B7D707D7F727D7F727D7F727F81748082758284778385788486797E8073818376838578 8284777E80737D7F727F817482847785877A85877A86887B888A7D888A7D898B7E898B7E898B7E 86887B898B7E8C8E8190928592948796988B999B8E9C9E919395888F91848B8D80888A7D888A7D 8B8D808F91849395889092858E90838D8F828D8F828E908391938694968996988B96988B929487 8D8F828A8C7F898B7E8C8E81909285949688979588959384918F808F8D7E908E7F939182989687 9B998AA19F909E9C8D9896879492839391829694859A98899D9B8C9E9C8D9B998A979586939182 929081918F809290819290818C8A7B8D8B7C8C8A7B8B897A8E8C7D9593849A98899C9A8B908E7F 8F8D7E8E8C7D8D8B7C8D8B7C8E8C7D908E7F918F80939182949283949283939182929081918F80 918F809290819694859795869997889A98899A98899896879694859694859D9B8C9C9A8B999788 9795869694859795869896879997889D9B8C9D9B8C9D9B8C9D9B8C9D9B8C9D9B8C9D9B8C9D9B8C A2A091A2A091A09E8F9F9D8E9D9B8C9B998A9A9889999788999788999788999788999788999788 999788999788999788969485969485969485969485969485969485969485969485989687979586 9795869795869795869795869694859694859997889997889A98899A98899B998A9A98899A9889 9A9889A09E8FA09E8F9F9D8E9E9C8D9B998A979586949283929081959384969485979586989687 9A98899B998A9C9A8B9D9B8C9D9B8C9E9C8D9F9D8E9F9D8E9D9B8C989687949283918F80979586 979586989687989687989687989687989687989687929081939182949283969485989687999788 9B998A9B998A9F9D8E9E9C8D9B998A999788989687989687989687999788949283949283949283 9593849593849694859694859694859B998A9B998A9A9889999788989687989687989687989687 9B998A9B998A9A98899A98899997889896879795869795869997889997889A98899A98899A9889 9B998A9B998A9B998A999788989687969485949283939182939182939182949283999788999788 9997889896879795869694859694859694859593849593849694859795869896879997889A9889 9A9889929081939182969485979586969485939182908E7F8D8B7C8F8D7E908E7F918F80929081 949283959384969485979586999788999788979586959384939182918F80908E7F8F8D7E8F8D7E 8E8C7D8D8B7C8C8A7B8A88798987788886778785768D8B7C8E8C7D8F8D7E918F80929081939182 9492839492838E8C7D8D8B7C8B897A8A88798A88798B897A8D8B7C8E8C7D8F8D7E8F8D7E8E8C7D 8D8B7C8C8A7B8B897A8A88798A8879989687969485939182908E7F8C8A7B888677858374848273 83817283817283817283817283817283817283817283827084836F83826D83826D82816C81806B 807F6A807F6A7F7E6985846F85846F85846F85846F85846F85846F85846F858470939184929084 918F838F8D818D8B7F8C8A7E8B897D8B897D7E7C707F7D71807E72817F73817F73807E727F7D71 7E7C707C7A6E7D7B6F7D7B6F7D7B6F7C7A6E7A786C78766A77756975736776746877756979776B 7A786C7C7A6E7D7B6F7C7C708181758082757F81747D7F727C7E717B7D707A7C6F7A7C6F7C7E71 7B7D70787A6D75776A7173666E70636B6D606A6C5F6B6C646B6C64696A6267686063645C5E5F57 5A5B535859515E5F575C5D555B5C545E5F5762635B64655D63645C6061596B6C64696A62696A62 67686063645C5C5D555A5B535A5B53595A5256574F63645C61625A44453D3E3F374E4F4753544C 42433B43443C45463E474840484941484941484941484941797A75797A75797A75797A75797A75 797A75797A75797A756E6F6A6F706B70716C72736E757671777873797A757A7B757B7C767B7C74 7B7C747B7C747B7C747B7C747B7C747B7C7482837B85867E8889818D8E8690918993948C94958D 94958D8C8D858C8D858B8C84898A8288898187888086877F85867E888981888981888981878880 87888086877F86877F86877F7C7D757C7D757B7C747A7B73797A72797A727879717879717B7C74 7D7E7681827A83847C85867E85867E84857D83847C83847C82837B81827A8081797F80787D7E76 7C7D757C7D757D7E767D7E767C7D757D7E767F807881827A84857D85867E86877F8788808A8B83 8B8C848C8D858B8C84898A8287888085867E86877F878880898A828C8D858E8F878F9088909189 90918992938B95968E96978F96978F94958D91928A8F90888C8D858D8E868F908891928A92938B 92938B91928A91928A8F90888F90888E8F878D8E868D8E868C8D858C8D858B8C84878880878880 87888087888087888087888087888087897E8F91868F91848F91848F91848F91848F91848F9184 8F91849193869294879395889395889294879193868F91848E90838C8E818C8E818B8D80898B7E 86887B8284777E80737C7E71797B6E7A7C6F7B7D707F8174838578888A7D8D8F829092857F8174 8284778486798284777E80737C7E717E807381837681837682847784867986887B87897C87897C 86887B85877A85877A898B7E8E9083919386929487949689999B8E9D9F9297998C9496898F9184 8C8E818C8E818F918494968997998C8E90838F91848F9184909285919386919386919386919386 8F91848D8F82898B7E86887B87897C8A8C7F8E9083919385918F82908E7F8F8D7E908E7F939182 9795869B998A9E9C8D9795869492838F8D7E8B897A8B897A8D8B7C908E7F939182949283918F80 8F8D7E8E8C7D8D8B7C8B897A8886778684758987788C8A7B8A8879858374888677939182999788 989687929081908E7F8E8C7D8C8A7B8B897A8B897A8B897A8C8A7B8583748987788E8C7D908E7F 908E7F9290819694859A98899694859896879A9889999788959384908E7F8D8B7C8B897A939182 918F808F8D7E8E8C7D8F8D7E929081969485989687979586979586979586979586979586979586 9795869795869E9C8D9D9B8C9B998A999788969485949283929081918F809B998A9B998A9B998A 9B998A9B998A9B998A9B998A9B998A9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B 9896879896879896879795869694859694859593849593849795869997889B998A9C9A8B9D9B8C 9D9B8C9B998A9B998A9896879997889C9A8B9F9D8EA09E8F9F9D8E9E9C8D9D9B8C9B998A9B998A 9A98899896879795869593849492839492839C9A8B9C9A8B9C9A8B9B998A999788969485949283 9290819795869795869896879896879997889997889A98899A9889929081939182939182949283 959384959384969485969485949283939182918F808F8D7E8F8D7E8F8D7E908E7F918F80959384 9593849593849593849492839492839492839492839A9889999788979586969485959384969485 979586989687999788999788999788989687979586969485969485959384999788999788999788 9997889997889896879896879896879A9889989687969485939182929081918F80929081929081 979586979586969485959384949283939182929081929081908E7F918F80929081939182959384 9795869896879997888886778A88798C8A7B8F8D7E918F80929081929081929081989687979586 969485959384939182929081918F80908E7F949283949283949283939182918F80908E7F8E8C7D 8D8B7C8886778886778785768684758583748482738381728280718C8A7B8E8C7D908E7F939182 9492839492839492839391828B897A8A88798987788886778886778987788A88798B897A858374 858374858374868475868475868475868475868475908E7F908E7F908E7F8F8D7E8F8D7E8E8C7D 8E8C7D8E8C7D898778898778898778898778898778898778898778898876888773888772878671 87867186857085846F84836E84836E83826D83826D83826D83826D83826D83826D83826D83826E 868477858377828074807E727E7C707D7B6F7E7C707E7C70807E727E7C707D7B6F7C7A6E7C7A6E 7D7B6F7E7C70807E727D7B6F7D7B6F7E7C707D7B6F7C7A6E7A786C777569767468706E62716F63 7270647573677775697A786C7C7A6E7A7A6E7D7D717C7E717B7D707B7D707A7C6F7A7C6F7A7C6F 797B6E7B7D707B7D707B7D707A7C6F797B6E797B6E787A6D787A6D71726A71726A6F70686C6D65 696A6264655D6061595D5E5665665E63645C63645C66675F6A6B636A6B6367686063645C606159 5C5D555D5E566061595D5E565859515C5D5565665E5D5E565A5B5363645C65665E51524A41423A 45463E4E4F474A4B43494A4247484045463E45463E46473F4748404849417A7B767A7B767A7B76 7A7B767A7B767A7B767A7B767A7B7673746F73746F747570757671777873787974797A75797A74 7D7E787D7E767D7E767D7E767D7E767D7E767D7E767D7E7685867E878880898A828C8D858E8F87 8E8F878E8F878E8F878B8C848B8C848A8B838A8B83898A828889818889818788808B8C848B8C84 8B8C848C8D858C8D858D8E868D8E868D8E868A8B83898A8288898186877F83847C81827A7F8078 7F8078787971797A727A7B737C7D757E7F777F807880817981827A81827A81827A808179808179 8081798081797F80787F80788081798081797E7F777E7F777E7F777F807881827A82837B84857D 85867E86877F888981898A828A8B838B8C848B8C848C8D858C8D858C8D858D8E868E8F878E8F87 8F90888F908887888086877F84857D82837B80817980817981827A81827A8788808889818B8C84 8E8F8790918991928A91928A91928A8E8F878E8F878D8E868C8D858B8C848B8C848A8B83898A82 86877F86877F86877F86877F86877F86877F87888087897E8B8D828B8D808B8D808B8D808B8D80 8B8D808B8D808B8D808A8C7F8C8E818E90839193869294879395889395889294878E90838E9083 8D8F828B8D80888A7D8486798082757E8073797B6E797B6E787A6D787A6D7B7D707E8073828477 8486797E80738183768284778082757C7E717A7C6F7C7E717E8073797B6E7B7D707E8073808275 8183768082757F81747D7F72888A7D8C8E819193869092858D8F828D8F8291938696988B919386 9092858E90838D8F828D8F828E90839092859193868D8F828F9184929487949689949689919386 8D8F828B8D8087897C86887B85877A84867986887B888A7D8C8E818E908289877A8C8A7B918F80 9593849896879997889896879795868E8C7D8C8A7B8987788684758583748684758886778A8879 8987788987788B897A8E8C7D918F808F8D7E8B897A8684758C8A7B908E7F8C8A7B817F70828071 8E8C7D9391828F8D7E949283929081908E7F8F8D7E8E8C7D8E8C7D8F8D7E8F8D7E8886778D8B7C 929081918F808F8D7E8F8D7E939182989687918F809492839896879795869290818C8A7B888677 8684758C8A7B8A88798785768684758785768A88798F8D7E929081949381949381949381949381 9493819493819493819493819C9B899B9A889A99879998869897859796849695839695839E9C8D 9E9C8D9E9C8D9E9C8D9E9C8D9E9C8D9E9C8D9E9C8D9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B9C9A8B 9C9A8B9C9A8B9B998A9B998A9A98899997889896879795869795869694859593849795869A9889 9D9B8C9E9C8D9D9B8C9B998A9A98899694859795869997889B998A9D9B8C9E9C8D9F9D8EA09E8F 9D9B8C9C9A8B9B998A9A98899896879795869694859593849E9C8D9D9B8C9B998A999788979586 9795869795869896879795869795869896879997889A98899B998A9C9A8B9C9A8B979586969485 969485959384959384949283949283939182929081918F80908E7F908E7F908E7F929081939182 9593849B998A9B998A9A98899896879795869694859593849492839A9889999788979586969485 9694859896879B998A9C9A8B9B998A9B998A9A98899997889896879896879795869795869B998A 9A98899997889896879795869694859593849492839C9A8B9A9889989687959384939182939182 939182939182929081929081939182939182949283959384959384959384939182939182939182 9492839492839492839593849593848F8D7E8F8D7E8E8C7D8E8C7D908E7F918F80939182959384 929081929081908E7F8F8D7E8E8C7D8C8A7B8B897A8A8879908E7F8F8D7E8E8C7D8D8B7C8D8B7C 8D8B7C8E8C7D8E8C7D949283949283949283939182939182939182929081929081969485979586 999788999788989687969485939182918F80878576868475858374848273848273858374868475 878576828071828071838172858374868475888677898778898778807E6F817F70838172868475 8886778B897A8D8B7C8E8C7D898778898778898778898778898778898778898778898876868571 85847085847084836F83826E82816D82816D82816D807F6B807F6B807F6B807F6B807F6B807F6B 807F6B807F6D7A786B78766A747266716F63706E62706E62716F637270647E7C707B796D767468 7371657371657674687B796D7E7C707E7C707E7C707E7C707E7C707C7A6E79776B777569757367 6F6D61706E62706E62716F637371657472667573677373676E6E626D6F626E70636E70636F7164 6F71646F71647072657173667173667173667173667173667274677274677274676B6C646C6D65 6C6D656B6C646A6B6368696165665E64655D6B6C646A6B63696A626C6D656E6F676D6E66696A62 64655D5B5C5455564E54554D58595154554D5051495859516869616061595F6058606159676860 60615946473F3A3B3346473F4C4D4548494144453D40413940413943443C4849414C4D45767772 7677727677727677727677727677727677727677727A7B767A7B767A7B76797A75797A75797A75 7879747879737E7F797E7F777E7F777E7F777E7F777E7F777E7F777E7F7782837B83847C84857D 85867E85867E84857D82837B81827A878880878880888981888981898A82898A82898A828A8B83 82837B83847C84857D85867E86877F878880888981898A828F90888E8F878C8D85898A8285867E 82837B8081797F80787C7D757C7D757B7C747C7D757E7F7781827A84857D86877F81827A81827A 81827A82837B82837B83847C83847C83847C85867E84857D81827A7F80787E7F777D7E767E7F77 7E7F7783847C82837B82837B83847C85867E8889818B8C848D8E8698999197989094958D91928A 8E8F878B8C8488898187888091928A8D8E8687888084857D85867E8A8B8391928A96978F8B8C84 8B8C848D8E868D8E868D8E868C8D858A8B83898A828D8E868D8E868C8D858B8C84898A82888981 8889818788808B8C848B8C848B8C848B8C848C8D858C8D858C8D858C8E8386887D86887B86887B 86887B86887B86887B86887B86887B80827582847784867986887B87897C87897C87897C86887B 85877A85877A87897C888A7D87897C86887B85877A8486798A8C7F87897C8284777D7F727A7C6F 797B6E797B6E797B6E7D7F727F81748082757E80737A7C6F787A6D797B6E7B7D707D7F727F8174 82847785877A86887B85877A8385788183768A8C7F8F91849294878F9184898B7E86887B898B7E 8D8F8285877A86887B888A7D8A8C7F8A8C7F888A7D86887B85877A8D8F8290928595978A97998C 96988B9193868B8D8086887B82847782847782847783857885877A888A7D8A8C7F8C8E80908E81 9694859E9C8DA5A394A7A596A3A1929D9B8C999788979586969485949283939182929081929081 929081939182908E7F9290819896879F9D8EA5A394A4A2939F9D8E9A98899A98899F9D8E989687 8A8879888677939182979586918F80949283939182929081918F80929081939182949283959384 9593849997889B998A9694858E8C7D8987788B897A8E8C7D8C8A7B908E7F959384959384908E7F 8A88798684758583748A8879888677848273817F70817F708482738886778B897A979684979682 9796849796829796849796829796849796829F9E8C9F9E8AA09F8DA09F8BA1A08EA2A18DA2A18F A2A18F9F9D8E9F9D8E9F9D8E9F9D8E9F9D8E9F9D8E9F9D8E9F9D8E969485969485969485969485 969485969485969485969485939182939182929081918F80908E7F8F8D7E8E8C7D8D8B7C898778 8B897A8F8D7E929081939182929081908E7F8F8D7E9C9A8B9A9889999788979586979586989687 9997889B998A9795869896879997889A98899C9A8B9D9B8C9E9C8D9F9D8EA09E8F9E9C8D9A9889 9896879795869896879B998A9C9A8B9795869896879997889A98899B998A9C9A8B9D9B8C9D9B8C 9B998A9A9889999788989687969485959384949283939182999788989687989687989687999788 9B998A9E9C8D9F9D8EA09E8FA09E8F9E9C8D9C9A8B9A98899896879795869694859C9A8B9A9889 9896879795869896879B998A9E9C8DA19F909D9B8C9D9B8C9C9A8B9B998A9B998A9A9889999788 9997889C9A8B9B998A9A98899896879694859492839290819290819492839290818F8D7E8D8B7C 8B897A8A88798A88798A88798E8C7D8F8D7E918F809391829694859896879A98899B998A989687 989687979586959384949283939182929081918F809E9C8D9B998A979586939182908E7F908E7F 918F809290818B897A8B897A8C8A7B8E8C7D8F8D7E918F809290819290818E8C7D8C8A7B898778 8886778886778B897A8E8C7D908E7F898778898778898778898778898778898778898778898778 8B897A8C8A7B8C8A7B8B897A8785768280717D7B6C797768858374848273838172828071828071 8381728482738583748684758785768987788B897A8E8C7D908E7F9290819290818B897A8B897A 8A8879898778888677878576868475868475828071828071828071828071828071828071828071 8280717D7C6A7D7C687C7B697C7B677B7A687A79657978667978647F7E6C7F7E6A7F7E6C7F7E6A 7F7E6C7F7E6A7F7E6C7F7E6C848275817F737D7B6F7A786C78766A79776B7A786C7B796D7C7A6E 777569706E626B695D6B695D706E627775697C7A6E7E7C707F7D717F7D717E7C707C7A6E79776B 767468747266716F63716F63706E62706E626F6D616E6C606E6C606C6C606B6B5F6A6C5F6B6D60 6C6E616D6F626F71647072657072657274677072656B6D6065675A5F6154595B4E545649515346 5E5F5760615962635B64655D65665E65665E64655D64655D6061595F60585E5F5760615962635B 6061595B5C5455564E5F605856574F53544C54554D4D4E4646473F50514962635B63645C62635B 5E5F5766675F6A6B634A4B4333342C4041394A4B4345463E3F40383B3C343C3D3542433B4A4B43 4F5048747570747570747570747570747570747570747570747570777873777873797A757B7C77 7F807B83847F878883898A8482837D82837B83847C84857D85867E86877F87888088898186877F 86877F86877F86877F85867E85867E85867E85867E8A8B83898A8287888085867E83847C81827A 7F80787E7F777C7D757C7D757D7E767D7E767E7F777F80787F807880817992938B91928A8F9088 8C8D858A8B8387888085867E84857D83847C84857D85867E86877F878880888981898A828A8B83 83847C81827A7F80787D7E767D7E767F807882837B84857D898A82898A82898A82898A82898A82 898A82898A82898A828C8D858F908892938B95968E97989096978F94958D93948C898A8286877F 82837B7E7F777C7D757B7C747C7D757D7E767B7C74808179898A8291928A96978F96978F94958D 92938B8A8B838B8C848B8C848C8D858D8E868D8E868E8F878E8F8794958D93948C9091898D8E86 8A8B8387888085867E84857D8B8C8487888083847C80817981827A86877F8C8D8590928786887D 86887B86887B85877A8385788082757D7F727C7E71848679848679838578828477828477818376 81837681837682847784867987897C898B7E8A8C7F888A7D86887B8486797E80737F8174818376 848679888A7D8B8D808D8F828E90838A8C7F8A8C7F8A8C7F8A8C7F8A8C7F8B8D808B8D808B8D80 8C8E818A8C7F898B7E888A7D888A7D898B7E8B8D808C8E819193868E9083888A7D85877A86887B 8A8C7F9092859496898D8F828A8C7F86887B8284777F81747C7E717B7D707B7D707C7E7185877A 8F918495978A96988B9496899294879294879294878B8D8085877A86887B8D8F829092858C8E81 87897B9795889997889C9A8BA09E8FA19F90A09E8F9F9D8E9D9B8C8C8A7B8F8D7E939182939182 918F80918F80949283979586989687949283908E7F908E7F939182969485959384939182908E7F 8C8A7B8785768785768A88798E8C7D8F8D7E8E8C7D9290819795869492838D8B7C8D8B7C969485 9997889593848F8D7E8E8C7D8C8A7B8A88798987788987788A88798B897A8C8A7B8D8B7C8E8C7D 8F8D7E8F8D7E8E8C7D8D8B7C8C8A7B8F8D7E8F8D7E8F8D7E8E8C7D8E8C7D8E8C7D8D8B7C8D8C7A 89887495947F9B9A8695947F908F7B91907B8E8D7987867193927E9998839D9C8899988391907C 8E8D7892917D9897838C8B798B897A8A88798E8C7D949283989687979586969485989687979586 979586969485959384959384949283949283908E7F908E7F908E7F908E7F908E7F908E7F908E7F 908E7F8E8C7D8E8C7D8E8C7D908E7F9290819694859997889B998A9A9889999788969485929081 908E7F8F8D7E8F8D7E8F8D7E939182939182949283949283959384969485969485969485969485 9896879997889B998A9B998A9997889896879694859694859795869997889B998A9C9A8B9B998A 9A98899A98898F8D7E8E8C7D8D8B7C8C8A7B8C8A7B8D8B7C8E8C7D8F8D7E8E8C7D929081989687 9D9B8CA09E8FA09E8F9D9B8C9C9A8B9D9B8C9B998A9997889795869795869896879A98899C9A8B 969485939182918F809290819694859997889997889896879D9B8C9B998A989687959384939182 929081939182939182918F80908E7F8F8D7E8F8D7E8E8C7D8E8C7D8F8D7E8F8D7E8E8C7D908E7F 939182918F808D8B7C8A88798A88798B897A8C8A7B8A8879878576848273848273858374878576 8886778E8C7D8E8C7D8E8C7D8F8D7E8F8D7E908E7F908E7F908E7F939182929081918F80908E7F 8F8D7E8E8C7D8D8B7C8D8B7C8886778A88798C8A7B8E8C7D8E8C7D8C8A7B8A8879888677898778 8987788987788987788987788987788987788987788C8A7B8B897A888677868475858374858374 8684758684758C8A7B8B897A8A8879888677868475848273838172828071828071807E6F7D7B6C 7B796A7B796A7D7B6C7F7D6E817F708987788A88798B897A8C8A7B8D8B7C8E8C7D8F8D7E908E7F 9391829391829492839290818F8D7E898778848273817F707E7C6D7F7D6E807E6F828071848273 868475878576888677817F7081806E807E6F7F7E6C7F7D6E7E7D6B7D7B6C7D7C6A7E7C6D7E7D6B 7D7B6C7C7B697B796A7A796779776878766779776A7A786C7B796D7C7A6E7D7B6F7E7C707F7D71 7F7D718381758381758280747F7D717C7A6E78766A747266727064757367757367767468767468 77756978766A78766A78766A706E62706E62706E62706E62706E62706E62706E626E6E626F6F63 6D6F626B6D606A6C5F6A6C5F6B6D606D6F626E706370726570726571736673756874766975776A 76786B77796C72736B72736B71726A71726A7071696F70686E6F676E6F67696A626A6B636A6B63 6A6B636A6B636B6C646B6C646B6C6466675F6C6D656C6D656B6C646869615D5E5661625A75766E 65665E696A6268696165665E6A6B636869614F5048303129494A4244453D43443C3F40383A3B33 42433B4849413E3F377E7F7A7E7F7A7E7F7A7E7F7A7E7F7A7E7F7A7E7F7A7E7F7A7F807B7E7F7A 7C7D787B7C777B7C777C7D787D7E797E7F797D7E787D7E767E7F777E7F777F807880817981827A 81827A81827A81827A81827A81827A81827A81827A81827A81827A86877F85867E84857D83847C 81827A8081797F80787E7F777F80787F80787F80787F80787F80787F80787F80787F80787D7E76 7D7E767D7E767D7E767D7E767C7D757C7D757C7D7580817980817981827A81827A82837B82837B 82837B83847C85867E84857D82837B81827A80817981827A82837B82837B86877F86877F86877F 86877F86877F86877F86877F86877F87888087888087888085867E82837B7D7E76797A7276776F 85867E82837B7E7F777B7C74797A727A7B737C7D757D7E767A7B737D7E7683847C8788808A8B83 898A8288898186877F82837B83847C8788808B8C8490918994958D979890999A928F90888E8F87 8D8E868B8C848A8B838889818788808788807C7D757A7B7375766E72736B71726A72736B74756D 76786D7D7F747F8174848679898B7E8D8F8290928592948793958895978A909285898B7E828477 7E80737E8073808275828477898B7E87897C8385788082757F81748082758284778486797E8073 7F817480827583857885877A888A7D8A8C7F8B8D808C8E818C8E818B8D808A8C7F888A7D87897C 86887B86887B80827582847784867987897C8B8D808D8F828F91849092858F91848C8E81888A7D 84867983857884867986887B888A7D81837681837680827580827581837683857885877A87897C 8A8C7F8D8F829193869496899496899395889395889395888D8F828D8F828D8F828B8D808B8D80 8C8E819193869496889F9D909F9D8E9F9D8E9D9B8C999788959384908E7F8D8B7C858374868475 8785768785768886778A88798E8C7D918F80979586969485949283949283949283939182918F80 908E7F8A8879878576858374898778908E7F9694859997889A98899694859A98899694858D8B7C 8B897A9290819391828F8D7E908E7F8F8D7E8E8C7D8C8A7B8C8A7B8B897A8C8A7B8C8A7B8B897A 8C8A7B8E8C7D8E8C7D8E8C7D8E8C7D8C8A7B8B897A979586979586979586979586989687989687 9896879897859B9A86A09F8AA3A28DA1A08BA09F8AA09F8A9F9E899D9C879A998497968194937E 92917C908F7A8E8D788B8A75888773959482949283939182949283959384969485959384949283 939182939182929081929081918F80908E7F8F8D7E8F8D7E8F8D7E8F8D7E8F8D7E8F8D7E8F8D7E 8F8D7E8F8D7E8F8D7E929081918F80908E7F908E7F908E7F929081949283959384989687979586 9593849492839492839492839593849694859E9C8D9D9B8C9C9A8B9B998A9A9889999788989687 9896879391829391829290819290819290819290819391829391829492839694859896879A9889 9B998A9C9A8B9B998A9B998AA19F90A09E8F9E9C8D9D9B8C9D9B8C9E9C8DA09E8FA19F90949283 9896879C9A8BA19F90A3A192A2A0919F9D8E9E9C8D9C9A8B9B998A9896879492838D8B7C858374 7F7D6E7B796A8684758482738280718482738886778B897A8C8A7B8B897A8E8C7D8E8C7D8E8C7D 8E8C7D8D8B7C8C8A7B8C8A7B8B897A939182929081929081908E7F8D8B7C8A8879868475848273 918F80949283979586979586959384939182939182949283908E7F8E8C7D8B897A898778888677 8987788A88798B897A908E7F8F8D7E8F8D7E8F8D7E8F8D7E8E8C7D8E8C7D8E8C7D8A88798A8879 8987788886778785768684758684758583748886778A88798C8A7B8D8B7C8D8B7C8C8A7B8A8879 888677888677888677888677888677888677888677888677888677858374858374858374858374 848273828071817F70817F708C8A7B8B897A8A8879888677878576858374848273838172878576 868475858374858374858374868475888677898778838172838172848273848273858374858374 868475868475838172848273858374868475858374838172807E6F7E7C6D838172838172838172 8482738684758886778A88798C8A7B888677888677878576878576868475858374848273848273 7F7D6E7E7C6D7E7C6D7D7B6C7C7A6B7B796A7A78697A786B79776B79776B7A786C7B796D7C7A6E 7D7B6F7E7C707E7C707C7A6E7C7A6E7C7A6E7C7A6E7B796D78766A767468747266777569767468 757367727064706E626E6C606C6A5E6B695D6D6B5F6D6B5F6D6B5F6D6B5F6D6B5F6D6B5F6D6B5F 6B6B5F7171656F71646D6F626D6F626D6F626D6F626F71647072656D6F626D6F626D6F626D6F62 6C6E616C6E616C6E616C6E616E6F676E6F676D6E666C6D656B6C646B6C646A6B636A6B636B6C64 6B6C646B6C646B6C646B6C646B6C646B6C646C6D6574756D797A7277787073746C6D6E665E5F57 5D5E566F70686C6D656E6F676C6D65696A626E6F676E6F67595A523E3F373E3F3744453D4E4F47 494A423C3D353E3F3747484043443C81827D81827D81827D81827D81827D81827D81827D81827D 7F807B7D7E797B7C77797A75787974787974787974797A7481827C82837B82837B83847C83847C 84857D84857D85867E7B7C747B7C747B7C747B7C747C7D757C7D757C7D757C7D7581827A81827A 81827A80817980817980817980817980817985867E84857D83847C82837B8081797F80787E7F77 7D7E767A7B737B7C747C7D757E7F7781827A83847C84857D85867E82837B82837B82837B81827A 81827A80817980817980817984857D85867E85867E85867E84857D82837B8081797E7F7782837B 82837B82837B82837B82837B82837B82837B82837B797A727B7C747E7F7780817982837B82837B 82837B82837B7F80787D7E767B7C74797A72797A727A7B737C7D757E7F7785867E85867E86877F 86877F8788808788808788808788808C8D858B8C848A8B83898A8288898186877F85867E85867E 8D8E868C8D858B8C8488898186877F84857D82837B81827A8081798081797F80787F80787F8078 7F80787F80787F81768D8F8490928593958897998C9B9D909D9F929EA0939EA09396988B929487 8C8E8187897C84867985877A87897C898B7E8385788183767F81747D7F727D7F727F8174818376 8385787F817480827581837682847784867985877A86887B87897C8D8F828C8E818A8C7F888A7D 86887B8486798284778183767E807381837685877A898B7E8D8F828E90838E90838E90838E9083 8D8F828C8E818B8D808A8C7F898B7E898B7E888A7D888A7D87897C87897C86887B87897C898B7E 8B8D808C8E819496899193868E90838D8F828E908390928590928590928586887B8B8D808D8F82 898B7E8284778385788D8F82989A8CA19F92A09E8F9E9C8D9A9889959384908E7F8B897A888677 8B897A8987788785768785768A88798E8C7D908E7F918F808785768A88798E8C7D908E7F8E8C7D 8C8A7B8B897A8A88798E8C7D8C8A7B8C8A7B908E7F9896879F9D8EA2A091A2A0919896879B998A 9896878F8D7E8E8C7D959384969485929081908E7F908E7F8F8D7E8E8C7D8D8B7C8D8B7C8C8A7B 8C8A7B908E7F918F80929081939182939182929081918F80908E7F9D9B8C9D9B8C9E9C8D9F9D8E A19F90A2A091A3A192A3A2909D9C8798988097977F9B9B839C9C849B9B839B9B839D9D859D9D85 95957D8F8F7793937B9B9B839E9E8698988091907B939280939182939182908E7F8C8A7B8A8879 8987788A88798C8A7B8C8A7B8B897A8B897A8A8879898778888677888677918F80918F80918F80 918F80918F80918F80918F80918F80969485949283929081908E7F8F8D7E8F8D7E908E7F908E7F 9795869694859593849593849694859896879A98899B998A989687979586959384929081908E7F 8D8B7C8C8A7B8B897A939182929081908E7F8E8C7D8E8C7D908E7F9290819391828F8D7E918F80 9492839795869997889A98899A98899A98899C9A8B9B998A9A98899997889997889A98899B998A 9C9A8B9B998A9B998A9A98899896879290818B897A858374817F708583748987788F8D7E939182 9391828F8D7E8A88798684758A8879888677878576878576878576878576868475848273898778 8C8A7B908E7F9492839694859795869795869694858A88798C8A7B908E7F949283969485969485 9694859593848C8A7B8F8D7E939182959384959384959384969485989687949283939182918F80 8F8D7E8E8C7D8E8C7D8F8D7E908E7F929081918F80908E7F8F8D7E8E8C7D8C8A7B8B897A8B897A 8D8B7C8C8A7B8C8A7B8B897A8B897A8A88798987788987788886778987788B897A8C8A7B8C8A7B 8B897A8987788886778886778886778886778886778886778886778886778886778A88798B897A 8D8B7C8E8C7D8D8B7C8B897A8987788785768C8A7B8C8A7B8B897A898778888677878576858374 858374807E6F817F708381728583748684758684758684758583747E7C6D7E7C6D7E7C6D7D7B6C 7D7B6C7C7A6B7C7A6B7C7A6B817F70828071858374878576898778898778888677888677838172 828071807E6F807E6F817F708482738886778A8879878578878578868477858376848275848275 8381748381747E7C6F7E7C6F7D7B6E7D7B6E7C7A6D7C7A6D7B796C7B796C79776B79776B7A786C 7A786C7B796D7B796D7C7A6E7C7A6E7B796D7C7A6E7D7B6F7E7C707F7D717E7C707D7B6F7C7A6E 78766A777569757367737165716F636F6D616D6B5F6C6A5E727064727064727064727064727064 72706472706470706477776B75776A73756873756873756873756875776A76786B717366707265 6F71646D6F626C6E616A6C5F696B5E686A5D6E6F676E6F676D6E666C6D656B6C646B6C646A6B63 6A6B636B6C646B6C646B6C646B6C646B6C646A6B636A6B636A6B6371726A75766E71726A6E6F67 6A6B635C5D555A5B536A6B636C6D656B6C6467686065665E6B6C646C6D655E5F574B4C4433342C 41423A55564E54554D4041393C3D3544453D45463E797A75797A75797A75797A75797A75797A75 797A75797A75777873767772767772767772777873797A757B7C777C7D7781827C81827A81827A 81827A81827A82837B82837B82837B787971787971797A72797A727A7B737A7B737B7C747B7C74 80817980817981827A82837B83847C84857D84857D85867E898A8288898186877F84857D81827A 7E7F777D7E767C7D7581827A82837B83847C85867E8788808A8B838B8C848C8D85878880878880 86877F85867E84857D82837B82837B81827A80817982837B84857D84857D83847C7F80787C7D75 797A727E7F777E7F777E7F777E7F777E7F777E7F777E7F777E7F77898A8288898187888085867E 82837B7F80787D7E767B7C747A7B737A7B737B7C747C7D757E7F777E7F777F80787F8078888981 87888084857D83847C83847C85867E8889818A8B8383847C84857D85867E8889818A8B838C8D85 8D8E868E8F878C8D858A8B8387888084857D8081797D7E767A7B73797A7275766E7879717D7E76 82837B86877F87888088898187897E8B8D828C8E818D8F828E90838E90838D8F828C8E818B8D80 8F91849092859193869193868F91848C8E81898B7E87897C787A6D7A7C6F7E8073828477838578 83857882847781837682847782847783857883857884867985877A85877A86887B898B7E888A7D 87897C86887B85877A848679838578838578898B7E8A8C7F8B8D808C8E818C8E818C8E818B8D80 8A8C7F91938692948795978A97998C97998C96988B9496899395889193869092858E90838D8F82 8C8E818C8E818D8F828E908386887B8183767D7F727C7E717F817482847783857882847786887B 87897C85877A8082757B7D707C7E718486798B8D7F8E8C7F8D8B7C8D8B7C8C8A7B8B897A8A8879 8987788886778F8D7E8C8A7B8987788987788C8A7B8D8B7C8A88798886777472637A7869838172 8785768684758482738482738583748E8C7D8B897A8A88798D8B7C929081959384959384939182 8C8A7B918F808E8C7D8785768785768F8D7E9290818E8C7D8C8A7B8D8B7C8D8B7C8D8B7C8C8A7B 8A88798987788886779492839593849694859795869795869694859593849492839A98899A9889 9C9A8B9E9C8DA09E8FA2A091A3A192A4A3919695808C8C7489897190907892927A8D8D758B8B73 8F8F7795957D92927A90907893937B9A9A829D9D859C9C849897829998869B998A9C9A8B999788 939182908E7F918F80939182959384959384949283939182929081929081918F80918F80959384 959384959384959384959384959384959384959384979586969485949283939182929081929081 939182949283989687979586959384959384959384969485979586989687989687979586969485 949283929081908E7F8F8D7E8F8D7E8E8C7D8D8B7C8C8A7B8B897A8B897A8C8A7B8D8B7C8E8C7D 8987788B897A8E8C7D918F809391829492839593849593848C8A7B8B897A8A8879898778898778 8A88798B897A8C8A7B8B897A8D8B7C918F80959384979586989687989687989687918F80949283 9896879A98899A9889979586949283918F80979586959384939182918F808D8B7C8A8879868475 8381728583748785768B897A8F8D7E929081949283959384969485939182929081908E7F8D8B7C 8A88798785768482738280718280718482738886778C8A7B8F8D7E918F80929081939182979586 969485959384949283939182939182939182939182939182929081908E7F8E8C7D8C8A7B8A8879 8987788886778D8B7C8D8B7C8D8B7C8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8987788987788A8879 8A88798A88798A88798987788987788C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B 8D8B7C8D8B7C8E8C7D8F8D7E8F8D7E8E8C7D8C8A7B8C8A7B8D8B7C8C8A7B8C8A7B8B897A8A8879 8987788886778886777C7A6B7F7D6E838172868475888677878576858374848273817F70807E6F 7F7D6E7E7C6D7D7B6C7C7A6B7B796A7B796A7A78697B796A7D7B6C7E7C6D807E6F817F70817F70 817F707E7C6D7C7A6B7A78697876677977687D7B6C817F708482737C7A6D7C7A6D7B796C7A786B 79776A79776A7876697876697B796C7B796C7A786B7A786B7A786B7A786B7A786B7A786B79776B 79776B7A786C7A786C7A786C7A786C7A786C7A786C78766A79776B7B796D7B796D7B796D7A786C 79776B78766A75736776746876746877756977756978766A79776B79776B7A786C7A786C7A786C 7A786C7A786C7A786C7A786C78786C7171656F71646E70636D6F626D6F626E70636F7164707265 76786B75776A75776A74766973756872746771736671736672736B72736B71726A71726A707169 6F70686E6F676E6F67696A62696A6268696168696167686067686066675F66675F5C5D555E5F57 5B5C545C5D555F6058575850595A526A6B6367686062635B5D5E565D5E5662635B64655D5C5D55 52534B31322A3B3C3450514954554D46473F40413942433B3E3F37757671757671757671757671 7576717576717576717576717677727677727576717576717677727879747A7B767C7D77757670 75766E75766E75766E74756D74756D74756D74756D777870787971797A727A7B737B7C747C7D75 7C7D757D7E7682837B83847C84857D85867E878880888981898A828A8B838A8B83898A82878880 84857D81827A7E7F777C7D757A7B737C7D757C7D757C7D757C7D757D7E767D7E767D7E767D7E76 82837B81827A8081797F80787E7F777D7E767C7D757B7C747B7C747D7E767F80788081797F8078 7C7D7578797176776F7C7D757C7D757C7D757C7D757C7D757C7D757C7D757C7D757F80787E7F77 7C7D75797A7277787075766E74756D74756D7879717B7C747F807882837B83847C83847C81827A 8081797E7F777C7D757A7B73797A727A7B737E7F7782837B85867E86877F86877F888981898A82 8B8C848D8E868E8F878F908881827A8081798081797F80787E7F777D7E767D7E767C7D7576776F 7A7B7380817986877F898A828A8B83898A82888A7F80827782847785877A898B7E8C8E818E9083 8E90838E908394968995978A95978A9496898F9184898B7E8385788082757F8174808275838578 8486798385788183767E80737C7E7183857883857884867984867985877A86887B87897C87897C 83857883857884867985877A86887B87897C888A7D898B7E8F91848E90838D8F828C8E818C8E81 8D8F828F91848F918495978A97998C999B8E9A9C8F989A8D95978A9092858D8F82898B7E888A7D 87897C87897C87897C898B7E8B8D808C8E818C8E818A8C7F888A7D8B8D80909285929487929487 9092859395888C8E8183857880827582847785877A8486798183757F7D707F7D6E7F7D6E7F7D6E 807E6F817F708381728381728A88798886778684758684758684758280717A78697472637A7869 807E6F878576898778868475838172817F70817F70828071807E6F7F7D6E828071878576898778 8785768583748684758A88798684757D7B6C7B796A8280718381727F7D6E878576888677898778 8987788987788785768482738280718D8B7C8E8C7D908E7F918F80918F80908E7F8E8C7D8D8B7C 908E7F918F809290819492839694859896879997889A99879B9B839191778E8E7494947A95957B 8E8E7489896F8C8C728A8A708E8E749191778E8E7488886E86866C88886E8C8C748E8D7B908E7F 929081918F808D8B7C8C8A7B8E8C7D918F80A3A192A3A192A2A091A19F90A09E8FA09E8F9F9D8E 9F9D8E989687989687989687989687989687989687989687989687969485969485959384959384 9593849795869997889A98899A9889989687969485939182918F80908E7F908E7F918F808F8D7E 8F8D7E8F8D7E8F8D7E908E7F908E7F908E7F908E7F939182949283959384969485969485959384 9492839391828482738684758987788B897A8D8B7C8E8C7D8E8C7D8E8C7D8A8879898778878576 8684758684758785768987788A88798583748785768B897A908E7F9492839896879A98899B998A 959384949283939182929081929081939182949283959384918F80929081939182929081908E7F 8D8B7C8A8879888677918F808F8D7E8D8B7C8A88798886778785768785768785767C7A6B7A7869 7775667472637472637573647876677A7869807E6F8280718684758B897A8F8D7E929081939182 939182979586979586979586969485959384949283939182929081929081918F80908E7F8E8C7D 8C8A7B8A8879888677878576858374858374858374858374858374868475868475868475898778 8987788886778886778886778886778987788987788F8D7E8F8D7E8F8D7E8F8D7E8F8D7E8F8D7E 8F8D7E8F8D7E8583748583748482738381728381728482738684758684758D8B7C8D8B7C8D8B7C 8C8A7B8C8A7B8B897A8B897A8A88798583748886778B897A8E8C7D8F8D7E8E8C7D8C8A7B8A8879 878576868475868475848273838172828071817F70817F70828071817F70807E6F7F7D6E7F7D6E 7F7D6E7F7D6E7F7D6E7D7B6C7C7A6B7A78697977687A78697C7A6B7E7C6D807E6F777568777569 76746875736775736774726673716573716577756977756977756977756977756978766A78766A 78766A7A786C7A786C7A786C7A786C7A786C7A786C79776B79776B78766A78766A78766A78766A 767468747266716F63706E6273716574726674726675736775736776746877756977756978766A 78766A78766A78766A78766A78766A78766A76766A67675B65675A646659636558636558646659 65675A66685B71736671736672746773756874766975776A75776A76786B72736B72736B71726A 71726A7071696F70686E6F676E6F6767686066675F65665E64655D63645C62635B62635B61625A 54554D55564E51524A54554D5B5C545758505A5B536B6C646A6B6362635B5C5D555F605863645C 64655D61625A5F60583B3C3438393142433B4C4D454A4B4347484041423A34352D787974787974 7879747879747879747879747879747879747D7E797B7C77797A75777873767772757671767772 76777176777176776F75766E74756D74756D73746C73746C73746C7778707778707879717A7B73 7B7C747D7E767E7F777E7F7785867E85867E86877F878880888981898A828A8B838B8C84888981 87888085867E82837B8081797D7E767B7C747A7B73797A7278797177787076776F75766E74756D 73746C73746C75766E75766E75766E74756D74756D73746C73746C73746C7778707879717A7B73 7B7C747B7C747A7B73797A727879717C7D757C7D757C7D757C7D757C7D757C7D757C7D757C7D75 70716970716970716972736B75766E797A727C7D757F80787B7C747D7E7680817982837B83847C 83847C82837B81827A8081797F80787D7E767C7D757D7E7680817984857D86877F84857D83847C 81827A7E7F777C7D75797A7277787076776F7778707879717B7C747E7F7782837B85867E888981 898A828E8F8790918992938B94958D94958D92938B8F90888D8F8484867B87897C8B8D80909285 94968997998C989A8D999B8E9092858F91848C8E818A8C7F888A7D87897C87897C87897C8F9184 8B8D8086887B7F81747B7D70787A6D77796C77796C7F817480827581837682847784867985877A 86887B87897C81837682847784867986887B888A7D8A8C7F8C8E818D8F82888A7D888A7D888A7D 898B7E8C8E8191938695978A989A8D96988B96988B95978A9395888E9083888A7D8284777E8073 8486798385788183768082757F81747F8174808275818376989A8D999B8E9C9E91A0A295A3A598 A3A598A2A497A0A2959C9E919395888A8C7F8B8D809193869294878C8E818486788F8D808E8C7D 8B897A8987788785768785768886778886778B897A8C8A7B8C8A7B8C8A7B898778828071797768 737162908E7F929081939182918F808D8B7C888677848273828071807E6F807E6F828071878576 8E8C7D918F80908E7F8D8B7C949283969485908E7F848273807E6F8381728381727D7B6C838172 858374878576888677878576848273817F707F7D6E848273858374868475878576878576868475 8583748482738886778987788A88798B897A8C8A7B8E8C7D8F8D7E8F8E7C97977F939379929278 94947A94947A9090768D8D738E8E7487876D8E8E7494947A90907687876D83836989896F909078 7E7D6B807E6F817F708280718280718381728482738684759A98899A9889999788989687989687 979586969485969485989687989687989687989687989687989687989687989687959384959384 9492839492839593849795869997889B998A9B998A999788969485929081908E7F8E8C7D8E8C7D 8E8C7D8886778886778987788987788A88798B897A8C8A7B8C8A7B7977687A78697D7B6C7E7C6D 7E7C6D7D7B6C7A78697977688684758785768987788A88798B897A8B897A8A88798987788A8879 8987788785768684758684758785768987788A88798F8D7E8E8C7D8D8B7C8B897A898778888677 8785768684758987788785768583748381728381728583748886778A88798684758B897A918F80 9593849694859694859694859694858785768280717B796A7371626C6A5B666455636152626051 6866576866576967586D6B5C757364807E6F8B897A9290818987788A88798C8A7B918F80959384 989687979586969485939182949283949283959384949283929081908E7F8F8D7E8F8D7E8F8D7E 8E8C7D8C8A7B8B897A8A88798987788886778886778886778886778987788A88798A88798B897A 8B897A8A88798987788785768684758684758785768987788A8879908E7F908E7F908E7F908E7F 908E7F908E7F908E7F908E7F8886778785768583748482738583748785768987788B897A8E8C7D 8E8C7D8E8C7D8D8B7C8D8B7C8D8B7C8D8B7C8D8B7C878576888677898778898778898778888677 8785768684758886778886778886778785768785768684758684758684758D8B7C8B897A888677 858374838172838172838172838172807E6F817F70817F70817F70828071828071817F70817F70 7C7A6E7C7A6E7B796D7A786C7A786C79776B78766A78766A76746876746877756977756978766A 79776B79776B79776B7C7A6E7C7A6E7B796D7B796D7A786C7A786C79776B79776B838175838175 838175838175817F737E7C707B796D7A786C757367747266737165716F636E6C606C6A5E6A685C 6A685C6F6D616F6D616F6D616F6D616F6D616F6D616F6D616D6D617070646E70636D6F626C6E61 6C6E616D6F626E70636F7164686A5D696B5E6A6C5F6C6E616D6F626F71647072657173666E6F67 6E6F676D6E666C6D656B6C646B6C646A6B636A6B6367686067686066675F64655D63645C61625A 60615960615962635B6061595B5C545E5F5764655D5E5F575C5D55696A6274756D6B6C6466675F 6B6C646E6F676C6D656C6D656F70684D4E463C3D353A3B3344453D494A424A4B4343443C33342C 7677727677727677727677727677727677727677727677727B7C777A7B76797A75787974777873 787974797A757A7B757C7D777C7D757B7C747A7B73797A72797A7278797178797175766E75766E 76776F7879717A7B737C7D757D7E767E7F7785867E85867E86877F86877F86877F878880878880 87888084857D84857D82837B8081797E7F777C7D757B7C747A7B737B7C747A7B737A7B73797A72 78797177787077787076776F73746C73746C73746C74756D74756D75766E75766E75766E787971 777870777870787971797A727C7D757E7F777F80787D7E767D7E767D7E767D7E767D7E767D7E76 7D7E767D7E7683847C81827A7E7F777B7C747A7B737A7B737B7C747C7D758081797F80787D7E76 7C7D757C7D757E7F7780817982837B898A8288898186877F85867E84857D84857D84857D85867E 71726A72736B74756D76776F797A727C7D757E7F777F80787F807880817982837B85867E888981 8A8B838C8D858E8F878C8D858D8E868D8E868C8D858B8C84898A8287888086887D818378828477 84867986887B87897C87897C86887B85877A82847782847783857884867986887B888A7D898B7E 8A8C7F898B7E86887B8183767C7E71787A6D76786B76786B77796C77796C787A6D7A7C6F7D7F72 7F817482847784867985877A86887B86887B87897C888A7D8A8C7F8B8D808C8E818C8E81828477 83857885877A87897C8B8D808E90839092859294878F91848F91848F91848D8F828B8D80888A7D 86887B8486798B8D808A8C7F888A7D86887B85877A85877A85877A86887B91938695978A989A8D 9A9C8F999B8E97998C95978A9496898D8F828D8F828E90839092859294879294878E90838C8E80 9B998C989687949283908E7F8D8B7C8C8A7B8C8A7B8D8B7C8B897A8E8C7D918F80918F808D8B7C 888677838172807E6F939182918F808F8D7E8E8C7D8E8C7D8C8A7B8A8879888677868475868475 8785768C8A7B918F80939182908E7F8C8A7B908E7F9492838F8D7E8583748381728987788A8879 8583748381728583748886778A8879898778868475817F707F7D6E8987788A88798B897A8C8A7B 8C8A7B8B897A8A88798987788886778886778886778987788987788987788987788A89778A8A72 8D8D738D8D738A8A708A8A708E8E749292789292788F8F75919177929278929278919177909076 92927893937B91907E908E7F908E7F918F809391829492839492839391828D8B7C8D8B7C8C8A7B 8C8A7B8B897A8A8879898778898778949283949283949283949283949283949283949283949283 969485959384939182918F80918F80918F80929081939182999788989687969485939182929081 9290819391829391829795869795869795869694859694859694859593849593848F8D7E908E7F 908E7F908E7F908E7F908E7F908E7F8F8D7E8C8A7B8D8B7C8D8B7C8E8C7D8D8B7C8B897A8A8879 8886778987788886778785768684758684758785768886778987788D8B7C8E8C7D8F8D7E908E7F 9391829694859997889A98899593849391828F8D7E8987788280717C7A6B777566747263807E6F 8583748C8A7B908E7F908E7F8F8D7E8F8D7E8F8D7E9896879795869391828F8D7E8B897A878576 858374838172868475848273817F70807E6F8280718684758B897A8F8D7E8C8A7B8C8A7B8D8B7C 908E7F9492839694859492839290818E8C7D8F8D7E918F80929081918F808E8C7D8C8A7B8A8879 8C8A7B8C8A7B8C8A7B8B897A8B897A8B897A8B897A8A88798E8C7D8E8C7D8F8D7E908E7F918F80 918F809290819391828A88798886778684758583748583748684758886778A88798C8A7B8C8A7B 8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8D8B7C8D8B7C8D8B7C8D8B7C8E8C7D908E7F918F80 918F808E8C7D8E8C7D8E8C7D8E8C7D8F8D7E8F8D7E8F8D7E8F8D7E878576858374838172817F70 7F7D6E7F7D6E7F7D6E7F7D6E828071828071838172838172848273848273848273858374848273 8280717E7C6D7B796A7977687977687A78697B796A7F7D6E817F70848273878576868475848273 807E6F7E7C6D7F7D717E7C707E7C707D7B6F7C7A6E7B796D7B796D7A786C79776B79776B7A786C 7B796D7C7A6E7D7B6F7E7C707E7C707E7C707E7C707D7B6F7C7A6E7B796D7A786C79776B79776B 828074838175848276858377858377838175828074817F737A786C79776B777569757367737165 716F636F6D616E6C60706E62706E62706E62706E62706E62706E62706E626E6E6278786C76786B 75776A74766974766975776A76786B77796C6C6E616C6E616C6E616C6E616D6F626D6F626D6F62 6D6F626E6F676E6F676D6E666C6D656B6C646B6C646A6B636A6B636B6C646B6C64696A62686961 66675F64655D63645C62635B68696168696164655D696A626F706864655D5B5C5462635B787971 6D6E666A6B6371726A73746C6D6E666E6F6775766E5C5D5546473F3E3F3743443C44453D474840 46473F3E3F3770716C6F716C70716C6F716C70716C6F716C70716C6F716C73746F72746F747570 7678737A7B767E807B83847F848681787973777A7177787275786F75767073766D73746E72756C 72736D72756C74756F75786F787973797C737B7C767B7E7584857D83867D84857D83867D84857D 83867D84857D83867D82837B80837A8081797D80777D7E767B7E757A7B73797C73777870767970 777870777A71787971777A71787971777A71797A72787B727A7B737B7E757D7E767D80777F8078 7E8178797A72777A6F77787076796E7A7B737D807582837B84877C7E7F777D80757E7F777D8075 7E7F777D80757E7F777E80757A7C71797B70797B707A7C717E807583857A888A7F8C8E8383857A 7F8176797B7075776C75776C797B707F817683857A87888086877F84857D81827A7F80787C7D75 797A727879718A8B838A8B83898A8287888086877F84857D83847C83847C9091898F90888E8F87 8C8D858B8C848A8B8388898188898182837B82837B83847C84857D85867E86877F878880878880 81837882847783857A84867984867B8385788284798183767D7F7480827585877C898B7E888A7F 85877A7F81767B7D7074766B76786B7A7C717C7E717D7F747C7E717B7D72797B6E717368727467 75776C787A6D7B7D727E80738183788284778B8D808B8D808B8D808A8C7F8A8C7F8A8C7F8A8C7F 8A8C7F83857884867986887B888A7D888A7D87897C85877A848679888A7D898B7E8B8D808E9083 91938695978A97998C999B8E8D8F828E90838F918491938695978A999B8E9D9F929FA1949D9F92 A1A396A4A699A3A5989EA0939A9C8F989A8D999B8E76786B8082758B8D808E90838A8C7F87897C 898B7E8E90828D8B7E8A8879878576838172828071828071848273858374817F70858374898778 898778868475838172828071838172848273817F707F7D6E8280718886778D8B7C8F8D7E8E8C7D 838172817F70807E6F817F70838172807E6F7A7869757364747263797768797768747263777566 8280718886778583748482738785768A88798C8A7B8B897A888677838172807E6F969485979586 9896879997889997889896879795869694858B897A8B897A8B897A8A88798A8879898778898778 89887685846F8D8D758D8D7586866E87876F93937B9C9C849D9D8599998192927A8B8B738B8B73 8E8E768E8E7687876F807F6A9E9D8B9B998A9997889A98899D9B8C9E9C8D9B998A989687929081 929081918F80918F80908E7F8F8D7E8E8C7D8E8C7D908E7F908E7F908E7F908E7F908E7F908E7F 908E7F908E7F9795869593849290818E8C7D8C8A7B8A88798A88798A8879979586969485959384 9593849694859795869997889A98899A98899A9889989687969485949283918F80908E7F8F8D7E 929081918F808F8D7E8E8C7D8E8C7D8F8D7E918F80929081929081929081929081929081908E7F 8E8C7D8B897A8A8879908E7F8F8D7E8D8B7C8C8A7B8C8A7B8D8B7C8F8D7E908E7F908E7F8F8D7E 8D8B7C8C8A7B8C8A7B8C8A7B8D8B7C8E8C7D8A88798D8B7C9290819593849593849290818D8B7C 8987787775667C7A6B817F70817F707C7A6B777566747263737162807E6F8381728785768B897A 8E8C7D908E7F908E7F908E7F8A88798987788785768785768886778B897A8E8C7D908E7F888677 8684758785768987788D8B7C8E8C7D8B897A8886778A88798C8A7B8E8C7D8F8D7E8E8C7D8C8A7B 8886778684758A88798A88798A88798B897A8B897A8C8A7B8C8A7B8C8A7B888677888677898778 8A88798C8A7B8D8B7C8D8B7C8E8C7D8A88798886778684758482738482738684758886778A8879 8987788987788987788987788987788987788987788987788684758785768A88798C8A7B8D8B7C 8D8B7C8C8A7B8C8A7B8E8C7D8E8C7D8F8D7E8F8D7E8F8D7E908E7F908E7F908E7F918F808E8C7D 8987788583748381728280718381728583747B796A7B796A7C7A6B7D7B6C7F7D6E807E6F817F70 817F70868475838172807E717E7C6D7D7B6E7F7D6E817F7282807179776A7D7B6C828073868475 858376817F707C7A6D7876697B796D7B796D7A786C79776B78766A78766A7775697775697C7A6E 7D7B6F7E7C707F7D71807E72817F738280748280747F7D717F7D717E7C707D7B6F7C7A6E7B796D 7A786C79776B6D6B5F6F6D61716F637472667674687674687674687674687D7B6F7B7B6F7E7C70 7C7C707F7D717E7E72807E727F7F7378766A76766A78766A76766A78766A76766A78766A76766A 6D6F626C6E616B6D606A6C5F6A6C5F6B6D606C6E616D6F6277796C76786B75776A747669737568 71736670726570726572746972746972726A7173687171696F71666F6F676E70657070686E7065 6E6E666B6D626A6A6267695E67675F65665E61625A63645C63645C6C6D6574756D66675F595A52 5D5E5673746C696A626768606F706870716967686068696171726A64655D4F504847473F45463E 41413943443C4B4B43494A426E706B6C716B6D6F6A6B706A6C6E696A6F696B6D68696E6872746F 70756F72746F70756F72746F70756F72746F70756F6E706B6C716A70726D70756E747671757A73 787A75777C7571736E6F746D72746F71766F74767172777075777273787174776E73796D75786D 73796D73766B6F75696E71666A70647A7D72787E72797C71767C70777A6F747A6E76796E73796D 777A6F757B6F787B70767C70787B70777D71797C71777D71797C71767C70787B70767C70797C71 797F737D80757D837783867B81877983867B81877983867B81877983867B818779888B8083897B 82857A7B81737A7D72757B6D76796E767A6C7E80728082748284768082747C7E707A7C6E7C7E70 7F81737D7F717F81738183758284768385778385778385778284777D7F747B7C747B7C7482837B 8C8D859091898E8F87898A8286877F86877F85867E85867E84857D84857D84857D85867E82837B 8A8B8391928A90918988898182837B82837B84857D7D7E7680817985867E898A828B8C848C8D85 8A8B83898A82898A8284867B7D7E76787A6F7879717D7F7484857D898B8082837B84867B878880 898B8088898186887D83847C80827784857D83857A81827A80827780817980827781827A818378 7F80786E706567686075776C82837B83857A84857D898B808486798183767F8174818376848679 85877A838578808275818376848679888A7D8C8E818F91848F91848E90838D8F828A8C7F888A7D 888A7D8E908396988B989A8D9496898D8F8295978A9193868B8D8086887B85877A888A7D8C8E81 909285999B8E999B8E999B8E95978A9193868D8F828C8E818C8E8187897C86887B87897C8A8C7F 8E90838F91848C8E81898B7D8785788886778987788A88798A8879898778888677878576898778 8A8879908E7F918F808785767C7A6B817F708F8D7E8D8B7C8987788583748583748987788D8B7C 8E8C7D8E8C7D8583748B897A999788A3A1929B998A8E8C7D8E8C7D9896878D8B7C939182939182 8D8B7C8B897A8E8C7D8A8879817F708785768583748583748886778D8B7C8E8C7D8C8A7B888677 9795869997889A98899C9A8B9D9B8C9D9B8C9C9A8B9B998A9694859694858F8D7E868475868475 8D8B7C8B897A8381728786748988768887758382707D7C6A7E7D6B88877592917F7F7E6C81806E 8483718685738786748786748786748685738E8C7D8C8A7B9391829E9C8D9F9D8E979586959384 9B998A9B998A9A98899896879795869896879A98899D9B8C9F9D8E9B998A9896879795869A9889 9D9B8C999788908E7F868475868475868475868475868475868475868475868475868475858374 939182A4A293A8A697A2A0919B998A9A98899C9A8BA2A091A09E8F9D9B8C9896879391828F8D7E 8B897A898778918F80918F808F8D7E8D8B7C8A8879888677878576868475878576888677898778 8A88798A88798987788886778785768B897A8C8A7B8E8C7D9290819593849997889B998A9D9B8C 9C9A8B9997889694859593849290818785767775666A68597B796A7E7C6D828071868475878576 848273807E6F7E7C6D807E6F7E7C6D7C7A6B7B796A7C7A6B7F7D6E838172868475817F70838172 8583748886778987788987788987788987788785768886778886778A88798B897A8C8A7B8D8B7C 8D8B7C8886778583748280717F7D6E7D7B6C7E7C6D807E6F8280717B796A7E7C6D838172888677 8B897A8C8A7B8B897A8A88798886778684758280717F7D6E7E7C6D7F7D6E807E6F828071848273 8785768A88798D8B7C8F8D7E8E8C7D8C8A7B8A8879878576878576858374848273828071807E6F 7E7C6D7E7C6D8280718381728482738684758886778987788B897A8B897A817F70817F70828071 8381728583748684758785768785768987788987788A88798A88798B897A8B897A8C8A7B8C8A7B 898778888677878576868475868475878576888677898778858374868475868475878576888677 8987788987788A8879838174838174828074817F72817F73807E717F7D717F7D7079776B79776A 7A786C7C7A6D7D7B6F7E7C6F7F7D717F7D717E7C707D7B6F7C7A6E7B796D79776B78766A777569 7775697B796D7A786C7775697573677472667472667472667573677C7A6E7C7A6E7C7A6E7C7A6E 7C7A6E7C7A6E7C7A6E7C7A6E76746877756979776B7A786C78766A747266706E626E6C60707064 6E70636E6E626D6F6270706474766979796D7B7D7070706475776A7C7C707A7C6F7575696F7164 7070647274676E70636E70636F71647072657072656E70636D6F626B6D607375687173666E7063 6C6E616C6E616E706371736673756876766A76766A76736A7373677370676F6F63706D646D6D61 706D646E6E626F6C636C6C606D6A616B6B5F6C69606A6A6067686066675F66675F696A626A6B63 676860606159595A527071696C6D656B6C6470716971726A6D6E66696A62696A626868605D5D55 46433C43433B5A575054544C4C494256564E727771727771747973757A74777C76797E787A7F79 7B807A6C716B6C716B6C716B6C716B6C716B6C716B6C716B6C716B6D726C6D726C6D726C6E736D 6E736D6F746E6F746E6F746E6E736D6F746E6F746E70756F717670727771727771737871797F75 797F73787E72777D71767C70767C70767C70767C706B71656C72666E746871776B747A6E777D71 797F737A8074777D71777D71777D71767C70767C70767C70767C70767C70797F73787E72787E72 777D71787E727A80747C82767E8478808678808678808678808678808678808678808678808678 82887A8086787D83757A8072787E70767C6E767C6E767C6E797B6D7B7E6D7E81707F8271818473 828574858877878A798689788386757F82717B7E6D7A7D6C7C7F6E80837282847685877C81827A 7D7E767F807882837B82837B7D7E767879717C7D757E7F7782837B8788808A8B838C8D858C8D85 8C8D857D7E7680817982837B8081797D7E767D7E7682837B8889818D8E8691928A9798909B9C94 9B9C9498999193948C90918988898184857D8081797C7D757C7D7580817984857D8889818E8F87 8D8E868A8B8387888082837B7D7E76797A7276776F7E7F777E7F777F807882837B84857D83847C 8081797D7E7675766E73746C797A7282837B8081797879717B7C7486887D898B80848679808275 7F81748183768385788284778082758B8D808A8C7F898B7E8B8D808E90838F91848E90838C8E81 808275888A7D8F91849193868D8F828B8D808E90839294878F91848A8C7F8385787D7F72797B6E 7A7C6F7D7F727F81747E8073848679888A7D8486797C7E717A7C6F80827587897C8B8D80888A7D 87897C898B7E8D8F828E90838C8E81888A7C8E8C7F8F8D7E918F80929081929081918F808F8D7E 8E8C7D8886778886778C8A7B8E8C7D8684757D7B6C848273918F808A8879868475817F70807E6F 817F70817F707D7B6C7A78697D7B6C8684759391829896879492838D8B7C908E7F9896878D8B7C 908E7F8C8A7B8381728280718886778886778280718684758482738482738785768A88798B897A 8886778482738C8A7B8D8B7C8F8D7E918F80918F80918F80908E7F908E7F8C8A7B8C8A7B848273 7977687876677D7B6C7A78697270617472637674657876677775667674657C7A6B878576908E7F 969485969485969485959384959384969485969485979586908E7F8F8D7E918F80979586989687 9492839391829492839C9A8B9997889694859492839593849896879D9B8CA09E8F9C9A8B989687 9694859795869A98899997889391828D8B7C7E7C6D7E7C6D7F7D6E7F7D6E807E6F817F70817F70 8280716D6B5C7B796A8A88799290819391829593849C9A8BA3A192989687989687979586969485 9593849492839492839391828C8A7B8C8A7B8C8A7B8B897A8B897A8A88798A88798A8879898778 8987788A88798A88798987788785768583748482738886778987788B897A8D8B7C8F8D7E918F80 929081939182939182908E7F8E8C7D8E8C7D8E8C7D8886777C7A6B7371627D7B6C807E6F858374 8987788C8A7B8D8B7C8C8A7B8C8A7B8987788987788886778987788987788B897A8D8B7C8E8C7D 8D8B7C8D8B7C8D8B7C8D8B7C8B897A898778878576858374858374858374868475868475878576 8886778987788987788A88798987788785768684758583748684758684758785768987788A8879 8B897A8C8A7B8D8B7C8C8A7B8B897A8A88798A8879888677868475838172838172848273868475 8785767E7C6D7F7D6E807E6F817F70828071828071817F70807E6F7E7C6D7F7D6E807E6F828071 838172858374868475878576898778888677878576868475858374848273838172828071838172 8381728381728482738482738583748583748684758C8A7B8B897A8A8879898778888677878576 8684758684757F7D6E7D7B6C7B796A7977687876677876677876677977687C7A6B7C7A6B7D7B6C 7E7C6D7F7D6E7F7D6E807E6F807E6F817F73807E72807E727F7D717E7C707D7B6F7D7B6F7C7A6E 7A786C7A786C7B796D7B796D7C7A6E7C7A6E7D7B6F7D7B6F817F73817F73817F73817F73828074 828074828074828074838175817F73807E727E7C707E7C707E7C707F7D71807E7279776B79776B 79776B79776B79776B79776B79776B79776B7C7A6E7D7B6F7D7B6F7C7A6E7A786C78766A767468 7272666F6F636C6E616A6C5F67695C65675A6466596365586365585F615465675A6C6E616D6F62 6A6C5F686A5D6B6D606E70636B6D606C6E616E70636F71646F71646F71646D6F626D6F62727467 7173667072656F71646F7164707265717366727467737165737165747266747266757367767468 777569777569737165737165727064716F63706E62706E626F6D616D6D6168686065665E64655D 64655D63645C5D5E5655564E4E4F476D6E666A6B636A6B636D6E666F70686E6F676D6E666D6E66 6B68616360594C494244413A5350495350494E4B4458554E747973747973737872737872727771 727771717670717670757A74757A74757A74757A74757A74757A74757A74757A746C716B6C716B 6B706A6B706A6A6F69696E68686D67686D676D726C6E736D6E736D6F746E70756F717670717670 71766F7A8076797F73777D71777D71777D71797F737C82767E84787F85797D83777B8175787E72 757B6F72786C70766A6F75697F85797E84787E84787C82767B81757A8074797F73787E72757B6F 747A6E73796D73796D73796D757B6F777D71787E727D83757D83757D83757D83757D83757D8375 7D83757D83757D83757C82747A8072787E70777D6F787E70787E70797F717C7E707C7E707C7E70 7F817383857785877986887A86887A7D7F717A7C6E76786A73756773756776786A7A7C6E7C7E71 8284798081797E7F7780817983847C84857D81827A7E7F778C8D858E8F8792938B96978F96978F 95968E92938B9091898B8C84898A8286877F83847C81827A84857D8B8C849091898C8D858C8D85 8D8E868C8D858B8C848A8B8388898187888087888086877F84857D83847C83847C84857D86877F 8788807A7B737B7C747D7E7680817984857D8889818B8C848D8E867F80787B7C74797A727C7D75 82837B85867E83847C7F807883847C84857D8889818B8C8486877F81827A898A8296988D8D8F84 86887B7F81747B7D707D7F728183768284778284778284777B7D7075776A747669787A6D7C7E71 7B7D70797B6E87897C8D8F829496899496899092858E908391938696988B8486798183767D7F72 7A7C6F7A7C6F7D7F728183768486797274677A7C6F8082757D7F7275776A76786B8183768D8F82 8E90838A8C7F888A7D898B7E8D8F828E90838A8C7F8587798B897C8C8A7B8D8B7C8E8C7D8E8C7D 8D8B7C8C8A7B8B897A8987788684758785768785767E7C6D7674657C7A6B898778817F707F7D6E 7D7B6C7E7C6D7F7D6E7C7A6B757364706E5F7876678381728C8A7B8C8A7B8A88798C8A7B929081 9593848C8A7B8C8A7B848273797768797768838172878576838172878576858374848273868475 888677888677848273807E6F8684758785768987788B897A8C8A7B8C8A7B8B897A8A8879888677 8987788482737D7B6C807E6F8987788987788280717F7D6E807E6F807E6F817F70838172898778 918F809795869F9D8E9E9C8D9B998A9997889997889A98899B998A9D9B8C939182949283918F80 8D8B7C8E8C7D918F80908E7F8D8B7C8C8A7B8987788583748280718381728785768C8A7B908E7F 9694859290818F8D7E908E7F939182959384939182908E7F8D8B7C8E8C7D8E8C7D8E8C7D8F8D7E 8F8D7E8F8D7E908E7F8B897A918F809694859492838F8D7E8E8C7D9492839A9889949283959384 9694859795869795869896879896879896878A88798A88798B897A8C8A7B8C8A7B8D8B7C8E8C7D 8E8C7D8C8A7B8C8A7B8C8A7B8B897A898778868475838172817F707B796A7B796A7B796A7C7A6B 7D7B6C7E7C6D7E7C6D7E7C6D8A88798886778684758886778A88798987788482737F7D6E858374 8583748785768987788A88798C8A7B8D8B7C8E8C7D8C8A7B8D8B7C8E8C7D8F8D7E908E7F908E7F 908E7F8F8D7E918F80918F80918F80918F808F8D7E8D8B7C8A8879898778898778898778898778 8A88798B897A8B897A8C8A7B8C8A7B8A88798B897A8D8B7C8E8C7D8F8D7E8E8C7D8D8B7C8D8B7C 908E7F8E8C7D8B897A888677868475858374848273848273848273848273828071828071828071 848273868475878576807E6F7F7D6E7D7B6C7C7A6B7B796A7C7A6B7D7B6C7D7B6C828071838172 8583748886778A88798D8B7C8F8D7E908E7F898778898778878576868475848273838172817F70 817F708583748583748583748482738482738381728381728381728C8A7B8B897A898778878576 848273828071807E6F7F7D6E7573647472637371627270617270617472637573647674657F7D6E 7F7D6E7F7D6E807E6F817F708280718280718381727F7D717E7C707E7C707D7B6F7C7A6E7B796D 7B796D7A786C7C7A6E7C7A6E7B796D7B796D7A786C7A786C79776B79776B77756978766A79776B 7B796D7D7B6F7E7C707F7D71807E72807E727F7D717E7C707D7B6F7E7C707F7D71817F73828074 807E72807E72807E72807E72807E72807E72807E72807E72817F73807E727D7B6F7B796D79776B 79776B79776B77776B7272667173667173667173666F71646D6F626B6D606A6C5F67695C6A6C5F 6E70636D6F626A6C5F67695C686A5D696B5E686A5D696B5E6B6D606E70636F71646F71646F7164 6E70636F71647072657173667274677274677173667072656F7164757367747266737165727064 716F63706E626F6D616F6D61716F63706E62706E626F6D616E6C606D6B5F6D6B5F6A6A5E707068 6C6D6568696167686064655D5E5F5755564E4E4F475F605860615960615960615961625A64655D 6768606768606B686169665F55524B44413A49463F4E4B44514E4759564F7F847E7E837D7D827C 7B807A797E78777C76767B75757A746B706A6B706A6B706A6B706A6B706A6B706A6B706A6B706A 696E68696E68696E68696E68696E68696E68696E68686D676C716B6C716B6D726C6D726C6E736D 6F746E70756F70756E73796F73796D73796D747A6E767C70787E727B81757C82767F85797F8579 7F857980867A80867A81877B81877B82887C848A7E848A7E82887C80867A7E84787C82767B8175 7A8074777D71767C70747A6E747A6E747A6E757B6F777D71787E72797F73797F71797F71797F71 797F71797F71797F71797F71777D6F777D6F767C6E767C6E777D6F787E707A80727B8173828477 7F81737C7E707D7F717F81738082747D7F717A7C6E747668757769787A6C7B7D6F7C7E707D7F71 7D7F717D7F7275776C7879717E7F778788808F908894958D96978F96978F9D9E969D9E969C9D95 999A9294958D8D8E8687888083847C83847C82837B82837B81827A82837B84857D86877F888981 83847C7E7F7776776F70716970716976776F7D7E7682837B878880888981898A82898A82898A82 898A828889818788807F807880817982837B85867E878880898A828B8C848C8D858788807D7E76 73746C73746C7B7C7484857D88898188898188898186877F8889818E8F8793948C93948C92938B 9193888B8D828486797C7E71797B6E7C7E7182847786887B888A7D898B7E80827577796C76786B 7D7F7284867986887B848679999B8E95978A92948795978A9B9D909D9F92999B8E9395888B8D80 898B7E87897C87897C888A7D8D8F8291938694968985877A86887B87897C86887B86887B8A8C7F 91938697998C8D8F828A8C7F898B7E8B8D808E90838D8F8286887B81837589877A8A88798B897A 8C8A7B8C8A7B8B897A8A88798987788C8A7B8684758381728280717A7869727061767465807E6F 7E7C6D7F7D6E8280718684758A8879878576807E6F7A78697C7A6B8785768B897A848273838172 8B897A918F80908E7F8A8879898778807E6F7674657876678381728886778482738B897A898778 8785768886778A8879898778848273807E6F8A88798C8A7B8D8B7C8F8D7E908E7F908E7F8F8D7E 8E8C7D8D8B7C908E7F8D8B7C8987788F8D7E9A98899D9B8C9795869A9889989687969485939182 9391829391829593849694859997889997889896879896879896879997889B998A9C9A8B969485 9896879290818785768684758D8B7C8E8C7D8886778B897A898778868475858374868475898778 8C8A7B8F8D7E959384949283939182949283969485989687989687989687979586969485949283 939182918F808F8D7E8E8C7D8D8B7C8987788C8A7B8E8C7D8B897A8886778987788F8D7E959384 9795869997889B998A9D9B8C9C9A8B9997889694859391828F8D7E8F8D7E8F8D7E8F8D7E8F8D7E 8F8D7E8F8D7E8F8D7E918F80918F80908E7F8F8D7E8C8A7B888677858374828071777566777566 7876677977687A78697B796A7B796A7C7A6B888677878576858374868475878576898778898778 8987788E8C7D8C8A7B898778868475858374848273848273848273898778888677888677898778 8987788987788987788A88798987788B897A8D8B7C908E7F918F80918F80918F80918F80908E7F 908E7F908E7F908E7F918F80918F80918F80918F808886778A88798E8C7D918F80939182929081 908E7F8E8C7D8A88798785768280717E7C6D7B796A7A78697B796A7C7A6B7C7A6B7C7A6B7C7A6B 7D7B6C7E7C6D807E6F817F708280718B897A888677858374828071807E6F817F70838172858374 8785768886778886778886778987788A88798A88798A8879848273848273858374868475878576 878576888677888677868475858374858374838172828071817F70807E6F807E6F868475858374 848273828071807E6F7F7D6E7D7B6C7D7B6C7775667775667876677977687B796A7F7D6E828071 848273817F70828071828071838172848273858374858374868475807E727F7D717F7D717E7C70 7D7B6F7C7A6E7C7A6E7C7A6E7D7B6F7D7B6F7C7A6E7A786C79776B78766A7775697775696A685C 6A685C6B695D6C6A5E6D6B5F6E6C606F6D616F6D61706E62706E626F6D616F6D61716F63737165 7573677775697F7D717F7D717F7D717F7D717F7D717F7D717F7D717F7D717F7D717C7A6E78766A 74726673716573716575736774746874746875776A797B6E7B7D707C7E717A7C6F77796C76786B 6F71646F71647072656E70636C6E616A6C5F696B5E696B5E66685B686A5D6B6D606D6F62707265 7173667173667072656E706370726573756875776A75776A7375687072656E70637D7B6F7C7A6E 7A786C78766A767468747266727064716F63737165737165737165727064716F63706E62706E62 6D6D616A6A6266675F63645C63645C62635B5F605858595153544C5E5F5763645C63645C5E5F57 5C5D5562635B66675F66675F6D6A636E6B645F5C5548453E413E3748453E524F4858554E626761 626761626761636862636862636862646963646963646963646963646963646963646963646963 646963646963656A64656A64676C66686D676A6F696C716B6D726C6E736D6A6F696A6F696B706A 6C716B6D726C6D726C6E736D6E736C71776D73796F767C72797F757B81777C82787D83797D8379 7E847A7E847A7E847A7E847A7E847A7F857B7F857B7F857B7B81777B8177797F75777D73757B71 73796F72786E71776D797F75787E74777D73767C72767C72767C72777D73787E72767C70767C70 767C70767C70767C70767C70767C70767C7073796D73796D73796D747A6E757B6F787E727B8175 7C82747E80737B7D70787A6D797B6E7B7D707C7E71797B6E76786B7E80737F8174808275818376 82847781837680827580827572746978797181827A898A828E8F8791928A93948C94958D8D8E86 8C8D858A8B8387888084857D81827A7E7F777D7E767F807882837B8788808B8C848B8C84888981 84857D81827A87888082837B7B7C7476776F7879718081798A8B8391928A898A828B8C848D8E86 8E8F878E8F878D8E868B8C84898A82878880898A828B8C848D8E868E8F878C8D858A8B83888981 898A8280817976776F75766E7E7F778788808B8C848B8C847A7B738081798889818D8E868F9088 8B8C8480817975776C85877C7F8174797B6E797B6E7F817485877A8A8C7F8B8D808B8D80838578 7B7D707D7F7286887B9092859395889294879A9C8F95978A90928591938696988B989A8D95978A 909285999B8E97998C94968992948791938691938693958894968997998C8E908386887B898B7E 9395889A9C8F97998C91938687897C888A7D898B7E8B8D808C8E81898B7E8385787E80728F8D80 908E7F918F80929081929081918F80908E7F8F8D7E8E8C7D8886778785768A8879888677838172 868475908E7F8D8B7C8E8C7D9290819795869A98899694858E8C7D8684758684758D8B7C8D8B7C 8482738381728A88798E8C7D8B897A8987788987788280717B796A7F7D6E8A88798C8A7B868475 8F8D7E8C8A7B8A88798B897A8D8B7C8C8A7B8886778482738B897A8C8A7B8E8C7D8F8D7E908E7F 908E7F8F8D7E8F8D7E8F8D7E908E7F8C8A7B8785768B897A969485979586918F809B998A999788 969485939182908E7F8D8B7C8C8A7B8B897A918F809290819593849795869997889A98899B998A 9B998A959384989687939182858374817F708886778C8A7B888677868475878576888677898778 8A88798A88798B897A8B897A9593849795869997889A98899B998A9B998A9D9B8C9E9C8D9B998A 999788969485918F808D8B7C888677858374838172848273858374868475868475848273858374 8886778A88799290819694859B998A9F9D8E9F9D8E9C9A8B979586939182969485969485949283 939182918F808F8D7E8E8C7D8D8B7C9492839492839391829290818F8D7E8C8A7B898778878576 8583748684758785768886778A88798B897A8D8B7C8D8B7C8C8A7B8C8A7B8A8879898778878576 8886778B897A8D8B7C939182918F808F8D7E8C8A7B8A88798987788987788987788B897A898778 8684758482738482738583748886778987788684758886778A88798D8B7C8E8C7D8F8D7E8E8C7D 8E8C7D8D8B7C8D8B7C8D8B7C8D8B7C8D8B7C8D8B7C8C8A7B8C8A7B8482738785768B897A8E8C7D 8F8D7E8E8C7D8C8A7B8B897A8684758381727F7D6E7C7A6B7B796A7C7A6B7D7B6C7F7D6E7D7B6C 7E7C6D7F7D6E817F708280718381728381728482738E8C7D8C8A7B888677858374848273858374 878576888677848273848273858374858374868475868475878576878576868475868475868475 878576878576878576888677888677838172838172828071807E6F7F7D6E7E7C6D7D7B6C7D7B6C 7C7A6B7C7A6B7C7A6B7D7B6C7D7B6C7D7B6C7D7B6C7D7B6C817F70817F70807E6F7F7D6E807E6F 817F708381728482737C7A6B7D7B6C7D7B6C7E7C6D7F7D6E807E6F807E6F817F70828074828074 828074817F73807E727F7D717F7D717E7C707D7B6F7D7B6F7C7A6E7A786C79776B78766A777569 7775696F6D616F6D616E6C606D6B5F6C6A5E6B695D6A685C6A685C69675B68665A68665A68665A 69675B6B695D6D6B5F6F6D61716F63716F63716F63716F63716F63716F63716F63716F6378766A 757367716F636E6C606C6A5E6C6A5E6E6C606D6D616E6E626E7063717366737568727467707265 6C6E616A6C5F67695C66685B66685B67695C6A6C5F6C6E616C6E616C6E61686A5D696B5E6C6E61 6F71647173667274677274677274676F716471736674766976786B76786B7476697173666F7164 7D7B6F7D7B6F7D7B6F7E7C707F7D717F7D71807E72807E72767468767468757367747266747266 73716572706470706469696166675F64655D6768606A6B636B6C6468696164655D696A6274756D 76776F6C6D656768606E6F6772736B6F70686F6C65706D6668655E504D463E3B34434039504D46 54514A696E68696E68686D67676C66666B65656A64646963636862636862636862636862636862 636862636862636862636862616660626761646963676C66696E686C716B6D726C6E736D696E68 696E68696E686A6F696B706A6C716B6C716B6D726C747972777D737A80767D83797F857B80867C 7F857B7F857B7D83797B8177787E74747A7070766C6C7268696F65676D636D73696C72686B7167 6A7066696F65686E64676D63666C626E746A6D73696B7167696F65696F65696F656A70666A7066 747A6E747A6E747A6E747A6E747A6E747A6E747A6E747A6E72786C71776B71776B72786C747A6E 777D71797F737B817572746772746773756875776A797B6E7C7E717C7E717C7E718284777E8073 797B6E74766971736672746774766976786D7D7E7681827A84857D83847C7E7F777B7C747A7B73 7B7C747A7B737B7C747E7F7781827A85867E8A8B838D8E8690918991928A94958D96978F93948C 8C8D8583847C7D7E76797A728B8C848A8B838A8B838B8C848E8F8791928A95968E9899918E8F87 8F908890918991928A91928A9091898F90888E8F878C8D858E8F8791928A92938B91928A8E8F87 898A8287888086877F82837B80817983847C898A828C8D858A8B8386877F8889819091898F9088 81827A76776F7778707B7C747D7F748183787D7F727B7D707D7F7283857887897C888A7D87897C 7A7C6F75776A72746776786B7E807386887B8A8C7F898B7E8C8E819092859193868D8F8286887B 848679888A7D8E90839395889294879092858F91848E90838E90838F918490928591938685877A 7D7F728284778F91849496898B8D807F817481837684867987897C87897C848679828477818376 8183758A887B8B897A8C8A7B8D8B7C8D8B7C8C8A7B8B897A8A88798C8A7B8886778D8B7C989687 9D9B8C9C9A8BA09E8FA8A697A19F90A19F90A19F90A3A192A2A0919C9A8B918F808987788C8A7B 8E8C7D8C8A7B8886778785768A88798B897A898778878576888677848273807E6F868475908E7F 8F8D7E8785768F8D7E8C8A7B8B897A8D8B7C908E7F8F8D7E8B897A878576848273858374878576 8987788A88798987788987788886778886778A8879878576838172898778959384989687929081 8E8C7D918F809290819290818F8D7E8E8C7D8E8C7D8E8C7D8482738684758987788C8A7B8D8B7C 8D8B7C8C8A7B8B897A8D8B7C918F808F8D7E8583747E7C6D807E6F868475898778807E6F828071 8583748785768886778785768684758482738684758A88798D8B7C8D8B7C8B897A8B897A8D8B7C 908E7F9896879694859290818C8A7B8785768280717E7C6D7C7A6B828071828071838172848273 8381728381728280718280718684758B897A9290819896879B998A9B998A999788979586979586 969485949283929081908E7F8D8B7C8B897A8A8879908E7F918F80929081929081918F808F8D7E 8D8B7C8C8A7B8C8A7B8C8A7B8C8A7B8D8B7C8D8B7C8D8B7C8D8B7C8E8C7D8C8A7B8E8C7D8E8C7D 8C8A7B8886778785768A88798E8C7D908E7F918F809391829593849694859896879997889A9889 9290818F8D7E8B897A8886778886778987788C8A7B8F8D7E8C8A7B8C8A7B8C8A7B8C8A7B8A8879 888677868475848273858374848273848273838172838172828071828071817F70838172848273 868475878576878576878576868475868475888677878576868475858374858374858374868475 8785768684758785768987788A88798B897A8A8879898778888677878576868475848273838172 8381728381728482738482738785768886778A88798D8B7C908E7F9391829593849694858B897A 8A8879888677858374828071807E6F7E7C6D7C7A6B7D7B6C7D7B6C7D7B6C7C7A6B7C7A6B7B796A 7B796A7B796A7674657775667775667876677977687A78697A78697B796A8583748381727F7D6E 7B796A7876677674657573647573647F7D6E807E6F807E6F817F70828071838172838172838172 848276838175838175828074817F73807E72807E727F7D717C7A6E7C7A6E7B796D7B796D7A786C 7A786C79776B79776B807E727F7D717E7C707D7B6F7B796D79776B78766A777569716F63706E62 6F6D616F6D616F6D61716F63737165747266737165737165737165737165737165737165737165 737165757367747266716F636F6D616D6B5F6D6B5F6D6B5F6B6B5F67675B67695C696B5E6B6D60 6D6F626D6F626D6F626D6F627375686F71646B6D606C6E616F71647274677173667072656C6E61 6E706370726572746774766974766974766973756872746773756874766975776A75776A747669 73756872746775736774726674726674726673716573716572706472706469675B68665A68665A 6765596664586563576563576363576161595E5F575E5F5761625A66675F696A62696A62676860 60615972736B797A726D6E6667686070716973746C6D6E66716E676F6C656D6A635C5952413E37 3F3C354B48414E4B44666B656469636267615F645E5B605A585D57555A54545953585D57585D57 585D57585D57585D57585D57585D57585D57616660626761636862646963656A64666B65676C66 676C66676C66686D67686D67696E686A6F696B706A6B706A6C716B71766F727770737871757A73 767B74777C75777C75777C75696E67696E676A6F686B70696C716A6D726B6E736C6E736C6C716A 6C716A6C716A6B70696B70696B70696A6F686A6F686A6F68686D66666B64656A63646962646962 646962656B6173796D73796D73796D73796D73796D73796D73796D73796D72786C71776B71776B 71776B73796D757B6F777D71797F7371736873756A76786D77796E797B707A7C717D7F747F8176 77796E75776C7173686F71666F716672746977796E7A7C7184857D85867E83847C7C7D7574756D 72736B76776F7B7C7481827A83847C8788808B8C848F908892938B94958D95968E8D8E868C8D85 8889817E7F7774756D70716973746C7778708C8D858D8E868F908890918992938B92938B92938B 92938B92938B92938B92938B92938B92938B92938B92938B92938B9D9E969C9D9598999193948C 8B8C8483847C7C7D75787971888981898A828A8B838D8E868F90888E8F878B8C8487888092938B 93948C87888072736B6C6D65797A728788808C8E8382847980827581837684867987897C86887B 8183767C7E718082757F817481837685877A8A8C7F8E90838E90838E90838F9184919386929487 8C8E8185877A82847787897C8D8F828A8C7F8A8C7F8A8C7F8A8C7F8A8C7F8B8D808B8D808C8E81 8183767F817480827585877A8B8D808B8D8085877A7E80737E80738183768385787F8174797B6E 7A7C6F818376898B7D828073838172858374868475868475858374838172828071888677858374 8C8A7B9A9889A2A091A09E8FA09E8FA4A293A4A293A2A091A19F90A19F90A09E8F9A9889918F80 8A88798A88798684758684758A88798C8A7B8A88798886778A8879868475878576848273817F70 8886779391829290818886778B897A8987788886778B897A8F8D7E8F8D7E8C8A7B898778828071 8381728583748785768886778886778785768684758583748886778785768583748D8B7C9A9889 9E9C8D9997888B897A918F80979586989687959384949283969485999788838172838172828071 828071807E6F7F7D6E7E7C6D7D7B6C817F708482738886778482737A78697573647D7B6C898778 8A88798B897A8D8B7C8F8D7E908E7F908E7F8F8D7E8E8C7D7F7D6E8381728482738280717E7C6D 7E7C6D838172898778888677878576848273817F707D7B6C7977687775667573646D6B5C6E6C5D 727061797768817F708785768A88798B897A8482738583748886778B897A8E8C7D908E7F929081 9290818F8D7E8F8D7E8E8C7D8D8B7C8B897A8A88798A88798987788886778A88798C8A7B8D8B7C 8E8C7D8E8C7D8E8C7D8D8B7C8D8B7C8C8A7B8A8879878576848273817F707F7D6E7D7B6C858374 8A88798D8B7C8C8A7B8886778684758987788D8B7C8987788C8A7B908E7F959384989687999788 989687979586918F80908E7F8D8B7C8B897A8A88798A88798C8A7B8C8A7B8C8A7B8C8A7B8C8A7B 8C8A7B8A8879888677868475848273858374848273848273838172828071817F70807E6F807E6F 858374848273838172817F70817F70817F70828071838172888677898778898778898778898778 8785768583748482738583748785768987788A8879898778878576858374838172828071838172 8583748684758785768684758583748583748B897A8B897A8D8B7C8E8C7D908E7F929081939182 9492838684758583748280717F7D6E7C7A6B797768777566757364777566777566777566787667 7876677977687977687977687775667674657674657674657573647573647472637472637C7A6B 7A7869777566757364737162727061727061727061828071828071838172838172848273858374 868475868475828074817F73817F73807E727F7D717E7C707E7C707D7B6F7A786C7A786C7B796D 7B796D7C7A6E7C7A6E7D7B6F7D7B6F828074828074828074828074817F73817F73817F73817F73 7D7B6F7C7A6E7A786C78766A78766A78766A79776B7A786C7F7D717F7D717F7D717F7D717F7D71 7F7D717F7D717F7D717A786C7A786C7A786C79776B78766A7573677371657070646F6F636E7063 6F716470726572746774766977796C797B6E8082757A7C6F73756872746775776A76786B747669 71736672746773756875776A76786B76786B76786B74766974766975776A747669737568727467 72746773756874766975776A737165727064706E626E6C606B695D69675B676559666458636155 626054626054615F53605E525F5D515F5D515C5C5059595155564E52534B53544C5758505A5B53 595A5257585047484061625A6E6F6764655D6061596B6C646E6F6766675F726F686B6861706D66 67645D47443D3C393246433C47443D676C66676C66666B65656A64646963636862626761626761 5D625C5D625C5D625C5D625C5D625C5D625C5D625C5D625C62676162676162676161666060655F 60655F5F645E5F645E676C66676C66686D67686D67696E686A6F696B706A6B706A686D66676C65 666B64656A63666B64686D666A6F686C716A757A737479727277706F746D6C716A696E67676C65 656A63757A73757A73757A73767B74767B74777C75777C75777C75797E77787D76767B74747972 72777072777073787173787173796F73796D73796D73796D73796D73796D73796D73796D72786C 71776B71776B71776B72786C747A6E767C70777D71797B707C7E737E80757C7E73787A6F76786D 787A6F7A7C7171736874766B7A7C7180827787897E8B8D828F918690928781827A82837B808179 7A7B7376776F7B7C7487888092938B8F908890918991928A9091898D8E8687888082837B7F8078 82837B81827A7B7C7472736B6F70687879718A8B83999A9294958D92938B8F90888D8E868D8E86 8E8F878F908891928A95968E94958D93948C91928A91928A93948C94958D95968E8B8C848B8C84 8B8C848B8C848B8C848B8C848C8D858C8D859091898F90888E8F878D8E868C8D858D8E868D8E86 8E8F87797A72797A7272736B6D6E66797A728A8B838889817A7C7185877C84867986887B888A7D 898B7E8486797A7C6F7274678B8D808E908392948796988B97998C97998C95978A949689A0A295 989A8D9092858E90839294879395889193868C8E819294879193868E90838C8E81888A7D86887B 848679828477797B6E8284778C8E819092858E90838A8C7F8A8C7F8B8D807D7F72808275808275 787A6D7173667476698284779092848785788886778A88798B897A8B897A8A8879888677878576 8583748280718785769492839997889391828D8B7C8E8C7D9997889896879795869997889B998A 9997889391828E8C7D8583747E7C6D807E6F8A88798E8C7D8987788886778C8A7B868475868475 8280717F7D6E8785769391829290818987788785768583748583748886778D8B7C8E8C7D8C8A7B 8886778785768886778A88798C8A7B8C8A7B8C8A7B8B897A8B897A8987788B897A888677838172 8886779391829593848F8D7E8A88799290819997889A9889949283918F80939182989687939182 908E7F8C8A7B878576838172817F70807E6F807E6F7775667B796A8280718381727775666D6B5C 7674658886778684758684758684758785768886778987788A88798A88798E8C7D8F8D7E8F8D7E 8A88798482738583748D8B7C9593848F8D7E8E8C7D8D8B7C8B897A8A8879888677878576868475 8E8C7D8C8A7B8A88798B897A8D8B7C8E8C7D8C8A7B8A88798A8879888677848273817F70817F70 838172868475888677868475868475878576878576888677888677898778898778828071838172 8684758987788B897A8D8B7C8D8B7C8D8B7C9593849391828F8D7E8987788381727D7B6C797768 7674657E7C6D8482738B897A8B897A8785768583748886778D8B7C8381728684758B897A8E8C7D 8F8D7E8C8A7B8987788684758A88798A8879898778898778878576868475858374848273858374 8785768987788C8A7B8D8B7C8E8C7D8D8B7C8D8B7C8D8B7C8D8B7C8C8A7B8B897A898778888677 8886778785768886778583748280717E7C6D7D7B6C7E7C6D807E6F828071848273858374868475 868475848273807E6F7C7A6B7977687E7C6D7F7D6E817F70817F70807E6F7D7B6C7A7869777566 8482738785768A88798D8B7C8F8D7E8E8C7D8C8A7B8A8879838172828071817F707F7D6E7D7B6C 7B796A7A7869797768797768797768797768797768787667787667777566777566727061737162 747263757364767465777566787667797768797768787667777566757364727061706E5F6F6D5E 6E6C5D6F6D5E6F6D5E706E5F7270617573647977687C7A6B7E7C6D7876677977687977687A7869 7B796A7C7A6B7C7A6B7D7B6C7F7D717F7D717E7C707D7B6F7D7B6F7C7A6E7B796D7B796D79776B 79776B7A786C7C7A6E7D7B6F7E7C707F7D717F7D7177756977756978766A79776B7B796D7C7A6E 7D7B6F7E7C70817F73807E727E7C707B796D7A786C7A786C7A786C7B796D817F73817F73817F73 817F73817F73817F73817F73817F73807E728280748381758482768280747F7D717B796D76766A 8080747C7E7177796C7375687173667072657173667274677476696D6F62686A5D696B5E6F7164 74766973756871736676786B77796C787A6D787A6D787A6D77796C75776A747669787A6D76786B 73756871736671736673756876786B787A6D78766A78766A78766A78766A79776B79776B79776B 79776B706E62706E62706E626F6D616E6C606D6B5F6D6B5F6A6A5E72726A6D6E66686961676860 696A62696A6267686065665E3C3D355B5C546C6D6565665E63645C70716974756D6B6C64737069 68655E716E676E6B644C49423B383143403944413A7378727277716F746E6C716B686D67656A64 6368626166605D625C5C615B5B605A5A5F59585D57575C56555A54555A5460655F5F645E5D625C 5C615B5E635D616660656A64686D676166605F645E5C615B5B605A5B605A5D625C60655F626761 535852555A54595E585E635D646963696E686D726C6F746E686D676A6F696C716B70756F757A74 7A7F797D827C7F847E7E837D80857F8287818287818186807D827C797E78777C767176706D726C 676C666267615F645E60655F636862656A63646A60656B61686E646B71676E746A6F756B6F756B 6F756B797F75787E74767C72757B71757B71757B71767C72777D737A7B7377787074756D73746C 74756D797A727F807883847C7F807882837B8889818D8E869091899091898F90888E8F877F8078 7F80787E7F777E7F7780817983847C86877F8889818E8F878D8E868C8D85898A8287888085867E 83847C82837B888981888981898A828A8B838B8C848C8D858C8D858D8E868A8B838C8D858F9088 9091898F90888C8D85898A8286877F8A8B83898A8287888085867E85867E85867E878880878880 8081797F80787F807884857D898A828C8D858B8C8488898186877F878880898A828E8F87909189 8C8D8584857D7D7E7671726A7E7F778A8B838889817D7E76797A7282837B8E90858B8D82919386 8E90837D7F72696B5E66685B787A6D8B8D808D8F828A8C7F898B7E8C8E8191938696988B97998C 96988B96988B989A8D9C9E919EA0939EA0939A9C8F95978A91938696988B94968994968997998C 96988B8D8F827D7F72707265787A6D75776A75776A7A7C6F8183768284777C7E7176786B818376 787A6D6E70636E706375776A7E80738284778385778A887B8B897A8C8A7B8D8B7C8E8C7D8F8D7E 8F8D7E8F8D7E807E6F8886778F8D7E908E7F8B897A8785768A88798E8C7D8F8D7E878576888677 8F8D7E8D8B7C838172848273908E7F8482738381728280718280718583748987788D8B7C908E7F 8C8A7B888677838172828071858374878576878576858374878576878576888677888677898778 8A88798A88798B897A8D8B7C8E8C7D8F8D7E8F8D7E8F8D7E8D8B7C8B897A8A88798D8B7C918F80 9290818A8879817F708280718D8B7C999788918F809492839795869694859290818F8D7E8F8D7E 918F80959384908E7F898778868475878576878576858374838172888677848273817F70817F70 8280718280717F7D6E7B796A8A88798C8A7B8C8A7B8886778482738381728684758A88798A8879 8785768280717F7D6E7F7D6E8482738A88798E8C7D878576858374838172817F70828071858374 8886778A88798482738583748583748583748684758684758583748583748F8D7E8B897A888677 8987788B897A8B897A888677848273868475878576888677888677888677878576868475868475 8381728482738785768A88798E8C7D918F809492839593849391829391829391829290818F8D7E 8C8A7B8987788785768987788987788987788886778886778886778785768785768C8A7B8C8A7B 8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8C8A7B8280718482738684758987788A88798A8879898778 888677838172838172838172828071828071817F70807E6F807E6F7F7D6E807E6F817F70817F70 817F70807E6F7E7C6D7D7B6C817F70817F708280718280718381728482738583748583747E7C6D 7E7C6D7E7C6D7E7C6D7E7C6D7E7C6D7E7C6D7E7C6D807E6F7D7B6C7876677674657876677D7B6C 8381728886777270617876677E7C6D807E6F7F7D6E7D7B6C7E7C6D807E6F888677858374807E6F 7B796A7876677573647472637472637371627573647876677B796A7C7A6B7B796A797768787667 7B796A7A78697977687876677876677977687B796A7C7A6B787667767465747263716F60706E5F 6F6D5E6F6D5E706E5F7371627472637775667A78697E7C6D817F70838172858374817F70817F70 817F70817F70807E6F807E6F807E6F807E6F817F73828074828074828074807E727E7C707B796D 7A786C7B796D7C7A6E7E7C707F7D717F7D717D7B6F7B796D79776B7775697D7B6F848276878579 868478838175828074838175807E727E7C707B796D78766A77756978766A7A786C7C7A6E7D7B6F 7D7B6F7D7B6F7C7A6E78766A7371656E6C606A685C706E62716F6373716576746879776B7C7A6E 7E7C707D7D717E7E727F81748284778385787F8174787A6D7072656B6D606D6F626B6D60696B5E 67695C65675A65675A65675A66685B6B6D606C6E616D6F6270726573756875776A77796C787A6D 797B6E77796C75776A747669737568737568747669747669767468757367747266727064727064 737165747266757367706E62706E626F6D616E6C606C6A5E6B695D6A685C68685C696961686961 67686066675F66675F686961696A626B6C6464655D53544C63645C6C6D656D6E6672736B6C6D65 6F706873706979766F7370696F6C656C6962514E47413E37535049565B55565B55575C56585D57 575C56565B55555A545459535E635D5D625C5B605A595E58575C565459535358525257515B605A 5A5F59595E58575C56575C56575C56585D57595E58525751535852555A54585D575C615B60655F 656A64676C66636862636862636864636862636864626761626763626761666B67686D676B706C 6F746E7176727277717277737277716C716D6C716B6C716D6B706A6A6F6B676C66656A66636862 6A6F6B696E68676C68676C66676C68696E686C716D6D726C636861656B61686E646B71676E746A 70766C71776D72786E747A7073796F72786E72786E72786E72786E73796F73796F73746C74756D 75766E7778707A7B737D7E767F807881827A84857D83847C81827A7F80787D7E767C7D757B7C74 7B7C7481827A82837B84857D878880898A828B8C848C8D858D8E869091898F90888E8F878C8D85 898A8287888086877F85867E8D8E868D8E868E8F8790918991928A93948C94958D94958D91928A 91928A91928A9091899091898E8F878D8E868D8E8686877F85867E83847C81827A7E7F777D7E76 7C7D757C7D757B7C74808179898A8292938B97989096978F9091898B8C848E8F878B8C8486877F 83847C81827A8081797F80787D7E767C7D7580817984857D86877F84857D84857D8788808A8C81 8B8D828B8D80898B7E85877A82847785877A8F918497998C92948794968996988B999B8E9B9D90 999B8E95978A91938695978A96988B97998C989A8D989A8D96988B9294879092858D8F82919386 949689909285888A7D84867986887B8A8C7F8A8C7F888A7D87897C8B8D809092859193868C8E81 86887B888A7D8183767A7C6F7A7C6F80827587897C8A8C7F8A8C7E918F828F8D7E8C8A7B898778 8684758583748583748583747674657D7B6C8583748886778785768785768A88798E8C7D8B897A 8583748583748A88798684757F7D6E8381728F8D7E959384949283949283959384969485989687 9B998A9C9A8B9E9C8D9795868F8D7E8A88798A88798B897A8A8879898778888677888677898778 8A88798A88798B897A8C8A7B8C8A7B8482738684758987788C8A7B8F8D7E908E7F908E7F908E7F 8886778D8B7C908E7F8C8A7B858374868475908E7F9A9889949283959384969485959384929081 8F8D7E8D8B7C8C8A7B949283908E7F898778848273838172848273858374858374868475838172 807E6F817F70838172848273817F707E7C6D737162747263767465767465767465767465787667 7A78698482738280717F7D6E7C7A6B7C7A6B7E7C6D817F70848273888677878576868475858374 858374858374868475878576858374858374868475868475878576888677898778898778858374 838172817F70817F70817F70817F707F7D6E7E7C6D7D7B6C807E6F8482738987788B897A8C8A7B 8B897A8A88798B897A8B897A8B897A8A88798A88798A88798A88798A88798D8B7C8E8C7D8F8D7E 908E7F908E7F8F8D7E8D8B7C8C8A7B8583748684758886778A88798C8A7B8F8D7E918F80918F80 929081929081929081929081929081929081929081929081878576868475848273858374878576 898778888677878576878576868475858374838172828071807E6F7F7D6E7E7C6D7F7D6E807E6F 828071838172848273838172828071817F70848273858374858374868475878576878576888677 8886778886778886778886778886778886778886778886778886778E8C7D8B897A878576848273 8381728583748886778A88798B897A8C8A7B8C8A7B898778858374817F707E7C6D7E7C6D898778 888677878576858374838172817F707F7D6E7E7C6D7E7C6D7D7B6C7C7A6B7C7A6B7E7C6D828071 868475898778888677878576848273828071807E6F807E6F807E6F807E6F7D7B6C7C7A6B797768 7775667573647472637573647573647C7A6B7B796A7B796A7A7869797768787667777566767465 7C7A6B7C7A6B7D7B6C7E7C6D7F7D6E807E6F817F70817F707A786C7B796D7B796D7C7A6E7C7A6E 7C7A6E7C7A6E7C7A6E75736779776B7D7B6F817F73828074807E727D7B6F7B796D7674687B796D 807E72817F737C7A6E78766A767468757367817F737F7D717C7A6E79776B79776B79776B7B796D 7C7A6E75736777756979776B7B796D7B796D7A786C777569767468767468767468777569777569 77756978766A78766A76766A75756976786B797B6E7B7D707A7C6F76786B7274676F716475776A 74766973756872746773756874766976786B77796C7375687274677072656D6F626A6C5F67695C 6466596365586E70636C6E616A6C5F696B5E686A5D686A5D696B5E696B5E6B695D6A685C68665A 67655967655968665A69675B6A685C6E6C606E6C606D6B5F6D6B5F6C6A5E6C6A5E6B695D69695D 7171696F70686D6E666C6D656C6D656C6D656D6E666E6F6764655D53544C63645C6C6D656D6E66 72736B6C6D656F706873706978756E737069716E676F6C6555524B4340394E4B444D524C4E534D 5156505358525358525156504F544E4D524C4B504A4B504A4C514B4D524C4F544E50554F515650 5257514E534D4F544E515650525751535852535852525751525751525751555A54595E585E635D 626761656A64676C66686D676B706C6A6F6B686C6B656A666165645E635F5C605F5B605C606463 636864676B6A696E6A6A6E6D686D69656968626763636766636864626665626763636766656A66 676B6A686D696F73726F74707074737176727276757277737276757277736A6F686A70666B7167 6B71676C72686D73696D73696E746A6E746A6E746A6E746A6E746A6F756B6F756B6F756B6F756B 6E6F6972736D7778727C7D777E7F797E7F797D7E787C7D7780817B7B7C7674756F6E6F696B6C66 6B6C666D6E686F706A81827A83847C85867E87888087888086877F84857D83847C80817981827A 83847C85867E8889818B8C848D8E868E8F878F90888F90888E8F878E8F878D8E868D8E868C8D85 8C8D859091898E8F878C8D858A8B83898A82898A828B8C848C8D859091898E8F878B8C84888981 85867E82837B81827A8081798E8F878C8D85898A8284857D8081797E7F777F807881827A8B8C84 898A8285867E81827A7E7F777E7F7781827A84857D86877F82837B80817983847C8A8B838D8E86 8A8B8386887D8A8C8185877A82847787897C929487989A8D989A8D94968991938693958895978A 95978A9193868D8F82898B7E888A7D9395889193869092859092859092859092858E90838C8E81 8F91848F91848D8F8287897C8183768385788D8F8297998C8F91848D8F828C8E818E9083909285 9092858C8E81888A7D85877A8183767F817480827585877A888A7D898B7E888A7C949285929081 8D8B7C898778868475848273848273858374817F70848273878576898778888677878576888677 8987788A88798785768785768886778684758482738D8B7C9A98899A98899B998A9C9A8B9D9B8C 9D9B8C9C9A8B9B998A9A9889A19F90999788908E7F8B897A8B897A8D8B7C8E8C7D8D8B7C8A8879 8A88798B897A8C8A7B8C8A7B8D8B7C8E8C7D8E8C7D8280718482738785768A88798C8A7B8D8B7C 8E8C7D8D8B7C817F708785768D8B7C8D8B7C8987788987788F8D7E969485989687969485949283 939182918F808E8C7D898778868475918F808E8C7D898778838172807E6F807E6F848273878576 817F707F7D6E7D7B6C7F7D6E838172858374838172807E6F7D7B6C7E7C6D807E6F848273888677 8A88798A8879898778858374848273828071817F707F7D6E7E7C6D7D7B6C7D7B6C918F80929081 939182939182939182929081908E7F908E7F9D9B8C9A98899492838D8B7C8482737C7A6B757364 716F607A78697B796A7C7A6B7A7869797768777566787667797768757364797768817F70888677 8D8B7C8F8D7E908E7F8F8D7E8D8B7C8C8A7B8C8A7B8A8879898778888677878576878576817F70 8280718583748886778A88798B897A8B897A8B897A8482738583748785768987788B897A8D8B7C 8E8C7D8F8D7E908E7F908E7F908E7F908E7F908E7F908E7F908E7F908E7F8D8B7C888677828071 828071868475888677878576848273898778888677868475848273828071817F707F7D6E7E7C6D 807E6F8280718482738684758886778886778785768785768785768886778886778987788A8879 8B897A8B897A8C8A7B8B897A8B897A8B897A8B897A8B897A8B897A8B897A8B897A939182918F80 8F8D7E8C8A7B898778878576858374848273868475848273817F70807E6F807E6F817F70807E6F 7F7D6E7D7B6C7F7D6E817F70838172838172828071817F707F7D6E838172817F707D7B6C7A7869 7977687A78697C7A6B7D7B6C888677878576858374838172828071828071838172838172817F70 7F7D6E7D7B6C7A78697876677876677876677876677C7A6B7C7A6B7B796A7B796A7A7869797768 7977687876677B796A7B796A7B796A7B796A7B796A7B796A7B796A7B796A757367757367757367 75736777756979776B7C7A6E7E7C7076746879776B7E7C70817F73817F737E7C7079776B757367 78766A7D7B6F8280748381757F7D717C7A6E7B796D7B796D807E727F7D717D7B6F7B796D7A786C 7B796D7C7A6E7C7A6E7E7C707F7D71817F73817F73817F73807E727E7C707D7B6F7E7C707D7B6F 7B796D79776B7775697573677371657070646E6E626E70636F7164717366727467737568747669 74766975776A75776A75776A75776A77796C7A7C6F7C7E717E8073696B5E696B5E6A6C5F6B6D60 6D6F626E70636E70636F71646E70636C6E616A6C5F696B5E686A5D686A5D696B5E696B5E656357 6462566361556260546260546361556563576664586A685C6B695D6B695D6B695D6C6A5E6C6A5E 6D6B5F6B6B5F6D6D656B6C6468696166675F65665E64655D65665E65665E66675F55564E64655D 6D6E666E6F6773746C6C6D656F706874716A76736C73706975726B7370695D5A5347443D47443D 4A4F494B504A4C514B4C514B4A4F49454A4440453F3D423C3E433D3E433D40453F424741444943 464B45484D47494E48434842474C464D524C535852575C56595E585A5F59595E58636862646963 676C66686D67676C66656A646166605F645E6165646165646064636064635F63625F63625F6362 5E62615A5E5D5C605F5F63626165646165646064635D61605C605F6064635F63625F6362616564 666A696C706F7276757579787175747074736F73726E72716B6F6E696D6C666A69656A66696E67 696F65696F65696F656A70666B71676C72686D73696B71676B71676D73696E746A6E746A6E746A 6E746A6E746A71726C74756F797A747C7D777D7E787B7C7677787275767072736D6F706A6A6B65 6667616768626B6C6671726C7576707C7D757C7D757C7D757B7C7478797175766E72736B71726A 74756D75766E797A727D7E7681827A85867E8889818A8B8388898187888084857D82837B7E7F77 7C7D75797A7278797187888085867E82837B8081797F807880817981827A83847C87888085867E 81827A7E7F777C7D757B7C747C7D757D7E768081797D7E76797A7274756D73746C797A7285867E 8E8F877778707D7E7684857D87888087888086877F878880898A8286877F82837B80817981827A 86877F898A8288898186887D87897E8284777F81748385788B8D808E90838A8C7F848679888A7D 888A7D85877A7F81747A7C6F797B6E7D7F728183769092858C8E81898B7E888A7D8A8C7F8B8D80 8A8C7F888A7D9496898C8E8185877A85877A8B8D809193869294879092858F91848E90838D8F82 8C8E818C8E818B8D80898B7E87897C87897C87897C888A7D8A8C7F8C8E818D8F828C8E818B8D7F 89877A8886778785768684758583748583748482738482738F8D7E8F8D7E908E7F8F8D7E8F8D7E 8E8C7D8E8C7D8D8B7C969485939182908E7F8C8A7B8886778987789290819C9A8B8F8D7E918F80 939182949283939182908E7F8C8A7B8A8879908E7F8B897A8785768684758A88798D8B7C8F8D7E 8E8C7D8B897A8C8A7B8C8A7B8D8B7C8E8C7D8E8C7D8F8D7E8F8D7E878576888677898778898778 8886778785768583748482737E7C6D8482738B897A8C8A7B8987788684758886778B897A989687 949283918F80908E7F8F8D7E8C8A7B858374807E6F8987788A88798987788482737F7D6E7E7C6D 817F708482737B796A7876677775667A78697F7D6E828071817F707F7D6E838172828071848273 8987788E8C7D908E7F8E8C7D8A88798987788A88798A88798A88798785768381727F7D6E7C7A6B 8C8A7B8E8C7D9290819593849694859593849391829290818F8D7E8F8D7E8E8C7D8B897A868475 7F7D6E7977687472637876677B796A7D7B6C7C7A6B7876677775667977687C7A6B7674657A7869 7F7D6E8583748A88798E8C7D908E7F908E7F8A88798A88798B897A8C8A7B8D8B7C8E8C7D8F8D7E 8F8D7E7C7A6B7E7C6D807E6F8381728482738583748583748482738A88798A8879898778888677 8684758583748482738482738785768785768785768785768785768785768785768785768F8D7E 888677817F70817F708684758987788482737F7D6E858374858374858374848273848273838172 838172838172817F708381728684758987788B897A8C8A7B8C8A7B8C8A7B878576878576888677 8987788987788A88798B897A8B897A848273848273848273848273848273848273848273848273 878576888677888677888677858374817F707D7B6C7B796A7371626F6D5E6A68596B695A6F6D5E 7371627573647573646866576A68596D6B5C706E5F7270617472637472637472637977687A7869 7C7A6B7D7B6C7C7A6B7977687674657472637B796A7A78697977687977687A78697C7A6B7E7C6D 807E6F7E7C6D7C7A6B7977687775667573647573647573647573647977687977687A78697A7869 7B796A7C7A6B7C7A6B7D7B6C7D7B6C7C7A6B7A7869797768777566757364747263737162777569 76746875736774726675736778766A7A786C7C7A6E78766A7A786C7B796D7C7A6E7A786C767468 7270646F6D617270647775697D7B6F807E72807E72807E728381758583777F7D717E7C707D7B6F 7C7A6E7B796D7A786C7A786C7A786C828074838175838175848276848276848276838175838175 817F73807E727E7C707C7A6E7A786C78766A7674687373676F6F636D6F626C6E616C6E616D6F62 70726573756875776A6C6E616B6D606B6D606B6D606C6E616E7063707265717366787A6D77796C 76786B7476697173666F71646E70636D6F626E70636D6F626B6D60696B5E696B5E696B5E6A6C5F 6A6C5F6A685C69675B68665A68665A68665A6A685C6C6A5E6D6B5F69675B69675B6A685C6B695D 6D6B5F6E6C606F6D616D6D616C6C64696A6266675F63645C61625A606159606159606159686961 56574F66675F6E6F676E6F6773746C6C6D656F706874716A74716A74716A76736C76736C65625B 4F4C4544413A50554F51565052575152575150554F4C514B484D47464B454B504A4B504A494E48 474C46454A4443484241464040453F4A4F494E534D535852595E585D625C5F645E5F645E5E635D 646963656A64656A646469636166605C615B575C56545953575B5A575B5A585C5B5A5E5D5B5F5E 5C605F5D61605E6261575B5A575B5A585C5B5A5E5D5B5F5E5C605F5D61605D61605A5E5D5A5E5D 595D5C595D5C5C605F616564666A69696D6C676B6A666A696367666165645E62615D61605C605F 5B605C656A64656A63646962646962656A63686D666A6F686C716A686D666A6F686C716A6F746D 70756E6F746D6E736C6D726B77787378797478797478797476777273746F71726D6F706B6D6E69 6C6D686A6B666B6C676D6E6971726D767772797A7474756D73746C72736B71726A71726A72736B 73746C74756D7E7F777D7E767D7E767C7D757C7D757B7C747B7C747B7C747B7C747A7B737A7B73 797A7278797178797177787077787083847C82837B8081797F80787E7F777E7F777E7F777E7F77 81827A7E7F777B7C74797A72797A727C7D7580817982837B7B7C747E7F778081797F80787D7E76 7C7D757F807882837B6C6D6573746C7D7E7682837B82837B8081797F80788081797E7F77808179 81827A7F80787C7D757D7E7681827A86887D83857A838578828477818376818376818376828477 8284778385788385788183767C7E71797B6E7A7C6F81837687897C8D8F82898B7E848679838578 86887B888A7D86887B84867983857882847785877A8E9083989A8D9B9D9096988B8F9184999B8E 999B8E999B8E97998C94968993958894968994968993958896988B999B8E9A9C8F9A9C8F999B8E 989A8D989A8C9694879795869997889A9889989687949283908E7F8D8B7C8A88798B897A8C8A7B 8D8B7C8F8D7E918F80939182949283999788989687918F808785768280718583748A88798D8B7C 8B897A8C8A7B8E8C7D8E8C7D8D8B7C8A88798684758381728A88798886778785768987788D8B7C 8F8D7E8D8B7C8A88798B897A8C8A7B8C8A7B8D8B7C8E8C7D8E8C7D8F8D7E8F8D7E868475878576 888677888677888677868475848273838172817F708583748987788987788684758280717F7D6E 7E7C6D9290818F8D7E8C8A7B8B897A8B897A8886778280717D7B6C817F70848273878576868475 8280717E7C6D7D7B6C7E7C6D7573647371627270617674657B796A7F7D6E7E7C6D7C7A6B807E6F 7E7C6D7D7B6C807E6F848273868475838172807E6F8886778987788B897A8A8879878576828071 7C7A6B7876677977687C7A6B807E6F858374878576888677878576868475817F70848273888677 8987788684757F7D6E7876677371627E7C6D817F70838172828071807E6F7F7D6E817F70848273 807E6F807E6F807E6F817F708482738886778B897A8E8C7D8D8B7C8E8C7D8E8C7D8F8D7E908E7F 918F809290819391828987788A88798B897A8B897A8A8879888677868475858374908E7F8F8D7E 8E8C7D8D8B7C8B897A898778888677878576848273848273848273848273848273848273848273 8482738B897A868475817F708482738987788987788280717B796A817F70817F70828071838172 8583748684758785768886778280718482738785768987788C8A7B8C8A7B8D8B7C8C8A7B838172 848273848273858374868475878576878576888677817F70817F70817F70817F70817F70817F70 817F70817F707C7A6B7F7D6E8280718482738482738280717E7C6D7C7A6B7D7B6C7674656E6C5D 6A6859696758686657666455646253605E4F605E4F605E4F6260516462536765566A68596B695A 6E6C5D716F607775667D7B6C817F708381728482738482737B796A7A7869787667767465767465 767465777566787667777566767465737162716F606F6D5E6F6D5E6F6D5E6F6D5E737162737162 727061727061716F60706E5F706E5F706E5F747263757364757364757364767465767465777566 7775667E7C707D7B6F7B796D79776B78766A78766A78766A79776B716F63716F63716F63727064 7270647371657472667472666A685C6F6D6174726676746875736776746879776B7C7A6E7A786C 7A786C7A786C7A786C79776B78766A7775697674686F6D61716F637371657674687A786C7E7C70 8280748381757D7B6F7E7C707E7C707E7C707E7C707E7C707E7C707C7C7077776B7375686F7164 6C6E616C6E616E7063717366737568686A5D67695C65675A636558626457626457636558646659 717366717366717366717366717366717366707265707265686A5D67695C65675A636558636558 6365586466596466596B695D6B695D6A685C6A685C6B695D6D6B5F6F6D61716F636A685C6B695D 6C6A5E6D6B5F6E6C606F6D61706E626F6F6374746C71726A6E6F676B6C64696A62686961686961 686961696A625859516768606F70686F706873746C6C6D656E6F6774716A716E6773706976736C 74716A6D6A635B585147443D565B55565B55575C56585D57595E585A5F595C615B5C615B575C56 565B55555A5454595352575151565050554F4F544E5B605A5C615B5C615B5D625C5C615B5B605A 595E58585D57545953545953555A54555A54555A54535852525751515652565A59575B5A575B5A 575B5A575B5A575B5A585C5B585C5B595D5C595D5C595D5C595D5C5B5F5E5C605F5E62615F6362 5F63625E62615C605F5A5E5D585C5B585C5B585C5B595D5C656968656968646867656968656968 666A69676B6A686D696D726C696E676469625F645D5C615A5B60595C615A5C615A646962676C65 6B70696E736C6F746D6F746D6D726B6C716A77787376777273746F71726D6F706B6D6E696D6E69 6D6E6971726D71726D71726D71726D71726D71726D72736E72736E6D6E686E6F676F706872736B 7778707E7F7783847C87888083847C83847C82837B8081797F80787E7F777D7E767D7E7671726A 73746C76776F797A727E7F7781827A84857D86877F84857D83847C82837B81827A808179808179 8081798081797F80787F80787E7F777E7F7780817982837B85867E878880898A8286877F808179 797A7273746C6F706870716971726A74756D76776F77787077787075766E74756D74756D74756D 7B7C747E7F777E7F777B7C7476776F76776F7C7D7583857A7F8176828477848679828477808275 828477888A7D8E908386887B888A7D898B7E8A8C7F898B7E8A8C7F8C8E818E90838B8D8086887B 82847784867987897C888A7D8486798082756A6C5F787A6D8B8D8096988B989A8D96988B96988B 97998C97998C989A8D999B8E96988B92948792948795978A999B8E91938695978A999B8E989A8D 96988B94968995978A97998BA3A194A4A293A5A394A3A1929D9B8C9492838B897A868475868475 8785768785768583748482738583748886778B897A848273858374807E6F7977687C7A6B878576 8B897A888677908E7F908E7F918F80908E7F8F8D7E8D8B7C8B897A8A8879939182918F808F8D7E 918F80929081908E7F8A88798583748A88798A88798B897A8C8A7B8C8A7B8D8B7C8E8C7D8E8C7D 7F7D6E817F708482738785768A88798B897A8B897A8B897A878576888677898778888677868475 8280717E7C6D7B796A8785768684758684758583748583748381727F7D6E7C7A6B7C7A6B807E6F 8482738684758482737F7D6E7B796A7977687573647270617270617573647A78697D7B6C7C7A6B 7A7869828071807E6F7E7C6D7E7C6D807E6F828071838172838172848273858374858374858374 8280717D7B6C7977687674657977687B796A7D7B6C807E6F828071828071838172828071828071 8482738684758684758280717B796A7472636F6D5E838172848273868475868475858374858374 878576888677878576858374817F707F7D6E807E6F838172878576898778949283949283939182 929081908E7F8F8D7E8F8D7E8E8C7D999788999788989687969485949283908E7F8D8B7C8B897A 8E8C7D8E8C7D8F8D7E8F8D7E908E7F918F80929081929081898778898778898778898778898778 8987788987788987788684758381728280718482738886778886778280717D7B6C807E6F807E6F 817F708381728482738583748684758785768381728482738684758987788A88798A88798A8879 898778807E6F817F70817F70828071838172848273848273848273868475868475868475868475 8684758684758684758684757C7A6B7E7C6D8280718684758886778886778684758583748D8B7C 8886778280717B796A7674657270616D6B5C6B695A696758676556666455656354656354676556 6A68596B695A6A68596A68596A68596C6A5B716F607775667C7A6B807E6F868475848273817F70 7D7B6C7A7869787667777566777566777566757364737162706E5F6F6D5E6E6C5D6E6C5D6F6D5E 6563546664556664556765566765566866576967586967586967586B695A6E6C5D737162777566 7C7A6B7F7D6E817F707F7D717F7D71807E727F7D717E7C707B796D78766A76746867655968665A 69675B6C6A5E706E627674687C7A6E7F7D7177756979776B7A786C7775697270646F6D61716F63 737165757367757367767468767468767468747266727064706E62636155636155646256656357 68665A6C6A5E706E6272706477756978766A79776B7C7A6E7E7C70807E728280748181757A7A6E 77796C7375686F71646D6F626D6F626E70636F71646D6F626B6D60696B5E66685B646659646659 6466596466595C5E515D5F5261635665675A6A6C5F6E70637173667375686C6E616B6D60696B5E 67695C66685B66685B67695C686A5D67655966645866645866645868665A6A685C6C6A5E6E6C60 6F6D616F6D61706E62706E62716F63716F637270647070647171696F70686C6D656A6B63696A62 686961696A62696A626B6C645A5B53696A627071696F706873746C6B6C646E6F6774716A6F6C65 726F687370696F6C65726F6868655E4F4C454D524C4B504A494E48484D474A4F494E534D535852 565B55535852545953555A54575C565A5F595C615B5E635D5F645E5F645E5D625C5A5F59575C56 555A545358525358525358524F544E4F544E4F544E4F544E515650535852555A54575C58565A59 565A5B575B5C575B5C575B5C585C5D585C5D585C5D5F63645F63645F63645F63645F63645D6162 5C60615B5F605F63646064656064656165666064655F63645D61625C6061666A6B676B6C6A6E6F 6B6F706C70716B6F706A6E6F696D6C686D676469625E635C595E57565B54555A53575C55585D56 5E635C626760676C656B70696D726B6C716A696E67676C656F706B6E6E6C6C6C6A6B6B696B6B69 6C6C6A6E6E6C6F6F6D71716F70706E70706E6F6F6D6E6E6C6C6C6A6B6B696B6C676E6F69707169 73746C7778707C7D7581827A85867E8788807E7F777F80787F807880817980817981827A81827A 81827A72736B73746C76776F7A7B737E7F7782837B85867E8788807F80787D7E76797A7276776F 75766E777870797A727B7C7473746C75766E7879717B7C747B7C747A7B7377787075766E74756D 6F70686A6B636A6B637071697A7B7385867E8B8C8483847C8081797E7F777D7E767D7E767D7E76 7C7D757B7C7481827A7C7D7576776F74756D7778707B7C747C7D757C7E738082777D7F727C7E71 7D7F7282847786887B888A7D898B7E87897C86887B84867985877A87897C898B7E8A8C7F8A8C7F 898B7E85877A83857886887B8B8D808A8C7F8385787C7E716E70637A7C6F888A7D8F91848E9083 8A8C7F8A8C7F8C8E8185877A888A7D898B7E87897C828477838578898B7E8F9184898B7E8D8F82 9092858D8F82898B7E87897C8A8C7F8F91839290839290819290818F8D7E888677807E6F777566 7270618987788B897A8A88798583747F7D6E7D7B6C817F708684757E7C6D7F7D6E7B796A777566 817F708F8D7E8F8D7E8583748C8A7B8B897A8A88798886778886778886778987788A88798F8D7E 8D8B7C8B897A8C8A7B8E8C7D8D8B7C8886778482738886778886778987788A88798A88798B897A 8C8A7B8C8A7B817F708381728684758987788B897A8C8A7B8D8B7C8C8A7B8B897A8A8879898778 8987788A88798886778583748381727B796A7E7C6D807E6F817F707F7D6E7E7C6D7E7C6D7E7C6D 7C7A6B7D7B6C7F7D6E828071838172807E6F7B796A7674657977687775667573647876677C7A6B 7F7D6E7D7B6C7B796A7A78697977687674657573647674657B796A8280718785768A88798A8879 8A8879888677868475848273817F70807E6F8A8879898778868475848273838172828071838172 8381727674657775667A78697E7C6D817F70848273868475878576828071817F70817F70838172 858374868475868475858374878576858374828071807E6F807E6F8280718482738684758F8D7E 8F8D7E8F8D7E8F8D7E8F8D7E8F8D7E8E8C7D8E8C7D969485969485959384949283918F808D8B7C 8A8879888677838172848273848273858374858374868475868475868475878576878576878576 878576878576878576878576878576838172828071817F70838172858374868475848273838172 858374858374848273838172828071817F70807E6F807E6F838172848273868475878576878576 868475858374848273807E6F807E6F817F70817F70828071838172848273848273878576878576 8785768785768785768785768785768785767D7B6C7F7D6E817F70848273858374868475878576 878576848273868475868475848273817F707D7B6C7C7A6B7B796A747263737162716F606E6C5D 6C6A5B6B695A696758696758656354636152626051615F506260516563546967586B695A817F70 807E6F7E7C6D7D7B6C7C7A6B7D7B6C7E7C6D7F7D6E7E7C6D7D7B6C7A7869787667767465757364 7674657674656967586A68596B695A6C6A5B6D6B5C6E6C5D6E6C5D6F6D5E6C6A5B6E6C5D706E5F 7472637775667B796A7D7B6C7F7D6E78766A7B796D7F7D718280748280747E7C7079776B767468 6B695D6C6A5E6D6B5F706E6273716578766A7B796D7E7C707E7C707F7D717F7D717A786C747266 706E62716F637472666F6D61706E627270647371657270646F6D616D6B5F6B695D676559666458 64625663615564625666645868665A6A685C716F637270647472667775697A786C7C7A6E7E7C70 7D7D7176766A7476697274676F71646E70636D6F626D6F626D6F626D6F626C6E616A6C5F696B5E 696B5E696B5E6B6D606B6D606B6D606A6C5F686A5D65675A6365586163565F61545E6053707265 6F71646D6F626B6D606A6C5F6A6C5F6B6D606C6E6167655966645866645867655969675B6B695D 6E6C60706E627573677573677472667472667371657371657270647070646C6C646A6B63686961 676860676860676860696A62696A626D6E665B5C546A6B6371726A70716973746C6B6C646E6F67 74716A6D6A63706D666F6C6569665F74716A7370695A5750575C585257514C514D474C46464B47 494E484D524E515650515652515650525753545953565B57575C56585D59595E58575C58545B54 5257534E554E4E534F4F564F525753535A53595E5A565D56555A56535A53555A56575E575B605C 5C625E52565552585855595A565C5C5A5E5F5C62625F63645F6565646869646A6A666A6B656B6B 6367685D6363595D5E55595A52565755595A5A5E5F60646563676865696A65696A6468695E6263 6064656266676367686165665C6061565A5B52565551565250554F4F544E515650565B555D625C 656A64696E685A5F595D625C636862676C66696E68686D67666B65646963656764656764666664 6769666A6A686C6E6B70706E717370696967686A67696967686A67696967686A67696967696B66 72736D73766D767771777A717A7B75787B727879737679707F807A7E81787E7F797B7E757B7C76 797C73797A74777A71777872767970777872767970787973777A71787973777A7176777170736A 6B6C6665685F656660686B626E6F6972736B7778727B7C7482837D86877F8586807E7F77767771 71726A6C6D676D6E6673746E7C7D758788828E8F8790918B8E8F878A8B838A8B838B8C848F9088 93948C94958D91928A8D8E86898A827B7C746E6F677071697C7D7583847C7E7F7775766E828479 797B6E71736875776A7F81768486797F817677796C84867B7C7E7174766B70726573756A787A6D 7D7F747E807387897C85877A848679898B7E8E90838C8E818385787B7D7086887B828477808275 82847786887B8486797C7E717476697B7D707E80738082757E8073797B6E7A7C6F828477898B7E 8B8D808F91849193868E9083888A7D87897C8C8E819294869091839091819290818E8F7F8D8B7C 8687778381727E7F6F878576898A7A8D8B7C8889798482738283738C8A7B929383939182919280 8A887980816F88867790917F8B897A787967807E6F7C7D6B7B796A777866797768797A687E7C6D 807E6F807E6F7E7C6D7C7A6B7F7D6E848273878576878576858374878576878576888677888677 8987788A88798A88798B897A8987788A88798B897A8B897A8B897A8987788785768684758E8C7D 8B897A8A88798B897A8D8B7C8F8D7E8E8C7D8C8A7B7472637876677D7B6C7E7C6D7C7A6B7B796A 7D7B6C7F7D6E7E7C6D7C7A6B7C7A6B7E7C6D817F70807E6F7B796A7775667E7C6D7B796A797768 7B796A7F7D6E817F707F7D6E7D7B6C7B796A7A78697977687775667876677F7D6E8B897A959384 969485959384949283939182918F80908E7F8F8D7E8E8C7D918F808D8B7C878576817F707D7B6C 7A78697A78697A7869868475838172807E6F7D7B6C7D7B6C7F7D6E8280718482737F7D6E7C7A6B 7B796A7D7B6C817F70848273828071807E6F838172828071828071828071828071838172848273 8583748381728482738785768A88798E8C7D918F80949283959384888677888677888677878576 868475838172807E6F7F7D6E7A7869797768777566757364727061706E5F6E6C5D6D6B5C7F7D6E 7F7D6E7F7D6E7F7D6E7F7D6E7F7D6E7F7D6E7F7D6E828071817F70807E6F807E6F817F70848273 8684758886778B897A898778878576848273807E6F7D7B6C7A7869797768838172848273858374 868475858374848273828071817F70817F70817F70828073828071838174848273848275858374 8381748381728381748381728381748381728381748381727B796C797A6A7C7A6D7B7C6C7E7C6F 7D7E6E7F7D707E7F6F757366787969807E717F80707E7C6F7A7B6B7B796C7C7A6B777568777566 7674677371626F6D606A68596664576361525D5B4E605E4F6462556866576A685B6B695A6A685B 6967586E6C5F6D6E5E716F627374647B796C7F80708684778788788684778384748280737E7F6F 7E7C6F7B7C6C7E7C6F7C7D6D8381747F80707F7D70797A6A7876697273637270636F706079776A 7677677876697576667674677374647472657472656F6D617573677D7B6F838175848276817F73 7B796D77756978766A78766A78766A777569767468757367747266737165727064727266747266 6F6F636D6B5F6A6A5E6F6D617070646B695D6B6B5F6F6D616E6E626F6D616A6A5E69675B656559 6A685B68695B69675A68695B6D6B5E6F706276746777786A6D6B5E6C6D5F706E61707163757366 75766879776A78796B6F71646F71646F71666F71646E70656D6F626D6F646C6E61686A5F67695C 67695E67695C696B606B6D606D6F646F71646A6C5F696B5E6A6A5E696B5E6A6A5E696B5E69695D 686A5D68685C66685B6565596264576363576264576464586464586C6A5E6C6A5E6C6A5E6D6B5F 6F6D6172706475736776746879776B78766A777569767468757367747266737165707064727268 7072676F70686F71666F706871736872736B73756A6E6F675C5E536A6B6371736870716973756A 6B6C646E706574716A6C69606F6C656C696065625B7572697A7770625F56464A494A4F4B4F5352 555A56595D5C5B605C5B5F5E5A5F5B585C5B565B57535756525753535756575C585C605F5F6460 575D5B555E59565C5A535C57545A58515A555258565059545C62605059544D53514E57524F5553 49524D4F5553565F5C545A58545D5A595F5D5A63605E64625D66635F65635C6562656B69626B68 6369675F68655E646258615E575D5B565C5A6468676468676367666266656165646064635F6362 5E62616D7170696D6C6468675F63625C605F5B5F5E5C605F5D6160616564656A66686D69686D69 656A66636864646965666B67636864636864646965646965656A66666B67676C68676C68686D69 696E686C6E696B706A6F716C6E736D71736E70756F7476716E736D6B6D68666B65686A656B706A 72746F757A7471736E747972787A7570756E696B66656A6370726D787D767D7F7A7A7F78797B76 757A7375777273787175777274797274767171766F71736E6F746D72746F7479727A7C777A7F78 5E605B5C615A62645F696E677678737B80797E807B7C7F787D7E79797A747778737A7B757E7F7A 7C7D777475706D6E68595A556869637B7C778586808485807F807A7D7E797E7F797D7E76808179 83847C82837B7F80787E7F7781827A84857D6F70687778707F807881827A7F80787D7E76808179 85867E7D7E767D7F747C7D757A7C717879717A7C7181827A87897E85867E86887D8889818A8C81 8B8C848B8D828B8C848A8C818B8D80898B7E8A8C7F90928594968991938686887B7C7E7186887B 86887B86887B86887B86887B86887B86887B86887B85877A87897C87897C85877A83857885877A 8A8C7F9092859294879092858C8E81898B7E888A7D898B7E8A8C7F8C8E809092849295848D8E7E 828574838474898C7B8A8B7B818473878878868978888979888B7A898A7A898C7B8B8C7C8A8D7C 7D7E6C8386718485737B7E697F806E888B768788767B7E69727361727560737462737661767765 777A65797A687A7B697A78697775667573647876677E7C6D838172848273838172858374858374 858374858374858374858374858374858374868475807E6F8280718A88798C8A7B888677888677 8E8C7D8583748583748583748583748482738482738381728381727674657876677B796A7D7B6C 7D7B6C7B796A7876677775667B796A7C7A6B7E7C6D7E7C6D7C7A6B787667747263716F607C7A6B 7C7A6B7B796A7A7869797768787667787667777566817F70817F70807E6F7F7D6E7E7C6D7C7A6B 7C7A6B7B796A8F8D7E8F8D7E8E8C7D8E8C7D8C8A7B8B897A8886778785768A8879817F70828071 8A88798886777A78697573647B796A7E7C6D7D7B6C7C7A6B7C7A6B7C7A6B7E7C6D807E6F817F70 7E7C6D807E6F807E6F7B796A767465787667807E6F888677868475838172817F70838172868475 8886778684758482737C7A6B7F7D6E817F707E7C6D7B796A7E7C6D888677918F808583748A8879 8D8B7C898778828071807E6F8785768F8D7E888677878576878576868475858374848273848273 8381727D7B6C7E7C6D7F7D6E817F70817F70828071817F70817F70807E6F817F70838172848273 858374858374848273838172807E6F807E6F817F70838172848273868475878576878576757364 7775667C7A6B807E6F828071828071807E6F7F7D6E817F72817F72817F73828073828074828073 8381758381747A786C7B796C7C7A6E7E7C6F7F7D71807E71817F73817F728585798284767F7F73 7A7C6E7A7A6E7A7C6E7D7D717E807278786C77796B77776B757769757569737567747468737466 7F7D717D7B6E79776B767467747266737164737165737164747266747265747266747265757367 7573667573677573667575697274667171656F71636F6F636F7163717165717365838377818375 8282768082748080747E80727F7F737D7F718484788385778585798385778080747A7C6E76766A 7274666B6B5F6E706274746877796B78786C7274666E6E626A6A5E716F63727064747266767468 78766A7B796D7C7A6E7D7B6F807E727D7B6F7A786C77756978766A7C7A6E807E72848276717165 71736674746875776A76766A74766973736771736677776B77796C79796D787A6D79796D77796C 76766A747668686959686B586A6B596B6E5B6F705E7073607374627376637D7E6C7C7F6C7C7D6B 7A7D6A7A7B69797C69797A68787B6A76786B7274696D6E66686A5F66675F686A5F6B6C646D6F64 6C6D656B6D626A6B63686A5F65665E63655A62635B61635865655967675B6B695D6C6C60727064 73736778766A77776B7472667070646E6C6069695D6A685C69695D6E6C606F6D61676559636155 5E5C505B594D5C5A4E62605469675B6E6C6069675B68665A666458656357656357656357676559 65655967675B66685B66685D65675A63655A6062555E60555C5E5163655A4E50435C5E53747669 6F71666B6D6076786D7A7C6F77746B757367726F66706E62706D647270647572697775695A5E5D 595D5C585C5B565A595357564F53524B4F4E494D4C4D51504F5352535756575B5A5B5F5E5D6160 5F63625E64625B615F5A63605B64615D66635F6865616A67636C69636C695C6562545D5A515A57 545D5A525B584B54514C5552525B5858615E59625F5A63605B64615D66635F6865606966616A67 5E67645D66635A636059625F58615E59625F5B64615D6663636766656968686C6B6A6E6D696D6C 666A696165645E6261585C5B585C5B585C5B595D5C5C605F5E62616165646367665D6160626665 666A69676B6A656968646867666A69686C6B626665636766656968666A69676B6A676B6A676B6A 666B67636864646963666B65686D676A6F696C716B6D726C6E736D70756F6F746E6D726C6C716B 6F746E737872787D777B807A737872797E787D827C797E787176706E736D7479737C817B6F746E 6F746E6F746E6F746E6F746E70756F7176707176707D827C7B807A777C767479737176706F746E 6E736D6E736D6A6F696F746E737872757A74747973747973767B75787D777E7F7A7A7B76757671 7576717778737576716E6F6A6869646566616C6D6873746F7475706F706B6A6B66696A656A6B65 757670787971797A7277787072736B70716971726A73746C797A7280817986877F87888083847C 80817981827A83847C7B7C747E7F7783847C8788808B8C848F908893948C96978F94958D96978F 989991999A929A9B939A9B939A9B93999B9092948997998C999B8E95978A8A8C7F838578818376 83857886887B86887B86887B86887B86887B86887B86887B86887B86887B86887B85877A848679 84867986887B898B7E8C8E819496899294878F91848D8F828D8F828E9083909285919385898B7D 878A798184737D806F7E81708386758184737D806F7A7D6C7A7D6C7A7D6C7B7E6D7C7F6E7D806F 7D806F7E81707C7F6C7E816C797C6771745F7477627E816C7E816C7578637A7D687B7E697C7F6A 7D806B7D806B7B7E69797C67787B687775667674657674657A7869817F70858374858374838172 8482738482738482738482738482738482738482738482738583747E7C6D7D7B6C848273868475 8482738684758E8C7D7D7B6C7D7B6C7D7B6C7D7B6C7D7B6C7E7C6D7E7C6D7E7C6D767465787667 7C7A6B807E6F828071838172828071828071807E6F807E6F807E6F7F7D6E7D7B6C7B796A787667 777566817F708280718381728684758886778A88798B897A8C8A7B868475868475858374858374 8482738482738381728381727F7D6E817F70838172858374878576858374828071807E6F868475 7F7D6E807E6F898778898778807E6F7F7D6E868475868475868475868475868475858374858374 8583748583747F7D6E828071838172807E6F7B796A7A78697F7D6E848273807E6F7C7A6B7A7869 7C7A6B7E7C6D7D7B6C7876677270618381728482738280717D7B6C767465737162767465797768 838172828071817F70828071858374858374848273828071838172838172828071828071817F70 807E6F7F7D6E7F7D6E807E6F828071858374888677898778888677868475848273878576878576 878576868475838172807E6F7D7B6C7B796A858374858374848273828071817F707F7D6E7E7C6D 7E7C6D7775667876677B796A7D7B6C7E7C6D7E7C6D7E7C6D7E7C6D817F73817F73817F73807E72 807E72807E72807E727F7D71868478858377858377848276848276858377868478848478818175 7F81747E80737D7F727C7E717D7F727D7F727E80737F81747E80737D7F727C7E717A7C6F797B6E 787A6D77796C7B796D7A786C7A786C78766A777569757367747266737165767468767468767468 76746876746876746877756975756977776B76786B787A6D7A7C6F7C7E717D7F727E80737E8073 7B7D707A7C6F7A7C6F797B6E787A6D77796C77796C77796C74766975776A76786B77796C77796C 77796C76786B75776A6D6F6270726574766976786B76786B7375686F71646D6F62777569777569 767468767468757367747266747266737165737165727064706E62706E62716F63747266777569 78786C77776B76786B75776A7476697375687274677274677274676A6C5F6C6E616F7164727467 75776A76786B76786B76786A777A67777A65777A6576796475786375786374776274776271745F 71745F70735E6F725D6E715C6E715C6D705B6D705F7072676E6F676B6C64686961676860686961 6A6B636C6D656A6B636A6B63696A62696A6268696168696168696167695E6B685F6B695D6D6B5F 6E6C606E6C606D6B5F6D6B5F6C6A5E7472667371657371657472667573677775697A786C7B796D 727064706E626E6C606D6B5F6C6A5E6D6B5F6D6B5F6E6C606F6D616F6D616E6C606F6D61706E62 72706474726674746875756974766975776A7476697274677072656D6F626B6D607375685A5C4F 5F61547375687072656B6D606F71646C6E61716F63706E626F6D616E6C606E6C606F6D61706E62 716F63494D4C4A4E4D4A4E4D4C504F4F5352525655555958575B5A555958585C5B5D6160616564 6266656165645E62615B615F6369675F68655D666359625F555E5B515A574E57544D565358615E 535C59545D5A5B64615A6360525B58505956555E5B565F5C555E5B535C59535C59545D5A57605D 5B64615D66634E57544F5855505956525B58555E5B57605D59625F5B6461606463616564626665 6367666266656064635E62615D61605B5F5E5D6160606463626665656968666A69666A69666A69 646867676B6A696D6C676B6A6266655F63625E62615F6362606463626665666A69686C6B696D6C 686C6B666A69646965696E6A6A6F696C716B6F746E727771747973767B75777C76797E787A7F79 7C817B7E837D828781858A84878C86898E88878C868C918B8E938D888D877E837D777C76777C76 7B807A717670727771757A74777C76797E787A7F797A7F79797E787C817B7C817B7A7F79787D77 74797370756F6C716B6A6F69767B757D827C838882818680797E78757A74797E787E837D848580 7E7F7A78797475767174757073746F6F706B6C6D687F807B7E7F7A7A7B7675767170716C6E6F6A 70716C72736D7879737A7B737B7C7478797172736B6F70686F706871726A7778707B7C747F8078 7F80787A7B7377787076776F77787076776F75766E7778707B7C7481827A8788808B8C848D8E86 8A8B838B8C848D8E868F90888F90888F90888E8F878D8F84898B808C8E818B8D808486797B7D70 77796C7A7C6F7F817484867984867984867984867984867984867984867984867986887B848679 82847782847784867986887B87897C87897C85877A84867983857882847783857884867986887B 888A7C8587797D806F787B6A7C7F6E8083728083727E81707E81707E81707E81707F8271808372 818473818473828574828574878A778487747A7D6A7275627578657F826F8083707A7D6A7B7E6B 7D806D7F826F8083707E816E7A7D6A7679667275627472637472637775667E7C6D858374888677 8785768381728482738482738482738482738482738482738482738482738785767B796A757364 7775667876677573647876677F7D6E6E6C5D6F6D5E706E5F716F60727061737162747263757364 706E5F7371627876677D7B6C828071858374878576878576878576858374838172817F707F7D6E 7F7D6E7F7D6E7F7D6E7C7A6B7D7B6C7F7D6E817F70848273868475888677898778848273848273 8583748583748684758684758684758785767775667977687D7B6C817F70858374848273817F70 7E7C6D8381727C7A6B7977687C7A6B7A7869747263747263797768737162757364777566797768 797768777566747263727061716F607472637674657472636F6D5E6D6B5C6D6B5C6F6D5E716F60 6E6C5D6D6B5C727061787667787667706E5F686657817F70807E6F7E7C6D7977687472636E6C5D 6967586664557F7D6E7977687674657C7A6B858374888677817F707876677F7D6E7F7D6E7E7C6D 7D7B6C7C7A6B7C7A6B7B796A7B796A7C7A6B7F7D6E838172868475878576868475838172807E6F 868475878576868475858374838172807E6F7D7B6C7B796A828071828071817F707F7D6E7E7C6D 7C7A6B7B796A7B796A7B796A7A78697977687876677977687A78697B796A7C7A6B7F7D717F7D71 7E7C707D7B6F7B796D7A786C79776B79776B817F73807E727F7D717E7C707D7B6F7D7B6F7D7B6F 7C7C707A7A6E7A7C6F7B7D707C7E717C7E717C7E717C7E717C7E717E80737E80737C7E717B7D70 797B6E77796C76786B75776A76746877756979776B7A786C7A786C79776B77756975736779776B 79776B79776B79776B79776B79776B78766A76766A737367747669797B6E7E8073818376838578 8486798486797E80737E80737D7F727D7F727C7E717B7D707A7C6F7A7C6F77796C76786B747669 73756872746773756874766974766973756874766976786B77796C787A6D77796C75776A747669 78766A78766A78766A7775697674687674687573677573676F6D616F6D61716F63727064747266 76746878766A77776B7575697173666E70636A6C5F686A5D67695C67695C686A5D65675A67695C 6A6C5F6D6F626F7164707265707265707264797C6B787B68787B68777A67777A67767966757865 7578656D705D6C6F5C6C6F5C6B6E5B6A6D5A696C59696C59686B5A6A6C61696A62696A62686961 68696167686067686067686065665E66675F66675F676860686961696A62696A626A6C616D6A61 6F6D617270647472667472667270646F6D616D6B5F6664586765596A685C6D6B5F6F6D61706E62 706E62706E62706E62727064747266767468767468737165716F636F6D61676559676559676559 68665A6B695D6E6C60716F6371716576766A75776A75776A7476697274677072656E70636D6F62 75776A5C5E51585A4D696B5E72746775776A727467696B5E69675B6A685C6B695D6C6A5E6C6A5E 6B695D6A685C69675B5D61605A5E5D575B5A545857535756545857565A59585C5B6E72716C706F 686C6B6367665E62615A5E5D575B5A545A58494F4D48514E49524F4A53504C55524D56534E5754 4F58555059564E5754535C595E676460696658615E555E5B59625F565F5C545D5A5059564E5754 4F5855535C5958615E5C65624A53504D5653535C5958615E5B64615B646159625F58615E5D6160 595D5C5357564F53524F5352525655585C5B5B5F5E626665646867666A69686C6B686C6B666A69 646867626665626665666A69686C6B666A696165645D61605D61605E62615E6261616564656968 686C6B696D6C676B6A656968636864696E6A6B706A6D726C70756F737872767B75787D77797E78 787D777B807A7E837D828781848983848983838882828781777C76797E78797E787479736C716B 666B65676C66696E68696E686B706A6D726C70756F71767070756F6F746E6E736D6E736D717670 747973777C76787D77777C76757A747378726C716B6F746E737872757A74767B75767B75777C76 787D7784858081827D7B7C777879747677727778737778737778737B7C77797A7575767173746F 72736E747570777873797A746D6E686F706871726A6E6F676A6B63686961696A626B6C6476776F 77787077787076776F74756D73746C73746C74756D7B7C7473746C696A6265665E696A626F7068 74756D76776F75766E76776F777870787971797A7278797177787076786D7C7E7376786B717366 7375687A7C6F8082758082757E8073838578838578838578838578838578838578838578838578 85877A82847780827581837684867986887B84867982847783857884867984867985877A86887B 888A7D898B7E8A8C7E7E8072737665717463797C6B7F82717B7E6D797C6B7D806F848776858877 858877868978878A79888B7A888B7A888B7A8B8E7B8588757C7F6C777A67797C697F826F808370 7D806D757865767966787B68797C69787B68757865727562707360727061747263797768817F70 8987788B897A8886778482738886778886778886778886778886778886778886778886778A8879 7C7A6B716F606F6D5E6E6C5D6967586A6859706E5F6967586A68596B695A6D6B5C706E5F716F60 7371627472636E6C5D706E5F7472637876677C7A6B807E6F8280718381728B897A888677858374 828071817F708280718482738684757C7A6B7C7A6B7C7A6B7C7A6B7C7A6B7C7A6B7C7A6B7C7A6B 7F7D6E7F7D6E807E6F817F708280718381728482738583747F7D6E7E7C6D7F7D6E828071858374 868475838172807E6F817F707C7A6B777566757364727061706E5F716F60747263747263787667 7D7B6C8280718482738280717F7D6E7D7B6C8482738482738482738280717F7D6E7D7B6C7B796A 7B796A7E7C6D7B796A7C7A6B8482738F8D7E9492838F8D7E8987788D8B7C8D8B7C8D8B7C8E8C7D 8E8C7D8B897A8482737E7C6D7A78697876677775667B796A817F70838172807E6F7B796A7E7C6D 7E7C6D7D7B6C7C7A6B7B796A7B796A7A78697A78697674657775667977687B796A7C7A6B7C7A6B 7B796A7A78697E7C6D7F7D6E817F70838172838172838172828071828071787667787667797768 7B796A7C7A6B7E7C6D7F7D6E7F7D6E7D7B6C7B796A7876677674657573647775667977687B796A 7B796D7A786C79776B777569757367737165716F63706E62737165747266757367767468777569 77756976746874746873736772746773756874766975776A76786B77796C787A6D76786B75776A 7476697274677173666F71646E70636D6F6275736776746878766A7A786C7B796D7B796D7A786C 7A786C7C7A6E7C7A6E7C7A6E7B796D7B796D7A786C7A786C77776B6E6E626F716472746775776A 787A6D7A7C6F7A7C6F7A7C6F7E80737E80737D7F727D7F727C7E717B7D707A7C6F7A7C6F7D7F72 7B7D70787A6D75776A75776A77796C797B6E7B7D707A7C6F7A7C6F7B7D707B7D707C7E717C7E71 7D7F727D7F7278766A79776B7B796D7D7B6F7F7D71817F7383817584827679776B7B796D7E7C70 817F7383817584827684827682827677776B7476697072656C6E61696B5E66685B65675A646659 6B6D606C6E616C6E616C6E616B6D60686A5D66685B656759696C5B696C596B6E5B6D705D707360 7275627376637477647275627275627174617174617073606F725F6E715E6E7160696B606A6B63 6A6B63696A6267686064655D61625A5F605860615960615961625A61625A61625A61625A61625A 616358605D5463615568665A6D6B5F706E62706E626E6C606D6B5F5D5B4F605E52646256676559 68665A67655965635764625668665A69675B6C6A5E6E6C60706E62706E626F6D616E6C606B695D 6A685C6A685C6A685C6B695D6D6B5F6F6D616F6F637070646D6F626B6D60696B5E686A5D686A5D 696B5E696B5E6F7164595B4E4E50435C5E517072657B7D7074766966685B66645868665A6B695D 6D6B5F6D6B5F6B695D68665A6664584E52515054535458575A5E5D6468676E7271787C7B7D8180 7377766B6F6E5E62615357564C504F4B4F4E4E52514F55534B514F4A53504D5653505956535C59 565F5C59625F5A6360535C59505956545D5A5D66635D6663535C594F5855525B5858615E555E5B 525B584F5855505956535C5958615E5B6461545D5A565F5C58615E5A63605C65625C65625C6562 5B6461595D5C5559585054534C504F4D5150515554565A595A5E5D585C5B5A5E5D5D61605F6362 5F63625D61605A5E5D585C5B535756595D5C5F6362626665626665636766666A696A6E6D5D6160 5F63626266656468676569686468676367666166625F646060655F626761646963676C66696E68 6B706A6C716B696E686B706A6E736D70756F70756F6D726C696E68676C6660655F616660626761 616660626761656A646A6F696F746E6B706A6B706A6B706A6B706A6A6F69686D67676C66666B65 666B65696E686F746E747973787D77797E78797E78797E787479736F746E6C716B7378727D827C 8287817D827C767B7576777275767174757072736E71726D73746F7778737B7C7771726D72736E 73746F747570757671757671767772767771696A646D6E667071697071696E6F676E6F6771726A 74756D7E7F777C7D75797A727879717A7B737D7E767F807880817982837B7A7B737071696A6B63 6B6C646E6F6771726A71726A75766E76776F78797178797178797177787075766E74766B77796E 747669737568797B6E8486798A8C7F8A8C7F87897C818376818376818376818376818376818376 8183768183768385788183767F81748082758385788486798183767D7F727E80737E8073808275 8183768385788385788486798486788284767A7D6C7A7D6C848776878A79828574818473868978 7A7D6C7A7D6C7B7E6D7B7E6D7C7F6E7D806F7E81707E81707E816E797C69767966787B68797C69 787B68777A67787B68757865757865767966777A67787B68797C697A7D6A7A7D6A757364777566 7C7A6B8381728A88798C8A7B8987788482738B897A8B897A8B897A8B897A8B897A8B897A8B897A 8B897A8D8B7C7F7D6E7573647775667876677573647674657B796A7876677977687A78697C7A6B 7E7C6D807E6F8280718381727A78697A78697B796A7C7A6B7E7C6D807E6F8280718381728A8879 878576848273828071817F70828071858374878576858374858374858374868475868475868475 878576878576817F70828071838172848273858374868475878576888677868475817F707C7A6B 7B796A7E7C6D807E6F7E7C6D7B796A807E6F807E6F7D7B6C7A78697B796A807E6F838172848273 7D7B6C817F708987788F8D7E939182949283939182929081969485939182918F808F8D7E8E8C7D 8D8B7C8B897A8A88798785768381728280718886779290819896879795869391828C8A7B8B897A 8D8B7C9290819593849290818B897A8482737977687C7A6B7F7D6E7E7C6D7A78697A78697F7D6E 858374807E6F7F7D6E7F7D6E7E7C6D7D7B6C7D7B6C7C7A6B7C7A6B797768787667777566767465 7775667977687C7A6B7D7B6C7D7B6C7E7C6D807E6F828071838172828071817F70817F70767465 7775667876677977687B796A7C7A6B7D7B6C7E7C6D7D7B6C7B796A787667767465757364777566 7977687B796A767468757367747266727064706E626E6C606C6A5E6C6A5E6D6B5F6F6D61737165 76746878766A78766A78766A7575696C6C606A6C5F686A5D686A5D696B5E6C6E616F7164727467 7274677274677173667072656F71646F71646E70636E706377756977756977756977756979776B 7B796D7D7B6F7F7D717E7C707E7C707D7B6F7C7A6E7B796D7A786C79776B77776B747468727467 7072656F71646F71647072657173667274677375687274677274677173667072656F71646F7164 6E7063727467717366717366717366747669797B6E7E80738183767D7F727E80737E80737F8174 808275818376828477838578807E72817F7382807485837787857989877B8B897D8C8A7E807E72 82807484827687857989877B8A887C89877B87877B8181758082757E80737C7E71787A6D747669 7173666E70636D6F626D6F626D6F626C6E616B6D60686A5D65675A646658656857666956686B58 6A6D5A6C6F5C6E715E707360717461747764747764737663727562727562717461707360707362 6D6F646D6E666C6D65696A6265665E61625A5C5D555A5B535D5E565C5D555B5C54595A52575850 56574F55564E54564B4F4C43514F4355534759574B5B594D5B594D5A584C5A584C626054656357 6A685C706E627371657573677573677472666F6D616D6B5F6B695D69675B68665A69675B6A685C 6B695D69675B68665A6664586462566260546260546361556161556D6D61696B5E65675A616356 61635663655867695C696B5E696B5E5B5D504B4D40505245686A5D76786B6D6F625F615468665A 6A685C6D6B5F6F6D616F6D616D6B5F6A685C68665A6266656064635D61605A5E5D575B5A565A59 5559585559585C605F5559584B4F4E4347464145444549484C504F5157555A605E57605D57605D 565F5C565F5C555E5B555E5B545D5A5B6461545D5A535C5957605D525B5847504D434C49464F4C 4B54514A535047504D464F4C464F4C48514E4A53504C5552525B584F58554B545148514E48514E 4B5451505956545D5A565A59575B5A595D5C5B5F5E5B5F5E5B5F5E5A5E5D595D5C5F63625F6362 5E62615D61605B5F5E585C5B555958545857525655575B5A5D6160606463606463626665656968 686C6B5D61605D61605D61605E62615E62615F636260646361666260656160655F626761636862 656A64666B65676C66686D67646963656A64676C66676C66666B656267615F645E5C615B666B65 656A64636862636862666B656B706A70756F74797370756F6E736D6B706A686D67676C66666B65 676C66676C66686D676A6F696D726C70756F7277717479737479737479737B807A7378726D726C 717670797E787B807A737872696E6863645F656661686964686964676863696A656E6F6A72736E 6C6D6870716C73746F73746F71726D6D6E696B6C676A6B6571726C75766E797A727A7B73797A72 7A7B737E7F7782837B7D7E767A7B7376776F7778707B7C747F80787F80787E7F7775766E75766E 76776F787971797A72797A7277787074756D7D7E767E7F777F80787F80787E7F777D7E767B7C74 7A7C71717368787A6D8082758284777F81747D7F7280827585877A808275808275808275808275 8082758082758082758082758082757F81748082758183768183768082757D7F727B7D70747669 76786B77796C797B6E797B6E797B6E787A6D77796B656759666958696C5B6E71606D705F6A6D5C 6A6D5C6E7160757867757867767968777A69787B6A787B6A797C6B797C6B777A69777A677C7F6E 8487748386757D806D7C7F6E8184717E81707F826F7F8271808370828574848774868978878A79 7C7A6B7C7A6B7E7C6D8381728987788B897A8987788583748C8A7B8C8A7B8C8A7B8C8A7B8C8A7B 8C8A7B8C8A7B8C8A7B8B897A817F707D7B6C8684758D8B7C8D8B7C8D8B7C908E7F8B897A8C8A7B 8D8B7C8E8C7D8F8D7E908E7F918F80929081898778888677878576858374858374868475878576 888677838172828071817F70807E6F807E6F817F708280718280717F7D6E817F70848273878576 8B897A8F8D7E918F809391828987788987788987788A88798A88798B897A8B897A8C8A7B838172 7B796A737162716F607472637674657573647371627D7B6C817F70807E6F7A78697A7869807E6F 8280717D7B6C7775667B796A817F708785768B897A8E8C7D8E8C7D8E8C7D878576848273807E6F 7F7D6E817F708280717F7D6E7C7A6B807E6F7C7A6B7A78697A78697D7B6C7F7D6E7E7C6D7C7A6B 7E7C6D7E7C6D7F7D6E817F708280717E7C6D777566706E5F7B796A817F70848273807E6F777566 7674657D7B6C868475817F70817F70807E6F807E6F7F7D6E7E7C6D7E7C6D7D7B6C828071807E6F 7D7B6C7C7A6B7C7A6B807E6F848273878576848273848273848273838172807E6F7D7B6C7A7869 7876677E7C6D7D7B6C7C7A6B7A78697977687876677674657674657B796A7A7869797768787667 7977687A78697B796A7C7A6B757367747266737165727064716F636F6D616E6C606E6C60676559 68665A6A685C6B695D6D6B5F6E6C606F6D616D6D6169695D65675A626457606255616356646659 686A5D6A6C5F73756873756874766975776A75776A76786B77796C77796C7A786C79776B777569 77756978766A7B796D7E7C70807E727F7D717E7C707D7B6F7C7A6E7A786C79776B78766A757569 7D7D717A7C6F76786B7274677072656F71646F71647072657072656F71646F71646E70636D6F62 6C6E616C6E616C6E616B6D606A6C5F6A6C5F6B6D606C6E616F71647173667274677A7C6F7B7D70 7E8073808275828477828477828477818376878579878579868478858377858377848276848276 8381757C7A6E7C7A6E7C7A6E7D7B6F7D7B6F7E7C707F7D717D7D717B7B6F7B7D707B7D707A7C6F 787A6D7476697072656E706366685B67695C696B5E6B6D606C6E616C6E616B6D606A6C5E727564 7174617174637073606F72616F725F6E71606E715E6F72616F725F6E71606D705D6D705F6C6F5C 6B6E5D6B6D5F7072676E6F676B6C6468696164655D6061595E5F575C5D555C5D555B5C54595A52 57585054554D52534B5051494F514657544B575549555347545246525044514F43514F43504E42 5D5B4F605E526664586D6B5F7472667A786C7D7B6F7F7D717D7B6F79776B7472666F6D616B695D 69675B69675B6A685C6462566260545F5D515C5A4E5A584C59574B58564A56564A636357606255 5D5F525A5C4F5A5C4F5C5E515F61546163565A5C4F5A5C4F4B4D4047493C6062557375686D6F62 65675A6C6A5E6D6B5F6E6C606F6D616F6D616E6C606D6B5F6C6A5E505453515554535756545857 545857545857535756525655484C4B484C4B494D4C4B4F4E4E5251515554555958565C5A4E5452 4D56534F5855515A57545D5A565F5C58615E59625F555E5B4D565349524F4B545149524F424B48 414A4748514E444D4A444D4A434C49434C49434C49434C49434C49434C4948514E464F4C434C49 424B48434C49464F4C4A53504C5552545857575B5A5B5F5E5F63626064635E62615B5F5E585C5B 6266656165645E62615B5F5E595D5C585C5B575B5A575B5A585C5B5C605F6064636064635E6261 5C605F5D61605F63625D61605B5F5E585C5B565A59575B5A5A5E5D5E6261616662676C68676C66 676C66676C66676C66686D67686D67686D67676C66676C66686D67686D67686D67676C66656A64 646963666B6563686260655F5E635D5F645E5F645E5F645E5F645E6368625F645E5A5F59575C56 565B55595E585E635D6166606A6F696A6F696A6F696A6F696C716B6E736D717670727771696E68 696E68676C66656A646368625F645E5B605A585D575E5F5A6465606A6B666A6B66676863666762 696A656D6E6961625D666762696A6566676260615C5C5D585D5E5960615B70716B73746C76776F 76776F74756D74756D7778707B7C747C7D75797A727778707A7B737E7F777D7E7678797172736B 6A6B637071697778707C7D757D7E767B7C74797A727879717C7D757D7E767E7F777E7F777D7E76 7B7C74797A72787A6F74766B7B7D708284778284777D7F72787A6D797B6E7C7E717E80737E8073 7E80737E80737E80737E80737E80737E80737C7E717F81748183768183767F81747C7E717A7C6F 797B6E7B7D707C7E717E80737F81747F81747D7F727A7C6F787A6C77796B818473888B7A858877 7F82717E81708184738285747D806F7E81707E81707F8271808372818473818473828574757867 787B6A8486789093828D8F8183867585877990938284867884877686887A878A7987897B878A79 86887A858877838172817F70807E6F828071878576898778888677858374888677888677888677 8886778886778886778886778886778785767F7D6E807E6F8C8A7B949283918F808C8A7B8D8B7C 8B897A8C8A7B8C8A7B8C8A7B8C8A7B8D8B7C8D8B7C8D8B7C8A8879888677868475848273848273 8583748785768987787B796A7C7A6B7D7B6C7E7C6D7E7C6D7D7B6C7C7A6B7C7A6B757364767465 7977687D7B6C817F708583748886778A8879878576878576868475868475858374858374848273 8482737F7D6E787667716F60716F607674657977687876677573647775667F7D6E7F7D6E777566 7573647B796A7876676F6D5E7D7B6C7E7C6D807E6F8280718482738785768886778987787F7D6E 7C7A6B7A78697D7B6C817F708280717C7A6B7775667F7D6E807E6F807E6F7F7D6E7D7B6C7B796A 7A78697977688482738482738482738482738381727F7D6E7A7869777566807E6F817F70807E6F 7E7C6D7B796A7977687A78697B796A817F70807E6F807E6F7F7D6E7E7C6D7D7B6C7D7B6C7D7B6C 838172817F707F7D6E7E7C6D7F7D6E817F70858374878576848273848273838172828071807E6F 7D7B6C7A78697876677E7C6D7E7C6D7D7B6C7B796A7A7869787667777566777566777566787667 7B796A7D7B6C7E7C6D7E7C6D7E7C6D7E7C6D777569777569777569777569767468767468767468 7674686D6B5F6A685C646256605E525F5D51615F5365635765655967675B646659626457606255 6062556163566264576365586E70636F716470726573756875776A77796C797B6E7A7C6F7A786C 7A786C7A786C7A786C7A786C7B796D7C7A6E7C7A6E7E7C707E7C707C7A6E7B796D79776B777569 7674687373677B7B6F797B6E76786B7375687173666E70636D6F626C6E617072656F71646F7164 6E70636D6F626C6E616C6E616B6D606D6F626D6F626E70636D6F626C6E616A6C5F686A5D67695C 707265747669797B6E7D7F727F81747E80737C7E71797B6E7D7B6F7D7B6F7C7A6E7B796D7B796D 7A786C7A786C79776B7775697573677270646F6D616F6D61706E627270647272666D6D616C6E61 6C6E616B6D606A6C5F696B5E686A5D686A5D65675A66685B686A5D696B5E6A6C5F6A6C5F696B5E 686A5D7375677376657274667174637173657073627072646F72616E70626E71606D6F616D705F 6C6E606B6E5D6B6D5F6A6C5E6E70656C6D6568696165665E63645C64655D65665E6768605D5E56 5D5E565C5D555B5C545A5B53595A5258595157594E646158615F535C5A4E58564A575549575549 5A584C5B594D57554958564A5A584C5D5B4F615F5365635769675B6C6A5E727064737165737165 737165727064706E626D6B5F6C6A5E706E626F6D616C6A5E6A685C69675B69675B69675B67675B 5E5E525E60535F61545F61546062555F61545F61545E60535153465F615452544746483B5B5D50 6E70636E70636D6F626E6C606D6B5F6C6A5E6B695D6B695D6C6A5E6D6B5F6E6C60616564626665 6266656266655E62615A5E5D555958525655464A494C504F565A595F63626367666367665F6362 5B615F5F65635C656259625F555E5B515A574E57544B545149524F48514E4049463D4643424B48 444D4A434C4949524F535C594E57544F5855515A57515A57515A575059564E57544D565348514E 4C5552525B5857605D59625F58615E555E5B535C59525655525655535756555958565A59575B5A 575B5A575B5A4D51504D51504C504F4D51505054535559585A5E5D5D61605559585A5E5D5E6261 5F63625E62615D61605F63626165645D6160595D5C555958515554525655575B5A5D6160616662 63686463686262676162676161666060655F60655F5F645E616660616660626761636862646963 656A64666B65676C66666B656469636267616368626469636469636166605E635D6368625F645E 595E58565B55575C565E635D656A646B706A666B65656A64656A64666B65696E686E736D737872 767B756B706A7479737A7F79757A74696E68616660656A646D726C6667626D6E69747570747570 6F706B6A6B666B6C676F706B696A656D6E6970716C6C6D686667626566616C6D6873746E7B7C76 7E7F778081797E7F777B7C74797A727B7C747E7F7785867E83847C84857D8889818A8B8386877F 7A7B7370716973746C7879717D7E767E7F777D7E767C7D757E7F778081797C7D757D7E767D7E76 7D7E767C7D757A7B7378797177796E85877C82847781837685877A8B8D808C8E8186887B7F8174 7E80737E80737E80737E80737E80737E80737E80737E80737A7C6F7E80738385788284777E8073 7A7C6F787A6D797B6E75776A76786B787A6D797B6E77796C7476697173666F716376786A868978 8E91808689787E81707F8271828574828574818473828574828574838675848776848776858877 8588776B6D5F7072647E80728C8E80898B7D7E807282847691938581837583857785877986887A 8486788183757C7E707A7C6E888677848273817F70828071858374888677878576868475858374 8583748583748583748583748583748583748583748583747D7B6C7E7C6D8987788D8B7C858374 7A78697775667F7D6E7F7D6E7F7D6E7F7D6E7E7C6D7E7C6D7D7B6C7D7B6C7F7D6E7E7C6D7B796A 7A78697B796A7D7B6C817F708381727573647775667A78697D7B6C7D7B6C7B796A797768777566 7775667876677977687A78697B796A7C7A6B7D7B6C7E7C6D7D7B6C7D7B6C7C7A6B7B796A797768 7876677775667775667F7D6E7A7869767465797768807E6F8482738280717E7C6D7270617E7C6D 8280717C7A6B7D7B6C8583748381727977687E7C6D7D7B6C7B796A7A78697B796A7C7A6B7D7B6C 7E7C6D7A78697977687977687F7D6E8583748482737C7A6B7472637472637876677E7C6D7F7D6E 7D7B6C7A78697977687A7869817F70828071838172838172838172817F70807E6F807E6F848273 7E7C6D7977687B796A7F7D6E7F7D6E7674656E6C5D7F7D6E7F7D6E7E7C6D7E7C6D7D7B6C7C7A6B 7B796A7B796A7B796A7B796A7A78697A78697B796A7D7B6C7E7C6D7F7D6E7C7A6B7D7B6C7F7D6E 807E6F817F70817F70807E6F7F7D6E7775667876677977687A78697C7A6B7D7B6C7E7C6D7F7D6E 7573647775667C7A6B807E6F828071828071807E6F7F7D6E7A786C7B796D7B796D7B796D7C7A6E 7C7A6E7C7A6E7D7B6F807E7278766A6D6B5F646256605E5262605468665A6B6B5F66665A65675A 6466596466596264576163566062555F615464665965675A67695C6B6D606E7063727467747669 75776A79776B7A786C7C7A6E7D7B6F7D7B6F7C7A6E7A786C79776B7E7C707D7B6F7C7A6E7A786C 78766A7674687573677272667070647072657072656F71646D6F626A6C5F67695C65675A66685B 66685B65675A6466596365586365586264576264576C6E616E706371736674766975776A747669 727467707265696B5E6D6F627476697A7C6F7C7E717A7C6F76786B7375686B695D6C6A5E6E6C60 706E627270647472667674687775697775697472666E6C606A685C68665A6A685C6D6B5F6D6D61 6B6B5F696B5E686A5D67695C67695C686A5D6A6C5F6C6E616B6D606B6D606A6C5F696B5E66685B 6365586062555E605367695B686A5C696B5D6B6D5F6E7062707264727466727466747668737567 7375677274667173657072647072646F71646B6D6268696165665E63645C64655D6869616D6E66 7071695F60585F60585F605860615961625A61625A62635B6264595E5B525B594D565448535145 5553475A584C605E526462565E5C505B594D57554953514552504452504454524655534759574B 5F5D5168665A716F63757367757367716F636F6D616E6C606D6B5F6C6A5E6B695D6B695D6C6A5E 6E6C606D6D6168685C6A6C5F6F71647375687375687072656C6E61696B5E595B4E6D6F625F6154 494B3E57594C66685B65675A67695C6F6D616D6B5F6A685C68665A68665A6A685C6D6B5F6F6D61 6165645C605F5458574D5150494D4C4A4E4D4E52515155545A5E5D5A5E5D5B5F5E5B5F5E5A5E5D 595D5C575B5A545A585E6462555E5B4B5451424B483E47443E4744414A47444D4A454E4B434C49 4049463F4845414A47464F4C4B54514E57544B545149524F454E4B414A47404946404946424B48 444D4A3E4744424B4848514E4C55524D56534A5350454E4B414A474A4E4D474B4A424645404443 414544464A494C504F505453434746464A494B4F4E505453555958585C5B5A5E5D5B5F5E555958 585C5B5C605F5F63625F63625B5F5E575B5A545857515554535756565A595A5E5D5E6261616564 6266656368646368646166605E635D5C615B5A5F595A5F595A5F595A5F59565B555C615B636862 666B65666B65656A64666B65686D676A6F696B706A6D726C6E736D70756F727771737872737872 555A54565B555A5F596166606B706A717670727771727771676C66717670767B75727771717670 777C767A7F79777C76797E78767B7570756F6A6F69666B65636862636862636862666762656661 63645F63645F6566616869646C6D686F706B6A6B666A6B666A6B666C6D6870716C7677727B7C77 7F807A86878185867E83847C81827A7E7F777B7C747A7B73797A7287888087888087888085867E 82837B7D7E76797A7276776F6D6E6670716972736B71726A6E6F676D6E666F706872736B6E6F67 7071697071696E6F676B6C646B6C646F706873756A75776C80827586887B7E80736E706366685B 6C6E6177796C7D7F7277796C73756877796C7F81748385787F8174797B6E787A6D77796C787A6D 7C7E717F81747E80737A7C6F76786B848679797B6E76786B7C7E717B7D707173667173667B7D6F 7F8173838675888B7A888B7A8487768083727F82718083728D907F8184737D806F838675878A79 8285748184738588776C6E6070726575776A7A7C6F7D7F727C7E717A7C6F787A6D76786B76786B 75776A7476697476697476697476697476688482737876677D7B6C8583747F7D6E7C7A6B807E6F 817F70838172838172838172838172838172838172838172838172807E6F8583748381727A7869 7876677C7A6B7A78697371628785767D7B6C7876677A78697A78697674657A7869828071747263 7E7C6D807E6F787667797768828071817F70777566807E6F7B796A7876677B796A817F70828071 7C7A6B7573647A78697876677674657674657775667A78697D7B6C7F7D6E7B796A7A78697A7869 7977687876677775667674657573647C7A6B7A7869767465737162727061747263767465787667 716F607270617674657D7B6C828071817F707A78697371627472637977687F7D6E838172828071 7B796A7371626E6C5D7A78697C7A6B7E7C6D7F7D6E7E7C6D7B796A7876677674657A78697A7869 7A78697A78697A78697A78697A78697A78697472637E7C6D8B897A9290819290818E8C7D898778 8785768F8D7E8F8D7E8E8C7D8D8B7C8D8B7C8C8A7B8C8A7B8B897A7E7C6D7E7C6D7E7C6D7D7B6C 7D7B6C7D7B6C7C7A6B7C7A6B7C7A6B7F7D6E817F70807E6F7E7C6D7D7B6C7E7C6D817F707C7A6B 7C7A6B7C7A6B7C7A6B7C7A6B7C7A6B7C7A6B7C7A6B767465767465767465747263727061747263 7A78697F7D6E8886778381727B796A7573647270617371627775667A7869777569777569777569 77756978766A7A786C7C7A6E7D7B6F79776B78766A7674687371656F6D616B695D676559636357 6A6A5E686A5D686A5D686A5D696B5E6C6E616E70636F716470726567695C696B5E75776A707265 5F61545F61546C6E6179776B78766A767468747266737165737165747266757367777569777569 7674687674687573677472667371657171656060545F61545E60535E60535D5F525D5F525D5F52 5C5E515F61545E60535D5F525C5E515A5C4F595B4E585A4D57594C57594C5B5D50626457696B5E 6D6F626F71646F71646E70636B6D606D6F6272746776786B787A6D797B6E787A6D77796C747266 716F636D6B5F6B695D6E6C607472667C7A6E817F73727064727064737165737165747266747266 7472667272667575697476697375687173666D6F62696B5E65675A6264576A6C5F6A6C5F6A6C5F 6A6C5F6A6C5F6A6C5F6A6C5F6A6C5F6B6D606A6C5F696B5E686A5D696B5E6A6C5F6B6D606C6E61 6C6E616D6F626F71646F71646E70636D6F626A6C5F696B5E7274697071696E6F676C6D656B6C64 6B6C646B6C646C6D6565665E64655D64655D66675F68696166675F6061595B5D52625F56626054 636155636155636155615F535F5D515E5C50646256636155615F53615F5362605465635769675B 6B695D68665A66645865635764625664625666645868665A69675B727064737165747266747266 737165727064706E626D6D6170706472746775776A76786B7476696E7063686A5D646659636558 7476696C6E615A5C4F63655873756871736667695C68665A68665A68665A69675B69675B69675B 69675B6A685C4F53524F53524F5352525655575B5A5E6261646867696D6C575B5A595D5C5B5F5E 5D61605E62615E62615D61605C62604B514F454E4B3F48453B44413A43403C4542404946434C49 404946404946414A47414A474049463F48453D46433C45423F48453F48453E47443D46433D4643 3F4845404946414A473C4542404946454E4B4A53504D56534D56534C55524B54514D51504C504F 4B4F4E4B4F4E4F53525458575A5E5D5E62614E5251505453535756555958575B5A585C5B585C5B 585C5B6266655F63625A5E5D555958535756525655535756555958585C5B5B5F5E5F6362626665 6266655F63625B5F5E585D595E635F5B605A585D57555A54575C565B605A60655F646963585D57 5D625C61666062676160655F60655F626761656A645E635D60655F636862656A64656A64626761 5F645E5D625C5F645E616660656A646C716B737872767B75757A74737872666B656F746E737872 6C716B696E686C716B6C716B686D676D726C6A6F69666B656166605E635D5C615B5C615B5C615B 60615C61625D62635E656661696A656D6E6971726D74757068696465666161625D60615C656661 6E6F6A797A7580817B74756F74756D74756D75766E75766E76776F76776F76776F74756D6F7068 68696163645C64655D696A6270716975766E7071696F70686B6C6465665E5E5F5758595154554D 53544C5C5D5561625A6768606B6C646D6E6671726A76776F7B7D727F817683857885877A828477 7D7F727B7D707D7F728082757B7D707D7F727E80737E80737D7F727D7F727E807380827585877A 84867985877A87897C898B7E888A7D8486798082757B7D7077796C7C7E7186887B848679797B6E 76786B7D7F717A7C6E7E81708285748285747E81707A7D6C7A7D6C7B7E6D848776848776868978 8689788285747D806F7E8170838577686A5D6B6D6070726574766975776A7476697173666F7164 73756873756875776A75776A75776A7476697375687274677371646A6859747263838172828071 8381728987788B897A828071828071828071828071828071828071828071828071817F70858374 8482737B796A7977687E7C6D7D7B6C767465807E6F7876677674657A7869797768747263757364 7C7A6B797768807E6F7D7B6C716F606C6A5B6E6C5D6A6859605E4F6F6D5E6D6B5C6D6B5C737162 7B796A7F7D6E7D7B6C7A7869767465737162716F60716F607573647876677A78697B796A7C7A6B 7B796A7A7869797768777566767465757364747263787667777566757364747263737162737162 7371627371627B796A7977687775667876677B796A7C7A6B7C7A6B7B796A7C7A6B7E7C6D817F70 8280718280717F7D6E7C7A6B7A7869747263747263757364757364747263737162716F60706E5F 787667787667787667787667787667787667787667787667737162797768817F708785768A8879 8A88798A88798A8879939182929081929081908E7F8F8D7E8E8C7D8D8B7C8D8B7C898778868475 807E6F7977687270616B695A6563546260517977687A78697A7869787667757364747263767465 7876677977687977687977687977687977687977687977687977687B796A7D7B6C7F7D6E7D7B6C 7A7869777566787667797768787667767465737162716F607270617674657A78697D7B6C7D7B6F 7B796D78766A76746876746878766A7B796D7C7A6E7C7A6E7A786C777569747266747266777569 7A786C7A7A6E79796D77796C76786B76786B76786B787A6D7A7C6F7B7D70818376797B6E797B6E 8183767F817475776A76786B8082757B796D79776B78766A767468757367757367767468777569 757367747266737165716F636F6D616D6B5F6C6A5E69695D6B6B5F696B5E66685B636558606255 5D5F525B5D50595B4E585A4D585A4D585A4D585A4D595B4E595B4E595B4E5A5C4F535548545649 56584B595B4E5C5E5160625563655865675A6C6E616E706371736674766976786B76786B747669 7375687B796D78766A747266716F63706E62716F63747266757367757367757367747266747266 7472667472667371657171657373677173667072656F71646E70636D6F626D6F626D6F626C6E61 6C6E616C6E616C6E616C6E616C6E616C6E616C6E617072656F71646C6E61696B5E67695C66685B 66685B66685B686A5D696B5E6A6C5F6C6E616E706371736673756874766B72736B71726A6F7068 6E6F676D6E666E6F676F70687071696B6C64696A62696A626B6C646D6E666C6D6566675F626459 6A675E6B695D6C6A5E6D6B5F6E6C606D6B5F6C6A5E6B695D656357646256615F535F5D515F5D51 605E5262605464625669675B69675B676559656357636155605E525E5C505D5B4F5E5C50605E52 63615566645868665A69675B6A685C68685C6B6B5F6A6C5F6A6C5F6A6C5F696B5E686A5D66685B 65675A6062556B6D606264574F514456584B696B5E6C6E6167695C6A685C6A685C6A685C6A685C 6A685C6A685C6A685C6A685C5D61605D61605C605F5B5F5E5B5F5E5C605F5D61605D61606A6E6D 686C6B6468675D61605559584C504F4549484046444349474049463F48453E47443F4845414A47 444D4A454E4B464F4C464F4C454E4B434C494049463C454239423F37403D3C45423D46433F4845 424B48444D4A444D4A444D4A444D4A444D4A454E4B464F4C48514E4A53504C55524D56534D5653 414544434746464A494B4F4E505453555958595D5C5B5F5E595D5C5A5E5D5B5F5E5B5F5E5A5E5D 595D5C575B5A565A595C605F585C5B5357565054534F5352525655575B5A5A5E5D6064635E6261 5C605F5B5F5E5B5F5E5D6160606463616662535854535852555A54585D575C615B616660656A64 686D67646963676C66686D67666B65636862626761656A64696E686A6F69696E68676C66656A64 636862626761616660616660656A64676C666B706A70756F7479737378726F746E6C716B696E68 727771737872696E686368626469636368625E635D696E68686D67656A64636862616660616660 6166606166606566616768636A6B666D6E6970716C71726D72736E72736E5A5B56585954545550 54555058595460615C696A656F706A72736D72736B73746C73746C74756D75766E76776F76776F 76776F6F706866675F5E5F575E5F5764655D6D6E6674756D72736B6F70686C6D65696A6266675F 64655D6061595E5F575F605866675F7071697778707B7C747F807883847C87897E83857A808275 7F817481837686887B898B7E87897C85877A7A7C6F81837686887B8284777A7C6F77796C7C7E71 8486798486798486798385788385788486798284777E80737B7D7076786B76786B7C7E71818376 7C7E7174766975776A7D7F71797B6D7D806F8083727F82717B7E6D787B6A787B6A7A7D6C747766 7E81708487767F82717679687275647376657476686B6D606D6F64707267727469727469707267 6D6F646B6D6272746974766B76786D787A6F787A6F76786D74766B7375686A685B646253716F60 828071848273848273898778898778817F70817F70817F70817F70817F70817F70817F70817F70 7C7A6B817F70807E6F7A78697A7869817F708381727E7C6D807E6F7A78697A78697F7D6E7F7D6E 7775667674657C7A6B7674657B796A7B796A7573647573647A78697A7869747263727061716F60 716F60747263777566797768797768787667787667737162706E5F7270617876677D7B6C7C7A6B 7A78697C7A6B7B796A7A7869787667767465757364737162737162727061727061737162727061 716F60706E5F6F6D5E6E6C5D7B796A7A78697A78697A78697B796A7C7A6B7D7B6C7D7B6C7E7C6D 7D7B6C7C7A6B7B796A7B796A7D7B6C7F7D6E817F707B796A7A7869787667777566767465767465 767465777566767465767465767465767465767465767465767465767465737162737162757364 7977687F7D6E848273878576888677888677878576858374848273828071807E6F7E7C6D7E7C6D 8280717F7D6E7B796A7573646F6D5E696758656354626051797768797768797768767465747263 7270617371627573647573647573647573647573647573647573647573647573647876677D7B6C 8280718583748381727F7D6E7B796A7977687F7D6E7F7D6E807E6F828071848273868475888677 8987788280747F7D717A786C76746874726675736778766A7A786C7C7A6E78766A747266716F63 72706478766A7E7C708181758080747E80737D7F727B7D707B7D707B7D707C7E717D7F727F8174 797B6E77796C7A7C6F7C7E717B7D707D7F728082757B796D7A786C78766A777569767468767468 777569777569777569767468757367737165716F63706E626E6C606C6C607373677072656E7063 6C6E61696B5E66685B6466596365585D5F525E60535F615461635662645764665965675A66685B 65675A6365586062555F615461635666685B6C6E61707265707265717366727467737568747669 737568717366707265767468757367747266737165737165737165737165747266767468767468 757367747266727064716F63706E626D6D617070646E70636C6E616C6E616D6F62707265747669 76786B6E70636E70636E70636E70636E70636E70636E70636E70636C6E636B6D62696B6067695E 66685D66685D67695E67695E66685D65675C65675C66685D686A5F6B6D626F71667274696B6C64 6A6B63696A62686961696A626A6B636C6D656D6E666B6C64696A62686961696A626C6D656B6C64 67686063655A6A675E6C6A5E6E6C60716F637270647371657270647270646E6C606C6A5E69675B 67655965635764625665635765635767655968665A68665A68665A6664586260545E5C505C5A4E 5B594D5D5B4F605E5263615565635767655967655965655969695D65675A6264575F61545F6154 61635664665966685B5D5F52626457585A4D47493C4A4C3F5E60536A6C5F686A5D6C6A5E6C6A5E 6C6A5E6C6A5E6C6A5E6C6A5E6C6A5E6C6A5E5A5E5D595D5C595D5C585C5B585C5B585C5B595D5C 5A5E5D5256555357565357565357565155544F53524D51504A504E454B49454E4B48514E4C5552 4F5855515A57525B58535C59555E5B525B584B5451464F4C434C49434C49444D4A464F4C464F4C 48514E4C55524E57544F58554E57544C55524B54515059564E57544A535047504D454E4B454E4B 454E4B464F4C484C4B4B4F4E505453565A595A5E5D5D61605E62615E62615C605F5C605F5D6160 5C605F5B5F5E595D5C575B5A565A594E5251505453525655545857555958565A59555958555958 5B5F5E5B5F5E5A5E5D5A5E5D5B5F5E5B5F5E5C605F5D625E4B504C5156505B605A636862686D67 676C666469636267617176707378727479737277716D726C6A6F696B706A6D726C787D77727771 696E6861666060655F6469636B706A70756F686D676B706A6F746E7277717277716F746E696E68 656A646D726C737872727771666B6560655F636862656A64626761646963646963636862636862 6368626368626469636469636768636869646A6B666A6B6668696465666161625D5E5F5A63645F 646560666762676863686964696A65696A656A6B6575767074756D73746C71726A7071696E6F67 6D6E666C6D6577787075766E73746C72736B71726A72736B74756D75766E7071696E6F676E6F67 72736B7879717C7D757C7D757A7B736D6E6674756D7D7E7682837B82837B81827A81827A828479 7C7E737C7E717C7E717E80738082758284778284778284777F81748183768082757B7D7075776A 7476697A7C6F7F81747D7F727C7E717B7D707A7C6F787A6D76786B74766972746776786B75776A 7375686E7063686A5D696B5E737568808274828476858877878A798588778184737F8271808372 828574787B6A8285748588777E8170797C6B7A7D6C7578676B6D5F73756873756A75776C75776C 74766B7274696F71666D6F6473756A74766B74766B75776C76786D76786D76786D76786B727063 6C6A5B777566858374817F707B796A7B796A7977687E7C6D7E7C6D7E7C6D7E7C6D7E7C6D7E7C6D 7E7C6D7E7C6D7E7C6D8280717F7D6E7674657573647C7A6B7D7B6C7876678583747F7D6E7F7D6E 8583748482737D7B6C7C7A6B817F708886778886778583747F7D6E7C7A6B7B796A7A7869777566 7876677775667573647472637371627371627371627371627472636F6D5E6B695A6F6D5E777566 7B796A797768747263797768797768787667767465747263737162716F60716F60706E5F706E5F 6F6D5E6E6C5D6D6B5C6C6A5B6C6A5B6C6A5B6D6B5C7371627B796A8280718482738280717E7C6D 7B796A7876677674657472637371627472637775667C7A6B7F7D6E817F707F7D6E7C7A6B797768 7876677977687C7A6B7D7B6C747263747263747263747263747263747263747263747263757364 7270616F6D5E716F607775667C7A6B7E7C6D7D7B6C7B796A7A7869787667767465747263727061 706E5F6F6D5E737162737162737162727061727061716F60716F60716F60777566787667797768 7A78697A7869797768797768797768737162737162737162737162737162737162737162737162 6C6A5B7270617A7869817F70848273848273817F707F7D6E8A88798B897A8D8B7C8F8D7E8E8C7D 8C8A7B8A8879888677817F737F7D717C7A6E78766A757367747266747266747266737165716F63 6E6C606B695D6B695D6C6A5E6F6D616F6F6378786C75776A7375687173667072656F7164707265 7072657072656E70636C6E616D6F6272746777796C77796C75776A79776B78766A767468747266 7371657371657472667573677A786C7A786C7A786C7A786C7A786C7A786C7A786C78786C747468 73756873756874766974766975776A75776A75776A707265717366717366727467737568747669 75776A75776A76786B75776A73756872746773756876786B797B6E7B7D7075776A75776A75776A 747669737568727467717366707265727064727064716F63706E626F6D61706E62706E62706E62 747266737165727064706E626E6C606C6A5E6A685C68685C6F6F636B6D60686A5D67695C686A5D 6C6E6172746775776A6C6E616C6E616C6E616C6E616C6E616C6E616C6E616C6E61616358626459 62645964665B67695E6A6C616D6F646F7166686A5F67695E65675C63655A63655A63655A64665B 64665B6061596061595F605860615961625A63645C65665E67686066675F63645C61625A63645C 66675F66675F63645C606257615E556361556664586A685C6C6A5E6E6C606E6C606E6C60767468 767468747266737165727064727064716F63716F6366645868665A6A685C6C6A5E6D6B5F6D6B5F 6D6B5F6D6B5F706E62706E62716F63727064716F636F6D616E6C606A6A5E6E6E626A6C5F65675A 6163565F615461635664665966685B6062555F6154595B4E4C4E41494B3E5C5E516D6F626C6E61 6F6D616F6D616E6C606E6C606D6B5F6C6A5E6C6A5E6C6A5E575B5A5559585256554F53524E5251 4E52514F53525054534A4E4D4C504F505453545857575B5A5A5E5D5B5F5E5A605E494F4D4A5350 4E5754535C5957605D59625F59625F59625F57605D545D5A4F58554B54514A53504C55524F5855 515A574E5754505956525B58535C59525B584F58554C555249524F525B584E57544A5350464F4C 444D4A444D4A464F4C48514E4D5150505453545857585C5B595D5C585C5B565A59545857565A59 575B5A595D5C5A5E5D5A5E5D595D5C585C5B575B5A515554535756565A59575B5A565A59525655 4E52514B4F4E535756585C5B5F6362626665606463575B5A4D5150464B47515652585D57616660 686D676B706A686D676267615E635D6D726C7176707479737277716C716B676C66656A64656A64 676C66616660595E58535852535852595E58616660676C66656A64676C666A6F696B706A696E68 656A646166605F645E636862696E68666B655C615B585D575F645E656A64646963595E58595E58 5B605A5C615B5D625C5D625C5D625C5D625C5D5E595E5F5A60615C60615C5D5E59595A55555651 52534E6B6C676C6D686C6D686C6D686A6B6666676263645F61625C68696368696167686065665E 64655D63645C62635B62635B66675F6A6B6370716976776F797A72797A7277787075766E6F7068 6D6E666C6D6570716975766E78797178797176776F6E6F6774756D7B7C747D7E767A7B7376776F 75766E75776C787A6F7F8174838578808275787A6D75776A7A7C6F8082758284777A7C6F707265 6D6F6270726575776A76786B75776A797B6E797B6E77796C75776A727467707265707265707265 7072657274676F7164686A5D65675A6F71648082758D8F818C8E808E91808F92818D907F898C7B 878A79898C7B8C8F7E8E91808F92818C8F7E888B7A8D907F91948385887773756774766B74756D 74756D73746C71726A6F70686E6F676C6D6571726A6F70686D6E666C6D656D6E6670716974756D 76786D7B796C7371627B796A8684757E7C6D7573647270616E6C5D7C7A6B7C7A6B7C7A6B7C7A6B 7C7A6B7C7A6B7C7A6B7C7A6B807E6F8381727D7B6C716F606E6C5D7371627472636E6C5D828071 7C7A6B7A78697F7D6E7E7C6D7876677876677E7C6D7D7B6C797768777566777566767465757364 7674657977687876677775667573647472637472637573647775667977687371626E6C5D6A6859 6E6C5D7573647876677371626E6C5D737162737162737162727061716F60706E5F706E5F6F6D5E 716F606F6D5E6C6A5B6967586866576967586B695A6D6B5C6462536B695A767465807E6F858374 858374807E6F7C7A6B7876677775667674657573647674657977687C7A6B7E7C6D7C7A6B7A7869 767465747263737162747263767465787667747263747263747263747263747263747263747263 747263797768757364727061727061747263757364737162706E5F787667777566767465747263 727061716F606F6D5E6F6D5E6D6B5C6D6B5C6D6B5C6C6A5B6B695A6B695A6A68596A68596B695A 6D6B5C706E5F747263777566777566767465757364706E5F706E5F706E5F706E5F706E5F706E5F 706E5F706E5F6967586C6A5B716F607775667B796A7C7A6B7B796A7A78697775667A78697D7B6C 7F7D6E7F7D6E7C7A6B7977687674657B796D7B796D7B796D79776B7775697371656F6D616D6B5F 66645868665A6A685C6C6A5E6C6A5E6A685C6765596363576E6E626B6D60696B5E67695C66685B 66685B66685B67695C6E70636D6F626E706371736677796C7A7C6F787A6D75776A757367737165 716F63706E626F6D616F6D61706E62706E6273716574726676746878766A7B796D7D7B6F7F7D71 7E7E7279796D787A6D797B6E7A7C6F7B7D707C7E717C7E717D7F727D7F727C7E717C7E717B7D70 7A7C6F797B6E787A6D787A6D70726572746775776A77796C77796C76786B7476697375687A7C6F 797B6E77796C75776A74766973756872746772746779776B767468716F636C6A5E69675B676559 666458666458706E626F6D616D6B5F6C6A5E69675B68665A6664586363576F6F636B6D6066685B 63655862645765675A696B5E6B6D60686A5D686A5D686A5D686A5D686A5D686A5D686A5D686A5D 60625760615961625A62635B65665E6869616C6D656E6F676A6B636A6B636B6C646B6C646A6B63 696A6267686066675F61625A61625A60615961625A62635B64655D66675F68696167686064655D 61625A62635B66675F67686066675F63655A5D5A515F5D516361556765596A685C6C6A5E6D6B5F 6D6B5F727064737165747266757367767468777569777569777569706E626F6D616F6D61706E62 72706474726677756978766A79776B79776B7A786C7A786C7A786C78766A767468737367757569 7274676E70636A6C5F686A5D66685B66685B66685B67695C6264576365585B5D505153465F6154 727467717366706E62706E626F6D616E6C606D6B5F6C6A5E6B695D6B695D555958535756505453 4C504F4A4E4D4A4E4D4A4E4D4B4F4E676B6A666A696569686266655E62615A5E5D555958525856 575D5B555E5B545D5A535C59515A574E57544B545149524F4D56534E5754505956515A57515A57 515A575059564F58554F58554F58554F58554E57544D56534A535048514E464F4C4B54514A5350 48514E48514E4A53504E5754525B58545D5A4D51504E52515054535155545155544E52514B4F4E 484C4B525655535756555958585C5B595D5C595D5C595D5C595D5C535756525655525655525655 5256555357565458575458575559585559585559585458575458575458575458575459555D625E 5E635D60655F62676162676162676161666060655F5D625C626761666B656469635F645E585D57 555A54555A545156505156505156505156505156505156505257515358524F544E515650535852 52575150554F4E534D4E534D4E534D5358525A5F595A5F59525751515650595E5860655F60655F 5B605A5D625C5F645E61666062676162676161666060655F60615C61625D63645F656661666762 66676266676266676268696465666161625D5D5E59595A5558595457585357585260615B61625A 62635B64655D66675F6869616A6B636B6C646C6D656E6F6770716973746C75766E75766E74756D 74756D6F70686E6F676E6F676F706870716971726A71726A7071696F706874756D797A727B7C74 797A72777870777870797B707A7C71838578888A7D83857877796C71736677796C7F81747C7E71 71736666685B66685B6D6F627375687274676D6F626E70636E70636D6F626A6C5F67695C66685B 686A5D6A6C5F66685B6E70637274676F71647375688183768E90839496888C8E808D907F8D907F 8A8D7C868978858877898C7B8C8F7E8E9180898C7B8487768487768C8F7E8E9180838675757769 71736871726A7071696F70686D6E666C6D656C6D656B6C647071696D6E66696A62676860686961 6D6E6673746C77796E7B796C7270617A78698482737D7B6C767465767465737162797768797768 7977687977687977687977687977687977687371627775667371626B695A6C6A5B7674657B796A 787667787667716F60706E5F7573647472636D6B5C6D6B5C7371626F6D5E696758696758716F60 7573647674657C7A6B8583748D8B7C898778848273828071838172848273858374858374828071 7F7D6E7D7B6C7F7D6E8381728280717D7B6C7876676B695A6B695A6C6A5B6C6A5B6D6B5C6E6C5D 6E6C5D6F6D5E716F606F6D5E6B695A6765566765566866576B695A6D6B5C6A68596967586B695A 7270617B796A807E6F817F70807E6F7D7B6C7D7B6C7C7A6B7C7A6B7D7B6C7E7C6D7F7D6E7F7D6E 7C7A6B7B796A797768777566777566777566777566787667767465767465767465767465767465 7674657674657674657C7A6B7A78697876677674657573647270616E6C5D6B695A6F6D5E6F6D5E 6F6D5E6E6C5D6D6B5C6D6B5C6C6A5B6C6A5B656354646253646253636152626051615F50615F50 605E4F5F5D4E5F5D4E605E4F6361526765566967586967586866576B695A6B695A6B695A6B695A 6B695A6B695A6B695A6B695A6D6B5C6C6A5B6C6A5B6C6A5B6E6C5D6E6C5D6C6A5B6A6859656354 6866576C6A5B706E5F727061727061706E5F6F6D5E727064747266767468777569767468727064 6D6B5F6A685C5F5D516462566B695D7270647573677371656F6D616A6A5E6C6C606A6C5F686A5D 67695C66685B67695C686A5D686A5D6B6D60696B5E6B6D6073756876786B737568727467737568 727064716F636F6D616D6B5F6C6A5E6C6A5E6D6B5F6E6C6069675B6A685C6C6A5E6E6C60716F63 7472667674687575697F7F737D7F727C7E717A7C6F797B6E77796C76786B75776A787A6D77796C 76786B7476697274677173667072656F7164696B5E6D6F6272746775776A76786B747669717366 6E7063797B6E77796C75776A7375687274677274677274677375687573677270646F6D616B695D 69675B68665A68665A69675B6D6B5F6C6A5E6B695D6A685C69675B6765596664586464586E6E62 6A6C5F66685B63655861635660625562645763655866685B66685B66685B66685B66685B66685B 66685B66685B68696166675F64655D63645C62635B62635B62635B63645C676860696A626D6E66 71726A73746C74756D73746C73746C6B6C646A6B63696A62696A62696A626B6C646C6D656D6E66 6B6C6468696164655D65665E696A626C6D656C6D656A6C61625F5664625668665A6B695D6E6C60 706E62706E62706E6266645868665A6B695D6D6B5F6F6D61706E626F6D616F6D61777569757367 737165716F63706E62706E627270647371656A685C6C6A5E6F6D61727064747266757367767468 7474687373677274677173666F71646D6F626A6C5F67695C66685B6C6E616365586A6C5F686A5D 56584B5E6053737568717366706E626F6D616E6C606D6B5F6B695D6A685C69675B68665A414544 444847494D4C4F5352565A595B5F5E5F63626165646367666367666367666367666165645E6261 5C605F595F5D5C626059625F565F5C525B584F58554C55524A535048514E4F58554F5855515A57 525B58525B58515A575059564F5855515A575059564E57544D56534D56534D56534E57544F5855 4D56534E57544F5855505956535C5957605D5A63605C6562595D5C595D5C595D5C595D5C585C5B 565A59545857535756545857555958575B5A595D5C595D5C595D5C585C5B585C5B505453505453 4F5352505453535756575B5A5B5F5E5E62615458575155544D51504C504F4F5352575B5A5F6362 656A665B605C5B605A5C615B5C615B5D625C5D625C5E635D5E635D555A54585D575B605A585D57 5358524F544E4D524C4E534D4F544E5156505358525358525257514F544E4B504A484D47444943 454A44454A44444943424741434842484D474B504A4F544E595E585E635D595E58585D575E635D 6166605E635D636862646963676C66696E686A6F69696E68676C66666B65696A65696A65696A65 6A6B666C6D686E6F6A71726D72736E6B6C67696A6568696465666163645F62635E61625D61625C 64655F65665E66675F696A626B6C646D6E666F706870716977787076776F75766E73746C71726A 71726A71726A71726A71726A72736B73746C73746C71726A71726A71726A73746C73746C76776F 797A72797A7277787076776F797A727C7E73787A6F797B6E7A7C6F77796C737568717366717366 7375686D6F626C6E616A6C5F6B6D606D6F626E70636E70636D6F62696B5E696B5E686A5D66685B 63655863655867695C6B6D6067695C7173667476696F71647274677F817485877A828476808274 8184738083727C7F6E787B6A787B6A7C7F6E8083727B7E6D787B6A777A69797C6B787B6A747766 737665757769787A6F77787076776F75766E75766E75766E76776F76776F797A7277787074756D 73746C75766E797A727E7F778284797C7A6D716F607876678280717C7A6B7876677B796A7B796A 7876677876677876677876677876677876677876677876676F6D5E727061706E5F6967586D6B5C 797768817F70807E6F7472636F6D5E706E5F7674657573646D6B5C6B695A6F6D5E848273797768 7472637775667472636D6B5C6F6D5E7876679391828C8A7B8482738381728785768A88798A8879 8886778B897A8A8879898778898778888677858374807E6F7C7A6B626051636152656354676556 6967586C6A5B6D6B5C6E6C5D706E5F6E6C5D6C6A5B6A68596967586967586B695A6C6A5B737162 6B695A646253676556716F607A78697B796A7977687A78697A7869797768787667777566777566 7876677876677A78697A78697B796A7B796A7A7869787667777566757364787667787667787667 7876677876677876677876677876677B796A7C7A6B7C7A6B7A7869767465737162716F60716F60 6A68596B695A6B695A6C6A5B6C6A5B6D6B5C6D6B5C6E6C5D646253646253646253646253656354 6563546664556664556462535F5D4E5957485755465957485D5B4C5F5D4E605E4F636152636152 6361526361526361526361526361526361526B695A696758666455666455676556676556646253 6260516C6A5B6D6B5C6F6D5E706E5F716F60727061716F60716F606C6A5E6E6C60706E62727064 727064706E626D6B5F6B695D6462566765596B695D6F6D61716F63716F636F6D616C6C606A6A5E 696B5E686A5D67695C686A5D696B5E6B6D606C6E6166685B5F61546163566B6D606B6D60636558 6466596E7063737165716F63706E626E6C606D6B5F6D6B5F6E6C606F6D616A685C6B695D6B695D 6C6A5E6D6B5F6E6C606E6C606C6C6077776B76786B75776A7375687274677173667072656F7164 6E70636E70636E70636D6F626D6F626D6F626C6E616C6E616C6E616D6F626F7164717366737568 7476697476697476697476697274676F71646D6F626D6F626E70637072657173666E6C606E6C60 6F6D61706E62706E62716F63706E62706E626D6B5F6D6B5F6C6A5E6C6A5E6C6A5E6B695D6B695D 69695D6B6B5F696B5E67695C66685B646659636558626457616356686A5D686A5D686A5D686A5D 686A5D686A5D686A5D686A5D696A6267686065665E62635B6061595F60585F60585F605861625A 62635B64655D676860696A626B6C646C6D656D6E666C6D656B6C64696A62686961676860686961 696A626A6B6366675F61625A5E5F575E5F5762635B66675F67686066685D64615866645869675B 6C6A5E6E6C606F6D616F6D616F6D6165635767655969675B6B695D6C6A5E6A685C68665A676559 6B695D6B695D6A685C69675B69675B69675B69675B69675B5E5C50605E5263615566645868665A 69675B6A685C67675B66665A66685B686A5D696B5E6A6C5F696B5E67695C66685B6D6F62606255 6A6C5F6A6C5F52544757594C6D6F626B6D606F6D616E6C606D6B5F6B695D69675B68665A666458 6664584F5352525655575B5A5B5F5E5D61605C605F5B5F5E595D5C5C605F5C605F5C605F5C605F 5A5E5D575B5A5559585357565157554F5855525856535C59595F5D5C6562626866626B685D6361 58615E555B594F5855505654505956555B59565F5C585E5C555E5B555B59535C59565C5A57605D 5D63615E6764595F5D57605D5A605E59625F5B615F5A63605C62605C6260555958545857545857 535756535756535756525655525655595D5C595D5C5A5E5D5B5F5E5A5E5D595D5C575B5A565A59 545857545857555958565A59565A59565A595559585559584A4E4D505453585C5B5E6261606463 5D6160575B5A535756515652545953595E5A5D625C5E635F5C615B595E5A575C56575C58595E58 595E5A565B555156524E534D5055515257515358545257515055514D524C4A4F4B464B45444945 4247415156525156505055514E534D4D524E515650585D595E635D565B576267616A6F6B686D67 666B67696E68686D696267615E635F60655F636864656A64656A666469636166625F645E666863 64666162635E5E605B5F605B5F615C63645F6466615E5F5A61635E6768636A6C676B6C67676964 63645F5E605B65666063665D64655F63665D63645E62655C63645E62655C6C6D676B6E656D6E68 6D70676F706A6E716870716B70716973746C75766E75766E72736B6C6D65696A62696A626B6C64 71726A73746C72736B6F70686A6B636869616B6C646E6F677072676A6C5F65675C67695C6C6E63 6E7063696B60636558606257696B5E7274697375686D6F646A6C5F6C6E63717366727469737568 73756A7072656E70656F716474766B787A6D70726776786B72746965675A63655A6D6F626F7166 686A5D7375677375677274666F71636B6D5F6B6D5F6F716373756770726472746677796B787A6C 6E70626466586C6E607D7F7285877C84857D82837B82837B82837B83847C84857D85867E85867E 84857D83847C84857D86877F898A828D8E868F91867E7F7173746479776A7F80707B796C767767 7C7A6D7B7C6C7775687576667775687576667775687576667775687775667F7D70807E6F79776A 6D6B5C6B695C737162777568747263787669757364787669817F70807E71767465716F62747263 7C7A6D706E5F6C6A5D7270617270636C6A5B706E617C7A6B7674676F6D5E6A685B6D6B5C787669 8280718482758381727F7D707F7D6E7F7D707E7C6D7A786B757364706E616D6B5C5C5A4D5E5C4D 605E516462536765586A68596D6B5E6E6C5D6E6C5F6E6C5D6D6B5E6D6B5C6C6A5D6B695A6A685B 6A68597775686C6A5B6462556563546F6D607674657472656E6C5D727063716F606E6C5F6C6A5B 6B695C6B695A6B695C6C6A5B6D6B5E6F6D5E716F62727061716F626E6C5D6B695C6967587A786B 7A78697A786B7A78697A786B7A78697A786B7A78697A786B7D7B6C7E7C6F7B796A777568757364 7775687977687371647371627472657674657775687977687A786B7B796A706E61706E5F6F6D60 6F6D5E6E6C5F6E6C5D6D6B5E6D6B5C7371646768585D5B4E5354445553465859495E5C4F5F6050 5D5B4E5B5C4C5D5B4E5B5C4C5D5B4E5B5C4C5D5B4E5D5B4C636154615F50605E51626051666457 6866576765586462537876697775667573667270616F6D606D6B5C6B695C6A685B69675A6A685B 6B695D6D6B5E6E6C606E6C5F6E6C606E6C5F6D6B5F6B695C69675B676558666458656356646256 64625666665A64665965655964665966665A67695C6B6B5F6B6D6069695D5E6053606054696B5E 68685C5B5D50616155727266737367717165716F636E6E626F6D616D6D61706E626E6E62757367 727266737165707064706E626D6D616E6C606B6B5F686A5D686A5D6A6C616B6D606D6F646F7164 7072677173666A6C616B6D606C6E636D6F626E70657072657173687173666B6D606A6C5F69695D 67695C6A6A5E6E706374746876786B6F6F636D6F626B6B5F686A5D69695D6A6C5F6E6E62707064 74726675736777756978766A7674687270646E6C606B695D6E6C606E6C606F6D616F6D616F6D61 706E62706E626E6E6268685C67695C686A5F696B5E686A5F67695C65675C6365586A6C616A6C5F 6A6C616A6C5F6A6C616A6C5F6A6C616A6C6163645C62635B61625A60615960615962635B63645C 64655D5C5D555A5B5358595156574F56574F56574F57585058595165665E64655D62635B606159 5E5F575E5F575F60585F60585A5B5355564E51524A52534B56574F5A5B535B5C545B5C545E5E54 5F5F5364615864645868655C66665A68655C66665A6D6A616D6D61706D646F6F636F6C636A6A5E 68655C64645857554958584C5D5B4F5F5F536462566363576563576363575F5D515E5E52615F53 5F5F53615F535D5D515D5B4F5A5A4E59594D5A5C4F5E5E5261635665655966685B68685C67695C 6D6D615B5D5067675B67695C4C4C404F514467675B66665A6E6C606D6B5F6C6A5E6A685C68665A 666458646256646256595D5C595D5C5A5E5D5A5E5D5C605F5D61605E62615F63625E62615C605F 565A594F53524B4F4E4E5251565A595E62616064636268666569686268665D6160575D5B565A59 565C5A585C5B585E5C5A5E5D595F5D595D5C575D5B565A59545A584C504F4F5553575B5A5E6462 646867656B69676B6A656B695F6362545A58515554555B59575B5A5258565458575B5F5E505453 4E52514E5251535756595D5C585C5B505453484C4B515554515554515554515554515554515554 5155545155545458575357564E5251484C4B454948484C4B515554595D5C5B5F5E575B5A545857 545857565A59565A595357564F53524A4E4D5156525A5E5D5E635F5C605F595E5A575B5A575C58 444847464B474A4E4D4E534F4F53524E534F4D51504B504C4C504F5156525559585257534D5150 4B504C4F5352545955565A595257534F53525358545B5F5E5F64605C605F585D59606463606561 5F63625C615D5A5E5D5E635F666A696E736F696D6C6469655F63625E635F5F63625E635F5B5F5E 585D59595E58595E58595B56565B55585A55575C565B5D58595E58585A55565B555A5C57595E58 5D5F5A5D625C61635E60655F5D5F5A5B60595F615C61665F676964656A636365605D625B6B6D68 646962636560656A636E706B6D726B686A6561645D696A6274756D797A726A6B6352534B4B4C44 5A5B536E6F6762635B63645C66675F6869616C6D656E6F6771726A72736B71726A74766B76776F 7274696D6E666A6C61696A62686A5F6E6F6773756A797A727B7D727A7B73787A6F7879717A7C71 7A7B73797B7077787075776C74756D74766B75766E75776C797A7273756A6C6D65686A5F686961 696B6068696167695E7072677072676F71666F71666F71666F71666E70656E706575776C6F7166 6F71667274696B6D6266685D74766B8A8C8181827A81827A82837B83847C83847C84857D85867E 85867E7B7C747C7D757E7F7781827A84857D878880898A828A8C817D7F72787A6C8080747C7E70 707064787A6C8181756F716379796D787A6C79796D787A6C79796D787A6C79796D797A6C79776B 7C7A6D7D7B6F7A786B757367727063737165767467777569767467747266737164747266767467 79776B7C7A6D74726675736675736776746777756978766979776B7A786B84827673716469675B 7270637D7B6F807E71817F7385837679776B79776A7A786C7A786B7B796D7C7A6D7C7A6E7C7A6D 7472666765586260546A685B716F63716F6272706477756875736776746777756979776A79776B 79776A7775697775686A685C74726579776B716F626260545A584B615F536B695C6E6C606F6D60 716F63747265757367747265716F636F6D60706E6272706376746879776A7A786C79776A777569 7573666D6B5F7472657E7C70868477878579817F7278766A716F627B796D7B796C7A786C79776A 78766A7876697775697775687A786C7775687270646E6C5F6D6B5F6F6D60737165757366676559 69675A6C6A5E6F6D606F6D616E6C5F6C6A5E6A685B67675B66685A67675B6567596262565B5D4F 56564A5254465C5C505B5D4F5C5C505A5C4E58584C5355475151454E4F4158564A59574A5B594D 5D5B4E605E5262605364625665635664625665635668665A6B695C6E6C60716F62737165747265 6765586967586D6B5E7270617674677472636D6B5E6765567A786B7876677371646C6A5B676558 6866576E6C5F7472656E6C606D6D61716F63707064727064707064716F636E6E626A685C6A6A5E 6E6C606D6D616E6C6069695D67655963635769695D686A5D6A6A5E6A6C5F6C6C606C6E616E6E62 6D6F627272667072656E6E626B6D606C6C606D6F6271716571736661635863655A66675F696B60 696A62686A5F66675F64665B696A62696B606A6B636A6C616B6C646C6E636C6D656D6F64717165 7373677674687575697674687171656F6D616B6B5F7371657474687B796D7C7C707F7D717A7A6E 79776B7674687674687472667472667674687A786C7B796D7775697472667270646D6B5F676559 63615564625669675B706E6273736762625863655A65665E67695E66675F63655A6061595E6055 56574F585A4F5A5B535C5E535B5C54595B5056574F54554D4E4F474F50484F504851524A52534B 53544C54554D54554D5D5E565D5E565D5E565E5F575E5F575E5F575F60585F60585E5F575C5D55 595A5256574F56574F5859515B5C545D5E56585951575850575850575850595A525B5C545D5E56 5F60585A5B5357594E5858505D5F5467675F6B6D6269696164665B6C6C64686A5F6D6D6575776C 77776F6D6F646B6B636D6F6467675B66685B68685C67695C69695D696B5E6B6B5F6A6C5F5E5E52 5F61546262566365586363576062555E5E525C5C504F4F435353475B594D5E5E52636155606054 605E525B5B4F62605465655968665A76766A5D5B4F3A3A2E5755496664586A685C6B695D6B695D 6B695D6C6A5E6C6A5E6C6A5E6D6B5F575B5A585C5B5B5F5E5D61605F63625E62615D61605D6160 585C5B5A5E5D5A5E5D585C5B565A59595D5C5F63626468675A5E5D5D61605F63625E62615C605F 5B5F5E5E6261626665565A59565A59575B5A575B5A565A59545857525655515554555958595D5C 5F63626468676468676064635A5E5D565A595F63624F5352464A494E5251575B5A565A59515554 5054534E52514C504F4C504F5155545559585458574E5251474B4A4A4E4D4A4E4D4A4E4D4A4E4D 4A4E4D4A4E4D4A4E4D4A4E4D494D4C474B4A4347463F43423E4241414544464A494B4F4E4D5150 4C504F4B4F4E4C504F4D51504D51504C504F4B4F4E4D51505054535256555155544D51504B4F4E 4D51505054535D61605D61605D61605C605F5A5E5D585C5B5559585458575F63625B5F5E5A5E5D 5E6261666A69696D6C666A69626665595D5C555958535756565A595C605F5F63625D6160595D5C 5D61605F63626165646064635D61605D61605F63626367666D7170676B6A6165645F6362616564 63676662666560656161666260655F5F645E5E635D5E635D5F645E60655F616660575C56585D57 5B605A5E635D5F645E5F645E5E635D5D625C646963646963656A64676C666A6F696A6F69696E68 676C66656A64666B65676C66666B65656A64646963666B65686D666A6B656E6F676F7068696A62 61625A60615968696171726A61625A62635B64655D66675F696A626C6D656E6F676F706874756D 72736B74756D77787073746C6D6E666F706876776F7879717A7B737C7D757C7D757A7B73787971 78797178797178797177787076776F75766E74756D75766E75766E76776F797A7271726A66675F 62635B64655D686961696A626869616A6B636A6B636A6B636A6B63696A62696A62696A62696A62 6A6B63696A626D6E6671726A6C6D6568696175766E898A827A7B737A7B737B7C747C7D757C7D75 7D7E767E7F777E7F776E6F676F706871726A73746C76776F7879717A7B737B7D727072676F7164 797B6E77796C6B6D607375687A7C6F6B6D606C6E616C6E616C6E616C6E616C6E616C6E616C6E61 6C6E6173716576746878766A7472666F6D616B695D6D6B5F706E62737165727064706E626F6D61 706E627270647573677775697B796D7A786C79776B78766A777569757367747266747266939185 88867A7F7D717F7D71838175838175817F73807E72828074828074817F73807E727E7C707D7B6F 7D7B6F7C7A6E82807478766A706E62716F6374726677756979776B7B796D7B796D7C7A6E7E7C70 807E72807E72807E72807E727F7D716E6C607A786C838175807E727472666C6A5E706E62777569 7E7C707E7C707D7B6F7C7A6E7B796D7A786C7A786C7B796D747266747266757367747266737165 706E626E6C606D6B5F6C6A5E7270647B796D828074848276817F737C7A6E78766A777569777569 767468767468757367747266737165737165716F63706E626E6C606C6A5E6C6A5E6E6C60706E62 716F63716F63727064727064727064716F636F6D616D6B5F6A6A5E6B6B5F696B5E686A5D66685B 6365585F61545C5E515A5C4F585A4D57594C56584B56584B55574A55574A55574A55574A59574B 5A584C5B594D5D5B4F5F5D51615F536260546361555C5A4E5C5A4E5E5C50605E52636155656357 6664586765586C6A5D6967586765566866576C6A5B6F6D5E6F6D5E6F6D5E767465747263706E5F 6C6A5B6967586967586C6A5B6F6D5E62605464625668665A6C6A5E6F6D61716F63727064727064 6F6D616F6D616F6D616E6C606D6B5F6C6A5E6B695D68685C6A6A5E696B5E6A6C5F6B6D606C6E61 6D6F626D6F626E70636E70636C6E616A6C5F686A5D686A5D6A6C5F6C6E616E70636C6D656D6E66 6E6F676E6F676C6D6568696163645C61625A676860676860686961686961696A626A6B636B6C64 6B6D6269665D6A685C6C6A5E6D6B5F6D6B5F6B695D68665A6664586A685C6C6A5E6F6D61716F63 6F6D616C6A5E6765596462565E5C505E5C50605E5264625667655968665A68665A666458676559 5E5C50504E42444236413F33464438504E425555494C4C444C4D454F504851524A53544C53544C 53544C53544C4D4E4650514953544C575850585951595A5258595157585062635B62635B62635B 63645C63645C64655D64655D64655D62635B61625A6061595F60585E5F575C5D555B5C545B5C54 5F60585E5F575E5F575E5F575F605860615962635B63645C64655D62635B60615960615961625A 6061595E5F575C5D555C5D555A5B53595A525C5D5561625A62635B5F60585B5C546061595D5E56 62635B6C6D656F706868696166675F6A6C6167695E67695C686A5D696B5E696B5E6A6C5F6B6D60 6B6D6063655864665965675A6466596264575F61545B5D50595B4E5A584C5C5A4E605E52636155 646256646256636155615F53605E526260545A584C68665A59574B3E3C305C5A4E7B796D6E6C60 6E6C606E6C606E6C606D6B5F6D6B5F6D6B5F6D6B5F535756555958565A59565A595357564E5251 484C4B454948474B4A4E5251555958595D5C595D5C595D5C5A5E5D5C605F4F5352515554515554 5054534D51504E5251535756585C5B444847464A494A4E4D4E5251515554535756545857545857 5D61605C605F595D5C565A595458575357565357565458575C605F484C4B3C403F474B4A565A59 565A594E5251484C4B4B4F4E4B4F4E4B4F4E4E52515256555155544C504F474B4A4F53524F5352 4F53524F53524F53524F53524F53524F5352575B5A555958535756525655535756555958565A59 565A59505453515554525655525655515554525655535756545857515554545857575B5A575B5A 545857545857565A595A5E5D6468676266655D6160585C5B5458575054534E52514D5150616564 5D61605A5E5D5D6160646867666A696266655D61605C605F595D5C575B5A585C5B5C605F5D6160 5B5F5E595D5C5D61606064636266656064635C605F5A5E5D5C605F5E6261666A696165645B5F5E 5A5E5D5D61606064636165646166626166626166605F645E5E635D5E635D5F645E616660616660 595E585C615B5F645E62676162676160655F5D625C5B605A676C66676C66676C66676C66666B65 676C66696E686C716B616660676C666B706A676C665E635D5D625C656A646E736C6D6E686A6B63 66675F66675F686961696A6266675F63645C61625A62635B63645C65665E676860696A626B6C64 6C6D6568696164655D66675F696A6266675F61625A67686074756D7B7C7478797175766E73746C 73746C72736B71726A70716974756D74756D74756D74756D74756D75766E75766E75766E76776F 6C6D6562635B5F605863645C696A626A6B6368696165665E65665E65665E65665E66675F66675F 66675F66675F6B6C646D6E6671726A72736B696A6262635B6B6C647A7B736C6D656D6E666D6E66 6E6F676F706870716970716971726A66675F676860696A626B6C646D6E666F7068707169717368 64665B6B6D60787A6D787A6D6E7063747669797B6E6F7164737568737568737568737568737568 73756873756873756878766A7B796D7D7B6F79776B7270646E6C60706E627472666E6C606E6C60 6D6B5F6D6B5F6D6B5F6F6D61716F63737165828074807E727D7B6F7A786C767468727064706E62 6E6C6089877B89877B858377807E727F7D71807E727D7B6F7775698A887C89877B878579848276 8280747F7D717E7C707D7B6F88867A8381757A786C716F63706E627775697C7A6E7C7A6E777569 78766A78766A78766A767468747266716F63706E62646256716F637E7C707F7D717573676E6C60 6E6C607371657B796D79776B7674687270646F6D61706E627371657674687D7B6F7A786C767468 7270646E6C606B695D6A685C69675B65635769675B6F6D6174726677756978766A767468747266 716F63716F63706E626F6D616E6C606E6C606D6B5F6D6B5F626054636155646256656357656357 6563576462566462566D6B5F6C6A5E69675B656357636155615F53615F535F5F536161555F6154 5C5E515A5C4F585A4D57594C57594C57594C55574A54564953554852544753554856584B585A4D 5A5C4F58564A58564A59574B5A584C5C5A4E5D5B4F5E5C505E5C505E5C505E5C505F5D51605E52 615F5362605462605463615469675A6664556260516260516664556B695A6F6D5E716F60706E5F 6E6C5D6C6A5B6A68596A68596A68596866576664555D5B4F5F5D5163615566645869675B6B695D 6C6A5E6C6A5E6D6B5F6B695D69675B67655966645867655968665A67675B646458636558646659 64665965675A66685B66685B66685B6F71646E70636D6F626C6E616C6E616D6F626E70636F7164 65665E66675F67686067686065665E61625A5C5D555A5B53585951585951595A525A5B535A5B53 5B5C545C5D555C5E5358554C59574B5B594D5C5A4E5D5B4F5C5A4E5B594D5A584C5F5D51605E52 615F53615F535E5C505A584C55534752504458564A5B594D605E5263615565635767655968665A 6A685C626054615F535F5D515D5B4F5B594D5A584C59574B57574B5959515859515A5B535C5D55 60615964655D6869616A6B635B5C545D5E565F605861625A62635B62635B62635B61625A62635B 62635B62635B61625A61625A6061596061595F605865665E64655D62635B6061595E5F575B5C54 5A5B53595A525A5B535B5C545D5E565F605860615961625A60615960615961625A5F60585E5F57 61625A65665E65665E5F6058595A525E5F575D5E565C5D555A5B53595A52585951575850575850 56574F54554D595A5264655D67686062635B61625A67695E686A5F696B5E696B5E6A6C5F6B6D60 6C6E616C6E616C6E616B6D606A6C5F6A6C5F686A5D65675A6163565D5F525B5D50545246545246 555347555347555347555347555347555347605E52676559615F536F6D616B695D474539514F43 767468747266737165727064716F63706E626E6C606E6C606D6B5F464A49474B4A474B4A464A49 4448473F43423A3E3D373B3A4549484E5251585C5B5E62615C605F585C5B5458575256554F5352 5054535054534C504F474B4A454948484C4B4B4F4E484C4B4B4F4E4F5352545857585C5B5A5E5D 5C605F5C605F585C5B585C5B575B5A575B5A585C5B5A5E5D5C605F5D6160555958474B4A404443 4A4E4D5357565256554C504F4B4F4E4C504F4D51504E52514F53525054535054534D51504B4F4E 515554515554515554515554515554515554515554515554555958535756525655545857575B5A 575B5A5458575155544B4F4E4E52515054534E52514B4F4E494D4C4B4F4E4D51503E4241464A49 515554575B5A595D5C585C5B585C5B595D5C5D6160595D5C5458574E52514B4F4E494D4C494D4C 4A4E4D5B5F5E5E62615F6362595D5C5054534C504F4E52515256555B5F5E5A5E5D595D5C595D5C 5A5E5D5A5E5D595D5C575B5A5F63626165646165645E62615A5E5D5B5F5E5F6362646867575B5A 535756505453515554555958585C5B595D5C575C58585D59575C56565B55555A54555A54565B55 575C56585D575D625C5F645E61666063686262676160655F5D625C5B605A616660626761626761 5F645E5C615B5D625C626761676C66616660656A64676C6664696360655F5F645E636862686D66 64655F62635B62635B64655D67686066675F61625A5C5D5565665E65665E66675F686961696A62 6A6B636B6C646B6C6461625A64655D63645C5E5F575A5B535E5F5765665E6B6C6474756D6F7068 696A62676860696A626C6D656C6D656A6B6370716971726A72736B74756D74756D74756D74756D 73746C707169696A6262635B63645C6A6B636D6E66696A6264655D66675F66675F676860676860 686961686961696A62696A626C6D656F706872736B6E6F6764655D5F605866675F7071696C6D65 6C6D656D6E666E6F676E6F676F70687071697071696B6C646B6C646C6D656D6E666F7068707169 71726A7173686062576F71647D7F727C7E7177796C7B7D707D7F72787A6D7D7F727D7F727D7F72 7D7F727D7F727D7F727D7F727D7F7279776B7D7B6F807E727B796D7371656E6C60706E62747266 6E6C606E6C606E6C606E6C606F6D61706E62716F63727064828074817F737E7C707B796D777569 737165706E626F6D617270647C7A6E817F737C7A6E7B796D807E72807E727A786C868478868478 858377838175817F737F7D717E7C707D7B6F807E72817F7378766A6A685C6765597371657C7A6E 7D7B6F7A786C7A786C78766A747266706E626B695D6664586361556260546D6B5F78766A79776B 7270646B695D6A685C6D6B5F706E626E6C606B695D67655966645868665A6C6A5E706E62727064 6F6D6169675B646256605E525E5C505E5C505F5D51605E52615F53626054646256656357666458 6765596765596A685C6A685C69675B68665A676559676559666458666458605E52626054656357 6765596664586260545D5B4F5A584C636155605E525C5A4E58564A57554957554959574B58584C 5A5A4E56584B53554851534650524551534654564955574A545649535548535548535548535548 55574A57594C585A4D54524655534755534756544857554958564A59574B59574B5F5D515F5D51 5E5C505E5C505E5C505E5C505E5C505E5C4F605E51615F506260516462536765566967586B695A 6B695A6A68596967586866576A68596C6A5B6A6859656354605E4F646256656357666458666458 666458656357636155626054646256626054605E525F5D515E5C505F5D51615F536161555C5C50 5B5D505B5D505B5D505C5E515C5E515C5E515C5E515D5F525C5E515C5E515B5D505B5D505C5E51 5C5E515D5F525C5D555E5F5761625A64655D65665E63645C61625A60615960615960615961625A 62635B62635B63645C64655D64665B65625966645867655969675B6A685C6B695D6B695D6B695D 706E62706E62716F63716F636F6D616C6A5E69675B676559615F536664586B695D6D6B5F6C6A5E 6B695D6E6C60706E62605E526563576C6A5E716F63716F636D6B5F67655960605462625A606159 60615961625A64655D696A626E6F6772736B6E6F676D6E666C6D656B6C6468696166675F64655D 63645C65665E65665E64655D63645C62635B6061596061595F605863645C62635B61625A606159 5F60585E5F575D5E565D5E5655564E5758505A5B535C5D555B5C54595A5256574F54554D53544C 51524A53544C5B5C5465665E676860606159595A5262635B61625A5E5F57595A5255564E55564E 5A5B535F60585A5B5356574F595A5262635B65665E5F60585F605864665B686A5F696B5E696B5E 6A6C5F6B6D606C6E616C6E616D6F626E70636E70636D6F626B6D60696B5E67695C65675A646659 626054605E525E5C505C5A4E5B594D5B594D5C5A4E5C5A4E5F5D5168665A6260546D6B5F6F6D61 48463A403E3268665A78766A777569757367737165716F636F6D616E6C606D6B5F404443414544 434746464A49494D4C4B4F4E4D51504E5251565A595D6160656968676B6A6367665B5F5E555958 525655555958585C5B5A5E5D595D5C545857515554515554535756626665636766636766636766 6165645F63625D61605B5F5E515554565A595E6261646867666A696468675F63625B5F5E4D5150 4A4E4D4D51505357565256554B4F4E4D5150565A594F5352505453525655525655515554505453 5054535054534C504F4C504F4C504F4C504F4C504F4C504F4C504F4C504F4F53524D51504D5150 5054535357565357564E52514A4E4D5155545357565458575155544C504F494D4C494D4C4C504F 4246454A4E4D5559585B5F5E5C605F5B5F5E5A5E5D5B5F5E5C605F5A5E5D575B5A555958545857 565A59585C5B5A5E5D6064636367666266655A5E5D5155544D5150505453555958585C5B595D5C 5A5E5D595D5C575B5A575B5A575B5A585C5B5B5F5E5E62616165646165645F63625E6261616564 6468675054534F53524F5352535756585C5B595D5C565A59535854565B57555A54535852525751 525751535852555A54565B5560655F60655F60655F60655F5F645E5F645E5E635D5E635D616660 6267616166605D625C5A5F595B605A5F645E64696363686260655F5D625C60655F656A64666B65 6166605C615A5859535F60586768606B6C646A6B63696A626B6C646D6E666B6C646B6C646B6C64 6C6D656C6D656C6D656D6E666D6E666D6E6678797174756D64655D62635B6F706874756D6D6E66 7071696C6D656768606768606B6C6470716971726A7071696E6F6770716972736B73746C74756D 72736B71726A6F706868696166675F66675F6B6C647071696F706866675F5E5F57696A62696A62 6A6B636B6C646C6D656D6E666E6F676E6F6764655D6869616A6B6365665E63645C6768606F7068 74756D73746C74756D74756D75766E76776F76776F7778707778706E6F676E6F676F70686F7068 6F70687071697071697072675D5F547072657B7D70797B6E797B6E7B7D707B7D707B7D7077796C 77796C77796C77796C77796C77796C77796C77796C73716578766A7A786C7573676B695D656357 68665A6D6B5F716F637270647371657472667573677573677573677573677E7C707E7C707C7A6E 7A786C78766A77756975736775736769675B777569807E727E7C707D7B6F838175858377817F73 7B796D7B796D7B796D7B796D7C7A6E7C7A6E7C7A6E7C7A6E7775697C7A6E78766A6B695D68665A 7573678280748785798785798785798785798583778280747F7D717C7A6E7A786C7A786C807E72 8583778381757C7A6E7775697775697A786C767468737165706E626F6D6172706475736778766A 7A786C8684788381757F7D717B796D79776B79776B7B796D7C7A6E656357646256626054605E52 5F5D515E5C505E5C505E5C50646256636155636155626054615F53605E52605E52605E52666458 68665A6B695D6B695D68665A6260545B594D5755495F5D515D5B4F5A584C58564A58564A5A584C 5D5B4F5D5D515D5D515A5C4F57594C54564954564956584B595B4E5B5D5054564955574A55574A 55574A55574A535548515346505245504E42514F4352504453514555534756544857554958564A 58564A58564A5755495755495654485553475553475553465F5D50605E4F626051636152646253 6664556866576967586765566664556765566A68596C6A5B6B695A6563545F5D4E67655968665A 69675B69675B68665A666458646256636155646256636155636155636155636155646256646256 6363576060545F61545F61545E60535E60535E60535E60535E60535A5C4F5A5C4F5B5D505B5D50 5B5D505B5D505A5C4F5A5C4F66675F6869616B6C646E6F676F70686D6E666B6C64696A62686961 696A62696A626A6B636B6C646C6D656C6D656D6F646E6B626E6C606E6C606F6D61716F63727064 73716574726673716574726675736775736775736775736774726674726664625668665A6B695D 6A685C6765596462566563576765596B695D6A685C69675B676559666458666458666458646458 6161595F60585C5D555B5C545C5D555F605862635B65665E696A6268696166675F64655D62635B 61625A60615960615964655D64655D63645C62635B61625A5F60585F60585E5F575D5E565E5F57 5F605860615961625A62635B63645C63645C5D5E565E5F575F60585F60585D5E56595A5254554D 51524A57585055564E5758505E5F57676860696A6262635B5A5B5365665E63645C5F6058595A52 56574F5A5B5364655D6D6E6666675F60615961625A6768606768606061595F605864665B66685D 67695C67695C686A5D696B5E6A6C5F6A6C5F6A6C5F6C6E616C6E616B6D606B6D606C6E616D6F62 6D6F626E7063727064706E626E6C606B695D6A685C6A685C6A685C6A685C6462566462565A584C 59574B5F5D514644383E3C3069675B78766A777569757367737165716F636F6D616E6C606D6B5F 515554525655535756555958585C5B5B5F5E5E62616064635A5E5D5D61606064635E6261585C5B 5155544E52514E52514D5150525655585C5B5A5E5D595D5C595D5C5A5E5D5D61605F63625F6362 5F63625E62615C605F595D5C565A59545857595D5C565A595155544D51504C504F4E5251515554 535756494D4C4D51505559585A5E5D5357564B4F4E5054535D61604F5352525655545857535756 5054534F5352515554545857525655525655525655525655525655525655525655525655575B5A 575B5A575B5A595D5C5A5E5D595D5C575B5A555958575B5A585C5B585C5B565A59535756515554 5155545155545C605F5E62616064635F63625B5F5E595D5C5B5F5E5D6160585C5B585C5B585C5B 595D5C5B5F5E5D61606064636165645E6261585C5B5357565559585A5E5D5C605F585C5B535756 575B5A5A5E5D5C605F5B5F5E595D5C585C5B5A5E5D5D6160565A595C605F636766656968626665 5E62615C605F5B5F5E565A59565A59585C5B5D61606165646165645C605F575C585D625E5C615B 5A5F59595E58595E585A5F595C615B5D625C5E635D5E635D5D625C5D625C5D625C5E635D5F645E 60655F656A64656A6464696363686261666060655F6267616469636267615B605A585D575C615B 656A64666B655E635D555A5361625C6A6B6373746C75766E7071696D6E6671726A76776F6F7068 6F70686E6F676E6F676D6E666D6E666D6E666C6D6572736B7A7B7375766E67686068696175766E 76776F6A6B6373746C71726A70716972736B75766E777870797A72797A726F706870716972736B 74756D73746C7071696C6D656A6B6364655D65665E6869616C6D656D6E666A6B6361625A5A5B53 66675F66675F676860696A626A6B636B6C646D6E666D6E6665665E68696166675F61625A63645C 6D6E6672736B7071696C6D656C6D656D6E666E6F676E6F676F70687071697071696D6E666D6E66 6D6E666C6D656C6D656B6C646B6C646B6D625E605573756877796C727467787A6D7A7C6F76786B 797B6E77796C77796C77796C77796C77796C77796C77796C77796C7B796D807E728381757D7B6F 7270646C6A5E6F6D6174726674726676746878766A7A786C7B796D7A786C79776B79776B7B796D 7B796D7B796D7A786C7A786C7A786C79776B79776B676559716F6378766A777569747266757367 767468767468716F637270647270647371657472667573677674687674687472667A786C7C7A6E 757367716F637A786C89877B95938787857989877B8C8A7E8E8C80908E82918F83918F83918F83 8A887C8B897D8B897D878579828074807E728280748583777F7D7178766A716F63716F63777569 7C7A6E7D7B6F7B796D716F63706E626F6D616D6B5F6D6B5F6D6B5F6E6C606F6D616D6B5F6B695D 68665A656357626054605E525E5C505E5C505F5D515F5D515E5C505E5C505D5B4F5C5A4E5B594D 5B594D5B594D5D5B4F5F5D515F5D515C5A4E565448504E424C4A3E575549565448565448565448 57554958564A5A584C59594D57574B55574A545649535548525447525447535548545649535548 54564955574A56584B55574A5254475052454E5043504E42514F4353514555534758564A5A584C 5C5A4E5D5B4F5D5B4F5D5B4F5D5B4F5C5A4E5C5A4E5C5A4E5B594D5B594C656356646253626051 605E4F5F5D4E615F506765566B695A6765566765566967586B695A6C6A5B6B695A676556646253 6361556563576765596A685C6B695D6C6A5E6C6A5E6B695D6D6B5F6C6A5E6C6A5E6C6A5E6D6B5F 6E6C606F6D616E6E626C6C606B6D606A6C5F6A6C5F696B5E696B5E686A5D686A5D67695C686A5D 696B5E6B6D606B6D60696B5E686A5D67695C6C6D656D6E666E6F676E6F676B6C6467686063645C 606159696A62696A626A6B636A6B636B6C646C6D656D6E666D6F646A675E69675B68665A676559 68665A69675B6B695D6C6A5E66645866645867655967655968665A69675B6A685C6A685C69675B 6B695D6C6A5E6B695D68665A656357646256636155646256656357666458676559676559656357 6361556060546161595E5F575C5D555B5C545A5B535A5B535A5B535A5B535C5D555C5D555C5D55 5E5F5760615963645C676860696A6262635B62635B61625A61625A6061596061596061595F6058 5B5C545C5D555E5F5760615962635B65665E66675F6768606A6B636A6B63696A6268696166675F 63645C6061595E5F576D6E666A6B636869616A6B636D6E666B6C6465665E5E5F5766675F64655D 6061595B5C545A5B5361625A6B6C6474756D6D6E6667686065665E6A6B6368696161625A606159 66685D62645963655863655864665965675A66685B66685B67695C67695C67695C66685B67695C 686A5D6B6D606D6F626F7164757367757367757367747266727064716F63706E62706E626F6D61 6C6A5E6C6A5E6563576462565452464341355D5B4F747266737165727064716F63706E626E6C60 6E6C606D6B5F595D5C595D5C595D5C595D5C585C5B565A59545857535756515554525655505453 4B4F4E474B4A464A494A4E4D4F53524D5150515554565A59575B5A565A59575B5A5B5F5E5E6261 575B5A585C5B595D5C5A5E5D5A5E5D595D5C575B5A565A595F6362565A59494D4C3E42413B3F3E 404443494D4C4F53524C504F4C504F515554595D5C585C5B5155545256555A5E5D4D5150515554 5357565155544C504F4B4F4E4F53525458575A5E5D5A5E5D5A5E5D5A5E5D5A5E5D5A5E5D5A5E5D 5A5E5D535756545857555958545857535756525655545857555958484C4B474B4A474B4A484C4B 4B4F4E4C504F4C504F4C504F575B5A595D5C595D5C565A595155544D51504D51504F5352515554 525655545857565A59575B5A575B5A575B5A575B5A4F53524D51504E5251535756595D5C585C5B 505453484C4B585C5B5D61606165646165645D61605D6160616564666A695D6160606463606463 5D6160575B5A5256555256555357565A5E5D595D5C5A5E5D5E62616165646165645C605F585D59 60656160655F5E635D5D625C5D625C5E635D60655F60655F585D57595E585B605A5D625C5E635D 5E635D5E635D5E635D62676161666061666061666061666060655F5D625C5B605A5C615B5B605A 5A5F595B605A5D625C5D625C5B605A5A5F586C6D676E6F677071697071696E6F676C6D656C6D65 6D6E666F70686F70686E6F676D6E666C6D656B6C646A6B63696A62696A6263645C5F605863645C 696A626B6C6468696164655D70716972736B75766E75766E74756D73746C73746C74756D707169 72736B74756D74756D72736B6D6E6668696164655D65665E65665E64655D62635B6061595D5E56 5B5C545B5C545B5C545C5D555D5E565F605861625A62635B63645C64655D65665E68696165665E 61625A68696174756D73746C686961686961686961696A626A6B636A6B636B6C646C6D656C6D65 71726A71726A7071696F70686E6F676D6E666C6D656C6E636E70658082757D7F7276786B808275 8284777C7E7180827584867984867984867984867984867984867984867984867988867A8F8D81 9290848B897D7F7D7178766A7B796D82807476746878766A7A786C7D7B6F7E7C707D7B6F7B796D 7A786C7D7B6F7C7A6E7C7A6E7B796D7A786C7A786C79776B79776B67655968665A6C6A5E6F6D61 6C6A5E68665A6A685C6F6D616F6D616F6D616F6D616E6C606E6C606E6C606D6B5F6D6B5F6F6D61 74726679776B79776B73716574726684827695938783817584827687857989877B8B897D8B897D 8B897D8B897D858377848276838175807E727E7C707F7D7183817586847884827677756969675B 6664586D6B5F737165716F636D6B5F6B695D6B695D6C6A5E6C6A5E6B695D6A685C68665A676559 666458666458656357636155615F535E5C505C5A4E5B594D5D5B4F5C5A4E5C5A4E5B594D5A584C 5A584C59574B59574B525044535145555347565448565448535145514F434F4D41575549575549 58564A58564A58564A5755495553475252465151455153465153465153464F51444D4F424B4D40 4A4C3F5052455153465254475254475355485355485355485355485351455452465755495B594D 5F5D51636155656357676559656357656357666458666458666458676559676559676558666457 676556676556646253615F50615F506361526664556866576A68596C6A5B6C6A5B6B695A6A6859 6A68596B695A64625666645868665A6A685C6B695D6C6A5E6B695D6B695D706E626E6C606B695D 6A685C6B695D6E6C607270647373677070646E70636E70636D6F626C6E616B6D606A6C5F6A6C5F 61635663655865675A67695C67695C65675A63655861635665665E66675F67686067686064655D 6061595C5D55595A5270716970716971726A72736B73746C73746C74756D74766B747168727064 706E626E6C606D6B5F6E6C60706E62716F63706E62706E626E6C606D6B5F6D6B5F6D6B5F6E6C60 6E6C60716F63716F63716F637270647270647270646F6D616D6B5F5755495B594D5F5D51626054 615F535C5A4E56544850504451514951524A51524A51524A5051494E4F474C4D454B4C4454554D 54554D54554D56574F5A5B535F605864655D676860686961686961686961696A62696A626A6B63 6A6B636A6B635E5F575F605860615961625A62635B64655D65665E65665E6B6C646A6B63696A62 696A62696A626A6B636B6C646C6D6575766E73746C6F70686D6E666C6D656A6B6366675F63645C 65665E64655D61625A60615960615964655D6A6B636F70686A6B6363645C62635B67686066675F 60615961625A67695E5E60555E60535F6154606255616356616356626457626457636558626457 6062555F61545F615461635664665966685B6F6D61716F637371657573677472667270646F6D61 6D6B5F6C6A5E68665A7674686C6A5E6361555C5A4E4543374A483C6E6C606E6C606E6C606E6C60 6D6B5F6D6B5F6D6B5F6D6B5F484C4B4A4E4D4C504F4D51504C504F494D4C454948424645515554 5054534B4F4E464A49444847494D4C5357565B5F5E5F63626064636165645E62615A5E5D5A5E5D 5E6261626665686C6B696D6C696D6C686C6B666A696367666064635F6362595D5C595D5C595D5C 585C5B565A595357565054534E5251515554494D4C4A4E4D5559585C605F585C5B535756545857 4A4E4D4F53525155544E5251494D4C474B4A4D5150535756555958555958555958555958555958 5559585559585559585256555458575458575256554F53524F5352525655565A59454948444847 444847494D4C505453555958555958545857505453565A595D61605F63625B5F5E565A59525655 515554525655545857565A59585C5B575B5A5458575155544F5352484C4B5256555D61605F6362 575B5A4D5150464A494549485A5E5D606463656968656968626665626665676B6A6D71706B6F6E 666A695B5F5E4F5352464A494549484C504F525655585C5B565A59555958565A59595D5C5A5E5D 575B5A5358545E635F5D625C5B605A5A5F595A5F595B605A5D625C5E635D525751555A54595E58 5D625C60655F5F645E5E635D5C615B595E58585D57585D575A5F595C615B5A5F595459534F544E 575C565C615B5F645E5B605A545953535852595E5861665F64655F5F60585C5D55606159686961 6D6E666A6B6365665E6E6F676D6E666C6D656B6C64696A6268696167686066675F66675F52534B 4F504864655D6F706866675F60615966675F696A626D6E6671726A7071696C6D6567686066675F 66675F71726A73746C74756D74756D71726A6B6C6465665E61625A67686065665E5F6058585951 53544C52534B5758505C5D5551524A52534B53544C55564E575850595A525A5B535B5C545A5B53 5F605860615961625A6F70687F80787C7D756D6E6675766E75766E76776F777870787971787971 797A72797A727A7B73797A7278797177787075766E74756D73746C7274698082779294878A8C7F 8082758D8F828F918487897C8D8F828A8C7F8A8C7F8A8C7F8A8C7F8A8C7F8A8C7F8A8C7F8A8C7F 89877B908E829391858C8A7E7F7D7178766A7B796D8280747573677775697B796D7D7B6F7E7C70 7D7B6F7B796D79776B807E727F7D717E7C707C7A6E7A786C78766A7775697674686D6B5F6A685C 6C6A5E7472667472666E6C60716F637B796D727064716F636F6D616D6B5F6B695D69675B676559 66645868665A6B695D7270647573676E6C6069675B7775698B897D89877B89877B89877B878579 8583778280747E7C707C7A6E7F7D717F7D717E7C707E7C707F7D7182807486847889877B8D8B7F 7A786C6664585F5D516664586D6B5F6A685C64625665635766645868665A68665A666458626054 5E5C505B594D58564A58564A59574B5A584C59574B5755495553475351455C5A4E5B594D5B594D 5A584C59574B59574B58564A58564A5B594D5C5A4E5F5D51615F53636155646256646256646256 646256656357666458666458646256605E525B594D57574B57574B585A4D595B4E5A5C4F585A4D 5456495052454D4F424D4F424D4F424D4F424E504351534655574A585A4D5B5D5056544858564A 5C5A4E605E526563576A685C6D6B5F6F6D61615F53615F53626054636155646256656357656357 666457615F526664556C6A5B6E6C5D6A68596361525F5D4E5D5B4C6967586C6A5B6F6D5E6D6B5C 6B695A6A68596D6B5C706E5F6B695D6C6A5E6C6A5E6B695D69675B6664586462566260546B695D 676559626054605E52615F536664586C6A5E6F6F636A6A5E696B5E686A5D67695C66685B65675A 64665963655863655865675A67695C696B5E696B5E67695C65675A63655861625A63645C676860 696A626A6B63696A6266675F65665E676860676860686961686961696A626A6B636B6C646B6D62 737067716F636E6C606B695D69675B6A685C6C6A5E6D6B5F7775697573677270646F6D616D6B5F 6B695D6B695D6B695D706E626E6C606E6C60716F63757367777569747266716F637472666F6D61 6563575C5A4E5654485351455351455252464B4B434C4D454F504851524A51524A4F50484C4D45 4A4B434A4B43494A42474840474840494A424C4D4550514953544C5B5C545B5C545C5D555D5E56 5E5F5760615960615961625A63645C63645C63645C62635B62635B62635B61625A61625A63645C 62635B61625A61625A64655D696A626E6F6771726A6C6D656B6C64696A6267686066675F66675F 67686068696164655D63645C63645C63645C64655D65665E66675F67686063645C5C5D555C5D55 62635B63645C5F605861625A696B605B5D525C5E515C5E515D5F525E60535F61545F61545F6154 6163565F61545B5D50585A4D57594C585A4D5A5C4F5B5D505351455654485A584C5E5C505E5C50 5B594D5755495452465A584C4F4D415E5C504F4D41454337504E424543374644386A685C6B695D 6B695D6B695D6C6A5E6C6A5E6C6A5E6D6B5F4D51504E52514E52514F53524F53524F53524F5352 4F5352424645484C4B505453585C5B5D61605E62615E62615D6160636766636766646867646867 6367666165645F63625E62616F7372696D6C6367665F63625F63626064635E62615D6160505453 505453505453505453515554515554515554515554575B5A565A59545857515554505453505453 5155545155544A4E4D464A49444847464A494C504F5256555458575458574E52514F5352515554 525655525655525655515554515554505453525655555958575B5A5559584F5352494D4C454948 3A3E3D4145444A4E4D5054535054534F53524D51504D51504347464C504F535756515554484C4B 4246454549484B4F4E4F53525054535054534B4F4E4448474044433F43424145444E5251545857 595D5C585C5B5256554E5251505453545857535756535756545857545857545857545857545857 5458574A4E4D4D51505256555559585458574F5352484C4B444847555958545857525655515554 535756565A59595D5C5C615D585D595A5F595A5F59575C56535852525751555A54585D574E534D 525751585D575C615B5E635D5D625C5B605A595E58595E585B605A5E635D60655F6166605F645E 5D625C5B605A676C666166605A5F595358524F544E50554F535852555A535A5B55606159676860 696A6267686064655D62635B61625A64655D6869616D6E666C6D6564655D5C5D555F605866675F 54554D5E5F576B6C6472736B72736B6E6F676A6B63686961696A626D6E6672736B72736B6F7068 6B6C646A6B636B6C647071696E6F676D6E666D6E666C6D656869615F6058585951505149505149 51524A52534B54554D5758505A5B535C5D555B5C545B5C545C5D555D5E565E5F575F6058606159 60615960615957585054554D5E5F576C6D6573746C73746C7071697C7D7578797174756D707169 6F706870716974756D76776F6A6B6370716973746C72736B73746C75766E6B6C645C5E5386887D 87897C888A7D898B7E898B7E888A7D87897C86887B888A7D888A7D888A7D888A7D888A7D888A7D 888A7D888A7D87857989877B8381758C8A7E8684787573677D7B6F7E7C7077756978766A78766A 7A786C7B796D7C7A6E7D7B6F7D7B6F7C7A6E7B796D7B796D79776B78766A777569767468767468 7E7C706F6D6169675B727064777569716F636E6C607270646765596C6A5E716F63706E626B695D 6563576260546260546D6B5F6F6D61727064757367767468757367727064716F63908E82878579 8280748381757C7A6E737165757367807E727C7A6E7C7A6E7C7A6E7C7A6E7C7A6E7C7A6E7C7A6E 7C7A6E7F7D717C7A6E7371656664585B594D5A584C6462566D6B5F68665A5F5D515E5C50666458 68665A605E525B594D5D5B4F5D5B4F5D5B4F5E5C505F5D51605E52615F53626054636155525044 5D5B4F6A685C727064716F636B695D646256605E5267655966645866645869675B6D6B5F6D6B5F 6B695D6765595D5B4F68665A6D6B5F69675B6A685C6C6A5E5F5D514B4B3F5F5F535B5D5057594C 54564954564955574A585A4D595B4E5A5C4F54564955574A5C5E515B5D5053554852544756584B 605E525F5D515E5C505F5D516260546664586A685C6D6B5F605E52615F53636155656357666458 67655968665A686659636154636152636152636152636152636152636152636152565445585647 5C5A4B615F506664556B695A6F6D5E716F606B695D69675B69675B6C6A5E716F63727064706E62 6C6A5E706E626A685C615F5358564A525044514F435250445252465C5C505B5D50595B4E545649 51534652544757594C5C5E5156584B585A4D5B5D505D5F525D5F525C5E51595B4E585A4D4F5048 50514952534B55564E5C5D5563645C6A6B636F706865665E66675F686961696A626A6B636B6C64 6A6B636A6C6168655C6A685C6D6B5F706E62727064727064727064716F6368665A68665A68665A 69675B6A685C6A685C6B695D6B695D68665A69675B69675B6A685C6B695D6C6A5E6C6A5E6D6B5F 6A685C6B695D6D6B5F6D6B5F6A685C6664586260545D5D5154544C5051494C4D45484941484941 4B4C444F504852534B4E4F474849414748404D4E464F50484B4C444D4E4654554D51524A51524A 52534B55564E5B5C5462635B6869616C6D655E5F575F605860615962635B64655D65665E66675F 67686065665E65665E64655D64655D65665E676860696A626A6B6363645C66675F6869616B6C64 6A6B6368696165665E63645C5D5E5661625A65665E68696167686062635B5C5D55585951676860 65665E64655D65665E66675F62635B5B5C5455574C66685D66685B66685B65675A636558606255 5E60535C5E51686A5D646659606255606255646659686A5D696B5E686A5D646256615F535F5D51 605E52636155656357636155605E5258564A5D5B4F5C5A4E545246514F43545246514F4349473B 6B695D6E6C6069675B69675B6F6D616B695D69675B737165575B5A5559585256554F53524D5150 4C504F4C504F4D51505256555559585A5E5D5F6362636766656968666A69676B6A636766646867 6569686569686367665F63625C605F5A5E5D595D5C5559585054534E52514F53525054534F5352 4E52514D51504C504F4B4F4E484C4B464A494448474246454145444C504F4B4F4E4A4E4D494D4C 474B4A4549484448474347464A4E4D474B4A444847434746454948474B4A494D4C494D4C515554 4F53524B4F4E484C4B474B4A474B4A494D4C4A4E4D4A4E4D494D4C484C4B464A49434746404443 3D41403B3F3E424645444847464A49464A49464A49474B4A494D4C4B4F4E4145443E42413C403F 3F43424549484A4E4D4B4F4E494D4C454948464A49464A49454948434746424645434746444847 3B3F3E414544464A49474B4A4549484549484A4E4D4F53524C504F4B4F4E494D4C474B4A474B4A 474B4A474B4A474B4A4E5251515554555958585C5B595D5C585C5B555958535756545857535756 5155544F53524F5352515554535756555A56535854575C565A5F595B605A585D575358524E534D 4C514B50554F535852565B55595E585B605A5A5F59595E58575C56585D575A5F595D625C5F645E 60655F5F645E5D625C5C615B5E635D5C615B5A5F595A5F595C615B60655F656A64696E6764655F 66675F68696166675F63645C60615960615961625A5E5F575A5B535B5C5463645C65665E5F6058 5C5D555E5F575D5E5664655D6E6F6772736B71726A6D6E666B6C646A6B636A6B636E6F6772736B 71726A6F70686D6E666E6F677071696F70686F70687071696F70686B6C6463645C595A5253544C 595A52585951575850575850575850595A525A5B535C5D555B5C545B5C545C5D555D5E565E5F57 5F60585F60586061595B5C5451524A51524A5F60586E6F6774756D75766E76776F7B7C74787971 74756D7071696F706871726A74756D76776F70716975766E76776F73746C75766E787971707169 626459888A7F898B7E8A8C7F8B8D808B8D808A8C7F898B7E888A7D87897C87897C87897C87897C 87897C87897C87897C87897C92908492908488867A8C8A7E817F736B695D6F6D616E6C60727064 73716573716574726675736776746877756977756973716574726675736777756978766A7A786C 7B796D7C7A6E75736768665A6462566E6C60757367727064716F637573676F6D6174726678766A 78766A7371656F6D616D6B5F6D6B5F7B796D7C7A6E7C7A6E7B796D78766A747266706E626D6B5F 7F7D7185837789877B878579838175817F73817F73807E72828074828074828074828074828074 828074828074828074807E72807E727D7B6F7674686E6C6069675B6A685C6D6B5F69675B646256 615F53646256666458646256626054636155615F53626054626054636155646256656357666458 6664585C5A4E5A584C5B594D6361556C6A5E6C6A5E6462565B594D68665A666458656357666458 69675B6A685C68665A6664586462566D6B5F6F6D616B695D6D6B5F7270646B695D5C5C5059594D 57594C56584B57594C595B4E5A5C4F5A5C4F5A5C4F5F61545A5C4F5B5D506264576264575A5C4F 595B4E5E60536361556260545F5D515D5B4F5C5A4E5D5B4F5F5D51615F5368665A676559666458 66645867655968665A6A685C6B695C666457666455666455666455666455666455666455666455 6563546563546563546563546462536462536462536361526B695D69675B68665A6A685C6E6C60 6F6D616C6A5E69675B6C6A5E69675B656357615F53605E52615F53646256646458545448525447 5052454D4F424B4D404D4F42535548585A4D5355485254474F51444E50434E5043505245525447 5456495A5B5358595157585055564E56574F5859515A5B535C5D5563645C65665E6869616A6B63 6B6C646A6B6368696166685D65625968665A6E6C60727064737165716F636D6B5F6B695D6B695D 6A685C69675B68665A67655966645865635765635766645866645867655968665A69675B69675B 6A685C6A685C6D6B5F6E6C606E6C606F6D616E6C606D6B5F6B695D68685C62625A5E5F57585951 51524A4B4C4448494146473F45463E45463E40413941423A46473F45463E41423A44453D4D4E46 4B4C444B4C444B4C444E4F4752534B5859515D5E566061596061596061595F60585E5F575D5E56 5C5D555B5C545A5B53595A5258595155564E54554D54554D56574F595A525B5C544B4C444A4B43 494A424A4B434F504856574F5E5F5763645C66675F65665E64655D64655D64655D66675F676860 686961686961686961686961696A626A6B636A6B6368696167695E5E605560625563655867695C 696B5E6B6D606B6D606C6E61686A5D64665961635662645767695C6C6E616D6F626C6E61757367 727064706E62706E627371657472667270646F6D6168665A6D6B5F6C6A5E666458646256646256 5D5B4F525044706E62747266706E626D6B5F706E626A685C6664586F6D615357565155544C504F 494D4C484C4B4A4E4D4C504F4E5251535756535756545857565A59595D5C5B5F5E5E62615F6362 565A59585C5B595D5C585C5B5559585054534A4E4D474B4A494D4C464A49444847434746454948 464A49474B4A464A494B4F4E4A4E4D484C4B464A494448474246454145444044434C504F4E5251 5155545458575458575357565155545054535054535054534D5150494D4C464A49444847454948 464A495559585458575357565256555155545054534F53524F53524C504F484C4B4347463F4342 3C403F3C403F3E42413F4342434746424645414544414544404443414544424645434746444847 4044433E4241404443454948474B4A4549484246454044433F4342404443434746474B4A4A4E4D 4B4F4E4B4F4E424645454948474B4A474B4A464A49484C4B4D5150515554494D4C474B4A434746 4044433F43424044434246454347465357565357565256555155545054534E52514D51504C504F 5256555155544F53524D51504D51504D51504F53524F5450525753535852545953565B55555A54 5156504B504A474C46535852545953545953545953555A54555A54555A54555A54535852545953 575C56595E585A5F595A5F59595E58585D57555A54565B55595E585D625C626761666B656A6F69 6C716A6D6E686B6C6467686062635B5E5F575D5E5660615963645C61625A54554D51524A5D5E56 65665E5D5E5653544C51524A5C5D5561625A65665E66675F62635B5F60585F60586061595F6058 62635B64655D63645C61625A62635B6768606B6C646B6C646E6F6771726A6F70686768605D5E56 55564E4F504856574F55564E53544C51524A50514951524A51524A52534B595A52595A52595A52 5A5B535B5C545B5C545C5D555C5D5561625A55564E55564E65665E71726A71726A71726A75766E 797A7277787074756D71726A70716972736B74756D76776F7778707A7B7378797174756D777870 7C7D7574756D67695E8183788284778385788486798486798385788284778183767E80737E8073 7E80737E80737E80737E80737E80737E807387857989877B807E728785797E7C706B695D716F63 716F6375736775736776746876746877756977756978766A78766A737165747266757367767468 77756979776B7A786C7A786C7B796D727064706E6279776B817F73828074838175868478817F73 848276878579868478828074817F73828074858377848276838175828074807E727D7B6F78766A 7472667270646B695D7F7D718D8B7F8B897D8A887C8D8B7F8A887C807E72838175838175838175 8381758381758381758381758381757B796D7E7C70817F73817F737D7B6F7573676C6A5E676559 69675B69675B6664586361556563576A685C6B695D69675B66645866645866645867655968665A 68665A69675B69675B646256605E525D5B4F5F5D5165635768665A68665A6563576A685C68665A 6563576563576664586765596765596664586765596B695D6A685C66645869675B6F6D616F6D61 67675B56564A55574A56584B595B4E5C5E515D5F525B5D50595B4E5D5F52585A4D5A5C4F616356 6163565B5D505A5C4F5F61545F5D515D5B4F5B594D59574B59574B59574B5A584C5A584C666458 6765596A685C6C6A5E6D6B5F6C6A5E6A685C69675A6A685B6A68596A68596A68596A68596A6859 6A68596A6859706E5F6E6C5D6C6A5B696758666455636152615F50605E4F6D6B5F6A685C676559 68665A6B695D6B695D68665A656357676559676559676559666458666458666458666458646458 6060545E60535B5D5056584B52544750524552544754564956584B5456495153464F51444F5144 51534653554855574A5B5C54595A5256574F53544C51524A5051495051495051495758505B5C54 61625A66675F696A626A6B63696A6267695E68655C69675B6C6A5E6D6B5F6E6C606D6B5F6B695D 6A685C6C6A5E6B695D69675B666458646256626054605E525F5D51636155636155646256646256 6563576664586765596765596A685C69675B69675B69675B6A685C6B695D6D6B5F6C6C60686860 65665E61625A5B5C5454554D4D4E4647484043443C46473F44453D46473F4A4B4346473F404139 45463E5051494E4F474E4F474E4F474F504851524A54554D575850595A5262635B6061595D5E56 595A5255564E51524A4E4F474D4E4655564E51524A4C4D4547484045463E46473F494A424B4C44 46473F42433B3D3E363A3B333B3C3441423A4849414C4D4561625A65665E6A6B636D6E666C6D65 6768606061595B5C5464655D64655D64655D63645C61625A61625A63645C64665B5C5E535E6053 61635664665966685B686A5D686A5D686A5D6466596062555E605360625565675A696B5E696B5E 686A5D6765596462566361556664586B695D6D6B5F6C6A5E6A685C6B695D6F6D616E6C6069675B 68665A6765595A584C4A483C68665A727064716F636E6C60716F636D6B5F6B695D716F63474B4A 464A49464A49464A49494D4C4E5251525655555958525655525655525655525655535756545857 555958565A594F53525054535155545155544D5150474B4A4044433C403F494D4C484C4B484C4B 494D4C4B4F4E4C504F4D51504D51504A4E4D4A4E4D4B4F4E4C504F4E52514F5352505453505453 4549484A4E4D505453575B5A5B5F5E5B5F5E5A5E5D585C5B585C5B595D5C595D5C5559584F5352 4B4F4E4C504F4E52514B4F4E505453575B5A5C605F5D6160585C5B5256554D5150474B4A444847 4044433D41403D4140404443444847464A493B3F3E3C403F3E4241424645444847444847404443 3C403F4347464A4E4D5054534E5251464A49404443404443434746414544404443404443444847 4B4F4E4F53525054534E52514C504F4B4F4E494D4C464A49444847444847464A49474B4A4B4F4E 494D4C464A49444847444847474B4A4A4E4D4D51505559585357564F53524B4F4E494D4C484C4B 494D4C4A4E4D4E52514E52514D51504E52514E52514F53525054535055515156524E534D4A4F49 4B504A4E534D50554F4F544E4D524C5459535358525156504F544E4F544E50554F515650525751 575C56575C56595E585B605A5C615B5D625C5E635D5E635D525751545953585D575B605A5C615B 5C615B5B605A5A5F586C6D67696A6264655D6061595D5E565E5F5761625A64655D696A625E5F57 5B5C5463645C64655D56574F4C4D454C4D4560615962635B62635B5F60585A5B53585951595A52 5C5D555A5B535C5D555D5E565C5D555B5C545D5E5664655D6A6B636768606A6B636D6E666A6B63 62635B5B5C5457585056574F55564E54554D52534B51524A51524A52534B53544C54554D63645C 63645C63645C63645C63645C64655D64655D64655D6E6F6763645C62635B6E6F6774756D6E6F67 6B6C646F706877787075766E73746C72736B72736B73746C74756D76776F777870797A72787971 75766E797A727D7E7674756D66685D73756A74766975776A76786B76786B75776A747669737568 7173667173667173667173667173667173667173667173667674687A786C757367807E727D7B6F 6E6C6077756979776B7E7C707E7C707E7C707F7D717F7D717F7D717F7D717F7D717E7C707D7B6F 7B796D79776B777569757367747266737165767468716F636F6D617573677C7A6E7F7D71807E72 817F737C7A6E7C7A6E7B796D7775697472667674687D7B6F838175817F73817F73817F73807E72 7F7D717E7C707D7B6F7D7B6F6361557573678583778A887C8A887C8A887C8583777E7C70848276 8482768482768482768482768482768482768482767C7A6E7E7C70817F738482768381757C7A6E 706E626765596563576B695D6A685C6462566664586E6C60706E626A685C666458666458666458 67655967655967655967655967655963615569675B6C6A5E6765595F5D51605E526A685C757367 6D6B5F6B695D68665A66645866645867655968665A69675B656357656357636155605E52605E52 6462566664586363575E5E525A5C4F57594C57594C5A5C4F5B5D505A5C4F585A4D5355484F5144 515346595B4E5A5C4F545649545649595B4E56544856544857554958564A5A584C5C5A4E5E5C50 5F5D5159574B5F5D5168665A6F6D617270646F6D616A685C6664576E6C5F6E6C5D6E6C5D6E6C5D 6E6C5D6E6C5D6E6C5D6E6C5D6E6C5D6E6C5D6E6C5D6D6B5C6D6B5C6C6A5B6C6A5B6C6A5B706E62 6C6A5E68665A67655969675B6A685C676559656357676559676559666458646256605E525B594D 5654485151456161556163566062555E60535B5D50585A4D55574A54564951534653554855574A 56584B56584B5355485052454E50435051495051495051494F504850514951524A51524A52534B 4A4B434E4F4754554D5B5C5461625A66675F696A626A6C616E6B626C6A5E69675B676559676559 6A685C6D6B5F6F6D6168665A676559666458646256626054615F535F5D515F5D51605E52605E52 615F53626054626054636155646256646256656357636155605E525E5C505E5C50615F53646256 6464585D5D555E5F5760615961625A5F60585A5B5355564E52534B55564E54554D5758505A5B53 54554D4D4E4653544C6061595B5C545B5C545B5C545A5B535B5C545B5C545C5D555C5D55606159 5E5F575B5C5456574F52534B4E4F474B4C44494A424F50484C4D4546473F43443C42433B45463E 494A424C4D454E4F474D4E464A4B4346473F42433B3E3F373B3C343A3B3338393141423A505149 5E5F576869616C6D656C6D656A6B6364655D66675F66675F62635B5B5C54575850575850585A4F 63655A64665966685B686A5D696B5E696B5E686A5D67695C6A6C5F67695C64665965675A686A5D 6A6C5F686A5D65675A6A685C68665A66645869675B6D6B5F6F6D616E6C606B695D727064757367 747266706E62706E626E6C605E5C504B493D5452466664586C6A5E6A685C706E62727064727064 78766A4E52514E5251505453535756555958585C5B5A5E5D5B5F5E5F63625F6362606463606463 6064636064635F63625F6362565A59565A59565A595458575155544D5150484C4B4549484D5150 4E52515054535155545155545256555256555357564B4F4E4C504F4D51504F5352515554525655 5357565458574E5251525655585C5B5C605F5E62615D61605A5E5D585C5B545857565A59585C5B 565A595155544F53524F5352515554414544464A494B4F4E4F53524D5150474B4A3F43423A3E3D 3A3E3D3A3E3D3A3E3D3B3F3E3E4241414544454948474B4A3B3F3E3A3E3D3B3F3E404443474B4A 494D4C464A49424645414544454948484C4B464A494044433E4241424645474B4A4145443F4342 3E4241414544464A49494D4C484C4B464A495155544F53524C504F4A4E4D494D4C494D4C484C4B 474B4A474B4A464A49464A49464A49484C4B4C504F5054535256555256555054534E52514D5150 4E5251525655575B5A5A5E5D4A4E4D4B4F4E4D51504F5352515554535756545857545955494E4A 464B45454A44474C464D524C51565052575151565050554F4F544E4D524C4C514B4B504A4C514B 4D524C4E534D4A4F494A4F494B504A4D524C4E534D50554F525751535852545953565B55595E58 5B605A5B605A585D57555A5452575063645E62635B6061595F605860615961625A63645C63645C 686961676860696A626A6B6362635B56574F54554D5A5B536C6D656C6D656B6C6466675F61625A 5F605862635B66675F62635B64655D65665E64655D63645C65665E6C6D6572736B63645C65665E 66675F63645C5E5F575C5D555E5F5761625A5E5F575D5E565D5E565E5F5760615962635B65665E 67686071726A7071697071697071697071697071697071696F706871726A6C6D656D6E6674756D 77787072736B6F706871726A74756D74756D73746C73746C73746C74756D75766E76776F72736B 75766E75766E74756D7A7B737D7E7671726A5F61566F7166707265727467737568737568727467 7072656F716470726570726570726570726570726570726570726570726578766A7B796D757367 7E7C7079776B69675B706E62716F637F7D717F7D717F7D717F7D717F7D717E7C707E7C707E7C70 817F73807E727E7C707C7A6E79776B77756975736774726678766A777569747266737165777569 7B796D7B796D78766A7B796D79776B7573676F6D616C6A5E706E627A786C8280747D7B6F7C7A6E 7C7A6E7B796D7B796D7B796D7B796D7B796D6765596A685C7472667F7D71807E7279776B767468 7A786C817F73817F73817F73817F73817F73817F73817F73817F737C7A6E7B796D7A786C7C7A6E 7D7B6F79776B716F636A685C605E5268665A6A685C6664586664586D6B5F6D6B5F676559636155 6361556361556260546260546260546260546260545D5B4F6361556765596361555B594D5A584C 6361556C6A5E6C6A5E6B695D6B695D69675B69675B69675B6A685C6B695D6A685C676559656357 6563576260545F5D515F5D515F5F536C6C60636558595B4E55574A55574A57594C57594C55574A 5052454C4E414F5144585A4D5A5C4F55574A55574A5B5D5058564A59574B5A584C5C5A4E5D5B4F 5E5C505E5C505E5C505250445654485D5B4F6563576A685C6C6A5E6B695D6B695C6F6D606F6D5E 6F6D5E6F6D5E6F6D5E6F6D5E6F6D5E6F6D5E6E6C5D6E6C5D6F6D5E706E5F716F60727061737162 737162716F636C6A5E67655966645868665A69675B68665A66645868665A68665A68665A666458 615F535A584C5351454D4D414D4D4150524556584B5C5E515F61545F61545C5E51595B4E4D4F42 4F51445052455153465052454D4F424A4C3F484A3D4B4C444C4D454E4F4750514952534B53544C 54554D54554D4D4E464E4F474F504851524A55564E5A5B535E5F576163586B685F6A685C68665A 67655968665A6A685C6C6A5E6E6C60626054626054626054626054626054636155636155636155 5F5D515F5D51605E52615F5362605462605463615563615569675B6664586260545E5C505D5B4F 5D5B4F5E5C505E5E5256564E595A525F605864655D66675F64655D61625A5E5F576061595F6058 62635B64655D5E5F5756574F5C5D55696A6262635B62635B61625A61625A6061595E5F575D5E56 5C5D555B5C545A5B53595A5256574F54554D51524A4F50484E4F4745463E43443C41423A404139 42433B46473F4B4C444F50484A4B434B4C444C4D454D4E464B4C4448494145463E42433B3B3C34 3B3C343B3C3440413948494152534B5D5E5663645C61625A65665E68696166675F61625A5C5D55 5A5B535A5C5165675C67695C6A6C5F6D6F627072657173667173667173667375687072656D6F62 6C6E616C6E616B6D6067695C626457716F636E6C606B695D6C6A5E6F6D61706E626D6B5F6A685C 6A685C6D6B5F6B695D67655968665A67655958564A464438474539615F536B695D6765596B695D 6F6D616F6D617270646266656266656266656165646064635F63625D61605D6160616564616564 6266656266656266656165646165646064635458575357565155544E52514C504F4C504F4B4F4E 4B4F4E4D51504F53525256555256555155544F53524F53524F53524C504F4C504F4B4F4E4A4E4D 4A4E4D494D4C484C4B484C4B5E62615F63626064635F63625C605F585C5B5357565155544A4E4D 4C504F4E52514E52514D51504B4F4E4A4E4D4A4E4D4D51504C504F484C4B4448473F43423B3F3E 383C3B363A393D41403F4342424645464A494A4E4D4C504F4E52514F5352484C4B4044433A3E3D 3D4140464A494F53525155544F53524E5251424645353938323635383C3B3F4342414544404443 4044433F43423E42413F4342414544424645424645414544373B3A363A39363A39393D3C3D4140 3E42413B3F3E373B3A3F4342414544424645454948474B4A494D4C4A4E4D4B4F4E4A4E4D494D4C 484C4B484C4B4A4E4D4D5150515554545857494D4C4B4F4E4E5251505453525655525655525655 515652404541434842484D474E534D52575152575150554F4D524C494E48494E48494E484A4F49 4A4F494A4F494A4F494A4F49454A44444943454A44464B45484D474B504A4E534D50554F555A54 575C565B605A5E635D5F645E5E635D5C615B5B60595C5D575B5C545C5D555E5F5760615961625A 6061595E5F575B5C5465665E6A6B6364655D5D5E565D5E5664655D6A6B63696A626A6B63696A62 65665E6061595F605863645C66675F61625A64655D66675F65665E63645C64655D6869616D6E66 64655D63645C61625A5F60585E5F575F605863645C6768605F60585F60585F605861625A63645C 6768606A6B636C6D656B6C646A6B636A6B63696A62696A6268696168696167686066675F6B6C64 71726A73746C7778707A7B737A7B7377787072736B73746C73746C74756D74756D75766E75766E 75766E6F706872736B72736B73746C797A727B7C746E6F675B5D5276786D77796C787A6D797B6E 797B6E787A6D77796C76786B787A6D787A6D787A6D787A6D787A6D787A6D787A6D787A6D7A786C 7C7A6E7573677E7C707775696664586D6B5F6D6B5F78766A78766A777569777569767468767468 75736775736779776B79776B79776B79776B79776B79776B79776B79776B7A786C7D7B6F79776B 73716574726679776B79776B737165807E727E7C707A786C747266706E627371657C7A6E848276 79776B777569747266716F636F6D616E6C606E6C606E6C606B695D615F53615F536D6B5F716F63 6A685C6A685C7371656D6B5F6D6B5F6D6B5F6D6B5F6D6B5F6D6B5F6D6B5F6D6B5F6B695D68665A 6563576563576664586664586260545E5C505D5B4F626054666458656357646256656357646256 6260545F5D515F5D515F5D515E5C505D5B4F5D5B4F5C5A4E5C5A4E59574B555347525044545246 58564A5A584C5755495351456462566765596A685C6B695D6B695D6A685C6A685C6B695D716F63 6D6B5F6D6B5F706E626C6A5E63615562605465655970706466685B5C5E5157594C57594C57594C 5456495153465456495052455456495D5F526062555C5E515D5F52636558615F53615F53615F53 605E525E5C505B594D58564A5654485654485553475452465553475B594D6361556C6A5E716F62 6F6D606F6D5E6F6D5E6F6D5E6F6D5E6F6D5E6F6D5E6F6D5E716F60716F60706E5F6F6D5E6E6C5D 6E6C5D6D6B5C6D6B5C6E6C6069675B63615562605465635767655968665A67655968665A6A685C 6B695D6C6A5E6B695D68665A65635761615555554957594C5D5F5263655867695C67695C636558 5F61545C5E515A5C4F56584B53554851534652544753554855574A52534B53544C55564E55564E 55564E54554D53544C51524A5A5B5357585052534B4E4F474D4E464E4F475051495254495D5A51 605E5265635768665A6A685C6A685C68665A666458615F53615F53626054626054636155646256 656357656357605E52615F53615F53626054636155646256646256646256706E626E6C606B695D 68665A6664586462566361556161555B5B535D5E5662635B65665E66675F64655D6061595E5F57 6061595D5E565F605861625A5C5D5555564E595A5264655D5E5F575E5F575E5F575E5F575C5D55 5A5B5357585055564E58595158595157585056574F56574F55564E55564E54554D4C4D454A4B43 47484044453D41423A4041393F40383E3F3746473F45463E44453D43443C44453D46473F484941 4A4B435051494C4D4546473F3F40383A3B33383931383931393A324D4E4651524A5758505B5C54 5C5D555C5D555B5C545A5C515F615660625562645764665965675A65675A646659646659696B5E 66685B6365586365586365586062555B5D5056584B5B594D59574B59574B5D5B4F636155676559 6765596664585C5A4E5F5D515C5A4E56544857554959574B504E42424034464438656357706E62 67655966645869675B6765596664586367666266655F63625D61605B5F5E5A5E5D595D5C595D5C 5357565256555054534F53524F53525155545357565458574F53524C504F474B4A444847444847 484C4B4C504F4F53525054535357565559585559585155544D51504B4F4E4B4F4E494D4C494D4C 494D4C484C4B484C4B474B4A474B4A474B4A5559585559585357565155544F53524C504F4B4F4E 4A4E4D4B4F4E4B4F4E4C504F4D51504D51504B4F4E484C4B4448475559585357564F53524B4F4E 494D4C494D4C494D4C4A4E4D4A4E4D4C504F4F5352515554535756545857535756535756545857 4A4E4D4145444347464C504F5559585559585256554F5352434746383C3B363A393F4342474B4A 484C4B464A494A4E4D4B4F4E4D51504D51504C504F4C504F4E52514F5352545857535756555958 5B5F5E6064635F6362575B5A505453424645444847484C4B4A4E4D4A4E4D474B4A444847414544 414544414544414544414544434746454948474B4A494D4C4C504F4D51504F53524F53524E5251 4B4F4E484C4B464B47444945484D474D524C51565050554F4D524C4B504A4A4F49414640434842 464B45494E484B504A4A4F49494E48474C46545953535852535852545953565B555A5F595E635D 616660535852545953565B55585D575A5F595B605A5B605A5A5F585C5D575A5B535A5B535C5D55 5D5E565D5E56595A5256574F56574F6061595E5F5752534B53544C62635B6A6B6365665E5F6058 61625A62635B6061595D5E565C5D555F605862635B5C5D5560615963645C63645C6061595E5F57 60615962635B696A6265665E62635B60615961625A62635B63645C64655D6061595F60585F6058 5F605860615962635B64655D66675F65665E64655D64655D63645C62635B61625A606159606159 5D5E566C6D6574756D6F706871726A7C7D757C7D7572736B71726A72736B73746C75766E76776F 76776F76776F75766E72736B73746C71726A7071697778707B7C746F70685D5F54787A6F797B6E 7A7C6F7B7D707B7D707A7C6F797B6E787A6D787A6D787A6D787A6D787A6D787A6D787A6D787A6D 787A6D737165767468716F637C7A6E78766A69675B727064747266777569777569767468757367 7472667371657371657270647573677573677573677573677573677472667472667472666A685C 6F6D616C6A5E6361556361556B695D6B695D6361556E6C606F6D616E6C606A685C656357646256 68665A6C6A5E6C6A5E6A685C67655965635764625664625666645867655968665A5E5C50565448 59574B615F536765596A685C6B695D646256646256646256646256646256646256646256646256 5F5D515F5D515E5C505E5C505F5D515D5B4F5B594D59574B5E5C505D5B4F5F5D51605E525E5C50 59574B5A584C5E5C505E5C505E5C505D5B4F5C5A4E5B594D5A584C5A584C59574B58564A525044 4F4D4152504459574B5A584C5452464D4B3F5755495E5C506664586A685C6B695D68665A676559 6765596F6D6169675B6B695D716F636D6B5F6361556361556A6A5E68685C6264575E60535E6053 6062555C5E515355484B4D405254474E50435254475C5E516062555C5E515E6053646659605E52 615F53615F53615F535E5C505A584C5654485452465C5A4E58564A5452465351455654485E5C50 6664586C6A5D6D6B5E6D6B5C6D6B5C6D6B5C6D6B5C6D6B5C6D6B5C6D6B5C6D6B5C6C6A5B6B695A 6A6859686657676556656354656354676559615F535C5A4E5B594D5F5D51636155656357656357 68665A69675B6C6A5E6E6C60706E62716F637270647070646B6B5F696B5E686A5D6A6C5F6C6E61 6B6D60686A5D65675A686A5D65675A6163565E60535C5E515C5E515E60535F6154585951595A52 5B5C545B5C545B5C5458595156574F54554D5B5C54595A5255564E51524A4F50484F5048505149 5153485552495755495A584C5D5B4F615F53636155646256656357656357656357656357646256 6462566361556361556361556361556361556361556462566563576664586664586765596B695D 6B695D6C6A5E6C6A5E6A685C68665A66645863635760605861625A63645C64655D63645C61625A 5E5F575C5D556061595A5B53595A525D5E565A5B5353544C55564E5D5E565C5D555D5E565E5F57 5E5F575D5E565A5B5356574F54554D57585057585056574F56574F55564E55564E54554D54554D 57585056574F55564E51524A4C4D4546473F41423A3D3E3647484045463E41423A3E3F373D3E36 3F403842433B44453D40413943443C46473F494A42494A4246473F42433B3F403842433B43443C 4748404C4D4551524A54554D55564E54564B57594E595B4E5A5C4F5C5E515C5E515C5E515B5D50 5A5C4F6062555E60535D5F525F61546264576163565C5E5157594C5F5D515D5B4F5C5A4E5F5D51 646256676559666458646256636155656357615F5359574B59574B5F5D515E5C50565448434135 67655975736769675B6664586A685C6664586361555458575256554F53524D51504D5150505453 5357565559584B4F4E484C4B444847414544424645464A494A4E4D4E52515458575054534A4E4D 474B4A484C4B4E5251565A595B5F5E565A59595D5C5C605F5A5E5D5458574F53524C504F4C504F 464A49474B4A494D4C4B4F4E4E5251505453525655535756545857545857545857545857565A59 585C5B5B5F5E5D61605559585357565256555357565458575155544B4F4E454948484C4B4A4E4D 4E5251525655555958585C5B595D5C5A5E5D4B4F4E4C504F4D51504D51504D51504B4F4E4A4E4D 494D4C585C5B5054534A4E4D4E5251565A595A5E5D5458574C504F3C403F414544484C4B4D5150 5054535559585B5F5E5F6362585C5B5C605F5F63625F63625E62615E6261616564656968575B5A 555958565A595B5F5E5E6261585C5B4C504F4145444C504F4F53525256555458575155544A4E4D 4347463E42413A3E3D3C403F4044434549484B4F4E5054535357565559584F5352505453505453 4E52514A4E4D4549483F43423C403F4F54505156505055514D524C484D49474C46494E4A4C514B 3B403C3F443E454A464A4F494C514D4B504A484D49464B454A4F4B494E48494E4A494E484C514D 515650555A56585D5751565250554F5055514F544E4F54504E534D4E534F4E534D5E615A5B5E55 5A5B55595C535A5B55575A5154554F4E51485B5C565E615854554F42453C4B4C4661645B656660 54554D60615B63645C66676166675F64655F63645C65666068696161625C66675F6A6B656B6C64 67686264655D63645E63645C6D6E68696A6264655F63645C64655F64655D61625C5E5F576B6C66 6A6B6368696367686066676166675F67686268696170716B6F70686E6F696D6E666C6D676B6C64 6A6B656A6B635D5E5872736B7879736C6D656A6B6577787076777166675F70716971726A73746C 75766E76776F76776F76776F75766E76776F75766E71726A6F706876776F7C7D7571726A606159 73756A74766976786D77796C77796E76786B74766B737568717368717366717368717366717368 7173667173687173666F6F65737367706D647A7A6E79766D69695D7471687474687D7A717B7B6F 7C797079796D7A776E76766A78756C75756979766D76766A76736A7070646F6C636A6A5E69665D 66665A67645B6D6D616D6A616161556461586C6C606F6C6364645865625967675B6C696068685C 6562595E5E525F5C535E5E525B584F58584C5A574E59594D5E5B5260605467645B6A685C626054 5D5B4F5250444B493D5755496B695D6F6D61676559727064727064727064727064727064727064 72706472706469675B6B695D6F6D61706E626F6D616C6A5E69675B676559605E525A584C59574B 5C5A4E58564A514F435452465D5B4F5E5C505C5C505D5B4F5A5A4E5B594D58584C59574B57574B 58564A59594D5E5C505C5C505B594D57574B59574B58584C4E4C4055554962605466665A69675B 6464586462566161556563575C5C50605E5267675B6765595C5C50605E526A6A5E5C5E515C5E51 5F615665675A696B6062645753554A47493C4A4C4146483B4B4D4255574A595B5056584B57594E 5E605357554959574B5C5A4E5E5C505F5D515D5B4F5B594D59574B5C5A4E5B594D5B594D5B594D 5C5A4E5D5B4F5F5D51605E526C6A5D6A6B5B6C6A5D6A6B5B6C6A5D6A6B5B6C6A5D6A6B5B636154 616252636154616252636154626353646255646255605E525B594D5654485553475A584C5F5D51 62605462605468665A68665A69675B6B695D6D6B5F6F6D61706E62716F6369695D646659626256 61635666665A686A5D69695D67695C6060546062556363576264576161555C5E5159594D55574A 56584D585A4F5C5D555E60555F60585E60555D5E565B5D5253544C53554A53544C54564B56574F 585A4F5A5B535B5D5254544A5151454F4C434C4C40524F4658584C64615869695D6B685F68685C 68655C646458646158606054605D545D5D5164615863635765625964645867645B66665A68655C 66665A5F5C535F5F5364615865655968655C6464586461586060565F60585F605861625A61625A 61625A6061595F60585E5F5763645C5B5C54595A525D5E565C5D5556574F56574F5D5E56606159 61635863645C63655A62635B5F61565B5C54595B5057585057594E56574F55574C54554D525449 52534B51534853544C57594E5C5C545E60556060585D5F545A5A5256584D44443C43453A43433B 41433842423A41433842423A41423A4A4B43494A424849414849414A4B434D4E4651524A53544C 4D4E464B4C444A4B434C4D4552534B55564E55564E53544C54564B57594C5C5E5362645767695E 6B6D606E70656F7164696B60696B5E6A6C616F716473756A7476697072676C6E6174746A6E6E62 69665D626256605D5459594D5451484C4C405E5B525F5F535D5A51515145524F4659594D5E5B52 59594D3C393061615574716868685C69665D6D6D616E6B6269695D5C605F5D61605E62615E6261 5D61605B5F5E585C5B565A594D51504D51504E52514F5352505453515554525655525655494D4C 505453575B5A595D5C5A5E5D5F6362686C6B7175747175746D7170676B6A5F6362585C5B525655 4D51504B4F4E4D5150585C5B636766666A696064635B5F5E5C605F5F6362575B5A5D6160626665 606463595D5C545857555958585C5B5256555C605F6468675C605F4B4F4E3E42413E4241444847 5155545256555357565256555054534B4F4E464A49434746565A59575B5A595D5C5A5E5D585C5B 5357564E52514A4E4D5155545559585B5F5E5D6160585C5B4C504F404443373B3A5054534B4F4E 484C4B4E5251595D5C636766666A69656968686C6B686C6B6569685E6261595D5C595D5C5F6362 6569685357565B5F5E6165645E6261535756474B4A424645414544464A49484C4B4B4F4E4D5150 4E52514C504F4A4E4D484C4B4A4E4D4D51504F53524D5150484C4B464A49484C4B4B4F4E414544 484C4B4B4F4E4549483A3E3D383C3B4145444C504F5256555257535155544F54504B4F4E474C48 434746414642505453484D494A4E4D5459555458574A4F4B494D4C515652464A494348443F4342 3D423E3F4342454A464C504F5055514F53525055515155544F54504D51504F54505559585B605C 555A54585D56535550454A43484A455257505557524B504960625D4F544D4A4C4753585161635E 5D625B5A5C57595C5561625D6566606A6B666A6B6568696465666065666166676163645F6A6B65 6F706B6C6D676A6B666A6B656B6C67696A645E5F5A5E5F59595A5552534D57585362635D666762 60615B63645F696A6471726D72736D6D6E696566605F605B5C5D5766676264655F6F706B6D6E68 63645F6E6F6970716C5758525A5B5662635D6A6B666B6C666869646566606869646D6E68676860 6A6B636E6F6771726A71726A6E6F676A6B636768606A6B6366675F6D6E666A6B636D6E666A6B63 5F605874756D7B7C747C7E737B7C7477796E72736B70726772736B75776C8081797D7F747A7B73 7A7C717B7C747B7D7278797174766B7A7B737A7C7178787074766B72726A6E70656D6D656A6C61 76766E75776C74746C7274697171696E70656E6E666D6F6474746C6E706569696166685D6A6A62 6D6F647070686F716665655D686A5F6C6C64686A5F63635B6163586868606D6F645E5E565D5F54 5D5D555B5D525B5B53595B5059595157594E57574F55574C54544C52544955554D57594E5C5C54 5F5F55605E525F5D51615F53605E525553474F4D415D5B4F74726663615568665A6E6C60716F63 706E62706E627371657674687270646F6D616F6D617472667B796D7C7A6E777569716F63747266 6E6C606462565B594D5755495755495B594D5E5C505F5F53585A4D5252464E5043515145535548 55554953554857574B56584B58584C57594C57574B5456495252464F51446060545D5F525C5C50 5A5C4F5D5D5160625565655967695C5B5B4F61635668685C686A5D65655962645767675B6A6C5F 57594E5A5C515D5E5660625762635B6163585F60585E605557585053554A4F50484D4F444D4E46 4B4D4247484043453A514F434E4C4049473B4644384745394D4B3F5452465A584C5C5A4E5F5D51 626054646256636155605E525B594D58564A5A5A4E5E605268685C6E70627171656D6F6168685C 6365577070646E70626D6D616A6C5E68685C6567596464586363576A685C69675B68665A676559 6765596664586664586664585A584C5E5C506563576B695D6E6C606E6C606C6A5E6A685C656357 6363576563576262566462566363576563576363575E5C505E5E52626054636357666458656559 6664586363575D5F52595B4E54564B505245505247545649595B505D5F52505247515346525449 54564955574C57594C585A4F595B5052544952544952524A5052475050484E50454E4E464C4E43 5858505B5D5262625A67695E6B6B636A6C6169696166685D6C6C6463655A63635B67695E64645C 595B505E5E566A6C6164645C6163586060585E605561615963655A67675F696A625D5E5661625A 65665E66675F64655D62635B62635B63645C5A5B535B5C545C5D555D5E565D5E565B5C545A5B53 595A526062575F61545E60555B5D5057594E5355484F51464C4E415B5D525C5E5160625766685B 6A6C61696B5E64665B60625566665C66665A69665D68685C6B685F6A6A5E6D6A616B6B5F67645B 65655967645B65655967645B65655967645B65655B64655D62635B5E5F575B5C545C5D555F6058 63645C67686056574F56574F575850585951595A52595A525A5B535A5B53595A5254564B505149 525449595A526264596768606A6C6162635B62645962635B62645962635B62645962635B63655A 71726A6F71666D6D6567695E616159595B5054544C50524753534B5153485050484F5146515149 52544957574F585A4F42423A44463B5A5A526A6C6165655D5D5F5463635B65675C5B5F5E5B5F5E 5A5E5D595D5C595D5C595D5C595D5C595D5C565A59575B5A575B5A585C5B595D5C5A5E5D5B5F5E 5B5F5E4D51505155545559585559585256555458575A5E5D606463565A595256554E52514C504F 4D51504F5352505453505453595D5C5A5E5D5A5E5D5C605F5B5F5E575B5A5256554D5150525655 505453505453545857595D5C585C5B505453484C4B525655515554494D4C3C403F303433323635 4145444F53524F53525054535256555357565458575458575357565256554D51504C504F4C504F 4C504F4E5251515554535756555958595D5C565A595155544B4F4E484C4B464A49464A49464A49 585C5B555958545857595D5C626665686C6B696D6C686C6B6367665E62615A5E5D5B5F5E5F6362 6064635C605F575B5A6266656266655D61605155544347463C403F3E4241424645464A49474B4A 474B4A484C4B484C4B474B4A454948444847464A49484C4B484C4B464A49434746424645434746 454948434746434746434746434746444847454948484C4B4A4E4D474B4A484C4B474B4A474B4A 454948434746414544404443474B4A4044434246454B4F4E4C504F4448474448474C504F454948 444847424645414544434746474B4A4B4F4E4E52514E52514F53524F53524C504F494D4C494D4C 4D51505156524F545054595350554F474C46484D475257515459534C514B414640424741484D47 515650575C56585D57585D575A5F5964656065666165666162635E5F605B5E5F5A60615C63645F 60615C64656065666162635E5D5E595A5B5656575252534E4B4C4753544F575853555651595A55 60615C5E5F5A56575252534E5859545F605B61625D5D5E5958595455565155565160615C5D5E59 6566616465605C5D586566616566614E4F4A62635E6768636D6E696F706B6D6E696C6D686E6F6A 70716B6C6D676E6F6771726A72736B72736B71726A6E6F676C6D656E6F676A6B636F70686B6C64 6C6D656768605C5D557071697A7B737A7B7378797175766E73746C72736B73746C75766E797A72 787971777870787971797A727A7B73797A7278797174756D72736B73746C76776F74756D707169 70716974756D78797177787076776F73746C6F70686B6C6467686065665E6D6E66696A6263645C 62635B64655D686961696A626A6B636869616B6C646D6E6668696161625A5D5E5660615965665E 5A5B535B5C545B5C545B5C545C5D555C5D555D5E565D5E565D5E565D5E565C5D555C5D555C5D55 5E5F575F605860625763605758564A59574B5F5D51555347464438535145706E62767468767468 77756976746875736775736777756978766A7371656D6B5F68665A69675B6D6B5F6F6D616D6B5F 6A685C6D6B5F68665A615F535A584C5755495755495A584C5A5A4E5B5B4F57594C545649545649 55574A57594C585A4D595B4E56584B56584B55574A5456495456495456495456495456495F6154 5E60535D5F525B5D50585A4D55574A53554851534652544756584B595B4E56584B5052454C4E41 4E504351534644453D46473F494A424B4C444B4C444A4B434849414748404C4D454B4C444B4C44 4F504855564E595A525A5B53595B50524F4653514554524656544858564A5B594D5F5D51626054 5E5C50605E52636155656357646256605E525C5A4E57574B6262566062555F61545F6154606255 63655866685B686A5D686A5D686A5D686A5D67695C66685B66685B65675A65675A68665A68665A 6765596765596664586563576462566462565F5D51615F5363615566645868665A6A685C6B695D 6B695D615F536260546361556563576563576563576563576462566E6C606E6C606D6B5F6D6B5F 6C6A5E6C6A5E6D6B5F6B6B5F6464585F6154595B4E5456495052454F514450524551534655574A 56584B585A4D57594C56584B55574A57594C595B4E51524A51524A51524A5051495051494F5048 4F50484E4F47494A424D4E4653544C5859515B5C545B5C54595A52585951595A5254554D575850 6061595F605856574F56574F5E5F5753544C53544C52534B52534B53544C55564E575850585951 5C5D555E5F576061596061595F605860615962635B65665E63645C64655D65665E66675F66675F 65665E63645C6264595A5C515B5D505C5E515D5F525D5F525C5E515B5D505A5C4F5153465A5C4F 6264576466596062555F615465675A6B6D60666458666458666458666458666458666458666458 66645868665A68665A67655967655967655966645866645864645864645C61625A5E5F575C5D55 5C5D555D5E565F605861625A585951585951585951595A525A5B535B5C545B5C545C5D555B5C54 56574F51524A51524A56574F5D5E5661625A62635B66675F65665E65665E64655D62635B61625A 60615960615962635B63645C64655D65665E64655D62635B61625A5F60585F60585E5F575B5C54 5A5B535A5B535B5C545E5F575F60584F504846473F50514961625A63645C62635B64655D62635B 585C5B565A59555958545857545857565A59595D5C5A5E5D595D5C595D5C5A5E5D5A5E5D5B5F5E 5C605F5C605F5C605F4E5251515554545857545857545857565A595C605F6064635458574F5352 4A4E4D4D51505559585C605F5F63625E62616468675C605F565A59585C5B6064636165645B5F5E 5357565A5E5D575B5A575B5A5B5F5E5F63625C605F515554484C4B4A4E4D4044432F3332212524 1D21202A2E2D3F43425054535054535054534F53524F5352505453515554535756545857505453 4F53524D51504D51504F5352525655575B5A595D5C4E52514A4E4D4448474145444347464A4E4D 535756595D5C595D5C585C5B585C5B5C605F6165646468676266655F6362656968585C5B4C504F 4D5150585C5B5E62615A5E5D525655565A595559584F5352464A493F4342404443484C4B515554 4D51504C504F4A4E4D484C4B464A49464A49464A49474B4A474B4A474B4A474B4A464A49454948 4448474448474448474347463F43423D41404347464C504F5054534C504F464A49494D4C494D4C 4A4E4D4A4E4D4A4E4D4A4E4D4A4E4D4A4E4D4A4E4D454948464A494C504F4D5150494D4C4A4E4D 4F5352444847444847454948464A49474B4A494D4C4A4E4D4B4F4E4C504F4D51504C504F494D4C 444847424645444847484D494A4F4B4F544E4F544E4A4F494B504A5156505156504C514B3E433D 4D524C5B605A5E635D5D625C5D625C5F645E60655F676863696A656A6B66696A65676863646560 63645F63645F5B5C575B5C575E5F5A62635E64656062635E5F605B5C5D584D4E49595A5560615C 60615C61625D6667626465605D5E595859545D5E5961625D62635E60615C5E5F5A5F605B62635E 61625D5D5E5960615C5F605B5B5C5760615C5E5F5A4C4D486B6C676D6E6970716C72736E747570 74757074757073746E72736D72736B73746C73746C73746C73746C72736B72736B74756D6E6F67 72736B6C6D656B6C6464655D5758506A6B63797A7276776F74756D73746C74756D75766E75766E 75766E70716972736B74756D75766E76776F777870797A727B7C7474756D6F706872736B797A72 76776F6B6C646B6C6475766E76776F77787078797178797175766E71726A6D6E666A6B6371726A 6D6E666A6B636869616A6B636C6D656E6F676F70686C6D656E6F676E6F67696A626061595A5B53 5B5C545E5F5760615961625A62635B64655D65665E66675F6869616869615E5F575E5F575F6058 5F60585E5F575D5E565B5C545A5C5158554C49473B4C4A3E5C5A4E575549464438525044716F63 7371656F6D6169675B65635764625665635766645866645869675B666458626054626054636155 636155605E525C5A4E636155615F535E5C505B594D5A584C59574B5A584C59594D5A5A4E5B5D50 5C5E515C5E51595B4E57594C57594C57594C585A4D57594C55574A54564954564956584B595B4E 5A5C4F6062556163566062555D5F5256584B4C4E414345383D3F32494B3E4C4E414E50434C4E41 47493C44463944463946483B494A424A4B434B4C444B4C444B4C44494A4247484046473F404139 41423A44453D4A4B4352534B5859515B5C545C5E5359564D5B594D5E5C505F5D515F5D51615F53 636155656357605E52615F53646256656357646256615F535E5C505A5A4E6464585F61545A5C4F 56584B56584B5B5D5061635665675A62645762645763655864665965675A66685B66685B67695C 676559666458656357646256636155636155636155636155666458646256615F53605E52615F53 64625668665A6A685C65635766645868665A68665A676559646256605E525E5C506C6A5E69675B 666458636155615F53615F536260546161556363576163565D5F52595B4E55574A5153464E5043 4D4F42595B4E5C5E515F61545D5F5257594C55574A585A4D5B5D505C5D555C5D555D5E565D5E56 5E5F575E5F575F60585F60585B5C545D5E565E5F575E5F575C5D55595A5254554D52534B505149 4D4E4652534B5C5D555F605858595154554D56574F5B5C545C5D555E5F575F6058606159606159 5F60585F6058585951595A525A5B535A5B535A5B535D5E5662635B66675F65665E66675F686961 696A62696A6268696167686066685D5B5D525D5F525F6154616356636558636558626457626457 4D4F4251534655574A56584B55574A585A4D60625567695C676559676559676559676559666458 66645866645865635769675B69675B68665A6765596664586563576462566161556161595F6058 5E5F575D5E565B5C545A5B53595A52595A52585951595A52595A525A5B535B5C545B5C545C5D55 5C5D555C5D5556574F5051494E4F4752534B5758505A5B535B5C5461625A61625A62635B62635B 62635B62635B62635B62635B5B5C545D5E5660615964655D66675F68696168696168696166675F 676860676860686961696A626B6C646C6D656D6E6656574F45463E4849415B5C5464655D696A62 68696161625A525655515554515554515554535756555958575B5A585C5B525655535756535756 535756535756535756535756545857575B5A585C5B595D5C595D5C5B5F5E5D6160616564646867 6266655C605F565A59585C5B5F63626367666165645D61606266655B5F5E555958555958595D5C 5C605F5A5E5D575B5A5054535559585A5E5D575B5A4D5150464A49444847464A494C504F444847 393D3C333736363A393E4241494D4C4F53525458575155544D5150494D4C484C4B484C4B4A4E4D 4B4F4E4A4E4D484C4B4549484246453F43423E42413D41403D4140424645434746464A494A4E4D 4E52515155545357565559584E52514F53525155545458575559585458575155544E52515B5F5E 5357564C504F4C504F5256555458574D5150464A49444847464A49484C4B474B4A474B4A4A4E4D 515554585C5B565A595357564F53524B4F4E494D4C494D4C4A4E4D4B4F4E4A4E4D4A4E4D4A4E4D 4B4F4E4B4F4E494D4C474B4A4549484044433F4342404443464A494C504F4D5150484C4B434746 4E52514D51504C504F4C504F4B4F4E4C504F4D51504D51504F53524D51504B4F4E4C504F4B4F4E 494D4C494D4C4B4F4E424645444847474B4A4A4E4D4B4F4E4A4E4D494D4C484C4B474B4A494D4C 4A4E4D484C4B434746424645444847474C48494E4A4D524C50554F4E534D4B504A4B504A4B504A 494E48484D47565B555F645E5A5F59565B55565B555358524C514B51524D58595460615C666762 66676260615C595A5553544F4F504B4D4E4951524D5E5F5A65666162635E5F605B5F605B5D5E59 66676267686360615C5F605B6667626A6B66696A655C5D585F605B60615C5E5F5A5B5C575B5C57 5E5F5A62635E66676263645F62635E61625D61625D62635E5D5E5953544F71726D6F706B6E6F6A 71726D74757076777274757072736D74756F73746C71726A70716970716971726A73746C74756D 77787072736B75766E6C6D656A6B6362635B54554D66675F77787074756D70716971726A75766E 77787077787075766E6E6F6771726A74756D74756D71726A71726A74756D777870797A72707169 72736B7B7C7473746C6061595D5E566A6B636768606A6B636F706873746C75766E74756D72736B 7071696F70686D6E666B6C646A6B636B6C646C6D656E6F676E6F676C6D656F70686F70686A6B63 62635B5C5D555B5C545C5D55585951585951585951585951595A52595A52595A52595A52585951 595A525B5C545B5C54595A5255564E51524A4F5146514E4549473B4E4C405B594D59574B4D4B3F 5351456563576563575E5C50555347514F4352504454524655534755534758564A5B594D605E52 6361556361555F5D515755495250445D5B4F5D5B4F5E5C505F5D515F5D515E5C505D5B4F5A5A4E 5A5A4E5D5F526163566062555A5C4F545649515346505245595B4E595B4E595B4E595B4E5A5C4F 5C5E515E6053606255636558646659646659616356595B4E4F51444446393E403345473A484A3D 4C4E414F51444F51444E50434E50434E50434A4C414A4B434A4B43494A4248494146473F45463E 44453D44453D45463E46473F4849414B4C444D4E464F50484F514666645867655968665A666458 6462566462566765596B695D626054636155646256646256646256615F535F5D515B5B4F5F5F53 5D5F525B5D505A5C4F595B4E5A5C4F5B5D505C5E51606255616356616356626457626457636558 64665964665968665A6664586260545F5D515F5D51605E5262605464625668665A656357615F53 5E5C505E5C50605E526462566765596D6B5F6E6C606F6D616E6C606A685C6462565D5B4F59574B 605E525F5D515D5B4F5B594D5A584C5A584C5B594D59594D5F5F535F61546062556062555E6053 5B5D50585A4D55574A595B4E5F61546365586062555A5C4F585A4D5C5E5162645762635B62635B 63645C65665E66675F6768606869616869616C6D656C6D656C6D656A6B6366675F62635B5D5E56 5B5C54595A5256574F55564E5A5B535D5E565C5D5558595156574F54554D56574F595A525C5D55 5C5D555A5B5357585056574F53544C53544C55564E56574F595A525C5D5560615962635B5E5F57 60615961625A63645C64655D63645C62635B616358616358626457636558636558636558616356 6062555E60535F615455574A4C4E414E5043595B4E6264576163565D5F5268665A68665A69675B 6A685C6B695D6C6A5E6D6B5F6D6B5F69675B69675B68665A666458656357636155626054606054 5F5F575E5F575E5F575D5E565B5C5458595155564E53544C575850575850585951585951595A52 5A5B535A5B535B5C54595A5253544C4D4E464B4C444F504855564E585951595A52585951595A52 5A5B535D5E565F605861625A63645C64655D61625A62635B63645C65665E65665E64655D63645C 62635B63645C64655D66675F65665E62635B5D5E5658595154554D4748403C3D354748405F6058 696A626C6D656B6C6464655D4D51504F5352515554535756545857545857545857545857515554 5155545155545054535054535054535054535054536064635D61605A5E5D585C5B585C5B585C5B 575B5A575B5A5B5F5E565A59525655545857585C5B585C5B515554494D4C565A59565A59545857 4C504F444847414544464A494B4F4E4A4E4D4F53525357565054534A4E4D484C4B4C504F515554 5D6160595D5C565A59575B5A5C605F5D6160585C5B545857565A595458575054534D51504B4F4E 4C504F4E52515054535155544C504F4448473D4140393D3C383C3B3A3E3D3C403F4A4E4D4E5251 545857585C5B575B5A505453474B4A414544474B4A4A4E4D4D51504E52514D5150494D4C474B4A 464A49484C4B4E5251555958575B5A515554474B4A3D4140373B3A4C504F4E52514F53524D5150 494D4C484C4B4A4E4D4C504F5155544E52514A4E4D464A49444847444847454948464A49434746 454948464A49464A494549484347464145444044433E4241444847494D4C4A4E4D454948424645 4246454347464C504F4A4E4D474B4A4448474246454246454347464448474C504F4C504F474B4A 4145443E42413E42413D41403C403F414544444847484C4B4B4F4E4B4F4E494D4C464A49444847 424645454948494D4C494D4C474B4A464A49494D4C4B504C4B504C4E534D51565050554F4A4F49 434842444943474C465C615B5F645E5D625C565B55575C565A5F59535852454A4452534E585954 61625D696A656C6D6868696461625D5C5D5863645F5B5C575D5E596869646A6B665E5F5A555651 56575260615C666762646560595A555657525D5E5962635E62635E62635E62635E61625D5D5E59 5859545758535A5B565D5E5964656062635E5E5F5A5F605B61625D5D5E59585954595A556F706B 6C6D68696A656B6C676F706B71726D70716C6D6E6870716B6F70686E6F676D6E666D6E666E6F67 6F706870716976776F71726A74756D6C6D656A6B6363645C55564E68696176776F73746C707169 70716974756D76776F76776F74756D71726A74756D75766E73746C6F70686D6E666E6F6771726A 76776F6C6D656E6F677778707071695C5D5557585062635B60615963645C6768606A6B636C6D65 6D6E666C6D656B6C6463645C63645C63645C62635B62635B62635B63645C64655D696A626C6D65 6D6E666B6C6465665E6061595D5E565D5E565E5F575E5F575C5D555A5B5358595156574F55564E 54554D595A525A5B535B5C545B5C54595A5255564E5051494D4F4458554C5C5A4E5E5C505D5B4F 59574B545246504E424D4B3F605E525B594D55534753514556544859574B5B594D5A584C514F43 5654485C5A4E605E52605E525D5B4F5A584C58564A5C5A4E5D5B4F605E52626054636155636155 615F535E5E5251514556584B5D5F525E60535B5D5056584B5355485355485B5D505C5E515E6053 60625562645762645762645761635664665964665965675A6365585F6154595B4E545649505245 43453845473A494B3E4D4F425052454F51444C4E41494B3E4B4D424A4C41484A3F47493E46483D 45473C44463B44463B4A4C414A4C414A4C41494B4047493E46483D46483D46483D605E52666458 6B695D6D6B5F6B695D6A685C6C6A5E6E6C60626054626054626054626054615F53605E525F5D51 5C5C505D5D515D5F525D5F525E60535D5F525C5E515B5D505A5C4F636558636558626457626457 6163566062556062555F61546B695D676559615F535D5B4F5C5A4E5F5D51646256676559666458 656357636155615F53605E52615F536260546361556C6A5E6D6B5F6E6C606F6D616D6B5F6A685C 67655964625664625665635767655969675B6A685C6A685C6A685C67675B64645864665967695C 686A5D67695C6466595F61545D5F52585A4D5E60536365586264575D5F525B5D5060625566685B 5B5C545C5D555C5D555E5F575F605860615961625A61625A5E5F575F605861625A62635B63645C 63645C63645C63645C63645C5E5F5756574F51524A52534B56574F56574F54554D4D4E464F5048 51524A53544C53544C51524A4E4F474C4D454E4F4750514952534B56574F5A5B535C5D555C5D55 5C5D555B5C545C5D555E5F5760615961625A61625A61625A6062575E60555F6154606255616356 6163566062555F61545E60536C6E6161635656584B56584B5E60536466596163565C5E515E5C50 605E5262605465635768665A6B695D6D6B5F6E6C60676559676559666458656357646256636155 6260546060545E5E565D5E565D5E565C5D555A5B5357585054554D52534B55564E55564E56574F 56574F575850585951595A52595A5254554D4F50484A4B434A4B434F504856574F5A5B535C5D55 585951585951595A52595A525A5B535A5B535B5C545B5C5462635B62635B63645C63645C63645C 61625A5F60585E5F5761625A62635B61625A5C5D5550514940413930312927282030312932332B 4B4C4466675F6B6C64696A626A6B636869614E5251505453525655545857545857535756525655 505453585C5B575B5A575B5A565A59565A595559585559585458575559585155544D51504D5150 4F53525155545054534E52514C504F4B4F4E4B4F4E4F53525256555155544A4E4D4347464C504F 5155545357564C504F424645404443474B4A5054534D5150494D4C474B4A4C504F575B5A606463 6266656165646165645D6160595D5C5B5F5E5F63625E6261565A594F5352545857545857545857 555958585C5B5A5E5D5D61605F63625A5E5D525655484C4B414544404443474B4A515554585C5B 4F5352525655555958575B5A5458574F5352484C4B444847494D4C4C504F4F53524F53524B4F4E 494D4C494D4C4B4F4E4D51504F53524E5251484C4B3F43423A3E3D3D4140414544545857535756 4F53524A4E4D454948444847464A49494D4C4145444044433E42413C403F3A3E3D3A3E3D3A3E3D 3B3F3E3B3F3E3D41403D41403A3E3D353938353938383C3B3C403F424645484C4B4E52514B4F4E 4448473F4342424645474B4A5054534E5251494D4C464A49444847444847464A49474B4A4E5251 5054534A4E4D4044433C403F4044434044433B3F3E414544434746464A49484C4B484C4B464A49 444847424645404443444847494D4C4B4F4E494D4C494D4C4B4F4E4D524E4B504C4B504A4E534D 4F544E474C463E433D4247414C514B64696360655F595E58575C565D625C6166605D625C545953 6566616667626869646B6C676F706B71726D70716C6E6F6A73746F696A656A6B6675767170716C 5B5C5750514C53544F5C5D5863645F6465605D5E595B5C5760615C60615C5B5C5762635E63645F 62635E5E5F5A5859545657525758535A5B565859545B5C575758535859545C5D5853544F4F504B 5C5D586B6C676768636465606465606768636A6B66696A656869636B6C666B6C646B6C646C6D65 6C6D656B6C646B6C646B6C647071696C6D6571726A6B6C646B6C6466675F5A5B536D6E6676776F 74756D71726A71726A72736B73746C73746C73746C74756D75766E74756D72736B6F70686D6E66 6D6E666D6E666D6E6666675F696A6273746C71726A63645C5E5F5762635B72736B71726A707169 6F70686D6E666C6D656C6D656C6D6565665E66675F67686067686065665E65665E65665E676860 66675F6869616A6B6368696163645C5E5F575A5B535859516F70686D6E666B6C6468696165665E 62635B6061595F605861625A61625A61625A6061595E5F575B5C54595A5257594E59564D626054 6361555C5A4E5A584C5E5C5056544849473B59574B59574B58564A5A584C5C5A4E5E5C505E5C50 5E5C5057554959574B59574B58564A56544859574B5F5D516563575D5B4F5F5D51615F53636155 64625664625663615560605448483C4D4F425456495A5C4F5D5F525D5F525D5F525D5F525C5E51 5E60536163566264576365586264576062555F6154616356616356616356616356606255606255 5F61545E6053484A3D46483B44463945473A47493C45473A4042353B3D304C4E434B4D42494B40 484A3F47493E484A3F494B404A4C4144463B46483D46483D46483D44463B43453A44463B45473C 49473B535145605E52666458656357615F535F5D51605E52615F53615F53605E525F5D515E5C50 5E5C505D5B4F5B5B4F5F5F535D5F525C5E515B5D505B5D505D5F525F615460625565675A646659 6365586264576163566062556062555F61546C6A5E68665A6361555F5D515E5C50615F53656357 68665A6462566462566563576563576563576462566361556260546361556563576765596A685C 6D6B5F706E627371657472666A685C6C6A5E706E627371657573677573677472667171656E6E62 6E70636F71646E70636B6D6066685B6163565E60535C5E516062556466596264575E60535C5E51 5F61546466595E5F575E5F575F60585F605860615960615960615961625A5B5C545B5C545C5D55 5D5E565D5E565E5F575F60586061596061595E5F5753544C47484045463E4C4D455051494E4F47 585951595A52595A525A5B53595A5258595156574F55564E4F504850514952534B56574F5A5B53 5B5C54595A525758505B5C545C5D555F605861625A63645C63645C63645C62645955574C57594C 5B5D505E60536163566264576365586365585B5D505D5F525D5F52585A4D5254474F5144525447 57594C55534756544858564A5B594D5E5C50615F53636155656357646256646256646256646256 6462566462566462566262565E5E565D5E565C5D555A5B53595A5258595157585057585056574F 56574F575850575850585951595A525A5B535A5B5355564E4F50484A4B434B4C4451524A585951 5C5D555E5F576061595F60585D5E565A5B5357585054554D51524A505149595A525A5B535D5E56 5F605861625A62635B61625A61625A65665E66675F67686063645C585951494A42393A322F3028 2D2E2631322A4A4B4363645C65665E62635B65665E65665E535756535756535756535756535756 5256555155545155545A5E5D5A5E5D595D5C585C5B575B5A575B5A565A595559584C504F484C4B 454948474B4A4E52515256555256554F53524B4F4E4B4F4E4D51505054535256555155544D5150 4A4E4D4B4F4E4D51504E52514E52514D51504F5352525655555958454948414544404443474B4A 5357565B5F5E5D61605B5F5E5D6160565A595054534F53525357565559585054534B4F4E4F5352 515554545857575B5A595D5C5B5F5E5B5F5E5B5F5E494D4C4549484044433E4241414544494D4C 525655575B5A4C504F4C504F4D51504D51504E52514E52514F53524F5352474B4A4B4F4E4D5150 4B4F4E474B4A464A494B4F4E5054535458574B4F4E3E4241363A39363A393D41404549484A4E4D 494D4C484C4B474B4A454948454948474B4A4A4E4D4D51503A3E3D3B3F3E3C403F3C403F3C403F 3B3F3E3A3E3D393D3C4145444145443D41403337362C302F2E32313B3F3E474B4A4C504F4A4E4D 494D4C494D4C4A4E4D4C504F4D51504D51505256554F53524C504F494D4C494D4C4B4F4E4F5352 5155544C504F5155544C504F4044433F4342474B4A4A4E4D444847414544424645434746444847 434746434746414544414544414544464A494A4E4D4B4F4E484C4B464A49464A49474C48464B47 444943484D474C514B454A443D423C464B45575C565358524F544E4E534D4F544E4F544E4E534D 515650575C565D5E595A5B565758535758535A5B565B5C575A5B56595A555F605B5657525B5C57 696A6563645F4C4D4843443F4B4C4753544F5A5B565D5E595B5C575E5F5A64656063645F5B5C57 565752595A555A5B5658595454555051524D53544F55565153544F5A5B565758535859545D5E59 51524D4F504B66676267686365666162635E60615C61625D63645F6566616566606869636A6B63 6C6D656E6F676E6F676C6D656A6B63686961696A6265665E6C6D656A6B636D6E666A6B63606159 75766E76776F76776F75766E72736B6F70686F706870716971726A73746C72736B71726A71726A 72736B72736B71726A7071696F70686B6C646C6D6572736B73746C6C6D6562635B5E5F5775766E 72736B6D6E66696A626768606869616A6B636C6D656C6D656F706871726A71726A6F70686D6E66 6E6F676F706864655D65665E66675F63645C5D5E5655564E4E4F474B4C4464655D64655D62635B 6061595E5F575C5D555B5C545A5B5362635B61625A5F60585D5E565B5C545B5C545B5C545C5E53 5A574E5A584C59574B59574B5D5B4F615F535E5C505654484F4D4154524659574B5C5A4E5C5A4E 59574B5755495553475D5B4F5D5B4F5B594D555347514F435452465D5B4F6664585E5C505E5C50 5E5C505F5D515F5D51605E52615F535F5F5351514552544755574A5A5C4F5E60536062555E6053 5D5F525D5F525D5F525E60535D5F525D5F525C5E515B5D505B5D505B5D505B5D505B5D505B5D50 5B5D505C5E515C5E515C5E5156584B4F5144484A3D46483B494B3E4C4E414A4C3F47493C505245 4F51444D4F424C4E414C4E414E504351534653554853554855574A57594C56584B545649545649 56584B585A4D5654485D5B4F6462566361555B594D5553475351455452465F5D515E5C505D5B4F 5C5A4E5B594D5B594D5B594D59594D5B5B4F5A5C4F5A5C4F5A5C4F5B5D505D5F525F6154606255 62645762645762645763655864665964665965675A65675A69675B68665A676559666458656357 64625664625665635763615564625666645868665A68665A676559666458656357646256636155 6260546361556664586B695D716F637573676D6B5F6E6C606E6C606F6D616F6D616F6D616F6D61 6D6D616E6E626D6F626D6F626C6E616B6D60686A5D66685B65675A65675A66685B65675A626457 5D5F525A5C4F595B4E595B4E65665E65665E64655D64655D63645C63645C62635B62635B64655D 63645C6061595E5F575C5D555B5C545B5C545B5C545859515D5E565859514B4C44484941505149 54554D505149595A5258595156574F55564E54554D54554D54554D55564E54554D53544C52534B 54554D5859515A5B5358595156574F54554D55564E5859515A5B535C5D555D5E565D5E565D5F54 585A4F595B4E5C5E515F6154616356626457626457626457515346585A4D5D5F525A5C4F525447 4D4F424F51445355485C5A4E5C5A4E5D5B4F5D5B4F5E5C505F5D515F5D515F5D515F5D51605E52 615F536260546462566563576664586565596060585D5E565A5B53585951585951595A525C5D55 5D5E565A5B535A5B535B5C545C5D555D5E565D5E565E5F575E5F575B5C5455564E4F50484E4F47 52534B5859515B5C545C5D556061595F60585E5F575C5D555A5B5358595157585056574F53544C 55564E5859515C5D555E5F5760615960615960615963645C66675F6A6B636C6D65696A6264655D 5D5E5658595145463E3A3B3342433B53544C575850595A525D5E565B5C54585C5B575B5A545857 525655505453505453515554525655575B5A565A59555958545857535756525655515554515554 575B5A5155544C504F4D51505256555458575256554E52514D51504D51504D51504D51504C504F 4B4F4E494D4C484C4B505453494D4C444847464A494D51504F5352494D4C4347464B4F4E515554 575B5A585C5B5559585559585A5E5D6064636165645B5F5E545857535756585C5B5A5E5D585C5B 5559584B4F4E4D51505054535155545155544F53524B4F4E494D4C424645454948494D4C4D5150 5054535155545155545155544D51504C504F4B4F4E4A4E4D494D4C4A4E4D4B4F4E4C504F404443 444847464A494347463F4342404443474B4A4F53524549483D4140383C3B3E4241494D4C4D5150 4549483B3F3E3B3F3E3E4241434746474B4A494D4C494D4C494D4C494D4C3D4140404443434746 454948464A494448474145444044434E52514D5150444847363A392C302F323635464A49585C5B 5458574A4E4D424645464A495256555A5E5D585C5B515554474B4A454948424645414544434746 474B4A4C504F5054533F4342454948424645373B3A383C3B444847494D4C434746424645414544 414544414544404443404443404443404443434746474B4A4B4F4E4B4F4E464A49424645404443 4146424045413E433D424741494E484449433E433D4B504A616660525751525751575C56585D57 4E534D454A444E534D5F645E55565154555052534E52534E52534E4F504B494A454445405A5B56 52534E595A55696A6563645F4A4B4643443F4E4F4A454641494A45494A4548494450514C5B5C57 5D5E595657525D5E5962635E66676266676264656062635E63645F65666157585361625D5E5F5A 60615C65666156575257585374757066676264656062635E5F605B5F605B60615C63645F656660 6768626A6B636E6F6771726A71726A6E6F676A6B6367686064655D61625A6A6B63696A626E6F67 6D6E6664655D7A7B7376776F78797177787073746C6E6F676C6D656E6F6771726A71726A6E6F67 6D6E6670716974756D77787076776F73746C7A7B7377787074756D74756D74756D6E6F6761625A 55564E5F60585B5C5456574F53544C53544C5859515D5E5662635B6869616C6D656F70686F7068 6C6D656A6B636B6C646C6D6564655D64655D63645C5F60585758504D4E4644453D3F4038606159 6061595F60585F60585E5F575E5F575D5E565D5E565C5D555A5B5356574F54554D53544C54554D 575850585A4F6461585A584C54524658564A5C5A4E5B594D59574B5A584C4E4C405654485F5D51 6260545F5D5159574B5452465250445C5A4E5F5D515F5D5159574B525044514F435755495D5B4F 5E5C505D5B4F5C5A4E5B594D5B594D5C5A4E5E5C505D5D516363575F61545D5F525D5F525E6053 5D5F52585A4D5456495E60535C5E515A5C4F57594C56584B56584B57594C585A4D55574A56584B 56584B55574A55574A54564954564954564965675A5B5D5051534650524557594C5F6154646659 6466596A6C5F696B5E67695C66685B686A5D6B6D606E706370726577796C797B6E7B7D70797B6E 75776A73756875776A77796C8583778381757C7A6E6E6C605E5C5056544858564A5D5B4F5E5C50 5D5B4F5B594D59574B59574B59574B5A584C58584C515145545649595B4E5D5F526062555F6154 5D5F525B5D505E60535F615461635663655866685B686A5D6A6C5F6B6D606563576765596A685C 6C6A5E6B695D68665A646256615F5364625665635766645868665A69675B69675B69675B68665A 6D6B5F69675B6361555E5C505E5C50615F536664586A685C747266737165706E626D6B5F6C6A5E 6C6A5E6C6A5E6B6B5F65655965675A66685B686A5D6A6C5F6D6F626E70636F71646E70636B6D60 67695C6264575C5E5157594C5254475052456061596061595F60585E5F575D5E565B5C545B5C54 5A5B535D5E565C5D555B5C54595A52595A525A5B535B5C545B5C5456574F61625A62635B575850 54554D5B5C545E5F575859515C5D55595A5256574F53544C51524A52534B54554D56574F595A52 56574F52534B52534B55564E5859515859515758504849414A4B434D4E464F504851524A52534B 52534B5254496264596365586365586264576163565E60535C5E515A5C4F606255616356636558 67695C696B5E67695C6163565C5E516B695D6A685C69675B676559656357646256626054626054 5D5B4F5E5C505F5D5162605464625666645868665A67675B6161595D5E565A5B53575850575850 5B5C545F605862635B5E5F575F60585F605860615961625A62635B62635B63645C62635B5B5C54 54554D51524A53544C56574F5859515859515758505859515A5B535D5E5660615962635B65665E 66675F55564E575850595A525B5C545C5D555C5D555B5C545A5B535D5E565F605862635B65665E 67686068696167686066675F61625A45463E3A3B3343443C4C4D4554554D57585052534B535756 5357565256555155545054534F53524E52514E52515D61606064635B5F5E5054534D5150525655 5256554D51505458575256555054534E52514E5251505453535756555958474B4A484C4B494D4C 494D4C494D4C474B4A4549484448475054534D5150474B4A4044433C403F3E4241464A494D5150 444847464A49494D4C4E5251535756585C5B5B5F5E5D6160575B5A5357564F53524F5352535756 5559585559585357564C504F4C504F4C504F4B4F4E474B4A4246453C403F393D3C4E5251515554 565A59585C5B575B5A5256554C504F474B4A5559584C504F4448474448474C504F535756555958 5357564C504F494D4C474B4A4A4E4D4C504F484C4B3D41403438372E32313337363B3F3E424645 4347463E4241383C3B3337363A3E3D373B3A373B3A3D41404246454246453A3E3D323635353938 383C3B393D3C383C3B363A39383C3B404443464A494448473034332529282F33323E4241404443 3B3F3E373B3A343837373B3A393D3C3A3E3D393D3C3A3E3D3D4140404443424645494D4C474B4A 3F43424246454E52514E52514448474A4E4D4549484044433E42413F43424044433E42413C403F 3E42413E42413D41403D41403E42413F43424044434145444B4F4E474B4A434746434746474B4A 4A4E4D4B4F4E4B504C505551353A342D322C434842555A545358525257515C615B555A54565B55 555A5454595352575150554F4D524C4B504A5859545B5C5760615C64656064656061625D5D5E59 5B5C5765666168696468696460615C5758535556515A5B565E5F5A61625D5E5F5A5B5C575B5C57 5C5D585D5E595B5C57595A555859545C5D5860615C61625D62635E63645F666762696A65595A55 5B5C575B5C57595A555859545A5B5661625D67686350514C5455505B5C5761625D656661666762 65666164655F6F706A6C6D65696A626768606768606B6C6470716974756D6D6E666869616E6F67 6C6D657071696B6C645B5C546B6C646B6C64696A6267686066675F6768606A6B636D6E66707169 72736B73746C74756D75766E75766E73746C72736B71726A696A626D6E666E6F676C6D656F7068 6E6F675E5F574B4C444E4F474B4C4452534B5E5F575E5F5755564E56574F61625A6C6D65686961 64655D6061595E5F5760615963645C66675F6F706863645C60615967686066675F5A5B5353544C 57585053544C66675F7071696768605C5D555B5C5460615961625A6768605C5D555A5B53606159 5E5F5754554D54554D5D5F545B584F5B594D5B594D5A584C58564A565448535145514F43525044 504E42565448626054666458605E525E5C5063615559574B58564A58564A5C5A4E605E52615F53 5E5C505A584C5F5D515C5A4E575549535145504E424F4D414F4D414E4E4258584C5153464B4D40 4D4F4254564957594C54564950524555574A5456495153464F514450524552544754564956584B 5B5D505B5D505B5D505C5E515C5E515C5E515C5E515C5E5161635666685B6A6C5F696B5E67695C 6B6D607476697D7F7277796B7E80728284767D7F71747668727466797B6D828476747668757769 77796B787A6C787A6C797B6D7A7C6E7B7D6F7E7C708280748684788684787D7B6F6D6B5F5D5B4F 5250446361555F5D515A584C5A584C5C5A4E5D5B4F5B594D56564A55554955574A57594C595B4E 5C5E515E60536062556163566264575F61545A5C4F57594C57594C5C5E5162645766685B615F53 64625667655969675B69675B656357615F535E5C50636155636155646256656357656357656357 6462566361556B695D6765596260545E5C505A584C5A584C5A584C5B594D605E5264625669675B 6D6B5F6F6D616D6B5F6B695D67675B6464585E60535B5D505E605364665967695C6466595F6154 6A6C5F6A6C5F6A6C5F6A6C5F6A6C5F6A6C5F6A6C5F6A6C5F62635B65665E68696166675F606159 5B5C54595A52595A5254554D54554D55564E55564E56574F57585057585057585058595155564E 54554D5A5B5362635B65665E62635B5C5D555C5D555C5D555C5D555C5D555C5D555C5D555C5D55 5C5D5558595157585055564E55564E5859515C5D5560615963645C54554D56574F595A525B5C54 5B5C5458595155564E53554A5A5C515C5E515D5F525C5E51595B4E5A5C4F5E605362645765675A 66685B66685B66685B66685B67695C67695C67695C6E6C606C6A5E68665A656357646256656357 67655969675B68665A656357615F535E5C505E5C50615F5365635766665A64645C61625A5E5F57 5A5B5357585055564E55564E54554D5C5D5558595156574F5758505B5C545E5F575E5F575D5E56 5B5C5460615966675F6A6B636A6B6364655D5D5E5658595163645C63645C63645C63645C61625A 5F60585D5E565B5C545D5E565E5F575F605860615961625A62635B63645C63645C5A5B535C5D55 5F605862635B63645C62635B5F60585E5F5761625A595A52393A32494A425C5D5553544C5B5C54 595A525559585054534A4E4D464A49474B4A4E5251565A595B5F5E454948494D4C464A493E4241 3E4241454948474B4A424645484C4B494D4C4B4F4E4D51504C504F494D4C464A49444847474B4A 474B4A474B4A484C4B4A4E4D4D51505054535155543E42413D41403C403F3C403F3E4241454948 4D51505458574B4F4E4C504F4C504F4D51504E52514F5352505453505453585C5B555958535756 545857565A59575B5A545857515554494D4C4A4E4D4C504F4E52514F53524F53524F53524E5251 505453525655555958575B5A565A595458575054534D5150595D5C5A5E5D5C605F5D61605D6160 5D61605F6362606463545857575B5A585C5B525655494D4C434746454948484C4B494D4C4B4F4E 4C504F4D51504B4F4E474B4A4246454044434448474347464549484A4E4D4E52514E5251494D4C 4347465559584F53524A4E4D4D5150555958595D5C5559584F53523E42413539383438373C403F 4145443E42413D41404246454145444246454246453F43423C403F393D3C393D3C393D3C4B4F4E 4D5150484C4B3F4342404443474B4A434746383C3B343837353938363A393A3E3D3E4241404443 4145444145444A4E4D494D4C464A494448474347464347464448474448474448474145443D4140 3C403F3F4342434746454948454A46454A46373C363C413B565B55626761555A54494E48494E48 424741444943464B45494E484C514B4D524C4D524C4D524C4D4E494F504B51524D53544F545550 53544F52534E51524D5455505D5E595B5C574E4F4A4B4C475556515B5C575758535F605B5D5E59 5B5C575D5E595E5F5A5D5E5957585352534E5859545E5F5A65666167686365666162635E62635E 63645F5E5F5A61625D60615C5A5B5651524D4C4D484D4E4951524D5C5D5860615C6667626C6D68 6F706B70716C6F706B6E6F6973746E71726A6F70686E6F676E6F6770716973746C75766E6F7068 6B6C6471726A6E6F677071696A6B635B5C546C6D657071696F70686E6F676E6F676E6F676F7068 71726A72736B74756D75766E76776F77787077787076776F74756D73746C6C6D656F70686E6F67 6B6C646C6D656D6E665F60584D4E4657585056574F5C5D556768606768605E5F57606159696A62 67686065665E62635B6061595F605860615961625A62635B63645C58595154554D58595155564E 4C4D45494A424F50485051495E5F5767686064655D5A5B5354554D53544C54554D5E5F5755564E 53544C5859515758504F50484F504857594E4E4B424F4D41514F43525044535145535145525044 514F435351454F4D415250445B594D5C5A4E5654485553475A584C555347535145535145545246 56544858564A58564A58564A59574B5A584C5B594D5B594D59574B555347514F434D4D415D5D51 57594C53554855574A5C5E5162645763655862645756584B56584B56584B57594C5A5C4F5F6154 63655866685B6466596365586264575F61545D5F525A5C4F595B4E585A4D56584B5B5D50616356 6163565F6154616356696B5E7072656B6D5F6E71607577697C7F6E8082747E817076786A707362 77796B777A69787A6C797C6B7A7C6E7B7E6D7B7D6F7C7E7075736777756979776B7A786C777569 7270646C6A5E69675B5654485553475654485A584C5E5C505E5C505B594D545448535347535548 54564955574A57594C585A4D595B4E5A5C4F6062555D5F525B5D50595B4E5A5C4F5D5F52616356 64665965635767655968665A69675B666458615F535C5A4E59574B69675B6A685C6C6A5E6E6C60 6F6D616F6D616E6C606E6C606C6A5E6B695D6A685C68665A68665A68665A69675B69675B59574B 5B594D5F5D516462566A685C706E627472667575697373676E70636A6C5F6B6D606F7164717366 6D6F62686A5D5C5E515C5E515C5E515C5E515C5E515C5E515C5E515C5E515A5B535B5C545A5B53 56574F53544C54554D595A525E5F57585951585951585951585951585951585951575850575850 5D5E565A5B535859515B5C5460615961625A5D5E5658595164655D64655D64655D64655D64655D 64655D64655D64655D66675F65665E65665E64655D65665E66675F686961696A625C5D555E5F57 5F605861625A62635B62635B61625A6163585F61566062555F61545B5D5055574A53554855574A 585A4D6466596466596466596365586365586264576264576163565E5C505E5C505D5B4F5E5C50 5F5D51615F53636155646256626054605E525F5D515D5B4F5D5B4F5F5D51605E52606054595951 585951585951595A525A5B535D5E5660615962635B61625A5D5E56595A52595A525C5D555E5F57 5C5D555A5B5353544C5758505C5D5561625A62635B6061595C5D55595A52585951595A525B5C54 5D5E565E5F575F60585F60585F60585C5D555D5E565D5E565E5F575F605860615961625A61625A 5E5F575F605861625A63645C63645C63645C63645C62635B5F60585A5B533E3F374B4C445D5E56 56574F5B5C54575850444847444847454948464A49474B4A4A4E4D4C504F4D5150424645484C4B 494D4C444847464A495054535357564F53523E4241414544464A494C504F4F5352515554515554 5155544D5150505453545857565A595559585155544C504F494D4C4044433F4342414544454948 4C504F525655575B5A595D5C555958555958555958545857535756535756525655525655585C5B 565A59555958575B5A595D5C575B5A5256554E52514F53524F5352505453515554535756565A59 595D5C5B5F5E525655525655535756535756545857545857545857545857515554595D5C606463 5E6261585C5B555958585C5B5E6261595D5C585C5B5357564A4E4D444847474B4A5357565D6160 6468676064635A5E5D5357564D5150494D4C464A49454948454948474B4A4A4E4D4D51504F5352 4E52514B4F4E4A4E4D525655484C4B4347464A4E4D565A59565A59444847333736373B3A3A3E3D 4246454B4F4E484C4B414544464A495256555155544F53524D51504A4E4D484C4B464A49444847 434746494D4C4A4E4D4549483F43424044434246453C403F3034332E3231323635383C3B3C403F 3F4342414544424645434746484C4B474B4A4448474145443F43423D41403C403F3C403F424645 3F43423C403F3C403F3E42414145444347464348443338343136304247416166606F746E626761 565B55555A54414640434842464B454A4F494D524C4E534D4F544E4F544E4A4B464A4B464A4B46 4B4C474C4D484D4E494E4F4A4F504B4B4C4755565151524D42433E4546415A5B5660615C555651 55565152534E50514C52534E575853595A5556575251524D4445404A4B4651524D52534E4F504B 4E4F4A51524D54555053544F595A555E5F5A5A5B5650514C4B4C474E4F4A5455505859545C5D58 61625D656661686964696A6568696467686266676166675F65665E65665E65665E64655D64655D 64655D72736B6E6F6774756D6F70687071696B6C645F605872736B6D6E666E6F676F70686F7068 6F70686E6F676C6D656B6C646E6F676F706871726A72736B72736B71726A7071696F706861625A 63645C6061595D5E5662635B6768605E5F57505149595A525A5B5360615968696167686061625A 62635B696A6262635B62635B63645C63645C62635B61625A5F60585E5F575D5E5656574F51524A 51524A4D4E46474840494A425051494B4C4451524A5D5E5666675F65665E5E5F57595A525A5B53 5C5D5556574F54554D58595158595154554D55564E5B5D525552495755495B594D5E5C50615F53 6361556462566462565C5A4E55534754524659574B59574B5351455452465B594D58564A58564A 58564A5654485654485755495B594D5E5C50605E52615F53636155646256636155605E525C5A4E 58584C5454485052454E504350524556584B5E605364665967695C5D5F525C5E515C5E515D5F52 5F615462645765675A66685B5E60535E60535D5F525D5F525C5E515C5E515C5E515B5D50515346 585A4D5E60536062555E60535E605363655867695B797C6B787B68787B6A7A7D6A7C7F6E7C7F6C 797C6B767966767968757865747766757865777A69787B68787B6A777A697A786B78766A777569 7674687775697A786C7D7B6F7F7D71605E525D5B4F5B594D5C5A4E5E5C505F5D515D5B4F58584C 5C5C505B5D505B5D505C5E515C5E515C5E515C5E515C5E515E60535F61545F61545F6154606255 6163566264576365585F5D51615F536361556563576462566260545F5D515C5A4E605E52626054 65635767655968665A68665A676559666458646256646256646256646256636155615F535E5C50 5D5B4F55534756544859574B5C5A4E5D5B4F5E5C505E5C505B5B4F5D5D51595B4E55574A55574A 57594C56584B5355485052454D4F424D4F424D4F424D4F424D4F424D4F424D4F424D4F42505149 4E4F474A4B4345463E44453D4A4B4356574F6061595B5C545B5C545B5C545B5C545A5B535A5B53 5A5B535A5B535C5D555A5B53595A525C5D555F60586061595D5E56595A5264655D64655D64655D 64655D64655D64655D64655D64655D6C6D656C6D656D6E666D6E666C6D656A6B63696A62676860 61625A61625A60615961625A62635B64655D66675F67695E5E60555F61545E60535A5C4F545649 52544754564956584B585A4D595B4E5B5D505E605361635663655865675A66685B5D5B4F5E5C50 5F5D51605E52605E525F5D515E5C505E5C50615F53626054626054636155636155626054626054 5F5F5355554D54554D55564E5758505B5C545F605862635B64655D62635B5E5F57595A52585951 5A5B535A5B5358595156574F5758505A5B535D5E5661625A63645C64655D64655D64655D5B5C54 5B5C545C5D555E5F575F605861625A62635B62635B5B5C545B5C545B5C545C5D555D5E565D5E56 5E5F575E5F575D5E565C5D555B5C545B5C545C5D555E5F5760615961625A5D5E565B5C5446473F 4C4D455C5D55595A525B5C545758506064635F63625D61605A5E5D5559585155544D51504A4E4D 5559585C605F5D6160595D5C5C605F656968686C6B6367667074736E72716A6E6D676B6A666A69 676B6A696D6C6A6E6D6569686367665F63625A5E5D5458574E52514A4E4D474B4A5B5F5E595D5C 585C5B5B5F5E5E62615F63625C605F595D5C5D61605E62615E62615F6362606463606463616564 616564585C5B565A59545857545857565A595559585054534C504F5A5E5D585C5B545857505453 4F53525054535256555357565155545054534F53524E5251505453525655565A59585C5B4F5352 5256555458575256554E52514D51504F5352525655515554474B4A3C403F3B3F3E464A49545857 5E62616266655E62615A5E5D5559584F53524C504F4C504F4D51504E52514A4E4D4D5150505453 5054534C504F494D4C484C4B494D4C5054534D51504D5150505453515554494D4C373B3A292D2C 4549484549484B4F4E5256554E5251464A49484C4B515554464A494246453D41403C403F3E4241 4145444246454347463E42413F43423F43424145444448474347463A3E3D3135343D4140404443 4347464347463F43423D41403E42414044434246454246454246454246454044433D41403A3E3D 393D3C4145444145444145444246454448474549484448474449454A4F4B474C464E534D5D625C 60655F555A544E534D5156504A4F494A4F494B504A4A4F49494E48474C46454A4444494352534E 52534E52534E53544F545550565752585954595A5554555052534E4B4C474445404C4D485C5D58 60615C5A5B5655565150514C4B4C474D4E495455505C5D585F605B5F605B545550565752575853 54555051524D51524D5758535D5E595556515E5F5A6667626465605D5E595B5C576465606D6E69 5B5C575E5F5A61625D64656066676267686367686366676163645E64655D65665E66675F65665E 63645C61625A60615962635B5E5F5763645C5C5D555E5F575D5E5658595171726A65665E66675F 696A626A6B63696A6267686064655D61625A6768606869616A6B636B6C646C6D656C6D656B6C64 6A6B635F60586061595E5F575C5D5564655D6E6F676A6B635F605851524A54554D5B5C545F6058 5E5F575A5B535B5C545F605860615962635B66675F68696168696165665E62635B5F605863645C 61625A5E5F575B5C5455564E53544C5758505D5E5652534B53544C5F605871726A7778706F7068 68696168696164655D61625A60615962635B62635B62635B63645C66685D63605765635768665A 6C6A5E6F6D61716F637270647270646765595E5C505B594D5E5C505E5C505B594D5F5D51676559 64625666645867655965635762605462605465635769675B6462566260545F5D515D5B4F5D5B4F 5E5C50605E526060545D5D515A5C4F585A4D57594C5B5D50626457696B5E6D6F626A6C5F686A5D 65675A6163565D5F525A5C4F585A4D57594C585A4D595B4E595B4E5A5C4F5A5C4F5B5D505B5D50 5C5E51585A4D5E605365675A67695C66685B64665966685B686A5C6A6D5C7376637B7E6B797C69 7275626F725F7679667E816E7A7D6A797C69787B68797C697A7D6A7B7E6B7A7D6A797C6B858376 8381757F7D717C7A6E7B796D7D7B6F807E728280747A786C716F636462565D5B4F5B594D5D5B4F 5E5C505C5C505F5F535E60535D5F525C5E515B5D505A5C4F5A5C4F595B4E52544754564957594C 595B4E5A5C4F595B4E585A4D56584B5250445553475A584C5F5D51636155656357666458666458 5E5C50605E526260546462566462566260545E5C505C5A4E6260546260546260545F5D515B594D 5452464E4C404A483C5B594D5E5C506361556462565F5D515654484C4A3E4343374E4E424B4D40 4A4C3F494B3E4A4C3F494B3E484A3D46483B46483B46483B46483B46483B46483B46483B46483B 46483B48494147484044453D4041393F403845463E4F5048585951575850585951595A525A5B53 5C5D555E5F575F60585F60585758505859515A5B535C5D555F60586061595F60585D5E56595A52 595A52595A52595A52595A52595A52595A52595A5262635B64655D66675F68696168696166675F 63645C61625A62635B6061595D5E565B5C545A5B535C5D555F6058616358585A4F5A5C4F5B5D50 5A5C4F57594C585A4D5C5E5160625556584B57594C595B4E5C5E5160625563655865675A66685B 6C6A5E6C6A5E6D6B5F6B695D68665A6260545D5B4F5A584C66645867655967655968665A68665A 6765596765596464585B5B53595A5258595156574F56574F56574F57585058595166675F62635B 5E5F575E5F5761625A63645C61625A5F60585C5D555C5D555C5D555D5E565F605862635B64655D 65665E5F60585D5E565C5D555A5B535859515758505758505758505A5B535A5B535A5B535A5B53 5A5B535A5B535B5C545B5C5457585055564E53544C52534B52534B55564E595A525B5C545E5F57 5E5F574D4E4648494155564E5C5D555B5C54585951787C7B6F73726165645357564C504F4C504F 505453545857606463666A69686C6B6367666468676A6E6D6A6E6D6468675F63625E62615C605F 5C605F5D6160606463636766666A69707473676B6A5A5E5D5054534D51505357565C605F636766 6C706F696D6C666A69666A69666A696266655C605F565A59616564616564616564616564616564 616564606463606463585C5B5458575054534F53525155545256555155544E52515B5F5E575B5A 5256554D51504A4E4D494D4C494D4C4A4E4D5155544F53524C504F4B4F4E4C504F505453545857 575B5A585C5B565A59565A59595D5C5B5F5E595D5C5256554C504F444847414544414544494D4C 5458575C605F5C605F5A5E5D4F53524E52514E52514F5352525655565A595A5E5D5D6160565A59 595D5C5A5E5D565A594F53524A4E4D4A4E4D4B4F4E585C5B5C605F5B5F5E5256554448473A3E3D 3A3E3D3E4241595D5C4E52514A4E4D5054535256554B4F4E464A49464A494B4F4E4347463B3F3E 393D3C3E4241444847474B4A474B4A3B3F3E3B3F3E404443464A49474B4A3F4342363A39313534 4347464448474347463E4241383C3B363A39373B3A3A3E3D424645454948494D4C4C504F4C504F 494D4C454948434746393D3C3C403F4044434246454246454145444044433E433F43484440453F 414640464B45484D47474C464B504A525751565B55565B55565B555459535156504E534D4B504A 494E485556515657525859545A5B565C5D585D5E595E5F5A5E5F5A5B5C574A4B4641423D484944 51524D52534E52534E5758535B5C57585954565752565752595A555C5D585C5D585B5C575C5D58 5D5E595E5F5A5D5E595B5C575A5B565B5C575D5E5953544F5A5B565D5E595758534D4E494B4C47 53544F5D5E59545550555651575853595A555A5B565B5C575B5C575A5B555A5B555B5C545C5D55 5D5E565D5E565C5D555A5B53595A524D4E46494A424E4F47474840494A424C4D454F50486D6E66 65665E6768606A6B636C6D656B6C64696A6266675F64655D6B6C646D6E666F706871726A72736B 72736B71726A71726A78797178797173746C70716976776F7F80787C7D7571726A4D4E4654554D 5A5B535A5B53595A52595A52595A52595A5262635B65665E6A6B636E6F676E6F676B6C6466675F 63645C66675F696A6268696162635B5E5F575F605862635B64655D61625A5D5E5663645C74756D 7B7C7472736B68696165665E67686068696167686064655D65665E6869616A6B63696B60605D54 615F536361556563576664586664586664586563576664585D5B4F5A584C5E5C505F5D515E5C50 6462566E6C606765596B695D6E6C606E6C606A685C68665A69675B6B695D605E525E5C505B594D 59574B59574B5A584C5C5A4E5C5C506161555D5F525A5C4F585A4D595B4E5C5E51606255636558 7375687173666D6F62686A5D6365585D5F52595B4E56584B6365586264576163565F61545C5E51 5A5C4F595B4E585A4D5B5D5060625565675A686A5D66685B646659646659656759505342626552 787B688285728083707B7E6B7C7F6C7F826F7B7E6B7C7F6C7C7F6C7C7F6C7A7D6A7A7D6A7A7D6A 7B7E6D7C7A6D7B796D7A786C79776B77756975736773716573716579776B6F6D616260545A584C 58564A59574B5A584C58584C5555495355485254475153465052454E50434D4F424D4F4245473A 484A3D4C4E414F51445052454E50434B4D40494B3E4F4D415250445654485A584C5F5D51626054 6563576664586F6D61716F637472667573677371656F6D6169675B6664586C6A5E6D6B5F6C6A5E 6B695D666458605E525B594D57554965635769675B6D6B5F6F6D616D6B5F6664585E5C5057574B 4D4D414D4F424E50434D4F424C4E414C4E414D4F424E5043484A3D484A3D484A3D484A3D484A3D 484A3D484A3D484A3D45463E47484048494146473F44453D44453D4748404B4C444E4F474F5048 52534B56574F5A5B535E5F5761625A63645C5C5D555E5F575F60585F60585D5E565A5B53595A52 595A5254554D54554D54554D54554D54554D54554D54554D54554D5859515B5C545F605862635B 64655D64655D62635B61625A67686064655D6061595C5D555A5B53595A525B5C545C5E535B5D52 5E60535F61545D5F525B5D505B5D505F61546466596264576264576062555F61545D5F525C5E51 5B5D505A5C4F6D6B5F6D6B5F6E6C606C6A5E69675B6462565E5C505B594D636155636155626054 615F53615F536260546361556161555D5D555A5B5357585054554D51524A5051494F50484F5048 55564E52534B50514952534B5758505B5C545C5D555B5C5458595157585055564E53544C53544C 54554D56574F58595157585055564E52534B5051494E4F474E4F474F50485051495A5B535A5B53 5A5B53595A52595A52595A52595A52595A52595A5257585055564E53544C54554D5758505A5B53 5D5E5660615960615952534B41423A4B4C445C5D555A5B535B5C54575B5A5458575155544F5352 505453545857595D5C5C605F6468676A6E6D6B6F6E656968646867696D6C666A695F63625A5E5D 5D6160626665676B6A6A6E6D6B6F6E6B6F6E6A6E6D535756545857575B5A5B5F5E606463676B6A 6D71707074736468676367666165646165646064635D6160595D5C565A596165645F63625D6160 5A5E5D575B5A545857515554505453575B5A5357564F53524F5352525655555958555958535756 5256555155544F53524E52514D51504C504F4D51504D51505357565155544F53524D51504E5251 505453535756555958545857565A595B5F5E6064636165645A5E5D4E52514448473F43424D5150 5D6160656968616564595D5C535756515554595D5C595D5C585C5B575B5A575B5A575B5A585C5B 585C5B5458575559585458574F5352494D4C444847444847454948575B5A575B5A505453404443 3135343135344145445155545256554448473F43424A4E4D565A595458574D51504A4E4D5C605F 525655484C4B464A494B4F4E4F53524F53524C504F4347464145444549484A4E4D444847383C3B 3135343337363A3E3D393D3C383C3B353938333736333736353938383C3B3F4342414544454948 484C4B494D4C484C4B454948434746333736363A393A3E3D3B3F3E3B3F3E393D3C393D3C3A3F3B 262B27282D272E332D353A343D423C454A444E534D555A544A4F494B504A4D524C4F544E50554F 50554F4F544E4E534D4F504B50514C52534E555651575853595A555A5B565B5C575556513F403B 3738334748434E4F4A45464142433E4B4C4751524D54555057585356575250514C48494442433E 3F403B3B3C3740413C48494451524D57585358595454555050514C4E4F4A52534E52534E4A4B46 40413C3D3E394445404C4D484C4D484C4D484C4D484C4D484D4E494D4E494D4E494E4F494F504A 4F50484F504850514951524A52534B53544C53544C52534B50514956574F4E4F474F504853544C 595A527A7B736E6F6770716972736B73746C74756D74756D74756D73746C7879717A7B737C7D75 7E7F77808179808179808179808179898A8288898181827A7A7B737D7E7682837B7A7B736D6E66 52534B5D5E5662635B5F60585D5E566061596061595C5D5564655D6768606C6D656F7068707169 6E6F676A6B6368696161625A66675F64655D5D5E565B5C5461625A64655D61625A5D5E565A5B53 5C5D556768607071696F706867686062635B61625A65665E63645C5D5E565C5D5562635B63645C 5F61565D5A515E5C505F5D51605E525F5D515E5C505C5A4E5B594D5F5D5157554954524659574B 5B594D5A584C5F5D5169675B64625666645869675B69675B676559656357636155626054666458 68665A6A685C6A685C69675B6664586361555F5F535D5D51595B4E56584B545649545649545649 5355485153466E70636E70636F71646E70636D6F626A6C5F686A5D66685B67695C66685B66685B 646659636558626457616356616356585A4D5A5C4F5D5F525E60535C5E515B5D505B5D505C5E50 545746575A475E614E686B586F725F7275627073606C6F5C676A576B6E5B6E715E6B6E5B666956 6366536669566B6E5D615F5263615566645869675B69675B6765596462566260545F5D515B594D 58564A57554959574B58564A5553474F4F435454485355485254475153465052454F51444E5043 4D4F424E504351534654564957594C57594C56584B54564953554857554957554958564A58564A 59574B5A584C5B594D5B594D72706475736779776B7C7A6E7B796D767468716F636D6B5F6C6A5E 6C6A5E6E6C606E6C606E6C606E6C606C6A5E6C6A5E6B695D6A685C68665A676559676559676559 69675B68685C4D4D414F51445153464F51444B4D40494B3E4B4D404E50434C4E414C4E414C4E41 4C4E414C4E414C4E414C4E414C4E4145463E4A4B434E4F474E4F474A4B4345463E44453D44453D 474840494A424C4D4550514955564E595A525C5D555E5F5763645C65665E66675F61625A5A5B53 54554D51524A52534B575850575850575850575850575850575850575850575850595A525A5B53 5D5E5661625A63645C65665E65665E65665E6A6B6368696165665E62635B6061595F60585F6058 5F615665675C66685B65675A6163565B5D50595B4E5B5D505E60536062556062555F61545E6053 5C5E515B5D505A5C4F5A5C4F5D5B4F5E5C505F5D51605E52605E525F5D515E5C505E5C5058564A 57554957554956544856544857554957554956564A57574F55564E53544C52534B52534B52534B 54554D55564E4D4E464B4C44494A424D4E4653544C5859515A5B53595A525D5E565C5D555A5B53 585951575850575850585951595A5258595156574F55564E54554D55564E595A525D5E565F6058 5C5D555B5C545B5C545A5B535A5B53595A525859515859515F60585F60585E5F575E5F575F6058 60615962635B63645C5E5F5761625A56574F3A3B3342433B5C5D555859515A5B534F5352555958 606463696D6C6E72716D7170696D6C666A69606463676B6A696D6C636766626665656968626665 5A5E5D6266656165646064635C605F565A594E5251474B4A4347464A4E4D5256555F6362696D6C 6E72716D7170686C6B6468675D61605D61605D61605B5F5E595D5C585C5B595D5C5A5E5D5C605F 5B5F5E595D5C565A595357565155544E52514D5150565A59545857525655545857595D5C5C605F 5B5F5E595D5C535756545857555958565A59575B5A565A59555958555958585C5B575B5A555958 545857545857545857555958555958484C4B5256555A5E5D595D5C4F5352454948434746454948 484C4B5256555E62616165645B5F5E5458575054535054536367666165645D6160585C5B545857 5054534E52514D51504A4E4D4A4E4D484C4B464A49434746424645424645434746505453484C4B 3F43423B3F3E3F4342484C4B525655585C5B4448473C403F3D41404B4F4E5458575155544B4F4E 4B4F4E4B4F4E4347463D4140404443484C4B4B4F4E464A493F4342474B4A444847464A49494D4C 404443343837363A394246453B3F3E3A3E3D383C3B393D3C3A3E3D3B3F3E3B3F3E3A3E3D434746 4246454145444044433F43424044434044434044433C403F3D41403D41403B3F3E3A3E3D3B3F3E 3F43424348443F44404146404146403F443E3F443E414640424741414640343933363B353A3F39 3E433D414640444943454A44454A444C4D484B4C474B4C474D4E494F504B53544F575853595A55 4C4D483D3E393A3B364748434F504B484944444540474843494A454F504B53544F4F504B454641 3D3E393B3C373D3E3940413C3F403B43443F4D4E49595A555D5E5958595451524D5758535A5B56 5B5C5758595452534E51524D5657525B5C57595A55585954575853565752565752565752575853 57585256575155564E55564E55564E5758505B5C545F605862635B606159606159696A6261625A 5F60585E5F5761625A81827A72736B72736B72736B74756D76776F797A727C7D757E7F777C7D75 7E7F7781827A83847C85867E86877F86877F85867E83847C83847C7E7F77797A727C7D7581827A 7879716A6B6354554D60615966675F6061595D5E5662635B62635B5C5D5565665E6768606A6B63 6C6D656D6E666D6E666B6C646A6B635F605863645C5D5E5653544C55564E60615964655D5F6058 5B5C545A5B53595A525D5E5666675F6D6E666B6C6464655D5E5F5765665E62635B585951575850 5E5F575F6058585A4F605D54615F53626054636155636155626054615F53605E526361555B594D 59574B5D5B4F5D5B4F59574B5C5A4E646256666458656357636155636155646256636155615F53 5F5D516E6C606F6D61706E62706E626E6C606A685C6664586161556565596163565E6053606255 6264576062555A5C4F5456495E6053606255646659686A5D6B6D606B6D606B6D606A6C5F606255 61635661635662645763655864665964665965675A595B4E595B4E585A4D57594C56584B56584B 585A4D595B4D5659464F523D474A354346314649344D503B545742575A455659445E614C646752 5F624D55584351543F575A455E614E59574A5A584C5B594D5D5B4F5E5C505D5B4F5D5B4F5C5A4E 5A584C59574B58564A5A584C5C5A4E5B594D5553474E4E4258584C57594C57594C56584B56584B 56584B55574A55574A595B4E5A5C4F5B5D505D5F525E60535E60535D5F525D5F5259574B58564A 5755495654485654485654485654485755495E5C506361556A685C706E62727064706E626C6A5E 69675B67655967655967655967655968665A6B695D6D6B5F6E6C606A685C676559615F535D5B4F 5B594D5D5B4F615F536262565C5C505E60535F6154595B4E5153464C4E414C4E414F51444B4D40 4B4D404B4D404B4D404B4D404B4D404B4D404B4D4046473F4A4B434F50484F50484B4C44474840 46473F46473F45463E46473F4849414A4B434D4E464F504851524A52534B5D5E5661625A64655D 61625A5A5B5355564E56574F585951575850575850575850575850575850575850575850575850 5B5C545A5B535A5B535A5B535B5C545D5E565F605861625A5E5F575F605860615961625A61625A 61625A6061595F615663655A6466596466595F61545A5C4F57594C595B4E5C5E51545649545649 56584B585A4D5A5C4F5C5E515E60535F615458564A58564A57554958564A59574B5B594D5D5B4F 5E5C5054524655534757554958564A58564A57554955534752524656564E55564E54554D54554D 56574F5859515A5B535B5C545F60585C5D555A5B535C5D5561625A65665E66675F65665E62635B 62635B63645C63645C64655D64655D64655D64655D5E5F575C5D555A5B53595A525A5B535E5F57 63645C66675F5E5F575D5E565D5E565C5D555B5C545A5B53595A52595A525C5D555D5E565E5F57 60615961625A61625A606159606159595A525F60585A5B533738303D3E365C5D5554554D55564E 6C706F6C706F6D71706D71706A6E6D6569686064635D61605357565B5F5E5D6160595D5C595D5C 5C605F595D5C5155545357565056544E52514B514F4C504F4C52505054535157556A6E6D686E6C 666A696167656064635D63615D61605B615F6165646167656165645C6260595D5C565C5A5A5E5D 5C6260585C5B575D5B585C5B585E5C595D5C595F5D5A5E5D595F5D565A59545A58565A595A605E 6064636268666064635C62605B5F5E5C62605F63625F65635F63625C6260595D5C575B5A5C605F 5C605F5B5F5E5A5E5D595D5C585C5B575B5A565A59484C4B565A595E62615155543C403F343837 4246455458575357564A504E444847444A484C504F515755545857515755555958535957515554 4E54524E52514C52504E52514F53524C504F4B4F4E4A4E4D4A4E4D4B4F4E4D51504E52514F5352 3D4140303433292D2C373B3A4F53525C605F565A594A4E4D484C4B464B474A4E4D5156524E5251 414642393D3C3B403C3B3F3E373C38363A394045414C504F5156524A4E4D4247434347463F4440 414544454A463E4241363B37414544565B57484C4B464B47454948464B47484C4B474C48424645 3D423E5357564F5450484C4B434844414544424743454948474C484B4F4E494E4A464A49424743 4044434449454C504F535854545953555A545257514D524C4C514B4F544E4E534D4B504A454A44 474C464A4F494E534D525751535852545953555A544D4F4A4B4D484A4B46484A454C4D4851534E 5859545B5D584849444446414546414B4D4854555054565150514C4A4C4752534E565853585954 51534E494A4547494453544F5C5E5963645F5759544D4E494B4D4853544F55575251524D494B46 51524D53555057585354565152534E4F514C52534E535550595A55575954565752545651545550 54565155565156575252534D5051494E4F494E4F4752534D5859515E5F5962635B5D5E585F6058 6A6B6562635B5D5E5858595156575174756D6D6E666D6F646C6D656D6F6470716975776C7B7C74 7E8075777870797B707B7C747E807580817981837881827A8183787B7D727E80757D7F747D7F74 85877C8C8E8385877C787A6F4F51465D5F5463655A5B5D52585A4F5E60555E605557594E64655D 65665E676860696A626A6B636A6B636A6B636A6B6363645C65665E5C5D5550514953544C63645C 68696162635B686961696A6263645C5D5E5662635B6C6D656A6B6360615962635B6A6B63676860 5B5C54595A5261625A61625A5859515B5B515D5D51615E55616155646158626256636057606054 6D6A616464586360576565596562595C5C505E5B526262566D6A6167675B646158616155656259 64645865625961615569665D646458615E555B5B4F5A574E57574B59564D58584C5D5F545A5C4F 595B505D5F5262645960625556584D4D4F42505247535548585A4F5D5F52606257616356606257 6062556062576062555E60555D5F525B5D52595B4E585A4F57594C6062575E60535B5D52585A4D 57594E585A4D5B5D525D5F525659485C5F4C5F604E595C495253415154415D5E4C686B585D5E4C 6669566E6F5D686B585C5D4B5558455E5F4D6869596162546060545F5D515A5A4E5B594D59594D 5C5A4E5B5B4F6D6B5F66665A6260545D5D515F5D515B5B4F5A584C545448515346515346515348 51534652544952544752544952544751534851534651534852544753554A54564954564B55574A 5151455151455351455151455553475555495A584C59594D4E4C405252465E5C506565596D6B5F 6B6B5F6B695D69675B6E6C606B695D68665A65635765635766645868665A6A685C68665A666458 646256626054615F53626054626054636155616155626457626256595B4E4E4E4245473A454539 46483B4A4A3E494B3E4A4A3E494B3E4A4A3E494B3E4A4A3E494B3E46483D494B404C4D454C4E43 494A4247493E494A424C4E4347484047493E47484047493E47484047493E47484047493E4F5048 56584D5E5E565F61565D5D555C5E5362625A66685D52524A51534852524A51534852524A515348 52524A515348595A5257594E53544C51534850514951534854554D56584D4D4E4650524755564E 595B505C5D555C5E535C5D555B5D525A5C515C5E515D5F545C5E51595B505A5C4F5E6055626457 52544953554854564B55574A56584D585A4D585A4F595B4E6060565E5E525C595057574B58554C 57574B5B584F5B5B4F58554C59594D5F5C53606054625F565D5D515B584F56564C5C5D555B5C54 5A5B53595A52595A52595A525B5C545C5D55595A5255564E52534B52534B56574F595A52585951 575850595A525B5C545F605862635B64655D65665E65665E65665E5C5D55595A5254554D4F5048 4E4F474F504852534B55564E5F60585F61565E5F575D5F545C5D555B5D525A5B53595B5051524A 54564B5758505A5C515B5C54595B5057585055564E54554D5D5E565D5D5536372F3D3D355C5D55 52524A51524A656968575B5A515554585C5B5C605F585C5B5A5E5D6367665155545B5F5E666A69 6B6F6E686C6B656968656968676B6A6066645A6360575D5B525B58555B5957605D5F6563616A67 5E646258615E585E5C59625F5F65635B646153595747504D474D4B47504D4C52504C5552505654 4E57544F55534D565342484649524F565C5A58615E555B594A5350444A483E47444D53514C5552 5056544F58555056544C55524B514F47504D4E54524C55524E54524E5754535957535C59575D5B 575D5B5155544E52514B4F4E4A4E4D4A4E4D494D4C454948424645484C4B464A493F4342383C3B 3C403F474B4A4B4F4E484C4B4B514F3E47444147454C55525359574A5350494F4D4D56534F5553 4B54514B514F4A53504F5553515A57575D5B595F5D535756484C4B4549485155545D6160545857 3B3F3E252928272B2A313534393D3C383C3B393D3C3C403F3D41403A3E3D323733373C363F4440 464B45494E4A494E48454A46434842393E3A4B504A515652424741353A36373C363C413D3A3F39 4045413B403A434844555A545C615D585D57595E5A62676150555150554F5055514F544E4C514D 494E48464B47444943484D494D524C51565250554F4C514D4E534D565B575F645E4146424F544E 4A4F4B363B35373C3850554F5B605C5358524D524C4E534D4F544E515650525751545953555A54 555A544E534D464B4540453F4449434E534D50554F474C463C413B4B504A4D524C51534E4E534D 4E504B484D47494B46464B4530322D4A4F495658534247413A3C374348424D4F4A464B45585A55 4F544E4A4C47484D4751534E565B55595B56565B5550524D50554F5355505156504F514C474C46 4345403D423C474944444943464843444943494B464C514B5355505459535B5D58595E58595B56 555A5455575251565052544F51534E52534E54554F575853595A5458595454554F50514C4E4F49 5455505C5D5760615C5A5B5550514C52534D62635E71726C797B7077796C76786D77796C77796E 75776A7072676C6E61696B6075776A7D7F747B7D707B7D728183768284797E80738F9183888A7C 87897B8B8D7F87897B7B7D6F77796B7B7D6F5C5E505B5D4F64665866685A5C5E50595B4D595B4D 5355485A5C515C5D555D5E5660615963645C66675F676860696A6260615960615960615961625A 61625A61625A62635B62635B64655D5D5E5662635B5F60585A5B536F70687C7D756A6B6365665E 5F60585A5B535F6058676860696A6260615957585063645C61635860605861635865655D65675C 63635B5E605565655D5E605555554D5052475C5C5465675C5F5F574E504564645C5B5D5254544C 53554A5B5B535F61565E5E56595B5056564E55574C56564E55574C56564E55574C56564E55574C 5D5E565D5F545D5E565D5F545E5F575F615661625A62645964655D595B5051524A54564B5F6058 66685D62635B5A5C516061596062576061595F61565D5E565C5E535B5C545C5E536061595D5F54 5A5B535B5D525E5F575F61565D5E565A5C516363575D5E505B594C5A5B4D615F526061535E5C4F 57584A6D6B5E5E5F515D5B4E6566586866595A5B4D5553465657495D5D515C5E515E5E525E6053 6060546062556262566163565F5F535F61546262566264576363576163566060545E605356584D 56584D55564E54564B53544C53554A52534B52544950514951534851524A51534851524A525449 52534B5254494E50434F51445353475456495555495254475050444D4F4259594D56584B56564A 56584B5B5B4F61635669695D6D6D616765596A685C6C6A5E6B695D6765596563576765596A685C 65635765635765635766645866645867655967655968665A6361556565596C6A5E6C6C606B695D 60605458564A5050444E4C4046463A42403441413549473B4C4C404D4B3F48483C414336424437 44463B45473A45473C4446394244394143363E40353F413441433843453846483D484A3D4A4C41 4B4D4045453B49493D514E4556564A5D5A515D5D515F5C535D5D515F5C535D5D515F5C535D5D51 5F5C535E5E52605D545F5F53595B50595B4E57594E545649525449535548595B505D5F525A5C51 5A5C4F595B50585A4D56584D55574A54564B54564B55574C57594E5B5C545D5F545E5F575C5E53 5A5B53585A4F6061595E60555C5D555B5D525B5C545E605561625A63655A595A5257594E56564E 53554A53534B52544954544C53554A5B5B535A5C515A5A52585A4F58585055574C55554D54554D 55564E53544C53544C56574F595A525A5B5357585053544C5D5E565D5E565C5D555C5D555B5C54 5B5C545A5B535A5B5350514954554D5859515B5C545B5C545E5F5762635B66675F5F60585D5E56 5B5C5458595156574F55564E55564E56574F4E50454E50434D4F444C4E414C4E434E50434F5146 50524557594E5355484D4F44484A3D484A3F4B4D4050524754564B5151494A4A4259564F404038 39362F50504854514A57574F606463555958515554575B5A575B5A5155545256555A5E5D686C6B 606463565A59535756565A59565A595357564E5452393F3D3C4542444D4A4A53504D5653505956 525B58555E5B5B64615A63605A63605D6663616A6760696659625F525B5857605D57605D57605D 565F5C555E5B545D5A525B58515A575B646158615E525B5849524F4049463C45423E4744424B48 4D56534F5855515A57525B58525B584F58554B545149524F525B58535C59535C59525B58505956 4D56534B54514A53504E52514E52514E52514E52514E52514E52514E52514F5352414544464A49 494D4C494D4C4D51505256555155544B514F4E5452434C49434C494F5855545D5A4F58554E5754 535C59565F5C59625F59625F545D5A4E57544B5451505956565F5C555958555958585C5B595D5C 4F53523F4342393D3C3C403F4448474E5251555958565A59575B5A595D5C595D5C565B57555A56 575C56595E585A5F595A5F59585D57555A5452575153585260655F656A645E635D575C56535852 484D473A3F3940453F3D423C464B45575C565D625C585D57565B555C615B565B55565B55565B55 54595350554F4B504A454A44424741474C46484D47484D47454A444146404247414A4F4950554F 4A4F49474C463E433D383D3740453F4E534D5156504A4F494E534D4E534D4F544E4F544E50554F 50554F5156505156504A4F494D524C5156505459535358524F544E4A4F49474C464C514B484D47 474C464A4F494D524C484D473B403A30352F363B35494E48525751454A443D423C434842484D47 464B45494E48454A44414640434842494E484E534D4D524C4B504A424741464B454B504A515650 535852545953525751515650444943434842424741434842454A44484D474C514B4E534D555A54 54595353585252575151565050554F4F544E4E534D4D4E4951524D555651585954575853545550 4F504B4B4C474D4E495556515B5C575657524D4E494D4E495A5B566869636C6E636E7063727467 77796C797B6E77796C7173666D6F627E807383857880827576786B76786B7F8174848679828477 7B7D6F7A7D6C7C7F6E7F82717E81707B7E6D7D806F818473676A596265546568576568575B5E4D 585B4A585B4A50524453554A54554D56574F5859515B5C545D5E565F605860615961625A62635B 62635B62635B62635B62635B62635B62635B56574F52534B56574F52534B4B4C445B5C5465665E 56574F64655D5C5D5555564E56574F5E5F5762635B5E5F5758595157585056574F56574F595A52 5C5D555C5D5557585052534B57585054554D4C4D45494A4252534B5D5E565859514A4B434E4F47 51524A55564E575850585951595A525B5C545D5E565B5C545B5C545B5C545B5C545B5C545B5C54 5B5C545B5C545E5F575C5D555A5B53595A525A5B535D5E5660615962635B5D5E565B5C54585951 56574F5758505A5B535F605862635B61625A61625A6061595F60585E5F575D5E565D5E565C5D55 6061595E5F575C5D555E5F5761625A61625A5E5F575A5C51615E555C5A4E58564A59574B5D5B4F 5E5C505A584C56544868665A63615563615568665A62605458564A58564A606054656559646659 65675A66685B67695C686A5D686A5D696B5E6062556062556062555F61545F6154606255606255 606255595A52595A5258595157585057585056574F55564E55564E5D5E565C5D555B5C54585951 56574F53544C52534B5153484D4F444F51445153465355485456495254475052454F51445C5E51 5A5C4F585A4D56584B55574A56584B585A4D595B4E66645869675B6A685C676559636155615F53 6260546563576A685C69675B69675B68665A68665A67655966645866645868665A69675B6B695D 6C6A5E6B695D68665A6563576361554F4D4149473B4442364442364A483C4E4C404E4C404A4A3E 5050444E50434E50434E50434E50434E50434E50434F514456584B56584B56584B56584B56584B 56584B57594C57594C5B594D58564A5654485452465654485B594D615F5365635769675B666458 615F535D5B4F5C5A4E5E5C50605E526161555B5B4F595B4E585A4D55574A53554854564957594C 5A5C4F585A4D585A4D57594C57594C56584B56584B55574A55574A51524A53544C56574F595A52 5C5D555E5F575F60585F605861625A6061595E5F575C5D555B5C545A5B535B5C545B5C54595A52 585951575850575850575850595A525A5B535B5C5458595158595157585057585056574F56574F 55564E55564E5051494F50484F504853544C5859515A5B5357585054554D595A525A5B535A5B53 5B5C545B5C545C5D555D5E565D5E5654554D575850595A5258595156574F55564E575850595A52 61625A61625A62635B63645C63645C64655D64655D64665B5B5D52595B4E55574A5153464E5043 4C4E414B4D404A4C3F4E50434B4D4047493C43453841433642443744463946483B524F484B4841 56534C413E3736332C49463F49463F4A4740595D5C545857545857575B5A5559584E52514E5251 5458576064635B5F5E565A59555958575B5A5357564A4E4D4147453E444249524F59625F646D6A 666F6C646D6A626B68636C695C65625C65625E6764626B68656E6B646D6A616A675D66635C6562 5C65625B64615A636059625F57605D555E5B545D5A59625F535C5948514E3E474439423F3E4744 4A5350545D5A505956515A57535C59545D5A535C595059564E57544C55524B54514E5754515A57 525B585059564E57544D56534D56535256554A4E4D4549484A4E4D545857565A594C504F404443 484C4B4D51505155544F53524D51504B4F4E484C4B4349474A504E414A47414A474A5350505956 4E57544E5754515A57515A5757605D5B6461565F5C4B545147504D4D5653555E5B595D5C545857 5054534A4E4D3A3E3D2E3231393D3C4D5150565A595A5E5D5C605F5B5F5E5C605F626665666A69 676C686469656166605C615B575C565358525156504F544E4F544E656A646267615A5F59515650 4F544E5156504A4F493E433D393E383A3F394348425358525A5F59565B55525751535852565B55 5257514D524C494E48474C46494E484D524C50554F4B504A4A4F49474C464247413F443E40453F 454A44484D474D524C3D423C3439333B403A484D474B504A464B454247414E534D4E534D4D524C 4D524C4C514B4B504A4B504A4B504A474C4650554F575C56535852484D47434842484D4750554F 50554F4A4F49464B454B504A50554F494E48353A342227213F443E474C464B504A484D47424741 414640434842444943464B45454A44454A44494E484E534D50554F4D524C494E48424741454A44 484D474C514B4D524C4D524C4B504A4A4F49434842424741414640414640434842454A44474C46 484D4750554F4F544E4F544E4F544E4F544E4E534D4E534D4E534D4F504B4F504B50514C51524D 51524D51524D51524D50514C4C4D485556515C5D585A5B565455505455505E5F5A696A6467695E 6B6D6070726575776A787A6D797B6E787A6D77796C8385788486797C7E7171736670726577796C 7A7C6F75776A71736577796B7A7C6E76786A73756776786A7B7D6F7E80725F6153555749545648 5557494F51435153455355474A4C3F4C4E434D4E464F504851524A53544C55564E575850585951 55564E54554D54554D54554D54554D54554D54554D54554D5051494E4F475051494B4C4443443C 4B4C4453544C4B4C4461625A5859514F50484E4F4754554D5A5B535B5C5458595153544C52534B 54554D5758505A5B53595A5253544C4E4F47585951595A5254554D4F504855564E5E5F575C5D55 52534B3C3D3548494156574F5A5B5356574F54554D595A525F60585B5C545B5C545B5C545B5C54 5B5C545B5C545B5C545B5C545C5D555A5B5357585056574F56574F5A5B535E5F5761625A56574F 5B5C545E5F575859514F50485051495B5C5467686062635B6061595F60585F60586061595F6058 5E5F575D5E565F60585E5F575F605862635B65665E65665E6061595B5D5269665D666458636155 646256666458676559646256615F5359574B5C5A4E6361556664585E5C505351455553475C5C50 67675B66685B67695C67695C686A5D686A5D696B5E696B5E6264576062555E60535D5F525D5F52 5E60536062556264575C5D555C5D555B5C545A5B535A5B53595A525859515859515D5E565C5D55 5B5C54595A5257585055564E53544C5254494E504550524552544754564956584B56584B55574A 5456495254475153465153464F51444C4E41494B3E46483B444639605E52636155656357636155 5F5D515D5B4F5E5C50605E52615F53605E525F5D515E5C505D5B4F5C5A4E5B594D5A584C5C5A4E 5C5A4E5C5A4E5C5A4E5E5C50605E526260546462565C5A4E58564A54524654524658564A5C5A4E 5D5B4F5A5A4E5E5E525C5E515A5C4F585A4D585A4D5A5C4F5C5E515D5F52686A5D67695C65675A 6365586163565F61545D5F525C5E5168665A6361555C5A4E58564A5755495A584C605E52646256 6B695D69675B666458636155615F53605E525F5D515D5D5157574B55574A545649525447515346 51534650524550524555574A55574A55574A56584B56584B57594C57594C57594C56574F55564E 55564E56574F5859515B5C545D5E565F60585F60585F60585E5F575D5E565A5B5357585054554D 52534B5859515859515859515859515A5B535C5D555F605860615954554D54554D55564E55564E 56574F56574F5758505758504F50484E4F474E4F4752534B5758505A5B5357585054554D55564E 56574F5758505859515A5B535B5C545C5D555C5D5556574F57585058595157585056574F55564E 56574F58595152534B55564E595A525E5F5761625A62635B62635B6163585B5D52595B4E57594C 54564952544752544752544752544747493C46483B4345384042353D3F323A3C2F383A2D37392C 48453E423F384B48413E3B34333029403D36423F38434039555958575B5A5A5E5D5C605F585C5B 545857555958585C5B595D5C5E62616266655F6362585C5B525655525655545A585157555B6461 67706D6C757268716E636C69626B68636C695E6764606966616A67636C69636C69626B68606966 5F6865545D5A555E5B57605D58615E57605D555E5B525B58505956434C49444D4A444D4A424B48 434C4949524F535C595B6461525B58515A575059564F58554F58554E57544E57544E5754454E4B 47504D4A53504C55524E5754505956525B58545D5A4E52514B4F4E484C4B494D4C4B4F4E484C4B 3F4342363A394E52514F53524C504F4549483E42413D41403F43424147454147453B444139423F 3E4744444D4A464F4C47504D47504D424B48454E4B49524F4B54514B54514D5653505956525B58 6165644B4F4E3A3E3D3A3E3D3E42414246454E52515D61605D61605A5E5D555958505453535756 5C605F666A696D726E6B706C666B655E635D565B55525751525751545953565B555E635D575C56 4A4F493F443E3B403A3F443E4348424449434F544E4F544E5459535C615B60655F5C615B555A54 515650555A5454595352575150554F4F544E4F544E4F544E4F544E565B55555A54535852525751 51565051565051565052575140453F393E38373C363F443E474C46474C464449434348424E534D 4D524C4C514B4A4F49494E48474C46464B45454A44484D474A4F49474C463E433D353A34363B35 4146404C514B5156504E534D4C514B4D524C4D524C464B45393E382E332D454A44424741434842 474C46454A443E433D3C413B414640414640444943484D474D524C50554F4F544E4B504A484D47 4449434449434449434348424146403E433D3A3F39383D37444943434842434842434842444943 444943454A44464B454D524C4D524C4D524C4E534D4E534D4E534D4F544E4F544E55565151524D 4C4D48494A454A4B464E4F4A5455505859544F504B5657525C5D58595A5552534E50514C555651 5C5D5754564B56584B595B4E5A5C4F5B5D505E605363655866685B61635666685B65675A606255 6062556264575A5C4F4E5043606255696B5D696B5D5B5D4F51534553554756584A555749545648 484A3C454739494B3D4A4C3E535547585A4C5153464E50454F504850514952534B54554D55564E 575850575850595A52595A5258595158595157585056574F56574F56574F55564E55564E55564E 4F5048494A424D4E4654554D56574F5C5D5555564E4E4F474D4E4652534B575850595A52595A52 5B5C54595A52595A525B5C545E5F575E5F575B5C5456574F5D5E5661625A5E5F5756574F56574F 5D5E565C5D5556574F3E3F3748494153544C595A52595A525758505859515A5B5355564E55564E 55564E55564E55564E55564E55564E55564E58595157585056574F56574F56574F5859515B5C54 5C5D5554554D5A5B535D5E56595A5252534B5051495859516061596061595F60585F60585F6058 6061596061595F60585E5F575F60585E5F5760615964655D68696167686062635B5D5F54625F56 615F535F5D515F5D515F5D515F5D515E5C505C5A4E5654485A584C63615569675B6765595F5D51 58564A5454486262566163566163566163566163566264576264576264576062555F61545E6053 5D5F525D5F525E60535F61546062555D5E565C5D555C5D555B5C545A5B53595A52595A52585951 52534B53544C54554D55564E56574F575850585951595B5055574C56584B57594C595B4E5A5C4F 5B5D505C5E515C5E51595B4E5B5D505D5F525F61545D5F52595B4E54564951534654524659574B 5F5D51626054605E525E5C505E5C50605E525A584C5A584C5A584C59574B59574B59574B58564A 58564A5F5D515F5D51605E52615F53626054646256656357666458636155615F535E5C505D5B4F 5F5D516260546563576464586161555F61545E60535D5F525D5F525E60535F6154606255646659 6365586163565F61545D5F525B5D50595B4E585A4D626054615F53605E525F5D515E5C505D5B4F 5C5A4E5C5A4E615F5365635769675B6C6A5E6B695D666458605E5259594D5E5E525A5C4F585A4D 57594C585A4D57594C55574A52544754564954564955574A56584B57594C585A4D595B4E5A5C4F 61625A5E5F575A5B5356574F54554D55564E56574F575850595A525B5C545C5D555C5D555B5C54 57585053544C50514957585056574F55564E54554D55564E56574F575850595A5252534B52534B 53544C54554D55564E57585058595158595155564E53544C53544C56574F595A525A5B53575850 53544C54554D55564E55564E55564E55564E56574F56574F56574F51524A52534B54554D575850 595A525B5C545D5E565E5F5751524A55564E5B5C5461625A64655D64655D62635B60625755574A 55574A54564954564955574A57594C595B4E5A5C4F4A4C3F4A4C3F494B3E46483B4244373C3E31 37392C3436293C393238352E3E3B3439362F302D2639362F44413A47443D5559585C605F606463 5F63625D61605E6261606463606463676B6A6468675D61605256554B4F4E4F53525C605F676D6B 5C62605F6865626B685E676458615E565F5C5C6562626B68626B68616A67616A676069665E6764 5C65625A636058615E58615E59625F5A63605A636057605D515A574B545148514E434C4947504D 4C55524E57544C55524B54514C55524E5754525B585059564C55524A535049524F4A53504C5552 4E57544C555249524F464F4C464F4C49524F4D5653505956525B584B4F4E5155545256554A4E4D 3F43423C403F4549485054534B4F4E4A4E4D464A494246453F4342404443474B4A4D5351434947 3F48453C45423C4542404946464F4C47504D444D4A434C493E47443D4643464F4C525B5858615E 535C594B5451484C4B343837292D2C343837494D4C555958595D5C5A5E5D6468676064635C605F 5B5F5E5F63626569686C706F727773686D696368625C615B565B55555A54585D575D625C616660 5C615B5D625C5B605A535852454A443D423C4146404A4F49565B55565B55545953535852535852 515650484D473F443E555A545A5F59626761656A645F645E525751434842393E38414640444943 484D474B504A4C514B4A4F49474C46454A4430352F3C413B454A44444943424741454A44494E48 4B504A4E534D4D524C4B504A494E48474C46454A444348424247414D524C464B453C413B363B35 363B353A3F393E433D414640454A44494E484B504A464B453D423C393E383B403A3F443E464B45 3D423C3D423C454A44454A443B403A383D373E433D383D373C413B424741464B45474C46454A44 43484241464040453F414640424741434842434842424741424741414640444943454A44464B45 464B45474C46474C46474C46464B454C514B4C514B4C514B4D524C4D524C4D524C4E534D4E534D 52534E50514C4D4E494B4C474C4D484E4F4A51524D53544F494A454D4E494F504B4A4B4643443F 3E3F3A40413C44453F4B4C4450524755574C56584D53554A51534854564B57594E54564B5C5E53 61635860625763655A64665B5A5C514B4D405C5E5165675A63655853554846483B45473A45473A 4244375D5F524E50434B4D404E50435153465B5D50616356595B4E55574C56574F575850585951 595A525B5C545C5D555C5D555A5B535A5B53595A5258595157585056574F55564E55564E585951 58595155564E52534B51524A51524A57585061625A57585054554D52534B53544C56574F595A52 595A52595A526061595C5D555859515859515B5C545E5F575D5E565C5D555B5C546061595D5E56 53544C4F504853544C53544C4D4E4651524A4F504850514956574F5C5D555D5E5658595152534B 55564E55564E55564E55564E55564E55564E55564E55564E53544C55564E575850595A525A5B53 595A52585951575850575850575850585951595A525B5C545A5B5357585054554D5C5D555D5E56 5E5F575E5F575D5E565D5E565E5F575F60585E5F575D5E565E5F5762635B66675F66675F63645C 5F6156605D54615F53615F53605E525E5C505D5B4F5D5B4F5E5C50646256615F535F5D51626054 69675B6B695D6260545454486262566163566163566163566062556062556062556062555C5E51 5D5F525E60535F61545F61545E60535D5F525C5E515C5D555B5C545B5C545A5B53595A52585951 585951575850575850585951595A525B5C545D5E565E5F576061596062575E60555E60535E6053 5E60535F61546163566264576365585E605361635664665965675A6264575D5F5256584B525447 4A483C5250445D5B4F6361556462566361556361556462565F5D51605E52605E52615F53636155 6462566563576563575D5B4F5F5D51626054646256636155605E525D5B4F5A584C5B594D5A584C 59574B57554957554959574B5D5B4F5F5F535A5A4E5A5C4F5B5D505C5E515C5E515B5D505A5C4F 595B4E5A5C4F595B4E595B4E595B4E595B4E585A4D585A4D585A4D58564A5A584C5D5B4F5F5D51 5F5D515E5C505B594D5A584C5A584C5F5D516563576A685C6B695D68665A6462565F5F5367675B 6163565D5F525C5E516062556163565E60535B5D5056584B56584B57594C585A4D595B4E5B5D50 5B5D505C5E5163645C6061595C5D5558595156574F56574F585951595A5253544C56574F595A52 5B5C545B5C54595A5256574F54554D56574F54554D51524A4F50484C4D454C4D454B4C444C4D45 52534B52534B53544C54554D55564E5758505859515859515E60555C5E535A5C515B5D525D5F54 5C5E5357594E53554A56584D56584D55574C54564B53554A5254495153485052474D4F444D4F44 4E504550524753554A55574C56584D56584D4F514652544957594E5B5D525C5E535B5D5257594E 55574C585A4D57594C55574A54564954564955574A56584B57594C54564955574A55574A535548 4F5144484A3D4244373E4033403D363D3A333D3A333B38312E2B242F2C254340394A4740585C5B 5F63626064635B5F5E5A5E5D6064636165645E62615C605F5357564A4E4D494D4C5155545B5F5E 6064636066646167655F68655D666358615E555E5B59625F646D6A6D7673636C696069665D6663 5B64615A636059625F565F5C535C59646D6A636C696069665C6562565F5C4E575448514E454E4B 4D5653505956535C59515A574D565349524F4A53504B54515059564E57544C55524A535049524F 49524F4B54514C55524C5552454E4B3F484540494648514E4F5855535C59535C59595D5C4D5150 4145444044434A4E4D575B5A5E62616064635054534E52514E52514F53524D51504A4E4D4C504F 4F55534F55534D565348514E424B48464F4C4E57544F585549524F4F585547504D434C494B5451 565F5C58615E4D56534049462E32313337363B3F3E474B4A575B5A6165645E6261565A595A5E5D 595D5C5D6160656968696D6C686C6B666A69666B675F64605C615B595E58565B55575C565B605A 616660646963656A64646963616660585D57454A44393E38424741535852545953575C56565B55 545953585D575D625C575C564C514B4C514B4E534D50554F4F544E4B504A4449433D423C383D37 4449434B504A535852585D57575C565358524F544E4C514B3237314348424F544E4C514B444943 454A444D524C5358524D524C4C514B4B504A494E48474C46454A444348424348424F544E494E48 434842444943494E48494E48414640393E38383D3740453F4449433D423C30352F2D322C373C36 4348424449433C413B3C413B454A44464B453D423C3A3F3940453F3D423C424741474C46484D47 474C46464B45484D474A4F494C514B4C514B4D524C4D524C4E534D4F544E50554F50554F424741 434842454A44474C46494E48494E48484D47474C464A4F494A4F494A4F49494E48494E48494E48 484D47484D474748434A4B464E4F4A51524D50514C4C4D4846474242433E3D3E393F403B42433E 42433E41423D43443F4849444D4E484F5048595B5065675C67695E616358595B5056584D56584D 5C5E536163586264595D5F5460625767695E66685D5F615660625567695C696B5E6264575A5C4F 56584B55574A5355486163565355484E50434E50434D4F4254564957594C4E5045595A525A5B53 5B5C545B5C545C5D555D5E565E5F575E5F5756574F55564E54554D53544C51524A5051494F5048 4E4F4753544C54554D4E4F474F504854554D4E4F474D4E465B5C5451524A53544C56574F595A52 5B5C545A5B53595A525859515B5C5456574F5051494F504852534B56574F5758505758505D5E56 62635B5F605855564E51524A54554D54554D4F50485D5E5656574F51524A54554D5C5D555F6058 5859515051495B5C545B5C545B5C545B5C545B5C545B5C545B5C545B5C5452534B54554D585951 5C5D555D5E565B5C5458595156574F5B5C5457585056574F5B5C5461625A6061595758504D4E46 55564E5A5B535E5F575D5E565859515758505B5C546061595D5E565B5C54595A525C5D55606159 63645C62635B60625767645B6A685C6B695D69675B6563576361556563576765596765595F5D51 5250444C4A3E545246605E525E5C5051514568685C67695C66685B65675A65675A646659646659 6466595A5C4F5C5E515E60535F61545F61545E60535C5E515A5C4F5C5D555C5D555B5C545A5B53 5A5B53595A52585951585951696A62696A6268696168696167686066675F65665E65675C65675C 6466596264576163566163566264576365586466595E60535F61545F61545D5F52585A4D505245 494B3E4446394C4A3E5452465E5C5065635767655968665A69675B6B695D605E52605E52615F53 615F5362605463615563615564625658564A5A584C5C5A4E5D5B4F5B594D565448514F434D4B3F 5A584C5B594D5B594D59574B56544858564A5D5B4F60605455554956584B585A4D595B4E595B4E 585A4D56584B54564957594C585A4D595B4E5A5C4F5B5D505C5E515D5F525E605358564A58564A 57554957554958564A5B594D5D5B4F5F5D515D5B4F5D5B4F5D5B4F5E5C50615F53646256676559 67675B60605457594C4F51444F514455574A5A5C4F5A5C4F57594C5B5D505B5D505B5D505C5E51 5C5E515D5F525D5F525D5F525A5B535A5B535A5B535B5C545D5E565F605862635B63645C54554D 55564E575850595A525A5B535A5B53595A52595A5258595156574F52534B4E4F474B4C44494A42 48494148494154554D54554D55564E55564E56574F56574F5758505758506163585F61565D5F54 5E60555F61565E60555A5C5155574C585A4F585A4F57594E57594E56584D55574C55574C54564B 5153485052474D4F444D4F444D4F444C4E434A4C41484A3F4E504550524752544954564B53554A 5153484E50454C4E4356584B55574A55574A55574A56584B585A4D5A5C4F5B5D505D5F525D5F52 5E60535D5F52595B4E5456494F51444C4E41514E47504D464A474047443D302D262320193D3A33 47443D5A5E5D5E6261595D5C4F53524E5251565A59565A594E52514A4E4D494D4C4B4F4E535756 5D61606266656064635A605E595F5D57605D555E5B545D5A555E5B5A6360616A6767706D616A67 5C656257605D57605D5B64615C656259625F555E5B5E67645B6461555E5B5059564C55524A5350 4B54514C5552515A57535C59535C595059564D56534C5552505956545D5A4D56534E5754505956 5059565059564D56534B545149524F4E5754444D4A3B44413E474449524F525B58515A574C5552 505453404443363A39404443575B5A6569686064635458575256554E52514D5150515554515554 4C504F4A4E4D4B514F565C5A555E5B4E5754444D4A454E4B4F58554F585547504D48514E48514E 49524F4A53504A5350454E4B3C4542353E3B393D3C4C504F575B5A565A595B5F5E656968626665 555958454948444847494D4C545857595D5C555958515554505551595E5A585D57565B55565B55 565B55585D575A5F595B605A575C564E534D484D47474C4640453F393E38424741535852343933 3B403A3C413B3B403A4247414A4F4943484234393343484242474140453F3F443E40453F424741 454A44474C46313630393E384247414449433F443E383D37353A34343933494E484A4F494F544E 5459534E534D464B454A4F49555A544C514B4B504A4A4F49494E48484D47474C46464B45454A44 4D524C4C514B4D524C4F544E4F544E4B504A4247413C413B3B403A40453F43484240453F393E38 353A34393E383F443E4348423F443E414640474C46484D47434842414640454A44474C464B504A 4E534D4C514B494E484A4F4950554F575C565C615B5B605A585D57555A5452575151565050554F 4F544E3C413B3E433D424741454A44474C46484D47474C46464B45464B45454A44454A44434842 42474141464040453F3F443E42433E454641494A454B4C47494A4543443F3B3C373738333C3D38 3D3E393E3F3A40413C43443F4B4C4753544F5A5B5548494154564B5F6156606257585A4F515348 51534854564B57594E5A5C5154564B4A4C414A4C4155574C5E60555F615657594E595B505F6156 64665B6264595B5D52585A4F585A4F595B504D4F444A4C414B4D4247493E4B4D424D4F4445473C 575850575850575850585951595A52595A525A5B535A5B535D5E565C5D555B5C54595A52575850 56574F54554D54554D50514952534B4C4D455051495A5B534C4D454041394D4E464C4D45505149 5758505A5B535B5C54595A5258595157585057585052534B4E4F474D4E4650514953544C53544C 52534B5859515D5E565B5C5454554D53544C595A525A5B5355564E595A5258595156574F56574F 58595158595157585056574F5B5C545B5C545B5C545B5C545B5C545B5C545B5C545B5C5454554D 56574F595A525C5D555D5E565C5D555A5B535859515B5C545B5C545C5D555F60586061595E5F57 58595152534B4E4F475758505E5F575C5D5553544C51524A58595161625A5D5E5658595154554D 54554D595A525E5F5761625A6163586360576765596A685C6765596260545F5D51626054666458 6361556462565B594D4C4A3E4A483C5553475B594D55554966665A65675A646659636558626457 6163566163566062555C5E515C5E515C5E515D5F525D5F525C5E515C5E515C5E515F60585F6058 5E5F575D5E565D5E565C5D555B5C545B5C54696A62696A62696A62686961686961676860676860 66685D686A5F66685B6264576062555E60535E60535F6154606255686A5D686A5D67695C65675A 6163565B5D5056584B5254475A584C5E5C5064625666645866645868665A6C6A5E706E62626054 615F53605E525E5C505C5A4E5A584C59574B58564A626054615F53605E525F5D515D5B4F5B594D 5A584C5A584C5C5A4E5E5C50605E525D5B4F59574B5A584C605E5265655959594D585A4D585A4D 595B4E595B4E585A4D585A4D585A4D595B4E595B4E5A5C4F5A5C4F5B5D505C5E515D5F525D5F52 5C5A4E5A584C57554955534756544859574B5D5B4F605E525F5D515D5B4F5A584C59574B5A584C 5E5C506260546464585D5D5151534646483B45473A4F5144585A4D5A5C4F585A4D616356606255 6062556062555F61545F61545E60535E60535859515A5B535D5E5660615963645C65665E66675F 66675F5C5D555B5C54595A52585951585951585951595A52595A525D5E565B5C54595A5256574F 54554D52534B52534B52534B58595158595157585057585056574F56574F55564E55564E5A5C51 595B4E585A4D5C5E516062556163565E60535B5D50595B4E595B4E5B5D505D5F525F6154606255 6264576365585E60535B5D50585A4D585A4D585A4D585A4D55574A525447606255606255606255 6163566062556062556062556062555B5D505A5C4F595B4E595B4E5A5C4F5B5D505D5F525E6053 5F61545F61545F61545E60535C5E515A5C4F585A4D56584B5A57505E5B5457544D57544D38352E 211E173E3B344A47405B5F5E5C605F5357564448474246454B4F4E494D4C3F4342575B5A5B5F5E 5D61605A5E5D555958565A595D61606369675D63615C65625D66635E67645F6865606966616A67 626B685F686559625F545D5A565F5C5D66636069665E676459625F4A5350464F4C4049463D4643 3F4845464F4C4F5855555E5B545D5A565F5C565F5C535C594F58554E5754505956545D5A4B5451 4F5855545D5A58615E57605D525B584B545147504D5A63604D5653404946414A474A53504D5653 454E4B3B4441282C2B383C3B4B4F4E5458575155544B4F4E494D4C4A4E4D484C4B4044433E4241 4448474A4E4D4B4F4E4D5150505654545A58545D5A4C55523F48453F484549524F49524F3F4845 333C393D4643454E4B434C4939423F3039362D36332F3835393D3C474B4A464A49383C3B393D3C 494D4C474B4A3539383D4140373B3A373B3A3F4342444847444847444847474C484045413F443E 3F443E3E433D3D423C3C413B3B403A3A3F39353A342E332D343933464B454F544E484D47444943 474C46565B555C615B5C615B565B55575C565A5F594D524C383D374348424A4F495459535B605A 5C615B565B554E534D474C464348424B504A525751515650484D4740453F3E433D3F443E60655F 4D524C4A4F49595E58595E58474C464449435358524B504A4B504A4A4F49494E48494E48484D47 484D47474C46494E484D524C4F544E4C514B464B4540453F40453F414640484D47494E484A4F49 4B504A4B504A474C464146403C413B434842434842464B454A4F494A4F49484D47484D474B504A 454A44484D47484D47454A444146404348424D524C555A545E635D5B605A575C565358524F544E 4D524C4B504A4B504A363B35393E383E433D434842464B45464B45464B45454A44434842424741 40453F3E433D3C413B3A3F39393E38383D3745464144454042433E3F403B3B3C37383934363732 35363145464142433E3E3F3A3A3B36393A353D3E39444540494A44505149585A4F5D5F54595B50 525449505247595B5062645962645965675C5E60555153484E50455A5C5166685D696B605C5E53 5A5C516264596D6F646E706563655A5D5F545F615654564B4C4E434D4F445052474E5045525449 56584D4F514652534B52534B52534B53544C53544C54554D54554D54554D55564E55564E53544C 51524A4F50484D4E464C4D454B4C4453544C56574F50514957585062635B4D4E46393A3243443C 494A424E4F4755564E595A5258595157585056574F56574F595A5255564E52534B53544C56574F 57585056574F54554D4849414D4E464C4D454748404A4B4353544C55564E5051494F504856574F 5B5C545A5B5353544C51524A56574F5D5E5655564E55564E55564E55564E55564E55564E55564E 55564E575850585951595A525B5C545C5D555C5D555C5D555B5C545A5B535E5F5762635B61625A 5C5D555859515859515A5B534A4B4355564E5E5F575B5C545051494D4E4656574F61625A5C5D55 56574F5051494F504854554D5B5C546061596264596D6A617270647573677270646C6A5E69675B 6D6B5F716F6367655977756979776B68665A5B594D5F5D5167655966665A5E5E525D5F525C5E51 5B5D505A5C4F595B4E585A4D57594C5E60535D5F525B5D505A5C4F5A5C4F5B5D505D5F525E6053 62635B62635B61625A61625A6061595F60585E5F575E5F57595A525A5B535C5D555F605861625A 64655D66675F67695E686A5F65675A6163565D5F525B5D505A5C4F5B5D505C5E51616356626457 6365586365586264576163566062555E605367655968665A68665A6664586462566664586C6A5E 7270646E6C606D6B5F69675B656357605E525C5A4E59574B5755495E5C505B594D565448525044 514F4354524658564A5B594D54524658564A59574B56544852504452504459574B5F5F535F5F53 5C5E515B5D50595B4E595B4E5B5D505C5E515E6053585A4D585A4D57594C57594C57594C57594C 57594C57594C5D5B4F5C5A4E5B594D5A584C5A584C5A584C5A584C5A584C5D5B4F5C5A4E5C5A4E 5B594D5B594D5B594D5B594D59594D6C6C605E60535052455052455B5D5066685B6B6D606A6C5F 65675A6466596365586264576163566062555F61545E60535E5F5760615963645C66675F66675F 65665E62635B60615963645C61625A5C5D5558595156574F56574F57585058595161625A606159 5F60585D5E565D5E565D5E565E5F575F60585A5B535A5B53595A5258595157585055564E54554D 54564B525447515346535548585A4D5F61546365586264575F6154585A4D5A5C4F5D5F52616356 66685B6B6D606E7063707265686A5D66685B65675A686A5D6B6D606E70636C6E616A6C5F626457 61635661635661635662645764665966685B67695C6B6D60696B5E6466595F61545A5C4F57594C 55574A55574A5D5F525D5F525C5E515B5D505B5D505A5C4F5A5C4F5A5C4F57544D605D565D5A53 615E57403D3625221B45423B5350495A5E5D595D5C5559584C504F474B4A4B4F4E585C5B636766 6569685E6261575B5A565A595C605F6064635F63625B615F5E64626069665F686559625F5A6360 5E67645A6360515A57525B58525B58525B58525B58515A575059564E57544D5653434C4929322F 2A33304C55525B64614C5552454E4B515A575059564E57544A535047504D464F4C47504D49524F 4A53504B5451464F4C4049463C45423C45423F4845414A47424B4847504D49524F47504D3E4744 343D3A313A3738413E404946535756535756555958575B5A595D5C5A5E5D5C605F5D6160626665 636766636766646867656968666A69666A69666C6A7076746E77746F78756E77746C75726C7572 6E777470797679827F79827F69726F47504D2E37342B3431353E3B3B4441393D3C393D3C383C3B 383C3B373B3A363A39353938353938373B3A373B3A383C3B393D3C3A3E3D3A3E3D3B3F3E3B403C 3C413D393E38373C36393E383D423C3D423C383D373237312328223A3F394D524C50554F4E534D 525751555A54545953565B555A5F595E635D60655F5B605A50554F4348423A3F395156504C514B 484D47474C464A4F494E534D4F544E4F544E595E58555A545B605A575C5640453F363B35464B45 555A544B504A4E534D4F544E4C514B464B4541464040453F40453F3E433D4449434A4F494D524C 4B504A4A4F494B504A4C514B50554F4D524C494E48454A44434842424741434842434842474C46 4A4F493C413B393E384A4F494F544E50554F616660585D57565B55545953545953545953515650 4B504A464B45565B55515650494E4843484240453F424741474C464A4F493A3F394B504A4A4F49 484D4750554F464B453A3F39424741343933323731313630333832373C363E433D454A444A4F49 4C514B414640464B45575C56525751393E382D322C34393332332E3C3D38474843494A4543443F 3D3E393B3C373D3E3943443F3A3B3640413C4546413B3C373F403B5859546D6E685C5D55575850 52534B50514952534B54554D55564E55564E5C5D555B5C545B5C545A5B5358595155564E53544C 51524A64655D5A5B5353544C595A526768606E6F676768605E5F576A6B6356574F4A4B43505149 54554D4F50484E4F4754554D5A5B535A5B53595A5257585056574F54554D52534B51524A55564E 575850595A5258595155564E54554D56574F595A5258595155564E53544C52534B51524A4C4D45 44453D3D3E363D3E3656574F53544C494A4255564E595A5252534B55564E5F60585B5C5454554D 4F50484C4D454C4D454E4F475051495F605856574F4E4F4750514957585058595151524A484941 4D4E4654554D595A5255564E4D4E464B4C4453544C5C5D555F60585A5B5352534B4E4F474F5048 55564E5E5F5764655D585951595A52595A5257585056574F5859515D5E5662635B64655D63645C 62635B61625A6061595F60585E5F575D5E566D6E666768606869617071696E6F6762635B5E5F57 63645C71726A57585050514966675F77787073746C71726A797B70716E65727064747266757367 757367747266727064716F63767468716F636B695D68665A6664586260545C5A4E55554959594D 585A4D585A4D595B4E595B4E595B4E5A5C4F5A5C4F6163566264576163565D5F525B5D505B5D50 60625565675A5F60585F60585F60585F60585F60585F60585F60585F60585D5E5655564E4F5048 56574F63645C6B6C6467686060625764665B636558616356606255606255616356626457636558 6466596365586163565F61545E60535F61545F615460625566645867655968665A68665A676559 6664586563576563577B796D68665A5452464F4D4158564A605E52605E525B594D5E5C505C5A4E 5A584C59574B58564A59574B5A584C5B594D514F4352504454524657554959574B5B594D5C5A4E 5B5B4F59594D5B5D505D5F525C5E51585A4D57594C595B4E5C5E51595B4E56584B545649545649 55574A55574A5052454C4E415A584C514F43514F435A584C5A584C514F43514F435A584C5B594D 5D5B4F605E526361556462566462566260545E5E5256564A57594C5A5C4F5E6053606255626457 63655863655861635663655866685B67695C65675A6163565B5D50585A4D5C5D555E5F575F6058 6061595F60585C5D55595A5256574F53544C5051494A4B434748404748404B4C4451524A55564E 5D5E5657585054554D5B5C5466675F6A6B6364655D5C5D555D5E565B5C545B5C545C5D555E5F57 5C5D5555564E50524765675A5A5C4E56584A595B4D5557494E504256584A66685A6365575C5E50 585A4C5B5D4F6567596B6D5F696B5D64665862645662645663655764665865675966685A67695B 67695B6062545F61535F61535F61535E60525E60525E60525D5F515F6154606255626457626457 6163565E60535A5C4F585A4D4F51444F5144505245515346545649585A4D5C5E515E60536C6962 615E575C5952605D56504D462E2B24302D2654514A4F53525054534F5352494D4C444847454948 4D51505458575256554D5150494D4C4B4F4E5054535357565155544C52505056544D5653464F4C 3D46434049464A53504C5552464F4C535C59525B58515A574E575449524F444D4A3F48453C4542 303936242D2A2B3431414A47444D4A353E3B343D3A444D4A48514E47504D444D4A424B48424B48 434C49444D4A464F4C454E4B48514E4D56534F58554E57544B545148514E464F4C555E5B505956 49524F47504D4A5350515A5757605D5B6461666A69666A69686C6B696D6C6B6F6E6D71706E7271 6F7372676B6A676B6A686C6B696D6C696D6C6A6E6D6B6F6E6A706E6A706E6C75726F78756F7875 6D76736F7875747D7A79827F747D7A5D66633E47442A33302C3532363F3C3A434037403D393D3C 393D3C383C3B373B3A363A39363A39353938353938373B3A373B3A383C3B383C3B393D3C3A3E3D 3B3F3E3B403C373C38393E38393E383439332D322C2A2F292E332D33383243484250554F5C615B 5E635D5C615B5B605A5D625C5D625C5E635D6166606166605B605A5257514F544E5459535A5F59 575C56595E585C615B60655F60655F5C615B555A544F544E555A54565B555C615B525751373C36 2E332D3E433D4B504A494E484C514B4E534D4C514B484D47464B45484D474B504A464B45494E48 4C514B4E534D4F544E4F544E50554F51565050554F4D524C494E48454A44444943454A44474C46 484D47525751434842343933363B353D423C363B35353A344247414F544E50554F515650515650 50554F4B504A454A4440453F44494342474141464040453F414640434842454A44474C46474C46 4B504A474C46424741454A444348424449434C514B3E433D3D423C3D423C3D423C3F443E424741 454A44474C46444943363B353439333F443E3D423C2E332D2D322C3A3F3941423D4748434C4D48 4C4D4846474241423D40413C41423D40413C3A3B363B3C373B3C373B3C374C4D4861625D656660 53544E52534B51524A53544C57585058595158595156574F595A525B5C545E5F5761625A62635B 61625A5F60585D5E5655564E4F50484D4E4655564E62635B68696164655D5C5D5561625A505149 4748404D4E4652534B4E4F474C4D455051495051495051494F50484F504850514952534B54554D 55564E5A5B535A5B5358595154554D51524A53544C595A525E5F5758595155564E53544C53544C 54554D53544C4E4F474A4B433A3B3351524A5051494748404F504851524A4B4C444F5048505149 4E4F474C4D454B4C444D4E4651524A56574F5A5B5361625A595A5252534B54554D5A5B535B5C54 54554D4C4D454A4B4351524A57585057585053544C52534B5758505C5D555D5E565B5C545A5B53 595A52595A525B5C545D5E565F6058595A525B5C545C5D555A5B53585951595A525C5D555F6058 6061596061595F60585F60585E5F575E5F575E5F575D5E5655564E595A525D5E565F605862635B 66675F67686066675F73746C5D5E565A5B5371726A8081797778706D6E666E7065737067737165 737165727064727064737165737165737165747266706E626B695D69675B68665A666458615F53 5B5B4F54544857594C5D5F526264576365586062555B5D5057594C626457636558636558606255 5D5F525C5E515E60536062555D5E565D5E565D5E565D5E565D5E565D5E565D5E565D5E565A5B53 57585055564E56574F5A5B535F605862635B64665B67695E66685B65675A636558626457626457 62645762645765675A6466596264576062555F61545F61546062556163565F5D51615F53626054 6361556260545F5D515C5A4E59574B6462565C5A4E5654485B594D6664586C6A5E676559605E52 615F53605E525F5D515E5C505D5B4F5D5B4F5D5B4F5D5B4F5F5D515E5C505D5B4F5B594D5B594D 5B594D5B594D5A5A4E56564A585A4D5B5D50595B4E56584B55574A57594C5A5C4F56584B55574A 55574A57594C5A5C4F585A4D5355484E50435C5A4E5452465452465C5A4E5C5A4E545246545246 5C5A4E54524656544859574B5B594D5C5A4E5B594D5A584C57574B56564A56584B56584B57594C 56584B5456495254475052454B4D404E504352544755574A56584B5456495153464E50435F6058 60615961625A62635B61625A5F60585C5D555A5B5368696165665E62635B60615960615962635B 66675F68696163645C595A524F5048505149595A5261625A62635B5F605861625A6061595F6058 5F60585F60585D5E56595A5257594E5A5C4E585B4A5D5F516669586264565558475355475A5D4C 5B5D4F5C5F4E5D5F515D604F5C5E505E6150626456656857636557636655636557626554626456 626554626456626554636557636655636557636655646658646756646658646658606255626457 64665966685B67695C65675A6365586264576062555E60535C5E51595B4E57594C56584B56584B 57594C6360595B585159564F5F5C55524F482F2C252A272048453E4C504F4F53525155544F5352 4B4F4E484C4B494D4C4B4F4E4B4F4E494D4C484C4B4B4F4E4F53525155544F53524B514F535957 4D5653414A4737403D3C45424B5451515A574E57545B646158615E525B584D565349524F47504D 48514E48514E505956535C595D6663656E6B5D6663505956545D5A646D6A565F5C555E5B545D5A 535C59545D5A555E5B57605D58615E59625F525B584C55524D5653535C59565F5C545D5A505956 4A5350444D4A414A4749524F58615E646D6A656E6B626B68676B6A686C6B696D6C6A6E6D6C706F 6D71706E72716F73726C706F6C706F6D71706E72716E72716F73727074736F75736D73716A7370 6C7572707976757E7B767F7C737C797079764E5754363F3C232C2927302D38413E3E4744353E3B 2A3330383C3B383C3B373B3A373B3A363A39353938343837343837363A39363A39373B3A383C3B 393D3C393D3C3A3E3D3A3F3B323733393E383B403A313630252A24252A24353A34464B45585D57 585D575B605A5D625C5C615B575C56585D575B605A575C56595E58555A54484D473C413B3C413B 4A4F49595E58545953545953545953535852525751525751545953565B55525751555A54595E58 4C514B363B35373C36474C464D524C5257515358525156504D524C494E48484D474C514B50554F 454A44444943434842444943474C46494E484B504A4B504A50554F4D524C494E48474C46464B45 494E484C514B4F544E4D524C3439333136303E433D3B403A323731383D374247414F544E525751 565B55565B555358524D524C484D47454A443E433D40453F424741444943454A44444943434842 4247414D524C464B45454A444348423D423C4247414C514B4D524C40453F40453F414640414640 4146403F443E3E433D3D423C3D423C2F342E2B302A343933353A342E332D333832414640474843 494A45494A4547484343443F3F403B3E3F3A3E3F3A3E3F3A3A3B363839343435303B3C37555651 6465605A5B5554554F56574F5A5B535F605863645C64655D61625A5E5F5753544C56574F5A5B53 5D5E565D5E565B5C5458595156574F57585255565054554F595A545E5F595F605A595A5453544E 5C5D5750514B4A4B4550514B57585255565052534D52534D51524A5051494E4F474D4E464E4F47 50514952534B54554D4E4F4750514951524A4F50484C4D454B4C444F504853544C4C4D45494A42 46473F4748404B4C444D4E464C4D454A4B433E3F3751524A55564E51524A55564E55564E505149 53544C54554D53544C52534B53544C5758505C5D5561625A64655D65665E5E5F57595A525A5B53 5F60586061595A5B5354554D51524A56574F5B5C545D5E565B5C5457585053544C51524A606159 6061595F60585E5F575E5F575E5F575E5F575E5F575B5C545D5E565F60585F60585D5E565B5C54 5A5B535B5C545B5C545B5C545B5C545C5D555C5D555D5E565D5E565E5F5753544C5D5E56606159 5B5C546061596E6F6773746C6D6E6676776F5D5E5651524A60615970716970716970716975776C 757269737165716F63706E62706E62716F637371657573676D6B5F6A685C68665A6A685C6D6B5F 6F6D616D6B5F68685C5E5E525A5C4F56584B53554854564957594C5B5D505E60535A5C4F5B5D50 5D5F525C5E515A5C4F57594C57594C57594C5B5C545B5C545B5C545B5C545B5C545B5C545B5C54 5B5C545758505A5B535A5B5356574F52534B54554D5B5C5463655A696B60686A5D67695C66685B 65675A64665963655863655867695C65675A6466596264576163566163566264576365585F5D51 615F53636155636155615F535D5B4F57554954524658564A58564A5B594D6361556B695D6D6B5F 676559615F53676559666458656357646256636155636155636155636155605E525E5C505A584C 58564A57554958564A5B594D5A5A4E55554957594C595B4E585A4D55574A54564956584B595B4E 54564954564956584B5A5C4F5E60535D5F52585A4D5355485F5D515A584C5A584C5F5D515F5D51 5A584C5A584C5F5D5154524655534757554959574B5A584C59574B58564A55554958584C57594C 57594C56584B5456495153464E50434C4E4156584B595B4E5E605363655866685B67695C66685B 65675A62635B63645C64655D64655D64655D62635B6061595F6058686961686961686961676860 67686067686067686068696164655D5A5B535051494E4F4754554D5B5C545D5E565B5C5465665E 65665E63645C61625A5E5F575C5D555D5E565F61565F61535D604D5E61506265525E6150565946 585B4A6063505457465B5E4B5F62515B5E4B535645515441585B4A616451606352606350606352 6063505F62515F624F5F62515E614E5F62515F624F606352626552636655646754656857666958 5D5F515F615462645764665966685B67695C66685B66685B6365586163565D5F52595B4E56584B 5456495355485355485A575055524B55524B5D5A5354514A312E2725221B3A3730565A59585C5B 595D5C595D5C575B5A535756515554505453555958545857555958565A59595D5C5B5F5E5B5F5E 5A605E595F5D565F5C4E575447504D4D565359625F5D666357605D57605D525B584B545147504D 49524F515A575A6360616A6757605D5D6663646D6A626B6859625F535C59555E5B5C656259625F 59625F59625F5A63605B64615D66635E67645F6865666F6C57605D48514E49524F545D5A5A6360 525B5847504D3A43403D4643464F4C545D5A616A67666F6C626B685C6562616564626665636766 646867656968666A69666A69676B6A6E72716E72716F73726F7372707473717574727675717775 747A786E77746E7774757E7B7B8481747D7A6069664E57542C3532262F2C29322F353E3B3A4340 343D3A2F3835303936373B3A373B3A373B3A363A39353938343837343837333736353938363A39 363A39373B3A383C3B393D3C393D3C393E3A343935373C36373C363136302E332D373C364C514B 5D625C616660575C56535852595E585B605A575C56575C565E635D60655F5E635D585D574D524C 434842414640474C464E534D545953555A5454595351565050554F5459535C615B636862575C56 5358524F544E464B454247415156505F645E595E5860655F5E635D595E5850554F494E48464B45 494E484D524C494E4844494340453F40453F444943484D474A4F49494E484F544E4D524C4B504A 494E484A4F494C514B4F544E515650313630292E283A3F39474C463A3F39383D37494E484D524C 4D524C50554F5358525257514D524C484D47474C46484D47494E484A4F494B504A4A4F49484D47 44494340453F3D423C474C463D423C464B454B504A3F443E4348424A4F4940453F353A34373C36 3B403A3D423C3C413B393E38353A343237313C413B343933353A343E433D3F443E383D37393E38 4247413E3F3A3E3F3A3E3F3A3D3E393C3D383A3B36393A3538393440413C3C3D383E3F3A3C3D38 3C3D384C4D4857585351524D51524C54554D5859515C5D555E5F575E5F575C5D555A5B535D5E56 5D5E565D5E565B5C5458595154554D51524A4E4F47474842484943494A444A4B454A4B45464741 41423C3D3E3847484240413B3D3E3842433D494A444B4C4647484243443E4C4D454B4C44494A42 46473F44453D42433B4041394041394748404E4F4756574F58595155564E5051494D4E464C4D45 54554D51524A50514951524A55564E57585055564E52534B45463E54554D60615966675F686961 66675F62635B63645C6A6B63696A6267686065665E64655D65665E67686068696167686063645C 5F605860615963645C64655D6061595C5D5561625A62635B64655D64655D61625A5859514B4C44 43443C64655D61625A5D5E565A5B53595A525B5C545E5F5761625A5C5D555E5F5760615961625A 5F60585C5D5558595156574F575850575850585951595A525B5C545C5D555D5E565D5E5661625A 64655D62635B5C5D555E5F5766675F696A6267686067686050514942433B4D4E465F6058696A62 71726A787A6F737067727064716F63706E62706E62716F63727064737165706E626D6B5F6B695D 6D6B5F706E62727064706E626B6B5F66665A5D5F52515346484A3D45473A4A4C3F525447595B4E 54564957594C5A5C4F5D5F525D5F525C5E515A5C4F595B4E595A52595A52595A52595A52595A52 595A52595A52595A525A5B53595A5258595156574F53544C53544C55564E585A4F64665B65675A 66685B66685B67695C66685B66685B65675A686A5D67695C65675A636558626457636558636558 646659666458666458666458646256615F535E5C505A584C58564A5E5C505D5B4F5D5B4F5E5C50 5E5C505E5C505C5A4E5A584C5D5B4F5B594D59574B57554957554958564A5A584C5C5A4E545246 535145514F43514F4353514558564A5D5B4F5E5E5257574B595B4E5B5D505A5C4F57594C55574A 585A4D5B5D5056584B55574A55574A595B4E5E60536062555E60535A5C4F626054605E52605E52 626054626054605E52605E526260545D5B4F5D5B4F5E5C505E5C505E5C505E5C505E5C505C5C50 5A5A4E5A5C4F5C5E515D5F525D5F525D5F525B5D505B5D505A5C4F5D5F5261635665675A686A5D 696B5E6A6C5F6A6C5F65665E65665E66675F66675F66675F65665E64655D64655D5E5F575F6058 61625A62635B62635B5F60585D5E565B5C545E5F575B5C54585951595A525C5D555C5D55585951 53544C65665E66675F64655D5F60585A5B535A5B535D5E566264596164536164516164515F624F 5B5E4B595C495C5F4C616451555845585B485A5D4A5659465053404E513E525542575A475A5D4A 5A5D4A5B5E4B5C5F4C5D604D5E614E5F624F5F624F575A47585B48595C495B5E4B5D604D5F624F 6164516265545B5D4F5B5D505D5F525E60535F61545F6154606255606255545649535548525447 52544753554854564956584B57594C58554E55524B54514A5B585154514A35322B26231C333029 5A5E5D5A5E5D595D5C595D5C595D5C585C5B565A59545857595D5C595D5C585C5B575B5A575B5A 595D5C5D61605F65634E5452535C59555E5B525B58555E5B5B646157605D4E5754464F4C454E4B 434C49454E4B4A5350525B585B6461616A6767706D68716E666F6C636C69626B68636C695F6865 5A636058615E59625F5A63605B64615D66635E67645E67645E6764545D5A535C59535C59565F5C 565F5C4F5855434C4939423F49524F545D5A626B686A73706A737068716E67706D68716E696D6C 696D6C696D6C6A6E6D6A6E6D6B6F6E6B6F6E6C706F6D71706D71706E72716E72716F7372707473 717574707674717775747D7A7A83807A83806F787559625F414A473039362E37342F3835343D3A 38413E313A3729322F313A37404946373B3A363A39363A39353938343837333736333736333736 353938353938353938363A39373B3A383C3B383C3B393E3A3A3F3B3439332E332D30352F3A3F39 484D47555A545C615B565B554A4F49454A444D524C545953545953565B555C615B676C6660655F 575C565358525459535459535156504E534D525751575C565E635D5F645E5C615B575C56545953 545953616660515650454A444146404A4F49616660676C66585D576166605F645E5A5F59525751 4B504A484D474C514B50554F555A5450554F4B504A4B504A4F544E5257515459535358524E534D 4E534D4E534D4D524C4D524C4E534D4E534D4E534D2F342E4146405E635D5C615B434842474C46 595E58565B55555A54565B55555A545156504D524C4C514B4F544E525751484D47474C46464B45 4449434247413F443E3D423C3C413B4247413A3F39464B454C514B414640424741444943363B35 2E332D323731383D373C413B3E433D3C413B383D37353A343E433D3B403A3D423C424741424741 3C413B3A3F393C413B343530363732393A353C3D383D3E393C3D383B3C373A3B3643443F3F403B 4748434B4C473D3E39393A354445404C4D48484943484943484943484943474842474842474842 48494346474144453F40413B3B3C3638393336373135363035363040413C43443F474843494A45 494A4547484346474246474246474243443F40413C42433E4A4B464F504B4C4D4844453F62635B 64655D66675F67686065665E62635B5D5E565B5C545758505E5F5765665E68696165665E606159 5D5E565C5D555B5C54595A52595A525A5B535C5D555A5B5355564E4F504846473F4D4E46606159 70716972736B7071696E6F676B6C6473746C71726A6F70686C6D65696A6267686066675F66675F 68696166675F64655D65665E66675F66675F64655D62635B68696166675F66675F67686065665E 5D5E564E4F4743443C5D5E565C5D555A5B53595A52595A52595A525B5C545C5D555C5D555D5E56 5F60586061595F60585C5D5558595155564E56574F575850585951595A525A5B535B5C545C5D55 5C5D5563645C5B5C54575850595A5257585053544C54554D5B5C545859514E4F474D4E46595A52 6768606C6D656C6D656C6E636F6C63706E62716F63727064727064716F63706E626F6D61757367 7270646F6D616F6D61716F63716F636E6C6069695D69695D65675A5F6154595B4E5355484F5144 4C4E414A4C3F515346545649595B4E5E6053626457636558626457616356595A52595A52595A52 595A52595A52595A52595A52595A525F605858595153544C56574F5C5D555C5D5553544C4A4C41 5B5D525D5F5260625563655865675A65675A65675A64665966685B646659626457616356606255 6062556163566163566462566260545E5C505A584C5755495654485553475553475A584C5A584C 58564A5553475250444F4D414F4D414F4D414A483C48463A46443844423645433749473B4D4B3F 504E4256544856544855534755534758564A5C5A4E605E526060545A5A4E5C5E515F61545D5F52 5A5C4F595B4E5B5D505E6053595B4E56584B54564956584B5B5D50606255616356606255636155 656357656357636155636155656357656357636155605E525F5D515F5D515E5C505E5C505E5C50 5E5C505D5D515E5E525E60535F61546163566163566062555F61545E605357594C585A4D5A5C4F 5C5E515D5F525D5F525D5F525D5F5266675F66675F65665E65665E65665E66675F676860676860 60615962635B64655D66675F64655D61625A5D5E565A5B535E5F575F605860615963645C63645C 606159595A5253544C62635B62635B6061595B5C5457585056574F5A5B535E60555457465E614E 676A57686B586467545F624F595C495558455D604D575A47515441515441545744555845525542 4E513E535643545744575A47595C495C5F4C5F624F616451636653585B48595C495A5D4A5C5F4C 5F624F6063506265526366556163556163566062555E60535D5F525D5F525D5F525D5F52515346 51534652544753554855574A595B4E5C5E515E60535A575059564F56534C59564F53504939362F 2A272034312A5458575155544E52514E5251525655545857525655505453515554515554505453 4C504F494D4C4A4E4D505453545A584A504E545D5A5B646158615E555E5B555E5B50595647504D 464F4C4A5350515A5757605D5B64615B646159625F57605D6069665B6461555E5B545D5A59625F 5C656257605D4E5754565F5C57605D59625F5A63605B64615A636059625F58615E4B5451535C59 59625F525B58454E4B3F4845444D4A4D5653626B686A7370717A776F787567706D646D6A6A7370 717A776C706F6C706F6C706F6C706F6D71706D71706D71706D71706C706F6C706F6D71706D7170 6E72716F73727074736F7573676D6B737C797B84816E7774515A57363F3C2A33302A3330313A37 353E3B3B44413E474439423F323B38313A37363F3C363A39363A39353938343837333736333736 323635323635343837343837353938353938363A39373B3A383C3B383D393D423E3338322C312B 3136304146404C514B4D524C494E48565B5550554F4D524C5459535C615B60655F626761636862 5F645E595E58535852555A545D625C62676160655F5C615B60655F60655F5E635D5A5F59545953 4F544E4B504A4A4F496267614D524C414640414640494E48585D575A5F594A4F49545953555A54 5459535156504E534D4F544E535852585D575156504F544E4D524C4D524C4F544E50554F515650 50554F4C514B4E534D5156505358525156504D524C484D47454A442F342E4E534D666B655A5F59 464B454D524C565B554F544E5156504E534D4A4F49464B45444943454A444A4F494E534D3C413B 3B403A393E38383D37393E383B403A3E433D3F443E474C46424741464B45484D47434842414640 3E433D353A34313630353A343B403A41464043484243484241464040453F3D423C3C413B3A3F39 3A3F39383D37373C36363B35363B35353631393A353E3F3A41423D42433E42433E43443F444540 4546413F403B494A454E4F4A3B3C3730312C3C3D384B4C474E4F494C4D47494A4445464042433D 44453F4849434B4C4657585254554F50514B4D4E484C4D474E4F4951524C53544E545550555651 56575255565154555054555055565156575256575255565150514C4D4E495556515E5F5A5C5D58 53544F4C4D4751524A5859515F605862635B61625A5E5F575C5D5561625A62635B63645C61625A 5E5F575E5F5761625A65665E5B5C545A5B53595A525A5B535A5B5356574F4F504848494145463E 41423A53544C696A626C6D656C6D656C6D6567686066675F66675F66675F66675F66675F65665E 65665E65665E67686067686067686067686067686067686066675F66675F64655D62635B62635B 65665E68696165665E5C5D5554554D4E4F4753544C595A525E5F575F60585B5C5457585053544C 5B5C545A5B535A5B535B5C545C5D555B5C5458595156574F595A52595A52595A525A5B535A5B53 5B5C545B5C545B5C5461625A57585055564E5D5E565C5D5553544C53544C5C5D5567686064655D 63645C66675F6B6C646E6F676E6F676D6F646D6A616F6D61716F63727064727064716F636F6D61 6D6B5F69675B68665A68665A6D6B5F74726678766A79776B75756979796D7375686C6E61646659 5D5F52585A4D55574A545649484A3D494B3E4C4E4151534656584B595B4E595B4E595B4E5B5C54 5B5C545B5C545B5C545B5C545B5C545B5C545B5C5461625A595A5253544C58595162635B62635B 55564E47493E55574C57594C5B5D505E60535F61545E60535C5E515A5C4F5C5E515B5D50595B4E 57594C57594C57594C57594C585A4D5654485351454E4C4049473B47453947453949473B4B493D 4745394A483C4E4C40504E424E4C404B493D49473B48463A49473B49473B49473B4B493D4E4C40 52504456544858564A636155636155636155636155626054615F53605E525E5E525C5C505E6053 6062555F61545C5E515B5D505D5F526062555C5E5157594C535548535548585A4D5E6053616356 616356615F53676559676559615F53615F53676559676559615F535D5B4F5C5A4E5A584C58564A 58564A58564A59574B58584C5F5F535E60535E60535D5F525B5D50585A4D55574A5355485E6053 5E60535D5F525D5F525C5E515C5E515C5E515C5E5165665E64655D63645C62635B63645C65665E 67686068696162635B64655D65665E66675F64655D61625A5D5E565B5C5464655D64655D64655D 64655D62635B61625A5F60585E5F575E5F575E5F575C5D55595A5256574F55564E56574F585A4F 575A496164516568555F624F5B5E4B5D604D5C5F4C585B48616451585B48505340515441585B48 5B5E4B5659464F523F535643545744565946595C495C5F4C5F624F6164516265525F624F606350 606350626552636653646754656855666958686A5C67695C6466596163566062555F61545F6154 6062555D5F525C5E515B5D505A5C4F5A5C4F5B5D505D5F525E60535B58515D5A535A575058554E 514E473B38312E2B2437342D4E52514A4E4D474B4A494D4C4F53525357565256554E52514F5352 5155545155544D5150474B4A454948494D4C4D53515157555A63605F6865565F5C4D56534D5653 4D56534A53504F5855555E5B5D6663646D6A666F6C636C695D666359625F5F68655B646158615E 59625F5C65625D66635C65625B64614E5754505956525B58535C59525B585059564E57544C5552 565F5C515A574A5350424B484049464A53505C656269726F6C75726C75726A737067706D646D6A 636C69666F6C68716E686C6B686C6B686C6B686C6B686C6B686C6B686C6B676B6A6D71706D7170 6E72716F7372707473707473717574707674696F6D656E6B5B646149524F343D3A29322F2B3431 30393628312E323B383C45423E47443C454237403D30393629322F353938353938343837343837 333736323635313534313534333736333736343837353938363A39363A39373B3A373C38373C38 343933353A343F443E4C514B5257514E534D484D47626761636862636862656A646B706A70756F 6F746E696E68515650575C565F645E636862636862636862646963666B65676C66616660585D57 5257514F544E50554F52575153585250554F454A44474C464C514B484D47494E484D524C4A4F49 4C514B4F544E52575152575150554F50554F545953575C56474C46494E484B504A4B504A4A4F49 484D47484D47484D474B504A4F544E555A54575C565459534B504A40453F393E382D322C424741 474C463F443E434842474C464348423E433D40453F3C413B373C36343933353A34373C363A3F39 3B403A40453F3E433D3C413B3A3F393B403A3E433D4146404449434A4F494E534D4B504A4A4F49 4D524C454A44383D37353A34333832363B353A3F393E433D41464041464041464040453F3A3F39 3B403A3B403A393E38383D37393E38383D37363B353839343C3D3840413C3F403B3C3D383C3D38 40413C45464143443F3E3F3A41423D41423D3738333A3B364647424B4C47595A54585953555650 51524C4F504A52534D595A545F605A5C5D575A5B5556575153544E52534D53544E555650575852 5657525353514F4F4D4B4B494A4A484B4B494D4D4B4F4F4D52525051514F494947424240484846 5555535555534B4C474C4D4751524A5859515F605864655D66675F65665E64655D5B5C545B5C54 595A5256574F52534B54554D5A5B535F605864655D62635B6061596061596061595E5F57585951 53544C51524A3F40384A4B4360615962635B64655D68696161625A60615961625A63645C64655D 66675F66675F66675F66675F65665E66675F68696167686066675F65665E67686068696165665E 63645C62635B63645C67686067686064655D6061594849414E4F475758505E5F576061595E5F57 58595154554D595A5256574F54554D54554D575850595A52595A525859515C5D555C5D555C5D55 5B5C545B5C545A5B535A5B535A5B535F60585D5E565E5F575F60585E5F575A5B53585951585951 6D6E666F70686E6F676A6B63696A626D6E6671726A73756A6F6C636F6D616F6D61706E62706E62 6F6D616F6D616F6D616462566361556563576B695D7472667A786C7C7A6E79796D7B7B6F747669 6B6D606365585D5F525B5D505C5E515D5F524E50434C4E414A4C3F4C4E41505245535548545649 5355485D5E565D5E565D5E565D5E565D5E565D5E565D5E565D5E565F60585C5D555B5C545D5E56 6061595F605858595151534855574C57594C595B4E595B4E57594C5254474D4F424A4C3F4F5144 4E50434C4E414A4C3F494B3E494B3E4A4C3F4B4D404B493D49473B454337424034413F33424034 4442364543373F3D3142403446443849473B4A483C49473B47453945433748463A4C4A3E525044 59574B5E5C50615F53615F53615F535E5C50605E52636155656357646256615F535D5B4F59594D 5B5B4F5D5F525F61545E60535B5D50595B4E5C5E515F61545B5D5057594C535548535548585A4D 5C5E515D5F525D5F525F5D516765596765595F5D515F5D516765596765595F5D51615F53605E52 5D5B4F5A584C59574B5A584C5B594D5B5B4F5B5B4F5A5C4F5B5D505B5D505A5C4F585A4D56584B 55574A5D5F525C5E515C5E515B5D505B5D505B5D505C5E515D5F5263645C61625A6061595F6058 60615963645C66675F67686063645C63645C63645C62635B6061595E5F575C5D555A5B5363645C 64655D65665E64655D62635B61625A62635B63645C5D5E565C5D555B5C545A5B535A5B53585951 55564E5254495F625164675260634E51543F4E513C585B4660634E5F624D5F624D5C5F4A595C47 585B465A5D485B5E495B5E495A5D485A5D485A5D485A5D485B5E495C5F4A5C5F4A5D604B5D604B 5D604B5D604B5D604B5D604B5E614C5E614C5E614C5E614E6062545E60535B5D505A5C4F595B4E 5A5C4F5C5E515E60535C5E515A5C4F585A4D56584B55574A55574A55574A56584B58554E5E5B54 5C595257544D4E4B443A37302E2B2436332C4E52514A4E4D484C4B4C504F545857585C5B565A59 525655565A595A5E5D5D6160595D5C5155544C504F4E52515256555359575B64615C62604A5350 404644404946494F4D4A53504F5553505956575D5B5A63605F65635E67645F65635D66635A6360 59625F5B64615D66635B646158615E5C6562656E6B5D66635E6764606966616A675F68655C6562 59625F565F5C5A636048514E39423F3F4845565F5C6A73706E777469726F70797669726F656E6B 67706D6C75726D7673666F6C5F68656A6E6D696D6C696D6C696D6C696D6C686C6B686C6B686C6B 6F73726F7372707473717574717574727675737776737776747A78565F5C363C3A232C29292F2D 313A37373D3B343D3A292F2D343D3A3B413F2F38352B312F2E3734363C3A373D3B353938353A36 343837333834323635323733313534313632333736333834343837343935353938363B37373B3A 373C382F342E363B354247414F544E5A5F595D625C5B605A585D574C514B535852545953515650 5459535A5F59555A544B504A323731474C465C615B5F645E545953494E48494E484E534D40453F 40453F414640464B454A4F494A4F49454A444146403B403A3D423C4F544E595E584B504A424741 4C514B565B554D524C51565054595353585250554F4D524C4D524C4E534D484D474D524C525751 5358524F544E4C514B4B504A4B504A4A4F494F544E575C565A5F59555A54494E483B403A323731 515650545953474C46464B455B605A5A5F59494E48464B4550554F4C514B474C46464B45494E48 4B504A4A4F49494E485156504F544E4B504A474C46454A44444943454A44464B45484D47555A54 5257515156505A5F594B504A333832323731313630323731343933363B35383D37383D37383D37 383D37363B353C413B4247414348424348424348423F443E383D37353732393B363B3C37353732 30312C2E302B3637323D3F3A41423D3B3D3838393431332E33342F4749445455504A4B46595A54 58595357585254554F54554F595A5461625C68696363645E61625C5D5E5858595354554F51524C 4F504A4E4F4A50514C4C4C4A4848464646444949474F4F4D555553595957535351525250484846 3D3D3B434341535351545452494A4551524C53544C5859535C5D555F605A6061595F605A5F6058 5758525A5B535C5D575B5C5457585256574F595A545C5D555D5E56595A5256574F55564E575850 57585054554D51524A61625A46473F4A4B435D5E565E5F5762635B68696161625A686961696A62 6A6B636B6C646B6C646A6B6368696167686063645C66675F68696167686065665E64655D66675F 6869616D6E666A6B6365665E63645C64655D64655D63645C61625A4C4D454F504854554D595A52 5D5E565E5F575D5E565D5E5658595154554D50514950514954554D5859515A5B535A5B535F6058 5F60585E5F575D5E565C5D555A5B535A5B53595A5256574F5E5F575F605856574F52534B54554D 4F504844453D54554D62635B70716974756D72736B7071696D6E66696A626F6F656E6E626E6B62 6B6B5F6D6A616C6C60706D646F6F63726F666D6D616D6A616B6B5F706D646F6F636F6C636A6A5E 61635864665967695E686A5D64665B5D5F5255574C4F514467695E6264575D5F545B5D505D5F54 6062556062575F61565F60585F60585F60585F60585F60585F60585F60585F60585C5D55606159 63645C61625A5C5D55595A525A5B535D5F5457594E585A4D585A4D56584B515346494B3E424437 3D3F3245473A4446394244374042353F41343F413440423541433647473B47473B47443B444438 46433A44443847443B45453946433A43433743403740403443403742423645423943433739362D 3E3E324C49405555495D5A515C5C505B584F57574B4B483F4E4E4257544B5B5B4F5F5C535C5C50 5A574E555549585A4D5B5D505D5F525C5E51585A4D57594C595B4E5C5E51595B4E56584B545649 55574A595B4E5B5D505A5C4F585A4D5D5B4F6664586664585D5B4F5D5B4F6664586664585D5B4F 6B695D69675B656357626054615F5362605464625663635756564A57594C5A5C4F5E6053606255 62645763655863655864665963655863655863655864665966685B686A5D696B5E61625A606159 5E5F575D5E565E5F5761625A64655D6768606A6B63696A6268696166675F64655D62635B61625A 6061595C5D5561625A66675F68696165665E62635B61625A6061595D5E565B5C545B5C545C5D55 5E5F575B5C5455564E505247555749606350626554575A475356455A5D4A5C5F4E5558455A5D4C 5F624F6366555F624F595C4B575A475D604F6568556164516063505F624F5D604D5B5E4B595C49 585B48575A475356435356435356435255425255425255425154415154434F51444E50434D4F44 4C4E414D4F4451534654564B57594C4E50454D4F424B4D424B4D404B4D424C4E414D4F444E5045 52524A5B5B535D5A5354544C4D4A4336362E2D2A2332322A4D51504D51504C504F4D5150515554 565A595B5F5E5E62616064635A5E5D545857535756575B5A5C605F5F63625F63625357564B514F 464A49484E4C515554565C5A575B5A535957595D5C5E64626165645E6462626665676D6B656968 595F5D545D5A58615E5C65625E67645D66635D66635E67645F6865636C695D666357605D57605D 5D66636069665F68655B646140494648514E57605D666F6C707976727B786E777469726F78817E 727B786D76736D7673717A77717A776C7572666F6C6C706F696D6C666A69676B6A696D6C696D6C 666A69636766616564646867676B6A686C6B666A69656968666A69686C6B383C3B3238362E3231 2C32302E32312D33312C302F282E2C2A2E2D292F2D2C302F2D3331303433303634333736343837 2E332F2F342E3136323237313136322F342E2C312D2A2F292A2F2B272C26252A26242923252A26 252A24232824212620252A243A3F394C514B4F544E4C514B4C514B484D474146404146404B504A 53585250554F4449433A3F39383D373A3F394E534D50554F4E534D484D474247414247414A4F49 5156504B504A40453F3B403A3F443E40453F383D373136302E332D4E534D616660676C66595E58 5358525E635D656A645F645E6A6F69616660565B554F544E4F544E525751545953555A544F544E 535852585D575B605A5B605A585D5753585250554F54595354595350554F595E585B605A3C413B 2B302A40453F666B655F645E585D57575C565A5F59595E585156504A4F49414640494E48515650 5459535257514F544E4E534D4F544E454A44494E484C514B494E48434842414640454A444A4F49 4B504A535852666B655A5F59535852414640252A244348422F342E3A3F393D423C373C36383D37 40453F3F443E3439333D423C2C312B2B302A3E433D464B45393E38313630353A34383D373A3F39 3D3F3A383D3735373230352F333530333832393B36323731383A35363B3532342F373C36464843 484A4557585355565152534E51524D53544F5758535C5D5860615C4A4B464C4D484F504B51524D 51524D4E4F4A4A4B4648494443443F43443F4647424B4C474F504B50514C4B4C4747484351524D 4C4D4846474243443F4445404748434A4B464B4C4753544F4647414F504B5758524F504B555650 5C5D584D4E4852534E4B4C464E4F4A5B5C565E5F5A57585257585361625C575852575852575852 57585256575154554F51524C50514B595A5455565034352F3839336A6B656F706A595A54666761 64655D64655D64655D64655D64655D64655D64655D64655D5B5C545C5D555E5F5760615963645C 65665E67686068696160615961625A63645C64655D64655D64655D62635B62635B62635B595A52 51524A4F504854554D57585055564E51524A55564E54554D53544C52534B52534B53544C54554D 55564E5E5F575C5D555B5C54595A5257585055564E54554D53544C4E4F4751524A55564E595A52 5A5B5358595154554D52534B3E3F373E3F3745463E5859516C6D6572736B6869615B5C5463645C 62645962625A5F61565F5F575C5E535C5C545A5C5164645C64665B65655D64665B62625A5D5F54 59595155574C61625A6062575F60585E60555C5D555B5D525A5B535A5C5153544C585A4F606159 66685D67686063655A5D5E56595A524E4F4752534B575850595A525A5B535C5D5560615965665E 5C5D5560615963645C62635B5D5E5658595156574F55574C54564B55574A595B4E5E6053606255 5B5D50515346494B3E42443747493C494B3E4446393C3E313A3C2F414336494B3E424439484A3F 46463E3B3D323E3E3645473C42423A34362B3E3E3641433845453D44463B43433B42443946463E 494B4042423A3E403542423A484A3F4A4A42484A3F5151495C5E5354544C56584D58585053554A 4D4D454B4D4253534B585A4F5F61545A5C4F55574A54564956584B57594C57594C55574A4A4C3F 4C4E414C4E415052455D5F52696B5E63655855574A6260545C5A4E5553474F4D414E4C40525044 59574B5D5B4F636155636155626054605E525F5D515D5B4F5C5A4E59594D69695D65675A616356 5D5F525A5C4F595B4E5A5C4F5A5C4F595B4E5C5E516062556264576264575E6053585A4D55574A 5F605860615961625A62635B62635B61625A6061595F60585C5D555D5E565E5F575F60585F6058 5E5F575D5E565C5D5562635B5D5E565A5B535C5D5561625A64655D6061595B5C5463645C62635B 5F605858595152534B50514955564E5A5B535C5E535A5C4F57594E55574A54564B56584B585A4F 5A5C4F5C5E53595B4E55574C52544751534852544754564B56584B5355475355475153454E5042 4C4E404A4C3E484A3C47493B4E50424E50424E50424E50424D4F414D4F414D4F414D4F424C4E43 4B4D424E4F47585A4F63645C696B6067686062645956574F57594E595A525A5C51595A5256584D 52534B4F50485E5F575E5F575A5A5254554D55554D5051493D3D3524251D585C5B575B5A555958 545857545857565A59595D5C5A5E5D5C605F5D61605D61605E62615D61605A5E5D545857505453 414544424645464A495054535B5F5E6165646064635C605F5A5E5D5E62615D6160595D5C5B5F5E 6165645F6362555B59555B59555E5B57605D58615E58615E5A63605C65625E6764515A574F5855 505956535C59555E5B505956464F4C3D46433B444149524F5A6360636C69636C69616A67616A67 646D6A5F68655A6360555E5B555E5B58615E58615E545D5A4F58555559585256554F53524F5352 5256555256554F53524C504F5C605F5458574D51504E52515256554F5352434746373B3A383C3B 3539383236353034333034333034333034332F33322C302F2C302F2E32312F3332313534333736 343837353A36313632333832363B35383D37363B353237312E332D2A2F29272C262B302A2D322C 272C2620251F2126202D322C393E38545953585D57575C5650554F4C514B50554F585D575C615B 5C615B5D625C5B605A525751494E48494E485257515C615B535852565B55575C565358524E534D 4E534D525751585D574A4F49434842444943464B453C413B2E332D363B35494E486368626A6F69 696E68616660616660696E68666B655B605A585D575257514D524C4E534D5358525B605A5F645E 60655F4E534D525751575C565B605A5D625C5D625C5A5F59585D57616660555A545257515D625C 5358523338322F342E4B504A5156504D524C4A4F494D524C535852575C56565B55545953575C56 5257514F544E50554F5459535459534F544E4A4F493E433D4449434B504A4D524C494E48464B45 484D474A4F49474C4653585260655F5D625C5459533A3F39282D2741464030352F373C36353A34 2C312B2D322C383D373B403A353A34373C36353A34383D373E433D3E433D363B35323731333832 323731343933373C36363B35353A34343933363B35393E3834393330352F353A34373C36323731 3A3F39494E484B504A53544F50514C4B4C474748434647424748434A4B464C4D484C4D484F504B 54555058595458595455565150514C4D4E49494A45484944484944494A454B4C474C4D484C4D48 4B4C474F504B4D4E494B4C47494A454A4B464B4C474C4D484D4E494B4C4743443F4D4E49565752 4F504B5556515A5B5650514C53544F4C4D484E4F4A585954595A5551524D50514C575853595A54 5A5B555B5C565C5D575C5D575B5C565A5B55595A5453544E5B5C5644453F3F403A63645E6C6D67 62635D71726C65665E65665E65665E65665E65665E65665E65665E65665E585951595A525B5C54 5E5F5761625A64655D676860686961696A62696A62696A6267686065665E62635B5F60585D5E56 5D5E5655564E4C4D45494A424C4D4551524A54554D55564E54554D53544C52534B51524A51524A 52534B53544C54554D53544C54554D53544C52534B4F50484E4F474D4E464E4F4745463E484941 4C4D454F50485051494E4F474B4C44494A424D4E463F403832332B3839314B4C445C5D5561625A 5F60585E5F575E5F575C5D555B5C54595A5258595156574F56574F56574F5859515A5B535B5C54 5B5C54595A5257585055564E5C5D555C5D555C5D555C5D555D5E565D5E565D5E565D5E5655564E 595A525E5F5763645C63645C61625A5D5E565A5B5356574F595A525B5C545A5B5356574F55564E 5758505A5B535C5D555E5F576061595F60585B5C54585951585951595B5057594E57594C595B4E 5C5E515F61545D5F5256584B4F514447493C46483B46483B47493C484A3D484A3D46483B444639 4748404B4C444849413E3F373E3F374748404748403F403842433B44453D46473F46473F44453D 44453D46473F48494148494144453D45463E494A4248494143443C494A4254554D56574F5B5C54 60615961625A5C5D5557585056574F56584D4D4F444A4C3F484A3D494B3E4F514456584B5B5D50 5C5E5153554855574A5355485355485D5F5266685B6062555254475E5C505E5C505E5C505D5B4F 5A584C575549535145514F4363615566645869675B6B695D6A685C6664586260545D5D51626256 5E60535B5D50585A4D595B4E5C5E516062556365585C5E515C5E515C5E515C5E515B5D505A5C4F 585A4D57594C5A5B535B5C545C5D555D5E565D5E565C5D555B5C545A5B53595A525A5B535C5D55 5D5E565D5E565C5D555A5B53595A525A5B5356574F54554D5758505C5D555F60585C5D55585951 55564E4E4F4747484046473F4B4C444F50484F50484D4E464D4E464B4C4448494146473F44453D 45463E46473F48494158595157585056574F56574F56574F575850575850585A4F595B50585A4D 585A4D57594C55574A5456495456495355484D4F424E50434F514451534653554855574A56584B 57594C58595156574F55564E595A525F60586061595B5C5456574F575850585951595A525A5B53 5A5B53595A525758505758505C5D555D5E56595A5255564E56574F53544C41423A2B2C245D6160 5B5F5E575B5A5357565054534F53524F5352505453535756565A59595D5C575B5A5256554A4E4D 444847404443464A49464A49474B4A494D4C4B4F4E4B4F4E484C4B454948474B4A494D4C464A49 3E42413F4342474B4A484C4B4147454147453D46433A434037403D37403D38413E39423F3B4441 343D3A363F3C3B4441414A47444D4A3E4744343D3A2B343137403D464F4C555E5B57605D4E5754 49524F4E5754555E5B57605D535C59505956505956515A57515A574E57544B54515054534C504F 4A4E4D4A4E4D4C504F4D51504A4E4D474B4A5A5E5D5256554C504F4D51505054534C504F3F4342 323635363A39363A39353938333736323635323635343837363A392F3332303433313534323635 343837353938363A39373C38353A36373C363B403A3C413B3A3F39353A342F342E2B302A2D322C 353A34383D3730352F262B252D322C4449435A5F59555A545257514F544E4E534D4C514B4B504A 50554F575C5660655F5C615B555A544A4F49454A44494E48565B55616660575C565B605A5E635D 5D625C5B605A595E585B605A5E635D4A4F49474C464B504A494E48373C362B302A424741666B65 676C666469635F645E5F645E656A64696E6860655F5358524D524C4B504A4B504A4F544E585D57 5F645E626761626761666B65666B656469636166605C615B565B5550554F4C514B666B65525751 555A545F645E494E4830352F3F443E5F645E53585250554F4D524C4C514B4F544E535852555A54 565B556B706A5D625C4F544E4D524C545953575C564F544E454A44393E384146404B504A50554F 50554F4D524C4B504A4A4F49444943555A54585D5760655F53585230352F2E332D3E433D363B35 393E38363B3530352F30352F383D373C413B393E38373C363E433D4146403C413B363B35343933 32373130352F2F342E313630343933373C36383D373A3F393E433D40453F343933313630363B35 383D373439333D423C4C514B4F544E4B4C47494A4545464141423D3F403B40413C41423D43443F 464742474843494A454B4C474C4D484D4E494D4E494D4E4955565154555051524D4D4E494B4C47 4D4E4951524D54555051524D51524D50514C4C4D4847484342433E40413C3F403B4A4B46484944 52534E58595453544F5657525C5D5856575243443F40413C46474251524D565752555651575853 5E5F5A565751575852595A545A5B555B5C565A5B55595A54595A544A4B455F605A52534D41423C 51524C5D5E585F605A696A645F60585F60585F60585F60585F60585F60585F60585F605863645C 63645C62635B62635B61625A61625A60615960615962635B62635B61625A6061595E5F575B5C54 5859515758505D5E5656574F4D4E464748404748404C4D4554554D595A5254554D53544C52534B 51524A51524A52534B53544C54554D4F504852534B54554D52534B4F50484E4F4750514952534B 575850595A525D5E565F60586061595F60585D5E565B5C54595A524C4D4540413944453D52534B 5F605862635B5E5F57595A5258595157585056574F54554D53544C51524A51524A4C4D454E4F47 51524A54554D56574F5758505758505758505758505758505859515A5B535C5D555D5E565F6058 5F6058585951595A525B5C545D5E565E5F575D5E565C5D555B5C54575850595A525B5C54585951 54554D52534B53544C56574F5C5D555D5E565C5D555B5C54595A52595A525B5C545D5F545A5C51 585A4D585A4D5A5C4F5E60535F61545C5E51585A4D55574A4C4E4145473A46483B4D4F42505245 4B4D4044463946473F4A4B434748403F40383D3E3643443C47484046473F42433B42433B42433B 41423A4041394041393F40384041394E4F4748494146473F46473F3F403835362E35362E3E3F37 4F504854554D5C5D5561625A61625A5B5C5454554D4E50454A4C41484A3D47493C494B3E4F5144 57594C5D5F526062555B5D505C5E51595B4E56584B5B5D506264575B5D504E504355534759574B 5F5D516361556260545E5C5058564A54524656544859574B5E5C506260546765596A685C6B695D 6A6A5E6060545C5E51585A4D55574A56584B5A5C4F6062556466595D5F525B5D5057594C545649 53554855574A57594C595B4E55564E55564E57585058595158595157585055564E55564E56574F 575850585951595A52595A5258595157585056574F53544C5051494F504851524A55564E575850 56574F53544C5859514D4E4643443C48494155564E5E5F575A5B5353544C51524A5051494D4E46 4A4B4347484046473F46473F47484052534B54554D55564E575850595A525A5B535A5B535B5D52 595B50595B4E595B4E595B4E595B4E595B4E595B4E595B4E4A4C3F4A4C3F4B4D404C4E414D4F42 4E50434F51444F51445C5D55595A52585951595A525B5C545A5B5356574F51524A5A5B53595A52 5859515859515859515A5B535B5C545C5D555A5B535C5D55595A5256574F595A52595A52494A42 36372F575B5A5357564D5150474B4A444847434746444847454948454948454948444847404443 3A3E3D383C3B393D3C3C403F4448474145443D41403B3F3E3D41404347464A4E4D4F53524C504F 4F53524A4E4D4246454347464E52515458575056544C5250434C493A4340343D3A323B38323B38 313A37313A3737403D3B4441414A4748514E4F5855535C59535C59535C5957605D5D6663616A67 5E676458615E565F5C59625F5E67645A636059625F58615E57605D57605D565F5C555E5B545D5A 585C5B5458575256555256555458575559585256554F53524F53525155545155544E5251474B4A 4145443E42413E4241323635343837353938343837313534313534353938393D3C323635333736 333736343837353938363A39373B3A383D39373C38383D373A3F393A3F39383D373338322F342E 2C312B3A3F393A3F39393E38373C363A3F39474C465A5F59696E684D524C484D474B504A555A54 575C56515650515650575C56454A44474C46484D474A4F494B504A4E534D535852565B55585D57 5A5F595C615B5C615B5C615B5C615B5C615B5D625C4C514B4A4F49474C4640453F373C363B403A 5358526D726C6368625F645E5E635D616660656A646368625D625C585D57545953525751525751 555A545A5F595B605A595E58565B555D625C5E635D60655F61666062676161666060655F5F645E 5F645E5358525C615B5B605A3E433D393E38565B556B706A6A6F69666B655F645E575C56525751 50554F4F544E4F544E6B706A60655F5358524F544E5257515459534F544E494E483E433D444943 4C514B5156505257514F544E4B504A484D47424741565B5552575160655F4F544E2B302A363B35 3C413B3F443E41464041464040453F40453F42474142474140453F454A4440453F3B403A393E38 373C3634393331363030352F343933363B35393E383B403A3E433D40453F434842454A443A3F39 353A34393E383A3F39353A343C413B4A4F494C514B43443F43443F41423D41423D42433E444540 46474248494445464143443F3F403B3D3E393F403B4546414B4C4750514C5A5B565A5B56585954 53544F4F504B4F504B53544F58595451524D54555055565150514C47484341423D41423D43443F 4F504B50514C56575257585353544F53544F585954595A5554555053544F52534E52534E4F504B 494A4546474246474250514B50514B51524C52534D51524C50514B4E4F494D4E4844453F595A54 53544E3C3D373F403A51524C55565050514B56574F56574F56574F56574F56574F56574F56574F 56574F5E5F575E5F575D5E565C5D555A5B53595A525859515859515C5D555D5E565F605861625A 63645C63645C63645C62635B64655D61625A5A5B5352534B4D4E464E4F4755564E5B5C54575850 56574F54554D53544C53544C54554D56574F57585056574F5A5B535C5D555B5C54585951575850 5A5B535E5F57585951595A525C5D555E5F575F60585E5F575D5E565C5D555D5E565A5B535A5B53 5D5E5663645C65665E62635B5E5F5757585057585056574F54554D52534B51524A5051494F5048 4F504850514952534B54554D575850585951595A525A5B53575850575850585951595A525A5B53 5A5B535B5C545C5D555A5B53595A52585951585951585951595A525A5B535B5C5451524A54554D 57585057585055564E55564E5859515B5C545C5D555B5C54595A52575850575850595A525D5E56 5F61565D5F545A5C4F56584B57594C5C5E515F61546062555F615465675A5A5C4F4C4E41444639 444639484A3D494B3E484A3D42433B45463E45463E4041393D3E363F403843443C46473F46473F 45463E43443C42433B42433B41423A3F40383F40383C3D35393A323D3E3643443C43443C3E3F37 43443C4D4E46484941494A424D4E4653544C585951595A5255564E50524757594E57594C56584B 56584B57594C585A4D595B4E595B4E5A5C4F5C5E51595B4E54564957594C5D5F52595B4E4E5043 5A584C5B594D5C5A4E5C5A4E5C5A4E5A584C59574B575549514F434F4D414D4B3F4E4C40535145 5B594D64625668685C6262565E60535A5C4F56584B55574A55574A57594C595B4E5B5D50585A4D 5456495052454F514451534655574A57594C52534B53544C54554D55564E55564E54554D53544C 52534B52534B52534B54554D55564E55564E54554D52534B52534B53544C52534B51524A505149 5051495051494F50484D4E465D5E5655564E4F504853544C5D5E5664655D62635B5D5E565C5D55 5A5B5358595155564E52534B5051494E4F474D4E464E4F474F504850514953544C56574F585951 5A5B535B5D5256584D56584B55574A545649545649535548525447525447535548525447505245 4E50434B4D40484A3D46483B45473A52534B52534B54554D56574F595A525B5C545B5C545A5B53 5D5E565A5B5357585055564E54554D56574F5859515A5B535859515A5B5358595156574F5A5B53 5D5E5652534B41423A4F53524B4F4E4448473F43423C403F3D4140414544434746383C3B393D3C 393D3C363A39353938383C3B3F43424549485559584F5352474B4A414544414544464A494E5251 5458575256555559585256554A4E4D4D51505A5E5D626665616765565C5A4C5552434C493F4845 414A47434C49424B484049463E4744444D4A4C5552545D5A5C6562626B6868716E6B74716D7673 646D6A5C65625A63605E6764616A675F68655B6461555E5B565F5C565F5C555E5B535C59525B58 535C59545D5A575B5A5357565155545155545357565458575155544E52515256555155544E5251 474B4A4044433C403F3C403F3E42413034333236353337363236352F33322F3332333736373B3A 343837343837353938353938363A39373B3A373B3A373C38373C38363B3534393332373130352F 2F342E2E332D2D322C3D423C3338322E332D373C364C514B5B605A5E635D5A5F595156504A4F49 494E4850554F5156504C514B4E534D565B553C413B4247414C514B575C565F645E6166605E635D 5A5F59565B55555A54545953545953555A54565B55565B55565B5550554F494E483C413B353A34 40453F555A546267616267616B706A6E736D70756F6C716B6469635E635D5E635D6267615C615B 5A5F59595E585A5F595C615B5B605A565B55515650595E585B605A60655F646963676C66686D67 686D67676C665B605A60655F676C66535852373C36464B456166606166606A6F69676C66616660 5B605A565B555358525257515257515C615B5B605A595E58555A545156504F544E50554F515650 4A4F494B504A4C514B4E534D4F544E4E534D4A4F49484D47464B45565B555156505A5F59474C46 2D322C3F443E3C413B474C46444943434842444943444943434842434842454A445459533B403A 2C312B363B353D423C373C3631363034393340453F40453F40453F414640434842444943454A44 454A444146403B403A3D423C3C413B333832383D37444943454A4440413C3F403B3F403B3F403B 3F403B40413C41423D42433E46474245464143443F43443F454641494A454E4F4A50514C4C4D48 4F504B51524D4F504B4B4C47494A454A4B464C4D484546414D4E4952534E4F504B484944464742 4D4E495556514A4B464E4F4A4D4E494A4B46494A454748434849444D4E49545550565752555651 51524D4D4E494B4C4747484343443F51524C51524C51524C50514B4E4F494B4C46484943474842 42433D4D4E484D4E483B3C363C3D37595A5460615B484943585951585951585951585951585951 5859515859515859515E5F575F605861625A64655D6768606A6B636C6D656D6E666A6B636C6D65 6E6F6771726A73746C73746C73746C73746C6D6E666D6E666B6C6463645C5B5C5456574F575850 5A5B53595A5258595157585056574F56574F575850585951595A52595A525B5C545D5E565D5E56 5B5C545A5B535C5D555F605851524A52534B53544C55564E56574F56574F55564E55564E5C5D55 5C5D555A5B5355564E51524A52534B595A5260615958595158595157585055564E53544C52534B 51524A5051495B5C545B5C545A5B535A5B535B5C545B5C545C5D555C5D55595A52595A52585951 57585056574F56574F55564E54554D5A5B5358595156574F54554D54554D55564E575850595A52 52534B56574F595A5258595156574F56574F595A525C5D555C5D555A5B5357585056574F575850 595A525C5D555E60555F61565A5C4F55574A545649595B4E5E605360625560625566685B636558 5B5D504D4F424143363C3E3140423546483B46473F46473F48494148494144453D41423A43443C 47484047484047484047484046473F44453D42433B42433B42433B45463E42433B45463E494A42 45463E3D3E363E3F3746473F41423A3D3E363A3B333E3F3747484050514955564E57594E57594E 5A5C4F5C5E515D5F525A5C4F56584B5153464F514453554856584B55574A4F5144525447595B4E 585A4D5153466664586361555F5D5159574B545246504E424D4B3F4B493D5A584C565448504E42 4B493D4B493D4E4C405351455454485B5B4F595B4E595B4E585A4D57594C55574A545649535548 57594C55574A53554851534650524551534652544753554852534B53544C55564E55564E55564E 55564E53544C52534B4F504850514951524A52534B52534B51524A5051494F5048585951585951 57585053544C4F50484B4C444A4B43494A4250514951524A51524A5051494F504850514952534B 54554D56574F55564E53544C51524A4E4F474B4C444849414748404C4D454B4C444A4B434B4C44 4E4F4752534B5758505A5C51595B50585A4D57594C55574A5355485254475052455052455F6154 5E60535C5E51595B4E56584B5456495254475153464E4F4750514952534B54554D55564E585951 5B5C545E5F575D5E565A5B5356574F52534B50514950514951524A53544C56574F595A52585951 56574F5B5C546061595859514A4B434D51504A4E4D464A49424645404443414544424645444847 343837383C3B3D4140414544444847484C4B4C504F4F5352575B5A5256554C504F474B4A454948 4347464044433E4241424645474B4A4549483D41403F43424B4F4E545857535957494F4D404946 3A43403B4441434C4948514E47504D444D4A3C4542454E4B525B585A63605D66635C65625B6461 5B6461626B68555E5B49524F4A5350545D5A59625F545D5A4B5451525B58555E5B57605D565F5C 525B58515A57535C59565F5C585C5B5559585256555256555458575559585256554F53524E5251 434746383C3B383C3B3F43424448474044433B3F3E3337363337363337363135342F3332303433 323635343837353938353938353938353938353938353938353938363B373338343136302E332D 2C312B2B302A2C312B2E332D2F342E3439332B302A2A2F293B403A555A5460655F565B55474C46 515650515650545953565B55515650494E48454A44454A44545953545953565B555C615B626761 616660595E58515650575C5653585250554F50554F52575153585250554F4E534D50554F464B45 383D373A3F3950554F676C66676C665B605A6E736D757A74737872656A64575C56535852575C56 5A5F595B605A5A5F595A5F595D625C62676163686260655F5D625C616660646963686D676B706A 6A6F69656A645F645E5B605A5F645E6F746E6A6F69494E48393E3851565060655F515650535852 535852535852565B555B605A5D625C5D625C5C615B535852585D575B605A595E58545953515650 535852565B555358524F544E4B504A4B504A4D524C4E534D4C514B4A4F494E534D565B55555A54 4F544E3C413B393E38474C463D423C494E484146403E433D40453F40453F3C413B3E433D454A44 545953353A34272C26363B354247413A3F39353A343B403A474C46454A44444943444943454A44 454A444449434247414449433D423C3E433D3B403A313630353A343F443E40453F40413C3F403B 3D3E393B3C3738393435363133342F31322D3839343C3D3842433E47484348494446474242433E 3F403B3839343D3E3942433E44454044454041423D3F403B3E3F3A393A3542433E494A45444540 38393433342F3B3C374546413C3D3843443F40413C3D3E3942433E3E3F3A393A353F403B3F403B 4647424A4B464A4B464E4F4A56575257585353544F54554F55565055565054554F53544E50514B 4E4F494C4D474546404647414B4C4641423C40413B66676177787258595363645C63645C63645C 63645C63645C63645C63645C63645C65665E66675F676860696A626C6D656E6F676F7068707169 71726A71726A72736B72736B71726A7071696E6F676C6D656D6E666F706871726A6D6E6665665E 5D5E5658595156574F595A5258595157585056574F56574F575850585951595A5254554D54554D 54554D53544C53544C53544C53544C52534B575850575850575850585951595A525A5B535A5B53 5B5C5453544C5859515A5B5356574F4E4F474C4D4552534B595A52595A52595A5257585056574F 54554D53544C52534B51524A62635B6061595E5F575C5D555A5B535A5B535B5C545C5D55595A52 595A5258595156574F54554D53544C51524A51524A58595157585055564E53544C53544C53544C 54554D54554D5C5D555E5F575F60585D5E56595A5256574F5859515A5B535C5D555A5B53575850 575850585951595A52595A52585A4F5D5F54585A4D53554852544756584B5A5C4F5C5E515B5D50 5A5C4F6163566466595C5E514D4F424143363E40334143364B4C444748404748404B4C44484941 4041393F403844453D3738303A3B333C3D353B3C3437383035362E3738303A3B3348494143443C 43443C43443C393A322B2C242829212D2E2633342C2D2E26282921292A2232332B3E3F37474840 4D4F44484A3F4E504355574A595B4E585A4D5254474D4F424A4C3F4E50435355485355484D4F42 4E504357594C595B4E55574A5F5D515F5D515D5B4F5B594D565448514F434D4B3F4A483C59574B 5A584C5A584C59574B58564A5553475351454F4F434D4D414F514452544756584B585A4D595B4E 585A4D57594C54564954564954564954564953554852544750524550524552534B53544C55564E 56574F56574F55564E53544C52534B4D4E464E4F4750514951524A51524A5051494E4F474D4E46 595A525B5C545A5B5355564E4F50484A4B434A4B434B4C444849414D4E464F50484C4D4546473F 43443C46473F4A4B434F50484F50484F50484E4F474C4D45494A4246473F44453D4D4E464B4C44 494A42484941494A424D4E4652534B55574C5B5D525B5D505A5C4F595B4E585A4D57594C57594C 56584B55574A55574A56584B57594C585A4D595B4E5A5C4F5A5C4F54554D56574F56574F54554D 50514950514953544C57585058595156574F54554D52534B50514950514950514950514955564E 58595157585054554D595A526061595B5C544F50484B4F4E4B4F4E4A4E4D494D4C464A49434746 3F43423D4140393D3C3B3F3E404443464A494C504F4F53525054534F5352393D3C383C3B393D3C 404443484C4B4C504F4A4E4D464A494448474A4E4D484C4B4044433E4241464A494C504F4A504E 4A504E414A473C45423F484547504D4B5451464F4C3F4845454E4B515A575F6865656E6B626B68 5C656258615E565F5C555E5B5059564D565350595657605D59625F545D5A4E5754535C5958615E 5B646159625F555E5B535C5957605D5B64615C605F595D5C565A59565A59595D5C595D5C565A59 5357563D41403438372C302F2F3332383C3B3F43423C403F373B3A3A3E3D383C3B343837333736 3337363337363236353236353438373438373438373438373438373438373438373338342E332F 2D322C2C312B2C312B2D322C2E332D30352F31363030352F353A344146405257515E635D5F645E 555A544A4F49565B555E635D6368625F645E575C565156504E534D4B504A656A645E635D575C56 575C565B605A595E58515650494E485B605A575C56545953555A54575C56565B554F544E494E48 4E534D4146403F443E525751646963676C66636862626761676C666B706A6469635358524E534D 575C565B605A575C565C615B5A5F595A5F595F645E666B656A6F696B706A6A6F69585D575E635D 676C666D726C6F746E6A6F696267615D625C5D625C6D726C5D625C3F443E4449435D625C60655F 5459535257515257515459535C615B646963676C666368625E635D5A5F59595E58595E585A5F59 5B605A5A5F59575C56555A545459534E534D494E48494E484E534D5257515257514F544E575C56 555A545C615B434842313630464B454D524C40453F464B4540453F4348424C514B4B504A40453F 3C413B41464040453F3439333136303B403A3F443E3B403A3B403A414640454A44424741414640 424741444943454A4443484241464040453F3A3F393B403A393E3830352F3439333F443E40453F 42433E42433E40413C3E3F3A3A3B3637383334353032332E32332E3637323C3D3840413C41423D 3D3E393839343435303536313839343E3F3A454641494A4548494444454040413C3C3D38474843 4E4F4A44454030312C2425202728232F302B33342F40413C3F403B42433E4F504B494A453D3E39 41423D4647424E4F4A4F504B4748434748434C4D484A4B4641423D4C4D474D4E484F504A51524C 52534D52534D52534D51524C4C4D4747484250514B4546403738325D5E587B7C7663645E66675F 66675F66675F66675F66675F66675F66675F66675F6061595F60585E5F575D5E565B5C545A5B53 595A5258595165665E66675F67686068696167686066675F64655D63645C61625A65665E696A62 6A6B6365665E5E5F5756574F52534B55564E54554D53544C52534B52534B53544C54554D55564E 54554D5051494D4E464D4E464F50484F50484C4D454849414F50484F50484E4F474E4F474F5048 51524A52534B53544C4E4F4756574F5F605862635B5E5F5757585052534B505149585951575850 56574F55564E53544C52534B5051495051495C5D555A5B5358595155564E54554D55564E575850 58595154554D54554D54554D54554D53544C53544C53544C53544C55564E55564E54554D54554D 53544C51524A51524A5051495D5E5660615962635B61625A5D5E565C5D555E5F5761625A5C5D55 5A5B53595A52595A525A5B53595A5255564E5254495B5D5256584B52544751534654564956584B 55574A545649535548585A4D5F61546163565C5E515456494B4D4046483B45463E3A3B3336372F 3A3B33393A322F30282D2E2633342C2E2F2735362E3A3B3338393131322A2F302834352D3B3C34 2F30282E2F2735362E3E3F373D3E36373830393A3242433B36372F34352D32332B34352D383931 3E3F3744453D46483D45473C4C4E41545649595B4E585A4D5355484F51444D4F4251534657594C 56584B4E50434E504355574A595B4E56584B57554958564A59574B5A584C5A584C59574B59574B 58564A5250445553475A584C5E5C505F5D515E5C505B594D57574B4C4C404D4F42505245535548 56584B57594C57594C57594C54564954564955574A56584B55574A5355485153464F5144505149 51524A53544C54554D54554D53544C51524A5051494D4E464E4F474F50485051495051494F5048 4E4F474D4E4652534B56574F58595155564E4E4F474B4C444D4E4651524A4D4E464C4D454B4C44 4B4C444C4D454B4C44494A4246473F4E4F474F504850514951524A5051494D4E464A4B43484941 4F50484E4F474C4D454B4C444B4C444C4D454E4F474F514651534851534653554855574A57594C 595B4E5A5C4F5B5D504D4F424E50434F514451534653554855574A56584B57594C575850595A52 595A5253544C4C4D454A4B434E4F4753544C4F504851524A53544C55564E56574F56574F56574F 55564E55564E58595156574F52534B5758505E5F575B5C5451524A474B4A4A4E4D4D51504D5150 494D4C414544383C3B3236353E42413C403F3B3F3E3F4342464A494A4E4D4B4F4E4A4E4D444847 3F43423D41404347464C504F5054534D5150484C4B4B4F4E5155544F5352444847404443454948 484C4B444A484F5553454E4B3E47443F4845434C49424B4838413E2E3734424B484C555258615E 5C656258615E535C59525B58535C59404946454E4B4C5552515A57515A574F58554C55524B5451 4E5754545D5A58615E565F5C515A574F5855535C5958615E595D5C565A59535756535756565A59 565A595357565054534A4E4D4B4F4E4B4F4E474B4A4347464145444246454549484044433C403F 373B3A353938363A39363A39343837313534343837333736333736333736333736323635323635 3237332A2F2B2B302A2D322C2E332D30352F313630323731323731333832474C465F645E6C716B 696E686166605C615B5C615B535852575C5650554F3F443E383D37434842525751585D5760655F 595E58535852575C5660655F6368625E635D575C5660655F5D625C5B605A5D625C5F645E5B605A 515650474C464B504A3D423C484D47686D677176705F645E5D625C6F746E656A64666B655A5F59 4C514B555A546C716B717670656A646166605F645E5D625C616660676C666D726C6E736D6E736D 686D676D726C7378727479736D726C60655F515650474C46565B556166604C514B383D374F544E 676C66666B65626761676C66646963646963696E686E736D6B706A60655F565B55666B655D625C 565B55595E586267616469635B605A50554F50554F4A4F49464B45484D4750554F565B55565B55 5459535D625C555A5460655F3B403A2A2F2950554F50554F42474142474143484250554F626761 60655F4D524C3E433D3D423C2C312B363B353F443E3F443E3B403A3B403A40453F4449433F443E 3D423C3C413B3E433D42474144494343484240453F3B403A363B35383D37373C362F342E353A34 41464042474143443F44454045464146474245464144454042433E41423D40413C40413C40413C 3F403B3F403B3E3F3A3E3F3A3E3F3A3D3E3940413C4546414E4F4A55565156575251524D4C4D48 4849445657525F605B5657523F403B30312C30312C37383335363145464148494450514C63645F 5D5E594B4C474E4F4A3E3F3A4849444A4B4643443F43443F4C4D484B4C4741423D3D3E383F403A 44453F4849434C4D474F504A50514B50514B52534D4A4B4554554F44453F2627214748426F706A 5E5F5960615960615960615960615960615960615960615960615968696168696167686066675F 66675F65665E64655D64655D5D5E565F605862635B65665E6869616A6B636A6B636A6B6355564E 595A525E5F5762635B61625A5C5D5555564E50514951524A5051494F50484E4F474E4F474F5048 50514951524A595A5253544C4E4F474E4F4752534B52534B4C4D4546473F4B4C444A4B434A4B43 4A4B434A4B434C4D454E4F474F504853544C55564E5859515C5D555D5E565A5B5354554D4F5048 56574F56574F54554D53544C51524A5051494F50484E4F4753544C52534B4F50484E4F474E4F47 50514953544C54554D4F504850514951524A52534B54554D55564E56574F56574F53544C53544C 54554D54554D53544C51524A4F50484D4E4656574F5A5B535F605861625A62635B64655D696A62 6D6E665C5D555A5B535A5B535B5C545C5D55595A5253544C4D4F44595B5055574A515346505245 5254475355485153464E504355574A5355485456495C5E516466596466595B5D50515346383931 28292120211924251D23241C1A1B131819111F20183A3B3343443C4A4B434748404041393E3F37 45463E4D4E4646473F45463E4A4B4351524A4E4F4745463E44453D4B4C444D4E4650514953544C 56574F56574F55564E54554D53554A50524756584B5D5F525F61545C5E5157594C545649535548 56584B5C5E515A5C4F5153464E504355574A595B4E57594C5F5D515D5B4F59574B575549575549 59574B5D5B4F605E5255534755534756544857554958564A58564A58564A56564A545448535548 52544751534651534651534651534651534655574A55574A56584B56584B55574A535548525447 5153464E4F474F504851524A52534B52534B51524A4F50484E4F474D4E464E4F4750514951524A 51524A5051494E4F474D4E464A4B4350514954554D53544C4E4F474C4D4551524A56574F4E4F47 46473F40413945463E4F504852534B4A4B43404139494A424A4B434D4E464E4F474E4F474C4D45 494A4247484051524A51524A51524A5051494F50484E4F474C4D454C4E4341433842443746483B 4B4D40505245545649585A4D5A5C4F57594C57594C57594C57594C56584B56584B56584B56584B 55564E57585057585052534B4B4C444A4B434F504856574F494A424C4D4552534B5758505B5C54 5D5E565D5E565C5D5554554D57585055564E51524A55564E5D5E565A5B5351524A3D4140373B3A 373B3A3C403F383C3B3236353B3F3E4D51503B3F3E3D41404145444448474549484246453F4342 3C403F4145444044433A3E3D393D3C484C4B585C5B5054533C403F494D4C494D4C474B4A434746 4145444448474A4E4D4F5553363C3A37403D3A43403C45423B444137403D323B382E37344A5350 525B5859625F58615E50595649524F47504D49524F47504D4E5754565F5C565F5C525B584E5754 505956535C59535C59535C59525B58535C59535C59535C59535C59535C59666A69585C5B545857 616564656968565A594549483E42414A4E4D4C504F4D51504E52514C504F4A4E4D464A49444847 3F43423C403F363A39323635303433313534333736363A39323635313534323635383C3B3F4342 3E42413438372A2F2B383D39373C36373C36383D37383D373439332E332D282D273C413B4C514B 5C615B5D625C5358524E534D5459535D625C454A443D423C373C363C413B4A4F49555A54565B55 535852555A54545953535852565B555A5F595B605A575C5653585260655F5A5F595E635D656A64 5D625C4C514B494E485358523C413B4A4F496166607277716E736D61666060655F696E68696E68 656A64626761626761656A64666B65656A64636862686D675D625C616660717670717670636862 686D677A7F796D726C6F746E6F746E6C716B676C66666B65686D676C716B6E736D40453F2F342E 51565073787270756F676C666B706A6F746E70756F6E736D676C665F645E595E58585D57595E58 555A545156504C514B4C514B50554F545953555A545459533E433D464B45464B45464B454B504A 454A443D423C3F443E3D423C4F544E333832323731414640393E3840453F3E433D3D423C3E433D 3F443E3F443E3D423C393E38353A343338323E433D3E433D3E433D3F443E40453F40453F414640 4146404449434247413F443E3D423C3B403A3A3F393A3F393A3F39383D373D423C3C413B313630 3338324D524C565B5543484244454041423D40413C41423D43443F42433E3D3E39393A35484944 45464142433E42433E44454044454041423D3E3F3A3738333D3E394546414C4D484F504B4D4E49 494A4546474252534E42433E4748434546412E2F2A2E2F2A4445404E4F4A3637323E3F3A494A45 53544F56575253544F4C4D4847484346474242433E3C3D383839343738333B3C3740413C43443F 494A44474842464741494A444D4E4850514B4F504A4D4E4848494344453F4748424C4D47474842 40413B4B4C465F605A61625A66675F65665E5C5D555B5C5462635B65665E62635B62635B61625A 61625A64655D67686066675F61625A5D5E565C5D555E5F5761625A64655D64655D63645C606159 5E5F575B5C545A5B535C5D5563645C696A6266675F5B5C545051494A4B4352534B52534B4B4C44 4A4B4352534B57585054554D51524A51524A53544C55564E5758505859515A5B535B5C544F5048 4C4D45494A424849414A4B434F504854554D585951474840494A424E4F4751524A53544C53544C 52534B51524A51524A4D4E46494A424849414A4B434E4F474F50484F50484E4F474E4F474E4F47 4E4F474E4F474E4F474E4F474E4F4756574F56574F56574F56574F56574F56574F56574F56574F 5C5D55595A5256574F53544C52534B53544C55564E56574F56574F575850595A525E5F5763645C 63645C5F60585B5C546768605F605857585056574F5C5D5561625A62635B60625756584D585A4D 595B4E595B4E57594C5355484F51444D4F424C4E4155574A57594C4F51444A4C3F4C4E414B4D40 46483B44453D42433B3E3F373C3D353D3E3640413945463E4849414C4D454F504855564E5B5C54 60615962635B63645C63645C56574F5859515A5B535B5C545A5B5358595154554D52534B5A5B53 58595156574F575850595A5257585053544C4F514652544953554854564955574A55574A545649 535548525447595B4E5A5C4F5B5D505C5E515C5E515B5D505A5C4F595B4E5D5B4F5D5B4F5C5A4E 5C5A4E5B594D5A584C59574B59574B52504453514556544858564A59574B5A584C59574B57574B 52524657594C5C5E51595B4E53554851534655574A5B5D50525447525447535548535548535548 5153465052454F51444A4B434849414849414B4C4451524A54554D54554D52534B4E4F474F5048 51524A52534B52534B51524A4F50484E4F4756574F55564E52534B5051494E4F474D4E464D4E46 4D4E464F50484E4F474E4F474D4E464C4D454B4C444A4B434A4B4345463E46473F474840494A42 4B4C444D4E464F50484F50484A4B434A4B434A4B434A4B434C4D4550514953544C55574C53554A 5153464F51444D4F424D4F4250524552544754564950524556584B5C5E515B5D5056584B535548 56584B5A5C4F52534B54554D57585058595158595155564E53544C51524A4849414A4B434D4E46 50514954554D5859515B5C545C5D5552534B4E4F47494A4246473F46473F494A424E4F4752534B 3C403F3034332F33323C403F4549484347464145444549483C403F3F4342434746464A49474B4A 4549484145443F4342383C3B414544444847434746494D4C5155544D5150414544414544434746 444847454948464A494A4E4D505453545A584A504E47504D444D4A414A473C454237403D333C39 313A37323B383B4441454E4B49524F48514E49524F4E5754535C5948514E4E5754535C59525B58 4F58554D56534F5855535C59515A57525B58525B58525B585059564F5855505956505956525655 5458575C605F6064635458574347464246454D51504C504F4E52514F53524F53524D5150494D4C 4549484246453337363135342F33322E32312D31302F3332313534323635363A39383C3B3A3E3D 3A3E3D363A393236352F33322D322E2C312D3439333B403A383D373136302F342E393E38434842 5F645E6166606166605D625C555A544F544E4C514B4D524C4D524C494E48484D474E534D585D57 5E635D5D625C595E58575C56575C56585D575B605A5B605A565B554D524C464B454E534D4A4F49 4B504A5459535A5F59595E58565B555459532A2F29282D27313630484D475D625C6469635E635D 575C56535852525751525751555A54595E585E635D616660636862575C564D524C4F544E5C615B 595E584A4F494C514B5D625C4F544E50554F50554F4E534D4D524C4C514B4D524C4F544E3A3F39 1B201A1419133338324E534D4D524C464B45494E48414640444943474C46484D47474C46464B45 454A44454A44494E48474C46434842424741434842454A44464B45474C465156505B605A5E635D 5E635D616660565B55474C46454A44424741474C462B302A3136304348423D423C41464040453F 3B403A3D423C3E433D3E433D3D423C3A3F39373C36353A343A3F393B403A3C413B3D423C3E433D 3F443E40453F41464042474140453F3E433D3B403A393E38393E38393E38393E38373C363D423C 3C413B30352F323731484D4750554F4146403F403B3E3F3A3F403B41423D444540454641454641 45464147484344454042433E41423D41423D41423D41423D40413C3839343F403B494A454E4F4A 4E4F4A4A4B4646474243443F4D4E4943443F4A4B464A4B4633342F2F302B43443F4F504B40413C 42433E44454046474246474245464144454043443F4F504B4D4E494A4B46494A454A4B464E4F4A 52534E5556514647414546404647414A4B4550514B54554F56575155565055565052534D54554F 54554F494A443D3E3842433D52534D54554D595A5258595151524A53544C5C5D5561625A5F6058 65665E66675F6768606A6B636C6D656B6C6468696165665E67686066675F64655D61625A5C5D55 57585053544C51524A63645C63645C64655D6A6B636E6F676D6E6665665E5E5F574849414D4E46 4F50484D4E464D4E4650514953544C52534B4E4F474F504850514952534B54554D55564E575850 57585054554D52534B4E4F474B4C444A4B434A4B434C4D454D4E4643443C45463E494A424B4C44 4D4E464C4D454B4C444A4B4357585054554D51524A50514952534B54554D55564E55564E5A5B53 5A5B535A5B535A5B535A5B535A5B535A5B535A5B53585951585951585951585951585951585951 58595158595158595156574F51524A4C4D4548494144453D42433B41423A4D4E464D4E464E4F47 52534B5859515C5D555F605860615963645C5E5F575A5B535C5D5563645C67686067686064665B 64665B65675A66685B66685B6466596163565D5F525B5D505D5F5264665965675A5E60535B5D50 5F61545E6053585A4D5C5D55595A5255564E51524A4F504850514952534B54554D50514953544C 5758505B5C545D5E565E5F575D5E565D5E565E5F575F605861625A62635B61625A5F60585C5D55 5A5B5358595156574F54554D54554D57585058595156574F54564B515348525447535548545649 54564953554852544751534655574A56584B57594C57594C57594C57594C56584B55574A5A584C 5A584C59574B59574B58564A57554957554956544856544857554958564A59574B58564A575549 56544852524651514554564957594C56584B51534650524553554857594C51534655574A5B5D50 5E60535B5D50535548494B3E4345384B4C444B4C444B4C444D4E464F504851524A51524A51524A 4E4F474F504851524A52534B52534B51524A4F50484E4F475051494F50484E4F474D4E464D4E46 4F504850514951524A4E4F474E4F474E4F474E4F474E4F474E4F474E4F474E4F47484941484941 494A424A4B434C4D454D4E464E4F474F5048484941494A424A4B434C4D454D4E464E4F474E4F47 4F514656584D5456495153464E50434D4F424D4F424F514450524552544756584B585A4D545649 4D4F42494B3E4C4E4150524556574F5859515B5C545D5E565E5F575E5F575C5D555B5C5453544C 53544C51524A4F50484E4F474C4D454A4B434A4B4353544C54554D55564E55564E55564E55564E 54554D53544C3034332B2F2E3034334044434A4E4D484C4B434746414544383C3B3A3E3D3E4241 4145444246454246454044433F4342373B3A474B4A5357565357565054535054534F53524A4E4D 565A59565A595458575054534A4E4D464A49444847434947464C4A414A473B4441353E3B313A37 303936313A37313A3737403D3D4643444D4A47504D47504D4A5350515A5757605D4B54514E5754 4F58554E57544C55524C5552505956545D5A4F5855515A57525B58515A574E57544D5653505956 535C59535756595D5C6165645F63624F5352424645474B4A565A59505453515554515554505453 4D5150494D4C4549484246453A3E3D3A3E3D393D3C383C3B363A393337363034332F3332343837 393D3C3C403F373B3A2F33322D31303337363A3F3B3237333E433D464B453E433D313630333832 494E485F645E5459534C514B4449434146404348424348423F443E3A3F3940453F414640434842 474C464B504A4D524C4C514B4A4F49484D47484D474A4F494F544E545953555A545156504D524C 5156504F544E50554F585D576267616166605257514247411C211B161B1513181220251F373C36 464B453F443E30352F3C413B3E433D40453F424741444943474C464B504A4E534D4A4F49414640 4247414A4F49444943363B35363B354449433A3F393A3F393A3F393B403A3D423C3D423C3C413B 3B403A30352F292E2830352F474C46585D57575C565257515459534F544E515650565B555B605A 60655F6166605E635D5C615B60655F5F645E5E635D5B605A585D57575C56585D575A5F59646963 6D726C6D726C6B706A6B706A5E635D4F544E4D524C4C514B3D423C21262030352F474C4640453F 40453F414640393E383A3F393B403A3C413B3C413B3A3F39393E38383D37353A34363B35383D37 393E383B403A3D423C3F443E3F443E3F443E3E433D3B403A393E38383D37373C36383D37383D37 373C363E433D3B403A2E332D30352F40453F474C463E433D44454044454044454042433E41423D 41423D43443F45464145464144454042433E3F403B3D3E393E3F3A41423D44454040413C464742 4B4C474B4C4746474243443F444540464742494A454647424F504B4E4F4A38393431322D42433E 51524D5B5C57595A5556575253544F51524D50514C51524D51524D444540454641464742494A45 4B4C474E4F4A50514C51524D42433D42433D43443E4748424C4D474F504A51524C51524C595A54 53544E52534D55565053544E4A4B454647414849435A5B535E5F575B5C5454554D55564E5E5F57 62635B60615961625A64655D676860696A62696A62686961686961696A627071696D6E66686961 62635B5C5D5558595155564E53544C62635B62635B63645C66675F696A626A6B6368696166675F 4D4E464B4C444C4D455051495051494E4F474D4E464F50484C4D454C4D454D4E464F5048505149 51524A52534B53544C51524A5051494F50484D4E464C4D454A4B43494A42494A424D4E464E4F47 50514952534B52534B51524A5051494F504857585056574F53544C52534B52534B53544C55564E 56574F55564E55564E55564E55564E55564E55564E55564E55564E4F50484F50484F50484F5048 4F50484F50484F50484F50484C4D454C4D454C4D454B4C4448494146473F43443C41423A4B4C44 4B4C444C4D454E4F4752534B5B5C5465665E6B6C6462635B61625A61625A64655D6A6B636D6E66 6B6C64696B606C6E636C6E616D6F626C6E616B6D60686A5D66685B646659686A5D6D6F626C6E61 66685B67695C6D6F626C6E6165675A6F70686B6C6466675F6061595D5E565B5C545B5C545C5D55 55564E56574F585951595A525A5B53595A525859515758505B5C545B5C545C5D555D5E565C5D55 5A5B5358595157585058595155564E52534B51524A53544C56574F585951585A4F525449535548 54564955574A55574A545649535548525447525447525447525447525447525447525447525447 52544758564A58564A5755495654485553475553475452465452465A584C5A584C5A584C59574B 58564A5553475351454F4F43515145525447535548525447515346505245515346535548505245 55574A5C5E516062555E605356584B4D4F4246483B4D4E464E4F474F50484F50484D4E464D4E46 4E4F474F50484E4F474F504851524A52534B52534B51524A4F50484E4F474A4B434A4B434A4B43 4A4B434C4D454F504852534B53544C4D4E464E4F474E4F474E4F474F50484F50484F50484F5048 46473F46473F46473F46473F4748404748404748404748404C4D454D4E464F504851524A52534B 5051494F50484D4F4457594E55574A5254474F51444C4E414B4D404B4D404B4D404C4E414F5144 4F51444A4C3F444639444639494B3E4E5043595A525A5B535B5C545C5D555C5D555B5C545A5B53 595A5257585056574F52534B4E4F47494A4244453D41423A3F403842433B4748404E4F4752534B 52534B4E4F4747484042433B3135343B3F3E484C4B5054534E5251494D4C494D4C4C504F4A4E4D 484C4B4448474145443E42413C403F3B3F3E3A3E3D4044434B4F4E545857575B5A565A59545857 5155544F53524E52514F53525155545155545054534E52514D51504B514F4046443C45423A4340 39423F3B44413F4845454E4B48514E3D46433E47443D464338413E313A372E3734303936333C39 424B48424B484049463E47443E4744414A47454E4B48514E505956525B58535C59515A574E5754 505956565F5C5B64615A5E5D5357564C504F4B4F4E4C504F4A4E4D464A49444847474B4A454948 4347464044433C403F3A3E3D383C3B373B3A373B3A393D3C3C403F3D41403C403F383C3B333736 303433343837353938343837323635313534363A393F4342474C48363B37383D37353A342D322C 272C262E332D4146405156504B504A474C46444943464B454B504A50554F50554F4F544E50554F 50554F4E534D4C514B4B504A4D524C535852575C56565B55535852515650555A545E635D676C66 6E736D70756F5F645E60655F676C6670756F6E736D5B605A434842343933494E48515650525751 4D524C4D524C5459535459534E534D4D524C50554F5358525257514D524C494E48484D474A4F49 5B605A555A54565B555A5F59555A544A4F494A4F49545953525751515650515650545953585D57 585D57555A545156503C413B474C46595E58676C666B706A696E68676C66676C66696E68686D67 686D676B706A6E736D6D726C696E68646963696E686A6F696A6F69666B6560655F5D625C5E635D 60655F686D676C716B666B655F645E60655F595E5850554F535852585D57353A341D221C323731 484D4740453F3A3F393E433D383D37383D37393E383A3F393A3F393A3F393A3F393A3F39323731 333832343933363B35393E383B403A3C413B3D423C3D423C3C413B3A3F39383D37373C36373C36 373C36383D37363B353F443E383D372C312B30352F3A3F393D423C3C413B454641464742454641 42433E3E3F3A3D3E3941423D45464144454044454043443F3F403B3C3D383D3E3942433E474843 4B4C474D4E494C4D484445403C3D383C3D384445404C4D48464742494A4551524D4E4F4A3B3C37 32332E42433E5758534C4D484C4D484C4D484B4C474A4B464849444748434647423839343A3B36 3D3E3941423D43443F43443F42433E41423D3D3E383F403A43443E494A444E4F4951524C52534D 52534D53544E4B4C4648494351524C5A5B555859534B4C4640413B63645C67686064655D595A52 56574F5B5C545D5E565A5B53595A525D5E5661625A61625A5F60585F605862635B65665E686961 65665E61625A5D5E565B5C545B5C545D5E565E5F575A5B535A5B535B5C545C5D555E5F5761625A 63645C65665E595A525051494C4D4551524A52534B4B4C444A4B434E4F474B4C444B4C444C4D45 4D4E464E4F474F5048505149505149494A424A4B434C4D454E4F474F50484F50484E4F474D4E46 55564E55564E55564E55564E55564E54554D53544C53544C52534B52534B4F50484B4C44494A42 4A4B434E4F4752534B4B4C444B4C444B4C444B4C444B4C444B4C444B4C444B4C444B4C444B4C44 4B4C444B4C444B4C444B4C444B4C444B4C44494A424B4C444F504852534B53544C53544C51524A 4F504852534B53544C54554D54554D56574F5D5E56696A6271726A676860676860676860696A62 6C6D656D6E666C6D656B6D62696B60696B5E696B5E686A5D67695C66685B646659646659646659 67695C6466595F61546365586B6D606A6C5F6264576B6C64696A6264655D6061595D5E565B5C54 5B5C545B5C5456574F56574F575850585951585951585951585951575850595A52595A52595A52 595A5258595157585056574F55564E5B5C5458595153544C4F50484F504852534B55564E585A4F 55574C56584B57594C585A4D585A4D57594C56584B55574A525447515346505245505245505245 50524551534652544758564A58564A57554956544856544855534754524654524658564A58564A 59574B59574B58564A565448545246515145545448535548535548535548535548535548535548 53554850524552544754564956584B585A4D595B4E5A5C4F5A5C4F4E4F4751524A52534B505149 4C4D454A4B434B4C444E4F474E4F474F504851524A52534B52534B51524A4F50484E4F47494A42 494A42494A42494A424B4C444D4E4650514951524A5051494F50484E4F474D4E464C4D454B4C44 4A4B434A4B434A4B434A4B434A4B43494A42494A4248494148494148494152534B53544C54554D 54554D54554D53544C51524A5052475052474F51444E50434D4F424B4D404B4D404A4C3F4A4C3F 44463946483B46483B444639434538484A3D505245585A4D57585057585056574F55564E53544C 51524A4F50484E4F4752534B51524A4F50484D4E464B4C44494A42484941474840393A323D3E36 44453D494A42494A4244453D3D3E36393A324549484F5352585C5B585C5B5256554F53524F5352 5054535E6261575B5A4D51504347463B3F3E373B3A353938363A39454948424645434746494D4C 4E52514D5150494D4C474B4A424645434746444847464A49484C4B484C4B464A49444A483B413F 3A43403B44413F4845444D4A49524F4E5754515A57525B58515A574E575447504D3E474439423F 39423F3A43403A434037403D343D3A333C39353E3B38413E3B44413C4542313A37323B38323B38 3039362F3835323B3839423F3E47444549483A3E3D2F3332323635404443484C4B414544343837 383C3B3539383135342D31302A2E2D2A2E2D2B2F2E2C302F232726282C2B2F3332363A393A3E3D 3B3F3E393D3C373B3A3F4342383C3B323635313534383C3B404443454948484D49434844373C36 2A2F292B302A383D37454A444B504A4B504A545953595E585E635D5F645E5C615B5B605A5D625C 60655F686D676469635C615B5358524F544E555A546267616D726C676C666267615C615B5C615B 60655F656A64686D67686D675E635D5F645E696E68737872666B654B504A3D423C40453F434842 555A545F645E565B554B504A4B504A4F544E50554F575C565B605A5F645E5D625C575C564F544E 4B504A4A4F49484D47464B45484D474B504A484D474247414449434B504A494E48484D47494E48 4D524C50554F4E534D484D47434842434842575C566A6F6970756F6C716B686D67686D67696E68 696E68666B6562676161666062676160655F5C615B585D576267616469636469636166605A5F59 565B55555A54575C565E635D6368625C615B585D575B605A585D57535852585D575C615B2F342E 212620373C36464B453D423C3439333A3F39383D37383D37383D37383D37383D37393E383A3F39 3A3F39313630323731333832353A34373C36393E383A3F393B403A3C413B3B403A393E38373C36 373C36373C36383D37393E38373C363F443E3439332A2F29333832373C36363B353C413B3A3B36 3D3E3940413C40413C40413C42433E4647424B4C4744454045464145464142433E40413C40413C 454641494A454B4C474D4E494D4E494647423E3F3A3C3D3842433E494A454546414B4C474F504B 4A4B463C3D3832332E41423D5B5C573536313435303435303536313637323839343A3B363B3C37 3F403B41423D44454046474246474244454040413C3E3F3A3B3C363E3F3943443E4849434C4D47 4F504A51524C52534D44453F494A444F504A51524C51524C4E4F494647413F403A54554D5D5E56 60615957585050514954554D56574F54554D595A525C5D555E5F575D5E565B5C545C5D555F6058 63645C5F60585D5E565A5B535859515859515A5B535D5E565F60585E5F575D5E565D5E565D5E56 5F605863645C66675F68696165665E56574F4C4D454F50485051494B4C444A4B434F50484E4F47 4E4F474E4F474F50484F504850514950514951524A4C4D454D4E464F504850514951524A505149 4F50484E4F4751524A51524A5051494F50484F50484F50484F50484F504854554D54554D52534B 4C4D454748404748404E4F4755564E505149505149505149505149505149505149505149505149 54554D54554D54554D54554D54554D54554D54554D54554D4C4D454F504853544C56574F575850 56574F54554D53544C56574F58595158595157585055564E5859515F605864655D6B6C646B6C64 6B6C646A6B63686961686961696A626A6C61686A5F67695C66685B65675A65675A65675A65675A 65675A6062556264575E6053595B4E5C5E5165675A65675A5E605362635B61625A5F60585E5F57 5D5E565D5E565D5E565D5E5655564E56574F56574F5758505859515A5B535B5C545C5D55606159 5F60585E5F575D5E565C5D555C5D555B5C545C5D555D5E565A5B5355564E5051494D4E464E4F47 51524A54564B585A4F595B4E5B5D505C5E515C5E515B5D50595B4E585A4D55574A545649525447 50524550524552544754564955574A5A584C5A584C59574B58564A58564A575549565448565448 53514554524656544858564A59574B59574B58564A56564A56564A55574A55574A55574A55574A 55574A55574A55574A55574A54564952544751534653554857594C5C5E515F61544F504852534B 53544C5051494C4D45494A424A4B434D4E464E4F474F504851524A52534B52534B51524A4F5048 4E4F474D4E464C4D454B4C444A4B434A4B434B4C444D4E464E4F4752534B51524A4F50484C4D45 494A4246473F44453D43443C5051495051495051494F50484F50484E4F474E4F474E4F47505149 4F50484D4E464C4D454C4D454C4D454D4E464E5045484A3F494B3E4A4C3F4C4E414D4F424E5043 4E50434E5043494B3E4A4C3F4A4C3F484A3D484A3D4D4F4255574A5B5D5052534B51524A51524A 51524A52534B53544C54554D54554D52534B51524A51524A51524A51524A51524A505149505149 4B4C444C4D454E4F474F50484F50484E4F474C4D454B4C444B4F4E4B4F4E464A49424645454948 4A4E4D434746373B3A4549484145443A3E3D343837323635333736363A39383C3B414544363A39 313534383C3B3E42413D41403C403F3E42413E42413C403F3B3F3E3B3F3E3D41403D41403C403F 3A403E424846424B48444D4A47504D49524F4B54514C55524C5552434C49444D4A464F4C464F4C 444D4A434C49454E4B464F4C4D565349524F47504D48514E4C55524E57544E57544C55525A6360 59625F58615E57605D57605D57605D565F5C565F5C313534353938363A39373B3A4044434A4E4D 4A4E4D4246453C403F3B3F3E393D3C373B3A373B3A383C3B3A3E3D3B3F3E2F3332333736393D3C 3F43424246454347464145443F43424D5150464A493E42413B3F3E3E4241414544434746434844 4C514D3D423C34393340453F585D57686D67646963595E584F544E585D576166606368625E635D 595E58585D575A5F59656A64616660595E5850554F4C514B5156505F645E6A6F695C615B5A5F59 595E585A5F595B605A585D575257514C514B5E635D5C615B5C615B575C56464B45373C363C413B 4A4F494348424D524C565B55565B555156504D524C494E48454A444C514B4F544E535852555A54 5459535156504E534D4D524C4F544E525751555A54565B55545953535852565B555A5F59535852 555A54575C56595E58585D575358524C514B464B45484D47575C56656A64676C666267615F645E 626761656A64696E68676C6664696363686262676162676160655F5F645E616660626761636862 6166605D625C595E58565B55555A54565B555D625C5D625C5D625C64696360655F595E585C615B 545953292E282A2F293E433D4247413B403A3136303A3F393A3F39393E38383D37363B35363B35 373C36383D37393E38343933343933353A34353A34363B35373C36373C36373C363C413B3B403A 3A3F39393E38383D37393E383A3F393B403A383D373E433D2F342E272C26383D37393E38333832 3E433D3B3C373E3F3A42433E454641454641454641464742474843454641474843484944494A45 484944484944494A454A4B4642433E4849444E4F4A4D4E4947484342433E41423D42433E42433E 4B4C474B4C474546413E3F3A3435303E3F3A5B5C573D3E39393A3535363132332E3435303A3B36 41423D46474244454045464147484348494447484345464141423D3F403B3D3E383C3D373A3B35 36373133342E32332D33342E3536302D2E2845464057585252534D44453F40413B4647414B4C46 3E3F3751524A5F60585B5C5455564E5859515E5F575F60585E5F575E5F575D5E565B5C545A5B53 5A5B535D5E565F605867686066675F63645C6061595E5F575C5D555C5D555C5D5565665E62635B 61625A62635B65665E686961696A62696A6262635B54554D4849414849414C4D454F5048505149 51524A54554D54554D54554D54554D54554D54554D54554D54554D595A5258595156574F53544C 5051494D4E464B4C444A4B4355564E54554D53544C52534B52534B54554D56574F575850595A52 5C5D555D5E565758504F50484D4E4654554D5B5C5452534B52534B52534B52534B52534B52534B 52534B52534B53544C53544C53544C53544C53544C53544C53544C53544C46473F4849414B4C44 4F504852534B54554D56574F56574F53544C54554D53544C51524A4F50484E4F474E4F474F5048 65665E676860696A6267686064655D63645C66675F6A6C616C6E636B6D60696B5E686A5D686A5D 696B5E6A6C5F6B6D6064665967695C6365585B5D505C5E5164665966685B616356606159606159 61625A62635B63645C64655D65665E65665E595A52585951585951585951595A525B5C545E5F57 5F60585B5C545A5B5358595156574F55564E55564E56574F575850595A5258595155564E51524A 4E4F474E4F4750514953554A595B505A5C4F5B5D505C5E515C5E515B5D505A5C4F595B4E585A4D 56584B53554851534651534653554856584B585A4D5A584C5A584C59574B59574B58564A575549 565448565448514F4353514555534758564A59574B5A584C5A584C58584C56564A57594C585A4D 57594C56584B55574A56584B585A4D5A5C4F595B4E57594C55574A545649525447515346515346 50514951524A51524A4F50484D4E464B4C444B4C444C4D454E4F474F504851524A52534B52534B 51524A4F50484E4F474F50484E4F474D4E464C4D454B4C444C4D454D4E464E4F4754554D52534B 5051494D4E464A4B4347484045463E44453D474840474840484941484941484941484941494A42 494A42494A4248494146473F45463E45463E474840494A424B4D42484A3F4A4C3F4E5043515346 535548545649545649545649585A4D585A4D56584B52544750524550524553554856584B4E4F47 4F504851524A54554D595A525E5F5763645C66675F5A5B53595A5258595157585055564E54554D 53544C52534B5A5B53595A5257585056574F56574F575850595A525A5B534246454246453C403F 3337363539383D4140383C3B2B2F2E2E32312F3332303433323635353938393D3C3D41403F4342 404443393D3C383C3B3C403F3A3E3D3438373A3E3D484C4B3337363236353539383C403F484C4B 5357565A5E5D5C62605C62605C65625D66635E67645E67645D66635B64615A6360565F5C59625F 5E6764616A67636C69636C69626B68626B68656E6B626B68606966646D6A69726F6B747167706D 626B687079766E77746E77746F78756D7673656E6B58615E4E57543A3E3D4A4E4D5357564E5251 4A4E4D4E52514F5352494D4C424645454948484C4B4B4F4E4D51504D51504D51504C504F4A4E4D 4C504F4D51504E52514D51504B4F4E484C4B464A494A4E4D4F53525155544B4F4E4145443E4241 4347464B504C3A3F3B383D373C413B4B504A5C615B6368625C615B525751545953575C565C615B 636862686D67666B655E635D575C565F645E60655F6166605E635D5B605A5B605A60655F656A64 595E58595E585C615B616660656A646267615B605A555A54656A64656A64565B553B403A30352F 393E38444943454A44464B45474C464D524C5459535459534A4F493F443E3A3F3950554F50554F 50554F525751575C565A5F595C615B5C615B484D474D524C50554F4E534D4C514B4D524C50554F 5156504C514B50554F5459535358524E534D454A443D423C383D37484D474C514B525751555A54 545953555A545B605A626761676C66686D67686D67666B656368625F645E5E635D5D625C5D625C 5C615B5C615B5C615B5B605A585D5754595350554F565B555D625C5C615B5C615B646963616660 5C615B6166604348421F241E3338324449433F443E3C413B353A344146403D423C3B403A383D37 353A34343933343933353A34373C36383D37383D37373C36373C36363B35353A34353A34353A34 3D423C3C413B3B403A3A3F393A3F393B403A3D423C3E433D3A3F393E433D2A2F29262B253D423C 3D423C32373140453F43443F454641494A454D4E494E4F4A4C4D4846474242433E474843494A45 4C4D4850514C52534E51524D4D4E494A4B4641423D4546414A4B464B4C47494A45464742444540 43443F3D3E39494A4547484343443F42433E3637323A3B3656575245464141423D3C3D38393A35 3839343B3C373F403B43443F3E3F3A3F403B41423D42433E42433E42433E41423D41423D41423C 3B3C3631322C2627211F201A21221C2829232E2F292F302A45464053544E4C4D4742433D43443E 4748424849432F30284A4B4361625A61625A5859515859515F605862635B595A5256574F52534B 4F50484F50485051495051495051496061595F60585E5F575B5C5458595153544C5051494D4E46 58595154554D51524A53544C5859515A5B5357585052534B505149494A424041393F4038494A42 55564E57585052534B5A5B535A5B535A5B535A5B535A5B535A5B535A5B535A5B536061595D5E56 58595153544C5051494E4F474F50484F50485A5B53595A52585951575850595A525B5C545F6058 61625A54554D5B5C5461625A5E5F5754554D4F504851524A56574F51524A51524A51524A51524A 51524A51524A51524A51524A4E4F474E4F474E4F474E4F474E4F474E4F474E4F474E4F47484941 494A424A4B434D4E4650514954554D5859515A5B5355564E53544C51524A4F50484E4F474C4D45 4A4B4347484055564E5C5D5563645C65665E63645C62635B66675F6A6C616A6C61696B5E67695C 65675A65675A67695C696B5E6B6D6067695C6B6D60686A5D5D5F525B5D5062645765675A626457 61625A62635B64655D66675F67686067686067686067686061625A5F60585D5E565A5B535A5B53 5A5B535C5D555D5E5654554D52534B4F50484D4E464C4D454D4E464F50485051494E4F47505149 53544C53544C51524A52534B54554D57594E56584D57594C585A4D595B4E595B4E585A4D57594C 56584B585A4D55574A5254474F51444F514452544755574A585A4D58564A575549575549565448 55534755534754524654524654524656544857554958564A59574B58564A575549545448525246 55574A585A4D57594C525447515346545649585A4D5A5C4F595B4E57594C55574A5254474F5144 4D4F424C4E415051494F50484E4F474E4F474E4F474E4F474D4E464C4D454E4F474F504851524A 52534B52534B51524A4F50484E4F474D4E464C4D454C4D454D4E464E4F4750514953544C54554D 52534B52534B51524A51524A5051494F50484F50484F504846473F46473F4748404849414A4B43 4B4C444C4D454C4D454D4E464E4F474E4F474F504851524A52534B53544C54564B525449545649 585A4D5A5C4F5C5E515B5D505A5C4F595B4E5E60535D5F525C5E515A5C4F57594C55574A545649 55574A51524A51524A51524A53544C5758505C5D5561625A64655D5B5C545B5C545A5B53595A52 58595157585056574F55564E5859515859515758505758505758505758505859515859513F4342 4B4F4E4C504F3E4241363A393C403F3F43423B3F3E3F4342414544444847464A49484C4B484C4B 464A49464A494448474349474A4E4D4B514F404443343A38424645585E5C4A4E4D474D4B474B4A 4B514F565A59606664686C6B6B716F5D66635E6764606966616A67616A67616A67606966606966 656E6B68716E6C75726D76736B747167706D626B685F686567706D656E6B666C6A69726F717775 7079766C7270636C69696F6D666F6C686E6C68716E666C6A555E5B4147453036344A4E4D5A5F5B 606463565B574D51504A4F4B434746373C38383C3B3D423E464A494D524E5054534F54504C504F 494E4A4C504F4D524E4D51504E534F4D51504C514D4A4E4D494E4A3D41404E534F5C605F555A56 4347463C413D494D4C5A5F5B353A3441464050554F5B605A5E635D595E585358524E534D5C615B 555A545358525D625C696E686A6F695B605A4B504A5459535B605A646963686D67666B65616660 5D625C5A5F59575C56565B55565B555A5F595F645E60655F5E635D5A5F59666B656D726C565B55 3136302F342E4D524C555A544348424C514B4C514B555A546166605F645E515650494E484A4F49 4F544E4A4F49454A44464B454B504A525751565B55585D57494E484F544E5156504D524C4A4F49 4B504A4D524C4D524C4E534D535852585D57565B554D524C424741393E38353A34555A54515650 525751565B555B605A5F645E686D677277716A6F696E736D70756F6C716B6469635D625C585D57 575C5662676161666060655F6267616368626166605B605A565B555A5F595D625C585A55525751 5B5D585A5F595D5F5A636862363833181D17393B36474C463F413C3E433D3B3D38484D473F443E 3D423C393E38353A34333832333832343933353A343B403A3B403A393E38383D37363B35353A34 3439333338323E433D3D423C3C413B3B403A3C413B3D423C3F443E40453F3B403A3D423C272C26 252A2441464040453F3338324247413F403B42433E494A4552534E58595457585350514C494A45 4849444A4B464E4F4A54555058595457585350514C4A4B4647484346474244454042433E43443F 464742494A454B4C47393A3547484345464143443F46474238393437383351524D4D4E494C4E49 4C4D48494B4647484342443F3F403B3B3D383D3E393D3F3A40413C41433E444540454742484944 484A4543443F3B3D3831322D27292428292431332E44454050524D4B4C474F514C4C4D48444641 4748434B4D4841423D2E2F2922231D42433B5C5D575B5C544D4E48494A424E4F4952534B4F504A 494A4243443E40413940413B41423A40413B3E3F3742433D43443C44453F44453D41423C3D3E36 38393335362E41423C3C3D35393A343C3D3541423C42433B3C3D3735362E3E3F393D3E36383933 3839314849435A5B535C5D5753544C5F605A5F60585E5F595E5F575E5F595D5E565D5E585D5E56 5D5E565A5B5355564E52534B51524A54554D5859515A5B5353544C52534B51524A51524A53544C 56574F5B5C545D5E5648494154564B5E5F575D5F5452534B494B404849414B4D4256574F56584D 56574F56584D56574F56584D56574F56574F53544C53544C53544C53544C53544C53544C53544C 53544C5D5E565A5B5356574F53544C52534B52534B54554D56574F5C5D5558595154554D53544C 54554D53544C5051494C4D4547484051524A5D5E5664655D64655D64655D6768606B6C6463655A 6264575F61565E60535E605560625563655A65675A65675C6A6C5F67695E5B5D5056584D5C5E51 6062575F615660615961625A63645C64655D64655D63645C62635B61625A696A6266675F61625A 5D5E565A5B53595A52595A525A5B53595A5257585054554D51524A50514951524A53544C55564E 44453D494A4250514953544C54554D56574F595A525C5D5552544953554854564B55574A55574C 54564953554A52544757594E5456495052474D4F424D4F4450524554564B57594C555249555347 545148535145524F46525044514E45514F4359564D59574B5A574E59574B58554C565448535047 5050444E4E4453554857594E55574A4F51464C4E4151534857594C57594E55574A5153484E5043 4D4F444F514452544954564B5051494D4E464C4C444C4D4551514951524A5050484C4D454F4F47 4F504852524A52534B53534B51524A5050484E4F474A4A424A4C414C4C444D4F4451514954564B 5959515B5D5251514950524753534B53554A56564E57594E595951595B5057574F57594E595951 5A5C515D5D555E60556161596163585A5A525B5D525F5F5761635864645C64665B65655D63655A 5E5E525E60536262566264576363576062555E5E525B5D5059594D5A5C4F5D5D515D5F525E5E52 5C5E515C5C505A5C4F57574D54564B52524A4E50454E4E464E504551514951534857574F56584D 585850585A4F5A5A525A5C515C5C545B5C5456574F5859515A5B535B5C545B5C545A5B53585951 56574F4A4E4D494D4C464A494448474347464246454347464347464A4E4D4B4F4E4C504F4C504F 4B4F4E494D4C464A494448473C4240404946494F4D4D56534F555349524F454B493F4845404644 47504D565C5A616A67696F6D67706D666C6A606966636C69646D6A666F6C666F6C666F6C646D6A 626B68616A6768716E68716E67706D67706D666F6C656E6B646D6A646D6A676D6B6066645E6261 646A686F73727177756A6E6D5F65636468676F75737276755B615F3B3F3E2C32303A3E3D4E5251 53585450554F4B504C454A443F44403B403A393E3A373C363E433F414640454A46494E484C514D 4B504A4A4F4B494E484C514D4C514B4C514D4C514B4C514D4B504A4B504C4B504A474C48535852 595E5A565B55575C58595E584C514D393E38454A445D625C575C56464B454D524C535852525751 5C615B5B605A5A5F59595E58565B555156504C514B484D47454A44666B655E635D555A54525751 565B555D625C636862656A645D625C5C615B575C56555A545D625C676C66686D676267616F746E 454A442F342E4449435E635D5D625C53585250554F616660575C564F544E515650575C56575C56 4C514B40453F353A3440453F4C514B52575151565050554F545953595E584247414B504A525751 50554F4A4F494B504A5459535D625C555A544E534D5459535F645E5358523D423C414640585D57 616660646963696E686A6F696B706A6C716B70756F7479735D625C656A64666B65616660656A64 717670797E78787D776D726C6469636166606368625C615B4F544E4F544E5A5F5960625D60625D 66676263656063645F6E706B70716C5C5E5922231E3739343F403B383A353B3C373C3E393F403B 4547423C413B3A3F39373C36363B35363B35393E383C413B3E433D383D373439332F342E2C312B 2D322C323731383D373C413B333832383D373C413B393E38323731313630383D3740453F414640 373C361D221C262B25353A34343933474C46575C564D4E49484944444540444540494A454E4F4A 51524D51524D4C4D484B4C474A4B46494A45494A454B4C474D4E494E4F4A4D4E49494A45444540 41423D42433E4849444F504B53544F4748434748434C4D4858595456575240413C3F403B595A55 5E605B565B5546484330352F2C2E293338323B3D38383D373B3D383D423C43454042474142443F 3F443E42443F4247414648453D423E383A37363B373E403D40454140423F3B403C383A37363B37 3A3C393D423E4547444449454345423F413E42433E34352F31322D3D3E384445403E3F393B3C37 3F403A3E3F3A3E3F393E3F3A3E3F393E3F3A3E3F393E3F3A3E3F3942433E44453F454641474842 47484345464044454042433D494A45494A4448494447484246474245464044454044453F3D3E39 41423C42433E3C3D373738333C3D374D4E495D5E5851524D5758525C5D585E5F595C5D585A5B55 5A5B565B5C5655564E585A4F5A5C5157594E5153484D4F444C4E434D4F4455574C55574C56584D 57594E595B505A5C515B5D525B5D5255574C57594C5A5C515B5D50585A4F5355484D4F44494B3E 52544955574A56584D5456495052474E504350524753554A55564E53544C5051494D4E464B4C44 4A4B434A4B434A4B434B4C444B4C444D4E464F504851524A53544C54554D55564E4D4E464D4E46 4D4E464D4E464E4F474E4F474E4F474E4F474C4D454D4E4652534B595A5261625A63645C61625A 5D5E56575850606257686961686A5F61625A5D5F545F605863655A61625A6B6D62696A625C5E53 58595161635865665E60615965665E63645C6061595E5F575C5D555B5C545C5D555C5D5562635B 5F60585D5E565E5F5761625A62635B5F60585C5D555758505A5B535E5F5761625A61625A606159 5D5E565B5C545A5B5352534B53544C5C5D555B5C5451524A50514958595153544C51534851524A 54564B585951595B5056574F5254494E4F474A4C414849414D4F4455564E5A5C5158595154564B 5F5C55605D54605D565F5C535B58515552494F4C454C49405F5C555C59505A57505B584F5E5B54 5F5C535D5A5358584E5A5A525A5C515B5C545B5D5258595154564B5051494D4F445B5C5457594E 51524A4B4D42494A424B4D424E4F475051494D4D4546463E46433C4848404F4C455151495C5952 65655D56534C5151494E4B444949414D4A434F4F4757544D5A5A5256534A56564A5B584F5C5C50 615E55606054625F566060546D6A616A6A5E69665D6464586360575D5D515C595059594D636057 5E5E525D5A515C5C50605D545F5F535F5C535B5B4F5F5C535D5D515F5C535C5C505D5A5159594D 5A574E57574B514F434E4E424F4D414E4E4254524658584C615F53636357605E525D5D515E5C50 5A5A4E5A584C56564A575549545448605E525A5A4E59564D59594D5F5C535D5D5159564D505044 5552495454485A574E5E5E52656259646458615E555A5A505A5B53595A5257585056574F56574F 5859515A5B535B5C54404443404443404443424645444847484C4B4B4F4E4D51504A4E4D4A4E4D 494D4C474B4A464A49464A49464A49454B49434947414A47414A47414A47424B48444D4A464F4C 47504D4F5855545D5A5B6461616A67656E6B656E6B646D6A626B68636C69636C69636C69636C69 636C69646D6A656E6B656E6B68716E67706D67706D666F6C656E6B646D6A646D6A636C696B6F6E 686C6B6468676367666468676569686569686468676B6F6E666A69585C5B464A49393D3C3A3E3D 484C4B565B575459555257514F544E4B504A484D47454A44444943434842444943464B45484D47 4A4F494B504A4C514B4C514B4B504A414640424741434842454A44474C46494E484A4F494B504A 555A54555A545156505257515B605A5B605A414640212620454A445B605A575C564A4F494F544E 5257514F544E565B55595E58595E58595E58585D57565B5553585250554F4E534D5C615B575C56 535852535852585D575C615B5E635D5E635D6267615D625C555A54515650575C5660655F616660 5B605A5459534146403E433D50554F595E584B504A40453F4247414B504A4B504A4C514B4B504A 4A4F49474C46454A444449434B504A515650575C56575C565257514E534D4D524C4E534D444943 494E484F544E5156504C514B494E485156505D625C545953555A545C615B5A5F59454A44343933 4247415E635D7277717277717277716E736D6A6F69686D676A6F696C716B6D726C686D67616660 616660686D676E736D686D675E635D5E635D585D57595E585F645E5C615B5257515358525C615B 686964696A6574757072736E68696470716C6A6B66494A451F201B3536313C3D38373833393A35 3B3C373B3C373F413C41433E3E433D3D423C3C413B3C413B3C413B3D423C3D423C3C413B3A3F39 373C36343933343933363B353A3F393C413B3D423C3B403A3A3F393B403A3E433D3F443E3F443E 3E433D4146403B403A222721282D273237312C312B3A3F39464B4550514C4A4B464445403F403B 3F403B41423D4445404546414F504B4B4C474445403E3F3A3C3D383D3E3940413C43443F484944 474843454641444540454641464742494A454B4C4741423D3F403B3E3F3A45464141423D2B2C27 2829243E403B3D3F3A3D423C363B35252A241E231D262B253136303439333A3F393D423C40453F 4146403F443E3D423C3E433D3F443E4246453C403F373B3A383C3B3D41404145444044433D4140 3C403F3B3F3E3B3F3E3F43424246454246453E42413A3F3B43434135363131322D3B3C3743443F 3F403B3B3C373E3F3A40413C40413C40413C40413C40413C40413C40413C40413C43443F43443F 42433E42433E42433E42433E43443F43443F47484347484346474245464144454043443F42433E 42433E3C3D3840413C43443F42433E40413C47484356575262635E52534E5657525A5B565B5C57 585954565752575853585953595A525C5E535E60555B5D5253554A4D4F444A4C414A4C4154564B 54564B55574C55574C56584D56584D56584D57594E57594C57594C56584B55574A545649525447 5052454F51444A4C3F4D4F4250524552544752544753554853554854564954554D53544C505149 4E4F474D4E464C4D454D4E464D4E464D4E464E4F474F504850514951524A53544C54554D54554D 53544C53544C53544C53544C53544C53544C54554D54554D595A5255564E51524A50514955564E 5C5D5563645C686961585951585951595A525C5D555F605861625A5F60585E5F57606159686961 6869615D5E565A5B5362635B67686064655D67686066675F65665E64655D62635B61625A5F6058 5E5F575E5F575B5C54595A525A5B535D5E565E5F575C5D55595A526061595F60585D5E565B5C54 595A525859515859515758505D5E565758505758505F60585D5E5651524A4D4E4653544C51524A 4F50484F504852534B56574F57585054554D50514957585053544C4F504851524A56574F585951 55564E51524A58554E58554E58554E58554E57544D55524B535049524F48535049514E474E4B44 4E4B44504D464F4C454D4A434949414A4A424A4B434D4E464F50485051494F50484D4E464C4D45 55564E53544C52534B5051494F50484E4F474E4F474E4F4755524B504D464F4C45524F4854514A 524F4855524B5B5851615E575D5A5358554E55524B56534C5B5851615E5766635A5F5C535F5D51 615F536260546462566563576664586664586C6A5E6A685C666458636155605E525F5D515F5D51 5F5D51666458646256615F53605E525F5D515C5A4E5755495250445C5A4E5E5C50605E52615F53 615F535E5C505B594D59574B59574B565448535145514F4352504455534759574B5C5A4E5E5C50 5E5C505D5B4F5C5A4E5A584C59574B58564A58564A5D5B4F59574B56544859574B5E5C50605E52 5D5B4F58564A5B594D59574B5654485755495A584C5E5C506260546161555F5F575D5E565C5D55 5A5B5358595156574F54554D53544C3F43423F4342404443414544444847474B4A4A4E4D4C504F 494D4C474B4A444847424645424645424645444847444A48474D4B414A473B444139423F3B4441 434C494C5552535C59616A67616A67616A67616A67626B68636C69646D6A646D6A626B68616A67 606966606966616A67646D6A67706D69726F666F6C666F6C666F6C656E6B646D6A636C69636C69 626B68676B6A686C6B676B6A6367665E62615D6160626665686C6B6367665155543B3F3E333736 3A3E3D4448474A4E4D4A4F4B454A46454A44454A44454A44454A44454A44454A44454A444B504A 4B504A4A4F49494E48494E484A4F494C514B4D524C484D47484D47494E484A4F494B504A4C514B 4D524C4D524C4B504A585D575F645E585D574E534D474C4640453F393E38434842555A54585D57 5156505459535358524F544E5257515C615B5E635D5F645E61666062676161666060655F60655F 5B605A595E58595E585C615B60655F6166605E635D5A5F596A6F696469635B605A555A54555A54 565B554F544E464B45373C363B403A4D524C61666060655F5156505156505F645E4348424D524C 555A54525751494E48454A444A4F49525751474C464B504A50554F52575151565050554F4F544E 4F544E4B504A494E484F544E585D575459534B504A51565060655F4A4F49555A545A5F594E534D 383D373439334E534D6B706A777C76757A747176706C716B676C66666B65676C66696E68777C76 676C665D625C666B65747973757A74676C66595E585D625C5C615B6267616A6F696B706A666B65 666B656C716B72736E6D6E6978797471726D5C5D5862635E595A552A2B26292A253E3F3A43443F 40413C44454045464142433E42443F42443F40453F40453F3F443E3E433D3C413B3A3F393A3F39 383D37373C36363B3534393332373130352F2F342E2F342E3A3F3934393330352F353A343F443E 4247413B403A3338322D322C373C3630352F3D423C4348422D322C252A24212620383934393A35 3C3D383D3E393E3F3A41423D44454047484347484344454040413C3C3D383A3B363A3B363B3C37 3C3D3840413C41423D43443F44454043443F41423D3F403B3D3E39393A3536373232332E363732 35363125262123241F3739344446414B504A4B504A3F443E373C363C413B444943474C463A3F39 3C413B3F443E3F443E3D423C3B403A3A3F393B403A3E42413B3F3E383C3B393D3C3D4140404443 4145443F43424246454044433E42414044434246454145443D4140393E3A43434137383330312C 38393440413C40413C3C3D383B3C3741423D41423D41423D41423D41423D41423D41423D41423D 42433E40413C3E3F3A3D3E393D3E393E3F3A40413C42433E43443F43443F42433E42433E41423D 40413C40413C40413C3C3D383F403B42433E42433E43443F4748434F504B55565152534E545550 56575255565151524D50514C52534E5556505A5B535E60556163585F615657594E4E5045494B40 484A3F54564B54564B53554A53554A52544952544952544951534857594C55574A5254474F5144 4F514451534655574A57594C43453845473A494B3E4E504353554856584B55574A54564953544C 52534B51524A4F50484F504850514951524A52534B51524A51524A52534B52534B52534B53544C 53544C53544C54554D54554D54554D54554D53544C53544C53544C53544C595A5255564E4F5048 4A4B434B4C4451524A5C5D5563645C5C5D5554554D4F504853544C5D5E5663645C6061595A5B53 60615966675F66675F5E5F575C5D5562635B67686067686063645C64655D66675F66675F64655D 61625A5D5E565B5C546061595D5E565B5C545C5D555F605861625A5F60585C5D5568696163645C 5C5D5555564E51524A51524A53544C55564E5F60585B5C545D5E5662635B5F605854554D4E4F47 4F50485051494E4F474E4F4751524A55564E56574F53544C4F504854554D5051494C4D454B4C44 4C4D454B4C4448494144453D504D46504D46514E47524F4853504955524B57544D58554E514E47 4F4C454D4A434D4A434D4A434D4A434B484147473F4D4D454E4F4750514951524A52534B52534B 51524A5051494E4F4750514953544C55564E55564E52534B4F50484C4D4554514A53504955524B 5A57505A575057544D55524B57544D56534C58554E5B58515E5B545E5B545D5A535B585159564D 636057626054615F53605E52615F5362605463615564625668665A656357615F535E5C505D5B4F 5F5D51626054646256626054615F53605E525F5D515E5C505A584C555347514F435A584C5C5A4E 605E526361556462566260545E5C505C5A4E6260545E5C505A584C555347525044525044535145 5452465C5A4E5C5A4E5B594D5B594D5B594D5B594D5A584C5A584C5B594D58564A555347575549 5C5A4E5F5D51605E525E5C505B594D59574B56544854524654524658564A5E5C50616155595951 595A525A5B535B5C545A5B5357585055564E53544C4B4F4E494D4C464A494347464145443F4342 3F43423F43424448474347464145444044434044434145444246454246454248463E47443D4643 3E4744444D4A4D565357605D5D6663666F6C656E6B626B68616A67616A67626B68646D6A666F6C 5F68655F68655F6865606966626B68656E6B67706D69726F656E6B656E6B646D6A636C69626B68 626B68616A67616A67626665636766656968666A696468676266655F63625E6261414544363A39 2E32313539384549484C504F464A493C413D393E3A3B403A3E433D414640444943454A44474C46 474C464D524C4B504A484D47464B45454A44474C46494E484B504A51565050554F4E534D4B504A 494E48464B45444943434842353A34464B455257514A4F493B403A393E38484D47585D57424741 4E534D565B55595E585A5F59585D57555A54565B55585D575A5F595D625C616660646963666B65 666B65666B65656A64646963646963666B65686D67656A645E635D585D5760655F5B605A555A54 4F544E4A4F49414640333832272C2640453F474C46555A545C615B4F544E3F443E424741515650 454A444D524C5459535257514A4F49464B454A4F4950554F40453F434842484D474E534D535852 565B55585D57585D5750554F494E484E534D5B605A595E584C514B4F544E60655F484D47535852 555A54484D4740453F4D524C686D677B807A70756F6E736D6B706A696E68696E686C716B70756F 7378726F746E5F645E585D576469636F746E6B706A6166605B605A6166606469636A6F69717670 73787270756F6E736D6F746E7576716869646D6E6963645F4B4C475556514F504B1F201B31322D 42433E45464142433E4849444A4B4643443F41433E3E403B3C413B3A3F39393E38373C36363B35 353A34353A342E332D30352F343933373C36393E38393E38383D37373C36383D37353A34353A34 3A3F3940453F4146403D423C383D37414640414640292E28272C262D322C272C2630352F353A34 2526212E2F2A393A3542433E454641464742474843494A453C3D383F403B444540484944494A45 48494445464142433E484944494A454B4C474B4C474A4B4647484344454041423D45464141423D 3A3B363A3B363C3D3831322D2F302B3E403B4F514C5358525257514A4F49484D474C514B494E48 4146403A3F393C413B3D423C3D423C3C413B3A3F39393E38383D37383C3B373B3A373B3A393D3C 3B3F3E3D41403E42413E42414246453F43423D41403F43424246454246454044433C413D434341 393A3532332E3536313C3D383F403B3C3D38393A353E3F3A3E3F3A3E3F3A3E3F3A3E3F3A3E3F3A 3E3F3A3E3F3A3E3F3A3D3E393C3D383B3C373B3C373C3D383D3E393E3F3A3F403B3F403B3F403B 3F403B3E3F3A3E3F3A3E3F3A3E3F3A3D3E393E3F3A3F403B3E3F3A3D3E393C3D383B3C373B3C37 4F504B51524D53544F50514C4C4D484B4C474E4F4A51524C56574F5B5D526062575F6156595B50 5153484D4F444B4D4256584D56584D55574C54564B52544951534850524750524755574C525447 4F51444D4F424E504352544757594C5A5C4F46483B44463945473A494B3E505245545649545649 52544953544C52534B51524A50514951524A52534B54554D55564E54554D54554D53544C53544C 52534B52534B52534B52534B51524A5051495051494F50484F50484E4F474E4F474E4F474D4E46 50514951524A5051494D4E464C4D454F504852534B6061595A5B5355564E56574F5C5D55606159 61625A5F605864655D66675F65665E5F60585B5C545C5D5561625A63645C64655D66675F696A62 6B6C64696A6265665E5F60585C5D5563645C6061595E5F5760615964655D66675F64655D61625A 67686062635B5A5B5354554D50514951524A54554D5758505B5C545B5C545F605862635B606159 595A5253544C50514952534B51524A51524A53544C57585058595155564E52534B51524A4F5048 4D4E464B4C444A4B4348494146473F44453D4F4C45504D46524F4854514A56534C57544D59564F 59564F57544D57544D58554E59564F5A57505B58515B58515959515B5B53595A5258595156574F 54554D52534B4F50484E4F474C4D454F504853544C56574F57585054554D51524A4E4F474F4C45 514E4755524B5B58515D5A535D5A535D5A535D5A5356534C56534C58554E59564F59564F58554E 57544D57544B615E555F5D515D5B4F5B594D5A584C5B594D5D5B4F5E5C50615F53605E525E5C50 5D5B4F5D5B4F605E526361556563575A584C59574B5A584C5B594D5C5A4E5C5A4E5C5A4E5B594D 5A584C5C5A4E5F5D51615F53626054626054626054615F536664586361555F5D515B594D575549 5553475553475553475A584C5A584C5A584C5B594D5B594D5C5A4E5C5A4E5C5A4E5D5B4F5B594D 59574B58564A59574B5B594D5D5B4F5E5C505250445654485A584C5A584C575549565448575549 57574B4C4C444D4E4651524A54554D575850585951595A52595A525054534E5251494D4C434746 3F43423B3F3E393D3C383C3B3E42413F43424044434145444145444145444044433F43423A403E 3F4543484E4C515755595F5D5F6563626866636967626866626866626866626866636967646A68 666C6A676D6B5B64615D66635F6865626B68646D6A656E6B656E6B656E6B636C69636C69626B68 626B68616A676069665F68655F6865666A69646867656968696D6C6B6F6E626665515554424645 2E3231313534393D3C464A49515554525655484C4B3F44403A3F3B3D423C414640464B45494E48 4B504A4C514B4C514B4A4F49484D47444943424741424741434842464B45484D47464B45454A44 4348424146403E433D3B403A393E38383D373B403A2F342E282D27333832454A4450554F4F544E 4A4F49434842474C465358525D625C5D625C5B605A5C615B5C615B4F544E525751555A54595E58 5D625C5F645E60655F60655F666B6563686260655F5F645E5F645E5B605A5358524E534D4A4F49 454A4440453F3B403A353A342E332D282D27252A244D524C50554F565B55575C564D524C424741 414640474C465459535358525257515257515257515156504D524C4A4F494B504A4C514B4E534D 50554F5156505257515257515257514A4F49414640454A44545953535852464B45464B45545953 5156505257514B504A4146404A4F4961666070756F70756F61666060655F5F645E60655F636862 676C666B706A6D726C696E68626761616660666B65656A645C615B595E585E635D414640454A44 494E484A4F494B504A4A4F49454A4440453F4A4B463F403B42433E3F403B35363141423D3C3D38 1516112F302B3C3D383B3C373738333F403B42433E3B3C37363833393B36353A343237312F342E 2F342E30352F3237313439332F342E3439333C413B454A444C514B4F544E5156505156503E433D 4449434A4F494A4F49484D47474C464A4F494F544E484D47454A44252A241D221C272C262F342E 424741474C46393A353E3F3A44454046474244454041423D41423D43443F4748434A4B4650514C 54555056575255565152534E50514C56575256575255565154555053544F51524D50514C50514C 595A5554555048494443443F4546413B3C373536313C3E394C4E49474C464348424348424E534D 535852454A4430352F3A3F393A3F393B403A3C413B3D423C3C413B3A3F39383D37353938363A39 383C3B393D3C393D3C393D3C3A3E3D3B3F3E3D41403B3F3E393D3C3C403F414544444847444847 42474341413F3C3D3835363132332E3738333D3E393D3E393839343A3B363A3B363A3B363A3B36 3A3B363A3B363A3B363A3B36393A353A3B363B3C373C3D383C3D383B3C373A3B36393A353C3D38 3C3D383D3E393D3E393D3E393D3E393D3E393D3E393E3F3A3E3F3A3F403B3F403B3E3F3A3B3C37 3839343536314A4B464D4E4950514C4E4F4A4B4C47494A454B4C474E4F494E4F4754554D5A5B53 5B5C5457585053544C52534B52534B58595158595157585056574F54554D53544C52534B525449 5052474F51464F51464F514650524753554A56584D57594E4F51464A4C4146483D46483D4A4C41 4E50454F51464F514653544C52534B51524A50514951524A52534B54554D55564E53544C53544C 52534B52534B52534B51524A51524A51524A54554D53544C53544C52534B51524A5051494F5048 4E4F474C4D4553544C5A5B535B5C5457585052534B4E4F474C4D4560615962635B62635B5E5F57 595A52595A525F605865665E67686065665E62635B5E5F5758595154554D5758505C5D5564655D 6768606A6B636B6C646A6B6365665E6061595C5D555B5C54595A52575850595A525E5F57606159 5E5F575C5D555E5F575C5D5558595155564E54554D55564E5859515A5B5354554D595A525C5D55 5E5F575E5F575E5F575A5B5356574F57585055564E55564E5859515C5D555D5E565A5B5356574F 57585058595158595157585056574F55564E56574F57585055524B57544D59564F5C59525C5952 5B585159564F57544D53504955524B58554E5B58515D5A53605D5663605963635B5A5A52585951 56574F53544C51524A4F50484E4F474E4F474F504851524A53544C54554D55564E54554D52534B 51524A53504955524B56534C57544D59564F5C59525D5A535C595266635C605D5657544D504D46 504D4656534C5F5C55656259605D545F5D515E5C505E5C505E5C505E5C505F5D51605E525A584C 5A584C5B594D5D5B4F5F5D51605E526260546361555C5A4E5A584C58564A5755495755495A584C 5E5C50615F535E5C505D5B4F5C5A4E5C5A4E5D5B4F605E52626054646256646256636155615F53 5F5D515E5C505D5B4F5D5B4F5D5B4F5A584C5A584C5A584C5B594D5B594D5C5A4E5C5A4E5C5A4E 605E52605E525E5C505B594D58564A57554957554958564A514F435654485C5A4E5D5B4F59574B 5553475351455151454B4B434A4B434B4C444D4E464F504853544C56574F585951494D4C474B4A 4448474145443F43423E42413E42413E42413C403F3D4140404443424645434746424645404443 3F43423D4341454B495359575F6563666C6A686E6C656B696268665D63615E6462606664626866 636967646A68656B69656B695B64615D6663606966636C69646D6A646D6A636C69626B68626B68 616A67616A676069665F68655E67645E67645E67646C706F696D6C666A69656968606463525655 3C403F2B2F2E434746484C4B4E52515155544F5352494D4C4246453E433F353A36383D373C413B 414640434842444943434842424741444943434842424741424741424741434842454A44464B45 3F443E3F443E40453F4146404247414348424449434449434D524C373C362F342E454A44616660 666B65565B55454A44494E484348424F544E5C615B585D57565B555C615B5C615B545953565B55 585D575B605A5D625C5E635D5E635D5E635D565B555257514E534D4C514B4B504A484D47424741 3D423C464B4540453F3A3F39353A343237313338323E433D494E48494E484C514B525751565B55 575C565358524E534D4C514B5156504B504A464B45484D474D524C4D524C454A443D423C474C46 484D47494E48474C46454A44434842444943464B454348423D423C4146404C514B4D524C444943 414640494E484E534D4449433439332E332D3E433D535852555A54484D474C514B4B504A4A4F49 4B504A4D524C4E534D4C514B4B504A3B403A40453F454A44464B4540453F3A3F393E433D474C46 3C413B4146404146403D423C3D423C40453F3B403A3237312C2D282627222728232F302B393A35 3E3F3A31322D1A1B163A3B3642433E3B3C3735363140413C4647423E3F3A383A35363833333832 30352F2F342E30352F343933383D373B403A40453F434842474C464B504A4D524C4D524C4C514B 4B504A40453F474C464D524C4A4F49454A44454A444E534D575C563D423C424741292E28282D27 383D3740453F494E4842474154555051524D4B4C4744454040413C40413C4445404748435C5D58 595A5556575253544F52534E53544F56575257585350514C4E4F4A4C4D484A4B46494A454A4B46 4C4D484E4F4A53544F51524D45464141423D47484342433E393A35393B364446413F443E3C413B 4247415358525C615B4C514B333832393E38393E383A3F393C413B3F443E3F443E3E433D3C413B 373B3A3A3E3D3E42413E42413B3F3E383C3B393D3C3B3F3E3B3F3E383C3B363A39383C3B3E4241 4246454448474348443E3E3C3F403B393A3531322D32332E3A3B363C3D38393A35373833373833 3738333738333738333738333738333738333839343A3B363C3D383D3E393D3E393C3D383A3B36 3839343B3C373B3C373C3D383C3D383D3E393E3F3A3E3F3A3E3F3A3D3E393F403B43443F454641 46474246474245464144454043443F4849444E4F4A50514C4D4E494B4C474B4C474C4D484A4B45 4E4F4752534B53544C51524A51524A53544C56574F57585056574F56574F56574F55564E55564E 54554D54554D4D4F444E504550524751534852544953554A53554A53554A55574C5052474A4C41 46483D46483D494B404C4E434E504553544C52534B51524A4F50484F504850514951524A52534B 4F50484F50484F504850514950514950514950514951524A5A5B53595A5258595157585055564E 54554D53544C52534B56574F595A525C5D555D5E565B5C5457585054554D53544C56574F5D5E56 62635B5E5F5756574F53544C5A5B5363645C63645C5E5F575B5C545B5C5454554D4D4E46505149 595A5255564E56574F58595158595156574F53544C4F50484D4E464D4E464B4C44494A424C4D45 51524A53544C52534B50514953544C53544C54554D54554D55564E56574F58595158595151524A 5859515A5B535758505859515E5F575E5F57595A52595A525859515859515A5B535E5F575F6058 5C5D55595A5254554D5758505A5B535A5B535859515859515B5C545F60585A57505C59525F5C55 615E57615E575E5B545A575057544D47443D4A47404E4B44514E4753504956534C59564F5A5A52 5B5B53595A52585951585951595A525A5B535C5D555E5F5755564E54554D53544C52534B52534B 52534B53544C53544C5D5A535D5A5359564F535049514E4754514A55524B53504957544D57544D 56534C55524B54514A54514A54514A5451485F5C53615F5363615566645867655968665A676559 66645857554958564A5A584C5C5A4E5E5C505F5D51605E52605E526563576260545D5B4F58564A 5553475654485B594D5F5D51605E525D5B4F5A584C58564A59574B5C5A4E605E526260545F5D51 5F5D51605E52615F53615F536260546260546260545C5A4E5C5A4E5B594D5B594D5B594D5B594D 5A584C5A584C5F5D51626054636155605E525A584C5553475351455351455A584C5A584C5A584C 58564A55534754524654524653534754544C51524A4F50484C4D454B4C444C4D454D4E464E4F47 4347464246454145444044434044434044434246454347463D41403E42413F4342404443414544 4246454246454246454C52505258565B615F626866666C6A656B696268665F6563606664616765 626866636967636967646A686369676369675F68655F6865606966616A67616A67616A67616A67 616A67616A676069666069665F68655E67645D66635D66635C6562646867646867606463555958 454948383C3B3337363236354E52514D51504A4E4D4549484044433B3F3E393D3C383D39303531 333832373C363A3F393A3F39383D37353A3433383240453F414640434842464B45474C46474C46 474C46474C46454A44464B45474C46494E484B504A4D524C4E534D4F544E4B504A474C464E534D 5E635D6469635B605A545953565B555257514247414A4F49565B554D524C4A4F49535852535852 51565052575153585254595354595352575151565050554F4449434146403E433D3E433D40453F 40453F3C413B383D37474C464449434146403C413B353A34363B35474C465A5F59424741474C46 4A4F49484D474449434146403E433D3A3F394146403F443E3E433D40453F4348424348423F443E 3B403A454A44494E484C514B4A4F49474C46464B454B504A50554F4F544E4D524C50554F575C56 595E5854595350554F50554F4C514B3F443E2F342E2A2F29393E38494E48474C463B403A484D47 484D47494E484B504A4C514B494E484449433F443E5156505A5F596267616166605E635D5E635D 5F645E5F645E626761676C66666B655F645E6166606A6F69686D675E635D4E4F4A464742383934 3F403B53544F4B4C4735363130312C4A4B464D4E4940413C3839344546414D4E4947484341433E 393B36373C36383D373A3F393E433D424741464B45494E484E534D4D524C4C514B4A4F49484D47 4449434146403F443E4348424247414146403F443E40453F454A444D524C5358525156504B504A 232822181D172C312B40453F5257514D524C56575251524D4A4B464647424647424A4B464E4F4A 51524D595A555556514F504B4B4C474B4C474E4F4A52534E565752494A4547484344454043443F 43443F464742494A454B4C474748434748433E3F3A3D3E394849444748433C3D38373934393B36 3A3F393C413B3F443E494E484E534D434842313630383D37383D37393E383D423C424741444943 43484240453F3D4140434746474B4A4549483F43423B3F3E3B3F3E3D41403C403F383C3B353938 3539383A3E3D3E42413E42413E433F3B3B3941423D3D3E3930312C2D2E293637323C3D383A3B36 3839343839343839343839343839343839343839343839343B3C373B3C373C3D383C3D383C3D38 3C3D383B3C373B3C373B3C373B3C373C3D383D3E393E3F3A3F403B3F403B40413C3E3F3A41423D 4445404647424546414647424748434A4B463B3C3743443F4D4E4953544F52534E4E4F4A4C4D48 4C4D484C4D474D4E484E4F494C4D47494A444A4B454F504A53544E51524C52534D52534D52534D 53544E53544E54554F54554D4D4F444E50455052475254495254495254495052474F514654564B 5254494E50454A4C4147493E494B404D4F4450524754554D53544C5051494E4F474D4E464C4D45 4D4E464D4E464A4B434A4B434B4C444D4E464E4F474F504850514951524A55564E55564E53544C 52534B5051494E4F474D4E464C4D4551524A5051494F50485051495051495051494E4F474C4D45 45463E494A424D4E4650514951524A52534B54554D56574F595A5252534B51524A55564E51524A 4A4B434E4F475A5B534E4F474D4E464C4D454B4C44494A4247484046473F45463E494A4246473F 45463E4849414D4E465051494F50484D4E464D4E464D4E464E4F474F504850514951524A51524A 52534B54554D5B5C54595A5251524A51524A5B5C545D5E56575850595A525758505758505A5B53 5E5F575F60585C5D5558595151524A56574F5A5B53595A5255564E54554D5859515D5E565C5952 5D5A535F5C55605D56605D565F5C555D5A535C59524A47404D4A43504D46504D46504D46504D46 53504954544C63635B61625A5F60585E5F575F605861625A63645C65665E595A5257585055564E 53544C51524A51524A52534B52534B5C59525D5A5358554E4F4C454D4A43504D46514E474F4C45 48453E4E4B4455524B5A575059564F524F4849463F434037524F465755495E5C5064625668665A 67655965635763615558564A58564A58564A59574B5A584C5C5A4E5E5C505F5D51646256636155 605E525B594D57554958564A5D5B4F615F535F5D515D5B4F5A584C57554957554958564A5A584C 5C5A4E5A584C5B594D5D5B4F5E5C50605E52605E52615F53605E525E5C505E5C505D5B4F5C5A4E 5A584C59574B58564A58564A5755495E5C506462566462565D5B4F565448535145535145615F53 5D5B4F59574B56544855534755534755534753534758585055564E54554D51524A4F50484E4F47 4D4E464C4D454448474347464145444044433F43423F43424044434145444044434044433F4342 3E4241404443424645444847464A495B615F5C62605E64625F65636066645F65635E64625D6361 666C6A666C6A656B69646A68636967636967626866626866636C69626B686069665E67645E6764 5E6764606966616A676069666069665F68655E67645D66635D66635C65625C65625458575A5E5D 585C5B4549482E3231272B2A353938474B4A393D3C343837303433303433343837383C3B393D3C 393E3A373C383A3F393D423C3F443E3E433D3B403A363B353338323E433D414640454A44494E48 4B504A4B504A4A4F49494E48484D47474C46474C46474C46474C46474C46464B45464B453E433D 40453F4B504A575C56525751464B45494E48585D57595E58434842484D475156504348423F443E 4A4F494A4F493E433D3E433D3E433D3D423C3B403A383D37363B353439333B403A393E383A3F39 3D423C42474143484240453F3D423C3C413B3E433D40453F3C413B2F342E272C26333832444943 3338323C413B42474140453F40453F474C46515650585D57525751575C565D625C5E635D5C615B 5B605A5D625C6166605A5F595F645E63686260655F5B605A5B605A616660686D67616660626761 656A64696E686B706A6A6F69656A6460655F585D574D524C40453F3E433D4A4F49575C565A5F59 555A545A5F595B605A5F645E636862666B656368625C615B565B55686D6770756F7378726F746E 6F746E70756F676C665A5F596469636A6F69686D67616660666B657378727479736A6F696C6D68 5D5E593C3D383839344C4D483A3B361F201B2829244B4C474B4C473B3C3732332E3F403B494A45 4445403F413C3D3F3A3D423C414640464B454B504A4F544E5257515459534F544E4F544E4F544E 4F544E4F544E4F544E4F544E4F544E515650474C463D423C3E433D474C46515650555A54555A54 4C514B4B504A292E28212620373C36464B454B504A3C413B50514C4D4E494C4D484D4E4951524D 52534E50514C4E4F4A4445404445404445404647424849444C4D4850514C52534E52534E50514C 4F504B4E4F4A50514C52534E5657525859544A4B464C4D4842433E3E3F3A494A45474843383934 2E302B3E403B474C464D524C494E48454A444449433D423C333832383D37373C36393E383E433D 444943474C46464B45444943434746494D4C4E52514C504F4448473E42413D41403F4342404443 3B3F3E353938343837373B3A393D3C393D3C383D3939393742433E40413C30312C2A2B2633342F 3C3D383B3C373A3B363A3B363A3B363A3B363A3B363A3B363A3B363A3B363E3F3A3D3E393B3C37 3A3B363A3B363B3C373D3E393E3F3A3B3C373C3D383C3D383E3F3A3F403B40413C41423D41423D 3F403B41423D43443F41423D3C3D383A3B363C3D383F403B37383341423D4D4E49555651555651 51524D4D4E494C4D484F504A4F504A4C4D4747484243443E44453F4A4B4550514B4D4E484D4E48 4E4F494F504A51524C52534D53544E53544E4F50485052475153485153485153485052474F5146 4E50454F51465052475052474D4F444A4C414A4C414F514653554A55564E53544C5051494D4E46 4B4C444A4B434A4B434A4B4346473F474840494A424B4C444D4E464F504850514951524A4A4B43 494A4248494146473F44453D42433B41423A40413941423A3F40383E3F3741423A43443C43443C 3F40383B3C3438393135362E37383041423A4D4E4653544C4F5048494A42505149494A42494A42 51524A505149494A425051495E5F575B5C54595A5256574F54554D52534B52534B52534B52534B 4E4F474C4D454B4C444E4F4753544C56574F55564E53544C4A4B434A4B434A4B434A4B434A4B43 4A4B434B4C444B4C44595A525F60585A5B534D4E464C4D455758505A5B5353544C57585055564E 55564E5859515C5D555D5E565A5B5356574F5A5B535F605863645C61625A5B5C54595A525D5E56 62635B5A57505B58515B58515C59525E5B545F5C55605D56615E5758554E5B58515C59525A5750 57544D55524B57544D57574F64645C6061595C5D5558595156574F55564E56574F5758505B5C54 595A5257585054554D52534B51524A505149505149524F4855524B5350494C49424C4942535049 55524B524F485D5A535B585157544D55524B53504954514A56534C57544B413E3548463A525044 5B594D605E525F5D515C5A4E59574B5B594D59574B5755495654485755495A584C5E5C50605E52 5B594D5D5B4F5E5C505D5B4F5C5A4E5E5C5064625669675B5D5B4F5C5A4E5A584C58564A575549 56544856544857554957554958564A5A584C5C5A4E5D5B4F5D5B4F5C5A4E5C5A4E605E525F5D51 5E5C505C5A4E5A584C58564A575549565448504E425A584C646256666458605E5259574B565448 565448605E525D5B4F5A584C5A584C5B594D59574B5452464E4E4252524A53544C55564E56574F 56574F55564E54554D53544C565A595256554C504F474B4A454948464A49494D4C4B4F4E3C403F 3E42413A3E3D333736363A394347465256555A5E5D585C5B5A5E5D5D6160606463626665626665 6266656266655C605F5D61606064636266656367666367666367666167655E67645D66635C6562 5C65625D66635F6865616A67636C695B6461666F6C6E77746B74715F686557605D59625F5F6865 6D71705054533236352B2F2E383C3B4246453C403F3135343B3F3E3B3F3E3C403F3D41403E4241 4044434145444146424449454449434449434348424146403E433D3B403A393E384B504A494E48 474C46454A44444943444943454A44464B453D423C414640454A44484D47474C464247413C413B 383D373E433D464B4550554F555A545459535156504E534D4D524C575C564C514B40453F3C413B 414640474C46494E48474C464F544E4C514B494E48464B45444943454A44474C46484D47565B55 575C565358524B504A4A4F4950554F545953525751575C56575C564F544E454A44464B4550554F 54595350554F4F544E4D524C4D524C515650575C565B605A5B605A5A5F594F544E5459535A5F59 5B605A585D575358525257515257516F746E6C716B5E635D4C514B464B454E534D53585250554F 50554F4F544E4E534D4F544E525751565B555A5F595D625C535852414640414640585D57676C66 6166605C615B60655F60655F666B655E635D5D625C646963575C56515650656A646F746E5C615B 5E635D656A646368626C716B6F746E5E635D6D726C757A74757A746B706A696E6870756F747973 7176707576717677725657523C3D38393A3526272221221D41423D4A4B464748433D3E39363732 3E3F3A4D4E4950514C484A453638334348424E534D4E534D4D524C4F544E4B504A4449434A4F49 494E48494E48484D47474C46464B45464B45464B454C514B4C514B5156505459534E534D484D47 53585264696360655F4F544E2227211C211B3338324348425459535358525A5B565B5C574B4C47 3637323D3E3954555055565143443F43443F4F504B545550555651595A5552534E494A454D4E49 52534E50514C4D4E494A4B46494A45484944494A454A4B464F504B4A4B4644454043443F444540 45464144454041433E3335304C514B555A54454A443C413B444943464B453B403A3D423C40453F 434842464B45454A444146403C413B393E383A3E3D3A3E3D3C403F414544474B4A484C4B454948 4145443E4241444847484C4B4549483D4140383C3B393D3C3D423E3D3D3B454641494A4540413C 30312C292A2530312C3A3B363A3B363B3C373D3E393F403B3F403B3F403B3E3F3A3D3E393E3F3A 3D3E393C3D383B3C373A3B36393A353839343738333A3B363B3C373C3D383D3E393F403B40413C 41423D42433E3B3C373B3C373B3C373B3C373B3C373B3C373B3C373B3C374B4C473D3E393A3B36 494A455758535455504A4B46444540494A45494A45484944474843464742454641444540444540 494A454E4F4A52534E52534E50514C4F504B50514C52534D4E4F474E4F474E4F474E4F474E4F47 4E4F474E4F474E4F4743443C4C4D454F50484B4C444C4D4551524A4F50484748404E4F474E4F47 4D4E464D4E464D4E464C4D454C4D454C4D453F403841423A43443C44453D42433B4041393D3E36 3B3C343F403840413940413942433B43443C44453D45463E45463E41423A42433B45463E4D4E46 54554D57585055564E52534B40413940413947484051524A4F50484748404748404E4F474E4F47 4A4B434849414A4B434F504853544C53544C52534B51524A50514951524A54554D57585056574F 51524A4C4D4551524A51524A51524A51524A51524A51524A51524A52534B4F504850514951524A 51524A5051494E4F474C4D454B4C444B4C444F504856574F5F605864655D6061595758504F5048 56574F5859515C5D555F60586061596061595E5F575C5D5555564E5859515B5C545B5C54595A52 595A525C5D556061595B58515A57505A57505A57505B58515D5A53605D56615E5759564F58554E 5D5A5365625B615E5756534C53504957574F4C4C4450514954554D55564E53544C52534B54554D 57585053544C51524A4E4F474B4C44494A42484941484941494A4256534C57544D58554E58554E 57544D56534C54514A53504954514A54514A55524B55524B56534C57544D58554E58554C605D54 5654484C4A3E4C4A3E5452465D5B4F615F53615F53615F53575549514F435351455250444F4D41 5452465D5B4F6462566563576765596765596664586260545E5C505C5A4E5E5C505D5B4F5D5B4F 605E526462566361555E5C5059574B5A584C5C5A4E5E5C505F5D515F5D515C5A4E59574B575549 5D5B4F59574B56544856544859574B5B594D5A584C59574B56544858564A5C5A4E5F5D515F5D51 5D5B4F5A584C58564A5D5B4F59574B55534757554959574B5553474A483C3E3E324D4D454E4F47 52534B56574F5A5B535C5D555D5E565D5E564549484347464044433D41403C403F3C403F3D4140 3E42413C403F333736383C3B4C504F575B5A555958585C5B626665606463616564626665646867 6468676569686569686569686569686569686569686569686468676367666165646064636B716F 68716E67706D656E6B646D6A636C69636C69636C69656E6B6069665B64615B64615E67645F6865 5B646157605D3A3E3D393D3C383C3B383C3B393D3C3A3E3D3B3F3E3B3F3E3D41403D41403E4241 3E42413F43423F434240444340454141464242474142474142474140453F3E433D3C413B3A3F39 42474142474141464040453F40453F40453F4146404146403E433D40453F424741444943444943 4247413F443E3D423C454A44474C464A4F494A4F49494E48494E484C514B4F544E565B554E534D 464B45444943474C464A4F494A4F49484D47565B555459535257514F544E4E534D4D524C4E534D 4E534D5C615B5D625C585D575156504F544E535852545953515650565B5550554F464B45424741 484D4751565053585250554F5D625C585D5753585252575152575152575150554F4D524C545953 575C565A5F59585D575358524F544E4E534D4F544E6166606267615D625C555A54515650525751 545953535852595E58595E585A5F595B605A5B605A585D575257514D524C4146403B403A444943 5B605A686D67656A6460655F6166605A5F5960655F616660646963656A64575C56484D47474C46 6C716B626761626761676C66686D676C716B6B706A6166606B706A6D726C6B706A646963626761 676C666C716B6F746E70716C70716C5455503D3E393B3C372C2D282B2C274A4B46494A454B4C47 47484343443F48494451524D4F504B4547423638334348424F544E4F544E4F544E5156504E534D 474C4650554F50554F4F544E4E534D4D524C4D524C4C514B4C514B4D524C50554F545953545953 4E534D4C514B555A546267615257514D524C262B251D221C373C364F544E5D625C535852575853 5758534C4D483E3F3A40413C4D4E494B4C473D3E394E4F4A5657525556515455505B5C575A5B56 5A5B5663645F4B4C47494A4545464141423D3F403B3E3F3A3F403B40413C4B4C4748494443443F 41423D41423D42433E4445404345402F312C3F443E474C463C413B363B353C413B3C413B353A34 3D423C3F443E42474144494343484240453F3C413B393E38393D3C393D3C3B3F3E3C403F3D4140 3B3F3E373B3A3438373D4140434746474B4A4549483F43423B3F3E3D41404146423B3B3941423D 43443F3B3C372F302B2B2C2731322D3A3B36363732373833373833383934383934383934383934 3738333C3D383B3C373B3C373A3B363A3B36393A35393A353839343F403B3F403B3F403B40413C 40413C41423D41423D41423D41423D41423D41423D41423D41423D41423D41423D41423D42433E 3A3B36393A35454641545550595A5556575251524D58595457585356565454555053535151524D 50504E50514C4F4F4D51524D53535154555053535153544F5454525556514B4C464B4C444B4C44 4B4C444B4C444B4C444B4C444B4C4442433B46473F484941474840474840494A4247484043443C 42433B42433B42433B43443C43443C43443C43443C44453D43443C4849414C4D454D4E464B4C44 4A4B434E4F4752534B585951585951585951595A52595A525A5B535A5B535A5B534B4C444A4B43 4A4B434E4F4752534B52534B4F50484B4C444B4C44494A424E4F4756574F54554D4A4B4346473F 494A424E4F474B4C44484941494A424B4C444D4E464B4C4448494150514951524A52534B53544C 55564E54554D51524A4E4F4752534B52534B51524A51524A5051495051494F50484F504851524A 51524A51524A51524A5051494F50484D4E464D4E464D4E4650514955564E5B5C545E5F575C5D55 57585053544C50514952534B54554D56574F56574F55564E54554D53544C56574F595A525C5D55 5C5D555B5C545B5C545E5F5762635B5D5A535C595259564F58554E59564F5B58515E5B54605D56 5D5A535D5A53615E5765625B6360595C595259564F59595152524A52534B51524A4F50484D4E46 4C4D454D4E464E4F474E4F474D4E464C4D454C4D454B4C444B4C444C4D454C4D4548453E4A4740 4E4B4453504957544D5A57505B58515C595257544D57544D58554E58554E59564F5A57505B5851 5B584F69665D605E52565448514F43504E42504E424E4C404B493D6563575A584C545246575549 58564A59574B6260546E6C60605E52615F53636155646256636155615F535F5D515E5C505D5B4F 5C5A4E5C5A4E5E5C50626054615F535D5B4F58564A58564A5A584C5E5C50626054656357666458 6664586664585D5B4F59574B55534756544859574B5B594D5A584C58564A5C5A4E5A584C58564A 57554958564A5B594D5F5D516260545B594D59574B58564A5C5A4E5F5D515D5B4F5654484D4D41 51514951524A53544C54554D55564E54554D53544C52534B424645434746454948474B4A494D4C 494D4C494D4C494D4C3E42413F43424A4E4D595D5C5E6261585C5B575B5A5D6160545655545655 545655545655555756575958585A59595B5A5C5E5D5B5D5C5A5C5B575958555756525453505251 4D51504D53514A53504A535049524F48514E464F4C444D4A434C494049463F4845404946464F4C 4B5451464F4C38413E2C35322E32313B3F3E484C4B4A4E4D4347463E4241414544474B4A414544 4145444044434044433F43423F43423E42413E433F3E433F3F443E40453F40453F40453F3F443E 3D423C3C413B41464041464042474143484243484243484243484243484242474141464040453F 3F443E3F443E3F443E40453F414640424741434842434842424741414640414640444943464B45 5156504F544E4D524C4D524C4D524C4D524C4A4F49484D474F544E4F544E4E534D4D524C4B504A 494E48484D47474C46515650535852535852515650525751565B55585D57565B5550554F454A44 3E433D4247414C514B50554F50554F50554F575C5653585250554F50554F535852545953535852 515650494E484E534D525751545953545953555A54585D575C615B5C615B5A5F59595E58585D57 5358524F544E525751585D576166605E635D5C615B5D625C5D625C565B554A4F4941464040453F 464B45555A54666B656D726C686D676267615F645E5C615B5C615B656A646A6F69656A645E635D 4C514B343933636862676C66656A64656A646B706A686D67616660626761757A747176706D726C 6B706A6A6F696A6F6970756F787D776B6C67696A6550514C3C3D38393A352C2D282F302B4C4D48 4849444D4E494C4D484748434849444D4E494A4B4641433E3B3D38484D47545953555A54555A54 575C565459534D524C52575151565051565050554F4F544E4F544E4E534D4E534D4C514B545953 565B555156504C514B4F544E575C565D625C4D524C4D524C282D271C211B373C36555A54656A64 565B5564656057585342433E31322D31322D3F403B4F504B575853545550595A5553544F4E4F4A 51524D4D4E494A4B4651524D50514C4D4E4948494444454042433E42433E44454045464143443F 42433E40413C3E3F3A3F403B43443F494A454D4F4A3F413C434842464B45454A44434842444943 4348424146403D423C3E433D40453F41464040453F3E433D3B403A393E383C403F3F4342414544 4145443D4140393D3C363A393438373A3E3D3F43424448474448474044433E4241414544454A46 3D3D3B40413C40413C3B3C3734353032332E3637323B3C373D3E393D3E393C3D383B3C373B3C37 3B3C373B3C373C3D383F403B3F403B3E3F3A3D3E393B3C373A3B36393A35393A353F403B3F403B 3F403B3E3F3A3D3E393D3E393C3D383C3D383C3D383C3D383C3D383C3D383C3D383C3D383C3D38 3C3D3840413C3E3F3A3B3C373C3D3846474250514C51524D4D4E4952525051514F5050504E4E4C 4C4C4C4B4B494949494949474949494848464747474848464A4A4A4C4C4A4C4C4C4B4B49484943 48494148494148494148494148494148494148494148494146473F4748404A4B434A4B4346473F 45463E4748404C4D454C4D454D4E464E4F4750514951524A52534B53544C45463E4B4C44505149 4F50484C4D454D4E4654554D5A5B534D4E464D4E464D4E464C4D454C4D454B4C444B4C444B4C44 52534B4F50484D4E464E4F475051494F50484C4D4548494154554D4F504852534B5A5B53595A52 4F5048484941494A424B4C4448494146473F474840494A424A4B4346473F43443C4F504851524A 53544C53544C51524A50514951524A51524A53544C52534B51524A5051494F50484E4F474D4E46 4D4E4653544C53544C51524A5051494F50484F50484F50484F50484E4F4751524A54554D56574F 56574F56574F575850595A5250514951524A51524A51524A51524A5051494F50484E4F4756574F 5A5B535D5E565D5E565B5C545B5C545E5F5761625A5F5C555D5A535A575058554E57544D59564F 5B58515C5952615E5763605964615A63605963605964615A605D565959515B5B5358595154554D 52534B52534B52534B51524A505149494A424A4B434B4C444D4E464E4F474F50484F5048505149 423F3845423B4A4740504D4655524B59564F5B58515C595259564F59564F5A57505B58515C5952 5C59525D5A535D5A5166635A6260545C5A4E565448504E424A483C4341353F3D31575549555347 5C5A4E67655969675B615F535E5C50615F53615F53626054636155646256656357656357646256 64625666645864625664625666645869675B69675B6664586260545C5A4E5E5C50626054656357 69675B6B695D6D6B5F6E6C606664586361555F5D515F5D516260546563576462566260545F5D51 5C5A4E59574B56544856544859574B5E5C50615F535553475553475755495A584C5C5A4E5B594D 57554952524652524A52534B52534B52534B5051494E4F474C4D454A4B43323635343837373B3A 383C3B373B3A3438373135342E3231202423383C3B4246453438372D3130393D3C424645404443 414342414342404241404241424443444645464847484A494C4E4D4A4C4B484A49464847444645 4345444244434044433D43413C45423E47444049464049464049463F48453E4744363F3C3F4845 464F4C464F4C3D4643343D3A313A37313A374C504F4C504F4B4F4E494D4C454948424645414544 4145444347464347464246454145444044433E42413D41403D423E3B403C3C413B3E433D3F443E 40453F3F443E3E433D3D423C424741434842444943454A44454A44444943424741414640454A44 4247413E433D3B403A3A3F393D423C40453F4348423E433D424741474C464A4F49494E48454A44 40453F3C413B474C46494E484D524C50554F50554F4E534D4A4F49474C46545953555A54565B55 565B555459535156504E534D4B504A474C46494E484B504A4C514B4D524C4F544E4F544E4E534D 454A443C413B3D423C484D474F544E4C514B4C514B5156504B504A4A4F494C514B515650575C56 5A5F59585D57555A544348424A4F49525751575C565A5F595C615B61666064696360655F595E58 5459535358524C514B454A444A4F49565B555C615B565B5551565051565053585250554F474C46 3F443E3D423C4A4F495C615B676C666A6F69686D6763686260655F656A645E635D666B656A6F69 646963676C665C615B3A3F39575C56666B65636862616660696E68616660555A545E635D6C716B 646963616660656A64656A6460655F6469636D726C6F706B68696452534E3F403B3738332B2C27 30312C494A454748434B4C474748433E3F3A3C3D3842433E43443F3D3F3A3F413C4C514B575C56 575C56565B55585D575459534C514B4E534D4E534D4D524C4C514B4B504A4B504A4A4F494A4F49 4A4F495358525459534B504A484D474F544E565B55565B55515650494E482126201B201A373C36 4F544E60655F5B605A57585351524D4D4E494C4D4847484340413C41423D48494450514C585954 55565151524D51524D464742393A35393A3552534E4F504B4A4B464647424546414748434A4B46 4C4D484A4B46494A4546474241423D3E3F3A40413C4748434C4E493E403B363B35373C363E433D 40453F3C413B3A3F393C413B3D423C3D423C3E433D3E433D3D423C3C413B3A3F39393E383C403F 4044434549484549484145443D41403C403F3D41403539383A3E3D3F43424044433F43423E4241 41454444494542424043443F44454042433E3F403B3C3D383A3B36393A3544454043443F41423D 3F403B3F403B3F403B40413C41423D3E3F3A3D3E393C3D383A3B36383934373833353631353631 3B3C373A3B363A3B363A3B36393A35393A35393A35393A35373833373833373833373833373833 3738333738333738333D3E3940413C3B3C3733342F36373242433E474843444540434343424242 4242424141414040404040403F3F3F3F3F3F4040403C3C3C3939393A3A3A3E3E3E414141414141 3F3F3D45464045463E45463E45463E45463E45463E45463E45463E4D4E4646473F46473F4C4D45 4B4C4444453D44453D4A4B43484941494A424A4B434C4D454F504850514952534B53544C494A42 4C4D454E4F474F50484E4F474E4F474F50485051494D4E464D4E464C4D454B4C44494A42484941 47484047484051524A4E4F474B4C444C4D454F50485051494D4E464A4B4355564E4D4E464C4D45 55564E58595152534B4E4F4750514945463E44453D44453D4748404C4D454D4E464B4C44474840 4E4F4751524A53544C52534B4F50484E4F4750514953544C5051495051495051494F50484F5048 4E4F474E4F474D4E4655564E54554D52534B5051494F50484F504850514951524A50514951524A 52534B51524A50514952534B5758505D5E56595A52595A5258595156574F55564E54554D53544C 53544C5758505A5B535C5D555B5C5457585056574F5859515B5C545D5A535C59525C59525B5851 5A575058554E57544D56534C615E5765625B6360595E5B54605D5667645D625F5856564E55554D 51524A50514951524A54554D55564E53544C4F5048484941494A424C4D454E4F4750514951524A 51524A5051494D4A434F4C45514E4753504954514A54514A54514A54514A58554E58554E59564F 5A57505A57505B58515C59525C595056534A57554959574B5A584C5755495351454D4B3F4A483C 45433747453953514563615568665A605E525A584C5C5A4E66645867655967655967655968665A 68665A68665A68665A6D6B5F6A685C69675B6A685C6D6B5F6E6C606B695D68665A605E525F5D51 5F5D515E5C505E5C505D5B4F5D5B4F5D5B4F6664586260545F5D515F5D51626054646256636155 615F535C5A4E5D5B4F5F5D515F5D515D5B4F5A584C56544854524657554958564A59574B59574B 59574B56544854524650504450504850514951524A52534B51524A5051494E4F474D4E462F3332 2F33322D3130292D2C2327261C201F1519181014131B1F1E292D2C2D3130232726262A29393D3C 4448474145444446454345444143424042413F4140404241414342414342484A49474948464847 464847474948494B4A4B4D4C4B4F4E444A48434C49464F4C48514E49524F49524F49524F48514E 4A535049524F434C4937403D2E3734323B38434C49525B58505453494D4C4145443C403F3B3F3E 3B3F3E3A3E3D393D3C4347464347464246454145444044433E42413D41403D423E3B403C3C413B 3E433D3F443E40453F3F443E3E433D3D423C3F443E3F443E3F443E3F443E3E433D3B403A393E38 373C3640453F3E433D3A3F39383D373A3F393E433D444943484D47424741464B454D524C515650 5156504C514B454A443F443E3D423C414640474C464C514B4E534D4C514B494E48464B454D524C 4F544E5156505257515156504E534D494E48474C464C514B4B504A4A4F494A4F49464B45414640 3C413B3B403A3A3F393B403A4449434F544E50554F484D47494E48515650515650515650535852 575C56595E58565B554D524C464B4550554F565B555E635D6166605F645E5B605A595E58595E58 5C615B54595350554F50554F4A4F494146404348424C514B4F544E4B504A494E484C514B50554F 4E534D4449433A3F392F342E3B403A4A4F49565B555C615B5F645E616660626761656A645D625C 646963686D67636862686D675E635D3D423C525751636862636862616660676C665D625C525751 5C615B6368625C615B5C615B6368626469635D625C5C615B6267616F706B65666152534E42433E 3536312C2D283536314A4B464546414A4B4648494440413C3E3F3A42433E40413C383A3542443F 4E534D585D57565B555459535459534F544E474C464E534D4D524C4D524C4C514B4B504A4B504A 4A4F494A4F49484D474F544E4E534D464B45454A444D524C52575150554F4C514B3A3F39181D17 242923414640484D47555A545A5F595E5F5A5859545758535859544E4F4A3D3E393B3C37444540 51524D5A5B565B5C575B5C575F605B56575248494447484347484345464142433E3F403B3F403B 41423D4546414748435B5C5758595451524D4748433E3F3A3B3C373E3F3A41433E3D3F3A30352F 2F342E3B403A3F443E383D37353A34383D373C413B3D423C3D423C3D423C3D423C3B403A393E38 383D37333736383C3B3D41403E42413B3F3E383C3B373B3A383C3B323635363A393A3E3D3C403F 3B3F3E3B3F3E3D41403F4440444442464742484944494A4547484341423D38393432332E3E3F3A 3C3D383A3B36393A35383934393A353A3B363A3B36353631353631353631353631353631353631 3536313536313B3C373B3C373C3D383D3E393D3E393E3F3A3F403B3F403B41423D41423D41423D 41423D41423D41423D41423D41423D3C3D3840413C3E3F3A35363135363141423D484944464742 4242424343434343434444444545454545454646464646464040403D3D3D3A3A3A3B3B3B3F3F3F 42424241414140403E44454044453F44453F44453F44453F44453F44453F44453F47484240413B 3F403A4546404546403D3E383D3E3843443E43443C44453D45463E474840494A424B4C444D4E46 4E4F474F50484C4D454C4D4551524A56574F55564E4F504848494157585056574F55564E54554D 53544C52534B51524A5051494F50484C4D454A4B434B4C444E4F475051494E4F474B4C4452534B 494A4245463E4C4D4551524A4E4F474F504853544C47484046473F46473F4B4C4450514952534B 5051494D4E464D4E4650514952534B51524A4E4F474D4E464F504852534B4D4E464E4F474E4F47 4F50484F504850514950514950514955564E54554D52534B5051494F50484F504850514951524A 50514951524A51524A4F50484E4F475051495758505D5E565E5F575D5E565C5D555B5C545A5B53 595A52585951575850575850595A525A5B5357585052534B4F504850514953544C58554E5B5851 5E5B545F5C555E5B545A575055524B524F485D5A53615E57605D565B58515D5A536360595F5C55 52524A494941474840494A424D4E4651524A4F50484A4B4344453D4B4C444C4D454E4F47505149 51524A5051494F50484F504856534C57544D58554E58554E57544D55524B535049524F4854514A 55524B55524B56534C57544D58554E58554E58554C4C4940504E425654485C5A4E5F5D515E5C50 5B594D58564A49473B4341354341354D4B3F55534759574B6361556E6C60666458666458656357 646256636155636155626054626054646256615F535E5C505F5D516260546361556260545F5D51 6D6B5F6B695D68665A6462565F5D515B594D57554956544858564A545246504E42514F43545246 5654485553475351455A584C5C5A4E5F5D51615F535F5D515B594D565448525044615F53615F53 605E525F5D515D5B4F5B594D59574B56564A53534B53544C54554D55564E55564E54554D53544C 52534B3F43423E42413B3F3E383C3B3539383236353034332F33324145442C302F262A293C403F 4F53524F53524B4F4E4D51504749484648474345443F41403C3E3D393B3A383A39373938424443 4143424143424244434547464A4C4B505251515554424846404946414A47414A47404946404946 3F48453E4744424B4837403D2B343128312E2F38353A4340424B48464F4C3E4241414544434746 4145443E42413E4241434746484C4B4145444145444044434044433F43423F43423E42413E433F 3E433F3F443E40453F40453F40453F3F443E3D423C3C413B3F443E3E433D3E433D3C413B3A3F39 383D37363B35353A34363B35363B35373C36393E383D423C424741484D474B504A444943434842 444943464B45484D47474C46454A444348423A3F393C413B40453F454A44494E484A4F49474C46 44494340453F424741454A44474C46474C4644494340453F3E433D494E48474C46484D47494E48 474C464146403D423C3D423C383D374146404C514B5257514E534D484D474A4F49515650565B55 565B55585D575A5F595A5F59545953494E4840453F5459535B605A636862656A646166605B605A 565B55555A544F544E4E534D50554F535852515650494E48424741414640454A44484D474E534D 565B55585D5750554F40453F343933383D37383D373F443E4A4F49525751535852555A54595E58 5A5F595A5F59626761676C666368625D625C4D524C373C36545953616660666B65666B65666B65 5E635D585D575D625C5F645E5C615B5D625C62676164696360655F5D625C5C615B5D5E5950514C 444540393A352D2E292A2B263839344B4C4743443F4B4C474F504B4D4E494D4E494D4E4943443F 3537324A4C47565B5560655F5D625C595E58585D575358524A4F49535852535852525751515650 50554F50554F4F544E4F544E494E484A4F49484D47454A44464B454C514B50554F50554F3F443E 2D322C1419132F342E4D524C494E484F544E565B5560615C5556514D4E494B4C4745464140413C 4C4D485E5F5A5A5B565E5F5A595A555657525C5D5857585350514C52534E484944474843454641 444540444540464742484944494A4554555051524D4D4E4947484343443F43443F454641474944 464843393E38393E38444943484D474146403C413B3E433D3B403A3C413B3E433D3E433D3E433D 3B403A393E38373C36323635353938383C3B383C3B363A393337363034332F3332343837363A39 393D3C3A3E3D3A3E3D393D3C393D3C3A3F3B4343414546414849444A4B464748433E3F3A343530 2C2D2835363135363134353033342F33342F33342F33342F3435303536313637323839343B3C37 3E3F3A41423D43443F44454042433E42433E43443F454641474843494A454A4B464A4B464F504B 4F504B4F504B4F504B4F504B4F504B4F504B4F504B4D4E494E4F4A4B4C4744454040413C42433E 4445404343414242424343434444444646464747474949494A4A4A4B4B4B424242404040404040 404040434343444444444444444442454641454640454640454640454640454640454640454640 40413B3E3F393F403A42433D42433D3E3F393D3E383F403A46473F474840484941494A424A4B43 4C4D454C4D454D4E464A4B4346473F46473F4E4F47585951595A524F504844453D4D4E464D4E46 4D4E464C4D454C4D454B4C444B4C444B4C444E4F474C4D454A4B434B4C444D4E464E4F474A4B43 46473F50514947484043443C494A424A4B434748404A4B4351524A4F50484D4E464C4D454E4F47 51524A52534B5051494D4E464D4E464F50485051495051494F50484E4F474E4F474F50484D4E46 4D4E464E4F474F504850514951524A52534B53544C53544C53544C51524A5051494F50484F5048 4F50484F504850514950514950514950514950514953544C5758505A5B53595A52595A525A5B53 5A5B53595A5258595157585056574F575850595A525A5B5356574F51524A4D4E464D4E464F5048 56534C59564F5E5B54615E57605D565C595257544D53504959564F5C59525D5A535B58515C5952 5D5A5359564F51514953534B54554D5758505A5B53595A5254554D4C4D454748404F5048505149 5051495051495051494F50484E4F474E4F4754514A55524B57544D59564F5A57505A57505A5750 59564F524F48524F4853504953504954514A55524B56534C56534A524F465452465755495C5A4E 605E52605E525D5B4F5A584C5A584C5250444F4D4154524656544854524659574B6361555E5C50 5E5C505E5C505D5B4F5B594D59574B5755495654485B594D57554953514553514556544859574B 58564A5654485654485553475250444E4C4049473B444236403E323D3B2F575549545246504E42 504E425351455654485553475351455A584C5A584C59574B59574B5A584C5C5A4E5E5C505F5D51 636155615F535F5D515F5D51605E52605E525E5C505A5A4E5A5A52595A525A5B53595A52585951 55564E53544C51524A3F43423D41403B3F3E3B3F3E3D4140434746494D4C4E52514A4E4D2D3130 262A29414544515554464A493C403F4145444042413F41403D3F3E3A3C3B373938343635313332 2F31303A3C3B393B3A383A39383A393C3E3D424443484A494A4E4D474D4B444D4A424B48404946 3E47443D46433C45423C45423A4340313A372E373437403D464F4C4B5451414A47353E3B404443 444847474B4A484C4B484C4B494D4C4D51505155543D41403D41403E42413E42413F43423F4342 40444340454141464242474142474142474140453F3E433D3C413B3A3F394247414146403F443E 3E433D3C413B3B403A3B403A3B403A323731343933383D373C413B40453F434842464B45474C46 3F443E3C413B393E383A3F393E433D41464042474142474140453F3D423C3C413B40453F464B45 494E48464B45434842484D474A4F494E534D50554F5156504F544E4C514B4A4F49434842414640 4449434A4F494C514B494E48484D474B504A40453F4A4F495156504F544E4A4F494B504A4E534D 4F544E515650515650535852575C565A5F59585D575257514C514B4D524C5459535C615B60655F 5F645E5C615B5B605A5B605A4F544E515650535852535852545953525751484D473D423C454A44 4B504A555A545C615B5C615B525751424741373C364E534D4146403D423C494E485156504D524C 4B504A50554F5358525A5F595F645E64696364696353585240453F3C413B5A5F595C615B676C66 6B706A6368626166606166605D625C4F544E51565051565050554F525751555A545257514C514B 4A4B463D3E3936373231322D262722292A253D3E394F504B4445404C4D4850514C50514C545550 54555048494436383350524D5C615B656A646368625F645E5E635D595E5850554F555A54545953 5459535358525257515156505156505156504D524C484D47464B45494E484C514B4E534D515650 555A543F443E313630191E182F342E4C514B4D524C5257515459533A3B3640413C4E4F4A5B5C57 5B5C5752534E4F504B52534E5D5E595E5F5A53544F4C4D4850514C4C4D4845464148494452534E 52534E51524D50514C4F504B4F504B4E4F4A4E4F4A43443F41423D40413C41423D4647424B4C47 50514C51534E3C3E393439333439333D423C40453F3A3F393439333338323A3F393C413B3F443E 40453F3F443E3C413B383D37363B35373B3A373B3A383C3B393D3C393D3C373B3A3236352F3332 3A3E3D3B3F3E3D41403D41403B3F3E393D3C383C3B373C3842424044454046474246474242433E 3B3C3732332E2D2E2933342F33342F3435303536313536313536313435303435303D3E393E3F3A 41423D4445404849444B4C474E4F4A4F504B4546414647424748434849444A4B464C4D484D4E49 4E4F4A51524D51524D51524D51524D51524D51524D51524D51524D5A5B5656575253544F51524D 4B4C4742433E3D3E393D3D3B3E3E3E3F3F414040424141434343454444464646484646483F3F41 414143434345434345434345434345444446454545484944484943484943484943484943484943 4849434849433E3F3942433D45464044453F44453F45464044453F40413B3F40383F40383F4038 40413940413940413941423A41423A45463E42433B42433B494A4252534B55564E4E4F4746473F 4B4C444B4C444B4C444C4D454C4D454D4E464D4E464D4E464B4C444A4B43494A424B4C444D4E46 4D4E4648494144453D4A4B4345463E45463E4B4C444A4B4345463E4748404F504855564E51524A 4D4E464D4E465051495051494E4F474B4C444D4E464D4E464E4F4750514951524A5051494E4F47 4B4C444F50484F504850514950514951524A51524A52534B52534B51524A51524A51524A51524A 5051494F50484D4E464D4E464E4F474F504850514952534B55564E57585056574F55564E53544C 55564E575850595A52595A52595A5257585056574F5758505A5B535B5C5458595153544C505149 51524A53544C57544D59564F5C59525F5C555F5C555E5B545B585159564F58554E59564F5C5952 605D565E5B5458554E55524B54544C62625A65665E68696167686062635B5B5C5455564E51524A 52534B52534B5051494F50484F50484E4F474F50484F5048504D46524F4855524B58554E5B5851 5C59525C59525C5952524F4853504953504954514A55524B55524B56534C56534A5B584F58564A 55534758564A5D5B4F5F5D515B594D575549666458605E52605E526462565F5D51514F434A483C 4B493D5A584C5A584C5B594D5B594D59574B565448535145514F435A584C565448525044514F43 54524657554957554956544867655968665A6765596664586260545E5C505A584C575549615F53 5D5B4F5A584C5A584C5D5B4F5F5D515E5C505C5A4E5B594D59574B5654485452465755495C5A4E 6260546664586260545D5B4F59574B59574B5D5B4F5F5D515D5B4F57574B5C5C545B5C545B5C54 5A5B5358595155564E52534B505149 end %%PageTrailer %%Trailer %%EOF freexl-1.0.5/images/piazza.jpg0000664000175000017500000007755113243550204013207 00000000000000ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÂX"ÿÄÿÄÿÚ ôïIëÃCæy«ÍM4Èò)K*Ö ¼I idbÒ00ÐT²2Êy6ÈŒ­‚kpÉ%’CUiÐ ›"ÅJ­ªà 5 %ñ¨¼çÚe bÙT±é¬SšÀ4ªlXÀEp d°D‰˜XÛçId±š¸¶¶s\–%›&•®™ÝFÊÁ2êRÑ$¹†E!¤ æ¨Yg©Õá™Ô2, ¨‹`Ô¨YMfÂ…l€”šê¿;wªgv%uY¡+–_nk%¸ÖsljŠÚ+b¨X&³"Ë-RF €e‚Id’ƒ+Y[Í^Ôœîʈ±!— Xb»t4ÞZº1> ´&š¬Î·Ys–ËÑHi!   X°Y@ÒÖck!u•¢@Ö"Ú"¦&Át³;…V[e@¦A++¬¨-bË$´É5ˆH E„‹ÂF ,$´¡Ì.—³;©™¥¬Ù!I ±‚$qEÁ•VÈg¯MvSY„@–e©S¦²„›Š1®#*½=•InD’ÂưLè€,°)…†¨U)e’ሠB `Ã3Mz[9 B ˜°h°`ÐÁ #)… zÙLiU–DsL«¥!- ¶µ(ä±1R #$¬ô¹rÖ²Ú+*,v®É ØÑJó:.Ž«UÕXHI%C$CCØÙÒ[: IB00¢ÁŠ‚ÁŠÁŠ0Ë+d²(MBìQ`)†\Ë+Ö,,ŠÑ”= 5¦¼µå}üm&³„" eVçJ•XÌÙ$PdEGK‘$Ô’BCcÔËsRÙÕí[çEX +HHíYVX B $°…–zÅjæ³j($b dµ:² "·7©åñ½UóèÍч[E:´õ¦¹Ý~o€ù­¹çp^¯‰¯=>‰Ÿç§¿ÁâÔô³ÍÃëÌ&°ÖÄŒ.D`B ´‡6 Úêy«ÉZW‰) ‚BYk.eÑZg—Íg(dÖ‚Œ²ÜíZˆ¡j@xÙ½ª,\ß/n[ùë^sdÕÝN' }=.µö|Q—fïÖy£ª5œ;=èózw=,ÓÔH7‚!C#ª.…•2e­:ºyWb2Æ6HYæ‘$ ’HB´RŒÕŵ¨%ËZŒ)¯Yžr¾dëèô9ÖM>/F笞c ÏBî›îUâ¹+ïy>F¼o½ÔñýÜßK¿c=¯ì~n®)õiÆéoèbó°˜p®éæë-åõüEײßÊîkËDxY²NžÜ™×‘Ái`¥0r¶aK{ž'ÞU«‹$!!sYWŠe€@•ŠF(!âJb¯/è~}dêôlçéºÌt»¡Ââ§'•®;ù3õW—O§®_9³ÓsòÅnzwý¯ç®&­]˼¯2ù­}®6ßå=Z>-S7Ëv9}>¸íù?]¡®GZ«¬'"Kèêì¶ ZÍëTG¥*9Í·–sýo?q¦ae*È¥’É$†UˆQ ‚T•VºO?<½Ÿ3Dβfï]yyì²§Š«ÝXyZ­‹Ö•LÚxýÞ÷“õÞCìeÒeó)èô[åý­o–ª¼ÌíËÚpû¾iªô‚ÏÓl9›±æóôTw7ùO[ã7z~¿Â{”e"ξc¦)çXõ½ØëË\äí×ÊЛxz,-èóm^†îBWGO74oÙÆ®^¶~,ô”óo•òô¹ñ’zV5›GOŽl°òë¥M•lèê—-™Î¥Øu¥Ï4õ¡ÍÅê.·Ó¢b«v rnä]Ï}¬ú<¦uè‘u›5yOY^cÑ|óèÚœ¬ž‚Μöð¶éÎø‰èpYæúœ®£ܺqóߛՙúãÒyOºëÅûHPˆ Òøyƒª˜ÝÁÕÏÓÐkËÑÍæÎoGx²ž¶uÉ_gžSbõŽ}ºùòÉ·4 Û\K–.º'ž—Ôá׿SÎÙçQÌÓÈ:uŠWd®¼Õn§K/&N¥å6r¥H(Ý­›9¢©¿+ÒÙ~5Õñþ¿=ð·t-_/è/ã½f…]yÌÞŽ]¼Ì:üÿ'ØÜÓ¤.oC™.öäãÔîÛ.æý_9÷õµHJcC;:å‹¥Îèµ»§Å×\@x¸ðëŽæL1{ܽ o­Ju*YÌèyƒ×Š“7pO(¾Ï%¾PõØnó'©Ê¼ƒµžšc¢Õ&u§äÔ9ë7z¿é¥é~,;ÕÕÂ=F Þ@ìÑ9 zÎ?_ÎãWìá÷,ó¾¯À{ºðÞÏÅúû3`êáÖ=F-5My.½Zužuwe¹õœýüî=2qúü^Üýb×µ¯î9}eé,[‘zwsfùÞæ&εîËÐÞy£ÛÍUry©ï^¬3]sG@¡kÍpaàÙÞÉ‹,¾«Oœõrõ<ϦYlò>£9«Ëz²câze8iÞÌT(×ÏTæ˜3÷îÞ<¯^ó¨èœSÆëÃ_ž»mdÉÖ·—Dæé²k²Ý7>WÐÙS‘ØçuqÆ®«xôÜö´p»Ù¢áÁgÓaóYkÚ]æzè{\\ºžŠ¿•Ϭfðô¶|Ê;\zs¯IoœÓ›êöä·yçÓmÏܤõ¹4ë–½I#2îCÊòú™5=’ôþs7ÕhåÙ›Ôä!^’Ï(çѼ~¿3gcÕ|ûМžÿ˜ôÜ~ç]EuÂõ~c·gÖyN¤qôçìÿ×áËŸÕð¾›wÍ9’ýs™óü§Ó-ù•±ôƒòk5>…æ¼ä=ωôž|¡n§sOºùöÄú/?Âe—£»ˆÇ­Ýà–¾æ¹Zsp»ÑdôA’^ƒOI²Ãf°dÍÖ‡{ÒÎΓKžË¡TÓIU!`Ib[.©Ê.yW±Ø&^€0ß _Tгn‹”è‰Í=\{÷˜âhé5¼dî _<}<þ_T'=`¯,¾±cÆlô⼓z™/›žSË]èWsÆ'´®Ï=}g‘Óè¸5÷ì<æî 6ݱXz*ÑÈ)؆ÊäZUF‰ˆKM Ði%Š hDV¬HÄŽU VZ%ºU e@¼#Õ´ViâAÊåD²TÚTÑ3©¢W ò²4B p 1Ë%EelJª$ÁUÊ,ØÙÛ1¹¤PM#5‘t®-öPázá`® ‹€€…e`B`@ƒBéÌà¸%‚££„!ŠË—9-zXu‹D2†2#•†ZœË2M1iµªÃQ.4ºÛ)cCæh¸PM2\*‹¡èh²Ì®_+XºS f¬zL¬+aÍU—Š,- L4ZM4/¹%3!G‰¢*ZԸⰬ¢#ʉ+±i^JÂEdK ‹•ƒo0 ÁJÁ…p¾gböÎ B‚\h‘¦RÅÆ¡-ÖPK©–½v$B«E(áar+²‘ĥp‘ÕÕš iR&ƒ™êâ‚W©‰Q eÑă¶Ïah†-­tD…åCAa%LÊ!x ¨ÀVpŠXÈ m¤Æ‘R­Æ¢YvW4­F4ݬ6RúÚ ­ŠW`° S«Éœíc,Ñ™Yè)l®åA.9Þš0#A 4P°bÙuH 泩i¤¤K €ÜfÝyÇW1/·]ÕѶ+ äUhW €ÖHùáyÎë½òÈÕ”)lVV ¶ËJ×JËZ€ÁR2Ê‚Û\`8 dÁUK¤ˆ a]z+2Ç–¸¬k6½LKjt´ÖII­sË MçT#«+5¥`¾•q–Ô(0 ’ , «,†¨_3ÙÍL[L%q…Å ñl[ÊjÖ±Î;…c¶å!‚ X¬BÓ(„da„Ò-°ªVÚštáclƉ«"…/\‹—.j²£]ŠÌÕžÂÄxdÎåkm*”Õ²€±u®«‘Zŕʰo¤—!r¢ÅÒ²9H\Ùá¡kƒšØ +•U(ŒA[%fA’YÿÄ/! "103A#$24@%B5CÿÚ´ µ~¡ó½m^–¯Kÿ «Ôøg…"Û xR¯*òµjÕêJ>U¥xŸñÚ¿âÁÊ¿ úÖ‰DxZµ¹nGÊ•y0«Kú'À -4q¥«V­;Wáh”J%©LJ•#ôF€hut«Cǘ+V‰Dè ´…«V­_GZÐý0¯Rxk¶¶*@-ª«Ä}¡j_ÐçhiZ?ZÕ«ÔéJ•*D*]µÚAµôémE¨ /ZÔéH -Z´>•еÙÀ©R¯+@kH¤5%^£[Ð -¨F¾•*UåZi­¤UxÒ­)W‰D*ò­J*•x“ V­^£[ÒÕøÚµN¼©ñJµ­-Z½mZ%_ѵhjÕ«W <Úµ~ xßѪñµjÕ«×j"¼ëÂô¿+ÆŸ¨ @!õ-Z¿ u:×¢|¥ñ£ˆjî¶üî‘Ò•€?Ëjô(èt¥ð»Ñ®ãÜŽë)rc*)ÈóüŒ°éz*Ö–Pi Ê!;%Á;)…£!ÎMdòÈwB£˜Ä µËÌsŒ\`21¨æãµ;ª@úºwV˜ê~¨*þ¥«Wô-Z´O j¯ð²{â^ÆKƒá†3„–wäMc¹¡ív;áL‘áNéT9ݸÔ$r|ó9iÓpgj2¸¢\‡"Û©úômZ½/éÒ¥Zhj5¿ |L.(ñ㑬 kÏÌR5‘|c.c#X’÷¤Î’:3ÆòÅÞU’½©Œ%\†1)Ø´Á…mð¯ÀTƒt¯©Bõ*´?>V¯Ç2¹7† Dî„ÈKÛ9AÆî~SaƆN¦çƒ3ŠHôbqB×§zn7º|B™ÓžL»!F¶RvTL>T©RÈìÅ»¶4?ãµjÕë¹Zq RfO!Ž|ÂÁžÖ¨²"›ÀM~†XÚŸTÙÛóÚ9c¦'ïOö²~¢#'$äFÌMÑŒÌ6µ p¥†š[Ãã!l,v{3ûìÚ©²Éü@ÐÐf—N÷eíøÚ¿ðÚ%|¹ÊlÃê2eÛ/K{ŒD Ÿ"Ï6dã Ü·4uBçf<¬œÉÚNLÅ\ŽE´ÝËô”xýèq#È,Ëgm·CÖvÜU-¨´9mcTÎi1»±mtÓpk™’©R¥^~›1²}KýD]èÖùÚ¿§jü:„Òã“ÔÜèÝ—#‹²á€q„.‹ VaÁ›'‚#cò%ï/QMvsS³$‘9ó¹2<ŒG= B½#6Ç ¡kÞ ØaÂs¦œ¬Œ IÅéûP’8f9±ÉKØ)ÆpL"G(ýØ2Ð7§Î凌üq­}šnaý¦md‘³¹œßãõï蛚 s\ÑÓá~ù“âÃXÙÑccËÖTAîG"w¦Å,©˜op§ÉC§¡(t-Œ»=û_$û±­~>ûòó›9_Mª´ÈÿÎ/õâ¶É ¸Œ4bû±áu»±ƒ®\ò@­^–­Zµ!öÌ×Í ˜`…ÑäFðà¯ü¶¦êY vüÌ¡‰2¥­™²gH®y“±å4‘ÓÅéÑû\vú“xÏq–N"Òº·#ª‹ckÒc­Ãgo)Ä#‘ PÌ…ÎSf˽l¯_$Uá›Ç £^é1¤™¸ø½…Œ7aÏöÍ3Ý‘¯SŽ'•wä°ëŽÕè÷§¾Áþ)ÀÅ/uF)Xð.ãÄh\Ö«ÅÏk§ƒÕğԱ؟ÕÜ¢|¹0ôüi#ÇÁÀ~+ý "yq"|‘GŠÇC3ehÏ‘îÍt‘³¨ÜgI°à{{°Èpö$JžüøÎã§„0c¸±µJ=d…Øn—u,˜Úü±Ü8}Ï аNɜТÉ|¯Äû9â³0Mekž/›´ÁìReí”I)\^îIݺ3ŠÇï£í_þ©¦Þ‹ÄcÖDŸ•Û>¾0½k€9r•ÝjïF„Ñm ¹ÞZ_½ÀÃ&Hºtaç3Û>K²Y‡‘+òOÿbj`=²uCãl½øP>CØœc±ÙNÅŠYÙ qšÐ¹­RMAùðµápä9ò©÷dâ9ÝΦ?iÒNéÈÜ öÏ/Ãqؽég&,q”÷Y7dÄC¤œ¼—C=«Þ¿cäL€àÜyįx,M/TvµÁê1±n.ÇÇþ¾wö£û9~×·ˆ„õŽ. šI%Í•ÑCΓ˜!k{ÙooóéCô0Àõ$ÿÛåÿôú{2ý4ÏÇfE?§Êõ>'~tö=Ç¡Ña¶7'A"61km/”ŽÉš›—$¯`-f[8ÞâšÖ7ÔÆ†S d)2_ŽcɆÆOU¢~qMãèVÐo¸›Žd!Œ<¹ãç)Ž“8Ÿwz;î1FXÕÔxÝ(~ùÈ5ÓMÊÿàÓnÊ5‹Ó¹@ZÛµ£ÚŒq¸ŽÇŠC[G¦„<€á4p:x›;DB±>ÄMs_,eî.-ŸFɤI˜/¯À{I^®-ÓËÙ|‚yfIÅy©dHbƒ2gd_3Èr`q|ñYÄ–§å£á¿ÑË6/ß 0þŽp÷¦ýþ¦?hºy¼] ‘Ò÷rìcâø‡¶ËtÖ%¼çc½ÏôîÚ1œ -‘±:(@È`O|r¶áÇq’2»ŒS48³ö3 ¶Å#ÿFaÈ%“Ä*9g‘“0Ã'›¹1pƒy¦›2gÂÜy_4X¿×Ç|Ï—#¹ÝŸ²,väÃyøÀŽ£ç2,79ìÎû­þ®ö?µž.ìÎ]\~ߤ,‘x¸>Þ ÝÙl';ú’·~8†[€Á‘:#oÝÆ58Y¿ÔÏå®)¥eDg‹þ-c@ìvèWaÛó!’h±àžXÿÁïùšLÁÆ|J7ïdhM!íhD5´ª`SM'ÖÀž/T3"0 ›¨§Æ™ó³øK¯”}¸âdMö0c{'ê!Î V&'؃ùÏüþWLi§DæKz̯³ƒöóZçHËôøÑHÉÅ“½•ºC 3#pÝ— ²61Ç3µÏŠIY.΋ „ÆÆÈ»á>g×t®ñS=΃¶Ñ a`¼8¹Š”žÕv‰ BFh6¤. µ/r02÷:ûlQL?Æ)ûm€ׇÊ9XƱú„Žøgv8çÌ|=ã¬üÀ×Ê÷³&'yQcdÌè!{" ¥Xk¡it_ÂCLÁr‘cûмÉá{Ã1玈qx kŠÿÓ€c}^ ,dR7`d©Ù0°²VH¦þ89M•ÙC«cDS ,ÏÔÙwUÉ¿ùL«‡«›ÞÙafá _i=bUÿ#3›‹6t‘ù©«Óõ,É N{žV>lØÎ2ŽÌÙNø²§Þì¹!ËtŠ3ûl·ÿ½¸9¦òj”A™Šü‡Áв¡tðáÀèÖÏêtÓûìÖïÅÄ¡•Œ]êršÝË`“,Ìã;¡ý1KGR–wÁÔ'ŠLŒÆCŽì¹ä~&Y–(,â²WFÌíÝèç¬ ïbÊÏt¸î’C” ’Ù(sáy“cÛŽ ØæÏ829Eb\ú`Úâ×4€Jé„…'7Ü€Üqø‘âܽ»;njÛ€³W#öÈÖ„Á sùf4ˆbµ xë²Æ"e$±èÃ"ôò!"cgbW.Û—iË´Qe+X»¬BV4÷¬-á x$—Àò1`+ÒDH¡ƒ½$)Ñ·ÒÆ„ ŒØßK–ÊþÃ{^¡Zˆa›ô¿¤0‚V†Á;d0å.ÆU:»2vˆ²ZçEZÖä48äLËõ·É<ΖY%{Äι’°¼6lì˜ÚǾý?-VP(qS64 ŒÌ¨— ÓØ‚I kìZãJUô}˜\Œ.+´ê¹vœ»n]™ËÓ!‰Ë`ÚÑJ¼-_…@[¶ÙjìØ^›ÝØjôìF8zVéÚ»- £h1‚m^ƒÂÕ«W¥é~-Z ôµÊµen7jÕÒÜ›V­ðMùÝ à·r\åzR¥ZVŸw­kð­[“ ]Òp•¼®ãŠ­m|«W¥¡§áÅíc¸wðüoRò­¾Ô>Y̧’xÓó|~/„åj‰T¶•ËU«:ZµÇЊ: >Wµa|kZÿÄ# !01A"2@€ÿÚ?LL¸Þ¢ ÄøRãÅÂzað¥Ĩ‘ð¥àظBo(ÙDùQ½|QKHí"!8ô™rK/“„&,‚SÑ9=¥)x]¥!8¬^ÚR–Še.Ü‚$%ìy3àÙ„ˆ58"_!?](Ê6"BZ•ó;¿“cè$àÈM˜²ú!©âTé! RgA ™}¥§jD ¿›gdj+gu…’ ]¤&þ‰Õ—)JRˆ‡hºʆ þgOÆE©çèžÃµŸ ‹^BpJH°n•Ãté:Õ:Wƒµ ‰ÒLðt¡ýΗàî!ðj‰LH„ ™ôðÄ?¸ü˜ºÜ¨étèd£BPýÆ'8¯§Sô¥D¼‰üæAø?Dˆ.ª%ƒòXZ&xÏ‚UN [1bÅä‚DÇø>¥Òê:¿ØkÎ$?¸ÄàÝàŽ®(¸„à˜˜™F¬L)ô„ijáKr¡5”£\‚Î$5«/RçÃéä›åúoý5•̬îegQnOüqÿÄ% !01@"2PQ`ÿÚ?ƒDÒÛåBp„ÒÓ.ï†êKMê p¢A-6A" nn mqdÕ)DÊ^4¥)5J7©Ájð¥ÓÕ/4ø]-ÍBiêp…/ ¶üWp„ ¸´Bq£&ÆühZ»H£cgP²¼KµÅ“ÉA-Qé²é±|“ؾDÇò!fRíqº~R‹m i¸eè¥ÓTI†õxRéÊßø,س¥?"G]lgH‡ØÌE¬op¾XN¥ïÁd…—ìC>Ù"·¶ †NZœ—; FõJô‘—ñ>7æTü£Ê‰ÉAåD*>Bw…)JQ»´Ú(˜–¬)tÓ¤ý¡š™"½„ÆÇè\ߣæÄEÝ(óƒÊ÷l¬ö%w,»HɘzÕÕáxãèDcÜÍL‘HgüDû ‹Ö–— Œ=i-´B nRN Ý5¶†ÙZ¤lŒJ i¡u çcõLêÄP”X¥µ4øN š¼g•ã‹:P±HˆéGc§$—¢”¥)Kõ/šxa5?¯ŸJÁß¿>•/÷óèÿÄB!1A "2Qq0a‘#Br¡±3@RbÁP‚’Ñá`s$CðcpâñÿÚ?ÿâr_ûS.¨ ×ÃýMï„-ÖKâ+z'¥“æT³z ØÞNçþŨYx¼@Fyñg»Á¢Kr›ª™Ÿq“”‚ìã7wB„æè|õ `ÓdÂdÇ2›ŸŠKyÍJûÖù*fw’Ý…êWGAüXàïftuÔß(ô:,LÎ<ª©þ¡“$6“* •R\Zñ~«+„ÇŠœ-æþTçÂ- ÷³X!Ú} €Gý½TŸž!š-Æ5¿5½Ý%V!õTVþ3$“_æÞ÷ŠƒNvê™O|„ÜÑCw”jëL1QùY7|Lr+‹Ñn·Õ]Tãl ÷˺Sø´ÌW4!É…“²÷§3D;ìÓ&`-ê™Ïx¬î-Ÿ€D½Îq"AI «ÄV¨n« 9¡%\Òð¢‘îŽC.©¹øµüq$Ø"è;°†§T‘‘áB½¬'ÃòšöqØÉÚ77!^Õ@\«”/½%=¯áºÜlú £».¨Ÿ""?©’~ã[óMp7Be[×gõ…™Ö[­%f–ÃÇq2³ "·‚ñ¥¹¦Ë"apZ‚‹&JNê¡Nt?Ji•3ÔÝ Ž…{F¾QD"6|•B‘ú®Kˆ©œ-BÌèõNg‚wEèœ4Q=×Ñ ÝuP؃óO釞ÁÊÒi§rçrE¹Weï#OÄÃ{,ˆ#~WûGOªâwªŠï´z/bØÙ´kj²û6VæëÛý©òð9BkòÏ-”ÜÖ7‘RÎß%LÊŒUvT ó.URЦLÛàVWÍ r!d˘£$›,&58µQÃÌ·¿eï_–\‘ÓüÜÓžIÝÐ/î¢s’>!X¨Ìƒ>ð§*Tä™*¯ñ] º³ã»ä!B†/!T$üÆuª!ÜY–ìü•½Jâw’×Í7,<Ê­h[ÏY·ž|˜‡–\Êh,îWÊ"T`ÀdÑ2˜ÀS>%šJMiè ²oEbMqÝQBÞEoUÅ£6úìO= ¤;’É#Å),æÓTüD›/Z§{MÑy[™Ô—b!ƒ½®«#a¶å%ïRgÉjŽ|¥o§:Bi¬†_#iQ ê9Í:\”LÅΓu)픨™ÕEf¹ 8>ó$ ºiýAV#PkI$òXÆø—*Eoò¶iõÍšÊÑõS™QÀæ>‹+ß!à¤ÓCy¦tOl…µR&’ØŸ"¯ê…½žÀÇtz¯ª¢¾ÄûЏ+â¦\¯EÅ›¢öpýWÚKø²‰ (­{Íi§=Å»ÃEÛçœî¢g:®É—”ä§ ­k[7¡ÕuWÙº¬ÍÌ%@™šÀj¡e”²èDá«„®ŒNmª½ðá§vy[.A ñ°sHÑ+(ñþø_”žè²áõR \œ~ª"gŽÃ•m,3éæ”§L;679Ö´ r‘ù!˜Ù ÂÞТã®9Àzá)à\lµôUoÍT&Áqñ+x?È.JÿUãÕR/ÍDš£€[ÒTÞµG$GHsæi#™(v`3 Q&„÷å‘Q[Óˤ“z§NÙP, ŽÌÙ °œú›&;²ò‹ C™–{ø,¥€ ³L~p&â,¡Î+¾óš‰9ß^«ìÝGÑFóPÇŠ‡/σu°PŽ’’ìåRQ"’98— ߺgL(Òj·°ƒñª—V«v~x}žõq¶/ø–G.W2èq¡#¢°¢ˆ[ºD¬šÉßÁ9ï3ªvç5 Ë’)ÂU^K;ÎÇOm$Cgæ¦Õ?ªÌG’§ÉDLq¹Pú'tLøUsj>‹.gK?5ÀQ÷$³0ÈÍ9ï5ªoÂ¥¹”Ú>ôO—ç_j @¢Çû.ÂS[Ù™‡›¦œ–|êSªÑ›û¨póK&©Ä—U 7×øÂd-Ñ´Ùä Ñ·äÄ3ñN~wPX÷nóˆ™,˜Mk褖Ÿÿ¨œ¨~I¹ŒæÏÝ0þ¬Ódø¸(އ-Ö›¡rª88›Êhþë‰;I”߉?âÂ/ÂSë=Ôî‹ÀáQ-¥“‡K|hS-iÀ¹Ì™šf–ôæœÞwY›?2²¸Òz'1µ)¿D‘„y™P}ÄGÍÚ”é;zZ(Qšf§ÍD2×öØpÃ,êžâ7iR²³/Ž›A8ÍÛ¼Óœ.¨5ñ3`ùÄ44’cŽ¡Cð)½pwÇGªrn <žNõÁ½6¸·ªmg7ê)TU£èœZ¨”ê‹¥r¥ÌÕO’¤9­Öå ³E…ÆE5渗s3 ‹•’DÌå*#‚Þ”þI@¼›Ñ<5ÆYŽ©³5"¨39â’ˆXçM¡etC–SMsN©ïyéD%ùB=¡¤´[±”w½ WÁD{Ûª‹ŸÝj†ÉîòòQ‹LŽaôN.3®©½øPóÂ_©FþTÿƒüJ7’‹ð¨]VYÕE S2…ð© æ?T7uLj(%7¢‡]p„”2¸]è¾Ïñ~Ë&‡Å]e˜–Át®B`‡pu[ìÝç5NIÝQ&j@z”ÞªN_þ©Ê„QH“>An”Ui䬚aOÄ/»zí·úI=›ÛÚ•ìÁà•“äžàÊ›Ñ9͆e2›Ñön–e†Èæk…5MNº'‚+TÞ9ö®ƒè¢æª˜]´P£KvŸE_™:š¦É¤ÓD¹P%´Ã4ÅÓ˜ÖÏ3Bí%¤–Mdƒi–hÊR7D3TÈ«ÖHœË)3O©X­Æ×Ä..(ƒ!á@ºu(¨Öúa¢aý#gg· ™uT{|Žvc]É—\&ØyúÙº˜O4+êTUCžN¨{2ƒ­K¢fPÚŠÌ òcËZdfËÝšº¨^hBeÊßi—5%÷rñ4A"bf… WÍq¹ Åò%œê†ÉVµÄ9ôSs2ò™_hê>‹#ÒyäȇjÖ‰µDÊe_ÙV"ãYsrD¾$‡2¥þ¡MŽÌ9‚Œ¿.såä·Ñá¹7t[ßg.rUo’öQ¼A?{öYa79ç¢÷G’âoô©Fg›Qs ÚšâFX ¢ÿ5ݱ9Ž‘æšÈPh¦cEí îþxU—’$Z‡æ› Ss‰>8 ;3ui] ü³’Ì÷!í_tb ‡L k šþ\Õ4´Š SXn0ÈÞiÁÚ• ¢†…J6ðNÄîª.q•$&š36ÜÖA#:Ô¦U·æƒ¡ÄÊz¬Ä´JõDCqd=%t&ìíÔÚ4‡t,Æ+¼Š{#(JˆÐH ·E·íæSêí>I®ÌÃ3i2V|Ç<îœD‰Ÿ%™ïqêS‹B/pö¸—,ÚÔm:^jsBËÝ*vè·ß0leU½/æ_z΀®6ú­ñ '˜N‰æÛVÉÈÒY‚=qöÁ忤¬fÍjßµ{G°øÈÍÓÅs¼YÑ71Íši_ ç(¸+‚/¢Ìàü¾)›ÜæË\-„ÚK ‘žmNSRÑ É^jËOU…³äJ>EIÛ²:««®%u2S\È‚ƒPS›Ú5× Ù&L©D×µ¾©ÏÞ‘l¬²´;Ì ß{¢3çê¾ÑM?dz" 戢| ‰Ñ¿DïùSü@Qæ=ô:¨|ëõ^j(ýi­ñN|ÛZKP£tGp­èn’ܼ‘c§š¿²»‡B¾õÿÔ·‹R˜k)¯ ¬€-3"ŠD+&‰sN{ÉÝp;ár'Ã2,Tð½%ÀuSá¿%¯ª·Í5³=Uœ= £ô®èÑpý—Ô-÷/¼+ï¾ñÊ}£ü—¾z¯{••sz*z+g*4«¼ÒÐæ9ƒY)yj³—üHÕo È„m¨¨tc¿áR¥u ™ [—üo¦f…Á„e.)ižñw–³”¬ÊDÌ©¨²ã*`f`Úå‰l¿gæ.A§ÁðBÀõtñD†´?²5W€V‡_Ã}Wiw +¥Êè±ÿ L$!Ò£.»J•+¡(ˆ —.\_á„Y[Œ&&w©C<Å)pçÜÒÓþâ2ˆ-ÿŽ>ð¸ŠÍ·þÑ)4×5Ƶ× —v‰‘(±9én¤†ßh·æ@î Õ,ü íjí ÄK"´/ þGBʨKé0Hæ$Ô¹tE—._ð.\¾—.0eKŽ—.\¥ÔØ[,MJ©}4ÔâQ R¿¤-Pg žIK?R auu˜ ÕÉ-&B®Ð І2wnOQ gõ YÇû ÇUM wF’ÕÒ»!/Xö|¡%ó²‘ùZõEjQþetD‘) G=H0eÿ}._ó©yyxᨠ±eÀEÁËïЕ˜ŠF«eÒÓî;âÄD !Ä`Í«’)—,aå^&×›ƒUË£lœ·TÄ%ñ¹ˆ™hdÀDÔ‰]ˆév¿¤]l{Å’P{G!ó0óîeC Tn†*«YŒiàãöêÇ¢ J•,ˆ-N¥bQ£Ð‡Ff\¾—/¢åË—.  F5p(î T!‡D².WA©xÅÿq…Gv„)¡Y¬®XÖ@õ’#Îa •­·z¾%)[ÞßÜLô±çÔ"@ŽcÖ¸`Ö WIó›8–îƒ+QŒs÷ߘ•S‡õJA]Àqâ -cqå•1‚\¾¤H$Ä¿h2\~P,\t˜u;èC«.\¹}n\¹rá9qNu4ZÅ&Âb±oRÞÛUÁE®èa^óDÁ"FÏà4¥nîºû›˜ñˆÈ4¼L[FûÂà’ÕñT†ùP^Bwoâ!&‚Ø– %áŒ%q—Ülb«Ô!J— ý@ñ¨¨ƒþa›!ØÔó]3UÚR 'ˆ<&Q:Ô:Äs¨Î#·tQæ¾ä ú`MäÔX³Ä ‹éR¥ˆÿ*et¸BX \HZ_Ì_׈!mæSЬK÷ˆ*Eáö*9H)‡,€^ ‡a!ÍPBÌßdˆ.:«²¦}ßbs8Vå•L¼ƒ}µ† ƒÁµ¯³3˺†,(æÜšÌsqoCâøÈŒÊp†ñM³ þüˆ0ÇU=!–O€¸ïH!­ZwT¶;2T¨“0‡@=P$ªŒ¸Ãh2 Ô@…äÙ²²­þ!Ò¢¼“1¹}/¥Â¹râÿâ\¸ šÈq¸$NK^c2ß­¬ùK™×P”Þç´·RmMˆÙ7² væp %sm7qž"FZÕššhyj M³ˆPŒ*°¨rê¼ÝBòÃ+€”jÚÎ’† lx¸X»]ñ·)whÔGZ•p7ŽÐJª?bƒÐBòv急‹ò ®8vŽb•VSQ«i±ÁºÌc™qüÁ³ÄÊ Þ/uK”=Áí.bÅ#¸Þ ª¸qý"qp~"NQ×Ê\rJ”ʨõ¹råË‹/¢åË—/¦f,ª¥¶Æ^ú€™¼Bh6r!Uqm‡ÔÅšOk!8ú¿Ö"¡¿t͈‘»¤UÚÜBV´«‚ Ì=ŠŒd@ìE¡Q?`qÉñ(”åj ù•5lÄ#nL ¥Føæbp;Jø€HóúÓ ÎÄ[p*»§.å>á$YáÜg*ñkqàóëª!:‚*¥¿ÏRÈt^…œÄ Ý|ÀTLuÄb-†WÓg‰™n„j%²õî_ò¹}F84[vù,MŠà–¼n^Q"$§tRCt”lAkrÐAx]G7f¹—‹Ž¨Ô+ˆ8ËW¨jƒ-8(ne Ý—H”ØFÆ,4ŒµL,JŽñ˜ÑaݲXÎO„©~,—+ÌP Y%˜—FÔÁB-ZÓæo­F÷e'd°ÙCˆ ’´ÃS9'/úE[dÖY+Ë?ö0Zÿ¢8`«ã©‚®ðLEw€Ý*ϘþåK÷@m)ŠÍÔ¾ Q®‚‡ŸQ˜¾~)-VÈ€ļA,ÎêµÕ¹‰›>¢¥Å5,‡$ 3+‘BvâReåÜU:Œ`²æ[æË~#´àÜZ±&ºÎe£Üåï,a<5 ¹<š”4T NÔ\¬W”a{ÇJU´ãLtø!”)”ú!)I‰@QŽŒXÊ £'t@[rø…V؉×LEÃÀ—‹jÌ&¡ ù6¥‚ò€šD­š–µ ˸^ÿLB¹-ì˜Aˆ×oÌT2›Ä¡†üžÜz%Æ LeE­×Ê #Å”¬ ÅD¢£BÁXËEÅÿÐwî°z˜íXT,´7#k •ü™ëu 77û!¨“ ®£KCÁ*ªË¸KXEMHSœD…ŽWd¼©‡á¸“’á :ÑÖaÊ`´#hìâÐD ƒaõ@ê+e‹UÇJLÞajÂÌÑ·Œº‡¨¹XF Ý^¥°Ô¨cTŽ¡ˆgv»èfä ² ôJTt{¯ì€ééÝbo éJ‰d¹qb ®íNB"9ôôƒb®¯b"jÆë{ŠeÚÞIE3Wfâô«QòB­2x”(BˆA¬U† (Ù’Rµ¨YÑwÚ2 Û$ ÌVn_ÉMùL@+ŸJQý#XÕïÞ%Úäkæ ÒÇИÑÀ€}¥Y¯˜¶8n0U{KIî|Eéƒôޥܬ0BÒä+vK‚¡³y8|ê ¼â9m ýagø S9D°9ˆÜ!*GÓ%<"çåkÐÝ,žíu(´`³jÈIÍljsÊù™¡v.ØT±›ƒ°‹²:ß”›n‘u–(bÜÆByñ.YµÿLCFG•ÖbZRv…,hD^¢m#{NЪ ˆUôK£bùŒdá„6Å`¨ýÀ·óA¦^ùœÎ:Ë.K/.¥e4í¨±(¶ãò¨ÕäSpOCvHµÒµ5-â@0x-ØÜÝ'Äc*ó½G‡êŒÂ–X0 ¢‚$Í)\€l¼#ÙT¾ø•Œ ÞWÔ²d<¢ô·Ã{Ó¼àõ*ˆwQ-ù‚ãüŽ:¬"¶%´Ê\¹apßõ‚Š•ã¯Qi$‡«¥dŒ,¿, Xa¯Õ‹lD:m¤-;E©Mg‘ dE/—ê* ö[³†& ª´crè ðÀåf( À @ …ø½B‰”èf ˆUŽ3ÚóÑÜb\­PÀQyÄ­ÖæÚÈË¡™RÊgÛíÒ1V%ØA'©Q#žqóÌ¡eóÄmÝ„ò@ ©”q›•’½Ä›~X ¡}JÙZÊý¢ hkˆR«A߈ý 9ýE*þÁOÜ¥%æs†oIñ _Â=*pÁ.ćk=‰H:wÇñ2s•L0NÁõ ̘Ëô‹pqj!ð¾4Ly¸ ‚öŸfÓXhW¤§™ê5ò’à<5Ü‹D§“‹ˆ·«ÁêPè(a”0e–J÷ê ”U±ˆ#hX&–˜Ç0ì’èÕ79>!¤xÃü(†>ƱÌ{—(¹ñ1mÄP‡MŽrZŸˆƒ)wba»Áœ¸e…eòŠò¥CׄP5Š@à¢å~–ËšÑöGëq&awæZk–XT¨E˜î›–:%¼J0æ.²Ëª÷)5\Ô¥›¯€[]áEÙT¨õø†’žôþñÖþçBx|ŠÅ|‰•Q÷rݨrK¿÷ÇTÝUt¯jäAÅQ¾ÁçI˜É^%%Pz˜ ¬ÁH@Þ£Ðо\,tØ"ѱs˜Aw4ó< uîó‰^¾¤µÈR°Ál†ÕÌ[åq¡b²€ÔU¶ÜÀô»È_2ü9AÛ¸­ó!+8­Læ÷s7Û)i:>‰Q«¿(€¬5$µ ò³lT*쑞[Æ©"ך©½â:­»­>¥o¨e7,!YÛ¡#zÖ:qï’÷”’%¥…ys φ QïÚ(Ž…ÜKÁw)¶æB§;ŠÅW´1¡ ,S8Ìc´¦2•M%@µÁ ^C$)±P©{BÅ&ì …´Lqôe%C³R—Ô§ŒJ{C̾лÜãrê±äŠnŽq¤J8”}à, ö† qÝgö Ú¯ÛS_‰gp' Ô2è1ï¬f\¸®‰›Ì·‰š»#ìŸ7332šß3\MÌÂWhžbW337ÍĹ„î5o¼ÉÌQªK0Û–˜‰Áön¨¾â<Ò^Uð¶]P¾Šüc€Whª›k9Ú/w“:ÚÔ¬*/X/¶WÊUhkÜT.÷¡;‹x–x©˜PØ|Ä]·=~â¦îåa/} ¸fyüÂü²±ù–9м²¢šÀ}Ê?ÑÓOd¹YƒÝþ"îÕÎÜTòêèÔc¨»«kÔä-=CÇ:—¼—=*ûÊ‹shijÌWË)ŸR‡ý–9¿Ì®ÏÜ¿QFfáM“l W’ `"øt@ÿ™cÅË;TiÞ^f;Rñ0ÑùmBYsz¹Ÿ/d¿QOÈ~ eÕæ8 =K8ü" ˜µŠe™Pû”mÆf"Ó† ém”ìAo‰˜'™W¶PÔó·æxŒËFe¥Ø/îm˘,4{…x~¢ðW¸srðÅL‡Ì³$iÍúÃ2ø”ï÷ÙkâdìÀêfìDýÍ ˜¡f~f ‹â j,x)Ç pºœmxË?î?:™á®ï©GyÝGz¸¯j–ìÁ†I{Óê«^¦ ü‰J²¾Ø³—£V>جÍDÚ/i—þËâQÞUñù¥÷ê[Ä+KpS8¨®ÄËÄÔrl~b=Ÿ‰Gfs£î}‘ùŠœE)@ˆìU8ˆ…&˜‚+Úu´ˆ÷ˆáL]?]93¸*âßDA†íŒV)í»{/X¦×Ìhe¿PvÞ¡u»Ã9W v¦0¦#%C9P?2º6Ë+üAÕ1ïâ ØL¦qR°Ó[`×]àK}²­Óâ$@pÂë¹W çÄà ;Ê™sæ5Þâ †^ÚüL4¶05„¯2Ñ1Zú–2ùŠš žT”ðµå>XƒŸ©^#ñ›lúƒçósÔù¥Û"gþ¥½%xGܧW¯0U™_q¯?QŸ©2|EA,%ê ^!|oæeÈÁMåâЯ˜v•êíÚ§†#t|°F}BåÜ ¬³7ÄW@{—æ˜7@{ˆº²6Έ«BÏ´e|@ V¿ S¿×B"©ír£³+A3âÝåñ/ð!E–phÎeZ-UÇÄ* _ÞZSVSÜÁ7dBÖWÜC Ü¡º>å†̰«`v~£aÊ8|ÏŒ½Ô|âY‚vŸ±ÈÐâ"¼|K·ú¸¹È‚|{™«» ’ª½Ì@ NဨS¦¢´¶M´e<‘W¿Ì-vËs¼~¡¥î\ÌÀPðJ^dîËy£â>Æø…5êÝ¿ïj”öû…ƒˆsÙù€ç7ÜJ˜+u¶Áñ꽉àƒ*Xv&uš™Áâ°É*5ô”3ƒÁцg{,Ê9‚ö~à9q¹zà• îQÞUÔ|ØJ0£z”y>IŽR_&X«Î7¨ÍQ ‹!TßÁV!ñ,mÿ^ð]b.?´·ü…ñ¨ð’ŸS|“±R¯qS`bÖg»¨&Øþ(%ʸŽ? pßÜÄW»xËåco `|’€ù%£Ê6ñõ0µ\’Þùƒm–÷[S&Õ_Ë O’Áè1æIl0Tµ†%*ÖØ«‰CÜ ’ýK5BÉýÁMù`ŠË¿å–­«ÕÄ;SÓ—ËwOô”¼ýljøJ@ÞbâHV3õ¹A@Á´Oq¾z[R¸æ#tî(µ“ÁZù–²§Ü¦‘W Ã)¥*)ßæ`ZÙÑø‰Á=JÝ62áVLøœê¿,NÉžPôÊÞa¾ÑËRÇvE9úže‚Òú¹aŠ„WrÉd¿lþ ;>e¯)(Ùd¢d'&IKû Ó˜·«°Þ Q¢aÑ(VoÒgYû%Ã*üN,žˆ[míúœUî[ýe.ù÷.ôÜ ýDPzˆ ¼\ˆE´Ë6µ3z!U‰CµO÷æV –~ wLñ-Üж ªç´ „ã0ï?På1BÆê[³÷ §æ wl@9ª^Ä{@ÅVìÁbž"Ò+Ä(z—¢Ä‹‹«-}G±G¨®õê]ù—h‚uû‚7¨«ž`¡¿¹•«&““òú ¢*7UDm~eÐ}Àö©î Àý²œ«ñ/Å,¸7Wâ ¢ –`#|]J†@¶Æ­¸×|‰€ÔF>¢î©¾_‰Jʯˆ’È­a/†Væs$ÕBÖ`ûL¢]4we»T 05êa•©dÎ!†5Å~`6ÒùˆôE¼oâöÉQL%ú€àb¾ ±_ ^Ÿ¢e¸m' DÛÍx•¸1*­ŠŒ~H„åøš´âP»+ÙA•KÙx–æk‚Åâ%µ·Ûz‚š1î+u!Ù*ù+̲…'˜äË~'-‹meýK%¶x‰àj8¨ÜkQË[ù3Îà†y–Ãu2JÊâ(móÌ®ÀfE¶kpoâ´H¤¢óˆ*YZÄʼ¢ç2Þã®y‰p¥øfnëó ÔJìÇ«™»Fç!Aêq],rµÌ«.©ó)Ë343ƒc´áiöLUɪ‚áĵó¿³Z”8|Ëw‰nG>")xãó0)ó5—›–=û‹ÌâP™>à½ÉêÂK½Eo€ö‰ݯԠÎ}ÂØKܘ7®ÑweÔs-ÇyF×Ü£¬jí_3–è¸ó)Òb -ñ¸ ©]“F€ñ(/â4¨ïZ‹çžeª£´Mcn12p¾â|> ·¦å€±[¶ ˜WÙâÐJ[C®í¾ÄZÚWr9`ü2…@—`a½àUÁ‘PlWÀ`ï2.ó0襁D^W¼(È¿0£Y •9`ó_p©dæCî'’ae¸°RšÞ|@)ìÊ C^f?0[¢ýÂå?ˆ`?%ù&Ey&‹ñÒe³´Vñ4c7Úzì1Å$L™ú‡Äp·æStËoWî ®+æUV{–ºÇË- ½Ê–ܸ æŽåª…E^뤫ˆ`¥ñ¥ë±kÉT7¤®ì¬â¡iï(¡ë˜ocm^áôzŽt ‰ÃX5µ}òD6ø”ÉۅǨ£Q'~ã4¾{LÑF±òùˆ”×Ì\ŒG,@eÄÐ;°¡`ÜÍ@ j¥1<Ū.<$,æ]]ƒPM·†r-Š[MÙÞX2ÛûŸP]Ì™ÿYF¼Á9‹í¹m#{Öå‡iqð™r|JX‚Å¿xb¦ÚøŽ4çÄ8ÛóÓvA ,|2­Ùâ[˜.5æ+é)î4Ü¢à_ºÍ˜ç’¦ù”ÍyÆ&Ų]9rŽVM\n AÝïs™D,PLÕ}jàú€í £ÑÚfÙ`ıºvæPó(=¹Š9Q£U£UÌ+^`W8õÔL$;hÔúŠÞ›ó-bb,YCLª]Ì€Á(“/ê u›îù`v lµ±/pbϱ8rõ0¶ÜÎTLL×—ÜC~eüÀ–q¹o3½“Ë(ST·‰r—¿Ìg„H'b>¦flŸö [ˆÙ¸:.W-Z÷‹˜+Ül¯µ˜c+ýe&3+_ˆ¤_™Cˆƒ4¿RÅ£¸ŽØc¾å‡ö œ@r’š±–^ÃÔmל¢+!«DAi³Ô íZ¨w%Å í¤£óåŸ1rËî2Á3’E‚rŸ™E =<ƒ@ˤͦ/Ü Ñ–¸5Wo˜’î{€Ê¢ÛK¨ÙE¨a[Ig–f`^kQ.Í/î–嘃yø†ר±T;/ÄÚB¦9™˜¦5Â…¶y©ì@®kâQ? †4±1{Šr°i_ÖÉtù‰Þ_ §ÚbWX¯Ä^ú–du*ȳõävœ(~¥ŠAß\y¨`Ù÷¬ ²xÁò 3o÷ñ/[—¨£MÜ­«o΢ä_¸e’cJgƒöCF¯´»Ñd!= Uw¨¼<­n=Ë<·9Å%AEvTy€Øe”7—q{—”û—°töæ#¶«ß™vØcSHáæ )µOmߥ½ÿ”eœÚK2f☢6R5l DkúK·%¹mÕÅó8í;f5Tþ&µ8…¯xÁp?P\)fj¦RÜxƒxÁî+†½L[/½E§÷,ÄKTv€Aï7v¼Ä©) âT_鱉oÛ #A¬;ˆ¢Úu/2>âV–³A{°6­¾ci¥ñ¸ |ß 3Á¹]Ôx%B‰lË]ÀL´+,¡Uï1ÚÓà–5yõ¨*†“7rÛâf÷ø›aoÔ)§CrÁ݇.ái‰I”Ü&¥Ò;æzKK1(J¿0hM@¦_f]ïPQ§1«Ìˆ¡É=DjÇê"•ž% 7ê¼1+†ˆÒVÃ2ü5~%“-Ã;D^¯í‰ßp¥çİn¿ bTɘÚ×êY¦RíT|Çìe±nO¨«€_p^gõP‡Äóþ&†‡5=ÞUž£¬Æá 0Ê6Öc’ê_urÛvÎõ n%áÀ¨C7˜Ë9¾%¹w•»‡C9‚+P¡õÔXcQÛ ÉaÄÁ„úˆßù›Á¹ø1=’ðYCÚSÌì ¼O16]S2íõ¶iÌ kSWÔº–UW2œæ^:1b¸œaeÕby"œ"׿Wx1»÷ÄL›·ˆvK½ÄW3qLZsœ¿Õ=G”†çÿÚ   0à AC 00à 0à 00ƒ0 0Ã0à 0ÀÀ 0À A 0à À@ÀA  0€ 00@€ @ÃA A AA 0A@0@ @0À@‚ € A@  À@ 0@€  à ‚ 0€Ã Â0à À ‚ ‚ € @‚ A0‚  €€ €Â‚ Ã0‚ ‚ ‚ ƒ0à " €‚   ‚ ‚ ‚ ƒ0ƒ0‚ ‚ ‚ ‚ ‚ ‚‚‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚  ‚ ‚ ‚ ‚ € ‚‚ €‚‚ ‚ 0Áà @ ‚ 0€€#ŠÿÄ$!1A Q0@aPq‘€ÿÚ?ø+èØÇÊ> ó? 7Þ@ 8¡$óËø>°ü}Dñò¿1<ØÈj1¾ {ø.J.;º?> Q$Ocþ}°Y)±O·M ²:Éï¿xHð×БQù˜ý-³7RÿI/E‹Áܾ0<‹JÏ|? È|Àêa:GlMz¥X¢"Ø‹RéSJl°ö5¹ÂÔzKšñÄ-‘1æ',ÑèöƒØ0~žéªÇu1Ì¡¬ÍdÔá< ÁZÞ)Viºr'Ž,˜%DZšá‘ÙÌ7E­‘ D@Ö’É¢q“'¥V9ZeŒ…ÓŒf²ëŒ‰ÍÑ\*8gúhÆRGcDøY®$á´d¤mÁÒBôÆÐ¢ŒNz;™¹¤—†×¸FÐMb\tf~hŒÍó{àÅÔF )|"XV8½ñ±3œCÔÜôV>;BŒÊ)H¶B£HVÈË~ÎÜ=9.V5ìÛΟ±Œ¾7 L’$ˆÉÇs†L©gä |"•Ë9è¾× {8Ï¢¸ï‡ïƒ´þ¿îOÔéšÓô?c#Èßfw~—þ ŸÂÿÿÄ$!1A 0Q@Pa`qpÿÚ?ð_¼â>0CàO¡€½2<_Tù öF_BA âc? åQ.=‡d"X蟢_0D˜âödLÚCRÄö~C!…üT@øàö‘fÖIàŠ&ÄKû"ˆÉŠ !”i•«ÂzÇ€”Ùš ½!¨Ý2Ü’ð5À•±¸D IE1ºG«}ÚÁžŽ4¢ßÂCb¢…Rö"M‰Ã]ID™q!DpOòh,pòLÂËQÌð¦ŠåÑ9 ³dIäcLe>†e–Ü“àŒ4„°) (a“†]ŒÄSßýâhÑCƒdᒫᢈÎD‚­ä”,ÆåeÙ¢bd„jAb5®ÀÃr×IÈ•O 6FÙR! `S@„`©ÀˆãYF&º.Qîaîz£ðxèZe$¸«Ïî¨d¼›ˆ*†A.<Ñ¡pïóŸODÓ%Iq+¡4Ñ!dþåF\ˆj’fÃ$ÃBZä0¢?Hýt~q—ã†A ÷‚‚¨‚˜‚=‹Ô0ïêÂ?äaÅ<ÿÿÄ,!1AQaq‘¡±ÁÑ áðñ0P`@pÿÚ?ÿª @ v/ñJC?ü@¨ ¿ø„ †ÿÎ@ɇü ?øà@A@H ‚Gþ€'þPC©¿Øá€@€?ü@$ÕŠø €è ÿ ×wTVá²¥ÀäÓþ€O˜@óŒQ€¸$ êê®æhø)è²oš¹Jkqr®ÇäÐ\˜”Áò?7ÿ¼öއ*Ñ&-ÃÌ%0Ø`È#UòM¬HZÉf‹#ÝKÌÌb·+@Ü+¼ß@¦£Øv uÒ¬íÑpCQåiÂÚ w\ñe­7—ÿ”°AkL%`š/Hb ¡àHI&Éà°&ˆ {-’ʾæR—S—ôÁkÎ@uìŽ Põz™2 ØOg«E•îHÙV¬\‚ÛE!?xtZcGÓuÈ góc‡üÐÐÊÿ˜¥9…Óa \5"—³°³š¦Ty wTæÐX"С.wU)”Ž` V6Ê9«¨Áx©ª° 3VZà×q6åž)ÄN º¡Š/3Çfþ@»¿òHQÊÐBƒ+Tã†7&I’bJ¨aJ‚–Ixvµ>³@n¥KsßÈ1AÈd*ƽ6ªº³îëf2°!ÀBã¯- p5Ç¡eˆS!}xĈ¢+ásü€‚Lè|˜ 3‚t#ÿíe=)Çjp ¨‰¤û™THO€Z…ǨT\D Óð%f@,+Li³qî0cR³a& wZÕž’…òÃ#1*@øœ•’x¡:FŠ@*­¡ÄsŠóGD¢ƒ”@yÆŽÅ ‡XWP}ä©FŸ‰3)e !ê;®Ù|$§QzÏøgתQÒðˆê¶ëˆ;-h3‘dízF/þèãû/ê—TÁîUà5 š%lÑ % ­ETŽ]%IsåFZ­uûJjÃѪ,µ‡½ØV‰2Էƪ_ŠÑ;;Ä,¿3†Xfšr%D8õЪ ?Z `´I:,âôKÏe“€eAHÍ îµC Â06æó!3žAîW@q8ÒS€A_T:[ü@$¢J‘XQQôÀÒ²A!À>¢ÕúÀÉÿÒ‚è8Pº(z@8Y¨«;é¥)ï{MÔ c†DLŠÕÆ‚ĵN„ ÄÐYj¿‰Ò”r<)xšp°ĸ&ŠÍ@q®Î´è Ö‹ô2áœ}TõcmMUHQ×R¸§IP_[Ì%fA  %Pr}Pë¦ ‰OÔ‚i€Y€C/˜ +­1² h.bíé-±%€ŒG•¢¬«>Ü‘)øüð$c ÕÈܸtKª…T#(¤,9Kõdë2> ñó™ÝT„‘½‘¨X<ì»%9IpW9ô€AV[ÒsNÓ€Õk“ý“†´Q²D`4 ¦Pp$f×¢ðÖê••&5«ò)¤Í±”‹+Q¥+8ÐS5¤GíbŠK ÁN½\@B‰©Ã1\À‹TàîªøVnP•@ ~ø ºuzÀ“!‰€ôVQ¨ÃUœ&[ò@PX«„Ý(ÄAT ¨'",Kì>±˜î"_âQÓ_T¡Btæš.È´©ä½iR_üààÊ€/(­(cCo.*0ƒ…MrJ¸KÙfÏ@û,ÐŒ jê@1Ðòü«]eÓŒªqvÅP@X* Ù[¥zì\ ðJÓŒˆ3xLCHêÈE@2¸âX”Ý|6ˆŠä² ]@JãxU:Œ ‚­ÊçG\¹L—àÕ°=e©`­ Îq,‘Ž HÐ"Sò2ž ÒÔ`22ÅlÅñ ¬¾¥Nûl– ém~ðÕ²v é‚FgàŽówBúI³L åš,£:àŃ­Õpš`x_àƒÕ"YäŠ|APRÈh@xÏ8Ï\H[‚®ˆF‰à«ýP 0ðèž—,ûô½+ЂnåeÇOjØh^<‚(h ‰ ºÉ)ê¤'))êl½s»§iyd8ðð€¨Ö¥Hf8.SWp¨ÙÕjäFÐIÝS.”³;BÖ¢BhjXÀ£)ÇC°”ÕÕé‰YÅ9‚njNÍ‚·T'1 æTtíªW P¼Ö 1r… 2AÀnBï’œ§¢ ðR»±s«Í]wwÚ¾.àam*ÚË\è*®!¯¥ϪþhÊÎÊ èÿp €î ¼°¬ %DIL5p>zw®Dʘ?D?U£¹fÊx* À¸ ¢ÀÎBE¸É:\·ÒíeXLvU¶†["ðÄyÄÊV G¯€î`ß Á°.cˆ•J8ì¬G„€U»€\Áê[Aþ9‚Jæ .&²Õ층.®ÊŒpe«ºl-!ê›'‚Á!«§BCHoÕpFÀÕtøC<Ý :+}í@Êä|eÅ ‚B^/4y*ñ@l×eZ)@‰ZÑ U;W«ÀF"¸ˆa¹b‰Gü^@©â‹ÈnÀñ~š×àªE© êPRè$°†’ *A2RU6O²I:ªDÚá¨r7A7u}@F`0q€íuø JÚâÏuynXÀµ<W$¶£#¬˜5|"u;5… 3.³D70¼B`y•r.Dé{.j°Y@ô»bT/Í0qZŽªÞ—äd0ËòJkðgÌ)¸tfîºg 8BPS#@W“. ?²qDqéD!PãÐë¨qÕÂrŠÕ4ÃU_P6•JxÒjä ]àlBv3 ´ ós²à´xÍv|®j’#JÑÊy.`lBr§BTºz;'#`×óªŽ4¶sºÊ¬FŽÏ(ùZmf’’®} 6!7jÈC׳ž † ­p’_.TÕë ²ÐÝFQŸ$®R ²HÖ2ò‡wØTD}FÐ*R0Û'[ 0ðªx/+¦Á”ñó]PrÁO(\†©tXÒÈx/°òsKªÏAƒºj91 |àåGY­É Šš. صUekœÕ¨M]ë˜ZEõ 3„ïwxTîQ35 4‡ eNJ•ƒ…‚^N 3j·&úù9u`–êhí¬x,Àò¥ FIºÊ`O•›(¹à«V|™S¢¹9-ï‚-E¸%“Ü( 𸥟™ÀœPOÆŠ3}ÕóÖA‹/ɼ–@@tºà ÍLPž« !àªÂÇ9*‡J»¢Q9f©ª(E‚Öºˆ±9d°¥HQVš`´fÎéX¨ýA•àJz Á—4’h%ÌÄj¿C%(r©*:‘à(]XŽJÊx:ˆK(UóPºœJšâ îFòN@ç µBd‡@3Ñ>Z~lÄA²W"Á _"ü`ªVL˜º|µåÆ8Œ¢¬ºdý§¶¡ÁAb¾G’©£AÁƒán‡"¾\ S”AìYjgóñ É;hªÓ٨Å6Á=L#eki ð¯L aв¬ºbWê}ÝlŸ–݆#*žbºŽY?QX“G44®rì +ÚÀ (`¾!!ÊX&ÀuK]dY£®R“Epª=€ e5ˆä-lbñåT§ëq΃’´Æ2œÕbÒ `ѨªÞ دñs±ª¡+ŽVÒé¬K…iC¼—žJ¡2ÐÅ•\`xµC–Íb¿A}DÔ_«…\éA|Õh9b…P rR«€mú¬ì"¥ýEQTÜ€!=P;Š­EÃÄ‚8-ÐtA]Ó´µH,›«piz'…E×§‹ÄáÅÛ±PcdÍ4«!XÍ1R±)LGã›—Âbn€Å€¯¹cdÕ> d)ëú¢3 ­uhˆy/ÓtîµBUˆØÊä©PîB:‰Š¨HždÏ Ó»-÷P([‰À·ÀB²ŒàÊ¢´­ ÎÙä¥"ŠŽ—î™+ñA§,’€.ŽÈdä * WpQÐÜF &ê½v@+0aÀÁuAè3EΗZÒ «‹(Xî+‚OÔSW@E“ðPÄh0'BzóÔª}Ti ×;®y@c Z1”2ᤠZ7¸.Ë©“¥ÙÁ.µz€*#G“.WÇ Eh¦ƒÄ.³)º´Õ›3ÌY¯À'åj˜U“”¯°‡H À˜n—(1\V‘É~©¥)êâ¡x5.=)n¶t…Yx‚,V€0r$è%üŒ…X๒v`‚û'H EÖàŽkùÁÙ`SyÀˆt „mc7P¾r³K‚ø…ª‰ w…Yv ,ÙÁgµv! r3(pÕ1®`éX¹,©@(\dàk4JÊ0âð(…H:r;£WµXŒ#Sp4à¨Cðä¢ÃŽ?S5ÊÖ`ÔV2¸äI#å¢l­†A½”Da1)¦¢c!Ã× r¢Éw[2z?8±£ˆ1­…,/¹ICØ(˜ÙL‚ujÑAJ¥À½èq©y ægÝOiŠ` ¸ÚqC榢©E_ØU âr ä1R§1®¦]È—áÓ¥1k'YªBšÑC€KÀ…Ô‘°À€/ ÕpÓ‘ ®î´EyÀ¢YÉdØþ¢×MI00x %SM@Ukë °mb)\H„)5$°†KšZŸ:-ððT—Àˆ!‰4!XÒC'‰ÃØ¡ aeð¬ê¢Å—e„–Â=N€à=U0í$µ©QÌŠ]»:©‚ÛL6r€ F^Lk+¢+•À©A"Ǹˆõ‘œ¬úœÒx.­™9'“+£M€_  ,Ë4ñ0ƒp`©k!Lø(k‘7cZ2Ú d6L´Ð>~yLU pN¬¯›A)˜ÙÄ!E–wáorªîJj Às-p&ê·R^nYÆOb½ ‰t‹ Ä2öÐMJÚ²§¹+‚’⎞ãðT€”³ðž–ó)jÊg#®ì·”ZDŒ*PY˜…`ÌxÕÀ8‚µ>ܳÃg³!êú“\²N]ž…v£H"ÓP¤äR" g”ðh ƒ.®>([%Ӻº€Ê¨'±Ž¸òA¹!OÒ xåR^ÁMI‰„’.Í ©¡432ò"ßB%×à+P:ñèlšßAØtÍ|j9ܲ`´8“SÅ=Wš±%ãdj"xI«Uqdn¥ÂÌŒ@;2úa›¢x*Àà#¡4(eí°k ¬êäí‘ù…Ũs)àùf³pM¹ÑlÂVÔ;@µ`ÓE‡Î8$ÁdhL2[W*•´E×áÊ_dq §(ÔÆb +î‘e!\%ÀWkaŽªáù€g{²´düHÙjÄóECV˜]ŸšÈ‚–½‰˜u¸N KÂ8˜`*1H¿8pj¬ŒGÀ²Ò@ÁrŸ¬#ÆEIq•™rL³¶ÁÊìDÈù#rPf<Üô1,É è¾ð£¤dt4“‹ &ú„Sg«±H;NÐôÌ]Rr ÖDƒÉÀºµTÖ*ŒÐ"ÁxÜ¾ÈÆLä  +`@”ë@à7øû.4´pöN@æ ï àÂÈZ¸"ÊXµ@ø)IȲ{'7t¸òS°"T‡ø+ñ®¶P-t ²S% o€Ê„¥8‚Ž+‹?@ÉgHbHl(é¥U–„råƒ+æeÁªIíRìˆQ% Ã/Ì/°´'àCAS ²™ Õ |ãÄ(hBA.ë4éQà´Ã¿²×²#u¸ZC.¬Ëœe…_@4*¸~0€¢ÖUI@c7‰Ý¡5ÀQ,еEÝ8U¶¥Thà…Ù\ŒˆD– À ½,©ëøqKƒuÀpõ…°Àæ…Ô’¬‡é äzN¥Vª^&¢ÂH{ÿ‡#,XàdÒ/ƒú×1 e2E à»ý+QN ~Ìr[F?€sð„°©nJ™ÑUX>Aò³{U‰…„5×v'¼(œ ÐÑ ÒOJ¼Ã@Su½¹ É]US˜ P¤. F5•S„ª T•¦C7PGÌ.Ë@½=“%˜¼å'#=UèC/4e ¤ÑÔ‘©92%pK'‹ðØòÖ*€EŽËê#&æõy…t7Ì*µ.]¦¢r鲪‘€Ÿs#°:ñA ´*øÍœ…rWsF!L¦PêP‡fE€¨¢+F„Ýi®D¾z-ÀAÆ5À‰fÃŒ‘rÀDtÚ» ÑîÁL÷ÃçÔÊáÔ@¡‚È9PºÀ”ipCU1(@`…V²U1LÝc =€^‚Á@!¤:ê¹Ø­à —P³w\ÈH÷_ƒ+óU`OÅW½¯yW`ï”܃üwø„ ø€üA{%òTD‚ËÂ'¥é¹ð© bnD7e²•¦¾ « D©A«/k¯º€Œ7º J`ظ£²/ø;‘1}»ˆ€a¼€|»çL÷X€Èp!2Éð00†p?Á€‚C?è@SÁð Ð,Qüþ(…/Dß@D莟€ÿð¤ƒý‹¢ð ?%ßB’"¿ øŒØÀHþŒ¶bbhàšO’$ÓÊÈ¿'{SâäþzØ÷‹ ½ò¿$è³DŽ­Áísbô-ùû}€øHŸ€ C?€1'\?4ø_£âB+ð|â˜OÀ=ð.Äò$h€LÄ F`% »ëúÀÄ?Á±@h€ÛÁ@~/_qƒºÓDà¿_„ï‹DéP¿)×îýàÐé+î r æFˆ#‹úÞÉ‚TÃLÌ¢ýpB¥9àÁ€žEŒïÈ, N‘]{]…Ì™‹4ô,PBR È0ü@9@'¸À~ÆÔ øGà@@oÿ";€#è%äIã'\˜Ù{$î»Å‹úƒ`ìÀèP/šú\W¶R7Ê1 t$› wà IÞÝ)p,5`"Y˜ ó"Z‚`z@]A/ÀËT¥Á{E E—@XàÀ0Aë‘[ØL˜_cÀqƒÍó—`øñ„ ½®Ý+‰ ÛÜzàèà™éŽÀ’î ¯ €3r ±€]à>ÁwgÒl¾â!«%ÐL¨˜¬ k‰@æE8á­xÄ@Ý™ƒ=”œPBf)~HëòÊ&!‚¡ŠÔK¡íùNüa}&½&\H“šJP#ñ8…8A%@?Æ2¤ ¹1‚ð4äG±˜| ¸q]è?€W¨à¸.@CÞžÐ0¤àH0l‹/¡Ã`ƒœ#м@bQŽï¬ b@¸¥¹80Ì™8j˜z#š¶¸&è1éTµ… AÄoŠ€Ò I~#`ƒ›"taˆœp±ç’"éAsFô+¾=` Ù T:ŠÈ>†ÒØô9;¢³|ÐÀN(‡2ú0Tú@âTZW Zò@t•“7e¢‘ ¹5.àE  ÅhE0!w^{ (уâ Jþ‹i)ÁrÊŸÌæ="ê9vQ>ÑWgDáÖ“vذ^€ư sA†<ÄDþp bHE}¿À  !ô$ä®lÌ0Ü}æ=ï\–Ðl wЄ'cŠä%RS4hÓ/â„ràH¸ŠzÌ•”ÂÁ[¢ê.Áª CÚäH¸¢º‚@Ò+ÂXNï‘&,ˆ0Y{GÀ‰ˆï¿$V`˜*~YZ@×Et‹<ÀŸ 2" €G˜À]‘ã`­(àl<Ç<|P´E©·©È-؆.hbv‚ö ˆ¢ô*ášìdÔà‚¦jˆä,œ5[N¥Ù.³¡®áX&¢ h šØ'ÒüH€9“Ï9Û<€±90]v@Ä$ºÑ*q–tZUP;`øªpw\ ÈV sÁô Ù Øþp$4`Áðƒ‘\0 ôWº²ü†ù%8€Ð4ô‘Á6âÀó. EÔØ8®@2,Ð$¥Í}ⶇüŠñOb$¡ÕÖXûFƒ×E:[Ã9’‡uUû˜;4¥h ¨e˨$°E­¦š .@‚ÎEÊä—N þ…š©]PEÈì_ˆË WéA¶9ä‰? À~º¶}—à_ÀîU@&ˆbbGvWRâ†ÄuðA ¸&r²îøþH‚X­PæŒÝj„º©c2È Z•Æ:×F"ÂÛ±R9.àÀ9€-+ༀµM—yp.dK] ^KÀ``Â~IqYE_@[€“¢„êo Ø}®³¬¸å¢ Œ˜1xEKR8-`<–èúüË«bAsûàQJŒ„Õ}µÅ‡ÈŽ‚Ÿ{iº-ÃDèŠ;ªs¨­B¶È(W¢b½zF •|d^ 5^ ˜£ Rp–ŽýuÐC0—Áa‘­Oò´G»…Äðà ñRðÄ'&—  žWPjj›0»H\NàÂ؟ø|Lª¶E.,2V·Up">È ÄëºP…×1uäq°v g€¥¸•Éðà°ÕZ€>@˜€z@ÜÀº ÀŽÄo‚ 5âÐ¼Š¥ö|`—rðà G >†G`} ¸JkX|€5 Contributors: Brad Hards freexl-1.0.5/aclocal.m40000664000175000017500000012763313243550204011577 00000000000000# generated automatically by aclocal 1.15 -*- Autoconf -*- # Copyright (C) 1996-2014 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_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. 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) 2002-2014 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.15' 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.15], [], [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.15])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-2014 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], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2014 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_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$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-2014 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. # 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", "OBJC", "OBJCXX", "UPC", or "GJC". # 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 m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2014 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_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf 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"` # 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'`; 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"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2014 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 macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # 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.65])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], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) 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], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [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([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). 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])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro 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 # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) 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-2014 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+set}" != 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-2014 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. # 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])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2014 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_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2014 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_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-2014 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_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 is modern enough. # If it is, 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 --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # -*- Autoconf -*- # Obsolete and "removed" macros, that must however still report explicit # error messages when used, to smooth transition. # # Copyright (C) 1996-2014 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. AC_DEFUN([AM_CONFIG_HEADER], [AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl AC_CONFIG_HEADERS($@)]) AC_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should simply use the 'AC][_PROG_CC' macro instead. Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', but upon 'ac_cv_prog_cc_stdc'.])]) AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2014 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_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) 1999-2014 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_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2014 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_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2014 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_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $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 if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2014 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_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2014 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-2014 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_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-2014 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_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. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} 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([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) freexl-1.0.5/missing0000775000175000017500000002623313243550204011330 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 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, see . # 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=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # 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 msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -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' autom4te touch the output file, or create a stub one 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] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. 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 "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 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' $msg. 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 test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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 test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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 "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # 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 is $msg. 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 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: freexl-1.0.5/install-sh0000775000175000017500000003253713243550204011741 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # 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. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$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 $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # 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. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: freexl-1.0.5/freexl.pc.in0000664000175000017500000000043413243550204012142 00000000000000# Package Information for pkg-config prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: freexl Description: a simple library extracting data from .xls (Excel BIFF) files Version: @VERSION@ Libs: -L${libdir} -lfreexl -lm Cflags: -I${includedir} freexl-1.0.5/ChangeLog0000664000175000017500000000000013243550204011463 00000000000000freexl-1.0.5/NEWS0000664000175000017500000000000013243550204010410 00000000000000freexl-1.0.5/tests/0000775000175000017500000000000013243550237011153 500000000000000freexl-1.0.5/tests/check_excel2003_biff5_workbook.c0000664000175000017500000000433613243550204016771 00000000000000/* / check_excel2003_biff5_workbook.c / / Test cases for Excel BIFF5 format files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; ret = freexl_open ("testdata/simple2003_5WB.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/Makefile.in0000664000175000017500000014024113243550204013134 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 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@ check_PROGRAMS = open_oocalc95$(EXEEXT) open_oocalc97$(EXEEXT) \ check_oocalc95$(EXEEXT) check_oocalc97$(EXEEXT) \ open_excel2003$(EXEEXT) check_excel2003_biff2$(EXEEXT) \ check_excel2003_biff3$(EXEEXT) \ check_excel2003_biff3_info$(EXEEXT) \ check_excel2003_biff3_error_checks$(EXEEXT) \ check_excel2003_biff4$(EXEEXT) \ check_excel2003_biff4_workbook$(EXEEXT) \ check_excel2003_biff5_workbook$(EXEEXT) \ check_excel2003_biff8$(EXEEXT) \ check_excel2003_biff4_1904$(EXEEXT) walk_fat_oocalc97$(EXEEXT) \ walk_sst_oocalc97$(EXEEXT) check_datetime_biff8$(EXEEXT) \ check_boolean_biff8$(EXEEXT) check_oocalc97_intvalue$(EXEEXT) subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = check_boolean_biff8_SOURCES = check_boolean_biff8.c check_boolean_biff8_OBJECTS = check_boolean_biff8.$(OBJEXT) check_boolean_biff8_LDADD = $(LDADD) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = check_datetime_biff8_SOURCES = check_datetime_biff8.c check_datetime_biff8_OBJECTS = check_datetime_biff8.$(OBJEXT) check_datetime_biff8_LDADD = $(LDADD) check_excel2003_biff2_SOURCES = check_excel2003_biff2.c check_excel2003_biff2_OBJECTS = check_excel2003_biff2.$(OBJEXT) check_excel2003_biff2_LDADD = $(LDADD) check_excel2003_biff3_SOURCES = check_excel2003_biff3.c check_excel2003_biff3_OBJECTS = check_excel2003_biff3.$(OBJEXT) check_excel2003_biff3_LDADD = $(LDADD) check_excel2003_biff3_error_checks_SOURCES = \ check_excel2003_biff3_error_checks.c check_excel2003_biff3_error_checks_OBJECTS = \ check_excel2003_biff3_error_checks.$(OBJEXT) check_excel2003_biff3_error_checks_LDADD = $(LDADD) check_excel2003_biff3_info_SOURCES = check_excel2003_biff3_info.c check_excel2003_biff3_info_OBJECTS = \ check_excel2003_biff3_info.$(OBJEXT) check_excel2003_biff3_info_LDADD = $(LDADD) check_excel2003_biff4_SOURCES = check_excel2003_biff4.c check_excel2003_biff4_OBJECTS = check_excel2003_biff4.$(OBJEXT) check_excel2003_biff4_LDADD = $(LDADD) check_excel2003_biff4_1904_SOURCES = check_excel2003_biff4_1904.c check_excel2003_biff4_1904_OBJECTS = \ check_excel2003_biff4_1904.$(OBJEXT) check_excel2003_biff4_1904_LDADD = $(LDADD) check_excel2003_biff4_workbook_SOURCES = \ check_excel2003_biff4_workbook.c check_excel2003_biff4_workbook_OBJECTS = \ check_excel2003_biff4_workbook.$(OBJEXT) check_excel2003_biff4_workbook_LDADD = $(LDADD) check_excel2003_biff5_workbook_SOURCES = \ check_excel2003_biff5_workbook.c check_excel2003_biff5_workbook_OBJECTS = \ check_excel2003_biff5_workbook.$(OBJEXT) check_excel2003_biff5_workbook_LDADD = $(LDADD) check_excel2003_biff8_SOURCES = check_excel2003_biff8.c check_excel2003_biff8_OBJECTS = check_excel2003_biff8.$(OBJEXT) check_excel2003_biff8_LDADD = $(LDADD) check_oocalc95_SOURCES = check_oocalc95.c check_oocalc95_OBJECTS = check_oocalc95.$(OBJEXT) check_oocalc95_LDADD = $(LDADD) check_oocalc97_SOURCES = check_oocalc97.c check_oocalc97_OBJECTS = check_oocalc97.$(OBJEXT) check_oocalc97_LDADD = $(LDADD) check_oocalc97_intvalue_SOURCES = check_oocalc97_intvalue.c check_oocalc97_intvalue_OBJECTS = check_oocalc97_intvalue.$(OBJEXT) check_oocalc97_intvalue_LDADD = $(LDADD) open_excel2003_SOURCES = open_excel2003.c open_excel2003_OBJECTS = open_excel2003.$(OBJEXT) open_excel2003_LDADD = $(LDADD) open_oocalc95_SOURCES = open_oocalc95.c open_oocalc95_OBJECTS = open_oocalc95.$(OBJEXT) open_oocalc95_LDADD = $(LDADD) open_oocalc97_SOURCES = open_oocalc97.c open_oocalc97_OBJECTS = open_oocalc97.$(OBJEXT) open_oocalc97_LDADD = $(LDADD) walk_fat_oocalc97_SOURCES = walk_fat_oocalc97.c walk_fat_oocalc97_OBJECTS = walk_fat_oocalc97.$(OBJEXT) walk_fat_oocalc97_LDADD = $(LDADD) walk_sst_oocalc97_SOURCES = walk_sst_oocalc97.c walk_sst_oocalc97_OBJECTS = walk_sst_oocalc97.$(OBJEXT) walk_sst_oocalc97_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = check_boolean_biff8.c check_datetime_biff8.c \ check_excel2003_biff2.c check_excel2003_biff3.c \ check_excel2003_biff3_error_checks.c \ check_excel2003_biff3_info.c check_excel2003_biff4.c \ check_excel2003_biff4_1904.c check_excel2003_biff4_workbook.c \ check_excel2003_biff5_workbook.c check_excel2003_biff8.c \ check_oocalc95.c check_oocalc97.c check_oocalc97_intvalue.c \ open_excel2003.c open_oocalc95.c open_oocalc97.c \ walk_fat_oocalc97.c walk_sst_oocalc97.c DIST_SOURCES = check_boolean_biff8.c check_datetime_biff8.c \ check_excel2003_biff2.c check_excel2003_biff3.c \ check_excel2003_biff3_error_checks.c \ check_excel2003_biff3_info.c check_excel2003_biff4.c \ check_excel2003_biff4_1904.c check_excel2003_biff4_workbook.c \ check_excel2003_biff5_workbook.c check_excel2003_biff8.c \ check_oocalc95.c check_oocalc97.c check_oocalc97_intvalue.c \ open_excel2003.c open_oocalc95.c open_oocalc97.c \ walk_fat_oocalc97.c walk_sst_oocalc97.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ $(top_srcdir)/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ 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@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ 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@ 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_srcdir = @top_srcdir@ AM_CFLAGS = -I@srcdir@/../headers AM_LDFLAGS = -L../src -lfreexl -lm $(GCOV_FLAGS) TESTS = $(check_PROGRAMS) MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = testdata/oocalc_empty95.xls \ testdata/oocalc_empty97.xls \ testdata/oocalc_simple95.xls \ testdata/oocalc_simple97.xls \ testdata/empty2003.xls \ testdata/simple2003.xls \ testdata/simple2003_21.xls \ testdata/simple2003_3.xls \ testdata/simple2003_4.xls \ testdata/simple2003_4_1904.xls \ testdata/simple2003_4WB.xlw \ testdata/simple2003_5WB.xls \ testdata/datetime2003.xls \ testdata/testcase1.xls \ testdata/testbool.xls \ test_under_valgrind.sh all: all-am .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_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 check_boolean_biff8$(EXEEXT): $(check_boolean_biff8_OBJECTS) $(check_boolean_biff8_DEPENDENCIES) $(EXTRA_check_boolean_biff8_DEPENDENCIES) @rm -f check_boolean_biff8$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_boolean_biff8_OBJECTS) $(check_boolean_biff8_LDADD) $(LIBS) check_datetime_biff8$(EXEEXT): $(check_datetime_biff8_OBJECTS) $(check_datetime_biff8_DEPENDENCIES) $(EXTRA_check_datetime_biff8_DEPENDENCIES) @rm -f check_datetime_biff8$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_datetime_biff8_OBJECTS) $(check_datetime_biff8_LDADD) $(LIBS) check_excel2003_biff2$(EXEEXT): $(check_excel2003_biff2_OBJECTS) $(check_excel2003_biff2_DEPENDENCIES) $(EXTRA_check_excel2003_biff2_DEPENDENCIES) @rm -f check_excel2003_biff2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff2_OBJECTS) $(check_excel2003_biff2_LDADD) $(LIBS) check_excel2003_biff3$(EXEEXT): $(check_excel2003_biff3_OBJECTS) $(check_excel2003_biff3_DEPENDENCIES) $(EXTRA_check_excel2003_biff3_DEPENDENCIES) @rm -f check_excel2003_biff3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff3_OBJECTS) $(check_excel2003_biff3_LDADD) $(LIBS) check_excel2003_biff3_error_checks$(EXEEXT): $(check_excel2003_biff3_error_checks_OBJECTS) $(check_excel2003_biff3_error_checks_DEPENDENCIES) $(EXTRA_check_excel2003_biff3_error_checks_DEPENDENCIES) @rm -f check_excel2003_biff3_error_checks$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff3_error_checks_OBJECTS) $(check_excel2003_biff3_error_checks_LDADD) $(LIBS) check_excel2003_biff3_info$(EXEEXT): $(check_excel2003_biff3_info_OBJECTS) $(check_excel2003_biff3_info_DEPENDENCIES) $(EXTRA_check_excel2003_biff3_info_DEPENDENCIES) @rm -f check_excel2003_biff3_info$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff3_info_OBJECTS) $(check_excel2003_biff3_info_LDADD) $(LIBS) check_excel2003_biff4$(EXEEXT): $(check_excel2003_biff4_OBJECTS) $(check_excel2003_biff4_DEPENDENCIES) $(EXTRA_check_excel2003_biff4_DEPENDENCIES) @rm -f check_excel2003_biff4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff4_OBJECTS) $(check_excel2003_biff4_LDADD) $(LIBS) check_excel2003_biff4_1904$(EXEEXT): $(check_excel2003_biff4_1904_OBJECTS) $(check_excel2003_biff4_1904_DEPENDENCIES) $(EXTRA_check_excel2003_biff4_1904_DEPENDENCIES) @rm -f check_excel2003_biff4_1904$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff4_1904_OBJECTS) $(check_excel2003_biff4_1904_LDADD) $(LIBS) check_excel2003_biff4_workbook$(EXEEXT): $(check_excel2003_biff4_workbook_OBJECTS) $(check_excel2003_biff4_workbook_DEPENDENCIES) $(EXTRA_check_excel2003_biff4_workbook_DEPENDENCIES) @rm -f check_excel2003_biff4_workbook$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff4_workbook_OBJECTS) $(check_excel2003_biff4_workbook_LDADD) $(LIBS) check_excel2003_biff5_workbook$(EXEEXT): $(check_excel2003_biff5_workbook_OBJECTS) $(check_excel2003_biff5_workbook_DEPENDENCIES) $(EXTRA_check_excel2003_biff5_workbook_DEPENDENCIES) @rm -f check_excel2003_biff5_workbook$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff5_workbook_OBJECTS) $(check_excel2003_biff5_workbook_LDADD) $(LIBS) check_excel2003_biff8$(EXEEXT): $(check_excel2003_biff8_OBJECTS) $(check_excel2003_biff8_DEPENDENCIES) $(EXTRA_check_excel2003_biff8_DEPENDENCIES) @rm -f check_excel2003_biff8$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_excel2003_biff8_OBJECTS) $(check_excel2003_biff8_LDADD) $(LIBS) check_oocalc95$(EXEEXT): $(check_oocalc95_OBJECTS) $(check_oocalc95_DEPENDENCIES) $(EXTRA_check_oocalc95_DEPENDENCIES) @rm -f check_oocalc95$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_oocalc95_OBJECTS) $(check_oocalc95_LDADD) $(LIBS) check_oocalc97$(EXEEXT): $(check_oocalc97_OBJECTS) $(check_oocalc97_DEPENDENCIES) $(EXTRA_check_oocalc97_DEPENDENCIES) @rm -f check_oocalc97$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_oocalc97_OBJECTS) $(check_oocalc97_LDADD) $(LIBS) check_oocalc97_intvalue$(EXEEXT): $(check_oocalc97_intvalue_OBJECTS) $(check_oocalc97_intvalue_DEPENDENCIES) $(EXTRA_check_oocalc97_intvalue_DEPENDENCIES) @rm -f check_oocalc97_intvalue$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_oocalc97_intvalue_OBJECTS) $(check_oocalc97_intvalue_LDADD) $(LIBS) open_excel2003$(EXEEXT): $(open_excel2003_OBJECTS) $(open_excel2003_DEPENDENCIES) $(EXTRA_open_excel2003_DEPENDENCIES) @rm -f open_excel2003$(EXEEXT) $(AM_V_CCLD)$(LINK) $(open_excel2003_OBJECTS) $(open_excel2003_LDADD) $(LIBS) open_oocalc95$(EXEEXT): $(open_oocalc95_OBJECTS) $(open_oocalc95_DEPENDENCIES) $(EXTRA_open_oocalc95_DEPENDENCIES) @rm -f open_oocalc95$(EXEEXT) $(AM_V_CCLD)$(LINK) $(open_oocalc95_OBJECTS) $(open_oocalc95_LDADD) $(LIBS) open_oocalc97$(EXEEXT): $(open_oocalc97_OBJECTS) $(open_oocalc97_DEPENDENCIES) $(EXTRA_open_oocalc97_DEPENDENCIES) @rm -f open_oocalc97$(EXEEXT) $(AM_V_CCLD)$(LINK) $(open_oocalc97_OBJECTS) $(open_oocalc97_LDADD) $(LIBS) walk_fat_oocalc97$(EXEEXT): $(walk_fat_oocalc97_OBJECTS) $(walk_fat_oocalc97_DEPENDENCIES) $(EXTRA_walk_fat_oocalc97_DEPENDENCIES) @rm -f walk_fat_oocalc97$(EXEEXT) $(AM_V_CCLD)$(LINK) $(walk_fat_oocalc97_OBJECTS) $(walk_fat_oocalc97_LDADD) $(LIBS) walk_sst_oocalc97$(EXEEXT): $(walk_sst_oocalc97_OBJECTS) $(walk_sst_oocalc97_DEPENDENCIES) $(EXTRA_walk_sst_oocalc97_DEPENDENCIES) @rm -f walk_sst_oocalc97$(EXEEXT) $(AM_V_CCLD)$(LINK) $(walk_sst_oocalc97_OBJECTS) $(walk_sst_oocalc97_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_boolean_biff8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_datetime_biff8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff3_error_checks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff3_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff4_1904.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff4_workbook.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff5_workbook.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_excel2003_biff8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_oocalc95.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_oocalc97.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_oocalc97_intvalue.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_excel2003.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_oocalc95.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_oocalc97.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/walk_fat_oocalc97.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/walk_sst_oocalc97.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ 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-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ 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" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? open_oocalc95.log: open_oocalc95$(EXEEXT) @p='open_oocalc95$(EXEEXT)'; \ b='open_oocalc95'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) open_oocalc97.log: open_oocalc97$(EXEEXT) @p='open_oocalc97$(EXEEXT)'; \ b='open_oocalc97'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_oocalc95.log: check_oocalc95$(EXEEXT) @p='check_oocalc95$(EXEEXT)'; \ b='check_oocalc95'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_oocalc97.log: check_oocalc97$(EXEEXT) @p='check_oocalc97$(EXEEXT)'; \ b='check_oocalc97'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) open_excel2003.log: open_excel2003$(EXEEXT) @p='open_excel2003$(EXEEXT)'; \ b='open_excel2003'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff2.log: check_excel2003_biff2$(EXEEXT) @p='check_excel2003_biff2$(EXEEXT)'; \ b='check_excel2003_biff2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff3.log: check_excel2003_biff3$(EXEEXT) @p='check_excel2003_biff3$(EXEEXT)'; \ b='check_excel2003_biff3'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff3_info.log: check_excel2003_biff3_info$(EXEEXT) @p='check_excel2003_biff3_info$(EXEEXT)'; \ b='check_excel2003_biff3_info'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff3_error_checks.log: check_excel2003_biff3_error_checks$(EXEEXT) @p='check_excel2003_biff3_error_checks$(EXEEXT)'; \ b='check_excel2003_biff3_error_checks'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff4.log: check_excel2003_biff4$(EXEEXT) @p='check_excel2003_biff4$(EXEEXT)'; \ b='check_excel2003_biff4'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff4_workbook.log: check_excel2003_biff4_workbook$(EXEEXT) @p='check_excel2003_biff4_workbook$(EXEEXT)'; \ b='check_excel2003_biff4_workbook'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff5_workbook.log: check_excel2003_biff5_workbook$(EXEEXT) @p='check_excel2003_biff5_workbook$(EXEEXT)'; \ b='check_excel2003_biff5_workbook'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff8.log: check_excel2003_biff8$(EXEEXT) @p='check_excel2003_biff8$(EXEEXT)'; \ b='check_excel2003_biff8'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_excel2003_biff4_1904.log: check_excel2003_biff4_1904$(EXEEXT) @p='check_excel2003_biff4_1904$(EXEEXT)'; \ b='check_excel2003_biff4_1904'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) walk_fat_oocalc97.log: walk_fat_oocalc97$(EXEEXT) @p='walk_fat_oocalc97$(EXEEXT)'; \ b='walk_fat_oocalc97'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) walk_sst_oocalc97.log: walk_sst_oocalc97$(EXEEXT) @p='walk_sst_oocalc97$(EXEEXT)'; \ b='walk_sst_oocalc97'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_datetime_biff8.log: check_datetime_biff8$(EXEEXT) @p='check_datetime_biff8$(EXEEXT)'; \ b='check_datetime_biff8'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_boolean_biff8.log: check_boolean_biff8$(EXEEXT) @p='check_boolean_biff8$(EXEEXT)'; \ b='check_boolean_biff8'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_oocalc97_intvalue.log: check_oocalc97_intvalue$(EXEEXT) @p='check_oocalc97_intvalue$(EXEEXT)'; \ b='check_oocalc97_intvalue'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) 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 $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) 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-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: 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 -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile 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 maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # 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: freexl-1.0.5/tests/check_excel2003_biff4_1904.c0000664000175000017500000002714113243550204015527 00000000000000/* / check_excel2003_biff4_1904.c / / Test cases for Excel 1904 start date / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/simple2003_4_1904.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 0) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != FREEXL_BIFF_VER_4) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1904) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_CP1252) { fprintf(stderr, "Unexpected BIFF codepage: %d\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 1) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } ret = freexl_get_info(handle, FREEXL_BIFF_FORMAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF format count: %d\n", ret); return -21; } if (info != 10) { fprintf(stderr, "Unexpected BIFF format count: %d\n", info); return -22; } ret = freexl_get_info(handle, FREEXL_BIFF_XF_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF extended format count: %d\n", ret); return -23; } if (info != 26) { fprintf(stderr, "Unexpected BIFF extended format count: %d\n", info); return -24; } /* We only have one worksheet, zero index */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "Worksheet") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 4) || (num_columns != 6)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0): %d\n", ret); return -32; } if (cell_value.type != FREEXL_CELL_TEXT) { fprintf(stderr, "Unexpected cell (0,0) type: %u\n", cell_value.type); return -33; } if (strcmp(cell_value.value.text_value, "Column 1") != 0) { fprintf(stderr, "Unexpected cell (0,0) value: %s\n", cell_value.value.text_value); return -34; } ret = freexl_get_cell_value(handle, 3, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,0): %d\n", ret); return -35; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,0) type: %u\n", cell_value.type); return -36; } if (cell_value.value.double_value != 3.14) { fprintf(stderr, "Unexpected cell (3,0) value: %g\n", cell_value.value.double_value); return -37; } ret = freexl_get_cell_value(handle, 3, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,1): %d\n", ret); return -38; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,1) type: %u\n", cell_value.type); return -39; } if (cell_value.value.double_value != -56.3089) { fprintf(stderr, "Unexpected cell (3,1) value: %g\n", cell_value.value.double_value); return -40; } ret = freexl_get_cell_value(handle, 3, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,2): %d\n", ret); return -41; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,2) type: %u\n", cell_value.type); return -42; } if (cell_value.value.double_value != 0.67) { fprintf(stderr, "Unexpected cell (3,2) value: %g\n", cell_value.value.double_value); return -43; } ret = freexl_get_cell_value(handle, 3, 3, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,3): %d\n", ret); return -44; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (3,3) type: %u\n", cell_value.type); return -45; } if (strcmp(cell_value.value.text_value, "1971-10-02") != 0) { fprintf(stderr, "Unexpected cell (3,3) value: %s\n", cell_value.value.text_value); return -46; } ret = freexl_get_cell_value(handle, 2, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (2,5): %d\n", ret); return -47; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (2,5) type: %u\n", cell_value.type); return -48; } if (strcmp(cell_value.value.text_value, "2008-12-01") != 0) { fprintf(stderr, "Unexpected cell (2,5) value: %s\n", cell_value.value.text_value); return -49; } ret = freexl_get_cell_value(handle, 3, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,4): %d\n", ret); return -50; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,4) type: %u\n", cell_value.type); return -51; } if (cell_value.value.double_value != 4) { fprintf(stderr, "Unexpected cell (3,4) value: %g\n", cell_value.value.double_value); return -52; } ret = freexl_get_cell_value(handle, 3, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,5): %d\n", ret); return -53; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,5) type: %u\n", cell_value.type); return -54; } if (cell_value.value.double_value != 237) { fprintf(stderr, "Unexpected cell (3,5) value: %g\n", cell_value.value.double_value); return -55; } ret = freexl_get_cell_value(handle, 1, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,5): %d\n", ret); return -56; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (1,5) type: %u\n", cell_value.type); return -57; } if (strcmp(cell_value.value.text_value, "23:34:04") != 0) { fprintf(stderr, "Unexpected cell (1,5) value: %s\n", cell_value.value.text_value); return -58; } /* error cases */ ret = freexl_get_cell_value(handle, 7, 3, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (7,3): %d\n", ret); return -59; } ret = freexl_get_cell_value(handle, 2, 99, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (2,99): %d\n", ret); return -60; } ret = freexl_get_cell_value(handle, 4, 2, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (4,2): %d\n", ret); return -61; } ret = freexl_get_cell_value(handle, 3, 6, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (3,6): %d\n", ret); return -62; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/test_under_valgrind.sh0000775000175000017500000000035213243550204015466 00000000000000#! /bin/bash for i in *; do if test -x $i -a -f $i -a $i != "test_under_valgrind.sh"; then libtool --mode=execute valgrind --track-origins=yes --tool=memcheck --num-callers=20 --leak-check=full --show-reachable=yes $i fi; done; freexl-1.0.5/tests/check_datetime_biff8.c0000664000175000017500000002404313243550204015243 00000000000000/* / check_datetime_biff8.c / / Test cases for Excel built-in date and time formats / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/datetime2003.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -2; } if (info != FREEXL_BIFF_VER_8) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -3; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -4; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -5; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -6; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -7; } if ((num_rows != 15) || (num_columns != 2)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -8; } ret = freexl_get_cell_value (handle, 1, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,0): %d\n", ret); return -9; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (1,0) type: %u\n", cell_value.type); return -10; } if (strcmp(cell_value.value.text_value, "09:58:45") != 0) { fprintf(stderr, "Unexpected cell (1,0) value: %s\n", cell_value.value.text_value); return -11; } ret = freexl_get_cell_value (handle, 2, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (2,0): %d\n", ret); return -12; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (2,0) type: %u\n", cell_value.type); return -13; } if (strcmp(cell_value.value.text_value, "22:45:00") != 0) { fprintf(stderr, "Unexpected cell (2,0) value: %s\n", cell_value.value.text_value); return -14; } ret = freexl_get_cell_value (handle, 3, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,0): %d\n", ret); return -15; } if (cell_value.type != FREEXL_CELL_DATETIME) { fprintf(stderr, "Unexpected cell (3,0) type: %u\n", cell_value.type); return -16; } if (strcmp(cell_value.value.text_value, "2007-11-06 16:28:00") != 0) { fprintf(stderr, "Unexpected cell (3,0) value: %s\n", cell_value.value.text_value); return -17; } ret = freexl_get_cell_value (handle, 4, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (4,0): %d\n", ret); return -18; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (4,0) type: %u\n", cell_value.type); return -19; } if (strcmp(cell_value.value.text_value, "2007-03-23") != 0) { fprintf(stderr, "Unexpected cell (4,0) value: %s\n", cell_value.value.text_value); return -20; } ret = freexl_get_cell_value (handle, 5, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (5,0): %d\n", ret); return -21; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (5,0) type: %u\n", cell_value.type); return -22; } if (strcmp(cell_value.value.text_value, "2005-06-04") != 0) { fprintf(stderr, "Unexpected cell (5,0) value: %s\n", cell_value.value.text_value); return -23; } ret = freexl_get_cell_value (handle, 6, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (6,0): %d\n", ret); return -24; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (6,0) type: %u\n", cell_value.type); return -25; } if (strcmp(cell_value.value.text_value, "2011-07-05") != 0) { fprintf(stderr, "Unexpected cell (6,0) value: %s\n", cell_value.value.text_value); return -26; } ret = freexl_get_cell_value (handle, 7, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (7,0): %d\n", ret); return -27; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (7,0) type: %u\n", cell_value.type); return -28; } if (strcmp(cell_value.value.text_value, "2012-10-01") != 0) { fprintf(stderr, "Unexpected cell (7,0) value: %s\n", cell_value.value.text_value); return -29; } ret = freexl_get_cell_value (handle, 8, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (8,0): %d\n", ret); return -30; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (8,0) type: %u\n", cell_value.type); return -31; } if (strcmp(cell_value.value.text_value, "12:26:00") != 0) { fprintf(stderr, "Unexpected cell (8,0) value: %s\n", cell_value.value.text_value); return -32; } ret = freexl_get_cell_value (handle, 9, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (9,0): %d\n", ret); return -33; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (9,0) type: %u\n", cell_value.type); return -34; } if (strcmp(cell_value.value.text_value, "00:25:46") != 0) { fprintf(stderr, "Unexpected cell (9,0) value: %s\n", cell_value.value.text_value); return -35; } ret = freexl_get_cell_value (handle, 10, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (9,0): %d\n", ret); return -36; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (10,0) type: %u\n", cell_value.type); return -37; } if (strcmp(cell_value.value.text_value, "13:12:00") != 0) { fprintf(stderr, "Unexpected cell (10,0) value: %s\n", cell_value.value.text_value); return -38; } ret = freexl_get_cell_value (handle, 11, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (11,0): %d\n", ret); return -39; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (11,0) type: %u\n", cell_value.type); return -40; } if (strcmp(cell_value.value.text_value, "14:56:30") != 0) { fprintf(stderr, "Unexpected cell (11,0) value: %s\n", cell_value.value.text_value); return -41; } ret = freexl_get_cell_value (handle, 12, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (12,0): %d\n", ret); return -42; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (12,0) type: %u\n", cell_value.type); return -43; } if (strcmp(cell_value.value.text_value, "00:45:04") != 0) { fprintf(stderr, "Unexpected cell (12,0) value: %s\n", cell_value.value.text_value); return -44; } ret = freexl_get_cell_value (handle, 13, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (13,0): %d\n", ret); return -45; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (13,0) type: %u\n", cell_value.type); return -46; } if (strcmp(cell_value.value.text_value, "04:45:02") != 0) { fprintf(stderr, "Unexpected cell (13,0) value: %s\n", cell_value.value.text_value); return -47; } ret = freexl_get_cell_value (handle, 14, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (14,0): %d\n", ret); return -48; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (14,0) type: %u\n", cell_value.type); return -49; } if (strcmp(cell_value.value.text_value, "04:45:30") != 0) { fprintf(stderr, "Unexpected cell (14,0) value: %s\n", cell_value.value.text_value); return -50; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -51; } return 0; } freexl-1.0.5/tests/check_excel2003_biff2.c0000664000175000017500000002615213243550204015051 00000000000000/* / check_excel2003_biff2.c / / Test cases for Excel BIFF2 format files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/simple2003_21.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 0) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != FREEXL_BIFF_VER_2) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_CP1252) { fprintf(stderr, "Unexpected BIFF codepage: %d\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 1) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } ret = freexl_get_info(handle, FREEXL_BIFF_FORMAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF format count: %d\n", ret); return -21; } if (info != 10) { fprintf(stderr, "Unexpected BIFF format count: %d\n", info); return -22; } ret = freexl_get_info(handle, FREEXL_BIFF_XF_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF extended format count: %d\n", ret); return -23; } if (info != 6) { fprintf(stderr, "Unexpected BIFF extended format count: %d\n", info); return -24; } /* We only have one worksheet, zero index */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "Worksheet") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 4) || (num_columns != 6)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0): %d\n", ret); return -32; } if (cell_value.type != FREEXL_CELL_TEXT) { fprintf(stderr, "Unexpected cell (0,0) type: %u\n", cell_value.type); return -33; } if (strcmp(cell_value.value.text_value, "Column 1") != 0) { fprintf(stderr, "Unexpected cell (0,0) value: %s\n", cell_value.value.text_value); return -34; } ret = freexl_get_cell_value(handle, 3, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,0): %d\n", ret); return -35; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,0) type: %u\n", cell_value.type); return -36; } if (cell_value.value.double_value != 3.14) { fprintf(stderr, "Unexpected cell (3,0) value: %g\n", cell_value.value.double_value); return -37; } ret = freexl_get_cell_value(handle, 3, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,1): %d\n", ret); return -38; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,1) type: %u\n", cell_value.type); return -39; } if (cell_value.value.double_value != -56.3089) { fprintf(stderr, "Unexpected cell (3,1) value: %g\n", cell_value.value.double_value); return -40; } ret = freexl_get_cell_value(handle, 3, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,2): %d\n", ret); return -41; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,2) type: %u\n", cell_value.type); return -42; } if (cell_value.value.double_value != 0.67) { fprintf(stderr, "Unexpected cell (3,2) value: %g\n", cell_value.value.double_value); return -43; } ret = freexl_get_cell_value(handle, 3, 3, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,3): %d\n", ret); return -44; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (3,3) type: %u\n", cell_value.type); return -45; } if (strcmp(cell_value.value.text_value, "1967-10-01") != 0) { fprintf(stderr, "Unexpected cell (3,3) value: %s\n", cell_value.value.text_value); return -46; } ret = freexl_get_cell_value(handle, 3, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,4): %d\n", ret); return -47; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (3,4) type: %u\n", cell_value.type); return -48; } if (cell_value.value.int_value != 4) { fprintf(stderr, "Unexpected cell (3,4) value: %d\n", cell_value.value.int_value); return -49; } ret = freexl_get_cell_value(handle, 3, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,5): %d\n", ret); return -50; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (3,5) type: %u\n", cell_value.type); return -51; } if (cell_value.value.int_value != 237) { fprintf(stderr, "Unexpected cell (3,5) value: %d\n", cell_value.value.int_value); return -52; } ret = freexl_get_cell_value(handle, 1, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,5): %d\n", ret); return -53; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (1,5) type: %u\n", cell_value.type); return -54; } if (strcmp(cell_value.value.text_value, "23:34:04") != 0) { fprintf(stderr, "Unexpected cell (1,5) value: %s\n", cell_value.value.text_value); return -55; } /* error cases */ ret = freexl_get_cell_value(handle, 7, 3, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (7,3): %d\n", ret); return -56; } ret = freexl_get_cell_value(handle, 2, 99, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (2,99): %d\n", ret); return -57; } ret = freexl_get_cell_value(handle, 4, 2, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (4,2): %d\n", ret); return -58; } ret = freexl_get_cell_value(handle, 3, 6, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (3,6): %d\n", ret); return -59; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/check_oocalc97_intvalue.c0000664000175000017500000003032113243550204015714 00000000000000/* / check_oocalc97_intvalue.c / / Test cases for LibreOffice BIFF8 format files, integer value cases / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/testcase1.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_CFBF_VER_3) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_CFBF_SECTOR_512) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 128) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != FREEXL_BIFF_VER_8) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_BIFF_MAX_RECSZ_8224) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_UTF16LE) { fprintf(stderr, "Unexpected BIFF codepage: 0x%x\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 3) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } /* We start with the first worksheet (zero index) */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "Sheet1") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 17) || (num_columns != 19)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0): %d\n", ret); return -32; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (0,0) type: %u\n", cell_value.type); return -33; } if (cell_value.value.int_value != 2172515) { fprintf(stderr, "Unexpected cell (0,0) value: %i\n", cell_value.value.int_value); return -34; } ret = freexl_get_cell_value(handle, 6, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (6,4): %d\n", ret); return -35; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (6,4) type: %u\n", cell_value.type); return -36; } if (cell_value.value.int_value != -26) { fprintf(stderr, "Unexpected cell (6,4) value: %i\n", cell_value.value.int_value); return -37; } ret = freexl_get_cell_value(handle, 7, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (7,4): %d\n", ret); return -38; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (7,4) type: %u\n", cell_value.type); return -39; } if (cell_value.value.double_value != -36.05) { fprintf(stderr, "Unexpected cell (7,4) value: %f\n", cell_value.value.double_value); return -40; } #if 0 ret = freexl_get_cell_value(handle, 1, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,2): %d\n", ret); return -41; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (1,2) type: %u\n", cell_value.type); return -42; } if (cell_value.value.int_value != 2) { fprintf(stderr, "Unexpected cell (1,2) value: %d\n", cell_value.value.int_value); return -43; } ret = freexl_get_cell_value(handle, 1, 3, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,3): %d\n", ret); return -44; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (1,3) type: %u\n", cell_value.type); return -45; } if (cell_value.value.double_value != 4.2) { fprintf(stderr, "Unexpected cell (1,3) value: %g\n", cell_value.value.double_value); return -46; } ret = freexl_get_cell_value(handle, 1, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,4): %d\n", ret); return -47; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (1,4) type: %u\n", cell_value.type); return -48; } if (strcmp(cell_value.value.text_value, "11:00:00") != 0) { fprintf(stderr, "Unexpected cell (1,4) value: %s\n", cell_value.value.text_value); return -49; } ret = freexl_get_cell_value(handle, 1, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,5): %d\n", ret); return -50; } if (cell_value.type != FREEXL_CELL_DATETIME) { fprintf(stderr, "Unexpected cell (1,5) type: %u\n", cell_value.type); return -51; } if (strcmp(cell_value.value.text_value, "2011-08-21 10:23:45") != 0) { fprintf(stderr, "Unexpected cell (1,5) value: %s\n", cell_value.value.text_value); return -52; } ret = freexl_get_cell_value(handle, 1, 6, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,6): %d\n", ret); return -53; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (1,6) type: %u\n", cell_value.type); return -54; } if (strcmp(cell_value.value.text_value, "1967-03-11") != 0) { fprintf(stderr, "Unexpected cell (1,6) value: %s\n", cell_value.value.text_value); return -55; } ret = freexl_get_cell_value(handle, 0, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,2): %d\n", ret); return -56; } if (cell_value.type != FREEXL_CELL_NULL) { fprintf(stderr, "Unexpected cell (0,2) type: %u\n", cell_value.type); return -57; } /* error cases */ ret = freexl_get_cell_value(handle, 5, 1, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (5,1): %d\n", ret); return -56; } ret = freexl_get_cell_value(handle, 1, 99, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (1,99): %d\n", ret); return -57; } ret = freexl_get_cell_value(handle, 2, 2, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (2,2): %d\n", ret); return -58; } ret = freexl_get_cell_value(handle, 1, 7, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (1,7): %d\n", ret); return -59; } /* Check the second worksheet */ ret = freexl_get_worksheet_name(handle, 1, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -60; } if (strcmp(worksheet_name, "Renamed sheet") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -63; } ret = freexl_select_active_worksheet (handle, 1); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet to 1: %d\n", ret); return -64; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet : %d\n", ret); return -65; } if (active_idx != 1) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -66; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions 2: %d\n", ret); return -67; } if ((num_rows != 0) || (num_columns != 0)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -68; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (0,0): %d\n", ret); return -69; } #endif ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/check_excel2003_biff3_error_checks.c0000664000175000017500000001221613243550204017577 00000000000000/* / check_excel2003_biff3_error_checks.c / / Test cases for non-normal Excel BIFF3 operations / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */#include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open_info ("testdata/simple2003_3.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN INFO ERROR: %d\n", ret); return -1; } ret = freexl_get_info(NULL, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_NULL_HANDLE) { fprintf(stderr, "GET_INFO unexpected ret for CFBF version handle: %d\n", ret); return -3; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, NULL); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "GET_INFO unexpected ret for CFBF version info: %d\n", ret); return -4; } ret = freexl_get_worksheet_name(NULL, 0, &worksheet_name); if (ret != FREEXL_NULL_HANDLE) { fprintf(stderr, "Unexpected result getting worksheet name handle: %d\n", ret); return -5; } ret = freexl_get_worksheet_name(handle, 0, NULL); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "Unexpected result getting worksheet name string: %d\n", ret); return -6; } ret = freexl_select_active_worksheet (NULL, 0); if (ret != FREEXL_NULL_HANDLE) { fprintf(stderr, "Unexpected result setting active worksheet handle: %d\n", ret); return -7; } ret = freexl_select_active_worksheet (handle, 34); if (ret != FREEXL_BIFF_ILLEGAL_SHEET_INDEX) { fprintf(stderr, "Unexpected result setting active worksheet index: %d\n", ret); return -8; } ret = freexl_get_active_worksheet (NULL, &active_idx); if (ret != FREEXL_NULL_HANDLE) { fprintf(stderr, "Unexpected result getting active worksheet handle: %d\n", ret); return -9; } ret = freexl_get_active_worksheet (handle, NULL); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "Unexpected result getting active worksheet arg: %d\n", ret); return -10; } ret = freexl_worksheet_dimensions (NULL, &num_rows, &num_columns); if (ret != FREEXL_NULL_HANDLE) { fprintf(stderr, "Unexpected result getting worksheet dimensions handle: %d\n", ret); return -12; } ret = freexl_worksheet_dimensions (handle, NULL, &num_columns); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "Unexpected result getting worksheet dimensions row: %d\n", ret); return -13; } ret = freexl_worksheet_dimensions (handle, &num_rows, NULL); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "Unexpected result getting worksheet dimensions col: %d\n", ret); return -14; } ret = freexl_worksheet_dimensions (handle, NULL, NULL); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "Unexpected result getting worksheet dimensions both: %d\n", ret); return -15; } ret = freexl_get_cell_value (NULL, 0, 0, &cell_value); if (ret != FREEXL_NULL_HANDLE) { fprintf(stderr, "Unexpected result getting cell value (0,0) handle: %d\n", ret); return -16; } ret = freexl_get_cell_value (handle, 0, 0, NULL); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "Unexpected result getting cell value (0,0) val: %d\n", ret); return -17; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/walk_fat_oocalc97.c0000664000175000017500000001404213243550204014522 00000000000000/* / walk_fat_oocal97.c / / Test of FAT operations - LibreOffice (BIFF8) / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" const unsigned int expected_fat_flag[] = { 0xfffffffd, 0xffffffff, 0xfffffffe, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0xfffffffe, 0x0000000b, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }; int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int fat_count = 0; unsigned int fat_flag = 0; int i; ret = freexl_open ("testdata/oocalc_simple97.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &fat_count); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for FAT entries count: %d\n", ret); return -2; } if (fat_count != 128) { fprintf(stderr, "Unexpected FAT entries count: %d\n", fat_count); return -3; } for (i = 0; i < fat_count; ++i) { ret = freexl_get_FAT_entry (handle, i, &fat_flag); if (ret != FREEXL_OK) { fprintf(stderr, "get_FAT_entry error for %i: %d\n", i, ret); return -4; } if (fat_flag != expected_fat_flag[i]) { fprintf(stderr, "unexpected flag at %i: 0x%08x (expected 0x%08x)\n", i, fat_flag, expected_fat_flag[i]); } } /* error case checks */ ret = freexl_get_FAT_entry (handle, fat_count, &fat_flag); if (ret != FREEXL_CFBF_ILLEGAL_FAT_ENTRY) { fprintf(stderr, "get_FAT_entry error for +1: %d\n", ret); return -6; } ret = freexl_get_FAT_entry (NULL, 0, &fat_flag); if (ret != FREEXL_NULL_HANDLE) { fprintf(stderr, "get_FAT_entry error for null handle: %d\n", ret); return -7; } ret = freexl_get_FAT_entry (handle, 0, NULL); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "get_FAT_entry error for null arg: %d\n", ret); return -8; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -6; } return 0; } freexl-1.0.5/tests/check_excel2003_biff4_workbook.c0000664000175000017500000000446113243550204016767 00000000000000/* / check_excel2003_biff4_worbook.c / / Test cases for Excel 4 non-xls files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/simple2003_4WB.xlw", &handle); if (ret != FREEXL_CFBF_INVALID_SIGNATURE) { fprintf(stderr, "unexpected result for open(): %d\n", ret); return -1; } return 0; } freexl-1.0.5/tests/open_excel2003.c0000664000175000017500000000445113243550204013663 00000000000000/* / open_excel2003.c / / Test of simple open of empty file - Excel 2003 (BIFF8) / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; ret = freexl_open ("testdata/empty2003.xls", &handle); if (ret != FREEXL_OK) { fprintf (stderr, "OPEN ERROR: %d\n", ret); return -1; } if (!handle) { fprintf (stderr, "Null workbook handle\n"); return -3; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf (stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/open_oocalc95.c0000664000175000017500000000432713243550204013676 00000000000000/* / open_oocalc95.c / / Test of simple open of empty file - LibreOffice (BIFF5) / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; ret = freexl_open ("testdata/oocalc_empty95.xls", &handle); if (ret != FREEXL_OK) { fprintf (stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf (stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/walk_sst_oocalc97.c0000664000175000017500000000720013243550204014557 00000000000000/* / walk_sst_oocalc97.c / / Test of SST operations - LibreOffice (BIFF8) / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */#include #include #include #include "freexl.h" const char * expected_string[] = { "Col 1", "Col 2", "time", "Datetime", "date", "A", "B" }; int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int sst_count; int i; const char *sst_entry; ret = freexl_open ("testdata/oocalc_simple97.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_BIFF_STRING_COUNT, &sst_count); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for SST string count: %d\n", ret); return -2; } if (sst_count != 7) { fprintf(stderr, "Unexpected SST string count: %d\n", sst_count); return -3; } for (i = 0; i < sst_count; ++i) { ret = freexl_get_SST_string (handle, i, &sst_entry); if (ret != FREEXL_OK) { fprintf(stderr, "get_SST_string error for %i: %d\n", i, ret); return -4; } if (strcmp(sst_entry, expected_string[i]) != 0) { fprintf(stderr, "string mismatch at %i: got %s expected %s\n", i, sst_entry, expected_string[i]); return -5; } } /* error case checks */ ret = freexl_get_SST_string (handle, sst_count, &sst_entry); if (ret != FREEXL_BIFF_ILLEGAL_SST_INDEX) { fprintf(stderr, "get_SST_string error for +1: %d\n", ret); return -6; } ret = freexl_get_SST_string (NULL, 0, &sst_entry); if (ret != FREEXL_NULL_HANDLE) { fprintf(stderr, "get_SST_string error for null handle: %d\n", ret); return -7; } ret = freexl_get_SST_string (handle, 0, NULL); if (ret != FREEXL_NULL_ARGUMENT) { fprintf(stderr, "get_SST_string error for null arg: %d\n", ret); return -8; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -6; } return 0; } freexl-1.0.5/tests/check_excel2003_biff8.c0000664000175000017500000003242513243550204015057 00000000000000/* / check_excel2003_biff8.c / / Test cases for Excel BIFF8 format files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/simple2003.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_CFBF_VER_3 ) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_CFBF_SECTOR_512) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 128) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != FREEXL_BIFF_VER_8) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_BIFF_MAX_RECSZ_8224) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_UTF16LE) { fprintf(stderr, "Unexpected BIFF codepage: %d\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 2) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } ret = freexl_get_info(handle, FREEXL_BIFF_FORMAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF format count: %d\n", ret); return -21; } if (info != 0) { fprintf(stderr, "Unexpected BIFF format count: %d\n", info); return -22; } ret = freexl_get_info(handle, FREEXL_BIFF_XF_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF extended format count: %d\n", ret); return -23; } if (info != 26) { fprintf(stderr, "Unexpected BIFF extended format count: %d\n", info); return -24; } /* We start with the first worksheet, zero index */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "simple2003_4") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 4) || (num_columns != 6)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0): %d\n", ret); return -32; } if (cell_value.type != FREEXL_CELL_SST_TEXT) { fprintf(stderr, "Unexpected cell (0,0) type: %u\n", cell_value.type); return -33; } if (strcmp(cell_value.value.text_value, "Column 1") != 0) { fprintf(stderr, "Unexpected cell (0,0) value: %s\n", cell_value.value.text_value); return -34; } ret = freexl_get_cell_value(handle, 3, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,0): %d\n", ret); return -35; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,0) type: %u\n", cell_value.type); return -36; } if (cell_value.value.double_value != 3.14) { fprintf(stderr, "Unexpected cell (3,0) value: %g\n", cell_value.value.double_value); return -37; } ret = freexl_get_cell_value(handle, 3, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,1): %d\n", ret); return -38; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,1) type: %u\n", cell_value.type); return -39; } if (cell_value.value.double_value != -56.3089) { fprintf(stderr, "Unexpected cell (3,1) value: %g\n", cell_value.value.double_value); return -40; } ret = freexl_get_cell_value(handle, 3, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,2): %d\n", ret); return -41; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,2) type: %u\n", cell_value.type); return -42; } if (cell_value.value.double_value != 0.67) { fprintf(stderr, "Unexpected cell (3,2) value: %g\n", cell_value.value.double_value); return -43; } ret = freexl_get_cell_value(handle, 3, 3, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,3): %d\n", ret); return -44; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (3,3) type: %u\n", cell_value.type); return -45; } if (strcmp(cell_value.value.text_value, "1967-10-01") != 0) { fprintf(stderr, "Unexpected cell (3,3) value: %s\n", cell_value.value.text_value); return -46; } ret = freexl_get_cell_value(handle, 3, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,4): %d\n", ret); return -47; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,4) type: %u\n", cell_value.type); return -48; } if (cell_value.value.double_value != 4) { fprintf(stderr, "Unexpected cell (3,4) value: %g\n", cell_value.value.double_value); return -49; } ret = freexl_get_cell_value(handle, 3, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,5): %d\n", ret); return -50; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,5) type: %u\n", cell_value.type); return -51; } if (cell_value.value.double_value != 237) { fprintf(stderr, "Unexpected cell (3,5) value: %g\n", cell_value.value.double_value); return -52; } /* error cases */ ret = freexl_get_cell_value(handle, 7, 3, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (7,3): %d\n", ret); return -53; } ret = freexl_get_cell_value(handle, 2, 99, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (2,99): %d\n", ret); return -54; } ret = freexl_get_cell_value(handle, 4, 2, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (4,2): %d\n", ret); return -55; } ret = freexl_get_cell_value(handle, 3, 6, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (3,6): %d\n", ret); return -56; } /* The second worksheet, zero index */ ret = freexl_get_worksheet_name(handle, 1, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -57; } if (strcmp(worksheet_name, "sheet2") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -58; } ret = freexl_select_active_worksheet (handle, 1); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet 2: %d\n", ret); return -59; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet 2: %d\n", ret); return -60; } if (active_idx != 1) { fprintf(stderr, "Unexpected active sheet 2: %d\n", info); return -61; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions 2: %d\n", ret); return -62; } if ((num_rows != 4) || (num_columns != 6)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -63; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0) 2: %d\n", ret); return -64; } if (cell_value.type != FREEXL_CELL_SST_TEXT) { fprintf(stderr, "Unexpected cell (0,0) type 2: %u\n", cell_value.type); return -65; } if (strcmp(cell_value.value.text_value, "Column 1") != 0) { fprintf(stderr, "Unexpected cell (0,0) value: %s\n", cell_value.value.text_value); return -66; } ret = freexl_get_cell_value(handle, 2, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (2,5): %d\n", ret); return -67; } if (cell_value.type != FREEXL_CELL_SST_TEXT) { fprintf(stderr, "Unexpected cell (2,5) type: %u\n", cell_value.type); return -68; } if (strcmp(cell_value.value.text_value, "sheet 2") != 0) { fprintf(stderr, "Unexpected cell (2,5) value: %s\n", cell_value.value.text_value); return -69; } ret = freexl_get_cell_value(handle, 1, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,5): %d\n", ret); return -70; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (1,5) type: %u\n", cell_value.type); return -71; } if (strcmp(cell_value.value.text_value, "23:34:04") != 0) { fprintf(stderr, "Unexpected cell (1,5) value: %s\n", cell_value.value.text_value); return -72; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/Makefile.am0000664000175000017500000000231013243550204013115 00000000000000check_PROGRAMS = open_oocalc95 \ open_oocalc97 \ check_oocalc95 \ check_oocalc97 \ open_excel2003 \ check_excel2003_biff2 \ check_excel2003_biff3 \ check_excel2003_biff3_info \ check_excel2003_biff3_error_checks \ check_excel2003_biff4 \ check_excel2003_biff4_workbook \ check_excel2003_biff5_workbook \ check_excel2003_biff8 \ check_excel2003_biff4_1904 \ walk_fat_oocalc97 \ walk_sst_oocalc97 \ check_datetime_biff8 \ check_boolean_biff8 \ check_oocalc97_intvalue AM_CFLAGS = -I@srcdir@/../headers AM_LDFLAGS = -L../src -lfreexl -lm $(GCOV_FLAGS) TESTS = $(check_PROGRAMS) MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = testdata/oocalc_empty95.xls \ testdata/oocalc_empty97.xls \ testdata/oocalc_simple95.xls \ testdata/oocalc_simple97.xls \ testdata/empty2003.xls \ testdata/simple2003.xls \ testdata/simple2003_21.xls \ testdata/simple2003_3.xls \ testdata/simple2003_4.xls \ testdata/simple2003_4_1904.xls \ testdata/simple2003_4WB.xlw \ testdata/simple2003_5WB.xls \ testdata/datetime2003.xls \ testdata/testcase1.xls \ testdata/testbool.xls \ test_under_valgrind.sh freexl-1.0.5/tests/check_oocalc95.c0000664000175000017500000003015713243550204014012 00000000000000/* / check_oocalc95.c / / Test cases for LibreOffice BIFF5 format files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/oocalc_simple95.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_CFBF_VER_3) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_CFBF_SECTOR_512) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 128) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != FREEXL_BIFF_VER_5) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_BIFF_MAX_RECSZ_2080) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_CP1252) { fprintf(stderr, "Unexpected BIFF codepage: 0x%x\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 3) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } ret = freexl_get_info(handle, FREEXL_BIFF_FORMAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF format count: %d\n", ret); return -21; } if (info != 3) { fprintf(stderr, "Unexpected BIFF format count: %d\n", info); return -22; } ret = freexl_get_info(handle, FREEXL_BIFF_XF_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF extended format count: %d\n", ret); return -23; } if (info != 24) { fprintf(stderr, "Unexpected BIFF extended format count: %d\n", info); return -24; } ret = freexl_get_info(handle, FREEXL_BIFF_STRING_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for SST string count: %d\n", ret); return -61; } if (info != 0) { fprintf(stderr, "Unexpected SST string count: %d\n", info); return -62; } /* We start with the first worksheet (zero index) */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "Sheet1") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 2) || (num_columns != 7)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0): %d\n", ret); return -32; } if (cell_value.type != FREEXL_CELL_TEXT) { fprintf(stderr, "Unexpected cell (0,0) type: %u\n", cell_value.type); return -33; } if (strcmp(cell_value.value.text_value, "Col 1") != 0) { fprintf(stderr, "Unexpected cell (0,0) value: %s\n", cell_value.value.text_value); return -34; } ret = freexl_get_cell_value(handle, 1, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,0): %d\n", ret); return -35; } if (cell_value.type != FREEXL_CELL_TEXT) { fprintf(stderr, "Unexpected cell (1,0) type: %u\n", cell_value.type); return -36; } if (strcmp(cell_value.value.text_value, "A") != 0) { fprintf(stderr, "Unexpected cell (1,0) value: %s\n", cell_value.value.text_value); return -37; } ret = freexl_get_cell_value(handle, 1, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,1): %d\n", ret); return -38; } if (cell_value.type != FREEXL_CELL_TEXT) { fprintf(stderr, "Unexpected cell (1,1) type: %u\n", cell_value.type); return -39; } if (strcmp(cell_value.value.text_value, "B") != 0) { fprintf(stderr, "Unexpected cell (1,1) value: %s\n", cell_value.value.text_value); return -40; } ret = freexl_get_cell_value(handle, 1, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,2): %d\n", ret); return -41; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (1,2) type: %u\n", cell_value.type); return -42; } if (cell_value.value.int_value != 2) { fprintf(stderr, "Unexpected cell (1,2) value: %d\n", cell_value.value.int_value); return -43; } ret = freexl_get_cell_value(handle, 1, 3, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,3): %d\n", ret); return -44; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (1,3) type: %u\n", cell_value.type); return -45; } if (cell_value.value.double_value != 4.2) { fprintf(stderr, "Unexpected cell (1,3) value: %g\n", cell_value.value.double_value); return -46; } ret = freexl_get_cell_value(handle, 1, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,4): %d\n", ret); return -47; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (1,4) type: %u\n", cell_value.type); return -48; } if (strcmp(cell_value.value.text_value, "11:00:00") != 0) { fprintf(stderr, "Unexpected cell (1,4) value: %s\n", cell_value.value.text_value); return -49; } ret = freexl_get_cell_value(handle, 1, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,5): %d\n", ret); return -50; } if (cell_value.type != FREEXL_CELL_DATETIME) { fprintf(stderr, "Unexpected cell (1,5) type: %u\n", cell_value.type); return -51; } if (strcmp(cell_value.value.text_value, "2011-08-21 10:23:45") != 0) { fprintf(stderr, "Unexpected cell (1,5) value: %s\n", cell_value.value.text_value); return -52; } ret = freexl_get_cell_value(handle, 1, 6, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,6): %d\n", ret); return -53; } if (cell_value.type != FREEXL_CELL_DATETIME) { fprintf(stderr, "Unexpected cell (1,6) type: %u\n", cell_value.type); return -54; } if (strcmp(cell_value.value.text_value, "1967-03-11 00:00:00") != 0) { fprintf(stderr, "Unexpected cell (1,6) value: %s\n", cell_value.value.text_value); return -55; } ret = freexl_get_cell_value(handle, 0, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,2): %d\n", ret); return -56; } if (cell_value.type != FREEXL_CELL_NULL) { fprintf(stderr, "Unexpected cell (0,2) type: %u\n", cell_value.type); return -57; } /* error cases */ ret = freexl_get_cell_value(handle, 5, 1, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (5,1): %d\n", ret); return -56; } ret = freexl_get_cell_value(handle, 1, 99, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (1,99): %d\n", ret); return -57; } ret = freexl_get_cell_value(handle, 2, 2, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (2,2): %d\n", ret); return -58; } ret = freexl_get_cell_value(handle, 1, 7, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (1,7): %d\n", ret); return -59; } /* Check the second worksheet */ ret = freexl_get_worksheet_name(handle, 1, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -60; } if (strcmp(worksheet_name, "Excel95 format sheet 2") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -63; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/testdata/0000775000175000017500000000000013243550237012764 500000000000000freexl-1.0.5/tests/testdata/testbool.xls0000664000175000017500000005500013243550204015261 00000000000000ÐÏࡱá>þÿ +þÿÿÿþÿÿÿ*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ g2ÍÁ€á°Áâ\pMilitaru, Mihai B°aÀ=œ¯¼=àx“l)18X@"·Ú1ÜêCalibri1ÜêCalibri1ÜêCalibri1ÜêCalibri1ÜêCalibri1h8¼êCambria1,8¼êCalibri18¼êCalibri1Ü8¼êCalibri1ÜêCalibri1ÜêCalibri1Ü<êCalibri1Ü>êCalibri1Ü?¼êCalibri1Ü4¼êCalibri1Ü4êCalibri1Ü ¼êCalibri1Ü êCalibri1ÜêCalibri1ܼêCalibri1Ü êCalibri"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)àõÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ à À àõÿ ´Ÿ àõÿ ´­ àõÿ ´ª àõÿ ´® àõÿ ´› àõÿ ´¯ àõÿ ´¬ àõÿ ´ àõÿ ´‹ àõÿ ´® àõÿ ´¬ àõÿ ´³ àõÿ ´ž àõÿ ´ àõÿ ´‹ àõÿ ´¤ àõÿ ´± àõÿ ´´ àõÿ ´¾ àõÿ ´Š àõÿ ´¹ àõÿ ´¤ àõÿ ´± àõÿ ´µ à õÿ ´­ àõÿ ”— — – àõÿ ”ff¿¿· à+õÿ øÀ à)õÿ øÀ à,õÿ øÀ à*õÿ øÀ àõÿ ôÀ à õÿ ´ª àõÿ ÔPÀ àõÿ ÔP À à õÿ Ô À à õÿ ôÀ à õÿ ”— — ¯ àõÿ Ô`À à õÿ ´« àõÿ œ  š àõÿ ”¿¿– à õÿ øÀ àõÿ ôÀ àõÿ Ôa>À àõÿ ôÀ ||>gKÚÌ}-} 00\);_(*}-} 00\);_(*}-} 00\);_(*}-} 00\);_(*}-} 00\);_(*}-} 00\);_(*}-} 00\);_(*}-} 00\);_(*}-} 00\);_(*}-}  00\);_(*}-}  00\);_(*}-}  00\);_(*}-}  00\);_(*}-}  00\);_(*}-} 00\);_(*}-} 00\);_(*}-}+ 00\);_(*}-}, 00\);_(*}-}- 00\);_(*}-}. 00\);_(*}-}: 00\);_(*}-}; 00\);_(*}A}1 00\);_(*;_(@_) }A}2 00\);_(*ÿ?;_(@_) }A}3 00\);_(*23;_(@_) }-}4 00\);_(*}A}0 aÿ00\);_(*ÆïÎÿ;_(@_) }A}( œÿ00\);_(*ÿÇÎÿ;_(@_) }A}7 œeÿ00\);_(*ÿëœÿ;_(@_) }‘}5 ??vÿ00\);_(*ÿÌ™ÿ;_(@_) ÿ ÿ ÿ ÿ}‘}9 ???ÿ00\);_(*òòòÿ;_(@_) ???ÿ ???ÿ ???ÿ ???ÿ}‘}) ú}ÿ00\);_(*òòòÿ;_(@_) ÿ ÿ ÿ ÿ}A}6 ú}ÿ00\);_(*ÿ€ÿ;_(@_) }‘}* 00\);_(*¥¥¥ÿ;_(@_) ???ÿ ???ÿ ???ÿ ???ÿ}-}= ÿÿ00\);_(*}‘}8 00\);_(*ÿÿÌÿ;_(@_) ²²²ÿ ²²²ÿ ²²²ÿ ²²²ÿ}-}/ ÿ00\);_(*}U}< 00\);_(*;_(@_)  }A}" 00\);_(*;_(@_) }A} 00\);_(*ef;_(@_) }A} 00\);_(*ÌL;_(@_) }A} 00\);_(*23;_(@_) }A}# 00\);_(*;_(@_) }A} 00\);_(*ef;_(@_) }A} 00\);_(*ÌL;_(@_) }A} 00\);_(*23;_(@_) }A}$ 00\);_(*;_(@_) }A} 00\);_(*ef;_(@_) }A} 00\);_(*ÌL;_(@_) }A} 00\);_(*23;_(@_) }A}% 00\);_(*;_(@_) }A} 00\);_(*ef;_(@_) }A} 00\);_(*ÌL;_(@_) }A} 00\);_(*23;_(@_) }A}& 00\);_(*;_(@_) }A} 00\);_(*ef;_(@_) }A} 00\);_(*ÌL;_(@_) }A}  00\);_(*23;_(@_) }A}' 00\);_(* ;_(@_) }A} 00\);_(*ef ;_(@_) }A} 00\);_(*ÌL ;_(@_) }A}! 00\);_(*23 ;_(@_) “ 20% - Accent1’M’ÿ 20% - Accent1 efÜæñÿ ÿ%“ 20% - Accent2’M’"ÿ 20% - Accent2 efòÜÛÿ ÿ%“ 20% - Accent3’M’&ÿ 20% - Accent3 efëñÞÿ ÿ%“ 20% - Accent4’M’*ÿ 20% - Accent4 efäßìÿ ÿ%“ 20% - Accent5’M’.ÿ 20% - Accent5 efÚîóÿ ÿ%“ 20% - Accent6’M’2ÿ 20% - Accent6  efýéÙÿ ÿ%“ 40% - Accent1’M’ÿ 40% - Accent1 ÌL¸Ìäÿ ÿ%“ 40% - Accent2’M’#ÿ 40% - Accent2 ÌL渷ÿ ÿ%“ 40% - Accent3’M’'ÿ 40% - Accent3 ÌLØä¼ÿ ÿ%“ 40% - Accent4’M’+ÿ 40% - Accent4 ÌLÌÀÚÿ ÿ%“ 40% - Accent5’M’/ÿ 40% - Accent5 ÌL·Þèÿ ÿ%“ 40% - Accent6’M’3ÿ 40% - Accent6  ÌLüÕ´ÿ ÿ%“ 60% - Accent1’M’ ÿ 60% - Accent1 23•³×ÿ ÿÿÿÿ%“ 60% - Accent2’M’$ÿ 60% - Accent2 23Ú–”ÿ ÿÿÿÿ%“ 60% - Accent3’M’(ÿ 60% - Accent3 23Ä×›ÿ ÿÿÿÿ%“ 60% - Accent4’M’,ÿ 60% - Accent4 23± Çÿ ÿÿÿÿ%“ 60% - Accent5’M’0ÿ 60% - Accent5 23’ÍÜÿ ÿÿÿÿ%“! 60% - Accent6’M’4ÿ 60% - Accent6  23ú¿ÿ ÿÿÿÿ%“ "Accent1’A’ÿAccent1 O½ÿ ÿÿÿÿ%“ #Accent2’A’!ÿAccent2 ÀPMÿ ÿÿÿÿ%“ $Accent3’A’%ÿAccent3 ›»Yÿ ÿÿÿÿ%“ %Accent4’A’)ÿAccent4 €d¢ÿ ÿÿÿÿ%“ &Accent5’A’-ÿAccent5 K¬Æÿ ÿÿÿÿ%“ 'Accent6’A’1ÿAccent6  ÷–Fÿ ÿÿÿÿ%“(Bad’9’ÿBad ÿÿÇÎÿ ÿœÿ%“) Calculation’’ÿ Calculation ÿòòòÿ ÿú}ÿ%ÿÿÿÿÿÿ ÿÿ“* Check Cell’’ÿ Check Cell ÿ¥¥¥ÿ ÿÿÿÿ%ÿ???ÿÿ???ÿÿ???ÿ ÿ???ÿ“+€ÿ’ ’ÿComma“,€ÿ’(’ÿ Comma [0]“-€ÿ’&’ÿCurrency“.€ÿ’.’ÿ Currency [0]“/Explanatory Text’G’5ÿExplanatory Text ÿÿ%“ 0Good’;’ÿGood ÿÆïÎÿ ÿaÿ%“1 Heading 1’G’ÿ Heading 1 I}ÿ%O½ÿ“2 Heading 2’G’ÿ Heading 2 I}ÿ%ÿ?§¿Þÿ“3 Heading 3’G’ÿ Heading 3 I}ÿ%23•³×ÿ“4 Heading 4’9’ÿ Heading 4 I}ÿ%“ 5Input’u’ÿInput ÿÿÌ™ÿ ÿ??vÿ%ÿÿÿÿÿÿ ÿÿ“6 Linked Cell’K’ÿ Linked Cell ÿú}ÿ%ÿÿ€ÿ“ 7Neutral’A’ÿNeutral ÿÿëœÿ ÿœeÿ%“€ÿ’3’ÿNormal ÿ%“ 8Note’b’ ÿNote ÿÿÿÌÿÿ²²²ÿÿ²²²ÿÿ²²²ÿ ÿ²²²ÿ“ 9Output’w’ÿOutput ÿòòòÿ ÿ???ÿ%ÿ???ÿÿ???ÿÿ???ÿ ÿ???ÿ“:€ÿ’$’ÿPercent“ ;Title’1’ÿTitle I}ÿ%“ <Total’M’ÿTotal ÿ%O½ÿO½ÿ“= Warning Text’?’ ÿ Warning Text ÿÿÿ%ŽXŽTableStyleMedium2PivotStyleLight16`…a.Sheet1…×0Sheet2…]2Sheet3šš ££ŒÁÁÕ8ü6test1test2val1val2test3test4ÿ Ë- cc––Bå››ŒŒ g2ÍÁ€ w/m0  dü©ñÒMbP?_*+‚€%,Áƒ„&ffffffæ?'ffffffæ?(è?)è?¡",Bå333333Ó?333333Ó?œ&œ<3U,,,ý ý ý ý ý ~ ð?ffffff@ý ½@@u@× Þ(8:>¶@‹‹ ggÿÿÿÿD g2ÍÁ€ é1  dü©ñÒMbP?_*+‚€%,Áƒ„&ffffffæ?'ffffffæ?(è?)è?¡",ÿ333333Ó?333333Ó?œ&œ<3U>¶@‹‹ggÿÿÿÿD g2ÍÁ€ o3  dü©ñÒMbP?_*+‚€%,Áƒ„&ffffffæ?'ffffffæ?(è?)è?¡",ÿ333333Ó?333333Ó?œ&œ<3U>¶@‹‹ggÿÿÿÿD þÿà…ŸòùOh«‘+'³Ù0°@H`x œ¨äMilitaru, MihaiMilitaru, MihaiMicrosoft Excel@€ö XMÍ@€Ko ¶ÿÿÿ l É  dü©ñÒMbP?_€%Œ==Á*+‚! &C&"Times New Roman,Normal"&12&A&%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ”  > ¶ÿÿÿ l É  dü©ñÒMbP?_€%Œ==Á*+‚! &C&"Times New Roman,Normal"&12&A&%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ”  > ¶ÿÿÿ þÿà…ŸòùOh«‘+'³Ù0|8 @ L X d péý2@€„0z@@@dq²jÌþÿ ÿÿÿÿÀFMicrosoft Excel 5.0-TabelleBiff5þÿÕÍÕœ.“—+,ù®0éýRoot EntryÿÿÿÿÿÿÿÿÀF Book ÿÿÿÿÃOle ÿÿÿÿÿÿÿÿÿÿÿÿ$SummaryInformation(ÿÿÿÿ%¬CompObjÿÿÿÿÿÿÿÿÿÿÿÿ(JDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿ*Hÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿfreexl-1.0.5/tests/testdata/simple2003_5WB.xls0000664000175000017500000003300013243550204015675 00000000000000ÐÏࡱá>þÿ þÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ?%ÍáÁ¿Àâ\p jmpsdevel Bäœ=xiÛBþ8X@"·Ú1Èÿ^Arial1Èÿ^Arial1Èÿ^Arial1Èÿ^Arial"$"#,##0_);\("$"#,##0\)"$"#,##0_);[Red]\("$"#,##0\) "$"#,##0.00_);\("$"#,##0.00\)%""$"#,##0.00_);[Red]\("$"#,##0.00\)5*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_),))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)=,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)4+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_) ¤"$"#,##0àõÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ à À à+õÿ øÀ à)õÿ øÀ à,õÿ øÀ à*õÿ øÀ à õÿ øÀ à  À à À à À ठÀ à À “€ÿ“  Comma [0]“€ÿ“ Currency [0]“€ÿ“€ÿ’â8ÿÿÿÿÿÿÿÿÿÿÿÿ€€€€€€€€€ÀÀÀ€€€™™ÿ™3fÿÿÌÌÿÿffÿ€€fÌÌÌÿ€ÿÿÿÿÿÿ€€€€€ÿÌÿÌÿÿÌÿÌÿÿ™™Ìÿÿ™ÌÌ™ÿããã3fÿ3ÌÌ™ÌÿÌÿ™ÿfff™–––3f3™f333™3™3f33™333… simple2003_4 ?%Í Ñ/  dü©ñÒMbP?_*+‚€%ÿŒÁƒ„¡"De200à?à?ÿU ÿÿÿÿColumn 1Column 2 Third Column Cell1 Cell2 Cell3û™ŽØwlï? Cell4 Cell5 Cell6~  s@Þ Š'LÀ½ÀP@€*Ø@@ m@× J<@E3=xiÛBþ8X> ¶ þÿà…ŸòùOh«‘+'³Ù0l08 L Xdä jmpsdevel@,m¹jÌ@üŒŽ¹jÌþÿÕÍÕœ.“—+,ù®0„0 8@ H aä  simple2003_4  Worksheetsþÿÿÿ þÿÿÿþÿÿÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot EntryÿÿÿÿÿÿÿÿÀFþÿÿÿBook ÿÿÿÿÿÿÿÿÿÿÿÿSummaryInformation(ÿÿÿÿDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿfreexl-1.0.5/tests/testdata/datetime2003.xls0000664000175000017500000003300013243550204015523 00000000000000ÐÏࡱá>þÿ þÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÍÁÀá°Áâ\ppfpsdev B°aÀ=œ¯¼=àÛ`æ78X@"·Ú1ÈÿoArial1ÈÿoArial1ÈÿoArial1ÈÿoArial1 ÿoArial"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)¤[$-409]h:mm:ss\ AM/PM ¥h:mm;@¦[$-409]h:mm\ AM/PM;@§ h:mm:ss;@¨[$-409]h:mm:ss\ AM/PM;@© mm:ss.0;@ª [h]:mm:ss;@!«[$-409]m/d/yy\ h:mm\ AM/PM;@¬m/d/yy\ h:mm;@­ mmm\-yyyy$®[$-409]dddd\,\ mmmm\ dd\,\ yyyy¯[$-409]d\-mmm\-yyyy;@ °0.0000àõÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ à À à+õÿ øÀ à)õÿ øÀ à,õÿ øÀ à*õÿ øÀ à õÿ øÀ à À à À à. À à À à À à À à À à À à À à À à À à- À à/ À “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…YSheet1…H Sheet2…O Sheet3ŒÁÁ"¾üTimeÿ ' cc  ÍÁÀ  ë  dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"ÿà?à?yyU} m} mÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿÿý ÇqÇqœÚ?~ 5@UUUUUUî?~ G@õIŸô<ã@~ 6@½€ã@,@½`Íâ@.@½ ãã@0@½àä@1@?é“>é“à?~ 2@ ľc³­R’?~ 3@½ €K@4@ ÁlÁìã?~ 5@ •3(r ? È[šƒVÉ?! ¶` ¶`É?×"ž   >¶@  ï7  ÍÁÀ   dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"ÿà?à?yyU>¶@ï7  ÍÁÀ   dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"ÿà?à?yyU>¶@ï7 þÿà…ŸòùOh«‘+'³Ù0 @HXh € Œ˜äpfpsdevpfpsdevMicrosoft Excel@¥9‘pÌ@fúkpÌþÿÕÍÕœ.“—+,ù®0à PXl t|„Œ ” ½ä hacksrus' Sheet1Sheet2Sheet3  Worksheetsþÿÿÿ þÿÿÿþÿÿÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ ÀFþÿÿÿWorkbookÿÿÿÿÿÿÿÿÿÿÿÿSummaryInformation(ÿÿÿÿDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿfreexl-1.0.5/tests/testdata/simple2003_4.xls0000664000175000017500000000423013243550204015446 00000000000000  \p jmpsdevel âèßBä  dü©ñÒMbP?_"*+‚€%ÿŒÁ1 ÈÿArial1 ÈÿArial1 ÈÿArial1 ÈÿArialƒ„&è?'è?(ð?)ð?¡" à?à? @V General00.00#,##0 #,##0.00#,##0_);\(#,##0\)#,##0_);[Red]\(#,##0\)#,##0.00_);\(#,##0.00\)#,##0.00_);[Red]\(#,##0.00\)"$"#,##0_);\("$"#,##0\)"$"#,##0_);[Red]\("$"#,##0\) "$"#,##0.00_);\("$"#,##0.00\)%""$"#,##0.00_);[Red]\("$"#,##0.00\)0%0.00% 0.00E+00 #\ ?/? #\ ??/?? m/d/yyyy d\-mmm\-yy d\-mmm mmm\-yy h:mm\ AM/PMh:mm:ss\ AM/PMh:mm h:mm:ssm/d/yyyy\ h:mm "$"#,##0 ##0.0E+0mm:ss@52_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_),)_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)=:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)41_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)C õÿ ÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC  ÎC "õÿ øÎC  õÿ øÎC !õÿ øÎC õÿ øÎC  õÿ øÎC  ÎC  ÎC  ÎC  ÎC  Γÿ“  Comma [0]“ÿ“ Currency [0]“ÿ“ÿU ÿ<ÿ@ÿEÿ3Column 1Column 2 Third Column Cell1 Cell2 Cell3û™ŽØwlï? Cell4 Cell5 Cell6~  s@Þ Š'LÀ~ ÀP@~ €*Ø@~ @~  m@= xiÛBþ> ¶«" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ freexl-1.0.5/tests/testdata/simple2003.xls0000664000175000017500000003300013243550204015220 00000000000000ÐÏࡱá>þÿ þÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÍÁÀá°Áâ\p jmpsdevel B°aÀ=œ¯¼=xiÛBþ8X@"·Ú1ÈÿXArial1ÈÿXArial1ÈÿXArial1ÈÿXArial1ÈÿXArial"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_) ¤"$"#,##0àõÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ à À à+õÿ øÀ à)õÿ øÀ à,õÿ øÀ à*õÿ øÀ à õÿ øÀ à À à  À à À à À ठÀ “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…· simple2003_4…ôsheet2ŒÁÁ"¾üg Column 1Column 2 Third ColumnCell1Cell2Cell3Cell4Cell5Cell6sheet 2ÿ% rYcc  ÍÁÀ s­  dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"ÿà?à?TUÿÿÿÿý ý ý ý ý ý û™ŽØwlï?ý ý ý ~  s@Þ Š'LÀ½ÀP@€*Ø@@ m@× "<*<*>¶@ï7  ÍÁÀ ° ø  dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"ÿà?à?TUÿÿÿÿý ý ý ý ý ý û™ŽØwlï?ý ý ý ý  ~  s@Þ Š'LÀ½ÀP@€*Ø@@ m@× 0<*<8>¶@ï7 þÿà…ŸòùOh«‘+'³Ù0l08 L Xdä jmpsdevel@€6Õ³ÈjÌ@€6Õ³ÈjÌþÿÕÍÕœ.“—+,ù®0ÀHP X`hp x œä'  simple2003_4sheet2  Worksheetsþÿÿÿ þÿÿÿþÿÿÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ ÀFþÿÿÿWorkbookÿÿÿÿÿÿÿÿÿÿÿÿSummaryInformation(ÿÿÿÿDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿfreexl-1.0.5/tests/testdata/oocalc_empty97.xls0000664000175000017500000001500013243550204016260 00000000000000ÐÏࡱá;þÿ  þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿþÿÿÿ þÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ  !"#$%&'(þÿÿÿ*þÿÿÿþÿÿÿ-.þÿÿÿ0þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ » Ìá°Áâ\pCalc B°aÀ=œ¯¼=@ 8h@"·Ú1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial ¤GENERALà¤õÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ ठÀ à+õÿ ðÀ à)õÿ ðÀ à,õÿ ðÀ à*õÿ ðÀ à õÿ ðÀ “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…‰Sheet1…fSheet2…CSheet3Œ==ÁÁTëjðbð( 3 ð¿ À@@ñ  ÷cc » Ì dü©ñÒMbP?_€%Á*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d‚,,333333é?333333é?U } ” ìPðHðð0ð( ð ð>¶@ggÿÿÿÿ » Ì dü©ñÒMbP?_€%Á*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ” ìPðH ðð0ð( ð ð>¶@<dggÿÿÿÿ » Ì dü©ñÒMbP?_€%Á*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ” ìPðH0ð ð0ð( ð ð >¶@<dggÿÿÿÿ þÿ ÿÿÿÿÀFMicrosoft Excel 97-TabelleBiff8þÿà…ŸòùOh«‘+'³Ù0|8 @ L X d péý0@@@€EÙLAiÌ@þÿÕÍÕœ.“—+,ù®0éýRoot EntryÿÿÿÿÿÿÿÿÀF@ Workbookÿÿÿÿ CompObjÿÿÿÿÿÿÿÿ)IOle ÿÿÿÿÿÿÿÿÿÿÿÿ+SummaryInformation(ÿÿÿÿÿÿÿÿ,¬DocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿ/Hÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿfreexl-1.0.5/tests/testdata/oocalc_empty95.xls0000664000175000017500000001300013243550204016254 00000000000000ÐÏࡱá;þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿþÿÿÿþÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ þÿÿÿþÿÿÿ !þÿÿÿ#þÿÿÿ%þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ l ÉáÁ¿Àâ\ Calc Bäœ=@ 8h@"Ú1ÈÿArial1Èÿ¼Arial1ÈÿArial1Èÿ¼Arial1ÈÿArial ¤GENERALà¤õÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ ठÀ à+õÿ ðÀ à)õÿ ðÀ à,õÿ ðÀ à*õÿ ðÀ à õÿ ðÀ “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ… Sheet1… {Sheet2… ßSheet3 l É  dü©ñÒMbP?_€%Œ==Á*+‚! &C&"Times New Roman,Normal"&12&A&%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d‚,,333333é?333333é?U } ”  > ¶ÿÿÿ l É  dü©ñÒMbP?_€%Œ==Á*+‚! &C&"Times New Roman,Normal"&12&A&%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ”  > ¶ÿÿÿ l É  dü©ñÒMbP?_€%Œ==Á*+‚! &C&"Times New Roman,Normal"&12&A&%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ”  > ¶ÿÿÿ þÿà…ŸòùOh«‘+'³Ù0|8 @ L X d péý0@@@€EÙLAiÌ@þÿ ÿÿÿÿÀFMicrosoft Excel 5.0-TabelleBiff5þÿÕÍÕœ.“—+,ù®0éýRoot EntryÿÿÿÿÿÿÿÿÀF€ Book ÿÿÿÿCOle ÿÿÿÿÿÿÿÿÿÿÿÿSummaryInformation(ÿÿÿÿ¬CompObjÿÿÿÿÿÿÿÿÿÿÿÿ"JDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿ$Hÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿfreexl-1.0.5/tests/testdata/simple2003_21.xls0000664000175000017500000000211613243550204015526 00000000000000   rºB€  dü©ñÒMbP?"*+%ÿ€1 ÈArialEÿ1 ÈArialEÿ1 ÈArialEÿ1 ÈArialEÿ&è?'è?(ð?)ð?@General00.00#,##0 #,##0.00"$"#,##0_);\("$"#,##0\)"$"#,##0_);[Red]\("$"#,##0\)"$"#,##0.00_);\("$"#,##0.00\)#""$"#,##0.00_);[Red]\("$"#,##0.00\)0%0.00% 0.00E+00 m/d/yyyy d\-mmm\-yyd\-mmmmmm\-yy h:mm\ AM/PMh:mm:ss\ AM/PMh:mmh:mm:ssm/d/yyyy\ h:mm "$"#,##0 ##0.0E+0mm:ss@C@CACICMCSCUU ÿ€3 ÿ€@ ÿ€F ÿ€3@Column 1@Column 2@ Third Column @Cell1 @Cell2 @Cell3Dû™ŽØwlï? @Cell4 @Cell5 @Cell6@…ëQ¸ @@Þ Š'LÀB q= ×£på? C ª` A Eí= xiÛBþ> freexl-1.0.5/tests/testdata/simple2003_3.xls0000664000175000017500000000367113243550204015455 00000000000000  \p jmpsdevel ioFB€  dü©ñÒMbP?_"*+‚€%ÿŒÁ1 ÈÿArial1 ÈÿArial1 ÈÿArial1 ÈÿArialƒ„&è?'è?(ð?)ð?@VGeneral00.00#,##0 #,##0.00"$"#,##0_);\("$"#,##0\)"$"#,##0_);[Red]\("$"#,##0\)"$"#,##0.00_);\("$"#,##0.00\)#""$"#,##0.00_);[Red]\("$"#,##0.00\)0%0.00% 0.00E+00#\ ?/? #\ ??/?? m/d/yyyy d\-mmm\-yyd\-mmmmmm\-yy h:mm\ AM/PMh:mm:ss\ AM/PMh:mmh:mm:ssm/d/yyyy\ h:mm#,##0_);\(#,##0\)#,##0_);[Red]\(#,##0\)#,##0.00_);\(#,##0.00\)#,##0.00_);[Red]\(#,##0.00\) ##0.0E+0mm:ss@32_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_)*)_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_);:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)21_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)C õðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC õ÷ðÿÎC ÎC !õûðÿÎC õûðÿÎC  õûðÿÎC õûðÿÎC  õûðÿÎC ÎC ÎC Γ€ÿ“  Comma [0]“€ÿ“ Currency [0]“€ÿ“€ÿU ÿ<ÿ@ÿ3ÿ3Column 1Column 2 Third Column Cell1 Cell2 Cell3 Cell4 Cell5 Cell6~  s@Þ Š'LÀ~ ÀP@~ €*Ø@~ @= xiÛBþ> ¶ freexl-1.0.5/tests/testdata/oocalc_simple97.xls0000664000175000017500000001500013243550204016413 00000000000000ÐÏࡱá;þÿ  þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿþÿÿÿ þÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ  !"#$%&'()*+,-./þÿÿÿ1þÿÿÿþÿÿÿ45þÿÿÿ7þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ » Ìá°Áâ\pCalc B°aÀ=œ¯¼=@ 8h@"·Ú1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial ¤GENERAL ¥HH:MM:SS¦DD/MM/YY\ HH:MM §DD/MM/YYà¤õÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ ठÀ à+õÿ ðÀ à)õÿ ðÀ à,õÿ ðÀ à*õÿ ðÀ à õÿ ðÀ ॠÀ ঠÀ à§ À “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…]Sheet1…, Renamed sheet… Sheet3Œ==ÁÁTëjðbð( 3 ð¿ À@@ñ  ÷ü9Col 1Col 2timeDatetimedateABÿ  cc » Ì dü©ñÒMbP?_€%ÿÁ*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d‚,,333333é?333333é?U } ” } e } ” ý ý ý ý ý ý ý ½ “UUUUUUÝ?ÇqÜ éã@~ zìPðHðð0ð( ð ð>¶@ggÿÿÿÿ » Ì dü©ñÒMbP?_€%Á*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ” ìPðH ðð0ð( ð ð>¶@ggÿÿÿÿ » Ì dü©ñÒMbP?_€%Á*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ” ìPðH0ð ð0ð( ð ð >¶@ggÿÿÿÿ þÿ ÿÿÿÿÀFMicrosoft Excel 97-TabelleBiff8þÿà…ŸòùOh«‘+'³Ù0|8 @ L X d péý2@H›öÌ@@@€Œ°s¥jÌþÿÕÍÕœ.“—+,ù®0éýRoot EntryÿÿÿÿÿÿÿÿÀFWorkbookÿÿÿÿæ CompObjÿÿÿÿÿÿÿÿ0IOle ÿÿÿÿÿÿÿÿÿÿÿÿ2SummaryInformation(ÿÿÿÿÿÿÿÿ3¬DocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿ6Hÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿfreexl-1.0.5/tests/testdata/empty2003.xls0000664000175000017500000003300013243550204015065 00000000000000ÐÏࡱá>þÿ þÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÍÁÀá°Áâ\p jmpsdevel B°aÀ=œ¯¼=xiÛBþ8X@"·Ú1Èÿ9Arial1Èÿ9Arial1Èÿ9Arial1Èÿ9Arial"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)àõÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ à À à+õÿ øÀ à)õÿ øÀ à,õÿ øÀ à*õÿ øÀ à õÿ øÀ “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…¯Sheet1…¶Sheet2…½Sheet3ŒÁÁ"¾üÿcc  ÍÁÀ g  dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"ÿà?à?00U>¶@ï7  ÍÁÀ n  dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"ÿà?à?00U>¶@ï7  ÍÁÀ u  dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"ÿà?à?00U>¶@ï7 þÿà…ŸòùOh«‘+'³Ù0¨@H\p ˆ ” ä jmpsdevel jmpsdevelMicrosoft Excel@€~æ]biÌ@€&»³biÌþÿÕÍÕœ.“—+,ù®0Ø PXd lt|„ Œ µä' Sheet1Sheet2Sheet3  Worksheetsþÿÿÿ þÿÿÿþÿÿÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ ÀFþÿÿÿWorkbookÿÿÿÿÿÿÿÿÿÿÿÿSummaryInformation(ÿÿÿÿDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿfreexl-1.0.5/tests/testdata/simple2003_4WB.xlw0000664000175000017500000001111713243550204015705 00000000000000  \p jmpsdevel B䎼8= xiÛBþ8= xiÛBþ> ¶8= xiÛBþ> ¶  dü©ñÒMbP?_FGIHJKL/9NOЍ‹@… simple2003_4…sheet24 simple2003_4  “™Bä  dü©ñÒMbP?_"*+‚€%ÿŒÁ1 ÈÿArial1 ÈÿArial1 ÈÿArial1 ÈÿArial1  ÿArialƒ„&è?'è?(ð?)ð?¡"à?à?@V General00.00#,##0 #,##0.00#,##0_);\(#,##0\)#,##0_);[Red]\(#,##0\)#,##0.00_);\(#,##0.00\)#,##0.00_);[Red]\(#,##0.00\)"$"#,##0_);\("$"#,##0\)"$"#,##0_);[Red]\("$"#,##0\) "$"#,##0.00_);\("$"#,##0.00\)%""$"#,##0.00_);[Red]\("$"#,##0.00\)0%0.00% 0.00E+00 #\ ?/? #\ ??/?? m/d/yyyy d\-mmm\-yy d\-mmm mmm\-yy h:mm\ AM/PMh:mm:ss\ AM/PMh:mm h:mm:ssm/d/yyyy\ h:mm "$"#,##0 ##0.0E+0mm:ss@52_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_),)_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)=:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)41_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)C õÿ ÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC  ÎC "õÿ øÎC  õÿ øÎC !õÿ øÎC õÿ øÎC  õÿ øÎC  ÎC  ÎC  ÎC  ÎC  Γÿ“  Comma [0]“ÿ“ Currency [0]“ÿ“ÿU ÿ<ÿ@ÿEÿ3Column 1Column 2 Third Column Cell1 Cell2 Cell3û™ŽØwlï? Cell4 Cell5 Cell6~  s@Þ Š'LÀ~ ÀP@~ €*Ø@~ @~  m@= xiÛBþ> ¶«" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 7sheet2  }ƒzBä  dü©ñÒMbP?_"*+‚€%ÿŒÁ1 ÈÿArial1 ÈÿArial1 ÈÿArial1 ÈÿArialƒ„&è?'è?(ð?)ð?¡"à?à?@V General00.00#,##0 #,##0.00#,##0_);\(#,##0\)#,##0_);[Red]\(#,##0\)#,##0.00_);\(#,##0.00\)#,##0.00_);[Red]\(#,##0.00\)"$"#,##0_);\("$"#,##0\)"$"#,##0_);[Red]\("$"#,##0\) "$"#,##0.00_);\("$"#,##0.00\)%""$"#,##0.00_);[Red]\("$"#,##0.00\)0%0.00% 0.00E+00 #\ ?/? #\ ??/?? m/d/yyyy d\-mmm\-yy d\-mmm mmm\-yy h:mm\ AM/PMh:mm:ss\ AM/PMh:mm h:mm:ssm/d/yyyy\ h:mm "$"#,##0 ##0.0E+0mm:ss@52_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_),)_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)=:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)41_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)C õÿ ÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC  ÎC "õÿ øÎC  õÿ øÎC !õÿ øÎC õÿ øÎC  õÿ øÎC  ÎC  ÎC  ÎC  ÎC  Γÿ“  Comma [0]“ÿ“ Currency [0]“ÿ“ÿU ÿ<ÿ@ÿEÿFColumn 1Column 2 Third Column Cell1 Cell2 Cell3û™ŽØwlï? Cell4 Cell5 Cell6sheet 2~  s@Þ Š'LÀ~ ÀP@~ €*Ø@~ @~  m@= xiÛBþ> ¶«" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ freexl-1.0.5/tests/testdata/testcase1.xls0000664000175000017500000004100013243550204015315 00000000000000ÐÏࡱá;þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿ þÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ » Ìá°Áâ\pCalc B°aÀ=œ¯¼=@ 8Ç@"·Ú1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial1&Èÿ Lohit Hindi16ÈÿWenQuanYi Micro Hei ¤GENERAL¥@ ¦DD/MM/YY §HH:MM:SS¨DD/MM/YY\ HH:MMà¤õÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ ठÀ à+õÿ ðÀ à)õÿ ðÀ à,õÿ ðÀ à*õÿ ðÀ à õÿ ðÀ ॠÀ ঠÀ à§ À ਠÀ “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…`Sheet1…›Sheet2…p1Sheet3Œ==ÁÁTëjðbð( 3 ð¿ À@@ñ  ÷ü½ -CandeloCandelo,Kandelo,0=45;>PPPLAUAustralia/Sydney 2011-08-08CanbraeSFRMAustralia/Brisbane 2011-06-04Canberra„ Camberra,Canberra,Gorad Kanbera,Kamberra,Kambra,Kampera,Kanapera,Kanbera,Kanbero,Kanberra,Kanberrae,Kanbérra,Knapera,kaenbeola,kainabara,kan pei la,kanbra,kanpara,kenabera,kyanabera,kyanbera,kynbra,qnbrh,š±¼À­Á±,>@04 0=15@0,0=15@0,0=15@@æ,0=15@@0,0=1T@0,?avbe|a,çÐàÑâèÐ,çàÑèÔ,C'F(1',©'F(1',©ÌF(1', E ( , G 0 > , H ( , 0 > ,• Í ¯ ¾ ¨ ¬ Ç ° ¾ ,• ¾ © Í ª ° ¾ ,A@-#L#2,AS Tz b ,ÙÐÜÑÔàÐ,«•`+,­0ã0ó0Ù0é0,NWùWÉb,*XùWÉb,”΄¼|·0189?@IJQR\]enrsxy|}€PPLC 2009-08-04 Canbelego Canaway RangeTMTS 1993-12-30 Mount CanawayMTCanary Island SouthAustralia/Melbourne Canary Island Canary CreekHSTM Canara CreekCanally Canal LagoonLGNCanal Creek BoreWLL Canal CreekIDplacenormal alternatelatlonrefWreally long header xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx Populationÿ -€ cc » Ì dü©ñÒMbP?_€%ÿÁ*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d‚,,333333é?333333é?U } ” } O} ” H     ~ Ž™„ý ý ý ƒi>"bBÀLàÖݵb@ý ý ý ½  Ú¤ ~ þ ~ bý ý ~ ’™„ý ý :d¯w7<À~ ûèý ý  ý ½ *  ~ ~ Rý  ý  ~ –™„ý  ý  ý  ±ÜÒjH¤AÀ)³A&¤b@ý ý ý ~  ~ R~ † ý ý ~ š™„ý  ý  Æù›PˆÈ:ÀLàÖÝb@ý ý  ý ½ ²  ~ ~  ý  ý  ~ ž™„ý ý ÓŸýH‘?Àú³)"Jb@ý ý ý ½  š· ~ ~ ný ý  ~ ¢™„ý ý  lÊÞ:À”M¹Â»Ûa@ý ý ý ~  ~ ~ ¾ý  ý ~ ¦™„ý ý ~ šÿÿÿ.çR\Uýa@ý ý ý ~  ~ ~ Æý  ý ~ ª™„ý ý fffffBÀ”M¹Â»ûa@ý ý ý ½ v ~ ~ òý ý  ~ ®™„ý ý }–çÁÝýAÀ~ Çàý ý ý ½ v ~ ~ ¦ý ý  ~ ²™„ý ý  Æù›PˆH8À ”M¹Â»“b@ý ý ý ~ ~ ~ vý  ý ~ ¶™„ý ý   lÊÞ]:À Ÿåypwb@ý ý ý ~ ~ ~ 6ý  ý ~ º™„ý ý  š™™™™YAÀ LàÖÝía@ý ý  ý ½  ò  ~ ~ úý ý  ~ ¾™„ý ý  P6å ïN@À l²F=D b@ý ý  ý ½  Ò¶ ~ ~ vý ý  ~ ™„ý ý  ²×»›AÀ š™™™™Ñb@ý ý  ý ~  ~ ~ Æcÿÿý ý ~ Æ™„ý !ý !`“5ê!¢4À~ +Üý ý "ý ~  ~ ~ òý  ý ~ Ê™„ý #ý # lÊÞÝ;Àa†ˆðb@ý ý ý ~  ~ ~ .ý  ý ~ Ι„ý #ý #m9—âªê9ÀŸåypw¯b@ý ý ý ~  ~ ~ ~ý  ý ìPðHðð0ð( ð ð>¶@ggÿÿÿÿ » Ì dü©ñÒMbP?_€%ÿÁ*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ” } 7} ” f     ý $ý %ý &ý 'ý (ý )~ V-² @½^x ý * ÇqÇqÞ? é“>éA×ã@ý +ý ,~ Ž™„ý ý ý ƒi>"bBÀLàÖݵb@ý ý ý ½  Ú¤ ~ þ ~ bý ý ~ ’™„ý ý :d¯w7<À~ ûèý ý  ý ½ *  ~ ~ Rý  ý  ~ –™„ý  ý  ý  ±ÜÒjH¤AÀ)³A&¤b@ý ý ý ~  ~ R~ † ý ý ~ š™„ý  ý  Æù›PˆÈ:ÀLàÖÝb@ý ý  ý ½ ²  ~ ~  ý  ý  ~ ž™„ý ý ÓŸýH‘?Àú³)"Jb@ý ý ý ½  š· ~ ~ ný ý  ~ ¢™„ý ý  lÊÞ:À”M¹Â»Ûa@ý ý ý ~  ~ ~ ¾ý  ý ~ ¦™„ý ý ~ šÿÿÿ.çR\Uýa@ý ý ý ~  ~ ~ Æý  ý ~ ª™„ý ý fffffBÀ”M¹Â»ûa@ý ý ý ½ v ~ ~ òý ý  ~ ®™„ý ý  }–çÁÝýAÀ~ Çàý ý ý ½ v ~ ~ ¦ý ý  ~ ²™„ý ý  Æù›PˆH8À ”M¹Â»“b@ý ý ý ~ ~ ~ vý  ý ~ ¶™„ý ý   lÊÞ]:À Ÿåypwb@ý ý ý ~ ~ ~ 6ý  ý ~ º™„ý ý  š™™™™YAÀ LàÖÝía@ý ý  ý ½  ò  ~ ~ úý ý  ~ ¾™„ý ý  P6å ïN@À l²F=D b@ý ý  ý ½  Ò¶ ~ ~ vý ý  ~ ™„ý ý ²×»›AÀš™™™™Ñb@ý ý  ý ~   ~ ~ Æcÿÿý ý ~ Æ™„ý !ý !`“5ê!¢4À~ +Üý ý "ý ~  ~ ~ òý  ý ~ Ê™„ý #ý # lÊÞÝ;Àa†ˆðb@ý ý ý ~  ~ ~ .ý  ý ~ Ι„ý #ý #m9—âªê9ÀŸåypw¯b@ý ý ý ~  ~ ~ ~ý  ý ~ Ê™„ý #ý # lÊÞÝ;Àa†ˆðb@ý ý ý ~  ~ ~ .ý  ý ~ Ι„ý #ý #m9—âªê9ÀŸåypw¯b@ý ý ý ~  ~ ~ ~ý  ý ìPðH ðð0ð( ð ð>¶@ggÿÿÿÿ » Ì dü©ñÒMbP?_€%Á*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ” ìPðH0ð ð0ð( ð ð >¶@ggÿÿÿÿ þÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ ÿÿÿÿÀFMicrosoft Excel 97-TabelleBiff8þÿà…ŸòùOh«‘+'³Ù0|8 @ L X d péý5@€"Ý@@X ³ùpÌ@€üædjwÌþÿÕÍÕœ.“—+,ù®0éýRoot EntryÿÿÿÿÿÿÿÿÀFWorkbookÿÿÿÿM3CompObjÿÿÿÿÿÿÿÿIOle ÿÿÿÿÿÿÿÿÿÿÿÿSummaryInformation(ÿÿÿÿÿÿÿÿ¬DocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿHÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿfreexl-1.0.5/tests/testdata/simple2003_4_1904.xls0000664000175000017500000000424613243550204016132 00000000000000  \p jmpsdevel âèßBä  dü©ñÒMbP?_"*+‚€%ÿŒÁ1 ÈÿArial1 ÈÿArial1 ÈÿArial1 ÈÿArialƒ„&è?'è?(ð?)ð?¡" à?à? @V General00.00#,##0 #,##0.00#,##0_);\(#,##0\)#,##0_);[Red]\(#,##0\)#,##0.00_);\(#,##0.00\)#,##0.00_);[Red]\(#,##0.00\)"$"#,##0_);\("$"#,##0\)"$"#,##0_);[Red]\("$"#,##0\) "$"#,##0.00_);\("$"#,##0.00\)%""$"#,##0.00_);[Red]\("$"#,##0.00\)0%0.00% 0.00E+00 #\ ?/? #\ ??/?? m/d/yyyy d\-mmm\-yy d\-mmm mmm\-yy h:mm\ AM/PMh:mm:ss\ AM/PMh:mm h:mm:ssm/d/yyyy\ h:mm "$"#,##0 ##0.0E+0mm:ss@52_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_),)_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)=:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)41_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)C õÿ ÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC õÿ ôÎC  ÎC "õÿ øÎC  õÿ øÎC !õÿ øÎC õÿ øÎC  õÿ øÎC  ÎC  ÎC  ÎC  ÎC  Γÿ“  Comma [0]“ÿ“ Currency [0]“ÿ“ÿU ÿ<ÿ@ÿEÿAColumn 1Column 2 Third Column Cell1 Cell2 Cell3û™ŽØwlï? Cell4 Cell5 Cell6~  ¶â@~  s@Þ Š'LÀ~ ÀP@~ €*Ø@~ @~  m@= xiÛBþ> ¶«" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ freexl-1.0.5/tests/check_excel2003_biff3_info.c0000664000175000017500000001563613243550204016072 00000000000000/* / check_excel2003_biff3_info.c / / Test cases for metadata-only operations on Excel BIFF3 format files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open_info ("testdata/simple2003_3.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN INFO ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 0) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != 3) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_CP1252) { fprintf(stderr, "Unexpected BIFF codepage: %d\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 1) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } ret = freexl_get_info(handle, FREEXL_BIFF_FORMAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF format count: %d\n", ret); return -21; } if (info != 10) { fprintf(stderr, "Unexpected BIFF format count: %d\n", info); return -22; } ret = freexl_get_info(handle, FREEXL_BIFF_XF_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF extended format count: %d\n", ret); return -23; } if (info != 24) { fprintf(stderr, "Unexpected BIFF extended format count: %d\n", info); return -24; } /* We only have one worksheet, zero index */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "Worksheet") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 4) || (num_columns != 5)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_INVALID_HANDLE) { fprintf(stderr, "Unexpected result getting cell value (0,0): %d\n", ret); return -32; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/check_excel2003_biff4.c0000664000175000017500000002617413243550204015057 00000000000000/* / check_excel2003_biff4.c / / Test cases for Excel BIFF4 format files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/simple2003_4.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 0) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != FREEXL_BIFF_VER_4) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_CP1252) { fprintf(stderr, "Unexpected BIFF codepage: %d\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 1) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } ret = freexl_get_info(handle, FREEXL_BIFF_FORMAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF format count: %d\n", ret); return -21; } if (info != 10) { fprintf(stderr, "Unexpected BIFF format count: %d\n", info); return -22; } ret = freexl_get_info(handle, FREEXL_BIFF_XF_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF extended format count: %d\n", ret); return -23; } if (info != 26) { fprintf(stderr, "Unexpected BIFF extended format count: %d\n", info); return -24; } /* We only have one worksheet, zero index */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "Worksheet") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 4) || (num_columns != 6)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0): %d\n", ret); return -32; } if (cell_value.type != FREEXL_CELL_TEXT) { fprintf(stderr, "Unexpected cell (0,0) type: %u\n", cell_value.type); return -33; } if (strcmp(cell_value.value.text_value, "Column 1") != 0) { fprintf(stderr, "Unexpected cell (0,0) value: %s\n", cell_value.value.text_value); return -34; } ret = freexl_get_cell_value(handle, 3, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,0): %d\n", ret); return -35; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,0) type: %u\n", cell_value.type); return -36; } if (cell_value.value.double_value != 3.14) { fprintf(stderr, "Unexpected cell (3,0) value: %g\n", cell_value.value.double_value); return -37; } ret = freexl_get_cell_value(handle, 3, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,1): %d\n", ret); return -38; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,1) type: %u\n", cell_value.type); return -39; } if (cell_value.value.double_value != -56.3089) { fprintf(stderr, "Unexpected cell (3,1) value: %g\n", cell_value.value.double_value); return -40; } ret = freexl_get_cell_value(handle, 3, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,2): %d\n", ret); return -41; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,2) type: %u\n", cell_value.type); return -42; } if (cell_value.value.double_value != 0.67) { fprintf(stderr, "Unexpected cell (3,2) value: %g\n", cell_value.value.double_value); return -43; } ret = freexl_get_cell_value(handle, 3, 3, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,3): %d\n", ret); return -44; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (3,3) type: %u\n", cell_value.type); return -45; } if (strcmp(cell_value.value.text_value, "1967-10-01") != 0) { fprintf(stderr, "Unexpected cell (3,3) value: %s\n", cell_value.value.text_value); return -46; } ret = freexl_get_cell_value(handle, 3, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,4): %d\n", ret); return -47; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,4) type: %u\n", cell_value.type); return -48; } if (cell_value.value.double_value != 4) { fprintf(stderr, "Unexpected cell (3,4) value: %g\n", cell_value.value.double_value); return -49; } ret = freexl_get_cell_value(handle, 3, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,5): %d\n", ret); return -50; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,5) type: %u\n", cell_value.type); return -51; } if (cell_value.value.double_value != 237) { fprintf(stderr, "Unexpected cell (3,5) value: %g\n", cell_value.value.double_value); return -52; } ret = freexl_get_cell_value(handle, 1, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,5): %d\n", ret); return -53; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (1,5) type: %u\n", cell_value.type); return -54; } if (strcmp(cell_value.value.text_value, "23:34:04") != 0) { fprintf(stderr, "Unexpected cell (1,5) value: %s\n", cell_value.value.text_value); return -55; } /* error cases */ ret = freexl_get_cell_value(handle, 7, 3, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (7,3): %d\n", ret); return -56; } ret = freexl_get_cell_value(handle, 2, 99, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (2,99): %d\n", ret); return -57; } ret = freexl_get_cell_value(handle, 4, 2, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (4,2): %d\n", ret); return -58; } ret = freexl_get_cell_value(handle, 3, 6, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (3,6): %d\n", ret); return -59; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/check_oocalc97.c0000664000175000017500000003211013243550204014003 00000000000000/* / check_oocalc97.c / / Test cases for LibreOffice BIFF8 format files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/oocalc_simple97.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_CFBF_VER_3) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_CFBF_SECTOR_512) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 128) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != FREEXL_BIFF_VER_8) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_BIFF_MAX_RECSZ_8224) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_UTF16LE) { fprintf(stderr, "Unexpected BIFF codepage: 0x%x\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 3) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } ret = freexl_get_info(handle, FREEXL_BIFF_FORMAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF format count: %d\n", ret); return -21; } if (info != 3) { fprintf(stderr, "Unexpected BIFF format count: %d\n", info); return -22; } ret = freexl_get_info(handle, FREEXL_BIFF_XF_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF extended format count: %d\n", ret); return -23; } if (info != 24) { fprintf(stderr, "Unexpected BIFF extended format count: %d\n", info); return -24; } ret = freexl_get_info(handle, FREEXL_BIFF_STRING_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for SST string count: %d\n", ret); return -61; } if (info != 7) { fprintf(stderr, "Unexpected SST string count: %d\n", info); return -62; } /* We start with the first worksheet (zero index) */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "Sheet1") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 2) || (num_columns != 7)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0): %d\n", ret); return -32; } if (cell_value.type != FREEXL_CELL_SST_TEXT) { fprintf(stderr, "Unexpected cell (0,0) type: %u\n", cell_value.type); return -33; } if (strcmp(cell_value.value.text_value, "Col 1") != 0) { fprintf(stderr, "Unexpected cell (0,0) value: %s\n", cell_value.value.text_value); return -34; } ret = freexl_get_cell_value(handle, 1, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,0): %d\n", ret); return -35; } if (cell_value.type != FREEXL_CELL_SST_TEXT) { fprintf(stderr, "Unexpected cell (1,0) type: %u\n", cell_value.type); return -36; } if (strcmp(cell_value.value.text_value, "A") != 0) { fprintf(stderr, "Unexpected cell (1,0) value: %s\n", cell_value.value.text_value); return -37; } ret = freexl_get_cell_value(handle, 1, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,1): %d\n", ret); return -38; } if (cell_value.type != FREEXL_CELL_SST_TEXT) { fprintf(stderr, "Unexpected cell (1,1) type: %u\n", cell_value.type); return -39; } if (strcmp(cell_value.value.text_value, "B") != 0) { fprintf(stderr, "Unexpected cell (1,1) value: %s\n", cell_value.value.text_value); return -40; } ret = freexl_get_cell_value(handle, 1, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,2): %d\n", ret); return -41; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (1,2) type: %u\n", cell_value.type); return -42; } if (cell_value.value.int_value != 2) { fprintf(stderr, "Unexpected cell (1,2) value: %d\n", cell_value.value.int_value); return -43; } ret = freexl_get_cell_value(handle, 1, 3, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,3): %d\n", ret); return -44; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (1,3) type: %u\n", cell_value.type); return -45; } if (cell_value.value.double_value != 4.2) { fprintf(stderr, "Unexpected cell (1,3) value: %g\n", cell_value.value.double_value); return -46; } ret = freexl_get_cell_value(handle, 1, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,4): %d\n", ret); return -47; } if (cell_value.type != FREEXL_CELL_TIME) { fprintf(stderr, "Unexpected cell (1,4) type: %u\n", cell_value.type); return -48; } if (strcmp(cell_value.value.text_value, "11:00:00") != 0) { fprintf(stderr, "Unexpected cell (1,4) value: %s\n", cell_value.value.text_value); return -49; } ret = freexl_get_cell_value(handle, 1, 5, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,5): %d\n", ret); return -50; } if (cell_value.type != FREEXL_CELL_DATETIME) { fprintf(stderr, "Unexpected cell (1,5) type: %u\n", cell_value.type); return -51; } if (strcmp(cell_value.value.text_value, "2011-08-21 10:23:45") != 0) { fprintf(stderr, "Unexpected cell (1,5) value: %s\n", cell_value.value.text_value); return -52; } ret = freexl_get_cell_value(handle, 1, 6, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,6): %d\n", ret); return -53; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (1,6) type: %u\n", cell_value.type); return -54; } if (strcmp(cell_value.value.text_value, "1967-03-11") != 0) { fprintf(stderr, "Unexpected cell (1,6) value: %s\n", cell_value.value.text_value); return -55; } ret = freexl_get_cell_value(handle, 0, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,2): %d\n", ret); return -56; } if (cell_value.type != FREEXL_CELL_NULL) { fprintf(stderr, "Unexpected cell (0,2) type: %u\n", cell_value.type); return -57; } /* error cases */ ret = freexl_get_cell_value(handle, 5, 1, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (5,1): %d\n", ret); return -56; } ret = freexl_get_cell_value(handle, 1, 99, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (1,99): %d\n", ret); return -57; } ret = freexl_get_cell_value(handle, 2, 2, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (2,2): %d\n", ret); return -58; } ret = freexl_get_cell_value(handle, 1, 7, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (1,7): %d\n", ret); return -59; } /* Check the second worksheet */ ret = freexl_get_worksheet_name(handle, 1, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -60; } if (strcmp(worksheet_name, "Renamed sheet") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -63; } ret = freexl_select_active_worksheet (handle, 1); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet to 1: %d\n", ret); return -64; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet : %d\n", ret); return -65; } if (active_idx != 1) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -66; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions 2: %d\n", ret); return -67; } if ((num_rows != 0) || (num_columns != 0)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -68; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (0,0): %d\n", ret); return -69; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/check_boolean_biff8.c0000664000175000017500000001006213243550204015062 00000000000000/* / check_boolean_biff8.c / / Test cases for Excel built-in BOOLERR values / / Author: Sandro Furieri a.furieri@lqt.it / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/testbool.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -2; } if (info != FREEXL_BIFF_VER_8) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -3; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -4; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -5; } if ((num_rows != 3) || (num_columns != 4)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -5; } ret = freexl_get_cell_value (handle, 1, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (1,1): %d\n", ret); return -6; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (1,1) type: %u\n", cell_value.type); return -7; } if (cell_value.value.int_value != 0) { fprintf(stderr, "Unexpected cell (1,1) value: %d\n", cell_value.value.int_value); return -8; } ret = freexl_get_cell_value (handle, 2, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (2,1): %d\n", ret); return -9; } if (cell_value.type != FREEXL_CELL_INT) { fprintf(stderr, "Unexpected cell (2,1) type: %u\n", cell_value.type); return -10; } if (cell_value.value.int_value != 1) { fprintf(stderr, "Unexpected cell (2,1) value: %d\n", cell_value.value.int_value); return -11; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -12; } return 0; } freexl-1.0.5/tests/open_oocalc97.c0000664000175000017500000000432713243550204013700 00000000000000/* / open_oocalc97.c / / Test of simple open of empty file - LibreOffice (BIFF8) / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; ret = freexl_open ("testdata/oocalc_empty97.xls", &handle); if (ret != FREEXL_OK) { fprintf (stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf (stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/tests/check_excel2003_biff3.c0000664000175000017500000002427113243550204015052 00000000000000/* / check_excel2003_biff3.c / / Test cases for Excel BIFF3 format files / / Author: Brad Hards bradh@frogmouth.net / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; const char *worksheet_name; unsigned short active_idx; unsigned int num_rows; unsigned short num_columns; FreeXL_CellValue cell_value; ret = freexl_open ("testdata/simple2003_3.xls", &handle); if (ret != FREEXL_OK) { fprintf(stderr, "OPEN ERROR: %d\n", ret); return -1; } ret = freexl_get_info(handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for CFBF version: %d\n", ret); return -3; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_VERSION: %d\n", info); return -4; } ret = freexl_get_info(handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for sector size: %d\n", ret); return -5; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected CFBF_SECTOR_SIZE: %d\n", info); return -6; } ret = freexl_get_info(handle, FREEXL_CFBF_FAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for fat count: %d\n", ret); return -7; } if (info != 0) { fprintf(stderr, "Unexpected CFBF_FAT_COUNT: %d\n", info); return -8; } ret = freexl_get_info(handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF version: %d\n", ret); return -9; } if (info != 3) { fprintf(stderr, "Unexpected BIFF version: %d\n", info); return -10; } ret = freexl_get_info(handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF record size: %d\n", ret); return -11; } if (info != FREEXL_UNKNOWN) { fprintf(stderr, "Unexpected BIFF max record size: %d\n", info); return -12; } ret = freexl_get_info(handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF date mode: %d\n", ret); return -13; } if (info != FREEXL_BIFF_DATEMODE_1900) { fprintf(stderr, "Unexpected BIFF date mode: %d\n", info); return -14; } ret = freexl_get_info(handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF password mode: %d\n", ret); return -15; } if (info != FREEXL_BIFF_PLAIN) { fprintf(stderr, "Unexpected BIFF password mode: %d\n", info); return -16; } ret = freexl_get_info(handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF codepage: %d\n", ret); return -17; } if (info != FREEXL_BIFF_CP1252) { fprintf(stderr, "Unexpected BIFF codepage: %d\n", info); return -18; } ret = freexl_get_info(handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF worksheet count: %d\n", ret); return -19; } if (info != 1) { fprintf(stderr, "Unexpected BIFF worksheet count: %d\n", info); return -20; } ret = freexl_get_info(handle, FREEXL_BIFF_FORMAT_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF format count: %d\n", ret); return -21; } if (info != 10) { fprintf(stderr, "Unexpected BIFF format count: %d\n", info); return -22; } ret = freexl_get_info(handle, FREEXL_BIFF_XF_COUNT, &info); if (ret != FREEXL_OK) { fprintf(stderr, "GET_INFO ERROR for BIFF extended format count: %d\n", ret); return -23; } if (info != 24) { fprintf(stderr, "Unexpected BIFF extended format count: %d\n", info); return -24; } /* We only have one worksheet, zero index */ ret = freexl_get_worksheet_name(handle, 0, &worksheet_name); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet name: %d\n", ret); return -25; } if (strcmp(worksheet_name, "Worksheet") != 0) { fprintf(stderr, "Unexpected worksheet name: %s\n", worksheet_name); return -26; } ret = freexl_select_active_worksheet (handle, 0); if (ret != FREEXL_OK) { fprintf(stderr, "Error setting active worksheet: %d\n", ret); return -27; } ret = freexl_get_active_worksheet (handle, &active_idx); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting active worksheet: %d\n", ret); return -28; } if (active_idx != 0) { fprintf(stderr, "Unexpected active sheet: %d\n", info); return -29; } ret = freexl_worksheet_dimensions (handle, &num_rows, &num_columns); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting worksheet dimensions: %d\n", ret); return -30; } if ((num_rows != 4) || (num_columns != 5)) { fprintf(stderr, "Unexpected active sheet dimensions: %u x %u\n", num_rows, num_columns); return -31; } ret = freexl_get_cell_value (handle, 0, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (0,0): %d\n", ret); return -32; } if (cell_value.type != FREEXL_CELL_TEXT) { fprintf(stderr, "Unexpected cell (0,0) type: %u\n", cell_value.type); return -33; } if (strcmp(cell_value.value.text_value, "Column 1") != 0) { fprintf(stderr, "Unexpected cell (0,0) value: %s\n", cell_value.value.text_value); return -34; } ret = freexl_get_cell_value(handle, 3, 0, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,0): %d\n", ret); return -35; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,0) type: %u\n", cell_value.type); return -36; } if (cell_value.value.double_value != 3.14) { fprintf(stderr, "Unexpected cell (3,0) value: %g\n", cell_value.value.double_value); return -37; } ret = freexl_get_cell_value(handle, 3, 1, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,1): %d\n", ret); return -38; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,1) type: %u\n", cell_value.type); return -39; } if (cell_value.value.double_value != -56.3089) { fprintf(stderr, "Unexpected cell (3,1) value: %g\n", cell_value.value.double_value); return -40; } ret = freexl_get_cell_value(handle, 3, 2, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,2): %d\n", ret); return -41; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,2) type: %u\n", cell_value.type); return -42; } if (cell_value.value.double_value != 0.67) { fprintf(stderr, "Unexpected cell (3,2) value: %g\n", cell_value.value.double_value); return -43; } ret = freexl_get_cell_value(handle, 3, 3, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,3): %d\n", ret); return -44; } if (cell_value.type != FREEXL_CELL_DATE) { fprintf(stderr, "Unexpected cell (3,3) type: %u\n", cell_value.type); return -45; } if (strcmp(cell_value.value.text_value, "1967-10-01") != 0) { fprintf(stderr, "Unexpected cell (3,3) value: %s\n", cell_value.value.text_value); return -46; } ret = freexl_get_cell_value(handle, 3, 4, &cell_value); if (ret != FREEXL_OK) { fprintf(stderr, "Error getting cell value (3,4): %d\n", ret); return -47; } if (cell_value.type != FREEXL_CELL_DOUBLE) { fprintf(stderr, "Unexpected cell (3,4) type: %u\n", cell_value.type); return -48; } if (cell_value.value.double_value != 4) { fprintf(stderr, "Unexpected cell (3,4) value: %f\n", cell_value.value.double_value); return -49; } /* error cases */ ret = freexl_get_cell_value(handle, 7, 3, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (7,3): %d\n", ret); return -50; } ret = freexl_get_cell_value(handle, 2, 99, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (2,99): %d\n", ret); return -51; } ret = freexl_get_cell_value(handle, 4, 2, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (4,2): %d\n", ret); return -52; } ret = freexl_get_cell_value(handle, 3, 5, &cell_value); if (ret != FREEXL_ILLEGAL_CELL_ROW_COL) { fprintf(stderr, "Unexpected result for (3,5): %d\n", ret); return -53; } ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf(stderr, "CLOSE ERROR: %d\n", ret); return -2; } return 0; } freexl-1.0.5/ltmain.sh0000775000175000017500000105021613243550204011553 00000000000000 # libtool (GNU libtool) 2.4 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010 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 # --no-quiet, --no-silent # print informational messages (default) # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed 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. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # 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.4 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION=2.4 TIMESTAMP="" package_revision=1.3293 # 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 # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. 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 LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # 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" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${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 file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # 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 "${1}" | $SED -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 "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # 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 "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # 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' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|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: ${opt_mode+$opt_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_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_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 "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED '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 "$my_tmpdir" } # 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 "$1" | $SED "$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 "$1" | $SED \ -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_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$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 () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print 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 d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/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 } # 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 } # 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 # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg 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 shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" 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_preserve_dup_deps ;; esac $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 # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_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=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # 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_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # 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_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$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_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` 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 "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # 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_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # 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 </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # 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. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # 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_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # 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_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && 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 "$srcfile" | $SED 's%^.*/%%; 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 func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result 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 func_append 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 func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append 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 "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_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 build PIC objects only -prefer-non-pic try to build 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 -Wc,FLAG pass FLAG directly to the compiler 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-dir 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 -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -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 -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) 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 \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # 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 $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # 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 func_append 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 -* | *.la | *.lo ) ;; *) # 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_append_quoted args "$file" 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 "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 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" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" 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 "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_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. case $nonopt in *shtool*) :;; *) false;; esac; 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" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_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 -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi 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. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # 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 "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -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 "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "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_shared_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" && func_append 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 "$lib" | $SED '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 "$relink_command" | $SED '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 "$file$stripped_ext" | $SED "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 "$opt_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 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #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 "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $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" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac 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; 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) ;; *) func_append 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 "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "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 "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "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. # Despite the name, also deal with 64 bit binaries. 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 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $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_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # 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" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi 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 | sort | $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 | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # 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=${1-no} $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. 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 file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED '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 \"\$file\" | $SED '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 \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_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 \"\$thisdir\" | $SED '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" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # 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 \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${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\ " } # 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 #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #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 /* path handling portability macros */ #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 */ #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) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ 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_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); 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_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 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; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); 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; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); 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 (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); 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 (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); 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) { lt_debugprintf (__FILE__, __LINE__, "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 { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "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; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (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; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (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) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (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 case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # 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 bindir= 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 bindir) bindir="$arg" prev= continue ;; 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 func_append dlfiles " $arg" else func_append 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 "*) ;; *) func_append 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 # func_append 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 func_append 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. func_append 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 "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append 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 ;; -bindir) prev=bindir 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" if test -z "$func_stripname_result"; 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 func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # 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 "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append 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* | *-*-haiku*) # 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 func_append 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 func_append 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|--sysroot) func_append 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) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append 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_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append 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" func_append arg " $func_quote_for_eval_result" func_append 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" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append 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" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append 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 func_append 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. func_append 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. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" 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 \"\${$shlibpath_var}\" \| \$SED \'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" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # 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_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append 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 "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append 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% $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= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append 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 func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append 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 "*) ;; * ) func_append 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" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_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" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$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 \"$deplib\"" 2>/dev/null | $SED 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. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append 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 "$inherited_linker_flags" | $SED '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 "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED '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" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append 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. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi 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. func_append dlprefiles " $lib $dependency_libs" else func_append 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 "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$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 func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append 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 case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append 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" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append 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" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac 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 func_append 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" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_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_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append 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:"*) ;; *) func_append 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 "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append 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 func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append 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 "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append 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 "$opt_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 [\\/]*) func_append 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:"*) ;; *) func_append 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:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_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:"*) ;; *) func_append 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 [\\/]*) func_append 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 "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append 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" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" 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_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result 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 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append 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 " $new_inherited_linker_flags" | $SED '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 "*) ;; *) func_append 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 "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append 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 func_append 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" func_append 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!" func_append 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|qnx|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 ;; 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. func_append 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" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_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 func_append 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 func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "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 func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append 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 "*) ;; *) func_append 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 "*) ;; *) func_append 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* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append 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 func_append 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` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi 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 "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append 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. func_append 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 "*) func_append 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 \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append 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. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; 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 " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) 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 ;; esac ;; 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 " $newdeplibs" | $SED '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 " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED '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 "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append 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 "$opt_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 func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append 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 func_append 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 "$opt_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 func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$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" func_append 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 cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs 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 "$include_expsyms" | $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 func_append 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 "*) ;; *) func_append 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" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append 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\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_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 func_basename "$output" output_la=$func_basename_result # 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 func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result 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 func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" 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. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$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~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append 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 "$opt_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 "$include_expsyms" | $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 func_append 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" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append 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 "$opt_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 "$opt_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 "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $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 " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED '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]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED '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 "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append 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 "*) ;; *) func_append 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append 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;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append 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 "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$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 *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) 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 "$compile_command" | $SED '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=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # 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 func_append 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 func_append 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 "$link_command" | $SED '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 $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi 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 "$compile_var$compile_command$compile_rpath" | $SED '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 "$link_command" | $SED '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 $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # 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 "$relink_command" | $SED "$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 func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append 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" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append 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" func_append 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" func_append oldobjs " $gentop/$newobj" ;; *) func_append 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 elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" 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 "$relink_command" | $SED "$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" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append 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" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append 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" func_append newdlprefiles " ${lt_sysroot:+=}$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 func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; 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 "$opt_mode" = link || test "$opt_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) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; 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 func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${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 func_append 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 func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_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 func_append 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 func_append 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 func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # 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 "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_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 freexl-1.0.5/configure0000775000175000017500000224304413243550204011643 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for FreeXL 1.0.5. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 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. as_myself= 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 # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} 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 test -x / || 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 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 : export CONFIG_SHELL # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 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 and a.furieri@lqt.it $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: 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_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_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; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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 as_test_x='test -x' as_executable_p=as_fn_executable_p # 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'" SHELL=${CONFIG_SHELL-/bin/sh} 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='FreeXL' PACKAGE_TARNAME='freexl' PACKAGE_VERSION='1.0.5' PACKAGE_STRING='FreeXL 1.0.5' PACKAGE_BUGREPORT='a.furieri@lqt.it' PACKAGE_URL='' # 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 CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL OBJDUMP DLLTOOL AS host_os host_vendor host_cpu host build_os build_vendor build_cpu build LN_S am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V 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 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_silent_rules enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_gcov ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP' # 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 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 FreeXL 1.0.5 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/freexl] --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 FreeXL 1.0.5:";; 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-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --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) --enable-gcov turn on code coverage analysis tools 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] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). 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 CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor 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 . _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 FreeXL configure 1.0.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # 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 \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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;} ( $as_echo "## ------------------------------- ## ## Report this to a.furieri@lqt.it ## ## ------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # 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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # 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 \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # 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 || 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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # 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 \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # 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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # 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 || 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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { 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 \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=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 eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type 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 FreeXL $as_me 1.0.5, which was generated by GNU Autoconf 2.69. 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 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_aux_dir= for ac_dir in . "$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\"/." "$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. am__api_version='1.15' # 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 ${ac_cv_path_install+:} false; 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 as_fn_executable_p "$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; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $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 if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file 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 --is-lightweight"; then am_missing_run="$MISSING " 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+set}" != 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 ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_path_mkdir+:} false; 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 as_fn_executable_p "$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; } 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 ${ac_cv_prog_AWK+:} false; 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 as_fn_executable_p "$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 \${ac_cv_prog_make_${ac_make}_set+:} false; 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 # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' 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='freexl' VERSION='1.0.5' 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"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE ac_config_headers="$ac_config_headers config.h" # Checks for header files. 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='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_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 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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_objext+:} false; 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 ${ac_cv_c_compiler_gnu+:} false; 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 ${ac_cv_prog_cc_g+:} false; 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 ${ac_cv_prog_cc_c89+:} false; 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 struct stat; /* 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 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 whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" 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="$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 ${am_cv_CC_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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=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 ${ac_cv_prog_CPP+:} false; 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 { $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 ${ac_cv_path_GREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_EGREP+:} false; 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" as_fn_executable_p "$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 ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; 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 stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF else as_fn_error $? "cannot find stdlib.h, bailing out" "$LINENO" 5 fi done for ac_header in stdio.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" if test "x$ac_cv_header_stdio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDIO_H 1 _ACEOF else as_fn_error $? "cannot find stdio.h, bailing out" "$LINENO" 5 fi done for ac_header in string.h do : ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRING_H 1 _ACEOF else as_fn_error $? "cannot find string.h, bailing out" "$LINENO" 5 fi done for ac_header in math.h do : ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" if test "x$ac_cv_header_math_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MATH_H 1 _ACEOF else as_fn_error $? "cannot find math.h, bailing out" "$LINENO" 5 fi done # Checks for programs. 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 ${ac_cv_prog_CXX+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CXX+:} false; 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 as_fn_executable_p "$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 ${ac_cv_cxx_compiler_gnu+:} false; 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 ${ac_cv_prog_cxx_g+:} false; 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 ${am_cv_CXX_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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 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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 { $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 ${ac_cv_c_compiler_gnu+:} false; 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 ${ac_cv_prog_cc_g+:} false; 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 ${ac_cv_prog_cc_c89+:} false; 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 struct stat; /* 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 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 whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" 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="$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 ${am_cv_CC_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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=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 ${ac_cv_prog_CPP+:} false; 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 { $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 { $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 \${ac_cv_prog_make_${ac_make}_set+:} false; 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 # 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 ${ac_cv_build+:} false; 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 ${ac_cv_host+:} false; 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 enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $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 AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $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_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="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 AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi 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 ${ac_cv_prog_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump 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.4' macro_revision='1.3293' ltmain="$ac_aux_dir/ltmain.sh" # Backslashify 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' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $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 ${ac_cv_path_SED+:} false; 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" as_fn_executable_p "$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 fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; 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" as_fn_executable_p "$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 ${lt_cv_path_LD+:} false; 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 ${lt_cv_prog_gnu_ld+:} false; 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 ${lt_cv_path_NM+:} false; 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 "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" 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 ${ac_cv_prog_DUMPBIN+:} false; 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 as_fn_executable_p "$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 "link -dump" 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 ${ac_cv_prog_ac_ct_DUMPBIN+:} false; 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 as_fn_executable_p "$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 case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac 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 ${lt_cv_nm_interface+:} false; 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:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: 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; } # 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 ${lt_cv_sys_max_cmd_len+:} false; 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$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%"$_lt_dummy"}, \ = c,a/b,b/c, \ && 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 how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $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 ${lt_cv_ld_reload_flag+:} false; 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 cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; 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 ${ac_cv_prog_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${lt_cv_deplibs_check_method+:} false; 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. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && 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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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*) 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_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi 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}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi 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 ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_RANLIB+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_RANLIB+:} false; 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 as_fn_executable_p "$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 case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # 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 ${lt_cv_sys_global_symbol_pipe+:} false; 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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #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. */ LT_DLSYM_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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # 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 '$LINENO' "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 ${lt_cv_cc_needs_belf+:} false; 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" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $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 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" 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 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi 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 ${ac_cv_prog_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${lt_cv_apple_cc_single_mod+:} false; 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 ${lt_cv_ld_exported_symbols_list+:} false; 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; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&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" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac 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" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf # Set options enable_dlopen=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 ${lt_cv_objdir+:} false; 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 # 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 "$cc_temp" | $SED "s%.*/%%; 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 ${lt_cv_path_MAGIC_CMD+:} false; 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 ${lt_cv_path_MAGIC_CMD+:} false; 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* ## 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... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $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 ${lt_cv_prog_compiler_rtti_exceptions+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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= 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' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' lt_prog_compiler_pic='-Xcompiler -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' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # 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='' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-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* | sunf77* | sunf90* | sunf95*) 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}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # 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 ${lt_cv_prog_compiler_pic_works+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_static_works+:} false; 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 "$_lt_linker_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = 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.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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' export_dynamic_flag_spec='${wl}--export-all-symbols' 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/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' 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 ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; 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=' $pic_flag' 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; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; 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; func_echo_all \"$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* | bgf* | bgxlf* | mpixlf*) # 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 $linker_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 $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) 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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". 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") || (\$ 2 == "W")) && (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 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. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ 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 func_echo_all "${wl}${allow_undefined_flag}"; 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. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ 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' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi 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. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' 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' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper 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 `func_echo_all "$deplibs" | $SED '\''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' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi 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=func_echo_all 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 $pic_flag -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 $pic_flag ${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 && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${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 && test "$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 $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${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' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" 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 "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${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 ;; 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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else 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) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=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_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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*) 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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" && func_echo_all "-set_version $verstring"` -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} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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 $pic_flag ${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 $pic_flag ${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; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $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 lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; 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 case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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=`func_echo_all "$lib" | $SED '\''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,$cc_basename in yes,*) # gcc 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="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # 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' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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' # or fails outright, so override atomically: install_override_mode=555 ;; 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 if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no 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 : lt_cv_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 fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # 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;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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' ;; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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" = xyes; 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 ${ac_cv_lib_dld_shl_load+:} false; 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" = xyes; 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" = xyes; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_svld_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_dld_dld_link+:} false; 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" = xyes; 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 ${lt_cv_dlopen_self+:} false; 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 $LINENO "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 /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 ${lt_cv_dlopen_self_static+:} false; 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 $LINENO "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 /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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" 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 ${ac_cv_prog_CXXCPP+:} false; 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 else _lt_caught_CXX_error=yes 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 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 reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_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_CFLAGS=$CFLAGS 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++"} CFLAGS=$CXXFLAGS 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 "$cc_temp" | $SED "s%.*/%%; 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 ${lt_cv_path_LD+:} false; 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 ${lt_cv_prog_gnu_ld+:} false; 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 $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -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 -v "^Configured with:" | $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. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_aix_libpath__CXX=`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 "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`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 "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX 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 func_echo_all "${wl}${allow_undefined_flag}"; 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. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_aix_libpath__CXX=`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 "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`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 "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX 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' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi 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*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # 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_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _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' export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' 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 ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi 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=func_echo_all 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*) ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; 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; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${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; func_echo_all "$list"' ;; *) 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 $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${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" && func_echo_all "-set_version $verstring"` -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 $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -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; func_echo_all "$list"' 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 | sort | $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 | sort | $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 | sort | $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 | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above 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; func_echo_all \"$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=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # 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; func_echo_all \"$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='func_echo_all' # 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=func_echo_all 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" && func_echo_all "${wl}-set_version $verstring"` -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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) 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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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 -v "^Configured with:" | $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* | sunCC*) # 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='func_echo_all' # 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 $pic_flag -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 $pic_flag -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 -v "^Configured with:" | $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 -v "^Configured with:" | $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' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) 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 _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; esac 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 ${prev}${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 fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} 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 prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$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 CFLAGS=$_lt_libdeps_save_CFLAGS # 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* | sunCC*) # 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= # 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= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_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 ;; 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). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; 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* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene 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*) ;; *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* | sunCC*) # 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}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # 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 ${lt_cv_prog_compiler_pic_works_CXX+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_static_works_CXX+:} false; 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 "$_lt_linker_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_c_o_CXX+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_c_o_CXX+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' 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 # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". 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") || (\$ 2 == "W")) && (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*) case $cc_basename in cl*) ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; 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 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; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $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 lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_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* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; 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=`func_echo_all "$lib" | $SED '\''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,$cc_basename in yes,*) # gcc 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}' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # 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' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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' # or fails outright, so override atomically: install_override_mode=555 ;; 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 if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no 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 : lt_cv_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 fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # 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;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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' ;; 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 CFLAGS=$lt_save_CFLAGS 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: # Checks for typedefs, structures, and compiler characteristics. { $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 ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* 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 sort of thing. */ char tx; char *t = &tx; 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 sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; 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 ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 $as_echo_n "checking for working volatile... " >&6; } if ${ac_cv_c_volatile+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { volatile int x; int * volatile y = (int *) 0; return !x && !y; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_volatile=yes else ac_cv_c_volatile=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_volatile" >&5 $as_echo "$ac_cv_c_volatile" >&6; } if test $ac_cv_c_volatile = no; then $as_echo "#define volatile /**/" >>confdefs.h fi # Checks for library functions. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat accepts an empty string" >&5 $as_echo_n "checking whether lstat accepts an empty string... " >&6; } if ${ac_cv_func_lstat_empty_string_bug+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_lstat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return lstat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_empty_string_bug=no else ac_cv_func_lstat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_empty_string_bug" >&5 $as_echo "$ac_cv_func_lstat_empty_string_bug" >&6; } if test $ac_cv_func_lstat_empty_string_bug = yes; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_LSTAT_EMPTY_STRING_BUG 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 $as_echo_n "checking for working memcmp... " >&6; } if ${ac_cv_func_memcmp_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_memcmp_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_memcmp_working=yes else ac_cv_func_memcmp_working=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 $as_echo "$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 $as_echo_n "checking whether stat accepts an empty string... " >&6; } if ${ac_cv_func_stat_empty_string_bug+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_stat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return stat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_stat_empty_string_bug=no else ac_cv_func_stat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 $as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 _ACEOF fi for ac_func in strftime do : ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" if test "x$ac_cv_func_strftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRFTIME 1 _ACEOF else # strftime is in -lintl on SCO UNIX. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 $as_echo_n "checking for strftime in -lintl... " >&6; } if ${ac_cv_lib_intl_strftime+:} false; 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 strftime (); int main () { return strftime (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_strftime=yes else ac_cv_lib_intl_strftime=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_strftime" >&5 $as_echo "$ac_cv_lib_intl_strftime" >&6; } if test "x$ac_cv_lib_intl_strftime" = xyes; then : $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h LIBS="-lintl $LIBS" fi fi done for ac_func in sqrt strcasecmp strerror strncasecmp strstr strerror do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # gcov support # Check whether --enable-gcov was given. if test "${enable_gcov+set}" = set; then : enableval=$enable_gcov; fi if test "x$enable_gcov" = "xyes"; then CFLAGS=$CFLAGS" -fprofile-arcs -ftest-coverage -g" GCOV_FLAGS="-lgcov" fi ac_config_files="$ac_config_files Makefile headers/Makefile src/Makefile tests/Makefile examples/Makefile Doxyfile freexl.pc" for ac_header in iconv.h do : ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default" if test "x$ac_cv_header_iconv_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ICONV_H 1 _ACEOF else as_fn_error $? "cannot find iconv.h, bailing out" "$LINENO" 5 fi done # on some systems "iconv()" lives in libc. On others it lives in libiconv # on older systems "libiconv()" lives in libiconv { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing iconv" >&5 $as_echo_n "checking for library containing iconv... " >&6; } if ${ac_cv_search_iconv+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$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 iconv (); int main () { return iconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_iconv=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_iconv+:} false; then : break fi done if ${ac_cv_search_iconv+:} false; then : else ac_cv_search_iconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_iconv" >&5 $as_echo "$ac_cv_search_iconv" >&6; } ac_res=$ac_cv_search_iconv if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing libiconv" >&5 $as_echo_n "checking for library containing libiconv... " >&6; } if ${ac_cv_search_libiconv+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$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 libiconv (); int main () { return libiconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_libiconv=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_libiconv+:} false; then : break fi done if ${ac_cv_search_libiconv+:} false; then : else ac_cv_search_libiconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_libiconv" >&5 $as_echo "$ac_cv_search_libiconv" >&6; } ac_res=$ac_cv_search_libiconv if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libiconv' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing locale_charset" >&5 $as_echo_n "checking for library containing locale_charset... " >&6; } if ${ac_cv_search_locale_charset+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$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 locale_charset (); int main () { return locale_charset (); ; return 0; } _ACEOF for ac_lib in '' charset; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_locale_charset=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_locale_charset+:} false; then : break fi done if ${ac_cv_search_locale_charset+:} false; then : else ac_cv_search_locale_charset=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_locale_charset" >&5 $as_echo "$ac_cv_search_locale_charset" >&6; } ac_res=$ac_cv_search_locale_charset if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_langinfo" >&5 $as_echo_n "checking for library containing nl_langinfo... " >&6; } if ${ac_cv_search_nl_langinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$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 nl_langinfo (); int main () { return nl_langinfo (); ; return 0; } _ACEOF for ac_lib in '' c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_nl_langinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_nl_langinfo+:} false; then : break fi done if ${ac_cv_search_nl_langinfo+:} false; then : else ac_cv_search_nl_langinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_langinfo" >&5 $as_echo "$ac_cv_search_nl_langinfo" >&6; } ac_res=$ac_cv_search_nl_langinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libcharset' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi fi 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 if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi 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= 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" 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__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 : "${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. as_myself= 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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 # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # 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 FreeXL $as_me 1.0.5, which was generated by GNU Autoconf 2.69. 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 ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ FreeXL config.status 1.0.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 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' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ 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 \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ 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 \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_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 \ 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 \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$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 \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ reload_cmds_CXX \ 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 \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done 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 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "headers/Makefile") CONFIG_FILES="$CONFIG_FILES headers/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;; "freexl.pc") CONFIG_FILES="$CONFIG_FILES freexl.pc" ;; *) 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= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_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 -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # 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 {' >"$ac_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 >>"\$ac_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 >>"\$ac_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 < "$ac_tmp/subs1.awk" > "$ac_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 >"$ac_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_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; 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="$ac_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 >"$ac_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 "$ac_tmp/subs.awk" \ >$ac_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' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_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 "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_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 "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_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 "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_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 "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf 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"` # 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'`; 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, 2009, 2010 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 # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # 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 # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # 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 # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # 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 # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # 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 # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # 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 # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # 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 # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # 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 # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # 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 # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # 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 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # 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 # 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 # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_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 '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ 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}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi 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 # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_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 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_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 # 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 # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_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 ;; 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 freexl-1.0.5/src/0000775000175000017500000000000013243550236010577 500000000000000freexl-1.0.5/src/Makefile.in0000664000175000017500000004761713243550204012576 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 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 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libfreexl_la_DEPENDENCIES = am_libfreexl_la_OBJECTS = freexl.lo libfreexl_la_OBJECTS = $(am_libfreexl_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libfreexl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libfreexl_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libfreexl_la_SOURCES) DIST_SOURCES = $(libfreexl_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ 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@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ 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@ 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_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/headers -I$(top_srcdir) lib_LTLIBRARIES = libfreexl.la libfreexl_la_SOURCES = freexl.c libfreexl_la_LDFLAGS = -version-info 2:0:1 -no-undefined libfreexl_la_LIBADD = -lm MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libfreexl.la: $(libfreexl_la_OBJECTS) $(libfreexl_la_DEPENDENCIES) $(EXTRA_libfreexl_la_DEPENDENCIES) $(AM_V_CCLD)$(libfreexl_la_LINK) -rpath $(libdir) $(libfreexl_la_OBJECTS) $(libfreexl_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freexl.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ 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-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ 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" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files 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 check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) 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-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES 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 -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-compile 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-libLTLIBRARIES 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-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES .PRECIOUS: Makefile # 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: freexl-1.0.5/src/freexl.c0000664000175000017500000035736313243550204012164 00000000000000/* / freexl.c / / FreeXL implementation / / version 1.0, 2011 July 26 / / Author: Sandro Furieri a.furieri@lqt.it / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include #if defined(__MINGW32__) || defined(_WIN32) #define LIBICONV_STATIC #include #define LIBCHARSET_STATIC #ifdef _MSC_VER /* isn't supported on OSGeo4W */ /* applying a tricky workaround to fix this issue */ extern const char *locale_charset (void); #else /* sane Windows - not OSGeo4W */ #include #endif /* end localcharset */ #else /* not WINDOWS */ #if defined(__APPLE__) || defined(__ANDROID__) #include #include #else /* neither Mac OsX nor Android */ #include #include #endif #endif #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include "freexl.h" #include "freexl_internals.h" const char *freexlversion = VERSION; FREEXL_DECLARE const char * freexl_version (void) { /* return the library version number */ return freexlversion; } #if defined(_WIN32) && !defined(__MINGW32__) /* MSVC compiler doesn't support lround() at all */ static double round (double num) { double integer = ceil (num); if (num > 0) return integer - num > 0.5 ? integer - 1.0 : integer; return integer - num >= 0.5 ? integer - 1.0 : integer; } static long lround (double num) { long integer = (long) round (num); return integer; } #endif static void swap16 (biff_word16 * word) { /* Endianness: swapping a 16 bit word */ unsigned char save = word->bytes[0]; word->bytes[0] = word->bytes[1]; word->bytes[1] = save; } static void swap32 (biff_word32 * word) { /* Endianness: swapping a 32 bit word */ unsigned char save0 = word->bytes[0]; unsigned char save1 = word->bytes[1]; unsigned char save2 = word->bytes[2]; word->bytes[0] = word->bytes[3]; word->bytes[1] = save2; word->bytes[2] = save1; word->bytes[3] = save0; } static void swap_float (biff_float * word) { /* Endianness: swapping a 64 bit float */ unsigned char save0 = word->bytes[0]; unsigned char save1 = word->bytes[1]; unsigned char save2 = word->bytes[2]; unsigned char save3 = word->bytes[3]; unsigned char save4 = word->bytes[4]; unsigned char save5 = word->bytes[5]; unsigned char save6 = word->bytes[6]; word->bytes[0] = word->bytes[7]; word->bytes[1] = save6; word->bytes[2] = save5; word->bytes[3] = save4; word->bytes[4] = save3; word->bytes[5] = save2; word->bytes[6] = save1; word->bytes[7] = save0; } static int biff_set_utf8_converter (biff_workbook * workbook) { /* attempting to set up a charset converter to UTF-8 */ iconv_t cvt = (iconv_t) (-1); if (workbook->utf8_converter) iconv_close (workbook->utf8_converter); workbook->utf8_converter = NULL; switch (workbook->biff_code_page) { case 0x016F: cvt = iconv_open ("UTF-8", "ASCII"); break; case 0x01B5: cvt = iconv_open ("UTF-8", "CP437"); break; case 0x02D0: cvt = iconv_open ("UTF-8", "CP720"); break; case 0x02E1: cvt = iconv_open ("UTF-8", "CP737"); break; case 0x0307: cvt = iconv_open ("UTF-8", "CP775"); break; case 0x0352: cvt = iconv_open ("UTF-8", "CP850"); break; case 0x0354: cvt = iconv_open ("UTF-8", "CP852"); break; case 0x0357: cvt = iconv_open ("UTF-8", "CP855"); break; case 0x0359: cvt = iconv_open ("UTF-8", "CP857"); break; case 0x035A: cvt = iconv_open ("UTF-8", "CP858"); break; case 0x035C: cvt = iconv_open ("UTF-8", "CP860"); break; case 0x035D: cvt = iconv_open ("UTF-8", "CP861"); break; case 0x035E: cvt = iconv_open ("UTF-8", "CP862"); break; case 0x035F: cvt = iconv_open ("UTF-8", "CP863"); break; case 0x0360: cvt = iconv_open ("UTF-8", "CP864"); break; case 0x0361: cvt = iconv_open ("UTF-8", "CP865"); break; case 0x0362: cvt = iconv_open ("UTF-8", "CP866"); break; case 0x0365: cvt = iconv_open ("UTF-8", "CP869"); break; case 0x036A: cvt = iconv_open ("UTF-8", "CP874"); break; case 0x03A4: cvt = iconv_open ("UTF-8", "CP932"); break; case 0x03A8: cvt = iconv_open ("UTF-8", "CP936"); break; case 0x03B5: cvt = iconv_open ("UTF-8", "CP949"); break; case 0x03B6: cvt = iconv_open ("UTF-8", "CP950"); break; case 0x04B0: cvt = iconv_open ("UTF-8", "UTF-16LE"); break; case 0x04E2: cvt = iconv_open ("UTF-8", "CP1250"); break; case 0x04E3: cvt = iconv_open ("UTF-8", "CP1251"); break; case 0x04E4: case 0x8001: cvt = iconv_open ("UTF-8", "CP1252"); break; case 0x04E5: cvt = iconv_open ("UTF-8", "CP1253"); break; case 0x04E6: cvt = iconv_open ("UTF-8", "CP1254"); break; case 0x04E7: cvt = iconv_open ("UTF-8", "CP1255"); break; case 0x04E8: cvt = iconv_open ("UTF-8", "CP1256"); break; case 0x04E9: cvt = iconv_open ("UTF-8", "CP1257"); break; case 0x04EA: cvt = iconv_open ("UTF-8", "CP1258"); break; case 0x0551: cvt = iconv_open ("UTF-8", "CP1361"); break; case 0x2710: case 0x8000: cvt = iconv_open ("UTF-8", "MacRoman"); break; }; if (cvt == (iconv_t) (-1)) return 0; workbook->utf8_converter = cvt; return 1; } static char * convert_to_utf8 (iconv_t converter, const char *buf, int buflen, int *err) { /* converting a string to UTF8 */ char *utf8buf = 0; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else char *pBuf; #endif size_t len; size_t utf8len; int maxlen = buflen * 4; char *pUtf8buf; *err = FREEXL_OK; if (!converter) { *err = FREEXL_UNSUPPORTED_CHARSET; return NULL; } utf8buf = malloc (maxlen); len = buflen; utf8len = maxlen; pBuf = (char *) buf; pUtf8buf = utf8buf; if (iconv (converter, &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) { free (utf8buf); *err = FREEXL_INVALID_CHARACTER; return NULL; } utf8buf[maxlen - utf8len] = '\0'; return utf8buf; } static void get_unicode_params (unsigned char *addr, int swap, unsigned int *start_offset, int *real_utf16, unsigned int *extra_skip) { /* retrieving Unicode string params */ biff_word16 word16; biff_word32 word32; int skip_1 = 0; int skip_2 = 0; unsigned char *p_string = addr; unsigned char mask = *p_string; /* * a bitwise mask * 0x01 - the string is 'real' UTF16LE * otherwise any high-order ZEROes are suppressed * ['stripped' UTF16] * * 0x04 - an extra 32-bit field is present * 0x08 - another extra 16-bit field is present * (such extra (optional) fields are intended by MS * for text formatting purposes: we'll ignore them * at all, simply adjusting any offset as required) */ p_string++; if ((mask & 0x01) == 0x01) *real_utf16 = 1; else *real_utf16 = 0; if ((mask & 0x08) == 0x08) { /* optional field 16-bits */ memcpy (word16.bytes, p_string, 2); if (swap) swap16 (&word16); skip_2 = word16.value; p_string += 2; } if ((mask & 0x04) == 0x04) { /* optional field: 32-bits */ memcpy (word32.bytes, p_string, 4); if (swap) swap32 (&word32); skip_1 = word32.value; p_string += 4; } *start_offset = p_string - addr; *extra_skip = skip_1 + (skip_2 * 4); } static int parse_unicode_string (iconv_t converter, unsigned short characters, int real_utf16, unsigned char *unicode_string, char **utf8_string) { /* attemping to convert an Unicode string into UTF-8 */ unsigned int len = characters * 2; char *string; int err; unsigned char *p_string = unicode_string; string = malloc (len); if (!real_utf16) { /* 'stripped' UTF-16: requires padding */ unsigned int i; for (i = 0; i < characters; i++) { *(string + (i * 2)) = *p_string; p_string++; *(string + ((i * 2) + 1)) = 0x00; } } else { /* already encoded as UTF-16 */ memcpy (string, p_string, len); } /* converting text to UTF-8 */ *utf8_string = convert_to_utf8 (converter, string, len, &err); free (string); if (err) return 0; return 1; } static int decode_rk_integer (unsigned char *bytes, int *value, int swap) { /* attempting to decode an RK value as an INT-32 */ biff_word32 word32; unsigned char mask = bytes[0]; if ((mask & 0x02) == 0x02 && (mask & 0x01) == 0x00) { /* ok, this RK value is an INT-32 */ memcpy (word32.bytes, bytes, 4); if (swap) swap32 (&word32); *value = word32.signed_value >> 2; /* right shift: 2 bits */ return 1; } return 0; } static int decode_rk_float (unsigned char *bytes, double *value, int swap) { /* attempting to decode an RK value as a DOUBLE-FLOAT */ biff_word32 word32; biff_float word_float; int int_value; double dbl_value; int div_by_100 = 0; unsigned char mask = bytes[0]; if ((mask & 0x02) == 0x02 && (mask & 0x01) == 0x01) { /* ok, this RK value is an INT-32 (divided by 100) */ memcpy (word32.bytes, bytes, 4); if (swap) swap32 (&word32); int_value = word32.signed_value >> 2; /* right shift: 2 bits */ *value = (double) int_value / 100.0; return 1; } if ((mask & 0x02) == 0x00) { /* ok, this RK value is a FLOAT */ if ((mask & 0x01) == 0x01) div_by_100 = 1; memcpy (word32.bytes, bytes, 4); if (swap) swap32 (&word32); int_value = word32.value; int_value &= 0xfffffffc; word32.value = int_value; memset (word_float.bytes, '\0', 8); if (swap) memcpy (word_float.bytes, word32.bytes, 4); else memcpy (word_float.bytes + 4, word32.bytes, 4); dbl_value = word_float.value; if (div_by_100) dbl_value /= 100.0; *value = dbl_value; return 1; } return 0; } static int check_xf_datetime (biff_workbook * workbook, unsigned short xf_index, int *is_date, int *is_datetime, int *is_time) { /* testing for DATE/DATETIME/TIME formats */ unsigned short idx; unsigned short format_index; if (xf_index >= workbook->biff_xf_next_index) return 0; format_index = workbook->biff_xf_array[xf_index]; for (idx = 0; idx < workbook->max_format_index; idx++) { biff_format *format = workbook->format_array + idx; if (format->format_index == format_index) { *is_date = format->is_date; *is_datetime = format->is_datetime; *is_time = format->is_time; return 1; } } *is_date = 0; *is_datetime = 0; *is_time = 0; return 1; } static int check_xf_datetime_58 (biff_workbook * workbook, unsigned short xf_index, int *is_date, int *is_datetime, int *is_time) { /* / testing for DATE/DATETIME/TIME formats / BIFF5 and BIFF8 versions */ unsigned short format_index; if (xf_index >= workbook->biff_xf_next_index) return 0; format_index = workbook->biff_xf_array[xf_index]; switch (format_index) { case 14: case 15: case 16: case 17: /* BIFF5/BIFF8 built-in DATE formats */ *is_date = 1; *is_datetime = 0; *is_time = 0; return 1; case 18: case 19: case 20: case 21: case 45: case 46: case 47: /* BIFF5/BIFF8 built-in TIME formats */ *is_date = 0; *is_datetime = 0; *is_time = 1; return 1; case 22: /* BIFF5/BIFF8 built-in DATETIME formats */ *is_date = 0; *is_datetime = 1; *is_time = 0; return 1; default: break; }; return check_xf_datetime (workbook, xf_index, is_date, is_datetime, is_time); } static void compute_time (int *hh, int *mm, int *ss, double percent) { /* computing an Excel time */ int hours; int mins; int secs; double day_seconds = 24 * 60 * 60; day_seconds *= percent; secs = lround (day_seconds); hours = secs / 3600; secs -= hours * 3600; mins = secs / 60; secs -= mins * 60; *hh = hours; *mm = mins; *ss = secs; } static void compute_date (int *year, int *month, int *day, int count) { /* coumputing an Excel date */ int i; int yy = *year; int mm = *month; int dd = *day; for (i = 1; i < count; i++) { int last_day_of_month; switch (mm) { case 2: if ((yy % 4) == 0) { /* February, leap year */ last_day_of_month = 29; } else last_day_of_month = 28; break; case 4: case 6: case 9: case 11: last_day_of_month = 30; break; default: last_day_of_month = 31; break; }; if (dd == last_day_of_month) { if (mm == 12) { mm = 1; yy += 1; } else mm += 1; dd = 1; } else dd += 1; } *year = yy; *month = mm; *day = dd; } static int set_date_int_value (biff_workbook * workbook, unsigned int row, unsigned short col, unsigned short mode, int num) { /* setting a DATE value to some cell */ biff_cell_value *p_cell; char *string; char buf[64]; unsigned int len; int yy; int mm; int dd; int count = num; if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; if (mode) { yy = 1904; mm = 1; dd = 2; } else { yy = 1900; mm = 1; dd = 1; } compute_date (&yy, &mm, &dd, count); sprintf (buf, "%04d-%02d-%02d", yy, mm, dd); len = strlen (buf); string = malloc (len + 1); if (!string) return FREEXL_INSUFFICIENT_MEMORY; strcpy (string, buf); p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; p_cell->type = FREEXL_CELL_DATE; p_cell->value.text_value = string; return FREEXL_OK; } static int set_datetime_int_value (biff_workbook * workbook, unsigned int row, unsigned short col, unsigned short mode, int num) { /* setting a DATETIME value to some cell */ biff_cell_value *p_cell; char *string; char buf[64]; unsigned int len; int yy; int mm; int dd; int count = num; if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; if (mode) { yy = 1904; mm = 1; dd = 2; } else { yy = 1900; mm = 1; dd = 1; } compute_date (&yy, &mm, &dd, count); sprintf (buf, "%04d-%02d-%02d 00:00:00", yy, mm, dd); len = strlen (buf); string = malloc (len + 1); if (!string) return FREEXL_INSUFFICIENT_MEMORY; strcpy (string, buf); p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; p_cell->type = FREEXL_CELL_DATETIME; p_cell->value.text_value = string; return FREEXL_OK; } static int set_date_double_value (biff_workbook * workbook, unsigned int row, unsigned short col, unsigned short mode, double num) { /* setting a DATE value to some cell */ biff_cell_value *p_cell; char *string; char buf[64]; unsigned int len; int yy; int mm; int dd; int count = (int) floor (num); if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; if (mode) { yy = 1904; mm = 1; dd = 2; } else { yy = 1900; mm = 1; dd = 1; } compute_date (&yy, &mm, &dd, count); sprintf (buf, "%04d-%02d-%02d", yy, mm, dd); len = strlen (buf); string = malloc (len + 1); if (!string) return FREEXL_INSUFFICIENT_MEMORY; strcpy (string, buf); p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; p_cell->type = FREEXL_CELL_DATE; p_cell->value.text_value = string; return FREEXL_OK; } static int set_datetime_double_value (biff_workbook * workbook, unsigned int row, unsigned short col, unsigned short mode, double num) { /* setting a DATETIME value to some cell */ biff_cell_value *p_cell; char *string; char buf[64]; unsigned int len; int yy; int mm; int dd; int h; int m; int s; int count = (int) floor (num); double percent = num - (double) count; if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; if (mode) { yy = 1904; mm = 1; dd = 2; } else { yy = 1900; mm = 1; dd = 1; } compute_date (&yy, &mm, &dd, count); compute_time (&h, &m, &s, percent); sprintf (buf, "%04d-%02d-%02d %02d:%02d:%02d", yy, mm, dd, h, m, s); len = strlen (buf); string = malloc (len + 1); if (!string) return FREEXL_INSUFFICIENT_MEMORY; strcpy (string, buf); p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; p_cell->type = FREEXL_CELL_DATETIME; p_cell->value.text_value = string; return FREEXL_OK; } static int set_time_double_value (biff_workbook * workbook, unsigned int row, unsigned short col, double num) { /* setting a TIME value to some cell */ biff_cell_value *p_cell; char *string; char buf[64]; unsigned int len; int h; int m; int s; int count = (int) floor (num); double percent = num - (double) count; if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; compute_time (&h, &m, &s, percent); sprintf (buf, "%02d:%02d:%02d", h, m, s); len = strlen (buf); string = malloc (len + 1); if (!string) return FREEXL_INSUFFICIENT_MEMORY; strcpy (string, buf); p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; p_cell->type = FREEXL_CELL_TIME; p_cell->value.text_value = string; return FREEXL_OK; } static int set_int_value (biff_workbook * workbook, unsigned int row, unsigned short col, int num) { /* setting an INTEGER value to some cell */ biff_cell_value *p_cell; if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; p_cell->type = FREEXL_CELL_INT; p_cell->value.int_value = num; return FREEXL_OK; } static int set_double_value (biff_workbook * workbook, unsigned int row, unsigned short col, double num) { /* setting a DOUBLE value to some cell */ biff_cell_value *p_cell; if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; p_cell->type = FREEXL_CELL_DOUBLE; p_cell->value.dbl_value = num; return FREEXL_OK; } static int set_text_value (biff_workbook * workbook, unsigned int row, unsigned short col, char *text) { /* setting a TEXT value to some cell */ biff_cell_value *p_cell; if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; if (!text) { p_cell->type = FREEXL_CELL_NULL; return FREEXL_OK; } p_cell->type = FREEXL_CELL_TEXT; p_cell->value.text_value = text; return FREEXL_OK; } static int set_sst_value (biff_workbook * workbook, unsigned int row, unsigned short col, const char *text) { /* setting an SST-TEXT value to some cell */ biff_cell_value *p_cell; if (workbook->active_sheet == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; if (row >= workbook->active_sheet->rows || col >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + col; if (!text) { p_cell->type = FREEXL_CELL_NULL; return FREEXL_OK; } p_cell->type = FREEXL_CELL_SST_TEXT; p_cell->value.sst_value = text; return FREEXL_OK; } static size_t xls_fread (size_t bufsz, void *buf, size_t size, size_t nmemb, FILE * fl) { /* / Sandro 2017-09-07 / secure version of "fread" checking against buffer overflows /--------------------------- / expected to fix the issue reported by / Cisco [TALOS-2017-431] */ if ((size * nmemb) > bufsz) return 0; return fread (buf, size, nmemb, fl); } static fat_chain * alloc_fat_chain (int swap, unsigned short sector_shift, unsigned int directory_start) { /* allocating the FAT chain */ fat_chain *chain = malloc (sizeof (fat_chain)); if (!chain) return NULL; chain->swap = swap; if (sector_shift == 12) chain->sector_size = 4096; else chain->sector_size = 512; chain->next_sector = 0; chain->directory_start = directory_start; chain->first = NULL; chain->last = NULL; chain->fat_array = NULL; chain->fat_array_count = 0; chain->miniCutOff = 0; chain->next_sectorMini = 0; chain->firstMini = NULL; chain->lastMini = NULL; chain->miniFAT_array = NULL; chain->miniFAT_array_count = 0; chain->miniFAT_len = 0; chain->miniStream = NULL; return chain; } static void destroy_fat_chain (fat_chain * chain) { /* destroying a FAT chain */ fat_entry *entry; fat_entry *entry_n; if (!chain) return; /* destroying the main FAT */ entry = chain->first; while (entry) { entry_n = entry->next; free (entry); entry = entry_n; } if (chain->fat_array) free (chain->fat_array); /* destroying the miniFAT */ entry = chain->firstMini; while (entry) { entry_n = entry->next; free (entry); entry = entry_n; } if (chain->miniFAT_array) free (chain->miniFAT_array); if (chain->miniStream) free (chain->miniStream); free (chain); } static unsigned int get_worksheet_count (biff_workbook * workbook) { /* counting how many Worksheet are into the Workbook */ unsigned int count = 0; biff_sheet *p_sheet = workbook->first_sheet; while (p_sheet) { count++; p_sheet = p_sheet->next; } return count; } static void destroy_cell (biff_cell_value * cell) { /* destroying a cell */ if (cell->type == FREEXL_CELL_TEXT || cell->type == FREEXL_CELL_DATE || cell->type == FREEXL_CELL_DATETIME || cell->type == FREEXL_CELL_TIME) { if (cell->value.text_value) free (cell->value.text_value); } } static void destroy_sheet (biff_sheet * sheet) { /* destroying a Sheet struct */ unsigned int row; unsigned int col; biff_cell_value *p_cell; if (!sheet) return; if (sheet->utf8_name) free (sheet->utf8_name); if (sheet->cell_values) { for (row = 0; row < sheet->rows; row++) { /* destroying rows */ p_cell = sheet->cell_values + (row * sheet->columns); for (col = 0; col < sheet->columns; col++) { /* destroying cells */ destroy_cell (p_cell); p_cell++; } } } free (sheet->cell_values); free (sheet); } static int allocate_cells (biff_workbook * workbook) { /* allocating the rows and cells for the active Worksheet */ unsigned int row; unsigned int col; double dsize; biff_cell_value *p_cell; if (workbook == NULL) return FREEXL_NULL_ARGUMENT; if (workbook->active_sheet == NULL) return FREEXL_NULL_ARGUMENT; /* testing for an unrealistically high memory size > 256MB */ dsize = (double) sizeof (biff_cell_value) * (double) (workbook->active_sheet->rows) * (double) (workbook->active_sheet->columns); if (dsize > 256.0 * 1024.0 * 1024.0) return FREEXL_INSUFFICIENT_MEMORY; /* allocating the cell values array */ if (workbook->active_sheet->rows * workbook->active_sheet->columns <= 0) { workbook->active_sheet->cell_values = NULL; return FREEXL_OK; } workbook->active_sheet->cell_values = malloc (sizeof (biff_cell_value) * (workbook->active_sheet->rows * workbook->active_sheet->columns)); if (workbook->active_sheet->cell_values == NULL) return FREEXL_INSUFFICIENT_MEMORY; for (row = 0; row < workbook->active_sheet->rows; row++) { /* initializing NULL cell values */ p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns); for (col = 0; col < workbook->active_sheet->columns; col++) { p_cell->type = FREEXL_CELL_NULL; p_cell++; } } return FREEXL_OK; } static int add_sheet_to_workbook (biff_workbook * workbook, unsigned int offset, unsigned char visible, unsigned char type, char *name) { /* appending a further Sheet to the Workbook */ biff_sheet *sheet = malloc (sizeof (biff_sheet)); if (!sheet) return 0; sheet->start_offset = offset; sheet->visible = visible; sheet->type = type; sheet->utf8_name = name; sheet->rows = 0; sheet->columns = 0; sheet->cell_values = NULL; sheet->valid_dimension = 0; sheet->already_done = 0; sheet->next = NULL; /* updating the linked list */ if (workbook->first_sheet == NULL) workbook->first_sheet = sheet; if (workbook->last_sheet != NULL) workbook->last_sheet->next = sheet; workbook->last_sheet = sheet; return 1; } static void destroy_workbook (biff_workbook * workbook) { /* destroyng the Workbook struct */ biff_sheet *p_sheet; biff_sheet *p_sheet_n; if (workbook) { if (workbook->xls) fclose (workbook->xls); if (workbook->utf8_converter) iconv_close (workbook->utf8_converter); if (workbook->utf16_converter) iconv_close (workbook->utf16_converter); if (workbook->shared_strings.utf8_strings != NULL) { /* destroying the Shared Strings Table [SST] */ unsigned int i; for (i = 0; i < workbook->shared_strings.string_count; i++) { char *string = *(workbook->shared_strings.utf8_strings + i); if (string != NULL) free (string); } free (workbook->shared_strings.utf8_strings); } if (workbook->shared_strings.current_utf16_buf) free (workbook->shared_strings.current_utf16_buf); p_sheet = workbook->first_sheet; while (p_sheet) { p_sheet_n = p_sheet->next; destroy_sheet (p_sheet); p_sheet = p_sheet_n; } if (workbook->fat) destroy_fat_chain (workbook->fat); free (workbook); } } static biff_workbook * alloc_workbook (int magic) { /* allocating and initializing the Workbook struct */ biff_workbook *workbook = malloc (sizeof (biff_workbook)); if (!workbook) return NULL; workbook->magic1 = magic; workbook->magic2 = FREEXL_MAGIC_END; workbook->xls = NULL; workbook->fat = NULL; workbook->cfbf_version = 0; workbook->cfbf_sector_size = 0; workbook->start_sector = 0; workbook->size = 0; workbook->current_sector = 0; workbook->bytes_read = 0; workbook->current_offset = 0; memset (workbook->sector_buf, 0, sizeof (workbook->sector_buf)); workbook->p_in = workbook->sector_buf; workbook->sector_end = 0; workbook->sector_ready = 0; workbook->ok_bof = -1; workbook->biff_version = 0; workbook->biff_max_record_size = 0; workbook->biff_content_type = 0; workbook->biff_code_page = 0; workbook->biff_book_code_page = 0; workbook->biff_date_mode = 0; workbook->biff_obfuscated = 0; workbook->utf8_converter = NULL; workbook->utf16_converter = NULL; memset (workbook->record, 0, sizeof (workbook->record)); workbook->record_type = 0; workbook->prev_record_type = 0; workbook->record_size = 0; workbook->shared_strings.string_count = 0; workbook->shared_strings.utf8_strings = NULL; workbook->shared_strings.current_index = 0; workbook->shared_strings.current_utf16_buf = NULL; workbook->shared_strings.current_utf16_len = 0; workbook->shared_strings.current_utf16_off = 0; workbook->shared_strings.current_utf16_skip = 0; workbook->shared_strings.next_utf16_skip = 0; workbook->first_sheet = NULL; workbook->last_sheet = NULL; workbook->active_sheet = NULL; workbook->second_pass = 0; workbook->max_format_index = 0; workbook->biff_xf_next_index = 0; return workbook; } static int insert_into_fat_chain (fat_chain * chain, unsigned int sector) { /* inserting a sector into the FAT chain [linked list] */ fat_entry *entry = malloc (sizeof (fat_entry)); if (entry == NULL) return FREEXL_INSUFFICIENT_MEMORY; entry->current_sector = chain->next_sector; chain->next_sector += 1; entry->next_sector = sector; entry->next = NULL; if (chain->first == NULL) chain->first = entry; if (chain->last != NULL) chain->last->next = entry; chain->last = entry; return FREEXL_OK; } static int insert_into_miniFAT_chain (fat_chain * chain, unsigned int sector) { /* inserting a sector into the miniFAT chain [linked list] */ fat_entry *entry = malloc (sizeof (fat_entry)); if (entry == NULL) return FREEXL_INSUFFICIENT_MEMORY; entry->current_sector = chain->next_sectorMini; chain->next_sectorMini += 1; entry->next_sector = sector; entry->next = NULL; if (chain->firstMini == NULL) chain->firstMini = entry; if (chain->lastMini != NULL) chain->lastMini->next = entry; chain->lastMini = entry; return FREEXL_OK; } static fat_entry * get_fat_entry (fat_chain * chain, unsigned int i_sect) { /* attempting to retrieve a FAT item [sector] */ if (!chain) return NULL; if (i_sect < chain->fat_array_count) return *(chain->fat_array + i_sect); return NULL; } static int build_fat_arrays (fat_chain * chain) { /* building FAT sectors array */ fat_entry *entry; int i; if (!chain) return FREEXL_NULL_ARGUMENT; if (chain->fat_array) free (chain->fat_array); chain->fat_array = NULL; chain->fat_array_count = 0; if (chain->miniFAT_array) free (chain->miniFAT_array); chain->miniFAT_array = NULL; chain->miniFAT_array_count = 0; entry = chain->first; while (entry) { /* counting how many sectors are into the FAT list */ chain->fat_array_count += 1; entry = entry->next; } if (chain->fat_array_count == 0) return FREEXL_CFBF_EMPTY_FAT_CHAIN; /* allocating the FAT sectors array */ chain->fat_array = malloc (sizeof (fat_entry *) * chain->fat_array_count); if (chain->fat_array == NULL) return FREEXL_INSUFFICIENT_MEMORY; i = 0; entry = chain->first; while (entry) { /* populating the pointer array */ *(chain->fat_array + i) = entry; i++; entry = entry->next; } entry = chain->firstMini; while (entry) { /* counting how many sectors are into the miniFAT list */ chain->miniFAT_array_count += 1; entry = entry->next; } if (chain->miniFAT_array_count > 0) { /* allocating the miniFAT sectors array */ chain->miniFAT_array = malloc (sizeof (fat_entry *) * chain->miniFAT_array_count); if (chain->miniFAT_array == NULL) return FREEXL_INSUFFICIENT_MEMORY; i = 0; entry = chain->firstMini; while (entry) { /* populating the pointer array */ *(chain->miniFAT_array + i) = entry; i++; entry = entry->next; } } return FREEXL_OK; } static void select_active_sheet (biff_workbook * workbook, unsigned int current_offset) { /* selecting the currently acrive Sheet (if any) */ biff_sheet *p_sheet; p_sheet = workbook->first_sheet; while (p_sheet) { if (p_sheet->start_offset == current_offset) { /* ok, this one is the current Sheet */ workbook->active_sheet = p_sheet; return; } p_sheet = p_sheet->next; } workbook->active_sheet = NULL; } static int read_fat_sector (FILE * xls, fat_chain * chain, unsigned int sector) { /* reading a FAT chain sector */ long where = (sector + 1) * chain->sector_size; unsigned char buf[4096]; unsigned char *p_buf = buf; int i_fat; int max_fat; if (fseek (xls, where, SEEK_SET) != 0) return FREEXL_CFBF_SEEK_ERROR; if (chain->sector_size == 4096) max_fat = 1024; else max_fat = 128; /* reading a FAT sector */ if (xls_fread (sizeof (buf), buf, 1, chain->sector_size, xls) != chain->sector_size) return FREEXL_CFBF_READ_ERROR; for (i_fat = 0; i_fat < max_fat; i_fat++) { int ret; biff_word32 fat; memcpy (fat.bytes, p_buf, 4); p_buf += 4; if (chain->swap) swap32 (&fat); ret = insert_into_fat_chain (chain, fat.value); if (ret != FREEXL_OK) return ret; } return FREEXL_OK; } static int read_difat_sectors (FILE * xls, fat_chain * chain, unsigned int sector, unsigned int num_sectors) { /* reading a DIFAT (DoubleIndirect) chain sector */ unsigned int next_sector = sector; unsigned int blocks = 0; long where = (sector + 1) * chain->sector_size; biff_word32 difat[1024]; int i_difat; int max_difat; int end_of_chain = 0; if (chain->sector_size == 4096) max_difat = 1024; else max_difat = 128; while (1) { where = (next_sector + 1) * chain->sector_size; if (fseek (xls, where, SEEK_SET) != 0) return FREEXL_CFBF_SEEK_ERROR; /* reading a DIFAT sector */ if (xls_fread (sizeof (difat), &difat, 1, chain->sector_size, xls) != chain->sector_size) return FREEXL_CFBF_READ_ERROR; blocks++; if (chain->swap) { for (i_difat = 0; i_difat < max_difat; i_difat++) swap32 (difat + i_difat); } for (i_difat = 0; i_difat < max_difat; i_difat++) { if (difat[i_difat].value == 0xFFFFFFFE) { end_of_chain = 1; /* end of FAT chain */ break; } if (i_difat == max_difat - 1) next_sector = difat[i_difat].value; else { int ret; if (difat[i_difat].value == 0xFFFFFFFF) continue; /* unused sector */ ret = read_fat_sector (xls, chain, difat[i_difat].value); if (ret != FREEXL_OK) return ret; } } if (blocks == num_sectors) break; if (end_of_chain) break; } if (blocks != num_sectors) return 0; return 1; } static int read_miniFAT_sectors (FILE * xls, fat_chain * chain, unsigned int sector, unsigned int num_sectors) { /* reading miniFAT chain sectors */ long where = (sector - 1) * chain->sector_size; unsigned char buf[4096]; int i_fat; int max_fat; unsigned int block = 0; if (chain->sector_size == 4096) max_fat = 1024; else max_fat = 128; if (fseek (xls, where, SEEK_SET) != 0) return FREEXL_CFBF_SEEK_ERROR; while (block < num_sectors) { unsigned char *p_buf = buf; block++; /* reading a miniFAT sector */ if (xls_fread (sizeof (buf), &buf, 1, chain->sector_size, xls) != chain->sector_size) return FREEXL_CFBF_READ_ERROR; for (i_fat = 0; i_fat < max_fat; i_fat++) { int ret; biff_word32 fat; memcpy (fat.bytes, p_buf, 4); p_buf += 4; if (chain->swap) swap32 (&fat); ret = insert_into_miniFAT_chain (chain, fat.value); if (ret != FREEXL_OK) return ret; } } return 1; } static fat_chain * read_cfbf_header (biff_workbook * workbook, int swap, int *err_code) { /* attempting to read and check FAT header */ cfbf_header header; fat_chain *chain = NULL; int i_fat; int ret; unsigned char *p_fat = header.fat_sector_map; if (xls_fread (sizeof (header), &header, 1, 512, workbook->xls) != 512) { *err_code = FREEXL_CFBF_READ_ERROR; return NULL; } if (swap) { /* BIG endian arch: swap required */ swap16 (&(header.minor_version)); swap16 (&(header.major_version)); swap16 (&(header.byte_order)); swap16 (&(header.sector_shift)); swap16 (&(header.mini_sector_shift)); swap16 (&(header.reserved1)); swap32 (&(header.reserved2)); swap32 (&(header.directory_sectors)); swap32 (&(header.fat_sectors)); swap32 (&(header.directory_start)); swap32 (&(header.transaction_signature)); swap32 (&(header.mini_cutoff)); swap32 (&(header.mini_fat_start)); swap32 (&(header.mini_fat_sectors)); swap32 (&(header.difat_start)); swap32 (&(header.difat_sectors)); } if (header.signature[0] == 0xd0 && header.signature[1] == 0xcf && header.signature[2] == 0x11 && header.signature[3] == 0xe0 && header.signature[4] == 0xa1 && header.signature[5] == 0xb1 && header.signature[6] == 0x1a && header.signature[7] == 0xe1) ; /* magic signature OK */ else { *err_code = FREEXL_CFBF_INVALID_SIGNATURE; return NULL; } if (header.sector_shift.value == 9 || header.sector_shift.value == 12) ; /* ok, valid sector size */ else { *err_code = FREEXL_CFBF_INVALID_SECTOR_SIZE; return NULL; } workbook->cfbf_version = header.major_version.value; if (header.sector_shift.value == 9) workbook->cfbf_sector_size = 512; if (header.sector_shift.value == 12) workbook->cfbf_sector_size = 4096; chain = alloc_fat_chain (swap, header.sector_shift.value, header.directory_start.value); if (!chain) { *err_code = FREEXL_INSUFFICIENT_MEMORY; return NULL; } for (i_fat = 0; i_fat < 109; i_fat++) { /* reading FAT sectors */ biff_word32 fat; memcpy (fat.bytes, p_fat, 4); p_fat += 4; if (swap) swap32 (&fat); if (fat.value == 0xFFFFFFFF) continue; /* unused sector */ ret = read_fat_sector (workbook->xls, chain, fat.value); if (ret != FREEXL_OK) { *err_code = ret; destroy_fat_chain (chain); return NULL; } } if (header.difat_sectors.value > 0) { /* reading DoubleIndirect [DIFAT] sectors */ if (!read_difat_sectors (workbook->xls, chain, header.difat_start.value, header.difat_sectors.value)) { *err_code = FREEXL_CFBF_READ_ERROR; destroy_fat_chain (chain); return NULL; } } if (header.mini_fat_sectors.value > 0) { /* there is a miniFAT requiring to be supported */ chain->miniCutOff = header.mini_cutoff.value; if (!read_miniFAT_sectors (workbook->xls, chain, header.mini_fat_start.value, header.mini_fat_sectors.value)) { *err_code = FREEXL_CFBF_READ_ERROR; destroy_fat_chain (chain); return NULL; } } ret = build_fat_arrays (chain); if (ret != FREEXL_OK) { *err_code = ret; destroy_fat_chain (chain); return NULL; } *err_code = FREEXL_OK; return chain; } static int read_mini_stream (biff_workbook * workbook, int *errcode) { /* loading in memory the whole ministream */ unsigned int len = 0; unsigned int sector = workbook->fat->miniFAT_start; unsigned char buf[4096]; unsigned char *miniStream; fat_entry *entry; int eof = 0; if (workbook->fat->miniStream) free (workbook->fat->miniStream); workbook->fat->miniStream = NULL; miniStream = malloc (workbook->fat->miniFAT_len); if (miniStream == NULL) { *errcode = FREEXL_INSUFFICIENT_MEMORY; return 0; } while (len < workbook->fat->miniFAT_len) { /* reading one sector */ unsigned int size; long where = (sector + 1) * workbook->fat->sector_size; if (fseek (workbook->xls, where, SEEK_SET) != 0) { *errcode = FREEXL_CFBF_SEEK_ERROR; return 0; } if (xls_fread (sizeof (buf), buf, 1, workbook->fat->sector_size, workbook->xls) != workbook->fat->sector_size) { *errcode = FREEXL_CFBF_READ_ERROR; return 0; } size = workbook->fat->sector_size; if ((len + size) > workbook->fat->miniFAT_len) size = workbook->fat->miniFAT_len - len; memcpy (miniStream + len, buf, size); len += size; entry = get_fat_entry (workbook->fat, sector); if (entry == NULL) { *errcode = FREEXL_CFBF_ILLEGAL_FAT_ENTRY; return 0; } if (entry->next_sector == 0xfffffffe) { /* EOF: end-of-chain marker found */ eof = 1; break; } sector = entry->next_sector; } if (!eof || len != workbook->fat->miniFAT_len) { free (miniStream); *errcode = FREEXL_INVALID_MINI_STREAM; return 0; } workbook->fat->miniStream = miniStream; return 1; } static const char * find_in_SST (biff_workbook * workbook, unsigned int string_index) { /* retieving a string from the SST */ if (!workbook) return NULL; if (workbook->shared_strings.utf8_strings == NULL) return NULL; if (string_index < workbook->shared_strings.string_count) return *(workbook->shared_strings.utf8_strings + string_index); return NULL; } static int parse_SST (biff_workbook * workbook, int swap) { /* attempting to parse a Shared String Table */ unsigned int i_string; unsigned char *p_string; biff_word32 n_strings; unsigned int required; unsigned int available; if (workbook->shared_strings.string_count == 0 && workbook->shared_strings.utf8_strings == NULL) { /* main SST record [initializing] */ memcpy (n_strings.bytes, workbook->record + 4, 4); if (swap) swap32 (&n_strings); p_string = workbook->record + 8; workbook->shared_strings.string_count = n_strings.value; if (workbook->shared_strings.string_count > 1024 * 1024) { /* unexpected huge count ... cowardly giving up ... */ return FREEXL_INSUFFICIENT_MEMORY; } workbook->shared_strings.utf8_strings = malloc (sizeof (char **) * workbook->shared_strings.string_count); if (workbook->shared_strings.utf8_strings == NULL) return FREEXL_INSUFFICIENT_MEMORY; for (i_string = 0; i_string < workbook->shared_strings.string_count; i_string++) *(workbook->shared_strings.utf8_strings + i_string) = NULL; } else { /* SST-CONTINUE */ char *utf8_string; unsigned char mask; unsigned int len; int utf16 = 0; int err; unsigned int next_skip; unsigned int utf16_len = workbook->shared_strings.current_utf16_len; unsigned int utf16_off = workbook->shared_strings.current_utf16_off; unsigned int utf16_skip = workbook->shared_strings.current_utf16_skip; char *utf16_buf = workbook->shared_strings.current_utf16_buf; p_string = workbook->record; if (workbook->shared_strings.current_utf16_len > 0) { /* completing the last suspended string [split between records] */ mask = *p_string; p_string++; len = utf16_len - utf16_off; if ((mask & 0x01) == 0x01) utf16 = 1; if (!utf16) { /* 'stripped' UTF-16: requires padding */ unsigned int i; for (i = 0; i < len; i++) { if (p_string - workbook->record >= workbook->record_size) { /* buffer overflow: it's a preasumable crafted file intended to crash FreeXL */ return FREEXL_CRAFTED_FILE; } *(utf16_buf + (utf16_off * 2) + (i * 2)) = *p_string; p_string++; *(utf16_buf + (utf16_off * 2) + ((i * 2) + 1)) = 0x00; } } else { /* already encoded as UTF-16 */ memcpy (utf16_buf + (utf16_off * 2), p_string, len * 2); p_string += len * 2; } /* skipping extra data (if any) */ p_string += utf16_skip; if (p_string - workbook->record >= workbook->record_size) next_skip = (p_string - workbook->record) - workbook->record_size; else next_skip = 0; /* converting text to UTF-8 */ utf8_string = convert_to_utf8 (workbook->utf16_converter, utf16_buf, utf16_len * 2, &err); if (err) return FREEXL_INVALID_CHARACTER; *(workbook->shared_strings.utf8_strings + workbook->shared_strings.current_index) = utf8_string; free (workbook->shared_strings.current_utf16_buf); workbook->shared_strings.current_utf16_buf = NULL; workbook->shared_strings.current_utf16_len = 0; workbook->shared_strings.current_utf16_off = 0; workbook->shared_strings.current_utf16_skip = next_skip; workbook->shared_strings.next_utf16_skip = 0; workbook->shared_strings.current_index += 1; } } for (i_string = workbook->shared_strings.current_index; i_string < workbook->shared_strings.string_count; i_string++) { /* parsing strings */ char *utf8_string; unsigned int len; int utf16 = 0; biff_word16 word16; unsigned int start_offset; unsigned int extra_skip; unsigned int next_skip; if ((unsigned int) (p_string - workbook->record) >= workbook->record_size) { /* end of record */ return FREEXL_OK; } /* skipping extra bytes belonging to the previous record */ p_string += workbook->shared_strings.next_utf16_skip; memcpy (word16.bytes, p_string, 2); if (swap) swap16 (&word16); len = word16.value; p_string += 2; get_unicode_params (p_string, swap, &start_offset, &utf16, &extra_skip); p_string += start_offset; /* initializing the current UTF-16 variables */ workbook->shared_strings.current_utf16_skip = extra_skip; workbook->shared_strings.next_utf16_skip = 0; workbook->shared_strings.current_utf16_off = 0; workbook->shared_strings.current_utf16_len = len; workbook->shared_strings.current_utf16_buf = malloc (workbook->shared_strings.current_utf16_len * 2); if (!utf16) required = len; else required = len * 2; available = workbook->record_size - (p_string - workbook->record); if (required > available) { /* not enough input bytes: data spanning on next CONTINUE record */ char *utf16_buf = workbook->shared_strings.current_utf16_buf; if (!utf16) { /* 'stripped' UTF-16: requires padding */ unsigned int i; for (i = 0; i < available; i++) { *(utf16_buf + (i * 2)) = *p_string; p_string++; *(utf16_buf + ((i * 2) + 1)) = 0x00; } workbook->shared_strings.current_utf16_off = available; } else { /* already encoded as UTF-16 */ memcpy (utf16_buf, p_string, available); workbook->shared_strings.current_utf16_off = available / 2; } return FREEXL_OK; } if (len <= 0) { /* zero length - it's a preasumable crafted file intended to crash FreeXL */ return FREEXL_CRAFTED_FILE; } if (!parse_unicode_string (workbook->utf16_converter, len, utf16, p_string, &utf8_string)) return FREEXL_INVALID_CHARACTER; /* skipping string data */ if (!utf16) p_string += len; else p_string += len * 2; /* skipping extra data (if any) */ p_string += workbook->shared_strings.current_utf16_skip; if (p_string - workbook->record >= workbook->record_size) next_skip = (p_string - workbook->record) - workbook->record_size; else next_skip = 0; *(workbook->shared_strings.utf8_strings + i_string) = utf8_string; free (workbook->shared_strings.current_utf16_buf); workbook->shared_strings.current_utf16_buf = NULL; workbook->shared_strings.current_utf16_len = 0; workbook->shared_strings.current_utf16_off = 0; workbook->shared_strings.current_utf16_skip = 0; workbook->shared_strings.next_utf16_skip = next_skip; workbook->shared_strings.current_index = i_string + 1; } return FREEXL_OK; } static void check_format (char *utf8_string, int *is_date, int *is_datetime, int *is_time) { /* attempting to identify DATE, DATETIME or TIME formats */ int y = 0; int m = 0; int d = 0; int h = 0; int s = 0; unsigned int i; for (i = 0; i < strlen (utf8_string); i++) { switch (utf8_string[i]) { case 'Y': case 'y': y++; break; case 'M': case 'm': m++; break; case 'D': case 'd': d++; break; case 'H': case 'h': h++; break; case 'S': case 's': s++; break; } } *is_date = 0; *is_datetime = 0; *is_time = 0; if (y && m && d && h) { *is_datetime = 1; return; } if ((y && m) || (m && d)) { *is_date = 1; return; } if ((h && m) || (m && s)) *is_time = 1; } static void add_format_to_workbook (biff_workbook * workbook, unsigned short format_index, int is_date, int is_datetime, int is_time) { /* adding a new DATE/DATETIME/TIME format to the Workbook */ if (workbook->max_format_index < BIFF_MAX_FORMAT) { biff_format *format = workbook->format_array + workbook->max_format_index; format->format_index = format_index; format->is_date = is_date; format->is_datetime = is_datetime; format->is_time = is_time; workbook->max_format_index += 1; } } static void add_xf_to_workbook (biff_workbook * workbook, unsigned short format_index) { /* adding a new XF to the Workbook */ if (workbook->biff_xf_next_index < BIFF_MAX_XF) workbook->biff_xf_array[workbook->biff_xf_next_index] = format_index; workbook->biff_xf_next_index += 1; } static int legacy_emergency_dimension (biff_workbook * workbook, int swap, unsigned short type, unsigned short size, unsigned int *rows, unsigned short *columns) { /* performing a preliminary pass so to get DIMENSION */ biff_word16 record_type; biff_word16 record_size; unsigned char buf[16]; int first = 1; long where; long restart_off = ftell (workbook->xls); record_type.value = type; record_size.value = size; while (1) { /* looping on BIFF records */ if (!first) { if (xls_fread (sizeof (buf), &buf, 1, 4, workbook->xls) != 4) return 0; memcpy (record_type.bytes, buf, 2); memcpy (record_size.bytes, buf + 2, 2); } else first = 0; if (swap) { /* BIG endian arch: swap required */ swap16 (&record_type); swap16 (&record_size); } if (record_type.value == BIFF_EOF) { /* EOF marker found: the current stream is terminated */ break; } if (record_type.value == BIFF_INTEGER_2 && workbook->biff_version == FREEXL_BIFF_VER_2) { /* INTEGER marker found */ biff_word16 word16; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); if (word16.value > *rows) *rows = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); if (word16.value > *columns) *columns = word16.value; continue; } if ((record_type.value == BIFF_NUMBER_2 && workbook->biff_version == FREEXL_BIFF_VER_2) || (record_type.value == BIFF_NUMBER && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4))) { /* NUMBER marker found */ biff_word16 word16; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); if (word16.value > *rows) *rows = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); if (word16.value > *columns) *columns = word16.value; continue; } if ((record_type.value == BIFF_BOOLERR_2 && workbook->biff_version == FREEXL_BIFF_VER_2) || (record_type.value == BIFF_BOOLERR && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4))) { /* BOOLERR marker found */ biff_word16 word16; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); if (word16.value > *rows) *rows = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); if (word16.value > *columns) *columns = word16.value; continue; } if (record_type.value == BIFF_RK && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4)) { /* RK marker found */ biff_word16 word16; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); if (word16.value > *rows) *rows = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); if (word16.value > *columns) *columns = word16.value; continue; } if ((record_type.value == BIFF_LABEL_2 && workbook->biff_version == FREEXL_BIFF_VER_2) || (record_type.value == BIFF_LABEL && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4))) { /* LABEL marker found */ biff_word16 word16; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); if (word16.value > *rows) *rows = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); if (word16.value > *columns) *columns = word16.value; continue; } /* skipping to next record */ where = record_size.value; if (fseek (workbook->xls, where, SEEK_CUR) != 0) return 0; } /* repositioning the stream offset */ if (fseek (workbook->xls, restart_off, SEEK_SET) != 0) return 0; return 1; } static int check_legacy_undeclared_dimension (biff_workbook * workbook, int swap, unsigned short type, unsigned short size) { /* checking (and eventually saning) missing DIMENSION */ if (workbook->active_sheet == NULL) { char *utf8_name; unsigned int rows = 0; unsigned short columns = 0; if (!legacy_emergency_dimension (workbook, swap, type, size, &rows, &columns)) return 0; /* initializing the worksheet */ utf8_name = malloc (10); strcpy (utf8_name, "Worksheet"); if (!add_sheet_to_workbook (workbook, 0, 0, 0, utf8_name)) return 0; workbook->active_sheet = workbook->first_sheet; if (workbook->active_sheet != NULL) { /* setting Sheet dimensions */ int ret; workbook->active_sheet->rows = rows + 1; workbook->active_sheet->columns = columns + 1; ret = allocate_cells (workbook); if (ret != FREEXL_OK) return 0; } } return 1; } static int read_legacy_biff (biff_workbook * workbook, int swap) { /* * attempting to read legacy BIFF (versions 2,3,4) * no CFBF: simply a BIFF stream (one only Worksheet) */ long where; biff_word16 word16; biff_word16 record_type; biff_word16 record_size; unsigned char buf[16]; unsigned short format_index = 0; /* attempting to get the main BOF */ rewind (workbook->xls); if (xls_fread (sizeof (buf), &buf, 1, 4, workbook->xls) != 4) return 0; memcpy (record_type.bytes, buf, 2); memcpy (record_size.bytes, buf + 2, 2); if (swap) { /* BIG endian arch: swap required */ swap16 (&record_type); swap16 (&record_size); } switch (record_type.value) { case BIFF_BOF_2: /* BIFF2 */ workbook->biff_version = FREEXL_BIFF_VER_2; workbook->ok_bof = 1; break; case BIFF_BOF_3: /* BIFF3 */ workbook->biff_version = FREEXL_BIFF_VER_3; workbook->ok_bof = 1; break; case BIFF_BOF_4: /* BIFF4 */ workbook->biff_version = FREEXL_BIFF_VER_4; workbook->ok_bof = 1; break; }; if (workbook->ok_bof != 1) return 0; where = record_size.value; if (fseek (workbook->xls, where, SEEK_CUR) != 0) return 0; while (1) { /* looping on BIFF records */ if (xls_fread (sizeof (buf), &buf, 1, 4, workbook->xls) != 4) return 0; memcpy (record_type.bytes, buf, 2); memcpy (record_size.bytes, buf + 2, 2); if (swap) { /* BIG endian arch: swap required */ swap16 (&record_type); swap16 (&record_size); } if (record_type.value == BIFF_SHEETSOFFSET) { /* unsupported BIFF4W format */ return 0; } if (record_type.value == BIFF_EOF) { /* EOF marker found: the current stream is terminated */ return 1; } if (record_type.value == BIFF_CODEPAGE) { /* CODEPAGE marker found */ if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); workbook->biff_code_page = word16.value; if (workbook->ok_bof == 1) workbook->biff_book_code_page = word16.value; if (!biff_set_utf8_converter (workbook)) return 0; continue; } if (record_type.value == BIFF_DATEMODE) { /* DATEMODE marker found */ if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); workbook->biff_date_mode = word16.value; continue; } if (record_type.value == BIFF_FILEPASS) { /* PASSWORD marker found */ workbook->biff_obfuscated = 1; goto skip_to_next; } if ((record_type.value == BIFF_FORMAT_2 && (workbook->biff_version == FREEXL_BIFF_VER_2 || workbook->biff_version == FREEXL_BIFF_VER_3)) || (record_type.value == BIFF_FORMAT && (workbook->biff_version == FREEXL_BIFF_VER_4))) { /* FORMAT marker found */ biff_word16 word16; char *string; char *utf8_string; unsigned int len; int err; unsigned char *p_string; int is_date = 0; int is_datetime = 0; int is_time = 0; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; if (workbook->biff_version == FREEXL_BIFF_VER_2 || workbook->biff_version == FREEXL_BIFF_VER_3) { len = *workbook->record; p_string = workbook->record + 1; string = malloc (len); memcpy (string, p_string, len); /* converting text to UTF-8 */ utf8_string = convert_to_utf8 (workbook->utf8_converter, string, len, &err); free (string); if (err) return 0; check_format (utf8_string, &is_date, &is_datetime, &is_time); free (utf8_string); if (is_date || is_datetime || is_time) add_format_to_workbook (workbook, format_index, is_date, is_datetime, is_time); } else { memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); len = word16.value; p_string = workbook->record + 4; len = *(workbook->record + 2); p_string = workbook->record + 3; string = malloc (len); memcpy (string, p_string, len); /* converting text to UTF-8 */ utf8_string = convert_to_utf8 (workbook->utf8_converter, string, len, &err); free (string); if (err) return 0; check_format (utf8_string, &is_date, &is_datetime, &is_time); free (utf8_string); if (is_date || is_datetime || is_time) add_format_to_workbook (workbook, format_index, is_date, is_datetime, is_time); } format_index++; continue; } if ((record_type.value == BIFF_XF_2 && workbook->biff_version == FREEXL_BIFF_VER_2) || (record_type.value == BIFF_XF_3 && workbook->biff_version == FREEXL_BIFF_VER_3) || (record_type.value == BIFF_XF_4 && workbook->biff_version == FREEXL_BIFF_VER_4)) { /* XF [Extended Format] marker found */ unsigned char format; unsigned short s_format = 0; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; switch (workbook->biff_version) { case FREEXL_BIFF_VER_2: format = *(workbook->record + 2); format &= 0x3F; s_format = format; break; case FREEXL_BIFF_VER_3: case FREEXL_BIFF_VER_4: format = *(workbook->record + 1); s_format = format; break; }; add_xf_to_workbook (workbook, s_format); continue; } if ((record_type.value == 0x0000 && workbook->biff_version == FREEXL_BIFF_VER_2) || (record_type.value == BIFF_DIMENSION && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4))) { /* DIMENSION marker found */ biff_word16 word16; unsigned int rows; unsigned short columns; char *utf8_name; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); rows = word16.value; memcpy (word16.bytes, workbook->record + 6, 2); if (swap) swap16 (&word16); columns = word16.value; utf8_name = malloc (10); strcpy (utf8_name, "Worksheet"); if (!add_sheet_to_workbook (workbook, 0, 0, 0, utf8_name)) return 0; workbook->active_sheet = workbook->first_sheet; if (workbook->active_sheet != NULL) { /* setting Sheet dimensions */ int ret; workbook->active_sheet->rows = rows; workbook->active_sheet->columns = columns; ret = allocate_cells (workbook); if (ret != FREEXL_OK) return 0; } continue; } if (record_type.value == BIFF_INTEGER_2 && workbook->biff_version == FREEXL_BIFF_VER_2) { /* INTEGER marker found */ biff_word16 word16; unsigned short row; unsigned short col; unsigned short xf_index = 0; unsigned short num; int is_date; int is_datetime; int is_time; int ret; unsigned char format; if (!check_legacy_undeclared_dimension (workbook, swap, record_type.value, record_size.value)) return 0; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; format = *(workbook->record + 4); format &= 0x3F; xf_index = format; memcpy (word16.bytes, workbook->record + 7, 2); if (swap) swap16 (&word16); num = word16.value; if (!check_xf_datetime (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_int_value (workbook, row, col, workbook->biff_date_mode, num); else if (is_datetime) ret = set_datetime_int_value (workbook, row, col, workbook->biff_date_mode, num); else if (is_time) ret = set_time_double_value (workbook, row, col, 0.0); else ret = set_int_value (workbook, row, col, num); if (ret != FREEXL_OK) return 0; continue; } if ((record_type.value == BIFF_NUMBER_2 && workbook->biff_version == FREEXL_BIFF_VER_2) || (record_type.value == BIFF_NUMBER && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4))) { /* NUMBER marker found */ biff_word16 word16; biff_float word_float; unsigned short row; unsigned short col; unsigned short xf_index = 0; double num; int is_date; int is_datetime; int is_time; int ret; if (!check_legacy_undeclared_dimension (workbook, swap, record_type.value, record_size.value)) return 0; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (workbook->biff_version == FREEXL_BIFF_VER_2) { /* BIFF2 */ unsigned char format = *(workbook->record + 4); format &= 0x3F; xf_index = format; memcpy (word_float.bytes, workbook->record + 7, 8); if (swap) swap_float (&word_float); num = word_float.value; } else { /* any other sebsequent version */ memcpy (word16.bytes, workbook->record + 4, 2); if (swap) swap16 (&word16); xf_index = word16.value; memcpy (word_float.bytes, workbook->record + 6, 8); if (swap) swap_float (&word_float); num = word_float.value; } if (!check_xf_datetime (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_double_value (workbook, row, col, workbook->biff_date_mode, num); else if (is_datetime) ret = set_datetime_double_value (workbook, row, col, workbook->biff_date_mode, num); else if (is_time) ret = set_time_double_value (workbook, row, col, num); else ret = set_double_value (workbook, row, col, num); if (ret != FREEXL_OK) return 0; continue; } if ((record_type.value == BIFF_BOOLERR_2 && workbook->biff_version == FREEXL_BIFF_VER_2) || (record_type.value == BIFF_BOOLERR && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4))) { /* BOOLERR marker found */ biff_word16 word16; unsigned short row; unsigned short col; unsigned char value; int ret; if (!check_legacy_undeclared_dimension (workbook, swap, record_type.value, record_size.value)) return 0; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (workbook->biff_version == FREEXL_BIFF_VER_2) { /* BIFF2 */ value = *(workbook->record + 7); } else { /* any other sebsequent version */ value = *(workbook->record + 6); } if (value != 0) value = 1; ret = set_int_value (workbook, row, col, value); if (ret != FREEXL_OK) return 0; continue; } if (record_type.value == BIFF_RK && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4)) { /* RK marker found */ biff_word16 word16; biff_word32 word32; unsigned short row; unsigned short col; unsigned short xf_index; int int_value; double dbl_value; int is_date; int is_datetime; int is_time; int ret; if (!check_legacy_undeclared_dimension (workbook, swap, record_type.value, record_size.value)) return 0; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; memcpy (word16.bytes, workbook->record + 4, 2); if (swap) swap16 (&word16); xf_index = word16.value; memcpy (word32.bytes, workbook->record + 6, 4); if (decode_rk_integer (word32.bytes, &int_value, swap)) { if (!check_xf_datetime (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_int_value (workbook, row, col, workbook->biff_date_mode, int_value); else if (is_datetime) ret = set_datetime_int_value (workbook, row, col, workbook->biff_date_mode, int_value); else if (is_time) ret = set_time_double_value (workbook, row, col, 0.0); else ret = set_int_value (workbook, row, col, int_value); if (ret != FREEXL_OK) return 0; } else if (decode_rk_float (word32.bytes, &dbl_value, swap)) { if (!check_xf_datetime (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_double_value (workbook, row, col, workbook->biff_date_mode, dbl_value); else if (is_datetime) ret = set_datetime_double_value (workbook, row, col, workbook->biff_date_mode, dbl_value); else if (is_time) ret = set_time_double_value (workbook, row, col, dbl_value); else ret = set_double_value (workbook, row, col, dbl_value); if (ret != FREEXL_OK) return 0; } else return 0; continue; } if ((record_type.value == BIFF_LABEL_2 && workbook->biff_version == FREEXL_BIFF_VER_2) || (record_type.value == BIFF_LABEL && (workbook->biff_version == FREEXL_BIFF_VER_3 || workbook->biff_version == FREEXL_BIFF_VER_4))) { /* LABEL marker found */ biff_word16 word16; char *string; char *utf8_string; unsigned int len; int err; unsigned short row; unsigned short col; unsigned char *p_string; int ret; if (!check_legacy_undeclared_dimension (workbook, swap, record_type.value, record_size.value)) return 0; if (xls_fread (sizeof (workbook->record), workbook->record, 1, record_size.value, workbook->xls) != record_size.value) return 0; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (workbook->biff_version == FREEXL_BIFF_VER_2) { len = *(workbook->record + 7); p_string = workbook->record + 8; } else { memcpy (word16.bytes, workbook->record + 6, 2); if (swap) swap16 (&word16); len = word16.value; p_string = workbook->record + 8; } string = malloc (len); memcpy (string, p_string, len); /* converting text to UTF-8 */ utf8_string = convert_to_utf8 (workbook->utf8_converter, string, len, &err); free (string); if (err) return 0; ret = set_text_value (workbook, row, col, utf8_string); if (ret != FREEXL_OK) return 0; continue; } /* skipping to next record */ skip_to_next: where = record_size.value; if (fseek (workbook->xls, where, SEEK_CUR) != 0) return 0; } /* saving the current record */ workbook->record_type = record_type.value; workbook->record_size = record_size.value; return 0; } static int check_already_done (biff_workbook * workbook) { /* checking if the currently active sheet has been already loaded */ if (workbook->active_sheet != NULL) { if (workbook->active_sheet->already_done) { /* already loaded */ return 1; } } return 0; } static int check_undeclared_dimension (biff_workbook * workbook, unsigned int row, unsigned short col) { /* checking if DIMENSION isn't yet set */ if (workbook->active_sheet != NULL) { if (workbook->active_sheet->valid_dimension == 0) { /* not yet set */ if (row > workbook->active_sheet->rows) workbook->active_sheet->rows = row; if (col > workbook->active_sheet->columns) workbook->active_sheet->columns = col; return 1; } } return 0; } static int parse_biff_record (biff_workbook * workbook, int swap) { /* * attempting to parse a BIFF record * please note well: BIFF5 and BIFF8 versions only * * oldest BIFF2, BIFF3 and BIFF4 are processed separatedly * by read_legacy_biff() function * */ biff_word16 word16; unsigned int base_offset = workbook->current_offset; workbook->current_offset += workbook->record_size + 4; if (workbook->record_type == BIFF_CONTINUE) { /* CONTINUE marker found: restoring the previous record type */ if (workbook->prev_record_type == BIFF_SST) { /* continuing: SST [Shared String Table] */ if (workbook->second_pass) return FREEXL_OK; return parse_SST (workbook, swap); } return FREEXL_OK; } workbook->prev_record_type = workbook->record_type; if (workbook->ok_bof == -1) { /* * the first record is expected to be of BOF type * and contains Version related information */ switch (workbook->record_type) { case BIFF_BOF: /* BIFF5 or BIFF8 */ memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); if (word16.value == 0x0500) workbook->biff_version = FREEXL_BIFF_VER_5; else if (word16.value == 0x0600) workbook->biff_version = FREEXL_BIFF_VER_8; else { /* unknown, probably wrong or corrupted */ workbook->ok_bof = 0; return FREEXL_BIFF_INVALID_BOF; } workbook->ok_bof = 1; break; default: workbook->ok_bof = 0; return FREEXL_BIFF_INVALID_BOF; }; if (workbook->biff_version == FREEXL_BIFF_VER_8) workbook->biff_max_record_size = 8224; else workbook->biff_max_record_size = 2080; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); workbook->biff_content_type = word16.value; workbook->biff_code_page = 0; return FREEXL_OK; } if (workbook->ok_bof == 0) { /* we are expecting to find some BOF record here (not the main one) */ switch (workbook->record_type) { case BIFF_BOF: /* BIFF5 or BIFF8 */ workbook->ok_bof = 1; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); workbook->biff_content_type = word16.value; workbook->biff_code_page = 0; break; default: workbook->ok_bof = 0; return FREEXL_BIFF_INVALID_BOF; }; select_active_sheet (workbook, base_offset); return FREEXL_OK; } if (workbook->record_type == BIFF_EOF) { /* EOF marker found: the current stream is terminated */ workbook->ok_bof = 0; workbook->biff_content_type = 0; workbook->biff_code_page = 0; return FREEXL_OK; } if (workbook->record_type == BIFF_SST) { /* SST [Shared String Table] marker found */ if (workbook->second_pass) return FREEXL_OK; return parse_SST (workbook, swap); } if (workbook->record_type == BIFF_CODEPAGE) { /* CODEPAGE marker found */ memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); workbook->biff_code_page = word16.value; if (workbook->ok_bof == 1) workbook->biff_book_code_page = word16.value; if (!biff_set_utf8_converter (workbook)) return FREEXL_UNSUPPORTED_CHARSET; return FREEXL_OK; } if (workbook->record_type == BIFF_DATEMODE) { /* DATEMODE marker found */ memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); workbook->biff_date_mode = word16.value; return FREEXL_OK; } if (workbook->record_type == BIFF_FILEPASS) { /* PASSWORD marker found */ workbook->biff_obfuscated = 1; return FREEXL_OK; } if (workbook->record_type == BIFF_SHEET) { /* SHEET marker found */ char *utf8_name; char name[4096]; int err; int len; biff_word32 offset; if (workbook->second_pass) { if (workbook->active_sheet == NULL) workbook->active_sheet = workbook->first_sheet; else workbook->active_sheet = workbook->active_sheet->next; return FREEXL_OK; } memcpy (offset.bytes, workbook->record, 4); if (swap) swap32 (&offset); len = workbook->record[6]; if (len <= 0) { /* zero length - it's a preasumable crafted file intended to crash FreeXL */ return FREEXL_CRAFTED_FILE; } if (workbook->biff_version == FREEXL_BIFF_VER_5) { /* BIFF5: codepage text */ memcpy (name, workbook->record + 7, len); utf8_name = convert_to_utf8 (workbook->utf8_converter, name, len, &err); if (err) return FREEXL_INVALID_CHARACTER; } else { /* BIFF8: Unicode text */ if (workbook->record[7] == 0x00) { /* 'stripped' UTF-16: requires padding */ int i; for (i = 0; i < len; i++) { name[i * 2] = workbook->record[8 + i]; name[(i * 2) + 1] = 0x00; } len *= 2; } else { /* already encoded as UTF-16 */ len *= 2; memcpy (name, workbook->record + 8, len); } utf8_name = convert_to_utf8 (workbook->utf16_converter, name, len, &err); if (err) return FREEXL_INVALID_CHARACTER; } if (!add_sheet_to_workbook (workbook, offset.value, workbook->record[4], workbook->record[5], utf8_name)) return FREEXL_INSUFFICIENT_MEMORY; return FREEXL_OK; } if (workbook->record_type == BIFF_DIMENSION && (workbook->biff_version == FREEXL_BIFF_VER_5 || workbook->biff_version == FREEXL_BIFF_VER_8)) { /* DIMENSION marker found */ biff_word16 word16; biff_word32 word32; unsigned int rows; unsigned short columns; if (workbook->second_pass) return FREEXL_OK; if (workbook->biff_version == FREEXL_BIFF_VER_8) { /* BIFF8: 32-bit row index */ memcpy (word32.bytes, workbook->record + 4, 4); if (swap) swap32 (&word32); rows = word32.value; memcpy (word16.bytes, workbook->record + 10, 2); if (swap) swap16 (&word16); columns = word16.value; } else { /* any previous version: 16-bit row index */ memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); rows = word16.value; memcpy (word16.bytes, workbook->record + 6, 2); if (swap) swap16 (&word16); columns = word16.value; } if (workbook->active_sheet != NULL) { /* setting Sheet dimensions */ int ret; workbook->active_sheet->rows = rows; workbook->active_sheet->columns = columns; ret = allocate_cells (workbook); if (ret != FREEXL_OK) return ret; workbook->active_sheet->valid_dimension = 1; } return FREEXL_OK; } if (workbook->magic1 == FREEXL_MAGIC_INFO) { /* when open in INFO mode we can safely ignore any other */ return FREEXL_OK; } if (workbook->record_type == BIFF_FORMAT && (workbook->biff_version == FREEXL_BIFF_VER_5 || workbook->biff_version == FREEXL_BIFF_VER_8)) { /* FORMAT marker found */ biff_word16 word16; char *string; char *utf8_string; unsigned int len; int err; unsigned short format_index; unsigned char *p_string; int is_date = 0; int is_datetime = 0; int is_time = 0; if (workbook->second_pass) return FREEXL_OK; if (workbook->biff_version == FREEXL_BIFF_VER_5) { /* CODEPAGE string */ memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); format_index = word16.value; len = *(workbook->record + 3); p_string = workbook->record + 3; string = malloc (len); memcpy (string, p_string, len); /* converting text to UTF-8 */ utf8_string = convert_to_utf8 (workbook->utf8_converter, string, len, &err); free (string); if (err) return FREEXL_INVALID_CHARACTER; check_format (utf8_string, &is_date, &is_datetime, &is_time); free (utf8_string); if (is_date || is_datetime || is_time) add_format_to_workbook (workbook, format_index, is_date, is_datetime, is_time); } if (workbook->biff_version == FREEXL_BIFF_VER_8) { /* please note: this always is UTF-16 */ int utf16 = 0; unsigned int start_offset; unsigned int extra_skip; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); format_index = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); len = word16.value; p_string = workbook->record + 4; get_unicode_params (p_string, swap, &start_offset, &utf16, &extra_skip); p_string += start_offset; if (len <= 0) { /* zero length - it's a preasumable crafted file intended to crash FreeXL */ return FREEXL_CRAFTED_FILE; } if (!parse_unicode_string (workbook->utf16_converter, len, utf16, p_string, &utf8_string)) return FREEXL_INVALID_CHARACTER; check_format (utf8_string, &is_date, &is_datetime, &is_time); free (utf8_string); if (is_date || is_datetime || is_time) add_format_to_workbook (workbook, format_index, is_date, is_datetime, is_time); } return FREEXL_OK; } if (workbook->record_type == BIFF_XF && (workbook->biff_version == FREEXL_BIFF_VER_5 || workbook->biff_version == FREEXL_BIFF_VER_8)) { /* XF [Extended Format] marker found */ unsigned short s_format = 0; biff_word16 word16; if (workbook->second_pass) return FREEXL_OK; switch (workbook->biff_version) { case FREEXL_BIFF_VER_5: case FREEXL_BIFF_VER_8: memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); s_format = word16.value; break; }; add_xf_to_workbook (workbook, s_format); return FREEXL_OK; } if ((workbook->record_type == BIFF_NUMBER && (workbook->biff_version == FREEXL_BIFF_VER_5 || workbook->biff_version == FREEXL_BIFF_VER_8))) { /* NUMBER marker found */ biff_word16 word16; biff_float word_float; unsigned short row; unsigned short col; unsigned short xf_index = 0; double num; int is_date; int is_datetime; int is_time; int ret; if (check_already_done (workbook)) return FREEXL_OK; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (check_undeclared_dimension (workbook, row, col)) return FREEXL_OK; memcpy (word16.bytes, workbook->record + 4, 2); if (swap) swap16 (&word16); xf_index = word16.value; memcpy (word_float.bytes, workbook->record + 6, 8); if (swap) swap_float (&word_float); num = word_float.value; if (!check_xf_datetime_58 (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_double_value (workbook, row, col, workbook->biff_date_mode, num); else if (is_datetime) ret = set_datetime_double_value (workbook, row, col, workbook->biff_date_mode, num); else if (is_time) ret = set_time_double_value (workbook, row, col, num); else ret = set_double_value (workbook, row, col, num); if (ret != FREEXL_OK) return ret; return FREEXL_OK; } if ((workbook->record_type == BIFF_BOOLERR && (workbook->biff_version == FREEXL_BIFF_VER_5 || workbook->biff_version == FREEXL_BIFF_VER_8))) { /* BOOLERR marker found */ biff_word16 word16; unsigned short row; unsigned short col; unsigned char value; int ret; if (check_already_done (workbook)) return FREEXL_OK; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (check_undeclared_dimension (workbook, row, col)) return FREEXL_OK; value = *(workbook->record + 6); if (value != 0) value = 1; ret = set_int_value (workbook, row, col, value); if (ret != FREEXL_OK) return ret; return FREEXL_OK; } if (workbook->record_type == BIFF_RK && (workbook->biff_version == FREEXL_BIFF_VER_5 || workbook->biff_version == FREEXL_BIFF_VER_8)) { /* RK marker found */ biff_word16 word16; biff_word32 word32; unsigned short row; unsigned short col; unsigned short xf_index; int int_value; double dbl_value; int is_date; int is_datetime; int is_time; int ret; if (check_already_done (workbook)) return FREEXL_OK; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (check_undeclared_dimension (workbook, row, col)) return FREEXL_OK; memcpy (word16.bytes, workbook->record + 4, 2); if (swap) swap16 (&word16); xf_index = word16.value; memcpy (word32.bytes, workbook->record + 6, 4); if (decode_rk_integer (word32.bytes, &int_value, swap)) { if (!check_xf_datetime_58 (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_int_value (workbook, row, col, workbook->biff_date_mode, int_value); else if (is_datetime) ret = set_datetime_int_value (workbook, row, col, workbook->biff_date_mode, int_value); else if (is_time) ret = set_time_double_value (workbook, row, col, 0.0); else ret = set_int_value (workbook, row, col, int_value); if (ret != FREEXL_OK) return ret; } else if (decode_rk_float (word32.bytes, &dbl_value, swap)) { if (!check_xf_datetime_58 (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_double_value (workbook, row, col, workbook->biff_date_mode, dbl_value); else if (is_datetime) ret = set_datetime_double_value (workbook, row, col, workbook->biff_date_mode, dbl_value); else if (is_time) ret = set_time_double_value (workbook, row, col, dbl_value); else ret = set_double_value (workbook, row, col, dbl_value); if (ret != FREEXL_OK) return ret; } else return FREEXL_ILLEGAL_RK_VALUE; return FREEXL_OK; } if (workbook->record_type == BIFF_MULRK && (workbook->biff_version == FREEXL_BIFF_VER_5 || workbook->biff_version == FREEXL_BIFF_VER_8)) { /* MULRK marker found */ biff_word16 word16; biff_word32 word32; unsigned short row; unsigned short col; unsigned short xf_index; unsigned int off = 4; int int_value; double dbl_value; int is_date; int is_datetime; int is_time; int ret; if (check_already_done (workbook)) return FREEXL_OK; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (check_undeclared_dimension (workbook, row, col)) return FREEXL_OK; while ((off + 6) < workbook->record_size) { /* fetching one cell value */ memcpy (word16.bytes, workbook->record + off, 2); if (swap) swap16 (&word16); xf_index = word16.value; memcpy (word32.bytes, workbook->record + off + 2, 4); if (decode_rk_integer (word32.bytes, &int_value, swap)) { if (!check_xf_datetime_58 (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_int_value (workbook, row, col, workbook->biff_date_mode, int_value); else if (is_datetime) ret = set_datetime_int_value (workbook, row, col, workbook->biff_date_mode, int_value); else if (is_time) ret = set_time_double_value (workbook, row, col, 0.0); else ret = set_int_value (workbook, row, col, int_value); if (ret != FREEXL_OK) return ret; } else if (decode_rk_float (word32.bytes, &dbl_value, swap)) { if (!check_xf_datetime_58 (workbook, xf_index, &is_date, &is_datetime, &is_time)) { is_date = 0; is_datetime = 0; is_time = 0; } if (is_date) ret = set_date_double_value (workbook, row, col, workbook->biff_date_mode, dbl_value); else if (is_datetime) ret = set_datetime_double_value (workbook, row, col, workbook->biff_date_mode, dbl_value); else if (is_time) ret = set_time_double_value (workbook, row, col, dbl_value); else ret = set_double_value (workbook, row, col, dbl_value); if (ret != FREEXL_OK) return ret; } else return FREEXL_ILLEGAL_MULRK_VALUE; off += 6; col++; } return FREEXL_OK; } if (workbook->record_type == BIFF_LABEL && (workbook->biff_version == FREEXL_BIFF_VER_5 || workbook->biff_version == FREEXL_BIFF_VER_8)) { /* LABEL marker found */ biff_word16 word16; char *string; char *utf8_string; unsigned int len; int err; unsigned short row; unsigned short col; unsigned char *p_string; int ret; if (check_already_done (workbook)) return FREEXL_OK; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (check_undeclared_dimension (workbook, row, col)) return FREEXL_OK; memcpy (word16.bytes, workbook->record + 6, 2); if (swap) swap16 (&word16); len = word16.value; p_string = workbook->record + 8; if (workbook->biff_version == FREEXL_BIFF_VER_5) { /* CODEPAGE string */ string = malloc (len); memcpy (string, p_string, len); /* converting text to UTF-8 */ utf8_string = convert_to_utf8 (workbook->utf8_converter, string, len, &err); free (string); if (err) return FREEXL_INVALID_CHARACTER; } else { /* please note: this always is UTF-16 [BIFF8] */ int utf16 = 0; unsigned int start_offset; unsigned int extra_skip; get_unicode_params (p_string, swap, &start_offset, &utf16, &extra_skip); p_string += start_offset; if (len <= 0) { /* zero length - it's a preasumable crafted file intended to crash FreeXL */ return FREEXL_CRAFTED_FILE; } if (!parse_unicode_string (workbook->utf16_converter, len, utf16, p_string, &utf8_string)) return FREEXL_INVALID_CHARACTER; } ret = set_text_value (workbook, row, col, utf8_string); if (ret != FREEXL_OK) return ret; return FREEXL_OK; } if (workbook->record_type == BIFF_LABEL_SST && workbook->biff_version == FREEXL_BIFF_VER_8) { /* LABELSST marker found */ biff_word16 word16; biff_word32 word32; unsigned short row; unsigned short col; unsigned int string_index; const char *utf8_string; int ret; if (check_already_done (workbook)) return FREEXL_OK; memcpy (word16.bytes, workbook->record, 2); if (swap) swap16 (&word16); row = word16.value; memcpy (word16.bytes, workbook->record + 2, 2); if (swap) swap16 (&word16); col = word16.value; if (check_undeclared_dimension (workbook, row, col)) return FREEXL_OK; memcpy (word32.bytes, workbook->record + 6, 4); if (swap) swap32 (&word32); string_index = word32.value; utf8_string = find_in_SST (workbook, string_index); if (!utf8_string) return FREEXL_BIFF_ILLEGAL_SST_INDEX; ret = set_sst_value (workbook, row, col, utf8_string); if (ret != FREEXL_OK) return ret; return FREEXL_OK; } return FREEXL_OK; } static int read_cfbf_sector (biff_workbook * workbook, unsigned char *buf) { /* attempting to read a physical sector from the CFBF stream */ long where = (workbook->current_sector + 1) * workbook->fat->sector_size; if (fseek (workbook->xls, where, SEEK_SET) != 0) return FREEXL_CFBF_SEEK_ERROR; if (xls_fread (sizeof (biff_workbook), buf, 1, workbook->fat->sector_size, workbook->xls) != workbook->fat->sector_size) return FREEXL_CFBF_READ_ERROR; return FREEXL_OK; } static int read_cfbf_next_sector (biff_workbook * workbook, int *errcode) { /* attempting to read the next sector from the CFBF stream */ int ret; fat_entry *entry = get_fat_entry (workbook->fat, workbook->current_sector); if (entry == NULL) { *errcode = FREEXL_CFBF_ILLEGAL_FAT_ENTRY; return 0; } if (entry->next_sector == 0xfffffffe) { /* EOF: end-of-chain marker found */ *errcode = FREEXL_OK; return -1; } workbook->current_sector = entry->next_sector; if (workbook->sector_end > workbook->fat->sector_size) { /* shifting back the current sector buffer */ memcpy (workbook->sector_buf, workbook->sector_buf + workbook->fat->sector_size, workbook->fat->sector_size); workbook->p_in -= workbook->fat->sector_size; } /* reading into the second half of the sector buffer */ ret = read_cfbf_sector (workbook, workbook->sector_buf + workbook->fat->sector_size); if (ret != FREEXL_OK) { *errcode = ret; return 0; } workbook->bytes_read += workbook->fat->sector_size; if (workbook->bytes_read > workbook->size) { /* incomplete last sector */ workbook->sector_end = (workbook->fat->sector_size * 2) - (workbook->bytes_read - workbook->size); } else workbook->sector_end = (workbook->fat->sector_size * 2); *errcode = FREEXL_OK; return 1; } static int read_biff_next_record (biff_workbook * workbook, int swap, int *errcode) { /* * attempting to read the next BIFF record * from the Workbook stream */ biff_word16 record_type; biff_word16 record_size; int ret; if (workbook->sector_ready == 0) { /* first access: loading the first stream sector */ ret = read_cfbf_sector (workbook, workbook->sector_buf); if (ret != FREEXL_OK) { *errcode = ret; return 0; } workbook->current_sector = workbook->start_sector; workbook->bytes_read += workbook->fat->sector_size; if (workbook->bytes_read > workbook->size) { /* incomplete last sector */ workbook->sector_end = workbook->fat->sector_size - (workbook->bytes_read - workbook->size); } else workbook->sector_end = workbook->fat->sector_size; workbook->p_in = workbook->sector_buf; workbook->sector_ready = 1; } /* * four bytes are now expected: * USHORT record-type * USHORT record-size */ if ((workbook->p_in - workbook->sector_buf) + 4 > workbook->sector_end) { /* reading next sector */ ret = read_cfbf_next_sector (workbook, errcode); if (ret == -1) return -1; /* EOF found */ if (ret == 0) return 0; } /* fetching record-type and record-size */ memcpy (record_type.bytes, workbook->p_in, 2); workbook->p_in += 2; memcpy (record_size.bytes, workbook->p_in, 2); workbook->p_in += 2; if (swap) { /* BIG endian arch: swap required */ swap16 (&record_type); swap16 (&record_size); } /* / Sandro 2011-09-04 / apparently a record-type 0x0000 and a record-size 0 / seems to be an alternative way to mark EOF */ if (record_type.value == 0x0000 && record_size.value == 0) return -1; /* / Sandro 2017-09-07 / fixing a security issue reported by / Cisco [TALOS-2017-430] */ if (record_size.value > sizeof (workbook->record)) return -1; /* saving the current record */ workbook->record_type = record_type.value; workbook->record_size = record_size.value; if (((workbook->p_in + workbook->record_size) - workbook->sector_buf) > workbook->sector_end) { /* the current record spans on the following sector(s) */ unsigned int already_done; unsigned int chunk = workbook->sector_end - (workbook->p_in - workbook->sector_buf); if (workbook->sector_end < (workbook->p_in - workbook->sector_buf)) return -1; memcpy (workbook->record, workbook->p_in, chunk); workbook->p_in += chunk; already_done = chunk; while (already_done < workbook->record_size) { /* reading a further sector */ ret = read_cfbf_next_sector (workbook, errcode); if (ret == -1) return -1; /* EOF found */ if (ret == 0) return 0; chunk = workbook->record_size - already_done; if (chunk <= workbook->fat->sector_size) { /* ok, finished: whole record reassembled */ memcpy (workbook->record + already_done, workbook->p_in, chunk); workbook->p_in += chunk; goto record_done; } /* record still spanning on the following sector */ memcpy (workbook->record + already_done, workbook->p_in, workbook->fat->sector_size); workbook->p_in += workbook->fat->sector_size; already_done += workbook->fat->sector_size; } } else { /* the record is fully contained into the current sector */ memcpy (workbook->record, workbook->p_in, workbook->record_size); workbook->p_in += record_size.value; } record_done: ret = parse_biff_record (workbook, swap); if (ret != FREEXL_OK) return 0; *errcode = FREEXL_OK; return 1; } static int read_mini_biff_next_record (biff_workbook * workbook, int swap, int *errcode) { /* * attempting to read the next BIFF record * from the Workbook MINI-stream */ biff_word16 record_type; biff_word16 record_size; int ret; /* * four bytes are now expected: * USHORT record-type * USHORT record-size */ if ((workbook->p_in - workbook->fat->miniStream) + 4 > (int) workbook->size) return -1; /* EOF found */ /* fetching record-type and record-size */ memcpy (record_type.bytes, workbook->p_in, 2); workbook->p_in += 2; memcpy (record_size.bytes, workbook->p_in, 2); workbook->p_in += 2; if (swap) { /* BIG endian arch: swap required */ swap16 (&record_type); swap16 (&record_size); } /* saving the current record */ workbook->record_type = record_type.value; workbook->record_size = record_size.value; if (workbook->record_size >= 8192) return 0; /* malformed or crafted file */ if ((workbook->p_in - workbook->fat->miniStream) + workbook->record_size > (int) workbook->size) return 0; /* unexpected EOF */ memcpy (workbook->record, workbook->p_in, workbook->record_size); workbook->p_in += record_size.value; ret = parse_biff_record (workbook, swap); if (ret != FREEXL_OK) return 0; *errcode = FREEXL_OK; return 1; } static int parse_dir_entry (void *block, int swap, iconv_t utf16_utf8_converter, unsigned int *workbook, unsigned int *workbook_len, unsigned int *miniFAT_start, unsigned int *miniFAT_len, int *rootEntry) { /* parsing a Directory entry */ char *name; int err; cfbf_dir_entry *entry = (cfbf_dir_entry *) block; if (swap) { /* BIG endian arch: swap required */ swap16 (&(entry->name_size)); swap32 (&(entry->previous)); swap32 (&(entry->next)); swap32 (&(entry->child)); swap32 (&(entry->timestamp_1)); swap32 (&(entry->timestamp_2)); swap32 (&(entry->timestamp_3)); swap32 (&(entry->timestamp_4)); swap32 (&(entry->start_sector)); swap32 (&(entry->extra_size)); swap32 (&(entry->size)); } name = convert_to_utf8 (utf16_utf8_converter, entry->name, entry->name_size.value, &err); if (err) return FREEXL_INVALID_CHARACTER; if (strcmp (name, "Root Entry") == 0) { *miniFAT_start = entry->start_sector.value; *miniFAT_len = entry->size.value; *rootEntry = 1; } else *rootEntry = 0; if (strcmp (name, "Workbook") == 0 || strcmp (name, "Book") == 0) { *workbook = entry->start_sector.value; *workbook_len = entry->size.value; } free (name); return FREEXL_OK; } static int get_workbook_stream (biff_workbook * workbook) { /* attempting to locate the Workbook into the main FAT directory */ long where; unsigned int sector = workbook->fat->directory_start; unsigned char dir_block[4096]; int max_entries; int i_entry; unsigned char *p_entry; unsigned int workbook_start; unsigned int workbook_len; unsigned int miniFAT_start; unsigned int miniFAT_len; int rootEntry; int ret; if (workbook->fat->sector_size == 4096) max_entries = 32; else max_entries = 4; where = (sector + 1) * workbook->fat->sector_size; if (fseek (workbook->xls, where, SEEK_SET) != 0) return FREEXL_CFBF_SEEK_ERROR; /* reading a FAT Directory block [sector] */ if (xls_fread (sizeof (dir_block), dir_block, 1, workbook->fat->sector_size, workbook->xls) != workbook->fat->sector_size) return FREEXL_CFBF_READ_ERROR; workbook_start = 0xFFFFFFFF; for (i_entry = 0; i_entry < max_entries; i_entry++) { /* scanning dir entries until Workbook found */ p_entry = dir_block + (i_entry * 128); ret = parse_dir_entry (p_entry, workbook->fat->swap, workbook->utf16_converter, &workbook_start, &workbook_len, &miniFAT_start, &miniFAT_len, &rootEntry); if (ret != FREEXL_OK) return ret; if (rootEntry) { /* ok, Root Entry found */ workbook->fat->miniFAT_start = miniFAT_start; workbook->fat->miniFAT_len = miniFAT_len; } if (workbook_start != 0xFFFFFFFF) { /* ok, Workbook found */ workbook->start_sector = workbook_start; workbook->size = workbook_len; workbook->current_sector = workbook_start; return FREEXL_OK; } } return FREEXL_BIFF_WORKBOOK_NOT_FOUND; } static void * create_utf16_utf8_converter (void) { /* creating the UTF16/UTF8 converter and returning on opaque reference to it */ iconv_t cvt = iconv_open ("UTF-8", "UTF-16LE"); if (cvt == (iconv_t) (-1)) return NULL; return cvt; } static int check_little_endian_arch () { /* checking if target CPU is a little-endian one */ biff_word32 word32; word32.value = 1; if (word32.bytes[0] == 0) return 1; return 0; } static int common_open (const char *path, const void **xls_handle, int magic) { /* opening and initializing the Workbook */ biff_workbook *workbook; biff_sheet *p_sheet; fat_chain *chain = NULL; int errcode; int ret; int swap = check_little_endian_arch (); *xls_handle = NULL; /* allocating the Workbook struct */ workbook = alloc_workbook (magic); if (!workbook) return FREEXL_INSUFFICIENT_MEMORY; *xls_handle = workbook; workbook->xls = fopen (path, "rb"); if (workbook->xls == NULL) return FREEXL_FILE_NOT_FOUND; /* * the XLS file is internally structured as a FAT-like * file-system (Compound File Binary Format, CFBF) * so we'll start by parsing the FAT */ chain = read_cfbf_header (workbook, swap, &errcode); if (!chain) { /* it's not a CFBF file: testing older BIFF-(2,3,4) formats */ if (read_legacy_biff (workbook, swap)) return FREEXL_OK; goto stop; } /* transferring FAT chain ownership */ workbook->fat = chain; chain = NULL; /* creating the UTF16/UTF8 converter */ workbook->utf16_converter = create_utf16_utf8_converter (); if (workbook->utf16_converter == NULL) { errcode = FREEXL_UNSUPPORTED_CHARSET; goto stop; } /* we'll now retrieve the FAT main Directory */ ret = get_workbook_stream (workbook); if (ret != FREEXL_OK) { errcode = ret; goto stop; } /* we'll now parse the Workbook */ if (workbook->size <= workbook->fat->miniCutOff) { /* mini-stream stored in miniFAT */ int ret = read_mini_stream (workbook, &errcode); if (!ret) goto stop; workbook->p_in = workbook->fat->miniStream; while (1) { ret = read_mini_biff_next_record (workbook, swap, &errcode); if (ret == -1) break; /* EOF */ if (ret == 0) goto stop; } } else { /* normal stream */ while (1) { int ret = read_biff_next_record (workbook, swap, &errcode); if (ret == -1) break; /* EOF */ if (ret == 0) goto stop; } } p_sheet = workbook->first_sheet; while (p_sheet) { if (p_sheet->valid_dimension == 0) { /* setting Sheet dimensions */ int ret; p_sheet->rows += 1; p_sheet->columns += 1; ret = allocate_cells (workbook); if (ret != FREEXL_OK) { errcode = ret; goto stop; } p_sheet->valid_dimension = 1; workbook->second_pass = 1; } else p_sheet->already_done = 1; p_sheet = p_sheet->next; } if (workbook->second_pass) { /* attempting to fetch cell values performing a second pass */ workbook->active_sheet = NULL; workbook->start_sector = 0; workbook->size = 0; workbook->current_sector = 0; workbook->bytes_read = 0; workbook->current_offset = 0; workbook->p_in = workbook->sector_buf; workbook->sector_end = 0; workbook->sector_ready = 0; workbook->ok_bof = -1; ret = get_workbook_stream (workbook); if (ret != FREEXL_OK) { errcode = ret; goto stop; } /* we'll now parse the Workbook */ if (workbook->size <= workbook->fat->miniCutOff) { /* mini-stream stored in miniFAT */ int ret = read_mini_stream (workbook, &errcode); if (!ret) goto stop; workbook->p_in = workbook->fat->miniStream; while (1) { ret = read_mini_biff_next_record (workbook, swap, &errcode); if (ret == -1) break; /* EOF */ if (ret == 0) goto stop; } } else { /* normal stream */ while (1) { int ret = read_biff_next_record (workbook, swap, &errcode); if (ret == -1) break; /* EOF */ if (ret == 0) goto stop; } } } return FREEXL_OK; stop: if (chain) destroy_fat_chain (chain); if (workbook) destroy_workbook (workbook); *xls_handle = NULL; return errcode; } FREEXL_DECLARE int freexl_open (const char *path, const void **xls_handle) { /* opening and initializing the Workbook */ return common_open (path, xls_handle, FREEXL_MAGIC_START); } FREEXL_DECLARE int freexl_open_info (const char *path, const void **xls_handle) { /* opening and initializing the Workbook (only for Info) */ return common_open (path, xls_handle, FREEXL_MAGIC_INFO); } FREEXL_DECLARE int freexl_close (const void *xls_handle) { /* attempting to destroy the Workbook */ biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if ((workbook->magic1 == FREEXL_MAGIC_INFO || workbook->magic1 == FREEXL_MAGIC_START) && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; /* destroying the workbook */ destroy_workbook (workbook); return FREEXL_OK; } FREEXL_DECLARE int freexl_get_info (const void *xls_handle, unsigned short what, unsigned int *info) { /* attempting to retrieve some info */ biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if (!info) return FREEXL_NULL_ARGUMENT; if ((workbook->magic1 == FREEXL_MAGIC_INFO || workbook->magic1 == FREEXL_MAGIC_START) && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; switch (what) { case FREEXL_CFBF_VERSION: *info = FREEXL_UNKNOWN; if (workbook->cfbf_version == 3) *info = FREEXL_CFBF_VER_3; if (workbook->cfbf_version == 4) *info = FREEXL_CFBF_VER_4; return FREEXL_OK; case FREEXL_CFBF_SECTOR_SIZE: *info = FREEXL_UNKNOWN; if (workbook->cfbf_sector_size == 512) *info = FREEXL_CFBF_SECTOR_512; if (workbook->cfbf_sector_size == 4096) *info = FREEXL_CFBF_SECTOR_4096; return FREEXL_OK; case FREEXL_CFBF_FAT_COUNT: if (workbook->fat != NULL) *info = workbook->fat->fat_array_count; else *info = 0; return FREEXL_OK; case FREEXL_BIFF_MAX_RECSIZE: *info = FREEXL_UNKNOWN; if (workbook->biff_max_record_size == 2080) *info = FREEXL_BIFF_MAX_RECSZ_2080; if (workbook->biff_max_record_size == 8224) *info = FREEXL_BIFF_MAX_RECSZ_8224; return FREEXL_OK; case FREEXL_BIFF_DATEMODE: *info = FREEXL_UNKNOWN; if (workbook->biff_date_mode == 0) *info = FREEXL_BIFF_DATEMODE_1900; if (workbook->biff_date_mode == 1) *info = FREEXL_BIFF_DATEMODE_1904; return FREEXL_OK; case FREEXL_BIFF_CODEPAGE: switch (workbook->biff_book_code_page) { case 0x016F: *info = FREEXL_BIFF_ASCII; break; case 0x01B5: *info = FREEXL_BIFF_CP437; break; case 0x02D0: *info = FREEXL_BIFF_CP720; break; case 0x02E1: *info = FREEXL_BIFF_CP737; break; case 0x0307: *info = FREEXL_BIFF_CP775; break; case 0x0352: *info = FREEXL_BIFF_CP850; break; case 0x0354: *info = FREEXL_BIFF_CP852; break; case 0x0357: *info = FREEXL_BIFF_CP855; break; case 0x0359: *info = FREEXL_BIFF_CP857; break; case 0x035A: *info = FREEXL_BIFF_CP858; break; case 0x035C: *info = FREEXL_BIFF_CP860; break; case 0x035D: *info = FREEXL_BIFF_CP861; break; case 0x035E: *info = FREEXL_BIFF_CP862; break; case 0x035F: *info = FREEXL_BIFF_CP863; break; case 0x0360: *info = FREEXL_BIFF_CP864; break; case 0x0361: *info = FREEXL_BIFF_CP865; break; case 0x0362: *info = FREEXL_BIFF_CP866; break; case 0x0365: *info = FREEXL_BIFF_CP869; break; case 0x036A: *info = FREEXL_BIFF_CP874; break; case 0x03A4: *info = FREEXL_BIFF_CP932; break; case 0x03A8: *info = FREEXL_BIFF_CP936; break; case 0x03B5: *info = FREEXL_BIFF_CP949; break; case 0x03B6: *info = FREEXL_BIFF_CP950; break; case 0x04B0: *info = FREEXL_BIFF_UTF16LE; break; case 0x04E2: *info = FREEXL_BIFF_CP1250; break; case 0x04E3: *info = FREEXL_BIFF_CP1251; break; case 0x04E4: case 0x8001: *info = FREEXL_BIFF_CP1252; break; case 0x04E5: *info = FREEXL_BIFF_CP1253; break; case 0x04E6: *info = FREEXL_BIFF_CP1254; break; case 0x04E7: *info = FREEXL_BIFF_CP1255; break; case 0x04E8: *info = FREEXL_BIFF_CP1256; break; case 0x04E9: *info = FREEXL_BIFF_CP1257; break; case 0x04EA: *info = FREEXL_BIFF_CP1258; break; case 0x0551: *info = FREEXL_BIFF_CP1361; break; case 0x2710: case 0x8000: *info = FREEXL_BIFF_MACROMAN; break; default: *info = FREEXL_UNKNOWN; break; }; return FREEXL_OK; case FREEXL_BIFF_VERSION: *info = FREEXL_UNKNOWN; if (workbook->biff_version == 2) *info = FREEXL_BIFF_VER_2; if (workbook->biff_version == 3) *info = FREEXL_BIFF_VER_3; if (workbook->biff_version == 4) *info = FREEXL_BIFF_VER_4; if (workbook->biff_version == 5) *info = FREEXL_BIFF_VER_5; if (workbook->biff_version == 8) *info = FREEXL_BIFF_VER_8; return FREEXL_OK; case FREEXL_BIFF_STRING_COUNT: *info = workbook->shared_strings.string_count; return FREEXL_OK; case FREEXL_BIFF_SHEET_COUNT: *info = get_worksheet_count (workbook); return FREEXL_OK; case FREEXL_BIFF_FORMAT_COUNT: *info = workbook->max_format_index; return FREEXL_OK; case FREEXL_BIFF_XF_COUNT: *info = workbook->biff_xf_next_index; return FREEXL_OK; case FREEXL_BIFF_PASSWORD: *info = FREEXL_UNKNOWN; if (workbook->biff_obfuscated == 0) *info = FREEXL_BIFF_PLAIN; else if (workbook->biff_obfuscated == 0) *info = FREEXL_BIFF_OBFUSCATED; else *info = workbook->biff_xf_next_index; return FREEXL_OK; }; return FREEXL_INVALID_INFO_ARG; } FREEXL_DECLARE int freexl_get_FAT_entry (const void *xls_handle, unsigned int sector_index, unsigned int *next_sector_index) { /* attempting to retrieve some FAT entry [by index] */ fat_entry *entry; biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if (!next_sector_index) return FREEXL_NULL_ARGUMENT; if ((workbook->magic1 == FREEXL_MAGIC_INFO || workbook->magic1 == FREEXL_MAGIC_START) && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; if (workbook->fat == NULL) return FREEXL_CFBF_EMPTY_FAT_CHAIN; entry = get_fat_entry (workbook->fat, sector_index); if (entry == NULL) return FREEXL_CFBF_ILLEGAL_FAT_ENTRY; *next_sector_index = entry->next_sector; return FREEXL_OK; } FREEXL_DECLARE int freexl_get_worksheet_name (const void *xls_handle, unsigned short worksheet_index, const char **string) { /* attempting to retrieve some Worksheet name [by index] */ unsigned int count = 0; biff_sheet *worksheet; biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if (!string) return FREEXL_NULL_ARGUMENT; if ((workbook->magic1 == FREEXL_MAGIC_INFO || workbook->magic1 == FREEXL_MAGIC_START) && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; worksheet = workbook->first_sheet; while (worksheet) { if (count == worksheet_index) { *string = worksheet->utf8_name; return FREEXL_OK; } count++; worksheet = worksheet->next; } return FREEXL_BIFF_ILLEGAL_SHEET_INDEX; } FREEXL_DECLARE int freexl_select_active_worksheet (const void *xls_handle, unsigned short worksheet_index) { /* selecting the currently active worksheet [by index] */ unsigned int count = 0; biff_sheet *worksheet; biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if ((workbook->magic1 == FREEXL_MAGIC_INFO || workbook->magic1 == FREEXL_MAGIC_START) && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; worksheet = workbook->first_sheet; while (worksheet) { if (count == worksheet_index) { workbook->active_sheet = worksheet; return FREEXL_OK; } count++; worksheet = worksheet->next; } return FREEXL_BIFF_ILLEGAL_SHEET_INDEX; } FREEXL_DECLARE int freexl_get_active_worksheet (const void *xls_handle, unsigned short *worksheet_index) { /* retrieving the currently active worksheet index */ unsigned int count = 0; biff_sheet *worksheet; biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if (!worksheet_index) return FREEXL_NULL_ARGUMENT; if ((workbook->magic1 == FREEXL_MAGIC_INFO || workbook->magic1 == FREEXL_MAGIC_START) && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; worksheet = workbook->first_sheet; while (worksheet) { if (workbook->active_sheet == worksheet) { *worksheet_index = count; return FREEXL_OK; } count++; worksheet = worksheet->next; } return FREEXL_BIFF_UNSELECTED_SHEET; } FREEXL_DECLARE int freexl_worksheet_dimensions (const void *xls_handle, unsigned int *rows, unsigned short *columns) { /* dimensions: currently selected Worksheet */ biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if (!rows) return FREEXL_NULL_ARGUMENT; if (!columns) return FREEXL_NULL_ARGUMENT; if ((workbook->magic1 == FREEXL_MAGIC_INFO || workbook->magic1 == FREEXL_MAGIC_START) && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; if (workbook->active_sheet == NULL) return FREEXL_BIFF_UNSELECTED_SHEET; *rows = workbook->active_sheet->rows; *columns = workbook->active_sheet->columns; return FREEXL_OK; } FREEXL_DECLARE int freexl_get_SST_string (const void *xls_handle, unsigned short string_index, const char **string) { /* attempting to retrieve some SST entry [by index] */ biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if (!string) return FREEXL_NULL_ARGUMENT; if (workbook->magic1 == FREEXL_MAGIC_START && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; *string = NULL; if (workbook->shared_strings.utf8_strings == NULL) return FREEXL_BIFF_INVALID_SST; if (string_index < workbook->shared_strings.string_count) { *string = *(workbook->shared_strings.utf8_strings + string_index); return FREEXL_OK; } return FREEXL_BIFF_ILLEGAL_SST_INDEX; } FREEXL_DECLARE int freexl_get_cell_value (const void *xls_handle, unsigned int row, unsigned short column, FreeXL_CellValue * val) { /* attempting to fetch a cell value */ biff_cell_value *p_cell; biff_workbook *workbook = (biff_workbook *) xls_handle; if (!workbook) return FREEXL_NULL_HANDLE; if (!val) return FREEXL_NULL_ARGUMENT; if (workbook->magic1 == FREEXL_MAGIC_START && workbook->magic2 == FREEXL_MAGIC_END) ; else return FREEXL_INVALID_HANDLE; if (row >= workbook->active_sheet->rows || column >= workbook->active_sheet->columns) return FREEXL_ILLEGAL_CELL_ROW_COL; if (workbook->active_sheet->cell_values == NULL) return FREEXL_ILLEGAL_CELL_ROW_COL; p_cell = workbook->active_sheet->cell_values + (row * workbook->active_sheet->columns) + column; /* / kindly contributed by Brad Hards: 2011-09-03 / this function now return the Cell Value using the / FreeXL_CellValue multi-type container */ val->type = p_cell->type; switch (p_cell->type) { case FREEXL_CELL_INT: val->value.int_value = p_cell->value.int_value; break; case FREEXL_CELL_DOUBLE: val->value.double_value = p_cell->value.dbl_value; break; case FREEXL_CELL_DATE: case FREEXL_CELL_DATETIME: case FREEXL_CELL_TIME: case FREEXL_CELL_TEXT: val->value.text_value = p_cell->value.text_value; break; case FREEXL_CELL_SST_TEXT: val->value.text_value = p_cell->value.sst_value; break; }; return FREEXL_OK; } freexl-1.0.5/src/Makefile.am0000664000175000017500000000040613243550204012546 00000000000000 AM_CPPFLAGS = -I$(top_srcdir)/headers AM_CPPFLAGS += -I$(top_srcdir) lib_LTLIBRARIES = libfreexl.la libfreexl_la_SOURCES = freexl.c libfreexl_la_LDFLAGS = -version-info 2:0:1 -no-undefined libfreexl_la_LIBADD = -lm MOSTLYCLEANFILES = *.gcna *.gcno *.gcda freexl-1.0.5/examples/0000775000175000017500000000000013243550237011627 500000000000000freexl-1.0.5/examples/Makefile.in0000664000175000017500000004306013243550204013611 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 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@ noinst_PROGRAMS = test_xl$(EXEEXT) xl2sql$(EXEEXT) subdir = examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) test_xl_SOURCES = test_xl.c test_xl_OBJECTS = test_xl.$(OBJEXT) test_xl_LDADD = $(LDADD) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = xl2sql_SOURCES = xl2sql.c xl2sql_OBJECTS = xl2sql.$(OBJEXT) xl2sql_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = test_xl.c xl2sql.c DIST_SOURCES = test_xl.c xl2sql.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ 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@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ 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@ 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_srcdir = @top_srcdir@ AM_CFLAGS = -I@srcdir@/../headers AM_LDFLAGS = -L../src -lfreexl -lm $(GCOV_FLAGS) MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = examples.doxy all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_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 test_xl$(EXEEXT): $(test_xl_OBJECTS) $(test_xl_DEPENDENCIES) $(EXTRA_test_xl_DEPENDENCIES) @rm -f test_xl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_xl_OBJECTS) $(test_xl_LDADD) $(LIBS) xl2sql$(EXEEXT): $(xl2sql_OBJECTS) $(xl2sql_DEPENDENCIES) $(EXTRA_xl2sql_DEPENDENCIES) @rm -f xl2sql$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xl2sql_OBJECTS) $(xl2sql_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_xl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xl2sql.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ 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-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ 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" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files 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 check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) 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 clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: 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 -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ ctags-am distclean distclean-compile 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 maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # 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: freexl-1.0.5/examples/test_xl.c0000664000175000017500000003446713243550204013405 00000000000000/* / test_xl.c / / FreeXL Sample code / / Author: Sandro Furieri a.furieri@lqt.it / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" int main (int argc, char *argv[]) { const void *handle; int ret; unsigned int info; unsigned int fat_count; unsigned int sst_count; unsigned int worksheet_count; unsigned int format_count; unsigned int xf_count; unsigned int idx; unsigned int next_sector; int biff_v8 = 0; const char *utf8_string; int verbose = 0; if (argc == 2 || argc == 3) { if (argc == 3) { if (strcmp (argv[2], "-verbose") == 0) verbose = 1; } } else { fprintf (stderr, "usage: text_xl path.xls [-verbose]\n"); return -1; } /* opening the .XLS file [Workbook] */ ret = freexl_open (argv[1], &handle); if (ret != FREEXL_OK) { fprintf (stderr, "OPEN ERROR: %d\n", ret); return -1; } /* * reporting .XLS information */ printf ("\nExcel document: %s\n", argv[1]); printf ("==========================================================\n"); /* CFBF version */ ret = freexl_get_info (handle, FREEXL_CFBF_VERSION, &info); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_CFBF_VERSION] Error: %d\n", ret); goto stop; } switch (info) { case FREEXL_CFBF_VER_3: printf ("CFBF Version ........: 3\n"); break; case FREEXL_CFBF_VER_4: printf ("CFBF Version ........: 4\n"); break; case FREEXL_UNKNOWN: printf ("CFBF Version ........: UNKNOWN\n"); break; }; /* CFBF sector size */ ret = freexl_get_info (handle, FREEXL_CFBF_SECTOR_SIZE, &info); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_CFBF_SECTOR_SIZE] Error: %d\n", ret); goto stop; } switch (info) { case FREEXL_CFBF_SECTOR_512: printf ("CFBF Sector size ....: 512\n"); break; case FREEXL_CFBF_SECTOR_4096: printf ("CFBF Sector size ....: 4096\n"); break; case FREEXL_UNKNOWN: printf ("CFBF Sector size ....: UNKNOWN\n"); break; }; /* CFBF FAT entries */ ret = freexl_get_info (handle, FREEXL_CFBF_FAT_COUNT, &fat_count); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_CFBF_FAT_COUNT] Error: %d\n", ret); goto stop; } printf ("CFBF FAT entries ....: %u\n", fat_count); /* BIFF version */ ret = freexl_get_info (handle, FREEXL_BIFF_VERSION, &info); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_VERSION] Error: %d\n", ret); goto stop; } switch (info) { case FREEXL_BIFF_VER_2: printf ("BIFF Version ........: 2 [Excel 2.0]\n"); break; case FREEXL_BIFF_VER_3: printf ("BIFF Version ........: 3 [Excel 3.0]\n"); break; case FREEXL_BIFF_VER_4: printf ("BIFF Version ........: 4 [Excel 4.0]\n"); break; case FREEXL_BIFF_VER_5: printf ("BIFF Version ........: 5 [Excel 5.0 / Excel 95]\n"); break; case FREEXL_BIFF_VER_8: printf ("BIFF Version ........: 8 [Excel 98/XP/2003/2007/2010]\n"); biff_v8 = 1; break; case FREEXL_UNKNOWN: printf ("BIFF Version ........: UNKNOWN\n"); break; }; /* BIFF max record size */ ret = freexl_get_info (handle, FREEXL_BIFF_MAX_RECSIZE, &info); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_MAX_RECSIZE] Error: %d\n", ret); goto stop; } switch (info) { case FREEXL_BIFF_MAX_RECSZ_2080: printf ("BIFF Max record size : 2080\n"); break; case FREEXL_BIFF_MAX_RECSZ_8224: printf ("BIFF Max record size : 8224\n"); break; case FREEXL_UNKNOWN: printf ("BIFF Max record size : UNKNOWN\n"); break; }; /* BIFF DateMode */ ret = freexl_get_info (handle, FREEXL_BIFF_DATEMODE, &info); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_DATEMODE] Error: %d\n", ret); goto stop; } switch (info) { case FREEXL_BIFF_DATEMODE_1900: printf ("BIFF DateMode .......: 0 [day#1 = '1900-01-01']\n"); break; case FREEXL_BIFF_DATEMODE_1904: printf ("BIFF DateMode .......: 1 [day#1 = '1904-01-02']\n"); break; case FREEXL_UNKNOWN: printf ("BIFF DateMode .......: UNKNOWN\n"); break; }; /* BIFF Obfuscated */ ret = freexl_get_info (handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_PASSWORD] Error: %d\n", ret); goto stop; } switch (info) { case FREEXL_BIFF_OBFUSCATED: printf ("BIFF Password/Crypted: YES, obfuscated (not accessible)\n"); break; case FREEXL_BIFF_PLAIN: printf ("BIFF Password/Crypted: NO, clear data\n"); break; case FREEXL_UNKNOWN: printf ("BIFF Password/Crypted: UNKNOWN\n"); break; }; /* BIFF CodePage */ ret = freexl_get_info (handle, FREEXL_BIFF_CODEPAGE, &info); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_CODEPAGE] Error: %d\n", ret); goto stop; } switch (info) { case FREEXL_BIFF_ASCII: printf ("BIFF CodePage .......: ASCII\n"); break; case FREEXL_BIFF_CP437: printf ("BIFF CodePage .......: CP437 [OEM United States]\n"); break; case FREEXL_BIFF_CP720: printf ("BIFF CodePage .......: CP720 [Arabic (DOS)]\n"); break; case FREEXL_BIFF_CP737: printf ("BIFF CodePage .......: CP737 [Greek (DOS)]\n"); break; case FREEXL_BIFF_CP775: printf ("BIFF CodePage .......: CP775 [Baltic (DOS)]\n"); break; case FREEXL_BIFF_CP850: printf ("BIFF CodePage .......: CP850 [Western European (DOS)]\n"); break; case FREEXL_BIFF_CP852: printf ("BIFF CodePage .......: CP852 [Central European (DOS)]\n"); break; case FREEXL_BIFF_CP855: printf ("BIFF CodePage .......: CP855 [OEM Cyrillic]\n"); break; case FREEXL_BIFF_CP857: printf ("BIFF CodePage .......: CP857 [Turkish (DOS)]\n"); break; case FREEXL_BIFF_CP858: printf ("BIFF CodePage .......: CP858 [OEM Multilingual Latin I]\n"); break; case FREEXL_BIFF_CP860: printf ("BIFF CodePage .......: CP860 [Portuguese (DOS)]\n"); break; case FREEXL_BIFF_CP861: printf ("BIFF CodePage .......: CP861 [Icelandic (DOS)]\n"); break; case FREEXL_BIFF_CP862: printf ("BIFF CodePage .......: CP862 [Hebrew (DOS)]\n"); break; case FREEXL_BIFF_CP863: printf ("BIFF CodePage .......: CP863 [French Canadian (DOS)]\n"); break; case FREEXL_BIFF_CP864: printf ("BIFF CodePage .......: CP864 [Arabic (864)]\n"); break; case FREEXL_BIFF_CP865: printf ("BIFF CodePage .......: CP865 [Nordic (DOS)]\n"); break; case FREEXL_BIFF_CP866: printf ("BIFF CodePage .......: CP866 [Cyrillic (DOS)]\n"); break; case FREEXL_BIFF_CP869: printf ("BIFF CodePage .......: CP869 [Greek, Modern (DOS)]\n"); break; case FREEXL_BIFF_CP874: printf ("BIFF CodePage .......: CP874 [Thai (Windows)]\n"); break; case FREEXL_BIFF_CP932: printf ("BIFF CodePage .......: CP932 [Japanese (Shift-JIS)]\n"); break; case FREEXL_BIFF_CP936: printf ("BIFF CodePage .......: CP936 [Chinese Simplified (GB2312)]\n"); break; case FREEXL_BIFF_CP949: printf ("BIFF CodePage .......: CP949 [Korean]\n"); break; case FREEXL_BIFF_CP950: printf ("BIFF CodePage .......: CP950 [Chinese Traditional (Big5)]\n"); break; case FREEXL_BIFF_UTF16LE: printf ("BIFF CodePage .......: UTF-16LE [Unicode]\n"); break; case FREEXL_BIFF_CP1250: printf ("BIFF CodePage .......: CP1250 [Windows Central Europe]\n"); break; case FREEXL_BIFF_CP1251: printf ("BIFF CodePage .......: CP1251 [Windows Cyrillic]\n"); break; case FREEXL_BIFF_CP1252: printf ("BIFF CodePage .......: CP1252 [Windows Latin 1]\n"); break; case FREEXL_BIFF_CP1253: printf ("BIFF CodePage .......: CP1253 [Windows Greek]\n"); break; case FREEXL_BIFF_CP1254: printf ("BIFF CodePage .......: CP1254 [Windows Turkish]\n"); break; case FREEXL_BIFF_CP1255: printf ("BIFF CodePage .......: CP1255 [Windows Hebrew]\n"); break; case FREEXL_BIFF_CP1256: printf ("BIFF CodePage .......: CP1256 [Windows Arabic]\n"); break; case FREEXL_BIFF_CP1257: printf ("BIFF CodePage .......: CP1257 [Windows Baltic]\n"); break; case FREEXL_BIFF_CP1258: printf ("BIFF CodePage .......: CP1258 [Windows Vietnamese]\n"); break; case FREEXL_BIFF_CP1361: printf ("BIFF CodePage .......: CP1361 [Korean (Johab)]\n"); break; case FREEXL_BIFF_MACROMAN: printf ("BIFF CodePage .......: MacRoman\n"); break; case FREEXL_UNKNOWN: printf ("BIFF CodePage .......: UNKNOWN\n"); break; }; /* BIFF Worksheet entries */ ret = freexl_get_info (handle, FREEXL_BIFF_SHEET_COUNT, &worksheet_count); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_SHEET_COUNT] Error: %d\n", ret); goto stop; } printf ("BIFF Worksheets .....: %u\n", worksheet_count); if (biff_v8) { /* BIFF SST entries */ ret = freexl_get_info (handle, FREEXL_BIFF_STRING_COUNT, &sst_count); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_STRING_COUNT] Error: %d\n", ret); goto stop; } printf ("BIFF SST entries ....: %u\n", sst_count); } /* BIFF Format entries */ ret = freexl_get_info (handle, FREEXL_BIFF_FORMAT_COUNT, &format_count); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_FORMAT_COUNT] Error: %d\n", ret); goto stop; } printf ("BIFF Formats ........: %u\n", format_count); /* BIFF XF entries */ ret = freexl_get_info (handle, FREEXL_BIFF_XF_COUNT, &xf_count); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_XF_COUNT] Error: %d\n", ret); goto stop; } printf ("BIFF eXtendedFormats : %u\n", xf_count); printf ("\nWorksheets:\n=========================================================\n"); for (idx = 0; idx < worksheet_count; idx++) { /* printing BIFF Worksheets entries */ unsigned short active; unsigned int rows; unsigned short columns; ret = freexl_get_worksheet_name (handle, idx, &utf8_string); if (ret != FREEXL_OK) { fprintf (stderr, "GET-WORKSHEET-NAME Error: %d\n", ret); goto stop; } if (utf8_string == NULL) printf ("%3u] NULL (unnamed)\n", idx); else printf ("%3u] %s\n", idx, utf8_string); ret = freexl_select_active_worksheet (handle, idx); if (ret != FREEXL_OK) { fprintf (stderr, "SELECT-ACTIVE_WORKSHEET Error: %d\n", ret); goto stop; } ret = freexl_get_active_worksheet (handle, &active); if (ret != FREEXL_OK) { fprintf (stderr, "GET-ACTIVE_WORKSHEET Error: %d\n", ret); goto stop; } printf ("\tok, Worksheet successfully selected: currently active: %u\n", active); ret = freexl_worksheet_dimensions (handle, &rows, &columns); if (ret != FREEXL_OK) { fprintf (stderr, "WORKSHEET-DIMENSIONS Error: %d\n", ret); goto stop; } printf ("\t%u Rows X %u Columns\n\n", rows, columns); } if (!verbose) goto stop; if (biff_v8) { /* printing BIFF SST entries */ printf ("\nSST [Shared String Table]:\n=========================================================\n"); for (idx = 0; idx < sst_count; idx++) { ret = freexl_get_SST_string (handle, idx, &utf8_string); if (ret != FREEXL_OK) { fprintf (stderr, "GET-SST-STRING Error: %d\n", ret); goto stop; } if (utf8_string == NULL) printf ("%8u] NULL (empty string)\n", idx); else printf ("%8u] %s\n", idx, utf8_string); } } printf ("\nFAT entries [File Allocation Table]:\n=========================================================\n"); for (idx = 0; idx < fat_count; idx++) { /* printing each FAT entry */ ret = freexl_get_FAT_entry (handle, idx, &next_sector); if (ret != FREEXL_OK) { fprintf (stderr, "GET-FAT-ENTRY Error: %d\n", ret); goto stop; } if (next_sector == 0xffffffff) printf ("%8u -> 0xffffffff FREESECT\n", idx); else if (next_sector == 0xfffffffe) printf ("%8u -> 0xfffffffe ENDOFCHAIN\n", idx); else if (next_sector == 0xfffffffd) printf ("%8u -> 0xfffffffe FATSECT\n", idx); else if (next_sector == 0xfffffffc) printf ("%8u -> 0xfffffffe DIFSECT\n", idx); else printf ("%8u -> %8u\n", idx, next_sector); } stop: /* closing the .XLS file [Workbook] */ ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf (stderr, "CLOSE ERROR: %d\n", ret); return -1; } return 0; } freexl-1.0.5/examples/xl2sql.c0000664000175000017500000001527013243550204013137 00000000000000/* / xl2sql.c / / FreeXL Sample code / / Author: Sandro Furieri a.furieri@lqt.it / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #include #include #include #include "freexl.h" static void make_table_name (const char *prefix, unsigned short index, char *table_name) { /* generating an SQL clean table name */ char buf[2048]; char *in = buf; char *out = table_name; sprintf (buf, "%s_%02u", prefix, index); /* masking for SQL */ *out++ = '"'; while (*in != '\0') { if (*in == '"') *out++ = '"'; *out++ = *in++; } *out++ = '"'; *out = '\0'; } static void print_sql_string (const char *string) { /* printing a well formatted SQL string */ const char *p = string; putchar (','); putchar (' '); putchar ('\''); while (*p != '\0') { if (*p == '\'') { /* masking any ' as '' */ putchar ('\''); } putchar (*p); p++; } putchar ('\''); } int main (int argc, char *argv[]) { unsigned int worksheet_index; const char *table_prefix = "xl_table"; char table_name[2048]; const void *handle; int ret; unsigned int info; unsigned int max_worksheet; unsigned int rows; unsigned short columns; unsigned int row; unsigned short col; if (argc == 2 || argc == 3) { if (argc == 3) table_prefix = argv[2]; } else { fprintf (stderr, "usage: xl2sql path.xls [table_prefix]\n"); return -1; } /* opening the .XLS file [Workbook] */ ret = freexl_open (argv[1], &handle); if (ret != FREEXL_OK) { fprintf (stderr, "OPEN ERROR: %d\n", ret); return -1; } /* checking for Password (obfuscated/encrypted) */ ret = freexl_get_info (handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_PASSWORD] Error: %d\n", ret); goto stop; } switch (info) { case FREEXL_BIFF_PLAIN: break; case FREEXL_BIFF_OBFUSCATED: default: fprintf (stderr, "Password protected: (not accessible)\n"); goto stop; }; /* querying BIFF Worksheet entries */ ret = freexl_get_info (handle, FREEXL_BIFF_SHEET_COUNT, &max_worksheet); if (ret != FREEXL_OK) { fprintf (stderr, "GET-INFO [FREEXL_BIFF_SHEET_COUNT] Error: %d\n", ret); goto stop; } /* SQL output */ printf ("--\n-- this SQL script was automatically created by xl2sql\n"); printf ("--\n-- input .xls document was: %s\n--\n", argv[1]); printf ("\nBEGIN;\n\n"); for (worksheet_index = 0; worksheet_index < max_worksheet; worksheet_index++) { const char *utf8_worsheet_name; make_table_name (table_prefix, worksheet_index, table_name); ret = freexl_get_worksheet_name (handle, worksheet_index, &utf8_worsheet_name); if (ret != FREEXL_OK) { fprintf (stderr, "GET-WORKSHEET-NAME Error: %d\n", ret); goto stop; } /* selecting the active Worksheet */ ret = freexl_select_active_worksheet (handle, worksheet_index); if (ret != FREEXL_OK) { fprintf (stderr, "SELECT-ACTIVE_WORKSHEET Error: %d\n", ret); goto stop; } /* dimensions */ ret = freexl_worksheet_dimensions (handle, &rows, &columns); if (ret != FREEXL_OK) { fprintf (stderr, "WORKSHEET-DIMENSIONS Error: %d\n", ret); goto stop; } printf ("--\n-- creating a DB table\n"); printf ("-- extracting data from Worksheet #%u: %s\n--\n", worksheet_index, utf8_worsheet_name); printf ("CREATE TABLE %s (\n", table_name); printf ("\trow_no INTEGER NOT NULL PRIMARY KEY"); for (col = 0; col < columns; col++) printf (",\n\tcol_%03u MULTITYPE", col); printf (");\n"); printf ("--\n-- populating the same table\n--\n"); for (row = 0; row < rows; row++) { /* INSERT INTO statements */ FreeXL_CellValue cell; printf ("INSERT INTO %s (row_no", table_name); for (col = 0; col < columns; col++) printf (", col_%03u", col); printf (") VALUES (%u", row); for (col = 0; col < columns; col++) { ret = freexl_get_cell_value (handle, row, col, &cell); if (ret != FREEXL_OK) { fprintf (stderr, "CELL-VALUE-ERROR (r=%u c=%u): %d\n", row, col, ret); goto stop; } switch (cell.type) { case FREEXL_CELL_INT: printf (", %d", cell.value.int_value); break; case FREEXL_CELL_DOUBLE: printf (", %1.12f", cell.value.double_value); break; case FREEXL_CELL_TEXT: case FREEXL_CELL_SST_TEXT: print_sql_string (cell.value.text_value); break; case FREEXL_CELL_DATE: case FREEXL_CELL_DATETIME: case FREEXL_CELL_TIME: printf (", '%s'", cell.value.text_value); break; case FREEXL_CELL_NULL: default: printf (", NULL"); break; }; } printf (");\n"); } printf ("\n-- done: table end\n\n\n\n"); } printf ("COMMIT;\n"); stop: /* closing the .XLS file [Workbook] */ ret = freexl_close (handle); if (ret != FREEXL_OK) { fprintf (stderr, "CLOSE ERROR: %d\n", ret); return -1; } return 0; } freexl-1.0.5/examples/examples.doxy0000664000175000017500000001025113243550204014263 00000000000000/** \example test_xl.c test_xl.c is a simple demonstration and diagnostic tool for the Excel (.xls) file format. This sample code provides an example of: - opening the .xls file - querying general information - querying Workbooks, SST entries and FAT entries - error handling - closing the .xls file when no further operations are required Here is an example of a typical run: \verbatim ./test_xl multi.xls Excel document: multi.xls ========================================================== CFBF Version ........: 3 CFBF Sector size ....: 512 CFBF FAT entries ....: 128 BIFF Version ........: 8 [Excel 98/XP/2003/2007/2010] BIFF Max record size : 8224 BIFF DateMode .......: 0 [day#1 = '1900-01-01'] BIFF Password/Crypted: NO, clear data BIFF CodePage .......: UTF-16LE [Unicode] BIFF Worksheets .....: 2 BIFF SST entries ....: 24 BIFF Formats ........: 2 BIFF eXtendedFormats : 24 Worksheets: ========================================================= 0] I'm a Worsheet ok, Worksheet succesfully selected: currently active: 0 12 Rows X 7 Columns 1] Yet another ok, Worksheet succesfully selected: currently active: 1 302 Rows X 4 Columns \endverbatim Here is another example. Note that this earlier version (Excel 3.0) format does not use the CFBF container, so no information is provided for the first three entries. \verbatim # ./test_xl v3sample.xls Excel document: v3sample.xls ========================================================== CFBF Version ........: UNKNOWN CFBF Sector size ....: UNKNOWN CFBF FAT entries ....: 0 BIFF Version ........: 3 [Excel 3.0] BIFF Max record size : UNKNOWN BIFF DateMode .......: 0 [day#1 = '1900-01-01'] BIFF Password/Crypted: NO, clear data BIFF CodePage .......: CP1252 [Windows Latin 1] BIFF Worksheets .....: 1 BIFF Formats ........: 21 BIFF eXtendedFormats : 25 Worksheets: ========================================================= 0] Worksheet ok, Worksheet succesfully selected: currently active: 0 17 Rows X 6 Columns \endverbatim For more information, or to aid with debugging, you can specify a -verbose flag, as shown in this example: \verbatim # ./test_xl multi.xls -verbose Excel document: multi.xls ========================================================== ... Worksheets: ========================================================= ... SST [Shared String Table]: ========================================================= 0] uno 1] one 2] due 3] two 4] tre 5] three ... 18] dieci 19] ten 20] undici 21] eleven 22] dodici 23] twelve FAT entries [File Allocation Table]: ========================================================= 0 -> 0xfffffffe FATSECT 1 -> 0xffffffff FREESECT 2 -> 3 3 -> 4 ... 36 -> 37 37 -> 38 38 -> 0xfffffffe ENDOFCHAIN 39 -> 0xfffffffe ENDOFCHAIN 40 -> 41 41 -> 0xfffffffe ENDOFCHAIN 42 -> 43 43 -> 0xfffffffe ENDOFCHAIN 44 -> 0xffffffff FREESECT ... 127 -> 0xffffffff FREESECT \endverbatim */ /** \example xl2sql.c xl2sql a simple tool that takes an .xls file as input, and generates a SQL script as output. You can then use the SQL script to load the extracted data info a SQLite / SpatiaLite database. Here is a typical usage example: \verbatim ./xl2sql comuni_italiani.xls >comuni.sql spatialite italy.sqlite comuni.sql spatialite italy2.sqlite . Submit a context # diff and a properly formatted GNU 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. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # 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* | \ kopensolaris*-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 | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -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 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | 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 \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # 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-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | 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-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | 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-* | tile-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # 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 ;; aros) basic_machine=i386-pc os=-aros ;; 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 ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; 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 ;; dicos) basic_machine=i686-pc os=-dicos ;; 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 ;; microblaze) basic_machine=microblaze-xilinx ;; 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 ;; z80-*-coff) basic_machine=z80-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[24]aeb | 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. -auroraux) os=-auroraux ;; -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* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -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* | -cegcc* \ | -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* | -es*) # 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 ;; -dicos*) os=-dicos ;; -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 ;; -cnk*|-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: freexl-1.0.5/Doxyfile.in0000664000175000017500000021210313243550204012035 00000000000000# Doxyfile 1.7.3 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" "). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = FreeXL # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also makes the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = headers/freexl.h \ examples/examples.doxy \ mainpage.doxy # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = examples # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = images # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [0,1..20]) # that doxygen will group on one line in the generated HTML documentation. # Note that a value of 0 will completely suppress the enum values from appearing in the overview section. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing # MathJax, but it is strongly recommended to install a local copy of MathJax # before deployment. MATHJAX_RELPATH = http://www.mathjax.org/mathjax # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called Helvetica to the output # directory and reference it in all dot files that doxygen generates. # When you want a differently looking font you can specify the font name # using DOT_FONTNAME. You need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, svg, gif or svg. # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES freexl-1.0.5/Makefile.am0000664000175000017500000000105713243550204011762 00000000000000ACLOCAL_AMFLAGS = -I m4 SUBDIRS = headers src tests examples EXTRA_DIST = makefile.vc nmake.opt \ images/piazza.jpg images/piazza.eps mainpage.doxy config-msvc.h AUTOMAKE_OPTIONS = dist-zip foreign pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = freexl.pc coverage-init: lcov --directory src --capture --initial --output-file freexl_cov.info coverage:: lcov --rc lcov_branch_coverage=1 --directory src --output-file freexl_cov.info --capture genhtml --rc lcov_branch_coverage=1 -o covresults freexl_cov.info MOSTLYCLEANFILES = freexl_cov.info freexl-1.0.5/nmake.opt0000664000175000017500000000071713243550204011547 00000000000000# Directory tree where FreeXL will be installed. INSTDIR=C:\OSGeo4W # Uncomment the first for an optimized build, or the second for debug. OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \ /DDLL_EXPORT #OPTFLAGS= /nologo /Zi /MD /Fdfreexl.pdb /DDLL_EXPORT # Set the version number for the DLL. Normally we leave this blank since # we want software that is dynamically loading the DLL to have no problem # with version numbers. VERSION= freexl-1.0.5/headers/0000775000175000017500000000000013243550236011423 500000000000000freexl-1.0.5/headers/Makefile.in0000664000175000017500000004015613243550204013411 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 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 = headers ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ $(noinst_HEADERS) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ 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@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ 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@ 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_srcdir = @top_srcdir@ noinst_HEADERS = freexl_internals.h include_HEADERS = freexl.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 headers/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu headers/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ 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_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ 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-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ 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" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files 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 check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi 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 distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS 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-includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am 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-includeHEADERS 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 tags tags-am uninstall uninstall-am \ uninstall-includeHEADERS .PRECIOUS: Makefile # 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: freexl-1.0.5/headers/freexl.h0000664000175000017500000005623013243550204013002 00000000000000/* / freexl.h / / public declarations / / version 1.0, 2011 July 26 / / Author: Sandro Furieri a.furieri@lqt.it / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ /** \file freexl.h Function declarations and constants for FreeXL library */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef DLL_EXPORT #define FREEXL_DECLARE __declspec(dllexport) #else #define FREEXL_DECLARE extern #endif #endif #ifndef _FREEXL_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _FREEXL_H #endif #ifdef __cplusplus extern "C" { #endif /* constants */ /** query is not applicable, or information is not available */ #define FREEXL_UNKNOWN 0 /* CFBF constants */ /** CFBF file is version 3 */ #define FREEXL_CFBF_VER_3 3 /** CFBF file is version 4 */ #define FREEXL_CFBF_VER_4 4 /** CFBF file uses 512 byte sectors */ #define FREEXL_CFBF_SECTOR_512 512 /** CFBF file uses 4096 (4K) sectors */ #define FREEXL_CFBF_SECTOR_4096 4096 /* BIFF versions */ /** BIFF file is version 2 */ #define FREEXL_BIFF_VER_2 2 /** BIFF file is version 3 */ #define FREEXL_BIFF_VER_3 3 /** BIFF file is version 4 */ #define FREEXL_BIFF_VER_4 4 /** BIFF file is version 5 */ #define FREEXL_BIFF_VER_5 5 /** BIFF file is version 9 */ #define FREEXL_BIFF_VER_8 8 /* BIFF MaxRecordSize */ /** Maximum BIFF record size is 2080 bytes */ #define FREEXL_BIFF_MAX_RECSZ_2080 2080 /** Maximum BIFF record size is 8224 bytes */ #define FREEXL_BIFF_MAX_RECSZ_8224 8224 /* BIFF DateMode */ /** BIFF date mode starts at 1 Jan 1900 */ #define FREEXL_BIFF_DATEMODE_1900 1900 /** BIFF date mode starts at 2 Jan 1904 */ #define FREEXL_BIFF_DATEMODE_1904 1904 /* BIFF Obsfuscated */ /** BIFF file is password protected */ #define FREEXL_BIFF_OBFUSCATED 3003 /** BIFF file is not password protected */ #define FREEXL_BIFF_PLAIN 3004 /* BIFF CodePage */ /** BIFF file uses plain ASCII encoding */ #define FREEXL_BIFF_ASCII 0x016F /** BIFF file uses CP437 (OEM US format) encoding */ #define FREEXL_BIFF_CP437 0x01B5 /** BIFF file uses CP720 (Arabic DOS format) encoding */ #define FREEXL_BIFF_CP720 0x02D0 /** BIFF file uses CP737 (Greek DOS format) encoding */ #define FREEXL_BIFF_CP737 0x02E1 /** BIFF file uses CP775 (Baltic DOS format) encoding */ #define FREEXL_BIFF_CP775 0x0307 /** BIFF file uses CP850 (Western Europe DOS format) encoding */ #define FREEXL_BIFF_CP850 0x0352 /** BIFF file uses CP852 (Central Europe DOS format) encoding */ #define FREEXL_BIFF_CP852 0x0354 /** BIFF file uses CP855 (OEM Cyrillic format) encoding */ #define FREEXL_BIFF_CP855 0x0357 /** BIFF file uses CP857 (Turkish DOS format) encoding */ #define FREEXL_BIFF_CP857 0x0359 /** BIFF file uses CP858 (OEM Multiligual Latin 1 format) encoding */ #define FREEXL_BIFF_CP858 0x035A /** BIFF file uses CP860 (Portuguese DOS format) encoding */ #define FREEXL_BIFF_CP860 0x035C /** BIFF file uses CP861 (Icelandic DOS format) encoding */ #define FREEXL_BIFF_CP861 0x035D /** BIFF file uses CP862 (Hebrew DOS format) encoding */ #define FREEXL_BIFF_CP862 0x035E /** BIFF file uses CP863 (French Canadian DOS format) encoding */ #define FREEXL_BIFF_CP863 0x035F /** BIFF file uses CP864 (Arabic DOS format) encoding */ #define FREEXL_BIFF_CP864 0x0360 /** BIFF file uses CP865 (Nordic DOS format) encoding */ #define FREEXL_BIFF_CP865 0x0361 /** BIFF file uses CP866 (Cyrillic DOS format) encoding */ #define FREEXL_BIFF_CP866 0x0362 /** BIFF file uses CP869 (Modern Greek DOS format) encoding */ #define FREEXL_BIFF_CP869 0x0365 /** BIFF file uses CP874 (Thai Windows format) encoding */ #define FREEXL_BIFF_CP874 0x036A /** BIFF file uses CP932 (Shift JIS format) encoding */ #define FREEXL_BIFF_CP932 0x03A4 /** BIFF file uses CP936 (Simplified Chinese GB2312 format) encoding */ #define FREEXL_BIFF_CP936 0x03A8 /** BIFF file uses CP949 (Korean) encoding */ #define FREEXL_BIFF_CP949 0x03B5 /** BIFF file uses CP950 (Traditional Chinese Big5 format) encoding */ #define FREEXL_BIFF_CP950 0x03B6 /** BIFF file uses Unicode (UTF-16LE format) encoding */ #define FREEXL_BIFF_UTF16LE 0x04B0 /** BIFF file uses CP1250 (Central Europe Windows) encoding */ #define FREEXL_BIFF_CP1250 0x04E2 /** BIFF file uses CP1251 (Cyrillic Windows) encoding */ #define FREEXL_BIFF_CP1251 0x04E3 /** BIFF file uses CP1252 (Windows Latin 1) encoding */ #define FREEXL_BIFF_CP1252 0x04E4 /** BIFF file uses CP1252 (Windows Greek) encoding */ #define FREEXL_BIFF_CP1253 0x04E5 /** BIFF file uses CP1254 (Windows Turkish) encoding */ #define FREEXL_BIFF_CP1254 0x04E6 /** BIFF file uses CP1255 (Windows Hebrew) encoding */ #define FREEXL_BIFF_CP1255 0x04E7 /** BIFF file uses CP1256 (Windows Arabic) encoding */ #define FREEXL_BIFF_CP1256 0x04E8 /** BIFF file uses CP1257 (Windows Baltic) encoding */ #define FREEXL_BIFF_CP1257 0x04E9 /** BIFF file uses CP1258 (Windows Vietnamese) encoding */ #define FREEXL_BIFF_CP1258 0x04EA /** BIFF file uses CP1361 (Korean Johab) encoding */ #define FREEXL_BIFF_CP1361 0x0551 /** BIFF file uses Mac Roman encoding */ #define FREEXL_BIFF_MACROMAN 0x2710 /* CELL VALUE Types */ /** Cell has no value (empty cell) */ #define FREEXL_CELL_NULL 101 /** Cell contains an integer value */ #define FREEXL_CELL_INT 102 /** Cell contains a floating point number */ #define FREEXL_CELL_DOUBLE 103 /** Cell contains a text value */ #define FREEXL_CELL_TEXT 104 /** Cell contains a reference to a Single String Table entry (BIFF8) */ #define FREEXL_CELL_SST_TEXT 105 /** Cell contains a number intended to represent a date */ #define FREEXL_CELL_DATE 106 /** Cell contains a number intended to represent a date and time */ #define FREEXL_CELL_DATETIME 107 /** Cell contains a number intended to represent a time */ #define FREEXL_CELL_TIME 108 /* INFO params */ /** Information query for CFBF version */ #define FREEXL_CFBF_VERSION 32001 /** Information query for CFBF sector size */ #define FREEXL_CFBF_SECTOR_SIZE 32002 /** Information query for CFBF FAT entry count */ #define FREEXL_CFBF_FAT_COUNT 32003 /** Information query for BIFF version */ #define FREEXL_BIFF_VERSION 32005 /** Information query for BIFF maximum record size */ #define FREEXL_BIFF_MAX_RECSIZE 32006 /** Information query for BIFF date mode */ #define FREEXL_BIFF_DATEMODE 32007 /** Information query for BIFF password protection state */ #define FREEXL_BIFF_PASSWORD 32008 /** Information query for BIFF character encoding */ #define FREEXL_BIFF_CODEPAGE 32009 /** Information query for BIFF sheet count */ #define FREEXL_BIFF_SHEET_COUNT 32010 /** Information query for BIFF Single String Table entry count (BIFF8) */ #define FREEXL_BIFF_STRING_COUNT 32011 /** Information query for BIFF format count */ #define FREEXL_BIFF_FORMAT_COUNT 32012 /** Information query for BIFF extended format count */ #define FREEXL_BIFF_XF_COUNT 32013 /* Error codes */ #define FREEXL_OK 0 /**< No error, success */ #define FREEXL_FILE_NOT_FOUND -1 /**< .xls file does not exist or is not accessible for reading */ #define FREEXL_NULL_HANDLE -2 /**< Null xls_handle argument */ #define FREEXL_INVALID_HANDLE -3 /**< Invalid xls_handle argument */ #define FREEXL_INSUFFICIENT_MEMORY -4 /**< some kind of memory allocation failure */ #define FREEXL_NULL_ARGUMENT -5 /**< an unexpected null argument */ #define FREEXL_INVALID_INFO_ARG -6 /**< invalid "what" parameter */ #define FREEXL_INVALID_CFBF_HEADER -7 /**< the .xls file does not contain a valid CFBF header */ #define FREEXL_CFBF_READ_ERROR -8 /**< Read error. Usually indicates a corrupt or invalid .xls file */ #define FREEXL_CFBF_SEEK_ERROR -9 /**< Seek error. Usually indicates a corrupt or invalid .xls file */ #define FREEXL_CFBF_INVALID_SIGNATURE -10 /**< The .xls file does contain a CFBF header, but the header is broken or corrupted in some way */ #define FREEXL_CFBF_INVALID_SECTOR_SIZE -11 /**< The .xls file does contain a CFBF header, but the header is broken or corrupted in some way */ #define FREEXL_CFBF_EMPTY_FAT_CHAIN -12 /**< The .xls file does contain a CFBF header, but the header is broken or corrupted in some way */ #define FREEXL_CFBF_ILLEGAL_FAT_ENTRY -13 /**< The file contains an invalid File Allocation Table record */ #define FREEXL_BIFF_INVALID_BOF -14 /**< The file contains an invalid BIFF format entry */ #define FREEXL_BIFF_INVALID_SST -15 /**< The file contains an invalid Single String Table */ #define FREEXL_BIFF_ILLEGAL_SST_INDEX -16 /**< The requested Single String Table entry is not available */ #define FREEXL_BIFF_WORKBOOK_NOT_FOUND -17 /**< BIFF does not contain a valid workbook */ #define FREEXL_BIFF_ILLEGAL_SHEET_INDEX -18 /**< The requested worksheet is not available in the workbook */ #define FREEXL_BIFF_UNSELECTED_SHEET -19 /**< There is no currently active worksheet. Possibly a forgotten call to freexl_select_active_worksheet() */ #define FREEXL_INVALID_CHARACTER -20 /**< Charset conversion detected an illegal character (not within the declared charset) */ #define FREEXL_UNSUPPORTED_CHARSET -21 /**< The requested charset conversion is not available. */ #define FREEXL_ILLEGAL_CELL_ROW_COL -22 /**< The requested cell is outside the valid range for the sheet*/ #define FREEXL_ILLEGAL_RK_VALUE -23 /**< Conversion of the RK value failed. Possibly a corrupt file or a bug in FreeXL. */ #define FREEXL_ILLEGAL_MULRK_VALUE -23 /**< Conversion of the MULRK value failed. Possibly a corrupt file or a bug in FreeXL. */ #define FREEXL_INVALID_MINI_STREAM -24 /**< The MiniFAT stream is invalid. Possibly a corrupt file. */ #define FREEXL_CFBF_ILLEGAL_MINI_FAT_ENTRY -25 /**< The MiniFAT stream contains an invalid entry. Possibly a corrupt file. */ #define FREEXL_CRAFTED_FILE -26 /**< A severely corrupted file (may be purposely crafted for malicious purposes) has been detected. */ /** Container for a cell value freexl_get_cell_value() takes a pointer to this structure, and fills in the appropriate values. \code FreeXL_CellValue val; freexl_get_cell_value(..., &val); switch (val.type) { case FREEXL_CELL_INT: printf("Int=%d\n", val.value.int_value; break; case FREEXL_CELL_DOUBLE: printf("Double=%1.2f\n", val.value.double_value; break; case FREEXL_CELL_TEXT: case FREEXL_CELL_SST_TEXT: printf("Text='%s'\n", val.value.text_value; break; case FREEXL_CELL_DATE: case FREEXL_CELL_DATETIME: case FREEXL_CELL_TIME: printf("DateOrTime='%s'\n", val.value.text_value; break; case FREEXL_CELL_NULL: printf("NULL\n"); break; default: printf("Invalid data-type\n"); break; } \endcode */ struct FreeXL_CellValue_str { /** The type of data stored in this cell. Can be one of the following: - FREEXL_CELL_NULL the cell contains a NULL value. - FREEXL_CELL_INT the cell contains an INTEGER value. - FREEXL_CELL_DOUBLE the cell contains a DOUBLE value. - FREEXL_CELL_TEXT or FREEXL_CELL_SST_TEXT the cell contains a text string (always UTF-8 encoded) - FREEXL_CELL_DATE the cell contains a date, encoded as a 'YYYY-MM-DD' string value - FREEXL_CELL_DATETIME the cell contains a date and time, encoded as a 'YYYY-MM-DD HH:MM:SS' string value - FREEXL_CELL_TIME the cell contains a time, encoded as a 'HH:MM:SS' string value */ unsigned char type; union { int int_value; /**< if type is FREEXL_CELL_INT, then the corresponding value will be returned as int_value */ double double_value; /**< if type is FREEXL_CELL_DOUBLE, then the corresponding value will be returned as double_value */ const char *text_value; /**< if type is FREEXL_CELL_TEXT, FREEXL_CELL_SST_TEXT, FREEXL_CELL_DATE, FREEXL_CELL_DATETIME or FREEXL_CELL_TIME the corresponding value will be returned as text_value */ } value; /**< The value of the data stored in the cell. Which part of the union is valid is determined by the type value. */ }; /** Typedef for cell value structure. \sa FreeXL_CellValue_str */ typedef struct FreeXL_CellValue_str FreeXL_CellValue; /** Return the current library version. \return the version string. */ FREEXL_DECLARE const char *freexl_version (void); /** Open the .xls file, preparing for future functions \param path full or relative pathname of the input .xls file. \param xls_handle an opaque reference (handle) to be used in each subsequent function (return value). \return FREEXL_OK will be returned on success, otherwise any appropriate error code on failure. \note You are expected to freexl_close() even on failure, so as to correctly release any dynamic memory allocation. */ FREEXL_DECLARE int freexl_open (const char *path, const void **xls_handle); /** Open the .xls file for metadata query only This is similar to freexl_open(), except that an abbreviated parsing step is performed. This makes it faster, but does not support queries for cell values. \param path full or relative pathname of the input .xls file. \param xls_handle an opaque reference (handle) to be used in each subsequent function (return value). \return FREEXL_OK will be returned on success, otherwise any appropriate error code on failure. \note You are expected to freexl_close() even on failure, so as to correctly release any dynamic memory allocation. */ FREEXL_DECLARE int freexl_open_info (const char *path, const void **xls_handle); /** Close the .xls file and releasing any allocated resource \param xls_handle the handle previously returned by freexl_open() \return FREEXL_OK will be returned on success \note After calling freexl_close() any related resource will be released, and the handle will no longer be valid. */ FREEXL_DECLARE int freexl_close (const void *xls_handle); /** Query general information about the Workbook and Worksheets \param xls_handle the handle previously returned by freexl_open() \param what the info to be queried. \param info the corresponding information value (return value) \note FREEXL_UNKNOWN will be returned in \p info if the information is not available, not appropriate or not supported for the file type. \return FREEXL_OK will be returned on success Valid values for \p what are: - FREEXL_CFBF_VERSION (returning FREEXL_CFBF_VER_3 or FREEXL_CFBF_VER_4) - FREEXL_CFBF_SECTOR_SIZE (returning FREEXL_CFBF_SECTOR_512 or FREEXL_CFBF_SECTOR_4096) - FREEXL_CFBF_FAT_COUNT (returning the total count of FAT entries in the file) - FREEXL_BIFF_VERSION (return one of FREEXL_BIFF_VER_2, FREEXL_BIFF_VER_3, FREEXL_BIFF_VER_4, FREEXL_BIFF_VER_5, FREEXL_BIFF_VER_8) - FREEXL_BIFF_MAX_RECSIZE (returning FREEXL_BIFF_MAX_RECSZ_2080 or FREEXL_BIFF_MAX_RECSZ_8224) - FREEXL_BIFF_DATEMODE (returning FREEXL_BIFF_DATEMODE_1900 or FREEXL_BIFF_DATEMODE_1904) - FREEXL_BIFF_PASSWORD (returning FREEXL_BIFF_OBFUSCATED or FREEXL_BIFF_PLAIN) - FREEXL_BIFF_CODEPAGE (returning FREEXL_BIFF_ASCII, one of FREEXL_BIFF_CP*,FREEXL_BIFF_UTF16LE or FREEXL_BIFF_MACROMAN) - FREEXL_BIFF_SHEET_COUNT (returning the total number of worksheets) - FREEXL_BIFF_STRING_COUNT (returning the total number of Single String Table entries) - FREEXL_BIFF_FORMAT_COUNT (returning the total number of format entries) - FREEXL_BIFF_XF_COUNT (returning the number of extended format entries) */ FREEXL_DECLARE int freexl_get_info (const void *xls_handle, unsigned short what, unsigned int *info); /** Query worksheet name \param xls_handle the handle previously returned by freexl_open() \param sheet_index the index identifying the worksheet (base 0) \param string the name of the worksheet (return value) \return FREEXL_OK will be returned on success */ FREEXL_DECLARE int freexl_get_worksheet_name (const void *xls_handle, unsigned short sheet_index, const char **string); /** Set the currently active worksheets Within a FreeXL handle, only one worksheet can be active at a time. Functions that fetch data are implictly working on the selected worksheet. \param xls_handle the handle previously returned by freexl_open() \param sheet_index the index identifying the worksheet (base 0) \return FREEXL_OK will be returned on success */ FREEXL_DECLARE int freexl_select_active_worksheet (const void *xls_handle, unsigned short sheet_index); /** Query the currently active worksheet index \param xls_handle the handle previously returned by freexl_open() \param sheet_index the index corresponding to the currently active Worksheet (return value) \return FREEXL_OK will be returned on success \sa freexl_select_active_worksheet() for how to select the worksheet */ FREEXL_DECLARE int freexl_get_active_worksheet (const void *xls_handle, unsigned short *sheet_index); /** Query worksheet dimensions This function returns the number of rows and columns for the currently selected worksheet. \param xls_handle the handle previously returned by freexl_open() \param rows the total row count (return value) \param columns the total column count (return value) \return FREEXL_OK will be returned on success \note Worksheet dimensions are zero based, so if you have a worksheet that is four columns and two rows (i.e. from A1 in the top left corner to B4 in the bottom right corner), this will return rows equal to 1 and columns equal to 3). This is to support C style looping. */ FREEXL_DECLARE int freexl_worksheet_dimensions (const void *xls_handle, unsigned int *rows, unsigned short *columns); /** Retrieve string entries from SST \param xls_handle the handle previously returned by freexl_open() \param string_index the index identifying the String entry (base 0). \param string the corresponding String value (return value) \return FREEXL_OK will be returned on success \note This function is not normally required, since freexl_get_cell_value will return the string where appropriate. It is mainly intended for debugging purposes. */ FREEXL_DECLARE int freexl_get_SST_string (const void *xls_handle, unsigned short string_index, const char **string); /** Retrieve FAT entries from FAT chain \param xls_handle the handle previously returned by freexl_open() \param sector_index the index identifying the Sector entry (base 0). \param next_sector_index the index identifying the next Sector to be accessed in logical order (return value). \note The following values imply special meaning: - 0xffffffff free / unused sector - 0xfffffffe end of chain - 0xfffffffd sector used by FAT (map of sectors) - 0xfffffffc double-indirect FAT sector (map of FAT sectors) \return FREEXL_OK will be returned on success \note This function is not normally required, since FreeXL will handle FAT table entries transparent to the user. It is mainly intended for debugging purposes. */ FREEXL_DECLARE int freexl_get_FAT_entry (const void *xls_handle, unsigned int sector_index, unsigned int *next_sector_index); /** Retrieve individual cell values from the currently active worksheet \param xls_handle the handle previously returned by freexl_open() \param row row number of the cell to query (zero base) \param column column number of the cell to query (zero base) \param value the cell type and value (return value) \return FREEXL_OK will be returned on success */ FREEXL_DECLARE int freexl_get_cell_value (const void *xls_handle, unsigned int row, unsigned short column, FreeXL_CellValue * value); #ifdef __cplusplus } #endif #endif /* _FREEXL_H */ freexl-1.0.5/headers/Makefile.am0000664000175000017500000000010313243550204013364 00000000000000 noinst_HEADERS = freexl_internals.h include_HEADERS = freexl.h freexl-1.0.5/headers/freexl_internals.h0000664000175000017500000002564113243550204015063 00000000000000/* / freexl_internals.h / / internal declarations / / version 1.0, 2011 July 26 / / Author: Sandro Furieri a.furieri@lqt.it / / ------------------------------------------------------------------------------ / / Version: MPL 1.1/GPL 2.0/LGPL 2.1 / / The contents of this file are subject to the Mozilla Public License Version / 1.1 (the "License"); you may not use this file except in compliance with / the License. You may obtain a copy of the License at / http://www.mozilla.org/MPL/ / / Software distributed under the License is distributed on an "AS IS" basis, / WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License / for the specific language governing rights and limitations under the / License. / / The Original Code is the FreeXL library / / The Initial Developer of the Original Code is Alessandro Furieri / / Portions created by the Initial Developer are Copyright (C) 2011 / the Initial Developer. All Rights Reserved. / / Contributor(s): / Brad Hards / / Alternatively, the contents of this file may be used under the terms of / either the GNU General Public License Version 2 or later (the "GPL"), or / the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), / in which case the provisions of the GPL or the LGPL are applicable instead / of those above. If you wish to allow use of your version of this file only / under the terms of either the GPL or the LGPL, and not to allow others to / use your version of this file under the terms of the MPL, indicate your / decision by deleting the provisions above and replace them with the notice / and other provisions required by the GPL or the LGPL. If you do not delete / the provisions above, a recipient may use your version of this file under / the terms of any one of the MPL, the GPL or the LGPL. / */ #define BIFF_MAX_FORMAT 2048 #define BIFF_MAX_XF 8192 #define FREEXL_MAGIC_INFO 1675437821 #define FREEXL_MAGIC_START 1675431287 #define FREEXL_MAGIC_END 178213456 /* BIFF record types */ #define BIFF_EOF 0x000A #define BIFF_DATEMODE 0x0022 #define BIFF_FILEPASS 0x002F #define BIFF_CODEPAGE 0x0042 #define BIFF_SHEET 0x0085 #define BIFF_SST 0x00FC #define BIFF_DIMENSION 0x0200 #define BIFF_SHEETSOFFSET 0x008E #define BIFF_BOF_2 0x0009 #define BIFF_BOF_3 0x0209 #define BIFF_BOF_4 0x0409 #define BIFF_BOF 0x0809 #define BIFF_CONTINUE 0x003C #define BIFF_FORMAT_2 0x001E #define BIFF_FORMAT 0x041E #define BIFF_XF_2 0x0043 #define BIFF_XF_3 0x0243 #define BIFF_XF_4 0x0443 #define BIFF_XF 0x00E0 #define BIFF_INTEGER_2 0x0002 #define BIFF_NUMBER_2 0x0003 #define BIFF_NUMBER 0x0203 #define BIFF_LABEL_2 0x0004 #define BIFF_LABEL 0x0204 #define BIFF_LABEL_SST 0x00FD #define BIFF_RK 0x027E #define BIFF_MULRK 0x00BD #define BIFF_BOOLERR_2 0x0005 #define BIFF_BOOLERR 0x0205 typedef union biff_word { unsigned char bytes[2]; unsigned short value; } biff_word16; typedef union biff_double_word { unsigned char bytes[4]; unsigned int value; int signed_value; } biff_word32; typedef union biff_float_word { unsigned char bytes[8]; double value; } biff_float; typedef struct cfbf_header_struct { /* * a struct wrapping the CFBF * Compound File Binary Format * * this one is a Microsoft format used e.g. by Office, * and more or less is intended to implement a multi-stream * arch within a single file * the whole struct is a file-system like FAT (File Allocation Table) */ unsigned char signature[8]; /* magic signature */ unsigned char classid[16]; /* Classid [usually zero] */ biff_word16 minor_version; /* minor version: unused */ biff_word16 major_version; /* 3 [512 bytes/sector] or 4 [4096 bytes/sector] */ biff_word16 byte_order; /* endiannes [always little-endian] */ biff_word16 sector_shift; /* 9=512 bytes/sector or 12=4096 bytes/sector */ biff_word16 mini_sector_shift; /* 6=64 bytes/sector */ biff_word16 reserved1; /* unused, ZERO */ biff_word32 reserved2; /* unused, ZERO */ biff_word32 directory_sectors; /* usually ZERO */ biff_word32 fat_sectors; /* #sectors in FAT chain */ biff_word32 directory_start; /* sector index for directory */ biff_word32 transaction_signature; /* usually ZERO */ biff_word32 mini_cutoff; /* tipically 4096 */ biff_word32 mini_fat_start; /* sector index for mini-FAT chain */ biff_word32 mini_fat_sectors; /* #sectors in mini-FAT chain */ biff_word32 difat_start; /* sector index for first DoubleIndirect-FAT */ biff_word32 difat_sectors; /* #sectors for DIFAT chain */ unsigned char fat_sector_map[436]; /* first 109 FAT sectors */ } cfbf_header; typedef struct cfbf_dir_entry_struct { /* a struct representing a CFBF Directory entry */ char name[64]; /* file name */ biff_word16 name_size; /* file name size */ unsigned char type; /* 1=directory; 2=file, 5=root */ unsigned char node_color; /* 0=red; 1=black */ biff_word32 previous; /* previuous item index */ biff_word32 next; /* next item index */ biff_word32 child; /* first child index */ unsigned char classid[16]; /* Classid [unused] */ biff_word32 state; /* state bits [unused] */ biff_word32 timestamp_1; /* timestamp (1) [unused] */ biff_word32 timestamp_2; /* timestamp (2) [unused] */ biff_word32 timestamp_3; /* timestamp (3) [unused] */ biff_word32 timestamp_4; /* timestamp (4) [unused] */ biff_word32 start_sector; /* start sector */ biff_word32 size; /* actual file-size */ biff_word32 extra_size; /* extra size (> 2GB) [ignored] */ } cfbf_dir_entry; typedef struct biff_string_table_struct { /* * in BIFF8 a Shared String Table (SST) exists: * any Text String referenced by the whole Workbook will * be stored only once on the SST, and then Text Cells will * simply refer the corresponding SST entry */ unsigned int string_count; /* how many strings are into the SST */ char **utf8_strings; /* the String Array [UTF-8] */ unsigned int current_index; /* array index for currently parsed string */ char *current_utf16_buf; /* current UTF-16 buffer */ unsigned int current_utf16_len; /* current UTF-16 length */ unsigned int current_utf16_off; /* current UTF-16 offset */ unsigned int current_utf16_skip; /* bytes to be skipped after the current string */ unsigned int next_utf16_skip; /* remaining bytes to be skipped in the next record */ } biff_string_table; typedef struct biff_cell_value_struct { /* a struct representing a Cell value */ unsigned char type; union multivalue_cell { int int_value; double dbl_value; char *text_value; const char *sst_value; } value; } biff_cell_value; typedef struct biff_sheet_struct { /* a strunct representing a BIFF Sheet */ unsigned int start_offset; /* start offset within the stream */ unsigned char visible; /* 0x00=visible; 0x01=hidden; 0x02=very-hidden; */ unsigned char type; /* 0x00=work-sheet; 0x01=macro-sheet; 0x02=chart; 0x06=VB-module; */ char *utf8_name; /* UTF8 name */ unsigned int rows; /* number of rows */ unsigned short columns; /* number of columns */ biff_cell_value *cell_values; /* cell values array */ int valid_dimension; /* set to 1=TRUE only when DIMENSION is surely known */ int already_done; /* set to 1=TRUE if already loaded in pass #1 */ struct biff_sheet_struct *next; /* linked-list pointer */ } biff_sheet; typedef struct biff_format_struct { /* a struct representing DATE/DATETIME/TIME formats */ unsigned int format_index; int is_date; int is_datetime; int is_time; } biff_format; typedef struct fat_entry_struct { /* a FAT entry */ unsigned int current_sector; unsigned int next_sector; struct fat_entry_struct *next; } fat_entry; typedef struct fat_chain_struct { /* a struct representing the FAT chain */ int swap; /* Endiannes; swap required */ unsigned short sector_size; /* sector size */ unsigned int next_sector; unsigned int directory_start; /* sector index for directory */ fat_entry *first; fat_entry *last; fat_entry **fat_array; unsigned int fat_array_count; unsigned int miniCutOff; unsigned int next_sectorMini; fat_entry *firstMini; fat_entry *lastMini; fat_entry **miniFAT_array; unsigned int miniFAT_array_count; unsigned int miniFAT_start; unsigned int miniFAT_len; unsigned char *miniStream; /* the whole mini-stream */ } fat_chain; typedef struct biff_workbook_struct { /* * a struct representing a BIFF Workbook * BIFF stands for: Binary Interchange File Format * which is a "file format" often used by MS Office * * an Excel Spreadsheet (.xls) is stored within a CFBF * as a Workbook stream [pseudo-file] */ int magic1; /* magic signature #1 */ FILE *xls; /* file handle */ fat_chain *fat; /* FAT chain */ unsigned short cfbf_version; /* CFBF version */ unsigned short cfbf_sector_size; /* CFBF sector size */ unsigned int start_sector; /* starting sector for Workbook */ unsigned int size; /* total size of the Workbook stream */ unsigned int current_sector; /* currently bufferd sector */ unsigned int bytes_read; /* total bytes read since start */ unsigned int current_offset; /* current stream offset */ unsigned char sector_buf[8192]; /* currently buffered sector(s) */ unsigned char *p_in; /* current buffer pointer */ unsigned short sector_end; /* current sector end */ int sector_ready; /* 1=yes; 0=no; */ int ok_bof; /* valid BOF found (BeginOfFile): -1=expected; 1=yes; 0=no; */ unsigned short biff_version; /* BIFF version number */ unsigned short biff_max_record_size; /* 2080 or 8224 depending on version */ unsigned short biff_content_type; /* the type of the current sub-stream */ unsigned short biff_code_page; /* the code-page for the current sub-stream */ unsigned short biff_book_code_page; /* the Workbook code-page */ unsigned short biff_date_mode; /* the date-mode: 0=1900-Jan-01; 1=1904-Jan-02; */ int biff_obfuscated; /* 0=no; 1=yes (encrypted file) */ iconv_t utf8_converter; /* ICONV charset converter */ iconv_t utf16_converter; /* ICONV charset converter (for UTF-16) */ unsigned char record[8224]; /* current record */ unsigned short record_type; /* current record identifier */ unsigned short prev_record_type; /* previous record identifier */ unsigned int record_size; /* current record size */ biff_string_table shared_strings; /* the SST */ biff_sheet *first_sheet; /* SHEET linked list - first item */ biff_sheet *last_sheet; /* SHEET linked list - last item */ biff_sheet *active_sheet; /* currently active SHEET */ int second_pass; /* set to 1=TRUE for pass #2 */ biff_format format_array[BIFF_MAX_FORMAT]; /* the array for DATE/DATETIME/TIME formats */ unsigned short max_format_index; /* max array index [formats] */ unsigned short biff_xf_array[BIFF_MAX_XF]; /* the array for XF/Format association */ unsigned short biff_xf_next_index; /* next XF index */ int magic2; /* magic signature #2 */ } biff_workbook; freexl-1.0.5/config.h.in0000664000175000017500000000635313243550204011755 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if `lstat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_LSTAT_EMPTY_STRING_BUG /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the `strftime' function. */ #undef HAVE_STRFTIME /* 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 `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* 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 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* 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 /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `long int' if does not define. */ #undef off_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ #undef volatile freexl-1.0.5/config-msvc.h0000664000175000017500000000713513243550204012315 00000000000000/* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ /* / Sandro: manually adjusted so to support the MSVC compiler / using the OsGeo4W libraries /* Define to 1 if you have the header file. */ #define HAVE_DLFCN_H 1 /* Define to 1 if you have the header file. */ #define HAVE_ICONV_H 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if `lstat' has the bug that it succeeds when given the zero-length file name argument. */ /* #undef HAVE_LSTAT_EMPTY_STRING_BUG */ /* Define to 1 if you have the header file. */ #define HAVE_MATH_H 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the `sqrt' function. */ /* #undef HAVE_SQRT */ /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ /* #undef HAVE_STAT_EMPTY_STRING_BUG */ /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDIO_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the `strcasecmp' function. */ #define HAVE_STRCASECMP 1 /* Define to 1 if you have the `strerror' function. */ #define HAVE_STRERROR 1 /* Define to 1 if you have the `strftime' function. */ #define HAVE_STRFTIME 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the `strncasecmp' function. */ #define HAVE_STRNCASECMP 1 /* Define to 1 if you have the `strstr' function. */ #define HAVE_STRSTR 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #define LT_OBJDIR ".libs/" /* Name of package */ #define PACKAGE "freexl" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "a.furieri@lqt.it" /* Define to the full name of this package. */ #define PACKAGE_NAME "FreeXL" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "FreeXL 1.0.5" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "freexl" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "1.0.5" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define to 1 if you can safely include both and . */ #define TIME_WITH_SYS_TIME 1 /* Define to 1 if your declares `struct tm'. */ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ #define VERSION "1.0.5" /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ /* Define to `long int' if does not define. */ /* #undef off_t */ /* Define to `unsigned int' if does not define. */ /* #undef size_t */ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ freexl-1.0.5/makefile.vc0000664000175000017500000000174213243550204012036 00000000000000# $Id: makefile.vc 2011/08/17 Sandro Furieri $ # # NMAKE Makefile to build libfreexl on Windows # !INCLUDE nmake.opt LIBOBJ = freexl.obj FREEXL_DLL = freexl$(VERSION).dll CFLAGS = /nologo -IC:\OSGeo4W\include -I. -Iheaders $(OPTFLAGS) default: all all: freexl.lib freexl_i.lib $(LIBOBJ): src\freexl.c cl $(CFLAGS) src\freexl.c /c freexl.lib: $(LIBOBJ) if exist freexl.lib del freexl.lib lib /out:freexl.lib $(LIBOBJ) $(FREEXL_DLL): freexl_i.lib freexl_i.lib: $(LIBOBJ) link /debug /dll /out:$(FREEXL_DLL) \ /implib:freexl_i.lib $(LIBOBJ) \ C:\OSGeo4w\lib\iconv.lib if exist $(FREEXL_DLL).manifest mt -manifest \ $(FREEXL_DLL).manifest -outputresource:$(FREEXL_DLL);2 clean: del *.dll del *.exp del *.manifest del *.lib del *.obj del *.pdb install: all -mkdir $(INSTDIR) -mkdir $(INSTDIR)\bin -mkdir $(INSTDIR)\lib -mkdir $(INSTDIR)\include copy *.dll $(INSTDIR)\bin copy *.lib $(INSTDIR)\lib copy headers\freexl.h $(INSTDIR)\include freexl-1.0.5/mainpage.doxy0000664000175000017500000005115213243550204012415 00000000000000/** \mainpage notitle \section Introduction FreeXL is an open source library to extract valid data from within an Excel (.xls) spreadsheet. The FreeXL design goals are: - to be simple and lightweight - to be stable, robust and efficient - to be easily and universally portable. - completely ignore any GUI-related oddity Note that the final goal means that FreeXL ignores at all fonts, sizes and alignments, and most formats. It ignores Pivot Table, Charts, Formulas, Visual Basic macros and so on. FreeXL is structurally simple and quite light-weight (typically 40-80K of object code, stripped). FreeXL has one key dependency - GNU libiconv, which is used for character set conversions. This is often provided as part of the C library on Linux systems, and is widely available. Building and installing FreeXL is straightforward: \verbatim ./configure make make install \endverbatim Linking FreeXL to your own code is usually simple: \verbatim gcc my_program.c -o my_program -lfreexl \endverbatim On some systems you may have to provide a slightly more complex arrangement: \verbatim gcc -I/usr/local/include my_program.c -o my_program \ -L/usr/local/lib -lfreexl -liconv -lm \endverbatim FreeXL also provides pkg-config support, so you can also do: \verbatim gcc -I/usr/local/include my_program.c -o my_program `pkg-config --libs freexl` \endverbatim I sincerely hope FreeXL could be useful to many of you. Excel *.xls spreadsheets are widespread, and although Microsoft itself is strongly pushing the new XML based formats, there is still a lot of legacy data stored in the older binary formats. So in an era of open data, a simple and easy way to extract data from .xls is surely useful. The original use of FreeXL was to support the SQLite / SpatiaLite VirtualXL driver (implementing direct access to .xls files via SQL). However there are many other possibilities, including use with shell scripts and simple wrappers for Python, Perl and other very high level languages. FreeXL is licensed under the MPL tri-license terms: you are free to choose the best-fit license between: - the MPL 1.1 - the GPL v2.0 or any subsequent version - the LGPL v2.1 or any subsequent version Enjoy, and happy coding */ /** \page Origins The background story for FreeXL Where, when and why a new free software library was born... At the end of April 2011 Markus Neteler [http://en.wikipedia.org/wiki/Markus_Neteler] and I (Sandro) were in Udine in Northern Italy, attending the annual Italian gvSIG Users conference. So, on a lovely hot and sunny spring evening, accompanied by a picturesque sunset, we were sitting in the town centre in the pleasant Piazza Matteotti aka Piazza San Giacomo, peacefully drinking some spritz while eating chips and peanuts. \image html piazza.jpg \image latex piazza.eps "Piazza" width=12cm You'll have to admit, it was a really dangerous situation: as a general safety rule, never let two developers sit idle for too long. Some odd and crazy idea will inevitably occur to them (of course, drinking too much spritz can contribute as well). Markus was desperately attempting to convince me that implementing a VirtualTable driver for SpatiaLite supporting direct SQL reading ofExcel .xls files was a good initiative. Surely it would be useful for many users. I strongly resisted, fiercely fighting and rejecting such idea, on the basis that attempting to read proprietary closed formats such as Excel was a complete nonsense, and probably a very difficult if not impossible task. At the end of this very animated discussion, Markus pronounced the magic spell that suddenly convinced me about the absolute validity of his suggestions: I can raise some funding for this project After hearing such wise and significant words from Markus I immediately realized that developing a new driver for accessing Excel .xls documents surely was an exciting and useful task after all. So FreeXL / VirtualXL was conceived at that exact moment, and slowly began its development cycle. */ /** \page Specs File format specifications and source information The .xls binary file format is extensively documented and is publicly available. The most authoritative source is made available by Microsoft at http://msdn.microsoft.com/en-us/library/cc313154%28v=office.12%29.aspx A simpler option is made available by Open Office: http://sc.openoffice.org/excelfileformat.pdf Searching the web you'll easily find several other valuable information sources. */ /** \page Format About the .xls binary format What a .xls binary file really is (Prepare yourself to be continuously surprised by many unexpected revelations ...) You may already know that there are many different versions of .xls files. Different versions have different capabilities. So we'll start by reviewing the Excel evolutionary history and and we'll introduce some Microsoft jargon because it's central to understanding the underlying operations. \section CFBF CFBF Unexpected Revelation #1: There is no .xls file format. Its really a common file suffix applied to many different things. Recent Microsoft Office document files are based on a common container layout named CFBF (Compound File Binary Format). This container format is the same for Excel (.xls), Word (.doc_ and PowerPoint (.ppt) amongst other applications. More information: - http://en.wikipedia.org/wiki/Compound_File_Binary_Format - http://msdn.microsoft.com/en-us/library/dd942138%28v=prot.13%29.aspx Unexpected Revelation #2: CFBF is more of a file system than a file format A CFBF file is divided into many equal-sized blocks named sectors. Such sectors cannot be directly accessed. In order to retrieve sectors in the expected logical order a FAT (File Allocation Table) is allocated within the CFBF file. A CFBF file is internally organized as if it was a raw physical disk. The design is based on Microsoft own FAT file-system as used by MS-DOS and early versions of Windows. The first sector of the CFBF file acts as if it was a kind-of MBR (Master Boot Record) - this first sector provides information about the layout and type of the CFBF file, such as block/sector size and version. A FAT chain allows a reader to re-assemble the sectors in the required logical order. There is a list of free block, and very large files may use a double indirection (DIFAT - Double Indirection FAT). A CFBF file always has at least a root directory: but a complete directory tree can be provided. A CFBF file can contain many and many distinct independent files. Just to make things a little clearer, Microsoft calls such pseudo-files (I mean: the many fake ones contained within the real CFBF file) streams The practical consequence is that any software tool attempting to access an Excel binary document must first be able to correctly access this CFBF container format. \section BIFF BIFF Unexpected Revelation #3: An Excel document will contain a stream (pseudo-file) named Workbook in the root directory of the CFBF file (filesystem). The Workbook stream is internally structured accordingly to the BIFF (Binary Interchange File Format) specifications. You can think of the BIFF as the real Excel binary format (following more conventional naming rules). Several BIFF versions were introduced during the years: and there are significant differences between them. An useful correspondence table relating corresponding Excel and BIFF versions:
Excel Version Commercial Name BIFF Version Release Year Notes
2.x Excel 2.0 BIFF2 1987 Before CFBF. File is the BIFF stream, containing a single worksheet.
3.0 Excel 3.0 BIFF3 1990 Before CFBF. File is the BIFF stream, containing a single worksheet.
4.0 Excel 4.0 BIFF4 1992 Before CFBF. File is the BIFF stream, containing a single worksheet.
5.0 Excel 5.0 BIFF5 1993 Starting with BIFF5, a single Workbook can internally store many individual Worksheets. The BIFF stream is stored in the CFBF file container.
7.0 Excel 95 BIFF5 1995
8.0 Excel 98 BIFF8 1998
9.0 Excel 2000 BIFF8 1999
10.0 Excel XP BIFF8 2001
11.0 Excel 2003 BIFF8 2003
12.0 Excel 2007 BIFF8 2007 Introduced alternate XML format, which is usually the default for new files.
14.0 Excel 2010 BIFF8 2010 XML format is usually the default for new files.
Note that FreeXL does not support the new XML format which is a completely different and unrelated format. Perhaps you are now expecting that BIFF will simply and directly encode your spreadsheet data. Unfortunately, you should have know better given the steps we took to get here... Unexpected Revelation #4: Any BIFF stream (pseudo-file stored within a CFBF container file) is internally organized as a collection of variable-length records.. Each record starts with - a 16 bit unsigned integer specifying the record type - another 16 bit unsigned integer specifies the record data length (in bytes) excluding the standard type-size prefix. Note that there are many different record types, and the record size / layout may differ for different BIFF versions. Three record types have an absolutely special meaning: - a BOF [Beginning Of File] record marks starting of a different sub-stream. - an EOF [End Of File] record marks ending of current sub-stream. - a CONTINUE record means that the previous record exceeded the maximum size for a record, and the previous record data payload will be spanned on following CONTINUE records for as many CONTINUE records as are required to store the full data size. Unexpected Revelation #5: So a BIFF stream (pseudo-file) isn't really a file - it's more like a collection of individual sub-streams, each one of which is enclosed between BOF / EOF markers. The most recent BIFF8 requires that at least the following internal sub-streams are be defined: - the first sub-stream contains workbook level global data and metadata, such as author, password protection, styles, formats, window settings and so on - list of individual worksheets included into the Workbook, where each worksheet is identified by a name and by a type (data Worksheet, Chart, Visual Basic module ... visible, hidden ...), and relative offset position of the corresponding BOF record allows for fast positioning. - any text string is stored here into the SST [Shared String Table], so individual text cells simply refer the corresponding SST entry by index (in all previous BIFF version text strings are directly stored into the appropriate cell). - any subsequent sub-stream represents a single Worksheet, and the most relevant data stored at Worksheet level are dimension (number of valid rows and columns) and any cell value data. We will now see how BIFF encodes individual data types with several further amazing surprises are still to come. Be prepared! \section BIFF Supported data types and encoding Leaving aside special values such as images, OLE, COM, Visual Basic related items and so on, the basic data types are supported in BIFF: - text strings - numbers (both integers and decimals) - dates, date-times and times - NULL (empty cell) Note that any multi-byte value is stored in BIFF accordingly using Little Endian byte ordering (i.e. least significant byte comes first, most significant byte comes last).
BIFF Record Type BIFF Version Content Type
INTEGER BIFF2 16 bit unsigned integer
NUMBER BIFF2 BIFF3 BIFF4 BIFF5 BIFF8 64 bit floating point (double precision)
RK BIFF3 BIFF4 BIFF5 BIFF8 number, variant-type: INTEGER FLOAT DATE DATETIME TIME (please see the corresponding detailed description)
MULRK BIFF5 BIFF8 a variable-sized array of elementary RK values. associated to a range of consecutive cells on the same row
LABEL BIFF2 BIFF3 BIFF4 BIFF5 BIFF8 text string, variable-length. (please see the corresponding detailed description)
LABELSST BIFF8 text string, variable-length. based on the global SST [Shared String Table] stored at the workbook level, so a LABELSST simply requires providing the corresponding SST index.
So the BIFF record type that is easy to handle is NUMBER, which is essentially a C-style double. Other record types require additional handling. \subsection RK RK values An RK value is a 32 bit value. The least significant two bits are a bit-mask (in little endian order, so the least two significant bits in the first byte that is read): - if 0x02 is set the RK value represents a 30 bit signed integer, otherwise it represents a 64 bit floating point double precision number requiring special reconstruction. - if 0x01 is set the corresponding value needs to be divided by 100, so even an integer actually becomes a floating point double precision. When interpreting RK values as a signed integer, right shifting two bits is required: \code int value = rk_value >> 2; \endcode When interpreting RK values as a 64 bit floating point, two steps are required: - the RK value requires appropriate masking: \code int value = rk_value & 0xfffffffc; \endcode - then the 32 bit value will be copied into a 64 bit buffer, and the least significant four bytes need to be initialized as zeroes: 0x00000000. As a final step, if 0x01 was set into the bit-mask, now we have to divide by 100 before returning the effective cell value. So for 32 bit integers: \code double final_value = (double)value / 100.0; \endcode and for 64 bit floats: \code double final_value = value / 100.0; \endcode \subsection Text Text values Any BIFF version from BIFF2 to BIFF5 simply supports CodePage based character encoding, i.e. each character simply requires 8 bits to be represented (single byte). Correct representation of characters requires knowing which one CodePage table has to be applied. This can be determined from the workbook or worksheet metadata (it is the CODEPAGE record). BIFF8 is much more sophisticated, since any text string is usually encoded as Unicode in UTF-16 Little Endian [UTF-16LE] format. This encoding is a multi-byte encoding (two bytes are required to represent a single character), but being universal no character table is required. BIFF text strings are never null-terminated. The actual length is always explicitly stated, as an 8 bit unsigned int or as a 16 bit unsigned int (depending on BIFF versions). FreeXL is intended to be strictly interoperable with SQLite and SpatiaLite, so any text string has to be converted to UTF-8 encoding. GNU libiconv can easily handle any required charset conversion. So we can simply fetch the appropriate bytes, then call iconv() as appropriate, and we'll immediately get back the corresponding UTF-8 encoded text string. Converting Unicode based text strings is a little more complex, because each Unicode string is prefixed by a mask byte, specifying how the string is encoded: - if 0x01 is set, then the string really is 16 bit per character Unicode, otherwise a stripped notation is used instead. Stripped notation means that the characters are actually represented as single bytes, so already have the UTF8 equivalent. - if 0x04 and/or 0x08 are set, than some further variable-length data (providing information on text decoration such as italics, bold, underline) is inserted immediately before and after the text string itself, so we must carefully skip over this extra data so to maintain the right byte alignment. Note that the string length is expressed in characters, not in bytes, so the actual length in bytes is twice the indicated length. \subsection Dates Retrieving Date, DateTime and Time values. Dates, DateTimes and Time values are also a little complicated. Any Date is expressed as an Integer (number of days since the conventional reference day): - for Windows Excel the reference day (day 0) is 1900, January 1 - for Mac Excel the reference day (day 0) is 1904, January 2 There is no possible ambiguity, because the DATEMODE metadata record specifies tells which reference day is to be used. An odd bug affects Excel, which (incorrectly) treats 1900 as a leap year. Therefore, the non-existent 29 February 1900 has to be included in the days calculation so to get the expected Date value. Any Time is expressed as a Fraction (percent of seconds since midnight). 0.5 corresponds to 12:00:00 (midday), 0.25 corresponds to 06:00:00, 0.75 corresponds to 18:00:00 and so on. So a DateTime is simply the sum of a Date value and of a Time value. Dates can be represented by Integers: but Times and DateTimes require a floating point number. The complication with Dates, DateTimes and Time values is that the data-type does not specify when a cell values has to be interpreted as a Date or Time - it is simply an Integer or Float numbers like any other. A further indirection has to applied so to correctly recognize Dates, DateTimes and Times: - each NUMBER, RK or MULRK value exposes an index referencing the XF (Extended Format) entry associated with the corresponding cell. - each XF record specifies an unique combination of font, alignment, color and so on, however a further indirection specifies the corresponding FORMAT entry - each FORMAT record specifies an output format, such as M/D/YY, h:mm:ss AM/PM or M/D/YY h:mm: and this finally gives us a good chance to guess which cell values are intended to represent Date/Time values. Both XF and FORMAT records are globally stored at the Workbook level, and represent ordered arrays. If you haven't yet given up, if you aren't yet become totally mind-boggled, and if you are still awake and conscious, then you now know how .xls files are internally organized and structured. Be happy and feel proud of yourself. */ /** \page OtherTools Other tools and libraries There an impressively wide choice of Free and open source libraries and tools supporting the .xls format. A sample: - Gnumeric [http://projects.gnome.org/gnumeric/] seems to be the pioneer of them all, and probably was the first FLOSS tool able to read and write .xls (circa 2001). Part of the Gnome Office project. - KSpread / Caligra Tables [http://www.calligra-suite.org/tables/] / KCells [http://www.koffice.org/kcells/] are similar (but now distinct) programs from the KOffice and Calligra Office projects. - Open Office Calc [http://www.openoffice.org/product/calc.html] and LibreOffice Calc [http://www.libreoffice.org/features/calc/] are similar (but now distinct) spreadsheet applications originally from the StartOffice code base. Probably the most comprehensive support in FLOSS. - Apache POI-HSSF [http://poi.apache.org/spreadsheet/index.html] is a sophisticated Java library fully supporting .xls files. - JExcelAPI [http://jexcelapi.sourceforge.net/] is another Java library (much simpler and lighter than POI-HSSF) supporting .xls files. - several C or C++ libraries exist as well: quite curiously one is named libxls and another xlslib, but they are two absolutely distinct and unrelated packages - There are other implementations are available based on .NET or PHP. A quick critical review: - GUI tools implementations are difficult to re-use. They focus on import of all formulas, GUI presentation and so on, which is really a different use. - Java libraries seem to be really interesting, but Java is difficult to call from a C or C++ program. - Several C/C++ libraries exist, but none of them seems to be sufficient and stable as required. Some are still marked to be “beta-stage†despite being released some four or five years ago - project activity seems to be very low, and download statistics are discouraging. Conclusion: a suitable C/C++ library supporting data extraction from .xls files doesn't seem to exists: or at least, there is no obvious reference choice. So we'll go on the hardest way, we'll develop yet another .xls reading library: FreeXL. */ freexl-1.0.5/depcomp0000775000175000017500000004426713243550204011315 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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, see . # 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 . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac 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 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} 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 cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp 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. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" 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. 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$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # 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,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$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" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. 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$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; 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 # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done 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 "X$1" != 'X--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 "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi 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. -arch) eat=yes ;; -*|$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 "X$1" != 'X--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 -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [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. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # 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 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: freexl-1.0.5/config.guess0000775000175000017500000012761513243550204012257 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, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # 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 (context # diff format) to and include a 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. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 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 -q __ELF__ 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 ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; 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:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-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 -q __LP64__ 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*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) 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 ;; 8664:Windows_NT:*) echo x86_64-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 ;; 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 -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} 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 ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" 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:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu 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 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-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: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.[02]*:*) 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 i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-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; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' 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; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; 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.[02]*:*) 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 ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku 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 i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; 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 ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros 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: freexl-1.0.5/test-driver0000775000175000017500000000761113243550204012126 00000000000000#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2012-06-27.10; # UTC # Copyright (C) 2011-2013 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, see . # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then estatus=1 fi case $estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: freexl-1.0.5/INSTALL0000664000175000017500000001723013243550204010757 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. freexl-1.0.5/configure.ac0000664000175000017500000000410213243550204012206 00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT(FreeXL, 1.0.5, a.furieri@lqt.it) AC_LANG(C) AC_CONFIG_AUX_DIR([.]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE AM_MAINTAINER_MODE AM_CONFIG_HEADER(config.h) # Checks for header files. AC_CHECK_HEADERS(stdlib.h,, [AC_MSG_ERROR([cannot find stdlib.h, bailing out])]) AC_CHECK_HEADERS(stdio.h,, [AC_MSG_ERROR([cannot find stdio.h, bailing out])]) AC_CHECK_HEADERS(string.h,, [AC_MSG_ERROR([cannot find string.h, bailing out])]) AC_CHECK_HEADERS(math.h,, [AC_MSG_ERROR([cannot find math.h, bailing out])]) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM AC_C_VOLATILE # Checks for library functions. AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK AC_FUNC_MEMCMP AC_FUNC_STAT AC_FUNC_STRFTIME AC_CHECK_FUNCS([sqrt strcasecmp strerror strncasecmp strstr strerror]) # gcov support AC_ARG_ENABLE(gcov, AC_HELP_STRING([--enable-gcov],[turn on code coverage analysis tools])) if test "x$enable_gcov" = "xyes"; then dnl Check for -fprofile-arcs and -ftest-coverage option CFLAGS=$CFLAGS" -fprofile-arcs -ftest-coverage -g" GCOV_FLAGS="-lgcov" fi AC_CONFIG_FILES([Makefile \ headers/Makefile \ src/Makefile \ tests/Makefile \ examples/Makefile \ Doxyfile \ freexl.pc]) AC_CHECK_HEADERS(iconv.h,, [AC_MSG_ERROR([cannot find iconv.h, bailing out])]) # on some systems "iconv()" lives in libc. On others it lives in libiconv # on older systems "libiconv()" lives in libiconv AC_SEARCH_LIBS(iconv,iconv,, AC_SEARCH_LIBS(libiconv,iconv,,AC_MSG_ERROR(['libiconv' is required but it doesn't seem to be installed on this system.]),)) AC_SEARCH_LIBS(locale_charset,charset,, AC_SEARCH_LIBS(nl_langinfo,c,,AC_MSG_ERROR(['libcharset' is required but it doesn't seem to be installed on this system.]),)) AC_OUTPUT freexl-1.0.5/compile0000755000175000017500000001624512734477075011331 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # 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, see . # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: freexl-1.0.5/COPYING0000664000175000017500000006242013243550204010762 00000000000000 MOZILLA PUBLIC LICENSE Version 1.1 --------------- 1. Definitions. 1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. 1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. 1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. 1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. 1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. 1.5. "Executable" means Covered Code in any form other than Source Code. 1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. 1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. 1.8. "License" means this document. 1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. 1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. B. Any new file that contains any part of the Original Code or previous Modifications. 1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. 1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. 1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. 1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. Source Code License. 2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. 2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. 3. Distribution Obligations. 3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. 3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. 3.4. Intellectual Property Matters (a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. (b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. (c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. 3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. 4. Inability to Comply Due to Statute or Regulation. If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Application of this License. This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. 6. Versions of the License. 6.1. New Versions. Netscape Communications Corporation ("Netscape") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. 6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License. 6.3. Derivative Works. If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) 7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 8. TERMINATION. 8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that: (a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. (b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. 8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. 8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. 9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 10. U.S. GOVERNMENT END USERS. The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. 11. MISCELLANEOUS. This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. 12. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. 13. MULTIPLE-LICENSED CODE. Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. EXHIBIT A -Mozilla Public License. ``The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the FreeXL library. The Initial Developer of the Original Code is Alessandro Furieri. Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.]